react-native-inapp-inspector 2.5.13 → 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 (252) hide show
  1. package/README.md +0 -8
  2. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +1 -0
  3. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  4. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  5. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  6. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  7. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  8. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
  9. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  10. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.dex +0 -0
  11. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  12. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
  13. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  14. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  15. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  16. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +1 -0
  17. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
  18. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
  19. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +176 -0
  20. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  21. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +236 -0
  22. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
  23. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
  24. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
  25. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
  26. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
  27. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
  28. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
  29. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +337 -0
  30. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
  31. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
  32. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
  33. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
  34. package/android/build/generated/source/codegen/schema.json +1 -0
  35. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +19 -0
  36. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  37. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  38. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  39. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  40. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  41. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  42. package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_inappinspector_file_paths.xml.flat +0 -0
  43. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -0
  44. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  45. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  46. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  47. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  48. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  49. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  50. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  51. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  52. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +28 -0
  53. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +19 -0
  54. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  55. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  56. package/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/inappinspector_file_paths.xml +7 -0
  57. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  58. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  59. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  60. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  61. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  62. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  63. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  64. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  65. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  66. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  67. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  68. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  69. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  70. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  71. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  160. package/android/build/outputs/logs/manifest-merger-debug-report.txt +35 -0
  161. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  162. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  163. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  164. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  165. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  166. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  167. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  168. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  169. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  170. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  171. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  172. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  173. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +118 -31
  174. package/dist/commonjs/components/Inspector/ConsoleExportModal.js +1 -1
  175. package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
  176. package/dist/commonjs/components/Inspector/DebuggingTab.js +21 -21
  177. package/dist/commonjs/components/Inspector/FabLauncher.js +3 -3
  178. package/dist/commonjs/components/Inspector/InspectorHeader.js +30 -30
  179. package/dist/commonjs/components/Inspector/MainScreen.js +38 -75
  180. package/dist/commonjs/components/Inspector/NetworkExportModal.js +4 -4
  181. package/dist/commonjs/components/Inspector/NetworkTab.js +51 -51
  182. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  183. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +17 -16
  184. package/dist/commonjs/components/Inspector/SettingsPanel.js +40 -41
  185. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  186. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +34 -3
  187. package/dist/commonjs/components/Inspector/TabBar.js +9 -15
  188. package/dist/commonjs/components/Inspector/UiInspectorDetail.js +16 -16
  189. package/dist/commonjs/components/LogCard.js +7 -7
  190. package/dist/commonjs/components/SkeletonPlaceholder.d.ts +3 -0
  191. package/dist/commonjs/components/SkeletonPlaceholder.js +34 -3
  192. package/dist/commonjs/constants/version.d.ts +1 -1
  193. package/dist/commonjs/constants/version.js +1 -1
  194. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  195. package/dist/commonjs/helpers/shareFormatter.js +14 -14
  196. package/dist/commonjs/helpers/uiInspectorEngine.js +9 -9
  197. package/dist/commonjs/index.d.ts +1 -1
  198. package/dist/commonjs/index.js +3 -3
  199. package/dist/commonjs/native/NativeInspector.d.ts +2 -0
  200. package/dist/commonjs/native/NativeInspector.js +1 -1
  201. package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
  202. package/dist/commonjs/styles/AppFonts.d.ts +4 -0
  203. package/dist/commonjs/styles/AppFonts.js +1 -1
  204. package/dist/commonjs/styles/index.d.ts +2 -0
  205. package/dist/commonjs/styles/index.js +1 -1
  206. package/dist/commonjs/types/enums.d.ts +0 -2
  207. package/dist/commonjs/types/enums.js +1 -1
  208. package/dist/commonjs/types/interfaces.d.ts +1 -1
  209. package/dist/esm/components/Inspector/BoxModelVisualizer.js +3 -3
  210. package/dist/esm/components/Inspector/ConsoleExportModal.js +1 -1
  211. package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
  212. package/dist/esm/components/Inspector/DebuggingTab.js +106 -106
  213. package/dist/esm/components/Inspector/FabLauncher.js +42 -42
  214. package/dist/esm/components/Inspector/InspectorHeader.js +50 -50
  215. package/dist/esm/components/Inspector/MainScreen.js +87 -124
  216. package/dist/esm/components/Inspector/NetworkExportModal.js +1 -1
  217. package/dist/esm/components/Inspector/NetworkTab.js +83 -83
  218. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  219. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +23 -22
  220. package/dist/esm/components/Inspector/SettingsPanel.js +106 -107
  221. package/dist/esm/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  222. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +42 -11
  223. package/dist/esm/components/Inspector/TabBar.js +35 -41
  224. package/dist/esm/components/Inspector/UiA11yAuditPanel.js +4 -4
  225. package/dist/esm/components/Inspector/UiInspectorDetail.js +141 -141
  226. package/dist/esm/components/Inspector/UiInspectorOverlay.js +81 -81
  227. package/dist/esm/components/Inspector/UiInspectorTab.js +10 -10
  228. package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +35 -35
  229. package/dist/esm/components/LogCard.js +53 -53
  230. package/dist/esm/components/SkeletonPlaceholder.d.ts +3 -0
  231. package/dist/esm/components/SkeletonPlaceholder.js +42 -11
  232. package/dist/esm/constants/version.d.ts +1 -1
  233. package/dist/esm/constants/version.js +1 -1
  234. package/dist/esm/helpers/remoteConfig.js +1 -1
  235. package/dist/esm/helpers/shareFormatter.js +14 -14
  236. package/dist/esm/helpers/uiInspectorEngine.js +8 -8
  237. package/dist/esm/index.d.ts +1 -1
  238. package/dist/esm/index.js +8 -8
  239. package/dist/esm/native/NativeInspector.d.ts +2 -0
  240. package/dist/esm/native/NativeInspector.js +1 -1
  241. package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
  242. package/dist/esm/styles/AppFonts.d.ts +4 -0
  243. package/dist/esm/styles/AppFonts.js +1 -1
  244. package/dist/esm/styles/index.d.ts +2 -0
  245. package/dist/esm/styles/index.js +1 -1
  246. package/dist/esm/types/enums.d.ts +0 -2
  247. package/dist/esm/types/enums.js +1 -1
  248. package/dist/esm/types/interfaces.d.ts +1 -1
  249. package/ios/NetworkInspectorModule.mm +288 -325
  250. package/package.json +1 -1
  251. package/src/native/NativeInspector.ts +30 -0
  252. package/src/native/NativeNetworkInspector.ts +2 -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,7 +360,7 @@ 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}}>
