react-native-inapp-inspector 2.5.12 → 2.5.14

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 (392) hide show
  1. package/README.md +0 -8
  2. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  3. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  4. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  5. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  6. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  7. package/android/.gradle/8.9/gc.properties +0 -0
  8. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  9. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  12. package/android/.gradle/9.2.0/gc.properties +0 -0
  13. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  14. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  15. package/android/.gradle/vcs-1/gc.properties +0 -0
  16. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  17. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +1 -0
  18. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  19. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  20. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  21. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  22. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  23. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
  24. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  25. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.dex +0 -0
  26. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  27. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
  28. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  29. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  30. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  31. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +1 -0
  32. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
  33. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
  34. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +176 -0
  35. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  36. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +236 -0
  37. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
  38. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
  39. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
  40. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
  41. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
  42. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
  43. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
  44. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +337 -0
  45. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
  46. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
  47. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
  48. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
  49. package/android/build/generated/source/codegen/schema.json +1 -0
  50. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +19 -0
  51. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  52. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  53. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  54. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  55. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  56. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  57. package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_inappinspector_file_paths.xml.flat +0 -0
  58. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -0
  59. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  60. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  61. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  62. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  63. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  64. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  65. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  66. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  67. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +28 -0
  68. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +19 -0
  69. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  70. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  71. package/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/inappinspector_file_paths.xml +7 -0
  72. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  82. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  83. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  84. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  85. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  86. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  171. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  172. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  173. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  174. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  175. package/android/build/outputs/logs/manifest-merger-debug-report.txt +35 -0
  176. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  177. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  178. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  179. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  180. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  181. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  182. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  183. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  184. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  185. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  186. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  187. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  188. package/android/src/main/AndroidManifest.xml +11 -0
  189. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +492 -45
  190. package/android/src/main/res/xml/inappinspector_file_paths.xml +7 -0
  191. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +47 -49
  192. package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +8 -0
  193. package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +76 -0
  194. package/dist/commonjs/components/Inspector/ConsoleExportModal.js +51 -51
  195. package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
  196. package/dist/commonjs/components/Inspector/CrashTab.js +17 -17
  197. package/dist/commonjs/components/Inspector/DebuggingTab.js +37 -37
  198. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +2 -2
  199. package/dist/commonjs/components/Inspector/FabLauncher.js +4 -4
  200. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +2 -2
  201. package/dist/commonjs/components/Inspector/InspectorHeader.js +36 -36
  202. package/dist/commonjs/components/Inspector/MainScreen.js +38 -75
  203. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +10 -10
  204. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +1 -0
  205. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +222 -222
  206. package/dist/commonjs/components/Inspector/NetworkExportModal.d.ts +10 -0
  207. package/dist/commonjs/components/Inspector/NetworkExportModal.js +333 -0
  208. package/dist/commonjs/components/Inspector/NetworkTab.js +60 -53
  209. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +11 -12
  210. package/dist/commonjs/components/Inspector/ReduxDetail.js +17 -19
  211. package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
  212. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  213. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +17 -16
  214. package/dist/commonjs/components/Inspector/SettingsPanel.js +43 -47
  215. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  216. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +34 -3
  217. package/dist/commonjs/components/Inspector/SocketCard.js +2 -2
  218. package/dist/commonjs/components/Inspector/SupportPage.js +5 -5
  219. package/dist/commonjs/components/Inspector/TabBar.js +9 -15
  220. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
  221. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +97 -0
  222. package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +2 -0
  223. package/dist/commonjs/components/Inspector/UiInspectorDetail.js +485 -0
  224. package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +2 -0
  225. package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +199 -0
  226. package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +2 -0
  227. package/dist/commonjs/components/Inspector/UiInspectorTab.js +117 -0
  228. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
  229. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +148 -0
  230. package/dist/commonjs/components/Inspector/index.d.ts +28 -0
  231. package/dist/commonjs/components/Inspector/index.js +1 -0
  232. package/dist/commonjs/components/LogCard.js +12 -10
  233. package/dist/commonjs/components/SkeletonPlaceholder.d.ts +3 -0
  234. package/dist/commonjs/components/SkeletonPlaceholder.js +34 -3
  235. package/dist/commonjs/constants/index.js +1 -1
  236. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  237. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  238. package/dist/commonjs/constants/version.d.ts +1 -1
  239. package/dist/commonjs/constants/version.js +1 -1
  240. package/dist/commonjs/customHooks/crashHandler.d.ts +1 -1
  241. package/dist/commonjs/customHooks/crashHandler.js +6 -6
  242. package/dist/commonjs/customHooks/uiInspectorManager.d.ts +22 -0
  243. package/dist/commonjs/customHooks/uiInspectorManager.js +1 -0
  244. package/dist/commonjs/helpers/index.js +1 -3
  245. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  246. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -0
  247. package/dist/commonjs/helpers/searchQueryParser.js +7 -5
  248. package/dist/commonjs/helpers/shareFormatter.d.ts +16 -0
  249. package/dist/commonjs/helpers/shareFormatter.js +16 -9
  250. package/dist/commonjs/helpers/uiInspectorEngine.d.ts +62 -0
  251. package/dist/commonjs/helpers/uiInspectorEngine.js +19 -0
  252. package/dist/commonjs/i18n/locales/ar.json +1 -1
  253. package/dist/commonjs/i18n/locales/bn.json +1 -1
  254. package/dist/commonjs/i18n/locales/de.json +1 -1
  255. package/dist/commonjs/i18n/locales/en.json +1 -1
  256. package/dist/commonjs/i18n/locales/es.json +1 -1
  257. package/dist/commonjs/i18n/locales/fr.json +1 -1
  258. package/dist/commonjs/i18n/locales/gu.json +1 -1
  259. package/dist/commonjs/i18n/locales/hi.json +1 -1
  260. package/dist/commonjs/i18n/locales/id.json +1 -1
  261. package/dist/commonjs/i18n/locales/it.json +1 -1
  262. package/dist/commonjs/i18n/locales/ja.json +1 -1
  263. package/dist/commonjs/i18n/locales/kn.json +1 -1
  264. package/dist/commonjs/i18n/locales/ko.json +1 -1
  265. package/dist/commonjs/i18n/locales/ml.json +1 -1
  266. package/dist/commonjs/i18n/locales/mr.json +1 -1
  267. package/dist/commonjs/i18n/locales/nl.json +1 -1
  268. package/dist/commonjs/i18n/locales/pa.json +1 -1
  269. package/dist/commonjs/i18n/locales/pl.json +1 -1
  270. package/dist/commonjs/i18n/locales/pt.json +1 -1
  271. package/dist/commonjs/i18n/locales/ru.json +1 -1
  272. package/dist/commonjs/i18n/locales/ta.json +1 -1
  273. package/dist/commonjs/i18n/locales/te.json +1 -1
  274. package/dist/commonjs/i18n/locales/tr.json +1 -1
  275. package/dist/commonjs/i18n/locales/vi.json +1 -1
  276. package/dist/commonjs/i18n/locales/zh.json +1 -1
  277. package/dist/commonjs/index.d.ts +4 -2
  278. package/dist/commonjs/index.js +3 -3
  279. package/dist/commonjs/native/NativeInspector.d.ts +4 -0
  280. package/dist/commonjs/native/NativeInspector.js +1 -1
  281. package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
  282. package/dist/commonjs/styles/AppFonts.d.ts +4 -0
  283. package/dist/commonjs/styles/AppFonts.js +1 -1
  284. package/dist/commonjs/styles/index.d.ts +2 -0
  285. package/dist/commonjs/styles/index.js +1 -1
  286. package/dist/commonjs/types/editor.d.ts +31 -0
  287. package/dist/commonjs/types/enums.d.ts +0 -2
  288. package/dist/commonjs/types/enums.js +1 -1
  289. package/dist/commonjs/types/interfaces.d.ts +1 -1
  290. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +73 -75
  291. package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +8 -0
  292. package/dist/esm/components/Inspector/BoxModelVisualizer.js +76 -0
  293. package/dist/esm/components/Inspector/ConsoleExportModal.js +67 -67
  294. package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
  295. package/dist/esm/components/Inspector/CrashTab.js +58 -58
  296. package/dist/esm/components/Inspector/DebuggingTab.js +105 -105
  297. package/dist/esm/components/Inspector/DeviceInfoTab.js +2 -2
  298. package/dist/esm/components/Inspector/FabLauncher.js +50 -50
  299. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +23 -23
  300. package/dist/esm/components/Inspector/InspectorHeader.js +64 -64
  301. package/dist/esm/components/Inspector/MainScreen.js +87 -124
  302. package/dist/esm/components/Inspector/MediaGalleryTab.js +151 -151
  303. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +1 -0
  304. package/dist/esm/components/Inspector/MediaPreviewModal.js +468 -468
  305. package/dist/esm/components/Inspector/NetworkExportModal.d.ts +10 -0
  306. package/dist/esm/components/Inspector/NetworkExportModal.js +333 -0
  307. package/dist/esm/components/Inspector/NetworkTab.js +143 -136
  308. package/dist/esm/components/Inspector/NpmStarPrompt.js +32 -33
  309. package/dist/esm/components/Inspector/ReduxDetail.js +54 -56
  310. package/dist/esm/components/Inspector/ReduxTab.js +9 -9
  311. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  312. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +23 -22
  313. package/dist/esm/components/Inspector/SettingsPanel.js +109 -113
  314. package/dist/esm/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  315. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +42 -11
  316. package/dist/esm/components/Inspector/SocketCard.js +13 -13
  317. package/dist/esm/components/Inspector/SupportPage.js +5 -5
  318. package/dist/esm/components/Inspector/TabBar.js +35 -41
  319. package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
  320. package/dist/esm/components/Inspector/UiA11yAuditPanel.js +97 -0
  321. package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +2 -0
  322. package/dist/esm/components/Inspector/UiInspectorDetail.js +422 -0
  323. package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +2 -0
  324. package/dist/esm/components/Inspector/UiInspectorOverlay.js +138 -0
  325. package/dist/esm/components/Inspector/UiInspectorTab.d.ts +2 -0
  326. package/dist/esm/components/Inspector/UiInspectorTab.js +117 -0
  327. package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
  328. package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +148 -0
  329. package/dist/esm/components/Inspector/index.d.ts +28 -0
  330. package/dist/esm/components/Inspector/index.js +1 -0
  331. package/dist/esm/components/LogCard.js +24 -22
  332. package/dist/esm/components/SkeletonPlaceholder.d.ts +3 -0
  333. package/dist/esm/components/SkeletonPlaceholder.js +42 -11
  334. package/dist/esm/constants/index.js +1 -1
  335. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  336. package/dist/esm/constants/telemetryConfig.js +1 -1
  337. package/dist/esm/constants/version.d.ts +1 -1
  338. package/dist/esm/constants/version.js +1 -1
  339. package/dist/esm/customHooks/crashHandler.d.ts +1 -1
  340. package/dist/esm/customHooks/crashHandler.js +6 -6
  341. package/dist/esm/customHooks/uiInspectorManager.d.ts +22 -0
  342. package/dist/esm/customHooks/uiInspectorManager.js +1 -0
  343. package/dist/esm/helpers/index.js +4 -6
  344. package/dist/esm/helpers/remoteConfig.js +1 -1
  345. package/dist/esm/helpers/searchQueryParser.d.ts +1 -0
  346. package/dist/esm/helpers/searchQueryParser.js +7 -5
  347. package/dist/esm/helpers/shareFormatter.d.ts +16 -0
  348. package/dist/esm/helpers/shareFormatter.js +20 -13
  349. package/dist/esm/helpers/uiInspectorEngine.d.ts +48 -0
  350. package/dist/esm/helpers/uiInspectorEngine.js +19 -0
  351. package/dist/esm/i18n/locales/ar.json +1 -1
  352. package/dist/esm/i18n/locales/bn.json +1 -1
  353. package/dist/esm/i18n/locales/de.json +1 -1
  354. package/dist/esm/i18n/locales/en.json +1 -1
  355. package/dist/esm/i18n/locales/es.json +1 -1
  356. package/dist/esm/i18n/locales/fr.json +1 -1
  357. package/dist/esm/i18n/locales/gu.json +1 -1
  358. package/dist/esm/i18n/locales/hi.json +1 -1
  359. package/dist/esm/i18n/locales/id.json +1 -1
  360. package/dist/esm/i18n/locales/it.json +1 -1
  361. package/dist/esm/i18n/locales/ja.json +1 -1
  362. package/dist/esm/i18n/locales/kn.json +1 -1
  363. package/dist/esm/i18n/locales/ko.json +1 -1
  364. package/dist/esm/i18n/locales/ml.json +1 -1
  365. package/dist/esm/i18n/locales/mr.json +1 -1
  366. package/dist/esm/i18n/locales/nl.json +1 -1
  367. package/dist/esm/i18n/locales/pa.json +1 -1
  368. package/dist/esm/i18n/locales/pl.json +1 -1
  369. package/dist/esm/i18n/locales/pt.json +1 -1
  370. package/dist/esm/i18n/locales/ru.json +1 -1
  371. package/dist/esm/i18n/locales/ta.json +1 -1
  372. package/dist/esm/i18n/locales/te.json +1 -1
  373. package/dist/esm/i18n/locales/tr.json +1 -1
  374. package/dist/esm/i18n/locales/vi.json +1 -1
  375. package/dist/esm/i18n/locales/zh.json +1 -1
  376. package/dist/esm/index.d.ts +4 -2
  377. package/dist/esm/index.js +8 -8
  378. package/dist/esm/native/NativeInspector.d.ts +4 -0
  379. package/dist/esm/native/NativeInspector.js +1 -1
  380. package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
  381. package/dist/esm/styles/AppFonts.d.ts +4 -0
  382. package/dist/esm/styles/AppFonts.js +1 -1
  383. package/dist/esm/styles/index.d.ts +2 -0
  384. package/dist/esm/styles/index.js +1 -1
  385. package/dist/esm/types/editor.d.ts +31 -0
  386. package/dist/esm/types/enums.d.ts +0 -2
  387. package/dist/esm/types/enums.js +1 -1
  388. package/dist/esm/types/interfaces.d.ts +1 -1
  389. package/ios/NetworkInspectorModule.mm +597 -336
  390. package/package.json +1 -1
  391. package/src/native/NativeInspector.ts +67 -0
  392. package/src/native/NativeNetworkInspector.ts +4 -0
