@buoy-gg/network 7.0.33 → 7.0.35

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 (37) hide show
  1. package/lib/commonjs/network/components/NetworkCopySettingsView.js +12 -123
  2. package/lib/commonjs/network/components/NetworkEventDetailView.js +6 -6
  3. package/lib/commonjs/network/components/NetworkEventItemCompact.js +3 -3
  4. package/lib/commonjs/network/components/NetworkFilterViewV3.js +3 -3
  5. package/lib/commonjs/network/components/NetworkHeaderLive.js +2 -2
  6. package/lib/commonjs/network/components/NetworkListScreen.js +4 -10
  7. package/lib/commonjs/network/components/NetworkModal.js +18 -68
  8. package/lib/commonjs/network/components/NetworkOverrideEditor.js +1 -1
  9. package/lib/commonjs/network/components/NetworkOverridesScreen.js +1 -1
  10. package/lib/commonjs/network/components/NetworkSavedScreen.js +2 -5
  11. package/lib/commonjs/network/components/response-editor/Explorer.js +13 -13
  12. package/lib/commonjs/preset.js +6 -21
  13. package/lib/module/network/components/NetworkCopySettingsView.js +15 -126
  14. package/lib/module/network/components/NetworkEventDetailView.js +7 -7
  15. package/lib/module/network/components/NetworkEventItemCompact.js +4 -4
  16. package/lib/module/network/components/NetworkFilterViewV3.js +4 -4
  17. package/lib/module/network/components/NetworkHeaderLive.js +3 -3
  18. package/lib/module/network/components/NetworkListScreen.js +5 -11
  19. package/lib/module/network/components/NetworkModal.js +20 -70
  20. package/lib/module/network/components/NetworkOverrideEditor.js +2 -2
  21. package/lib/module/network/components/NetworkOverridesScreen.js +2 -2
  22. package/lib/module/network/components/NetworkSavedScreen.js +3 -6
  23. package/lib/module/network/components/response-editor/Explorer.js +14 -14
  24. package/lib/module/preset.js +6 -20
  25. package/lib/typescript/network/components/NetworkCopySettingsView.d.ts.map +1 -1
  26. package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +1 -1
  27. package/lib/typescript/network/components/NetworkEventItemCompact.d.ts.map +1 -1
  28. package/lib/typescript/network/components/NetworkFilterViewV3.d.ts.map +1 -1
  29. package/lib/typescript/network/components/NetworkHeaderLive.d.ts.map +1 -1
  30. package/lib/typescript/network/components/NetworkListScreen.d.ts.map +1 -1
  31. package/lib/typescript/network/components/NetworkModal.d.ts.map +1 -1
  32. package/lib/typescript/network/components/NetworkOverrideEditor.d.ts.map +1 -1
  33. package/lib/typescript/network/components/NetworkOverridesScreen.d.ts.map +1 -1
  34. package/lib/typescript/network/components/NetworkSavedScreen.d.ts.map +1 -1
  35. package/lib/typescript/preset.d.ts +2 -8
  36. package/lib/typescript/preset.d.ts.map +1 -1
  37. package/package.json +2 -2