@@ -373,7 +372,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
373
372
  </C>
374
373
  </C>
375
374
 
376
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:je}}onPress={()=>Jo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:je?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:je?"flex-end":"flex-start"}}>
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"}}>
377
376
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
378
377
  </V>
379
378
  </C>
@@ -391,7 +390,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
391
390
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
392
391
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
393
392
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
394
- <$o color={e.purple}size={16}/>
393
+ <Io color={e.purple}size={16}/>
395
394
  </C>
396
395
  <C style={{flex:1}}>
397
396
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -403,7 +402,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
403
402
  </C>
404
403
  </C>
405
404
 
406
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:W}}onPress={()=>Xo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:W?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:W?"flex-end":"flex-start"}}>
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"}}>
407
406
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
408
407
  </V>
409
408
  </C>
@@ -413,7 +412,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
413
412
 
414
413
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
415
414
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:W?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
416
- <Co color={W?e.purple:e.grayTextWeak}size={15}/>
415
+ <Qr color={W?e.purple:e.grayTextWeak}size={15}/>
417
416
  </C>
418
417
  <C style={{flex:1}}>
419
418
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:W?e.primaryBlack:e.grayText}}>
@@ -464,7 +463,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
464
463
 
465
464
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
466
465
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.emerald500}14`,alignItems:"center",justifyContent:"center"}}>
467
- <Bo color={e.emerald500}size={15}/>
466
+ <Ro color={e.emerald500}size={15}/>
468
467
  </C>
469
468
  <C style={{flex:1}}>
470
469
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -493,7 +492,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
493
492
  {w("settings.memory.manualDescription","Prune older entries across all log stores and free RAM")}
494
493
  </T>
495
494
  </C>
496
- <V onPress={()=>{const r=zi("manual",.5);B(w("settings.memory.pruned",{count:r.totalPruned},`Pruned ${r.totalPruned} items from memory`))}}style={{backgroundColor:e.purple,paddingHorizontal:12,paddingVertical:8,borderRadius:8,flexDirection:"row",alignItems:"center",gap:5}}>
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}}>
497
496
  <O size={13}color={e.white}/>
498
497
  <T style={{fontFamily:S.interBold,fontSize:11.5,color:e.white}}>
499
498
  Prune Now
@@ -519,9 +518,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
519
518
  </C>
520
519
  </C>
521
520
 
522
- {F({icon:<Te color={e.purple}size={16}/>,label:w("settings.media.enableFloatingWidget","Enable Floating Widget"),description:w("settings.media.enableFloatingWidgetDesc","Shows draggable quick screenshot & video recording button on screen"),isLast:!0,onPress:()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${Q?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${Q?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:Q?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:Q?`${e.emerald500}4D`:`${e.grayText}33`}}>
523
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:Q?e.emerald500:e.grayText}}>
524
- {Q?w("settings.media.enabled","ON"):"OFF"}
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"}
525
524
  </T>
526
525
  </V>})}
527
526
  </C>
@@ -542,7 +541,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
542
541
  </C>
543
542
  </C>
544
543
 
545
- {F({icon:<Lo color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
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}}>
546
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`}}>
547
546
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
548
547
  {r.toUpperCase()}