@@ -1,4 +1,4 @@
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}}>
1
+ import{useMemo as Qe,useState as Me,useEffect as Ze,useRef as jr}from"react";import{Alert as j,Animated as _,Platform as Ct,ScrollView as J,StyleSheet as Ur,Switch as St,Text as T,TextInput as Gr,View as C}from"react-native";import{animateNextLayout as _r,useInspector as kt}from"./InspectorContext";import V from"../TouchableScale";import Jr from"../Slider";import{toggleGlobalTheme as xt}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 Tt}from"../../helpers/settingsStore";import{clearNetworkLogs as Rt}from"../../customHooks/networkLogger";import{clearConsoleLogs as Vt}from"../../customHooks/consoleLogger";import{clearAnalyticsEvents as zt,isAnalyticsConnected as qr}from"../../customHooks/analyticsLogger";import{clearCrashRecords as Bt}from"../../customHooks/crashHandler";import{isReduxConnected as Yr}from"../../customHooks/reduxLogger";import{useTranslation as Ft,SUPPORTED_LANGUAGES as Kr,getLanguage as It}from"../../i18n";import{LanguageSelectorModal as Dt}from"./LanguageSelectorModal";import{GlobeIcon as Xr,SignalIcon as Qr,TerminalIcon as Zr,AnalyticsIcon as Co,SettingsIcon as Ht,SunIcon as $t,MoonIcon as Pt,ScreenIcon as So,MotionIcon as Wt,LayersIcon as Q,EyeIcon as Ce,CheckIcon as Se,TrashIcon as O,PackageIcon as Lt,ReduxIcon as To,CrashIcon as At,ShieldAlertIcon as Ro,ShieldCheckIcon as Vo,ScaleBalanceIcon as Et,VolumeMuteIcon as Ot,JsIcon as Mt,ChipIcon as Nt,LayoutIcon as Ut,HourglassIcon as Gt,CodeBracketsIcon as Bo,LockIcon as _t,RefreshCcwIcon as Jt,ForwardChevronIcon as Fo,ChevronDownIcon as Yt,BrainIcon as Io,SmartphoneIcon as Kt,DatabaseIcon as Xt,FilmIcon as Do,ScreencastIcon as Qt,CameraIcon as Te,VideoCameraIcon as Cr,MicrophoneIcon as Ho,GifIcon as $o,ImageIcon as Po,BellIcon as Wo,WebsocketIcon as Lo,SpeedometerIcon as Zt,BoltIcon as Sr}from"../NetworkIcons";import{ScreenCapture as kr}from"../../capture";import{triggerNativeHaptic as D}from"../../native/NativeInspector";import{showToast as B}from"../../helpers/toast";import{pruneAllLogs as ei}from"../../helpers/memoryManager";const ri=()=>{const{t:w}=Ft(),{settingsPage:v,setSettingsPage:vo,settingsActiveSubTab:q,setSettingsActiveSubTab:xr,tabVisibility:Y,toggleTabVisibility:Tr,defaultTab:K,setDefaultTab:Ao,isDark:Z,setIsDark:Eo,modalHeightPercent:Re,setModalHeightPercent:Oo,modalAnimationType:Mo,setModalAnimationType:No,showDuplicateLogs:Ne,setShowDuplicateLogs:jo,showUpdateToast:je,setShowUpdateToast:Uo,showConsoleLevels:Go,setShowConsoleLevels:_o,closeModal:oi,logs:Ue,consoleLogs:Ge,analyticsEvents:_e,reduxState:Ve,maxConsoleLogs:Rr,setMaxConsoleLogs:Jo,maxAnalyticsEventsLimit:Vr,setMaxAnalyticsEventsLimit:qo,isAutoRamLimitEnabled:W,setIsAutoRamLimitEnabled:Yo,deviceFreeRamMb:Je,reduxAutoRefresh:qe,setReduxAutoRefreshState:Ko,reduxExpandDepth:Xo,setReduxExpandDepth:Qo,setSelected:Zo,setSelectedEvent:et,setReduxState:rt,crashRecords:ze,maxCrashLogs:zr,setMaxCrashLogs:Br,crashIgnoredTypes:$,setCrashIgnoredTypes:ot,crashModalTriggerPolicy:tt,setCrashModalTriggerPolicyState:Fr,applyCrashPolicyPreset:Be,pushRecords:Fe,maxPushLogs:it,setMaxPushLogs:lt,clearAllPushLogs:at,simulatePush:Ie,socketRecords:De,maxSocketLogs:nt,setMaxSocketLogs:st,clearAllSocketLogs:dt,simulateSocket:He,captureImageFormat:Ye,setCaptureImageFormat:Ir,captureAutoHide:L,setCaptureAutoHide:$e,captureAudioMode:Dr,setCaptureAudioMode:Hr,captureFps:$r,setCaptureFps:Pr,captureScale:ti,setCaptureScale:ii,captureBitrate:li,setCaptureBitrate:ai,captureMaxDurationSeconds:ni,setCaptureMaxDurationSeconds:si,captureAutoGif:A,setCaptureAutoGif:Pe,captureWidgetEnabled:X,setCaptureWidgetEnabled:Wr,peekOpacity:Lr,setPeekOpacity:ct,hiddenUrlPatterns:ee,setHiddenUrlPatterns:Ke}=kt(),[We,vr]=Me(""),[Le,Ar]=Me(Re),[gt,Er]=Me(!1),pt=It(),ve=Kr.find(r=>r.code===pt)||Kr[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")}},yt=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=Tt(Je),N=Qe(()=>[{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:"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"}],[]),ut={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`},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=Qe(()=>N.filter(r=>!(r.key==="apis"||r.key==="redux"&&!Yr()||r.key==="analytics"&&!qr())),[N]),ht=N.filter(r=>r.key==="apis"||!!Y?.[r.key]).length,re=Qe(()=>Ee.length===0?!1:Ee.every(r=>!!Y?.[r.key]),[Ee,Y]),bt=r=>{r!=="apis"&&(D("light"),Tr(r))},mt=()=>{D("medium");const r=!re;Ee.forEach(R=>{!!Y?.[R.key]!==r&&Tr(R.key)}),B(r?"All modules enabled":"Optional modules disabled")},[Xe,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 Xe,useState as Me,useEffect as Ze,useRef as jr}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
- <_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/>
18
+ <Gr 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>
@@ -32,11 +32,11 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
32
32
  </T>
33
33
  </V>})}
