@buoy-gg/highlight-updates 7.0.17 → 7.0.18

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.
@@ -57,6 +57,7 @@ function HighlightUpdatesModal({
57
57
  enableSharedModalDimensions = false,
58
58
  initialNativeTag,
59
59
  onInitialNativeTagHandled,
60
+ onRenderSelect,
60
61
  inline = false
61
62
  }) {
62
63
  const isPro = (0, _license.useIsPro)();
@@ -329,6 +330,29 @@ function HighlightUpdatesModal({
329
330
  // Set spotlight to show which component is being viewed
330
331
  _HighlightUpdatesController.default.setSpotlight(render.nativeTag);
331
332
  }, []);
333
+
334
+ // Keep the open detail in sync with the tracker (live counts + hydrated
335
+ // history fetched on demand by a remote host).
336
+ (0, _react.useEffect)(() => {
337
+ if (!selectedRender) return;
338
+ const id = String(selectedRender.nativeTag);
339
+ return _RenderTracker.RenderTracker.subscribe(() => {
340
+ const next = _RenderTracker.RenderTracker.getRender(id);
341
+ if (next) setSelectedRender({
342
+ ...next
343
+ });
344
+ });
345
+ }, [selectedRender?.nativeTag]);
346
+
347
+ // Notify the host on selection (keyed by nativeTag so re-renders with the
348
+ // same selection don't re-fire; remote mirrors fetch history here).
349
+ const lastNotifiedSelectionRef = (0, _react.useRef)(null);
350
+ (0, _react.useEffect)(() => {
351
+ if (!onRenderSelect || !selectedRender) return;
352
+ if (lastNotifiedSelectionRef.current === selectedRender.nativeTag) return;
353
+ lastNotifiedSelectionRef.current = selectedRender.nativeTag;
354
+ onRenderSelect(selectedRender);
355
+ }, [selectedRender, onRenderSelect]);
332
356
  const handleRendersChange = (0, _react.useCallback)(renders => {
333
357
  rendersListRef.current = renders;
334
358
  }, []);
@@ -64,8 +64,8 @@ class RenderTrackerSingleton {
64
64
  showRenderCount: true,
65
65
  performanceLogging: false,
66
66
  trackRenderCauses: false,
67
- // History settings (always enabled)
68
- enableRenderHistory: true,
67
+ // History is opt-in (memory + perf overhead). JSDoc default: false.
68
+ enableRenderHistory: false,
69
69
  maxRenderHistoryPerComponent: 20,
70
70
  capturePropsOnRender: false,
71
71
  captureStateOnRender: false,
@@ -544,7 +544,22 @@ class RenderTrackerSingleton {
544
544
  * and search stay local: they apply at read time via getFilteredRenders.
545
545
  */
546
546
  replaceRenders(renders, state) {
547
- this.renders = new Map(renders.map(render => [render.id, render]));
547
+ // Preserve history a remote mirror already hydrated — wire-form snapshots
548
+ // omit renderHistory, and a later snapshot must not blank the detail pane.
549
+ const hydratedHistory = new Map();
550
+ for (const [id, existing] of this.renders) {
551
+ if (existing.renderHistory && existing.renderHistory.length > 0) {
552
+ hydratedHistory.set(id, existing.renderHistory);
553
+ }
554
+ }
555
+ this.renders = new Map(renders.map(render => {
556
+ const kept = hydratedHistory.get(render.id);
557
+ const next = kept && !(render.renderHistory && render.renderHistory.length > 0) ? {
558
+ ...render,
559
+ renderHistory: kept
560
+ } : render;
561
+ return [next.id, next];
562
+ }));
548
563
  if (state && (this.isTracking !== state.isTracking || this.isPaused !== state.isPaused)) {
549
564
  this.isTracking = state.isTracking;
550
565
  this.isPaused = state.isPaused;
@@ -553,6 +568,19 @@ class RenderTrackerSingleton {
553
568
  this.notifyListeners();
554
569
  }
555
570
 
571
+ /**
572
+ * Hydrate one mirrored render with on-demand detail (history / cause
573
+ * values) fetched via the adapter's `getRenderDetail`. Remote-mirror only.
574
+ */
575
+ hydrateRender(render) {
576
+ const existing = this.renders.get(render.id);
577
+ this.renders.set(render.id, existing ? {
578
+ ...existing,
579
+ ...render
580
+ } : render);
581
+ this.notifyListeners();
582
+ }
583
+
556
584
  /**
557
585
  * Get filter config
558
586
  */
@@ -13,6 +13,49 @@ function ensureInitialized() {
13
13
  _HighlightUpdatesController.default.initialize();
14
14
  }
15
15
  }
16
+ function toWireCause(cause) {
17
+ if (!cause) return undefined;
18
+ const {
19
+ hookChanges: _hookChanges,
20
+ ...rest
21
+ } = cause;
22
+ return rest;
23
+ }
24
+
25
+ /**
26
+ * Wire-form render: keep identity + counts + last cause type, drop the
27
+ * per-component history buffer (up to 20 events, and hook/prop snapshots
28
+ * when those settings are on). Dashboards fetch history via getRenderDetail.
29
+ */
30
+ function toWireRender(render) {
31
+ const {
32
+ renderHistory,
33
+ lastRenderCause,
34
+ ...rest
35
+ } = render;
36
+ return {
37
+ ...rest,
38
+ lastRenderCause: toWireCause(lastRenderCause),
39
+ historyCount: renderHistory?.length ?? 0
40
+ };
41
+ }
42
+ function jsonSafeRender(render) {
43
+ try {
44
+ JSON.stringify(render);
45
+ return render;
46
+ } catch {
47
+ return {
48
+ ...render,
49
+ lastRenderCause: toWireCause(render.lastRenderCause),
50
+ renderHistory: render.renderHistory?.map(event => ({
51
+ ...event,
52
+ capturedProps: undefined,
53
+ capturedState: undefined,
54
+ cause: toWireCause(event.cause) ?? event.cause
55
+ }))
56
+ };
57
+ }
58
+ }
16
59
 
17
60
  /**
18
61
  * Sync adapter for the highlight-updates tool, consumed by
@@ -25,15 +68,18 @@ function ensureInitialized() {
25
68
  * as a mirror. Mutations (toggle, freeze, clear, spotlight) come back as
26
69
  * actions and run on the device; spotlight even highlights the component on
27
70
  * the phone screen while browsing details from the desktop.
71
+ *
72
+ * v2: per-component `renderHistory` (and hook-change values on lastRenderCause)
73
+ * stay on the device. Dashboards fetch them via `getRenderDetail`.
28
74
  */
29
75
  const highlightUpdatesSyncAdapter = exports.highlightUpdatesSyncAdapter = {
30
- version: 1,
76
+ version: 2,
31
77
  getSnapshot: () => ({
32
78
  enabled: _HighlightUpdatesController.default.isEnabled(),
33
79
  frozen: _HighlightUpdatesController.default.getFrozen(),
34
80
  // True while tracking but the visual boxes are hidden (screenshot tool).
35
81
  highlightsSuppressed: _HighlightUpdatesController.default.getHighlightsSuppressed(),
36
- renders: _RenderTracker.RenderTracker.getRenders(),
82
+ renders: _RenderTracker.RenderTracker.getRenders().map(toWireRender),
37
83
  trackerState: _RenderTracker.RenderTracker.getState()
38
84
  }),
39
85
  subscribe: onChange => {
@@ -49,6 +95,31 @@ const highlightUpdatesSyncAdapter = exports.highlightUpdatesSyncAdapter = {
49
95
  };
50
96
  },
51
97
  actions: {
98
+ /**
99
+ * On-demand detail: one component's real renderHistory + lastRenderCause
100
+ * (including hookChanges). Wire-form snapshots omit those.
101
+ */
102
+ getRenderDetail: params => {
103
+ const {
104
+ nativeTag
105
+ } = params ?? {};
106
+ if (nativeTag == null) {
107
+ return {
108
+ found: false,
109
+ reason: "missing nativeTag"
110
+ };
111
+ }
112
+ const render = _RenderTracker.RenderTracker.getRender(String(nativeTag));
113
+ if (!render) return {
114
+ found: false,
115
+ reason: "unknown nativeTag"
116
+ };
117
+ return {
118
+ found: true,
119
+ nativeTag,
120
+ render: jsonSafeRender(render)
121
+ };
122
+ },
52
123
  toggle: () => {
53
124
  ensureInitialized();
54
125
  _HighlightUpdatesController.default.toggle();
@@ -50,6 +50,7 @@ export function HighlightUpdatesModal({
50
50
  enableSharedModalDimensions = false,
51
51
  initialNativeTag,
52
52
  onInitialNativeTagHandled,
53
+ onRenderSelect,
53
54
  inline = false
54
55
  }) {
55
56
  const isPro = useIsPro();
@@ -322,6 +323,29 @@ export function HighlightUpdatesModal({
322
323
  // Set spotlight to show which component is being viewed
323
324
  HighlightUpdatesController.setSpotlight(render.nativeTag);
324
325
  }, []);
326
+
327
+ // Keep the open detail in sync with the tracker (live counts + hydrated
328
+ // history fetched on demand by a remote host).
329
+ useEffect(() => {
330
+ if (!selectedRender) return;
331
+ const id = String(selectedRender.nativeTag);
332
+ return RenderTracker.subscribe(() => {
333
+ const next = RenderTracker.getRender(id);
334
+ if (next) setSelectedRender({
335
+ ...next
336
+ });
337
+ });
338
+ }, [selectedRender?.nativeTag]);
339
+
340
+ // Notify the host on selection (keyed by nativeTag so re-renders with the
341
+ // same selection don't re-fire; remote mirrors fetch history here).
342
+ const lastNotifiedSelectionRef = useRef(null);
343
+ useEffect(() => {
344
+ if (!onRenderSelect || !selectedRender) return;
345
+ if (lastNotifiedSelectionRef.current === selectedRender.nativeTag) return;
346
+ lastNotifiedSelectionRef.current = selectedRender.nativeTag;
347
+ onRenderSelect(selectedRender);
348
+ }, [selectedRender, onRenderSelect]);
325
349
  const handleRendersChange = useCallback(renders => {
326
350
  rendersListRef.current = renders;
327
351
  }, []);
@@ -61,8 +61,8 @@ class RenderTrackerSingleton {
61
61
  showRenderCount: true,
62
62
  performanceLogging: false,
63
63
  trackRenderCauses: false,
64
- // History settings (always enabled)
65
- enableRenderHistory: true,
64
+ // History is opt-in (memory + perf overhead). JSDoc default: false.
65
+ enableRenderHistory: false,
66
66
  maxRenderHistoryPerComponent: 20,
67
67
  capturePropsOnRender: false,
68
68
  captureStateOnRender: false,
@@ -541,7 +541,22 @@ class RenderTrackerSingleton {
541
541
  * and search stay local: they apply at read time via getFilteredRenders.
542
542
  */
543
543
  replaceRenders(renders, state) {
544
- this.renders = new Map(renders.map(render => [render.id, render]));
544
+ // Preserve history a remote mirror already hydrated — wire-form snapshots
545
+ // omit renderHistory, and a later snapshot must not blank the detail pane.
546
+ const hydratedHistory = new Map();
547
+ for (const [id, existing] of this.renders) {
548
+ if (existing.renderHistory && existing.renderHistory.length > 0) {
549
+ hydratedHistory.set(id, existing.renderHistory);
550
+ }
551
+ }
552
+ this.renders = new Map(renders.map(render => {
553
+ const kept = hydratedHistory.get(render.id);
554
+ const next = kept && !(render.renderHistory && render.renderHistory.length > 0) ? {
555
+ ...render,
556
+ renderHistory: kept
557
+ } : render;
558
+ return [next.id, next];
559
+ }));
545
560
  if (state && (this.isTracking !== state.isTracking || this.isPaused !== state.isPaused)) {
546
561
  this.isTracking = state.isTracking;
547
562
  this.isPaused = state.isPaused;
@@ -550,6 +565,19 @@ class RenderTrackerSingleton {
550
565
  this.notifyListeners();
551
566
  }
552
567
 
568
+ /**
569
+ * Hydrate one mirrored render with on-demand detail (history / cause
570
+ * values) fetched via the adapter's `getRenderDetail`. Remote-mirror only.
571
+ */
572
+ hydrateRender(render) {
573
+ const existing = this.renders.get(render.id);
574
+ this.renders.set(render.id, existing ? {
575
+ ...existing,
576
+ ...render
577
+ } : render);
578
+ this.notifyListeners();
579
+ }
580
+
553
581
  /**
554
582
  * Get filter config
555
583
  */
@@ -8,6 +8,49 @@ function ensureInitialized() {
8
8
  HighlightUpdatesController.initialize();
9
9
  }
10
10
  }
11
+ function toWireCause(cause) {
12
+ if (!cause) return undefined;
13
+ const {
14
+ hookChanges: _hookChanges,
15
+ ...rest
16
+ } = cause;
17
+ return rest;
18
+ }
19
+
20
+ /**
21
+ * Wire-form render: keep identity + counts + last cause type, drop the
22
+ * per-component history buffer (up to 20 events, and hook/prop snapshots
23
+ * when those settings are on). Dashboards fetch history via getRenderDetail.
24
+ */
25
+ function toWireRender(render) {
26
+ const {
27
+ renderHistory,
28
+ lastRenderCause,
29
+ ...rest
30
+ } = render;
31
+ return {
32
+ ...rest,
33
+ lastRenderCause: toWireCause(lastRenderCause),
34
+ historyCount: renderHistory?.length ?? 0
35
+ };
36
+ }
37
+ function jsonSafeRender(render) {
38
+ try {
39
+ JSON.stringify(render);
40
+ return render;
41
+ } catch {
42
+ return {
43
+ ...render,
44
+ lastRenderCause: toWireCause(render.lastRenderCause),
45
+ renderHistory: render.renderHistory?.map(event => ({
46
+ ...event,
47
+ capturedProps: undefined,
48
+ capturedState: undefined,
49
+ cause: toWireCause(event.cause) ?? event.cause
50
+ }))
51
+ };
52
+ }
53
+ }
11
54
 
12
55
  /**
13
56
  * Sync adapter for the highlight-updates tool, consumed by
@@ -20,15 +63,18 @@ function ensureInitialized() {
20
63
  * as a mirror. Mutations (toggle, freeze, clear, spotlight) come back as
21
64
  * actions and run on the device; spotlight even highlights the component on
22
65
  * the phone screen while browsing details from the desktop.
66
+ *
67
+ * v2: per-component `renderHistory` (and hook-change values on lastRenderCause)
68
+ * stay on the device. Dashboards fetch them via `getRenderDetail`.
23
69
  */
24
70
  export const highlightUpdatesSyncAdapter = {
25
- version: 1,
71
+ version: 2,
26
72
  getSnapshot: () => ({
27
73
  enabled: HighlightUpdatesController.isEnabled(),
28
74
  frozen: HighlightUpdatesController.getFrozen(),
29
75
  // True while tracking but the visual boxes are hidden (screenshot tool).
30
76
  highlightsSuppressed: HighlightUpdatesController.getHighlightsSuppressed(),
31
- renders: RenderTracker.getRenders(),
77
+ renders: RenderTracker.getRenders().map(toWireRender),
32
78
  trackerState: RenderTracker.getState()
33
79
  }),
34
80
  subscribe: onChange => {
@@ -44,6 +90,31 @@ export const highlightUpdatesSyncAdapter = {
44
90
  };
45
91
  },
46
92
  actions: {
93
+ /**
94
+ * On-demand detail: one component's real renderHistory + lastRenderCause
95
+ * (including hookChanges). Wire-form snapshots omit those.
96
+ */
97
+ getRenderDetail: params => {
98
+ const {
99
+ nativeTag
100
+ } = params ?? {};
101
+ if (nativeTag == null) {
102
+ return {
103
+ found: false,
104
+ reason: "missing nativeTag"
105
+ };
106
+ }
107
+ const render = RenderTracker.getRender(String(nativeTag));
108
+ if (!render) return {
109
+ found: false,
110
+ reason: "unknown nativeTag"
111
+ };
112
+ return {
113
+ found: true,
114
+ nativeTag,
115
+ render: jsonSafeRender(render)
116
+ };
117
+ },
47
118
  toggle: () => {
48
119
  ensureInitialized();
49
120
  HighlightUpdatesController.toggle();
@@ -13,6 +13,7 @@
13
13
  * - Uses refs for values not displayed in UI
14
14
  */
15
15
  import React from "react";
16
+ import { type TrackedRender } from "../utils/RenderTracker";
16
17
  interface HighlightUpdatesModalProps {
17
18
  visible: boolean;
18
19
  onClose: () => void;
@@ -37,8 +38,14 @@ interface HighlightUpdatesModalProps {
37
38
  * This allows the parent to clear the navigation state.
38
39
  */
39
40
  onInitialNativeTagHandled?: () => void;
41
+ /**
42
+ * Fired when the user opens a component's detail view. Remote mirrors
43
+ * (Buoy Desktop) use this to fetch `renderHistory` on demand — wire-form
44
+ * snapshots omit the per-component history buffer.
45
+ */
46
+ onRenderSelect?: (render: TrackedRender) => void;
40
47
  }
41
- export declare function HighlightUpdatesModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, initialNativeTag, onInitialNativeTagHandled, inline, }: HighlightUpdatesModalProps): React.JSX.Element | null;
48
+ export declare function HighlightUpdatesModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, initialNativeTag, onInitialNativeTagHandled, onRenderSelect, inline, }: HighlightUpdatesModalProps): React.JSX.Element | null;
42
49
  /**
43
50
  * The same renders tool as `HighlightUpdatesModal`, rendered INLINE for hosts
44
51
  * that place tools in a panel rather than a modal. Exists so there is exactly
@@ -1 +1 @@
1
- {"version":3,"file":"HighlightUpdatesModal.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/components/HighlightUpdatesModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAgCxE,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;CACxC;AAcD,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,gBAAgB,EAChB,yBAAyB,EACzB,MAAc,GACf,EAAE,0BAA0B,4BA6kB5B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,IAAI,CAAC,0BAA0B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,qBAK/E;AAsCD,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"HighlightUpdatesModal.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/components/HighlightUpdatesModal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAiBxE,OAAO,EAAiB,KAAK,aAAa,EAAqE,MAAM,wBAAwB,CAAC;AAe9I,UAAU,0BAA0B;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAClD;AAcD,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,MAAc,GACf,EAAE,0BAA0B,4BAkmB5B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,IAAI,CAAC,0BAA0B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,qBAK/E;AAsCD,eAAe,qBAAqB,CAAC"}
@@ -78,6 +78,11 @@ export interface TrackedRender {
78
78
  color: string;
79
79
  lastRenderCause?: RenderCause;
80
80
  renderHistory?: RenderEvent[];
81
+ /**
82
+ * Count of on-device history events. Set on WIRE-FORM snapshots when
83
+ * `renderHistory` itself is omitted (fetched via `getRenderDetail`).
84
+ */
85
+ historyCount?: number;
81
86
  }
82
87
  export type FilterType = "any" | "viewType" | "testID" | "nativeID" | "component" | "accessibilityLabel";
83
88
  export interface FilterPattern {
@@ -346,6 +351,11 @@ declare class RenderTrackerSingleton {
346
351
  isTracking: boolean;
347
352
  isPaused: boolean;
348
353
  }): void;
354
+ /**
355
+ * Hydrate one mirrored render with on-demand detail (history / cause
356
+ * values) fetched via the adapter's `getRenderDetail`. Remote-mirror only.
357
+ */
358
+ hydrateRender(render: TrackedRender): void;
349
359
  /**
350
360
  * Get filter config
351
361
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTracker.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/RenderTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderTracker.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/RenderTracker.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { TrackedRender } from "../highlight-updates/utils/RenderTracker";
1
2
  /**
2
3
  * Sync adapter for the highlight-updates tool, consumed by
3
4
  * @buoy-gg/external-sync's `useExternalSync` (structurally matches its
@@ -9,6 +10,9 @@
9
10
  * as a mirror. Mutations (toggle, freeze, clear, spotlight) come back as
10
11
  * actions and run on the device; spotlight even highlights the component on
11
12
  * the phone screen while browsing details from the desktop.
13
+ *
14
+ * v2: per-component `renderHistory` (and hook-change values on lastRenderCause)
15
+ * stay on the device. Dashboards fetch them via `getRenderDetail`.
12
16
  */
13
17
  export declare const highlightUpdatesSyncAdapter: {
14
18
  version: number;
@@ -16,7 +20,7 @@ export declare const highlightUpdatesSyncAdapter: {
16
20
  enabled: boolean;
17
21
  frozen: boolean;
18
22
  highlightsSuppressed: boolean;
19
- renders: import("..").TrackedRender[];
23
+ renders: TrackedRender[];
20
24
  trackerState: {
21
25
  isTracking: boolean;
22
26
  isPaused: boolean;
@@ -24,6 +28,21 @@ export declare const highlightUpdatesSyncAdapter: {
24
28
  };
25
29
  subscribe: (onChange: () => void) => () => void;
26
30
  actions: {
31
+ /**
32
+ * On-demand detail: one component's real renderHistory + lastRenderCause
33
+ * (including hookChanges). Wire-form snapshots omit those.
34
+ */
35
+ getRenderDetail: (params: unknown) => {
36
+ found: false;
37
+ reason: string;
38
+ nativeTag?: undefined;
39
+ render?: undefined;
40
+ } | {
41
+ found: true;
42
+ nativeTag: number;
43
+ render: TrackedRender;
44
+ reason?: undefined;
45
+ };
27
46
  toggle: () => void;
28
47
  setEnabled: (params: unknown) => void;
29
48
  toggleFreeze: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"highlightUpdatesSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/highlightUpdatesSyncAdapter.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;0BAUhB,MAAM,IAAI;;;6BAkBT,OAAO;;;+BAYL,OAAO;kCASJ,OAAO;oCAQL,OAAO;;6BAad,OAAO;;CAE/B,CAAC"}
1
+ {"version":3,"file":"highlightUpdatesSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/highlightUpdatesSyncAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,0CAA0C,CAAC;AA2DlD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;0BAUhB,MAAM,IAAI;;QAc9B;;;WAGG;kCACuB,OAAO;;;;;;;;;;;;6BAcZ,OAAO;;;+BAYL,OAAO;kCASJ,OAAO;oCAQL,OAAO;;6BAad,OAAO;;CAE/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/highlight-updates",
3
- "version": "7.0.17",
3
+ "version": "7.0.18",
4
4
  "description": "Render highlighter for React Native — see every render with its cause: mount, state, props, or parent. Part of Buoy devtools.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -26,14 +26,14 @@
26
26
  ],
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@buoy-gg/shared-ui": "^7.0.17",
30
- "@buoy-gg/floating-tools-core": "^7.0.17"
29
+ "@buoy-gg/shared-ui": "^7.0.18",
30
+ "@buoy-gg/floating-tools-core": "^7.0.18"
31
31
  },
32
32
  "peerDependencies": {
33
- "@buoy-gg/license": "7.0.17",
33
+ "@buoy-gg/license": "7.0.18",
34
34
  "react": "*",
35
35
  "react-native": "*",
36
- "@buoy-gg/core": "^7.0.17"
36
+ "@buoy-gg/core": "^7.0.18"
37
37
  },
38
38
  "peerDependenciesMeta": {
39
39
  "@buoy-gg/core": {
@@ -44,8 +44,8 @@
44
44
  "@types/react": "^19.1.0",
45
45
  "@types/react-native": "^0.73.0",
46
46
  "typescript": "~5.8.3",
47
- "@buoy-gg/license": "^7.0.17",
48
- "@buoy-gg/core": "^7.0.17"
47
+ "@buoy-gg/license": "^7.0.18",
48
+ "@buoy-gg/core": "^7.0.18"
49
49
  },
50
50
  "react-native-builder-bob": {
51
51
  "source": "src",