@@ -550,7 +549,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
550
549
  </V>})}
551
550
  </C>})}
552
551
 
553
- {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
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`}}>
554
553
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
555
554
  {L?w("settings.media.enabled","ON"):"OFF"}
556
555
  </T>
@@ -573,23 +572,23 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
573
572
  </C>
574
573
  </C>
575
574
 
576
- {F({icon:<Po color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
577
- {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const R=Dr===r.key;return<V key={r.key}onPress={()=>{D("light"),$r(r.key),B(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
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`}}>
578
577
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
579
578
  {r.label}
580
579
  </T>
581
580
  </V>})}
582
581
  </C>})}
583
582
 
584
- {F({icon:<Ho color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
585
- {[15,24,30,60].map(r=>{const R=Hr===r;return<V key={r}onPress={()=>{D("light"),Pr(r),B(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
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`}}>
586
585
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
587
586
  {r}fps
588
587
  </T>
589
588
  </V>})}
590
589
  </C>})}
591
590
 
592
- {F({icon:<Wo color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
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`}}>
593
592
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
594
593
  {A?"ON":"OFF"}
595
594
  </T>
@@ -632,9 +631,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
632
631
  </C>
633
632
 
634
633
 
635
- <C style={{flexDirection:"row",alignItems:"center",gap:8,backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,paddingHorizontal:10,paddingVertical:Ur.OS==="ios"?8:4}}>
636
- <Io size={14}color={e.grayTextWeak}/>
637
- <_r style={{flex:1,fontFamily:S.interMedium,fontSize:12,lineHeight:16,color:e.primaryBlack,padding:0}}placeholder={w("settings.apis.addPatternPlaceholder","e.g. https://api.example.com or .*analytics.*")}placeholderTextColor={e.grayTextWeak}value={We}onChangeText={vr}autoCapitalize="none"autoCorrect={!1}onSubmitEditing={Or}returnKeyType="done"/>
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"/>
638
637
  <V onPress={Or}disabled={!We.trim()}style={{paddingHorizontal:10,paddingVertical:5.5,borderRadius:7,backgroundColor:We.trim()?e.purple:`${e.purple}33`}}>
639
638
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.white}}>
640
639
  {w("common.add","+ Add")}
@@ -656,8 +655,8 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
656
655
  </T>
657
656
  </C>
658
657
  {I?<C style={{padding:5,borderRadius:5,backgroundColor:`${e.grayTextWeak}18`,alignItems:"center",justifyContent:"center"}}>
659
- <Kt size={12}color={e.grayTextWeak}/>
660
- </C>:<V onPress={()=>bt(R)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
658
+ <_t size={12}color={e.grayTextWeak}/>
659
+ </C>:<V onPress={()=>yt(R)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
661
660
  <O size={12}color={e.errorColor}/>
662
661
  </V>}
663
662
  </C>})}
@@ -669,7 +668,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
669
668
 
670
669
 
671
670
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
672
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.apis.clearNetworkLogs"),description:w("settings.apis.clearNetworkLogsDescription",{count:Ue.length}),isLast:!0,onPress:()=>{Bt(),ot(null),j.alert(w("common.success"),w("settings.apis.networkLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
673
672
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
674
673
  {w("common.clear")}
675
674
  </T>
@@ -678,12 +677,12 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
678
677
  <C style={{height:48}}/>
679
678
  </J>;else if(v==="logs")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
680
679
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
681
- {F({icon:<So color={e.purple}size={16}/>,label:w("settings.logs.maxConsoleLogs"),description:w("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Rr,onChange:Ko,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
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)"}})}
682
681
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
683
682
  <T style={{fontFamily:S.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack,paddingTop:6}}>
684
683
  {w("settings.logs.logLevels")}
685
684
  </T>
686
- {["info","warn","error"].map(r=>{const R=qo?.[r],I=r==="error"?e.errorColor:r==="warn"?e.warningIconGold:e.skyBlue,P=w(r==="info"?"settings.logs.showInfo":r==="warn"?"settings.logs.showWarn":"settings.logs.showError"),E=w(r==="info"?"settings.logs.showInfoDesc":r==="warn"?"settings.logs.showWarnDesc":"settings.logs.showErrorDesc");return F({icon:<C style={{width:12,height:12,borderRadius:6,backgroundColor:I}}/>,label:P,description:E,isLast:r==="error",onPress:()=>Yo(z=>({...z,[r]:!z[r]})),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:R?e.purple:e.grayTextWeak,backgroundColor:R?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
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"}}>
687
686
  {R&&<Se size={12}color={e.purple}/>}
688
687
  </C>})})}
689
688
  </C>
@@ -710,14 +709,14 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
710
709
  </C>
711
710
  </C>
712
711
 
713
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle show duplicate logs"accessibilityState={{checked:Ne}}onPress={()=>_o(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:Ne?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Ne?"flex-end":"flex-start"}}>
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"}}>
714
713
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
715
714
  </V>
716
715
  </C>
717
716
  </C>
718
717
 
719
718
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
720
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.logs.clearConsoleLogs"),description:w("settings.logs.clearConsoleLogsDescription",{count:Ge.length}),isLast:!0,onPress:()=>{Ft(),j.alert(w("common.success"),w("settings.logs.consoleLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
721
720
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
722
721
  {w("common.clear")}
723
722
  </T>
@@ -726,10 +725,10 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
726
725
  <C style={{height:48}}/>
727
726
  </J>;else if(v==="analytics")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
728
727
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
729
- {F({icon:<To color={e.purple}size={16}/>,label:w("settings.analytics.maxAnalyticsEvents"),description:w("settings.analytics.maxAnalyticsEventsDescription",{count:_e.length}),numericInput:{value:Vr,onChange:Qo,min:10,max:75,placeholder:"Enter max events (10-75)"},isLast:!0})}
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})}
730
729
  </C>
731
730
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
732
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.analytics.clearAnalyticsEvents"),description:w("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{It(),tt(null),j.alert(w("common.success"),w("settings.analytics.analyticsEventsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
733
732
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
734
733
  {w("common.clear")}
735
734
  </T>
@@ -738,27 +737,27 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
738
737
  <C style={{height:48}}/>
739
738
  </J>;else if(v==="redux")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
740
739
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
741
- {F({icon:<Vo color={e.purple}size={16}/>,label:w("settings.redux.autoRefresh"),description:w("settings.redux.autoRefreshDescription"),onPress:()=>Zo(r=>!r),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:qe?e.purple:e.grayTextWeak,backgroundColor:qe?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
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"}}>
742
741
  {qe&&<Se size={12}color={e.purple}/>}
743
742
  </C>})}
744
743
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
745
- {F({icon:<X color={e.purple}size={16}/>,label:w("settings.redux.defaultJsonExpandDepth"),description:w("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:et,onSelect:rt},isLast:!0})}
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})}
746
745
  </C>
747
746
 
748
747
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
749
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.redux.clearReduxState"),description:w(Ve?"settings.redux.clearReduxStateDescription":"settings.redux.clearReduxStateEmpty"),isLast:!0,onPress:()=>{it(null),j.alert(w("common.success"),w("settings.redux.reduxStateCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
750
749
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
751
750
  {w("common.clear")}
752
751
  </T>
753
752
  </C>})}
754
753
  </C>
755
754
  <C style={{height:48}}/>
756
- </J>;else if(v==="crash"){const r=!!H?.js&&!H?.native&&!!H?.render&&!H?.promise&&!H?.custom,R=!H?.js&&!H?.native&&!H?.render&&!H?.promise&&!H?.custom,I=!!H?.js&&!!H?.native&&!!H?.render&&!!H?.promise&&!!H?.custom,P=["js","native","render","promise","custom"].filter(z=>!H?.[z]).length,E=[{key:"js",label:w("settings.crash.ignoreJs","Ignore JS Runtime Crashes"),desc:w("settings.crash.ignoreJsDesc","Bypasses unhandled JS runtime exceptions, TypeError, SyntaxError & ErrorUtils"),icon:<Gt size={16}color={e.yellow400}/>},{key:"native",label:w("settings.crash.ignoreNative","Ignore Native Platform Crashes"),desc:w("settings.crash.ignoreNativeDesc","Bypasses iOS Mach-O signals, SIGSEGV, NullPointerException & ExceptionsManager"),icon:<_t size={16}color={e.cyan600}/>},{key:"render",label:w("settings.crash.ignoreRender","Ignore React Render Errors"),desc:w("settings.crash.ignoreRenderDesc","Bypasses React component tree render failures & ErrorBoundary"),icon:<Jt size={16}color={e.purple400}/>},{key:"promise",label:w("settings.crash.ignorePromise","Ignore Promise Rejections"),desc:w("settings.crash.ignorePromiseDesc","Bypasses unhandled asynchronous Promise rejections"),icon:<Yt size={16}color={e.amber400}/>},{key:"custom",label:w("settings.crash.ignoreCustom","Ignore Custom Recorded Errors"),desc:w("settings.crash.ignoreCustomDesc","Bypasses manual recordCustomCrash exceptions & telemetry triggers"),icon:<Io size={16}color={e.emerald400}/>}];U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
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}>
757
756
 
758
757
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
759
758
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
760
759
  <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
761
- <Fo size={16}color={e.purple}/>
760
+ <Vo size={16}color={e.purple}/>
762
761
  <T style={{fontFamily:S.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple}}>
763
762
  {w("settings.crash.governancePresets","GOVERNANCE PRESETS")}
764
763
  </T>
@@ -773,21 +772,21 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
773
772
 
774
773
  <C style={{flexDirection:"row",gap:8}}>
775
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}}>
776
- <Nt size={16}color={r?e.purple:e.grayText}/>
775
+ <Et size={16}color={r?e.purple:e.grayText}/>
777
776
  <T style={{fontFamily:S.interBold,fontSize:11,color:r?e.purple:e.primaryBlack}}>
778
777
  {w("settings.crash.presetBalanced","Balanced")}
779
778
  </T>
780
779
  </V>
781
780
 
782
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}}>
783
- <Fo size={16}color={R?e.greenColor:e.grayText}/>
782
+ <Vo size={16}color={R?e.greenColor:e.grayText}/>
784
783
  <T style={{fontFamily:S.interBold,fontSize:11,color:R?e.greenColor:e.primaryBlack}}>
785
784
  {w("settings.crash.presetMaxShield","Max Shield")}
786
785
  </T>
787
786
  </V>
788
787
 
789
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}}>
790
- <Ut size={16}color={I?e.grayText:e.grayTextWeak}/>
789
+ <Ot size={16}color={I?e.grayText:e.grayTextWeak}/>
791
790
  <T style={{fontFamily:S.interBold,fontSize:11,color:I?e.grayText:e.primaryBlack}}>