34
34
  </C>}
35
- </C>,St=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
35
+ </C>,ft=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
36
36
  <J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
37
37
 
38
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"}}>
39
+ {[{key:"module",label:w("settings.navModules","Modules"),Icon:Q},{key:"ui",label:w("settings.navDisplay","Display"),Icon:So},{key:"limits",label:w("settings.navLimits","Limits"),Icon:Io},{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"),_r(),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
40
  <I color={R?e.white:e.grayText}size={12}/>
41
41
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:R?e.white:e.grayText}}numberOfLines={1}ellipsizeMode="tail">
42
42
  {r.label}
@@ -53,12 +53,12 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
53
53
  </T>
54
54
  <C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:1.5,borderRadius:10,borderWidth:1,borderColor:`${e.purple}25`}}>
55
55
  <T style={{fontFamily:S.interBold,fontSize:9.5,color:e.purple}}>
56
- {ft} of {N.length}
56
+ {ht} of {N.length}
57
57
  </T>
58
58
  </C>
59
59
  </C>
60
60
 
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"}}>
61
+ <V onPress={mt}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
62
  <T style={{fontFamily:S.interBold,fontSize:11,color:re?e.purple:e.white}}>
63
63
  {re?"Deselect All":"Select All"}
64
64
  </T>
@@ -67,23 +67,22 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
67
67
 
