react-native-inapp-inspector 2.5.11 → 2.5.12

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 (333) hide show
  1. package/README.ar.md +0 -8
  2. package/README.de.md +0 -8
  3. package/README.es.md +0 -8
  4. package/README.fr.md +0 -8
  5. package/README.hi.md +0 -8
  6. package/README.ja.md +0 -8
  7. package/README.ko.md +0 -8
  8. package/README.md +54 -26
  9. package/README.pt-BR.md +0 -8
  10. package/README.ru.md +0 -8
  11. package/README.zh-CN.md +0 -8
  12. package/dist/commonjs/components/ConsoleLogCard.js +32 -26
  13. package/dist/commonjs/components/Inspector/AboutModal.js +1 -4
  14. package/dist/commonjs/components/Inspector/ConsoleTab.js +19 -14
  15. package/dist/commonjs/components/Inspector/InspectorHeader.js +6 -6
  16. package/dist/commonjs/components/Inspector/MainScreen.js +9 -6
  17. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +187 -90
  18. package/dist/commonjs/components/Inspector/NetworkDetail.js +11 -8
  19. package/dist/commonjs/components/Inspector/NetworkTab.js +31 -32
  20. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +2 -0
  21. package/dist/commonjs/components/Inspector/PerformanceTab.js +652 -0
  22. package/dist/commonjs/components/Inspector/SettingsPanel.js +256 -249
  23. package/dist/commonjs/components/Inspector/TabBar.js +17 -16
  24. package/dist/commonjs/components/LogCard.js +11 -8
  25. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  26. package/dist/commonjs/components/NetworkIcons.js +35 -3
  27. package/dist/commonjs/constants/index.d.ts +1 -0
  28. package/dist/commonjs/constants/index.js +1 -1
  29. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  30. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  31. package/dist/commonjs/constants/version.d.ts +1 -1
  32. package/dist/commonjs/constants/version.js +1 -1
  33. package/dist/commonjs/helpers/index.d.ts +3 -0
  34. package/dist/commonjs/helpers/index.js +8 -6
  35. package/dist/commonjs/helpers/performanceSampler.d.ts +88 -0
  36. package/dist/commonjs/helpers/performanceSampler.js +1 -0
  37. package/dist/commonjs/helpers/remoteConfig.d.ts +0 -2
  38. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  39. package/dist/commonjs/i18n/locales/ar.json +1 -1
  40. package/dist/commonjs/i18n/locales/bn.json +1 -1
  41. package/dist/commonjs/i18n/locales/de.json +1 -1
  42. package/dist/commonjs/i18n/locales/en.json +1 -1
  43. package/dist/commonjs/i18n/locales/es.json +1 -1
  44. package/dist/commonjs/i18n/locales/fr.json +1 -1
  45. package/dist/commonjs/i18n/locales/gu.json +1 -1
  46. package/dist/commonjs/i18n/locales/hi.json +1 -1
  47. package/dist/commonjs/i18n/locales/id.json +1 -1
  48. package/dist/commonjs/i18n/locales/it.json +1 -1
  49. package/dist/commonjs/i18n/locales/ja.json +1 -1
  50. package/dist/commonjs/i18n/locales/kn.json +1 -1
  51. package/dist/commonjs/i18n/locales/ko.json +1 -1
  52. package/dist/commonjs/i18n/locales/ml.json +1 -1
  53. package/dist/commonjs/i18n/locales/mr.json +1 -1
  54. package/dist/commonjs/i18n/locales/nl.json +1 -1
  55. package/dist/commonjs/i18n/locales/pa.json +1 -1
  56. package/dist/commonjs/i18n/locales/pl.json +1 -1
  57. package/dist/commonjs/i18n/locales/pt.json +1 -1
  58. package/dist/commonjs/i18n/locales/ru.json +1 -1
  59. package/dist/commonjs/i18n/locales/ta.json +1 -1
  60. package/dist/commonjs/i18n/locales/te.json +1 -1
  61. package/dist/commonjs/i18n/locales/tr.json +1 -1
  62. package/dist/commonjs/i18n/locales/vi.json +1 -1
  63. package/dist/commonjs/i18n/locales/zh.json +1 -1
  64. package/dist/commonjs/index.d.ts +3 -3
  65. package/dist/commonjs/index.js +3 -3
  66. package/dist/commonjs/styles/index.js +1 -1
  67. package/dist/commonjs/types/enums.d.ts +1 -0
  68. package/dist/commonjs/types/enums.js +1 -1
  69. package/dist/commonjs/types/interfaces.d.ts +8 -0
  70. package/dist/esm/components/ConsoleLogCard.js +67 -61
  71. package/dist/esm/components/Inspector/AboutModal.js +14 -17
  72. package/dist/esm/components/Inspector/ConsoleTab.js +33 -28
  73. package/dist/esm/components/Inspector/InspectorHeader.js +6 -6
  74. package/dist/esm/components/Inspector/MainScreen.js +61 -58
  75. package/dist/esm/components/Inspector/MediaGalleryTab.js +254 -157
  76. package/dist/esm/components/Inspector/NetworkDetail.js +62 -59
  77. package/dist/esm/components/Inspector/NetworkTab.js +101 -102
  78. package/dist/esm/components/Inspector/PerformanceTab.d.ts +2 -0
  79. package/dist/esm/components/Inspector/PerformanceTab.js +652 -0
  80. package/dist/esm/components/Inspector/SettingsPanel.js +299 -292
  81. package/dist/esm/components/Inspector/TabBar.js +4 -3
  82. package/dist/esm/components/LogCard.js +37 -34
  83. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  84. package/dist/esm/components/NetworkIcons.js +32 -0
  85. package/dist/esm/constants/index.d.ts +1 -0
  86. package/dist/esm/constants/index.js +1 -1
  87. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  88. package/dist/esm/constants/telemetryConfig.js +1 -1
  89. package/dist/esm/constants/version.d.ts +1 -1
  90. package/dist/esm/constants/version.js +1 -1
  91. package/dist/esm/helpers/index.d.ts +3 -0
  92. package/dist/esm/helpers/index.js +8 -6
  93. package/dist/esm/helpers/performanceSampler.d.ts +88 -0
  94. package/dist/esm/helpers/performanceSampler.js +1 -0
  95. package/dist/esm/helpers/remoteConfig.d.ts +0 -2
  96. package/dist/esm/helpers/remoteConfig.js +1 -1
  97. package/dist/esm/i18n/locales/ar.json +1 -1
  98. package/dist/esm/i18n/locales/bn.json +1 -1
  99. package/dist/esm/i18n/locales/de.json +1 -1
  100. package/dist/esm/i18n/locales/en.json +1 -1
  101. package/dist/esm/i18n/locales/es.json +1 -1
  102. package/dist/esm/i18n/locales/fr.json +1 -1
  103. package/dist/esm/i18n/locales/gu.json +1 -1
  104. package/dist/esm/i18n/locales/hi.json +1 -1
  105. package/dist/esm/i18n/locales/id.json +1 -1
  106. package/dist/esm/i18n/locales/it.json +1 -1
  107. package/dist/esm/i18n/locales/ja.json +1 -1
  108. package/dist/esm/i18n/locales/kn.json +1 -1
  109. package/dist/esm/i18n/locales/ko.json +1 -1
  110. package/dist/esm/i18n/locales/ml.json +1 -1
  111. package/dist/esm/i18n/locales/mr.json +1 -1
  112. package/dist/esm/i18n/locales/nl.json +1 -1
  113. package/dist/esm/i18n/locales/pa.json +1 -1
  114. package/dist/esm/i18n/locales/pl.json +1 -1
  115. package/dist/esm/i18n/locales/pt.json +1 -1
  116. package/dist/esm/i18n/locales/ru.json +1 -1
  117. package/dist/esm/i18n/locales/ta.json +1 -1
  118. package/dist/esm/i18n/locales/te.json +1 -1
  119. package/dist/esm/i18n/locales/tr.json +1 -1
  120. package/dist/esm/i18n/locales/vi.json +1 -1
  121. package/dist/esm/i18n/locales/zh.json +1 -1
  122. package/dist/esm/index.d.ts +3 -3
  123. package/dist/esm/index.js +8 -8
  124. package/dist/esm/styles/index.js +1 -1
  125. package/dist/esm/types/enums.d.ts +1 -0
  126. package/dist/esm/types/enums.js +1 -1
  127. package/dist/esm/types/interfaces.d.ts +8 -0
  128. package/package.json +24 -1
  129. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  130. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  131. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  132. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  133. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  134. package/android/.gradle/8.9/gc.properties +0 -0
  135. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  136. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  137. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  138. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  139. package/android/.gradle/9.2.0/gc.properties +0 -0
  140. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  141. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  142. package/android/.gradle/vcs-1/gc.properties +0 -0
  143. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  144. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +0 -1
  145. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  146. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  147. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  148. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  149. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  150. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
  151. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  152. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.dex +0 -0
  153. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  154. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
  155. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  156. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  157. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  158. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +0 -1
  159. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
  160. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +0 -10
  161. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +0 -160
  162. package/android/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  163. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +0 -212
  164. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +0 -31
  165. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +0 -22
  166. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +0 -24
  167. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +0 -16
  168. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +0 -17
  169. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +0 -19
  170. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +0 -18
  171. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +0 -300
  172. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +0 -17
  173. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +0 -23
  174. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +0 -16
  175. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +0 -20
  176. package/android/build/generated/source/codegen/schema.json +0 -1
  177. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  178. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  179. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  180. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  181. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  182. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  183. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  184. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  185. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  186. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  187. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  188. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  189. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  190. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  191. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  192. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  193. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  194. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  195. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  196. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  197. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  198. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  199. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  200. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  201. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  202. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  203. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  204. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  205. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.class +0 -0
  206. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  207. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  208. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  209. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  210. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  211. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  212. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  213. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  214. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  215. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  216. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  217. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  218. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  219. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  220. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  221. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  222. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  223. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  224. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  225. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  226. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  227. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  228. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  229. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  230. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  231. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  232. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  233. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  234. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  235. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  236. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  237. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  238. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  239. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  240. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  241. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  242. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  243. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  244. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  245. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  246. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  247. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  248. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  249. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  250. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  251. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  252. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  253. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  254. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  255. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  256. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  257. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  258. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  259. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  260. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  261. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  262. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  263. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  264. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  265. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  266. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  267. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  268. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  269. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  270. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  271. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  272. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  273. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  274. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  275. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  276. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  277. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  278. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  279. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  280. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  281. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  282. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  283. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  284. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  285. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  286. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  287. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  288. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  289. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  290. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  291. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  292. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  293. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  294. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  295. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  296. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  297. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  298. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  299. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  300. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -17
  301. package/android/build/reports/problems/problems-report.html +0 -659
  302. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  303. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  304. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  305. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  306. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  307. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  308. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  309. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.class +0 -0
  310. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  311. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  312. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  313. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  314. package/dist/commonjs/a11y.d.ts +0 -2
  315. package/dist/commonjs/a11y.js +0 -1
  316. package/dist/commonjs/components/Inspector/A11yTab.d.ts +0 -2
  317. package/dist/commonjs/components/Inspector/A11yTab.js +0 -268
  318. package/dist/commonjs/components/Inspector/DeveloperSponsorCard.d.ts +0 -9
  319. package/dist/commonjs/components/Inspector/DeveloperSponsorCard.js +0 -52
  320. package/dist/commonjs/customHooks/a11yAdapter.d.ts +0 -11
  321. package/dist/commonjs/customHooks/a11yAdapter.js +0 -1
  322. package/dist/commonjs/helpers/sponsorService.d.ts +0 -20
  323. package/dist/commonjs/helpers/sponsorService.js +0 -1
  324. package/dist/esm/a11y.d.ts +0 -2
  325. package/dist/esm/a11y.js +0 -1
  326. package/dist/esm/components/Inspector/A11yTab.d.ts +0 -2
  327. package/dist/esm/components/Inspector/A11yTab.js +0 -268
  328. package/dist/esm/components/Inspector/DeveloperSponsorCard.d.ts +0 -9
  329. package/dist/esm/components/Inspector/DeveloperSponsorCard.js +0 -52
  330. package/dist/esm/customHooks/a11yAdapter.d.ts +0 -11
  331. package/dist/esm/customHooks/a11yAdapter.js +0 -1
  332. package/dist/esm/helpers/sponsorService.d.ts +0 -20
  333. package/dist/esm/helpers/sponsorService.js +0 -1