792
791
  {w("settings.crash.presetSilent","Silent Mode")}
793
792
  </T>
@@ -805,7 +804,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
805
804
  {w("settings.crash.categoryMatrix","ERROR INTERCEPTION & IGNORED CATEGORIES")}
806
805
  </T>
807
806
 
808
- {E.map((z,$)=>{const G=!!H?.[z.key],oe=$===E.length-1;return F({key:z.key,icon:z.icon,label:z.label,description:z.desc,isLast:oe,onPress:()=>{lt(Nr=>({...Nr,[z.key]:!Nr[z.key]}))},right:<C style={{flexDirection:"row",alignItems:"center",gap:8}}>
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}}>
809
808
  <C style={{paddingHorizontal:6,paddingVertical:2.5,borderRadius:5,backgroundColor:G?`${e.warningIconGold}18`:`${e.greenColor}18`}}>
810
809
  <T style={{fontFamily:S.interBold,fontSize:9.5,color:G?e.warningIconGold:e.greenColor}}>
811
810
  {G?w("settings.crash.ignoredBadge","IGNORED"):w("settings.crash.protectedBadge","PROTECTED")}
@@ -819,20 +818,20 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
819
818
 
820
819
 
821
820
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
822
- {F({icon:<Bo color={e.purple}size={16}/>,label:w("settings.crash.modalTriggerTitle","Modal Alert Display Policy"),description:w("settings.crash.modalTriggerDesc","Configure when the full-screen diagnostic modal appears"),isLast:!0,picker:{options:["fatal_only","all_errors","silent_tab_only"],selectedValue:at||"fatal_only",onSelect:z=>Fr(z),formatLabel:z=>z==="fatal_only"?w("settings.crash.policyFatalOnly","Fatal Only"):z==="all_errors"?w("settings.crash.policyAllErrors","All Caught"):w("settings.crash.policySilent","Silent Only")}})}
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")}})}
823
822
  </C>
824
823
 
825
824
 
826
825
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
827
- {F({icon:<X color={e.purple}size={16}/>,label:w("settings.crash.maxCrashLogs","Max Crash Logs Buffer"),description:w("settings.crash.maxCrashLogsDesc","How many crash records to preserve in history (5-100)"),numericInput:{value:zr,onChange:Br,min:5,max:100,placeholder:"Enter max crashes (5-100)"}})}
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)"}})}
828
827
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
829
- {F({icon:<Qt color={e.purple}size={16}/>,label:w("settings.crash.resetDefaults","Reset to Defaults"),description:w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"),onPress:()=>{Be("balanced"),Br(50),Fr("fatal_only"),j.alert(w("common.success","Success"),w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"))},right:<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`}}>
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`}}>
830
829
  <T style={{fontFamily:S.interBold,fontSize:11,color:e.purple}}>