68
68
 
69
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}}>
70
+ {N.map(r=>{const R=Yr(),I=qr(),P=r.key==="redux"&&!R||r.key==="analytics"&&!I,E=r.key==="apis"||P,z=r.key==="apis"||!!Y?.[r.key]&&!P,H=ut[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?`${H.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}}>
71
71
 
72
72
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
73
73
 
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}/>}
74
+ <C style={{width:38,height:38,borderRadius:10,backgroundColor:z?H.bg:e.grayBackground,borderWidth:1,borderColor:z?H.border:e.grayBorderSecondary,alignItems:"center",justifyContent:"center",flexShrink:0}}>
75
+ {r.icon==="apis"&&<Qr color={z?H.color:e.grayTextWeak}size={16}/>}
76
+ {r.icon==="logs"&&<Zr color={z?H.color:e.grayTextWeak}size={16}/>}
77
+ {r.icon==="perf"&&<Zt color={z?H.color:e.grayTextWeak}size={16}/>}
78
+ {r.icon==="crash"&&<At color={z?H.color:e.grayTextWeak}size={16}/>}
79
+ {r.icon==="analytics"&&<Co color={z?H.color:e.grayTextWeak}size={16}/>}
80
+ {r.icon==="redux"&&<To color={z?H.color:e.grayTextWeak}size={16}/>}
81
+ {r.icon==="device"&&<Kt color={z?H.color:e.grayTextWeak}size={16}/>}
82
+ {r.icon==="storage"&&<Xt color={z?H.color:e.grayTextWeak}size={16}/>}
83
+ {r.icon==="media"&&<Qt color={z?H.color:e.grayTextWeak}size={16}/>}
84
+ {r.icon==="push"&&<Wo color={z?H.color:e.grayTextWeak}size={16}/>}
85
+ {r.icon==="socket"&&<Lo color={z?H.color:e.grayTextWeak}size={16}/>}
87
86
  </C>
88
87
 
89
88
 
@@ -119,7 +118,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
119
118
  </C>
120
119
 
121
120
 
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}]}}/>
121
+ <St value={z}disabled={E}onValueChange={()=>bt(r.key)}trackColor={{false:e.grayBorderSecondary,true:e.purple}}thumbColor={e.white}ios_backgroundColor={e.grayBorderSecondary}style={{transform:[{scaleX:.8},{scaleY:.8}]}}/>
123
122
  </C>
124
123
 
125
124
 
@@ -127,7 +126,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
127
126
 
128
127
  <C style={{flexDirection:"row",alignItems:"center",gap:5,flex:1}}>
129
128
  {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}}/>
129
+ <C style={{width:5.5,height:5.5,borderRadius:3,backgroundColor:z?H.color:e.grayTextWeak}}/>
131
130
  <T style={{fontFamily:S.interMedium,fontSize:10.5,lineHeight:14,color:z?e.grayTextStrong:e.grayTextWeak}}>
132
131
  {oe}
133
132
  </T>
@@ -135,12 +134,12 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
135
134
  </C>
136
135
 
137
136
 
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}}>
137
+ {(G||r.key==="media")&&<V onPress={()=>{D("light"),r.key==="media"?(_r(),xr("capture")):vo(r.key)}}hitSlop={6}style={{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:8.5,paddingVertical:4,borderRadius:6.5,backgroundColor:`${H.color}14`,borderWidth:1,borderColor:`${H.color}2A`}}>
138
+ <Ht color={H.color}size={10}/>
139
+ <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:H.color}}>
141
140
  {w("settings.configure","Configure")}
142
141
  </T>
143
- <Do color={$.color}size={8}/>
142
+ <Fo color={H.color}size={8}/>
144
143
  </V>}
145
144
  </C>}
146
145
  </C>})}
@@ -157,7 +156,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
157
156
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
158
157
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
159
158
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
160
- {Z?<Lt color={e.purple}size={15}/>:<At color={e.purple}size={15}/>}
159
+ {Z?<$t color={e.purple}size={15}/>:<Pt color={e.purple}size={15}/>}
161
160
  </C>
162
161
  <C style={{flex:1}}>
163
162
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -169,7 +168,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
169
168
  </C>
170
169
  </C>
171
170
 
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"}}>
171
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle Dark Theme"accessibilityState={{checked:Z}}onPress={()=>{const r=!Z;Eo(r),xt(r)}}style={{width:42,height:24,borderRadius:12,backgroundColor:Z?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Z?"flex-end":"flex-start"}}>
173
172
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
174
173
  </V>
175
174
  </C>
@@ -180,7 +179,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
180
179
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
181
180
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
182
181
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.blue600}14`,alignItems:"center",justifyContent:"center"}}>
183
- <Zr color={e.blue600}size={15}/>
182
+ <Xr color={e.blue600}size={15}/>
184
183
  </C>
185
184
  <C style={{flex:1}}>
186
185
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -193,11 +192,11 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
193
192
  </C>
194
193
 
195
194
  <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}/>}
