react-native-inapp-inspector 2.3.8 → 2.3.10

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 (82) hide show
  1. package/dist/commonjs/components/Inspector/AnalyticsTab.js +27 -2
  2. package/dist/commonjs/components/Inspector/BundleTab.js +3 -0
  3. package/dist/commonjs/components/Inspector/ConsoleTab.js +24 -1
  4. package/dist/commonjs/components/Inspector/CrashTab.js +30 -1
  5. package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.d.ts +7 -0
  6. package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +111 -0
  7. package/dist/commonjs/components/Inspector/InspectorHeader.js +225 -108
  8. package/dist/commonjs/components/Inspector/NetworkDetail.js +2 -1
  9. package/dist/commonjs/components/Inspector/NetworkFilterModal.d.ts +19 -0
  10. package/dist/commonjs/components/Inspector/NetworkFilterModal.js +648 -0
  11. package/dist/commonjs/components/Inspector/NetworkTab.js +89 -147
  12. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +1 -1
  13. package/dist/commonjs/components/Inspector/PerformanceTab.js +3 -0
  14. package/dist/commonjs/components/Inspector/ReduxTab.js +24 -1
  15. package/dist/commonjs/components/Inspector/SettingsPanel.js +73 -88
  16. package/dist/commonjs/components/Inspector/StorageTab.js +37 -11
  17. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -0
  18. package/dist/commonjs/components/LogCard.js +35 -26
  19. package/dist/commonjs/components/NetworkIcons.d.ts +1 -0
  20. package/dist/commonjs/components/NetworkIcons.js +6 -1
  21. package/dist/commonjs/constants/index.js +3 -0
  22. package/dist/commonjs/constants/version.d.ts +1 -1
  23. package/dist/commonjs/constants/version.js +1 -1
  24. package/dist/commonjs/helpers/telemetry.js +34 -0
  25. package/dist/commonjs/index.js +3 -0
  26. package/dist/commonjs/styles/index.d.ts +11 -0
  27. package/dist/commonjs/styles/index.js +20 -5
  28. package/dist/commonjs/types/enums.d.ts +3 -0
  29. package/dist/commonjs/types/enums.js +3 -0
  30. package/dist/esm/components/Inspector/AnalyticsTab.js +29 -4
  31. package/dist/esm/components/Inspector/BundleTab.js +3 -0
  32. package/dist/esm/components/Inspector/ConsoleTab.js +26 -3
  33. package/dist/esm/components/Inspector/CrashTab.js +32 -3
  34. package/dist/esm/components/Inspector/FeatureUnderDevNotice.d.ts +7 -0
  35. package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +74 -0
  36. package/dist/esm/components/Inspector/InspectorHeader.js +226 -109
  37. package/dist/esm/components/Inspector/NetworkDetail.js +2 -1
  38. package/dist/esm/components/Inspector/NetworkFilterModal.d.ts +19 -0
  39. package/dist/esm/components/Inspector/NetworkFilterModal.js +607 -0
  40. package/dist/esm/components/Inspector/NetworkTab.js +91 -149
  41. package/dist/esm/components/Inspector/NpmUpdateToast.js +1 -1
  42. package/dist/esm/components/Inspector/PerformanceTab.js +3 -0
  43. package/dist/esm/components/Inspector/ReduxTab.js +26 -3
  44. package/dist/esm/components/Inspector/SettingsPanel.js +73 -88
  45. package/dist/esm/components/Inspector/StorageTab.js +39 -13
  46. package/dist/esm/components/Inspector/UpdateAvailableModal.js +2 -0
  47. package/dist/esm/components/LogCard.js +36 -27
  48. package/dist/esm/components/NetworkIcons.d.ts +1 -0
  49. package/dist/esm/components/NetworkIcons.js +4 -0
  50. package/dist/esm/constants/index.js +3 -0
  51. package/dist/esm/constants/version.d.ts +1 -1
  52. package/dist/esm/constants/version.js +1 -1
  53. package/dist/esm/helpers/telemetry.js +34 -0
  54. package/dist/esm/index.js +3 -0
  55. package/dist/esm/styles/index.d.ts +11 -0
  56. package/dist/esm/styles/index.js +20 -5
  57. package/dist/esm/types/enums.d.ts +3 -0
  58. package/dist/esm/types/enums.js +3 -0
  59. package/package.json +2 -2
  60. package/src/components/Inspector/AnalyticsTab.tsx +71 -43
  61. package/src/components/Inspector/BundleTab.tsx +3 -0
  62. package/src/components/Inspector/ConsoleTab.tsx +28 -1
  63. package/src/components/Inspector/CrashTab.tsx +45 -14
  64. package/src/components/Inspector/FeatureUnderDevNotice.tsx +94 -0
  65. package/src/components/Inspector/InspectorHeader.tsx +257 -115
  66. package/src/components/Inspector/NetworkDetail.tsx +2 -1
  67. package/src/components/Inspector/NetworkFilterModal.tsx +710 -0
  68. package/src/components/Inspector/NetworkTab.tsx +127 -204
  69. package/src/components/Inspector/NpmUpdateToast.tsx +1 -1
  70. package/src/components/Inspector/PerformanceTab.tsx +3 -0
  71. package/src/components/Inspector/ReduxTab.tsx +28 -1
  72. package/src/components/Inspector/SettingsPanel.tsx +93 -132
  73. package/src/components/Inspector/StorageTab.tsx +56 -27
  74. package/src/components/Inspector/UpdateAvailableModal.tsx +2 -0
  75. package/src/components/LogCard.tsx +43 -31
  76. package/src/components/NetworkIcons.tsx +27 -0
  77. package/src/constants/index.ts +3 -0
  78. package/src/constants/version.ts +1 -1
  79. package/src/helpers/telemetry.ts +36 -0
  80. package/src/index.tsx +5 -0
  81. package/src/styles/index.ts +20 -5
  82. package/src/types/enums.ts +3 -0
