react-grab 0.0.61 → 0.0.63
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/README.md +57 -1
- package/dist/{chunk-BPIV2CRB.js → chunk-GJFQUCRH.js} +66 -15
- package/dist/{chunk-2EGDLG6B.cjs → chunk-TAXVLGRB.cjs} +66 -15
- package/dist/{core-Dpg0VXHq.d.cts → core-CZmmuMr9.d.cts} +1 -1
- package/dist/{core-Dpg0VXHq.d.ts → core-CZmmuMr9.d.ts} +1 -1
- package/dist/core.cjs +8 -8
- package/dist/core.d.cts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.global.js +26 -26
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -122,7 +122,7 @@ if (process.env.NODE_ENV === "development") {
|
|
|
122
122
|
|
|
123
123
|
React Grab can send selected element context directly to your coding agent. This enables a workflow where you select a UI element and an agent automatically makes changes to your codebase.
|
|
124
124
|
|
|
125
|
-
This means **no copying and pasting** - just select the element and let the agent do the rest.
|
|
125
|
+
This means **no copying and pasting** - just select the element and let the agent do the rest. [Learn more →](https://react-grab.com/blog/agent)
|
|
126
126
|
|
|
127
127
|
### Claude Code
|
|
128
128
|
|
|
@@ -146,6 +146,34 @@ The server runs on port `4567` and interfaces with the Claude Agent SDK. Add to
|
|
|
146
146
|
<script src="//unpkg.com/@react-grab/claude-code/dist/client.global.js"></script>
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
+
Or using Next.js `Script` component in your `app/layout.tsx`:
|
|
150
|
+
|
|
151
|
+
```jsx
|
|
152
|
+
import Script from "next/script";
|
|
153
|
+
|
|
154
|
+
export default function RootLayout({ children }) {
|
|
155
|
+
return (
|
|
156
|
+
<html>
|
|
157
|
+
<head>
|
|
158
|
+
{process.env.NODE_ENV === "development" && (
|
|
159
|
+
<>
|
|
160
|
+
<Script
|
|
161
|
+
src="//unpkg.com/react-grab/dist/index.global.js"
|
|
162
|
+
strategy="beforeInteractive"
|
|
163
|
+
/>
|
|
164
|
+
<Script
|
|
165
|
+
src="//unpkg.com/@react-grab/claude-code/dist/client.global.js"
|
|
166
|
+
strategy="lazyOnload"
|
|
167
|
+
/>
|
|
168
|
+
</>
|
|
169
|
+
)}
|
|
170
|
+
</head>
|
|
171
|
+
<body>{children}</body>
|
|
172
|
+
</html>
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
149
177
|
### Cursor CLI
|
|
150
178
|
|
|
151
179
|
#### Server Setup
|
|
@@ -168,6 +196,34 @@ The server runs on port `5567` and interfaces with the `cursor-agent` CLI. Add t
|
|
|
168
196
|
<script src="//unpkg.com/@react-grab/cursor/dist/client.global.js"></script>
|
|
169
197
|
```
|
|
170
198
|
|
|
199
|
+
Or using Next.js `Script` component in your `app/layout.tsx`:
|
|
200
|
+
|
|
201
|
+
```jsx
|
|
202
|
+
import Script from "next/script";
|
|
203
|
+
|
|
204
|
+
export default function RootLayout({ children }) {
|
|
205
|
+
return (
|
|
206
|
+
<html>
|
|
207
|
+
<head>
|
|
208
|
+
{process.env.NODE_ENV === "development" && (
|
|
209
|
+
<>
|
|
210
|
+
<Script
|
|
211
|
+
src="//unpkg.com/react-grab/dist/index.global.js"
|
|
212
|
+
strategy="beforeInteractive"
|
|
213
|
+
/>
|
|
214
|
+
<Script
|
|
215
|
+
src="//unpkg.com/@react-grab/cursor/dist/client.global.js"
|
|
216
|
+
strategy="lazyOnload"
|
|
217
|
+
/>
|
|
218
|
+
</>
|
|
219
|
+
)}
|
|
220
|
+
</head>
|
|
221
|
+
<body>{children}</body>
|
|
222
|
+
</html>
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
171
227
|
## Extending React Grab
|
|
172
228
|
|
|
173
229
|
React Grab provides an public customization API. Check out the [type definitions](https://github.com/aidenybai/react-grab/blob/main/packages/react-grab/src/types.ts) to see all available options for extending React Grab.
|
|
@@ -3844,13 +3844,20 @@ var Arrow = (props) => {
|
|
|
3844
3844
|
return _el$6;
|
|
3845
3845
|
})();
|
|
3846
3846
|
};
|
|
3847
|
-
var ClickToCopyPill = (props) =>
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3847
|
+
var ClickToCopyPill = (props) => {
|
|
3848
|
+
const labelText = () => {
|
|
3849
|
+
if (props.hasAgent) return "Selecting";
|
|
3850
|
+
if (props.hasParent) return "Copy";
|
|
3851
|
+
return "Click to copy";
|
|
3852
|
+
};
|
|
3853
|
+
return (() => {
|
|
3854
|
+
var _el$7 = _tmpl$5(), _el$8 = _el$7.firstChild;
|
|
3855
|
+
addEventListener(_el$7, "click", props.onClick);
|
|
3856
|
+
insert(_el$8, labelText);
|
|
3857
|
+
createRenderEffect(() => className(_el$7, cn("contain-layout shrink-0 flex items-center px-0 py-px w-fit h-[18px] rounded-[1.5px] gap-[3px]", props.asButton && "cursor-pointer", props.dimmed && "opacity-50 hover:opacity-100 transition-opacity")));
|
|
3858
|
+
return _el$7;
|
|
3859
|
+
})();
|
|
3860
|
+
};
|
|
3854
3861
|
var BottomSection = (props) => (() => {
|
|
3855
3862
|
var _el$9 = _tmpl$6();
|
|
3856
3863
|
insert(_el$9, () => props.children);
|
|
@@ -4075,6 +4082,9 @@ var SelectionLabel = (props) => {
|
|
|
4075
4082
|
shrink: true,
|
|
4076
4083
|
get hasParent() {
|
|
4077
4084
|
return !!props.componentName;
|
|
4085
|
+
},
|
|
4086
|
+
get hasAgent() {
|
|
4087
|
+
return props.hasAgent;
|
|
4078
4088
|
}
|
|
4079
4089
|
}), null);
|
|
4080
4090
|
insert(_el$21, createComponent(Show, {
|
|
@@ -4145,6 +4155,9 @@ var SelectionLabel = (props) => {
|
|
|
4145
4155
|
shrink: true,
|
|
4146
4156
|
get hasParent() {
|
|
4147
4157
|
return !!props.componentName;
|
|
4158
|
+
},
|
|
4159
|
+
get hasAgent() {
|
|
4160
|
+
return props.hasAgent;
|
|
4148
4161
|
}
|
|
4149
4162
|
}), null);
|
|
4150
4163
|
insert(_el$30, createComponent(Show, {
|
|
@@ -6136,7 +6149,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6136
6149
|
agentOptions?.onResume?.(sessionWithResumeStatus);
|
|
6137
6150
|
const abortController = new AbortController();
|
|
6138
6151
|
abortControllers.set(existingSession.id, abortController);
|
|
6139
|
-
const streamIterator = agentOptions.provider.resume(existingSession.id, abortController.signal);
|
|
6152
|
+
const streamIterator = agentOptions.provider.resume(existingSession.id, abortController.signal, storage);
|
|
6140
6153
|
void executeSessionStream(existingSession, streamIterator);
|
|
6141
6154
|
}
|
|
6142
6155
|
};
|
|
@@ -6312,7 +6325,7 @@ var init = (rawOptions) => {
|
|
|
6312
6325
|
hasInited = true;
|
|
6313
6326
|
const logIntro = () => {
|
|
6314
6327
|
try {
|
|
6315
|
-
const version = "0.0.
|
|
6328
|
+
const version = "0.0.63";
|
|
6316
6329
|
const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
|
|
6317
6330
|
console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
|
|
6318
6331
|
https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid #d75fcb; padding: 4px 4px 4px 24px; border-radius: 4px; background-image: url("${logoDataUri}"); background-size: 16px 16px; background-repeat: no-repeat; background-position: 4px center; display: inline-block; margin-bottom: 4px;`, "");
|
|
@@ -6354,6 +6367,7 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6354
6367
|
const [didJustDrag, setDidJustDrag] = createSignal(false);
|
|
6355
6368
|
const [copyStartX, setCopyStartX] = createSignal(OFFSCREEN_POSITION);
|
|
6356
6369
|
const [copyStartY, setCopyStartY] = createSignal(OFFSCREEN_POSITION);
|
|
6370
|
+
const [copyOffsetFromCenterX, setCopyOffsetFromCenterX] = createSignal(0);
|
|
6357
6371
|
const [viewportVersion, setViewportVersion] = createSignal(0);
|
|
6358
6372
|
const [isInputMode, setIsInputMode] = createSignal(false);
|
|
6359
6373
|
const [inputText, setInputText] = createSignal("");
|
|
@@ -6504,6 +6518,12 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6504
6518
|
const executeCopyOperation = async (positionX, positionY, operation, bounds, tagName, componentName, element) => {
|
|
6505
6519
|
setCopyStartX(positionX);
|
|
6506
6520
|
setCopyStartY(positionY);
|
|
6521
|
+
if (bounds) {
|
|
6522
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
6523
|
+
setCopyOffsetFromCenterX(positionX - selectionCenterX);
|
|
6524
|
+
} else {
|
|
6525
|
+
setCopyOffsetFromCenterX(0);
|
|
6526
|
+
}
|
|
6507
6527
|
setIsCopying(true);
|
|
6508
6528
|
startProgressAnimation();
|
|
6509
6529
|
const instanceId = bounds && tagName ? createLabelInstance(bounds, tagName, componentName, "copying", element, positionX) : null;
|
|
@@ -6706,12 +6726,27 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6706
6726
|
return _el$10;
|
|
6707
6727
|
})();
|
|
6708
6728
|
});
|
|
6709
|
-
const cursorPosition = createMemo(() =>
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6729
|
+
const cursorPosition = createMemo(() => {
|
|
6730
|
+
if (isCopying() || isInputExpanded()) {
|
|
6731
|
+
viewportVersion();
|
|
6732
|
+
const element = frozenElement() || targetElement();
|
|
6733
|
+
if (element) {
|
|
6734
|
+
const bounds = createElementBounds(element);
|
|
6735
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
6736
|
+
return {
|
|
6737
|
+
x: selectionCenterX + copyOffsetFromCenterX(),
|
|
6738
|
+
y: copyStartY()
|
|
6739
|
+
};
|
|
6740
|
+
}
|
|
6741
|
+
return {
|
|
6742
|
+
x: copyStartX(),
|
|
6743
|
+
y: copyStartY()
|
|
6744
|
+
};
|
|
6745
|
+
}
|
|
6746
|
+
return {
|
|
6747
|
+
x: mouseX(),
|
|
6748
|
+
y: mouseY()
|
|
6749
|
+
};
|
|
6715
6750
|
});
|
|
6716
6751
|
createEffect(on(() => [targetElement(), lastGrabbedElement()], ([currentElement, lastElement]) => {
|
|
6717
6752
|
if (lastElement && currentElement && lastElement !== currentElement) {
|
|
@@ -6970,6 +7005,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6970
7005
|
deactivateRenderer();
|
|
6971
7006
|
};
|
|
6972
7007
|
const handleToggleExpand = () => {
|
|
7008
|
+
const element = frozenElement() || targetElement();
|
|
7009
|
+
if (element) {
|
|
7010
|
+
const bounds = createElementBounds(element);
|
|
7011
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
7012
|
+
setCopyStartX(mouseX());
|
|
7013
|
+
setCopyStartY(mouseY());
|
|
7014
|
+
setCopyOffsetFromCenterX(mouseX() - selectionCenterX);
|
|
7015
|
+
}
|
|
6973
7016
|
setIsToggleMode(true);
|
|
6974
7017
|
setIsToggleFrozen(true);
|
|
6975
7018
|
setIsInputExpanded(true);
|
|
@@ -7116,6 +7159,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7116
7159
|
if (event.key === "Enter" && isHoldingKeys() && !isInputMode()) {
|
|
7117
7160
|
event.preventDefault();
|
|
7118
7161
|
event.stopPropagation();
|
|
7162
|
+
const element = frozenElement() || targetElement();
|
|
7163
|
+
if (element) {
|
|
7164
|
+
const bounds = createElementBounds(element);
|
|
7165
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
7166
|
+
setCopyStartX(mouseX());
|
|
7167
|
+
setCopyStartY(mouseY());
|
|
7168
|
+
setCopyOffsetFromCenterX(mouseX() - selectionCenterX);
|
|
7169
|
+
}
|
|
7119
7170
|
setIsToggleMode(true);
|
|
7120
7171
|
setIsToggleFrozen(true);
|
|
7121
7172
|
setIsInputExpanded(true);
|
|
@@ -3846,13 +3846,20 @@ var Arrow = (props) => {
|
|
|
3846
3846
|
return _el$6;
|
|
3847
3847
|
})();
|
|
3848
3848
|
};
|
|
3849
|
-
var ClickToCopyPill = (props) =>
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3849
|
+
var ClickToCopyPill = (props) => {
|
|
3850
|
+
const labelText = () => {
|
|
3851
|
+
if (props.hasAgent) return "Selecting";
|
|
3852
|
+
if (props.hasParent) return "Copy";
|
|
3853
|
+
return "Click to copy";
|
|
3854
|
+
};
|
|
3855
|
+
return (() => {
|
|
3856
|
+
var _el$7 = _tmpl$5(), _el$8 = _el$7.firstChild;
|
|
3857
|
+
addEventListener(_el$7, "click", props.onClick);
|
|
3858
|
+
insert(_el$8, labelText);
|
|
3859
|
+
createRenderEffect(() => className(_el$7, cn("contain-layout shrink-0 flex items-center px-0 py-px w-fit h-[18px] rounded-[1.5px] gap-[3px]", props.asButton && "cursor-pointer", props.dimmed && "opacity-50 hover:opacity-100 transition-opacity")));
|
|
3860
|
+
return _el$7;
|
|
3861
|
+
})();
|
|
3862
|
+
};
|
|
3856
3863
|
var BottomSection = (props) => (() => {
|
|
3857
3864
|
var _el$9 = _tmpl$6();
|
|
3858
3865
|
insert(_el$9, () => props.children);
|
|
@@ -4077,6 +4084,9 @@ var SelectionLabel = (props) => {
|
|
|
4077
4084
|
shrink: true,
|
|
4078
4085
|
get hasParent() {
|
|
4079
4086
|
return !!props.componentName;
|
|
4087
|
+
},
|
|
4088
|
+
get hasAgent() {
|
|
4089
|
+
return props.hasAgent;
|
|
4080
4090
|
}
|
|
4081
4091
|
}), null);
|
|
4082
4092
|
insert(_el$21, createComponent(Show, {
|
|
@@ -4147,6 +4157,9 @@ var SelectionLabel = (props) => {
|
|
|
4147
4157
|
shrink: true,
|
|
4148
4158
|
get hasParent() {
|
|
4149
4159
|
return !!props.componentName;
|
|
4160
|
+
},
|
|
4161
|
+
get hasAgent() {
|
|
4162
|
+
return props.hasAgent;
|
|
4150
4163
|
}
|
|
4151
4164
|
}), null);
|
|
4152
4165
|
insert(_el$30, createComponent(Show, {
|
|
@@ -6138,7 +6151,7 @@ var createAgentManager = (initialAgentOptions) => {
|
|
|
6138
6151
|
agentOptions?.onResume?.(sessionWithResumeStatus);
|
|
6139
6152
|
const abortController = new AbortController();
|
|
6140
6153
|
abortControllers.set(existingSession.id, abortController);
|
|
6141
|
-
const streamIterator = agentOptions.provider.resume(existingSession.id, abortController.signal);
|
|
6154
|
+
const streamIterator = agentOptions.provider.resume(existingSession.id, abortController.signal, storage);
|
|
6142
6155
|
void executeSessionStream(existingSession, streamIterator);
|
|
6143
6156
|
}
|
|
6144
6157
|
};
|
|
@@ -6314,7 +6327,7 @@ var init = (rawOptions) => {
|
|
|
6314
6327
|
hasInited = true;
|
|
6315
6328
|
const logIntro = () => {
|
|
6316
6329
|
try {
|
|
6317
|
-
const version = "0.0.
|
|
6330
|
+
const version = "0.0.63";
|
|
6318
6331
|
const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
|
|
6319
6332
|
console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
|
|
6320
6333
|
https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid #d75fcb; padding: 4px 4px 4px 24px; border-radius: 4px; background-image: url("${logoDataUri}"); background-size: 16px 16px; background-repeat: no-repeat; background-position: 4px center; display: inline-block; margin-bottom: 4px;`, "");
|
|
@@ -6356,6 +6369,7 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6356
6369
|
const [didJustDrag, setDidJustDrag] = createSignal(false);
|
|
6357
6370
|
const [copyStartX, setCopyStartX] = createSignal(OFFSCREEN_POSITION);
|
|
6358
6371
|
const [copyStartY, setCopyStartY] = createSignal(OFFSCREEN_POSITION);
|
|
6372
|
+
const [copyOffsetFromCenterX, setCopyOffsetFromCenterX] = createSignal(0);
|
|
6359
6373
|
const [viewportVersion, setViewportVersion] = createSignal(0);
|
|
6360
6374
|
const [isInputMode, setIsInputMode] = createSignal(false);
|
|
6361
6375
|
const [inputText, setInputText] = createSignal("");
|
|
@@ -6506,6 +6520,12 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
|
|
|
6506
6520
|
const executeCopyOperation = async (positionX, positionY, operation, bounds, tagName, componentName, element) => {
|
|
6507
6521
|
setCopyStartX(positionX);
|
|
6508
6522
|
setCopyStartY(positionY);
|
|
6523
|
+
if (bounds) {
|
|
6524
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
6525
|
+
setCopyOffsetFromCenterX(positionX - selectionCenterX);
|
|
6526
|
+
} else {
|
|
6527
|
+
setCopyOffsetFromCenterX(0);
|
|
6528
|
+
}
|
|
6509
6529
|
setIsCopying(true);
|
|
6510
6530
|
startProgressAnimation();
|
|
6511
6531
|
const instanceId = bounds && tagName ? createLabelInstance(bounds, tagName, componentName, "copying", element, positionX) : null;
|
|
@@ -6708,12 +6728,27 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6708
6728
|
return _el$10;
|
|
6709
6729
|
})();
|
|
6710
6730
|
});
|
|
6711
|
-
const cursorPosition = createMemo(() =>
|
|
6712
|
-
|
|
6713
|
-
|
|
6714
|
-
|
|
6715
|
-
|
|
6716
|
-
|
|
6731
|
+
const cursorPosition = createMemo(() => {
|
|
6732
|
+
if (isCopying() || isInputExpanded()) {
|
|
6733
|
+
viewportVersion();
|
|
6734
|
+
const element = frozenElement() || targetElement();
|
|
6735
|
+
if (element) {
|
|
6736
|
+
const bounds = createElementBounds(element);
|
|
6737
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
6738
|
+
return {
|
|
6739
|
+
x: selectionCenterX + copyOffsetFromCenterX(),
|
|
6740
|
+
y: copyStartY()
|
|
6741
|
+
};
|
|
6742
|
+
}
|
|
6743
|
+
return {
|
|
6744
|
+
x: copyStartX(),
|
|
6745
|
+
y: copyStartY()
|
|
6746
|
+
};
|
|
6747
|
+
}
|
|
6748
|
+
return {
|
|
6749
|
+
x: mouseX(),
|
|
6750
|
+
y: mouseY()
|
|
6751
|
+
};
|
|
6717
6752
|
});
|
|
6718
6753
|
createEffect(on(() => [targetElement(), lastGrabbedElement()], ([currentElement, lastElement]) => {
|
|
6719
6754
|
if (lastElement && currentElement && lastElement !== currentElement) {
|
|
@@ -6972,6 +7007,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
6972
7007
|
deactivateRenderer();
|
|
6973
7008
|
};
|
|
6974
7009
|
const handleToggleExpand = () => {
|
|
7010
|
+
const element = frozenElement() || targetElement();
|
|
7011
|
+
if (element) {
|
|
7012
|
+
const bounds = createElementBounds(element);
|
|
7013
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
7014
|
+
setCopyStartX(mouseX());
|
|
7015
|
+
setCopyStartY(mouseY());
|
|
7016
|
+
setCopyOffsetFromCenterX(mouseX() - selectionCenterX);
|
|
7017
|
+
}
|
|
6975
7018
|
setIsToggleMode(true);
|
|
6976
7019
|
setIsToggleFrozen(true);
|
|
6977
7020
|
setIsInputExpanded(true);
|
|
@@ -7118,6 +7161,14 @@ ${plainTextContentOnly}` : plainTextContentOnly;
|
|
|
7118
7161
|
if (event.key === "Enter" && isHoldingKeys() && !isInputMode()) {
|
|
7119
7162
|
event.preventDefault();
|
|
7120
7163
|
event.stopPropagation();
|
|
7164
|
+
const element = frozenElement() || targetElement();
|
|
7165
|
+
if (element) {
|
|
7166
|
+
const bounds = createElementBounds(element);
|
|
7167
|
+
const selectionCenterX = bounds.x + bounds.width / 2;
|
|
7168
|
+
setCopyStartX(mouseX());
|
|
7169
|
+
setCopyStartY(mouseY());
|
|
7170
|
+
setCopyOffsetFromCenterX(mouseX() - selectionCenterX);
|
|
7171
|
+
}
|
|
7121
7172
|
setIsToggleMode(true);
|
|
7122
7173
|
setIsToggleFrozen(true);
|
|
7123
7174
|
setIsInputExpanded(true);
|
|
@@ -210,7 +210,7 @@ interface AgentSession {
|
|
|
210
210
|
}
|
|
211
211
|
interface AgentProvider<T = any> {
|
|
212
212
|
send: (context: AgentContext<T>, signal: AbortSignal) => AsyncIterable<string>;
|
|
213
|
-
resume?: (sessionId: string, signal: AbortSignal) => AsyncIterable<string>;
|
|
213
|
+
resume?: (sessionId: string, signal: AbortSignal, storage: AgentSessionStorage) => AsyncIterable<string>;
|
|
214
214
|
supportsResume?: boolean;
|
|
215
215
|
}
|
|
216
216
|
interface AgentSessionStorage {
|
|
@@ -210,7 +210,7 @@ interface AgentSession {
|
|
|
210
210
|
}
|
|
211
211
|
interface AgentProvider<T = any> {
|
|
212
212
|
send: (context: AgentContext<T>, signal: AbortSignal) => AsyncIterable<string>;
|
|
213
|
-
resume?: (sessionId: string, signal: AbortSignal) => AsyncIterable<string>;
|
|
213
|
+
resume?: (sessionId: string, signal: AbortSignal, storage: AgentSessionStorage) => AsyncIterable<string>;
|
|
214
214
|
supportsResume?: boolean;
|
|
215
215
|
}
|
|
216
216
|
interface AgentSessionStorage {
|
package/dist/core.cjs
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTAXVLGRB_cjs = require('./chunk-TAXVLGRB.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "DEFAULT_THEME", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkTAXVLGRB_cjs.DEFAULT_THEME; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "formatElementInfo", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkTAXVLGRB_cjs.getElementContext; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "generateSnippet", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkTAXVLGRB_cjs.generateSnippet; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "getFileName", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkTAXVLGRB_cjs.getFileName; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "getStack", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkTAXVLGRB_cjs.getStack; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "init", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkTAXVLGRB_cjs.init; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "isInstrumentationActive", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkTAXVLGRB_cjs.Ee; }
|
|
34
34
|
});
|
package/dist/core.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AgentContext, o as AgentProvider, n as AgentSession, D as DEFAULT_THEME, O as Options, f as OverlayBounds, R as ReactGrabAPI, s as ReactGrabRendererProps, a as formatElementInfo, b as generateSnippet, r as getFileName, g as getStack, i as init } from './core-
|
|
1
|
+
export { A as AgentContext, o as AgentProvider, n as AgentSession, p as AgentSessionStorage, D as DEFAULT_THEME, O as Options, f as OverlayBounds, R as ReactGrabAPI, s as ReactGrabRendererProps, a as formatElementInfo, b as generateSnippet, r as getFileName, g as getStack, i as init } from './core-CZmmuMr9.cjs';
|
|
2
2
|
export { isInstrumentationActive } from 'bippy';
|
|
3
3
|
import 'bippy/source';
|
package/dist/core.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { A as AgentContext, o as AgentProvider, n as AgentSession, D as DEFAULT_THEME, O as Options, f as OverlayBounds, R as ReactGrabAPI, s as ReactGrabRendererProps, a as formatElementInfo, b as generateSnippet, r as getFileName, g as getStack, i as init } from './core-
|
|
1
|
+
export { A as AgentContext, o as AgentProvider, n as AgentSession, p as AgentSessionStorage, D as DEFAULT_THEME, O as Options, f as OverlayBounds, R as ReactGrabAPI, s as ReactGrabRendererProps, a as formatElementInfo, b as generateSnippet, r as getFileName, g as getStack, i as init } from './core-CZmmuMr9.js';
|
|
2
2
|
export { isInstrumentationActive } from 'bippy';
|
|
3
3
|
import 'bippy/source';
|
package/dist/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { DEFAULT_THEME, getElementContext as formatElementInfo, generateSnippet, getFileName, getStack, init, Ee as isInstrumentationActive } from './chunk-
|
|
1
|
+
export { DEFAULT_THEME, getElementContext as formatElementInfo, generateSnippet, getFileName, getStack, init, Ee as isInstrumentationActive } from './chunk-GJFQUCRH.js';
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkTAXVLGRB_cjs = require('./chunk-TAXVLGRB.cjs');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* @license MIT
|
|
@@ -31,7 +31,7 @@ if (typeof window !== "undefined") {
|
|
|
31
31
|
if (window.__REACT_GRAB__) {
|
|
32
32
|
globalApi = window.__REACT_GRAB__;
|
|
33
33
|
} else {
|
|
34
|
-
globalApi =
|
|
34
|
+
globalApi = chunkTAXVLGRB_cjs.init();
|
|
35
35
|
window.__REACT_GRAB__ = globalApi;
|
|
36
36
|
window.dispatchEvent(
|
|
37
37
|
new CustomEvent("react-grab:init", { detail: globalApi })
|
|
@@ -41,27 +41,27 @@ if (typeof window !== "undefined") {
|
|
|
41
41
|
|
|
42
42
|
Object.defineProperty(exports, "DEFAULT_THEME", {
|
|
43
43
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunkTAXVLGRB_cjs.DEFAULT_THEME; }
|
|
45
45
|
});
|
|
46
46
|
Object.defineProperty(exports, "formatElementInfo", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunkTAXVLGRB_cjs.getElementContext; }
|
|
49
49
|
});
|
|
50
50
|
Object.defineProperty(exports, "generateSnippet", {
|
|
51
51
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunkTAXVLGRB_cjs.generateSnippet; }
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "getStack", {
|
|
55
55
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
56
|
+
get: function () { return chunkTAXVLGRB_cjs.getStack; }
|
|
57
57
|
});
|
|
58
58
|
Object.defineProperty(exports, "init", {
|
|
59
59
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
60
|
+
get: function () { return chunkTAXVLGRB_cjs.init; }
|
|
61
61
|
});
|
|
62
62
|
Object.defineProperty(exports, "isInstrumentationActive", {
|
|
63
63
|
enumerable: true,
|
|
64
|
-
get: function () { return
|
|
64
|
+
get: function () { return chunkTAXVLGRB_cjs.Ee; }
|
|
65
65
|
});
|
|
66
66
|
exports.getGlobalApi = getGlobalApi;
|
|
67
67
|
exports.setGlobalApi = setGlobalApi;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as ReactGrabAPI } from './core-
|
|
2
|
-
export { A as AgentContext, q as AgentOptions, o as AgentProvider, n as AgentSession, p as AgentSessionStorage, C as CrosshairContext, D as DEFAULT_THEME, k as DeepPartial, h as DragRect, m as ElementLabelContext, E as ElementLabelVariant, G as GrabbedBox, I as InputModeContext, O as Options, f as OverlayBounds, P as Position, c as ReactGrabState, j as Rect, e as RenderData, d as RenderType, l as SuccessLabelContext, S as SuccessLabelType, T as Theme, a as formatElementInfo, b as generateSnippet, g as getStack, i as init } from './core-
|
|
1
|
+
import { R as ReactGrabAPI } from './core-CZmmuMr9.cjs';
|
|
2
|
+
export { A as AgentContext, q as AgentOptions, o as AgentProvider, n as AgentSession, p as AgentSessionStorage, C as CrosshairContext, D as DEFAULT_THEME, k as DeepPartial, h as DragRect, m as ElementLabelContext, E as ElementLabelVariant, G as GrabbedBox, I as InputModeContext, O as Options, f as OverlayBounds, P as Position, c as ReactGrabState, j as Rect, e as RenderData, d as RenderType, l as SuccessLabelContext, S as SuccessLabelType, T as Theme, a as formatElementInfo, b as generateSnippet, g as getStack, i as init } from './core-CZmmuMr9.cjs';
|
|
3
3
|
export { isInstrumentationActive } from 'bippy';
|
|
4
4
|
import 'bippy/source';
|
|
5
5
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as ReactGrabAPI } from './core-
|
|
2
|
-
export { A as AgentContext, q as AgentOptions, o as AgentProvider, n as AgentSession, p as AgentSessionStorage, C as CrosshairContext, D as DEFAULT_THEME, k as DeepPartial, h as DragRect, m as ElementLabelContext, E as ElementLabelVariant, G as GrabbedBox, I as InputModeContext, O as Options, f as OverlayBounds, P as Position, c as ReactGrabState, j as Rect, e as RenderData, d as RenderType, l as SuccessLabelContext, S as SuccessLabelType, T as Theme, a as formatElementInfo, b as generateSnippet, g as getStack, i as init } from './core-
|
|
1
|
+
import { R as ReactGrabAPI } from './core-CZmmuMr9.js';
|
|
2
|
+
export { A as AgentContext, q as AgentOptions, o as AgentProvider, n as AgentSession, p as AgentSessionStorage, C as CrosshairContext, D as DEFAULT_THEME, k as DeepPartial, h as DragRect, m as ElementLabelContext, E as ElementLabelVariant, G as GrabbedBox, I as InputModeContext, O as Options, f as OverlayBounds, P as Position, c as ReactGrabState, j as Rect, e as RenderData, d as RenderType, l as SuccessLabelContext, S as SuccessLabelType, T as Theme, a as formatElementInfo, b as generateSnippet, g as getStack, i as init } from './core-CZmmuMr9.js';
|
|
3
3
|
export { isInstrumentationActive } from 'bippy';
|
|
4
4
|
import 'bippy/source';
|
|
5
5
|
|