831
830
  {w("settings.reset","Reset")}
832
831
  </T>
833
832
  </C>})}
834
833
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
835
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.crash.clearHistory","Clear Crash History"),description:w("settings.crash.clearHistoryDesc",{count:ze?.length||0}),isLast:!0,onPress:()=>{Dt(),j.alert(w("common.success","Success"),w("settings.crash.historyCleared","Crash logs cleared."))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
836
835
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
837
836
  {w("common.clear","Clear")}
838
837
  </T>
@@ -842,9 +841,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
842
841
  </J>}else v==="push"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
843
842
 
844
843
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
845
- {F({icon:<X color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:nt,onChange:st,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
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)"}})}
846
845
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
847
- {F({icon:<Ao color={e.greenColor}size={16}/>,label:"Universal Ingestion Engine",description:"Captures any push domain (Salesforce, FCM, APNs, Expo, Braze, Custom)",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
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`}}>
848
847
  <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
849
848
  ACTIVE
850
849
  </T>
@@ -889,7 +888,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
889
888
 
890
889
 
891
890
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
892
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("push.clearTitle","Clear Push History"),description:`Permanently remove all ${Fe?.length||0} recorded notifications`,isLast:!0,onPress:()=>{dt(),j.alert(w("common.success","Success"),w("settings.pushHistoryCleared","Push notification history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
893
892
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
894
893
  {w("common.clear")}
895
894
  </T>
@@ -899,9 +898,9 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
899
898
  </J>:v==="socket"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
900
899
 
901
900
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
902
- {F({icon:<X color={e.purple}size={16}/>,label:"Max WebSocket Connections",description:"Ring buffer limit for active & closed socket sessions (10-200)",numericInput:{value:ct,onChange:gt,min:10,max:200,placeholder:"Enter max sockets (10-200)"}})}
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)"}})}
903
902
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
904
- {F({icon:<Eo color={e.greenColor}size={16}/>,label:"Global WebSocket Interceptor",description:"Automatic capture for WebSocket, WSS & Socket.IO traffic",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
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`}}>
905
904
  <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
906
905
  ACTIVE
907
906
  </T>
@@ -918,25 +917,25 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
918
917
  </C>
919
918
 
920
919
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
921
- <V onPress={()=>{$e("chat"),B(w("settings.simulator.chat","Simulated Real-time Chat WebSocket session"))}}style={{backgroundColor:`${e.blue600}14`,borderColor:`${e.blue600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
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}}>
922
921
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.blue600}}>
923
922
  + Chat Room (WS)
924
923
  </T>
925
924
  </V>
926
925
 
927
- <V onPress={()=>{$e("crypto"),B(w("settings.simulator.crypto","Simulated Binance Crypto Ticker stream"))}}style={{backgroundColor:`${e.emerald600}14`,borderColor:`${e.emerald600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
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}}>
928
927
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.emerald600}}>
929
928
  + Crypto Feed (WSS)
930
929
  </T>
931
930
  </V>
932
931
 
933
- <V onPress={()=>{$e("socketio"),B(w("settings.simulator.socketio","Simulated Socket.IO v4 session"))}}style={{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
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}}>
934
933
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.violet600}}>
935
934
  + Socket.IO Room