195
+ {ve?.flag?<T style={{fontSize:13}}>{ve.flag}</T>:<Xr size={14}color={e.purple}/>}
197
196
  <T style={{fontFamily:S.interSemiBold,fontSize:12,color:e.purple}}>
198
197
  {ve?.nativeName||ve?.name||"English"}
199
198
  </T>
200
- <Do size={11}color={e.purple}/>
199
+ <Fo size={11}color={e.purple}/>
201
200
  </V>
202
201
  </C>
203
202
  </C>
@@ -213,7 +212,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
213
212
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
214
213
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
215
214
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
216
- <Ro color={e.purple}size={15}/>
215
+ <So color={e.purple}size={15}/>
217
216
  </C>
218
217
  <C style={{flex:1}}>
219
218
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -225,7 +224,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
225
224
  </C>
226
225
  </C>
227
226
 
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}}>
227
+ {Le!==Re&&<V onPress={()=>{Oo(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
228
  <Se size={11}color={e.white}/>
230
229
  <T style={{fontFamily:S.interBold,fontSize:11,color:e.white}}>
231
230
  Save ({Le}%)
@@ -234,7 +233,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
234
233
  </C>
235
234
 
236
235
  <C style={{marginTop:6}}>
237
- <Yr value={Le}onValueChange={Ar}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
236
+ <Jr value={Le}onValueChange={Ar}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
238
237
  </C>
239
238
  </C>
240
239
 
@@ -265,7 +264,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
265
264
  </C>
266
265
 
267
266
  <C style={{marginTop:6}}>
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)}/>
267
+ <Jr value={Lr}onValueChange={r=>{const R=Math.round(r*10)/10;ct(R)}}min={.1}max={1}step={.1}quickPresets={[.1,.3,.5,.7,1]}formatLabel={r=>r.toFixed(1)}/>
269
268
  </C>
270
269
  </C>
271
270
 
@@ -275,7 +274,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
275
274
  <C style={{gap:8}}>
276
275
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
277
276
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
278
- <Et color={e.purple}size={15}/>
277
+ <Wt color={e.purple}size={15}/>
279
278
  </C>
280
279
  <C style={{flex:1}}>
281
280
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -288,7 +287,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
288
287
  </C>
289
288
 
290
289
  <C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:10,padding:3,borderWidth:1,borderColor:e.dividerColor}}>
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"}}>
290
+ {[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const R=Mo===r.key;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Set transition animation to ${r.label}`}accessibilityState={{selected:R}}onPress={()=>No(r.key)}style={{flex:1,paddingVertical:7,alignItems:"center",borderRadius:8,backgroundColor:R?e.purple:"transparent"}}>
292
291
  <T style={{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:R?e.white:e.grayText}}>
293
292
  {r.label}
294
293
  </T>
@@ -305,7 +304,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
305
304
 
306
305
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
307
306
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
308
- <X color={e.purple}size={15}/>
307
+ <Q color={e.purple}size={15}/>
309
308
  </C>
310
309
  <C style={{flex:1}}>
311
310
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -319,7 +318,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
319
318
 
320
319
 
321
320
  <C style={{marginTop:6,gap:6}}>
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}}>
321
+ <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:Xe?e.purple:e.grayBorderSecondary,paddingHorizontal:14,paddingVertical:11}}>
323
322
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
324
323
  <C style={{width:8,height:8,borderRadius:4,backgroundColor:e.purple}}/>
325
324
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -332,14 +331,14 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
332
331
  </C>
333
332
  </C>
334
333
 
335
- <C style={{transform:[{rotate:Qe?"180deg":"0deg"}]}}>
336
- <Xt color={e.grayText}size={15}/>
334
+ <C style={{transform:[{rotate:Xe?"180deg":"0deg"}]}}>
335
+ <Yt color={e.grayText}size={15}/>
337
336
  </C>
338
337
  </V>
339
338
 
340
339
 
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}}>
340
+ {Xe&&<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}}>
341
+ {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={()=>{Ao(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}}>
343
342
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
344
343
  <C style={{width:6,height:6,borderRadius:3,backgroundColor:P?e.purple:e.grayTextWeak}}/>
345
344
  <T style={{fontFamily:P?S.interBold:S.interMedium,fontSize:13,color:P?e.purple:e.primaryBlack}}>
@@ -361,20 +360,19 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
361
360
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
362
361
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1,marginRight:10}}>
363
362
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
364
- <Ot color={e.purple}size={15}/>
363
+ <Lt color={e.purple}size={15}/>
365
364
  </C>
366
365
  <C style={{flex:1}}>
367
366
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
368
367
  NPM Update Toast
369
368
  </T>
370
369
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
371
- Show a floating toast banner with countdown progress when
372
- a newer release is published on npm.
370
+ {w("settings.npmUpdateToastDesc","Show a floating toast banner with countdown progress when a newer release is published on npm.")}
373
371
  </T>
374
372
  </C>
375
373
  </C>
376
374
 
377
- <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"}}>
375
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:je}}onPress={()=>Uo(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"}}>
378
376
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
379
377
  </V>
380
378
  </C>
@@ -392,20 +390,19 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
392
390
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
393
391
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
394
392
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
395
- <$o color={e.purple}size={16}/>
393
+ <Io color={e.purple}size={16}/>
396
394
  </C>
397
395
  <C style={{flex:1}}>
398
396
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
399
397
  Auto-Calculate Limits from RAM
400
398
  </T>
401
399
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
402
- Dynamically sets log limits according to available device
403
- memory
400
+ {w("settings.autoCalculateLimitsRamDesc","Dynamically sets log limits according to available device memory")}
404
401
  </T>
405
402
  </C>
406
403
  </C>
407
404
 
408
- <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"}}>
405
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:W}}onPress={()=>Yo(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"}}>
409
406
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
410
407
  </V>
411
408
  </C>
@@ -415,7 +412,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
415
412
 
416
413
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
417
414
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:W?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
418
- <Co color={W?e.purple:e.grayTextWeak}size={15}/>
415
+ <Qr color={W?e.purple:e.grayTextWeak}size={15}/>
419
416
  </C>
420
417
  <C style={{flex:1}}>
421
418
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:W?e.primaryBlack:e.grayText}}>
@@ -466,15 +463,14 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
466
463
 
467
464
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
468
465
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.emerald500}14`,alignItems:"center",justifyContent:"center"}}>
469
- <Bo color={e.emerald500}size={15}/>
466
+ <Ro color={e.emerald500}size={15}/>
470
467
  </C>
