@buoy-gg/highlight-updates 7.0.4 → 7.0.5
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.
- package/lib/commonjs/highlight-updates/components/HighlightUpdatesModal.js +80 -36
- package/lib/commonjs/highlight-updates/utils/screenElements.js +37 -7
- package/lib/commonjs/index.js +8 -0
- package/lib/module/highlight-updates/components/HighlightUpdatesModal.js +79 -36
- package/lib/module/highlight-updates/utils/screenElements.js +37 -7
- package/lib/module/index.js +3 -1
- package/lib/typescript/highlight-updates/components/HighlightUpdatesModal.d.ts +15 -1
- package/lib/typescript/highlight-updates/components/HighlightUpdatesModal.d.ts.map +1 -1
- package/lib/typescript/highlight-updates/utils/screenElements.d.ts +4 -0
- package/lib/typescript/highlight-updates/utils/screenElements.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.HighlightToolView = HighlightToolView;
|
|
6
7
|
exports.HighlightUpdatesModal = HighlightUpdatesModal;
|
|
7
8
|
exports.default = void 0;
|
|
8
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -55,7 +56,8 @@ function HighlightUpdatesModal({
|
|
|
55
56
|
onMinimize,
|
|
56
57
|
enableSharedModalDimensions = false,
|
|
57
58
|
initialNativeTag,
|
|
58
|
-
onInitialNativeTagHandled
|
|
59
|
+
onInitialNativeTagHandled,
|
|
60
|
+
inline = false
|
|
59
61
|
}) {
|
|
60
62
|
const isPro = (0, _license.useIsPro)();
|
|
61
63
|
|
|
@@ -484,6 +486,55 @@ function HighlightUpdatesModal({
|
|
|
484
486
|
onEventIndexChange: setHistoryEventIndex,
|
|
485
487
|
isPro: isPro
|
|
486
488
|
}) : null;
|
|
489
|
+
const body = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
490
|
+
nativeID: "__rn_buoy__highlight-modal",
|
|
491
|
+
style: styles.container,
|
|
492
|
+
children: showCopySettingsView ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_RendersCopySettingsView.RendersCopySettingsView, {
|
|
493
|
+
renders: copyRendersSnapshot
|
|
494
|
+
}) : selectedRender ? detailViewActiveTab === "details" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderDetailView.RenderDetailView, {
|
|
495
|
+
render: selectedRender,
|
|
496
|
+
disableInternalFooter: true,
|
|
497
|
+
onAddFilter: handleAddFilter,
|
|
498
|
+
isPro: isPro
|
|
499
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderHistoryViewer.RenderHistoryViewer, {
|
|
500
|
+
render: selectedRender,
|
|
501
|
+
disableInternalFooter: true,
|
|
502
|
+
selectedEventIndex: historyEventIndex,
|
|
503
|
+
onEventIndexChange: setHistoryEventIndex,
|
|
504
|
+
isPro: isPro
|
|
505
|
+
}) : showFilterView ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightFilterView.HighlightFilterView, {
|
|
506
|
+
filters: filters,
|
|
507
|
+
onFilterChange: handleFilterChange,
|
|
508
|
+
settings: settings,
|
|
509
|
+
onSettingsChange: handleSettingsChange,
|
|
510
|
+
availableProps: _RenderTracker.RenderTracker.getAvailableProps(),
|
|
511
|
+
activeTab: filterViewActiveTab
|
|
512
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
513
|
+
children: [!isTracking && /*#__PURE__*/(0, _jsxRuntime.jsx)(DisabledBanner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IsolatedRenderList.IsolatedRenderList, {
|
|
514
|
+
searchText: searchText,
|
|
515
|
+
filters: filters,
|
|
516
|
+
onSelectRender: handleRenderPress,
|
|
517
|
+
onStatsChange: handleStatsChange,
|
|
518
|
+
onRendersChange: handleRendersChange,
|
|
519
|
+
isTracking: isTracking,
|
|
520
|
+
isPro: isPro
|
|
521
|
+
})]
|
|
522
|
+
})
|
|
523
|
+
});
|
|
524
|
+
|
|
525
|
+
// The ONLY difference between the phone and the desktop dashboard is which
|
|
526
|
+
// shell the header, body and footer go in. Everything above this is shared.
|
|
527
|
+
if (inline) {
|
|
528
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TickProvider, {
|
|
529
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
530
|
+
style: styles.inlineRoot,
|
|
531
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
532
|
+
style: styles.inlineHeader,
|
|
533
|
+
children: renderHeaderContent()
|
|
534
|
+
}), body, footerNode]
|
|
535
|
+
})
|
|
536
|
+
});
|
|
537
|
+
}
|
|
487
538
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TickProvider, {
|
|
488
539
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
|
|
489
540
|
visible: visible,
|
|
@@ -500,45 +551,38 @@ function HighlightUpdatesModal({
|
|
|
500
551
|
styles: {},
|
|
501
552
|
footer: footerNode,
|
|
502
553
|
footerHeight: selectedRender ? detailViewActiveTab === "details" ? 68 : (selectedRender.renderHistory?.length ?? 0) > 1 ? 68 : 0 : 0,
|
|
503
|
-
children:
|
|
504
|
-
nativeID: "__rn_buoy__highlight-modal",
|
|
505
|
-
style: styles.container,
|
|
506
|
-
children: showCopySettingsView ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_RendersCopySettingsView.RendersCopySettingsView, {
|
|
507
|
-
renders: copyRendersSnapshot
|
|
508
|
-
}) : selectedRender ? detailViewActiveTab === "details" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderDetailView.RenderDetailView, {
|
|
509
|
-
render: selectedRender,
|
|
510
|
-
disableInternalFooter: true,
|
|
511
|
-
onAddFilter: handleAddFilter,
|
|
512
|
-
isPro: isPro
|
|
513
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderHistoryViewer.RenderHistoryViewer, {
|
|
514
|
-
render: selectedRender,
|
|
515
|
-
disableInternalFooter: true,
|
|
516
|
-
selectedEventIndex: historyEventIndex,
|
|
517
|
-
onEventIndexChange: setHistoryEventIndex,
|
|
518
|
-
isPro: isPro
|
|
519
|
-
}) : showFilterView ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightFilterView.HighlightFilterView, {
|
|
520
|
-
filters: filters,
|
|
521
|
-
onFilterChange: handleFilterChange,
|
|
522
|
-
settings: settings,
|
|
523
|
-
onSettingsChange: handleSettingsChange,
|
|
524
|
-
availableProps: _RenderTracker.RenderTracker.getAvailableProps(),
|
|
525
|
-
activeTab: filterViewActiveTab
|
|
526
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
527
|
-
children: [!isTracking && /*#__PURE__*/(0, _jsxRuntime.jsx)(DisabledBanner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IsolatedRenderList.IsolatedRenderList, {
|
|
528
|
-
searchText: searchText,
|
|
529
|
-
filters: filters,
|
|
530
|
-
onSelectRender: handleRenderPress,
|
|
531
|
-
onStatsChange: handleStatsChange,
|
|
532
|
-
onRendersChange: handleRendersChange,
|
|
533
|
-
isTracking: isTracking,
|
|
534
|
-
isPro: isPro
|
|
535
|
-
})]
|
|
536
|
-
})
|
|
537
|
-
})
|
|
554
|
+
children: body
|
|
538
555
|
})
|
|
539
556
|
});
|
|
540
557
|
}
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* The same renders tool as `HighlightUpdatesModal`, rendered INLINE for hosts
|
|
561
|
+
* that place tools in a panel rather than a modal. Exists so there is exactly
|
|
562
|
+
* one implementation — the desktop dashboard used to ship its own copy of this
|
|
563
|
+
* component's header and screen router.
|
|
564
|
+
*/
|
|
565
|
+
function HighlightToolView(props = {}) {
|
|
566
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(HighlightUpdatesModal, {
|
|
567
|
+
...props,
|
|
568
|
+
inline: true,
|
|
569
|
+
visible: true,
|
|
570
|
+
onClose: () => {}
|
|
571
|
+
});
|
|
572
|
+
}
|
|
541
573
|
const styles = _reactNative.StyleSheet.create({
|
|
574
|
+
inlineRoot: {
|
|
575
|
+
flex: 1,
|
|
576
|
+
minHeight: 0,
|
|
577
|
+
backgroundColor: _sharedUi.buoyColors.base
|
|
578
|
+
},
|
|
579
|
+
inlineHeader: {
|
|
580
|
+
paddingHorizontal: 12,
|
|
581
|
+
paddingVertical: 8,
|
|
582
|
+
borderBottomWidth: 1,
|
|
583
|
+
borderBottomColor: _sharedUi.buoyColors.border,
|
|
584
|
+
backgroundColor: _sharedUi.buoyColors.card
|
|
585
|
+
},
|
|
542
586
|
container: {
|
|
543
587
|
flex: 1,
|
|
544
588
|
backgroundColor: _sharedUi.buoyColors.base
|
|
@@ -298,23 +298,27 @@ function collectDescendantText(root, maxDepth) {
|
|
|
298
298
|
return joined ? joined.slice(0, 80) : undefined;
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
-
/** Nearest onPress
|
|
301
|
+
/** Nearest onPress / onLongPress handlers at or above a fiber. */
|
|
302
|
+
|
|
302
303
|
function findPressHandler(fiber) {
|
|
303
304
|
let cur = fiber;
|
|
304
305
|
let depth = 0;
|
|
306
|
+
let press = null;
|
|
305
307
|
let longPress = null;
|
|
306
|
-
while (cur && depth < 25) {
|
|
308
|
+
while (cur && depth < 25 && !(press && longPress)) {
|
|
307
309
|
const p = getProps(cur);
|
|
308
310
|
if (p) {
|
|
309
|
-
if (typeof p.onPress === "function")
|
|
310
|
-
handler: p.onPress,
|
|
311
|
-
kind: "onPress"
|
|
312
|
-
};
|
|
311
|
+
if (!press && typeof p.onPress === "function") press = p.onPress;
|
|
313
312
|
if (!longPress && typeof p.onLongPress === "function") longPress = p.onLongPress;
|
|
314
313
|
}
|
|
315
314
|
cur = cur.return;
|
|
316
315
|
depth++;
|
|
317
316
|
}
|
|
317
|
+
if (press) return {
|
|
318
|
+
handler: press,
|
|
319
|
+
kind: "onPress",
|
|
320
|
+
longPress: longPress ?? undefined
|
|
321
|
+
};
|
|
318
322
|
return longPress ? {
|
|
319
323
|
handler: longPress,
|
|
320
324
|
kind: "onLongPress"
|
|
@@ -440,7 +444,9 @@ function collectCandidates() {
|
|
|
440
444
|
if (instance && seenInstances.has(instance)) {
|
|
441
445
|
const existing = out.find(c => c.instance === instance);
|
|
442
446
|
if (existing) {
|
|
443
|
-
if (!existing.press && press) existing.press = press;
|
|
447
|
+
if (!existing.press && press) existing.press = press;else if (existing.press && press?.longPress && !existing.press.longPress) {
|
|
448
|
+
existing.press.longPress = press.longPress;
|
|
449
|
+
}
|
|
444
450
|
if (!existing.valueControl && valueControl) existing.valueControl = valueControl;
|
|
445
451
|
if (!existing.textControl && textControl) existing.textControl = textControl;
|
|
446
452
|
if (!existing.testID && testID) existing.testID = testID;
|
|
@@ -518,6 +524,7 @@ async function describeScreen() {
|
|
|
518
524
|
label: c.label,
|
|
519
525
|
text: c.text,
|
|
520
526
|
interactive: !!(c.press || c.valueControl || c.textControl),
|
|
527
|
+
longPressable: c.press && (c.press.kind === "onLongPress" || c.press.longPress) ? true : undefined,
|
|
521
528
|
control,
|
|
522
529
|
value,
|
|
523
530
|
tap,
|
|
@@ -659,6 +666,29 @@ async function tapElement(params) {
|
|
|
659
666
|
};
|
|
660
667
|
try {
|
|
661
668
|
if (c.press) {
|
|
669
|
+
if (params.longPress) {
|
|
670
|
+
const lp = c.press.kind === "onLongPress" ? c.press.handler : c.press.longPress;
|
|
671
|
+
if (!lp) {
|
|
672
|
+
return {
|
|
673
|
+
tapped: false,
|
|
674
|
+
scrolled,
|
|
675
|
+
reason: `Matched "${c.name}"${c.text ? ` ("${c.text}")` : ""} but it has no onLongPress handler — call tap_element without longPress to tap it normally.`,
|
|
676
|
+
matched: {
|
|
677
|
+
...base,
|
|
678
|
+
via: "onPress"
|
|
679
|
+
}
|
|
680
|
+
};
|
|
681
|
+
}
|
|
682
|
+
lp(makeSyntheticPressEvent(c.rect));
|
|
683
|
+
return {
|
|
684
|
+
tapped: true,
|
|
685
|
+
scrolled,
|
|
686
|
+
matched: {
|
|
687
|
+
...base,
|
|
688
|
+
via: "onLongPress"
|
|
689
|
+
}
|
|
690
|
+
};
|
|
691
|
+
}
|
|
662
692
|
c.press.handler(makeSyntheticPressEvent(c.rect));
|
|
663
693
|
return {
|
|
664
694
|
tapped: true,
|
package/lib/commonjs/index.js
CHANGED
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "HighlightFilterView", {
|
|
|
27
27
|
return _HighlightFilterView.HighlightFilterView;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "HighlightToolView", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _HighlightUpdatesModal.HighlightToolView;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
Object.defineProperty(exports, "HighlightUpdatesController", {
|
|
31
37
|
enumerable: true,
|
|
32
38
|
get: function () {
|
|
@@ -382,6 +388,8 @@ const onRenderEvent = callback => {
|
|
|
382
388
|
// ViewTypeMapper for translating native view names to component names
|
|
383
389
|
|
|
384
390
|
// Modal components for custom integrations
|
|
391
|
+
// `HighlightToolView` is the same tool rendered inline (header bar + body +
|
|
392
|
+
// footer) instead of inside a JsModal — for hosts that show tools in a panel.
|
|
385
393
|
|
|
386
394
|
// Simple JSON export for renders
|
|
387
395
|
exports.onRenderEvent = onRenderEvent;
|
|
@@ -49,7 +49,8 @@ export function HighlightUpdatesModal({
|
|
|
49
49
|
onMinimize,
|
|
50
50
|
enableSharedModalDimensions = false,
|
|
51
51
|
initialNativeTag,
|
|
52
|
-
onInitialNativeTagHandled
|
|
52
|
+
onInitialNativeTagHandled,
|
|
53
|
+
inline = false
|
|
53
54
|
}) {
|
|
54
55
|
const isPro = useIsPro();
|
|
55
56
|
|
|
@@ -478,6 +479,55 @@ export function HighlightUpdatesModal({
|
|
|
478
479
|
onEventIndexChange: setHistoryEventIndex,
|
|
479
480
|
isPro: isPro
|
|
480
481
|
}) : null;
|
|
482
|
+
const body = /*#__PURE__*/_jsx(View, {
|
|
483
|
+
nativeID: "__rn_buoy__highlight-modal",
|
|
484
|
+
style: styles.container,
|
|
485
|
+
children: showCopySettingsView ? /*#__PURE__*/_jsx(RendersCopySettingsView, {
|
|
486
|
+
renders: copyRendersSnapshot
|
|
487
|
+
}) : selectedRender ? detailViewActiveTab === "details" ? /*#__PURE__*/_jsx(RenderDetailView, {
|
|
488
|
+
render: selectedRender,
|
|
489
|
+
disableInternalFooter: true,
|
|
490
|
+
onAddFilter: handleAddFilter,
|
|
491
|
+
isPro: isPro
|
|
492
|
+
}) : /*#__PURE__*/_jsx(RenderHistoryViewer, {
|
|
493
|
+
render: selectedRender,
|
|
494
|
+
disableInternalFooter: true,
|
|
495
|
+
selectedEventIndex: historyEventIndex,
|
|
496
|
+
onEventIndexChange: setHistoryEventIndex,
|
|
497
|
+
isPro: isPro
|
|
498
|
+
}) : showFilterView ? /*#__PURE__*/_jsx(HighlightFilterView, {
|
|
499
|
+
filters: filters,
|
|
500
|
+
onFilterChange: handleFilterChange,
|
|
501
|
+
settings: settings,
|
|
502
|
+
onSettingsChange: handleSettingsChange,
|
|
503
|
+
availableProps: RenderTracker.getAvailableProps(),
|
|
504
|
+
activeTab: filterViewActiveTab
|
|
505
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
506
|
+
children: [!isTracking && /*#__PURE__*/_jsx(DisabledBanner, {}), /*#__PURE__*/_jsx(IsolatedRenderList, {
|
|
507
|
+
searchText: searchText,
|
|
508
|
+
filters: filters,
|
|
509
|
+
onSelectRender: handleRenderPress,
|
|
510
|
+
onStatsChange: handleStatsChange,
|
|
511
|
+
onRendersChange: handleRendersChange,
|
|
512
|
+
isTracking: isTracking,
|
|
513
|
+
isPro: isPro
|
|
514
|
+
})]
|
|
515
|
+
})
|
|
516
|
+
});
|
|
517
|
+
|
|
518
|
+
// The ONLY difference between the phone and the desktop dashboard is which
|
|
519
|
+
// shell the header, body and footer go in. Everything above this is shared.
|
|
520
|
+
if (inline) {
|
|
521
|
+
return /*#__PURE__*/_jsx(TickProvider, {
|
|
522
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
523
|
+
style: styles.inlineRoot,
|
|
524
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
525
|
+
style: styles.inlineHeader,
|
|
526
|
+
children: renderHeaderContent()
|
|
527
|
+
}), body, footerNode]
|
|
528
|
+
})
|
|
529
|
+
});
|
|
530
|
+
}
|
|
481
531
|
return /*#__PURE__*/_jsx(TickProvider, {
|
|
482
532
|
children: /*#__PURE__*/_jsx(JsModal, {
|
|
483
533
|
visible: visible,
|
|
@@ -494,45 +544,38 @@ export function HighlightUpdatesModal({
|
|
|
494
544
|
styles: {},
|
|
495
545
|
footer: footerNode,
|
|
496
546
|
footerHeight: selectedRender ? detailViewActiveTab === "details" ? 68 : (selectedRender.renderHistory?.length ?? 0) > 1 ? 68 : 0 : 0,
|
|
497
|
-
children:
|
|
498
|
-
nativeID: "__rn_buoy__highlight-modal",
|
|
499
|
-
style: styles.container,
|
|
500
|
-
children: showCopySettingsView ? /*#__PURE__*/_jsx(RendersCopySettingsView, {
|
|
501
|
-
renders: copyRendersSnapshot
|
|
502
|
-
}) : selectedRender ? detailViewActiveTab === "details" ? /*#__PURE__*/_jsx(RenderDetailView, {
|
|
503
|
-
render: selectedRender,
|
|
504
|
-
disableInternalFooter: true,
|
|
505
|
-
onAddFilter: handleAddFilter,
|
|
506
|
-
isPro: isPro
|
|
507
|
-
}) : /*#__PURE__*/_jsx(RenderHistoryViewer, {
|
|
508
|
-
render: selectedRender,
|
|
509
|
-
disableInternalFooter: true,
|
|
510
|
-
selectedEventIndex: historyEventIndex,
|
|
511
|
-
onEventIndexChange: setHistoryEventIndex,
|
|
512
|
-
isPro: isPro
|
|
513
|
-
}) : showFilterView ? /*#__PURE__*/_jsx(HighlightFilterView, {
|
|
514
|
-
filters: filters,
|
|
515
|
-
onFilterChange: handleFilterChange,
|
|
516
|
-
settings: settings,
|
|
517
|
-
onSettingsChange: handleSettingsChange,
|
|
518
|
-
availableProps: RenderTracker.getAvailableProps(),
|
|
519
|
-
activeTab: filterViewActiveTab
|
|
520
|
-
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
521
|
-
children: [!isTracking && /*#__PURE__*/_jsx(DisabledBanner, {}), /*#__PURE__*/_jsx(IsolatedRenderList, {
|
|
522
|
-
searchText: searchText,
|
|
523
|
-
filters: filters,
|
|
524
|
-
onSelectRender: handleRenderPress,
|
|
525
|
-
onStatsChange: handleStatsChange,
|
|
526
|
-
onRendersChange: handleRendersChange,
|
|
527
|
-
isTracking: isTracking,
|
|
528
|
-
isPro: isPro
|
|
529
|
-
})]
|
|
530
|
-
})
|
|
531
|
-
})
|
|
547
|
+
children: body
|
|
532
548
|
})
|
|
533
549
|
});
|
|
534
550
|
}
|
|
551
|
+
|
|
552
|
+
/**
|
|
553
|
+
* The same renders tool as `HighlightUpdatesModal`, rendered INLINE for hosts
|
|
554
|
+
* that place tools in a panel rather than a modal. Exists so there is exactly
|
|
555
|
+
* one implementation — the desktop dashboard used to ship its own copy of this
|
|
556
|
+
* component's header and screen router.
|
|
557
|
+
*/
|
|
558
|
+
export function HighlightToolView(props = {}) {
|
|
559
|
+
return /*#__PURE__*/_jsx(HighlightUpdatesModal, {
|
|
560
|
+
...props,
|
|
561
|
+
inline: true,
|
|
562
|
+
visible: true,
|
|
563
|
+
onClose: () => {}
|
|
564
|
+
});
|
|
565
|
+
}
|
|
535
566
|
const styles = StyleSheet.create({
|
|
567
|
+
inlineRoot: {
|
|
568
|
+
flex: 1,
|
|
569
|
+
minHeight: 0,
|
|
570
|
+
backgroundColor: buoyColors.base
|
|
571
|
+
},
|
|
572
|
+
inlineHeader: {
|
|
573
|
+
paddingHorizontal: 12,
|
|
574
|
+
paddingVertical: 8,
|
|
575
|
+
borderBottomWidth: 1,
|
|
576
|
+
borderBottomColor: buoyColors.border,
|
|
577
|
+
backgroundColor: buoyColors.card
|
|
578
|
+
},
|
|
536
579
|
container: {
|
|
537
580
|
flex: 1,
|
|
538
581
|
backgroundColor: buoyColors.base
|
|
@@ -294,23 +294,27 @@ function collectDescendantText(root, maxDepth) {
|
|
|
294
294
|
return joined ? joined.slice(0, 80) : undefined;
|
|
295
295
|
}
|
|
296
296
|
|
|
297
|
-
/** Nearest onPress
|
|
297
|
+
/** Nearest onPress / onLongPress handlers at or above a fiber. */
|
|
298
|
+
|
|
298
299
|
function findPressHandler(fiber) {
|
|
299
300
|
let cur = fiber;
|
|
300
301
|
let depth = 0;
|
|
302
|
+
let press = null;
|
|
301
303
|
let longPress = null;
|
|
302
|
-
while (cur && depth < 25) {
|
|
304
|
+
while (cur && depth < 25 && !(press && longPress)) {
|
|
303
305
|
const p = getProps(cur);
|
|
304
306
|
if (p) {
|
|
305
|
-
if (typeof p.onPress === "function")
|
|
306
|
-
handler: p.onPress,
|
|
307
|
-
kind: "onPress"
|
|
308
|
-
};
|
|
307
|
+
if (!press && typeof p.onPress === "function") press = p.onPress;
|
|
309
308
|
if (!longPress && typeof p.onLongPress === "function") longPress = p.onLongPress;
|
|
310
309
|
}
|
|
311
310
|
cur = cur.return;
|
|
312
311
|
depth++;
|
|
313
312
|
}
|
|
313
|
+
if (press) return {
|
|
314
|
+
handler: press,
|
|
315
|
+
kind: "onPress",
|
|
316
|
+
longPress: longPress ?? undefined
|
|
317
|
+
};
|
|
314
318
|
return longPress ? {
|
|
315
319
|
handler: longPress,
|
|
316
320
|
kind: "onLongPress"
|
|
@@ -436,7 +440,9 @@ function collectCandidates() {
|
|
|
436
440
|
if (instance && seenInstances.has(instance)) {
|
|
437
441
|
const existing = out.find(c => c.instance === instance);
|
|
438
442
|
if (existing) {
|
|
439
|
-
if (!existing.press && press) existing.press = press;
|
|
443
|
+
if (!existing.press && press) existing.press = press;else if (existing.press && press?.longPress && !existing.press.longPress) {
|
|
444
|
+
existing.press.longPress = press.longPress;
|
|
445
|
+
}
|
|
440
446
|
if (!existing.valueControl && valueControl) existing.valueControl = valueControl;
|
|
441
447
|
if (!existing.textControl && textControl) existing.textControl = textControl;
|
|
442
448
|
if (!existing.testID && testID) existing.testID = testID;
|
|
@@ -514,6 +520,7 @@ export async function describeScreen() {
|
|
|
514
520
|
label: c.label,
|
|
515
521
|
text: c.text,
|
|
516
522
|
interactive: !!(c.press || c.valueControl || c.textControl),
|
|
523
|
+
longPressable: c.press && (c.press.kind === "onLongPress" || c.press.longPress) ? true : undefined,
|
|
517
524
|
control,
|
|
518
525
|
value,
|
|
519
526
|
tap,
|
|
@@ -655,6 +662,29 @@ export async function tapElement(params) {
|
|
|
655
662
|
};
|
|
656
663
|
try {
|
|
657
664
|
if (c.press) {
|
|
665
|
+
if (params.longPress) {
|
|
666
|
+
const lp = c.press.kind === "onLongPress" ? c.press.handler : c.press.longPress;
|
|
667
|
+
if (!lp) {
|
|
668
|
+
return {
|
|
669
|
+
tapped: false,
|
|
670
|
+
scrolled,
|
|
671
|
+
reason: `Matched "${c.name}"${c.text ? ` ("${c.text}")` : ""} but it has no onLongPress handler — call tap_element without longPress to tap it normally.`,
|
|
672
|
+
matched: {
|
|
673
|
+
...base,
|
|
674
|
+
via: "onPress"
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
lp(makeSyntheticPressEvent(c.rect));
|
|
679
|
+
return {
|
|
680
|
+
tapped: true,
|
|
681
|
+
scrolled,
|
|
682
|
+
matched: {
|
|
683
|
+
...base,
|
|
684
|
+
via: "onLongPress"
|
|
685
|
+
}
|
|
686
|
+
};
|
|
687
|
+
}
|
|
658
688
|
c.press.handler(makeSyntheticPressEvent(c.rect));
|
|
659
689
|
return {
|
|
660
690
|
tapped: true,
|
package/lib/module/index.js
CHANGED
|
@@ -113,7 +113,9 @@ export { PerformanceLogger } from "./highlight-updates/utils/PerformanceLogger";
|
|
|
113
113
|
export { VIEW_TYPE_MAP, getComponentDisplayName, getNativeViewType, isKnownViewType, getAllNativeViewTypes, getAllComponentNames } from "./highlight-updates/utils/ViewTypeMapper";
|
|
114
114
|
|
|
115
115
|
// Modal components for custom integrations
|
|
116
|
-
|
|
116
|
+
// `HighlightToolView` is the same tool rendered inline (header bar + body +
|
|
117
|
+
// footer) instead of inside a JsModal — for hosts that show tools in a panel.
|
|
118
|
+
export { HighlightUpdatesModal, HighlightToolView } from "./highlight-updates/components/HighlightUpdatesModal";
|
|
117
119
|
export { RenderListItem } from "./highlight-updates/components/RenderListItem";
|
|
118
120
|
export { RenderDetailView } from "./highlight-updates/components/RenderDetailView";
|
|
119
121
|
export { HighlightFilterView } from "./highlight-updates/components/HighlightFilterView";
|
|
@@ -16,6 +16,13 @@ import React from "react";
|
|
|
16
16
|
interface HighlightUpdatesModalProps {
|
|
17
17
|
visible: boolean;
|
|
18
18
|
onClose: () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Render as a header-bar + body (+ footer) stack instead of inside `JsModal`,
|
|
21
|
+
* for hosts that place tools in a panel rather than a modal (Buoy Desktop).
|
|
22
|
+
* Only the shell differs — header, screens and state are shared. See
|
|
23
|
+
* `HighlightToolView` at the bottom of this file.
|
|
24
|
+
*/
|
|
25
|
+
inline?: boolean;
|
|
19
26
|
onBack?: () => void;
|
|
20
27
|
onMinimize?: (modalState: any) => void;
|
|
21
28
|
enableSharedModalDimensions?: boolean;
|
|
@@ -31,6 +38,13 @@ interface HighlightUpdatesModalProps {
|
|
|
31
38
|
*/
|
|
32
39
|
onInitialNativeTagHandled?: () => void;
|
|
33
40
|
}
|
|
34
|
-
export declare function HighlightUpdatesModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, initialNativeTag, onInitialNativeTagHandled, }: HighlightUpdatesModalProps): React.JSX.Element | null;
|
|
41
|
+
export declare function HighlightUpdatesModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, initialNativeTag, onInitialNativeTagHandled, inline, }: HighlightUpdatesModalProps): React.JSX.Element | null;
|
|
42
|
+
/**
|
|
43
|
+
* The same renders tool as `HighlightUpdatesModal`, rendered INLINE for hosts
|
|
44
|
+
* that place tools in a panel rather than a modal. Exists so there is exactly
|
|
45
|
+
* one implementation — the desktop dashboard used to ship its own copy of this
|
|
46
|
+
* component's header and screen router.
|
|
47
|
+
*/
|
|
48
|
+
export declare function HighlightToolView(props?: Omit<HighlightUpdatesModalProps, "visible" | "onClose" | "inline">): React.JSX.Element;
|
|
35
49
|
export default HighlightUpdatesModal;
|
|
36
50
|
//# sourceMappingURL=HighlightUpdatesModal.d.ts.map
|
|
@@ -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,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,
|
|
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"}
|
|
@@ -34,6 +34,8 @@ export interface ScreenElement {
|
|
|
34
34
|
control?: "toggle" | "slider" | "text";
|
|
35
35
|
/** Current value for toggle/slider/text controls. */
|
|
36
36
|
value?: number | boolean | string;
|
|
37
|
+
/** True when an onLongPress handler is reachable (drive with longPress:true). */
|
|
38
|
+
longPressable?: boolean;
|
|
37
39
|
/** Normalized [0,1] tap point (center of the element). */
|
|
38
40
|
tap?: {
|
|
39
41
|
x: number;
|
|
@@ -61,6 +63,8 @@ export interface TapElementParams {
|
|
|
61
63
|
query?: string;
|
|
62
64
|
/** Scroll the target into view first if it's off-screen. Default true. */
|
|
63
65
|
scrollIntoView?: boolean;
|
|
66
|
+
/** Invoke the element's onLongPress instead of onPress. Fails if it has none. */
|
|
67
|
+
longPress?: boolean;
|
|
64
68
|
/**
|
|
65
69
|
* For value controls: the value to set. A toggle/switch flips to !current
|
|
66
70
|
* when omitted; a slider goes to the far end when omitted. Booleans target
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenElements.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/screenElements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"screenElements.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/screenElements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqaH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;QAClE,sDAAsD;QACtD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KACnC,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChG;AA8JD,wBAAsB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAiEpE;AAsDD,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsHpF"}
|
|
@@ -38,7 +38,7 @@ export { detectRenderCause, clearRenderCauseState, removeRenderCauseState, getRe
|
|
|
38
38
|
export { PerformanceLogger } from "./highlight-updates/utils/PerformanceLogger";
|
|
39
39
|
export type { BatchMetrics, BatchTimer } from "./highlight-updates/utils/PerformanceLogger";
|
|
40
40
|
export { VIEW_TYPE_MAP, getComponentDisplayName, getNativeViewType, isKnownViewType, getAllNativeViewTypes, getAllComponentNames, } from "./highlight-updates/utils/ViewTypeMapper";
|
|
41
|
-
export { HighlightUpdatesModal } from "./highlight-updates/components/HighlightUpdatesModal";
|
|
41
|
+
export { HighlightUpdatesModal, HighlightToolView, } from "./highlight-updates/components/HighlightUpdatesModal";
|
|
42
42
|
export { RenderListItem } from "./highlight-updates/components/RenderListItem";
|
|
43
43
|
export { RenderDetailView } from "./highlight-updates/components/RenderDetailView";
|
|
44
44
|
export { HighlightFilterView } from "./highlight-updates/components/HighlightFilterView";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAG7G,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAGtF,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAK1E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kDAAkD,CAAC;AA6C1D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,YAAY,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,eAAe,GAChB,MAAM,yCAAyC,CAAC;AAGjD,eAAO,MAAM,aAAa,GACxB,UAAU,CACR,KAAK,EAAE,OAAO,yCAAyC,EAAE,WAAW,EACpE,MAAM,EAAE,OAAO,yCAAyC,EAAE,aAAa,KACpE,IAAI,QAIV,CAAC;AAGF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EAEnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAG5F,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAG7G,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAGtF,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAK1E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kDAAkD,CAAC;AA6C1D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,YAAY,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,eAAe,GAChB,MAAM,yCAAyC,CAAC;AAGjD,eAAO,MAAM,aAAa,GACxB,UAAU,CACR,KAAK,EAAE,OAAO,yCAAyC,EAAE,WAAW,EACpE,MAAM,EAAE,OAAO,yCAAyC,EAAE,aAAa,KACpE,IAAI,QAIV,CAAC;AAGF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EAEnB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAG5F,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAKlD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,GACvB,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oDAAoD,CAAC;AAG5D,OAAO,EACL,mBAAmB,GACpB,MAAM,iDAAiD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/highlight-updates",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.5",
|
|
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/floating-tools-core": "7.0.
|
|
30
|
-
"@buoy-gg/shared-ui": "7.0.
|
|
29
|
+
"@buoy-gg/floating-tools-core": "7.0.5",
|
|
30
|
+
"@buoy-gg/shared-ui": "7.0.5"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@buoy-gg/license": "7.0.
|
|
33
|
+
"@buoy-gg/license": "7.0.5",
|
|
34
34
|
"react": "*",
|
|
35
35
|
"react-native": "*",
|
|
36
|
-
"@buoy-gg/core": "7.0.
|
|
36
|
+
"@buoy-gg/core": "7.0.5"
|
|
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.
|
|
48
|
-
"@buoy-gg/core": "7.0.
|
|
47
|
+
"@buoy-gg/license": "7.0.5",
|
|
48
|
+
"@buoy-gg/core": "7.0.5"
|
|
49
49
|
},
|
|
50
50
|
"react-native-builder-bob": {
|
|
51
51
|
"source": "src",
|