react-native-inapp-inspector 2.5.9 → 2.5.11

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