471
468
  <C style={{flex:1}}>
472
469
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
473
470
  OS Memory Warning Guard
474
471
  </T>
475
472
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
476
- Automatically prunes in-memory buffers by 50% when the OS
477
- signals low memory
473
+ {w("settings.osMemoryWarningGuardDesc","Automatically prunes in-memory buffers by 50% when the OS signals low memory")}
478
474
  </T>
479
475
  </C>
480
476
  <C style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:`${e.emerald500}18`}}>
@@ -496,7 +492,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
496
492
  {w("settings.memory.manualDescription","Prune older entries across all log stores and free RAM")}
497
493
  </T>
498
494
  </C>
499
- <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}}>
495
+ <V onPress={()=>{const r=ei("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}}>
500
496
  <O size={13}color={e.white}/>
501
497
  <T style={{fontFamily:S.interBold,fontSize:11.5,color:e.white}}>
502
498
  Prune Now
@@ -522,9 +518,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
522
518
  </C>
523
519
  </C>
524
520
 
525
- {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`}}>
526
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:Q?e.emerald500:e.grayText}}>
527
- {Q?w("settings.media.enabled","ON"):"OFF"}
521
+ {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: ${X?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${X?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:X?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:X?`${e.emerald500}4D`:`${e.grayText}33`}}>
522
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:X?e.emerald500:e.grayText}}>
523
+ {X?w("settings.media.enabled","ON"):"OFF"}
528
524
  </T>
529
525
  </V>})}
530
526
  </C>
@@ -545,7 +541,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
545
541
  </C>
546
542
  </C>
547
543
 
548
- {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}}>
544
+ {F({icon:<Po 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}}>
549
545
  {["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`}}>
550
546
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
551
547
  {r.toUpperCase()}
@@ -553,7 +549,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
553
549
  </V>})}
554
550
  </C>})}
555
551
 
556
- {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`}}>
552
+ {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"),$e(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),$e(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`}}>
557
553
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
558
554
  {L?w("settings.media.enabled","ON"):"OFF"}
559
555
  </T>
@@ -576,23 +572,23 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
576
572
  </C>
577
573
  </C>
578
574
 
579
- {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}}>
580
- {[{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`}}>
575
+ {F({icon:<Ho 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}}>
576
+ {[{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"),Hr(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`}}>
581
577
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
582
578
  {r.label}
583
579
  </T>
584
580
  </V>})}
585
581
  </C>})}
586
582
 
587
- {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}}>
588
- {[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`}}>
583
+ {F({icon:<Do 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}}>
584
+ {[15,24,30,60].map(r=>{const R=$r===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`}}>
589
585
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
590
586
  {r}fps
591
587
  </T>
592
588
  </V>})}
593
589
  </C>})}
594
590
 
595
- {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`}}>
591
+ {F({icon:<$o 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`}}>
596
592
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
597
593
  {A?"ON":"OFF"}
598
594
  </T>
@@ -635,9 +631,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
635
631
  </C>
636
632
 
637
633
 
638
- <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}}>
639
- <Io size={14}color={e.grayTextWeak}/>
640
- <_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"/>
634
+ <C style={{flexDirection:"row",alignItems:"center",gap:8,backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,paddingHorizontal:10,paddingVertical:Ct.OS==="ios"?8:4}}>
635
+ <Bo size={14}color={e.grayTextWeak}/>
636
+ <Gr 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"/>
641
637
  <V onPress={Or}disabled={!We.trim()}style={{paddingHorizontal:10,paddingVertical:5.5,borderRadius:7,backgroundColor:We.trim()?e.purple:`${e.purple}33`}}>
642
638
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.white}}>
643
639
  {w("common.add","+ Add")}
@@ -659,8 +655,8 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
659
655
  </T>
660
656
  </C>
661
657
  {I?<C style={{padding:5,borderRadius:5,backgroundColor:`${e.grayTextWeak}18`,alignItems:"center",justifyContent:"center"}}>
662
- <Kt size={12}color={e.grayTextWeak}/>
663
- </C>:<V onPress={()=>bt(R)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
658
+ <_t size={12}color={e.grayTextWeak}/>
659
+ </C>:<V onPress={()=>yt(R)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
664
660
  <O size={12}color={e.errorColor}/>
665
661
  </V>}
666
662
  </C>})}