@@ -53,6 +53,10 @@ const UpdateAvailableModal_1 = require("./UpdateAvailableModal");
53
53
  const NetworkIcons_1 = require("../NetworkIcons");
54
54
  const InspectorHeader = react_1.default.memo(() => {
55
55
  const { modalHeightPercent, appIcon, selected, setSelected, selectedEvent, setSelectedEvent, selectedLog, setSelectedLog, selectedReduxSlice, setSelectedReduxSlice, selectedReduxAction, setSelectedReduxAction, reduxState, reduxLastActionMap, showHeaderInfo, setShowHeaderInfo, updateAvailable, latestNpmVersion, clearAnim, activePulseAnim, unreadPulseAnim, runClearAllWithAnimation, settingsPage, setSettingsPage, resetToDefaults, closeModal, detailTitle, activeTab, environment, visible, selectedCrash, setSelectedCrash, } = (0, InspectorContext_1.useInspector)();
56
+ const { width: windowWidth } = (0, react_native_1.useWindowDimensions)();
57
+ const isNarrow = windowWidth < 360;
58
+ const isCompact = windowWidth < 400;
59
+ const isTablet = windowWidth >= 600;
56
60
  const [showUpdateModal, setShowUpdateModal] = react_1.default.useState(false);
57
61
  const [appVersionString, setAppVersionString] = react_1.default.useState(() => {
58
62
  return (0, helpers_1.getAppVersionAndBuild)().formatted;
@@ -131,16 +135,25 @@ const InspectorHeader = react_1.default.memo(() => {
131
135
  }
132
136
  }, [settingsPage]);
133
137
  const headerTopPadding = react_native_1.Platform.OS === 'ios' && modalHeightPercent >= 95 ? 44 : 0;
138
+ const buttonSize = isNarrow ? 28 : isCompact ? 30 : 32;
139
+ const logoSize = isNarrow ? 36 : isCompact ? 40 : 44;
134
140
  return (<>
135
141
  <react_native_linear_gradient_1.default colors={['#4F46E5', '#7C3AED']} start={{ x: 0, y: 0 }} end={{ x: 1, y: 1 }} style={styles_1.default.headerGradient}>
136
142
  <react_native_1.View style={{ paddingTop: headerTopPadding, width: '100%' }}>
137
- <react_native_1.View style={styles_1.default.header}>
143
+ <react_native_1.View style={[
144
+ styles_1.default.header,
145
+ {
146
+ paddingHorizontal: isNarrow ? 8 : 12,
147
+ paddingVertical: isNarrow ? 6 : 8,
148
+ minHeight: isNarrow ? 48 : 52,
149
+ },
150
+ ]}>
138
151
  <react_native_1.View style={[
139
152
  styles_1.default.headerLeft,
140
153
  {
141
154
  flexDirection: 'row',
142
155
  alignItems: 'center',
143
- gap: 8,
156
+ gap: isNarrow ? 6 : 8,
144
157
  flex: !isDetailView ? 1 : 0,
145
158
  minWidth: 0,
146
159
  },
@@ -165,9 +178,9 @@ const InspectorHeader = react_1.default.memo(() => {
165
178
  });
166
179
  }} hitSlop={15} style={[
167
180
  {
168
- width: 38,
169
- height: 38,
170
- borderRadius: 19,
181
+ width: isNarrow ? 32 : 36,
182
+ height: isNarrow ? 32 : 36,
183
+ borderRadius: isNarrow ? 16 : 18,
171
184
  alignItems: 'center',
172
185
  justifyContent: 'center',
173
186
  backgroundColor: `${AppColors_1.AppColors.white}2E`,
@@ -176,12 +189,11 @@ const InspectorHeader = react_1.default.memo(() => {
176
189
  },
177
190
  !isAnySelected && { display: 'none' },
178
191
  ]}>
179
-
180
192
  <react_native_1.View style={{
181
193
  position: 'absolute',
182
- width: 48,
183
- height: 48,
184
- borderRadius: 24,
194
+ width: isNarrow ? 40 : 44,
195
+ height: isNarrow ? 40 : 44,
196
+ borderRadius: 22,
185
197
  backgroundColor: `${AppColors_1.AppColors.white}1A`,
186
198
  }}/>
187
199
  <NetworkIcons_1.WhiteBackNavigation />
@@ -191,7 +203,7 @@ const InspectorHeader = react_1.default.memo(() => {
191
203
  <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
192
204
  <react_native_1.Text style={{
193
205
  fontFamily: AppFonts_1.AppFonts.interBold,
194
- fontSize: 16,
206
+ fontSize: isNarrow ? 14 : 16,
195
207
  color: AppColors_1.AppColors.white,
196
208
  letterSpacing: -0.2,
197
209
  }} numberOfLines={1}>
@@ -199,7 +211,7 @@ const InspectorHeader = react_1.default.memo(() => {
199
211
  </react_native_1.Text>
200
212
  {settingsPage === 'main' && (<react_native_1.View style={{
201
213
  backgroundColor: `${AppColors_1.AppColors.white}26`,
202
- paddingHorizontal: 6,
214
+ paddingHorizontal: isNarrow ? 4 : 6,
203
215
  paddingVertical: 1.5,
204
216
  borderRadius: 10,
205
217
  borderWidth: 1,
@@ -207,7 +219,7 @@ const InspectorHeader = react_1.default.memo(() => {
207
219
  }}>
208
220
  <react_native_1.Text style={{
209
221
  fontFamily: AppFonts_1.AppFonts.interBold,
210
- fontSize: 9,
222
+ fontSize: isNarrow ? 8 : 9,
211
223
  color: AppColors_1.AppColors.white,
212
224
  }}>
213
225
  v{constants_2.LIB_VERSION}
@@ -216,7 +228,7 @@ const InspectorHeader = react_1.default.memo(() => {
216
228
  </react_native_1.View>
217
229
  <react_native_1.Text style={{
218
230
  fontFamily: AppFonts_1.AppFonts.interRegular,
219
- fontSize: 10.5,
231
+ fontSize: isNarrow ? 9.5 : 10.5,
220
232
  color: `${AppColors_1.AppColors.white}CC`,
221
233
  }} numberOfLines={1}>
222
234
  {settingsPage === 'main'
@@ -226,20 +238,27 @@ const InspectorHeader = react_1.default.memo(() => {
226
238
  </react_native_1.View>) : !isAnySelected ? (<react_native_1.View style={{
227
239
  flexDirection: 'row',
228
240
  alignItems: 'center',
229
- gap: 8,
241
+ gap: isNarrow ? 6 : 8,
230
242
  flex: 1,
231
243
  minWidth: 0,
232
- marginRight: 6,
244
+ marginRight: 4,
233
245
  }}>
234
- <AppHeaderLogo_1.default size={46} customIcon={appIcon}/>
235
- <react_native_1.View style={{ gap: 2.5, flex: 1, minWidth: 0 }}>
246
+ <AppHeaderLogo_1.default size={logoSize} customIcon={appIcon}/>
247
+ <react_native_1.View style={{ gap: 2, flex: 1, minWidth: 0 }}>
236
248
  <react_native_1.View style={{
237
249
  flexDirection: 'row',
238
250
  alignItems: 'center',
239
- gap: 6,
251
+ gap: isNarrow ? 4 : 6,
240
252
  minWidth: 0,
241
253
  }}>
242
- <react_native_1.Text style={[styles_1.default.headerTitle, { flexShrink: 1 }]} numberOfLines={1} ellipsizeMode="tail">
254
+ <react_native_1.Text style={[
255
+ styles_1.default.headerTitle,
256
+ {
257
+ fontSize: isNarrow ? 13.5 : isCompact ? 14.5 : 15.5,
258
+ flexShrink: 1,
259
+ paddingBottom: 0,
260
+ },
261
+ ]} numberOfLines={1} ellipsizeMode="tail">
243
262
  {(0, helpers_1.getAppName)()}
244
263
  </react_native_1.Text>
245
264
  <react_native_1.View style={[
@@ -248,11 +267,18 @@ const InspectorHeader = react_1.default.memo(() => {
248
267
  backgroundColor: envConfig.bg,
249
268
  borderColor: envConfig.border,
250
269
  flexShrink: 0,
270
+ paddingHorizontal: isNarrow ? 4.5 : 6,
251
271
  paddingVertical: 1.5,
252
272
  marginBottom: 0,
253
273
  },
254
274
  ]}>
255
- <react_native_1.Text style={[styles_1.default.envBadgeText, { color: envConfig.text }]}>
275
+ <react_native_1.Text style={[
276
+ styles_1.default.envBadgeText,
277
+ {
278
+ color: envConfig.text,
279
+ fontSize: isNarrow ? 8.5 : 9.5,
280
+ },
281
+ ]}>
256
282
  {envConfig.label}
257
283
  </react_native_1.Text>
258
284
  </react_native_1.View>
@@ -261,9 +287,9 @@ const InspectorHeader = react_1.default.memo(() => {
261
287
  alignItems: 'center',
262
288
  backgroundColor: '#F59E0B',
263
289
  borderRadius: 5,
264
- paddingHorizontal: 5.5,
290
+ paddingHorizontal: isNarrow ? 4 : 5.5,
265
291
  paddingVertical: 1.5,
266
- gap: 3.5,
292
+ gap: 3,
267
293
  shadowColor: '#F59E0B',
268
294
  shadowOffset: { width: 0, height: 1.5 },
269
295
  shadowOpacity: 0.35,
@@ -279,15 +305,15 @@ const InspectorHeader = react_1.default.memo(() => {
279
305
  opacity: activePulseAnim,
280
306
  transform: [{ scale: unreadPulseAnim }],
281
307
  }}/>
282
- <react_native_1.Text style={{
283
- fontFamily: AppFonts_1.AppFonts.interBold,
284
- fontSize: 9,
285
- color: '#FFFFFF',
286
- letterSpacing: 0.3,
287
- }}>
288
- UPDATE
289
- </react_native_1.Text>
290
- <NetworkIcons_1.BoltIcon size={9} color="#FFFFFF"/>
308
+ {!isNarrow && (<react_native_1.Text style={{
309
+ fontFamily: AppFonts_1.AppFonts.interBold,
310
+ fontSize: 8.5,
311
+ color: '#FFFFFF',
312
+ letterSpacing: 0.3,
313
+ }}>
314
+ UPDATE
315
+ </react_native_1.Text>)}
316
+ <NetworkIcons_1.BoltIcon size={isNarrow ? 8 : 9} color="#FFFFFF"/>
291
317
  </react_native_1.Pressable>)}
292
318
  </react_native_1.View>
293
319
 
@@ -295,7 +321,7 @@ const InspectorHeader = react_1.default.memo(() => {
295
321
  <react_native_1.View style={{
296
322
  flexDirection: 'row',
297
323
  alignItems: 'center',
298
- gap: 5,
324
+ gap: isNarrow ? 4 : 5,
299
325
  minWidth: 0,
300
326
  }}>
301
327
  <react_native_1.View style={{
@@ -303,20 +329,21 @@ const InspectorHeader = react_1.default.memo(() => {
303
329
  alignItems: 'center',
304
330
  backgroundColor: `${AppColors_1.AppColors.white}1F`,
305
331
  borderRadius: 5,
306
- paddingHorizontal: 6,
332
+ paddingHorizontal: isNarrow ? 4.5 : 6,
307
333
  paddingVertical: 2,
308
- gap: 4,
334
+ gap: 3.5,
309
335
  borderWidth: 1,
310
336
  borderColor: `${AppColors_1.AppColors.white}2E`,
311
- flexShrink: 0,
337
+ flexShrink: 1,
338
+ minWidth: 0,
312
339
  }}>
313
- {react_native_1.Platform.OS === 'ios' ? (<NetworkIcons_1.AppleIcon color={`${AppColors_1.AppColors.white}E6`} size={10}/>) : (<NetworkIcons_1.AndroidIcon color={`${AppColors_1.AppColors.white}E6`} size={10}/>)}
340
+ {react_native_1.Platform.OS === 'ios' ? (<NetworkIcons_1.AppleIcon color={`${AppColors_1.AppColors.white}E6`} size={isNarrow ? 9 : 10}/>) : (<NetworkIcons_1.AndroidIcon color={`${AppColors_1.AppColors.white}E6`} size={isNarrow ? 9 : 10}/>)}
314
341
  <react_native_1.Text style={{
315
342
  fontFamily: AppFonts_1.AppFonts.interMedium,
316
- fontSize: 9.5,
343
+ fontSize: isNarrow ? 8.5 : 9.5,
317
344
  color: `${AppColors_1.AppColors.white}EB`,
318
345
  letterSpacing: 0.1,
319
- }} numberOfLines={1}>
346
+ }} numberOfLines={1} ellipsizeMode="tail">
320
347
  {appVersionString}
321
348
  </react_native_1.Text>
322
349
  </react_native_1.View>
@@ -333,17 +360,17 @@ const InspectorHeader = react_1.default.memo(() => {
333
360
  alignItems: 'center',
334
361
  backgroundColor: `${AppColors_1.AppColors.white}1F`,
335
362
  borderRadius: 5,
336
- paddingHorizontal: 6,
363
+ paddingHorizontal: isNarrow ? 4.5 : 6,
337
364
  paddingVertical: 2,
338
- gap: 4,
365
+ gap: 3.5,
339
366
  borderWidth: 1,
340
367
  borderColor: `${AppColors_1.AppColors.white}2E`,
341
368
  flexShrink: 0,
342
369
  }}>
343
- <NetworkIcons_1.NpmIcon size={10} color="#FF6B6B"/>
370
+ <NetworkIcons_1.NpmIcon size={isNarrow ? 9 : 10} color="#FF6B6B"/>
344
371
  <react_native_1.Text style={{
345
372
  fontFamily: AppFonts_1.AppFonts.interMedium,
346
- fontSize: 9.5,
373
+ fontSize: isNarrow ? 8.5 : 9.5,
347
374
  color: `${AppColors_1.AppColors.white}EB`,
348
375
  letterSpacing: 0.1,
349
376
  }} numberOfLines={1}>
@@ -351,7 +378,7 @@ const InspectorHeader = react_1.default.memo(() => {
351
378
  </react_native_1.Text>
352
379
  {updateAvailable && (<react_native_1.Text style={{
353
380
  fontFamily: AppFonts_1.AppFonts.interBold,
354
- fontSize: 9,
381
+ fontSize: 8.5,
355
382
  color: '#F59E0B',
356
383
  }}>
357
384
 
@@ -362,7 +389,7 @@ const InspectorHeader = react_1.default.memo(() => {
362
389
  </react_native_1.View>) : null}
363
390
  </react_native_1.View>
364
391
 
365
- {isDetailView && (<react_native_1.View style={styles_1.default.headerCenter}>
392
+ {isDetailView && (<react_native_1.View style={[styles_1.default.headerCenter, { paddingHorizontal: isNarrow ? 2 : 6 }]}>
366
393
  {activeTab === 'apis' && selected != null ? (<react_native_1.View style={styles_1.default.headerDetailCenter}>
367
394
  <react_native_1.View style={styles_1.default.headerDetailRow}>
368
395
  <react_native_1.View style={[
@@ -370,23 +397,31 @@ const InspectorHeader = react_1.default.memo(() => {
370
397
  {
371
398
  backgroundColor: constants_1.METHOD_COLORS[selected.method] ??
372
399
  AppColors_1.AppColors.grayText,
400
+ paddingHorizontal: isNarrow ? 5 : 6,
401
+ paddingVertical: isNarrow ? 2 : 3,
373
402
  },
374
403
  ]}>
375
- <react_native_1.Text style={styles_1.default.headerMethodText}>
404
+ <react_native_1.Text style={[styles_1.default.headerMethodText, { fontSize: isNarrow ? 9 : 10 }]}>
376
405
  {selected.method}
377
406
  </react_native_1.Text>
378
407
  </react_native_1.View>
379
- <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
408
+ <react_native_1.Text style={[styles_1.default.headerDetailTitle, { fontSize: isNarrow ? 13.5 : 15 }]} numberOfLines={1} ellipsizeMode="middle">
380
409
  {detailTitle}
381
410
  </react_native_1.Text>
382
411
  </react_native_1.View>
383
- <react_native_1.View style={styles_1.default.headerDetailSubRow}>
412
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
413
+ flexDirection: 'row',
414
+ alignItems: 'center',
415
+ gap: isNarrow ? 4 : 6,
416
+ marginTop: 3,
417
+ paddingVertical: 1,
418
+ }}>
384
419
  <react_native_1.View style={{
385
420
  flexDirection: 'row',
386
421
  alignItems: 'center',
387
- gap: 5,
388
- paddingHorizontal: 8,
389
- paddingVertical: 3,
422
+ gap: 4,
423
+ paddingHorizontal: isNarrow ? 6 : 8,
424
+ paddingVertical: 2.5,
390
425
  borderRadius: 20,
391
426
  backgroundColor: `${(0, helpers_1.getStatusColor)(selected.status)}26`,
392
427
  borderWidth: 1,
@@ -396,11 +431,13 @@ const InspectorHeader = react_1.default.memo(() => {
396
431
  styles_1.default.headerStatusDot,
397
432
  {
398
433
  backgroundColor: (0, helpers_1.getStatusColor)(selected.status),
434
+ width: isNarrow ? 6 : 7,
435
+ height: isNarrow ? 6 : 7,
399
436
  },
400
437
  ]}/>
401
438
  <react_native_1.Text style={[
402
439
  styles_1.default.headerSubTitle,
403
- { fontFamily: AppFonts_1.AppFonts.interBold },
440
+ { fontFamily: AppFonts_1.AppFonts.interBold, fontSize: isNarrow ? 10 : 11 },
404
441
  ]}>
405
442
  {selected.status === 0
406
443
  ? 'Failed'
@@ -411,13 +448,13 @@ const InspectorHeader = react_1.default.memo(() => {
411
448
  flexDirection: 'row',
412
449
  alignItems: 'center',
413
450
  gap: 4,
414
- paddingHorizontal: 8,
415
- paddingVertical: 3,
451
+ paddingHorizontal: isNarrow ? 6 : 8,
452
+ paddingVertical: 2.5,
416
453
  borderRadius: 20,
417
454
  backgroundColor: `${AppColors_1.AppColors.white}29`,
418
455
  }}>
419
- <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white} size={11}/>
420
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
456
+ <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white} size={isNarrow ? 10 : 11}/>
457
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
421
458
  {selected.duration != null
422
459
  ? `${selected.duration}ms`
423
460
  : '—'}
@@ -427,17 +464,17 @@ const InspectorHeader = react_1.default.memo(() => {
427
464
  flexDirection: 'row',
428
465
  alignItems: 'center',
429
466
  gap: 4,
430
- paddingHorizontal: 8,
431
- paddingVertical: 3,
467
+ paddingHorizontal: isNarrow ? 6 : 8,
468
+ paddingVertical: 2.5,
432
469
  borderRadius: 20,
433
470
  backgroundColor: `${AppColors_1.AppColors.white}29`,
434
471
  }}>
435
- <NetworkIcons_1.SizeIcon color={AppColors_1.AppColors.white} size={11}/>
436
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
472
+ <NetworkIcons_1.SizeIcon color={AppColors_1.AppColors.white} size={isNarrow ? 10 : 11}/>
473
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
437
474
  {(0, helpers_1.getSize)(selected.response)}
438
475
  </react_native_1.Text>
439
476
  </react_native_1.View>)}
440
- </react_native_1.View>
477
+ </react_native_1.ScrollView>
441
478
  </react_native_1.View>) : activeTab === 'analytics' && selectedEvent != null ? (<react_native_1.View style={styles_1.default.headerDetailCenter}>
442
479
  <react_native_1.View style={styles_1.default.headerDetailRow}>
443
480
  <react_native_1.View style={[
@@ -446,26 +483,36 @@ const InspectorHeader = react_1.default.memo(() => {
446
483
  backgroundColor: selectedEvent.source === 'firebase'
447
484
  ? `${AppColors_1.AppColors.firebaseOrange}4D`
448
485
  : `${AppColors_1.AppColors.purple}4D`,
486
+ paddingHorizontal: isNarrow ? 5 : 6,
487
+ paddingVertical: isNarrow ? 2 : 3,
449
488
  },
450
489
  ]}>
451
- <react_native_1.Text style={styles_1.default.headerMethodText}>
490
+ <react_native_1.Text style={[styles_1.default.headerMethodText, { fontSize: isNarrow ? 9 : 10 }]}>
452
491
  {selectedEvent.source === 'firebase' ? 'FB' : 'MAN'}
453
492
  </react_native_1.Text>
454
493
  </react_native_1.View>
455
- <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
494
+ <react_native_1.Text style={[styles_1.default.headerDetailTitle, { fontSize: isNarrow ? 13.5 : 15 }]} numberOfLines={1} ellipsizeMode="middle">
456
495
  {selectedEvent.name}
457
496
  </react_native_1.Text>
458
497
  </react_native_1.View>
459
- <react_native_1.View style={styles_1.default.headerDetailSubRow}>
498
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
499
+ flexDirection: 'row',
500
+ alignItems: 'center',
501
+ gap: isNarrow ? 4 : 6,
502
+ marginTop: 3,
503
+ paddingVertical: 1,
504
+ }}>
460
505
  <react_native_1.View style={[
461
506
  styles_1.default.headerStatusDot,
462
507
  {
463
508
  backgroundColor: selectedEvent.source === 'firebase'
464
509
  ? AppColors_1.AppColors.firebaseOrange
465
510
  : AppColors_1.AppColors.purple,
511
+ width: isNarrow ? 6 : 7,
512
+ height: isNarrow ? 6 : 7,
466
513
  },
467
514
  ]}/>
468
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
515
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
469
516
  {Object.keys(selectedEvent.params).length} param
470
517
  {Object.keys(selectedEvent.params).length !== 1
471
518
  ? 's'
@@ -473,7 +520,7 @@ const InspectorHeader = react_1.default.memo(() => {
473
520
  {' · '}
474
521
  {selectedEvent.source}
475
522
  </react_native_1.Text>
476
- </react_native_1.View>
523
+ </react_native_1.ScrollView>
477
524
  </react_native_1.View>) : activeTab === 'logs' && selectedLog != null ? (<react_native_1.View style={styles_1.default.headerDetailCenter}>
478
525
  <react_native_1.View style={styles_1.default.headerDetailRow}>
479
526
  <react_native_1.View style={[
@@ -484,33 +531,41 @@ const InspectorHeader = react_1.default.memo(() => {
484
531
  : selectedLog.type === 'warn'
485
532
  ? `${AppColors_1.AppColors.lightOrange}4D`
486
533
  : `${AppColors_1.AppColors.purple}4D`,
534
+ paddingHorizontal: isNarrow ? 5 : 6,
535
+ paddingVertical: isNarrow ? 2 : 3,
487
536
  },
488
537
  ]}>
489
- <react_native_1.Text style={styles_1.default.headerMethodText}>
538
+ <react_native_1.Text style={[styles_1.default.headerMethodText, { fontSize: isNarrow ? 9 : 10 }]}>
490
539
  {selectedLog.type.toUpperCase()}
491
540
  </react_native_1.Text>
492
541
  </react_native_1.View>
493
- <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
542
+ <react_native_1.Text style={[styles_1.default.headerDetailTitle, { fontSize: isNarrow ? 13.5 : 15 }]} numberOfLines={1} ellipsizeMode="middle">
494
543
  console.
495
544
  {selectedLog.sourceMethod || selectedLog.type || 'log'}
496
545
  </react_native_1.Text>
497
546
  </react_native_1.View>
498
- <react_native_1.View style={styles_1.default.headerDetailSubRow}>
547
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
548
+ flexDirection: 'row',
549
+ alignItems: 'center',
550
+ gap: isNarrow ? 4 : 6,
551
+ marginTop: 3,
552
+ paddingVertical: 1,
553
+ }}>
499
554
  <react_native_1.View style={{
500
555
  flexDirection: 'row',
501
556
  alignItems: 'center',
502
557
  gap: 4,
503
- paddingHorizontal: 8,
504
- paddingVertical: 3,
558
+ paddingHorizontal: isNarrow ? 6 : 8,
559
+ paddingVertical: 2.5,
505
560
  borderRadius: 20,
506
561
  backgroundColor: `${AppColors_1.AppColors.white}29`,
507
562
  }}>
508
- <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white} size={11}/>
509
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
563
+ <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white} size={isNarrow ? 10 : 11}/>
564
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
510
565
  {(0, helpers_1.formatTime)(selectedLog.timestamp)}
511
566
  </react_native_1.Text>
512
567
  </react_native_1.View>
513
- </react_native_1.View>
568
+ </react_native_1.ScrollView>
514
569
  </react_native_1.View>) : activeTab === 'redux' && selectedReduxSlice != null ? ((() => {
515
570
  const sliceData = reduxState?.[selectedReduxSlice];
516
571
  const keyCount = sliceData && typeof sliceData === 'object'
@@ -526,32 +581,44 @@ const InspectorHeader = react_1.default.memo(() => {
526
581
  styles_1.default.headerMethodBadge,
527
582
  {
528
583
  backgroundColor: `${AppColors_1.AppColors.purple}4D`,
584
+ paddingHorizontal: isNarrow ? 5 : 6,
585
+ paddingVertical: isNarrow ? 2 : 3,
529
586
  },
530
587
  ]}>
531
- <react_native_1.Text style={styles_1.default.headerMethodText}>SLICE</react_native_1.Text>
588
+ <react_native_1.Text style={[styles_1.default.headerMethodText, { fontSize: isNarrow ? 9 : 10 }]}>SLICE</react_native_1.Text>
532
589
  </react_native_1.View>
533
- <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
590
+ <react_native_1.Text style={[styles_1.default.headerDetailTitle, { fontSize: isNarrow ? 13.5 : 15 }]} numberOfLines={1} ellipsizeMode="middle">
534
591
  {selectedReduxSlice}
535
592
  </react_native_1.Text>
536
593
  </react_native_1.View>
537
- <react_native_1.View style={styles_1.default.headerDetailSubRow}>
594
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
595
+ flexDirection: 'row',
596
+ alignItems: 'center',
597
+ gap: isNarrow ? 4 : 6,
598
+ marginTop: 3,
599
+ paddingVertical: 1,
600
+ }}>
538
601
  <react_native_1.View style={[
539
602
  styles_1.default.headerStatusDot,
540
- { backgroundColor: AppColors_1.AppColors.liveGreen },
603
+ {
604
+ backgroundColor: AppColors_1.AppColors.liveGreen,
605
+ width: isNarrow ? 6 : 7,
606
+ height: isNarrow ? 6 : 7,
607
+ },
541
608
  ]}/>
542
- <react_native_1.Text style={styles_1.default.headerSubTitle}>Live</react_native_1.Text>
543
- <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6 }]}>
609
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>Live</react_native_1.Text>
610
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6, fontSize: isNarrow ? 10 : 11 }]}>
544
611
 
545
612
  </react_native_1.Text>
546
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
613
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
547
614
  {keyCount} keys
548
615
  </react_native_1.Text>
549
- <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6 }]}>
616
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6, fontSize: isNarrow ? 10 : 11 }]}>
550
617
 
551
618
  </react_native_1.Text>
552
- <react_native_1.Text style={styles_1.default.headerSubTitle}>{sliceSize}</react_native_1.Text>
619
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>{sliceSize}</react_native_1.Text>
553
620
  {lastAction?.timestamp && (<>
554
- <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6 }]}>
621
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6, fontSize: isNarrow ? 10 : 11 }]}>
555
622
 
556
623
  </react_native_1.Text>
557
624
  <react_native_1.View style={{
@@ -559,13 +626,13 @@ const InspectorHeader = react_1.default.memo(() => {
559
626
  alignItems: 'center',
560
627
  gap: 3,
561
628
  }}>
562
- <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white} size={10}/>
563
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
629
+ <NetworkIcons_1.ClockIcon color={AppColors_1.AppColors.white} size={isNarrow ? 9 : 10}/>
630
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
564
631
  {lastAction.timestamp}
565
632
  </react_native_1.Text>
566
633
  </react_native_1.View>
567
634
  </>)}
568
- </react_native_1.View>
635
+ </react_native_1.ScrollView>
569
636
  </react_native_1.View>);
570
637
  })()) : activeTab === 'redux' && selectedReduxAction != null ? (<react_native_1.View style={styles_1.default.headerDetailCenter}>
571
638
  <react_native_1.View style={styles_1.default.headerDetailRow}>
@@ -573,23 +640,35 @@ const InspectorHeader = react_1.default.memo(() => {
573
640
  styles_1.default.headerMethodBadge,
574
641
  {
575
642
  backgroundColor: `${AppColors_1.AppColors.brandPurple}4D`,
643
+ paddingHorizontal: isNarrow ? 5 : 6,
644
+ paddingVertical: isNarrow ? 2 : 3,
576
645
  },
577
646
  ]}>
578
- <react_native_1.Text style={styles_1.default.headerMethodText}>ACTION</react_native_1.Text>
647
+ <react_native_1.Text style={[styles_1.default.headerMethodText, { fontSize: isNarrow ? 9 : 10 }]}>ACTION</react_native_1.Text>
579
648
  </react_native_1.View>
580
- <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
649
+ <react_native_1.Text style={[styles_1.default.headerDetailTitle, { fontSize: isNarrow ? 13.5 : 15 }]} numberOfLines={1} ellipsizeMode="middle">
581
650
  {selectedReduxAction.type}
582
651
  </react_native_1.Text>
583
652
  </react_native_1.View>
584
- <react_native_1.View style={styles_1.default.headerDetailSubRow}>
653
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
654
+ flexDirection: 'row',
655
+ alignItems: 'center',
656
+ gap: isNarrow ? 4 : 6,
657
+ marginTop: 3,
658
+ paddingVertical: 1,
659
+ }}>
585
660
  <react_native_1.View style={[
586
661
  styles_1.default.headerStatusDot,
587
- { backgroundColor: AppColors_1.AppColors.purple },
662
+ {
663
+ backgroundColor: AppColors_1.AppColors.purple,
664
+ width: isNarrow ? 6 : 7,
665
+ height: isNarrow ? 6 : 7,
666
+ },
588
667
  ]}/>
589
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
668
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
590
669
  {selectedReduxAction.timestamp || 'Dispatched'}
591
670
  </react_native_1.Text>
592
- </react_native_1.View>
671
+ </react_native_1.ScrollView>
593
672
  </react_native_1.View>) : activeTab === 'crash' && selectedCrash != null ? (<react_native_1.View style={styles_1.default.headerDetailCenter}>
594
673
  <react_native_1.View style={styles_1.default.headerDetailRow}>
595
674
  <react_native_1.View style={[
@@ -598,40 +677,50 @@ const InspectorHeader = react_1.default.memo(() => {
598
677
  backgroundColor: selectedCrash.isFatal
599
678
  ? AppColors_1.AppColors.red600
600
679
  : AppColors_1.AppColors.amber600,
680
+ paddingHorizontal: isNarrow ? 5 : 6,
681
+ paddingVertical: isNarrow ? 2 : 3,
601
682
  },
602
683
  ]}>
603
- <react_native_1.Text style={styles_1.default.headerMethodText}>
684
+ <react_native_1.Text style={[styles_1.default.headerMethodText, { fontSize: isNarrow ? 9 : 10 }]}>
604
685
  {selectedCrash.isFatal
605
686
  ? 'FATAL'
606
687
  : selectedCrash.type.toUpperCase()}
607
688
  </react_native_1.Text>
608
689
  </react_native_1.View>
609
- <react_native_1.Text style={styles_1.default.headerDetailTitle} numberOfLines={1} ellipsizeMode="middle">
690
+ <react_native_1.Text style={[styles_1.default.headerDetailTitle, { fontSize: isNarrow ? 13.5 : 15 }]} numberOfLines={1} ellipsizeMode="middle">
610
691
  {selectedCrash.name || selectedCrash.message}
611
692
  </react_native_1.Text>
612
693
  </react_native_1.View>
613
- <react_native_1.View style={styles_1.default.headerDetailSubRow}>
694
+ <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
695
+ flexDirection: 'row',
696
+ alignItems: 'center',
697
+ gap: isNarrow ? 4 : 6,
698
+ marginTop: 3,
699
+ paddingVertical: 1,
700
+ }}>
614
701
  <react_native_1.View style={[
615
702
  styles_1.default.headerStatusDot,
616
703
  {
617
704
  backgroundColor: selectedCrash.isFatal
618
705
  ? AppColors_1.AppColors.red600
619
706
  : AppColors_1.AppColors.amber500,
707
+ width: isNarrow ? 6 : 7,
708
+ height: isNarrow ? 6 : 7,
620
709
  },
621
710
  ]}/>
622
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
711
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
623
712
  {selectedCrash.timeStr ||
624
713
  new Date(selectedCrash.timestamp).toLocaleTimeString()}
625
714
  </react_native_1.Text>
626
715
  {selectedCrash.deviceInfo?.platform && (<>
627
- <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6 }]}>
716
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { opacity: 0.6, fontSize: isNarrow ? 10 : 11 }]}>
628
717
 
629
718
  </react_native_1.Text>
630
- <react_native_1.Text style={styles_1.default.headerSubTitle}>
719
+ <react_native_1.Text style={[styles_1.default.headerSubTitle, { fontSize: isNarrow ? 10 : 11 }]}>
631
720
  {selectedCrash.deviceInfo.platform.toUpperCase()}
632
721
  </react_native_1.Text>
633
722
  </>)}
634
- </react_native_1.View>
723
+ </react_native_1.ScrollView>
635
724
  </react_native_1.View>) : null}
