@limrun/ui 0.17.0-rc.3 → 0.17.0-rc.4

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.
@@ -1,6 +1,6 @@
1
- import { jsx as k, jsxs as oe, Fragment as Lr } from "react/jsx-runtime";
2
- import { memo as er, useState as V, useEffect as de, useMemo as Re, useCallback as bn, lazy as Rn, forwardRef as Nn, useRef as O, useImperativeHandle as In, Suspense as Yn } from "react";
3
- import { createPortal as Kn } from "react-dom";
1
+ import { jsx as k, jsxs as ce, Fragment as Lr } from "react/jsx-runtime";
2
+ import { memo as er, useState as X, useEffect as de, useMemo as Re, useCallback as Nn, lazy as In, forwardRef as Yn, useRef as _, useImperativeHandle as Kn, Suspense as kn } from "react";
3
+ import { createPortal as Pn } from "react-dom";
4
4
  import './index.css';function Fr(r) {
5
5
  var t, c, a = "";
6
6
  if (typeof r == "string" || typeof r == "number") a += r;
@@ -14,26 +14,26 @@ function Ne() {
14
14
  for (var r, t, c = 0, a = "", E = arguments.length; c < E; c++) (r = arguments[c]) && (t = Fr(r)) && (a && (a += " "), a += t);
15
15
  return a;
16
16
  }
17
- const Ni = { width: 164.6, height: 117.8, depth: 5.2 };
18
- function Ii(r, t, c) {
17
+ const Yi = { width: 164.6, height: 117.8, depth: 5.2 };
18
+ function Ki(r, t, c) {
19
19
  return r = Math.max(0, Math.min(1, r)), t = Math.max(0, Math.min(1, t)), c === 1 ? { x: t, y: 1 - r } : c === 2 ? { x: 1 - r, y: 1 - t } : c === 3 ? { x: 1 - t, y: r } : { x: r, y: t };
20
20
  }
21
- function kn(r) {
21
+ function Un(r) {
22
22
  return Number.isFinite(r) && r >= 0 && r <= 180;
23
23
  }
24
- function Yi(r, t) {
24
+ function ki(r, t) {
25
25
  return { x: Math.max(0, Math.min(1, r)), y: Math.max(0, Math.min(1, 1 - t)) };
26
26
  }
27
- function Ki(r, t, c) {
27
+ function Pi(r, t, c) {
28
28
  return t && (r || !c) ? "touch" : r ? "ignore" : "orbit";
29
29
  }
30
- function Pn(r, t, c, a) {
30
+ function Ln(r, t, c, a) {
31
31
  if (!Number.isInteger(r) || r < 0 || r > 3 || !Number.isInteger(t) || t < 1 || t > 255 || !Number.isFinite(c) || !Number.isFinite(a) || c < 0 || c > 1 || a < 0 || a > 1)
32
32
  throw new RangeError("Invalid display touch coordinates");
33
- const E = new ArrayBuffer(12), p = new DataView(E);
34
- return p.setUint8(0, 19), p.setUint8(1, r), p.setUint8(2, t), p.setFloat32(4, c, !0), p.setFloat32(8, a, !0), E;
33
+ const E = new ArrayBuffer(12), m = new DataView(E);
34
+ return m.setUint8(0, 19), m.setUint8(1, r), m.setUint8(2, t), m.setFloat32(4, c, !0), m.setFloat32(8, a, !0), E;
35
35
  }
36
- class ki {
36
+ class Ui {
37
37
  constructor(t, c) {
38
38
  this.send = t, this.failed = c;
39
39
  }
@@ -43,7 +43,7 @@ class ki {
43
43
  running = !1;
44
44
  stopped = !1;
45
45
  set(t) {
46
- this.stopped || !kn(t) || (this.latest = t, this.flush());
46
+ this.stopped || !Un(t) || (this.latest = t, this.flush());
47
47
  }
48
48
  stop() {
49
49
  this.stopped = !0, this.latest = void 0;
@@ -64,12 +64,12 @@ class ki {
64
64
  }
65
65
  }
66
66
  }
67
- const Pi = {
67
+ const Li = {
68
68
  side: "Sleep/Wake",
69
69
  volumeUp: "Volume Up",
70
70
  volumeDown: "Volume Down"
71
71
  };
72
- class Ui {
72
+ class Fi {
73
73
  constructor(t, c) {
74
74
  this.send = t, this.failed = c;
75
75
  }
@@ -340,66 +340,66 @@ const Pt = {
340
340
  NumpadEnter: s.KEYCODE_NUMPAD_ENTER,
341
341
  NumpadEqual: s.KEYCODE_NUMPAD_EQUALS
342
342
  };
343
- function Yt(r, t, c, a, E, p, C = 1, v = 0, b = 0) {
343
+ function Yt(r, t, c, a, E, m, C = 1, v = 0, b = 0) {
344
344
  const D = new ArrayBuffer(32), R = new DataView(D);
345
- let S = 0;
346
- return R.setUint8(S, Pt.INJECT_TOUCH_EVENT), S += 1, R.setUint8(S, r), S += 1, R.setBigInt64(S, BigInt(t), !0), S += 8, R.setInt32(S, Math.round(E), !0), S += 4, R.setInt32(S, Math.round(p), !0), S += 4, R.setUint16(S, c, !0), S += 2, R.setUint16(S, a, !0), S += 2, R.setInt16(S, Math.round(C * 65535), !0), S += 2, R.setInt32(S, v, !0), S += 4, R.setInt32(S, b, !0), D;
345
+ let M = 0;
346
+ return R.setUint8(M, Pt.INJECT_TOUCH_EVENT), M += 1, R.setUint8(M, r), M += 1, R.setBigInt64(M, BigInt(t), !0), M += 8, R.setInt32(M, Math.round(E), !0), M += 4, R.setInt32(M, Math.round(m), !0), M += 4, R.setUint16(M, c, !0), M += 2, R.setUint16(M, a, !0), M += 2, R.setInt16(M, Math.round(C * 65535), !0), M += 2, R.setInt32(M, v, !0), M += 4, R.setInt32(M, b, !0), D;
347
347
  }
348
- function Un(r, t, c, a, E, p, C) {
348
+ function Fn(r, t, c, a, E, m, C) {
349
349
  const v = new ArrayBuffer(24), b = new DataView(v);
350
350
  let D = 0;
351
- return b.setUint8(D, Pt.INJECT_TWO_FINGER_TOUCH_EVENT), D += 1, b.setUint8(D, r), D += 1, b.setInt32(D, Math.round(a), !0), D += 4, b.setInt32(D, Math.round(E), !0), D += 4, b.setInt32(D, Math.round(p), !0), D += 4, b.setInt32(D, Math.round(C), !0), D += 4, b.setUint16(D, t, !0), D += 2, b.setUint16(D, c, !0), D += 2, b.setUint16(D, 0, !0), v;
351
+ return b.setUint8(D, Pt.INJECT_TWO_FINGER_TOUCH_EVENT), D += 1, b.setUint8(D, r), D += 1, b.setInt32(D, Math.round(a), !0), D += 4, b.setInt32(D, Math.round(E), !0), D += 4, b.setInt32(D, Math.round(m), !0), D += 4, b.setInt32(D, Math.round(C), !0), D += 4, b.setUint16(D, t, !0), D += 2, b.setUint16(D, c, !0), D += 2, b.setUint16(D, 0, !0), v;
352
352
  }
353
- function Ln(r, t = !0) {
354
- const a = new TextEncoder().encode(r), E = new ArrayBuffer(14 + a.length), p = new DataView(E);
353
+ function xn(r, t = !0) {
354
+ const a = new TextEncoder().encode(r), E = new ArrayBuffer(14 + a.length), m = new DataView(E);
355
355
  let C = 0;
356
- return p.setUint8(C, Pt.SET_CLIPBOARD), C += 1, p.setBigInt64(C, BigInt(0), !1), C += 8, p.setUint8(C, t ? 1 : 0), C += 1, p.setUint32(C, a.length, !1), C += 4, new Uint8Array(E, C).set(a), E;
356
+ return m.setUint8(C, Pt.SET_CLIPBOARD), C += 1, m.setBigInt64(C, BigInt(0), !1), C += 8, m.setUint8(C, t ? 1 : 0), C += 1, m.setUint32(C, a.length, !1), C += 4, new Uint8Array(E, C).set(a), E;
357
357
  }
358
358
  function pt(r, t, c = 0, a = 0) {
359
- const E = new ArrayBuffer(14), p = new DataView(E);
359
+ const E = new ArrayBuffer(14), m = new DataView(E);
360
360
  let C = 0;
361
- return p.setUint8(C, Pt.INJECT_KEYCODE), C += 1, p.setUint8(C, r), C += 1, p.setInt32(C, t, !0), C += 4, p.setInt32(C, c, !0), C += 4, p.setInt32(C, a, !0), E;
361
+ return m.setUint8(C, Pt.INJECT_KEYCODE), C += 1, m.setUint8(C, r), C += 1, m.setInt32(C, t, !0), C += 4, m.setInt32(C, c, !0), C += 4, m.setInt32(C, a, !0), E;
362
362
  }
363
- const Qt = "Accessibility unavailable on this device.", kt = 500, Wr = (r, t) => Math.abs(r.x - t.x) < 0.5 && Math.abs(r.y - t.y) < 0.5 && Math.abs(r.width - t.width) < 0.5 && Math.abs(r.height - t.height) < 0.5, Fn = (r) => Math.max(0, r.width) * Math.max(0, r.height), xn = (r) => {
363
+ const Qt = "Accessibility unavailable on this device.", kt = 500, Wr = (r, t) => Math.abs(r.x - t.x) < 0.5 && Math.abs(r.y - t.y) < 0.5 && Math.abs(r.width - t.width) < 0.5 && Math.abs(r.height - t.height) < 0.5, Wn = (r) => Math.max(0, r.width) * Math.max(0, r.height), Hn = (r) => {
364
364
  const t = r.find((c) => c.frame && c.frame.width > 0 && c.frame.height > 0);
365
365
  return t?.frame ? ((Math.abs(t.frame.x) > 0.5 || Math.abs(t.frame.y) > 0.5) && console.warn(
366
366
  `[ax-tree] iOS root frame is not anchored at (0,0): (${t.frame.x},${t.frame.y}). Element positions may be slightly off from the rendered video.`
367
367
  ), { x: 0, y: 0, width: t.frame.width, height: t.frame.height }) : { x: 0, y: 0, width: 1, height: 1 };
368
- }, Wn = (r) => {
368
+ }, $n = (r) => {
369
369
  const t = {};
370
370
  return typeof r.AXUniqueId == "string" && r.AXUniqueId.length > 0 && (t.AXUniqueId = r.AXUniqueId), typeof r.AXLabel == "string" && r.AXLabel.length > 0 && (t.AXLabel = r.AXLabel), typeof r.type == "string" && r.type.length > 0 && (t.className = r.type), t;
371
- }, Hn = (r) => {
371
+ }, Xn = (r) => {
372
372
  const t = {};
373
373
  for (const [c, a] of Object.entries(r))
374
374
  c !== "children" && (t[c] = a);
375
375
  return t;
376
376
  };
377
- function $n(r) {
378
- const t = Array.isArray(r) ? r : [r], c = xn(t), a = [], E = (p, C) => {
377
+ function Bn(r) {
378
+ const t = Array.isArray(r) ? r : [r], c = Hn(t), a = [], E = (m, C) => {
379
379
  if (a.length >= kt) return;
380
- const v = p.frame;
380
+ const v = m.frame;
381
381
  if (v && v.width > 0 && v.height > 0 && !Wr(v, c)) {
382
- const D = p.role_description || p.role || "", R = (typeof p.AXLabel == "string" ? p.AXLabel : "") || (typeof p.title == "string" ? p.title : "") || "";
382
+ const D = m.role_description || m.role || "", R = (typeof m.AXLabel == "string" ? m.AXLabel : "") || (typeof m.title == "string" ? m.title : "") || "";
383
383
  a.push({
384
- id: typeof p.AXUniqueId == "string" && p.AXUniqueId.length > 0 ? p.AXUniqueId : C,
384
+ id: typeof m.AXUniqueId == "string" && m.AXUniqueId.length > 0 ? m.AXUniqueId : C,
385
385
  path: C,
386
386
  label: R,
387
- value: typeof p.AXValue == "string" ? p.AXValue : "",
387
+ value: typeof m.AXValue == "string" ? m.AXValue : "",
388
388
  role: D,
389
- type: typeof p.type == "string" ? p.type : "",
390
- enabled: p.enabled !== !1,
391
- focused: p.focused === !0,
389
+ type: typeof m.type == "string" ? m.type : "",
390
+ enabled: m.enabled !== !1,
391
+ focused: m.focused === !0,
392
392
  frame: { x: v.x, y: v.y, width: v.width, height: v.height },
393
- selectors: Wn(p),
394
- raw: Hn(p)
393
+ selectors: $n(m),
394
+ raw: Xn(m)
395
395
  });
396
396
  }
397
- const b = Array.isArray(p.children) ? p.children : [];
397
+ const b = Array.isArray(m.children) ? m.children : [];
398
398
  for (let D = 0; D < b.length && a.length < kt; D++)
399
399
  E(b[D], `${C}.${D}`);
400
400
  };
401
- for (let p = 0; p < t.length && a.length < kt; p++)
402
- E(t[p], String(p));
401
+ for (let m = 0; m < t.length && a.length < kt; m++)
402
+ E(t[m], String(m));
403
403
  return {
404
404
  platform: "ios",
405
405
  screen: { width: c.width, height: c.height },
@@ -407,27 +407,27 @@ function $n(r) {
407
407
  capturedAt: Date.now()
408
408
  };
409
409
  }
410
- const Xn = (r) => {
410
+ const qn = (r) => {
411
411
  let t = { x: 0, y: 0, width: 1, height: 1 }, c = 0;
412
412
  for (const a of r) {
413
413
  const E = a.parsedBounds;
414
414
  if (!E) continue;
415
- const p = E.right - E.left, C = E.bottom - E.top, v = Math.max(0, p) * Math.max(0, C);
416
- v > c && (c = v, t = { x: 0, y: 0, width: p, height: C });
415
+ const m = E.right - E.left, C = E.bottom - E.top, v = Math.max(0, m) * Math.max(0, C);
416
+ v > c && (c = v, t = { x: 0, y: 0, width: m, height: C });
417
417
  }
418
418
  return t;
419
- }, Bn = (r) => {
419
+ }, Vn = (r) => {
420
420
  const t = {};
421
421
  return typeof r.resourceId == "string" && r.resourceId.length > 0 && (t.resourceId = r.resourceId), typeof r.contentDesc == "string" && r.contentDesc.length > 0 && (t.contentDesc = r.contentDesc), typeof r.text == "string" && r.text.length > 0 && (t.text = r.text), typeof r.className == "string" && r.className.length > 0 && (t.className = r.className), t;
422
422
  };
423
- function qn(r) {
424
- const t = Xn(r), c = [];
423
+ function Gn(r) {
424
+ const t = qn(r), c = [];
425
425
  for (let a = 0; a < r.length && c.length < kt; a++) {
426
- const E = r[a], p = E.parsedBounds;
427
- if (!p) continue;
428
- const C = Math.max(0, p.right - p.left), v = Math.max(0, p.bottom - p.top);
426
+ const E = r[a], m = E.parsedBounds;
427
+ if (!m) continue;
428
+ const C = Math.max(0, m.right - m.left), v = Math.max(0, m.bottom - m.top);
429
429
  if (C <= 0 || v <= 0) continue;
430
- const b = { x: p.left, y: p.top, width: C, height: v };
430
+ const b = { x: m.left, y: m.top, width: C, height: v };
431
431
  if (Wr(b, { x: 0, y: 0, width: t.width, height: t.height })) continue;
432
432
  const D = E.contentDesc || E.text || "", R = E.className || "";
433
433
  c.push({
@@ -440,7 +440,7 @@ function qn(r) {
440
440
  enabled: E.enabled !== !1,
441
441
  focused: E.focused === !0,
442
442
  frame: b,
443
- selectors: Bn(E),
443
+ selectors: Vn(E),
444
444
  raw: { ...E }
445
445
  });
446
446
  }
@@ -451,8 +451,8 @@ function qn(r) {
451
451
  capturedAt: Date.now()
452
452
  };
453
453
  }
454
- function Vn(r, t) {
455
- const c = Math.max(0, r.x), a = Math.max(0, r.y), E = Math.min(t.width, r.x + r.width), p = Math.min(t.height, r.y + r.height), C = Math.max(0, E - c), v = Math.max(0, p - a);
454
+ function Jn(r, t) {
455
+ const c = Math.max(0, r.x), a = Math.max(0, r.y), E = Math.min(t.width, r.x + r.width), m = Math.min(t.height, r.y + r.height), C = Math.max(0, E - c), v = Math.max(0, m - a);
456
456
  return C > 0 && v > 0 ? { x: c, y: a, width: C, height: v } : null;
457
457
  }
458
458
  function Hr(r, t) {
@@ -468,17 +468,17 @@ function $r(r, t) {
468
468
  if (!Hr(r.elements[c], t.elements[c])) return !1;
469
469
  return !0;
470
470
  }
471
- function Gn(r, t, c) {
471
+ function zn(r, t, c) {
472
472
  let a = null, E = 1 / 0;
473
- for (const p of r.elements) {
474
- const C = p.frame;
473
+ for (const m of r.elements) {
474
+ const C = m.frame;
475
475
  if (t < C.x || c < C.y || t > C.x + C.width || c > C.y + C.height) continue;
476
- const v = Fn(C);
477
- v < E && (E = v, a = p);
476
+ const v = Wn(C);
477
+ v < E && (E = v, a = m);
478
478
  }
479
479
  return a;
480
480
  }
481
- function Jn(r, t) {
481
+ function jn(r, t) {
482
482
  if (t === "ios") {
483
483
  if (r.selectors.AXUniqueId)
484
484
  return `client.tapElement({ AXUniqueId: ${JSON.stringify(r.selectors.AXUniqueId)} })`;
@@ -503,8 +503,8 @@ function Br(r) {
503
503
  const a = c.length > Yr ? c.slice(0, Yr).trimEnd() + "…" : c;
504
504
  return `${t} · ${a}`;
505
505
  }
506
- const zn = 500, jn = 2e3, Kr = 5e3, Qn = 8e3, Zn = 1200, ei = 250, ti = () => `ax-rc-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
507
- class ri {
506
+ const Qn = 500, Zn = 2e3, Kr = 5e3, ei = 8e3, ti = 1200, ri = 250, ni = () => `ax-rc-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
507
+ class ii {
508
508
  platform;
509
509
  send;
510
510
  onSnapshot;
@@ -531,7 +531,7 @@ class ri {
531
531
  // identical-to-current transitions are no-ops.
532
532
  status = "idle";
533
533
  constructor(t) {
534
- this.platform = t.platform, this.send = t.send, this.onSnapshot = t.onSnapshot, this.onStatusChange = t.onStatusChange, this.baseIntervalMs = t.baseIntervalMs ?? zn, this.maxBackoffMs = t.maxBackoffMs ?? jn, this.androidElementTreeOptions = t.androidElementTreeOptions, this.currentInterval = this.baseIntervalMs;
534
+ this.platform = t.platform, this.send = t.send, this.onSnapshot = t.onSnapshot, this.onStatusChange = t.onStatusChange, this.baseIntervalMs = t.baseIntervalMs ?? Qn, this.maxBackoffMs = t.maxBackoffMs ?? Zn, this.androidElementTreeOptions = t.androidElementTreeOptions, this.currentInterval = this.baseIntervalMs;
535
535
  }
536
536
  start() {
537
537
  this.running || (this.running = !0, this.currentInterval = this.baseIntervalMs, this.boostUntilMs = 0, this.setStatus("starting"), this.runOnce());
@@ -563,7 +563,7 @@ class ri {
563
563
  bumpActivity() {
564
564
  if (!this.running) return;
565
565
  const t = Date.now();
566
- this.boostUntilMs = t + Zn;
566
+ this.boostUntilMs = t + ti;
567
567
  const c = Math.max(150, Math.floor(this.baseIntervalMs / 2));
568
568
  if (t - this.lastBumpAtMs < c) {
569
569
  this.currentInterval = this.baseIntervalMs;
@@ -600,7 +600,7 @@ class ri {
600
600
  return this.settleReject(c, new Error(v)), !0;
601
601
  const b = typeof t.json == "string" ? t.json : "";
602
602
  try {
603
- const D = JSON.parse(b), R = $n(D);
603
+ const D = JSON.parse(b), R = Bn(D);
604
604
  this.settleResolve(c, R);
605
605
  } catch (D) {
606
606
  this.settleReject(c, D instanceof Error ? D : new Error(String(D)));
@@ -613,9 +613,9 @@ class ri {
613
613
  const v = typeof E.message == "string" ? E.message : "getElementTree failed";
614
614
  return this.settleReject(c, new Error(v)), !0;
615
615
  }
616
- const p = t.payload, C = Array.isArray(p?.nodes) ? p.nodes : [];
616
+ const m = t.payload, C = Array.isArray(m?.nodes) ? m.nodes : [];
617
617
  try {
618
- const v = qn(C);
618
+ const v = Gn(C);
619
619
  this.settleResolve(c, v);
620
620
  } catch (v) {
621
621
  this.settleReject(c, v instanceof Error ? v : new Error(String(v)));
@@ -626,13 +626,13 @@ class ri {
626
626
  return this.platform === "ios" ? { type: "elementTree", id: t } : { type: "getElementTree", id: t, ...this.androidElementTreeOptions };
627
627
  }
628
628
  async requestOnce() {
629
- const t = ti();
629
+ const t = ni();
630
630
  return new Promise((c, a) => {
631
631
  const E = window.setTimeout(
632
632
  () => {
633
633
  this.pending.delete(t), a(new Error("elementTree request timed out"));
634
634
  },
635
- Qn + (this.androidElementTreeOptions?.waitForIdleTimeoutMs ?? 0)
635
+ ei + (this.androidElementTreeOptions?.waitForIdleTimeoutMs ?? 0)
636
636
  );
637
637
  this.pending.set(t, { resolve: c, reject: a, timer: E }), this.send(this.buildRequest(t)) || (window.clearTimeout(E), this.pending.delete(t), a(new Error("elementTree send failed (WebSocket not open)")));
638
638
  });
@@ -664,7 +664,7 @@ class ri {
664
664
  scheduleNext() {
665
665
  if (!this.running) return;
666
666
  this.timer !== void 0 && window.clearTimeout(this.timer);
667
- const t = Date.now() < this.boostUntilMs ? Math.min(ei, this.currentInterval) : this.currentInterval;
667
+ const t = Date.now() < this.boostUntilMs ? Math.min(ri, this.currentInterval) : this.currentInterval;
668
668
  this.timer = window.setTimeout(() => {
669
669
  this.timer = void 0, this.runOnce();
670
670
  }, t);
@@ -682,7 +682,7 @@ class ri {
682
682
  window.clearTimeout(a.timer), a.reject(new Error(t)), this.pending.delete(c);
683
683
  }
684
684
  }
685
- class ni {
685
+ class oi {
686
686
  generation = 0;
687
687
  tail = Promise.resolve();
688
688
  get currentGeneration() {
@@ -713,23 +713,23 @@ class ni {
713
713
  ++this.generation;
714
714
  }
715
715
  }
716
- function ii(r) {
716
+ function ci(r) {
717
717
  if (!r || typeof r != "object") return null;
718
718
  const t = r;
719
719
  if (t.type !== "cameraRequest" || typeof t.active != "boolean") return null;
720
720
  const c = { active: t.active };
721
721
  return (t.facingMode === "user" || t.facingMode === "environment") && (c.facingMode = t.facingMode), c;
722
722
  }
723
- function oi(r) {
723
+ function si(r) {
724
724
  const t = {
725
725
  frameRate: { ideal: 30, max: 30 }
726
726
  };
727
727
  return r?.facingMode && (t.facingMode = { ideal: r.facingMode }), t;
728
728
  }
729
- function ci(r, t) {
729
+ function ai(r, t) {
730
730
  return !r || r.facingMode !== t.facingMode;
731
731
  }
732
- function si(r) {
732
+ function ui(r) {
733
733
  const t = r.getSettings();
734
734
  return {
735
735
  width: t.width,
@@ -740,14 +740,14 @@ function si(r) {
740
740
  facingMode: t.facingMode
741
741
  };
742
742
  }
743
- function ai(r) {
743
+ function li(r) {
744
744
  return {
745
745
  type: "cameraResult",
746
746
  granted: !0,
747
- camera: si(r)
747
+ camera: ui(r)
748
748
  };
749
749
  }
750
- const ui = async (r) => {
750
+ const di = async (r) => {
751
751
  if (!r) return !1;
752
752
  try {
753
753
  if (typeof navigator < "u" && navigator.clipboard?.writeText)
@@ -762,9 +762,9 @@ const ui = async (r) => {
762
762
  } catch {
763
763
  return !1;
764
764
  }
765
- }, li = er(
766
- function({ element: t, screen: c, highlighted: a, selected: E, selectable: p, onClick: C }) {
767
- const v = Vn(t.frame, c);
765
+ }, fi = er(
766
+ function({ element: t, screen: c, highlighted: a, selected: E, selectable: m, onClick: C }) {
767
+ const v = Jn(t.frame, c);
768
768
  if (!v) return null;
769
769
  const b = Br(t);
770
770
  return /* @__PURE__ */ k(
@@ -780,7 +780,7 @@ const ui = async (r) => {
780
780
  "data-selected": E ? "true" : "false",
781
781
  "aria-label": b,
782
782
  onClick: (D) => {
783
- p && (D.preventDefault(), D.stopPropagation(), C(t, { x: D.clientX, y: D.clientY }));
783
+ m && (D.preventDefault(), D.stopPropagation(), C(t, { x: D.clientX, y: D.clientY }));
784
784
  },
785
785
  style: {
786
786
  left: `${v.x / c.width * 100}%`,
@@ -792,60 +792,60 @@ const ui = async (r) => {
792
792
  );
793
793
  },
794
794
  (r, t) => r.highlighted === t.highlighted && r.selected === t.selected && r.selectable === t.selectable && r.screen.width === t.screen.width && r.screen.height === t.screen.height && r.onClick === t.onClick && Hr(r.element, t.element)
795
- ), di = 260, fi = 220, hi = 6, pi = 8, mi = er(function({
795
+ ), hi = 260, pi = 220, mi = 6, Ei = 8, gi = er(function({
796
796
  element: t,
797
797
  platform: c,
798
798
  anchor: a,
799
799
  cursorAnchored: E,
800
- showActions: p,
800
+ showActions: m,
801
801
  onTap: C
802
802
  }) {
803
- const [v, b] = V(null);
803
+ const [v, b] = X(null);
804
804
  de(() => {
805
805
  if (!v) return;
806
- const X = window.setTimeout(() => b(null), 1100);
807
- return () => window.clearTimeout(X);
806
+ const B = window.setTimeout(() => b(null), 1100);
807
+ return () => window.clearTimeout(B);
808
808
  }, [v]);
809
809
  const D = Re(() => {
810
- const X = di, fe = fi, ne = hi, H = pi, he = typeof window < "u" ? window.innerWidth : 1024, mt = typeof window < "u" ? window.innerHeight : 768, Ye = a.x + ne + X <= he - H, pe = a.y - ne - fe >= H;
810
+ const B = hi, fe = pi, ne = mi, H = Ei, he = typeof window < "u" ? window.innerWidth : 1024, mt = typeof window < "u" ? window.innerHeight : 768, Ye = a.x + ne + B <= he - H, pe = a.y - ne - fe >= H;
811
811
  let x = Ye ? a.x + ne : a.x - ne, Ke = pe ? a.y - ne : a.y + ne;
812
- const ce = `translate(${Ye ? "0" : "-100%"}, ${pe ? "-100%" : "0"})`;
813
- return x = Math.max(H + (Ye ? 0 : X), Math.min(he - H - (Ye ? X : 0), x)), Ke = Math.max(H + (pe ? fe : 0), Math.min(mt - H - (pe ? 0 : fe), Ke)), { left: `${x}px`, top: `${Ke}px`, transform: ce };
814
- }, [a.x, a.y]), R = Re(() => Jn(t, c), [t, c]), S = c === "ios" ? t.selectors.AXUniqueId : t.selectors.resourceId, Z = c === "ios" ? "AXUniqueId" : "resourceId", ge = bn(async (X, fe) => {
815
- if (!X) return;
816
- await ui(X) && b(fe);
812
+ const se = `translate(${Ye ? "0" : "-100%"}, ${pe ? "-100%" : "0"})`;
813
+ return x = Math.max(H + (Ye ? 0 : B), Math.min(he - H - (Ye ? B : 0), x)), Ke = Math.max(H + (pe ? fe : 0), Math.min(mt - H - (pe ? 0 : fe), Ke)), { left: `${x}px`, top: `${Ke}px`, transform: se };
814
+ }, [a.x, a.y]), R = Re(() => jn(t, c), [t, c]), M = c === "ios" ? t.selectors.AXUniqueId : t.selectors.resourceId, Z = c === "ios" ? "AXUniqueId" : "resourceId", ge = Nn(async (B, fe) => {
815
+ if (!B) return;
816
+ await di(B) && b(fe);
817
817
  }, []), Ce = Xr(t), Ze = t.label || t.value || Ce, Ie = Br(t);
818
- return Kn(
819
- /* @__PURE__ */ oe(
818
+ return Pn(
819
+ /* @__PURE__ */ ce(
820
820
  "div",
821
821
  {
822
822
  className: "rc-inspect-card",
823
823
  "data-cursor-anchored": E ? "true" : "false",
824
824
  style: D,
825
- onClick: (X) => X.stopPropagation(),
826
- onMouseDown: (X) => X.stopPropagation(),
827
- onMouseMove: (X) => X.stopPropagation(),
825
+ onClick: (B) => B.stopPropagation(),
826
+ onMouseDown: (B) => B.stopPropagation(),
827
+ onMouseMove: (B) => B.stopPropagation(),
828
828
  children: [
829
- /* @__PURE__ */ oe("div", { className: "rc-inspect-card-header", children: [
829
+ /* @__PURE__ */ ce("div", { className: "rc-inspect-card-header", children: [
830
830
  /* @__PURE__ */ k("span", { className: "rc-inspect-card-role", children: Ce }),
831
831
  !t.enabled && /* @__PURE__ */ k("span", { className: "rc-inspect-card-tag", children: "disabled" }),
832
832
  t.focused && /* @__PURE__ */ k("span", { className: "rc-inspect-card-tag rc-inspect-card-tag-blue", children: "focused" })
833
833
  ] }),
834
834
  /* @__PURE__ */ k("p", { className: "rc-inspect-card-title", title: Ie, children: Ze }),
835
- S && /* @__PURE__ */ oe("div", { className: "rc-inspect-card-row", children: [
836
- /* @__PURE__ */ oe("span", { className: "rc-inspect-card-row-label", children: [
835
+ M && /* @__PURE__ */ ce("div", { className: "rc-inspect-card-row", children: [
836
+ /* @__PURE__ */ ce("span", { className: "rc-inspect-card-row-label", children: [
837
837
  Z,
838
838
  ":"
839
839
  ] }),
840
- /* @__PURE__ */ k("span", { className: "rc-inspect-card-row-value", children: S })
840
+ /* @__PURE__ */ k("span", { className: "rc-inspect-card-row-value", children: M })
841
841
  ] }),
842
- t.value && t.value !== t.label && /* @__PURE__ */ oe("div", { className: "rc-inspect-card-row", children: [
842
+ t.value && t.value !== t.label && /* @__PURE__ */ ce("div", { className: "rc-inspect-card-row", children: [
843
843
  /* @__PURE__ */ k("span", { className: "rc-inspect-card-row-label", children: "value:" }),
844
844
  /* @__PURE__ */ k("span", { className: "rc-inspect-card-row-value", children: t.value })
845
845
  ] }),
846
- /* @__PURE__ */ oe("div", { className: "rc-inspect-card-row", children: [
846
+ /* @__PURE__ */ ce("div", { className: "rc-inspect-card-row", children: [
847
847
  /* @__PURE__ */ k("span", { className: "rc-inspect-card-row-label", children: "frame:" }),
848
- /* @__PURE__ */ oe("span", { className: "rc-inspect-card-row-value", children: [
848
+ /* @__PURE__ */ ce("span", { className: "rc-inspect-card-row-value", children: [
849
849
  Math.round(t.frame.width),
850
850
  "×",
851
851
  Math.round(t.frame.height),
@@ -855,7 +855,7 @@ const ui = async (r) => {
855
855
  Math.round(t.frame.y)
856
856
  ] })
857
857
  ] }),
858
- p && /* @__PURE__ */ oe("div", { className: "rc-inspect-card-actions", children: [
858
+ m && /* @__PURE__ */ ce("div", { className: "rc-inspect-card-actions", children: [
859
859
  /* @__PURE__ */ k(
860
860
  "button",
861
861
  {
@@ -881,9 +881,9 @@ const ui = async (r) => {
881
881
  {
882
882
  type: "button",
883
883
  className: Ne("rc-inspect-card-btn", v === "id" && "rc-inspect-card-btn-copied"),
884
- disabled: !S,
885
- title: S ?? `No ${Z}`,
886
- onClick: () => ge(S, "id"),
884
+ disabled: !M,
885
+ title: M ?? `No ${Z}`,
886
+ onClick: () => ge(M, "id"),
887
887
  children: v === "id" ? "Copied!" : `Copy ${Z}`
888
888
  }
889
889
  )
@@ -893,28 +893,28 @@ const ui = async (r) => {
893
893
  ),
894
894
  document.body
895
895
  );
896
- }), Ei = er(function({
896
+ }), Ci = er(function({
897
897
  snapshot: t,
898
898
  geometry: c,
899
899
  highlightedId: a,
900
900
  selectedId: E,
901
- mode: p,
901
+ mode: m,
902
902
  cursorPosition: C,
903
903
  frozenCursorPosition: v,
904
904
  onSelectChange: b,
905
905
  onTapElement: D
906
906
  }) {
907
- const R = p === "select", S = R ? a !== null && a !== E : a !== null, Z = R ? a ?? E : a, ge = Re(() => {
907
+ const R = m === "select", M = R ? a !== null && a !== E : a !== null, Z = R ? a ?? E : a, ge = Re(() => {
908
908
  const H = /* @__PURE__ */ new Map();
909
909
  if (!t) return H;
910
910
  for (const he of t.elements) H.set(he.id, he);
911
911
  return H;
912
912
  }, [t]), Ce = Re(() => Z ? ge.get(Z) ?? null : null, [Z, ge]);
913
913
  if (!(!!t && !!c && t.screen.width > 0 && t.screen.height > 0 && t.elements.length > 0)) return null;
914
- const Ie = S ? C : v ?? C, X = S, fe = R && !S && E !== null, ne = (H) => {
914
+ const Ie = M ? C : v ?? C, B = M, fe = R && !M && E !== null, ne = (H) => {
915
915
  R && H.target === H.currentTarget && b(null, null);
916
916
  };
917
- return /* @__PURE__ */ oe(Lr, { children: [
917
+ return /* @__PURE__ */ ce(Lr, { children: [
918
918
  /* @__PURE__ */ k(
919
919
  "div",
920
920
  {
@@ -927,7 +927,7 @@ const ui = async (r) => {
927
927
  },
928
928
  onClick: ne,
929
929
  children: t.elements.map((H) => /* @__PURE__ */ k(
930
- li,
930
+ fi,
931
931
  {
932
932
  element: H,
933
933
  screen: t.screen,
@@ -941,18 +941,18 @@ const ui = async (r) => {
941
941
  }
942
942
  ),
943
943
  Ce && Ie && /* @__PURE__ */ k(
944
- mi,
944
+ gi,
945
945
  {
946
946
  element: Ce,
947
947
  platform: t.platform,
948
948
  anchor: Ie,
949
- cursorAnchored: X,
949
+ cursorAnchored: B,
950
950
  showActions: fe,
951
951
  onTap: D
952
952
  }
953
953
  )
954
954
  ] });
955
- }), gi = Rn(() => import("./duo-view-BsdKpp8d.mjs").then((r) => r.d)), F = (...r) => {
955
+ }), yi = In(() => import("./duo-view-BEkVGxom.mjs").then((r) => r.d)), F = (...r) => {
956
956
  window.debugRemoteControl && console.log(...r);
957
957
  }, w = (...r) => {
958
958
  window.debugRemoteControl && console.warn(...r);
@@ -965,10 +965,10 @@ const ui = async (r) => {
965
965
  }
966
966
  }, Kt = (r) => Object.entries(U).find(
967
967
  ([c, a]) => c.startsWith("ACTION_") && a === r
968
- )?.[0] ?? String(r), Ci = (r) => r.includes("/android_") ? "android" : "ios", kr = (r, t) => {
968
+ )?.[0] ?? String(r), vi = (r) => r.includes("/android_") ? "android" : "ios", kr = (r, t) => {
969
969
  const c = new URL(r);
970
970
  return c.searchParams.set("token", t), c.toString();
971
- }, Pr = 1920, Ur = 1200, Zt = 3, yi = 1e3, vi = 15e3, Oi = 3e3, _i = 4e3, Di = (r, t) => r === Pr && t === Ur || r === Ur && t === Pr, Ti = {
971
+ }, Pr = 1920, Ur = 1200, Zt = 3, Oi = 1e3, _i = 15e3, Di = 3e3, Ti = 4e3, wi = (r, t) => r === Pr && t === Ur || r === Ur && t === Pr, Ai = {
972
972
  ios: {
973
973
  videoBorderRadiusMultiplier: 0.15,
974
974
  loadingLogoSize: "20%",
@@ -988,42 +988,42 @@ const ui = async (r) => {
988
988
  }
989
989
  }
990
990
  };
991
- function wi(r) {
991
+ function Si(r) {
992
992
  const t = r.code, c = xr[t];
993
993
  if (!c)
994
994
  return w(`Unknown event.code: ${t}, key: ${r.key}`), null;
995
995
  let a = s.META_NONE;
996
- const E = t >= "KeyA" && t <= "KeyZ", p = r.getModifierState("CapsLock"), C = r.shiftKey;
996
+ const E = t >= "KeyA" && t <= "KeyZ", m = r.getModifierState("CapsLock"), C = r.shiftKey;
997
997
  let v = C;
998
- return E && (v = C !== p), v && (a |= s.META_SHIFT_ON), r.ctrlKey && (a |= s.META_CTRL_ON), r.altKey && (a |= s.META_ALT_ON), r.metaKey && (a |= s.META_META_ON), { keycode: c, metaState: a };
998
+ return E && (v = C !== m), v && (a |= s.META_SHIFT_ON), r.ctrlKey && (a |= s.META_CTRL_ON), r.altKey && (a |= s.META_ALT_ON), r.metaKey && (a |= s.META_META_ON), { keycode: c, metaState: a };
999
999
  }
1000
- const Li = Nn(
1000
+ const xi = Yn(
1001
1001
  ({
1002
1002
  className: r,
1003
1003
  url: t,
1004
1004
  token: c,
1005
1005
  sessionId: a,
1006
1006
  openUrl: E,
1007
- showFrame: p = !0,
1007
+ showFrame: m = !0,
1008
1008
  deviceModel: C,
1009
1009
  duoModelUrl: v,
1010
1010
  autoReconnect: b = !1,
1011
1011
  onTerminated: D,
1012
1012
  assets: R,
1013
- onConnectionStateChange: S,
1013
+ onConnectionStateChange: M,
1014
1014
  inspectMode: Z,
1015
1015
  onAxSnapshotChange: ge,
1016
1016
  onInspectSelectionChange: Ce,
1017
1017
  onAxStatusChange: Ze,
1018
1018
  axPollIntervalMs: Ie,
1019
- axMaxBackoffMs: X,
1019
+ axMaxBackoffMs: B,
1020
1020
  androidElementTreeOptions: fe,
1021
1021
  onCameraDemandChange: ne,
1022
1022
  onCameraStats: H,
1023
1023
  microphoneEnabled: he = !1,
1024
1024
  onMicrophoneStateChange: mt
1025
1025
  }, Ye) => {
1026
- const pe = O(null), x = O(null), Ke = O(null), [tr, rr] = V(!1), ce = C === "iphone-duo" || tr, et = O(null), [nr, ir] = V(null), [or, cr] = V(), ke = O(
1026
+ const pe = _(null), x = _(null), Ke = _(null), [tr, rr] = X(!1), se = C === "iphone-duo" || tr, et = _(null), [nr, ir] = X(null), [or, cr] = X(), ke = _(
1027
1027
  /* @__PURE__ */ new Map()
1028
1028
  ), Ut = (e, o) => new Promise((i, n) => {
1029
1029
  const l = T.current;
@@ -1035,83 +1035,83 @@ const Li = Nn(
1035
1035
  ke.current.delete(u), n(new Error("Device control timed out"));
1036
1036
  }, 5e3);
1037
1037
  ke.current.set(u, { resolve: i, reject: n, timer: f }), l.send(JSON.stringify({ type: e, id: u, ...o }));
1038
- }), [qr, Lt] = V(!1), [Vr, Et] = V(!1), [Gr, sr] = V(!1), Pe = O(!1), Ft = O(!1), [ar, Jr] = V(!1), [zr, jr] = V(!1), [Qr, ur] = V({}), T = O(null), W = O(null), P = O(null), Ue = O(void 0), tt = O(void 0), rt = O(void 0), gt = O(void 0), Le = O(void 0), Oe = O(0), Ct = O(0), Fe = O(!1), xt = O(b);
1038
+ }), [qr, Lt] = X(!1), [Vr, Et] = X(!1), [Gr, sr] = X(!1), Pe = _(!1), Ft = _(!1), [ar, Jr] = X(!1), [zr, jr] = X(!1), [Qr, Zr] = X(!0), [en, ur] = X({}), T = _(null), W = _(null), P = _(null), Ue = _(void 0), tt = _(void 0), rt = _(void 0), gt = _(void 0), Le = _(void 0), Oe = _(0), Ct = _(0), Fe = _(!1), xt = _(b);
1039
1039
  xt.current = b;
1040
- const _e = O(null), ee = O(null), De = O(void 0), Wt = Re(() => new ni(), []), me = O(ne);
1040
+ const _e = _(null), ee = _(null), De = _(void 0), Wt = Re(() => new oi(), []), me = _(ne);
1041
1041
  me.current = ne;
1042
- const yt = O(H);
1042
+ const yt = _(H);
1043
1043
  yt.current = H;
1044
- const nt = O(null), vt = O(null), Ht = O(he);
1044
+ const nt = _(null), vt = _(null), Ht = _(he);
1045
1045
  Ht.current = he;
1046
- const $t = O(!1), it = O(mt);
1046
+ const $t = _(!1), it = _(mt);
1047
1047
  it.current = mt;
1048
- const ot = O(null), ue = O(null), Ot = O(0), lr = O(Promise.resolve()), xe = O(null), ct = O(!1), ye = O(/* @__PURE__ */ new Map()), Ee = O(/* @__PURE__ */ new Map()), Te = O(/* @__PURE__ */ new Map()), we = O(/* @__PURE__ */ new Map()), J = O(/* @__PURE__ */ new Map()), Ae = O(!1), [Zr, en] = V(!1), B = O(null), We = O(null), st = O({
1048
+ const ot = _(null), le = _(null), Ot = _(0), lr = _(Promise.resolve()), xe = _(null), ct = _(!1), ye = _(/* @__PURE__ */ new Map()), Ee = _(/* @__PURE__ */ new Map()), Te = _(/* @__PURE__ */ new Map()), we = _(/* @__PURE__ */ new Map()), J = _(/* @__PURE__ */ new Map()), Ae = _(!1), [tn, rn] = X(!1), q = _(null), We = _(null), st = _({
1049
1049
  handle: () => {
1050
1050
  },
1051
1051
  end: () => {
1052
1052
  }
1053
- }), [Se, _t] = V(null), z = O(null), [dr, fr] = V(null), [Xt, at] = V(null), [Bt, Dt] = V(null), [tn, hr] = V(null), [rn, pr] = V(null), Tt = O(null), ie = O(void 0), mr = (e) => {
1053
+ }), [Se, _t] = X(null), z = _(null), [dr, fr] = X(null), [Xt, at] = X(null), [Bt, Dt] = X(null), [nn, hr] = X(null), [on, pr] = X(null), Tt = _(null), ie = _(void 0), mr = (e) => {
1054
1054
  Tt.current = e, ie.current === void 0 && (ie.current = window.requestAnimationFrame(() => {
1055
1055
  ie.current = void 0, pr(Tt.current);
1056
1056
  }));
1057
- }, [nn, He] = V(null), $e = O(Z);
1057
+ }, [cn, He] = X(null), $e = _(Z);
1058
1058
  $e.current = Z;
1059
- const Xe = O(null);
1059
+ const Xe = _(null);
1060
1060
  Xe.current = dr;
1061
- const qt = O(ge);
1061
+ const qt = _(ge);
1062
1062
  qt.current = ge;
1063
- const Be = O(Ce);
1063
+ const Be = _(Ce);
1064
1064
  Be.current = Ce;
1065
- const Er = O(Ze);
1065
+ const Er = _(Ze);
1066
1066
  Er.current = Ze;
1067
- const gr = O(D);
1067
+ const gr = _(D);
1068
1068
  gr.current = D;
1069
- const Cr = O(S);
1070
- Cr.current = S;
1071
- const Vt = O(null), qe = (e) => {
1069
+ const Cr = _(M);
1070
+ Cr.current = M;
1071
+ const Vt = _(null), qe = (e) => {
1072
1072
  Vt.current !== e && (Vt.current = e, L("onConnectionStateChange", Cr.current, e));
1073
- }, ut = Z === !0 || Z === "hover-only", on = Z === "hover-only" ? "hover-only" : "select", se = Re(
1073
+ }, ut = Z === !0 || Z === "hover-only", sn = Z === "hover-only" ? "hover-only" : "select", ae = Re(
1074
1074
  () => a || Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15),
1075
1075
  [a]
1076
- ), le = Re(() => Ci(t), [t]), Ve = Ti[le], lt = R?.[le], yr = le === "android" && zr ? ar ? lt?.tabletFrameLandscape : lt?.tabletFrame : ar ? lt?.frameLandscape : lt?.frame, vr = lt?.loadingLogo, wt = !ce && p && !!yr, Y = (e) => {
1076
+ ), oe = Re(() => vi(t), [t]), Ve = Ai[oe], lt = R?.[oe], yr = oe === "android" && zr ? ar ? lt?.tabletFrameLandscape : lt?.tabletFrame : ar ? lt?.frameLandscape : lt?.frame, vr = lt?.loadingLogo, wt = !se && m && !!yr && (oe !== "ios" || Qr), Y = (e) => {
1077
1077
  F(e);
1078
- }, ae = (e) => {
1078
+ }, ue = (e) => {
1079
1079
  !P.current || P.current.readyState !== "open" || (P.current.send(e), z.current?.bumpActivity());
1080
1080
  }, Or = -10, _r = (e, o) => {
1081
1081
  const i = dt();
1082
1082
  if (!i) return;
1083
1083
  const n = Je(i, e, o);
1084
1084
  if (!n) return;
1085
- const { videoX: l, videoY: u, videoWidth: f, videoHeight: m } = n, g = Yt(
1085
+ const { videoX: l, videoY: u, videoWidth: f, videoHeight: p } = n, g = Yt(
1086
1086
  U.ACTION_DOWN,
1087
1087
  Or,
1088
1088
  f,
1089
- m,
1089
+ p,
1090
1090
  l,
1091
1091
  u,
1092
1092
  1,
1093
1093
  U.BUTTON_PRIMARY,
1094
1094
  U.BUTTON_PRIMARY
1095
1095
  );
1096
- g && ae(g), window.setTimeout(() => {
1096
+ g && ue(g), window.setTimeout(() => {
1097
1097
  const h = Yt(
1098
1098
  U.ACTION_UP,
1099
1099
  Or,
1100
1100
  f,
1101
- m,
1101
+ p,
1102
1102
  l,
1103
1103
  u,
1104
1104
  0,
1105
1105
  U.BUTTON_PRIMARY,
1106
1106
  U.BUTTON_PRIMARY
1107
1107
  );
1108
- h && ae(h);
1108
+ h && ue(h);
1109
1109
  }, 60);
1110
- }, cn = (e, o) => {
1110
+ }, an = (e, o) => {
1111
1111
  const i = dt();
1112
1112
  if (!i || o.screen.width <= 0 || o.screen.height <= 0) return;
1113
- const n = e.frame.x + e.frame.width / 2, l = e.frame.y + e.frame.height / 2, u = n / o.screen.width * i.actualWidth, f = l / o.screen.height * i.actualHeight, m = i.videoRect.left + i.offsetX + u, g = i.videoRect.top + i.offsetY + f;
1114
- _r(m, g);
1113
+ const n = e.frame.x + e.frame.width / 2, l = e.frame.y + e.frame.height / 2, u = n / o.screen.width * i.actualWidth, f = l / o.screen.height * i.actualHeight, p = i.videoRect.left + i.offsetX + u, g = i.videoRect.top + i.offsetY + f;
1114
+ _r(p, g);
1115
1115
  }, At = -1, St = -2, Me = -3, Ge = (e, o, i, n, l, u) => {
1116
1116
  const f = Yt(
1117
1117
  e,
@@ -1132,61 +1132,61 @@ const Li = Nn(
1132
1132
  x: l,
1133
1133
  y: u,
1134
1134
  video: { width: i, height: n }
1135
- }), ae(f));
1135
+ }), ue(f));
1136
1136
  }, be = (e, o, i) => {
1137
1137
  if (!i) return;
1138
1138
  const { videoX: n, videoY: l, videoWidth: u, videoHeight: f } = i;
1139
- let m = null, g = null, h = 1;
1140
- const M = U.BUTTON_PRIMARY;
1139
+ let p = null, g = null, h = 1;
1140
+ const I = U.BUTTON_PRIMARY;
1141
1141
  switch (o) {
1142
1142
  case "down":
1143
- e !== Me && st.current.end(), m = J.current.size === 0 ? U.ACTION_DOWN : U.ACTION_POINTER_DOWN, g = { x: n, y: l }, J.current.set(e, g), e === -1 && x.current?.focus();
1143
+ e !== Me && st.current.end(), p = J.current.size === 0 ? U.ACTION_DOWN : U.ACTION_POINTER_DOWN, g = { x: n, y: l }, J.current.set(e, g), e === -1 && x.current?.focus();
1144
1144
  break;
1145
1145
  case "move":
1146
- J.current.has(e) && (m = U.ACTION_MOVE, g = { x: n, y: l }, J.current.set(e, g));
1146
+ J.current.has(e) && (p = U.ACTION_MOVE, g = { x: n, y: l }, J.current.set(e, g));
1147
1147
  break;
1148
1148
  case "up":
1149
1149
  case "cancel":
1150
- J.current.has(e) && (g = J.current.get(e), J.current.delete(e), o === "cancel" ? m = U.ACTION_CANCEL : m = J.current.size === 0 ? U.ACTION_UP : U.ACTION_POINTER_UP);
1150
+ J.current.has(e) && (g = J.current.get(e), J.current.delete(e), o === "cancel" ? p = U.ACTION_CANCEL : p = J.current.size === 0 ? U.ACTION_UP : U.ACTION_POINTER_UP);
1151
1151
  break;
1152
1152
  }
1153
- if (m !== null && g !== null) {
1153
+ if (p !== null && g !== null) {
1154
1154
  F("[rc-touch][mouse->touch] sending", {
1155
1155
  pointerId: e,
1156
1156
  eventType: o,
1157
- action: m,
1158
- actionName: Kt(m),
1157
+ action: p,
1158
+ actionName: Kt(p),
1159
1159
  positionToSend: g,
1160
1160
  video: { width: u, height: f },
1161
1161
  altHeld: Ae.current,
1162
- activePointersAfter: Array.from(J.current.entries()).map(([N, $]) => ({
1163
- id: N,
1162
+ activePointersAfter: Array.from(J.current.entries()).map(([S, $]) => ({
1163
+ id: S,
1164
1164
  x: $.x,
1165
1165
  y: $.y
1166
1166
  }))
1167
1167
  });
1168
- const _ = Yt(
1169
- m,
1168
+ const O = Yt(
1169
+ p,
1170
1170
  e,
1171
1171
  u,
1172
1172
  f,
1173
1173
  g.x,
1174
1174
  g.y,
1175
1175
  h,
1176
- M,
1177
- M
1176
+ I,
1177
+ I
1178
1178
  );
1179
- _ && (F("[rc-touch][mouse->touch] buffer", {
1179
+ O && (F("[rc-touch][mouse->touch] buffer", {
1180
1180
  pointerId: e,
1181
- actionName: Kt(m),
1182
- byteLength: _.byteLength
1183
- }), ae(_));
1181
+ actionName: Kt(p),
1182
+ byteLength: O.byteLength
1183
+ }), ue(O));
1184
1184
  } else (o === "up" || o === "cancel") && J.current.delete(e);
1185
1185
  }, Gt = (e) => {
1186
- if (Ae.current !== e && (Ae.current = e, en(e), e || _t(null), F("[rc-touch][alt] updateAltHeld", {
1186
+ if (Ae.current !== e && (Ae.current = e, rn(e), e || _t(null), F("[rc-touch][alt] updateAltHeld", {
1187
1187
  nextHeld: e,
1188
1188
  activePointerIds: Array.from(J.current.keys())
1189
- }), le === "ios" && P.current && P.current.readyState === "open")) {
1189
+ }), oe === "ios" && P.current && P.current.readyState === "open")) {
1190
1190
  const o = e ? s.ACTION_DOWN : s.ACTION_UP, i = pt(
1191
1191
  o,
1192
1192
  s.KEYCODE_ALT_LEFT,
@@ -1196,29 +1196,29 @@ const Li = Nn(
1196
1196
  F("[rc-touch][alt] sending Indigo modifier keycode", {
1197
1197
  action: o,
1198
1198
  keycode: s.KEYCODE_ALT_LEFT
1199
- }), i && ae(i);
1199
+ }), i && ue(i);
1200
1200
  }
1201
1201
  }, dt = () => {
1202
1202
  const e = x.current, o = pe.current;
1203
1203
  if (!e || !o) return null;
1204
1204
  const i = e.videoWidth, n = e.videoHeight;
1205
1205
  if (!i || !n) return null;
1206
- const l = e.getBoundingClientRect(), u = o.getBoundingClientRect(), f = l.width, m = l.height, g = i / n, h = f / m;
1207
- let M = f, _ = m;
1208
- g > h ? _ = f / g : M = m * g;
1209
- const N = (f - M) / 2, $ = (m - _) / 2;
1206
+ const l = e.getBoundingClientRect(), u = o.getBoundingClientRect(), f = l.width, p = l.height, g = i / n, h = f / p;
1207
+ let I = f, O = p;
1208
+ g > h ? O = f / g : I = p * g;
1209
+ const S = (f - I) / 2, $ = (p - O) / 2;
1210
1210
  return {
1211
1211
  videoWidth: i,
1212
1212
  videoHeight: n,
1213
1213
  videoRect: l,
1214
1214
  containerRect: u,
1215
- actualWidth: M,
1216
- actualHeight: _,
1217
- offsetX: N,
1215
+ actualWidth: I,
1216
+ actualHeight: O,
1217
+ offsetX: S,
1218
1218
  offsetY: $
1219
1219
  };
1220
1220
  }, Je = (e, o, i) => {
1221
- const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)), m = Math.max(
1221
+ const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)), p = Math.max(
1222
1222
  0,
1223
1223
  Math.min(e.videoWidth, u / e.actualWidth * e.videoWidth)
1224
1224
  ), g = Math.max(
@@ -1226,78 +1226,78 @@ const Li = Nn(
1226
1226
  Math.min(e.videoHeight, f / e.actualHeight * e.videoHeight)
1227
1227
  );
1228
1228
  return {
1229
- videoX: m,
1229
+ videoX: p,
1230
1230
  videoY: g,
1231
1231
  videoWidth: e.videoWidth,
1232
1232
  videoHeight: e.videoHeight
1233
1233
  };
1234
- }, sn = (e, o, i) => {
1235
- const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)), m = Math.max(
1234
+ }, un = (e, o, i) => {
1235
+ const n = o - e.videoRect.left - e.offsetX, l = i - e.videoRect.top - e.offsetY, u = Math.max(0, Math.min(e.actualWidth, n)), f = Math.max(0, Math.min(e.actualHeight, l)), p = Math.max(
1236
1236
  0,
1237
1237
  Math.min(e.videoWidth, u / e.actualWidth * e.videoWidth)
1238
1238
  ), g = Math.max(
1239
1239
  0,
1240
1240
  Math.min(e.videoHeight, f / e.actualHeight * e.videoHeight)
1241
- ), h = e.videoWidth - m, M = e.videoHeight - g, _ = e.videoRect.left + e.offsetX, N = e.videoRect.top + e.offsetY, $ = _ - e.containerRect.left + u, te = N - e.containerRect.top + f, G = _ - e.containerRect.left + (e.actualWidth - u), y = N - e.containerRect.top + (e.actualHeight - f);
1241
+ ), h = e.videoWidth - p, I = e.videoHeight - g, O = e.videoRect.left + e.offsetX, S = e.videoRect.top + e.offsetY, $ = O - e.containerRect.left + u, te = S - e.containerRect.top + f, G = O - e.containerRect.left + (e.actualWidth - u), y = S - e.containerRect.top + (e.actualHeight - f);
1242
1242
  return {
1243
1243
  containerX: $,
1244
1244
  containerY: te,
1245
1245
  mirrorContainerX: G,
1246
1246
  mirrorContainerY: y,
1247
- videoX: m,
1247
+ videoX: p,
1248
1248
  videoY: g,
1249
1249
  mirrorVideoX: h,
1250
- mirrorVideoY: M,
1250
+ mirrorVideoY: I,
1251
1251
  videoWidth: e.videoWidth,
1252
1252
  videoHeight: e.videoHeight
1253
1253
  };
1254
- }, an = (e, o, i, n, l, u, f) => {
1255
- const m = Un(e, o, i, n, l, u, f);
1254
+ }, ln = (e, o, i, n, l, u, f) => {
1255
+ const p = Fn(e, o, i, n, l, u, f);
1256
1256
  F("[rc-touch2] sendTwoFingerMessage (iOS)", {
1257
1257
  actionName: Kt(e),
1258
1258
  video: { width: o, height: i },
1259
1259
  p0: { x: n, y: l },
1260
1260
  p1: { x: u, y: f },
1261
- byteLength: m.byteLength
1262
- }), ae(m);
1263
- }, ze = (e, o, i, n, l, u, f, m, g) => {
1261
+ byteLength: p.byteLength
1262
+ }), ue(p);
1263
+ }, ze = (e, o, i, n, l, u, f, p, g) => {
1264
1264
  if (F("[rc-touch2] applyTwoFingerEvent", {
1265
- platform: le,
1265
+ platform: oe,
1266
1266
  eventType: e,
1267
1267
  video: { width: o, height: i },
1268
- p0: { x: n, y: l, id: m },
1268
+ p0: { x: n, y: l, id: p },
1269
1269
  p1: { x: u, y: f, id: g }
1270
- }), e === "down" && st.current.end(), le === "ios") {
1270
+ }), e === "down" && st.current.end(), oe === "ios") {
1271
1271
  const h = e === "down" ? U.ACTION_DOWN : e === "move" ? U.ACTION_MOVE : U.ACTION_UP;
1272
- an(h, o, i, n, l, u, f);
1272
+ ln(h, o, i, n, l, u, f);
1273
1273
  } else
1274
- e === "down" ? (Ge(U.ACTION_DOWN, m, o, i, n, l), Ge(U.ACTION_POINTER_DOWN, g, o, i, u, f)) : e === "move" ? (Ge(U.ACTION_MOVE, m, o, i, n, l), Ge(U.ACTION_MOVE, g, o, i, u, f)) : (Ge(U.ACTION_POINTER_UP, g, o, i, u, f), Ge(U.ACTION_UP, m, o, i, n, l));
1275
- }, un = (e, o, i) => {
1274
+ e === "down" ? (Ge(U.ACTION_DOWN, p, o, i, n, l), Ge(U.ACTION_POINTER_DOWN, g, o, i, u, f)) : e === "move" ? (Ge(U.ACTION_MOVE, p, o, i, n, l), Ge(U.ACTION_MOVE, g, o, i, u, f)) : (Ge(U.ACTION_POINTER_UP, g, o, i, u, f), Ge(U.ACTION_UP, p, o, i, n, l));
1275
+ }, dn = (e, o, i) => {
1276
1276
  if (!Ae.current) {
1277
1277
  Se !== null && _t(null);
1278
1278
  return;
1279
1279
  }
1280
- const n = sn(e, o, i);
1280
+ const n = un(e, o, i);
1281
1281
  _t(n);
1282
- }, ln = (e, o, i) => {
1282
+ }, fn = (e, o, i) => {
1283
1283
  const n = Xe.current;
1284
1284
  if (!n || n.screen.width <= 0 || n.screen.height <= 0) return null;
1285
1285
  const l = o - e.videoRect.left - e.offsetX, u = i - e.videoRect.top - e.offsetY;
1286
1286
  if (l < 0 || u < 0 || l > e.actualWidth || u > e.actualHeight) return null;
1287
- const f = l / e.actualWidth * n.screen.width, m = u / e.actualHeight * n.screen.height;
1288
- return Gn(n, f, m);
1287
+ const f = l / e.actualWidth * n.screen.width, p = u / e.actualHeight * n.screen.height;
1288
+ return zn(n, f, p);
1289
1289
  }, ve = (e) => {
1290
- if (ce) return;
1290
+ if (se) return;
1291
1291
  e.preventDefault(), e.stopPropagation();
1292
1292
  const o = dt();
1293
1293
  if (($e.current === !0 || $e.current === "hover-only") && !("touches" in e))
1294
1294
  if (e.type === "mousemove") {
1295
1295
  if (mr({ x: e.clientX, y: e.clientY }), o) {
1296
- const n = ln(o, e.clientX, e.clientY);
1296
+ const n = fn(o, e.clientX, e.clientY);
1297
1297
  at(n?.id ?? null);
1298
1298
  }
1299
1299
  } else e.type === "mouseleave" && (mr(null), at(null));
1300
- if ($e.current !== !0 && (!("touches" in e) && o && (e.type === "mousemove" ? un(o, e.clientX, e.clientY) : e.type === "mouseleave" && _t(null)), !(!P.current || P.current.readyState !== "open" || !x.current || !o)))
1300
+ if ($e.current !== !0 && (!("touches" in e) && o && (e.type === "mousemove" ? dn(o, e.clientX, e.clientY) : e.type === "mouseleave" && _t(null)), !(!P.current || P.current.readyState !== "open" || !x.current || !o)))
1301
1301
  if ("touches" in e) {
1302
1302
  const n = e.touches, l = e.changedTouches;
1303
1303
  let u;
@@ -1318,9 +1318,9 @@ const Li = Nn(
1318
1318
  return;
1319
1319
  }
1320
1320
  if (n.length === 2) {
1321
- const f = n[0], m = n[1], g = Je(o, f.clientX, f.clientY), h = Je(o, m.clientX, m.clientY);
1321
+ const f = n[0], p = n[1], g = Je(o, f.clientX, f.clientY), h = Je(o, p.clientX, p.clientY);
1322
1322
  if (!g || !h) return;
1323
- B.current ? B.current.source === "real-touch" && (B.current.finger0 = { x: g.videoX, y: g.videoY }, B.current.finger1 = { x: h.videoX, y: h.videoY }, ze(
1323
+ q.current ? q.current.source === "real-touch" && (q.current.finger0 = { x: g.videoX, y: g.videoY }, q.current.finger1 = { x: h.videoX, y: h.videoY }, ze(
1324
1324
  "move",
1325
1325
  g.videoWidth,
1326
1326
  g.videoHeight,
@@ -1328,15 +1328,15 @@ const Li = Nn(
1328
1328
  g.videoY,
1329
1329
  h.videoX,
1330
1330
  h.videoY,
1331
- B.current.pointerId0,
1332
- B.current.pointerId1
1333
- )) : (B.current = {
1331
+ q.current.pointerId0,
1332
+ q.current.pointerId1
1333
+ )) : (q.current = {
1334
1334
  finger0: { x: g.videoX, y: g.videoY },
1335
1335
  finger1: { x: h.videoX, y: h.videoY },
1336
1336
  videoSize: { width: g.videoWidth, height: g.videoHeight },
1337
1337
  source: "real-touch",
1338
1338
  pointerId0: f.identifier,
1339
- pointerId1: m.identifier
1339
+ pointerId1: p.identifier
1340
1340
  }, ze(
1341
1341
  "down",
1342
1342
  g.videoWidth,
@@ -1346,10 +1346,10 @@ const Li = Nn(
1346
1346
  h.videoX,
1347
1347
  h.videoY,
1348
1348
  f.identifier,
1349
- m.identifier
1349
+ p.identifier
1350
1350
  ));
1351
- } else if (n.length < 2 && B.current?.source === "real-touch") {
1352
- const f = B.current;
1351
+ } else if (n.length < 2 && q.current?.source === "real-touch") {
1352
+ const f = q.current;
1353
1353
  ze(
1354
1354
  "up",
1355
1355
  f.videoSize.width,
@@ -1360,7 +1360,7 @@ const Li = Nn(
1360
1360
  f.finger1.y,
1361
1361
  f.pointerId0,
1362
1362
  f.pointerId1
1363
- ), B.current = null;
1363
+ ), q.current = null;
1364
1364
  return;
1365
1365
  } else {
1366
1366
  if (n.length > 2)
@@ -1368,14 +1368,14 @@ const Li = Nn(
1368
1368
  {
1369
1369
  const f = l[0];
1370
1370
  if (f) {
1371
- const m = Je(o, f.clientX, f.clientY);
1372
- be(f.identifier, u, m);
1371
+ const p = Je(o, f.clientX, f.clientY);
1372
+ be(f.identifier, u, p);
1373
1373
  }
1374
1374
  }
1375
1375
  }
1376
1376
  } else {
1377
1377
  let l = null;
1378
- const u = B.current?.source === "alt-mouse";
1378
+ const u = q.current?.source === "alt-mouse";
1379
1379
  switch (e.type) {
1380
1380
  case "mousedown":
1381
1381
  e.button === 0 && (l = "down");
@@ -1409,15 +1409,15 @@ const Li = Nn(
1409
1409
  videoHeight: f.videoHeight
1410
1410
  },
1411
1411
  activePointerIds: Array.from(J.current.keys())
1412
- }), Ae.current || u ? dn(l, f) : be(-1, l, f);
1412
+ }), Ae.current || u ? hn(l, f) : be(-1, l, f);
1413
1413
  }
1414
1414
  }
1415
- }, dn = (e, o) => {
1416
- const { videoX: i, videoY: n, videoWidth: l, videoHeight: u } = o, f = l - i, m = u - n;
1415
+ }, hn = (e, o) => {
1416
+ const { videoX: i, videoY: n, videoWidth: l, videoHeight: u } = o, f = l - i, p = u - n;
1417
1417
  if (e === "down") {
1418
- B.current = {
1418
+ q.current = {
1419
1419
  finger0: { x: i, y: n },
1420
- finger1: { x: f, y: m },
1420
+ finger1: { x: f, y: p },
1421
1421
  videoSize: { width: l, height: u },
1422
1422
  source: "alt-mouse",
1423
1423
  pointerId0: At,
@@ -1429,49 +1429,49 @@ const Li = Nn(
1429
1429
  i,
1430
1430
  n,
1431
1431
  f,
1432
- m,
1432
+ p,
1433
1433
  At,
1434
1434
  St
1435
1435
  );
1436
1436
  return;
1437
1437
  }
1438
1438
  if (e === "move") {
1439
- B.current?.source === "alt-mouse" && (B.current.finger0 = { x: i, y: n }, B.current.finger1 = { x: f, y: m }, ze(
1439
+ q.current?.source === "alt-mouse" && (q.current.finger0 = { x: i, y: n }, q.current.finger1 = { x: f, y: p }, ze(
1440
1440
  "move",
1441
1441
  l,
1442
1442
  u,
1443
1443
  i,
1444
1444
  n,
1445
1445
  f,
1446
- m,
1446
+ p,
1447
1447
  At,
1448
1448
  St
1449
1449
  ));
1450
1450
  return;
1451
1451
  }
1452
1452
  if (e === "up" || e === "cancel") {
1453
- const g = B.current;
1453
+ const g = q.current;
1454
1454
  if (g?.source === "alt-mouse") {
1455
- const { finger0: h, finger1: M, videoSize: _ } = g;
1455
+ const { finger0: h, finger1: I, videoSize: O } = g;
1456
1456
  ze(
1457
1457
  "up",
1458
- _.width,
1459
- _.height,
1458
+ O.width,
1459
+ O.height,
1460
1460
  h.x,
1461
1461
  h.y,
1462
- M.x,
1463
- M.y,
1462
+ I.x,
1463
+ I.y,
1464
1464
  At,
1465
1465
  St
1466
- ), B.current = null;
1466
+ ), q.current = null;
1467
1467
  }
1468
1468
  return;
1469
1469
  }
1470
- }, fn = 150, Dr = () => {
1470
+ }, pn = 150, Dr = () => {
1471
1471
  const e = We.current;
1472
1472
  e && (window.clearTimeout(e.endTimer), be(Me, "up", e.pos), We.current = null);
1473
- }, hn = (e) => {
1474
- if (e.ctrlKey || Ae.current || B.current) return;
1473
+ }, mn = (e) => {
1474
+ if (e.ctrlKey || Ae.current || q.current) return;
1475
1475
  const o = J.current.size;
1476
1476
  if (o > 1 || o === 1 && !J.current.has(Me)) return;
1477
1477
  const i = dt();
@@ -1482,19 +1482,19 @@ const Li = Nn(
1482
1482
  const u = Je(i, e.clientX, e.clientY);
1483
1483
  if (!u) return;
1484
1484
  e.preventDefault();
1485
- const f = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualWidth : 1) * (i.videoWidth / i.actualWidth), m = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualHeight : 1) * (i.videoHeight / i.actualHeight), g = -e.deltaX * f, h = -e.deltaY * m, M = (y) => {
1486
- window.clearTimeout(y.endTimer), y.endTimer = window.setTimeout(Dr, fn);
1485
+ const f = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualWidth : 1) * (i.videoWidth / i.actualWidth), p = (e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? i.actualHeight : 1) * (i.videoHeight / i.actualHeight), g = -e.deltaX * f, h = -e.deltaY * p, I = (y) => {
1486
+ window.clearTimeout(y.endTimer), y.endTimer = window.setTimeout(Dr, pn);
1487
1487
  };
1488
1488
  if (g === 0 && h === 0) {
1489
- We.current && M(We.current);
1489
+ We.current && I(We.current);
1490
1490
  return;
1491
1491
  }
1492
- const _ = () => ({
1492
+ const O = () => ({
1493
1493
  videoWidth: u.videoWidth,
1494
1494
  videoHeight: u.videoHeight,
1495
1495
  videoX: Math.abs(g) > Math.abs(h) ? Math.min(Math.max(u.videoX, u.videoWidth * 0.2), u.videoWidth * 0.8) : u.videoX,
1496
1496
  videoY: Math.abs(h) >= Math.abs(g) ? Math.min(Math.max(u.videoY, u.videoHeight * 0.2), u.videoHeight * 0.8) : u.videoY
1497
- }), N = (y) => ({
1497
+ }), S = (y) => ({
1498
1498
  ...y,
1499
1499
  videoX: Math.min(Math.max(y.videoX + g, 0), y.videoWidth),
1500
1500
  videoY: Math.min(Math.max(y.videoY + h, 0), y.videoHeight)
@@ -1503,14 +1503,14 @@ const Li = Nn(
1503
1503
  if ($)
1504
1504
  window.clearTimeout($.endTimer);
1505
1505
  else {
1506
- const y = _();
1506
+ const y = O();
1507
1507
  be(Me, "down", y), $ = { pos: y, endTimer: 0 }, We.current = $;
1508
1508
  }
1509
- let te = $.pos, G = N(te);
1510
- G.videoX === te.videoX && G.videoY === te.videoY && (be(Me, "up", te), te = _(), be(Me, "down", te), G = N(te)), be(Me, "move", G), $.pos = G, M($);
1509
+ let te = $.pos, G = S(te);
1510
+ G.videoX === te.videoX && G.videoY === te.videoY && (be(Me, "up", te), te = O(), be(Me, "down", te), G = S(te)), be(Me, "move", G), $.pos = G, I($);
1511
1511
  };
1512
1512
  de(() => {
1513
- st.current = { handle: hn, end: Dr };
1513
+ st.current = { handle: mn, end: Dr };
1514
1514
  }), de(() => {
1515
1515
  const e = pe.current;
1516
1516
  if (!e) return;
@@ -1532,7 +1532,7 @@ const Li = Nn(
1532
1532
  }, []);
1533
1533
  const Mt = (e) => {
1534
1534
  e.preventDefault(), e.stopPropagation();
1535
- const o = document.activeElement === x.current || ce && document.activeElement === e.currentTarget;
1535
+ const o = document.activeElement === x.current || se && document.activeElement === e.currentTarget;
1536
1536
  if (F("Keyboard event:", {
1537
1537
  type: e.type,
1538
1538
  key: e.key,
@@ -1556,8 +1556,8 @@ const Li = Nn(
1556
1556
  "Pasting text via SET_CLIPBOARD:",
1557
1557
  n.substring(0, 20) + (n.length > 20 ? "..." : "")
1558
1558
  );
1559
- const l = Ln(n, !0);
1560
- ae(l);
1559
+ const l = xn(n, !0);
1560
+ ue(l);
1561
1561
  }
1562
1562
  }).catch((n) => {
1563
1563
  console.error("Failed to read clipboard contents: ", n);
@@ -1573,18 +1573,18 @@ const Li = Nn(
1573
1573
  s.META_NONE
1574
1574
  // Modifiers are handled by the shortcut check, not passed down
1575
1575
  );
1576
- ae(n);
1576
+ ue(n);
1577
1577
  const l = pt(
1578
1578
  s.ACTION_UP,
1579
1579
  s.MENU,
1580
1580
  0,
1581
1581
  s.META_NONE
1582
1582
  );
1583
- ae(l);
1583
+ ue(l);
1584
1584
  return;
1585
1585
  }
1586
1586
  }
1587
- const i = wi(e);
1587
+ const i = Si(e);
1588
1588
  if (i) {
1589
1589
  const { keycode: n, metaState: l } = i, u = e.type === "keydown" ? s.ACTION_DOWN : s.ACTION_UP;
1590
1590
  F(`Sending Keycode: key=${e.key}, code=${n}, action=${u}, meta=${l}`);
@@ -1595,18 +1595,18 @@ const Li = Nn(
1595
1595
  // repeat count, typically 0 for single presses
1596
1596
  l
1597
1597
  );
1598
- ae(f);
1598
+ ue(f);
1599
1599
  } else
1600
1600
  F(`Ignoring unhandled key event: type=${e.type}, key=${e.key}`);
1601
- }, pn = () => {
1601
+ }, En = () => {
1602
1602
  T.current && T.current.readyState === WebSocket.OPEN && T.current.send(
1603
1603
  JSON.stringify({
1604
1604
  type: "keepAlive",
1605
- sessionId: se
1605
+ sessionId: ae
1606
1606
  })
1607
1607
  );
1608
1608
  }, Tr = () => {
1609
- Ue.current && window.clearInterval(Ue.current), Ue.current = window.setInterval(pn, 1e4);
1609
+ Ue.current && window.clearInterval(Ue.current), Ue.current = window.setInterval(En, 1e4);
1610
1610
  }, wr = () => {
1611
1611
  Ue.current && (window.clearInterval(Ue.current), Ue.current = void 0);
1612
1612
  }, bt = () => {
@@ -1617,7 +1617,7 @@ const Li = Nn(
1617
1617
  gt.current && (window.clearInterval(gt.current), gt.current = void 0);
1618
1618
  }, ht = () => {
1619
1619
  Le.current !== void 0 && (window.clearTimeout(Le.current), Le.current = void 0);
1620
- }, mn = () => {
1620
+ }, gn = () => {
1621
1621
  ct.current || (ct.current = !0, ft(), Lt(!0), qe("connected"));
1622
1622
  }, j = (e) => {
1623
1623
  for (const o of e.getTracks())
@@ -1626,7 +1626,7 @@ const Li = Nn(
1626
1626
  } catch (i) {
1627
1627
  w("track.stop() failed:", i);
1628
1628
  }
1629
- }, En = () => {
1629
+ }, Cn = () => {
1630
1630
  const e = ee.current;
1631
1631
  e && (ee.current = null, j(e));
1632
1632
  }, Ar = (e) => {
@@ -1637,16 +1637,16 @@ const Li = Nn(
1637
1637
  }, Jt = () => Ht.current || $t.current, Sr = (e) => {
1638
1638
  const o = `ui-mic-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
1639
1639
  xe.current = o, e.send(JSON.stringify({ type: "microphoneStart", id: o }));
1640
- }, zt = () => Ar(() => gn()), gn = async () => {
1641
- const e = Ot.current, o = () => e === Ot.current && Jt(), i = (m) => {
1640
+ }, zt = () => Ar(() => yn()), yn = async () => {
1641
+ const e = Ot.current, o = () => e === Ot.current && Jt(), i = (p) => {
1642
1642
  L("onMicrophoneStateChange", it.current, {
1643
1643
  active: !1,
1644
- error: m
1644
+ error: p
1645
1645
  });
1646
1646
  };
1647
1647
  if (!o()) return;
1648
1648
  const n = T.current, l = ot.current;
1649
- if (!n || n.readyState !== WebSocket.OPEN || !l || ue.current) return;
1649
+ if (!n || n.readyState !== WebSocket.OPEN || !l || le.current) return;
1650
1650
  if (!navigator.mediaDevices || typeof navigator.mediaDevices.getUserMedia != "function") {
1651
1651
  console.warn(
1652
1652
  "[RemoteControl] navigator.mediaDevices.getUserMedia unavailable. getUserMedia requires a secure context (https or http://localhost)."
@@ -1656,8 +1656,8 @@ const Li = Nn(
1656
1656
  let u = null;
1657
1657
  try {
1658
1658
  u = await navigator.mediaDevices.getUserMedia({ audio: !0, video: !1 });
1659
- } catch (m) {
1660
- console.warn("[RemoteControl] microphone getUserMedia denied/failed:", m);
1659
+ } catch (p) {
1660
+ console.warn("[RemoteControl] microphone getUserMedia denied/failed:", p);
1661
1661
  }
1662
1662
  if (!o()) {
1663
1663
  u && j(u);
@@ -1674,28 +1674,28 @@ const Li = Nn(
1674
1674
  }
1675
1675
  try {
1676
1676
  await l.replaceTrack(f);
1677
- } catch (m) {
1678
- w("replaceTrack(audioTrack) failed:", m), j(u), i("Failed to attach the microphone track to the connection");
1677
+ } catch (p) {
1678
+ w("replaceTrack(audioTrack) failed:", p), j(u), i("Failed to attach the microphone track to the connection");
1679
1679
  return;
1680
1680
  }
1681
1681
  if (!o()) {
1682
1682
  try {
1683
1683
  await l.replaceTrack(null);
1684
- } catch (m) {
1685
- w("replaceTrack(null) on stale mic attach failed:", m);
1684
+ } catch (p) {
1685
+ w("replaceTrack(null) on stale mic attach failed:", p);
1686
1686
  }
1687
1687
  j(u);
1688
1688
  return;
1689
1689
  }
1690
- ue.current = u, f.onended = () => {
1691
- ue.current === u && Nt("microphone capture ended by the browser");
1690
+ le.current = u, f.onended = () => {
1691
+ le.current === u && Nt("microphone capture ended by the browser");
1692
1692
  }, Sr(n), L("onMicrophoneStateChange", it.current, {
1693
1693
  active: !0,
1694
1694
  label: f.label || void 0
1695
1695
  });
1696
1696
  }, Nt = (e) => (++Ot.current, xe.current = null, Ar(async () => {
1697
- const o = ot.current, i = ue.current;
1698
- if (ue.current = null, o && i)
1697
+ const o = ot.current, i = le.current;
1698
+ if (le.current = null, o && i)
1699
1699
  try {
1700
1700
  await o.replaceTrack(null);
1701
1701
  } catch (l) {
@@ -1714,7 +1714,7 @@ const Li = Nn(
1714
1714
  })), Mr = (e, o) => {
1715
1715
  let i;
1716
1716
  try {
1717
- i = ai(o), console.info(
1717
+ i = li(o), console.info(
1718
1718
  `[RemoteControl] camera capture: ${i.camera?.width}x${i.camera?.height} @ ${i.camera?.frameRate ?? "?"}fps` + (i.camera?.label ? ` — ${i.camera.label}` : "")
1719
1719
  );
1720
1720
  } catch (n) {
@@ -1727,11 +1727,11 @@ const Li = Nn(
1727
1727
  };
1728
1728
  }
1729
1729
  e.send(JSON.stringify(i)), L("onCameraDemandChange", me.current, !0, !0, i.camera);
1730
- }, Cn = (e) => {
1730
+ }, vn = (e) => {
1731
1731
  if (!e) return;
1732
1732
  const o = e.indexOf("/"), n = (o >= 0 ? e.slice(o + 1) : e).toUpperCase();
1733
1733
  return n === "HEVC" ? "H265" : n;
1734
- }, yn = async () => {
1734
+ }, On = async () => {
1735
1735
  const e = _e.current, o = yt.current;
1736
1736
  if (!e || !o) return;
1737
1737
  let i;
@@ -1741,20 +1741,20 @@ const Li = Nn(
1741
1741
  return;
1742
1742
  }
1743
1743
  let n, l, u;
1744
- if (i.forEach((N) => {
1745
- N.type === "outbound-rtp" && N.kind === "video" ? n = N : N.type === "remote-inbound-rtp" && N.kind === "video" && (u = N);
1744
+ if (i.forEach((S) => {
1745
+ S.type === "outbound-rtp" && S.kind === "video" ? n = S : S.type === "remote-inbound-rtp" && S.kind === "video" && (u = S);
1746
1746
  }), n?.codecId) {
1747
- const N = i.get(n.codecId);
1748
- N && (l = N.mimeType);
1747
+ const S = i.get(n.codecId);
1748
+ S && (l = S.mimeType);
1749
1749
  }
1750
1750
  if (!n) return;
1751
- const f = n.timestamp ?? Date.now(), m = vt.current;
1752
- let g, h, M;
1753
- if (m && f > m.timestamp) {
1754
- const N = (f - m.timestamp) / 1e3;
1755
- if (typeof n.framesEncoded == "number" && typeof m.framesEncoded == "number" && (g = Math.max(0, (n.framesEncoded - m.framesEncoded) / N)), typeof n.bytesSent == "number" && typeof m.bytesSent == "number" && (h = Math.max(0, (n.bytesSent - m.bytesSent) * 8 / N)), typeof n.packetsSent == "number" && typeof m.packetsSent == "number" && u && typeof u.packetsLost == "number" && typeof m.packetsLost == "number") {
1756
- const $ = n.packetsSent - m.packetsSent, te = u.packetsLost - m.packetsLost;
1757
- $ > 0 && (M = Math.max(0, Math.min(100, te / $ * 100)));
1751
+ const f = n.timestamp ?? Date.now(), p = vt.current;
1752
+ let g, h, I;
1753
+ if (p && f > p.timestamp) {
1754
+ const S = (f - p.timestamp) / 1e3;
1755
+ if (typeof n.framesEncoded == "number" && typeof p.framesEncoded == "number" && (g = Math.max(0, (n.framesEncoded - p.framesEncoded) / S)), typeof n.bytesSent == "number" && typeof p.bytesSent == "number" && (h = Math.max(0, (n.bytesSent - p.bytesSent) * 8 / S)), typeof n.packetsSent == "number" && typeof p.packetsSent == "number" && u && typeof u.packetsLost == "number" && typeof p.packetsLost == "number") {
1756
+ const $ = n.packetsSent - p.packetsSent, te = u.packetsLost - p.packetsLost;
1757
+ $ > 0 && (I = Math.max(0, Math.min(100, te / $ * 100)));
1758
1758
  }
1759
1759
  }
1760
1760
  vt.current = {
@@ -1764,8 +1764,8 @@ const Li = Nn(
1764
1764
  packetsSent: n.packetsSent,
1765
1765
  packetsLost: u?.packetsLost
1766
1766
  };
1767
- const _ = {
1768
- codec: Cn(l),
1767
+ const O = {
1768
+ codec: vn(l),
1769
1769
  encoderImplementation: n.encoderImplementation,
1770
1770
  hardwareAccelerated: typeof n.powerEfficientEncoder == "boolean" ? n.powerEfficientEncoder : void 0,
1771
1771
  framesPerSecond: g,
@@ -1775,40 +1775,40 @@ const Li = Nn(
1775
1775
  height: n.frameHeight,
1776
1776
  qualityLimitationReason: n.qualityLimitationReason,
1777
1777
  rttMs: typeof u?.roundTripTime == "number" ? u.roundTripTime * 1e3 : void 0,
1778
- packetsLostPct: M
1778
+ packetsLostPct: I
1779
1779
  };
1780
- L("onCameraStats", yt.current, _);
1780
+ L("onCameraStats", yt.current, O);
1781
1781
  }, br = () => {
1782
1782
  nt.current === null && (vt.current = null, nt.current = setInterval(() => {
1783
- yn();
1783
+ On();
1784
1784
  }, 1e3));
1785
1785
  }, It = () => {
1786
1786
  nt.current !== null && (clearInterval(nt.current), nt.current = null), vt.current = null, L("onCameraStats", yt.current, null);
1787
- }, vn = (e, o, i, n) => Wt.enqueue(async ({ isCurrent: l }) => {
1787
+ }, _n = (e, o, i, n) => Wt.enqueue(async ({ isCurrent: l }) => {
1788
1788
  const u = () => l() && n() && T.current === o && _e.current === i;
1789
1789
  if (!u()) return;
1790
1790
  if (!e.active) {
1791
- const _ = ee.current;
1791
+ const O = ee.current;
1792
1792
  try {
1793
1793
  await i.replaceTrack(null);
1794
- } catch (N) {
1795
- w("replaceTrack(null) on camera detach failed:", N);
1794
+ } catch (S) {
1795
+ w("replaceTrack(null) on camera detach failed:", S);
1796
1796
  }
1797
- if (ee.current === _ && (ee.current = null, De.current = void 0, _ && j(_)), It(), !u()) return;
1797
+ if (ee.current === O && (ee.current = null, De.current = void 0, O && j(O)), It(), !u()) return;
1798
1798
  L("onCameraDemandChange", me.current, !1);
1799
1799
  return;
1800
1800
  }
1801
1801
  L("onCameraDemandChange", me.current, !0);
1802
- const f = ee.current, m = f?.getVideoTracks()[0], g = De.current;
1803
- if (m?.readyState === "live" && g && !ci(g, e)) {
1804
- De.current = e, Mr(o, m), br();
1802
+ const f = ee.current, p = f?.getVideoTracks()[0], g = De.current;
1803
+ if (p?.readyState === "live" && g && !ai(g, e)) {
1804
+ De.current = e, Mr(o, p), br();
1805
1805
  return;
1806
1806
  }
1807
1807
  if (f) {
1808
1808
  try {
1809
1809
  await i.replaceTrack(null);
1810
- } catch (_) {
1811
- w("replaceTrack(null) before camera switch failed:", _);
1810
+ } catch (O) {
1811
+ w("replaceTrack(null) before camera switch failed:", O);
1812
1812
  }
1813
1813
  if (ee.current === f && (ee.current = null, De.current = void 0, j(f)), It(), !u()) return;
1814
1814
  }
@@ -1822,11 +1822,11 @@ const Li = Nn(
1822
1822
  let h = null;
1823
1823
  try {
1824
1824
  h = await navigator.mediaDevices.getUserMedia({
1825
- video: oi(e),
1825
+ video: si(e),
1826
1826
  audio: !1
1827
1827
  });
1828
- } catch (_) {
1829
- console.warn("[RemoteControl] getUserMedia denied/failed:", _);
1828
+ } catch (O) {
1829
+ console.warn("[RemoteControl] getUserMedia denied/failed:", O);
1830
1830
  }
1831
1831
  if (!u()) {
1832
1832
  h && j(h);
@@ -1836,68 +1836,68 @@ const Li = Nn(
1836
1836
  o.send(JSON.stringify({ type: "cameraResult", granted: !1 })), L("onCameraDemandChange", me.current, !0, !1);
1837
1837
  return;
1838
1838
  }
1839
- const M = h.getVideoTracks()[0] ?? null;
1840
- if (!M) {
1839
+ const I = h.getVideoTracks()[0] ?? null;
1840
+ if (!I) {
1841
1841
  if (j(h), !u()) return;
1842
1842
  o.send(JSON.stringify({ type: "cameraResult", granted: !1 })), L("onCameraDemandChange", me.current, !0, !1);
1843
1843
  return;
1844
1844
  }
1845
1845
  try {
1846
- M.contentHint = "motion";
1846
+ I.contentHint = "motion";
1847
1847
  } catch {
1848
1848
  }
1849
1849
  try {
1850
- await i.replaceTrack(M);
1851
- } catch (_) {
1852
- if (w("replaceTrack(videoTrack) failed:", _), j(h), !u()) return;
1850
+ await i.replaceTrack(I);
1851
+ } catch (O) {
1852
+ if (w("replaceTrack(videoTrack) failed:", O), j(h), !u()) return;
1853
1853
  o.send(JSON.stringify({ type: "cameraResult", granted: !1 })), L("onCameraDemandChange", me.current, !0, !1);
1854
1854
  return;
1855
1855
  }
1856
1856
  if (!u()) {
1857
1857
  try {
1858
1858
  await i.replaceTrack(null);
1859
- } catch (_) {
1860
- w("replaceTrack(null) for stale camera attach failed:", _);
1859
+ } catch (O) {
1860
+ w("replaceTrack(null) for stale camera attach failed:", O);
1861
1861
  }
1862
1862
  j(h);
1863
1863
  return;
1864
1864
  }
1865
1865
  try {
1866
- const _ = i.getParameters();
1867
- (!_.encodings || _.encodings.length === 0) && (_.encodings = [{}]), _.encodings[0].maxBitrate = 8e6, _.encodings[0].maxFramerate = 30, _.degradationPreference = "maintain-framerate", await i.setParameters(_);
1868
- } catch (_) {
1869
- w("setParameters on outbound camera failed:", _);
1866
+ const O = i.getParameters();
1867
+ (!O.encodings || O.encodings.length === 0) && (O.encodings = [{}]), O.encodings[0].maxBitrate = 8e6, O.encodings[0].maxFramerate = 30, O.degradationPreference = "maintain-framerate", await i.setParameters(O);
1868
+ } catch (O) {
1869
+ w("setParameters on outbound camera failed:", O);
1870
1870
  }
1871
1871
  if (!u()) {
1872
1872
  try {
1873
1873
  await i.replaceTrack(null);
1874
- } catch (_) {
1875
- w("replaceTrack(null) for stale camera finalize failed:", _);
1874
+ } catch (O) {
1875
+ w("replaceTrack(null) for stale camera finalize failed:", O);
1876
1876
  }
1877
1877
  j(h);
1878
1878
  return;
1879
1879
  }
1880
- ee.current = h, De.current = e, M.onended = () => {
1881
- ee.current === h && Wt.enqueueCurrent(async ({ isCurrent: _ }) => {
1882
- if (!(!_() || ee.current !== h || !n() || T.current !== o || _e.current !== i)) {
1880
+ ee.current = h, De.current = e, I.onended = () => {
1881
+ ee.current === h && Wt.enqueueCurrent(async ({ isCurrent: O }) => {
1882
+ if (!(!O() || ee.current !== h || !n() || T.current !== o || _e.current !== i)) {
1883
1883
  try {
1884
1884
  await i.replaceTrack(null);
1885
- } catch (N) {
1886
- w("replaceTrack(null) after camera ended failed:", N);
1885
+ } catch (S) {
1886
+ w("replaceTrack(null) after camera ended failed:", S);
1887
1887
  }
1888
- !_() || ee.current !== h || !n() || T.current !== o || _e.current !== i || (ee.current = null, De.current = void 0, j(h), It(), o.send(JSON.stringify({ type: "cameraResult", granted: !1 })), L("onCameraDemandChange", me.current, !0, !1));
1888
+ !O() || ee.current !== h || !n() || T.current !== o || _e.current !== i || (ee.current = null, De.current = void 0, j(h), It(), o.send(JSON.stringify({ type: "cameraResult", granted: !1 })), L("onCameraDemandChange", me.current, !0, !1));
1889
1889
  }
1890
- }).catch((_) => w("camera ended cleanup failed:", _));
1891
- }, u() && (Mr(o, M), br());
1890
+ }).catch((O) => w("camera ended cleanup failed:", O));
1891
+ }, u() && (Mr(o, I), br());
1892
1892
  }), je = () => {
1893
1893
  for (const e of ke.current.values())
1894
1894
  clearTimeout(e.timer), e.reject(new Error("Simulator disconnected"));
1895
- ke.current.clear(), ir(null), et.current && (et.current.srcObject = null), Rt(), ht(), ft(), z.current && (z.current.stop(), z.current = null), Wt.invalidate(), It(), En(), De.current = void 0, _e.current = null, ++Ot.current, $t.current = !1, xe.current = null, ue.current && (j(ue.current), ue.current = null, L("onMicrophoneStateChange", it.current, {
1895
+ ke.current.clear(), ir(null), et.current && (et.current.srcObject = null), Rt(), ht(), ft(), z.current && (z.current.stop(), z.current = null), Wt.invalidate(), It(), Cn(), De.current = void 0, _e.current = null, ++Ot.current, $t.current = !1, xe.current = null, le.current && (j(le.current), le.current = null, L("onMicrophoneStateChange", it.current, {
1896
1896
  active: !1
1897
1897
  })), ot.current = null, ie.current !== void 0 && (window.cancelAnimationFrame(ie.current), ie.current = void 0), T.current && (T.current.onopen = null, T.current.onmessage = null, T.current.onerror = null, T.current.onclose = null, T.current.close(), T.current = null), W.current && (W.current.onconnectionstatechange = null, W.current.oniceconnectionstatechange = null, W.current.ontrack = null, W.current.onicecandidate = null, W.current.close(), W.current = null), x.current && (x.current.srcObject = null), P.current && (P.current.onopen = null, P.current.onclose = null, P.current.onerror = null, P.current.close(), P.current = null);
1898
1898
  }, Rr = () => {
1899
1899
  document.hidden ? wr() : Tr();
1900
- }, On = async () => {
1900
+ }, Dn = async () => {
1901
1901
  if (typeof navigator < "u" && navigator.onLine === !1)
1902
1902
  return !1;
1903
1903
  let e;
@@ -1907,7 +1907,7 @@ const Li = Nn(
1907
1907
  } catch {
1908
1908
  return !1;
1909
1909
  }
1910
- const o = new AbortController(), i = window.setTimeout(() => o.abort(), _i);
1910
+ const o = new AbortController(), i = window.setTimeout(() => o.abort(), Ti);
1911
1911
  try {
1912
1912
  return (await fetch(e, { method: "GET", cache: "no-store", signal: o.signal })).status === 404;
1913
1913
  } catch {
@@ -1915,16 +1915,16 @@ const Li = Nn(
1915
1915
  } finally {
1916
1916
  window.clearTimeout(i);
1917
1917
  }
1918
- }, _n = () => {
1918
+ }, Tn = () => {
1919
1919
  Pe.current || (Pe.current = !0, sr(!0), Et(!1), Oe.current += 1, bt(), Rt(), ht(), je(), Y("Instance terminated"), qe("terminated"), L("onTerminated", gr.current));
1920
- }, Dn = () => {
1921
- Pe.current || Ft.current || (Ft.current = !0, On().then((e) => {
1922
- Ft.current = !1, e && _n();
1920
+ }, wn = () => {
1921
+ Pe.current || Ft.current || (Ft.current = !0, Dn().then((e) => {
1922
+ Ft.current = !1, e && Tn();
1923
1923
  }));
1924
1924
  }, Qe = (e, o) => {
1925
1925
  if (Pe.current || o !== Oe.current)
1926
1926
  return;
1927
- if (Dn(), Fe.current) {
1927
+ if (wn(), Fe.current) {
1928
1928
  if (!xt.current) {
1929
1929
  Y(`Connection failed after it was established: ${e}`), Et(!0), qe("failed"), je();
1930
1930
  return;
@@ -1939,7 +1939,7 @@ const Li = Nn(
1939
1939
  }
1940
1940
  Y(`Retrying connection (${i + 1}/${Zt})`), qe("reconnecting"), je(), tt.current = window.setTimeout(() => {
1941
1941
  tt.current = void 0, o === Oe.current && Nr(i);
1942
- }, yi);
1942
+ }, Oi);
1943
1943
  }, Nr = async (e = 0) => {
1944
1944
  if (Pe.current) return;
1945
1945
  const o = Oe.current + 1;
@@ -1947,18 +1947,18 @@ const Li = Nn(
1947
1947
  const i = () => o === Oe.current;
1948
1948
  rt.current = window.setTimeout(() => {
1949
1949
  rt.current = void 0, !(!i() || Fe.current) && Qe("Connection did not succeed within 15 seconds", o);
1950
- }, vi);
1950
+ }, _i);
1951
1951
  try {
1952
1952
  const n = new WebSocket(kr(t, c));
1953
1953
  if (T.current = n, await new Promise((y, d) => {
1954
1954
  let K = !1;
1955
- const Q = window.setTimeout(() => d(new Error("WebSocket connection timeout")), 3e4), A = (I) => {
1956
- K || (K = !0, window.clearTimeout(Q), I());
1955
+ const Q = window.setTimeout(() => d(new Error("WebSocket connection timeout")), 3e4), A = (N) => {
1956
+ K || (K = !0, window.clearTimeout(Q), N());
1957
1957
  };
1958
1958
  n.onopen = () => {
1959
1959
  !i() || T.current !== n || A(y);
1960
- }, n.onerror = (I) => {
1961
- !i() || T.current !== n || (Y("WebSocket error: " + I), A(() => d(new Error("WebSocket connection failed"))));
1960
+ }, n.onerror = (N) => {
1961
+ !i() || T.current !== n || (Y("WebSocket error: " + N), A(() => d(new Error("WebSocket connection failed"))));
1962
1962
  }, n.onclose = () => {
1963
1963
  !i() || T.current !== n || (Y("WebSocket closed"), A(() => d(new Error("WebSocket closed before connection was established"))));
1964
1964
  };
@@ -1970,73 +1970,73 @@ const Li = Nn(
1970
1970
  !i() || T.current !== n || Y("WebSocket closed");
1971
1971
  };
1972
1972
  const l = new Promise((y, d) => {
1973
- const K = (I) => {
1974
- window.clearTimeout(Q), n.removeEventListener("message", A), I();
1973
+ const K = (N) => {
1974
+ window.clearTimeout(Q), n.removeEventListener("message", A), N();
1975
1975
  }, Q = window.setTimeout(
1976
1976
  () => K(() => d(new Error("RTCConfiguration timeout"))),
1977
1977
  3e4
1978
- ), A = (I) => {
1978
+ ), A = (N) => {
1979
1979
  if (!(!i() || T.current !== n))
1980
1980
  try {
1981
- const q = JSON.parse(I.data);
1982
- if (q.type === "signalingError" && q.requestType === "requestRtcConfiguration" && q.sessionId === se) {
1983
- const re = typeof q.error == "string" ? q.error : "Unable to load streaming configuration";
1981
+ const V = JSON.parse(N.data);
1982
+ if (V.type === "signalingError" && V.requestType === "requestRtcConfiguration" && V.sessionId === ae) {
1983
+ const re = typeof V.error == "string" ? V.error : "Unable to load streaming configuration";
1984
1984
  K(() => d(new Error(re)));
1985
- } else q.type === "rtcConfiguration" && K(
1985
+ } else V.type === "rtcConfiguration" && K(
1986
1986
  () => y({
1987
- rtcConfiguration: q.rtcConfiguration,
1988
- cameraSupported: q.cameraSupported === !0,
1989
- foldSupported: q.foldSupported === !0
1987
+ rtcConfiguration: V.rtcConfiguration,
1988
+ cameraSupported: V.cameraSupported === !0,
1989
+ foldSupported: V.foldSupported === !0
1990
1990
  })
1991
1991
  );
1992
- } catch (q) {
1993
- console.error("Error handling RTC configuration:", q), K(() => d(q));
1992
+ } catch (V) {
1993
+ console.error("Error handling RTC configuration:", V), K(() => d(V));
1994
1994
  }
1995
1995
  };
1996
1996
  n.addEventListener("message", A), n.send(
1997
1997
  JSON.stringify({
1998
1998
  type: "requestRtcConfiguration",
1999
- sessionId: se
1999
+ sessionId: ae
2000
2000
  })
2001
2001
  );
2002
2002
  }), {
2003
2003
  rtcConfiguration: u,
2004
2004
  cameraSupported: f,
2005
- foldSupported: m
2005
+ foldSupported: p
2006
2006
  } = await l;
2007
2007
  if (!i() || T.current !== n)
2008
2008
  return;
2009
- const g = C === "iphone-duo" || m;
2009
+ const g = C === "iphone-duo" || p;
2010
2010
  rr(g);
2011
2011
  const h = new RTCPeerConnection(u);
2012
2012
  W.current = h, h.addTransceiver("audio", { direction: "recvonly" });
2013
- const M = h.addTransceiver("video", { direction: "recvonly" }), _ = g ? h.addTransceiver("video", { direction: "recvonly" }) : null, N = le === "ios" || f, $ = N ? h.addTransceiver("video", {
2013
+ const I = h.addTransceiver("video", { direction: "recvonly" }), O = g ? h.addTransceiver("video", { direction: "recvonly" }) : null, S = oe === "ios" || f, $ = S ? h.addTransceiver("video", {
2014
2014
  direction: "sendonly"
2015
2015
  }) : null;
2016
2016
  _e.current = $?.sender ?? null;
2017
- const te = N ? h.addTransceiver("audio", {
2017
+ const te = S ? h.addTransceiver("audio", {
2018
2018
  direction: "sendonly"
2019
2019
  }) : null;
2020
2020
  if (ot.current = te?.sender ?? null, RTCRtpReceiver.getCapabilities) {
2021
2021
  const y = RTCRtpReceiver.getCapabilities("video");
2022
2022
  if (y && y.codecs) {
2023
2023
  const K = y.codecs.sort((Q, A) => {
2024
- const I = (q) => {
2025
- const re = q.mimeType.toLowerCase();
2024
+ const N = (V) => {
2025
+ const re = V.mimeType.toLowerCase();
2026
2026
  return re.includes("vp9") ? 1 : re.includes("h265") || re.includes("hevc") ? 2 : re.includes("h264") || re.includes("avc") ? 3 : 4;
2027
2027
  };
2028
- return I(Q) - I(A);
2028
+ return N(Q) - N(A);
2029
2029
  });
2030
- M.setCodecPreferences(K), _?.setCodecPreferences(K), F("Set codec preferences:", K.map((Q) => Q.mimeType).join(", "));
2030
+ I.setCodecPreferences(K), O?.setCodecPreferences(K), F("Set codec preferences:", K.map((Q) => Q.mimeType).join(", "));
2031
2031
  }
2032
2032
  }
2033
2033
  if ($ && RTCRtpSender.getCapabilities) {
2034
2034
  const y = RTCRtpSender.getCapabilities("video");
2035
2035
  if (y && y.codecs) {
2036
2036
  const d = /* @__PURE__ */ new Set(["42e01f", "42e028", "640c1f"]), K = (A) => {
2037
- const I = A.mimeType.toLowerCase(), re = (A.sdpFmtpLine || "").toLowerCase().match(/profile-level-id=([0-9a-f]{6})/), Mn = re ? re[1] : "";
2038
- return I === "video/h265" || I === "video/hevc" ? 1 : I === "video/h264" && d.has(Mn) ? 2 : I === "video/h264" ? 3 : I === "video/vp9" ? 4 : I === "video/vp8" ? 5 : I === "video/rtx" || I === "video/red" || I === "video/ulpfec" ? 0 : 6;
2039
- }, Q = [...y.codecs].sort((A, I) => K(A) - K(I));
2037
+ const N = A.mimeType.toLowerCase(), re = (A.sdpFmtpLine || "").toLowerCase().match(/profile-level-id=([0-9a-f]{6})/), Rn = re ? re[1] : "";
2038
+ return N === "video/h265" || N === "video/hevc" ? 1 : N === "video/h264" && d.has(Rn) ? 2 : N === "video/h264" ? 3 : N === "video/vp9" ? 4 : N === "video/vp8" ? 5 : N === "video/rtx" || N === "video/red" || N === "video/ulpfec" ? 0 : 6;
2039
+ }, Q = [...y.codecs].sort((A, N) => K(A) - K(N));
2040
2040
  try {
2041
2041
  $.setCodecPreferences(Q), F(
2042
2042
  "Outbound camera codec preferences:",
@@ -2055,10 +2055,10 @@ const Li = Nn(
2055
2055
  if (P.current = G, G.onopen = () => {
2056
2056
  if (!i() || P.current !== G || T.current !== n)
2057
2057
  return;
2058
- Fe.current = !0, Rt(), Y("Control channel opened"), g && n.send(JSON.stringify({ type: "getFoldState", id: "duo-capabilities" })), z.current || (z.current = new ri({
2059
- platform: le,
2058
+ Fe.current = !0, Rt(), Y("Control channel opened"), g && n.send(JSON.stringify({ type: "getFoldState", id: "duo-capabilities" })), z.current || (z.current = new ii({
2059
+ platform: oe,
2060
2060
  baseIntervalMs: Ie,
2061
- maxBackoffMs: X,
2061
+ maxBackoffMs: B,
2062
2062
  androidElementTreeOptions: fe,
2063
2063
  send: (d) => {
2064
2064
  if (!T.current || T.current.readyState !== WebSocket.OPEN) return !1;
@@ -2078,7 +2078,7 @@ const Li = Nn(
2078
2078
  }
2079
2079
  }), ($e.current === !0 || $e.current === "hover-only") && z.current.start());
2080
2080
  const y = () => {
2081
- !i() || ct.current || P.current !== G || T.current !== n || n.readyState !== WebSocket.OPEN || n.send(JSON.stringify({ type: "requestFrame", sessionId: se }));
2081
+ !i() || ct.current || P.current !== G || T.current !== n || n.readyState !== WebSocket.OPEN || n.send(JSON.stringify({ type: "requestFrame", sessionId: ae }));
2082
2082
  };
2083
2083
  if (y(), ft(), gt.current = window.setInterval(() => {
2084
2084
  if (!i() || ct.current || P.current !== G || T.current !== n || n.readyState !== WebSocket.OPEN) {
@@ -2093,7 +2093,7 @@ const Li = Nn(
2093
2093
  JSON.stringify({
2094
2094
  type: "openUrl",
2095
2095
  url: d,
2096
- sessionId: se
2096
+ sessionId: ae
2097
2097
  })
2098
2098
  );
2099
2099
  } catch (d) {
@@ -2101,7 +2101,7 @@ const Li = Nn(
2101
2101
  JSON.stringify({
2102
2102
  type: "openUrl",
2103
2103
  url: E,
2104
- sessionId: se
2104
+ sessionId: ae
2105
2105
  })
2106
2106
  );
2107
2107
  }
@@ -2118,7 +2118,7 @@ const Li = Nn(
2118
2118
  return;
2119
2119
  const y = h.iceConnectionState;
2120
2120
  if (Y("ICE state: " + y), y === "connected" || y === "completed") {
2121
- ht(), Jt() && !ue.current && zt();
2121
+ ht(), Jt() && !le.current && zt();
2122
2122
  return;
2123
2123
  }
2124
2124
  if (y === "failed") {
@@ -2127,7 +2127,7 @@ const Li = Nn(
2127
2127
  }
2128
2128
  y === "disconnected" && xt.current && Le.current === void 0 && (Le.current = window.setTimeout(() => {
2129
2129
  Le.current = void 0, !(!i() || W.current !== h) && h.iceConnectionState === "disconnected" && Qe("ICE stayed disconnected past grace period", o);
2130
- }, Oi));
2130
+ }, Di));
2131
2131
  }, h.ontrack = (y) => {
2132
2132
  if (!(!i() || W.current !== h) && (Y("Received remote track: " + y.track.kind), y.track.kind === "video" && x.current)) {
2133
2133
  F(`[${(/* @__PURE__ */ new Date()).toISOString()}] Video track received:`, y.track);
@@ -2143,7 +2143,7 @@ const Li = Nn(
2143
2143
  candidate: y.candidate.candidate,
2144
2144
  sdpMid: y.candidate.sdpMid,
2145
2145
  sdpMLineIndex: y.candidate.sdpMLineIndex,
2146
- sessionId: se
2146
+ sessionId: ae
2147
2147
  };
2148
2148
  n.send(JSON.stringify(d)), Y("Sent ICE candidate");
2149
2149
  } else
@@ -2170,7 +2170,7 @@ const Li = Nn(
2170
2170
  break;
2171
2171
  }
2172
2172
  case "signalingError": {
2173
- if (d.requestType !== "offer" || d.sessionId !== se)
2173
+ if (d.requestType !== "offer" || d.sessionId !== ae)
2174
2174
  break;
2175
2175
  const A = typeof d.error == "string" ? d.error : "Unable to establish the streaming connection";
2176
2176
  Y("Error: " + A), Qe(A, o);
@@ -2211,7 +2211,7 @@ const Li = Nn(
2211
2211
  w("Received invalid screenshot success message:", d);
2212
2212
  break;
2213
2213
  }
2214
- const A = Ai(d);
2214
+ const A = Mi(d);
2215
2215
  if (A) {
2216
2216
  const re = Ee.current.get(d.id);
2217
2217
  if (!re) {
@@ -2221,17 +2221,17 @@ const Li = Nn(
2221
2221
  w(`Received screenshot error for id ${d.id}: ${A}`), re(new Error(A)), ye.current.delete(d.id), Ee.current.delete(d.id);
2222
2222
  break;
2223
2223
  }
2224
- const I = Si(d);
2225
- if (!I) {
2224
+ const N = bi(d);
2225
+ if (!N) {
2226
2226
  w("Received screenshot message without image data:", d);
2227
2227
  break;
2228
2228
  }
2229
- const q = ye.current.get(d.id);
2230
- if (!q) {
2229
+ const V = ye.current.get(d.id);
2230
+ if (!V) {
2231
2231
  w(`Received screenshot data for unknown or handled id: ${d.id}`);
2232
2232
  break;
2233
2233
  }
2234
- F(`Received screenshot data for id ${d.id}`), q(I), ye.current.delete(d.id), Ee.current.delete(d.id);
2234
+ F(`Received screenshot data for id ${d.id}`), V(N), ye.current.delete(d.id), Ee.current.delete(d.id);
2235
2235
  break;
2236
2236
  }
2237
2237
  case "screenshotError":
@@ -2250,12 +2250,12 @@ const Li = Nn(
2250
2250
  const A = _e.current;
2251
2251
  if (!A)
2252
2252
  break;
2253
- const I = ii(d);
2254
- if (!I) {
2253
+ const N = ci(d);
2254
+ if (!N) {
2255
2255
  w("Received invalid cameraRequest:", d);
2256
2256
  break;
2257
2257
  }
2258
- console.info("[RemoteControl] cameraRequest received:", I.active, I.facingMode), await vn(I, n, A, i);
2258
+ console.info("[RemoteControl] cameraRequest received:", N.active, N.facingMode), await _n(N, n, A, i);
2259
2259
  break;
2260
2260
  }
2261
2261
  case "microphoneRequest": {
@@ -2266,7 +2266,7 @@ const Li = Nn(
2266
2266
  Ht.current || await Nt();
2267
2267
  break;
2268
2268
  }
2269
- if (ue.current) {
2269
+ if (le.current) {
2270
2270
  Sr(n);
2271
2271
  break;
2272
2272
  }
@@ -2316,7 +2316,7 @@ const Li = Nn(
2316
2316
  type: "offer",
2317
2317
  ...g ? { displayStreams: !0 } : {},
2318
2318
  sdp: y.sdp,
2319
- sessionId: se
2319
+ sessionId: ae
2320
2320
  })
2321
2321
  ), Y("Sent offer");
2322
2322
  }
@@ -2328,15 +2328,15 @@ const Li = Nn(
2328
2328
  }
2329
2329
  }, jt = () => {
2330
2330
  Pe.current = !1, sr(!1), Nr(0);
2331
- }, Tn = () => {
2331
+ }, An = () => {
2332
2332
  Oe.current += 1, Ct.current = 0, Fe.current = !1, bt(), ht(), je(), Y("Stopped");
2333
- }, wn = (e) => {
2333
+ }, Sn = (e) => {
2334
2334
  e.stopPropagation(), jt();
2335
2335
  };
2336
2336
  de(() => {
2337
2337
  Jt() ? zt() : Nt();
2338
2338
  }, [he]), de(() => (Lt(!1), jt(), document.hidden || Tr(), document.addEventListener("visibilitychange", Rr), () => {
2339
- wr(), Tn(), document.removeEventListener("visibilitychange", Rr);
2339
+ wr(), An(), document.removeEventListener("visibilitychange", Rr);
2340
2340
  }), [t, c, a, C]);
2341
2341
  const Ir = () => {
2342
2342
  const e = dt();
@@ -2358,19 +2358,16 @@ const Li = Nn(
2358
2358
  const e = x.current, o = Ke.current, i = pe.current;
2359
2359
  if (!e) return;
2360
2360
  const n = () => {
2361
- if (!wt || !o) {
2361
+ const { videoWidth: f, videoHeight: p } = e, g = f > p;
2362
+ if (f > 0 && p > 0 && (Jr(g), jr(oe === "android" && wi(f, p)), Zr(Math.min(f, p) / Math.max(f, p) < 0.6)), !wt || !o) {
2362
2363
  ur({}), Ir();
2363
2364
  return;
2364
2365
  }
2365
- const f = o.clientWidth, m = o.clientHeight;
2366
- if (f === 0 || m === 0) return;
2367
- const g = e.videoWidth > e.videoHeight;
2368
- Jr(g), jr(
2369
- le === "android" && Di(e.videoWidth, e.videoHeight)
2370
- );
2371
- const h = g ? Ve.videoPosition.landscape : Ve.videoPosition.portrait;
2372
- let M = {};
2373
- h.heightMultiplier ? (M.height = `${m * h.heightMultiplier}px`, M.width = "auto") : h.widthMultiplier && (M.width = `${f * h.widthMultiplier}px`, M.height = "auto"), M.borderRadius = `${g ? m * Ve.videoBorderRadiusMultiplier : f * Ve.videoBorderRadiusMultiplier}px`, ur(M), Ir();
2366
+ const h = o.clientWidth, I = o.clientHeight;
2367
+ if (h === 0 || I === 0) return;
2368
+ const O = g ? Ve.videoPosition.landscape : Ve.videoPosition.portrait;
2369
+ let S = {};
2370
+ O.heightMultiplier ? (S.height = `${I * O.heightMultiplier}px`, S.width = "auto") : O.widthMultiplier && (S.width = `${h * O.widthMultiplier}px`, S.height = "auto"), S.borderRadius = `${g ? I * Ve.videoBorderRadiusMultiplier : h * Ve.videoBorderRadiusMultiplier}px`, ur(S), Ir();
2374
2371
  }, l = new ResizeObserver(() => {
2375
2372
  n();
2376
2373
  });
@@ -2379,7 +2376,7 @@ const Li = Nn(
2379
2376
  return e.addEventListener("resize", u), n(), () => {
2380
2377
  l.disconnect(), e.removeEventListener("loadedmetadata", n), e.removeEventListener("resize", n), e.removeEventListener("resize", u), o && o.removeEventListener("load", n);
2381
2378
  };
2382
- }, [Ve, wt]), de(() => {
2379
+ }, [Ve, wt, oe]), de(() => {
2383
2380
  const e = z.current;
2384
2381
  ut ? e?.start() : (e?.stop(), fr(null), at(null), Dt(null), pr(null), He(null), Tt.current = null, ie.current !== void 0 && (window.cancelAnimationFrame(ie.current), ie.current = void 0), L("onAxSnapshotChange", qt.current, null));
2385
2382
  }, [ut]), de(() => () => {
@@ -2391,10 +2388,10 @@ const Li = Nn(
2391
2388
  };
2392
2389
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
2393
2390
  }, [ut, Bt, Xt]);
2394
- const An = () => {
2391
+ const Mn = () => {
2395
2392
  x.current && x.current.focus();
2396
2393
  };
2397
- In(Ye, () => ({
2394
+ Kn(Ye, () => ({
2398
2395
  openUrl: (e) => {
2399
2396
  if (!T.current || T.current.readyState !== WebSocket.OPEN) {
2400
2397
  w("WebSocket not open, cannot send open_url command via ref.");
@@ -2406,7 +2403,7 @@ const Li = Nn(
2406
2403
  JSON.stringify({
2407
2404
  type: "openUrl",
2408
2405
  url: o,
2409
- sessionId: se
2406
+ sessionId: ae
2410
2407
  })
2411
2408
  );
2412
2409
  } catch (o) {
@@ -2414,7 +2411,7 @@ const Li = Nn(
2414
2411
  JSON.stringify({
2415
2412
  type: "openUrl",
2416
2413
  url: e,
2417
- sessionId: se
2414
+ sessionId: ae
2418
2415
  })
2419
2416
  );
2420
2417
  }
@@ -2443,7 +2440,7 @@ const Li = Nn(
2443
2440
  // repeat count, typically 0 for single presses
2444
2441
  i
2445
2442
  );
2446
- l && ae(l);
2443
+ l && ue(l);
2447
2444
  },
2448
2445
  screenshot: (e) => new Promise((o, i) => {
2449
2446
  if (!T.current || T.current.readyState !== WebSocket.OPEN)
@@ -2501,8 +2498,8 @@ const Li = Nn(
2501
2498
  },
2502
2499
  getAxStatus: () => z.current?.getStatus() ?? "idle"
2503
2500
  }));
2504
- const Sn = Zr && Se !== null;
2505
- return /* @__PURE__ */ oe(
2501
+ const bn = tn && Se !== null;
2502
+ return /* @__PURE__ */ ce(
2506
2503
  "div",
2507
2504
  {
2508
2505
  ref: pe,
@@ -2517,7 +2514,7 @@ const Li = Nn(
2517
2514
  onTouchEnd: ve,
2518
2515
  onTouchCancel: ve,
2519
2516
  children: [
2520
- Sn && Se && /* @__PURE__ */ oe(Lr, { children: [
2517
+ bn && Se && /* @__PURE__ */ ce(Lr, { children: [
2521
2518
  /* @__PURE__ */ k(
2522
2519
  "div",
2523
2520
  {
@@ -2545,7 +2542,7 @@ const Li = Nn(
2545
2542
  ref: Ke,
2546
2543
  src: yr,
2547
2544
  alt: "",
2548
- className: le === "ios" ? Ne("rc-phone-frame", "rc-phone-frame-ios") : "rc-phone-frame",
2545
+ className: oe === "ios" ? Ne("rc-phone-frame", "rc-phone-frame-ios") : "rc-phone-frame",
2549
2546
  draggable: !1
2550
2547
  }
2551
2548
  ),
@@ -2559,8 +2556,8 @@ const Li = Nn(
2559
2556
  !qr && "rc-video-loading"
2560
2557
  ),
2561
2558
  style: {
2562
- ...Qr,
2563
- ...ce ? { opacity: 0, width: 1, height: 1, pointerEvents: "none" } : {},
2559
+ ...en,
2560
+ ...se ? { opacity: 0, width: 1, height: 1, pointerEvents: "none" } : {},
2564
2561
  ...vr ? {
2565
2562
  backgroundImage: `url("${vr}")`,
2566
2563
  backgroundRepeat: "no-repeat",
@@ -2571,11 +2568,11 @@ const Li = Nn(
2571
2568
  autoPlay: !0,
2572
2569
  playsInline: !0,
2573
2570
  muted: !0,
2574
- tabIndex: ce ? -1 : 0,
2571
+ tabIndex: se ? -1 : 0,
2575
2572
  onKeyDown: Mt,
2576
2573
  onKeyUp: Mt,
2577
- onClick: An,
2578
- onLoadedData: mn,
2574
+ onClick: Mn,
2575
+ onLoadedData: gn,
2579
2576
  onFocus: () => {
2580
2577
  x.current && (x.current.style.outline = "none");
2581
2578
  },
@@ -2584,7 +2581,7 @@ const Li = Nn(
2584
2581
  }
2585
2582
  }
2586
2583
  ),
2587
- ce && /* @__PURE__ */ k(
2584
+ se && /* @__PURE__ */ k(
2588
2585
  "video",
2589
2586
  {
2590
2587
  ref: et,
@@ -2594,10 +2591,10 @@ const Li = Nn(
2594
2591
  style: { position: "absolute", width: 1, height: 1, opacity: 0, pointerEvents: "none" }
2595
2592
  }
2596
2593
  ),
2597
- ce && nr && /* @__PURE__ */ k(Yn, { fallback: /* @__PURE__ */ k("div", { children: "Loading iPhone Duo…" }), children: /* @__PURE__ */ k(
2598
- gi,
2594
+ se && nr && /* @__PURE__ */ k(kn, { fallback: /* @__PURE__ */ k("div", { children: "Loading iPhone Duo…" }), children: /* @__PURE__ */ k(
2595
+ yi,
2599
2596
  {
2600
- showFrame: p,
2597
+ showFrame: m,
2601
2598
  modelUrl: v,
2602
2599
  outer: x.current,
2603
2600
  inner: et.current,
@@ -2609,23 +2606,23 @@ const Li = Nn(
2609
2606
  }),
2610
2607
  touch: (e, o, i, n) => {
2611
2608
  const l = P.current;
2612
- l?.readyState === "open" && l.send(Pn(e, o, i, n));
2609
+ l?.readyState === "open" && l.send(Ln(e, o, i, n));
2613
2610
  },
2614
2611
  onKeyDown: Mt,
2615
2612
  onKeyUp: Mt
2616
2613
  }
2617
2614
  ) }),
2618
- ce && or && /* @__PURE__ */ k("div", { role: "alert", className: "rc-duo-error", children: or }),
2619
- !ce && ut && /* @__PURE__ */ k(
2620
- Ei,
2615
+ se && or && /* @__PURE__ */ k("div", { role: "alert", className: "rc-duo-error", children: or }),
2616
+ !se && ut && /* @__PURE__ */ k(
2617
+ Ci,
2621
2618
  {
2622
2619
  snapshot: dr,
2623
- geometry: tn,
2620
+ geometry: nn,
2624
2621
  highlightedId: Xt,
2625
2622
  selectedId: Bt,
2626
- mode: on,
2627
- cursorPosition: rn,
2628
- frozenCursorPosition: nn,
2623
+ mode: sn,
2624
+ cursorPosition: on,
2625
+ frozenCursorPosition: cn,
2629
2626
  onSelectChange: (e, o) => {
2630
2627
  Dt(e?.id ?? null), e && o ? He(o) : e || He(null);
2631
2628
  const i = Xe.current;
@@ -2640,35 +2637,35 @@ const Li = Nn(
2640
2637
  return;
2641
2638
  }
2642
2639
  const i = Xe.current;
2643
- i && cn(e, i);
2640
+ i && an(e, i);
2644
2641
  }
2645
2642
  }
2646
2643
  ),
2647
- Gr ? /* @__PURE__ */ oe("div", { className: "rc-terminated", role: "status", children: [
2644
+ Gr ? /* @__PURE__ */ ce("div", { className: "rc-terminated", role: "status", children: [
2648
2645
  /* @__PURE__ */ k("div", { className: "rc-terminated-title", children: "Instance terminated" }),
2649
2646
  /* @__PURE__ */ k("div", { className: "rc-terminated-message", children: "This instance no longer exists and can't be reconnected." })
2650
- ] }) : Vr && /* @__PURE__ */ k("button", { type: "button", className: "rc-retry-button", onClick: wn, children: "Retry" })
2647
+ ] }) : Vr && /* @__PURE__ */ k("button", { type: "button", className: "rc-retry-button", onClick: Sn, children: "Retry" })
2651
2648
  ]
2652
2649
  }
2653
2650
  );
2654
2651
  }
2655
- ), Ai = (r) => typeof r.message == "string" ? r.message : typeof r.error == "string" ? r.error : null, Si = (r) => typeof r.dataUri == "string" ? { dataUri: r.dataUri } : typeof r.base64 == "string" ? r.base64.startsWith("data:") ? { dataUri: r.base64 } : { dataUri: `data:${r.base64.startsWith("/9j/") ? "image/jpeg" : "image/png"};base64,${r.base64}` } : null;
2652
+ ), Mi = (r) => typeof r.message == "string" ? r.message : typeof r.error == "string" ? r.error : null, bi = (r) => typeof r.dataUri == "string" ? { dataUri: r.dataUri } : typeof r.base64 == "string" ? r.base64.startsWith("data:") ? { dataUri: r.base64 } : { dataUri: `data:${r.base64.startsWith("/9j/") ? "image/jpeg" : "image/png"};base64,${r.base64}` } : null;
2656
2653
  export {
2657
2654
  Qt as A,
2658
- Ni as D,
2659
- ki as H,
2660
- Li as R,
2661
- Gn as a,
2662
- Jn as b,
2655
+ Yi as D,
2656
+ Ui as H,
2657
+ xi as R,
2658
+ zn as a,
2659
+ jn as b,
2663
2660
  Br as c,
2664
2661
  Hr as d,
2665
2662
  $r as e,
2666
- Vn as f,
2667
- $n as g,
2668
- Ui as h,
2669
- Pi as i,
2670
- Ii as j,
2671
- Ki as k,
2672
- qn as n,
2673
- Yi as p
2663
+ Jn as f,
2664
+ Bn as g,
2665
+ Fi as h,
2666
+ Li as i,
2667
+ Ki as j,
2668
+ Pi as k,
2669
+ Gn as n,
2670
+ ki as p
2674
2671
  };