@@ -672,7 +668,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
672
668
 
673
669
 
674
670
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
675
- {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`}}>
671
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.apis.clearNetworkLogs"),description:w("settings.apis.clearNetworkLogsDescription",{count:Ue.length}),isLast:!0,onPress:()=>{Rt(),Zo(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`}}>
676
672
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
677
673
  {w("common.clear")}
678
674
  </T>
@@ -681,12 +677,12 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
681
677
  <C style={{height:48}}/>
682
678
  </J>;else if(v==="logs")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
683
679
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
684
- {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)"}})}
680
+ {F({icon:<Zr color={e.purple}size={16}/>,label:w("settings.logs.maxConsoleLogs"),description:w("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Rr,onChange:Jo,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
685
681
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
686
682
  <T style={{fontFamily:S.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack,paddingTop:6}}>
687
683
  {w("settings.logs.logLevels")}
688
684
  </T>
689
- {["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"}}>
685
+ {["info","warn","error"].map(r=>{const R=Go?.[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:()=>_o(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"}}>
690
686
  {R&&<Se size={12}color={e.purple}/>}
691
687
  </C>})})}
692
688
  </C>
@@ -713,14 +709,14 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
713
709
  </C>
714
710
  </C>
715
711
 
716
- <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"}}>
712
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle show duplicate logs"accessibilityState={{checked:Ne}}onPress={()=>jo(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"}}>
717
713
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
718
714
  </V>
719
715
  </C>
720
716
  </C>
721
717
 
722
718
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
723
- {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`}}>
719
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.logs.clearConsoleLogs"),description:w("settings.logs.clearConsoleLogsDescription",{count:Ge.length}),isLast:!0,onPress:()=>{Vt(),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`}}>
724
720
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
725
721
  {w("common.clear")}
726
722
  </T>
@@ -729,10 +725,10 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
729
725
  <C style={{height:48}}/>
730
726
  </J>;else if(v==="analytics")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
731
727
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
732
- {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})}
728
+ {F({icon:<Co 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})}
733
729
  </C>
734
730
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
735
- {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`}}>
731
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.analytics.clearAnalyticsEvents"),description:w("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{zt(),et(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`}}>
736
732
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
737
733
  {w("common.clear")}
738
734
  </T>
@@ -741,27 +737,27 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
741
737
  <C style={{height:48}}/>
742
738
  </J>;else if(v==="redux")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
743
739
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
744
- {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"}}>
740
+ {F({icon:<To color={e.purple}size={16}/>,label:w("settings.redux.autoRefresh"),description:w("settings.redux.autoRefreshDescription"),onPress:()=>Ko(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"}}>
745
741
  {qe&&<Se size={12}color={e.purple}/>}
746
742
  </C>})}
747
743
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
748
- {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})}
744
+ {F({icon:<Q color={e.purple}size={16}/>,label:w("settings.redux.defaultJsonExpandDepth"),description:w("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:Xo,onSelect:Qo},isLast:!0})}
749
745
  </C>
750
746
 
751
747
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
752
- {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`}}>
748
+ {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:()=>{rt(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`}}>
753
749
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
754
750
  {w("common.clear")}
755
751
  </T>
756
752
  </C>})}
757
753
  </C>
758
754
  <C style={{height:48}}/>
759
- </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}>
755
+ </J>;else if(v==="crash"){const r=!!$?.js&&!$?.native&&!!$?.render&&!$?.promise&&!$?.custom,R=!$?.js&&!$?.native&&!$?.render&&!$?.promise&&!$?.custom,I=!!$?.js&&!!$?.native&&!!$?.render&&!!$?.promise&&!!$?.custom,P=["js","native","render","promise","custom"].filter(z=>!$?.[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:<Mt 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:<Ut 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:<Gt 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:<Bo size={16}color={e.emerald400}/>}];U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
760
756
 
761
757
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
762
758
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
763
759
  <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
764
- <Fo size={16}color={e.purple}/>
760
+ <Vo size={16}color={e.purple}/>
765
761
  <T style={{fontFamily:S.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple}}>
766
762
  {w("settings.crash.governancePresets","GOVERNANCE PRESETS")}
767
763
  </T>
@@ -776,21 +772,21 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
776
772
 
777
773
  <C style={{flexDirection:"row",gap:8}}>
778
774
  <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}}>
779
- <Nt size={16}color={r?e.purple:e.grayText}/>
775
+ <Et size={16}color={r?e.purple:e.grayText}/>
780
776
  <T style={{fontFamily:S.interBold,fontSize:11,color:r?e.purple:e.primaryBlack}}>
781
777
  {w("settings.crash.presetBalanced","Balanced")}
782
778
  </T>
783
779
  </V>
784
780
 
785
781
  <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}}>
786
- <Fo size={16}color={R?e.greenColor:e.grayText}/>
782
+ <Vo size={16}color={R?e.greenColor:e.grayText}/>
787
783
  <T style={{fontFamily:S.interBold,fontSize:11,color:R?e.greenColor:e.primaryBlack}}>
788
784
  {w("settings.crash.presetMaxShield","Max Shield")}
789
785
  </T>
790
786
  </V>
791
787
 
792
788
  <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}}>
793
- <Ut size={16}color={I?e.grayText:e.grayTextWeak}/>
789
+ <Ot size={16}color={I?e.grayText:e.grayTextWeak}/>
794
790
  <T style={{fontFamily:S.interBold,fontSize:11,color:I?e.grayText:e.primaryBlack}}>
795
791
  {w("settings.crash.presetSilent","Silent Mode")}
796
792
  </T>
@@ -808,7 +804,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
808
804
  {w("settings.crash.categoryMatrix","ERROR INTERCEPTION & IGNORED CATEGORIES")}
809
805
  </T>
810
806
 