636
725
  </react_native_1.View>)}
637
726
 
@@ -642,7 +731,7 @@ const InspectorHeader = react_1.default.memo(() => {
642
731
  alignItems: 'center',
643
732
  justifyContent: 'flex-end',
644
733
  flexShrink: 0,
645
- gap: 8,
734
+ gap: isNarrow ? 5 : 7,
646
735
  },
647
736
  ]}>
648
737
  {isSettingsView && (<TouchableScale_1.default onPress={() => {
@@ -654,8 +743,15 @@ const InspectorHeader = react_1.default.memo(() => {
654
743
  onPress: resetToDefaults,
655
744
  },
656
745
  ]);
657
- }} hitSlop={15} style={styles_1.default.closeButtonSquare}>
658
- <NetworkIcons_1.ResetIcon color={AppColors_1.AppColors.white} size={14}/>
746
+ }} hitSlop={15} style={[
747
+ styles_1.default.closeButtonSquare,
748
+ {
749
+ width: buttonSize,
750
+ height: buttonSize,
751
+ borderRadius: isNarrow ? 6 : 7,
752
+ },
753
+ ]}>
754
+ <NetworkIcons_1.ResetIcon color={AppColors_1.AppColors.white} size={isNarrow ? 12 : 14}/>
659
755
  </TouchableScale_1.default>)}
