react-native-grab 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/cjs/react-native/__tests__/grab-context-description.test.js +81 -0
  2. package/dist/cjs/react-native/__tests__/grab-context-description.test.js.map +1 -1
  3. package/dist/cjs/react-native/containers.js +107 -25
  4. package/dist/cjs/react-native/containers.js.map +1 -1
  5. package/dist/cjs/react-native/context-menu.js +15 -23
  6. package/dist/cjs/react-native/context-menu.js.map +1 -1
  7. package/dist/cjs/react-native/description.js +31 -4
  8. package/dist/cjs/react-native/description.js.map +1 -1
  9. package/dist/cjs/react-native/grab-colors.js +7 -0
  10. package/dist/cjs/react-native/grab-colors.js.map +1 -0
  11. package/dist/cjs/react-native/grab-control-bar.js +9 -5
  12. package/dist/cjs/react-native/grab-control-bar.js.map +1 -1
  13. package/dist/cjs/react-native/grab-controller.js +105 -16
  14. package/dist/cjs/react-native/grab-controller.js.map +1 -1
  15. package/dist/cjs/react-native/grab-overlay.js +139 -170
  16. package/dist/cjs/react-native/grab-overlay.js.map +1 -1
  17. package/dist/cjs/react-native/grab-root-controls.js +89 -0
  18. package/dist/cjs/react-native/grab-root-controls.js.map +1 -0
  19. package/dist/cjs/react-native/grab-root.js +8 -2
  20. package/dist/cjs/react-native/grab-root.js.map +1 -1
  21. package/dist/cjs/react-native/grab-screen.js +18 -3
  22. package/dist/cjs/react-native/grab-screen.js.map +1 -1
  23. package/dist/cjs/react-native/index.js.map +1 -1
  24. package/dist/esm/react-native/__tests__/grab-context-description.test.js +83 -2
  25. package/dist/esm/react-native/__tests__/grab-context-description.test.js.map +1 -1
  26. package/dist/esm/react-native/containers.js +95 -20
  27. package/dist/esm/react-native/containers.js.map +1 -1
  28. package/dist/esm/react-native/context-menu.js +15 -23
  29. package/dist/esm/react-native/context-menu.js.map +1 -1
  30. package/dist/esm/react-native/description.js +28 -3
  31. package/dist/esm/react-native/description.js.map +1 -1
  32. package/dist/esm/react-native/grab-colors.js +4 -0
  33. package/dist/esm/react-native/grab-colors.js.map +1 -0
  34. package/dist/esm/react-native/grab-control-bar.js +9 -5
  35. package/dist/esm/react-native/grab-control-bar.js.map +1 -1
  36. package/dist/esm/react-native/grab-controller.js +97 -13
  37. package/dist/esm/react-native/grab-controller.js.map +1 -1
  38. package/dist/esm/react-native/grab-overlay.js +141 -172
  39. package/dist/esm/react-native/grab-overlay.js.map +1 -1
  40. package/dist/esm/react-native/grab-root-controls.js +85 -0
  41. package/dist/esm/react-native/grab-root-controls.js.map +1 -0
  42. package/dist/esm/react-native/grab-root.js +11 -5
  43. package/dist/esm/react-native/grab-root.js.map +1 -1
  44. package/dist/esm/react-native/grab-screen.js +21 -6
  45. package/dist/esm/react-native/grab-screen.js.map +1 -1
  46. package/dist/esm/react-native/index.js.map +1 -1
  47. package/dist/types/react-native/containers.d.ts +23 -4
  48. package/dist/types/react-native/containers.d.ts.map +1 -1
  49. package/dist/types/react-native/context-menu.d.ts +6 -1
  50. package/dist/types/react-native/context-menu.d.ts.map +1 -1
  51. package/dist/types/react-native/description.d.ts +5 -0
  52. package/dist/types/react-native/description.d.ts.map +1 -1
  53. package/dist/types/react-native/grab-colors.d.ts +4 -0
  54. package/dist/types/react-native/grab-colors.d.ts.map +1 -0
  55. package/dist/types/react-native/grab-control-bar.d.ts.map +1 -1
  56. package/dist/types/react-native/grab-controller.d.ts +17 -4
  57. package/dist/types/react-native/grab-controller.d.ts.map +1 -1
  58. package/dist/types/react-native/grab-overlay.d.ts +6 -1
  59. package/dist/types/react-native/grab-overlay.d.ts.map +1 -1
  60. package/dist/types/react-native/grab-root-controls.d.ts +2 -0
  61. package/dist/types/react-native/grab-root-controls.d.ts.map +1 -0
  62. package/dist/types/react-native/grab-root.d.ts.map +1 -1
  63. package/dist/types/react-native/grab-screen.d.ts +4 -2
  64. package/dist/types/react-native/grab-screen.d.ts.map +1 -1
  65. package/dist/types/react-native/index.d.ts.map +1 -1
  66. package/package.json +1 -1
