@buoy-gg/highlight-updates 7.0.17 → 7.0.19

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,57 @@ 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
+
43
+ /**
44
+ * Deliberately serializes to test serializability, unlike the snapshot guards
45
+ * elsewhere. This runs once per `getRenderDetail` — a user clicking one row —
46
+ * not on the ~5x/sec snapshot, so there is no unbounded per-tick cost to
47
+ * avoid. Probing with a size walk first would just traverse the whole render
48
+ * before doing this anyway.
49
+ */
50
+ function jsonSafeRender(render) {
51
+ try {
52
+ JSON.stringify(render);
53
+ return render;
54
+ } catch {
55
+ return {
56
+ ...render,
57
+ lastRenderCause: toWireCause(render.lastRenderCause),
58
+ renderHistory: render.renderHistory?.map(event => ({
59
+ ...event,
60
+ capturedProps: undefined,
61
+ capturedState: undefined,
62
+ cause: toWireCause(event.cause) ?? event.cause
63
+ }))
64
+ };
65
+ }
66
+ }
16
67
 
17
68
  /**
18
69
  * Sync adapter for the highlight-updates tool, consumed by
@@ -25,15 +76,18 @@ function ensureInitialized() {
25
76
  * as a mirror. Mutations (toggle, freeze, clear, spotlight) come back as
26
77
  * actions and run on the device; spotlight even highlights the component on
27
78
  * the phone screen while browsing details from the desktop.
79
+ *
80
+ * v2: per-component `renderHistory` (and hook-change values on lastRenderCause)
81
+ * stay on the device. Dashboards fetch them via `getRenderDetail`.
28
82
  */