660
756
 
661
757
  {!isAnySelected && (<TouchableScale_1.default onPress={() => {
@@ -667,7 +763,14 @@ const InspectorHeader = react_1.default.memo(() => {
667
763
  style: 'destructive',
668
764
  },
669
765
  ]);
670
- }} hitSlop={15} style={styles_1.default.closeButtonSquare}>
766
+ }} hitSlop={15} style={[
767
+ styles_1.default.closeButtonSquare,
768
+ {
769
+ width: buttonSize,
770
+ height: buttonSize,
771
+ borderRadius: isNarrow ? 6 : 7,
772
+ },
773
+ ]}>
671
774
  <react_native_1.Animated.View style={{
672
775
  transform: [
673
776
  {
@@ -684,16 +787,30 @@ const InspectorHeader = react_1.default.memo(() => {
684
787
  },
685
788
  ],
686
789
  }}>
687
- <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.white} size={14}/>
790
+ <NetworkIcons_1.TrashIcon color={AppColors_1.AppColors.white} size={isNarrow ? 12 : 14}/>
688
791
  </react_native_1.Animated.View>
689
792
  </TouchableScale_1.default>)}
690
793
 
691
- {!isAnySelected && (<TouchableScale_1.default onPress={() => setSettingsPage('main')} hitSlop={15} style={styles_1.default.closeButtonSquare}>
692
- <NetworkIcons_1.SettingsIcon color={AppColors_1.AppColors.white} size={14}/>
794
+ {!isAnySelected && (<TouchableScale_1.default onPress={() => setSettingsPage('main')} hitSlop={15} style={[
795
+ styles_1.default.closeButtonSquare,
796
+ {
797
+ width: buttonSize,
798
+ height: buttonSize,
799
+ borderRadius: isNarrow ? 6 : 7,
800
+ },
801
+ ]}>
802
+ <NetworkIcons_1.SettingsIcon color={AppColors_1.AppColors.white} size={isNarrow ? 12 : 14}/>
693
803
  </TouchableScale_1.default>)}
694
804
 
695
- <TouchableScale_1.default onPress={closeModal} hitSlop={15} style={styles_1.default.closeButtonSquare}>
696
- <NetworkIcons_1.CloseWhite size={14}/>
805
+ <TouchableScale_1.default onPress={closeModal} hitSlop={15} style={[
806
+ styles_1.default.closeButtonSquare,
807
+ {
808
+ width: buttonSize,
809
+ height: buttonSize,
810
+ borderRadius: isNarrow ? 6 : 7,
811
+ },
812
+ ]}>
813
+ <NetworkIcons_1.CloseWhite size={isNarrow ? 12 : 14}/>
697
814
  </TouchableScale_1.default>
698
815
  </react_native_1.View>
699
816
  </react_native_1.View>