936
935
  </T>
937
936
  </V>
938
937
 
939
- <V onPress={()=>{$e("echo"),B(w("settings.simulator.echo","Simulated WebSocket Echo test"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
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}}>
940
939
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.brandPurple}}>
941
940
  + Echo Test
942
941
  </T>
@@ -946,7 +945,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
946
945
 
947
946
 
948
947
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
949
- {F({icon:<O color={e.errorColor}size={16}/>,label:w("socket.clearTitle","Clear All WebSocket Logs").replace("All WebSocket Logs","Socket History"),description:`Permanently remove all ${De?.length||0} recorded sessions`,isLast:!0,onPress:()=>{pt(),j.alert(w("common.success","Success"),w("settings.socketHistoryCleared","WebSocket history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
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`}}>
950
949
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
951
950
  {w("common.clear")}
952
951
  </T>
@@ -989,7 +988,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
989
988
  </C>
990
989
  </C>
991
990
 
992
- {F({icon:<Lo color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
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}}>
993
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`}}>
994
993
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
995
994
  {r.toUpperCase()}
@@ -997,7 +996,7 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
997
996
  </V>})}
998
997
  </C>})}
999
998
 
1000
- {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
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`}}>
1001
1000
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
1002
1001
  {L?w("settings.media.enabled","ON"):"OFF"}
1003
1002
  </T>
@@ -1020,23 +1019,23 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
1020
1019
  </C>
1021
1020
  </C>
1022
1021
 
1023
- {F({icon:<Po color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
1024
- {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const R=Dr===r.key;return<V key={r.key}onPress={()=>{D("light"),$r(r.key),B(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
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`}}>
1025
1024
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1026
1025
  {r.label}