@@ -1,30 +1,119 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toggleGrabMenu = exports.enableGrabbing = exports.setToggleGrabMenuHandler = exports.setEnableGrabbingHandler = void 0;
4
- let enableGrabbingHandler = null;
5
- let toggleGrabMenuHandler = null;
6
- const setEnableGrabbingHandler = (handler) => {
7
- enableGrabbingHandler = handler;
3
+ exports.toggleGrabMenu = exports.enableGrabbing = exports.clearGrabOwnerPresentation = exports.hideGrabSelectionMenu = exports.showGrabSelectionMenu = exports.setGrabSelectionSessionOwner = exports.useGrabControllerState = exports.unregisterLocalGrabSelectionController = exports.registerLocalGrabSelectionController = void 0;
4
+ const react_1 = require("react");
5
+ const containers_1 = require("./containers");
6
+ const localControllers = new Map();
7
+ const listeners = new Set();
8
+ let state = {
9
+ isMenuVisible: false,
10
+ selectedOwnerId: null,
11
+ selectionSessionOwnerId: null,
8
12
  };
9
- exports.setEnableGrabbingHandler = setEnableGrabbingHandler;
10
- const setToggleGrabMenuHandler = (handler) => {
11
- toggleGrabMenuHandler = handler;
13
+ const notify = () => {
14
+ for (const listener of listeners) {
15
+ listener();
16
+ }
17
+ };
18
+ const subscribe = (listener) => {
19
+ listeners.add(listener);
20
+ return () => {
21
+ listeners.delete(listener);
22
+ };
23
+ };
24
+ const setState = (updater) => {
25
+ state = typeof updater === "function" ? updater(state) : updater;
26
+ notify();
27
+ };
28
+ const stopAllSelections = () => {
29
+ for (const controller of localControllers.values()) {
30
+ controller.stopSelection();
31
+ controller.closeSelectionMenu();
32
+ }
33
+ };
34
+ const registerLocalGrabSelectionController = (ownerId, controller) => {
35
+ localControllers.set(ownerId, controller);
36
+ };
37
+ exports.registerLocalGrabSelectionController = registerLocalGrabSelectionController;
38
+ const unregisterLocalGrabSelectionController = (ownerId) => {
39
+ localControllers.delete(ownerId);
40
+ setState((prevState) => ({
41
+ ...prevState,
42
+ selectedOwnerId: prevState.selectedOwnerId === ownerId ? null : prevState.selectedOwnerId,
43
+ selectionSessionOwnerId: prevState.selectionSessionOwnerId === ownerId ? null : prevState.selectionSessionOwnerId,
44
+ }));
45
+ };
46
+ exports.unregisterLocalGrabSelectionController = unregisterLocalGrabSelectionController;
47
+ const useGrabControllerState = () => {
48
+ return (0, react_1.useSyncExternalStore)(subscribe, () => state, () => state);
12
49
  };
13
- exports.setToggleGrabMenuHandler = setToggleGrabMenuHandler;
50
+ exports.useGrabControllerState = useGrabControllerState;
51
+ const setGrabSelectionSessionOwner = (ownerId) => {
52
+ setState((prevState) => ({
53
+ ...prevState,
54
+ selectionSessionOwnerId: ownerId,
55
+ }));
56
+ };
57
+ exports.setGrabSelectionSessionOwner = setGrabSelectionSessionOwner;
58
+ const showGrabSelectionMenu = (ownerId) => {
59
+ setState((prevState) => ({
60
+ ...prevState,
61
+ selectedOwnerId: ownerId,
62
+ selectionSessionOwnerId: prevState.selectionSessionOwnerId === ownerId ? null : prevState.selectionSessionOwnerId,
63
+ }));
64
+ };
65
+ exports.showGrabSelectionMenu = showGrabSelectionMenu;
66
+ const hideGrabSelectionMenu = (ownerId) => {
67
+ setState((prevState) => ({
68
+ ...prevState,
69
+ selectedOwnerId: prevState.selectedOwnerId === ownerId ? null : prevState.selectedOwnerId,
70
+ }));
71
+ };
72
+ exports.hideGrabSelectionMenu = hideGrabSelectionMenu;
73
+ const clearGrabOwnerPresentation = (ownerId) => {
74
+ setState((prevState) => ({
75
+ ...prevState,
76
+ selectedOwnerId: prevState.selectedOwnerId === ownerId ? null : prevState.selectedOwnerId,
77
+ selectionSessionOwnerId: prevState.selectionSessionOwnerId === ownerId ? null : prevState.selectionSessionOwnerId,
78
+ }));
79
+ };
80
+ exports.clearGrabOwnerPresentation = clearGrabOwnerPresentation;
14
81
  const enableGrabbing = () => {
15
- if (!enableGrabbingHandler) {
82
+ const ownerId = (0, containers_1.getResolvedGrabSelectionOwnerId)();
83
+ if (!ownerId) {
16
84
  console.error("[react-native-grab] Cannot enable grabbing. Ensure ReactNativeGrabRoot is mounted.");
17
85
  return;
18
86
  }
19
- enableGrabbingHandler();
87
+ const controller = localControllers.get(ownerId);
88
+ if (!controller) {
89
+ console.error("[react-native-grab] Cannot enable grabbing. Ensure the focused ReactNativeGrabScreen is mounted.");
90
+ return;
91
+ }
92
+ stopAllSelections();
93
+ setState((prevState) => ({
94
+ ...prevState,
95
+ selectedOwnerId: null,
96
+ selectionSessionOwnerId: ownerId,
97
+ }));
98
+ controller.startSelection();
20
99
  };
21
100
  exports.enableGrabbing = enableGrabbing;
22
101
  const toggleGrabMenu = () => {
23
- if (!toggleGrabMenuHandler) {
24
- console.error("[react-native-grab] Cannot toggle menu. Ensure ReactNativeGrabRoot is mounted.");
25
- return;
26
- }
27
- toggleGrabMenuHandler();
102
+ setState((prevState) => {
103
+ const isVisible = !prevState.isMenuVisible;
104
+ if (!isVisible) {
105
+ stopAllSelections();
106
+ return {
107
+ isMenuVisible: false,
108
+ selectedOwnerId: null,
109
+ selectionSessionOwnerId: null,
110
+ };
111
+ }
112
+ return {
113
+ ...prevState,
114
+ isMenuVisible: true,
115
+ };
116
+ });
28
117
  };
29
118
  exports.toggleGrabMenu = toggleGrabMenu;
30
119
  //# sourceMappingURL=grab-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grab-controller.js","sourceRoot":"","sources":["../../../src/react-native/grab-controller.ts"],"names":[],"mappings":";;;AAGA,IAAI,qBAAqB,GAAiC,IAAI,CAAC;AAC/D,IAAI,qBAAqB,GAAiC,IAAI,CAAC;AAExD,MAAM,wBAAwB,GAAG,CAAC,OAAqC,EAAE,EAAE;IAChF,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AAEK,MAAM,wBAAwB,GAAG,CAAC,OAAqC,EAAE,EAAE;IAChF,qBAAqB,GAAG,OAAO,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AAEK,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CACX,oFAAoF,CACrF,CAAC;QACF,OAAO;IACT,CAAC;IAED,qBAAqB,EAAE,CAAC;AAC1B,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEK,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO;IACT,CAAC;IAED,qBAAqB,EAAE,CAAC;AAC1B,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}
1
+ {"version":3,"file":"grab-controller.js","sourceRoot":"","sources":["../../../src/react-native/grab-controller.ts"],"names":[],"mappings":"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"}
@@ -5,35 +5,20 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const react_native_1 = require("react-native");
7
7
  const containers_1 = require("./containers");
8
- const measure_1 = require("./measure");
9
- const dev_menu_1 = require("./dev-menu");
10
- const description_1 = require("./description");
11
8
  const copy_1 = require("./copy");
12
- const full_screen_overlay_1 = require("./full-screen-overlay");
13
- const grab_controller_1 = require("./grab-controller");
14
- const grab_control_bar_1 = require("./grab-control-bar");
15
9
  const context_menu_1 = require("./context-menu");
10
+ const grab_colors_1 = require("./grab-colors");
11
+ const grab_controller_1 = require("./grab-controller");
12
+ const description_1 = require("./description");
16
13
  const get_rendered_by_1 = require("./get-rendered-by");
14
+ const measure_1 = require("./measure");
17
15
  const open_1 = require("./open");
18
16
  const COPY_BADGE_DURATION_MS = 1600;
19
- const CALLSTACK_PRIMARY = "#8232FF";
20
- const HIGHLIGHT_FILL = "rgba(130, 50, 255, 0.2)";
21
- const BADGE_BACKGROUND = "rgba(130, 50, 255, 0.92)";
22
- const BAR_HEIGHT = 36;
23
- const BAR_WIDTH = 108;
24
- const INITIAL_BAR_POSITION = {
25
- x: (react_native_1.Dimensions.get("window").width - BAR_WIDTH) / 2,
26
- y: 72,
27
- };
28
- const clamp = (value, min, max) => {
29
- return Math.min(Math.max(value, min), max);
30
- };
31
- const ReactNativeGrabOverlay = () => {
17
+ const ReactNativeGrabOverlay = ({ ownerId, onPanHandlersChange, }) => {
18
+ const isResolvedSelectionOwner = (0, containers_1.useIsResolvedGrabSelectionOwner)(ownerId);
32
19
  const copyBadgeTimeoutRef = (0, react_1.useRef)(null);
33
- const controlBarPosition = (0, react_1.useRef)(new react_native_1.Animated.ValueXY(INITIAL_BAR_POSITION)).current;
34
- const shouldResetControlBarPositionRef = (0, react_1.useRef)(false);
20
+ const [bounds, setBounds] = (0, react_1.useState)({ width: 0, height: 0 });
35
21
  const [state, setState] = (0, react_1.useState)({
36
- isMenuVisible: false,
37
22
  isSessionEnabled: false,
38
23
  grabbedElement: null,
39
24
  isCopyBadgeVisible: false,
@@ -51,20 +36,19 @@ const ReactNativeGrabOverlay = () => {
51
36
  setState((prev) => ({
52
37
  ...prev,
53
38
  isSessionEnabled: false,
39
+ grabbedElement: null,
54
40
  }));
55
41
  }, []);
56
- const toggleMenuVisibility = (0, react_1.useCallback)(() => {
42
+ const closeSelectedElementMenu = (0, react_1.useCallback)(() => {
43
+ (0, grab_controller_1.hideGrabSelectionMenu)(ownerId);
57
44
  setState((prev) => {
58
- shouldResetControlBarPositionRef.current = prev.isMenuVisible;
59
45
  return {
60
46
  ...prev,
61
- isMenuVisible: !prev.isMenuVisible,
62
- isSessionEnabled: !prev.isMenuVisible ? prev.isSessionEnabled : false,
63
- grabbedElement: !prev.isMenuVisible ? prev.grabbedElement : null,
64
- selectedElement: !prev.isMenuVisible ? prev.selectedElement : null,
47
+ selectedElement: null,
48
+ grabbedElement: null,
65
49
  };
66
50
  });
67
- }, []);
51
+ }, [ownerId]);
68
52
  (0, react_1.useEffect)(() => {
69
53
  return () => {
70
54
  if (copyBadgeTimeoutRef.current) {
@@ -78,13 +62,6 @@ const ReactNativeGrabOverlay = () => {
78
62
  grabbedElement,
79
63
  }));
80
64
  }, []);
81
- const closeSelectedElementMenu = (0, react_1.useCallback)(() => {
82
- setState((prev) => ({
83
- ...prev,
84
- selectedElement: null,
85
- grabbedElement: null,
86
- }));
87
- }, []);
88
65
  const showCopiedBadge = (0, react_1.useCallback)(() => {
89
66
  if (copyBadgeTimeoutRef.current) {
90
67
  clearTimeout(copyBadgeTimeoutRef.current);
@@ -95,40 +72,39 @@ const ReactNativeGrabOverlay = () => {
95
72
  copyBadgeTimeoutRef.current = null;
96
73
  }, COPY_BADGE_DURATION_MS);
97
74
  }, []);
98
- const resetControlBarPosition = (0, react_1.useCallback)(() => {
99
- if (!shouldResetControlBarPositionRef.current) {
75
+ (0, react_1.useEffect)(() => {
76
+ if (isResolvedSelectionOwner) {
100
77
  return;
101
78
  }
102
- shouldResetControlBarPositionRef.current = false;
103
- controlBarPosition.setValue(INITIAL_BAR_POSITION);
104
- }, [controlBarPosition]);
105
- (0, react_1.useEffect)(() => {
106
- (0, grab_controller_1.setEnableGrabbingHandler)(startSession);
107
- (0, grab_controller_1.setToggleGrabMenuHandler)(toggleMenuVisibility);
108
- return () => {
109
- (0, grab_controller_1.setEnableGrabbingHandler)(null);
110
- (0, grab_controller_1.setToggleGrabMenuHandler)(null);
111
- };
112
- }, [startSession, toggleMenuVisibility]);
113
- (0, dev_menu_1.useDevMenu)(toggleMenuVisibility);
114
- const getElementAtPoint = (nativePageX, nativePageY) => {
115
- const appRootShadowNode = (0, containers_1.getAppRootShadowNode)();
116
- const focusedScreenShadowNode = (0, containers_1.getFocusedScreenShadowNode)();
117
- const appRootBoundingClientRect = (0, measure_1.measureInWindow)(appRootShadowNode);
118
- const focusedScreenBoundingClientRect = (0, measure_1.measureInWindow)(focusedScreenShadowNode);
119
- let focusedScreenOffsetY = focusedScreenBoundingClientRect[1];
120
- let focusedScreenHeight = focusedScreenBoundingClientRect[3];
121
- let appRootHeight = appRootBoundingClientRect[3];
122
- const offset = appRootHeight - focusedScreenHeight - focusedScreenOffsetY;
123
- const pageX = nativePageX;
124
- const pageY = nativePageY - (appRootHeight - focusedScreenHeight);
125
- const internalNode = (0, measure_1.findNodeAtPoint)(focusedScreenShadowNode, pageX, pageY);
79
+ (0, grab_controller_1.clearGrabOwnerPresentation)(ownerId);
80
+ setState((prev) => {
81
+ if (!prev.isSessionEnabled && !prev.grabbedElement && !prev.selectedElement) {
82
+ return prev;
83
+ }
84
+ return {
85
+ ...prev,
86
+ isSessionEnabled: false,
87
+ grabbedElement: null,
88
+ selectedElement: null,
89
+ };
90
+ });
91
+ }, [isResolvedSelectionOwner, ownerId]);
92
+ const getElementAtPoint = (pageX, pageY) => {
93
+ const owner = (0, containers_1.getGrabSelectionOwner)(ownerId);
94
+ if (!owner) {
95
+ return null;
96
+ }
97
+ const internalNode = (0, measure_1.findNodeAtPoint)(owner.shadowNode, pageX, pageY);
126
98
  const shadowNode = internalNode?.stateNode?.node;
127
99
  if (!shadowNode) {
128
100
  return null;
129
101
  }
102
+ const ownerRect = (0, measure_1.measureInWindow)(owner.shadowNode);
130
103
  const rect = nativeFabricUIManager.getBoundingClientRect(shadowNode, true);
131
- return { fiberNode: internalNode, rect: [rect[0], rect[1] + offset, rect[2], rect[3]] };
104
+ return {
105
+ fiberNode: internalNode,
106
+ rect: [rect[0] - ownerRect[0], rect[1] - ownerRect[1], rect[2], rect[3]],
107
+ };
132
108
  };
133
109
  const handleTouch = (nativeEvent) => {
134
110
  const result = getElementAtPoint(nativeEvent.pageX, nativeEvent.pageY);
@@ -138,14 +114,13 @@ const ReactNativeGrabOverlay = () => {
138
114
  }
139
115
  updateGrabbedElement(result);
140
116
  };
141
- const handleGrabbing = async (result) => {
117
+ const handleGrabbing = (0, react_1.useCallback)(async (result) => {
142
118
  const [description, renderedBy] = await Promise.all([
143
119
  (0, description_1.getDescription)(result.fiberNode),
144
120
  (0, get_rendered_by_1.getRenderedBy)(result.fiberNode),
145
121
  ]);
146
122
  const firstFrame = renderedBy.find((frame) => Boolean(frame.file)) ?? null;
147
- const elementNameMatch = description.match(/<([A-Za-z0-9_$.:-]+)/);
148
- const elementName = elementNameMatch?.[1] ?? firstFrame?.name ?? "Selected element";
123
+ const elementName = (0, description_1.getGrabSelectionTitle)(result.fiberNode, renderedBy);
149
124
  setState((prev) => ({
150
125
  ...prev,
151
126
  grabbedElement: result,
@@ -156,7 +131,53 @@ const ReactNativeGrabOverlay = () => {
156
131
  result,
157
132
  },
158
133
  }));
159
- };
134
+ (0, grab_controller_1.showGrabSelectionMenu)(ownerId);
135
+ }, [ownerId]);
136
+ (0, react_1.useEffect)(() => {
137
+ (0, grab_controller_1.registerLocalGrabSelectionController)(ownerId, {
138
+ closeSelectionMenu: () => {
139
+ closeSelectedElementMenu();
140
+ },
141
+ startSelection: startSession,
142
+ stopSelection: () => {
143
+ closeSelectedElementMenu();
144
+ stopSession();
145
+ },
146
+ });
147
+ return () => {
148
+ (0, grab_controller_1.unregisterLocalGrabSelectionController)(ownerId);
149
+ };
150
+ }, [closeSelectedElementMenu, ownerId, startSession, stopSession]);
151
+ const panResponder = (0, react_1.useRef)(react_native_1.PanResponder.create({
152
+ onStartShouldSetPanResponderCapture: () => true,
153
+ onMoveShouldSetPanResponderCapture: () => true,
154
+ onPanResponderGrant: (evt) => handleTouch(evt.nativeEvent),
155
+ onPanResponderMove: (evt) => handleTouch(evt.nativeEvent),
156
+ onPanResponderRelease: (evt) => {
157
+ void (async () => {
158
+ try {
159
+ const result = getElementAtPoint(evt.nativeEvent.pageX, evt.nativeEvent.pageY);
160
+ if (!result) {
161
+ return;
162
+ }
163
+ await handleGrabbing(result);
164
+ }
165
+ catch {
166
+ console.error("[react-native-grab] Grabbing failed.");
167
+ }
168
+ finally {
169
+ (0, grab_controller_1.setGrabSelectionSessionOwner)(null);
170
+ stopSession();
171
+ }
172
+ })();
173
+ },
174
+ })).current;
175
+ (0, react_1.useEffect)(() => {
176
+ onPanHandlersChange?.(state.isSessionEnabled ? panResponder.panHandlers : null);
177
+ return () => {
178
+ onPanHandlersChange?.(null);
179
+ };
180
+ }, [onPanHandlersChange, panResponder.panHandlers, state.isSessionEnabled]);
160
181
  const handleCopySelectedElement = (0, react_1.useCallback)(async () => {
161
182
  const selectedElement = state.selectedElement;
162
183
  if (!selectedElement) {
@@ -187,60 +208,6 @@ const ReactNativeGrabOverlay = () => {
187
208
  console.error("[react-native-grab] Opening editor failed.");
188
209
  }
189
210
  }, [closeSelectedElementMenu, state.selectedElement]);
190
- const panResponder = (0, react_1.useRef)(react_native_1.PanResponder.create({
191
- onStartShouldSetPanResponderCapture: () => true,
192
- onMoveShouldSetPanResponderCapture: () => true,
193
- onPanResponderGrant: (evt) => handleTouch(evt.nativeEvent),
194
- onPanResponderMove: (evt) => handleTouch(evt.nativeEvent),
195
- onPanResponderRelease: (evt) => {
196
- void (async () => {
197
- try {
198
- const result = getElementAtPoint(evt.nativeEvent.pageX, evt.nativeEvent.pageY);
199
- if (!result) {
200
- return;
201
- }
202
- await handleGrabbing(result);
203
- }
204
- catch {
205
- console.error("[react-native-grab] Grabbing failed.");
206
- }
207
- finally {
208
- stopSession();
209
- }
210
- })();
211
- },
212
- })).current;
213
- const dragHandlePanResponder = (0, react_1.useRef)(react_native_1.PanResponder.create({
214
- onStartShouldSetPanResponder: () => true,
215
- onMoveShouldSetPanResponder: (_, gestureState) => Math.abs(gestureState.dx) > 2 || Math.abs(gestureState.dy) > 2,
216
- onPanResponderGrant: () => {
217
- controlBarPosition.stopAnimation((value) => {
218
- controlBarPosition.setOffset(value);
219
- controlBarPosition.setValue({ x: 0, y: 0 });
220
- });
221
- },
222
- onPanResponderMove: react_native_1.Animated.event([null, { dx: controlBarPosition.x, dy: controlBarPosition.y }], { useNativeDriver: false }),
223
- onPanResponderRelease: () => {
224
- controlBarPosition.flattenOffset();
225
- controlBarPosition.stopAnimation((value) => {
226
- const { width, height } = react_native_1.Dimensions.get("window");
227
- controlBarPosition.setValue({
228
- x: clamp(value.x, 0, Math.max(0, width - BAR_WIDTH)),
229
- y: clamp(value.y, 0, Math.max(0, height - BAR_HEIGHT)),
230
- });
231
- });
232
- },
233
- onPanResponderTerminate: () => {
234
- controlBarPosition.flattenOffset();
235
- controlBarPosition.stopAnimation((value) => {
236
- const { width, height } = react_native_1.Dimensions.get("window");
237
- controlBarPosition.setValue({
238
- x: clamp(value.x, 0, Math.max(0, width - BAR_WIDTH)),
239
- y: clamp(value.y, 0, Math.max(0, height - BAR_HEIGHT)),
240
- });
241
- });
242
- },
243
- })).current;
244
211
  const selectedElementMenuAnchor = (0, react_1.useMemo)(() => {
245
212
  if (!state.selectedElement) {
246
213
  return null;
@@ -251,45 +218,48 @@ const ReactNativeGrabOverlay = () => {
251
218
  y: rect[1] + rect[3],
252
219
  };
253
220
  }, [state.selectedElement]);
254
- const isControlBarVisible = state.isMenuVisible && !state.isSessionEnabled && state.selectedElement === null;
255
- return ((0, jsx_runtime_1.jsx)(full_screen_overlay_1.FullScreenOverlay, { children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: "box-none", style: styles.overlayRoot, children: [state.isSessionEnabled && ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [react_native_1.StyleSheet.absoluteFill, styles.sessionCapture], ...panResponder.panHandlers })), state.isSessionEnabled && ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: styles.topBadge, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.topBadgeText, children: "Touch and move around to grab" }) })), state.isCopyBadgeVisible && ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: styles.topBadge, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.topBadgeText, children: "Element copied" }) })), !!state.grabbedElement && ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
256
- {
257
- position: "absolute",
258
- left: state.grabbedElement.rect[0],
259
- top: state.grabbedElement.rect[1],
260
- width: state.grabbedElement.rect[2],
261
- height: state.grabbedElement.rect[3],
262
- pointerEvents: "none",
263
- },
264
- {
265
- backgroundColor: HIGHLIGHT_FILL,
266
- borderWidth: 1,
267
- borderColor: CALLSTACK_PRIMARY,
268
- },
269
- ] })), (0, jsx_runtime_1.jsx)(grab_control_bar_1.GrabControlBar, { containerStyle: [
270
- styles.controlBar,
271
- {
272
- transform: controlBarPosition.getTranslateTransform(),
273
- },
274
- ], dragHandlePanHandlers: dragHandlePanResponder.panHandlers, isSessionEnabled: state.isSessionEnabled, isVisible: isControlBarVisible, onHidden: resetControlBarPosition, onPressHide: toggleMenuVisibility, onPressSelect: startSession }), (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenu, { anchor: selectedElementMenuAnchor, cutout: state.selectedElement
275
- ? {
276
- x: state.selectedElement.result.rect[0],
277
- y: state.selectedElement.result.rect[1],
278
- width: state.selectedElement.result.rect[2],
279
- height: state.selectedElement.result.rect[3],
280
- }
281
- : null, horizontalAlignment: "center", offset: { x: 0, y: 8 }, onClose: closeSelectedElementMenu, visible: state.selectedElement !== null, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.selectionMenuHeader, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { numberOfLines: 1, style: styles.selectionMenuTitle, children: state.selectedElement?.elementName }) }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.selectionMenuActions, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", onPress: () => void handleCopySelectedElement(), style: ({ pressed }) => [
282
- styles.selectionMenuActionButton,
283
- pressed && styles.selectionMenuActionButtonPressed,
284
- ], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.selectionMenuActionText, children: "Copy" }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.selectionMenuActionDivider }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", disabled: !state.selectedElement?.frame?.file, onPress: () => void handleOpenSelectedElement(), style: ({ pressed }) => [
285
- styles.selectionMenuActionButton,
286
- pressed &&
287
- state.selectedElement?.frame?.file &&
288
- styles.selectionMenuActionButtonPressed,
289
- ], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
290
- styles.selectionMenuActionText,
291
- !state.selectedElement?.frame?.file && styles.selectionMenuActionTextDisabled,
292
- ], children: "Open" }) })] })] })] }) }));
221
+ const highlightedElement = state.grabbedElement ?? state.selectedElement?.result ?? null;
222
+ if (!state.isSessionEnabled &&
223
+ !state.isCopyBadgeVisible &&
224
+ !state.grabbedElement &&
225
+ !state.selectedElement) {
226
+ return null;
227
+ }
228
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: "box-none", style: styles.overlayRoot, onLayout: (event) => {
229
+ const { width, height } = event.nativeEvent.layout;
230
+ setBounds((prev) => {
231
+ if (prev.width === width && prev.height === height) {
232
+ return prev;
233
+ }
234
+ return { width, height };
235
+ });
236
+ }, children: [state.isSessionEnabled && ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: styles.topBadge, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.topBadgeText, children: "Touch and move around to grab" }) })), state.isCopyBadgeVisible && ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: styles.topBadge, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.topBadgeText, children: "Element copied" }) })), !!highlightedElement && ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: [
237
+ styles.highlight,
238
+ {
239
+ left: highlightedElement.rect[0],
240
+ top: highlightedElement.rect[1],
241
+ width: highlightedElement.rect[2],
242
+ height: highlightedElement.rect[3],
243
+ },
244
+ ] })), (0, jsx_runtime_1.jsxs)(context_menu_1.ContextMenu, { anchor: selectedElementMenuAnchor, bounds: bounds, cutout: state.selectedElement
245
+ ? {
246
+ x: state.selectedElement.result.rect[0],
247
+ y: state.selectedElement.result.rect[1],
248
+ width: state.selectedElement.result.rect[2],
249
+ height: state.selectedElement.result.rect[3],
250
+ }
251
+ : null, horizontalAlignment: "center", offset: { x: 0, y: 8 }, onClose: closeSelectedElementMenu, visible: state.selectedElement !== null, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.selectionMenuHeader, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { adjustsFontSizeToFit: true, minimumFontScale: 0.65, numberOfLines: 1, style: styles.selectionMenuTitle, children: state.selectedElement?.elementName }) }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.selectionMenuActions, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", onPress: () => void handleCopySelectedElement(), style: ({ pressed }) => [
252
+ styles.selectionMenuActionButton,
253
+ pressed && styles.selectionMenuActionButtonPressed,
254
+ ], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.selectionMenuActionText, children: "Copy" }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.selectionMenuActionDivider }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", disabled: !state.selectedElement?.frame?.file, onPress: () => void handleOpenSelectedElement(), style: ({ pressed }) => [
255
+ styles.selectionMenuActionButton,
256
+ pressed &&
257
+ state.selectedElement?.frame?.file &&
258
+ styles.selectionMenuActionButtonPressed,
259
+ ], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
260
+ styles.selectionMenuActionText,
261
+ !state.selectedElement?.frame?.file && styles.selectionMenuActionTextDisabled,
262
+ ], children: "Open" }) })] })] })] }));
293
263
  };
