react-native-inapp-inspector 2.5.12 → 2.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/README.md +0 -8
  2. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  3. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  4. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  5. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  6. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  7. package/android/.gradle/8.9/gc.properties +0 -0
  8. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  9. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  12. package/android/.gradle/9.2.0/gc.properties +0 -0
  13. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  14. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  15. package/android/.gradle/vcs-1/gc.properties +0 -0
  16. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  17. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +1 -0
  18. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  19. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  20. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  21. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  22. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  23. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
  24. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  25. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.dex +0 -0
  26. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  27. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
  28. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  29. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  30. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  31. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +1 -0
  32. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
  33. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
  34. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +176 -0
  35. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  36. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +236 -0
  37. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
  38. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
  39. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
  40. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
  41. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
  42. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
  43. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
  44. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +337 -0
  45. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
  46. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
  47. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
  48. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
  49. package/android/build/generated/source/codegen/schema.json +1 -0
  50. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +19 -0
  51. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  52. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  53. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  54. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  55. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  56. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  57. package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_inappinspector_file_paths.xml.flat +0 -0
  58. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -0
  59. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  60. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  61. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  62. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  63. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  64. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  65. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  66. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  67. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +28 -0
  68. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +19 -0
  69. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  70. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  71. package/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/inappinspector_file_paths.xml +7 -0
  72. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  82. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  83. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  84. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  85. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  86. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  171. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  172. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  173. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  174. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  175. package/android/build/outputs/logs/manifest-merger-debug-report.txt +35 -0
  176. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  177. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  178. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  179. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  180. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  181. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  182. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  183. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  184. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  185. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  186. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  187. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  188. package/android/src/main/AndroidManifest.xml +11 -0
  189. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +492 -45
  190. package/android/src/main/res/xml/inappinspector_file_paths.xml +7 -0
  191. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +47 -49
  192. package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +8 -0
  193. package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +76 -0
  194. package/dist/commonjs/components/Inspector/ConsoleExportModal.js +51 -51
  195. package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
  196. package/dist/commonjs/components/Inspector/CrashTab.js +17 -17
  197. package/dist/commonjs/components/Inspector/DebuggingTab.js +37 -37
  198. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +2 -2
  199. package/dist/commonjs/components/Inspector/FabLauncher.js +4 -4
  200. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +2 -2
  201. package/dist/commonjs/components/Inspector/InspectorHeader.js +36 -36
  202. package/dist/commonjs/components/Inspector/MainScreen.js +38 -75
  203. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +10 -10
  204. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +1 -0
  205. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +222 -222
  206. package/dist/commonjs/components/Inspector/NetworkExportModal.d.ts +10 -0
  207. package/dist/commonjs/components/Inspector/NetworkExportModal.js +333 -0
  208. package/dist/commonjs/components/Inspector/NetworkTab.js +60 -53
  209. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +11 -12
  210. package/dist/commonjs/components/Inspector/ReduxDetail.js +17 -19
  211. package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
  212. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  213. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +17 -16
  214. package/dist/commonjs/components/Inspector/SettingsPanel.js +43 -47
  215. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  216. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +34 -3
  217. package/dist/commonjs/components/Inspector/SocketCard.js +2 -2
  218. package/dist/commonjs/components/Inspector/SupportPage.js +5 -5
  219. package/dist/commonjs/components/Inspector/TabBar.js +9 -15
  220. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
  221. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +97 -0
  222. package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +2 -0
  223. package/dist/commonjs/components/Inspector/UiInspectorDetail.js +485 -0
  224. package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +2 -0
  225. package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +199 -0
  226. package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +2 -0
  227. package/dist/commonjs/components/Inspector/UiInspectorTab.js +117 -0
  228. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
  229. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +148 -0
  230. package/dist/commonjs/components/Inspector/index.d.ts +28 -0
  231. package/dist/commonjs/components/Inspector/index.js +1 -0
  232. package/dist/commonjs/components/LogCard.js +12 -10
  233. package/dist/commonjs/components/SkeletonPlaceholder.d.ts +3 -0
  234. package/dist/commonjs/components/SkeletonPlaceholder.js +34 -3
  235. package/dist/commonjs/constants/index.js +1 -1
  236. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  237. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  238. package/dist/commonjs/constants/version.d.ts +1 -1
  239. package/dist/commonjs/constants/version.js +1 -1
  240. package/dist/commonjs/customHooks/crashHandler.d.ts +1 -1
  241. package/dist/commonjs/customHooks/crashHandler.js +6 -6
  242. package/dist/commonjs/customHooks/uiInspectorManager.d.ts +22 -0
  243. package/dist/commonjs/customHooks/uiInspectorManager.js +1 -0
  244. package/dist/commonjs/helpers/index.js +1 -3
  245. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  246. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -0
  247. package/dist/commonjs/helpers/searchQueryParser.js +7 -5
  248. package/dist/commonjs/helpers/shareFormatter.d.ts +16 -0
  249. package/dist/commonjs/helpers/shareFormatter.js +16 -9
  250. package/dist/commonjs/helpers/uiInspectorEngine.d.ts +62 -0
  251. package/dist/commonjs/helpers/uiInspectorEngine.js +19 -0
  252. package/dist/commonjs/i18n/locales/ar.json +1 -1
  253. package/dist/commonjs/i18n/locales/bn.json +1 -1
  254. package/dist/commonjs/i18n/locales/de.json +1 -1
  255. package/dist/commonjs/i18n/locales/en.json +1 -1
  256. package/dist/commonjs/i18n/locales/es.json +1 -1
  257. package/dist/commonjs/i18n/locales/fr.json +1 -1
  258. package/dist/commonjs/i18n/locales/gu.json +1 -1
  259. package/dist/commonjs/i18n/locales/hi.json +1 -1
  260. package/dist/commonjs/i18n/locales/id.json +1 -1
  261. package/dist/commonjs/i18n/locales/it.json +1 -1
  262. package/dist/commonjs/i18n/locales/ja.json +1 -1
  263. package/dist/commonjs/i18n/locales/kn.json +1 -1
  264. package/dist/commonjs/i18n/locales/ko.json +1 -1
  265. package/dist/commonjs/i18n/locales/ml.json +1 -1
  266. package/dist/commonjs/i18n/locales/mr.json +1 -1
  267. package/dist/commonjs/i18n/locales/nl.json +1 -1
  268. package/dist/commonjs/i18n/locales/pa.json +1 -1
  269. package/dist/commonjs/i18n/locales/pl.json +1 -1
  270. package/dist/commonjs/i18n/locales/pt.json +1 -1
  271. package/dist/commonjs/i18n/locales/ru.json +1 -1
  272. package/dist/commonjs/i18n/locales/ta.json +1 -1
  273. package/dist/commonjs/i18n/locales/te.json +1 -1
  274. package/dist/commonjs/i18n/locales/tr.json +1 -1
  275. package/dist/commonjs/i18n/locales/vi.json +1 -1
  276. package/dist/commonjs/i18n/locales/zh.json +1 -1
  277. package/dist/commonjs/index.d.ts +4 -2
  278. package/dist/commonjs/index.js +3 -3
  279. package/dist/commonjs/native/NativeInspector.d.ts +4 -0
  280. package/dist/commonjs/native/NativeInspector.js +1 -1
  281. package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
  282. package/dist/commonjs/styles/AppFonts.d.ts +4 -0
  283. package/dist/commonjs/styles/AppFonts.js +1 -1
  284. package/dist/commonjs/styles/index.d.ts +2 -0
  285. package/dist/commonjs/styles/index.js +1 -1
  286. package/dist/commonjs/types/editor.d.ts +31 -0
  287. package/dist/commonjs/types/enums.d.ts +0 -2
  288. package/dist/commonjs/types/enums.js +1 -1
  289. package/dist/commonjs/types/interfaces.d.ts +1 -1
  290. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +73 -75
  291. package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +8 -0
  292. package/dist/esm/components/Inspector/BoxModelVisualizer.js +76 -0
  293. package/dist/esm/components/Inspector/ConsoleExportModal.js +67 -67
  294. package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
  295. package/dist/esm/components/Inspector/CrashTab.js +58 -58
  296. package/dist/esm/components/Inspector/DebuggingTab.js +105 -105
  297. package/dist/esm/components/Inspector/DeviceInfoTab.js +2 -2
  298. package/dist/esm/components/Inspector/FabLauncher.js +50 -50
  299. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +23 -23
  300. package/dist/esm/components/Inspector/InspectorHeader.js +64 -64
  301. package/dist/esm/components/Inspector/MainScreen.js +87 -124
  302. package/dist/esm/components/Inspector/MediaGalleryTab.js +151 -151
  303. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +1 -0
  304. package/dist/esm/components/Inspector/MediaPreviewModal.js +468 -468
  305. package/dist/esm/components/Inspector/NetworkExportModal.d.ts +10 -0
  306. package/dist/esm/components/Inspector/NetworkExportModal.js +333 -0
  307. package/dist/esm/components/Inspector/NetworkTab.js +143 -136
  308. package/dist/esm/components/Inspector/NpmStarPrompt.js +32 -33
  309. package/dist/esm/components/Inspector/ReduxDetail.js +54 -56
  310. package/dist/esm/components/Inspector/ReduxTab.js +9 -9
  311. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  312. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +23 -22
  313. package/dist/esm/components/Inspector/SettingsPanel.js +109 -113
  314. package/dist/esm/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  315. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +42 -11
  316. package/dist/esm/components/Inspector/SocketCard.js +13 -13
  317. package/dist/esm/components/Inspector/SupportPage.js +5 -5
  318. package/dist/esm/components/Inspector/TabBar.js +35 -41
  319. package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
  320. package/dist/esm/components/Inspector/UiA11yAuditPanel.js +97 -0
  321. package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +2 -0
  322. package/dist/esm/components/Inspector/UiInspectorDetail.js +422 -0
  323. package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +2 -0
  324. package/dist/esm/components/Inspector/UiInspectorOverlay.js +138 -0
  325. package/dist/esm/components/Inspector/UiInspectorTab.d.ts +2 -0
  326. package/dist/esm/components/Inspector/UiInspectorTab.js +117 -0
  327. package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
  328. package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +148 -0
  329. package/dist/esm/components/Inspector/index.d.ts +28 -0
  330. package/dist/esm/components/Inspector/index.js +1 -0
  331. package/dist/esm/components/LogCard.js +24 -22
  332. package/dist/esm/components/SkeletonPlaceholder.d.ts +3 -0
  333. package/dist/esm/components/SkeletonPlaceholder.js +42 -11
  334. package/dist/esm/constants/index.js +1 -1
  335. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  336. package/dist/esm/constants/telemetryConfig.js +1 -1
  337. package/dist/esm/constants/version.d.ts +1 -1
  338. package/dist/esm/constants/version.js +1 -1
  339. package/dist/esm/customHooks/crashHandler.d.ts +1 -1
  340. package/dist/esm/customHooks/crashHandler.js +6 -6
  341. package/dist/esm/customHooks/uiInspectorManager.d.ts +22 -0
  342. package/dist/esm/customHooks/uiInspectorManager.js +1 -0
  343. package/dist/esm/helpers/index.js +4 -6
  344. package/dist/esm/helpers/remoteConfig.js +1 -1
  345. package/dist/esm/helpers/searchQueryParser.d.ts +1 -0
  346. package/dist/esm/helpers/searchQueryParser.js +7 -5
  347. package/dist/esm/helpers/shareFormatter.d.ts +16 -0
  348. package/dist/esm/helpers/shareFormatter.js +20 -13
  349. package/dist/esm/helpers/uiInspectorEngine.d.ts +48 -0
  350. package/dist/esm/helpers/uiInspectorEngine.js +19 -0
  351. package/dist/esm/i18n/locales/ar.json +1 -1
  352. package/dist/esm/i18n/locales/bn.json +1 -1
  353. package/dist/esm/i18n/locales/de.json +1 -1
  354. package/dist/esm/i18n/locales/en.json +1 -1
  355. package/dist/esm/i18n/locales/es.json +1 -1
  356. package/dist/esm/i18n/locales/fr.json +1 -1
  357. package/dist/esm/i18n/locales/gu.json +1 -1
  358. package/dist/esm/i18n/locales/hi.json +1 -1
  359. package/dist/esm/i18n/locales/id.json +1 -1
  360. package/dist/esm/i18n/locales/it.json +1 -1
  361. package/dist/esm/i18n/locales/ja.json +1 -1
  362. package/dist/esm/i18n/locales/kn.json +1 -1
  363. package/dist/esm/i18n/locales/ko.json +1 -1
  364. package/dist/esm/i18n/locales/ml.json +1 -1
  365. package/dist/esm/i18n/locales/mr.json +1 -1
  366. package/dist/esm/i18n/locales/nl.json +1 -1
  367. package/dist/esm/i18n/locales/pa.json +1 -1
  368. package/dist/esm/i18n/locales/pl.json +1 -1
  369. package/dist/esm/i18n/locales/pt.json +1 -1
  370. package/dist/esm/i18n/locales/ru.json +1 -1
  371. package/dist/esm/i18n/locales/ta.json +1 -1
  372. package/dist/esm/i18n/locales/te.json +1 -1
  373. package/dist/esm/i18n/locales/tr.json +1 -1
  374. package/dist/esm/i18n/locales/vi.json +1 -1
  375. package/dist/esm/i18n/locales/zh.json +1 -1
  376. package/dist/esm/index.d.ts +4 -2
  377. package/dist/esm/index.js +8 -8
  378. package/dist/esm/native/NativeInspector.d.ts +4 -0
  379. package/dist/esm/native/NativeInspector.js +1 -1
  380. package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
  381. package/dist/esm/styles/AppFonts.d.ts +4 -0
  382. package/dist/esm/styles/AppFonts.js +1 -1
  383. package/dist/esm/styles/index.d.ts +2 -0
  384. package/dist/esm/styles/index.js +1 -1
  385. package/dist/esm/types/editor.d.ts +31 -0
  386. package/dist/esm/types/enums.d.ts +0 -2
  387. package/dist/esm/types/enums.js +1 -1
  388. package/dist/esm/types/interfaces.d.ts +1 -1
  389. package/ios/NetworkInspectorModule.mm +597 -336
  390. package/package.json +1 -1
  391. package/src/native/NativeInspector.ts +67 -0
  392. package/src/native/NativeNetworkInspector.ts +4 -0