@@ -1,268 +0,0 @@
1
- import{useCallback as O,useEffect as ce,useMemo as G,useState as v}from"react";import{Platform as de,ScrollView as _,StyleSheet as N,Text as T,TextInput as F,TouchableOpacity as R,View as C}from"react-native";import{announceA11y as ge,calculateContrastRatio as ue,evaluateTouchTarget as ye,getA11yState as be,getA11ySuiteInstance as me,subscribeA11yState as Te,syncA11yTelemetry as J,WCAG_RULES as pe}from"../../customHooks/a11yAdapter";import{copyToClipboard as Ce}from"../../helpers";import{showToast as L}from"../../helpers/toast";import{useTranslation as xe}from"../../i18n";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as f}from"../../styles/AppFonts";import{AccessibilityIcon as P,ChevronIcon as Se,CopyIcon as Be,SearchIcon as Ae,SignalIcon as U,TerminalIcon as Fe}from"../NetworkIcons";import K from"../TouchableScale";export const A11yTab=()=>{const{t:Re}=xe(),[h,D]=v("status"),[S,j]=v(be()),[k,Q]=v("Accessibility announcement test"),[V,X]=v("#FFFFFF"),[H,Y]=v("#4F46E5"),[E,Z]=v("44"),[M,ee]=v("44"),[I,te]=v(""),[w,re]=v("ALL"),[$,ke]=v("ALL"),[oe,ae]=v({});ce(()=>(J(),Te(x=>{j(x)})),[]);const le=O(async()=>{const x=await J();j(x),L(`A11y Telemetry Updated (VoiceOver/TalkBack: ${x.isScreenReaderEnabled?"Active":"Inactive"})`)},[]),ie=O(()=>{if(!k.trim()){L("Please enter text to announce");return}ge(k)?L(`Announced: "${k}"`):L("Dispatched via AccessibilityInfo fallback")},[k]),B=G(()=>ue(V,H),[V,H]),W=G(()=>{const x=parseFloat(E)||0,A=parseFloat(M)||0;return ye(x,A)},[E,M]),ne=G(()=>pe.filter(x=>{if(w!=="ALL"&&x.level!==w||$!=="ALL"&&x.principle!==$)return!1;if(I.trim()){const A=I.toLowerCase();return x.id.toLowerCase().includes(A)||x.title.toLowerCase().includes(A)||x.description.toLowerCase().includes(A)||x.mobileRecommendation.toLowerCase().includes(A)}return!0}),[I,w,$]),se=O(x=>{ae(A=>({...A,[x]:!A[x]}))},[]),z=!!me();return<C style={e.container}>
2
-
3
- <C style={e.subTabBar}>
4
- <R style={[e.subTabItem,h==="status"&&e.subTabItemActive]}onPress={()=>D("status")}activeOpacity={.7}>
5
- <U size={14}color={h==="status"?t.brandPurple:t.grayTextWeak}/>
6
- <T style={[e.subTabText,h==="status"&&e.subTabTextActive]}>
7
- Status & Telemetry
8
- </T>
9
- </R>
10
-
11
- <R style={[e.subTabItem,h==="tools"&&e.subTabItemActive]}onPress={()=>D("tools")}activeOpacity={.7}>
12
- <Fe size={14}color={h==="tools"?t.brandPurple:t.grayTextWeak}/>
13
- <T style={[e.subTabText,h==="tools"&&e.subTabTextActive]}>
14
- A11y Tools
15
- </T>
16
- </R>
17
-
18
- <R style={[e.subTabItem,h==="wcag"&&e.subTabItemActive]}onPress={()=>D("wcag")}activeOpacity={.7}>
19
- <P size={14}color={h==="wcag"?t.brandPurple:t.grayTextWeak}/>
20
- <T style={[e.subTabText,h==="wcag"&&e.subTabTextActive]}>
21
- WCAG 2.2 Standards
22
- </T>
23
- </R>
24
- </C>
25
-
26
- <_ style={e.scrollContent}contentContainerStyle={e.scrollContainer}showsVerticalScrollIndicator={!1}>
27
-
28
- {h==="status"&&<C>
29
-
30
- <C style={[e.bannerCard,{backgroundColor:z?`${t.greenColor}14`:`${t.brandPurple}14`,borderColor:z?`${t.greenColor}33`:`${t.brandPurple}33`}]}>
31
- <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
32
- <P size={20}color={z?t.greenColor:t.brandPurple}/>
33
- <C style={{flex:1}}>
34
- <T style={e.bannerTitle}>
35
- {z?"react-native-a11y-suite Active":"react-native-inapp-inspector A11y Engine"}
36
- </T>
37
- <T style={e.bannerSubtitle}>
38
- {z?"Connected to native TurboModules for enhanced assistive telemetry.":"Running in zero-config mode with native AccessibilityInfo bridge."}
39
- </T>
40
- </C>
41
- </C>
42
- </C>
43
-
44
-
45
- <C style={e.metricsGrid}>
46
- <C style={e.metricCard}>
47
- <T style={e.metricLabel}>Screen Reader</T>
48
- <C style={e.badgeRow}>
49
- <C style={[e.statusDot,{backgroundColor:S.isScreenReaderEnabled?t.greenColor:t.grayTextWeak}]}/>
50
- <T style={[e.metricValue,{color:S.isScreenReaderEnabled?t.greenColor:t.grayTextStrong}]}>
51
- {S.isScreenReaderEnabled?de.OS==="ios"?"VoiceOver ON":"TalkBack ON":"Inactive"}
52
- </T>
53
- </C>
54
- </C>
55
-
56
- <C style={e.metricCard}>
57
- <T style={e.metricLabel}>Font Scale Multiplier</T>
58
- <T style={[e.metricValue,{color:t.brandPurple}]}>
59
- {S.fontScale}x
60
- </T>
61
- <T style={e.metricSub}>
62
- {S.fontScale>=1.5?"Accessibility Size":S.fontScale>1?"Large Scale":"Default (1.0x)"}
63
- </T>
64
- </C>
65
-
66
- <C style={e.metricCard}>
67
- <T style={e.metricLabel}>Reduced Motion</T>
68
- <T style={[e.metricValue,{color:S.isReduceMotionEnabled?t.lightOrange:t.grayTextStrong}]}>
69
- {S.isReduceMotionEnabled?"Enabled (No Anim)":"Disabled"}
70
- </T>
71
- </C>
72
-
73
- <C style={e.metricCard}>
74
- <T style={e.metricLabel}>Bold Text</T>
75
- <T style={[e.metricValue,{color:S.isBoldTextEnabled?t.skyBlue:t.grayTextStrong}]}>
76
- {S.isBoldTextEnabled?"Enabled":"Default"}
77
- </T>
78
- </C>
79
-
80
- <C style={e.metricCard}>
81
- <T style={e.metricLabel}>High Contrast</T>
82
- <T style={[e.metricValue,{color:S.isHighContrastEnabled?t.brandPurple:t.grayTextStrong}]}>
83
- {S.isHighContrastEnabled?"Enabled":"Default"}
84
- </T>
85
- </C>
86
-
87
- <C style={e.metricCard}>
88
- <T style={e.metricLabel}>Invert Colors</T>
89
- <T style={[e.metricValue,{color:S.isInvertColorsEnabled?t.lightOrange:t.grayTextStrong}]}>
90
- {S.isInvertColorsEnabled?"Enabled":"Default"}
91
- </T>
92
- </C>
93
- </C>
94
-
95
-
96
- <K style={e.actionButton}onPress={le}>
97
- <U size={16}color={t.white}/>
98
- <T style={e.actionButtonText}>Sync Accessibility Telemetry</T>
99
- </K>
100
- </C>}
101
-
102
-
103
- {h==="tools"&&<C>
104
-
105
- <C style={e.toolCard}>
106
- <C style={e.toolHeader}>
107
- <P size={18}color={t.brandPurple}/>
108
- <T style={e.toolTitle}>Live Speech & Announcement Tester</T>
109
- </C>
110
- <T style={e.toolDesc}>
111
- Dispatches announcements directly to active assistive technologies
112
- (VoiceOver on iOS, TalkBack on Android).
113
- </T>
114
-
115
- <F style={e.input}value={k}onChangeText={Q}placeholder="Enter message to announce..."placeholderTextColor={t.grayTextWeak}/>
116
-
117
- <K style={[e.actionButton,{marginTop:10}]}onPress={ie}>
118
- <T style={e.actionButtonText}>📢 Dispatch Announcement</T>
119
- </K>
120
- </C>
121
-
122
-
123
- <C style={e.toolCard}>
124
- <C style={e.toolHeader}>
125
- <P size={18}color={t.skyBlue}/>
126
- <T style={e.toolTitle}>WCAG 2.2 Color Contrast Checker</T>
127
- </C>
128
- <T style={e.toolDesc}>
129
- Calculates relative luminance and contrast ratio between foreground text
130
- and background surfaces.
131
- </T>
132
-
133
- <C style={{flexDirection:"row",gap:10,marginTop:10}}>
134
- <C style={{flex:1}}>
135
- <T style={e.inputLabel}>Text Hex</T>
136
- <F style={e.input}value={V}onChangeText={X}placeholder="#FFFFFF"placeholderTextColor={t.grayTextWeak}autoCapitalize="characters"/>
137
- </C>
138
- <C style={{flex:1}}>
139
- <T style={e.inputLabel}>Background Hex</T>
140
- <F style={e.input}value={H}onChangeText={Y}placeholder="#4F46E5"placeholderTextColor={t.grayTextWeak}autoCapitalize="characters"/>
141
- </C>
142
- </C>
143
-
144
-
145
- <C style={[e.contrastPreviewBox,{backgroundColor:B.bgHex||"#4F46E5"}]}>
146
- <T style={[e.contrastPreviewText,{color:B.fgHex||"#FFFFFF"}]}>
147
- Sample Text Preview
148
- </T>
149
- </C>
150
-
151
-
152
- <C style={e.ratioRow}>
153
- <T style={e.ratioValue}>{B.ratio}:1</T>
154
- <C style={e.badgeContainer}>
155
- <C style={[e.complianceBadge,B.aaNormal?e.badgePass:e.badgeFail]}>
156
- <T style={[e.badgeText,B.aaNormal?e.textPass:e.textFail]}>
157
- AA (4.5:1) {B.aaNormal?"\u2713":"\u2717"}
158
- </T>
159
- </C>
160
- <C style={[e.complianceBadge,B.aaLarge?e.badgePass:e.badgeFail]}>
161
- <T style={[e.badgeText,B.aaLarge?e.textPass:e.textFail]}>
162
- AA Large (3:1) {B.aaLarge?"\u2713":"\u2717"}
163
- </T>
164
- </C>
165
- <C style={[e.complianceBadge,B.aaaNormal?e.badgePass:e.badgeFail]}>
166
- <T style={[e.badgeText,B.aaaNormal?e.textPass:e.textFail]}>
167
- AAA (7:1) {B.aaaNormal?"\u2713":"\u2717"}
168
- </T>
169
- </C>
170
- </C>
171
- </C>
172
- </C>
173
-
174
-
175
- <C style={e.toolCard}>
176
- <C style={e.toolHeader}>
177
- <P size={18}color={t.greenColor}/>
178
- <T style={e.toolTitle}>Touch Target Evaluator (WCAG 2.5.5/2.5.8)</T>
179
- </C>
180
- <T style={e.toolDesc}>
181
- Validates interactive component dimensions against Apple HIG (44pt) and
182
- Android Material (48dp) minimums.
183
- </T>
184
-
185
- <C style={{flexDirection:"row",gap:10,marginTop:10}}>
186
- <C style={{flex:1}}>
187
- <T style={e.inputLabel}>Width (dp/pt)</T>
188
- <F style={e.input}value={E}onChangeText={Z}keyboardType="numeric"/>
189
- </C>
190
- <C style={{flex:1}}>
191
- <T style={e.inputLabel}>Height (dp/pt)</T>
192
- <F style={e.input}value={M}onChangeText={ee}keyboardType="numeric"/>
193
- </C>
194
- </C>
195
-
196
- <C style={e.targetResultsRow}>
197
- <C style={e.targetStatusBox}>
198
- <T style={e.targetPlatformLabel}>iOS HIG (44x44pt)</T>
199
- <T style={[e.targetStatusValue,{color:W.iosMinMet?t.greenColor:t.errorColor}]}>
200
- {W.iosMinMet?"\u2713 Compliant":"\u2717 Too Small"}
201
- </T>
202
- </C>
203
- <C style={e.targetStatusBox}>
204
- <T style={e.targetPlatformLabel}>Android Material (48x48dp)</T>
205
- <T style={[e.targetStatusValue,{color:W.androidMinMet?t.greenColor:t.errorColor}]}>
206
- {W.androidMinMet?"\u2713 Compliant":"\u2717 Too Small"}
207
- </T>
208
- </C>
209
- </C>
210
- </C>
211
- </C>}
212
-
213
-
214
- {h==="wcag"&&<C>
215
-
216
- <C style={e.searchBar}>
217
- <Ae size={16}color={t.grayTextWeak}/>
218
- <F style={e.searchInput}value={I}onChangeText={te}placeholder="Search WCAG 2.2 rules..."placeholderTextColor={t.grayTextWeak}/>
219
- </C>
220
-
221
-
222
- <_ horizontal showsHorizontalScrollIndicator={!1}style={{marginBottom:12}}>
223
- {["ALL","A","AA","AAA"].map(x=><R key={x}style={[e.filterChip,w===x&&e.filterChipActive]}onPress={()=>re(x)}>
224
- <T style={[e.filterChipText,w===x&&e.filterChipTextActive]}>
225
- Level {x}
226
- </T>
227
- </R>)}
228
- </_>
229
-
230
-
231
- {ne.map(x=>{const A=!!oe[x.id];return<C key={x.id}style={e.ruleCard}>
232
- <R style={e.ruleCardHeader}onPress={()=>se(x.id)}activeOpacity={.7}>
233
- <C style={{flex:1}}>
234
- <C style={{flexDirection:"row",alignItems:"center",gap:6}}>
235
- <T style={e.ruleId}>{x.id}</T>
236
- <C style={[e.levelBadge,{backgroundColor:x.level==="AAA"?`${t.brandPurple}22`:x.level==="AA"?`${t.skyBlue}22`:`${t.greenColor}22`}]}>
237
- <T style={[e.levelBadgeText,{color:x.level==="AAA"?t.brandPurple:x.level==="AA"?t.skyBlue:t.greenColor}]}>
238
- Level {x.level}
239
- </T>
240
- </C>
241
- <T style={e.principleTag}>{x.principle}</T>
242
- </C>
243
- <T style={e.ruleTitle}>{x.title}</T>
244
- </C>
245
- <Se direction={A?"up":"down"}size={16}color={t.grayTextWeak}/>
246
- </R>
247
-
248
- {A&&<C style={e.ruleBody}>
249
- <T style={e.ruleDescLabel}>Criterion Definition:</T>
250
- <T style={e.ruleDesc}>{x.description}</T>
251
-
252
- <T style={[e.ruleDescLabel,{marginTop:8}]}>
253
- Mobile / React Native Recommendation:
254
- </T>
255
- <T style={e.ruleRec}>{x.mobileRecommendation}</T>
256
-
257
- <R style={e.copyRuleBtn}onPress={()=>{Ce(`WCAG ${x.id} ${x.title} (Level ${x.level}):
258
- ${x.description}
259
-
260
- Mobile: ${x.mobileRecommendation}`),L(`Copied WCAG ${x.id} rule guidance`)}}>
261
- <Be size={14}color={t.brandPurple}/>
262
- <T style={e.copyRuleBtnText}>Copy Rule Guidance</T>
263
- </R>
264
- </C>}
265
- </C>})}
266
- </C>}
267
- </_>
268
- </C>};const e=N.create({container:{flex:1,backgroundColor:t.grayBackground},subTabBar:{flexDirection:"row",backgroundColor:t.graySurface,borderBottomWidth:N.hairlineWidth,borderBottomColor:t.grayBorderSecondary,paddingHorizontal:8,paddingVertical:4,gap:4},subTabItem:{flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center",paddingVertical:8,borderRadius:8,gap:6},subTabItemActive:{backgroundColor:`${t.brandPurple}1F`},subTabText:{fontFamily:f.interMedium,fontSize:12,color:t.grayTextWeak},subTabTextActive:{color:t.brandPurple,fontFamily:f.interBold},scrollContent:{flex:1},scrollContainer:{padding:14,paddingBottom:40},bannerCard:{borderRadius:10,borderWidth:1,padding:12,marginBottom:14},bannerTitle:{fontFamily:f.interBold,fontSize:13,color:t.grayTextStrong},bannerSubtitle:{fontFamily:f.interRegular,fontSize:11,color:t.grayTextWeak,marginTop:2},metricsGrid:{flexDirection:"row",flexWrap:"wrap",gap:10,marginBottom:14},metricCard:{flexBasis:"48%",flexGrow:1,backgroundColor:t.primaryLight,borderRadius:10,borderWidth:1,borderColor:t.grayBorderSecondary,padding:12},metricLabel:{fontFamily:f.interMedium,fontSize:11,color:t.grayTextWeak,marginBottom:4},metricValue:{fontFamily:f.interBold,fontSize:14,color:t.grayTextStrong},metricSub:{fontFamily:f.interRegular,fontSize:10,color:t.grayTextWeak,marginTop:2},badgeRow:{flexDirection:"row",alignItems:"center",gap:6},statusDot:{width:8,height:8,borderRadius:4},actionButton:{flexDirection:"row",alignItems:"center",justifyContent:"center",backgroundColor:t.brandPurple,paddingVertical:12,borderRadius:8,gap:8},actionButtonText:{fontFamily:f.interBold,fontSize:13,color:t.white},toolCard:{backgroundColor:t.primaryLight,borderRadius:10,borderWidth:1,borderColor:t.grayBorderSecondary,padding:14,marginBottom:14},toolHeader:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:4},toolTitle:{fontFamily:f.interBold,fontSize:13,color:t.grayTextStrong},toolDesc:{fontFamily:f.interRegular,fontSize:11,color:t.grayTextWeak,marginBottom:8},inputLabel:{fontFamily:f.interMedium,fontSize:11,color:t.grayTextWeak,marginBottom:4},input:{backgroundColor:t.graySurface,borderWidth:1,borderColor:t.grayBorderSecondary,borderRadius:8,paddingHorizontal:12,paddingVertical:8,fontFamily:f.interRegular,fontSize:13,color:t.grayTextStrong},contrastPreviewBox:{marginTop:12,borderRadius:8,padding:16,alignItems:"center",justifyContent:"center"},contrastPreviewText:{fontFamily:f.interBold,fontSize:15},ratioRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:12},ratioValue:{fontFamily:f.interBold,fontSize:18,color:t.grayTextStrong},badgeContainer:{flexDirection:"row",gap:6},complianceBadge:{paddingHorizontal:8,paddingVertical:4,borderRadius:6,borderWidth:1},badgePass:{backgroundColor:`${t.greenColor}1A`,borderColor:`${t.greenColor}33`},badgeFail:{backgroundColor:`${t.errorColor}1A`,borderColor:`${t.errorColor}33`},badgeText:{fontFamily:f.interBold,fontSize:10},textPass:{color:t.greenColor},textFail:{color:t.errorColor},targetResultsRow:{flexDirection:"row",gap:10,marginTop:12},targetStatusBox:{flex:1,backgroundColor:t.graySurface,padding:10,borderRadius:8,borderWidth:1,borderColor:t.grayBorderSecondary,alignItems:"center"},targetPlatformLabel:{fontFamily:f.interMedium,fontSize:10,color:t.grayTextWeak},targetStatusValue:{fontFamily:f.interBold,fontSize:12,marginTop:4},searchBar:{flexDirection:"row",alignItems:"center",backgroundColor:t.primaryLight,borderRadius:8,borderWidth:1,borderColor:t.grayBorderSecondary,paddingHorizontal:10,paddingVertical:6,gap:6,marginBottom:10},searchInput:{flex:1,fontFamily:f.interRegular,fontSize:12,color:t.grayTextStrong,padding:0},filterChip:{paddingHorizontal:10,paddingVertical:5,borderRadius:6,backgroundColor:t.graySurface,borderWidth:1,borderColor:t.grayBorderSecondary,marginRight:6},filterChipActive:{backgroundColor:t.brandPurple,borderColor:t.brandPurple},filterChipText:{fontFamily:f.interMedium,fontSize:11,color:t.grayTextWeak},filterChipTextActive:{color:t.white,fontFamily:f.interBold},ruleCard:{backgroundColor:t.primaryLight,borderRadius:10,borderWidth:1,borderColor:t.grayBorderSecondary,padding:12,marginBottom:10},ruleCardHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},ruleId:{fontFamily:f.interBold,fontSize:11,color:t.brandPurple},levelBadge:{paddingHorizontal:6,paddingVertical:2,borderRadius:4},levelBadgeText:{fontFamily:f.interBold,fontSize:9},principleTag:{fontFamily:f.interRegular,fontSize:10,color:t.grayTextWeak},ruleTitle:{fontFamily:f.interBold,fontSize:13,color:t.grayTextStrong,marginTop:4},ruleBody:{marginTop:10,paddingTop:10,borderTopWidth:N.hairlineWidth,borderTopColor:t.grayBorderSecondary},ruleDescLabel:{fontFamily:f.interBold,fontSize:10,color:t.grayTextWeak,textTransform:"uppercase"},ruleDesc:{fontFamily:f.interRegular,fontSize:12,color:t.grayTextStrong,marginTop:2,lineHeight:16},ruleRec:{fontFamily:f.interMedium,fontSize:12,color:t.brandPurple,marginTop:2,lineHeight:16},copyRuleBtn:{flexDirection:"row",alignItems:"center",gap:6,marginTop:10,alignSelf:"flex-start",paddingVertical:4,paddingHorizontal:8,borderRadius:6,backgroundColor:`${t.brandPurple}14`},copyRuleBtnText:{fontFamily:f.interBold,fontSize:11,color:t.brandPurple}});
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- export interface DeveloperSponsorCardProps {
3
- publisherId?: string;
4
- customEndpoint?: string;
5
- containerStyle?: object;
6
- compact?: boolean;
7
- }
8
- export declare const DeveloperSponsorCard: React.FC<DeveloperSponsorCardProps>;
9
- export default DeveloperSponsorCard;
@@ -1,52 +0,0 @@
1
- import{useEffect as O,useState as H}from"react";import{Image as L,Linking as P,Pressable as W,StyleSheet as N,Text as S,View as T}from"react-native";import $ from"../TouchableScale";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as C}from"../../styles/AppFonts";import{fetchDeveloperSponsor as j,trackSponsorImpression as A,handleSponsorClick as M}from"../../helpers/sponsorService";import{SparklesIcon as E,ExternalLinkIcon as I,GlobeIcon as U,ShieldCheckIcon as G}from"../NetworkIcons";export const DeveloperSponsorCard=({publisherId:B,customEndpoint:v,containerStyle:D,compact:R=!1})=>{const[o,F]=H(null);if(O(()=>{let V=!0;return j(B,v).then(k=>{V&&k&&(F(k),A(k))}),()=>{V=!1}},[B,v]),!o)return null;const r=o.accentColor||t.indigo600;return<$ onPress={()=>M(o)}style={[e.cardContainer,{borderColor:`${r}40`},D]}>
2
-
3
- <T style={[e.glowBackground,{backgroundColor:`${r}0A`}]}/>
4
-
5
-
6
- <T style={e.headerRow}>
7
- <T style={e.badgeRow}>
8
- <T style={[e.sponsorBadge,{backgroundColor:`${r}1F`,borderColor:`${r}44`}]}>
9
- <E size={10}color={r}/>
10
- <S style={[e.sponsorBadgeText,{color:r}]}>
11
- {o.badgeText||"SPONSORED"}
12
- </S>
13
- </T>
14
- {o.sponsorName?<S style={e.sponsorNameText}>· {o.sponsorName}</S>:null}
15
- </T>
16
-
17
- <T style={e.verifiedRow}>
18
- {o.type==="ethicalads"?<W hitSlop={8}onPress={()=>P.openURL("https://www.ethicalads.io/?ref=react-native-inapp-inspector").catch(()=>{})}style={{flexDirection:"row",alignItems:"center",gap:3.5}}>
19
- <S style={e.verifiedText}>Ad by EthicalAds</S>
20
- <I size={10}color={t.grayTextWeak}/>
21
- </W>:<>
22
- <G size={11}color={t.emerald500}/>
23
- <S style={e.verifiedText}>Verified Dev Tool</S>
24
- <I size={11}color={t.grayTextWeak}/>
25
- </>}
26
- </T>
27
- </T>
28
-
29
-
30
- <T style={e.contentRow}>
31
- {o.logoUrl?<L source={{uri:o.logoUrl}}style={e.logoImage}resizeMode="contain"/>:<T style={[e.iconPlaceholder,{backgroundColor:`${r}18`}]}>
32
- <U size={18}color={r}/>
33
- </T>}
34
-
35
- <T style={e.textColumn}>
36
- <S style={[e.headlineText,R&&{fontSize:12.5,lineHeight:16}]}numberOfLines={R?1:2}>
37
- {o.title}
38
- </S>
39
- {o.description&&!R?<S style={e.descText}numberOfLines={2}>
40
- {o.description}
41
- </S>:null}
42
- </T>
43
- </T>
44
-
45
-
46
- <T style={e.footerRow}>
47
- <T style={[e.ctaButton,{backgroundColor:r,shadowColor:r}]}>
48
- <S style={e.ctaButtonText}>{o.ctaText||"Learn More"}</S>
49
- <I size={11}color={t.white}/>
50
- </T>
51
- </T>
52
- </$>};const e=N.create({cardContainer:{backgroundColor:t.primaryLight,borderRadius:14,padding:13,borderWidth:1.2,position:"relative",overflow:"hidden",shadowColor:t.shadowColorString,shadowOffset:{width:0,height:2},shadowOpacity:.06,shadowRadius:8,elevation:2,gap:10},glowBackground:{position:"absolute",top:0,left:0,right:0,bottom:0},headerRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},badgeRow:{flexDirection:"row",alignItems:"center",gap:6},sponsorBadge:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6,borderWidth:1},sponsorBadgeText:{fontFamily:C.interBold,fontSize:9,lineHeight:12,letterSpacing:.6},sponsorNameText:{fontFamily:C.interSemiBold,fontSize:11,color:t.grayTextWeak},verifiedRow:{flexDirection:"row",alignItems:"center",gap:3.5},verifiedText:{fontFamily:C.interMedium,fontSize:9.5,color:t.grayTextWeak},contentRow:{flexDirection:"row",alignItems:"center",gap:10},logoImage:{width:38,height:38,borderRadius:8},iconPlaceholder:{width:38,height:38,borderRadius:8,alignItems:"center",justifyContent:"center"},textColumn:{flex:1,gap:2},headlineText:{fontFamily:C.interBold,fontSize:13.5,lineHeight:18,color:t.primaryBlack,letterSpacing:-.2},descText:{fontFamily:C.interRegular,fontSize:11,lineHeight:15,color:t.grayTextWeak},footerRow:{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",marginTop:2},ctaButton:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:5,paddingHorizontal:12,paddingVertical:6.5,borderRadius:8,shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:4,elevation:2},ctaButtonText:{fontFamily:C.interBold,fontSize:11.5,lineHeight:15,color:t.white}});export default DeveloperSponsorCard;
@@ -1,11 +0,0 @@
1
- import { A11yTelemetryState, ColorContrastResult, TouchTargetEvaluation, WcagRule } from '../types';
2
- export declare const connectA11ySuite: (suiteInstance: any) => void;
3
- export declare const getA11ySuiteInstance: () => any;
4
- export declare const getA11yState: () => A11yTelemetryState;
5
- export declare const subscribeA11yState: (listener: (state: A11yTelemetryState) => void) => (() => void);
6
- export declare const syncA11yTelemetry: () => Promise<A11yTelemetryState>;
7
- export declare const initA11yListeners: () => void;
8
- export declare const announceA11y: (message: string) => boolean;
9
- export declare const calculateContrastRatio: (fgHex: string, bgHex: string) => ColorContrastResult;
10
- export declare const evaluateTouchTarget: (width: number, height: number) => TouchTargetEvaluation;
11
- export declare const WCAG_RULES: WcagRule[];
@@ -1 +0,0 @@
1
- import{AccessibilityInfo as a,PixelRatio as u}from"react-native";let h=null,s;export const connectA11ySuite=e=>{e&&(h=e,s=e,c())},getA11ySuiteInstance=()=>{if(h)return h;if(s!==void 0)return s;if(globalThis.A11ySuite)return s=globalThis.A11ySuite,s;if(globalThis.__A11Y_SUITE__)return s=globalThis.__A11Y_SUITE__,s;try{const e="react-native-a11y-suite",t=typeof require=="function"?require:null;if(t){const i=t(e);return s=i?.default||i||null,s}}catch{s=null}return s=null,null};let n={isScreenReaderEnabled:!1,isReduceMotionEnabled:!1,isBoldTextEnabled:!1,isGrayscaleEnabled:!1,isInvertColorsEnabled:!1,isHighContrastEnabled:!1,fontScale:u.getFontScale?u.getFontScale():1,nativeModuleAvailable:!1,lastUpdated:Date.now()};const b=new Set,c=()=>{b.forEach(e=>{try{e(n)}catch{}})};export const getA11yState=()=>({...n}),subscribeA11yState=e=>(b.add(e),e(n),()=>{b.delete(e)}),syncA11yTelemetry=async()=>{const e=getA11ySuiteInstance(),t=u.getFontScale?u.getFontScale():1;let i=!1,r=!1,o=!1,l=!1,g=!1,p=!1;try{i=await a.isScreenReaderEnabled()}catch{}try{r=await a.isReduceMotionEnabled()}catch{}try{a.isBoldTextEnabled&&(o=await a.isBoldTextEnabled())}catch{}try{a.isGrayscaleEnabled&&(l=await a.isGrayscaleEnabled())}catch{}try{a.isInvertColorsEnabled&&(g=await a.isInvertColorsEnabled())}catch{}try{a.isHighTextContrastEnabled&&(p=await a.isHighTextContrastEnabled())}catch{}return n={isScreenReaderEnabled:i,isReduceMotionEnabled:r,isBoldTextEnabled:o,isGrayscaleEnabled:l,isInvertColorsEnabled:g,isHighContrastEnabled:p,fontScale:Math.round(t*100)/100,nativeModuleAvailable:!!e,lastUpdated:Date.now()},c(),n};let m=!1;export const initA11yListeners=()=>{if(!m){m=!0,syncA11yTelemetry();try{a.addEventListener("screenReaderChanged",e=>{n={...n,isScreenReaderEnabled:!!e,lastUpdated:Date.now()},c()})}catch{}try{a.addEventListener("reduceMotionChanged",e=>{n={...n,isReduceMotionEnabled:!!e,lastUpdated:Date.now()},c()})}catch{}try{a.addEventListener("boldTextChanged",e=>{n={...n,isBoldTextEnabled:!!e,lastUpdated:Date.now()},c()})}catch{}try{a.addEventListener("grayscaleChanged",e=>{n={...n,isGrayscaleEnabled:!!e,lastUpdated:Date.now()},c()})}catch{}try{a.addEventListener("invertColorsChanged",e=>{n={...n,isInvertColorsEnabled:!!e,lastUpdated:Date.now()},c()})}catch{}try{a.addEventListener("highTextContrastChanged",e=>{n={...n,isHighContrastEnabled:!!e,lastUpdated:Date.now()},c()})}catch{}}},announceA11y=e=>{if(!e||!e.trim())return!1;try{const t=getA11ySuiteInstance();if(t&&typeof t.announce=="function")return t.announce(e),!0}catch{}try{return a.announceForAccessibility(e),!0}catch{return!1}};const w=e=>{let t=e.replace("#","").trim();if(t.length===3&&(t=t.split("").map(l=>l+l).join("")),t.length!==6)return null;const i=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),o=parseInt(t.substring(4,6),16);return isNaN(i)||isNaN(r)||isNaN(o)?null:[i,r,o]},A=(e,t,i)=>{const r=[e/255,t/255,i/255].map(o=>o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4));return .2126*r[0]+.7152*r[1]+.0722*r[2]};export const calculateContrastRatio=(e,t)=>{const i=w(e),r=w(t);if(!i||!r)return{fgHex:e,bgHex:t,ratio:1,aaNormal:!1,aaLarge:!1,aaaNormal:!1,aaaLarge:!1};const o=A(i[0],i[1],i[2]),l=A(r[0],r[1],r[2]),g=Math.max(o,l),p=Math.min(o,l),y=(g+.05)/(p+.05),d=Math.round(y*100)/100;return{fgHex:e,bgHex:t,ratio:d,aaNormal:d>=4.5,aaLarge:d>=3,aaaNormal:d>=7,aaaLarge:d>=4.5}},evaluateTouchTarget=(e,t)=>({width:e,height:t,iosMinMet:e>=44&&t>=44,androidMinMet:e>=48&&t>=48}),WCAG_RULES=[{id:"1.1.1",title:"Non-text Content",level:"A",principle:"Perceivable",description:"All non-text content (icons, images, diagrams) must have a text alternative.",mobileRecommendation:"Provide accessibilityLabel or accessible={false} for purely decorative icons.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/non-text-content"},{id:"1.3.1",title:"Info and Relationships",level:"A",principle:"Perceivable",description:"Information, structure, and relationships conveyed through presentation can be programmatically determined.",mobileRecommendation:'Use accessibilityRole="header", accessibilityRole="button", or AccessibleHeading.',wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships"},{id:"1.4.3",title:"Contrast (Minimum)",level:"AA",principle:"Perceivable",description:"Visual presentation of text must have a contrast ratio of at least 4.5:1 (3:1 for large text).",mobileRecommendation:"Ensure high contrast between text and background on both light and dark themes.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum"},{id:"1.4.4",title:"Resize Text",level:"AA",principle:"Perceivable",description:"Text can be resized without assistive technology up to 200 percent without loss of content or functionality.",mobileRecommendation:"Avoid fixed height containers with overflow: hidden on Text elements. Test with max font scale.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/resize-text"},{id:"1.4.11",title:"Non-text Contrast",level:"AA",principle:"Perceivable",description:"The visual presentation of UI components and graphical objects has a contrast ratio of at least 3:1.",mobileRecommendation:"Ensure active borders, focus rings, and action icons meet 3:1 contrast against adjacent colors.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast"},{id:"2.1.1",title:"Keyboard / Hardware Navigation",level:"A",principle:"Operable",description:"All functionality is operable through a keyboard or switch access interface.",mobileRecommendation:"Support external Bluetooth keyboards and accessibilityActions for gestures.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/keyboard"},{id:"2.4.3",title:"Focus Order",level:"A",principle:"Operable",description:"Components receive focus in an order that preserves meaning and operability.",mobileRecommendation:"Ensure modal dialogs trap focus and restore focus on dismissal.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/focus-order"},{id:"2.4.7",title:"Focus Visible",level:"AA",principle:"Operable",description:"Any keyboard operable user interface has an indicator of focus.",mobileRecommendation:"Highlight active focused items when keyboard/TalkBack navigation is used.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/focus-visible"},{id:"2.5.5",title:"Target Size (Enhanced)",level:"AAA",principle:"Operable",description:"The size of the target for pointer inputs is at least 44 by 44 CSS pixels.",mobileRecommendation:"Use AccessibleTouchTarget or hitSlop to ensure touch targets meet 44x44pt.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/target-size-enhanced"},{id:"2.5.8",title:"Target Size (Minimum) - WCAG 2.2",level:"AA",principle:"Operable",description:"Targets have an area of at least 24 by 24 CSS pixels with sufficient spacing.",mobileRecommendation:"Ensure buttons are separated and have at least 24x24 minimum target size.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum"},{id:"3.3.1",title:"Error Identification",level:"A",principle:"Understandable",description:"If an input error is automatically detected, the item is identified and described in text.",mobileRecommendation:'Set accessibilityRole="alert" or accessibilityInvalid on form fields with error messages.',wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/error-identification"},{id:"4.1.2",title:"Name, Role, Value",level:"A",principle:"Robust",description:"For all UI components, the name and role can be programmatically determined and state changes reported.",mobileRecommendation:"Use accessibilityRole, accessibilityState={{checked, disabled, selected}} on interactive elements.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/name-role-value"},{id:"4.1.3",title:"Status Messages",level:"AA",principle:"Robust",description:"Status messages can be programmatically determined through role or properties without receiving focus.",mobileRecommendation:'Use LiveRegion, accessibilityLiveRegion="polite" or announceA11y for asynchronous alerts.',wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/status-messages"}];
@@ -1,20 +0,0 @@
1
- export interface DeveloperSponsorAd {
2
- id: string;
3
- title: string;
4
- description: string;
5
- ctaText: string;
6
- ctaUrl: string;
7
- badgeText?: string;
8
- sponsorName?: string;
9
- logoUrl?: string;
10
- accentColor?: string;
11
- impressionUrl?: string;
12
- clickUrl?: string;
13
- type?: 'ethicalads' | 'affiliate' | 'custom';
14
- }
15
- export declare const DEFAULT_ETHICALADS_PUBLISHER_ID = "";
16
- export declare function setSponsorPublisherId(publisherId: string): void;
17
- export declare function setCustomSponsorEndpoint(endpointUrl: string): void;
18
- export declare function fetchDeveloperSponsor(publisherId?: string, customEndpoint?: string): Promise<DeveloperSponsorAd>;
19
- export declare function trackSponsorImpression(ad: DeveloperSponsorAd): void;
20
- export declare function handleSponsorClick(ad: DeveloperSponsorAd): void;
@@ -1 +0,0 @@
1
- import{Linking as h}from"react-native";export const DEFAULT_ETHICALADS_PUBLISHER_ID="";let l=null,p=null;export function setSponsorPublisherId(o){l=o}export function setCustomSponsorEndpoint(o){p=o}const d=[{id:"sentry-dev-partner",sponsorName:"Sentry",badgeText:"FEATURED PARTNER",title:"Code breaks. Fix it faster with Sentry.",description:"Real-time crash tracking, performance monitoring, and session replay for React Native.",ctaText:"Try Sentry Free",ctaUrl:"https://sentry.io/welcome/?utm_source=react-native-inapp-inspector&utm_medium=partner&utm_campaign=dev-tools",accentColor:"#6C5FC7",type:"affiliate"},{id:"requestly-api-mock",sponsorName:"Requestly",badgeText:"DEV SPOTLIGHT",title:"Intercept & Mock APIs directly in Mobile Apps",description:"Modify HTTP headers, redirect API endpoints, and simulate 500 errors on iOS & Android.",ctaText:"Explore Requestly",ctaUrl:"https://requestly.com/?utm_source=react-native-inapp-inspector&utm_medium=devtools&utm_campaign=mobile-inspect",accentColor:"#2563EB",type:"affiliate"},{id:"supabase-cloud-db",sponsorName:"Supabase",badgeText:"DEVELOPER CLOUD",title:"The Open Source Firebase Alternative",description:"Postgres database, Authentication, Instant APIs, Realtime subscriptions, and Edge Functions.",ctaText:"Start Free Project",ctaUrl:"https://supabase.com/?utm_source=react-native-inapp-inspector&utm_medium=partner&utm_campaign=rn-inspect",accentColor:"#3ECF8E",type:"affiliate"},{id:"digitalocean-cloud",sponsorName:"DigitalOcean",badgeText:"$200 FREE CREDIT",title:"Deploy React Native Backend & Nodes in Seconds",description:"Simple, scalable cloud hosting with managed databases, App Platform, and 99.99% uptime.",ctaText:"Claim $200 Credit",ctaUrl:"https://m.do.co/c/react-native-inapp-inspector",accentColor:"#0080FF",type:"affiliate"}];let a=null,i=!1;export async function fetchDeveloperSponsor(o,m){const n=o||l||DEFAULT_ETHICALADS_PUBLISHER_ID,c=m||p;if(c)try{const r=await fetch(c,{headers:{Accept:"application/json"}});if(r.ok){const e=await r.json();if(e&&e.title&&e.ctaUrl)return a={id:e.id||"custom-sponsor",title:e.title,description:e.description||"",ctaText:e.ctaText||"Learn More",ctaUrl:e.ctaUrl,badgeText:e.badgeText||"SPONSORED",sponsorName:e.sponsorName||"Featured Partner",logoUrl:e.logoUrl,accentColor:e.accentColor||"#6366F1",impressionUrl:e.impressionUrl,clickUrl:e.clickUrl,type:"custom"},i=!1,a}}catch{}if(n)try{const r=encodeURIComponent("react-native|mobile|javascript|typescript|ios|android|developer-tools|cloud"),e=`https://server.ethicalads.io/api/v1/decision/?publisher=${encodeURIComponent(n)}&ad_types=image-and-text&format=json&keywords=${r}&placements=app-inspector`,s=await fetch(e,{headers:{Accept:"application/json"}});if(s.ok){const t=await s.json();if(t&&(t.text||t.heading)&&(t.link||t.click_url))return a={id:`ethicalads-${t.id||Date.now()}`,title:t.heading||t.company||"Developer Spotlight",description:t.text||"",ctaText:"Learn More",ctaUrl:t.link||t.click_url,badgeText:"ETHICAL ADS",sponsorName:t.company||"Sponsored Tool",logoUrl:t.image,accentColor:"#10B981",impressionUrl:t.view_url,clickUrl:t.click_url,type:"ethicalads"},i=!1,a}}catch{}const u=Math.floor(Math.random()*d.length);return a=d[u],i=!1,a}export function trackSponsorImpression(o){i||(i=!0,o.impressionUrl&&fetch(o.impressionUrl,{method:"GET"}).catch(()=>{}))}export function handleSponsorClick(o){o.clickUrl&&fetch(o.clickUrl,{method:"GET"}).catch(()=>{}),o.ctaUrl&&h.openURL(o.ctaUrl).catch(()=>{})}