294
264
  exports.ReactNativeGrabOverlay = ReactNativeGrabOverlay;
295
265
  const styles = react_native_1.StyleSheet.create({
@@ -297,15 +267,6 @@ const styles = react_native_1.StyleSheet.create({
297
267
  ...react_native_1.StyleSheet.absoluteFillObject,
298
268
  zIndex: 9999,
299
269
  },
300
- sessionCapture: {
301
- zIndex: 1,
302
- },
303
- controlBar: {
304
- position: "absolute",
305
- top: 0,
306
- left: 0,
307
- zIndex: 2,
308
- },
309
270
  topBadge: {
310
271
  position: "absolute",
311
272
  top: 52,
@@ -313,18 +274,26 @@ const styles = react_native_1.StyleSheet.create({
313
274
  borderRadius: 999,
314
275
  paddingHorizontal: 14,
315
276
  paddingVertical: 8,
316
- backgroundColor: BADGE_BACKGROUND,
277
+ backgroundColor: grab_colors_1.GRAB_BADGE_BACKGROUND,
317
278
  },
318
279
  topBadgeText: {
319
280
  color: "#FFFFFF",
320
281
  fontSize: 13,
321
282
  fontWeight: "600",
322
283
  },
284
+ highlight: {
285
+ position: "absolute",
286
+ backgroundColor: grab_colors_1.GRAB_HIGHLIGHT_FILL,
287
+ borderWidth: 1,
288
+ borderColor: grab_colors_1.GRAB_PRIMARY,
289
+ },
323
290
  selectionMenuHeader: {
291
+ alignSelf: "stretch",
324
292
  paddingHorizontal: 14,
325
293
  paddingVertical: 12,
326
294
  },
327
295
  selectionMenuTitle: {
296
+ width: "100%",
328
297
  color: "#111111",
329
298
  fontSize: 14,
330
299
  fontWeight: "600",
@@ -1 +1 @@
1
- {"version":3,"file":"grab-overlay.js","sourceRoot":"","sources":["../../../src/react-native/grab-overlay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grab-overlay.js","sourceRoot":"","sources":["../../../src/react-native/grab-overlay.tsx"],"names":[],"mappings":"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"}