@abbox/inspector 0.4.11 → 0.4.12
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/dist/host/client-bridge.d.ts.map +1 -1
- package/dist/host/client-bridge.js +1 -19
- package/dist/host/validate.d.ts.map +1 -1
- package/dist/host/validate.js +1 -28
- package/dist/protocol.d.ts +15 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/runtime/inspector.d.ts.map +1 -1
- package/dist/runtime/inspector.js +14 -1
- package/dist/runtime/metadata.d.ts.map +1 -1
- package/dist/runtime/metadata.js +52 -0
- package/dist/runtime/overlay.d.ts.map +1 -1
- package/dist/runtime/overlay.js +2 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-bridge.d.ts","sourceRoot":"","sources":["../../src/host/client-bridge.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAC9B,eAAe,
|
|
1
|
+
{"version":3,"file":"client-bridge.d.ts","sourceRoot":"","sources":["../../src/host/client-bridge.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAC9B,eAAe,CAyEjB"}
|
|
@@ -9,26 +9,8 @@ export function createInspectorClient(options) {
|
|
|
9
9
|
const send = (message) => {
|
|
10
10
|
if (!win.parent || win.parent === win)
|
|
11
11
|
return;
|
|
12
|
-
let sent = false;
|
|
13
|
-
// Try each allowed origin
|
|
14
12
|
for (const targetOrigin of allowedOrigins) {
|
|
15
|
-
|
|
16
|
-
win.parent.postMessage(message, targetOrigin);
|
|
17
|
-
sent = true;
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
catch (err) {
|
|
21
|
-
// Try next origin
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
// If all allowed origins failed, try wildcard
|
|
25
|
-
if (!sent) {
|
|
26
|
-
try {
|
|
27
|
-
win.parent.postMessage(message, "*");
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
// Give up silently
|
|
31
|
-
}
|
|
13
|
+
win.parent.postMessage(message, targetOrigin);
|
|
32
14
|
}
|
|
33
15
|
};
|
|
34
16
|
const base = () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/host/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,gBAAgB,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,gBAAgB,GAAG,IAAI,CAKzB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,MAAM,GACnB,IAAI,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/host/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,gBAAgB,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,gBAAgB,GAAG,IAAI,CAKzB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,MAAM,GACnB,IAAI,CAEN"}
|
package/dist/host/validate.js
CHANGED
|
@@ -9,32 +9,5 @@ export function validateIncomingMessage(data, origin, options) {
|
|
|
9
9
|
return data;
|
|
10
10
|
}
|
|
11
11
|
export function postToTarget(target, message, targetOrigin) {
|
|
12
|
-
|
|
13
|
-
try {
|
|
14
|
-
target.postMessage(message, targetOrigin);
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
// Silently fail and try fallback
|
|
19
|
-
}
|
|
20
|
-
// Try localhost/127.0.0.1 variant
|
|
21
|
-
const variant = targetOrigin
|
|
22
|
-
.replace("://localhost", "://127.0.0.1")
|
|
23
|
-
.replace("://127.0.0.1", "://localhost");
|
|
24
|
-
if (variant !== targetOrigin) {
|
|
25
|
-
try {
|
|
26
|
-
target.postMessage(message, variant);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
// Silently fail and try wildcard
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
// Last resort: wildcard (bypasses origin check)
|
|
34
|
-
try {
|
|
35
|
-
target.postMessage(message, "*");
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// Give up silently
|
|
39
|
-
}
|
|
12
|
+
target.postMessage(message, targetOrigin);
|
|
40
13
|
}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -47,6 +47,21 @@ export type ElementMetadata = {
|
|
|
47
47
|
/** Native disabled state when the element supports it (e.g. button, input). */
|
|
48
48
|
disabled: boolean | null;
|
|
49
49
|
attributes: Record<string, string>;
|
|
50
|
+
/**
|
|
51
|
+
* Live state of form controls near the element (its form, or the nearest
|
|
52
|
+
* container with controls). Values are never included, only whether filled.
|
|
53
|
+
*/
|
|
54
|
+
nearbyFields?: NearbyFieldState[];
|
|
55
|
+
};
|
|
56
|
+
export type NearbyFieldState = {
|
|
57
|
+
tagName: string;
|
|
58
|
+
type: string | null;
|
|
59
|
+
label: string | null;
|
|
60
|
+
placeholder: string | null;
|
|
61
|
+
required: boolean;
|
|
62
|
+
disabled: boolean;
|
|
63
|
+
state: "empty" | "filled" | "checked" | "unchecked";
|
|
64
|
+
isSelected: boolean;
|
|
50
65
|
};
|
|
51
66
|
export type RuntimeElementRef = {
|
|
52
67
|
/** Stable within a preview session for a given DOM node identity. */
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAE3C,eAAO,MAAM,wBAAwB,EAAG,iBAA0B,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,wBAAwB,CAAC;IACzC,OAAO,EAAE,OAAO,gBAAgB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GAAG;IACzD,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,GAAG;IAC1D,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG;IAC3D,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,GAAG;IAC7D,IAAI,EAAE,sBAAsB,CAAC;IAC7B,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;AAExE,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/runtime/inspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAkBxE,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,
|
|
1
|
+
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/runtime/inspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAkBxE,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,gBAAgB,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACpD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IACrD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,gBAAgB,CAuPlB"}
|
|
@@ -15,6 +15,19 @@ export function createInspectorRuntime(options) {
|
|
|
15
15
|
const teardownListeners = () => {
|
|
16
16
|
win.removeEventListener("mousemove", onMove, true);
|
|
17
17
|
win.removeEventListener("pointerdown", onPointerDownCapture, true);
|
|
18
|
+
doc.removeEventListener("mouseout", onLeave, true);
|
|
19
|
+
};
|
|
20
|
+
/** No mousemove fires once the pointer leaves the iframe, so clear hover here. */
|
|
21
|
+
const onLeave = (event) => {
|
|
22
|
+
if (event.relatedTarget)
|
|
23
|
+
return;
|
|
24
|
+
if (raf) {
|
|
25
|
+
win.cancelAnimationFrame(raf);
|
|
26
|
+
raf = 0;
|
|
27
|
+
}
|
|
28
|
+
pendingTarget = null;
|
|
29
|
+
hovered = null;
|
|
30
|
+
hideHighlight(overlay.highlight);
|
|
18
31
|
};
|
|
19
32
|
const onMove = (event) => {
|
|
20
33
|
if (!enabled)
|
|
@@ -81,7 +94,6 @@ export function createInspectorRuntime(options) {
|
|
|
81
94
|
options.onHover?.(payloadFor(el));
|
|
82
95
|
}
|
|
83
96
|
function select(el) {
|
|
84
|
-
console.log("[inspector] element selected", el.tagName);
|
|
85
97
|
selected = el;
|
|
86
98
|
hovered = el;
|
|
87
99
|
positionSelectedHighlight(overlay.selectedHighlight, rectForElement(el));
|
|
@@ -147,6 +159,7 @@ export function createInspectorRuntime(options) {
|
|
|
147
159
|
enabled = true;
|
|
148
160
|
win.addEventListener("mousemove", onMove, true);
|
|
149
161
|
win.addEventListener("pointerdown", onPointerDownCapture, true);
|
|
162
|
+
doc.addEventListener("mouseout", onLeave, true);
|
|
150
163
|
},
|
|
151
164
|
disable: () => {
|
|
152
165
|
if (!enabled)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/runtime/metadata.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/runtime/metadata.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EACd,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAYxB,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAarE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,mBAAmB,CAGrB;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,eAAe,CAkC5D;AAyFD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGzE"}
|
package/dist/runtime/metadata.js
CHANGED
|
@@ -60,8 +60,60 @@ export function extractMetadata(el) {
|
|
|
60
60
|
textPreview,
|
|
61
61
|
disabled: readDisabledState(el),
|
|
62
62
|
attributes,
|
|
63
|
+
nearbyFields: nearbyFieldStates(el),
|
|
63
64
|
};
|
|
64
65
|
}
|
|
66
|
+
const FIELD_SELECTOR = "input:not([type=hidden]), textarea, select";
|
|
67
|
+
const MAX_CONTAINER_HOPS = 4;
|
|
68
|
+
const MAX_NEARBY_FIELDS = 15;
|
|
69
|
+
function fieldContainer(el) {
|
|
70
|
+
const form = el.closest("form");
|
|
71
|
+
if (form)
|
|
72
|
+
return form;
|
|
73
|
+
let node = el.parentElement;
|
|
74
|
+
for (let hop = 0; node && hop < MAX_CONTAINER_HOPS; hop++) {
|
|
75
|
+
if (node.querySelector(FIELD_SELECTOR))
|
|
76
|
+
return node;
|
|
77
|
+
node = node.parentElement;
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
function fieldLabel(control) {
|
|
82
|
+
const text = control.getAttribute("aria-label") ??
|
|
83
|
+
control.labels?.[0]?.textContent ??
|
|
84
|
+
null;
|
|
85
|
+
return text?.trim().slice(0, 80) || null;
|
|
86
|
+
}
|
|
87
|
+
/** Field emptiness only; typed values never leave the preview. */
|
|
88
|
+
function nearbyFieldStates(el) {
|
|
89
|
+
const container = fieldContainer(el);
|
|
90
|
+
if (!container)
|
|
91
|
+
return undefined;
|
|
92
|
+
const controls = Array.from(container.querySelectorAll(FIELD_SELECTOR)).slice(0, MAX_NEARBY_FIELDS);
|
|
93
|
+
if (controls.length === 0)
|
|
94
|
+
return undefined;
|
|
95
|
+
return controls.map((control) => {
|
|
96
|
+
const type = control instanceof HTMLInputElement ? control.type : control.getAttribute("type");
|
|
97
|
+
const checkable = control instanceof HTMLInputElement &&
|
|
98
|
+
(control.type === "checkbox" || control.type === "radio");
|
|
99
|
+
return {
|
|
100
|
+
tagName: control.tagName.toLowerCase(),
|
|
101
|
+
type,
|
|
102
|
+
label: fieldLabel(control),
|
|
103
|
+
placeholder: control.getAttribute("placeholder"),
|
|
104
|
+
required: control.required,
|
|
105
|
+
disabled: control.disabled,
|
|
106
|
+
state: checkable
|
|
107
|
+
? control.checked
|
|
108
|
+
? "checked"
|
|
109
|
+
: "unchecked"
|
|
110
|
+
: control.value.trim()
|
|
111
|
+
? "filled"
|
|
112
|
+
: "empty",
|
|
113
|
+
isSelected: control === el,
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
}
|
|
65
117
|
function readDisabledState(el) {
|
|
66
118
|
if (el instanceof HTMLButtonElement ||
|
|
67
119
|
el instanceof HTMLInputElement ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/runtime/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,cAAc,CAAC;IAClC,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/runtime/overlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,cAAc,CAAC;IAClC,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAgD5D;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,WAAW,GAChB,IAAI,CAQN;AAED,wBAAgB,yBAAyB,CACvC,iBAAiB,EAAE,cAAc,EACjC,IAAI,EAAE,WAAW,GAChB,IAAI,CAQN;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED,wBAAgB,qBAAqB,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAE7E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,CAQvD;AAOD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,YAAY,EAAE,EACvB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,EACjD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACpC,IAAI,CA+DN"}
|
package/dist/runtime/overlay.js
CHANGED
|
@@ -2,13 +2,12 @@ const HIGHLIGHT_Z = 2147483646;
|
|
|
2
2
|
const SELECTED_HIGHLIGHT_Z = 2147483643;
|
|
3
3
|
const MARKER_Z = 2147483645;
|
|
4
4
|
export function createOverlay(root) {
|
|
5
|
-
console.log("[inspector] creating overlay");
|
|
6
5
|
const selectedHighlight = root.createElement("div");
|
|
7
6
|
selectedHighlight.setAttribute("data-abbox-inspector", "selected-highlight");
|
|
8
7
|
Object.assign(selectedHighlight.style, {
|
|
9
8
|
position: "fixed",
|
|
10
9
|
pointerEvents: "none",
|
|
11
|
-
border: "
|
|
10
|
+
border: "2px dashed #2563eb",
|
|
12
11
|
background: "rgba(37, 99, 235, 0.06)",
|
|
13
12
|
borderRadius: "2px",
|
|
14
13
|
zIndex: String(SELECTED_HIGHLIGHT_Z),
|
|
@@ -20,7 +19,7 @@ export function createOverlay(root) {
|
|
|
20
19
|
Object.assign(highlight.style, {
|
|
21
20
|
position: "fixed",
|
|
22
21
|
pointerEvents: "none",
|
|
23
|
-
border: "
|
|
22
|
+
border: "2px solid #2563eb",
|
|
24
23
|
background: "rgba(37, 99, 235, 0.12)",
|
|
25
24
|
borderRadius: "2px",
|
|
26
25
|
zIndex: String(HIGHLIGHT_Z),
|
|
@@ -57,7 +56,6 @@ export function positionHighlight(highlight, rect) {
|
|
|
57
56
|
});
|
|
58
57
|
}
|
|
59
58
|
export function positionSelectedHighlight(selectedHighlight, rect) {
|
|
60
|
-
console.log("[inspector] positioning selected highlight at", rect);
|
|
61
59
|
Object.assign(selectedHighlight.style, {
|
|
62
60
|
display: "block",
|
|
63
61
|
left: `${rect.x}px`,
|