@@ -546,62 +546,16 @@ function NetworkCopySettingsView({
546
546
  const generatePreviewContent = (0, _react.useCallback)(() => {
547
547
  const dataSource = hasLiveData ? events : [mockRequestData];
548
548
  const requestCount = dataSource.length;
549
-
550
- // Collapsed state - show summary with expand button
551
- if (!isPreviewExpanded) {
552
- const warningColor = sizeWarningLevel === 'danger' ? _sharedUi.macOSColors.semantic.error : sizeWarningLevel === 'warning' ? _sharedUi.macOSColors.semantic.warning : _sharedUi.macOSColors.text.secondary;
553
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
554
- style: styles.collapsedPreview,
555
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
556
- style: styles.expandButton,
557
- onPress: () => setIsPreviewExpanded(true),
558
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
559
- style: styles.expandButtonContent,
560
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Eye, {
561
- size: 16,
562
- color: _sharedUi.macOSColors.semantic.info
563
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
564
- style: styles.expandButtonTextContainer,
565
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
566
- style: styles.expandButtonTitle,
567
- children: "Show Preview"
568
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
569
- style: styles.expandButtonSubtitle,
570
- children: [requestCount, " request", requestCount !== 1 ? 's' : '', " \u2022 ~", formatBytes(estimatedSize)]
571
- })]
572
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronDown, {
573
- size: 16,
574
- color: _sharedUi.macOSColors.text.muted
575
- })]
576
- })
577
- }), sizeWarningLevel !== 'none' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
578
- style: [styles.sizeWarning, sizeWarningLevel === 'danger' && styles.sizeWarningDanger],
579
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.AlertTriangle, {
580
- size: 12,
581
- color: warningColor
582
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
583
- style: [styles.sizeWarningText, {
584
- color: warningColor
585
- }],
586
- children: sizeWarningLevel === 'danger' ? 'Very large payload - may cause performance issues' : 'Large payload - preview may be slow'
587
- })]
588
- })]
589
- });
590
- }
591
-
592
- // Expanded state - show collapse button + actual content
593
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
594
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
595
- style: styles.collapseButton,
596
- onPress: () => setIsPreviewExpanded(false),
597
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
598
- style: styles.collapseButtonText,
599
- children: "Hide Preview"
600
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronUp, {
601
- size: 14,
602
- color: _sharedUi.macOSColors.text.secondary
603
- })]
604
- }), generateExpandedPreviewContent()]
549
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ExportPreview, {
550
+ expanded: isPreviewExpanded,
551
+ onExpandedChange: setIsPreviewExpanded,
552
+ summary: `${requestCount} request${requestCount !== 1 ? "s" : ""} • ~${formatBytes(estimatedSize)}`,
553
+ warningLevel: sizeWarningLevel,
554
+ warningText: {
555
+ warning: "Large payload - preview may be slow",
556
+ danger: "Very large payload - may cause performance issues"
557
+ },
558
+ renderBody: generateExpandedPreviewContent
605
559
  });
606
560
  }, [settings, hasLiveData, events, mockRequestData, isPreviewExpanded, estimatedSize, sizeWarningLevel, generateExpandedPreviewContent]);
607
561
 
