@buoy-gg/image-overlay 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.
@@ -9,6 +9,7 @@
9
9
  import { Image as RNImage, Dimensions } from "react-native";
10
10
  import { measureInstance } from "./componentMeasurement";
11
11
  import { scanForImageTargets } from "./fiberScanner";
12
+ import { getDevToolsHook } from "./devtoolsHook";
12
13
  const DEFAULT_STATE = {
13
14
  mode: null,
14
15
  enabled: false,
@@ -85,7 +86,7 @@ async function measureWithFallback(instance, label) {
85
86
  function startTraceTracking() {
86
87
  if (traceUnsubscribe) return; // already tracking
87
88
 
88
- const hook = global.__REACT_DEVTOOLS_GLOBAL_HOOK__;
89
+ const hook = getDevToolsHook();
89
90
  if (!hook) return;
90
91
 
91
92
  // Enable trace updates on all renderers (same as highlight-updates)
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Single accessor for the React DevTools global hook.
5
+ *
6
+ * Both the fiber scanner (target discovery) and the controller (auto-track via
7
+ * traceUpdates) reach for `__REACT_DEVTOOLS_GLOBAL_HOOK__`. Routing both through
8
+ * here gives embedded hosts — the docs-site live demo, and any future desktop
9
+ * port — one place to substitute their own hook, so the tool never instruments
10
+ * the host page's React renderer just because someone flipped Auto Track.
11
+ *
12
+ * On device nothing calls setDevToolsHookOverride, so this stays a plain
13
+ * passthrough to the global.
14
+ */
15
+
16
+ let hookOverride = null;
17
+
18
+ /**
19
+ * Substitute the hook the tool reads. Pass null to fall back to the global.
20
+ * The override only needs the parts the tool actually uses:
21
+ * `getFiberRoots(rendererId)`, and optionally `sub("traceUpdates", fn)` plus
22
+ * `rendererInterfaces` for auto-track.
23
+ */
24
+ export function setDevToolsHookOverride(hook) {
25
+ hookOverride = hook ?? null;
26
+ }
27
+ export function getDevToolsHook() {
28
+ if (hookOverride) return hookOverride;
29
+ if (typeof global === "undefined") return null;
30
+ return global.__REACT_DEVTOOLS_GLOBAL_HOOK__ ?? null;
31
+ }
@@ -7,17 +7,14 @@
7
7
  * Core traversal adapted from debug-borders/utils/fiberTreeTraversal.js
8
8
  */
9
9
 
10
+ import { getDevToolsHook } from "./devtoolsHook";
10
11
  const IMAGE_TARGET_PREFIX = "image-target:";
11
12
 
12
13
  // Fiber tag constants (from React internals)
13
14
  const HostComponent = 5;
14
15
  const OffscreenComponent = 22;
15
- function getReactDevToolsHook() {
16
- if (typeof global === "undefined") return null;
17
- return global.__REACT_DEVTOOLS_GLOBAL_HOOK__ ?? null;
18
- }
19
16
  function getFiberRoots() {
20
- const hook = getReactDevToolsHook();
17
+ const hook = getDevToolsHook();
21
18
  if (!hook?.getFiberRoots) return [];
22
19
  try {
23
20
  const rootsSet = hook.getFiberRoots(1);
@@ -80,7 +77,11 @@ export function scanForImageTargets() {
80
77
  for (const root of roots) {
81
78
  traverseFiberTree(root.current, fiber => {
82
79
  if (fiber.tag !== HostComponent) return;
83
- const testID = fiber.memoizedProps?.testID ?? fiber.pendingProps?.testID;
80
+
81
+ // react-native-web rewrites testID to data-testid before it reaches the
82
+ // host fiber, so read both — otherwise the scanner finds nothing in any
83
+ // RNW-rendered tree (example-web, the docs-site live demo).
84
+ const testID = fiber.memoizedProps?.testID ?? fiber.pendingProps?.testID ?? fiber.memoizedProps?.["data-testid"] ?? fiber.pendingProps?.["data-testid"];
84
85
  if (!testID || !testID.startsWith(IMAGE_TARGET_PREFIX)) return;
85
86
  const label = testID.slice(IMAGE_TARGET_PREFIX.length);
86
87
  if (!label) return;
@@ -16,7 +16,7 @@ export { imageOverlayToolPreset, createImageOverlayTool } from "./preset";
16
16
  // =============================================================================
17
17
  // COMPONENTS (For custom UI implementations)
18
18
  // =============================================================================
19
- export { ImageOverlayModal } from "./imageOverlay/components/ImageOverlayModal";
19
+ export { ImageOverlayModal, ImageOverlayToolView } from "./imageOverlay/components/ImageOverlayModal";
20
20
  export { ImageOverlayStandalone } from "./imageOverlay/components/ImageOverlayStandalone";
21
21
 
22
22
  // =============================================================================
@@ -28,6 +28,7 @@ export { ImageOverlayController } from "./imageOverlay/utils/ImageOverlayControl
28
28
  // UTILITIES (For custom integrations)
29
29
  // =============================================================================
30
30
  export { scanForImageTargets } from "./imageOverlay/utils/fiberScanner";
31
+ export { setDevToolsHookOverride } from "./imageOverlay/utils/devtoolsHook";
31
32
 
32
33
  // =============================================================================
33
34
  // TYPES (For TypeScript users)
@@ -1,3 +1,14 @@
1
1
  import type { ImageOverlayModalProps } from "../types";
2
- export declare function ImageOverlayModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, initialModalState, minimizeTargetPosition, }: ImageOverlayModalProps): import("react").JSX.Element;
2
+ export type ModalView = "idle" | "targets" | "controls" | "free";
3
+ export declare function ImageOverlayModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, initialModalState, minimizeTargetPosition, inline, initialView, }: ImageOverlayModalProps): import("react").JSX.Element;
4
+ /**
5
+ * The same Image Overlay tool as `ImageOverlayModal`, rendered INLINE for hosts
6
+ * that place tools in a panel rather than a bottom sheet (the docs-site live
7
+ * demo). Exists so there is exactly one implementation of the tool's header,
8
+ * mode chooser, target list and controls.
9
+ *
10
+ * `initialView` seeds which screen it opens on — the view is otherwise internal
11
+ * state reachable only by tapping.
12
+ */
13
+ export declare function ImageOverlayToolView(props?: Omit<ImageOverlayModalProps, "visible" | "onClose" | "inline">): import("react").JSX.Element;
3
14
  //# sourceMappingURL=ImageOverlayModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageOverlayModal.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/components/ImageOverlayModal.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAkC,MAAM,UAAU,CAAC;AAWvF,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,iBAAiB,EACjB,sBAAsB,GACvB,EAAE,sBAAsB,+BAshBxB"}
1
+ {"version":3,"file":"ImageOverlayModal.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/components/ImageOverlayModal.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,sBAAsB,EAAkC,MAAM,UAAU,CAAC;AAMvF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAKjE,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,iBAAiB,EACjB,sBAAsB,EACtB,MAAc,EACd,WAAW,GACZ,EAAE,sBAAsB,+BA4iBxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,GAAE,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAG3E"}
@@ -48,6 +48,10 @@ export interface ImageOverlayModalProps {
48
48
  x: number;
49
49
  y: number;
50
50
  };
51
+ /** Render in a panel instead of a bottom sheet (see `ImageOverlayToolView`). */
52
+ inline?: boolean;
53
+ /** Seed the screen the tool opens on. Defaults to what the controller implies. */
54
+ initialView?: "idle" | "targets" | "controls" | "free";
51
55
  [key: string]: any;
52
56
  }
53
57
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AACtD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,sBAAsB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AACtD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,sBAAsB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageOverlayController.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/utils/ImageOverlayController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,UAAU,CAAC;AAI3D,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAqI9C,eAAO,MAAM,sBAAsB;wBACb,QAAQ,GAAG,MAAM,IAAI;gBAM7B,YAAY;wBAME,GAAG,SAAS,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;qBAmBlD,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;sBAmB3B,MAAM;oBAKR,MAAM;iBAKT,MAAM,KAAK,MAAM;;;sBAeZ,OAAO;0BAKH,OAAO;sBASX,OAAO;yBAIJ,OAAO;wBAKR,OAAO;;;;;iBA+CR,OAAO,CAAC,IAAI,CAAC;uBAYP,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;uBAkC5B,MAAM,KAAK,MAAM;6BAKX,MAAM,UAAU,MAAM,KAAK,MAAM,KAAK,MAAM;;CAgBtE,CAAC"}
1
+ {"version":3,"file":"ImageOverlayController.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/utils/ImageOverlayController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,UAAU,CAAC;AAK3D,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAqI9C,eAAO,MAAM,sBAAsB;wBACb,QAAQ,GAAG,MAAM,IAAI;gBAM7B,YAAY;wBAME,GAAG,SAAS,MAAM,UAAU,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;qBAmBlD,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;sBAmB3B,MAAM;oBAKR,MAAM;iBAKT,MAAM,KAAK,MAAM;;;sBAeZ,OAAO;0BAKH,OAAO;sBASX,OAAO;yBAIJ,OAAO;wBAKR,OAAO;;;;;iBA+CR,OAAO,CAAC,IAAI,CAAC;uBAYP,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;uBAkC5B,MAAM,KAAK,MAAM;6BAKX,MAAM,UAAU,MAAM,KAAK,MAAM,KAAK,MAAM;;CAgBtE,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Single accessor for the React DevTools global hook.
3
+ *
4
+ * Both the fiber scanner (target discovery) and the controller (auto-track via
5
+ * traceUpdates) reach for `__REACT_DEVTOOLS_GLOBAL_HOOK__`. Routing both through
6
+ * here gives embedded hosts — the docs-site live demo, and any future desktop
7
+ * port — one place to substitute their own hook, so the tool never instruments
8
+ * the host page's React renderer just because someone flipped Auto Track.
9
+ *
10
+ * On device nothing calls setDevToolsHookOverride, so this stays a plain
11
+ * passthrough to the global.
12
+ */
13
+ /**
14
+ * Substitute the hook the tool reads. Pass null to fall back to the global.
15
+ * The override only needs the parts the tool actually uses:
16
+ * `getFiberRoots(rendererId)`, and optionally `sub("traceUpdates", fn)` plus
17
+ * `rendererInterfaces` for auto-track.
18
+ */
19
+ export declare function setDevToolsHookOverride(hook: unknown): void;
20
+ export declare function getDevToolsHook(): any;
21
+ //# sourceMappingURL=devtoolsHook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtoolsHook.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/utils/devtoolsHook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED,wBAAgB,eAAe,IAAI,GAAG,CAIrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fiberScanner.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/utils/fiberScanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoFjD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,EAAE,CA6BxD"}
1
+ {"version":3,"file":"fiberScanner.d.ts","sourceRoot":"","sources":["../../../../src/imageOverlay/utils/fiberScanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgFjD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,EAAE,CAmCxD"}
@@ -6,9 +6,10 @@
6
6
  * PUBLIC API - Only these exports are supported for external use.
7
7
  */
8
8
  export { imageOverlayToolPreset, createImageOverlayTool } from "./preset";
9
- export { ImageOverlayModal } from "./imageOverlay/components/ImageOverlayModal";
9
+ export { ImageOverlayModal, ImageOverlayToolView, } from "./imageOverlay/components/ImageOverlayModal";
10
10
  export { ImageOverlayStandalone } from "./imageOverlay/components/ImageOverlayStandalone";
11
11
  export { ImageOverlayController } from "./imageOverlay/utils/ImageOverlayController";
12
12
  export { scanForImageTargets } from "./imageOverlay/utils/fiberScanner";
13
+ export { setDevToolsHookOverride } from "./imageOverlay/utils/devtoolsHook";
13
14
  export type { ImageOverlayModalProps, OverlayState, OverlayMode, MeasuredRect, DiscoveredTarget, } from "./imageOverlay/types";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAK1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAK1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAKrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAKxE,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAK1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAK1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAKrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAK5E,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/image-overlay",
3
- "version": "7.0.17",
3
+ "version": "7.0.18",
4
4
  "description": "Pin your Figma mockup on top of the running app — pixel-perfect UI comparison without leaving the simulator. Part of Buoy devtools.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -26,7 +26,7 @@
26
26
  ],
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@buoy-gg/shared-ui": "^7.0.17"
29
+ "@buoy-gg/shared-ui": "^7.0.18"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": "*",