react-native-inapp-inspector 2.3.5 → 2.3.7

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 (226) hide show
  1. package/dist/commonjs/analytics.d.ts +0 -4
  2. package/dist/commonjs/analytics.js +0 -4
  3. package/dist/commonjs/bundle.d.ts +0 -4
  4. package/dist/commonjs/bundle.js +0 -4
  5. package/dist/commonjs/components/AnalyticsDetail.js +18 -27
  6. package/dist/commonjs/components/AnalyticsEventCard.js +9 -12
  7. package/dist/commonjs/components/AnalyticsGraph.js +10 -15
  8. package/dist/commonjs/components/AppHeaderLogo.js +0 -3
  9. package/dist/commonjs/components/BrandCircleIcon.js +15 -15
  10. package/dist/commonjs/components/BrandSquareIcon.js +20 -20
  11. package/dist/commonjs/components/CodeSnippet.js +6 -19
  12. package/dist/commonjs/components/ConsoleLogCard.js +0 -1
  13. package/dist/commonjs/components/CopyButton.js +0 -4
  14. package/dist/commonjs/components/DiffViewer.js +0 -2
  15. package/dist/commonjs/components/DomainHeader.js +0 -4
  16. package/dist/commonjs/components/EmptyState.js +0 -3
  17. package/dist/commonjs/components/ErrorBoundary.js +5 -10
  18. package/dist/commonjs/components/HeadersSection.js +0 -5
  19. package/dist/commonjs/components/HighlightText.js +1 -4
  20. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +11 -26
  21. package/dist/commonjs/components/Inspector/AnalyticsTab.js +34 -40
  22. package/dist/commonjs/components/Inspector/BundleTab.js +56 -84
  23. package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
  24. package/dist/commonjs/components/Inspector/CrashDetail.js +18 -20
  25. package/dist/commonjs/components/Inspector/CrashFilterModal.js +0 -1
  26. package/dist/commonjs/components/Inspector/CrashTab.js +11 -20
  27. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +12 -24
  28. package/dist/commonjs/components/Inspector/FabLauncher.js +1 -1
  29. package/dist/commonjs/components/Inspector/InspectorContext.js +0 -2
  30. package/dist/commonjs/components/Inspector/InspectorHeader.js +7 -8
  31. package/dist/commonjs/components/Inspector/LogDetail.js +27 -29
  32. package/dist/commonjs/components/Inspector/MainScreen.js +9 -10
  33. package/dist/commonjs/components/Inspector/NetworkDetail.js +10 -11
  34. package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
  35. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +6 -9
  36. package/dist/commonjs/components/Inspector/PerformanceTab.js +30 -43
  37. package/dist/commonjs/components/Inspector/ReduxDetail.js +18 -34
  38. package/dist/commonjs/components/Inspector/ReduxTab.js +11 -20
  39. package/dist/commonjs/components/Inspector/SettingsPanel.js +32 -36
  40. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +6 -6
  41. package/dist/commonjs/components/Inspector/StorageTab.js +14 -26
  42. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +5 -6
  43. package/dist/commonjs/components/JsonViewer.js +3 -10
  44. package/dist/commonjs/components/LogCard.js +7 -7
  45. package/dist/commonjs/components/MetaAccordion.js +1 -7
  46. package/dist/commonjs/components/NetworkIcons.js +12 -16
  47. package/dist/commonjs/components/SectionHeader.js +0 -4
  48. package/dist/commonjs/components/SkeletonPlaceholder.js +6 -6
  49. package/dist/commonjs/components/Slider.js +6 -6
  50. package/dist/commonjs/components/SourcePageCard.js +0 -4
  51. package/dist/commonjs/components/TreeNode.js +0 -4
  52. package/dist/commonjs/console.d.ts +0 -4
  53. package/dist/commonjs/console.js +0 -4
  54. package/dist/commonjs/constants/index.js +6 -9
  55. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -0
  56. package/dist/commonjs/constants/telemetryConfig.js +6 -0
  57. package/dist/commonjs/constants/version.d.ts +1 -1
  58. package/dist/commonjs/constants/version.js +1 -3
  59. package/dist/commonjs/crash.d.ts +0 -4
  60. package/dist/commonjs/crash.js +0 -4
  61. package/dist/commonjs/customHooks/analyticsLogger.d.ts +0 -7
  62. package/dist/commonjs/customHooks/analyticsLogger.js +3 -59
  63. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -9
  64. package/dist/commonjs/customHooks/bundleAnalyzer.js +3 -86
  65. package/dist/commonjs/customHooks/consoleLogger.js +0 -16
  66. package/dist/commonjs/customHooks/crashHandler.d.ts +0 -28
  67. package/dist/commonjs/customHooks/crashHandler.js +0 -55
  68. package/dist/commonjs/customHooks/logFilters.d.ts +0 -4
  69. package/dist/commonjs/customHooks/logFilters.js +0 -11
  70. package/dist/commonjs/customHooks/networkLogger.js +2 -13
  71. package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -27
  72. package/dist/commonjs/customHooks/performanceTracker.js +0 -31
  73. package/dist/commonjs/customHooks/reduxLogger.d.ts +0 -12
  74. package/dist/commonjs/customHooks/reduxLogger.js +0 -51
  75. package/dist/commonjs/customHooks/storageInspector.d.ts +0 -40
  76. package/dist/commonjs/customHooks/storageInspector.js +1 -56
  77. package/dist/commonjs/decorators/index.d.ts +0 -37
  78. package/dist/commonjs/decorators/index.js +0 -42
  79. package/dist/commonjs/helpers/gaAnalyticsRegistry.d.ts +0 -10
  80. package/dist/commonjs/helpers/gaAnalyticsRegistry.js +0 -26
  81. package/dist/commonjs/helpers/index.d.ts +0 -7
  82. package/dist/commonjs/helpers/index.js +1 -42
  83. package/dist/commonjs/helpers/memoryManager.d.ts +0 -11
  84. package/dist/commonjs/helpers/memoryManager.js +0 -13
  85. package/dist/commonjs/helpers/searchQueryParser.d.ts +0 -4
  86. package/dist/commonjs/helpers/searchQueryParser.js +0 -18
  87. package/dist/commonjs/helpers/settingsStore.js +0 -8
  88. package/dist/commonjs/helpers/telemetry.d.ts +2 -0
  89. package/dist/commonjs/helpers/telemetry.js +136 -0
  90. package/dist/commonjs/i18n/index.d.ts +0 -9
  91. package/dist/commonjs/i18n/index.js +0 -15
  92. package/dist/commonjs/index.js +15 -97
  93. package/dist/commonjs/native/NativeInspector.d.ts +0 -54
  94. package/dist/commonjs/native/NativeInspector.js +0 -56
  95. package/dist/commonjs/network.d.ts +0 -4
  96. package/dist/commonjs/network.js +0 -4
  97. package/dist/commonjs/performance.d.ts +0 -4
  98. package/dist/commonjs/performance.js +0 -4
  99. package/dist/commonjs/redux.d.ts +0 -4
  100. package/dist/commonjs/redux.js +0 -4
  101. package/dist/commonjs/storage.d.ts +0 -4
  102. package/dist/commonjs/storage.js +0 -4
  103. package/dist/commonjs/styles/AppColors.d.ts +0 -3
  104. package/dist/commonjs/styles/AppColors.js +15 -30
  105. package/dist/commonjs/styles/AppFonts.d.ts +0 -4
  106. package/dist/commonjs/styles/AppFonts.js +0 -4
  107. package/dist/commonjs/styles/common.js +0 -11
  108. package/dist/commonjs/styles/index.js +0 -8
  109. package/dist/commonjs/types/enums.js +0 -3
  110. package/dist/commonjs/types/interfaces.d.ts +3 -3
  111. package/dist/esm/analytics.d.ts +0 -4
  112. package/dist/esm/analytics.js +0 -4
  113. package/dist/esm/bundle.d.ts +0 -4
  114. package/dist/esm/bundle.js +0 -4
  115. package/dist/esm/components/AnalyticsDetail.js +18 -27
  116. package/dist/esm/components/AnalyticsEventCard.js +9 -12
  117. package/dist/esm/components/AnalyticsGraph.js +10 -15
  118. package/dist/esm/components/AppHeaderLogo.js +0 -3
  119. package/dist/esm/components/BrandCircleIcon.js +15 -15
  120. package/dist/esm/components/BrandSquareIcon.js +20 -20
  121. package/dist/esm/components/CodeSnippet.js +6 -19
  122. package/dist/esm/components/ConsoleLogCard.js +0 -1
  123. package/dist/esm/components/CopyButton.js +0 -4
  124. package/dist/esm/components/DiffViewer.js +0 -2
  125. package/dist/esm/components/DomainHeader.js +0 -4
  126. package/dist/esm/components/EmptyState.js +0 -3
  127. package/dist/esm/components/ErrorBoundary.js +5 -10
  128. package/dist/esm/components/HeadersSection.js +0 -5
  129. package/dist/esm/components/HighlightText.js +1 -4
  130. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +11 -26
  131. package/dist/esm/components/Inspector/AnalyticsTab.js +34 -40
  132. package/dist/esm/components/Inspector/BundleTab.js +56 -84
  133. package/dist/esm/components/Inspector/ConsoleTab.js +7 -7
  134. package/dist/esm/components/Inspector/CrashDetail.js +18 -20
  135. package/dist/esm/components/Inspector/CrashFilterModal.js +0 -1
  136. package/dist/esm/components/Inspector/CrashTab.js +11 -20
  137. package/dist/esm/components/Inspector/DeviceInfoTab.js +12 -24
  138. package/dist/esm/components/Inspector/FabLauncher.js +1 -1
  139. package/dist/esm/components/Inspector/InspectorContext.js +0 -2
  140. package/dist/esm/components/Inspector/InspectorHeader.js +7 -8
  141. package/dist/esm/components/Inspector/LogDetail.js +27 -29
  142. package/dist/esm/components/Inspector/MainScreen.js +9 -10
  143. package/dist/esm/components/Inspector/NetworkDetail.js +10 -11
  144. package/dist/esm/components/Inspector/NetworkTab.js +14 -14
  145. package/dist/esm/components/Inspector/NpmUpdateToast.js +6 -9
  146. package/dist/esm/components/Inspector/PerformanceTab.js +30 -43
  147. package/dist/esm/components/Inspector/ReduxDetail.js +18 -34
  148. package/dist/esm/components/Inspector/ReduxTab.js +11 -20
  149. package/dist/esm/components/Inspector/SettingsPanel.js +32 -36
  150. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +6 -6
  151. package/dist/esm/components/Inspector/StorageTab.js +14 -26
  152. package/dist/esm/components/Inspector/UpdateAvailableModal.js +5 -6
  153. package/dist/esm/components/JsonViewer.js +3 -10
  154. package/dist/esm/components/LogCard.js +7 -7
  155. package/dist/esm/components/MetaAccordion.js +1 -7
  156. package/dist/esm/components/NetworkIcons.js +12 -16
  157. package/dist/esm/components/SectionHeader.js +0 -4
  158. package/dist/esm/components/SkeletonPlaceholder.js +6 -6
  159. package/dist/esm/components/Slider.js +6 -6
  160. package/dist/esm/components/SourcePageCard.js +0 -4
  161. package/dist/esm/components/TreeNode.js +0 -4
  162. package/dist/esm/console.d.ts +0 -4
  163. package/dist/esm/console.js +0 -4
  164. package/dist/esm/constants/index.js +6 -9
  165. package/dist/esm/constants/telemetryConfig.d.ts +3 -0
  166. package/dist/esm/constants/telemetryConfig.js +3 -0
  167. package/dist/esm/constants/version.d.ts +1 -1
  168. package/dist/esm/constants/version.js +1 -3
  169. package/dist/esm/crash.d.ts +0 -4
  170. package/dist/esm/crash.js +0 -4
  171. package/dist/esm/customHooks/analyticsLogger.d.ts +0 -7
  172. package/dist/esm/customHooks/analyticsLogger.js +3 -59
  173. package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -9
  174. package/dist/esm/customHooks/bundleAnalyzer.js +3 -86
  175. package/dist/esm/customHooks/consoleLogger.js +0 -16
  176. package/dist/esm/customHooks/crashHandler.d.ts +0 -28
  177. package/dist/esm/customHooks/crashHandler.js +0 -55
  178. package/dist/esm/customHooks/logFilters.d.ts +0 -4
  179. package/dist/esm/customHooks/logFilters.js +0 -11
  180. package/dist/esm/customHooks/networkLogger.js +2 -13
  181. package/dist/esm/customHooks/performanceTracker.d.ts +0 -27
  182. package/dist/esm/customHooks/performanceTracker.js +0 -31
  183. package/dist/esm/customHooks/reduxLogger.d.ts +0 -12
  184. package/dist/esm/customHooks/reduxLogger.js +0 -51
  185. package/dist/esm/customHooks/storageInspector.d.ts +0 -40
  186. package/dist/esm/customHooks/storageInspector.js +1 -56
  187. package/dist/esm/decorators/index.d.ts +0 -37
  188. package/dist/esm/decorators/index.js +0 -42
  189. package/dist/esm/helpers/gaAnalyticsRegistry.d.ts +0 -10
  190. package/dist/esm/helpers/gaAnalyticsRegistry.js +0 -26
  191. package/dist/esm/helpers/index.d.ts +0 -7
  192. package/dist/esm/helpers/index.js +1 -42
  193. package/dist/esm/helpers/memoryManager.d.ts +0 -11
  194. package/dist/esm/helpers/memoryManager.js +0 -13
  195. package/dist/esm/helpers/searchQueryParser.d.ts +0 -4
  196. package/dist/esm/helpers/searchQueryParser.js +0 -18
  197. package/dist/esm/helpers/settingsStore.js +0 -8
  198. package/dist/esm/helpers/telemetry.d.ts +2 -0
  199. package/dist/esm/helpers/telemetry.js +132 -0
  200. package/dist/esm/i18n/index.d.ts +0 -9
  201. package/dist/esm/i18n/index.js +0 -15
  202. package/dist/esm/index.js +15 -97
  203. package/dist/esm/native/NativeInspector.d.ts +0 -54
  204. package/dist/esm/native/NativeInspector.js +0 -56
  205. package/dist/esm/network.d.ts +0 -4
  206. package/dist/esm/network.js +0 -4
  207. package/dist/esm/performance.d.ts +0 -4
  208. package/dist/esm/performance.js +0 -4
  209. package/dist/esm/redux.d.ts +0 -4
  210. package/dist/esm/redux.js +0 -4
  211. package/dist/esm/storage.d.ts +0 -4
  212. package/dist/esm/storage.js +0 -4
  213. package/dist/esm/styles/AppColors.d.ts +0 -3
  214. package/dist/esm/styles/AppColors.js +15 -30
  215. package/dist/esm/styles/AppFonts.d.ts +0 -4
  216. package/dist/esm/styles/AppFonts.js +0 -4
  217. package/dist/esm/styles/common.js +0 -11
  218. package/dist/esm/styles/index.js +0 -8
  219. package/dist/esm/types/enums.js +0 -3
  220. package/dist/esm/types/interfaces.d.ts +3 -3
  221. package/package.json +2 -2
  222. package/src/constants/telemetryConfig.ts +6 -0
  223. package/src/constants/version.ts +1 -1
  224. package/src/helpers/telemetry.ts +161 -0
  225. package/src/index.tsx +15 -1
  226. package/src/types/interfaces.ts +3 -0