811
- {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}}>
807
+ {E.map((z,H)=>{const G=!!$?.[z.key],oe=H===E.length-1;return F({key:z.key,icon:z.icon,label:z.label,description:z.desc,isLast:oe,onPress:()=>{ot(Nr=>({...Nr,[z.key]:!Nr[z.key]}))},right:<C style={{flexDirection:"row",alignItems:"center",gap:8}}>
812
808
  <C style={{paddingHorizontal:6,paddingVertical:2.5,borderRadius:5,backgroundColor:G?`${e.warningIconGold}18`:`${e.greenColor}18`}}>
813
809
  <T style={{fontFamily:S.interBold,fontSize:9.5,color:G?e.warningIconGold:e.greenColor}}>
814
810
  {G?w("settings.crash.ignoredBadge","IGNORED"):w("settings.crash.protectedBadge","PROTECTED")}
@@ -822,20 +818,20 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
822
818
 
823
819
 
824
820
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
825
- {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")}})}
821
+ {F({icon:<Ro 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:tt||"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")}})}
826
822
  </C>
827
823
 
828
824
 
829
825
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
830
- {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)"}})}
826
+ {F({icon:<Q 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)"}})}
831
827
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
832
- {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`}}>
828
+ {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:()=>{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`}}>
833
829
  <T style={{fontFamily:S.interBold,fontSize:11,color:e.purple}}>
834
830
  {w("settings.reset","Reset")}
835
831
  </T>
836
832
  </C>})}
837
833
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
838
- {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`}}>
834
+ {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:()=>{Bt(),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`}}>
839
835
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
840
836
  {w("common.clear","Clear")}
841
837
  </T>
@@ -845,9 +841,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
845
841
  </J>}else v==="push"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
846
842
 
847
843
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
848
- {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)"}})}
844
+ {F({icon:<Q color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:it,onChange:lt,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
849
845
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
850
- {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`}}>
846
+ {F({icon:<Wo 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`}}>
851
847
  <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
852
848
  ACTIVE
853
849
  </T>
@@ -892,7 +888,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
892
888
 
893
889
 
894
890
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
895
- {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`}}>
891
+ {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:()=>{at(),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`}}>
896
892
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
897
893
  {w("common.clear")}
898
894
  </T>
@@ -902,9 +898,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
902
898
  </J>:v==="socket"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
903
899
 
904
900
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
905
- {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)"}})}
901
+ {F({icon:<Q color={e.purple}size={16}/>,label:"Max WebSocket Connections",description:"Ring buffer limit for active & closed socket sessions (10-200)",numericInput:{value:nt,onChange:st,min:10,max:200,placeholder:"Enter max sockets (10-200)"}})}
906
902
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
907
- {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`}}>
903
+ {F({icon:<Lo 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`}}>
908
904
  <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
909
905
  ACTIVE
910
906
  </T>
@@ -921,25 +917,25 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
921
917
  </C>
922
918
 
923
919
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
924
- <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}}>
920
+ <V onPress={()=>{He("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}}>
925
921
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.blue600}}>
926
922
  + Chat Room (WS)
927
923
  </T>
928
924
  </V>
929
925
 
930
- <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}}>
926
+ <V onPress={()=>{He("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}}>
931
927
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.emerald600}}>
932
928
  + Crypto Feed (WSS)
933
929
  </T>
934
930
  </V>
935
931
 
936
- <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}}>
932
+ <V onPress={()=>{He("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}}>
937
933
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.violet600}}>
938
934
  + Socket.IO Room
939
935
  </T>
940
936
  </V>
941
937
 
942
- <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}}>
938
+ <V onPress={()=>{He("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}}>
943
939
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.brandPurple}}>
944
940
  + Echo Test
945
941
  </T>
@@ -949,7 +945,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
949
945
 
950
946
 
951
947
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
952
- {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`}}>
948
+ {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:()=>{dt(),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`}}>
953
949
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
954
950
  {w("common.clear")}
955
951
  </T>
@@ -992,7 +988,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
992
988
  </C>
993
989
  </C>
994
990
 
995
- {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}}>
991
+ {F({icon:<Po 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}}>
996
992
  {["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`}}>
997
993
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
998
994
  {r.toUpperCase()}
@@ -1000,7 +996,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
1000
996
  </V>})}
1001
997
  </C>})}
1002
998
 
1003
- {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`}}>
999
+ {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"),$e(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),$e(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`}}>
1004
1000
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
1005
1001
  {L?w("settings.media.enabled","ON"):"OFF"}
1006
1002
  </T>
@@ -1023,23 +1019,23 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
1023
1019
  </C>
1024
1020
  </C>
1025
1021
 
1026
- {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}}>
1027
- {[{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`}}>
1022
+ {F({icon:<Ho 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}}>
1023
+ {[{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"),Hr(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`}}>
1028
1024
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1029
1025
  {r.label}
1030
1026
  </T>
1031
1027
  </V>})}
1032
1028
  </C>})}
1033
1029
 
1034
- {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}}>
1035
- {[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`}}>
1030
+ {F({icon:<Do 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}}>
1031
+ {[15,24,30,60].map(r=>{const R=$r===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`}}>
1036
1032
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1037
1033
  {r}fps
1038
1034
  </T>
1039
1035
  </V>})}
1040
1036
  </C>})}
1041
1037
 
1042
- {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`}}>
1038
+ {F({icon:<$o 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`}}>
1043
1039
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
1044
1040
  {A?"ON":"OFF"}
1045
1041
  </T>
@@ -1057,15 +1053,15 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
1057
1053
  <C style={{height:48}}/>
1058
1054
  </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}}>
1059
1055
 
1060
- <C style={[Gr.absoluteFill,v!=="main"&&{pointerEvents:"none"}]}>
1061
- {St()}
1056
+ <C style={[Ur.absoluteFill,v!=="main"&&{pointerEvents:"none"}]}>
1057
+ {ft()}
1062
1058
  </C>
1063
1059
 
1064
1060
 
1065
- {v!=="main"&&<_.View style={[Gr.absoluteFill,{backgroundColor:e.grayBackground,opacity:Oe,transform:[{translateX:Oe.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
1061
+ {v!=="main"&&<_.View style={[Ur.absoluteFill,{backgroundColor:e.grayBackground,opacity:Oe,transform:[{translateX:Oe.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
1066
1062
  {U}
1067
1063
  </_.View>}
1068
1064
 
1069
1065
 
1070
- <Pt visible={ut}onClose={()=>Er(!1)}/>
1071
- </C>};export default Bi;
1066
+ <Dt visible={gt}onClose={()=>Er(!1)}/>
1067
+ </C>};export default ri;