grab 0.1.47 → 0.1.48-dev.2c6b683
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 +1 -1
- package/dist/{copy-content-CqFXlS9J.d.ts → copy-content-BPB8MmpL.d.cts} +45 -11
- package/dist/{copy-content-BoeDJ9l0.d.cts → copy-content-C7lFyXsY.d.ts} +45 -11
- package/dist/copy-content-CLCI_Lbe.cjs +10 -0
- package/dist/copy-content-DggKAmmU.js +10 -0
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +1 -1
- package/dist/core-CBCQU3Hn.js +14 -0
- package/dist/core-U9umuR7Y.cjs +14 -0
- package/dist/create-pointer-move-prompt-handoff-CizEB9Y4.js +9 -0
- package/dist/create-pointer-move-prompt-handoff-DByqEgBi.cjs +9 -0
- package/dist/freeze-updates-BbpDYqOS.js +51 -0
- package/dist/freeze-updates-fV8HUsUG.cjs +51 -0
- package/dist/{index-Ci1cIBwN.d.cts → index-DMyJsiaz.d.cts} +1 -1
- package/dist/{index-ssynL7Na.d.ts → index-VkohC_Hw.d.ts} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.global.js +18 -19
- package/dist/index.js +1 -1
- package/dist/primitives.cjs +2 -2
- package/dist/primitives.d.cts +1 -1
- package/dist/primitives.d.ts +1 -1
- package/dist/primitives.js +2 -2
- package/dist/renderer-CKcrLUAY.cjs +9 -0
- package/dist/renderer-CN9zoF6u.js +9 -0
- package/dist/styles.css +1 -1
- package/package.json +2 -2
- package/dist/action-shortcuts-DK7e2eLe.cjs +0 -9
- package/dist/action-shortcuts-DN8Q9O9k.js +0 -9
- package/dist/copy-content-BG5RrXFG.cjs +0 -10
- package/dist/copy-content-Drw2cQ8V.js +0 -10
- package/dist/core-CX-oJjgu.js +0 -15
- package/dist/core-CvEeB6XL.cjs +0 -15
- package/dist/freeze-updates-8grKqOPM.cjs +0 -51
- package/dist/freeze-updates-DiPhJRln.js +0 -51
- package/dist/renderer-B79Ze5ly.js +0 -9
- package/dist/renderer-CjUwZ1og.cjs +0 -9
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
Copy any UI element for your agent.
|
|
7
7
|
|
|
8
|
-
React Grab points agents to the actual source behind each selection. Agents are [**2× faster**](https://
|
|
8
|
+
React Grab points agents to the actual source behind each selection. Agents are [**2× faster**](https://www.react-grab.com/benchmarks) and more accurate when using React Grab.
|
|
9
9
|
|
|
10
10
|
[**Website →**](https://react-grab.com)
|
|
11
11
|
|
|
@@ -214,6 +214,12 @@ interface EnumPendingEdit {
|
|
|
214
214
|
}
|
|
215
215
|
type PendingEdit = NumericPendingEdit | ColorPendingEdit | EnumPendingEdit;
|
|
216
216
|
type PendingEdits = PendingEdit[];
|
|
217
|
+
interface DesignTokenResolver {
|
|
218
|
+
readonly hasTokens: boolean;
|
|
219
|
+
matchColor: (hex: string) => string | null;
|
|
220
|
+
matchLength: (px: number, cssProperty: string) => string | null;
|
|
221
|
+
stepLength: (px: number, direction: 1 | -1, cssProperty: string) => number | null;
|
|
222
|
+
}
|
|
217
223
|
interface PreviewStyles {
|
|
218
224
|
apply: (cssProperties: readonly string[], cssValue: string) => void;
|
|
219
225
|
restore: () => void;
|
|
@@ -222,16 +228,15 @@ interface PreviewStyles {
|
|
|
222
228
|
interface EditPanelState {
|
|
223
229
|
element: Element;
|
|
224
230
|
position: Position;
|
|
225
|
-
selectionBounds: OverlayBounds;
|
|
226
231
|
properties: EditableProperty[];
|
|
227
232
|
preview: PreviewStyles;
|
|
228
233
|
filePath?: string;
|
|
229
234
|
lineNumber?: number;
|
|
230
235
|
componentName?: string;
|
|
231
236
|
tagName?: string;
|
|
232
|
-
htmlPreview?: string;
|
|
233
237
|
initialSearchQuery?: string;
|
|
234
238
|
hasSessionEdits?: boolean;
|
|
239
|
+
designTokens?: DesignTokenResolver;
|
|
235
240
|
}
|
|
236
241
|
interface ContextMenuAction {
|
|
237
242
|
id: string;
|
|
@@ -242,14 +247,15 @@ interface ContextMenuAction {
|
|
|
242
247
|
enabled?: boolean | ((context: ActionContext) => boolean);
|
|
243
248
|
onAction: (context: ContextMenuActionContext) => void | Promise<void>;
|
|
244
249
|
}
|
|
245
|
-
interface
|
|
250
|
+
interface HierarchyItem {
|
|
246
251
|
tagName: string;
|
|
247
252
|
componentName?: string;
|
|
253
|
+
depth: number;
|
|
254
|
+
isLast: boolean;
|
|
248
255
|
}
|
|
249
|
-
interface
|
|
250
|
-
items:
|
|
256
|
+
interface HierarchyState {
|
|
257
|
+
items: HierarchyItem[];
|
|
251
258
|
activeIndex: number;
|
|
252
|
-
isVisible: boolean;
|
|
253
259
|
}
|
|
254
260
|
interface PluginHooks {
|
|
255
261
|
onActivate?: () => void;
|
|
@@ -293,6 +299,12 @@ interface Plugin {
|
|
|
293
299
|
}
|
|
294
300
|
interface Options {
|
|
295
301
|
enabled?: boolean;
|
|
302
|
+
/**
|
|
303
|
+
* Confine React Grab to a single container element instead of the whole page.
|
|
304
|
+
* Hit-testing, the toolbar viewport, and scroll re-anchoring are scoped to it.
|
|
305
|
+
* Used by the demo build to scope the showcase to its card.
|
|
306
|
+
*/
|
|
307
|
+
container?: HTMLElement;
|
|
296
308
|
activationMode?: ActivationMode;
|
|
297
309
|
keyHoldDuration?: number;
|
|
298
310
|
allowActivationInsideInput?: boolean;
|
|
@@ -324,12 +336,31 @@ interface Options {
|
|
|
324
336
|
interface SettableOptions extends Options {
|
|
325
337
|
enabled?: never;
|
|
326
338
|
telemetry?: never;
|
|
339
|
+
container?: never;
|
|
327
340
|
}
|
|
328
341
|
interface SourceInfo {
|
|
329
342
|
filePath: string;
|
|
330
343
|
lineNumber: number | null;
|
|
331
344
|
componentName: string | null;
|
|
332
345
|
}
|
|
346
|
+
interface SelectedElementPayload {
|
|
347
|
+
tagName: string;
|
|
348
|
+
id?: string;
|
|
349
|
+
className?: string;
|
|
350
|
+
textContent?: string;
|
|
351
|
+
componentName?: string;
|
|
352
|
+
filePath?: string;
|
|
353
|
+
lineNumber?: number;
|
|
354
|
+
columnNumber?: number;
|
|
355
|
+
}
|
|
356
|
+
interface ElementSelectedEventDetail {
|
|
357
|
+
elements: SelectedElementPayload[];
|
|
358
|
+
}
|
|
359
|
+
declare global {
|
|
360
|
+
interface WindowEventMap {
|
|
361
|
+
"react-grab:element-selected": CustomEvent<ElementSelectedEventDetail>;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
333
364
|
interface ToolbarState {
|
|
334
365
|
edge: "top" | "bottom" | "left" | "right";
|
|
335
366
|
ratio: number;
|
|
@@ -353,6 +384,7 @@ interface ReactGrabAPI {
|
|
|
353
384
|
getToolbarState: () => ToolbarState | null;
|
|
354
385
|
setToolbarState: (state: Partial<ToolbarState>) => void;
|
|
355
386
|
onToolbarStateChange: (callback: (state: ToolbarState) => void) => () => void;
|
|
387
|
+
reset: () => void;
|
|
356
388
|
dispose: () => void;
|
|
357
389
|
copyElement: (elements: Element | Element[]) => Promise<boolean>;
|
|
358
390
|
getSource: (element: Element) => Promise<SourceInfo | null>;
|
|
@@ -412,8 +444,8 @@ interface ReactGrabRendererProps {
|
|
|
412
444
|
selectionComponentName?: string;
|
|
413
445
|
selectionLabelVisible?: boolean;
|
|
414
446
|
selectionLabelStatus?: SelectionLabelStatus;
|
|
415
|
-
|
|
416
|
-
|
|
447
|
+
hierarchyState?: HierarchyState;
|
|
448
|
+
hierarchyMenuPosition?: DropdownAnchor | null;
|
|
417
449
|
labelInstances?: SelectionLabelInstance[];
|
|
418
450
|
dragVisible?: boolean;
|
|
419
451
|
dragBounds?: OverlayBounds;
|
|
@@ -427,6 +459,8 @@ interface ReactGrabRendererProps {
|
|
|
427
459
|
inputValue?: string;
|
|
428
460
|
isPromptMode?: boolean;
|
|
429
461
|
onShowContextMenuInstance?: (instanceId: string) => void;
|
|
462
|
+
onRetryInstance?: (instanceId: string) => void;
|
|
463
|
+
onAcknowledgeErrorInstance?: (instanceId: string) => void;
|
|
430
464
|
onLabelInstanceHoverChange?: (instanceId: string, isHovered: boolean) => void;
|
|
431
465
|
onInputChange?: (value: string) => void;
|
|
432
466
|
onInputSubmit?: () => void;
|
|
@@ -514,7 +548,7 @@ interface ReactGrabEntry {
|
|
|
514
548
|
frames?: ReactGrabStackFrame[];
|
|
515
549
|
}
|
|
516
550
|
//#endregion
|
|
517
|
-
//#region ../../node_modules/.pnpm/bippy@0.5.
|
|
551
|
+
//#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/core.d.ts
|
|
518
552
|
type Flags = number;
|
|
519
553
|
type Lanes = number;
|
|
520
554
|
type TypeOfMode = number;
|
|
@@ -695,7 +729,7 @@ declare const isInstrumentationActive: () => boolean;
|
|
|
695
729
|
* Returns the latest fiber (since it may be double-buffered).
|
|
696
730
|
*/
|
|
697
731
|
//#endregion
|
|
698
|
-
//#region ../../node_modules/.pnpm/bippy@0.5.
|
|
732
|
+
//#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/source.d.ts
|
|
699
733
|
//#region src/source/parse-stack.d.ts
|
|
700
734
|
interface StackFrame {
|
|
701
735
|
args?: unknown[];
|
|
@@ -717,4 +751,4 @@ interface CopyContentOptions {
|
|
|
717
751
|
}
|
|
718
752
|
declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
|
|
719
753
|
//#endregion
|
|
720
|
-
export {
|
|
754
|
+
export { SourceInfo as A, PromptModeContext as C, Rect as D, ReactGrabState as E, ToolbarState as M, SelectedElementPayload as O, Position as S, ReactGrabRendererProps as T, Options as _, ActionContext as a, PluginConfig as b, AgentContext as c, DeepPartial as d, DragRect as f, GrabbedBox as g, ElementSelectedEventDetail as h, isInstrumentationActive as i, Theme as j, SettableOptions as k, ContextMenuAction as l, ElementLabelVariant as m, StackFrame as n, ActionContextHooks as o, ElementLabelContext as p, Fiber as r, ActivationMode as s, copyContent as t, ContextMenuActionContext as u, OverlayBounds as v, ReactGrabAPI as w, PluginHooks as x, Plugin as y };
|
|
@@ -214,6 +214,12 @@ interface EnumPendingEdit {
|
|
|
214
214
|
}
|
|
215
215
|
type PendingEdit = NumericPendingEdit | ColorPendingEdit | EnumPendingEdit;
|
|
216
216
|
type PendingEdits = PendingEdit[];
|
|
217
|
+
interface DesignTokenResolver {
|
|
218
|
+
readonly hasTokens: boolean;
|
|
219
|
+
matchColor: (hex: string) => string | null;
|
|
220
|
+
matchLength: (px: number, cssProperty: string) => string | null;
|
|
221
|
+
stepLength: (px: number, direction: 1 | -1, cssProperty: string) => number | null;
|
|
222
|
+
}
|
|
217
223
|
interface PreviewStyles {
|
|
218
224
|
apply: (cssProperties: readonly string[], cssValue: string) => void;
|
|
219
225
|
restore: () => void;
|
|
@@ -222,16 +228,15 @@ interface PreviewStyles {
|
|
|
222
228
|
interface EditPanelState {
|
|
223
229
|
element: Element;
|
|
224
230
|
position: Position;
|
|
225
|
-
selectionBounds: OverlayBounds;
|
|
226
231
|
properties: EditableProperty[];
|
|
227
232
|
preview: PreviewStyles;
|
|
228
233
|
filePath?: string;
|
|
229
234
|
lineNumber?: number;
|
|
230
235
|
componentName?: string;
|
|
231
236
|
tagName?: string;
|
|
232
|
-
htmlPreview?: string;
|
|
233
237
|
initialSearchQuery?: string;
|
|
234
238
|
hasSessionEdits?: boolean;
|
|
239
|
+
designTokens?: DesignTokenResolver;
|
|
235
240
|
}
|
|
236
241
|
interface ContextMenuAction {
|
|
237
242
|
id: string;
|
|
@@ -242,14 +247,15 @@ interface ContextMenuAction {
|
|
|
242
247
|
enabled?: boolean | ((context: ActionContext) => boolean);
|
|
243
248
|
onAction: (context: ContextMenuActionContext) => void | Promise<void>;
|
|
244
249
|
}
|
|
245
|
-
interface
|
|
250
|
+
interface HierarchyItem {
|
|
246
251
|
tagName: string;
|
|
247
252
|
componentName?: string;
|
|
253
|
+
depth: number;
|
|
254
|
+
isLast: boolean;
|
|
248
255
|
}
|
|
249
|
-
interface
|
|
250
|
-
items:
|
|
256
|
+
interface HierarchyState {
|
|
257
|
+
items: HierarchyItem[];
|
|
251
258
|
activeIndex: number;
|
|
252
|
-
isVisible: boolean;
|
|
253
259
|
}
|
|
254
260
|
interface PluginHooks {
|
|
255
261
|
onActivate?: () => void;
|
|
@@ -293,6 +299,12 @@ interface Plugin {
|
|
|
293
299
|
}
|
|
294
300
|
interface Options {
|
|
295
301
|
enabled?: boolean;
|
|
302
|
+
/**
|
|
303
|
+
* Confine React Grab to a single container element instead of the whole page.
|
|
304
|
+
* Hit-testing, the toolbar viewport, and scroll re-anchoring are scoped to it.
|
|
305
|
+
* Used by the demo build to scope the showcase to its card.
|
|
306
|
+
*/
|
|
307
|
+
container?: HTMLElement;
|
|
296
308
|
activationMode?: ActivationMode;
|
|
297
309
|
keyHoldDuration?: number;
|
|
298
310
|
allowActivationInsideInput?: boolean;
|
|
@@ -324,12 +336,31 @@ interface Options {
|
|
|
324
336
|
interface SettableOptions extends Options {
|
|
325
337
|
enabled?: never;
|
|
326
338
|
telemetry?: never;
|
|
339
|
+
container?: never;
|
|
327
340
|
}
|
|
328
341
|
interface SourceInfo {
|
|
329
342
|
filePath: string;
|
|
330
343
|
lineNumber: number | null;
|
|
331
344
|
componentName: string | null;
|
|
332
345
|
}
|
|
346
|
+
interface SelectedElementPayload {
|
|
347
|
+
tagName: string;
|
|
348
|
+
id?: string;
|
|
349
|
+
className?: string;
|
|
350
|
+
textContent?: string;
|
|
351
|
+
componentName?: string;
|
|
352
|
+
filePath?: string;
|
|
353
|
+
lineNumber?: number;
|
|
354
|
+
columnNumber?: number;
|
|
355
|
+
}
|
|
356
|
+
interface ElementSelectedEventDetail {
|
|
357
|
+
elements: SelectedElementPayload[];
|
|
358
|
+
}
|
|
359
|
+
declare global {
|
|
360
|
+
interface WindowEventMap {
|
|
361
|
+
"react-grab:element-selected": CustomEvent<ElementSelectedEventDetail>;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
333
364
|
interface ToolbarState {
|
|
334
365
|
edge: "top" | "bottom" | "left" | "right";
|
|
335
366
|
ratio: number;
|
|
@@ -353,6 +384,7 @@ interface ReactGrabAPI {
|
|
|
353
384
|
getToolbarState: () => ToolbarState | null;
|
|
354
385
|
setToolbarState: (state: Partial<ToolbarState>) => void;
|
|
355
386
|
onToolbarStateChange: (callback: (state: ToolbarState) => void) => () => void;
|
|
387
|
+
reset: () => void;
|
|
356
388
|
dispose: () => void;
|
|
357
389
|
copyElement: (elements: Element | Element[]) => Promise<boolean>;
|
|
358
390
|
getSource: (element: Element) => Promise<SourceInfo | null>;
|
|
@@ -412,8 +444,8 @@ interface ReactGrabRendererProps {
|
|
|
412
444
|
selectionComponentName?: string;
|
|
413
445
|
selectionLabelVisible?: boolean;
|
|
414
446
|
selectionLabelStatus?: SelectionLabelStatus;
|
|
415
|
-
|
|
416
|
-
|
|
447
|
+
hierarchyState?: HierarchyState;
|
|
448
|
+
hierarchyMenuPosition?: DropdownAnchor | null;
|
|
417
449
|
labelInstances?: SelectionLabelInstance[];
|
|
418
450
|
dragVisible?: boolean;
|
|
419
451
|
dragBounds?: OverlayBounds;
|
|
@@ -427,6 +459,8 @@ interface ReactGrabRendererProps {
|
|
|
427
459
|
inputValue?: string;
|
|
428
460
|
isPromptMode?: boolean;
|
|
429
461
|
onShowContextMenuInstance?: (instanceId: string) => void;
|
|
462
|
+
onRetryInstance?: (instanceId: string) => void;
|
|
463
|
+
onAcknowledgeErrorInstance?: (instanceId: string) => void;
|
|
430
464
|
onLabelInstanceHoverChange?: (instanceId: string, isHovered: boolean) => void;
|
|
431
465
|
onInputChange?: (value: string) => void;
|
|
432
466
|
onInputSubmit?: () => void;
|
|
@@ -514,7 +548,7 @@ interface ReactGrabEntry {
|
|
|
514
548
|
frames?: ReactGrabStackFrame[];
|
|
515
549
|
}
|
|
516
550
|
//#endregion
|
|
517
|
-
//#region ../../node_modules/.pnpm/bippy@0.5.
|
|
551
|
+
//#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/core.d.ts
|
|
518
552
|
type Flags = number;
|
|
519
553
|
type Lanes = number;
|
|
520
554
|
type TypeOfMode = number;
|
|
@@ -695,7 +729,7 @@ declare const isInstrumentationActive: () => boolean;
|
|
|
695
729
|
* Returns the latest fiber (since it may be double-buffered).
|
|
696
730
|
*/
|
|
697
731
|
//#endregion
|
|
698
|
-
//#region ../../node_modules/.pnpm/bippy@0.5.
|
|
732
|
+
//#region ../../node_modules/.pnpm/bippy@0.5.43_react@19.2.6/node_modules/bippy/dist/source.d.ts
|
|
699
733
|
//#region src/source/parse-stack.d.ts
|
|
700
734
|
interface StackFrame {
|
|
701
735
|
args?: unknown[];
|
|
@@ -717,4 +751,4 @@ interface CopyContentOptions {
|
|
|
717
751
|
}
|
|
718
752
|
declare const copyContent: (content: string, options?: CopyContentOptions) => boolean;
|
|
719
753
|
//#endregion
|
|
720
|
-
export {
|
|
754
|
+
export { SourceInfo as A, PromptModeContext as C, Rect as D, ReactGrabState as E, ToolbarState as M, SelectedElementPayload as O, Position as S, ReactGrabRendererProps as T, Options as _, ActionContext as a, PluginConfig as b, AgentContext as c, DeepPartial as d, DragRect as f, GrabbedBox as g, ElementSelectedEventDetail as h, isInstrumentationActive as i, Theme as j, SettableOptions as k, ContextMenuAction as l, ElementLabelVariant as m, StackFrame as n, ActionContextHooks as o, ElementLabelContext as p, Fiber as r, ActivationMode as s, copyContent as t, ContextMenuActionContext as u, OverlayBounds as v, ReactGrabAPI as w, PluginHooks as x, Plugin as y };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 Aiden Bai
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
const e=require(`./freeze-updates-fV8HUsUG.cjs`);var t=class extends Error{constructor(e){super(e),this.name=`ReactGrabError`}},n=class extends t{constructor(){super(`Can't generate CSS selector for non-element node type.`),this.name=`NonElementNodeError`}},r=class extends t{constructor(e){super(`Timeout: Can't find a unique selector after ${e}ms`),this.name=`SelectorTimeoutError`,this.timeoutMs=e}},i=class extends t{constructor(){super(`Selector was not found.`),this.name=`SelectorNotFoundError`}},a=class extends t{constructor(){super(`Failed to copy`),this.name=`CopyFailedError`}};const o=e=>e===void 0||!Number.isFinite(e)?3:Math.max(0,Math.floor(e)),s=e=>{try{return decodeURIComponent(e)}catch{return e}},c=/(?:^|[/\\])node_modules[/\\]/,l=/[/\\]\.vite[/\\]deps[^/\\]*[/\\]/,u=/\.[mc]?[jt]sx?$/i,d=/^chunk-[A-Za-z0-9_-]+$/,f=/[/\\]/,p=/^(.+?)@v?\d/,m=e=>e.split(f).filter(Boolean),h=e=>{let[t,n]=m(e);return!t||t.startsWith(`.`)?null:t.startsWith(`@`)?n?`${t}/${n}`:null:t},ee=e=>{let t=m(e)[0];if(!t)return null;let n=t.replace(u,``);if(d.test(n))return null;if(!n.startsWith(`@`))return n;let r=n.indexOf(`_`);return r===-1?null:`${n.slice(0,r)}/${n.slice(r+1)}`},g=(e,t,n)=>{let r=e.split(t);return r.length>1?n(r[r.length-1]):null},_=e=>e?.match(p)?.[1]??null,te=e=>{let t;try{t=new URL(e)}catch{return null}if(!t.hostname)return null;let n=m(t.pathname).map(s);for(let[e,t]of n.entries()){if(t.startsWith(`@`)){let r=_(n[e+1]);if(r)return`${t}/${r}`;continue}let r=_(t);if(r)return r}return null},ne=e=>g(e,l,ee)??g(e,c,h),re=t=>{if(!t)return null;let n=e.E(t);return n&&(ne(s(n))||te(t))||null},ie=/^@[A-Za-z0-9][A-Za-z0-9._-]*$/,ae=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,oe=new Set([`app`,`web`,`website`,`frontend`,`client`,`src`]),se=new Set([`app`,`src`,`components`,`pages`,`features`,`modules`,`hooks`,`lib`,`utils`,`ui`,`shared`,`common`,`core`,`styles`,`assets`]),ce=e=>{let t=e;for(;t.startsWith(`../`)||t.startsWith(`./`);)t=t.slice(t.startsWith(`../`)?3:2);return t},le=t=>{let n=ce(s(e.E(t)));if(n.startsWith(`/`))return null;let[r,i,...a]=m(n);return!r||!i||a.length===0||!ie.test(r)||se.has(r.slice(1))||!ae.test(i)||u.test(i)||oe.has(i)?null:`${r}/${i}`},ue=e=>e?re(e)??le(e):null,v=t=>{if(!t)return{origin:`unknown`,packageName:null};let n=ue(t);return n?{origin:`package`,packageName:n}:e.w(t)?{origin:`app`,packageName:null}:{origin:`unknown`,packageName:null}},de=new Set([`role`,`name`,`aria-label`,`rel`,`href`]),y=e=>{if(!/^[a-z-]{3,}$/i.test(e))return!1;let t=e.split(/-|[A-Z]/);for(let e of t)if(e.length<=2||/[^aeiou]{4,}/i.test(e))return!1;return!0},fe=(e,t)=>{let n=de.has(e)||e.startsWith(`data-`)&&y(e),r=y(t)&&t.length<100||t.startsWith(`#`)&&y(t.slice(1));return n&&r},b=e=>{let t=e[0].name;for(let n=1;n<e.length;n++)t=`${e[n].name} > ${t}`;return t},x=e=>{let t=0;for(let n of e)t+=n.penalty;return t},S=(e,t)=>x(e)-x(t),C=(e,t)=>{let n=e.parentNode;if(!n)return;let r=n.firstChild;if(!r)return;let i=0;for(;r&&(r instanceof Element&&(t===void 0||r.tagName.toLowerCase()===t)&&i++,r!==e);)r=r.nextSibling;return i},pe=(e,t)=>e===`html`?`html`:`${e}:nth-child(${t})`,me=(e,t)=>e===`html`?`html`:`${e}:nth-of-type(${t})`,he=(e,t)=>{let n=[],r=e.getAttribute(`id`),i=e.tagName.toLowerCase();r&&y(r)&&n.push({name:`#${CSS.escape(r)}`,penalty:0});for(let t of e.classList)y(t)&&n.push({name:`.${CSS.escape(t)}`,penalty:1});for(let r of e.attributes)t(r.name,r.value)&&n.push({name:`[${CSS.escape(r.name)}="${CSS.escape(r.value)}"]`,penalty:2});n.push({name:i,penalty:5});let a=C(e,i);a!==void 0&&n.push({name:me(i,a),penalty:10});let o=C(e);return o!==void 0&&n.push({name:pe(i,o),penalty:50}),n},w=(t,n=e.pt,r=[])=>{if(n<=0)return[];if(t.length===0)return[r];let i=[];for(let e of t[0]){let a=n-i.length;if(a<=0)break;i.push(...w(t.slice(1),a,[...r,e]))}return i},ge=(e,t)=>{let n=t.getRootNode?.();return n instanceof ShadowRoot?n:e instanceof Document?e:e.ownerDocument},T=(e,t)=>t.querySelectorAll(b(e)).length===1,_e=(e,t)=>{let n=e,r=[];for(;n&&n!==t;){let e=n.tagName.toLowerCase(),t=C(n,e);if(t===void 0)return;r.push({name:me(e,t),penalty:10}),n=n.parentElement}return T(r,t)?r:void 0},ve=(e,t,a,o)=>{if(e.nodeType!==Node.ELEMENT_NODE)throw new n;if(e.tagName.toLowerCase()===`html`)return`html`;let s=ge(t,e),c=Date.now(),l=[],u=e,d=0,f;for(;u&&u!==s&&!f;)if(l.push(he(u,o)),u=u.parentElement,d++,d>=3){let t=w(l);t.sort(S);for(let n of t){if(Date.now()-c>a){let t=_e(e,s);if(!t)throw new r(a);return b(t)}if(T(n,s)){f=n;break}}}if(!f&&d<3){let e=w(l);e.sort(S);for(let t of e){if(Date.now()-c>a)break;if(T(t,s)){f=t;break}}}if(!f)throw new i;return b(f)},E=e=>e.ownerDocument.body??e.ownerDocument.documentElement,D=new Set([`data-testid`,`data-test-id`,`data-test`,`data-cy`,`data-qa`,`aria-label`,`href`,`src`,`role`,`name`,`title`,`alt`]),O=e=>e.length>0&&e.length<=120,k=(e,t)=>{try{let n=e.ownerDocument.querySelectorAll(t);return n.length===1&&n[0]===e}catch{return!1}},ye=e=>{if(e instanceof HTMLElement&&e.id){let t=`#${CSS.escape(e.id)}`;if(k(e,t))return t}for(let t of D){let n=e.getAttribute(t);if(!n||!O(n))continue;let r=`[${t}=${JSON.stringify(n)}]`;if(k(e,r))return r;let i=`${e.tagName.toLowerCase()}${r}`;if(k(e,i))return i}return null},be=e=>{let t=[],n=E(e),r=e;for(;r;){if(r instanceof HTMLElement&&r.id){t.unshift(`#${CSS.escape(r.id)}`);break}let e=r.parentElement;if(!e){t.unshift(r.tagName.toLowerCase());break}let i=Array.from(e.children).indexOf(r)+1;if(t.unshift(`${r.tagName.toLowerCase()}:nth-child(${i})`),e===n){t.unshift(n.tagName.toLowerCase());break}r=e}return t.join(` > `)},xe=e=>{let t=ye(e);if(t)return t;try{let t=ve(e,E(e),200,(e,t)=>fe(e,t)||D.has(e)&&O(t));if(t)return t}catch{}return be(e)},Se=t=>{if(!t)return!1;let n=`/${e.x(t)}/`.toLowerCase();return e.Ft.some(e=>n.includes(e))},Ce=e=>e.map(e=>`\n in ${e}`).join(``),we=[`about://React/`,`rsc://React/`],Te=e=>we.some(t=>e.startsWith(t)),Ee=e=>{for(let t of we){if(!e.startsWith(t))continue;let n=e.indexOf(`/`,t.length);if(n===-1)continue;let r=n+1,i=e.lastIndexOf(`?`);return s(i>r?e.slice(r,i):e.slice(r))}return e},De=e=>{if(typeof e!=`object`||!e||!(`status`in e)||e.status!==`fulfilled`||!(`value`in e)||typeof e.value!=`object`||e.value===null||!(`originalStackFrame`in e.value))return null;let t=e.value.originalStackFrame;return typeof t!=`object`||!t||!(`file`in t)||typeof t.file!=`string`||!t.file||`ignored`in t&&t.ignored?null:{file:t.file,line1:`line1`in t&&typeof t.line1==`number`?t.line1:null,column1:`column1`in t&&typeof t.column1==`number`?t.column1:null}},Oe=async(t,n)=>{let r=[],i=[];for(let e=0;e<t.length;e++){let n=t[e];!n.isServer||!n.fileName||(r.push(e),i.push({file:Ee(n.fileName),methodName:n.functionName??`<unknown>`,line1:n.lineNumber??null,column1:n.columnNumber??null,arguments:[]}))}if(i.length===0)return t;let a=new AbortController,o=setTimeout(()=>a.abort(),e.Lt),s=()=>a.abort();n?.aborted&&a.abort(),n?.addEventListener(`abort`,s);try{let n=await fetch(`${e.y()}/__nextjs_original-stack-frames`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({frames:i,isServer:!0,isEdgeServer:!1,isAppDirectory:!0}),priority:`high`,signal:a.signal});if(!n.ok)return t;let o=await n.json();if(!Array.isArray(o))return t;let s=[...t];for(let e=0;e<r.length;e++){let n=De(o[e]);if(!n)continue;let i=r[e];s[i]={...t[i],fileName:n.file,lineNumber:n.line1??void 0,columnNumber:n.column1??void 0,isSymbolicated:!0}}return s}catch{return t}finally{clearTimeout(o),n?.removeEventListener(`abort`,s)}},ke=t=>{let n=new Map;return e.M(t,t=>{if(!e.O(t))return!1;let r=e.T(t._debugStack.stack);if(!r)return!1;for(let t of e.D(r))!t.functionName||!t.fileName||Te(t.fileName)&&(n.has(t.functionName)||n.set(t.functionName,{...t,isServer:!0}));return!1},!0),n},Ae=(e,t)=>{if(!t.some(e=>e.isServer&&!e.fileName&&e.functionName))return t;let n=ke(e);return n.size===0?t:t.map(e=>{if(!e.isServer||e.fileName||!e.functionName)return e;let t=n.get(e.functionName);return t?{...e,fileName:t.fileName,lineNumber:t.lineNumber,columnNumber:t.columnNumber}:e})};let A=0;const j=[],je=()=>A<3?(A+=1,Promise.resolve()):new Promise(e=>{j.push(e)}),Me=()=>{let e=j.shift();if(e){e();return}--A},M=async(t,n,r=e.It)=>{await je();let i=new AbortController,a,o=new Promise(e=>{a=setTimeout(()=>{i.abort(),e(n)},r)}),s=t(i.signal);s.catch(()=>{});try{return await Promise.race([s,o])}finally{clearTimeout(a),Me()}},N=(e,t)=>e.length>t?`${e.slice(0,t)}...`:e,Ne=e=>e.startsWith(`data-react-grab-`),P=e=>e.replace(/\s+/g,` `).trim(),Pe=e=>{let t=[];for(let n of e.childNodes){if(n.nodeType!==Node.TEXT_NODE)continue;let e=P(n.textContent??``);e&&t.push(e)}return t.join(` `)},F=t=>t.getAttribute(`aria-hidden`)===`true`||t.hasAttribute(`hidden`)?!0:e.At.has(t.tagName.toLowerCase()),I=(e,t,n)=>{if(e.nodeType===Node.TEXT_NODE){let r=P(e.textContent??``);return r?(t.push(r),n-r.length):n}if(!(e instanceof Element)||F(e))return n;for(let r of e.childNodes)if(n=I(r,t,n),n<=0)break;return n},L=(t,n)=>{if(F(t))return``;let r=Pe(t);if(!e.Dt.has(n)||r&&t.children.length===0)return r;let i=[];return I(t,i,100),i.join(` `)},R=e=>N(e,15),Fe=t=>{let n=[];for(let r of e.kt){let e=t.getAttribute(r);e&&n.push(`${r}="${e}"`)}return n.length>0?` ${n.join(` `)}`:``},Ie=e=>e===`class`||e===`className`||e===`style`,z=t=>{let n=[],r=[],i=``;for(let{name:a,value:o}of t.attributes)if(!Ne(a)){if(Ie(a)){a!==`style`&&o&&(i=` class="${R(o)}"`);continue}e.Ot.has(a)?n.push(o?` ${a}="${o}"`:` ${a}`):o&&r.push(` ${a}="${R(o)}"`)}return n.join(``)+r.join(``)+i},B=t=>t.length===0?``:t.length<=2?t.map(t=>`<${e.j(t)} ...>`).join(`
|
|
10
|
+
`):`(${t.length} elements)`,Le=t=>{let n=e.j(t);if(!(t instanceof HTMLElement))return`<${n}${Fe(t)} />`;let r=z(t),i=N(L(t,n),100);return i?`<${n}${r}>${i}</${n}>`:`<${n}${r} />`},V=t=>{let n=e.j(t),r=z(t),i=L(t,n),a=[],o=[],s=!1;for(let e of t.childNodes)e.nodeType!==Node.COMMENT_NODE&&(e.nodeType===Node.TEXT_NODE?e.textContent&&e.textContent.trim().length>0&&(s=!0):e instanceof Element&&(s?o.push(e):a.push(e)));let c=i.length>0&&e.Dt.has(n),l=``,u=B(a);u&&!c&&(l+=`\n ${u}`),i&&(l+=`\n ${N(i,100)}`);let d=B(o);return d&&!c&&(l+=`\n ${d}`),l.length>0?`<${n}${r}>${l}\n</${n}>`:`<${n}${r} />`},Re=new Set([`_`,`$`,`motion.`,`styled.`,`chakra.`,`ark.`,`Primitive.`,`Slot.`]),ze=new Set(`AppRouter.AppRouterAnnouncer.AppDevOverlay.AppDevOverlayErrorBoundary.ClientPageRoot.ClientSegmentRoot.DevRootHTTPAccessFallbackBoundary.ErrorBoundary.ErrorBoundaryHandler.GracefulDegradeBoundary.HTTPAccessErrorFallback.HTTPAccessFallbackBoundary.HTTPAccessFallbackErrorBoundary.HandleRedirect.Head.HistoryUpdater.HotReload.InnerLayoutRouter.InnerScrollAndFocusHandler.InnerScrollAndFocusHandlerOld.InnerScrollAndMaybeFocusHandler.InnerScrollHandlerNew.LoadableComponent.LoadingBoundary.LoadingBoundaryProvider.NotAllowedRootHTTPFallbackError.OfflineProvider.OuterLayoutRouter.RedirectBoundary.RedirectErrorBoundary.RenderFromTemplateContext.RenderValidationBoundaryAtThisLevel.ReplaySsrOnlyErrors.RootErrorBoundary.RootLevelDevOverlayElement.Router.ScrollAndFocusHandler.ScrollAndMaybeFocusHandler.SegmentBoundaryTrigger.SegmentBoundaryTriggerNode.SegmentStateProvider.SegmentTrieNode.SegmentViewNode.SegmentViewStateNode.ServerRoot.body.html`.split(`.`)),Be=new Set([`Suspense`,`Fragment`,`StrictMode`,`Profiler`,`SuspenseList`]),Ve=new Set([`MotionDOMComponent`]),H=e=>{if(ze.has(e)||Be.has(e)||Ve.has(e))return!0;for(let t of Re)if(e.startsWith(t))return!0;return!1},He=e=>!(!e||H(e)||e===`SlotClone`||e===`Slot`),U=e=>!(e.length<=1||H(e)||e[0]!==e[0].toUpperCase()||e.endsWith(`Provider`)||e.endsWith(`Context`)),W=e=>e&&U(e)?e:null,G=t=>{if(!e.N())return t;let n=t;for(;n;){if(e.I(n))return n;n=n.parentElement}return t},Ue=t=>{if(!e.N())return null;let n=e.I(G(t)),r=0;for(;n;){if(n.key)return n.key;if(e.R(n)&&(r+=1,r===2))break;n=n.return}return null},K=new WeakMap,q=new WeakMap,J=e=>t=>fetch(t,{signal:e,priority:`high`}),We=t=>M(async n=>{try{let r=e.I(t);if(!r)return null;let i=await e.C(r,!0,J(n));return e.b()?await Oe(Ae(r,i),n):i}catch{return null}},null),Y=t=>{if(!e.N())return Promise.resolve([]);let n=G(t),r=K.get(n);if(r)return r;let i=We(n).then(e=>(e===null&&K.delete(n),e));return K.set(n,i),i},Ge=async t=>{if(!e.N())return null;let n=await Y(t);if(!n)return null;for(let e of n){let t=W(e.functionName);if(t)return t}return null},Ke=e=>e.find(e=>!!W(e.functionName))??e[0]??null,qe=t=>!t||!e.R(t)?null:W(e.P(t.type)),Je=t=>M(async n=>{let r=e.I(G(t));if(!r)return null;try{let t=await e.S(r,!0,J(n));return t?.fileName?{filePath:e.x(t.fileName),lineNumber:t.lineNumber??null,columnNumber:t.columnNumber??null,componentName:W(t.functionName)??qe(r._debugOwner),origin:v(t.fileName).origin}:null}catch{return null}},null),X=e=>{let t=G(e),n=q.get(t);if(n)return n;let r=Je(t).then(e=>(e||q.delete(t),e));return q.set(t,r),r},Ye=[`app`,`package`],Xe=(t,n)=>{for(let r of Ye){if(t?.origin===r)return t;let i=Ke(n.filter(e=>v(e.fileName).origin===r));if(i?.fileName)return{filePath:e.x(i.fileName),lineNumber:i.lineNumber??null,columnNumber:i.columnNumber??null,componentName:W(i.functionName),origin:r}}return null},Ze=async e=>{let t=await X(e);return t?.origin===`app`?t:Xe(t,await Y(e)??[])},Qe=e=>Z(G(e),1)[0]??null,Z=(t,n,r=()=>!0)=>{if(!e.N())return[];let i=e.I(t);if(!i)return[];let a=[];return e.M(i,t=>{if(a.length>=n)return!0;if(e.R(t)){let n=e.P(t.type);n&&He(n)&&r(n)&&a.push(n)}return!1},!0),a},$e=[`/src/app/`,`/src/pages/`,`/app/`,`/pages/`],et=(t,n)=>{let r=e.x(t);if(!n||!r.startsWith(`/`))return r;for(let e of $e){let t=r.indexOf(e);if(t!==-1)return`/./${r.slice(t+1)}`}return r},tt=(e,t)=>{let n=et(e.filePath,t),r=t&&e.lineNumber?`${n}:${e.lineNumber}${e.columnNumber?`:${e.columnNumber}`:``}`:n;return e.componentName?`\n in ${e.componentName} (at ${r})`:`\n in ${r}`},Q={isAppSource:!1,consumesBudget:!1},nt=(e,t,n,r)=>{let i=t.packageName,a=t.origin===`app`?e.fileName:null;if(e.isServer&&!a&&(n||!e.functionName)){let e=i?`${i} at Server`:`at Server`;return{text:`\n in ${n??`<anonymous>`} (${e})`,...Q}}return!a&&n?{text:i?`\n in ${n} (${i})`:`\n in ${n}`,...Q}:i?{text:`\n in ${i}`,...Q}:a?{text:tt({componentName:n,filePath:a,lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null},r),isAppSource:!0,consumesBudget:!Se(a)}:null},rt=(t,n={},r=null)=>{let i=o(n.maxLines),a=Math.max(i,20),s=e.b(),c=[],l=new Set,u=null,d=!1,f=!1,p=!1,m=0,h=e=>{e&&l.add(e)};r&&(f=r.origin===`app`,Se(r.filePath)||(m+=1),h(r.componentName),c.push(tt(r,s)));for(let e of t){if(m>=i||c.length>=a)break;let t=v(e.fileName),n=W(e.functionName),o=t.packageName?`${t.packageName}:${n??``}:${e.isServer?`server`:`client`}`:null;if(o&&o===u)continue;if(!d&&n&&n===r?.componentName){d=!0;continue}let l=nt(e,t,n,s);l!==null&&l.text!==c[c.length-1]&&(l.isAppSource&&(f=!0),l.consumesBudget&&(m+=1,p=!0),h(n),c.push(l.text),u=o)}return{text:c.join(``),shouldAppendSelectorHint:!f,hasBudgetedStackFrame:p,renderedComponentNames:l}},it=async e=>{let t=await X(e);return t?.origin===`app`?t:null},at=(e,t,n)=>{let r=Z(G(e),n,e=>U(e)&&!t.renderedComponentNames.has(e));return r.length===0?t:{...t,text:`${t.text}${Ce(r)}`}},$=async(e,t={})=>{let n=await it(e),r=await Y(e),i=o(t.maxLines),a=rt(r??[],t,n);if(a.text)return a.hasBudgetedStackFrame?a:at(e,a,i);let s=Z(G(e),i);return{text:Ce(s),shouldAppendSelectorHint:!0,hasBudgetedStackFrame:!1,renderedComponentNames:new Set(s)}},ot=async(e,t={})=>(await $(e,t)).text,st=(e,t)=>{let n=Ue(e),r=n===null?``:`\n key: "${n}"`,i=t.shouldAppendSelectorHint?`\n selector: ${xe(e)}`:``;return`${t.text}${r}${i}`},ct=async(e,t={})=>{let n=await $(e,t);return`${Le(e)}${st(e,n).replace(/\n\s+/g,` `)}`},lt=async(e,t={})=>{let n=G(e);return`${V(n)}${st(n,await $(n,t))}`},ut=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),dt=(t,n)=>{let r=n?.componentName??`div`,i={version:e.zt,content:t,entries:n?.entries??[{tagName:n?.tagName,componentName:r,content:t,commentText:n?.commentText}],timestamp:Date.now()},a=e=>{e.preventDefault(),e.clipboardData?.setData(`text/plain`,t),e.clipboardData?.setData(`text/html`,`<meta charset='utf-8'><pre><code>${ut(t)}</code></pre>`),e.clipboardData?.setData(`application/x-react-grab`,JSON.stringify(i))};document.addEventListener(`copy`,a);let o=document.createElement(`textarea`);o.value=t,o.style.position=`fixed`,o.style.left=`-9999px`,o.ariaHidden=`true`,document.body.appendChild(o),o.select();try{return typeof document.execCommand==`function`?document.execCommand(`copy`):!1}finally{document.removeEventListener(`copy`,a),o.remove()}};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return ot}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return dt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return xe}});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license MIT
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2025 Aiden Bai
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import{At as e,C as t,D as n,Dt as r,E as i,Ft as a,I as o,It as s,Lt as c,M as l,N as u,O as d,Ot as f,P as p,R as m,S as h,T as ee,b as g,j as _,kt as te,pt as ne,w as re,x as v,y as ie,zt as ae}from"./freeze-updates-BbpDYqOS.js";var y=class extends Error{constructor(e){super(e),this.name=`ReactGrabError`}},oe=class extends y{constructor(){super(`Can't generate CSS selector for non-element node type.`),this.name=`NonElementNodeError`}},se=class extends y{constructor(e){super(`Timeout: Can't find a unique selector after ${e}ms`),this.name=`SelectorTimeoutError`,this.timeoutMs=e}},ce=class extends y{constructor(){super(`Selector was not found.`),this.name=`SelectorNotFoundError`}},le=class extends y{constructor(){super(`Failed to copy`),this.name=`CopyFailedError`}};const ue=e=>e===void 0||!Number.isFinite(e)?3:Math.max(0,Math.floor(e)),b=e=>{try{return decodeURIComponent(e)}catch{return e}},de=/(?:^|[/\\])node_modules[/\\]/,fe=/[/\\]\.vite[/\\]deps[^/\\]*[/\\]/,pe=/\.[mc]?[jt]sx?$/i,me=/^chunk-[A-Za-z0-9_-]+$/,he=/[/\\]/,ge=/^(.+?)@v?\d/,x=e=>e.split(he).filter(Boolean),_e=e=>{let[t,n]=x(e);return!t||t.startsWith(`.`)?null:t.startsWith(`@`)?n?`${t}/${n}`:null:t},ve=e=>{let t=x(e)[0];if(!t)return null;let n=t.replace(pe,``);if(me.test(n))return null;if(!n.startsWith(`@`))return n;let r=n.indexOf(`_`);return r===-1?null:`${n.slice(0,r)}/${n.slice(r+1)}`},S=(e,t,n)=>{let r=e.split(t);return r.length>1?n(r[r.length-1]):null},C=e=>e?.match(ge)?.[1]??null,ye=e=>{let t;try{t=new URL(e)}catch{return null}if(!t.hostname)return null;let n=x(t.pathname).map(b);for(let[e,t]of n.entries()){if(t.startsWith(`@`)){let r=C(n[e+1]);if(r)return`${t}/${r}`;continue}let r=C(t);if(r)return r}return null},be=e=>S(e,fe,ve)??S(e,de,_e),xe=e=>{if(!e)return null;let t=i(e);return t&&(be(b(t))||ye(e))||null},Se=/^@[A-Za-z0-9][A-Za-z0-9._-]*$/,Ce=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,we=new Set([`app`,`web`,`website`,`frontend`,`client`,`src`]),Te=new Set([`app`,`src`,`components`,`pages`,`features`,`modules`,`hooks`,`lib`,`utils`,`ui`,`shared`,`common`,`core`,`styles`,`assets`]),Ee=e=>{let t=e;for(;t.startsWith(`../`)||t.startsWith(`./`);)t=t.slice(t.startsWith(`../`)?3:2);return t},De=e=>{let t=Ee(b(i(e)));if(t.startsWith(`/`))return null;let[n,r,...a]=x(t);return!n||!r||a.length===0||!Se.test(n)||Te.has(n.slice(1))||!Ce.test(r)||pe.test(r)||we.has(r)?null:`${n}/${r}`},Oe=e=>e?xe(e)??De(e):null,w=e=>{if(!e)return{origin:`unknown`,packageName:null};let t=Oe(e);return t?{origin:`package`,packageName:t}:re(e)?{origin:`app`,packageName:null}:{origin:`unknown`,packageName:null}},ke=new Set([`role`,`name`,`aria-label`,`rel`,`href`]),T=e=>{if(!/^[a-z-]{3,}$/i.test(e))return!1;let t=e.split(/-|[A-Z]/);for(let e of t)if(e.length<=2||/[^aeiou]{4,}/i.test(e))return!1;return!0},Ae=(e,t)=>{let n=ke.has(e)||e.startsWith(`data-`)&&T(e),r=T(t)&&t.length<100||t.startsWith(`#`)&&T(t.slice(1));return n&&r},E=e=>{let t=e[0].name;for(let n=1;n<e.length;n++)t=`${e[n].name} > ${t}`;return t},D=e=>{let t=0;for(let n of e)t+=n.penalty;return t},O=(e,t)=>D(e)-D(t),k=(e,t)=>{let n=e.parentNode;if(!n)return;let r=n.firstChild;if(!r)return;let i=0;for(;r&&(r instanceof Element&&(t===void 0||r.tagName.toLowerCase()===t)&&i++,r!==e);)r=r.nextSibling;return i},je=(e,t)=>e===`html`?`html`:`${e}:nth-child(${t})`,A=(e,t)=>e===`html`?`html`:`${e}:nth-of-type(${t})`,Me=(e,t)=>{let n=[],r=e.getAttribute(`id`),i=e.tagName.toLowerCase();r&&T(r)&&n.push({name:`#${CSS.escape(r)}`,penalty:0});for(let t of e.classList)T(t)&&n.push({name:`.${CSS.escape(t)}`,penalty:1});for(let r of e.attributes)t(r.name,r.value)&&n.push({name:`[${CSS.escape(r.name)}="${CSS.escape(r.value)}"]`,penalty:2});n.push({name:i,penalty:5});let a=k(e,i);a!==void 0&&n.push({name:A(i,a),penalty:10});let o=k(e);return o!==void 0&&n.push({name:je(i,o),penalty:50}),n},j=(e,t=ne,n=[])=>{if(t<=0)return[];if(e.length===0)return[n];let r=[];for(let i of e[0]){let a=t-r.length;if(a<=0)break;r.push(...j(e.slice(1),a,[...n,i]))}return r},Ne=(e,t)=>{let n=t.getRootNode?.();return n instanceof ShadowRoot?n:e instanceof Document?e:e.ownerDocument},M=(e,t)=>t.querySelectorAll(E(e)).length===1,Pe=(e,t)=>{let n=e,r=[];for(;n&&n!==t;){let e=n.tagName.toLowerCase(),t=k(n,e);if(t===void 0)return;r.push({name:A(e,t),penalty:10}),n=n.parentElement}return M(r,t)?r:void 0},Fe=(e,t,n,r)=>{if(e.nodeType!==Node.ELEMENT_NODE)throw new oe;if(e.tagName.toLowerCase()===`html`)return`html`;let i=Ne(t,e),a=Date.now(),o=[],s=e,c=0,l;for(;s&&s!==i&&!l;)if(o.push(Me(s,r)),s=s.parentElement,c++,c>=3){let t=j(o);t.sort(O);for(let r of t){if(Date.now()-a>n){let t=Pe(e,i);if(!t)throw new se(n);return E(t)}if(M(r,i)){l=r;break}}}if(!l&&c<3){let e=j(o);e.sort(O);for(let t of e){if(Date.now()-a>n)break;if(M(t,i)){l=t;break}}}if(!l)throw new ce;return E(l)},N=e=>e.ownerDocument.body??e.ownerDocument.documentElement,P=new Set([`data-testid`,`data-test-id`,`data-test`,`data-cy`,`data-qa`,`aria-label`,`href`,`src`,`role`,`name`,`title`,`alt`]),F=e=>e.length>0&&e.length<=120,I=(e,t)=>{try{let n=e.ownerDocument.querySelectorAll(t);return n.length===1&&n[0]===e}catch{return!1}},Ie=e=>{if(e instanceof HTMLElement&&e.id){let t=`#${CSS.escape(e.id)}`;if(I(e,t))return t}for(let t of P){let n=e.getAttribute(t);if(!n||!F(n))continue;let r=`[${t}=${JSON.stringify(n)}]`;if(I(e,r))return r;let i=`${e.tagName.toLowerCase()}${r}`;if(I(e,i))return i}return null},Le=e=>{let t=[],n=N(e),r=e;for(;r;){if(r instanceof HTMLElement&&r.id){t.unshift(`#${CSS.escape(r.id)}`);break}let e=r.parentElement;if(!e){t.unshift(r.tagName.toLowerCase());break}let i=Array.from(e.children).indexOf(r)+1;if(t.unshift(`${r.tagName.toLowerCase()}:nth-child(${i})`),e===n){t.unshift(n.tagName.toLowerCase());break}r=e}return t.join(` > `)},L=e=>{let t=Ie(e);if(t)return t;try{let t=Fe(e,N(e),200,(e,t)=>Ae(e,t)||P.has(e)&&F(t));if(t)return t}catch{}return Le(e)},R=e=>{if(!e)return!1;let t=`/${v(e)}/`.toLowerCase();return a.some(e=>t.includes(e))},z=e=>e.map(e=>`\n in ${e}`).join(``),B=[`about://React/`,`rsc://React/`],Re=e=>B.some(t=>e.startsWith(t)),ze=e=>{for(let t of B){if(!e.startsWith(t))continue;let n=e.indexOf(`/`,t.length);if(n===-1)continue;let r=n+1,i=e.lastIndexOf(`?`);return b(i>r?e.slice(r,i):e.slice(r))}return e},Be=e=>{if(typeof e!=`object`||!e||!(`status`in e)||e.status!==`fulfilled`||!(`value`in e)||typeof e.value!=`object`||e.value===null||!(`originalStackFrame`in e.value))return null;let t=e.value.originalStackFrame;return typeof t!=`object`||!t||!(`file`in t)||typeof t.file!=`string`||!t.file||`ignored`in t&&t.ignored?null:{file:t.file,line1:`line1`in t&&typeof t.line1==`number`?t.line1:null,column1:`column1`in t&&typeof t.column1==`number`?t.column1:null}},Ve=async(e,t)=>{let n=[],r=[];for(let t=0;t<e.length;t++){let i=e[t];!i.isServer||!i.fileName||(n.push(t),r.push({file:ze(i.fileName),methodName:i.functionName??`<unknown>`,line1:i.lineNumber??null,column1:i.columnNumber??null,arguments:[]}))}if(r.length===0)return e;let i=new AbortController,a=setTimeout(()=>i.abort(),c),o=()=>i.abort();t?.aborted&&i.abort(),t?.addEventListener(`abort`,o);try{let t=await fetch(`${ie()}/__nextjs_original-stack-frames`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({frames:r,isServer:!0,isEdgeServer:!1,isAppDirectory:!0}),priority:`high`,signal:i.signal});if(!t.ok)return e;let a=await t.json();if(!Array.isArray(a))return e;let o=[...e];for(let t=0;t<n.length;t++){let r=Be(a[t]);if(!r)continue;let i=n[t];o[i]={...e[i],fileName:r.file,lineNumber:r.line1??void 0,columnNumber:r.column1??void 0,isSymbolicated:!0}}return o}catch{return e}finally{clearTimeout(a),t?.removeEventListener(`abort`,o)}},He=e=>{let t=new Map;return l(e,e=>{if(!d(e))return!1;let r=ee(e._debugStack.stack);if(!r)return!1;for(let e of n(r))!e.functionName||!e.fileName||Re(e.fileName)&&(t.has(e.functionName)||t.set(e.functionName,{...e,isServer:!0}));return!1},!0),t},Ue=(e,t)=>{if(!t.some(e=>e.isServer&&!e.fileName&&e.functionName))return t;let n=He(e);return n.size===0?t:t.map(e=>{if(!e.isServer||e.fileName||!e.functionName)return e;let t=n.get(e.functionName);return t?{...e,fileName:t.fileName,lineNumber:t.lineNumber,columnNumber:t.columnNumber}:e})};let V=0;const H=[],We=()=>V<3?(V+=1,Promise.resolve()):new Promise(e=>{H.push(e)}),Ge=()=>{let e=H.shift();if(e){e();return}--V},U=async(e,t,n=s)=>{await We();let r=new AbortController,i,a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(t)},n)}),o=e(r.signal);o.catch(()=>{});try{return await Promise.race([o,a])}finally{clearTimeout(i),Ge()}},W=(e,t)=>e.length>t?`${e.slice(0,t)}...`:e,Ke=e=>e.startsWith(`data-react-grab-`),qe=e=>e.replace(/\s+/g,` `).trim(),Je=e=>{let t=[];for(let n of e.childNodes){if(n.nodeType!==Node.TEXT_NODE)continue;let e=qe(n.textContent??``);e&&t.push(e)}return t.join(` `)},Ye=t=>t.getAttribute(`aria-hidden`)===`true`||t.hasAttribute(`hidden`)?!0:e.has(t.tagName.toLowerCase()),Xe=(e,t,n)=>{if(e.nodeType===Node.TEXT_NODE){let r=qe(e.textContent??``);return r?(t.push(r),n-r.length):n}if(!(e instanceof Element)||Ye(e))return n;for(let r of e.childNodes)if(n=Xe(r,t,n),n<=0)break;return n},Ze=(e,t)=>{if(Ye(e))return``;let n=Je(e);if(!r.has(t)||n&&e.children.length===0)return n;let i=[];return Xe(e,i,100),i.join(` `)},Qe=e=>W(e,15),$e=e=>{let t=[];for(let n of te){let r=e.getAttribute(n);r&&t.push(`${n}="${r}"`)}return t.length>0?` ${t.join(` `)}`:``},et=e=>e===`class`||e===`className`||e===`style`,tt=e=>{let t=[],n=[],r=``;for(let{name:i,value:a}of e.attributes)if(!Ke(i)){if(et(i)){i!==`style`&&a&&(r=` class="${Qe(a)}"`);continue}f.has(i)?t.push(a?` ${i}="${a}"`:` ${i}`):a&&n.push(` ${i}="${Qe(a)}"`)}return t.join(``)+n.join(``)+r},nt=e=>e.length===0?``:e.length<=2?e.map(e=>`<${_(e)} ...>`).join(`
|
|
10
|
+
`):`(${e.length} elements)`,rt=e=>{let t=_(e);if(!(e instanceof HTMLElement))return`<${t}${$e(e)} />`;let n=tt(e),r=W(Ze(e,t),100);return r?`<${t}${n}>${r}</${t}>`:`<${t}${n} />`},it=e=>{let t=_(e),n=tt(e),i=Ze(e,t),a=[],o=[],s=!1;for(let t of e.childNodes)t.nodeType!==Node.COMMENT_NODE&&(t.nodeType===Node.TEXT_NODE?t.textContent&&t.textContent.trim().length>0&&(s=!0):t instanceof Element&&(s?o.push(t):a.push(t)));let c=i.length>0&&r.has(t),l=``,u=nt(a);u&&!c&&(l+=`\n ${u}`),i&&(l+=`\n ${W(i,100)}`);let d=nt(o);return d&&!c&&(l+=`\n ${d}`),l.length>0?`<${t}${n}>${l}\n</${t}>`:`<${t}${n} />`},at=new Set([`_`,`$`,`motion.`,`styled.`,`chakra.`,`ark.`,`Primitive.`,`Slot.`]),ot=new Set(`AppRouter.AppRouterAnnouncer.AppDevOverlay.AppDevOverlayErrorBoundary.ClientPageRoot.ClientSegmentRoot.DevRootHTTPAccessFallbackBoundary.ErrorBoundary.ErrorBoundaryHandler.GracefulDegradeBoundary.HTTPAccessErrorFallback.HTTPAccessFallbackBoundary.HTTPAccessFallbackErrorBoundary.HandleRedirect.Head.HistoryUpdater.HotReload.InnerLayoutRouter.InnerScrollAndFocusHandler.InnerScrollAndFocusHandlerOld.InnerScrollAndMaybeFocusHandler.InnerScrollHandlerNew.LoadableComponent.LoadingBoundary.LoadingBoundaryProvider.NotAllowedRootHTTPFallbackError.OfflineProvider.OuterLayoutRouter.RedirectBoundary.RedirectErrorBoundary.RenderFromTemplateContext.RenderValidationBoundaryAtThisLevel.ReplaySsrOnlyErrors.RootErrorBoundary.RootLevelDevOverlayElement.Router.ScrollAndFocusHandler.ScrollAndMaybeFocusHandler.SegmentBoundaryTrigger.SegmentBoundaryTriggerNode.SegmentStateProvider.SegmentTrieNode.SegmentViewNode.SegmentViewStateNode.ServerRoot.body.html`.split(`.`)),st=new Set([`Suspense`,`Fragment`,`StrictMode`,`Profiler`,`SuspenseList`]),ct=new Set([`MotionDOMComponent`]),lt=e=>{if(ot.has(e)||st.has(e)||ct.has(e))return!0;for(let t of at)if(e.startsWith(t))return!0;return!1},ut=e=>!(!e||lt(e)||e===`SlotClone`||e===`Slot`),dt=e=>!(e.length<=1||lt(e)||e[0]!==e[0].toUpperCase()||e.endsWith(`Provider`)||e.endsWith(`Context`)),G=e=>e&&dt(e)?e:null,K=e=>{if(!u())return e;let t=e;for(;t;){if(o(t))return t;t=t.parentElement}return e},ft=e=>{if(!u())return null;let t=o(K(e)),n=0;for(;t;){if(t.key)return t.key;if(m(t)&&(n+=1,n===2))break;t=t.return}return null},q=new WeakMap,J=new WeakMap,pt=e=>t=>fetch(t,{signal:e,priority:`high`}),mt=e=>U(async n=>{try{let r=o(e);if(!r)return null;let i=await t(r,!0,pt(n));return g()?await Ve(Ue(r,i),n):i}catch{return null}},null),Y=e=>{if(!u())return Promise.resolve([]);let t=K(e),n=q.get(t);if(n)return n;let r=mt(t).then(e=>(e===null&&q.delete(t),e));return q.set(t,r),r},ht=async e=>{if(!u())return null;let t=await Y(e);if(!t)return null;for(let e of t){let t=G(e.functionName);if(t)return t}return null},gt=e=>e.find(e=>!!G(e.functionName))??e[0]??null,_t=e=>!e||!m(e)?null:G(p(e.type)),vt=e=>U(async t=>{let n=o(K(e));if(!n)return null;try{let e=await h(n,!0,pt(t));return e?.fileName?{filePath:v(e.fileName),lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null,componentName:G(e.functionName)??_t(n._debugOwner),origin:w(e.fileName).origin}:null}catch{return null}},null),yt=e=>{let t=K(e),n=J.get(t);if(n)return n;let r=vt(t).then(e=>(e||J.delete(t),e));return J.set(t,r),r},bt=[`app`,`package`],xt=(e,t)=>{for(let n of bt){if(e?.origin===n)return e;let r=gt(t.filter(e=>w(e.fileName).origin===n));if(r?.fileName)return{filePath:v(r.fileName),lineNumber:r.lineNumber??null,columnNumber:r.columnNumber??null,componentName:G(r.functionName),origin:n}}return null},St=async e=>{let t=await yt(e);return t?.origin===`app`?t:xt(t,await Y(e)??[])},Ct=e=>X(K(e),1)[0]??null,X=(e,t,n=()=>!0)=>{if(!u())return[];let r=o(e);if(!r)return[];let i=[];return l(r,e=>{if(i.length>=t)return!0;if(m(e)){let t=p(e.type);t&&ut(t)&&n(t)&&i.push(t)}return!1},!0),i},wt=[`/src/app/`,`/src/pages/`,`/app/`,`/pages/`],Tt=(e,t)=>{let n=v(e);if(!t||!n.startsWith(`/`))return n;for(let e of wt){let t=n.indexOf(e);if(t!==-1)return`/./${n.slice(t+1)}`}return n},Et=(e,t)=>{let n=Tt(e.filePath,t),r=t&&e.lineNumber?`${n}:${e.lineNumber}${e.columnNumber?`:${e.columnNumber}`:``}`:n;return e.componentName?`\n in ${e.componentName} (at ${r})`:`\n in ${r}`},Z={isAppSource:!1,consumesBudget:!1},Dt=(e,t,n,r)=>{let i=t.packageName,a=t.origin===`app`?e.fileName:null;if(e.isServer&&!a&&(n||!e.functionName)){let e=i?`${i} at Server`:`at Server`;return{text:`\n in ${n??`<anonymous>`} (${e})`,...Z}}return!a&&n?{text:i?`\n in ${n} (${i})`:`\n in ${n}`,...Z}:i?{text:`\n in ${i}`,...Z}:a?{text:Et({componentName:n,filePath:a,lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null},r),isAppSource:!0,consumesBudget:!R(a)}:null},Ot=(e,t={},n=null)=>{let r=ue(t.maxLines),i=Math.max(r,20),a=g(),o=[],s=new Set,c=null,l=!1,u=!1,d=!1,f=0,p=e=>{e&&s.add(e)};n&&(u=n.origin===`app`,R(n.filePath)||(f+=1),p(n.componentName),o.push(Et(n,a)));for(let t of e){if(f>=r||o.length>=i)break;let e=w(t.fileName),s=G(t.functionName),m=e.packageName?`${e.packageName}:${s??``}:${t.isServer?`server`:`client`}`:null;if(m&&m===c)continue;if(!l&&s&&s===n?.componentName){l=!0;continue}let h=Dt(t,e,s,a);h!==null&&h.text!==o[o.length-1]&&(h.isAppSource&&(u=!0),h.consumesBudget&&(f+=1,d=!0),p(s),o.push(h.text),c=m)}return{text:o.join(``),shouldAppendSelectorHint:!u,hasBudgetedStackFrame:d,renderedComponentNames:s}},kt=async e=>{let t=await yt(e);return t?.origin===`app`?t:null},At=(e,t,n)=>{let r=X(K(e),n,e=>dt(e)&&!t.renderedComponentNames.has(e));return r.length===0?t:{...t,text:`${t.text}${z(r)}`}},Q=async(e,t={})=>{let n=await kt(e),r=await Y(e),i=ue(t.maxLines),a=Ot(r??[],t,n);if(a.text)return a.hasBudgetedStackFrame?a:At(e,a,i);let o=X(K(e),i);return{text:z(o),shouldAppendSelectorHint:!0,hasBudgetedStackFrame:!1,renderedComponentNames:new Set(o)}},jt=async(e,t={})=>(await Q(e,t)).text,$=(e,t)=>{let n=ft(e),r=n===null?``:`\n key: "${n}"`,i=t.shouldAppendSelectorHint?`\n selector: ${L(e)}`:``;return`${t.text}${r}${i}`},Mt=async(e,t={})=>{let n=await Q(e,t);return`${rt(e)}${$(e,n).replace(/\n\s+/g,` `)}`},Nt=async(e,t={})=>{let n=K(e);return`${it(n)}${$(n,await Q(n,t))}`},Pt=e=>e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`),Ft=(e,t)=>{let n=t?.componentName??`div`,r={version:ae,content:e,entries:t?.entries??[{tagName:t?.tagName,componentName:n,content:e,commentText:t?.commentText}],timestamp:Date.now()},i=t=>{t.preventDefault(),t.clipboardData?.setData(`text/plain`,e),t.clipboardData?.setData(`text/html`,`<meta charset='utf-8'><pre><code>${Pt(e)}</code></pre>`),t.clipboardData?.setData(`application/x-react-grab`,JSON.stringify(r))};document.addEventListener(`copy`,i);let a=document.createElement(`textarea`);a.value=e,a.style.position=`fixed`,a.style.left=`-9999px`,a.ariaHidden=`true`,document.body.appendChild(a),a.select();try{return typeof document.execCommand==`function`?document.execCommand(`copy`):!1}finally{document.removeEventListener(`copy`,i),a.remove()}};export{ht as a,St as c,le as d,Mt as i,it as l,Nt as n,Y as o,Ct as r,jt as s,Ft as t,L as u};
|
package/dist/core/index.cjs
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../core-
|
|
9
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../core-U9umuR7Y.cjs`),t=require(`../freeze-updates-fV8HUsUG.cjs`),n=require(`../copy-content-CLCI_Lbe.cjs`);exports.DEFAULT_THEME=e.a,exports.copyContent=n.t,exports.formatElementInfo=n.n,exports.generateSnippet=e.n,exports.getStack=n.o,exports.init=e.t,exports.isInstrumentationActive=t.N;
|
package/dist/core/index.d.cts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-
|
|
9
|
+
import { A as SourceInfo, T as ReactGrabRendererProps, _ as Options, a as ActionContext, b as PluginConfig, c as AgentContext, i as isInstrumentationActive, k as SettableOptions, l as ContextMenuAction, t as copyContent, v as OverlayBounds, w as ReactGrabAPI, x as PluginHooks, y as Plugin } from "../copy-content-BPB8MmpL.cjs";
|
|
10
|
+
import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-DMyJsiaz.cjs";
|
|
11
11
|
export { ActionContext, AgentContext, ContextMenuAction, DEFAULT_THEME, Options, OverlayBounds, Plugin, PluginConfig, PluginHooks, ReactGrabAPI, ReactGrabRendererProps, SettableOptions, SourceInfo, copyContent, formatElementInfo, generateSnippet, getStack, init, isInstrumentationActive };
|
package/dist/core/index.d.ts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-
|
|
9
|
+
import { A as SourceInfo, T as ReactGrabRendererProps, _ as Options, a as ActionContext, b as PluginConfig, c as AgentContext, i as isInstrumentationActive, k as SettableOptions, l as ContextMenuAction, t as copyContent, v as OverlayBounds, w as ReactGrabAPI, x as PluginHooks, y as Plugin } from "../copy-content-C7lFyXsY.js";
|
|
10
|
+
import { a as getStack, i as formatElementInfo, n as generateSnippet, r as DEFAULT_THEME, t as init } from "../index-VkohC_Hw.js";
|
|
11
11
|
export { ActionContext, AgentContext, ContextMenuAction, DEFAULT_THEME, Options, OverlayBounds, Plugin, PluginConfig, PluginHooks, ReactGrabAPI, ReactGrabRendererProps, SettableOptions, SourceInfo, copyContent, formatElementInfo, generateSnippet, getStack, init, isInstrumentationActive };
|
package/dist/core/index.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import{a as e,n as t,t as n}from"../core-
|
|
9
|
+
import{a as e,n as t,t as n}from"../core-CBCQU3Hn.js";import{N as r}from"../freeze-updates-BbpDYqOS.js";import{n as i,o as a,t as o}from"../copy-content-DggKAmmU.js";export{e as DEFAULT_THEME,o as copyContent,i as formatElementInfo,t as generateSnippet,a as getStack,n as init,r as isInstrumentationActive};
|