@@ -42,14 +42,14 @@ const react_native_svg_1 = __importStar(require("react-native-svg"));
42
42
  const BrandSquareIcon = ({ size = 56 }) => {
43
43
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 256 256" fill="none">
44
44
  <react_native_svg_1.Defs>
45
- {/* App Tile Background - Crisp Royal Deep Violet to Midnight */}
45
+
46
46
  <react_native_svg_1.LinearGradient id="bs_tile" x1="0" y1="0" x2="256" y2="256" gradientUnits="userSpaceOnUse">
47
47
  <react_native_svg_1.Stop offset="0%" stopColor="#1E1B4B"/>
48
48
  <react_native_svg_1.Stop offset="50%" stopColor="#18182F"/>
49
49
  <react_native_svg_1.Stop offset="100%" stopColor="#0B0F19"/>
50
50
  </react_native_svg_1.LinearGradient>
51
51
 
52
- {/* Outer Neon Cyber Border */}
52
+
53
53
  <react_native_svg_1.LinearGradient id="bs_border" x1="0" y1="0" x2="256" y2="256" gradientUnits="userSpaceOnUse">
54
54
  <react_native_svg_1.Stop offset="0%" stopColor="#818CF8" stopOpacity={0.9}/>
55
55
  <react_native_svg_1.Stop offset="45%" stopColor="#C084FC" stopOpacity={0.8}/>
@@ -57,21 +57,21 @@ const BrandSquareIcon = ({ size = 56 }) => {
57
57
  <react_native_svg_1.Stop offset="100%" stopColor="#38BDF8" stopOpacity={0.9}/>
58
58
  </react_native_svg_1.LinearGradient>
59
59
 
60
- {/* Ambient Top Glow */}
60
+
61
61
  <react_native_svg_1.RadialGradient id="bs_top_glow" cx="50%" cy="15%" r="65%">
62
62
  <react_native_svg_1.Stop offset="0%" stopColor="#818CF8" stopOpacity={0.35}/>
63
63
  <react_native_svg_1.Stop offset="60%" stopColor="#A855F7" stopOpacity={0.12}/>
64
64
  <react_native_svg_1.Stop offset="100%" stopColor="#1E1B4B" stopOpacity={0}/>
65
65
  </react_native_svg_1.RadialGradient>
66
66
 
67
- {/* Owl Outer Body Gradient - High Contrast */}
67
+
68
68
  <react_native_svg_1.LinearGradient id="bs_body" x1="64" y1="40" x2="192" y2="220" gradientUnits="userSpaceOnUse">
69
69
  <react_native_svg_1.Stop offset="0%" stopColor="#3730A3"/>
70
70
  <react_native_svg_1.Stop offset="50%" stopColor="#2E1065"/>
71
71
  <react_native_svg_1.Stop offset="100%" stopColor="#17123A"/>
72
72
  </react_native_svg_1.LinearGradient>
73
73
 
74
- {/* Neon Cyber Beam Stroke */}
74
+
75
75
  <react_native_svg_1.LinearGradient id="bs_beam" x1="40" y1="40" x2="220" y2="220" gradientUnits="userSpaceOnUse">
76
76
  <react_native_svg_1.Stop offset="0%" stopColor="#67E8F9"/>
77
77
  <react_native_svg_1.Stop offset="35%" stopColor="#818CF8"/>
@@ -79,7 +79,7 @@ const BrandSquareIcon = ({ size = 56 }) => {
79
79
  <react_native_svg_1.Stop offset="100%" stopColor="#F472B6"/>
80
80
  </react_native_svg_1.LinearGradient>
81
81
 
82
- {/* Eyes Radiant Iris */}
82
+
83
83
  <react_native_svg_1.RadialGradient id="bs_iris" cx="38%" cy="36%" r="65%">
84
84
  <react_native_svg_1.Stop offset="0%" stopColor="#FEF08A"/>
85
85
  <react_native_svg_1.Stop offset="40%" stopColor="#FBBF24"/>
@@ -87,13 +87,13 @@ const BrandSquareIcon = ({ size = 56 }) => {
87
87
  <react_native_svg_1.Stop offset="100%" stopColor="#D97706"/>
88
88
  </react_native_svg_1.RadialGradient>
89
89
 
90
- {/* Beak Gradient */}
90
+
91
91
  <react_native_svg_1.LinearGradient id="bs_beak" x1="124" y1="120" x2="132" y2="136" gradientUnits="userSpaceOnUse">
92
92
  <react_native_svg_1.Stop offset="0%" stopColor="#FDE047"/>
93
93
  <react_native_svg_1.Stop offset="100%" stopColor="#EA580C"/>
94
94
  </react_native_svg_1.LinearGradient>
95
95
 
96
- {/* Diagnostic Lens Glass Flare */}
96
+
97
97
  <react_native_svg_1.RadialGradient id="bs_lens" cx="40%" cy="35%" r="65%">
98
98
  <react_native_svg_1.Stop offset="0%" stopColor="#A5F3FC" stopOpacity={0.4}/>
99
99
  <react_native_svg_1.Stop offset="50%" stopColor="#38BDF8" stopOpacity={0.18}/>
@@ -101,23 +101,23 @@ const BrandSquareIcon = ({ size = 56 }) => {
101
101
  </react_native_svg_1.RadialGradient>
102
102
  </react_native_svg_1.Defs>
103
103
 
104
- {/* ── 1. Rounded App Tile Base (Full Edge-to-Edge) ── */}
104
+
105
105
  <react_native_svg_1.Rect x="2" y="2" width="252" height="252" rx="58" fill="url(#bs_tile)"/>
106
106
  <react_native_svg_1.Rect x="2" y="2" width="252" height="252" rx="58" fill="url(#bs_top_glow)"/>
107
107
  <react_native_svg_1.Rect x="2" y="2" width="252" height="252" rx="58" fill="none" stroke="url(#bs_border)" strokeWidth="3.5"/>
108
108
 
109
- {/* ── 2. Owl Outer Wings (Layered behind) ── */}
109
+
110
110
  <react_native_svg_1.Path d="M62 120 C42 152 46 194 76 210 C68 178 66 146 80 120 Z" fill="#1E1B4B" stroke="url(#bs_beam)" strokeWidth="3" strokeOpacity={0.75}/>
111
111
  <react_native_svg_1.Path d="M194 120 C214 152 210 194 180 210 C188 178 190 146 176 120 Z" fill="#1E1B4B" stroke="url(#bs_beam)" strokeWidth="3" strokeOpacity={0.75}/>
112
112
 
113
- {/* ── 3. Owl Body Contour ── */}
113
+
114
114
  <react_native_svg_1.Path d="M58 146 C54 98 68 64 88 52 L98 34 L118 56 Q128 50 138 56 L158 34 L168 52 C188 64 202 98 198 146 C202 180 186 208 152 216 C140 220 116 220 104 216 C70 208 54 180 58 146 Z" fill="url(#bs_body)" stroke="url(#bs_beam)" strokeWidth="4.5" strokeLinejoin="round"/>
115
115
 
116
- {/* Inner Ear Highlights */}
116
+
117
117
  <react_native_svg_1.Path d="M98 42 L112 56 L102 57 Z" fill="#67E8F9" opacity={0.6}/>
118
118
  <react_native_svg_1.Path d="M158 42 L144 56 L154 57 Z" fill="#F472B6" opacity={0.6}/>
119
119
 
120
- {/* ── 4. Chest Terminal & Code Braces ── */}
120
+
121
121
  <react_native_svg_1.Rect x="98" y="162" width="60" height="38" rx="10" fill="#050811" stroke="url(#bs_beam)" strokeWidth="2.5"/>
122
122
  <react_native_svg_1.G strokeWidth="3" strokeLinecap="round" strokeLinejoin="round" fill="none">
123
123
  <react_native_svg_1.Path d="M116 174 L108 181 L116 188" stroke="#38BDF8"/>
@@ -125,31 +125,31 @@ const BrandSquareIcon = ({ size = 56 }) => {
125
125
  <react_native_svg_1.Path d="M131 171 L125 191" stroke="#F43F5E"/>
126
126
  </react_native_svg_1.G>
127
127
 
128
- {/* ── 5. Facial Mask Plate ── */}
128
+
129
129
  <react_native_svg_1.Path d="M128 88 C152 64 192 72 192 104 C192 132 162 152 128 152 C94 152 64 132 64 104 C64 72 104 64 128 88 Z" fill="#1E1B4B" stroke="url(#bs_beam)" strokeWidth="2.8"/>
130
130
 
131
- {/* ── 6. Right Eye (Glowing Owl Eye) ── */}
131
+
132
132
  <react_native_svg_1.Circle cx="156" cy="106" r="19" fill="url(#bs_iris)" stroke="#0F172A" strokeWidth="2.5"/>
133
133
  <react_native_svg_1.Circle cx="156" cy="106" r="9.5" fill="#0B0F19"/>
134
134
  <react_native_svg_1.Circle cx="159.5" cy="102.5" r="3.5" fill="#FFFFFF"/>
135
135
  <react_native_svg_1.Circle cx="153" cy="109.5" r="1.8" fill="#FFFFFF" opacity={0.85}/>
136
136
 
137
- {/* ── 7. Left Eye (Diagnostic Magnifier Lens) ── */}
138
- {/* Magnifier Glass Glow */}
137
+
138
+
139
139
  <react_native_svg_1.Circle cx="94" cy="104" r="30" fill="url(#bs_lens)" stroke="url(#bs_beam)" strokeWidth="6"/>
140
140
  <react_native_svg_1.Line x1="72" y1="126" x2="48" y2="152" stroke="#0B0F19" strokeWidth="13" strokeLinecap="round"/>
141
141
  <react_native_svg_1.Line x1="72" y1="126" x2="48" y2="152" stroke="url(#bs_beam)" strokeWidth="8" strokeLinecap="round"/>
142
142
 
143
- {/* Eye Inside Magnifier */}
143
+
144
144
  <react_native_svg_1.Circle cx="94" cy="104" r="21" fill="url(#bs_iris)" stroke="#0F172A" strokeWidth="2.5"/>
145
145
  <react_native_svg_1.Circle cx="94" cy="104" r="10.5" fill="#0B0F19"/>
146
146
  <react_native_svg_1.Circle cx="98" cy="100" r="4" fill="#FFFFFF"/>
147
147
  <react_native_svg_1.Circle cx="90.5" cy="107.5" r="2" fill="#FFFFFF" opacity={0.85}/>
148
148
 
149
- {/* Lens Reflection Highlight */}
149
+
150
150
  <react_native_svg_1.Path d="M74 94 A26 26 0 0 1 106 78" stroke="#FFFFFF" strokeWidth="3" strokeLinecap="round" opacity={0.65} fill="none"/>
151
151
 
152
- {/* ── 8. Beak ── */}
152
+
153
153
  <react_native_svg_1.Path d="M123 120 Q128 118 133 120 Q131.5 133 128 137 Q124.5 133 123 120 Z" fill="url(#bs_beak)" stroke="#78350F" strokeWidth="1"/>
154
154
  </react_native_svg_1.default>);
155
155
  };
@@ -47,7 +47,6 @@ const AppFonts_1 = require("../styles/AppFonts");
47
47
  const escapeRegExp = (string) => {
48
48
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
49
49
  };
50
- // HTML pretty printer
51
50
  const formatHTML = (html) => {
52
51
  if (!html)
53
52
  return '';
@@ -85,7 +84,6 @@ const formatHTML = (html) => {
85
84
  }
86
85
  return formatted.join('\n');
87
86
  };
88
- // CSS pretty printer
89
87
  const formatCSS = (css) => {
90
88
  if (!css)
91
89
  return '';
@@ -111,7 +109,6 @@ const formatCSS = (css) => {
111
109
  }
112
110
  return formatted.join('\n');
113
111
  };
114
- // JS pretty printer
115
112
  const formatJS = (js) => {
116
113
  if (!js)
117
114
  return '';
@@ -295,12 +292,12 @@ const CodeSnippetLine = react_1.default.memo(({ line, lineIndex, language, searc
295
292
  </react_native_1.Text>);
296
293
  };
297
294
  return (<react_native_1.View style={[styles.lineRow, isActiveMatch && styles.activeMatchRow]}>
298
- {/* Gutter Line Number */}
295
+
299
296
  <react_native_1.View style={[styles.gutter, { backgroundColor: AppColors_1.AppColors.grayBackground, borderRightColor: AppColors_1.AppColors.grayBorderSecondary }, isActiveMatch && styles.activeMatchGutter]}>
300
297
  <react_native_1.Text style={[styles.lineNumber, { color: AppColors_1.AppColors.grayTextWeak }, isActiveMatch && styles.activeMatchLineNumber]}>{lineIndex + 1}</react_native_1.Text>
301
298
  </react_native_1.View>
302
299
 
303
- {/* Highlighted Code Line */}
300
+
304
301
  <react_native_1.View style={styles.codeLine}>
305
302
  <react_native_1.Text style={[styles.codeLineText, { color: AppColors_1.AppColors.primaryBlack }]}>
306
303
  {tokens.length === 0 ? (<react_native_1.Text style={[styles.plain, { color: AppColors_1.AppColors.primaryBlack }]}> </react_native_1.Text>) : (tokens.map((token, tokenIdx) => (<react_1.default.Fragment key={tokenIdx}>
@@ -316,21 +313,17 @@ const CodeSnippet = ({ code, language, search, }) => {
316
313
  const [currentMatchIdx, setCurrentMatchIdx] = (0, react_1.useState)(-1);
317
314
  const [visibleLinesCount, setVisibleLinesCount] = (0, react_1.useState)(200);
318
315
  const flatListRef = (0, react_1.useRef)(null);
319
- // Sync prop search to searchQuery
320
316
  (0, react_1.useEffect)(() => {
321
317
  if (search !== undefined) {
322
318
  setSearchQuery(search);
323
319
  }
324
320
  }, [search]);
325
- // Debounce search query updates
326
321
  (0, react_1.useEffect)(() => {
327
322
  const timer = setTimeout(() => {
328
323
  setDebouncedQuery(searchQuery);
329
324
  }, 300);
330
325
  return () => clearTimeout(timer);
331
326
  }, [searchQuery]);
332
- // If code is extremely large (e.g. > 150KB), skip the pretty printers
333
- // to avoid blocking the single JS thread.
334
327
  const formattedCode = (0, react_1.useMemo)(() => {
335
328
  if (!code)
336
329
  return '';
@@ -350,7 +343,6 @@ const CodeSnippet = ({ code, language, search, }) => {
350
343
  return [];
351
344
  return formattedCode.split(/\r?\n/);
352
345
  }, [formattedCode]);
353
- // Find all line indices matching the search query
354
346
  const matches = (0, react_1.useMemo)(() => {
355
347
  if (!debouncedQuery.trim() || debouncedQuery.length < 2)
356
348
  return [];
@@ -363,13 +355,11 @@ const CodeSnippet = ({ code, language, search, }) => {
363
355
  }
364
356
  return indices;
365
357
  }, [debouncedQuery, lines]);
366
- // Reset scroll and states on code/language changes
367
358
  (0, react_1.useEffect)(() => {
368
359
  setVisibleLinesCount(200);
369
360
  setSearchQuery(search || '');
370
361
  setCurrentMatchIdx(-1);
371
362
  }, [code, language]);
372
- // Auto-scroll to the first match when search query returns matches
373
363
  (0, react_1.useEffect)(() => {
374
364
  if (matches.length > 0) {
375
365
  setCurrentMatchIdx(0);
@@ -383,11 +373,9 @@ const CodeSnippet = ({ code, language, search, }) => {
383
373
  if (matches.length === 0 || matchIdx < 0 || matchIdx >= matches.length)
384
374
  return;
385
375
  const lineIdx = matches[matchIdx];
386
- // Ensure the targeted index is loaded in FlatList
387
376
  if (lineIdx >= visibleLinesCount) {
388
377
  setVisibleLinesCount(lineIdx + 100);
389
378
  }
390
- // Schedule scroll after state has applied
391
379
  setTimeout(() => {
392
380
  try {
393
381
  flatListRef.current?.scrollToIndex({
@@ -397,7 +385,6 @@ const CodeSnippet = ({ code, language, search, }) => {
397
385
  });
398
386
  }
399
387
  catch (e) {
400
- // Fallback recovery is handled by onScrollToIndexFailed
401
388
  }
402
389
  }, 50);
403
390
  };
@@ -446,13 +433,13 @@ const CodeSnippet = ({ code, language, search, }) => {
446
433
  return (<CodeSnippetLine line={item} lineIndex={index} language={language} search={debouncedQuery} isActiveMatch={isActiveMatch}/>);
447
434
  };
448
435
  return (<react_native_1.View style={{ flex: 1 }}>
449
- {/* Search Header Row */}
436
+
450
437
  <react_native_1.View style={styles.searchRow}>
451
438
  <react_native_1.View style={[styles.searchBar, { backgroundColor: AppColors_1.AppColors.primaryLight, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
452
439
  <NetworkIcons_1.SearchIcon color={AppColors_1.AppColors.grayTextWeak} size={15}/>
453
440
  <react_native_1.TextInput placeholder={`Search ${language.toUpperCase()}...`} placeholderTextColor={AppColors_1.AppColors.grayTextWeak} value={searchQuery} onChangeText={setSearchQuery} style={[styles.searchInput, { color: AppColors_1.AppColors.primaryBlack }]} autoCorrect={false} autoCapitalize="none"/>
454
441
 
455
- {/* Matches Info */}
442
+
456
443
  {debouncedQuery.length >= 2 && (<react_native_1.Text style={[styles.matchCountText, { backgroundColor: AppColors_1.AppColors.grayBackground, color: AppColors_1.AppColors.grayTextWeak }]}>
457
444
  {matches.length > 0 ? `${currentMatchIdx + 1}/${matches.length}` : '0/0'}
458
445
  </react_native_1.Text>)}
@@ -462,7 +449,7 @@ const CodeSnippet = ({ code, language, search, }) => {
462
449
  </react_native_1.Pressable>)}
463
450
  </react_native_1.View>
464
451
 
465
- {/* Up / Down Arrow Navigation Buttons */}
452
+
466
453
  {matches.length > 0 && (<react_native_1.View style={[styles.navArrowsGroup, { backgroundColor: AppColors_1.AppColors.primaryLight, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
467
454
  <TouchableScale_1.default onPress={handlePrevMatch} hitSlop={8} style={styles.navArrowBtn}>
468
455
  <ArrowUpIcon color={AppColors_1.AppColors.grayTextStrong} size={14}/>
@@ -475,7 +462,7 @@ const CodeSnippet = ({ code, language, search, }) => {
475
462
  <CopyButton_1.default value={code} label={`${language.toUpperCase()} Source`}/>
476
463
  </react_native_1.View>
477
464
 
478
- {/* Code Snippet list container */}
465
+
479
466
  <react_native_1.View style={[styles.container, { backgroundColor: AppColors_1.AppColors.grayBackground, borderColor: AppColors_1.AppColors.grayBorderSecondary }]}>
480
467
  <react_native_1.FlatList ref={flatListRef} data={visibleLines} renderItem={renderLine} keyExtractor={(_, index) => String(index)} maxToRenderPerBatch={30} windowSize={5} initialNumToRender={50} removeClippedSubviews={react_native_1.Platform.OS === 'android'} onEndReached={handleEndReached} onEndReachedThreshold={0.5} onScrollToIndexFailed={onScrollToIndexFailed}/>
481
468
  </react_native_1.View>
@@ -150,7 +150,6 @@ exports.ConsoleLogCard = react_1.default.memo(function ConsoleLogCard({ item, se
150
150
  textColor: AppColors_1.AppColors.blue800,
151
151
  };
152
152
  }
153
- // Default / Standard console.log
154
153
  return {
155
154
  border: AppColors_1.AppColors.indigo500,
156
155
  badgeBg: AppColors_1.AppColors.indigo50,
@@ -38,14 +38,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const react_native_1 = require("react-native");
41
- // Components
42
41
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
43
- // Helpers
44
42
  const helpers_1 = require("../helpers");
45
43
  const NativeInspector_1 = require("../native/NativeInspector");
46
- // Assets
47
44
  const NetworkIcons_1 = require("./NetworkIcons");
48
- // Stylesheet
49
45
  const AppColors_1 = require("../styles/AppColors");
50
46
  const styles_1 = __importDefault(require("../styles"));
51
47
  const CopyButton = react_1.default.memo(({ value, label, iconType = 'copy' }) => {
@@ -39,9 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const i18n_1 = require("../i18n");
40
40
  const react_1 = __importStar(require("react"));
41
41
  const react_native_1 = require("react-native");
42
- // Helpers
43
42
  const helpers_1 = require("../helpers");
44
- // Stylesheet
45
43
  const AppColors_1 = require("../styles/AppColors");
46
44
  const styles_1 = __importDefault(require("../styles"));
47
45
  const DiffViewer = react_1.default.memo(({ oldData, newData, forceOpen, }) => {
@@ -38,14 +38,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const react_native_1 = require("react-native");
41
- // Stylesheet
42
41
  const AppColors_1 = require("../styles/AppColors");
43
42
  const AppFonts_1 = require("../styles/AppFonts");
44
- // Helpers
45
43
  const helpers_1 = require("../helpers");
46
- // Assets
47
44
  const NetworkIcons_1 = require("./NetworkIcons");
48
- // Stylesheet
49
45
  const styles_1 = __importDefault(require("../styles"));
50
46
  const DomainHeader = ({ pageName, color, stats, activeFilters, onToggleFilter, isCollapsed, onToggleCollapse, isFirst, timestamp, }) => {
51
47
  const chevronAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(isCollapsed ? 0 : 1)).current;
@@ -38,12 +38,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const react_native_1 = require("react-native");
41
- // Components
42
41
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
43
42
  const AnimatedEntrance_1 = __importDefault(require("./AnimatedEntrance"));
44
- // Assets
45
43
  const NetworkIcons_1 = require("./NetworkIcons");
46
- // Stylesheet
47
44
  const AppColors_1 = require("../styles/AppColors");
48
45
  const styles_1 = __importDefault(require("../styles"));
49
46
  const EmptyState = react_1.default.memo(function EmptyState({ isSearch, searchQuery, customTitle, customSub, onClearSearch, }) {
@@ -56,7 +56,6 @@ function parseStackTrace(stack) {
56
56
  line.includes('handleInterceptedCrash')) {
57
57
  continue;
58
58
  }
59
- // iOS format: method@url:line:col
60
59
  const iosMatch = line.match(/^([^@]*)@(.*):(\d+):(\d+)$/);
61
60
  if (iosMatch) {
62
61
  const [, method, fullPath, lineNum, colNum] = iosMatch;
@@ -72,7 +71,6 @@ function parseStackTrace(stack) {
72
71
  });
73
72
  continue;
74
73
  }
75
- // Android format: at method (url:line:col) or at url:line:col
76
74
  const androidMatch = line.match(/^\s*at\s+(.+)\s+\((.+):(\d+):(\d+)\)$/);
77
75
  if (androidMatch) {
78
76
  const [, method, fullPath, lineNum, colNum] = androidMatch;
@@ -103,7 +101,6 @@ function parseStackTrace(stack) {
103
101
  });
104
102
  }
105
103
  }
106
- // Find topmost project frame, or fallback to first frame
107
104
  const rootFrame = frames.find(f => f.isProjectFile) || frames[0] || null;
108
105
  return { rootFrame, frames };
109
106
  }
@@ -161,7 +158,6 @@ ${error.stack || 'No stack trace available'}
161
158
  const isSyntaxOrType = errorType.includes('Syntax') ||
162
159
  errorType.includes('Type') ||
163
160
  errorType.includes('Reference');
164
- // ─── Inline Fallback View ─────────────────────────────────────────────
165
161
  if (this.props.fallbackType === 'inline') {
166
162
  return (<react_native_1.View style={styles.inlineContainer}>
167
163
  <react_native_1.View style={styles.inlineHeader}>
@@ -187,10 +183,9 @@ ${error.stack || 'No stack trace available'}
187
183
  </react_native_1.View>
188
184
  </react_native_1.View>);
189
185
  }
190
- // ─── Full-Screen Custom Native Recovery Modal ─────────────────────────
191
186
  return (<react_native_1.SafeAreaView style={styles.safeArea}>
192
187
  <react_native_1.View style={styles.container}>
193
- {/* Header Banner */}
188
+
194
189
  <react_native_1.View style={styles.header}>
195
190
  <react_native_1.View style={styles.iconGlowWrap}>
196
191
  <NetworkIcons_1.WarningTriangleIcon color={AppColors_1.AppColors.red500} size={28}/>
@@ -215,7 +210,7 @@ ${error.stack || 'No stack trace available'}
215
210
  </react_native_1.View>
216
211
 
217
212
  <react_native_1.ScrollView style={styles.scrollArea} contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator={false}>
218
- {/* Error Message Box */}
213
+
219
214
  <react_native_1.View style={styles.errorBox}>
220
215
  <react_native_1.View style={styles.errorBoxHeader}>
221
216
  <NetworkIcons_1.CircleAlertIcon size={14} color={AppColors_1.AppColors.red500}/>
@@ -224,7 +219,7 @@ ${error.stack || 'No stack trace available'}
224
219
  <react_native_1.Text style={styles.errorMessage}>{error.message}</react_native_1.Text>
225
220
  </react_native_1.View>
226
221
 
227
- {/* Root Cause Location Card */}
222
+
228
223
  {rootFrame && (<react_native_1.View style={styles.locationCard}>
229
224
  <react_native_1.Text style={styles.cardHeaderTitle}>{(0, i18n_1.t)('errors.exactLocation')}</react_native_1.Text>
230
225
  <react_native_1.View style={styles.locRow}>
@@ -248,7 +243,7 @@ ${error.stack || 'No stack trace available'}
248
243
  </react_native_1.Text>) : null}
249
244
  </react_native_1.View>)}
250
245
 
251
- {/* Formatted Stack Frames */}
246
+
252
247
  <react_native_1.View style={styles.stackCard}>
253
248
  <react_native_1.View style={styles.stackCardHeader}>
254
249
  <react_native_1.Text style={styles.cardHeaderTitle}>{(0, i18n_1.t)('errors.callStack')}</react_native_1.Text>
@@ -287,7 +282,7 @@ ${error.stack || 'No stack trace available'}
287
282
  </react_native_1.View>
288
283
  </react_native_1.ScrollView>
289
284
 
290
- {/* Action Buttons Footer */}
285
+
291
286
  <react_native_1.View style={styles.footer}>
292
287
  <react_native_1.TouchableOpacity onPress={this.handleReset} style={styles.retryBtn} activeOpacity={0.8}>
293
288
  <NetworkIcons_1.RefreshCcwIcon size={16} color={AppColors_1.AppColors.white}/>
@@ -39,16 +39,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const i18n_1 = require("../i18n");
41
41
  const react_native_1 = require("react-native");
42
- // Components
43
42
  const CopyButton_1 = __importDefault(require("./CopyButton"));
44
43
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
45
- // Helpers
46
44
  const helpers_1 = require("../helpers");
47
- // Custom Hooks
48
45
  const useAccordion_1 = __importDefault(require("../customHooks/useAccordion"));
49
- // Assets
50
46
  const NetworkIcons_1 = require("./NetworkIcons");
51
- // Stylesheet
52
47
  const AppColors_1 = require("../styles/AppColors");
53
48
  const styles_1 = __importDefault(require("../styles"));
54
49
  const HeaderRow = react_1.default.memo(function HeaderRow({ headerKey, value, isLast, index, }) {
@@ -5,16 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
7
  const react_native_1 = require("react-native");
8
- // Helpers
9
8
  const helpers_1 = require("../helpers");
10
9
  const HighlightText = react_1.default.memo(function HighlightText({ text, search, style, highlightStyle, detectLinks, numberOfLines, ...rest }) {
11
- // Optimization: For huge strings (> 20KB) with no active search, bypass all splitting/regex overhead
12
10
  if (!text || (text.length > 20000 && !search && !detectLinks)) {
13
11
  return (<react_native_1.Text style={style} numberOfLines={numberOfLines} {...rest}>
14
12
  {text}
15
13
  </react_native_1.Text>);
16
14
  }
17
- // Regex to detect absolute URLs
18
15
  const URL_REGEX = /(https?:\/\/[^\s]+)/g;
19
16
  const renderNormalOrHighlighted = (subText, keyPrefix) => {
20
17
  if (!search) {
@@ -34,7 +31,7 @@ const HighlightText = react_1.default.memo(function HighlightText({ text, search
34
31
  {parts.map((part, i) => {
35
32
  if (part.match(URL_REGEX)) {
36
33
  return (<react_native_1.Text key={`link-${i}`} style={{
37
- color: '#007AFF', // skyBlue link color
34
+ color: '#007AFF',
38
35
  textDecorationLine: 'underline',
39
36
  }} onPress={() => {
40
37
  (0, helpers_1.handleOpenExternalLink)(part);
@@ -61,7 +61,6 @@ const DEFAULT_FILTERS = {
61
61
  };
62
62
  const AnalyticsFilterModal = ({ visible, onClose, }) => {
63
63
  const { analyticsEvents, analyticsSearch, analyticsFilters, setAnalyticsFilters, } = (0, InspectorContext_1.useInspector)();
64
- // Staged Draft State: applied ONLY on tapping "Apply Filters"
65
64
  const [draft, setDraft] = (0, react_1.useState)(() => ({
66
65
  ...analyticsFilters,
67
66
  categories: new Set(analyticsFilters.categories),
@@ -69,7 +68,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
69
68
  sources: new Set(analyticsFilters.sources || ['all']),
70
69
  userTypes: new Set(analyticsFilters.userTypes || ['all']),
71
70
  }));
72
- // Re-sync draft whenever modal opens
73
71
  (0, react_1.useEffect)(() => {
74
72
  if (visible) {
75
73
  setDraft({
@@ -81,7 +79,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
81
79
  });
82
80
  }
83
81
  }, [visible, analyticsFilters]);
84
- // Extract unique screen names from logged events
85
82
  const uniqueScreens = (0, react_1.useMemo)(() => {
86
83
  const screens = new Set();
87
84
  for (const e of analyticsEvents) {
@@ -96,7 +93,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
96
93
  }
97
94
  return Array.from(screens);
98
95
  }, [analyticsEvents]);
99
- // Toggle Category in Draft
100
96
  const toggleCategory = (cat) => {
101
97
  setDraft(prev => {
102
98
  const next = new Set(prev.categories);
@@ -115,7 +111,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
115
111
  return { ...prev, categories: next };
116
112
  });
117
113
  };
118
- // Toggle Screen in Draft
119
114
  const toggleScreen = (scr) => {
120
115
  setDraft(prev => {
121
116
  const next = new Set(prev.screens);
@@ -128,7 +123,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
128
123
  return { ...prev, screens: next };
129
124
  });
130
125
  };
131
- // Toggle Source in Draft
132
126
  const toggleSource = (src) => {
133
127
  setDraft(prev => {
134
128
  const next = new Set(prev.sources);
@@ -147,7 +141,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
147
141
  return { ...prev, sources: next };
148
142
  });
149
143
  };
150
- // Toggle User Type in Draft
151
144
  const toggleUserType = (ut) => {
152
145
  setDraft(prev => {
153
146
  const next = new Set(prev.userTypes);
@@ -166,26 +159,21 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
166
159
  return { ...prev, userTypes: next };
167
160
  });
168
161
  };
169
- // Toggle Boolean Flag in Draft
170
162
  const toggleFlag = (key) => {
171
163
  setDraft(prev => ({
172
164
  ...prev,
173
165
  [key]: !prev[key],
174
166
  }));
175
167
  };
176
- // Set Time Window in Draft
177
168
  const setTimeWindow = (tw) => {
178
169
  setDraft(prev => ({ ...prev, timeWindow: tw }));
179
170
  };
180
- // Set Payload Complexity in Draft
181
171
  const setPayloadComplexity = (pc) => {
182
172
  setDraft(prev => ({ ...prev, payloadComplexity: pc }));
183
173
  };
184
- // Set Sort in Draft
185
174
  const setSort = (sortBy) => {
186
175
  setDraft(prev => ({ ...prev, sortBy }));
187
176
  };
188
- // Reset Draft to default
189
177
  const handleResetDraft = () => {
190
178
  setDraft({
191
179
  categories: new Set(['all']),
@@ -203,7 +191,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
203
191
  sortBy: 'time_desc',
204
192
  });
205
193
  };
206
- // Commit Draft to actual filters
207
194
  const handleApply = () => {
208
195
  setAnalyticsFilters({
209
196
  ...draft,
@@ -214,7 +201,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
214
201
  });
215
202
  onClose();
216
203
  };
217
- // Discard changes & close
218
204
  const handleDiscard = () => {
219
205
  setDraft({
220
206
  ...analyticsFilters,
@@ -225,7 +211,6 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
225
211
  });
226
212
  onClose();
227
213
  };
228
- // Calculate matching count for Draft in real-time
229
214
  const draftMatchCount = (0, react_1.useMemo)(() => {
230
215
  let events = analyticsEvents;
231
216
  if (analyticsSearch) {
@@ -328,7 +313,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
328
313
  <react_native_1.Pressable style={react_native_1.StyleSheet.absoluteFill} onPress={handleDiscard}/>
329
314
 
330
315
  <react_native_1.View style={styles.modalCard}>
331
- {/* ─── Header ──────────────────────────────────────────────────────── */}
316
+
332
317
  <react_native_1.View style={styles.header}>
333
318
  <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}>
334
319
  <react_native_1.View style={styles.headerIconBox}>
@@ -353,9 +338,9 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
353
338
  </react_native_1.View>
354
339
  </react_native_1.View>
355
340
 
356
- {/* ─── Scrollable Filter Options ──────────────────────────────────── */}
341
+
357
342
  <react_native_1.ScrollView style={{ maxHeight: 460 }} contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator={true}>
358
- {/* 1. Time Horizon Window */}
343
+
359
344
  <react_native_1.View style={styles.section}>
360
345
  <react_native_1.View style={styles.sectionHeaderRow}>
361
346
  <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -384,7 +369,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
384
369
  </react_native_1.View>
385
370
  </react_native_1.View>
386
371
 
387
- {/* 2. Category Dimensions */}
372
+
388
373
  <react_native_1.View style={styles.section}>
389
374
  <react_native_1.View style={styles.sectionHeaderRow}>
390
375
  <NetworkIcons_1.TargetGoalIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -474,7 +459,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
474
459
  </react_native_1.View>
475
460
  </react_native_1.View>
476
461
 
477
- {/* 3. Goals, Monetization & Attributes */}
462
+
478
463
  <react_native_1.View style={styles.section}>
479
464
  <react_native_1.View style={styles.sectionHeaderRow}>
480
465
  <NetworkIcons_1.MoneyIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -575,7 +560,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
575
560
  </react_native_1.View>
576
561
  </react_native_1.View>
577
562
 
578
- {/* 4. User Identification */}
563
+
579
564
  <react_native_1.View style={styles.section}>
580
565
  <react_native_1.View style={styles.sectionHeaderRow}>
581
566
  <NetworkIcons_1.UserIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -631,7 +616,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
631
616
  </react_native_1.View>
632
617
  </react_native_1.View>
633
618
 
634
- {/* 5. Source Logger SDK */}
619
+
635
620
  <react_native_1.View style={styles.section}>
636
621
  <react_native_1.View style={styles.sectionHeaderRow}>
637
622
  <NetworkIcons_1.BoltIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -681,7 +666,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
681
666
  </react_native_1.View>
682
667
  </react_native_1.View>
683
668
 
684
- {/* 6. Payload Complexity */}
669
+
685
670
  <react_native_1.View style={styles.section}>
686
671
  <react_native_1.View style={styles.sectionHeaderRow}>
687
672
  <NetworkIcons_1.CodeBracketsIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -709,7 +694,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
709
694
  </react_native_1.View>
710
695
  </react_native_1.View>
711
696
 
712
- {/* 7. Discovered Screens (Dimensions) */}
697
+
713
698
  {uniqueScreens.length > 0 && (<react_native_1.View style={styles.section}>
714
699
  <react_native_1.View style={styles.sectionHeaderRow}>
715
700
  <NetworkIcons_1.PinIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -738,7 +723,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
738
723
  </react_native_1.View>
739
724
  </react_native_1.View>)}
740
725
 
741
- {/* 8. Sort Order */}
726
+
742
727
  <react_native_1.View style={styles.section}>
743
728
  <react_native_1.View style={styles.sectionHeaderRow}>
744
729
  <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.grayTextWeak} size={12}/>
@@ -816,7 +801,7 @@ const AnalyticsFilterModal = ({ visible, onClose, }) => {
816
801
  </react_native_1.View>
817
802
  </react_native_1.ScrollView>
818
803
 
819
- {/* ─── Footer Action Bar (Discard + Apply) ────────────────────────── */}
804
+
820
805
  <react_native_1.View style={styles.footer}>
821
806
  <react_native_1.TouchableOpacity onPress={handleDiscard} style={styles.discardBtn} activeOpacity={0.8}>
822
807
  <react_native_1.Text style={styles.discardBtnText}>Discard</react_native_1.Text>