1027
1026
  </T>
1028
1027
  </V>})}
1029
1028
  </C>})}
1030
1029
 
1031
- {F({icon:<Ho color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
1032
- {[15,24,30,60].map(r=>{const R=Hr===r;return<V key={r}onPress={()=>{D("light"),Pr(r),B(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
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`}}>
1033
1032
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1034
1033
  {r}fps
1035
1034
  </T>
1036
1035
  </V>})}
1037
1036
  </C>})}
1038
1037
 
1039
- {F({icon:<Wo color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
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`}}>
1040
1039
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
1041
1040
  {A?"ON":"OFF"}
1042
1041
  </T>
@@ -1054,15 +1053,15 @@ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";imp
1054
1053
  <C style={{height:48}}/>
1055
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}}>
1056
1055
 
1057
- <C style={[Gr.absoluteFill,v!=="main"&&{pointerEvents:"none"}]}>
1058
- {St()}
1056
+ <C style={[Ur.absoluteFill,v!=="main"&&{pointerEvents:"none"}]}>
1057
+ {ft()}
1059
1058
  </C>
1060
1059
 
1061
1060
 
1062
- {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]})}]}]}>
1063
1062
  {U}
1064
1063
  </_.View>}
1065
1064
 
1066
1065
 
1067
- <Pt visible={ut}onClose={()=>Er(!1)}/>
1068
- </C>};export default Bi;
1066
+ <Dt visible={gt}onClose={()=>Er(!1)}/>
1067
+ </C>};export default ri;