react-native-ai-debugger 2.3.0 → 2.4.0
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/build/__tests__/unit/overlayGuard.test.d.ts +2 -0
- package/build/__tests__/unit/overlayGuard.test.d.ts.map +1 -0
- package/build/__tests__/unit/overlayGuard.test.js +140 -0
- package/build/__tests__/unit/overlayGuard.test.js.map +1 -0
- package/build/__tests__/unit/screenSpace.test.js +34 -1
- package/build/__tests__/unit/screenSpace.test.js.map +1 -1
- package/build/__tests__/unit/tap.test.js +2 -2
- package/build/__tests__/unit/tap.test.js.map +1 -1
- package/build/core/inspector.d.ts.map +1 -1
- package/build/core/inspector.js +27 -4
- package/build/core/inspector.js.map +1 -1
- package/build/core/ios.d.ts +16 -0
- package/build/core/ios.d.ts.map +1 -1
- package/build/core/ios.js +48 -4
- package/build/core/ios.js.map +1 -1
- package/build/core/screenLayout.d.ts.map +1 -1
- package/build/core/screenLayout.js +23 -1
- package/build/core/screenLayout.js.map +1 -1
- package/build/core/screenSpace.d.ts +95 -0
- package/build/core/screenSpace.d.ts.map +1 -1
- package/build/core/screenSpace.js +138 -1
- package/build/core/screenSpace.js.map +1 -1
- package/build/core/screenSpaceDevice.d.ts.map +1 -1
- package/build/core/screenSpaceDevice.js +46 -6
- package/build/core/screenSpaceDevice.js.map +1 -1
- package/build/core/screenState.d.ts +2 -1
- package/build/core/screenState.d.ts.map +1 -1
- package/build/core/screenState.js +208 -40
- package/build/core/screenState.js.map +1 -1
- package/build/pro/overlayGuard.d.ts +65 -0
- package/build/pro/overlayGuard.d.ts.map +1 -0
- package/build/pro/overlayGuard.js +166 -0
- package/build/pro/overlayGuard.js.map +1 -0
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +104 -25
- package/build/pro/tap.js.map +1 -1
- package/build/tools/componentTools.d.ts.map +1 -1
- package/build/tools/componentTools.js +40 -18
- package/build/tools/componentTools.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,37 @@
|
|
|
19
19
|
* Everything now normalises through here, so a coordinate read from any tool can be
|
|
20
20
|
* passed to any other tool.
|
|
21
21
|
*/
|
|
22
|
+
/**
|
|
23
|
+
* API image cap. A capture wider or taller than this is downscaled before delivery, so
|
|
24
|
+
* it is part of the coordinate contract, not just a transport detail: the pixels an
|
|
25
|
+
* agent reads off the returned image are post-downscale.
|
|
26
|
+
*/
|
|
27
|
+
export const SCREENSHOT_MAX_DIMENSION = 2000;
|
|
28
|
+
/**
|
|
29
|
+
* Downscale a capture of these *device-pixel* dimensions will receive on delivery.
|
|
30
|
+
* Mirrors the resize in `iosScreenshot`/`androidScreenshot`; both derive their own
|
|
31
|
+
* factor the same way, and this is the copy the layout tools predict it with.
|
|
32
|
+
*/
|
|
33
|
+
export function computeDeliveredDownscale(pixelWidth, pixelHeight) {
|
|
34
|
+
const longest = Math.max(pixelWidth, pixelHeight);
|
|
35
|
+
if (!(longest > SCREENSHOT_MAX_DIMENSION))
|
|
36
|
+
return 1;
|
|
37
|
+
return longest / SCREENSHOT_MAX_DIMENSION;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* points/dp -> delivered-screenshot pixels, given the device's scale (iOS DPR, Android
|
|
41
|
+
* density/160) and its point/dp screen size.
|
|
42
|
+
*
|
|
43
|
+
* Note this collapses to `SCREENSHOT_MAX_DIMENSION / longestPointDimension` whenever the
|
|
44
|
+
* raw capture overflows the cap — the device scale cancels out — which is why the factor
|
|
45
|
+
* is stable per device rather than per capture.
|
|
46
|
+
*/
|
|
47
|
+
export function computePixelScale(deviceScale, pointWidth, pointHeight) {
|
|
48
|
+
if (!(deviceScale > 0) || !(pointWidth > 0) || !(pointHeight > 0))
|
|
49
|
+
return 1;
|
|
50
|
+
const downscale = computeDeliveredDownscale(pointWidth * deviceScale, pointHeight * deviceScale);
|
|
51
|
+
return deviceScale / downscale;
|
|
52
|
+
}
|
|
22
53
|
/**
|
|
23
54
|
* Fiber-space y -> screen-space y.
|
|
24
55
|
*
|
|
@@ -51,7 +82,113 @@ export function fromScreenSpaceY(y, m) {
|
|
|
51
82
|
* Emitted as a plain function so the in-app hit-test normalises measurements the same
|
|
52
83
|
* way the Node side does — a second copy of this rule is exactly what caused the drift.
|
|
53
84
|
*/
|
|
54
|
-
export const SCREEN_SPACE_HELPER_JS =
|
|
85
|
+
export const SCREEN_SPACE_HELPER_JS = [
|
|
86
|
+
`var toScreenSpaceY = ${toScreenSpaceY.toString()};`,
|
|
87
|
+
`var scaleOf = ${scaleOf.toString()};`,
|
|
88
|
+
`var toDeliveredPxY = ${toDeliveredPxY.toString()};`,
|
|
89
|
+
`var toDeliveredPxX = ${toDeliveredPxX.toString()};`,
|
|
90
|
+
`var toDeliveredPxLength = ${toDeliveredPxLength.toString()};`
|
|
91
|
+
].join("\n");
|
|
92
|
+
/** Scale factor to apply, with the "unknown -> stay in points" default made explicit. */
|
|
93
|
+
function scaleOf(m) {
|
|
94
|
+
return m.pixelScale && m.pixelScale > 0 ? m.pixelScale : 1;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* A warning line when the device scale could not be resolved, or "" when it could.
|
|
98
|
+
*
|
|
99
|
+
* Without this the degradation is silent and dangerous in one specific way: the tools
|
|
100
|
+
* emit point-space coordinates while tap() still expects delivered pixels, which is the
|
|
101
|
+
* original defect wearing a different hat. Saying so lets the caller fall back to
|
|
102
|
+
* screenshot coordinates instead of tapping the wrong place.
|
|
103
|
+
*/
|
|
104
|
+
export function unresolvedScaleNote(m) {
|
|
105
|
+
if (m.pixelScale && m.pixelScale > 0)
|
|
106
|
+
return "";
|
|
107
|
+
const unit = m.platform === "android" ? "dp" : "points";
|
|
108
|
+
return (`⚠️ Coordinates below are in ${unit}, NOT the usual delivered-pixel space — the ` +
|
|
109
|
+
`device scale could not be read. Do not pass them to tap(); take coordinates from ` +
|
|
110
|
+
`ios_screenshot / android_screenshot instead, or reconnect the device and retry.`);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Fiber-space y (points/dp) -> canonical delivered-screenshot pixels.
|
|
114
|
+
*
|
|
115
|
+
* Order matters: `topInset` is a point-space quantity, so the inset shift has to happen
|
|
116
|
+
* before the scale, not after.
|
|
117
|
+
*/
|
|
118
|
+
export function toDeliveredPxY(y, m) {
|
|
119
|
+
return toScreenSpaceY(y, m) * scaleOf(m);
|
|
120
|
+
}
|
|
121
|
+
/** Fiber-space x -> delivered pixels. No horizontal inset exists on either platform. */
|
|
122
|
+
export function toDeliveredPxX(x, m) {
|
|
123
|
+
return x * scaleOf(m);
|
|
124
|
+
}
|
|
125
|
+
/** A length (width/height) in points/dp -> delivered pixels. Unaffected by the inset. */
|
|
126
|
+
export function toDeliveredPxLength(v, m) {
|
|
127
|
+
return v * scaleOf(m);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Delivered pixels -> fiber space. Inverse of {@link toDeliveredPxY}, for tools that
|
|
131
|
+
* take a caller-supplied coordinate (inspect_at_point) and must hit-test against raw
|
|
132
|
+
* `measureInWindow` output.
|
|
133
|
+
*/
|
|
134
|
+
export function fromDeliveredPxY(y, m) {
|
|
135
|
+
return fromScreenSpaceY(y / scaleOf(m), m);
|
|
136
|
+
}
|
|
137
|
+
/** Delivered pixels -> fiber-space x. */
|
|
138
|
+
export function fromDeliveredPxX(x, m) {
|
|
139
|
+
return x / scaleOf(m);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Return a copy of a **screen-space** state with every box in delivered pixels.
|
|
143
|
+
*
|
|
144
|
+
* For consumers that hit-test a caller-supplied coordinate against the state itself
|
|
145
|
+
* rather than just formatting it — the coordinate arrives in delivered pixels, so the
|
|
146
|
+
* geometry has to meet it there. Compose after {@link screenStateToScreenSpace}.
|
|
147
|
+
*/
|
|
148
|
+
export function screenStateToDeliveredPx(ss, m) {
|
|
149
|
+
const conv = pxScaleConverter(m);
|
|
150
|
+
if (scaleOf(m) === 1)
|
|
151
|
+
return ss;
|
|
152
|
+
const box = (b) => {
|
|
153
|
+
const c = conv(b);
|
|
154
|
+
return { ...b, center: c.center, bounds: c.frame };
|
|
155
|
+
};
|
|
156
|
+
return {
|
|
157
|
+
...ss,
|
|
158
|
+
pressables: ss.pressables.map(box),
|
|
159
|
+
texts: ss.texts.map(box),
|
|
160
|
+
images: ss.images.map(box),
|
|
161
|
+
overlays: ss.overlays.map((o) => ({
|
|
162
|
+
...o,
|
|
163
|
+
pressables: o.pressables.map(box),
|
|
164
|
+
texts: o.texts ? o.texts.map(box) : o.texts,
|
|
165
|
+
images: o.images ? o.images.map(box) : o.images
|
|
166
|
+
}))
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Converter mapping an item **already in screen space** into canonical delivered pixels.
|
|
171
|
+
*
|
|
172
|
+
* Deliberately pure scale, with no inset term: every caller runs its state through
|
|
173
|
+
* {@link screenStateToScreenSpace} first, so re-applying the shift here would move each
|
|
174
|
+
* coordinate by a second `topInset`. This converter is the single argument that used to
|
|
175
|
+
* differ between the screenshot tools (which passed a real one) and get_screen_state
|
|
176
|
+
* (which passed none and so emitted raw points). Structurally an `ItemCoordConverter`;
|
|
177
|
+
* typed locally to keep this module import-free.
|
|
178
|
+
*/
|
|
179
|
+
export function pxScaleConverter(m) {
|
|
180
|
+
const s = scaleOf(m);
|
|
181
|
+
const r = (v) => Math.round(v * s);
|
|
182
|
+
return (item) => ({
|
|
183
|
+
center: { x: r(item.center.x), y: r(item.center.y) },
|
|
184
|
+
frame: {
|
|
185
|
+
x: r(item.bounds.x),
|
|
186
|
+
y: r(item.bounds.y),
|
|
187
|
+
width: r(item.bounds.width),
|
|
188
|
+
height: r(item.bounds.height)
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
55
192
|
function shiftBox(el, m) {
|
|
56
193
|
return {
|
|
57
194
|
...el,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenSpace.js","sourceRoot":"","sources":["../../src/core/screenSpace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"screenSpace.js","sourceRoot":"","sources":["../../src/core/screenSpace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenSpaceDevice.d.ts","sourceRoot":"","sources":["../../src/core/screenSpaceDevice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"screenSpaceDevice.d.ts","sourceRoot":"","sources":["../../src/core/screenSpaceDevice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAiC3D,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IAClD,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiC9B"}
|
|
@@ -4,21 +4,61 @@
|
|
|
4
4
|
* Kept out of screenSpace.ts so the coordinate rules there stay pure and unit-testable
|
|
5
5
|
* with no simctl/adb dependency.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { computeDeliveredDownscale } from "./screenSpace.js";
|
|
8
|
+
import { getIOSSafeAreaTop, getDevicePixelRatio, getIOSScreenPixelSize } from "./ios.js";
|
|
9
|
+
import { androidGetStatusBarHeight, androidGetDensity, androidGetScreenSize } from "./android.js";
|
|
9
10
|
/** iPhone notch/Dynamic Island default, matching ios_screenshot's own fallback. */
|
|
10
11
|
const IOS_DEFAULT_SAFE_AREA_TOP = 59;
|
|
11
12
|
/** Common Android status bar height in dp. */
|
|
12
13
|
const ANDROID_DEFAULT_STATUS_BAR_DP = 24;
|
|
14
|
+
/**
|
|
15
|
+
* points/dp -> delivered-screenshot pixels for a device whose scale and pixel size are
|
|
16
|
+
* known.
|
|
17
|
+
*
|
|
18
|
+
* Returns **undefined** when either input is missing, which callers treat as a factor of 1
|
|
19
|
+
* — i.e. coordinates stay in point space. That is strictly better than guessing, since a
|
|
20
|
+
* wrong scale silently moves every coordinate. It is deliberately distinct from a resolved
|
|
21
|
+
* scale that happens to equal 1: the tools surface "unknown" to the caller, because
|
|
22
|
+
* point-space output handed to tap() (which speaks pixels) is exactly the mismatch this
|
|
23
|
+
* whole normalisation exists to remove, and failing silently would recreate it.
|
|
24
|
+
*/
|
|
25
|
+
function pixelScaleFrom(deviceScale, pixelSize) {
|
|
26
|
+
if (!deviceScale || deviceScale <= 0 || !pixelSize)
|
|
27
|
+
return undefined;
|
|
28
|
+
return deviceScale / computeDeliveredDownscale(pixelSize.width, pixelSize.height);
|
|
29
|
+
}
|
|
13
30
|
export async function resolveScreenSpaceMetrics(opts) {
|
|
14
31
|
if (opts.platform === "ios") {
|
|
15
|
-
|
|
16
|
-
|
|
32
|
+
// Independent probes, and both are cached — running them concurrently keeps the
|
|
33
|
+
// cold-start cost of a layout call at one round trip rather than two.
|
|
34
|
+
const [inset, dpr, pixelSize] = await Promise.all([
|
|
35
|
+
getIOSSafeAreaTop(opts.udid).catch(() => 0),
|
|
36
|
+
getDevicePixelRatio(opts.udid).catch(() => null),
|
|
37
|
+
getIOSScreenPixelSize(opts.udid).catch(() => null)
|
|
38
|
+
]);
|
|
39
|
+
return {
|
|
40
|
+
platform: "ios",
|
|
41
|
+
topInset: inset || IOS_DEFAULT_SAFE_AREA_TOP,
|
|
42
|
+
pixelScale: pixelScaleFrom(dpr, pixelSize)
|
|
43
|
+
};
|
|
17
44
|
}
|
|
18
|
-
const sb = await
|
|
45
|
+
const [sb, density, size] = await Promise.all([
|
|
46
|
+
androidGetStatusBarHeight(opts.deviceId).catch(() => null),
|
|
47
|
+
androidGetDensity(opts.deviceId).catch(() => null),
|
|
48
|
+
androidGetScreenSize(opts.deviceId).catch(() => null)
|
|
49
|
+
]);
|
|
50
|
+
// `wm size` already reports device pixels, so no dp->px step is needed before the
|
|
51
|
+
// downscale check — only the dp->px scale itself comes from the density.
|
|
52
|
+
const densityScale = density && density.success && density.density
|
|
53
|
+
? density.density / 160
|
|
54
|
+
: null;
|
|
55
|
+
const pixelSize = size && size.success && size.width && size.height
|
|
56
|
+
? { width: size.width, height: size.height }
|
|
57
|
+
: null;
|
|
19
58
|
return {
|
|
20
59
|
platform: "android",
|
|
21
|
-
topInset: (sb && sb.success && sb.heightDp) || ANDROID_DEFAULT_STATUS_BAR_DP
|
|
60
|
+
topInset: (sb && sb.success && sb.heightDp) || ANDROID_DEFAULT_STATUS_BAR_DP,
|
|
61
|
+
pixelScale: pixelScaleFrom(densityScale, pixelSize)
|
|
22
62
|
};
|
|
23
63
|
}
|
|
24
64
|
//# sourceMappingURL=screenSpaceDevice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenSpaceDevice.js","sourceRoot":"","sources":["../../src/core/screenSpaceDevice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"screenSpaceDevice.js","sourceRoot":"","sources":["../../src/core/screenSpaceDevice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EACH,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACvB,MAAM,cAAc,CAAC;AAEtB,mFAAmF;AACnF,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,8CAA8C;AAC9C,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CACnB,WAA0B,EAC1B,SAAmD;IAEnD,IAAI,CAAC,WAAW,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACrE,OAAO,WAAW,GAAG,yBAAyB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAM/C;IACG,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC1B,gFAAgF;QAChF,sEAAsE;QACtE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3C,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAChD,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SACrD,CAAC,CAAC;QACH,OAAO;YACH,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK,IAAI,yBAAyB;YAC5C,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC;SAC7C,CAAC;IACN,CAAC;IACD,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1C,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAC1D,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAClD,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACxD,CAAC,CAAC;IACH,kFAAkF;IAClF,yEAAyE;IACzE,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;QAC9D,CAAC,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG;QACvB,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;QAC/D,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QAC5C,CAAC,CAAC,IAAI,CAAC;IACX,OAAO;QACH,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,6BAA6B;QAC5E,UAAU,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC;KACtD,CAAC;AACN,CAAC"}
|
|
@@ -163,7 +163,7 @@ export declare function formatImageEntry(img: ScreenStateImage, convert?: ItemCo
|
|
|
163
163
|
* and that is exactly when bottom-anchored UI misbehaves. Reporting the height
|
|
164
164
|
* and the remaining content area makes that inspectable without a screenshot.
|
|
165
165
|
*/
|
|
166
|
-
export declare function formatKeyboardLine(k: KeyboardState): string;
|
|
166
|
+
export declare function formatKeyboardLine(k: KeyboardState, pixelScale?: number): string;
|
|
167
167
|
/**
|
|
168
168
|
* Splits elements the keyboard covers from those still reachable.
|
|
169
169
|
*
|
|
@@ -189,6 +189,7 @@ export declare function formatScreenStateSummary(ss: ScreenState, convert?: Item
|
|
|
189
189
|
pressablesOnly?: boolean;
|
|
190
190
|
fullText?: boolean;
|
|
191
191
|
keyboard?: KeyboardState;
|
|
192
|
+
pixelScale?: number;
|
|
192
193
|
}): string;
|
|
193
194
|
export declare function describePressHandler(raw: unknown): string | null;
|
|
194
195
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenState.d.ts","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iGAAiG;IACjG,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sLAAsL;IACtL,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;IACpE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,oBAAoB,EAAE,EAClC,aAAa,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvE,oBAAoB,EAAE,CAWxB;AAKD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAYlF;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE,KAAK;IACF,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE,CAAC;AACF,qEAAqE;AACrE,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAczD,uFAAuF;AACvF,wBAAgB,eAAe,CAC3B,CAAC,EAAE,eAAe,EAClB,OAAO,GAAE,kBAAmC,EAC5C,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,MAAM,CAIR;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,kBAAmC,GAC7C,MAAM,CAKR;AAKD;;;;;;;;;;;;GAYG;AACH;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"screenState.d.ts","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"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"}
|