@@ -1,50 +1,50 @@
1
- import{useState as M,useEffect as _,useMemo as We,useCallback as ie,useRef as X}from"react";import{View as T,Text as C,ScrollView as Te,StyleSheet as Pe,NativeModules as He,TouchableOpacity as G,ActivityIndicator as Ce,Animated as Z}from"react-native";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as B}from"../../styles/AppFonts";import{useTranslation as $e}from"../../i18n";import Ne from"../QRCodeView";import Se from"../TouchableScale";import{showToast as J}from"../../helpers/toast";import{triggerNativeHaptic as H}from"../../native/NativeInspector";import{InfoCircleIcon as Ee,CheckIcon as Be,BoltIcon as Re,CircleXIcon as Ie,SparkleIcon as Ge,AndroidIcon as Ue,RepeatIcon as _e,WrenchIcon as Ke}from"../NetworkIcons";import Qe,{Path as Xe}from"react-native-svg";const Ze=({color:L=e.purple,size:R=13})=><Qe width={R}height={R}viewBox="0 0 24 24"fill="none">
2
- <Xe d="M4 17l6-6-6-6M12 19h8"stroke={L}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
3
- </Qe>;export const DebuggingTab=()=>{const{t:L}=$e(),R=We(()=>{const k=He.SourceCode?.scriptURL||"";let V="localhost",S=8081;try{if(k.includes("://")){const v=k.split("://")[1].split("/")[0];if(v.includes(":")){const A=v.split(":");V=A[0];const P=parseInt(A[1],10);isNaN(P)||(S=P)}else V=v}}catch{}return{host:V,port:S,scriptURL:k}},[]),[Y,Ve]=M(()=>R.host&&R.host!=="localhost"&&R.host!=="127.0.0.1"&&R.host!=="10.0.2.2"?R.host:"192.168.1.2"),[$,ze]=M(R.port||8083),[De,ee]=M("app-debug.apk"),[q,oe]=M(null),[F,te]=M("assembleRelease"),[W,ve]=M(!0),[I,U]=M({status:"idle",scheme:"assembleRelease",clean:!0,progress:0,currentTask:"",error:null,apkName:null,apkSize:null}),D=X(null),K=X(new Z.Value(0)).current,[Q,Ae]=M(!0),re=X(null);_(()=>{Z.timing(K,{toValue:Math.max(0,Math.min(100,I.progress)),duration:350,useNativeDriver:!1}).start()},[I.progress,K]),_(()=>{I.logs&&I.logs.length>0&&setTimeout(()=>{re.current?.scrollToEnd({animated:!0})},50)},[I.logs]);const E=ie(async()=>{const k=Array.from(new Set([R.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),V=Array.from(new Set([R.port,8083,8081,8082].filter(Boolean)));for(const S of k)for(const O of V)try{const v=new AbortController,A=setTimeout(()=>v.abort(),1200),P=await fetch(`http://${S}:${O}/__inapp_inspector/apk-info`,{signal:v.signal});if(clearTimeout(A),P.ok){const z=await P.json();z.hostIp&&z.hostIp!=="127.0.0.1"&&z.hostIp!=="localhost"&&z.hostIp!=="10.0.2.2"&&Ve(z.hostIp),z.port&&ze(z.port),z.apkName&&ee(z.apkName),z.apkSize&&oe((z.apkSize/(1024*1024)).toFixed(1));return}}catch{}},[R.host,R.port]);_(()=>{E()},[E]),_(()=>()=>{D.current&&clearInterval(D.current)},[]);const Fe=ie(()=>{D.current&&clearInterval(D.current);const k=R.host||"10.0.2.2";D.current=setInterval(async()=>{try{const V=await fetch(`http://${k}:${$}/__inapp_inspector/build-status`);if(V.ok){const S=await V.json();U(S),S.status==="completed"?(D.current&&clearInterval(D.current),H("success"),J(L("debugging.buildSuccess","APK Build Generated Successfully!")),S.apkSize&&oe((S.apkSize/(1024*1024)).toFixed(1)),S.apkName&&ee(S.apkName),E()):S.status==="failed"&&(D.current&&clearInterval(D.current),H("error"),J(L("debugging.buildFailed",{error:S.error||"Gradle error"})))}}catch{}},1e3)},[R.host,$,E]),Oe=async()=>{H("medium"),U({status:"running",scheme:F,clean:W,progress:5,currentTask:W?"Cleaning build cache...":"Initializing build...",error:null,apkName:null,apkSize:null});const k=Array.from(new Set([R.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),V=Array.from(new Set([$,8083,8081,8082].filter(Boolean)));let S=!1;for(const O of k)for(const v of V)try{const A=new AbortController,P=setTimeout(()=>A.abort(),2e3),z=await fetch(`http://${O}:${v}/__inapp_inspector/build-apk?scheme=${F}&clean=${W}`,{signal:A.signal});if(clearTimeout(P),z.ok){S=!0,Fe();return}}catch{}S||U(O=>({...O,status:"failed",error:"Cannot reach build server. Ensure npm start or npm run serve-apk is running on host."}))},Me=async()=>{H("warning"),D.current&&clearInterval(D.current);const k=Array.from(new Set([R.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),V=Array.from(new Set([$,8083,8081,8082].filter(Boolean)));for(const S of k)for(const O of V)try{const v=new AbortController,A=setTimeout(()=>v.abort(),1500);await fetch(`http://${S}:${O}/__inapp_inspector/stop-build`,{signal:v.signal}),clearTimeout(A)}catch{}U(S=>({...S,status:"idle",currentTask:L("debugging.buildCancelled","Build cancelled by user"),logs:[...S.logs||[],`[Build] ${L("debugging.buildCancelled","Build cancelled by user")}.`]})),J(L("debugging.buildCancelled","Build cancelled"))},Le=`http://${Y}:${$}/${De.replace(/^\/+/,"")}`,N=I.status==="running";return<Te style={o.scrollArea}contentContainerStyle={o.scrollContent}showsVerticalScrollIndicator={!1}>
1
+ import{useState as M,useEffect as j,useMemo as Ve,useCallback as re,useRef as q}from"react";import{View as T,Text as C,ScrollView as Te,StyleSheet as $e,NativeModules as Pe,TouchableOpacity as H,ActivityIndicator as Ce,Animated as K}from"react-native";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as B}from"../../styles/AppFonts";import{useTranslation as He}from"../../i18n";import Ee from"../QRCodeView";import Be from"../TouchableScale";import{showToast as Q}from"../../helpers/toast";import{triggerNativeHaptic as W}from"../../native/NativeInspector";import{InfoCircleIcon as Ne,CheckIcon as Se,BoltIcon as Re,CircleXIcon as Ie,SparkleIcon as Ge,AndroidIcon as _e,RepeatIcon as Ue,WrenchIcon as Ke}from"../NetworkIcons";import Qe,{Path as Xe}from"react-native-svg";const Ze=({color:x=e.purple,size:S=13})=><Qe width={S}height={S}viewBox="0 0 24 24"fill="none">
2
+ <Xe d="M4 17l6-6-6-6M12 19h8"stroke={x}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
3
+ </Qe>;export const DebuggingTab=()=>{const{t:x}=He(),S=Ve(()=>{const k=Pe.SourceCode?.scriptURL||"";let I="localhost",w=8081;try{if(k.includes("://")){const v=k.split("://")[1].split("/")[0];if(v.includes(":")){const A=v.split(":");I=A[0];const F=parseInt(A[1],10);isNaN(F)||(w=F)}else I=v}}catch{}return{host:I,port:w,scriptURL:k}},[]),[X,ze]=M(()=>S.host&&S.host!=="localhost"&&S.host!=="127.0.0.1"&&S.host!=="10.0.2.2"?S.host:"192.168.1.2"),[V,De]=M(S.port||8083),[ve,Z]=M("app-debug.apk"),[G,J]=M(null),[L,Y]=M("assembleRelease"),[O,Ae]=M(!0),[R,E]=M({status:"idle",scheme:"assembleRelease",clean:!0,progress:0,currentTask:"",error:null,apkName:null,apkSize:null}),D=q(null),_=q(new K.Value(0)).current,[U,Fe]=M(!0),ee=q(null);j(()=>{K.timing(_,{toValue:Math.max(0,Math.min(100,R.progress)),duration:350,useNativeDriver:!1}).start()},[R.progress,_]),j(()=>{R.logs&&R.logs.length>0&&setTimeout(()=>{ee.current?.scrollToEnd({animated:!0})},50)},[R.logs]);const P=re(async()=>{const k=Array.from(new Set([S.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),I=Array.from(new Set([S.port,8083,8081,8082].filter(Boolean)));for(const w of k)for(const v of I)try{const A=new AbortController,F=setTimeout(()=>A.abort(),1200),N=await fetch(`http://${w}:${v}/__inapp_inspector/apk-info`,{signal:A.signal});if(clearTimeout(F),N.ok){const z=await N.json();z.hostIp&&z.hostIp!=="127.0.0.1"&&z.hostIp!=="localhost"&&z.hostIp!=="10.0.2.2"&&ze(z.hostIp),z.port&&De(z.port),z.apkName&&Z(z.apkName),z.apkSize&&J((z.apkSize/(1024*1024)).toFixed(1));return}}catch{}},[S.host,S.port]);j(()=>{P()},[P]),j(()=>()=>{D.current&&clearInterval(D.current)},[]);const Le=re(()=>{D.current&&clearInterval(D.current);const k=S.host||"10.0.2.2";D.current=setInterval(async()=>{try{const I=await fetch(`http://${k}:${V}/__inapp_inspector/build-status`);if(I.ok){const w=await I.json();E(w),w.status==="completed"?(D.current&&clearInterval(D.current),W("success"),Q(x("debugging.buildSuccess","APK Build Generated Successfully!")),w.apkSize&&J((w.apkSize/(1024*1024)).toFixed(1)),w.apkName&&Z(w.apkName),P()):w.status==="failed"&&(D.current&&clearInterval(D.current),W("error"),Q(x("debugging.buildFailed",{error:w.error||"Gradle error"})))}}catch{}},1e3)},[S.host,V,P]),Me=async()=>{W("medium"),E({status:"running",scheme:L,clean:O,progress:5,currentTask:O?"Cleaning build cache...":"Initializing build...",error:null,apkName:null,apkSize:null});const k=Array.from(new Set([S.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),I=Array.from(new Set([V,8083,8081,8082].filter(Boolean)));let w=!1;for(const v of k)for(const A of I)try{const F=new AbortController,N=setTimeout(()=>F.abort(),2e3),z=await fetch(`http://${v}:${A}/__inapp_inspector/build-apk?scheme=${L}&clean=${O}`,{signal:F.signal});if(clearTimeout(N),z.ok){w=!0,Le();return}}catch{}w||E(v=>({...v,status:"failed",error:"Cannot reach build server. Ensure npm start or npm run serve-apk is running on host."}))},Oe=async()=>{W("warning"),D.current&&clearInterval(D.current);const k=Array.from(new Set([S.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),I=Array.from(new Set([V,8083,8081,8082].filter(Boolean)));for(const w of k)for(const v of I)try{const A=new AbortController,F=setTimeout(()=>A.abort(),1500);await fetch(`http://${w}:${v}/__inapp_inspector/stop-build`,{signal:A.signal}),clearTimeout(F)}catch{}E(w=>({...w,status:"idle",currentTask:x("debugging.buildCancelled","Build cancelled by user"),logs:[...w.logs||[],`[Build] ${x("debugging.buildCancelled","Build cancelled by user")}.`]})),Q(x("debugging.buildCancelled","Build cancelled"))},We=`http://${X}:${V}/${ve.replace(/^\/+/,"")}`,$=R.status==="running";return<Te style={r.scrollArea}contentContainerStyle={r.scrollContent}showsVerticalScrollIndicator={!1}>
4
4
 
5
- <T style={o.heroCard}>
6
- <T style={o.heroHeader}>
7
- <T style={o.heroIconWrap}>
8
- <Ue size={20}color={e.white}/>
5
+ <T style={r.heroCard}>
6
+ <T style={r.heroHeader}>
7
+ <T style={r.heroIconWrap}>
8
+ <_e size={20}color={e.white}/>
9
9
  </T>
10
10
  <T style={{flex:1,minWidth:0}}>
11
- <C style={o.heroTitle}numberOfLines={1}>
12
- Multi-Device APK Installer
11
+ <C style={r.heroTitle}numberOfLines={1}>
12
+ {x("debugging.apkInstallerTitle","Multi-Device APK Installer")}
13
13
  </C>
14
- <C style={o.heroSubtitle}numberOfLines={1}>
15
- Scan QR code with another Android device to download
14
+ <C style={r.heroSubtitle}numberOfLines={1}>
15
+ {x("debugging.apkInstallerSubtitle","Scan QR code with another Android device to download")}
16
16
  </C>
17
17
  </T>
18
- <T style={o.heroBadge}>
19
- <T style={o.pulseDot}/>
20
- <C style={o.heroBadgeText}>Live Metro</C>
18
+ <T style={r.heroBadge}>
19
+ <T style={r.pulseDot}/>
20
+ <C style={r.heroBadgeText}>{x("debugging.liveMetro","Live Metro")}</C>
21
21
  </T>
22
22
  </T>
23
23
 
24
24
 
25
- <T style={o.heroMetricsStrip}>
26
- <T style={o.heroMetricItem}>
27
- <C style={o.heroMetricLabel}>HOST IP</C>
28
- <C style={o.heroMetricValue}numberOfLines={1}>
29
- {Y}
25
+ <T style={r.heroMetricsStrip}>
26
+ <T style={r.heroMetricItem}>
27
+ <C style={r.heroMetricLabel}>HOST IP</C>
28
+ <C style={r.heroMetricValue}numberOfLines={1}>
29
+ {X}
30
30
  </C>
31
31
  </T>
32
- <T style={o.heroMetricDivider}/>
33
- <T style={o.heroMetricItem}>
34
- <C style={o.heroMetricLabel}>PORT</C>
35
- <C style={o.heroMetricValue}>{$}</C>
32
+ <T style={r.heroMetricDivider}/>
33
+ <T style={r.heroMetricItem}>
34
+ <C style={r.heroMetricLabel}>PORT</C>
35
+ <C style={r.heroMetricValue}>{V}</C>
36
36
  </T>
37
- <T style={o.heroMetricDivider}/>
38
- <T style={o.heroMetricItem}>
39
- <C style={o.heroMetricLabel}>APK SIZE</C>
40
- <C style={[o.heroMetricValue,{color:q?e.emerald500:e.grayTextWeak}]}>
41
- {q?`${q} MB`:"Detected"}
37
+ <T style={r.heroMetricDivider}/>
38
+ <T style={r.heroMetricItem}>
39
+ <C style={r.heroMetricLabel}>APK SIZE</C>
40
+ <C style={[r.heroMetricValue,{color:G?e.emerald500:e.grayTextWeak}]}>
41
+ {G?`${G} MB`:"Detected"}
42
42
  </C>
43
43
  </T>
44
- <T style={o.heroMetricDivider}/>
45
- <T style={o.heroMetricItem}>
46
- <C style={o.heroMetricLabel}>STATUS</C>
47
- <C style={[o.heroMetricValue,{color:e.emerald500}]}>
44
+ <T style={r.heroMetricDivider}/>
45
+ <T style={r.heroMetricItem}>
46
+ <C style={r.heroMetricLabel}>STATUS</C>
47
+ <C style={[r.heroMetricValue,{color:e.emerald500}]}>
48
48
  Ready
49
49
  </C>
50
50
  </T>
@@ -52,146 +52,146 @@ import{useState as M,useEffect as _,useMemo as We,useCallback as ie,useRef as X}
52
52
  </T>
53
53
 
54
54
 
55
- <T style={o.sectionCard}>
56
- <T style={o.sectionHeaderRow}>
57
- <C style={o.sectionTitle}>QR CODE & DIRECT DOWNLOAD</C>
58
- <G activeOpacity={.7}onPress={E}style={o.refreshBtn}>
59
- <_e size={12}color={e.purple}/>
60
- <C style={o.refreshBtnText}>Refresh</C>
61
- </G>
55
+ <T style={r.sectionCard}>
56
+ <T style={r.sectionHeaderRow}>
57
+ <C style={r.sectionTitle}>{x("debugging.qrCodeTitle","QR CODE & DIRECT DOWNLOAD")}</C>
58
+ <H activeOpacity={.7}onPress={P}style={r.refreshBtn}>
59
+ <Ue size={12}color={e.purple}/>
60
+ <C style={r.refreshBtnText}>Refresh</C>
61
+ </H>
62
62
  </T>
63
63
 
64
64
 
65
- <T style={o.qrCenteredWrapper}>
66
- <T style={o.qrInnerFrame}>
67
- <Ne value={Le}size={235}color={e.primaryBlack}backgroundColor={e.white}/>
65
+ <T style={r.qrCenteredWrapper}>
66
+ <T style={r.qrInnerFrame}>
67
+ <Ee value={We}size={235}color={e.primaryBlack}backgroundColor={e.white}/>
68
68
  </T>
69
69
  </T>
70
70
  </T>
71
71
 
72
72
 
73
- <T style={o.sectionCard}>
74
- <T style={o.sectionHeaderRow}>
73
+ <T style={r.sectionCard}>
74
+ <T style={r.sectionHeaderRow}>
75
75
  <T style={{flexDirection:"row",alignItems:"center",gap:6}}>
76
76
  <Re size={13}color={e.purple}/>
77
- <C style={o.sectionTitle}>BUILD GENERATOR (GRADLE)</C>
77
+ <C style={r.sectionTitle}>{x("debugging.buildGeneratorTitle","BUILD GENERATOR (GRADLE)")}</C>
78
78
  </T>
79
- {I.status==="completed"&&<T style={o.completedBadge}>
80
- <Be size={10}color={e.emerald500}/>
81
- <C style={o.completedBadgeText}>100% Ready</C>
79
+ {R.status==="completed"&&<T style={r.completedBadge}>
80
+ <Se size={10}color={e.emerald500}/>
81
+ <C style={r.completedBadgeText}>{x("debugging.ready100","100% Ready")}</C>
82
82
  </T>}
83
83
  </T>
84
84
 
85
85
 
86
- <T style={o.subTabStrip}>
87
- <G disabled={N}activeOpacity={.7}onPress={()=>{H("light"),te("assembleRelease")}}style={[o.subTabItem,F==="assembleRelease"&&o.subTabItemActive]}>
86
+ <T style={r.subTabStrip}>
87
+ <H disabled={$}activeOpacity={.7}onPress={()=>{W("light"),Y("assembleRelease")}}style={[r.subTabItem,L==="assembleRelease"&&r.subTabItemActive]}>
88
88
  <T style={{flexDirection:"row",alignItems:"center",gap:5}}>
89
- <Re size={12}color={F==="assembleRelease"?e.white:e.grayText}/>
90
- <C style={[o.subTabText,F==="assembleRelease"&&o.subTabTextActive]}>
91
- Release (assembleRelease)
89
+ <Re size={12}color={L==="assembleRelease"?e.white:e.grayText}/>
90
+ <C style={[r.subTabText,L==="assembleRelease"&&r.subTabTextActive]}>
91
+ {x("debugging.releaseBuild","Release (assembleRelease)")}
92
92
  </C>
93
93
  </T>
94
- </G>
94
+ </H>
95
95
 
96
- <G disabled={N}activeOpacity={.7}onPress={()=>{H("light"),te("assembleDebug")}}style={[o.subTabItem,F==="assembleDebug"&&o.subTabItemActive]}>
96
+ <H disabled={$}activeOpacity={.7}onPress={()=>{W("light"),Y("assembleDebug")}}style={[r.subTabItem,L==="assembleDebug"&&r.subTabItemActive]}>
97
97
  <T style={{flexDirection:"row",alignItems:"center",gap:5}}>
98
- <Ke size={12}color={F==="assembleDebug"?e.white:e.grayText}/>
99
- <C style={[o.subTabText,F==="assembleDebug"&&o.subTabTextActive]}>
100
- Debug (assembleDebug)
98
+ <Ke size={12}color={L==="assembleDebug"?e.white:e.grayText}/>
99
+ <C style={[r.subTabText,L==="assembleDebug"&&r.subTabTextActive]}>
100
+ {x("debugging.debugBuild","Debug (assembleDebug)")}
101
101
  </C>
102
102
  </T>
103
- </G>
103
+ </H>
104
104
  </T>
105
105
 
106
106
 
107
- <G disabled={N}activeOpacity={.7}onPress={()=>{H("light"),ve(!W)}}style={o.cleanRow}>
108
- <T style={[o.checkboxBox,W&&o.checkboxBoxActive]}>
109
- {W&&<Be size={11}color={e.white}/>}
107
+ <H disabled={$}activeOpacity={.7}onPress={()=>{W("light"),Ae(!O)}}style={r.cleanRow}>
108
+ <T style={[r.checkboxBox,O&&r.checkboxBoxActive]}>
109
+ {O&&<Se size={11}color={e.white}/>}
110
110
  </T>
111
- <C style={o.cleanLabel}>
112
- Clean build cache <C style={o.cleanCode}>(./gradlew clean)</C>
111
+ <C style={r.cleanLabel}>
112
+ Clean build cache <C style={r.cleanCode}>{x("debugging.cleanBuild","(./gradlew clean)")}</C>
113
113
  </C>
114
- </G>
114
+ </H>
115
115
 
116
116
 
117
- {N&&<T style={o.progressContainer}>
118
- <T style={o.progressTopRow}>
119
- <T style={o.progressTaskGroup}>
117
+ {$&&<T style={r.progressContainer}>
118
+ <T style={r.progressTopRow}>
119
+ <T style={r.progressTaskGroup}>
120
120
  <Ce size="small"color={e.purple}/>
121
- <C style={o.progressTaskText}numberOfLines={1}>
122
- {I.currentTask||"Executing Gradle tasks..."}
121
+ <C style={r.progressTaskText}numberOfLines={1}>
122
+ {R.currentTask||"Executing Gradle tasks..."}
123
123
  </C>
124
124
  </T>
125
- <C style={o.progressPercentageText}>
126
- {I.progress}%
125
+ <C style={r.progressPercentageText}>
126
+ {R.progress}%
127
127
  </C>
128
128
  </T>
129
129
 
130
130
 
131
- <T style={o.progressBarTrack}>
132
- <Z.View style={[o.progressBarFill,{width:K.interpolate({inputRange:[0,100],outputRange:["5%","100%"]})}]}/>
131
+ <T style={r.progressBarTrack}>
132
+ <K.View style={[r.progressBarFill,{width:_.interpolate({inputRange:[0,100],outputRange:["5%","100%"]})}]}/>
133
133
  </T>
134
134
  </T>}
135
135
 
136
136
 
137
- {I.status==="failed"&&<T style={o.errorContainer}>
137
+ {R.status==="failed"&&<T style={r.errorContainer}>
138
138
  <Ie size={13}color={e.errorColor}/>
139
- <C style={o.errorText}numberOfLines={2}>
140
- {I.error||"Build execution failed."}
139
+ <C style={r.errorText}numberOfLines={2}>
140
+ {R.error||"Build execution failed."}
141
141
  </C>
142
142
  </T>}
143
143
 
144
144
 
145
- {(I.logs&&I.logs.length>0||N)&&<T style={o.consoleContainer}>
146
- <T style={o.consoleHeaderRow}>
145
+ {(R.logs&&R.logs.length>0||$)&&<T style={r.consoleContainer}>
146
+ <T style={r.consoleHeaderRow}>
147
147
  <T style={{flexDirection:"row",alignItems:"center",gap:6}}>
148
148
  <Ze color={e.sky400}size={12}/>
149
- <C style={o.consoleHeaderTitle}>GRADLE VERBOSE OUTPUT</C>
149
+ <C style={r.consoleHeaderTitle}>{x("debugging.gradleVerboseOutput","GRADLE VERBOSE OUTPUT")}</C>
150
150
  </T>
151
- <G activeOpacity={.7}onPress={()=>Ae(!Q)}style={o.consoleToggleBtn}>
152
- <C style={o.consoleToggleText}>
153
- {Q?"Hide Console":"Show Console"}
151
+ <H activeOpacity={.7}onPress={()=>Fe(!U)}style={r.consoleToggleBtn}>
152
+ <C style={r.consoleToggleText}>
153
+ {U?"Hide Console":"Show Console"}
154
154
  </C>
155
- </G>
155
+ </H>
156
156
  </T>
157
157
 
158
- {Q&&<Te ref={re}style={o.consoleLogBox}contentContainerStyle={o.consoleLogContent}nestedScrollEnabled showsVerticalScrollIndicator>
159
- {I.logs&&I.logs.length>0?I.logs.map((k,V)=>{let S=e.slate400;return k.startsWith("> Task :")?S=e.sky400:k.includes("BUILD SUCCESSFUL")?S=e.buildSuccessGreen:k.includes("FAILURE")||k.includes("error:")?S=e.buildFailureRed:k.includes("UP-TO-DATE")&&(S=e.purple400),<C key={V}style={[o.consoleLogLine,{color:S}]}>
158
+ {U&&<Te ref={ee}style={r.consoleLogBox}contentContainerStyle={r.consoleLogContent}nestedScrollEnabled showsVerticalScrollIndicator>
159
+ {R.logs&&R.logs.length>0?R.logs.map((k,I)=>{let w=e.slate400;return k.startsWith("> Task :")?w=e.sky400:k.includes("BUILD SUCCESSFUL")?w=e.buildSuccessGreen:k.includes("FAILURE")||k.includes("error:")?w=e.buildFailureRed:k.includes("UP-TO-DATE")&&(w=e.purple400),<C key={I}style={[r.consoleLogLine,{color:w}]}>
160
160
  {k}
161
- </C>}):<C style={o.consoleLogPlaceholder}>
162
- Waiting for Gradle daemon output...
161
+ </C>}):<C style={r.consoleLogPlaceholder}>
162
+ {x("debugging.waitingForGradle","Waiting for Gradle daemon output...")}
163
163
  </C>}
164
164
  </Te>}
165
165
  </T>}
166
166
 
167
167
 
168
- {N?<T style={o.buildingActionsRow}>
169
- <T style={o.buildingStatusPill}>
168
+ {$?<T style={r.buildingActionsRow}>
169
+ <T style={r.buildingStatusPill}>
170
170
  <Ce size="small"color={e.purple}/>
171
- <C style={o.buildingStatusPillText}numberOfLines={1}>
172
- Building ({I.progress}%)
171
+ <C style={r.buildingStatusPillText}numberOfLines={1}>
172
+ Building ({R.progress}%)
173
173
  </C>
174
174
  </T>
175
175
 
176
- <Se onPress={Me}style={o.stopBtn}>
176
+ <Be onPress={Oe}style={r.stopBtn}>
177
177
  <Ie size={13}color={e.white}/>
178
- <C style={o.stopBtnText}>Stop Build</C>
179
- </Se>
180
- </T>:<Se onPress={Oe}style={o.generateBtn}>
181
- <T style={o.ctaContentRow}>
178
+ <C style={r.stopBtnText}>{x("debugging.stopBuild","Stop Build")}</C>
179
+ </Be>
180
+ </T>:<Be onPress={Me}style={r.generateBtn}>
181
+ <T style={r.ctaContentRow}>
182
182
  <Ge size={14}color={e.white}/>
183
- <C style={o.generateBtnText}>
184
- {W?"Clean & Generate Build":"Generate Build"}
183
+ <C style={r.generateBtnText}>
184
+ {O?"Clean & Generate Build":"Generate Build"}
185
185
  </C>
186
186
  </T>
187
- </Se>}
187
+ </Be>}
188
188
  </T>
189
189
 
190
190
 
191
- <T style={o.footerNoteRow}>
192
- <Ee size={13}color={e.grayTextWeak}/>
193
- <C style={o.footerNoteText}>
194
- Ensure both Android devices are connected to the same Wi-Fi network.
191
+ <T style={r.footerNoteRow}>
192
+ <Ne size={13}color={e.grayTextWeak}/>
193
+ <C style={r.footerNoteText}>
194
+ {x("debugging.sameWifiNote","Ensure both Android devices are connected to the same Wi-Fi network.")}
195
195
  </C>
196
196
  </T>
197
- </Te>};const o=Pe.create({scrollArea:{flex:1,backgroundColor:e.contentBg},scrollContent:{padding:12,gap:12,paddingBottom:100},heroCard:{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:14,shadowColor:e.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:1,gap:12},heroHeader:{flexDirection:"row",alignItems:"center",gap:10},heroIconWrap:{width:38,height:38,borderRadius:10,backgroundColor:e.purple,alignItems:"center",justifyContent:"center",shadowColor:e.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},heroTitle:{fontFamily:B.interBold,fontSize:15,color:e.primaryBlack,letterSpacing:-.2},heroSubtitle:{fontFamily:B.interRegular,fontSize:11.5,color:e.grayText,marginTop:1},heroBadge:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:`${e.emerald500}18`,paddingHorizontal:7,paddingVertical:3,borderRadius:6},pulseDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},heroBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.emerald500},heroMetricsStrip:{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:10,paddingVertical:8,paddingHorizontal:10},heroMetricItem:{flex:1,alignItems:"center",paddingHorizontal:2,minWidth:0},heroMetricLabel:{fontFamily:B.interBold,fontSize:8.5,color:e.grayTextWeak,letterSpacing:.4},heroMetricValue:{fontFamily:B.interBold,fontSize:11,color:e.primaryBlack,marginTop:2},heroMetricDivider:{width:1,height:20,backgroundColor:e.dividerColor},sectionCard:{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:14,shadowColor:e.black,shadowOpacity:.03,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1,gap:12},sectionHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},sectionTitle:{fontFamily:B.interBold,fontSize:10.5,color:e.grayTextWeak,letterSpacing:.8,textTransform:"uppercase"},refreshBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:3,borderRadius:6,backgroundColor:`${e.purple}12`},refreshBtnText:{fontFamily:B.interBold,fontSize:10,color:e.purple},qrCenteredWrapper:{alignItems:"center",justifyContent:"center",backgroundColor:e.grayBackground,padding:12,borderRadius:12,borderWidth:1,borderColor:e.grayBorderSecondary},qrInnerFrame:{backgroundColor:e.white,padding:6,borderRadius:8},urlBox:{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:10,paddingLeft:10,paddingRight:6,paddingVertical:6,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8},urlText:{flex:1,fontFamily:B.interMedium,fontSize:11.5,color:e.skyBlue},actionsRow:{flexDirection:"row",gap:10},actionBtnSecondary:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:9,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,backgroundColor:e.grayBackground},actionBtnSecondaryText:{fontFamily:B.interBold,fontSize:12,color:e.grayTextStrong},actionBtnPrimary:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:9,borderRadius:10,backgroundColor:e.purple,shadowColor:e.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},actionBtnPrimaryText:{fontFamily:B.interBold,fontSize:12,color:e.white},completedBadge:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.emerald500}18`,paddingHorizontal:6,paddingVertical:2,borderRadius:5},completedBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.emerald500},subTabStrip:{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:8,padding:2,borderWidth:1,borderColor:e.grayBorderSecondary},subTabItem:{flex:1,paddingVertical:7,borderRadius:6,alignItems:"center",justifyContent:"center"},subTabItemActive:{backgroundColor:e.purple,shadowColor:e.purple,shadowOpacity:.2,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1},subTabText:{fontFamily:B.interMedium,fontSize:11,color:e.grayText},subTabTextActive:{fontFamily:B.interBold,color:e.white},cleanRow:{flexDirection:"row",alignItems:"center",gap:8,paddingVertical:2},checkboxBox:{width:18,height:18,borderRadius:4,borderWidth:1.5,borderColor:e.grayBorderSecondary,backgroundColor:e.grayBackground,alignItems:"center",justifyContent:"center"},checkboxBoxActive:{backgroundColor:e.purple,borderColor:e.purple},cleanLabel:{fontFamily:B.interMedium,fontSize:11.5,color:e.grayTextStrong},cleanCode:{fontFamily:B.interRegular,color:e.grayTextWeak,fontSize:10.5},progressContainer:{backgroundColor:e.grayBackground,borderRadius:10,padding:10,gap:6,borderWidth:1,borderColor:e.grayBorderSecondary},progressTopRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},progressTaskGroup:{flexDirection:"row",alignItems:"center",gap:6,flex:1,paddingRight:8},progressTaskText:{fontFamily:B.interMedium,fontSize:11,color:e.primaryBlack,flex:1},progressPercentageText:{fontFamily:B.interBold,fontSize:11.5,color:e.purple},progressBarTrack:{width:"100%",height:6,borderRadius:3,backgroundColor:e.grayBorderSecondary,overflow:"hidden"},progressBarFill:{height:"100%",backgroundColor:e.purple,borderRadius:3},errorContainer:{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:`${e.errorColor}12`,padding:8,borderRadius:8,borderWidth:1,borderColor:`${e.errorColor}25`},errorText:{fontFamily:B.interRegular,fontSize:11,color:e.errorColor,flex:1},consoleContainer:{backgroundColor:e.slate900,borderRadius:10,borderWidth:1,borderColor:e.slate800,overflow:"hidden",marginTop:4},consoleHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.slate800,paddingHorizontal:10,paddingVertical:6},consoleHeaderTitle:{fontFamily:B.interBold,fontSize:10,color:e.sky400,letterSpacing:.5},consoleToggleBtn:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,backgroundColor:"rgba(255,255,255,0.1)"},consoleToggleText:{fontFamily:B.interMedium,fontSize:9.5,color:e.slate400},consoleLogBox:{maxHeight:140,paddingHorizontal:10,paddingVertical:8},consoleLogContent:{gap:3},consoleLogLine:{fontFamily:B.interRegular,fontSize:10,lineHeight:14},consoleLogPlaceholder:{fontFamily:B.interRegular,fontSize:10,color:e.slate500,fontStyle:"italic"},generateBtn:{backgroundColor:e.purple,borderRadius:10,paddingVertical:10,alignItems:"center",justifyContent:"center",shadowColor:e.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},generateBtnDisabled:{opacity:.7},buildingActionsRow:{flexDirection:"row",alignItems:"center",gap:10},buildingStatusPill:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,backgroundColor:`${e.purple}14`,borderRadius:10,paddingVertical:10,borderWidth:1,borderColor:`${e.purple}30`},buildingStatusPillText:{fontFamily:B.interBold,fontSize:12,color:e.purple},stopBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,backgroundColor:e.errorColor,borderRadius:10,paddingHorizontal:16,paddingVertical:10,shadowColor:e.errorColor,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},stopBtnText:{fontFamily:B.interBold,fontSize:12,color:e.white},ctaContentRow:{flexDirection:"row",alignItems:"center",gap:6},generateBtnText:{fontFamily:B.interBold,fontSize:12.5,color:e.white},footerNoteRow:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:8},footerNoteText:{fontFamily:B.interRegular,fontSize:11,color:e.grayTextWeak,textAlign:"center",flex:1}});export default DebuggingTab;
197
+ </Te>};const r=$e.create({scrollArea:{flex:1,backgroundColor:e.contentBg},scrollContent:{padding:12,gap:12,paddingBottom:100},heroCard:{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:14,shadowColor:e.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:1,gap:12},heroHeader:{flexDirection:"row",alignItems:"center",gap:10},heroIconWrap:{width:38,height:38,borderRadius:10,backgroundColor:e.purple,alignItems:"center",justifyContent:"center",shadowColor:e.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},heroTitle:{fontFamily:B.interBold,fontSize:15,color:e.primaryBlack,letterSpacing:-.2},heroSubtitle:{fontFamily:B.interRegular,fontSize:11.5,color:e.grayText,marginTop:1},heroBadge:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:`${e.emerald500}18`,paddingHorizontal:7,paddingVertical:3,borderRadius:6},pulseDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},heroBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.emerald500},heroMetricsStrip:{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:10,paddingVertical:8,paddingHorizontal:10},heroMetricItem:{flex:1,alignItems:"center",paddingHorizontal:2,minWidth:0},heroMetricLabel:{fontFamily:B.interBold,fontSize:8.5,color:e.grayTextWeak,letterSpacing:.4},heroMetricValue:{fontFamily:B.interBold,fontSize:11,color:e.primaryBlack,marginTop:2},heroMetricDivider:{width:1,height:20,backgroundColor:e.dividerColor},sectionCard:{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:14,shadowColor:e.black,shadowOpacity:.03,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1,gap:12},sectionHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},sectionTitle:{fontFamily:B.interBold,fontSize:10.5,color:e.grayTextWeak,letterSpacing:.8,textTransform:"uppercase"},refreshBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:3,borderRadius:6,backgroundColor:`${e.purple}12`},refreshBtnText:{fontFamily:B.interBold,fontSize:10,color:e.purple},qrCenteredWrapper:{alignItems:"center",justifyContent:"center",backgroundColor:e.grayBackground,padding:12,borderRadius:12,borderWidth:1,borderColor:e.grayBorderSecondary},qrInnerFrame:{backgroundColor:e.white,padding:6,borderRadius:8},urlBox:{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:10,paddingLeft:10,paddingRight:6,paddingVertical:6,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8},urlText:{flex:1,fontFamily:B.interMedium,fontSize:11.5,color:e.skyBlue},actionsRow:{flexDirection:"row",gap:10},actionBtnSecondary:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:9,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,backgroundColor:e.grayBackground},actionBtnSecondaryText:{fontFamily:B.interBold,fontSize:12,color:e.grayTextStrong},actionBtnPrimary:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,paddingVertical:9,borderRadius:10,backgroundColor:e.purple,shadowColor:e.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},actionBtnPrimaryText:{fontFamily:B.interBold,fontSize:12,color:e.white},completedBadge:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.emerald500}18`,paddingHorizontal:6,paddingVertical:2,borderRadius:5},completedBadgeText:{fontFamily:B.interBold,fontSize:9.5,color:e.emerald500},subTabStrip:{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:8,padding:2,borderWidth:1,borderColor:e.grayBorderSecondary},subTabItem:{flex:1,paddingVertical:7,borderRadius:6,alignItems:"center",justifyContent:"center"},subTabItemActive:{backgroundColor:e.purple,shadowColor:e.purple,shadowOpacity:.2,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1},subTabText:{fontFamily:B.interMedium,fontSize:11,color:e.grayText},subTabTextActive:{fontFamily:B.interBold,color:e.white},cleanRow:{flexDirection:"row",alignItems:"center",gap:8,paddingVertical:2},checkboxBox:{width:18,height:18,borderRadius:4,borderWidth:1.5,borderColor:e.grayBorderSecondary,backgroundColor:e.grayBackground,alignItems:"center",justifyContent:"center"},checkboxBoxActive:{backgroundColor:e.purple,borderColor:e.purple},cleanLabel:{fontFamily:B.interMedium,fontSize:11.5,color:e.grayTextStrong},cleanCode:{fontFamily:B.interRegular,color:e.grayTextWeak,fontSize:10.5},progressContainer:{backgroundColor:e.grayBackground,borderRadius:10,padding:10,gap:6,borderWidth:1,borderColor:e.grayBorderSecondary},progressTopRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},progressTaskGroup:{flexDirection:"row",alignItems:"center",gap:6,flex:1,paddingRight:8},progressTaskText:{fontFamily:B.interMedium,fontSize:11,color:e.primaryBlack,flex:1},progressPercentageText:{fontFamily:B.interBold,fontSize:11.5,color:e.purple},progressBarTrack:{width:"100%",height:6,borderRadius:3,backgroundColor:e.grayBorderSecondary,overflow:"hidden"},progressBarFill:{height:"100%",backgroundColor:e.purple,borderRadius:3},errorContainer:{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:`${e.errorColor}12`,padding:8,borderRadius:8,borderWidth:1,borderColor:`${e.errorColor}25`},errorText:{fontFamily:B.interRegular,fontSize:11,color:e.errorColor,flex:1},consoleContainer:{backgroundColor:e.slate900,borderRadius:10,borderWidth:1,borderColor:e.slate800,overflow:"hidden",marginTop:4},consoleHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.slate800,paddingHorizontal:10,paddingVertical:6},consoleHeaderTitle:{fontFamily:B.interBold,fontSize:10,color:e.sky400,letterSpacing:.5},consoleToggleBtn:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,backgroundColor:"rgba(255,255,255,0.1)"},consoleToggleText:{fontFamily:B.interMedium,fontSize:9.5,color:e.slate400},consoleLogBox:{maxHeight:140,paddingHorizontal:10,paddingVertical:8},consoleLogContent:{gap:3},consoleLogLine:{fontFamily:B.interRegular,fontSize:10,lineHeight:14},consoleLogPlaceholder:{fontFamily:B.interRegular,fontSize:10,color:e.slate500,fontStyle:"italic"},generateBtn:{backgroundColor:e.purple,borderRadius:10,paddingVertical:10,alignItems:"center",justifyContent:"center",shadowColor:e.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},generateBtnDisabled:{opacity:.7},buildingActionsRow:{flexDirection:"row",alignItems:"center",gap:10},buildingStatusPill:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,backgroundColor:`${e.purple}14`,borderRadius:10,paddingVertical:10,borderWidth:1,borderColor:`${e.purple}30`},buildingStatusPillText:{fontFamily:B.interBold,fontSize:12,color:e.purple},stopBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,backgroundColor:e.errorColor,borderRadius:10,paddingHorizontal:16,paddingVertical:10,shadowColor:e.errorColor,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},stopBtnText:{fontFamily:B.interBold,fontSize:12,color:e.white},ctaContentRow:{flexDirection:"row",alignItems:"center",gap:6},generateBtnText:{fontFamily:B.interBold,fontSize:12.5,color:e.white},footerNoteRow:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:8},footerNoteText:{fontFamily:B.interRegular,fontSize:11,color:e.grayTextWeak,textAlign:"center",flex:1}});export default DebuggingTab;
@@ -98,13 +98,13 @@ import Ve,{useState as re,useEffect as Le,useMemo as H,useCallback as Pe}from"re
98
98
  </C>
99
99
  <C style={{flex:1,minWidth:0}}>
100
100
  <C style={{flexDirection:"row",alignItems:"center",gap:6}}>
101
- <T style={r.featuredUuidLabel}>DEVICE UUID</T>
101
+ <T style={r.featuredUuidLabel}>{$("device.deviceUuid","DEVICE UUID")}</T>
102
102
  <C style={r.featuredBadge}>
103
103
  <T style={r.featuredBadgeText}>FEATURED</T>
104
104
  </C>
105
105
  </C>
106
106
  <T style={r.featuredUuidSubtext}>
107
- Deterministic hardware pseudo-identifier
107
+ {$("device.pseudoIdentifierDesc","Deterministic hardware pseudo-identifier")}
108
108
  </T>
109
109
  </C>
110
110
  </C>
@@ -1,81 +1,81 @@
1
- import{useCallback as L,useEffect as X,useRef as d,useState as E}from"react";import{Animated as s,PanResponder as ce,Platform as b,StyleSheet as We,Text as I,TouchableOpacity as Ne,useWindowDimensions as He,View as S}from"react-native";import Ye from"react-native-linear-gradient";import{useInspector as $e}from"./InspectorContext";import F from"../TouchableScale";import Se from"../AppHeaderLogo";import{AndroidIcon as Ge,AppleIcon as Xe,ScreenshotCaptureIcon as Ze,ScreenRecordIcon as _e,CloseWhite as Re,MaximizeIcon as Ue,NpmIcon as Je}from"../NetworkIcons";import{ScreenCapture as V,generateCaptureId as K}from"../../capture";import{triggerNativeHaptic as u}from"../../native/NativeInspector";import{showToast as m}from"../../helpers/toast";import{getAppName as Ke,getAppVersionAndBuild as Qe}from"../../helpers";import{LIB_VERSION as et}from"../../constants";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as W}from"../../styles/AppFonts";import Ce from"../../styles";import{useTranslation as tt}from"../../i18n";import{MediaPreviewModal as St}from"./MediaPreviewModal";const vt=()=>{const{setVisible:P,isMinimized:Te,setIsMinimized:k,dismissInspector:Ie,appIcon:Q,fabPan:a,fabPanResponder:xt,fabDraggedRef:N,pulseAnim:Ve,fabShineAnim:Rt,refreshMediaCount:v,captureFps:ee,captureScale:te,captureBitrate:Z,captureMaxDurationSeconds:re,captureAudioMode:oe,previewMediaItem:ie,setPreviewMediaItem:D}=$e(),{width:M,height:x}=He(),{t:n}=tt(),[Pe]=E(()=>Qe().formatted),[p,H]=E(!1),[De,j]=E(0),R=d(null),[Me,_]=E(!1),[q,O]=E(!1),f=d(!1),z=d(new s.Value(0)).current,Y=d(new s.Value(1)).current,C=d({x:0,y:0});X(()=>{const e=a.x.addListener(r=>C.current.x=r.value),t=a.y.addListener(r=>C.current.y=r.value);return()=>{a.x.removeListener(e),a.y.removeListener(t)}},[a]);const l=68,$=8,Oe=L(()=>{const e=C.current.x,t=C.current.y,r=20,B=180,g=M-r-l/2+e,G=x-B-l/2+t;let U=e,J=t,A=!1;g<$+l/2?(U=e+($+l/2-g),A=!0):g>M-$-l/2&&(U=e-(g-(M-$-l/2)),A=!0);const se=b.OS==="ios"?60:40,ae=b.OS==="ios"?40:24;G<se+l/2?(J=t+(se+l/2-G),A=!0):G>x-ae-l/2&&(J=t-(G-(x-ae-l/2)),A=!0),A&&s.spring(a,{toValue:{x:U,y:J},useNativeDriver:!1,tension:80,friction:8}).start()},[a,M,x]),ze=d(ce.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{N.current=!0,a.setOffset({x:C.current.x,y:C.current.y}),a.setValue({x:0,y:0}),f.current=!1,O(!1),_(!0),Y.setValue(1),s.spring(z,{toValue:1,useNativeDriver:!0,tension:80,friction:8}).start()},onPanResponderMove:(e,t)=>{a.setValue({x:t.dx,y:t.dy});const r=t.moveY,B=t.moveX,g=r>x-140&&Math.abs(B-M/2)<85;g&&!f.current?(f.current=!0,O(!0),u("medium"),s.spring(Y,{toValue:1.25,useNativeDriver:!0,tension:100,friction:6}).start()):!g&&f.current&&(f.current=!1,O(!1),s.spring(Y,{toValue:1,useNativeDriver:!0,tension:100,friction:6}).start())},onPanResponderRelease:()=>{const e=f.current;a.flattenOffset(),s.timing(z,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{_(!1),O(!1),f.current=!1}),e?(u("heavy"),Ie(),m(n("common.inspectorDismissed","In-App Inspector closed for this session"))):Oe(),setTimeout(()=>{N.current=!1},100)},onPanResponderTerminate:()=>{a.flattenOffset(),N.current=!1,s.timing(z,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{_(!1),O(!1),f.current=!1})}})).current,c=d(new s.ValueXY({x:0,y:0})).current,T=d({x:0,y:0});X(()=>{const e=c.x.addListener(r=>T.current.x=r.value),t=c.y.addListener(r=>T.current.y=r.value);return()=>{c.x.removeListener(e),c.y.removeListener(t)}},[c]);const h=d(!1),Be=d(ce.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{h.current=!0,c.setOffset({x:T.current.x,y:T.current.y}),c.setValue({x:0,y:0})},onPanResponderMove:s.event([null,{dx:c.x,dy:c.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{c.flattenOffset();const e=T.current.y,t=-(x-(b.OS==="ios"?34:18)-70),r=b.OS==="ios"?34:18;if(e<t||e>r){const B=Math.max(t,Math.min(r,e));s.spring(c,{toValue:{x:T.current.x,y:B},useNativeDriver:!1,tension:80,friction:8}).start()}setTimeout(()=>{h.current=!1},50)},onPanResponderTerminate:()=>{c.flattenOffset(),h.current=!1}})).current;X(()=>{V.isRecording().then(e=>{H(!!e)}).catch(()=>{})},[]),X(()=>(p?(j(0),R.current=setInterval(()=>{j(e=>e+1)},1e3)):(R.current&&(clearInterval(R.current),R.current=null),j(0)),()=>{R.current&&clearInterval(R.current)}),[p]);const Ae=L(async()=>{if(!h.current)try{u("light");const e=await V.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){u("success");const t=K("screenshot",e.format||"png"),r={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};D(r),v?.().catch(()=>{}),m(n("header.screenshotCaptured","Screenshot captured"))}else m(n("header.screenshotFailed","Failed to capture screenshot"))}catch{m(n("header.screenshotError","Error capturing screenshot"))}},[v,n]),Le=L(async()=>{if(!h.current)try{if(p){u("medium");const e=await V.stopRecording();if(H(!1),e){u("success");const t=K("video",e.format),r={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};D(r),v?.().catch(()=>{}),m(n("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else u("medium"),await V.startRecording({fps:ee,scale:te,audioSource:oe,bitrate:Z>0?Z:void 0,maxDurationSeconds:re})?(H(!0),m(n("header.recordingStarted","Recording started"))):m(n("header.recordingStartFailed","Failed to start recording"))}catch{m(n("header.recordingError","Error during screen recording")),H(!1)}},[p,ee,te,Z,re,oe,v,n]),ne=L(()=>{h.current||(u("light"),k?.(!1),P(!0))},[k,P]),Ee=L(()=>{h.current||(u("light"),k?.(!1),P(!1))},[k,P]),Fe=e=>{const t=Math.floor(e/60),r=e%60;return`${t}:${r<10?"0":""}${r}`};return<>
1
+ import{useCallback as B,useEffect as G,useRef as d,useState as L}from"react";import{Animated as s,PanResponder as ae,Platform as y,StyleSheet as ke,Text as T,TouchableOpacity as We,useWindowDimensions as Ne,View as S}from"react-native";import He from"react-native-linear-gradient";import{useInspector as Ye}from"./InspectorContext";import E from"../TouchableScale";import Se from"../AppHeaderLogo";import{AndroidIcon as $e,AppleIcon as Ge,ScreenshotCaptureIcon as Xe,ScreenRecordIcon as Ze,CloseWhite as Re,MaximizeIcon as _e,NpmIcon as Ue}from"../NetworkIcons";import{ScreenCapture as V,generateCaptureId as J}from"../../capture";import{triggerNativeHaptic as u}from"../../native/NativeInspector";import{showToast as m}from"../../helpers/toast";import{getAppName as Je,getAppVersionAndBuild as Ke}from"../../helpers";import{LIB_VERSION as Qe}from"../../constants";import{AppColors as i}from"../../styles/AppColors";import{AppFonts as F}from"../../styles/AppFonts";import Ce from"../../styles";import{useTranslation as et}from"../../i18n";import{MediaPreviewModal as St}from"./MediaPreviewModal";const vt=()=>{const{setVisible:D,isMinimized:Ie,setIsMinimized:k,dismissInspector:Te,appIcon:K,fabPan:a,fabPanResponder:xt,fabDraggedRef:W,pulseAnim:Ve,fabShineAnim:Rt,refreshMediaCount:h,captureFps:Q,captureScale:ee,captureBitrate:X,captureMaxDurationSeconds:te,captureAudioMode:re,previewMediaItem:ie,setPreviewMediaItem:v}=Ye(),{width:P,height:x}=Ne(),{t:n}=et(),[De]=L(()=>Ke().formatted),[p,N]=L(!1),[Pe,Z]=L(0),R=d(null),[Me,j]=L(!1),[_,M]=L(!1),f=d(!1),O=d(new s.Value(0)).current,H=d(new s.Value(1)).current,C=d({x:0,y:0});G(()=>{const e=a.x.addListener(r=>C.current.x=r.value),t=a.y.addListener(r=>C.current.y=r.value);return()=>{a.x.removeListener(e),a.y.removeListener(t)}},[a]);const l=68,Y=8,Oe=B(()=>{const e=C.current.x,t=C.current.y,r=20,z=180,b=P-r-l/2+e,$=x-z-l/2+t;let q=e,U=t,A=!1;b<Y+l/2?(q=e+(Y+l/2-b),A=!0):b>P-Y-l/2&&(q=e-(b-(P-Y-l/2)),A=!0);const ne=y.OS==="ios"?60:40,se=y.OS==="ios"?40:24;$<ne+l/2?(U=t+(ne+l/2-$),A=!0):$>x-se-l/2&&(U=t-($-(x-se-l/2)),A=!0),A&&s.spring(a,{toValue:{x:q,y:U},useNativeDriver:!1,tension:80,friction:8}).start()},[a,P,x]),ze=d(ae.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{W.current=!0,a.setOffset({x:C.current.x,y:C.current.y}),a.setValue({x:0,y:0}),f.current=!1,M(!1),j(!0),H.setValue(1),s.spring(O,{toValue:1,useNativeDriver:!0,tension:80,friction:8}).start()},onPanResponderMove:(e,t)=>{a.setValue({x:t.dx,y:t.dy});const r=t.moveY,z=t.moveX,b=r>x-140&&Math.abs(z-P/2)<85;b&&!f.current?(f.current=!0,M(!0),u("medium"),s.spring(H,{toValue:1.25,useNativeDriver:!0,tension:100,friction:6}).start()):!b&&f.current&&(f.current=!1,M(!1),s.spring(H,{toValue:1,useNativeDriver:!0,tension:100,friction:6}).start())},onPanResponderRelease:()=>{const e=f.current;a.flattenOffset(),s.timing(O,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{j(!1),M(!1),f.current=!1}),e?(u("heavy"),Te(),m(n("common.inspectorDismissed","In-App Inspector closed for this session"))):Oe(),setTimeout(()=>{W.current=!1},100)},onPanResponderTerminate:()=>{a.flattenOffset(),W.current=!1,s.timing(O,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{j(!1),M(!1),f.current=!1})}})).current,c=d(new s.ValueXY({x:0,y:0})).current,I=d({x:0,y:0});G(()=>{const e=c.x.addListener(r=>I.current.x=r.value),t=c.y.addListener(r=>I.current.y=r.value);return()=>{c.x.removeListener(e),c.y.removeListener(t)}},[c]);const g=d(!1),Ae=d(ae.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{g.current=!0,c.setOffset({x:I.current.x,y:I.current.y}),c.setValue({x:0,y:0})},onPanResponderMove:s.event([null,{dx:c.x,dy:c.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{c.flattenOffset();const e=I.current.y,t=-(x-(y.OS==="ios"?34:18)-70),r=y.OS==="ios"?34:18;if(e<t||e>r){const z=Math.max(t,Math.min(r,e));s.spring(c,{toValue:{x:I.current.x,y:z},useNativeDriver:!1,tension:80,friction:8}).start()}setTimeout(()=>{g.current=!1},50)},onPanResponderTerminate:()=>{c.flattenOffset(),g.current=!1}})).current;G(()=>{V.isRecording().then(e=>{N(!!e)}).catch(()=>{})},[]),G(()=>(p?(Z(0),R.current=setInterval(()=>{Z(e=>e+1)},1e3)):(R.current&&(clearInterval(R.current),R.current=null),Z(0)),()=>{R.current&&clearInterval(R.current)}),[p]);const Be=B(async()=>{if(!g.current)try{u("light");const e=await V.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){u("success");const t=J("screenshot",e.format||"png"),r={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};v(r),h?.().catch(()=>{}),m(n("header.screenshotCaptured","Screenshot captured"))}else m(n("header.screenshotFailed","Failed to capture screenshot"))}catch{m(n("header.screenshotError","Error capturing screenshot"))}},[h,n]),Le=B(async()=>{if(!g.current)try{if(p){u("medium");const e=await V.stopRecording();if(N(!1),e){u("success");const t=J("video",e.format),r={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};v(r),h?.().catch(()=>{}),m(n("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else u("medium"),await V.startRecording({fps:Q,scale:ee,audioSource:re,bitrate:X>0?X:void 0,maxDurationSeconds:te})?(N(!0),m(n("header.recordingStarted","Recording started"))):m(n("header.recordingStartFailed","Failed to start recording"))}catch{m(n("header.recordingError","Error during screen recording")),N(!1)}},[p,Q,ee,X,te,re,h,n]),oe=B(()=>{g.current||(u("light"),k?.(!1),D(!0))},[k,D]),Ee=B(()=>{g.current||(u("light"),k?.(!1),D(!1))},[k,D]),Fe=e=>{const t=Math.floor(e/60),r=e%60;return`${t}:${r<10?"0":""}${r}`};return<>
2
2
 
3
- {Te?<s.View style={[i.playerContainer,{transform:c.getTranslateTransform()}]}{...Be.panHandlers}>
3
+ {Ie?<s.View style={[o.playerContainer,{transform:c.getTranslateTransform()}]}{...Ae.panHandlers}>
4
4
 
5
- <Ye colors={[o.indigo600,o.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={i.gradientBg}pointerEvents="none"/>
5
+ <He colors={[i.indigo600,i.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={o.gradientBg}pointerEvents="none"/>
6
6
 
7
7
 
8
- <Ne activeOpacity={.75}onPress={ne}style={i.brandSection}accessibilityRole="button"accessibilityLabel={n("mediaGallery.expand","Expand Inspector")}>
9
- <Se size={36}customIcon={Q}shape="circle"/>
10
- <S style={i.titleWrapper}>
11
- <I style={i.appTitle}numberOfLines={1}>
12
- {Ke()}
13
- </I>
14
- <S style={i.versionRow}>
8
+ <We activeOpacity={.75}onPress={oe}style={o.brandSection}accessibilityRole="button"accessibilityLabel={n("mediaGallery.expand","Expand Inspector")}>
9
+ <Se size={36}customIcon={K}shape="circle"/>
10
+ <S style={o.titleWrapper}>
11
+ <T style={o.appTitle}numberOfLines={1}>
12
+ {Je()}
13
+ </T>
14
+ <S style={o.versionRow}>
15
15
 
16
- <S style={i.versionChip}>
17
- {b.OS==="ios"?<Xe color={`${o.white}E6`}size={9}/>:<Ge color={`${o.white}E6`}size={9}/>}
18
- <I style={i.versionChipText}numberOfLines={1}>
19
- {Pe}
20
- </I>
16
+ <S style={o.versionChip}>
17
+ {y.OS==="ios"?<Ge color={`${i.white}E6`}size={9}/>:<$e color={`${i.white}E6`}size={9}/>}
18
+ <T style={o.versionChipText}numberOfLines={1}>
19
+ {De}
20
+ </T>
21
21
  </S>
22
22
 
23
23
 
24
- <S style={i.versionChip}>
25
- <Je size={9}color={o.npmRedLight}/>
26
- <I style={i.versionChipText}numberOfLines={1}>
27
- v{et}
28
- </I>
24
+ <S style={o.versionChip}>
25
+ <Ue size={9}color={i.npmRedLight}/>
26
+ <T style={o.versionChipText}numberOfLines={1}>
27
+ v{Qe}
28
+ </T>
29
29
  </S>
30
30
  </S>
31
31
  </S>
32
- </Ne>
32
+ </We>
33
33
 
34
34
 
35
- <S style={i.actionsRow}>
35
+ <S style={o.actionsRow}>
36
36
 
37
- <F onPress={Ae}hitSlop={{top:6,bottom:6,left:4,right:4}}style={i.actionBtn}>
38
- <Ze size={12}color={o.white}/>
39
- <I style={i.actionText}>
37
+ <E onPress={Be}hitSlop={{top:6,bottom:6,left:4,right:4}}style={o.actionBtn}>
38
+ <Xe size={12}color={i.white}/>
39
+ <T style={o.actionText}>
40
40
  {n("header.photo","Photo")}
41
- </I>
42
- </F>
41
+ </T>
42
+ </E>
43
43
 
44
44
 
45
- <F onPress={Le}hitSlop={{top:6,bottom:6,left:4,right:4}}style={[i.actionBtn,p&&i.recordingBtnActive]}>
46
- {p?<S style={i.recordingDot}/>:<_e size={12}color={o.white}/>}
47
- <I style={[i.actionText,p&&{color:o.red300}]}>
48
- {p?`${n("header.rec","REC")} ${Fe(De)}`:n("header.record","Record")}
49
- </I>
50
- </F>
45
+ <E onPress={Le}hitSlop={{top:6,bottom:6,left:4,right:4}}style={[o.actionBtn,p&&o.recordingBtnActive]}>
46
+ {p?<S style={o.recordingDot}/>:<Ze size={12}color={i.white}/>}
47
+ <T style={[o.actionText,p&&{color:i.red300}]}>
48
+ {p?`${n("header.rec","REC")} ${Fe(Pe)}`:n("header.record","Record")}
49
+ </T>
50
+ </E>
51
51
 
52
52
 
53
- <F onPress={ne}hitSlop={{top:6,bottom:6,left:4,right:4}}accessibilityRole="button"accessibilityLabel={n("common.expand","Expand")}style={i.actionBtnSquare}>
54
- <Ue size={12}color={o.white}/>
55
- </F>
53
+ <E onPress={oe}hitSlop={{top:6,bottom:6,left:4,right:4}}accessibilityRole="button"accessibilityLabel={n("common.expand","Expand")}style={o.actionBtnSquare}>
54
+ <_e size={12}color={i.white}/>
55
+ </E>
56
56
 
57
57
 
58
- <F onPress={Ee}hitSlop={{top:6,bottom:6,left:4,right:6}}accessibilityRole="button"accessibilityLabel={n("common.close","Close")}style={i.actionBtnSquare}>
59
- <Re size={10}color={o.white}/>
60
- </F>
58
+ <E onPress={Ee}hitSlop={{top:6,bottom:6,left:4,right:6}}accessibilityRole="button"accessibilityLabel={n("common.close","Close")}style={o.actionBtnSquare}>
59
+ <Re size={10}color={i.white}/>
60
+ </E>
61
61
  </S>
62
62
  </s.View>:<s.View style={[Ce.fabWrapper,{transform:a.getTranslateTransform()}]}{...ze.panHandlers}>
63
- <F testID="inspector.fab.launcher"style={{width:68,height:68,borderRadius:34,alignItems:"center",justifyContent:"center"}}onPress={()=>{N.current||(u("light"),P(!0))}}hitSlop={10}>
63
+ <E testID="inspector.fab.launcher"accessible={!0}accessibilityRole="button"accessibilityLabel={n("accessibility.openInspector","Open In-App Network and System Inspector")}accessibilityHint={n("accessibility.openInspectorHint","Double tap to open the full debug inspector")}style={{width:68,height:68,borderRadius:34,alignItems:"center",justifyContent:"center"}}onPress={()=>{W.current||(u("light"),D(!0))}}hitSlop={10}>
64
64
  <s.View style={[Ce.fabPulseRing,{transform:[{scale:Ve}]}]}/>
65
- <Se size={68}customIcon={Q}shape="circle"/>
66
- </F>
65
+ <Se size={68}customIcon={K}shape="circle"/>
66
+ </E>
67
67
  </s.View>}
68
68
 
69
69
 
70
- {Me&&<s.View pointerEvents="none"style={[i.dismissTargetContainer,{opacity:z,transform:[{translateY:z.interpolate({inputRange:[0,1],outputRange:[30,0]})},{scale:Y}]}]}>
71
- <S style={[i.dismissTargetCircle,q&&i.dismissTargetCircleActive]}>
72
- <Re size={18}color={o.white}/>
70
+ {Me&&<s.View pointerEvents="none"style={[o.dismissTargetContainer,{opacity:O,transform:[{translateY:O.interpolate({inputRange:[0,1],outputRange:[30,0]})},{scale:H}]}]}>
71
+ <S style={[o.dismissTargetCircle,_&&o.dismissTargetCircleActive]}>
72
+ <Re size={18}color={i.white}/>
73
73
  </S>
74
- <I style={[i.dismissTargetLabel,q&&i.dismissTargetLabelActive]}>
75
- {q?n("common.releaseToHide","Release to hide"):n("common.dragToHide","Drag here to hide")}
76
- </I>
74
+ <T style={[o.dismissTargetLabel,_&&o.dismissTargetLabelActive]}>
75
+ {_?n("common.releaseToHide","Release to hide"):n("common.dragToHide","Drag here to hide")}
76
+ </T>
77
77
  </s.View>}
78
78
 
79
79
 
80
- <St item={ie}visible={!!ie}onClose={()=>D(null)}onDelete={async e=>{await V.deleteMedia(e.uri),v?.().catch(()=>{}),D(null)}}onConvertToGif={async e=>{const t=await V.convertToGif(e.uri,{fps:12,width:480});if(t){v?.().catch(()=>{});const r=K("anim","gif");D({id:r,type:"gif",format:"gif",uri:t.uri,filename:t.uri.split("/").pop()||r,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs})}}}/>
81
- </>},i=We.create({dismissTargetContainer:{position:"absolute",bottom:b.OS==="ios"?42:26,left:0,right:0,alignItems:"center",justifyContent:"center",zIndex:999998},dismissTargetCircle:{width:54,height:54,borderRadius:27,backgroundColor:"rgba(23, 23, 37, 0.82)",borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.28)",alignItems:"center",justifyContent:"center",shadowColor:o.black,shadowOffset:{width:0,height:6},shadowOpacity:.4,shadowRadius:10,elevation:16},dismissTargetCircleActive:{backgroundColor:o.red600,borderColor:o.red300,shadowColor:o.red600,shadowOpacity:.65,shadowRadius:18,transform:[{scale:1.06}]},dismissTargetLabel:{marginTop:6,fontFamily:W.interSemiBold,fontSize:11,color:"rgba(255, 255, 255, 0.85)",textShadowColor:"rgba(0, 0, 0, 0.6)",textShadowOffset:{width:0,height:1},textShadowRadius:3},dismissTargetLabelActive:{color:o.red300,fontFamily:W.interBold},playerContainer:{position:"absolute",bottom:b.OS==="ios"?34:18,left:12,right:12,minHeight:58,flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderRadius:16,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.28)",paddingHorizontal:12,paddingVertical:7,gap:8,zIndex:99999,elevation:25,shadowColor:o.indigo600,shadowOffset:{width:0,height:8},shadowOpacity:.45,shadowRadius:14,overflow:"hidden"},gradientBg:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16},playerShineClip:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16,overflow:"hidden"},playerShineStreak:{position:"absolute",top:-60,width:75,height:200},brandSection:{flexDirection:"row",alignItems:"center",gap:9,flex:1,minWidth:0,paddingVertical:2,overflow:"hidden"},titleWrapper:{flex:1,minWidth:0,justifyContent:"center",gap:2},appTitle:{fontFamily:W.interBold,fontSize:13.5,color:o.white,letterSpacing:-.2},versionRow:{flexDirection:"row",alignItems:"center",gap:4,minWidth:0},versionChip:{flexDirection:"row",alignItems:"center",backgroundColor:`${o.white}1F`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${o.white}2E`,flexShrink:1,minWidth:0},versionChipText:{fontFamily:W.interMedium,fontSize:8.5,color:`${o.white}EB`,letterSpacing:.1},actionsRow:{flexDirection:"row",alignItems:"center",gap:4.5,flexShrink:0},actionBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:"rgba(255, 255, 255, 0.22)",paddingHorizontal:8,paddingVertical:5.5,borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},actionBtnSquare:{alignItems:"center",justifyContent:"center",width:27,height:27,backgroundColor:"rgba(255, 255, 255, 0.22)",borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},recordingBtnActive:{backgroundColor:"rgba(239, 68, 68, 0.32)",borderColor:o.red500},recordingDot:{width:6,height:6,borderRadius:3,backgroundColor:o.red500},actionText:{fontFamily:W.interSemiBold,fontSize:10.5,color:o.white}});export default vt;
80
+ <St item={ie}visible={!!ie}onClose={()=>v(null)}onDelete={async e=>{await V.deleteMedia(e.uri),h?.().catch(()=>{}),v(null)}}onConvertToGif={async e=>{const t=await V.convertToGif(e.uri,{fps:12,width:480});if(t){h?.().catch(()=>{});const r=J("anim","gif");v({id:r,type:"gif",format:"gif",uri:t.uri,filename:t.uri.split("/").pop()||r,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs})}}}onSave={e=>{v(e),h?.().catch(()=>{})}}/>
81
+ </>},o=ke.create({dismissTargetContainer:{position:"absolute",bottom:y.OS==="ios"?42:26,left:0,right:0,alignItems:"center",justifyContent:"center",zIndex:999998},dismissTargetCircle:{width:54,height:54,borderRadius:27,backgroundColor:"rgba(23, 23, 37, 0.82)",borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.28)",alignItems:"center",justifyContent:"center",shadowColor:i.black,shadowOffset:{width:0,height:6},shadowOpacity:.4,shadowRadius:10,elevation:16},dismissTargetCircleActive:{backgroundColor:i.red600,borderColor:i.red300,shadowColor:i.red600,shadowOpacity:.65,shadowRadius:18,transform:[{scale:1.06}]},dismissTargetLabel:{marginTop:6,fontFamily:F.interSemiBold,fontSize:11,color:"rgba(255, 255, 255, 0.85)",textShadowColor:"rgba(0, 0, 0, 0.6)",textShadowOffset:{width:0,height:1},textShadowRadius:3},dismissTargetLabelActive:{color:i.red300,fontFamily:F.interBold},playerContainer:{position:"absolute",bottom:y.OS==="ios"?34:18,left:12,right:12,minHeight:58,flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderRadius:16,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.28)",paddingHorizontal:12,paddingVertical:7,gap:8,zIndex:99999,elevation:25,shadowColor:i.indigo600,shadowOffset:{width:0,height:8},shadowOpacity:.45,shadowRadius:14,overflow:"hidden"},gradientBg:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16},playerShineClip:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16,overflow:"hidden"},playerShineStreak:{position:"absolute",top:-60,width:75,height:200},brandSection:{flexDirection:"row",alignItems:"center",gap:9,flex:1,minWidth:0,paddingVertical:2,overflow:"hidden"},titleWrapper:{flex:1,minWidth:0,justifyContent:"center",gap:2},appTitle:{fontFamily:F.interBold,fontSize:13.5,color:i.white,letterSpacing:-.2},versionRow:{flexDirection:"row",alignItems:"center",gap:4,minWidth:0},versionChip:{flexDirection:"row",alignItems:"center",backgroundColor:`${i.white}1F`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${i.white}2E`,flexShrink:1,minWidth:0},versionChipText:{fontFamily:F.interMedium,fontSize:8.5,color:`${i.white}EB`,letterSpacing:.1},actionsRow:{flexDirection:"row",alignItems:"center",gap:4.5,flexShrink:0},actionBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:"rgba(255, 255, 255, 0.22)",paddingHorizontal:8,paddingVertical:5.5,borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},actionBtnSquare:{alignItems:"center",justifyContent:"center",width:27,height:27,backgroundColor:"rgba(255, 255, 255, 0.22)",borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},recordingBtnActive:{backgroundColor:"rgba(239, 68, 68, 0.32)",borderColor:i.red500},recordingDot:{width:6,height:6,borderRadius:3,backgroundColor:i.red500},actionText:{fontFamily:F.interSemiBold,fontSize:10.5,color:i.white}});export default vt;