@@ -772,13 +726,13 @@ const styles = _reactNative.StyleSheet.create({
772
726
  maxHeight: 300
773
727
  },
774
728
  markdownText: {
775
- fontFamily: "monospace",
729
+ fontFamily: _sharedUi.monoFont,
776
730
  fontSize: 11,
777
731
  color: _sharedUi.macOSColors.text.primary,
778
732
  lineHeight: 18
779
733
  },
780
734
  plaintextText: {
781
- fontFamily: "monospace",
735
+ fontFamily: _sharedUi.monoFont,
782
736
  fontSize: 11,
783
737
  color: _sharedUi.macOSColors.text.primary,
784
738
  lineHeight: 18
@@ -790,71 +744,6 @@ const styles = _reactNative.StyleSheet.create({
790
744
  marginRight: 8
791
745
  },
792
746
  // Collapsible preview styles
793
- collapsedPreview: {
794
- gap: 8
795
- },
796
- expandButton: {
797
- backgroundColor: _sharedUi.macOSColors.background.input,
798
- borderRadius: 8,
799
- borderWidth: 1,
800
- borderColor: _sharedUi.macOSColors.border.default,
801
- padding: 12
802
- },
803
- expandButtonContent: {
804
- flexDirection: 'row',
805
- alignItems: 'center',
806
- gap: 10
807
- },
808
- expandButtonTextContainer: {
809
- flex: 1
810
- },
811
- expandButtonTitle: {
812
- fontSize: 13,
813
- fontWeight: '600',
814
- color: _sharedUi.macOSColors.text.primary
815
- },
816
- expandButtonSubtitle: {
817
- fontSize: 11,
818
- color: _sharedUi.macOSColors.text.secondary,
819
- marginTop: 2
820
- },
821
- collapseButton: {
822
- flexDirection: 'row',
823
- alignItems: 'center',
824
- justifyContent: 'center',
825
- gap: 6,
826
- paddingVertical: 8,
827
- marginBottom: 8,
828
- backgroundColor: _sharedUi.macOSColors.background.hover,
829
- borderRadius: 6,
830
- borderWidth: 1,
831
- borderColor: _sharedUi.macOSColors.border.default
832
- },
833
- collapseButtonText: {
834
- fontSize: 12,
835
- fontWeight: '500',
836
- color: _sharedUi.macOSColors.text.secondary
837
- },
838
- sizeWarning: {
839
- flexDirection: 'row',
840
- alignItems: 'center',
841
- gap: 6,
842
- paddingHorizontal: 10,
843
- paddingVertical: 6,
844
- backgroundColor: _sharedUi.macOSColors.semantic.warningBackground,
845
- borderRadius: 6,
846
- borderWidth: 1,
847
- borderColor: _sharedUi.macOSColors.semantic.warning + '30'
848
- },
849
- sizeWarningDanger: {
850
- backgroundColor: _sharedUi.macOSColors.semantic.errorBackground,
851
- borderColor: _sharedUi.macOSColors.semantic.error + '30'
852
- },
853
- sizeWarningText: {
854
- fontSize: 11,
855
- fontWeight: '500',
856
- flex: 1
857
- },
858
747
  // Gated container styles for free users
859
748
  gatedContainer: {
860
749
  flex: 1,
@@ -870,12 +870,12 @@ const styles = _reactNative.StyleSheet.create({
870
870
  urlPath: {
871
871
  color: _sharedUi.night.color.textSecondary,
872
872
  fontSize: 11,
873
- fontFamily: "monospace"
873
+ fontFamily: _sharedUi.monoFont
874
874
  },
875
875
  urlQueryString: {
876
876
  color: _sharedUi.night.color.info,
877
877
  fontSize: 11,
878
- fontFamily: "monospace"
878
+ fontFamily: _sharedUi.monoFont
879
879
  },
880
880
  // Query Parameters - Collapsible section
881
881
  queryParamsCollapsible: {
@@ -952,7 +952,7 @@ const styles = _reactNative.StyleSheet.create({
952
952
  sizeValue: {
953
953
  color: _sharedUi.night.color.info,
954
954
  fontSize: 10,
955
- fontFamily: "monospace",
955
+ fontFamily: _sharedUi.monoFont,
956
956
  fontWeight: "600"
957
957
  },
958
958
  /* ---- Timing phases ---- */
@@ -997,7 +997,7 @@ const styles = _reactNative.StyleSheet.create({
997
997
  width: 72,
998
998
  textAlign: "right",
999
999
  fontSize: 12,
1000
- fontFamily: "monospace",
1000
+ fontFamily: _sharedUi.monoFont,
1001
1001
  color: _sharedUi.night.color.text
1002
1002
  },
1003
1003
  // Collapsible section styles
@@ -1033,7 +1033,7 @@ const styles = _reactNative.StyleSheet.create({
1033
1033
  collapsibleCount: {
1034
1034
  color: _sharedUi.night.color.textTertiary,
1035
1035
  fontSize: 11.5,
1036
- fontFamily: "monospace"
1036
+ fontFamily: _sharedUi.monoFont
1037
1037
  },
1038
1038
  collapsibleContent: {
1039
1039
  padding: 12
@@ -1107,7 +1107,7 @@ const styles = _reactNative.StyleSheet.create({
1107
1107
  filterOptionValue: {
1108
1108
  color: _sharedUi.night.color.text,
1109
1109
  fontSize: 13,
1110
- fontFamily: "monospace"
1110
+ fontFamily: _sharedUi.monoFont
1111
1111
  },
1112
1112
  filterToggle: {
1113
1113
  paddingHorizontal: 10,
@@ -319,7 +319,7 @@ const styles = _reactNative.StyleSheet.create({
319
319
  fontSize: 12,
320
320
  color: _sharedUi.night.color.text,
321
321
  lineHeight: 16,
322
- fontFamily: "monospace"
322
+ fontFamily: _sharedUi.monoFont
323
323
  },
324
324
  rightSection: {
325
325
  flexDirection: "row",
@@ -334,7 +334,7 @@ const styles = _reactNative.StyleSheet.create({
334
334
  bottomRightText: {
335
335
  fontSize: 9,
336
336
  color: _sharedUi.night.color.textTertiary,
337
- fontFamily: "monospace"
337
+ fontFamily: _sharedUi.monoFont
338
338
  },
339
339
  statusBadge: {
340
340
  paddingHorizontal: 4,
@@ -390,7 +390,7 @@ const styles = _reactNative.StyleSheet.create({
390
390
  sizeText: {
391
391
  fontSize: 8,
392
392
  color: _sharedUi.night.color.textSecondary,
393
- fontFamily: "monospace"
393
+ fontFamily: _sharedUi.monoFont
394
394
  },
395
395
  clientText: {
396
396
  fontSize: 8,
@@ -388,7 +388,7 @@ const styles = _reactNative.StyleSheet.create({
388
388
  },
389
389
  modeBadgeText: {
390
390
  fontSize: 9,
391
- fontFamily: "monospace",
391
+ fontFamily: _sharedUi.monoFont,
392
392
  fontWeight: "700",
393
393
  letterSpacing: 0.5
394
394
  },
@@ -402,7 +402,7 @@ const styles = _reactNative.StyleSheet.create({
402
402
  fontSize: 11,
403
403
  fontWeight: "600",
404
404
  color: _sharedUi.night.color.textSecondary,
405
- fontFamily: "monospace",
405
+ fontFamily: _sharedUi.monoFont,
406
406
  letterSpacing: 0.3
407
407
  },
408
408
  modeToggleGroup: {
@@ -428,7 +428,7 @@ const styles = _reactNative.StyleSheet.create({
428
428
  fontSize: 11,
429
429
  fontWeight: "700",
430
430
  color: _sharedUi.night.color.textSecondary,
431
- fontFamily: "monospace",
431
+ fontFamily: _sharedUi.monoFont,
432
432
  letterSpacing: 0.3
433
433
  },
434
434
  modeToggleButtonTextActive: {
@@ -331,7 +331,7 @@ const styles = _reactNative.StyleSheet.create({
331
331
  headerChipValue: {
332
332
  fontSize: 12,
333
333
  fontWeight: "600",
334
- fontFamily: "monospace"
334
+ fontFamily: _sharedUi.monoFont
335
335
  },
336
336
  headerActionButton: {
337
337
  width: 32,
@@ -370,6 +370,6 @@ const styles = _reactNative.StyleSheet.create({
370
370
  color: _sharedUi.night.color.onAccent,
371
371
  fontSize: 9,
372
372
  fontWeight: "700",
373
- fontFamily: "monospace"
373
+ fontFamily: _sharedUi.monoFont
374
374
  }
375
375
  });
@@ -282,10 +282,8 @@ function NetworkListScreen({
282
282
  showsVerticalScrollIndicator: true
283
283
  // Clipped cells falsely fail Detox's hittability check (known
284
284
  // RN+Detox issue), so e2e bundles (Metro started with
285
- // EXPO_PUBLIC_E2E=1) turn clipping off. Inlined at bundle time;
286
- // guarded so a non-inlining bundler keeps the prod behavior.
285
+ // EXPO_PUBLIC_E2E=1) turn clipping off — see EVENT_LIST_PRESET.
287
286
  ,
288
- removeClippedSubviews: !(typeof process !== "undefined" && process.env?.EXPO_PUBLIC_E2E),
289
287
  onEndReachedThreshold: 0.8
290
288
  // The list OWNS scrolling (NetworkModal passes
291
289
  // disableScrollWrapper while this screen is visible) so FlatList
@@ -294,18 +292,14 @@ function NetworkListScreen({
294
292
  // rows: at the store's 500-event cap that measured 17 JS FPS /
295
293
  // 133% CPU / 1.4GB vs ~53 JS FPS / 52% / 360MB virtualized
296
294
  // (buoy-optimize batch 2026-07-06, batch-1783396983529-6l7w).
297
- // Window/batch values are the batch's "tuned" winner.
295
+ // Window/batch values are the batch's "tuned" winner (EVENT_LIST_PRESET).
298
296
  ,
299
297
  scrollEnabled: true,
300
- initialNumToRender: 12,
301
- maxToRenderPerBatch: 8,
302
- windowSize: 5,
303
- updateCellsBatchingPeriod: 50
298
+ ..._sharedUi.EVENT_LIST_PRESET,
304
299
  // Saving a request from the detail view changes a row's glyph
305
300
  // without changing `data`. VirtualizedList is a PureComponent, so
306
301
  // the Set has to be declared as a re-render marker rather than
307
302
  // relying on `renderItem` getting a fresh identity.
308
- ,
309
303
  extraData: savedLiveIds,
310
304
  "sentry-label": "ignore network events list",
311
305
  ListFooterComponent: renderListFooter
@@ -377,7 +371,7 @@ const styles = _reactNative.StyleSheet.create({
377
371
  fontSize: 10,
378
372
  fontWeight: "700",
379
373
  letterSpacing: 0.6,
380
- fontFamily: "monospace"
374
+ fontFamily: _sharedUi.monoFont
381
375
  },
382
376
  pinnedClear: {
383
377
  paddingHorizontal: 6,
@@ -452,53 +452,24 @@ function NetworkModalInner({
452
452
  onBack: onBack
453
453
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
454
454
  title: "",
455
- children: isSearchActive ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
456
- style: styles.headerSearchContainer,
457
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Search, {
458
- size: 14,
459
- color: _sharedUi.night.color.textSecondary
460
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
461
- ref: searchInputRef,
462
- style: styles.headerSearchInput,
463
- placeholder: "Search URL, method, operation, error...",
464
- placeholderTextColor: _sharedUi.night.color.placeholder,
465
- value: searchText,
466
- onChangeText: handleSearch,
467
- onSubmitEditing: () => setIsSearchActive(false),
468
- onBlur: () => {
469
- if (!clearPressRef.current) setIsSearchActive(false);
470
- },
471
- "sentry-label": "ignore network search header",
472
- accessibilityLabel: "Search network requests",
473
- testID: "buoy-network-search-input",
474
- autoCapitalize: "none",
475
- autoCorrect: false,
476
- returnKeyType: "search"
477
- }), searchText.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity
478
- // react-native-web delays press-in ~50ms by default (native
479
- // fires it immediately), which would put it AFTER the blur.
480
- , {
481
- delayPressIn: 0,
482
- onPressIn: () => {
483
- clearPressRef.current = true;
484
- },
485
- onPressOut: () => {
486
- clearPressRef.current = false;
487
- },
488
- onPress: () => {
489
- handleSearch("");
490
- setIsSearchActive(false);
491
- },
492
- "sentry-label": "ignore clear search header",
493
- style: styles.headerSearchClear,
494
- accessibilityRole: "button",
495
- accessibilityLabel: "Clear search",
496
- testID: "buoy-network-search-clear",
497
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.X, {
498
- size: 14,
499
- color: _sharedUi.night.color.textSecondary
500
- })
501
- }) : null]
455
+ children: isSearchActive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Search, {
456
+ value: searchText,
457
+ onChangeText: handleSearch,
458
+ onCancel: () => {
459
+ handleSearch("");
460
+ setIsSearchActive(false);
461
+ },
462
+ onDismiss: () => setIsSearchActive(false),
463
+ dismissOnBlur: true,
464
+ clearOnlyWhenText: true,
465
+ placeholder: "Search URL, method, operation, error...",
466
+ accessibilityLabel: "Search network requests",
467
+ iconSize: 14,
468
+ testID: "buoy-network-search-input",
469
+ clearTestID: "buoy-network-search-clear",
470
+ inputProps: {
471
+ "sentry-label": "ignore network search header"
472
+ }
502
473
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_NetworkHeaderLive.NetworkHeaderBadges, {
503
474
  activeStatus: filter.status,
504
475
  onToggleStatus: toggleStatusFilter,
@@ -743,27 +714,6 @@ const styles = _reactNative.StyleSheet.create({
743
714
  },
744
715
  // Night chrome — the header is glass over the star field, so the search
745
716
  // field and action chips sit on the Everlights dark-glass fill.
746
- headerSearchContainer: {
747
- flexDirection: "row",
748
- alignItems: "center",
749
- backgroundColor: _sharedUi.night.color.surfaceElevated,
750
- borderRadius: _sharedUi.night.radius.row,
751
- borderWidth: 1,
752
- borderColor: _sharedUi.night.color.border,
753
- paddingHorizontal: 12,
754
- paddingVertical: 5
755
- },
756
- headerSearchInput: {
757
- flex: 1,
758
- color: _sharedUi.night.color.text,
759
- fontSize: 13,
760
- marginLeft: 6,
761
- paddingVertical: 2
762
- },
763
- headerSearchClear: {
764
- marginLeft: 6,
765
- padding: 4
766
- },
767
717
  menuCopyRow: {
768
718
  paddingHorizontal: 6
769
719
  },
@@ -681,7 +681,7 @@ const styles = _reactNative.StyleSheet.create({
681
681
  paddingVertical: 8,
682
682
  color: _sharedUi.macOSColors.text.primary,
683
683
  fontSize: 12,
684
- fontFamily: "monospace",
684
+ fontFamily: _sharedUi.monoFont,
685
685
  minHeight: 40
686
686
  },
687
687
  bodyInput: {
@@ -493,7 +493,7 @@ const styles = _reactNative.StyleSheet.create({
493
493
  fontSize: 12,
494
494
  color: _sharedUi.macOSColors.text.primary,
495
495
  lineHeight: 16,
496
- fontFamily: "monospace"
496
+ fontFamily: _sharedUi.monoFont
497
497
  },
498
498
  urlTextOff: {
499
499
  color: _sharedUi.macOSColors.text.muted
@@ -154,11 +154,8 @@ function NetworkSavedScreen({
154
154
  keyExtractor: keyExtractor,
155
155
  contentContainerStyle: styles.listContent,
156
156
  showsVerticalScrollIndicator: true,
157
- removeClippedSubviews: true,
158
157
  scrollEnabled: true,
159
- initialNumToRender: 12,
160
- maxToRenderPerBatch: 8,
161
- windowSize: 5,
158
+ ..._sharedUi.EVENT_LIST_PRESET,
162
159
  extraData: pinnedLiveIds,
163
160
  "sentry-label": "ignore saved requests list",
164
161
  ListFooterComponent: renderListFooter
@@ -184,7 +181,7 @@ const styles = _reactNative.StyleSheet.create({
184
181
  fontSize: 10,
185
182
  fontWeight: "700",
186
183
  letterSpacing: 0.6,
187
- fontFamily: "monospace"
184
+ fontFamily: _sharedUi.monoFont
188
185
  },
189
186
  toolbarButton: {
190
187
  width: 26,
@@ -540,7 +540,7 @@ const styles = _reactNative.StyleSheet.create({
540
540
  clearButtonText: {
541
541
  fontSize: 12,
542
542
  fontWeight: "700",
543
- fontFamily: "monospace"
543
+ fontFamily: _sharedUi.monoFont
544
544
  },
545
545
  expanderIcon: {
546
546
  width: 18,
@@ -627,7 +627,7 @@ const styles = _reactNative.StyleSheet.create({
627
627
  fontSize: 10,
628
628
  fontWeight: "600",
629
629
  marginRight: 4,
630
- fontFamily: "monospace",
630
+ fontFamily: _sharedUi.monoFont,
631
631
  letterSpacing: 0.4
632
632
  },
633
633
  labelTextFocused: {
@@ -643,14 +643,14 @@ const styles = _reactNative.StyleSheet.create({
643
643
  color: _sharedUi.buoyColors.textMuted,
644
644
  fontSize: 10,
645
645
  fontWeight: "400",
646
- fontFamily: "monospace",
646
+ fontFamily: _sharedUi.monoFont,
647
647
  opacity: 0.7
648
648
  },
649
649
  pageRangeText: {
650
650
  color: _sharedUi.buoyColors.textSecondary,
651
651
  fontSize: 10,
652
652
  fontWeight: "600",
653
- fontFamily: "monospace"
653
+ fontFamily: _sharedUi.monoFont
654
654
  },
655
655
  flexRowGapItemsCenter: {
656
656
  flexDirection: "row",
@@ -708,11 +708,11 @@ const styles = _reactNative.StyleSheet.create({
708
708
  textNumber: {
709
709
  color: _sharedUi.buoyColors.text,
710
710
  fontWeight: "600",
711
- fontFamily: "monospace"
711
+ fontFamily: _sharedUi.monoFont
712
712
  },
713
713
  textString: {
714
714
  color: _sharedUi.buoyColors.text,
715
- fontFamily: "monospace"
715
+ fontFamily: _sharedUi.monoFont
716
716
  },
717
717
  flexRowGapFullWidth: {
718
718
  flexDirection: "row",
@@ -729,7 +729,7 @@ const styles = _reactNative.StyleSheet.create({
729
729
  fontWeight: "600",
730
730
  fontSize: 9,
731
731
  minWidth: 50,
732
- fontFamily: "monospace",
732
+ fontFamily: _sharedUi.monoFont,
733
733
  letterSpacing: 0.4,
734
734
  opacity: 0.8
735
735
  },
@@ -783,7 +783,7 @@ const styles = _reactNative.StyleSheet.create({
783
783
  flex: 1,
784
784
  color: _sharedUi.buoyColors.text,
785
785
  fontWeight: "400",
786
- fontFamily: "monospace",
786
+ fontFamily: _sharedUi.monoFont,
787
787
  fontSize: 12,
788
788
  paddingVertical: 6,
789
789
  paddingHorizontal: 10,
@@ -839,7 +839,7 @@ const styles = _reactNative.StyleSheet.create({
839
839
  readOnlyValue: {
840
840
  color: _sharedUi.buoyColors.text,
841
841
  fontSize: 13,
842
- fontFamily: "monospace",
842
+ fontFamily: _sharedUi.monoFont,
843
843
  paddingVertical: 8,
844
844
  paddingHorizontal: 12,
845
845
  borderRadius: 6,
@@ -865,7 +865,7 @@ const styles = _reactNative.StyleSheet.create({
865
865
  marginLeft: 8,
866
866
  color: _sharedUi.buoyColors.warning,
867
867
  fontWeight: "500",
868
- fontFamily: "monospace"
868
+ fontFamily: _sharedUi.monoFont
869
869
  },
870
870
  modernToggleButton: {
871
871
  flexDirection: "row",
@@ -904,7 +904,7 @@ const styles = _reactNative.StyleSheet.create({
904
904
  color: "#E5E7EB",
905
905
  fontSize: 11,
906
906
  fontWeight: "600",
907
- fontFamily: "monospace",
907
+ fontFamily: _sharedUi.monoFont,
908
908
  letterSpacing: 0.3
909
909
  },
910
910
  toggleStatus: {
@@ -923,7 +923,7 @@ const styles = _reactNative.StyleSheet.create({
923
923
  fontWeight: "700",
924
924
  textTransform: "uppercase",
925
925
  letterSpacing: 0.8,
926
- fontFamily: "monospace"
926
+ fontFamily: _sharedUi.monoFont
927
927
  },
928
928
  // Pre-computed toggle icon styles to avoid inline objects [[memory:4875251]]
929
929
  toggleIconTrue: {
@@ -962,7 +962,7 @@ const styles = _reactNative.StyleSheet.create({
962
962
  color: _sharedUi.buoyColors.textSecondary,
963
963
  fontSize: 10,
964
964
  fontWeight: "600",
965
- fontFamily: "monospace",
965
+ fontFamily: _sharedUi.monoFont,
966
966
  letterSpacing: 0.4,
967
967
  minWidth: 60,
968
968
  flexShrink: 0
@@ -3,8 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createNetworkTool = createNetworkTool;
7
- exports.networkToolPreset = void 0;
6
+ exports.networkToolPreset = exports.createNetworkTool = void 0;
8
7
  var _sharedUi = require("@buoy-gg/shared-ui");
9
8
  var _NetworkModal = require("./network/components/NetworkModal");
10
9
  var _overrideRulesStore = require("./network/overrides/overrideRulesStore");
@@ -66,7 +65,7 @@ if (isReactNativeRuntime && typeof __DEV__ !== "undefined" && __DEV__) {
66
65
  * - Filter by status, method, URL
67
66
  * - Timing information
68
67
  */
69
- const networkToolPreset = exports.networkToolPreset = {
68
+ const networkToolPreset = exports.networkToolPreset = (0, _sharedUi.defineToolPreset)({
70
69
  id: "network",
71
70
  name: "NET",
72
71
  description: "Network request logger",
@@ -80,7 +79,7 @@ const networkToolPreset = exports.networkToolPreset = {
80
79
  props: {
81
80
  enableSharedModalDimensions: false
82
81
  }
83
- };
82
+ });
84
83
 
85
84
  /**
86
85
  * Create a custom network monitoring tool configuration.
@@ -97,20 +96,6 @@ const networkToolPreset = exports.networkToolPreset = {
97
96
  * });
98
97
  * ```
99
98
  */
100
- function createNetworkTool(options) {
101
- return {
102
- id: options?.id || "network",
103
- name: options?.name || "NET",
104
- description: options?.description || "Network request logger",
105
- slot: "both",
106
- icon: ({
107
- size
108
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.NetworkIcon, {
109
- size: size
110
- }),
111
- component: _NetworkModal.NetworkModal,
112
- props: {
113
- enableSharedModalDimensions: options?.enableSharedModalDimensions !== undefined ? options.enableSharedModalDimensions : false
114
- }
115
- };
116
- }
99
+ const createNetworkTool = exports.createNetworkTool = (0, _sharedUi.createToolFactory)(networkToolPreset, options => ({
100
+ enableSharedModalDimensions: options.enableSharedModalDimensions ?? false
101
+ }));