react-native-inapp-inspector 2.3.5 → 2.3.6

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 +7 -0
  56. package/dist/commonjs/constants/telemetryConfig.js +10 -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 +302 -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 +7 -0
  166. package/dist/esm/constants/telemetryConfig.js +7 -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 +298 -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 +16 -0
  223. package/src/constants/version.ts +1 -1
  224. package/src/helpers/telemetry.ts +341 -0
  225. package/src/index.tsx +15 -1
  226. package/src/types/interfaces.ts +3 -0
@@ -67,7 +67,6 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
67
67
  ? `${entry.byteSize} B`
68
68
  : `${(entry.byteSize / 1024).toFixed(1)} KB`;
69
69
  }, [entry.byteSize]);
70
- // Lazy compute displayed value to avoid layout thrashing on large JSON strings
71
70
  const displayValue = (0, react_1.useMemo)(() => {
72
71
  if (!isExpanded) {
73
72
  if (entry.value.length > 250) {
@@ -87,7 +86,7 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
87
86
  return entry.value;
88
87
  }, [isExpanded, entry.value, entry.type, entry.parsedValue]);
89
88
  return (<react_native_1.View style={styles.entryCard}>
90
- {/* Entry Header: Key name, Type Badge, Size, Actions */}
89
+
91
90
  <react_native_1.View style={styles.entryHeader}>
92
91
  <react_native_1.View style={{ flex: 1, marginRight: 8 }}>
93
92
  <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6, flexWrap: 'wrap' }}>
@@ -106,7 +105,7 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
106
105
  </react_native_1.View>
107
106
  </react_native_1.View>
108
107
 
109
- {/* Actions: Copy, Edit, Delete */}
108
+
110
109
  <react_native_1.View style={styles.entryActions}>
111
110
  <TouchableScale_1.default hitSlop={6} onPress={() => onCopy(entry)} style={styles.entryActionBtn}>
112
111
  <NetworkIcons_1.CopyIcon size={12} color={AppColors_1.AppColors.grayText}/>
@@ -122,7 +121,7 @@ const StorageEntryCard = react_1.default.memo(function StorageEntryCard({ entry,
122
121
  </react_native_1.View>
123
122
  </react_native_1.View>
124
123
 
125
- {/* Entry Value Preview / Viewer */}
124
+
126
125
  <TouchableScale_1.default onPress={() => onToggleExpand(entry.key)} style={styles.valuePreviewBox}>
127
126
  <react_native_1.Text style={styles.valuePreviewText} numberOfLines={isExpanded ? undefined : 3} selectable={isExpanded}>
128
127
  {displayValue}
@@ -141,7 +140,6 @@ exports.StorageTab = react_1.default.memo(() => {
141
140
  const [isLoading, setIsLoading] = (0, react_1.useState)(true);
142
141
  const [search, setSearch] = (0, react_1.useState)('');
143
142
  const [expandedKeys, setExpandedKeys] = (0, react_1.useState)({});
144
- // Modal State for Create / Edit
145
143
  const [modalVisible, setModalVisible] = (0, react_1.useState)(false);
146
144
  const [modalMode, setModalMode] = (0, react_1.useState)('create');
147
145
  const [editKeyName, setEditKeyName] = (0, react_1.useState)('');
@@ -149,7 +147,6 @@ exports.StorageTab = react_1.default.memo(() => {
149
147
  const [editType, setEditType] = (0, react_1.useState)('string');
150
148
  const [jsonError, setJsonError] = (0, react_1.useState)(null);
151
149
  const mmkvInstanceIds = (0, react_1.useMemo)(() => (0, storageInspector_1.getRegisteredMMKVInstanceIds)(), []);
152
- // Fetch entries
153
150
  const loadEntries = (0, react_1.useCallback)(async () => {
154
151
  setIsLoading(true);
155
152
  try {
@@ -168,11 +165,9 @@ exports.StorageTab = react_1.default.memo(() => {
168
165
  const unsubscribe = (0, storageInspector_1.subscribeToStorageChanges)(loadEntries);
169
166
  return unsubscribe;
170
167
  }, [loadEntries]);
171
- // Toggle JSON accordion
172
168
  const toggleExpand = (key) => {
173
169
  setExpandedKeys(prev => ({ ...prev, [key]: !prev[key] }));
174
170
  };
175
- // Open Create Modal
176
171
  const handleOpenCreate = () => {
177
172
  setModalMode('create');
178
173
  setEditKeyName('');
@@ -181,7 +176,6 @@ exports.StorageTab = react_1.default.memo(() => {
181
176
  setJsonError(null);
182
177
  setModalVisible(true);
183
178
  };
184
- // Open Edit Modal
185
179
  const handleOpenEdit = (entry) => {
186
180
  setModalMode('edit');
187
181
  setEditKeyName(entry.key);
@@ -190,7 +184,6 @@ exports.StorageTab = react_1.default.memo(() => {
190
184
  setJsonError(null);
191
185
  setModalVisible(true);
192
186
  };
193
- // Delete single key
194
187
  const handleDeleteKey = (key) => {
195
188
  react_native_1.Alert.alert('Delete Storage Key', `Are you sure you want to permanently delete "${key}" from ${activeDriver === 'asyncStorage' ? 'AsyncStorage' : 'MMKV'}?`, [
196
189
  { text: 'Cancel', style: 'cancel' },
@@ -210,7 +203,6 @@ exports.StorageTab = react_1.default.memo(() => {
210
203
  },
211
204
  ]);
212
205
  };
213
- // Clear all keys
214
206
  const handleClearAll = () => {
215
207
  react_native_1.Alert.alert('Wipe All Storage Keys', `Are you sure you want to clear all ${entries.length} keys in ${activeDriver === 'asyncStorage' ? 'AsyncStorage' : 'MMKV'}? This cannot be undone.`, [
216
208
  { text: 'Cancel', style: 'cancel' },
@@ -227,7 +219,6 @@ exports.StorageTab = react_1.default.memo(() => {
227
219
  },
228
220
  ]);
229
221
  };
230
- // Save Modal (Create / Update)
231
222
  const handleSaveModal = async () => {
232
223
  if (!editKeyName.trim()) {
233
224
  (0, toast_1.showToast)('Key name cannot be empty');
@@ -236,7 +227,6 @@ exports.StorageTab = react_1.default.memo(() => {
236
227
  let finalVal = editValue;
237
228
  if (editType === 'json') {
238
229
  try {
239
- // Validate JSON
240
230
  const parsed = JSON.parse(editValue);
241
231
  finalVal = JSON.stringify(parsed);
242
232
  }
@@ -261,7 +251,6 @@ exports.StorageTab = react_1.default.memo(() => {
261
251
  (0, toast_1.showToast)('Error saving storage key');
262
252
  }
263
253
  };
264
- // Format / Beautify JSON in modal
265
254
  const handleBeautifyJson = () => {
266
255
  try {
267
256
  const parsed = JSON.parse(editValue);
@@ -274,7 +263,6 @@ exports.StorageTab = react_1.default.memo(() => {
274
263
  setJsonError('Cannot format: invalid JSON syntax');
275
264
  }
276
265
  };
277
- // Filter entries
278
266
  const filteredEntries = (0, react_1.useMemo)(() => {
279
267
  if (!search.trim())
280
268
  return entries;
@@ -300,7 +288,7 @@ exports.StorageTab = react_1.default.memo(() => {
300
288
  ? (0, storageInspector_1.isAsyncStorageConnected)()
301
289
  : (0, storageInspector_1.isMMKVConnected)();
302
290
  return (<react_native_1.View style={styles.container}>
303
- {/* ── Driver Sub-Tabs ── */}
291
+
304
292
  <react_native_1.View style={styles.driverTabsWrapper}>
305
293
  <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.driverTabsContainer}>
306
294
  <TouchableScale_1.default onPress={() => setActiveDriver('asyncStorage')} style={[
@@ -339,7 +327,7 @@ exports.StorageTab = react_1.default.memo(() => {
339
327
  </react_native_1.View>)}
340
328
  </TouchableScale_1.default>
341
329
 
342
- {/* MMKV Named Instance Dropdown/Pills */}
330
+
343
331
  {activeDriver === 'mmkv' && mmkvInstanceIds.length > 1 && (<react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 4, marginLeft: 6 }}>
344
332
  {mmkvInstanceIds.map(id => (<TouchableScale_1.default key={id} onPress={() => setActiveMMKVId(id)} style={[
345
333
  styles.instancePill,
@@ -356,7 +344,7 @@ exports.StorageTab = react_1.default.memo(() => {
356
344
  </react_native_1.ScrollView>
357
345
  </react_native_1.View>
358
346
 
359
- {/* ── Search & Actions Bar ── */}
347
+
360
348
  <react_native_1.View style={styles.actionBar}>
361
349
  <react_native_1.View style={styles.searchBar}>
362
350
  <NetworkIcons_1.SearchIcon size={14} color={AppColors_1.AppColors.grayTextWeak}/>
@@ -382,7 +370,7 @@ exports.StorageTab = react_1.default.memo(() => {
382
370
  </react_native_1.View>)}
383
371
  </react_native_1.View>
384
372
 
385
- {/* Action Buttons: Add Key & Refresh */}
373
+
386
374
  <TouchableScale_1.default onPress={handleOpenCreate} style={styles.addKeyBtn} hitSlop={6}>
387
375
  <NetworkIcons_1.PlusIcon size={13} color={AppColors_1.AppColors.white}/>
388
376
  <react_native_1.Text style={styles.addKeyBtnText}>Add</react_native_1.Text>
@@ -397,7 +385,7 @@ exports.StorageTab = react_1.default.memo(() => {
397
385
  </TouchableScale_1.default>)}
398
386
  </react_native_1.View>
399
387
 
400
- {/* ── Stats Strip ── */}
388
+
401
389
  <react_native_1.View style={styles.statsStrip}>
402
390
  <react_native_1.Text style={styles.statsText}>
403
391
  {filteredEntries.length} of {entries.length} Keys • {formattedTotalSize}
@@ -407,7 +395,7 @@ exports.StorageTab = react_1.default.memo(() => {
407
395
  </react_native_1.Text>
408
396
  </react_native_1.View>
409
397
 
410
- {/* ── Storage Entries List ── */}
398
+
411
399
  {isLoading ? (<react_native_1.View style={styles.loadingContainer}>
412
400
  <react_native_1.ActivityIndicator size="small" color={AppColors_1.AppColors.purple}/>
413
401
  <react_native_1.Text style={styles.loadingText}>Loading storage entries...</react_native_1.Text>
@@ -425,7 +413,7 @@ exports.StorageTab = react_1.default.memo(() => {
425
413
  </react_native_1.Text>
426
414
  </react_native_1.View>} ListFooterComponent={<react_native_1.View style={{ height: 60 }}/>}/>)}
427
415
 
428
- {/* ── Create / Edit Key Modal ── */}
416
+
429
417
  <react_native_1.Modal visible={modalVisible} transparent animationType="fade" onRequestClose={() => setModalVisible(false)}>
430
418
  <react_native_1.View style={styles.modalOverlay}>
431
419
  <react_native_1.View style={styles.modalCard}>
@@ -438,7 +426,7 @@ exports.StorageTab = react_1.default.memo(() => {
438
426
  </TouchableScale_1.default>
439
427
  </react_native_1.View>
440
428
 
441
- {/* Key Name Input */}
429
+
442
430
  <react_native_1.View style={styles.inputGroup}>
443
431
  <react_native_1.Text style={styles.inputLabel}>KEY NAME</react_native_1.Text>
444
432
  <react_native_1.TextInput value={editKeyName} onChangeText={setEditKeyName} placeholder="e.g. user_session, auth_token" placeholderTextColor={AppColors_1.AppColors.grayTextWeak} editable={modalMode === 'create'} style={[
@@ -447,7 +435,7 @@ exports.StorageTab = react_1.default.memo(() => {
447
435
  ]} autoCapitalize="none"/>
448
436
  </react_native_1.View>
449
437
 
450
- {/* Type Selector Strip */}
438
+
451
439
  <react_native_1.View style={styles.inputGroup}>
452
440
  <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginBottom: 4 }}>
453
441
  <react_native_1.Text style={styles.inputLabel}>VALUE TYPE</react_native_1.Text>
@@ -476,7 +464,7 @@ exports.StorageTab = react_1.default.memo(() => {
476
464
  </react_native_1.View>
477
465
  </react_native_1.View>
478
466
 
479
- {/* Value Input */}
467
+
480
468
  <react_native_1.View style={styles.inputGroup}>
481
469
  <react_native_1.Text style={styles.inputLabel}>VALUE CONTENT</react_native_1.Text>
482
470
  <react_native_1.TextInput value={editValue} onChangeText={v => {
@@ -493,7 +481,7 @@ exports.StorageTab = react_1.default.memo(() => {
493
481
  {jsonError && (<react_native_1.Text style={styles.errorText}>⚠️ {jsonError}</react_native_1.Text>)}
494
482
  </react_native_1.View>
495
483
 
496
- {/* Modal Actions */}
484
+
497
485
  <react_native_1.View style={styles.modalActions}>
498
486
  <TouchableScale_1.default onPress={() => setModalVisible(false)} style={styles.cancelBtn}>
499
487
  <react_native_1.Text style={styles.cancelBtnText}>Cancel</react_native_1.Text>
@@ -42,7 +42,6 @@ const NetworkIcons_1 = require("../NetworkIcons");
42
42
  const constants_1 = require("../../constants");
43
43
  const helpers_1 = require("../../helpers");
44
44
  const toast_1 = require("../../helpers/toast");
45
- // ─── Crisp SVG Icons ─────────────────────────────────────────────────────────
46
45
  const CopySvg = ({ size = 14, color = '#64748B' }) => (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
47
46
  <react_native_svg_1.Path d="M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2z" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
48
47
  <react_native_svg_1.Path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
@@ -126,12 +125,12 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
126
125
  transform: [{ scale: scaleAnim }],
127
126
  },
128
127
  ]}>
129
- {/* Top-Right Dismiss Button */}
128
+
130
129
  <react_native_1.TouchableOpacity style={styles.topCloseButton} onPress={handleClose} hitSlop={10} activeOpacity={0.7}>
131
130
  <CloseSvg size={13} color="#64748B"/>
132
131
  </react_native_1.TouchableOpacity>
133
132
 
134
- {/* Header section with brand square icon & sparkle */}
133
+
135
134
  <react_native_1.View style={styles.headerSection}>
136
135
  <react_native_1.View style={styles.iconHaloRing}>
137
136
  <BrandSquareIcon_1.BrandSquareIcon size={52}/>
@@ -146,7 +145,7 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
146
145
  </react_native_1.Text>
147
146
  </react_native_1.View>
148
147
 
149
- {/* Version Comparison Card */}
148
+
150
149
  <react_native_1.View style={styles.versionComparisonCard}>
151
150
  <react_native_1.View style={styles.versionColumn}>
152
151
  <react_native_1.Text style={styles.versionLabel}>INSTALLED</react_native_1.Text>
@@ -168,7 +167,7 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
168
167
  </react_native_1.View>
169
168
  </react_native_1.View>
170
169
 
171
- {/* Quick Install Snippet Box */}
170
+
172
171
  <react_native_1.View style={styles.codeSnippetBox}>
173
172
  <react_native_1.View style={styles.codeSnippetHeader}>
174
173
  <react_native_1.Text style={styles.codeSnippetLabel}>UPGRADE COMMAND</react_native_1.Text>
@@ -188,7 +187,7 @@ const UpdateAvailableModal = ({ visible, latestVersion, onClose, }) => {
188
187
  </react_native_1.TouchableOpacity>
189
188
  </react_native_1.View>
190
189
 
191
- {/* Action Buttons */}
190
+
192
191
  <react_native_1.View style={styles.buttonRow}>
193
192
  <react_native_1.TouchableOpacity style={styles.secondaryButton} onPress={handleClose} activeOpacity={0.7}>
194
193
  <react_native_1.Text style={styles.secondaryButtonText}>Later</react_native_1.Text>
@@ -39,17 +39,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importStar(require("react"));
40
40
  const react_native_1 = require("react-native");
41
41
  const i18n_1 = require("../i18n");
42
- // Components
43
42
  const TreeNode_1 = __importDefault(require("./TreeNode"));
44
43
  const SegmentedTabs_1 = __importDefault(require("./SegmentedTabs"));
45
44
  const HighlightText_1 = __importDefault(require("./HighlightText"));
46
45
  const CopyButton_1 = __importDefault(require("./CopyButton"));
47
46
  const NetworkIcons_1 = require("./NetworkIcons");
48
- // Styles
49
47
  const AppColors_1 = require("../styles/AppColors");
50
48
  const AppFonts_1 = require("../styles/AppFonts");
51
49
  const styles_1 = __importDefault(require("../styles"));
52
- // ── Table Row Component with 3-Line Clamp & Show More/Less ───────────────────
53
50
  const JsonTableRow = react_1.default.memo(({ itemKey, val, search, }) => {
54
51
  const [expanded, setExpanded] = (0, react_1.useState)(false);
55
52
  const isObject = val !== null && typeof val === 'object';
@@ -93,7 +90,6 @@ const JsonTableRow = react_1.default.memo(({ itemKey, val, search, }) => {
93
90
  </react_native_1.View>
94
91
  </react_native_1.View>);
95
92
  });
96
- // ── JsonViewer Component ─────────────────────────────────────────────────────
97
93
  const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpandDepth = 1, wrap, fullHeight = false, maxHeight, mode: externalMode, onModeChange, hideTabs = false, }) => {
98
94
  const { t } = (0, i18n_1.useTranslation)();
99
95
  const [internalMode, setInternalMode] = (0, react_1.useState)('raw');
@@ -141,12 +137,10 @@ const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpan
141
137
  localStyles.rawScroll,
142
138
  !fullHeight && maxHeight != null && { maxHeight },
143
139
  ];
144
- // Determine type and size details
145
140
  const isObject = typeof data === 'object' && data !== null;
146
141
  const isEmpty = data === null ||
147
142
  data === undefined ||
148
143
  (isObject && Object.keys(data).length === 0);
149
- // Render Table view (Key-Value flat table for root keys)
150
144
  const renderTableMode = () => {
151
145
  if (!isObject) {
152
146
  return (<react_native_1.View style={localStyles.tableRow}>
@@ -168,10 +162,9 @@ const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpan
168
162
  {keys.map((key) => (<JsonTableRow key={key} itemKey={key} val={data[key]} search={search}/>))}
169
163
  </react_native_1.View>);
170
164
  };
171
- // Tree View Content
172
165
  const tree = (<TreeNode_1.default data={data} search={search} forceOpen={forceOpen} defaultExpandDepth={defaultExpandDepth}/>);
173
166
  return (<react_native_1.View style={[localStyles.container, fullHeight && { flex: 1 }]}>
174
- {/* ── Top Toolbar (Postman-style) ── */}
167
+
175
168
  {!hideTabs && (<react_native_1.View style={localStyles.toolbar}>
176
169
  <SegmentedTabs_1.default tabs={[
177
170
  {
@@ -193,7 +186,7 @@ const JsonViewer = react_1.default.memo(({ data, search, forceOpen, defaultExpan
193
186
  <CopyButton_1.default value={data} label="JSON"/>
194
187
  </react_native_1.View>)}
195
188
 
196
- {/* ── Main View Content Area (Royal Monospace Theme) ── */}
189
+
197
190
  <react_native_1.View style={contentWrapperStyle}>
198
191
  {mode === 'pretty' && (isEmpty ? (<react_native_1.View style={localStyles.emptyTable}>
199
192
  <react_native_1.Text style={localStyles.emptyTableText}>
@@ -276,7 +269,7 @@ const localStyles = react_native_1.StyleSheet.create({
276
269
  },
277
270
  rawScroll: {
278
271
  flex: 1,
279
- backgroundColor: AppColors_1.AppColors.paperBg, // Royal off-white paper tone
272
+ backgroundColor: AppColors_1.AppColors.paperBg,
280
273
  },
281
274
  rawContainer: {
282
275
  padding: 12,
@@ -123,7 +123,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
123
123
  },
124
124
  ]}>
125
125
  <react_native_1.View style={styles_1.default.cardBody}>
126
- {/* Row 1: Header (Checkbox, Serial, Method Badge, Client Tag, Status Pill) */}
126
+
127
127
  <react_native_1.View style={styles_1.default.cardHeaderRow}>
128
128
  <react_native_1.View style={styles_1.default.cardHeaderLeft}>
129
129
  <react_native_1.Pressable onPress={() => onToggleSelect(item.id)} hitSlop={12} style={[
@@ -183,7 +183,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
183
183
  </react_native_1.Text>
184
184
  </react_native_1.View>)}
185
185
 
186
- {/* Protocol / HTTPS Badge */}
186
+
187
187
  <react_native_1.View style={[
188
188
  styles_1.default.chip,
189
189
  {
@@ -212,7 +212,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
212
212
  </react_native_1.Text>
213
213
  </react_native_1.View>
214
214
 
215
- {/* GraphQL Indicator */}
215
+
216
216
  {(item.url.toLowerCase().includes('graphql') ||
217
217
  item.client === 'apollo' ||
218
218
  item.client === 'graphql') && (<react_native_1.View style={[
@@ -237,7 +237,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
237
237
  </react_native_1.Text>
238
238
  </react_native_1.View>)}
239
239
 
240
- {/* In-Line Duration / Latency Pill */}
240
+
241
241
  {item.duration != null && !isFailed && (<react_native_1.View style={[
242
242
  styles_1.default.chip,
243
243
  {
@@ -299,7 +299,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
299
299
  </react_native_1.View>
300
300
  </react_native_1.View>
301
301
 
302
- {/* Row 2: Full URL Capsule Container (Clickable with link prompt) */}
302
+
303
303
  <react_native_1.View style={styles_1.default.cardSlugBox}>
304
304
  <react_native_1.Pressable onPress={handleOpenUrl} style={styles_1.default.slugLeft} hitSlop={6}>
305
305
  <react_native_1.View style={{
@@ -346,7 +346,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
346
346
  </react_native_1.View>
347
347
  </react_native_1.View>
348
348
 
349
- {/* Row 3: Footer (Timestamp on Left, Response Size & Duration on Right) */}
349
+
350
350
  <react_native_1.View style={styles_1.default.cardFooterRow}>
351
351
  <react_native_1.View style={styles_1.default.cardDateRow}>
352
352
  <NetworkIcons_1.CalendarIcon color={AppColors_1.AppColors.grayTextWeak} size={10}/>
@@ -385,7 +385,7 @@ const LogCard = react_1.default.memo(function LogCard({ item, onPress, timelineM
385
385
  </react_native_1.View>
386
386
  </react_native_1.View>
387
387
 
388
- {/* Mini Latency Timing Waterfall Bar */}
388
+
389
389
  {typeof item.duration === 'number' && item.duration > 0 && !isFailed && (<react_native_1.View style={{ marginTop: 6, gap: 2 }}>
390
390
  <react_native_1.View style={{
391
391
  height: 2.5,
@@ -39,18 +39,12 @@ 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
- // Constants
43
42
  const constants_1 = require("../constants");
44
- // Custom Hooks
45
43
  const useAccordion_1 = __importDefault(require("../customHooks/useAccordion"));
46
- // Helpers
47
44
  const helpers_1 = require("../helpers");
48
- // Assets
49
45
  const NetworkIcons_1 = require("./NetworkIcons");
50
- // Components
51
46
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
52
47
  const CopyButton_1 = __importDefault(require("./CopyButton"));
53
- // Stylesheet
54
48
  const AppColors_1 = require("../styles/AppColors");
55
49
  const AppFonts_1 = require("../styles/AppFonts");
56
50
  const styles_1 = __importDefault(require("../styles"));
@@ -221,7 +215,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
221
215
  </react_native_1.View>
222
216
  </react_native_1.View>
223
217
 
224
- {/* Visual Latency Timing Breakdown Waterfall */}
218
+
225
219
  {duration != null && !isFailed && (<react_native_1.View style={{ paddingVertical: 8, gap: 6 }}>
226
220
  <react_native_1.View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
227
221
  <react_native_1.Text style={{ fontFamily: AppFonts_1.AppFonts.interBold, fontSize: 11, color: AppColors_1.AppColors.primaryBlack }}>
@@ -41,7 +41,6 @@ exports.DiagnosticsIcon = exports.StackTraceIcon = exports.LayoutIcon = exports.
41
41
  exports.PlusIcon = exports.PencilIcon = exports.DatabaseIcon = exports.ShieldCheckIcon = exports.WifiIcon = exports.CpuIcon = exports.ChevronDownIcon = exports.ResetIcon = exports.NpmIcon = exports.TagIcon = exports.BugIcon = exports.AlertTriangleIcon = exports.SmartphoneIcon = exports.KeyIcon = exports.BarChartIcon = exports.DiceIcon = exports.ZapIcon = exports.FlaskIcon = exports.LoadingSpinnerIcon = exports.ListenerIcon = exports.AllFramesIcon = exports.AppFramesIcon = exports.RawJsonIcon = exports.TrailIcon = void 0;
42
42
  const react_1 = __importDefault(require("react"));
43
43
  const react_native_svg_1 = __importStar(require("react-native-svg"));
44
- // Stylesheet
45
44
  const AppColors_1 = require("../styles/AppColors");
46
45
  const EmptyRadarIcon = ({ color = AppColors_1.AppColors.purple, size = 32 }) => {
47
46
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
@@ -281,19 +280,19 @@ const InsightsIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14, }
281
280
  exports.InsightsIcon = InsightsIcon;
282
281
  const DebugIcon = ({ color = AppColors_1.AppColors.white, size = 18 }) => {
283
282
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
284
- {/* Hammer: diagonal from bottom-left to top-right */}
285
- {/* Handle */}
283
+
284
+
286
285
  <react_native_svg_1.Path d="M6 18l8-8" stroke={color} strokeWidth="2.5" strokeLinecap="round"/>
287
- {/* Head */}
286
+
288
287
  <react_native_svg_1.Path d="M13.5 10.5l2-2 1.5 1.5-2 2-1.5-1.5z" fill={color}/>
289
288
  <react_native_svg_1.Path d="M15.5 8.5L19 5c.5-.5 1.2-.5 1.7 0s.5 1.2 0 1.7L17.2 10.2" stroke={color} strokeWidth="2" strokeLinecap="round"/>
290
289
 
291
- {/* Screwdriver: diagonal from bottom-right to top-left */}
292
- {/* Handle */}
290
+
291
+
293
292
  <react_native_svg_1.Path d="M15 15l4 4" stroke={color} strokeWidth="3.5" strokeLinecap="round"/>
294
- {/* Shaft */}
293
+
295
294
  <react_native_svg_1.Path d="M15 15L8.5 8.5" stroke={color} strokeWidth="2" strokeLinecap="round"/>
296
- {/* Flat tip */}
295
+
297
296
  <react_native_svg_1.Path d="M9 9L5 5M4.5 6.5l2-2" stroke={color} strokeWidth="2" strokeLinecap="round"/>
298
297
  </react_native_svg_1.default>);
299
298
  };
@@ -354,21 +353,19 @@ const FolderIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14, })
354
353
  </react_native_svg_1.default>);
355
354
  };
356
355
  exports.FolderIcon = FolderIcon;
357
- // #3 — Broom/sweep "wipe" icon used by the header Clear-Everything button.
358
356
  const WipeIcon = ({ color = AppColors_1.AppColors.white, size = 16 }) => {
359
357
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
360
- {/* Handle */}
358
+
361
359
  <react_native_svg_1.Path d="M19.5 3.5L12.7 10.3" stroke={color} strokeWidth="2" strokeLinecap="round"/>
362
- {/* Brush head */}
360
+
363
361
  <react_native_svg_1.Path d="M13.5 9.5l1.5 1.5c.8.8.8 2 0 2.8L10 19l-5-5 5.2-5.5c.8-.8 2-.8 2.8 0z" stroke={color} strokeWidth="2" strokeLinejoin="round"/>
364
- {/* Bristle strokes */}
362
+
365
363
  <react_native_svg_1.Path d="M7.5 16.5L5.5 18.5M10 19l-1.5 1.5" stroke={color} strokeWidth="2" strokeLinecap="round"/>
366
- {/* Dust sparks */}
364
+
367
365
  <react_native_svg_1.Path d="M3 11.5h.01M5.5 8.5h.01" stroke={color} strokeWidth="2.4" strokeLinecap="round"/>
368
366
  </react_native_svg_1.default>);
369
367
  };
370
368
  exports.WipeIcon = WipeIcon;
371
- // #7 — Icons for the inner filter chips / sub tabs.
372
369
  const LayersIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 12, }) => {
373
370
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
374
371
  <react_native_svg_1.Path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
@@ -524,7 +521,6 @@ const PerformanceIcon = ({ color = AppColors_1.AppColors.purple, size = 14, }) =
524
521
  </react_native_svg_1.default>);
525
522
  };
526
523
  exports.PerformanceIcon = PerformanceIcon;
527
- // ─── App-wide Vector Icons (emoji-free, render on every device) ─────────────
528
524
  const BoltIcon = ({ color = AppColors_1.AppColors.amber500, size = 14 }) => {
529
525
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
530
526
  <react_native_svg_1.Path d="M13 2 4.5 13.5 H10.5 L9 22 19.5 9.5 H13.5 Z" stroke={color} strokeWidth="1.8" strokeLinejoin="round"/>
@@ -703,7 +699,7 @@ const UserCheckIcon = ({ color = AppColors_1.AppColors.grayTextWeak, size = 14,
703
699
  exports.UserCheckIcon = UserCheckIcon;
704
700
  const CrashIcon = ({ color = AppColors_1.AppColors.errorColor, size = 14, }) => {
705
701
  return (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
706
- {/* Bug / Crash Hybrid Icon */}
702
+
707
703
  <react_native_svg_1.Path d="M12 2v3M4.93 4.93l2.12 2.12M19.07 4.93l-2.12 2.12M9 10h6M8 14h8M9 18h6" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
708
704
  <react_native_svg_1.Path d="M12 8a6 6 0 0 1 6 6v3a6 6 0 0 1-12 0v-3a6 6 0 0 1 6-6z" stroke={color} strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"/>
709
705
  <react_native_svg_1.Path d="M3 13h3M18 13h3M4 19l2.5-1.5M20 19l-2.5-1.5M4 9l2.5 1.5M20 9l-2.5 1.5" stroke={color} strokeWidth="1.8" strokeLinecap="round"/>
@@ -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
- // Components
44
42
  const CopyButton_1 = __importDefault(require("./CopyButton"));
45
43
  const TouchableScale_1 = __importDefault(require("./TouchableScale"));
46
- // Assets
47
44
  const NetworkIcons_1 = require("./NetworkIcons");
48
- // Stylesheet
49
45
  const styles_1 = __importDefault(require("../styles"));
50
46
  const SectionHeader = ({ title, value, expanded, onToggleExpand, showDiff, isDiffing, onToggleDiff, showSearch, isSearching, onToggleSearch, }) => {
51
47
  const isOpen = expanded === undefined ? false : !!expanded;
@@ -56,7 +56,7 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
56
56
  return () => animation.stop();
57
57
  }, [shimmerAnim]);
58
58
  return (<react_native_1.View style={skeletonStyles.container}>
59
- {/* ─── Search & Scope Toolbar Skeleton ─── */}
59
+
60
60
  <react_native_1.View style={skeletonStyles.toolbarSkeleton}>
61
61
  <react_native_1.Animated.View style={[
62
62
  skeletonStyles.searchBarSkeleton,
@@ -68,7 +68,7 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
68
68
  </react_native_1.View>
69
69
  </react_native_1.View>
70
70
 
71
- {/* ─── Quick Filter Chips Skeleton Strip ─── */}
71
+
72
72
  <react_native_1.View style={skeletonStyles.chipStripSkeleton}>
73
73
  <react_native_1.Animated.View style={[skeletonStyles.chipSkeleton, { width: 48, opacity: shimmerAnim }]}/>
74
74
  <react_native_1.Animated.View style={[skeletonStyles.chipSkeleton, { width: 68, opacity: shimmerAnim }]}/>
@@ -76,9 +76,9 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
76
76
  <react_native_1.Animated.View style={[skeletonStyles.chipSkeleton, { width: 58, opacity: shimmerAnim }]}/>
77
77
  </react_native_1.View>
78
78
 
79
- {/* ─── List Cards Skeleton ─── */}
79
+
80
80
  {Array.from({ length: cardCount }).map((_, i) => (<react_native_1.Animated.View key={`skeleton_card_${i}`} style={[skeletonStyles.cardSkeleton, { opacity: shimmerAnim }]}>
81
- {/* Top row: Status pill + Method + Time */}
81
+
82
82
  <react_native_1.View style={skeletonStyles.cardTopRow}>
83
83
  <react_native_1.View style={skeletonStyles.badgeGroup}>
84
84
  <react_native_1.View style={skeletonStyles.statusBadgeSkeleton}/>
@@ -87,11 +87,11 @@ exports.SkeletonPlaceholder = react_1.default.memo(function SkeletonPlaceholder(
87
87
  <react_native_1.View style={skeletonStyles.timeSkeleton}/>
88
88
  </react_native_1.View>
89
89
 
90
- {/* Middle row: URL lines */}
90
+
91
91
  <react_native_1.View style={skeletonStyles.urlLineLong}/>
92
92
  <react_native_1.View style={skeletonStyles.urlLineShort}/>
93
93
 
94
- {/* Bottom row: Latency & Size */}
94
+
95
95
  <react_native_1.View style={skeletonStyles.cardBottomRow}>
96
96
  <react_native_1.View style={skeletonStyles.metaPillSkeleton}/>
97
97
  <react_native_1.View style={skeletonStyles.metaPillSkeleton}/>
@@ -95,7 +95,7 @@ exports.Slider = react_1.default.memo(({ value, onValueChange, min = 50, max = 9
95
95
  };
96
96
  const thumbPosition = percentage * (trackWidth || 0);
97
97
  return (<react_native_1.View style={styles.container}>
98
- {/* Value Display Row */}
98
+
99
99
  <react_native_1.View style={styles.valueRow}>
100
100
  <react_native_1.Text style={styles.rangeText}>{min}%</react_native_1.Text>
101
101
  <react_native_1.View style={[
@@ -107,18 +107,18 @@ exports.Slider = react_1.default.memo(({ value, onValueChange, min = 50, max = 9
107
107
  <react_native_1.Text style={styles.rangeText}>{max}%</react_native_1.Text>
108
108
  </react_native_1.View>
109
109
 
110
- {/* Interactive Track Area */}
110
+
111
111
  <react_native_1.View ref={trackContainerRef} onLayout={handleLayout} {...panResponder.panHandlers} style={styles.touchArea}>
112
- {/* Background Rail */}
112
+
113
113
  <react_native_1.View style={styles.rail}>
114
- {/* Active Filled Bar */}
114
+
115
115
  <react_native_1.View style={[
116
116
  styles.fillBar,
117
117
  { width: `${Math.round(percentage * 100)}%` },
118
118
  ]}/>
119
119
  </react_native_1.View>
120
120
 
121
- {/* Draggable Thumb */}
121
+
122
122
  <react_native_1.View style={[
123
123
  styles.thumb,
124
124
  {
@@ -130,7 +130,7 @@ exports.Slider = react_1.default.memo(({ value, onValueChange, min = 50, max = 9
130
130
  </react_native_1.View>
131
131
  </react_native_1.View>
132
132
 
133
- {/* Quick Presets */}
133
+
134
134
  {quickPresets && quickPresets.length > 0 && (<react_native_1.View style={styles.presetRow}>
135
135
  {quickPresets.map(preset => {
136
136
  const isSelected = Math.round(clampedValue) === preset;
@@ -39,13 +39,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const react_1 = __importDefault(require("react"));
40
40
  const react_native_1 = require("react-native");
41
41
  const react_native_svg_1 = __importStar(require("react-native-svg"));
42
- // Components
43
42
  const CopyButton_1 = __importDefault(require("./CopyButton"));
44
- // Custom Hooks
45
43
  const useAccordion_1 = __importDefault(require("../customHooks/useAccordion"));
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 SourcePageCard = ({ routeInfo }) => {
@@ -38,11 +38,8 @@ 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
- // Helpers
42
41
  const helpers_1 = require("../helpers");
43
- // Assets
44
42
  const NetworkIcons_1 = require("./NetworkIcons");
45
- // Stylesheet
46
43
  const AppColors_1 = require("../styles/AppColors");
47
44
  const styles_1 = __importDefault(require("../styles"));
48
45
  const TreeNode = react_1.default.memo(function TreeNode({ data, name, level = 0, search, forceOpen, defaultExpandDepth = 1, }) {
@@ -60,7 +57,6 @@ const TreeNode = react_1.default.memo(function TreeNode({ data, name, level = 0,
60
57
  }, [forceOpen]);
61
58
  const isObject = typeof data === 'object' && data !== null;
62
59
  const isArray = Array.isArray(data);
63
- // Declare all hooks at the top unconditionally (prevents "Rendered fewer hooks than expected" error)
64
60
  const treeChevronAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(open ? 1 : 0)).current;
65
61
  (0, react_1.useEffect)(() => {
66
62
  react_native_1.Animated.timing(treeChevronAnim, {
@@ -1,7 +1,3 @@
1
- /**
2
- * Sub-module entry point: react-native-inapp-inspector/console
3
- * Clean tree-shaking & isolated console logger.
4
- */
5
1
  export { setupConsoleLogger, clearConsoleLogs, subscribeConsoleLogs, getConsoleLogs, setConsoleModuleEnabled, getConsoleModuleEnabled, setMaxConsoleLogsLimit, getMaxConsoleLogsLimit, pruneConsoleLogs, } from './customHooks/consoleLogger';
6
2
  export type { ConsoleLog, } from './types';
7
3
  export { ConsoleLogType, LogFilter, } from './types';