29
83
  const highlightUpdatesSyncAdapter = exports.highlightUpdatesSyncAdapter = {
30
- version: 1,
84
+ version: 2,
31
85
  getSnapshot: () => ({
32
86
  enabled: _HighlightUpdatesController.default.isEnabled(),
33
87
  frozen: _HighlightUpdatesController.default.getFrozen(),
34
88
  // True while tracking but the visual boxes are hidden (screenshot tool).
35
89
  highlightsSuppressed: _HighlightUpdatesController.default.getHighlightsSuppressed(),
36
- renders: _RenderTracker.RenderTracker.getRenders(),
90
+ renders: _RenderTracker.RenderTracker.getRenders().map(toWireRender),
37
91
  trackerState: _RenderTracker.RenderTracker.getState()
38
92
  }),
39
93
  subscribe: onChange => {
@@ -49,6 +103,31 @@ const highlightUpdatesSyncAdapter = exports.highlightUpdatesSyncAdapter = {
49
103
  };
50
104
  },
51
105
  actions: {
106
+ /**
107
+ * On-demand detail: one component's real renderHistory + lastRenderCause
108
+ * (including hookChanges). Wire-form snapshots omit those.
109
+ */
110
+ getRenderDetail: params => {
111
+ const {
112
+ nativeTag
113
+ } = params ?? {};
114
+ if (nativeTag == null) {
115
+ return {
116
+ found: false,
117
+ reason: "missing nativeTag"
118
+ };
119
+ }
120
+ const render = _RenderTracker.RenderTracker.getRender(String(nativeTag));
121
+ if (!render) return {
122
+ found: false,
123
+ reason: "unknown nativeTag"
124
+ };
125
+ return {
126
+ found: true,
127
+ nativeTag,
128
+ render: jsonSafeRender(render)
129
+ };
130
+ },
52
131
  toggle: () => {
53
132
  ensureInitialized();
54
133
  _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,57 @@ 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
+
38
+ /**
39
+ * Deliberately serializes to test serializability, unlike the snapshot guards
40
+ * elsewhere. This runs once per `getRenderDetail` — a user clicking one row —
41
+ * not on the ~5x/sec snapshot, so there is no unbounded per-tick cost to
42
+ * avoid. Probing with a size walk first would just traverse the whole render
43
+ * before doing this anyway.
44
+ */
45
+ function jsonSafeRender(render) {
46
+ try {
47
+ JSON.stringify(render);
48
+ return render;
49
+ } catch {
50
+ return {
51
+ ...render,
52
+ lastRenderCause: toWireCause(render.lastRenderCause),
53
+ renderHistory: render.renderHistory?.map(event => ({
54
+ ...event,
55
+ capturedProps: undefined,
56
+ capturedState: undefined,
57
+ cause: toWireCause(event.cause) ?? event.cause
58
+ }))
59
+ };
60
+ }
61
+ }
11
62
 
12
63
  /**
13
64
  * Sync adapter for the highlight-updates tool, consumed by
@@ -20,15 +71,18 @@ function ensureInitialized() {
20
71
  * as a mirror. Mutations (toggle, freeze, clear, spotlight) come back as
21
72
  * actions and run on the device; spotlight even highlights the component on
22
73
  * the phone screen while browsing details from the desktop.
74
+ *
75
+ * v2: per-component `renderHistory` (and hook-change values on lastRenderCause)
76
+ * stay on the device. Dashboards fetch them via `getRenderDetail`.
23
77
  */
24
78
  export const highlightUpdatesSyncAdapter = {
25
- version: 1,
79
+ version: 2,
26
80
  getSnapshot: () => ({
27
81
  enabled: HighlightUpdatesController.isEnabled(),
28
82
  frozen: HighlightUpdatesController.getFrozen(),
29
83
  // True while tracking but the visual boxes are hidden (screenshot tool).
30
84
  highlightsSuppressed: HighlightUpdatesController.getHighlightsSuppressed(),
31
- renders: RenderTracker.getRenders(),
85
+ renders: RenderTracker.getRenders().map(toWireRender),
32
86
  trackerState: RenderTracker.getState()
33
87
  }),
34
88
  subscribe: onChange => {
@@ -44,6 +98,31 @@ export const highlightUpdatesSyncAdapter = {
44
98
  };
45
99
  },
46
100
  actions: {
101
+ /**
102
+ * On-demand detail: one component's real renderHistory + lastRenderCause
103
+ * (including hookChanges). Wire-form snapshots omit those.
104
+ */
105
+ getRenderDetail: params => {
106
+ const {
107
+ nativeTag
108
+ } = params ?? {};
109
+ if (nativeTag == null) {
110
+ return {
111
+ found: false,
112
+ reason: "missing nativeTag"
113
+ };
114
+ }
115
+ const render = RenderTracker.getRender(String(nativeTag));
116
+ if (!render) return {
117
+ found: false,
118
+ reason: "unknown nativeTag"
119
+ };
120
+ return {
121
+ found: true,
122
+ nativeTag,
123
+ render: jsonSafeRender(render)
124
+ };
125
+ },
47
126
  toggle: () => {
48
127
  ensureInitialized();
49
128
  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":"AAAA;;;;;;GAMG;AAOH;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAGlE,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAGd,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAEd;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IACjG,oCAAoC;IACpC,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,CAAC;IAInB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,aAAa,CAAC,EAAE,GAAG,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE;QACb,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IAEd,eAAe,CAAC,EAAE,WAAW,CAAC;IAI9B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEzG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAE3B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG9B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAG9B,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,eAAe,EAAE,aAAa,EAAE,CAAC;IAGjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,qBAAqB,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;AAChE,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,KAAK,IAAI,CAAC;AACjF,KAAK,gBAAgB,GAAG,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAClE,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AACtD,6EAA6E;AAC7E,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAQ/E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;;;;OAMG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAI3B;;;;;;OAMG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAI9B;;;;;;;;;;OAUG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;;;;;;;;OASG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,cAAM,sBAAsB;IAC1B,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,eAAe,CAAkC;IACzD,0EAA0E;IAC1E,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAcd;IAGF,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,OAAO,CAWb;IAEF;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE;YACb,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,aAAa,CAAC,EAAE,GAAG,CAAC;KACrB,GAAG,IAAI;IAyFR;;OAEG;IACH,OAAO,CAAC,cAAc;IAkCtB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAUlC;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE;YACb,CAAC,EAAE,MAAM,CAAC;YACV,CAAC,EAAE,MAAM,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,GAAG,IAAI;IA0CR;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB;;;OAGG;IACH,UAAU,IAAI,aAAa,EAAE;IAI7B;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO;IAmEX;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2DhC;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAiB3B;;OAEG;IACH,kBAAkB,CAAC,UAAU,GAAE,MAAW,GAAG,aAAa,EAAE;IAkC5D;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,QAAQ,IAAI;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;IAItD;;;;;OAKG;IACH,cAAc,CACZ,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GACjD,IAAI;IA+BP;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAM1C;;OAEG;IACH,UAAU,IAAI,YAAY;IAI1B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAMhD;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMhG;;OAEG;IACH,oBAAoB,CAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,EACtD,OAAO,EAAE,MAAM,GACd,IAAI;IAMP;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMhG;;OAEG;IACH,oBAAoB,CAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,EACtD,OAAO,EAAE,MAAM,GACd,IAAI;IAMP;;OAEG;IACH,YAAY,IAAI,IAAI;IAkBpB;;OAEG;IACH,iBAAiB,IAAI;QACnB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B;IAwBD;;OAEG;IACH,QAAQ,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAW7D;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAStD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,IAAI;IASrD;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAS3D;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,IAAI;IASxD;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAOxD;;OAEG;IACH,2BAA2B,IAAI,MAAM;IAIrC;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IA4ChD;;OAEG;IACH,WAAW,IAAI,qBAAqB;IAIpC;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,IAAI;IAkC9D;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAO7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQpC;;OAEG;IACH,qBAAqB,IAAI;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,yBAAyB,EAAE,MAAM,CAAC;KACnC;IAmBD;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,qBAAqB;CAU9B;AAGD,eAAO,MAAM,aAAa,wBAA+B,CAAC;AAE1D,eAAe,aAAa,CAAC"}
@@ -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,15 +28,30 @@ 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
- setEnabled: (params: unknown) => void;
47
+ setEnabled: (params?: unknown) => void;
29
48
  toggleFreeze: () => void;
30
49
  clearRenderCounts: () => void;
31
- setSpotlight: (params: unknown) => void;
32
- locateComponent: (params: unknown) => Promise<import("../highlight-updates/utils/HighlightUpdatesController").LocateComponentResult>;
33
- setSilentTracking: (params: unknown) => void;
50
+ setSpotlight: (params?: unknown) => void;
51
+ locateComponent: (params?: unknown) => Promise<import("../highlight-updates/utils/HighlightUpdatesController").LocateComponentResult>;
52
+ setSilentTracking: (params?: unknown) => void;
34
53
  describeScreen: () => Promise<import("../highlight-updates/utils/screenElements").DescribeScreenResult>;
35
- tapElement: (params: unknown) => Promise<import("../highlight-updates/utils/screenElements").TapElementResult>;
54
+ tapElement: (params?: unknown) => Promise<import("../highlight-updates/utils/screenElements").TapElementResult>;
36
55
  };
37
56
  };
38
57
  //# sourceMappingURL=highlightUpdatesSyncAdapter.d.ts.map
@@ -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;AAkElD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;0BAUhB,MAAM,IAAI;;QAc9B;;;WAGG;mCACwB,OAAO;;;;;;;;;;;;8BAcZ,OAAO;;;gCAYL,OAAO;mCASJ,OAAO;qCAQL,OAAO;;8BAad,OAAO;;CAEhC,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.19",
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.19",
30
+ "@buoy-gg/floating-tools-core": "^7.0.19"
31
31
  },
32
32
  "peerDependencies": {
33
- "@buoy-gg/license": "7.0.17",
33
+ "@buoy-gg/license": "7.0.19",
34
34
  "react": "*",
35
35
  "react-native": "*",
36
- "@buoy-gg/core": "^7.0.17"
36
+ "@buoy-gg/core": "^7.0.19"
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.19",
48
+ "@buoy-gg/core": "^7.0.19"
49
49
  },
50
50
  "react-native-builder-bob": {
51
51
  "source": "src",
@@ -63,7 +63,12 @@
63
63
  "sourceMaps": false
64
64
  }
65
65
  ],
66
- "typescript"
66
+ [
67
+ "typescript",
68
+ {
69
+ "project": "tsconfig.build.json"
70
+ }
71
+ ]
67
72
  ]
68
73
  },
69
74
  "repository": {