mesurer-solid 0.2.1-beta.5 → 0.2.1-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5508,7 +5508,7 @@ function ll(e) {
5508
5508
  get children() {
5509
5509
  var n = X("div", {
5510
5510
  "data-mesurer-measurement-chrome": "true",
5511
- class: "msr:absolute"
5511
+ class: "msr:pointer-events-none msr:absolute"
5512
5512
  });
5513
5513
  return aa(() => (e) => {
5514
5514
  t = e;
@@ -5870,6 +5870,7 @@ function dl(e) {
5870
5870
  };
5871
5871
  });
5872
5872
  var B = X("div", {
5873
+ "data-mesurer-interaction-overlay": "true",
5873
5874
  onPointerDown: (t) => e.onPointerDown(t),
5874
5875
  onPointerUp: (t) => e.onPointerUp(t),
5875
5876
  onPointerLeave: (t) => e.onPointerLeave(t)
@@ -18282,7 +18283,11 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18282
18283
  setup(t) {
18283
18284
  let n = t.service.get(vb);
18284
18285
  if (!n) throw Error("Recording plugin requires the Solid renderer runtime.");
18285
- let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element;
18286
+ let { ownerDocument: r, ownerWindow: i } = n, a = n.createInspectorMount(), o = a.element, s = n.rendererRoot ?? n.portalTarget.querySelector("[data-mesurer-root='true']"), c = (e) => {
18287
+ s?.toggleAttribute("data-mesurer-recording-active", e);
18288
+ let t = s?.querySelector("[data-mesurer-interaction-overlay='true']");
18289
+ t && (e ? (t.style.setProperty("pointer-events", "none", "important"), t.style.setProperty("cursor", "default", "important")) : (t.style.removeProperty("pointer-events"), t.style.removeProperty("cursor")));
18290
+ };
18286
18291
  o.dataset.mesurerRecording = "true", kb(o, {
18287
18292
  position: "fixed",
18288
18293
  inset: "0",
@@ -18290,19 +18295,19 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18290
18295
  "pointer-events": "none",
18291
18296
  "font-family": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif"
18292
18297
  });
18293
- let s = Math.max(1, Math.min(60, Math.round(e.frameRate ?? Cb))), c = Math.max(1, Math.min(600, e.maxDurationSeconds ?? wb)), l = e.quality ?? "medium";
18298
+ let l = Math.max(1, Math.min(60, Math.round(e.frameRate ?? Cb))), u = Math.max(1, Math.min(600, e.maxDurationSeconds ?? wb)), d = e.quality ?? "medium";
18294
18299
  t.state.register({
18295
18300
  id: _b,
18296
18301
  initial: { toolEnabled: e.toolEnabled ?? !0 },
18297
18302
  persist: !0
18298
18303
  });
18299
- let u = () => ({ toolEnabled: t.state.get("mesurer.recording.settings")?.toolEnabled ?? !0 }), d = (e) => {
18304
+ let f = () => ({ toolEnabled: t.state.get("mesurer.recording.settings")?.toolEnabled ?? !0 }), p = (e) => {
18300
18305
  t.state.update(_b, (t) => {
18301
18306
  let n = { ...t };
18302
18307
  return e.toolEnabled !== void 0 && (n.toolEnabled = e.toolEnabled), n;
18303
18308
  });
18304
- }, f = r.createElement("div");
18305
- f.dataset.mesurerRecordingSelect = "true", f.dataset.mesurerInspectorUi = "true", f.setAttribute("role", "application"), f.setAttribute("aria-label", "Recording selection"), kb(f, {
18309
+ }, m = r.createElement("div");
18310
+ m.dataset.mesurerRecordingSelect = "true", m.dataset.mesurerInspectorUi = "true", m.setAttribute("role", "application"), m.setAttribute("aria-label", "Recording selection"), kb(m, {
18306
18311
  position: "fixed",
18307
18312
  inset: "0",
18308
18313
  display: "none",
@@ -18311,24 +18316,24 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18311
18316
  "pointer-events": "auto",
18312
18317
  "user-select": "none",
18313
18318
  "touch-action": "none"
18314
- }), o.append(f);
18315
- let p = Array.from({ length: 4 }, () => {
18319
+ }), o.append(m);
18320
+ let h = Array.from({ length: 4 }, () => {
18316
18321
  let e = r.createElement("div");
18317
18322
  return kb(e, {
18318
18323
  position: "fixed",
18319
18324
  background: "rgb(0 0 0 / 40%)",
18320
18325
  "pointer-events": "none"
18321
- }), f.append(e), e;
18322
- }), m = r.createElement("div");
18323
- m.dataset.mesurerRecordingSelection = "true", kb(m, {
18326
+ }), m.append(e), e;
18327
+ }), g = r.createElement("div");
18328
+ g.dataset.mesurerRecordingSelection = "true", kb(g, {
18324
18329
  position: "fixed",
18325
18330
  display: "none",
18326
18331
  border: "1px solid var(--msr-accent, #0d99ff)",
18327
18332
  "box-sizing": "border-box",
18328
18333
  "pointer-events": "none"
18329
- }), f.append(m);
18330
- let h = r.createElement("div");
18331
- kb(h, {
18334
+ }), m.append(g);
18335
+ let _ = r.createElement("div");
18336
+ kb(_, {
18332
18337
  position: "fixed",
18333
18338
  display: "none",
18334
18339
  transform: "translateX(-50%)",
@@ -18339,9 +18344,9 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18339
18344
  "font-size": "10px",
18340
18345
  "font-variant-numeric": "tabular-nums",
18341
18346
  "pointer-events": "none"
18342
- }), f.append(h);
18343
- let g = r.createElement("div");
18344
- g.textContent = "Drag a region to record · Esc to cancel", kb(g, {
18347
+ }), m.append(_);
18348
+ let v = r.createElement("div");
18349
+ v.textContent = "Drag a region to record · Esc to cancel", kb(v, {
18345
18350
  position: "fixed",
18346
18351
  left: "50%",
18347
18352
  bottom: "16px",
@@ -18352,26 +18357,217 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18352
18357
  color: "var(--msr-surface, #fff)",
18353
18358
  "font-size": "11px",
18354
18359
  "pointer-events": "none"
18355
- }), f.append(g);
18356
- let _ = r.createElement("button");
18357
- _.type = "button", _.dataset.mesurerRecordingStatus = "true", _.dataset.mesurerInspectorUi = "true", _.setAttribute("aria-label", "Stop recording"), kb(_, {
18360
+ }), m.append(v);
18361
+ let y = r.createElement("div");
18362
+ y.dataset.mesurerRecordingRegion = "true", y.dataset.mesurerInspectorUi = "true", y.setAttribute("role", "dialog"), y.setAttribute("aria-label", "Recording region"), kb(y, {
18358
18363
  position: "fixed",
18359
18364
  display: "none",
18360
- height: "30px",
18361
- padding: "0 10px",
18365
+ width: "220px",
18366
+ padding: "8px",
18367
+ "z-index": "90",
18368
+ "box-sizing": "border-box",
18369
+ overflow: "hidden",
18370
+ "border-radius": "10px",
18371
+ background: "var(--msr-surface-raised, #fff)",
18372
+ color: "var(--msr-content, #18181b)",
18373
+ "box-shadow": "var(--msr-shadow-floating, 0 10px 30px rgba(0,0,0,.12))",
18374
+ "font-size": "11px",
18375
+ "pointer-events": "auto",
18376
+ transform: "translateX(-50%)"
18377
+ }), m.append(y);
18378
+ let b = (e) => {
18379
+ let t = r.createElement("label");
18380
+ kb(t, {
18381
+ display: "grid",
18382
+ "grid-template-columns": "44px minmax(0,1fr)",
18383
+ "align-items": "center",
18384
+ gap: "8px"
18385
+ });
18386
+ let n = r.createElement("span");
18387
+ n.textContent = e, n.style.color = "var(--msr-color-ink-500, #64748b)", t.append(n);
18388
+ let i = r.createElement("div");
18389
+ return kb(i, {
18390
+ display: "flex",
18391
+ "align-items": "center",
18392
+ gap: "4px",
18393
+ "min-width": "0"
18394
+ }), t.append(i), y.append(t), i;
18395
+ }, x = (e) => {
18396
+ let t = r.createElement("input");
18397
+ return t.type = "number", t.setAttribute("aria-label", e), t.step = "1", kb(t, {
18398
+ width: "0",
18399
+ "min-width": "0",
18400
+ flex: "1 1 0",
18401
+ height: "26px",
18402
+ padding: "0 6px",
18403
+ border: "1px solid var(--msr-color-ink-200, #e2e8f0)",
18404
+ "border-radius": "6px",
18405
+ background: "var(--msr-surface, #fff)",
18406
+ color: "var(--msr-content, #18181b)",
18407
+ "font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
18408
+ "font-size": "10px",
18409
+ "font-variant-numeric": "tabular-nums"
18410
+ }), t;
18411
+ }, S = b("Size"), C = x("Width"), w = x("Height");
18412
+ S.append(C);
18413
+ let T = r.createElement("span");
18414
+ T.textContent = "×", T.style.color = "var(--msr-color-ink-500, #64748b)", S.append(T, w);
18415
+ let E = r.createElement("span");
18416
+ E.textContent = "px", E.style.color = "var(--msr-color-ink-500, #64748b)", S.append(E);
18417
+ let D = b("Position");
18418
+ D.style.marginTop = "8px";
18419
+ let O = x("Left"), k = x("Top");
18420
+ D.append(O, k);
18421
+ let A = r.createElement("span");
18422
+ A.textContent = "px", A.style.color = "var(--msr-color-ink-500, #64748b)", D.append(A);
18423
+ let j = r.createElement("button");
18424
+ j.type = "button", j.dataset.mesurerRecordingStart = "true", j.textContent = "● Start recording", kb(j, {
18425
+ width: "100%",
18426
+ height: "28px",
18427
+ "margin-top": "8px",
18428
+ border: "1px solid var(--msr-color-ink-200, #e2e8f0)",
18429
+ "border-radius": "7px",
18430
+ background: "var(--msr-surface-raised, #fff)",
18431
+ color: "var(--msr-content, #18181b)",
18432
+ "font-family": "inherit",
18433
+ "font-size": "11px",
18434
+ "font-weight": "500",
18435
+ cursor: "pointer"
18436
+ }), y.append(j);
18437
+ let M = r.createElement("div");
18438
+ M.dataset.mesurerRecordingGrid = "true", kb(M, {
18439
+ position: "absolute",
18440
+ inset: "0",
18441
+ display: "none",
18442
+ "pointer-events": "none"
18443
+ }), g.append(M);
18444
+ let N = (e) => {
18445
+ let t = r.createElement("div");
18446
+ kb(t, {
18447
+ position: "absolute",
18448
+ opacity: "0.3",
18449
+ ...e
18450
+ }), M.append(t);
18451
+ };
18452
+ N({
18453
+ left: "33.333%",
18454
+ top: "0",
18455
+ bottom: "0",
18456
+ borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
18457
+ }), N({
18458
+ left: "66.666%",
18459
+ top: "0",
18460
+ bottom: "0",
18461
+ borderLeft: "1px dashed var(--msr-color-ink-500, #64748b)"
18462
+ }), N({
18463
+ top: "33.333%",
18464
+ left: "0",
18465
+ right: "0",
18466
+ borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
18467
+ }), N({
18468
+ top: "66.666%",
18469
+ left: "0",
18470
+ right: "0",
18471
+ borderTop: "1px dashed var(--msr-color-ink-500, #64748b)"
18472
+ });
18473
+ let P = Object.entries({
18474
+ nw: {
18475
+ left: "0",
18476
+ top: "0"
18477
+ },
18478
+ n: {
18479
+ left: "50%",
18480
+ top: "0"
18481
+ },
18482
+ ne: {
18483
+ left: "100%",
18484
+ top: "0"
18485
+ },
18486
+ e: {
18487
+ left: "100%",
18488
+ top: "50%"
18489
+ },
18490
+ se: {
18491
+ left: "100%",
18492
+ top: "100%"
18493
+ },
18494
+ s: {
18495
+ left: "50%",
18496
+ top: "100%"
18497
+ },
18498
+ sw: {
18499
+ left: "0",
18500
+ top: "100%"
18501
+ },
18502
+ w: {
18503
+ left: "0",
18504
+ top: "50%"
18505
+ }
18506
+ }).map(([e, t]) => {
18507
+ let n = r.createElement("button");
18508
+ return n.type = "button", n.dataset.mesurerRecordingResize = e, n.setAttribute("aria-label", `Resize ${e}`), kb(n, {
18509
+ position: "absolute",
18510
+ display: "none",
18511
+ left: t.left,
18512
+ top: t.top,
18513
+ width: "8px",
18514
+ height: "8px",
18515
+ padding: "0",
18516
+ border: "1px solid var(--msr-color-white, #fff)",
18517
+ "border-radius": "999px",
18518
+ background: "var(--msr-color-ink-900, #18181b)",
18519
+ "box-shadow": "0 0 0 1px rgb(0 0 0 / 25%)",
18520
+ transform: "translate(-50%, -50%)",
18521
+ cursor: e === "n" || e === "s" ? "ns-resize" : e === "e" || e === "w" ? "ew-resize" : e === "nw" || e === "se" ? "nwse-resize" : "nesw-resize",
18522
+ "pointer-events": "auto"
18523
+ }), g.append(n), n;
18524
+ }), F = r.createElement("section");
18525
+ F.dataset.mesurerRecordingStatus = "true", F.dataset.mesurerInspectorUi = "true", F.setAttribute("aria-label", "Screen recording"), kb(F, {
18526
+ position: "fixed",
18527
+ display: "none",
18528
+ height: "34px",
18529
+ padding: "0 8px",
18530
+ "align-items": "center",
18531
+ gap: "8px",
18362
18532
  border: "0",
18363
- "border-radius": "999px",
18533
+ "border-radius": "9px",
18364
18534
  background: "var(--msr-surface-raised, #fff)",
18365
18535
  color: "var(--msr-content, #18181b)",
18366
18536
  "box-shadow": "var(--msr-shadow-floating, 0 8px 24px rgba(0,0,0,.14))",
18367
18537
  "font-family": "inherit",
18368
18538
  "font-size": "11px",
18369
- "font-variant-numeric": "tabular-nums",
18370
- cursor: "pointer",
18371
18539
  "pointer-events": "auto"
18372
- }), o.append(_);
18373
- let v = r.createElement("div");
18374
- v.dataset.mesurerRecordingError = "true", v.dataset.mesurerInspectorUi = "true", v.setAttribute("role", "status"), kb(v, {
18540
+ });
18541
+ let I = r.createElement("span");
18542
+ I.setAttribute("aria-hidden", "true"), kb(I, {
18543
+ width: "6px",
18544
+ height: "6px",
18545
+ "border-radius": "999px",
18546
+ background: "var(--msr-danger-solid-bg, #dc2626)",
18547
+ "flex-shrink": "0"
18548
+ }), F.append(I);
18549
+ let L = r.createElement("span");
18550
+ L.dataset.mesurerRecordingTime = "true", L.textContent = "00:00", kb(L, {
18551
+ color: "var(--msr-content, #18181b)",
18552
+ "font-family": "ui-monospace, SFMono-Regular, Menlo, monospace",
18553
+ "font-size": "11px",
18554
+ "font-variant-numeric": "tabular-nums"
18555
+ }), F.append(L);
18556
+ let R = r.createElement("button");
18557
+ R.type = "button", R.dataset.mesurerRecordingStop = "true", R.textContent = "Stop", R.setAttribute("aria-label", "Stop recording"), kb(R, {
18558
+ height: "24px",
18559
+ padding: "0 8px",
18560
+ border: "0",
18561
+ "border-radius": "6px",
18562
+ background: "var(--msr-danger-solid-bg, #dc2626)",
18563
+ color: "var(--msr-danger-solid-text, #fff)",
18564
+ "font-family": "inherit",
18565
+ "font-size": "11px",
18566
+ "font-weight": "500",
18567
+ cursor: "pointer"
18568
+ }), F.append(R), o.append(F);
18569
+ let z = r.createElement("div");
18570
+ z.dataset.mesurerRecordingError = "true", z.dataset.mesurerInspectorUi = "true", z.setAttribute("role", "status"), kb(z, {
18375
18571
  position: "fixed",
18376
18572
  display: "none",
18377
18573
  left: "8px",
@@ -18383,8 +18579,8 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18383
18579
  color: "#fff",
18384
18580
  "font-size": "11px",
18385
18581
  "pointer-events": "none"
18386
- }), o.append(v);
18387
- let y = {
18582
+ }), o.append(z);
18583
+ let B = {
18388
18584
  status: "idle",
18389
18585
  elapsed: 0,
18390
18586
  rect: null,
@@ -18392,28 +18588,28 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18392
18588
  width: null,
18393
18589
  height: null,
18394
18590
  error: null
18395
- }, b = /* @__PURE__ */ new Set(), x = null, S = null, C = null, w = null, T = null, E = null, D = 0, O = 0, k = 0, A = 0, j = 0, M = -1, N = !1, P = null, F = () => {
18396
- let e = Ob(y);
18397
- for (let t of b) t(e);
18398
- }, I = (e) => {
18399
- y = {
18400
- ...y,
18591
+ }, V = /* @__PURE__ */ new Set(), H = null, U = null, ee = null, te = null, ne = null, W = null, re = !1, ie = null, ae = null, oe = 0, se = 0, ce = 0, le = 0, G = 0, ue = -1, de = !1, fe = null, pe = () => {
18592
+ let e = Ob(B);
18593
+ for (let t of V) t(e);
18594
+ }, me = (e) => {
18595
+ B = {
18596
+ ...B,
18401
18597
  ...e,
18402
- rect: e.rect === void 0 ? y.rect : Db(e.rect)
18403
- }, F();
18404
- }, L = () => y.status === "selecting" || y.status === "recording" || y.status === "exporting", R = () => {
18405
- if (E) return;
18598
+ rect: e.rect === void 0 ? B.rect : Db(e.rect)
18599
+ }, pe();
18600
+ }, he = () => B.status === "selecting" || B.status === "recording" || B.status === "exporting", ge = () => {
18601
+ if (ae) return;
18406
18602
  let e = n.portalTarget.querySelector("[data-mesurer-toolbar='true']");
18407
- e && (E = {
18603
+ e && (ae = {
18408
18604
  element: e,
18409
18605
  value: e.style.getPropertyValue("visibility"),
18410
18606
  priority: e.style.getPropertyPriority("visibility")
18411
18607
  }, e.style.setProperty("visibility", "hidden", "important"));
18412
- }, z = () => {
18413
- if (!E) return;
18414
- let e = E;
18415
- E = null, e.value || e.priority ? e.element.style.setProperty("visibility", e.value, e.priority) : e.element.style.removeProperty("visibility");
18416
- }, B = (e, t) => {
18608
+ }, _e = () => {
18609
+ if (!ae) return;
18610
+ let e = ae;
18611
+ ae = null, e.value || e.priority ? e.element.style.setProperty("visibility", e.value, e.priority) : e.element.style.removeProperty("visibility");
18612
+ }, ve = (e, t) => {
18417
18613
  for (let n of [
18418
18614
  "left",
18419
18615
  "top",
@@ -18423,78 +18619,128 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18423
18619
  let r = t[n];
18424
18620
  r === void 0 ? e.style.removeProperty(n) : e.style.setProperty(n, `${r}px`);
18425
18621
  }
18426
- }, V = (e) => {
18622
+ }, ye = (e) => {
18623
+ let t = i.innerWidth, n = i.innerHeight, r = Math.min(t, Math.max(4, Math.round(e.width))), a = Math.min(n, Math.max(4, Math.round(e.height)));
18624
+ return {
18625
+ left: Math.min(Math.max(0, Math.round(e.left)), Math.max(0, t - r)),
18626
+ top: Math.min(Math.max(0, Math.round(e.top)), Math.max(0, n - a)),
18627
+ width: r,
18628
+ height: a
18629
+ };
18630
+ }, be = (e, t) => t.x >= e.left && t.x <= e.left + e.width && t.y >= e.top && t.y <= e.top + e.height, xe = (e) => {
18427
18631
  let t = i.innerWidth, n = i.innerHeight;
18428
18632
  if (!e || e.width <= 0 || e.height <= 0) {
18429
- B(p[0], {
18633
+ ve(h[0], {
18430
18634
  left: 0,
18431
18635
  top: 0,
18432
18636
  width: t,
18433
18637
  height: n
18434
18638
  });
18435
- for (let e of p.slice(1)) B(e, {
18639
+ for (let e of h.slice(1)) ve(e, {
18436
18640
  left: 0,
18437
18641
  top: 0,
18438
18642
  width: 0,
18439
18643
  height: 0
18440
18644
  });
18441
- m.style.display = "none", h.style.display = "none";
18645
+ g.style.display = "none", g.style.pointerEvents = "none", M.style.display = "none";
18646
+ for (let e of P) e.style.display = "none";
18647
+ _.style.display = "none", y.style.display = "none", v.textContent = "Drag to select a region · Esc to cancel";
18442
18648
  return;
18443
18649
  }
18444
- B(p[0], {
18650
+ if (ve(h[0], {
18445
18651
  left: 0,
18446
18652
  top: 0,
18447
18653
  width: t,
18448
18654
  height: e.top
18449
- }), B(p[1], {
18655
+ }), ve(h[1], {
18450
18656
  left: 0,
18451
18657
  top: e.top,
18452
18658
  width: e.left,
18453
18659
  height: e.height
18454
- }), B(p[2], {
18660
+ }), ve(h[2], {
18455
18661
  left: e.left + e.width,
18456
18662
  top: e.top,
18457
18663
  width: Math.max(0, t - e.left - e.width),
18458
18664
  height: e.height
18459
- }), B(p[3], {
18665
+ }), ve(h[3], {
18460
18666
  left: 0,
18461
18667
  top: e.top + e.height,
18462
18668
  width: t,
18463
18669
  height: Math.max(0, n - e.top - e.height)
18464
- }), m.style.display = "block", B(m, e), h.style.display = "block", h.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, B(h, {
18465
- left: e.left + e.width / 2,
18466
- top: Math.min(n - 22, e.top + e.height + 6)
18467
- });
18468
- }, H = () => {
18469
- T = null, V(null), f.style.display = "none", o.style.pointerEvents = "none";
18470
- }, U = (e) => {
18471
- let t = i.innerHeight, n = i.innerWidth, r = Math.max(112, _.offsetWidth || 112), a = null;
18670
+ }), g.style.display = "block", ve(g, e), re) {
18671
+ g.style.pointerEvents = "auto", g.style.cursor = "move", M.style.display = "block";
18672
+ for (let e of P) e.style.display = "block";
18673
+ _.style.display = "none", C.value = String(Math.round(e.width)), w.value = String(Math.round(e.height)), O.value = String(Math.round(e.left)), k.value = String(Math.round(e.top)), C.max = String(t), w.max = String(n), O.max = String(Math.max(0, t - e.width)), k.max = String(Math.max(0, n - e.height));
18674
+ let r = Math.min(Math.max(118, e.left + e.width / 2), Math.max(118, t - 110 - 8)), i = e.top + e.height + 12, a = i + 112 <= n ? i : Math.max(8, e.top - 112);
18675
+ y.style.left = `${r}px`, y.style.top = `${a}px`, y.style.display = "block", v.textContent = "Adjust region · Enter to start · Esc to cancel";
18676
+ } else {
18677
+ g.style.pointerEvents = "none", g.style.cursor = "", M.style.display = "none";
18678
+ for (let e of P) e.style.display = "none";
18679
+ y.style.display = "none", _.style.display = "block", _.textContent = `${Math.round(e.width)} × ${Math.round(e.height)}`, ve(_, {
18680
+ left: e.left + e.width / 2,
18681
+ top: Math.min(n - 22, e.top + e.height + 6)
18682
+ }), v.textContent = "Drag to select a region · Esc to cancel";
18683
+ }
18684
+ }, Se = (e) => {
18685
+ let t = ye(e);
18686
+ W = t, me({ rect: t }), xe(t);
18687
+ }, Ce = (e) => {
18688
+ let t = i.innerWidth, n = i.innerHeight;
18689
+ ve(h[0], {
18690
+ left: 0,
18691
+ top: 0,
18692
+ width: t,
18693
+ height: e.top
18694
+ }), ve(h[1], {
18695
+ left: 0,
18696
+ top: e.top,
18697
+ width: e.left,
18698
+ height: e.height
18699
+ }), ve(h[2], {
18700
+ left: e.left + e.width,
18701
+ top: e.top,
18702
+ width: Math.max(0, t - e.left - e.width),
18703
+ height: e.height
18704
+ }), ve(h[3], {
18705
+ left: 0,
18706
+ top: e.top + e.height,
18707
+ width: t,
18708
+ height: Math.max(0, n - e.top - e.height)
18709
+ }), g.style.display = "none", _.style.display = "none", y.style.display = "none", M.style.display = "none", v.style.display = "none";
18710
+ for (let e of P) e.style.display = "none";
18711
+ m.style.display = "block", m.style.pointerEvents = "none", m.style.cursor = "default";
18712
+ }, we = () => {
18713
+ c(!1), m.style.display = "none", m.style.pointerEvents = "auto", m.style.cursor = "crosshair", v.style.removeProperty("display");
18714
+ }, Te = () => {
18715
+ ne = null, W = null, re = !1, ie = null, xe(null), m.style.display = "none", m.style.cursor = "crosshair", o.style.pointerEvents = "none";
18716
+ }, Ee = (e) => {
18717
+ let t = i.innerHeight, n = i.innerWidth, r = Math.max(112, F.offsetWidth || 112), a = null;
18472
18718
  if (e.top >= 46 ? a = e.top - 30 - 8 : t - (e.top + e.height) >= 46 && (a = e.top + e.height + 8), a === null) {
18473
- _.style.display = "none";
18719
+ F.style.display = "none";
18474
18720
  return;
18475
18721
  }
18476
18722
  let o = Math.min(n - r - 8, Math.max(8, e.left + e.width / 2 - r / 2));
18477
- _.style.left = `${o}px`, _.style.top = `${a}px`, _.style.display = "block";
18478
- }, ee = () => {
18479
- _.style.display = "none";
18480
- }, te = (e) => {
18481
- k && i.clearTimeout(k);
18723
+ F.style.left = `${o}px`, F.style.top = `${a}px`, F.style.display = "flex";
18724
+ }, De = () => {
18725
+ F.style.display = "none";
18726
+ }, Oe = (e) => {
18727
+ ce && i.clearTimeout(ce);
18482
18728
  let t = e instanceof Error ? e.message : "Could not record this region.";
18483
- v.textContent = t, v.style.display = "block", k = i.setTimeout(() => {
18484
- k = 0, v.style.display = "none";
18729
+ z.textContent = t, z.style.display = "block", ce = i.setTimeout(() => {
18730
+ ce = 0, z.style.display = "none";
18485
18731
  }, Tb);
18486
- }, ne = async (e) => {
18487
- D && i.cancelAnimationFrame(D), D = 0, O && i.clearTimeout(O), O = 0;
18488
- let t = w;
18489
- if (w = null, t) try {
18732
+ }, ke = async (e) => {
18733
+ oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
18734
+ let t = te;
18735
+ if (te = null, t) try {
18490
18736
  await t;
18491
18737
  } catch {}
18492
- let n = C;
18493
- C = null, e && await n?.cancel();
18494
- let r = S;
18495
- S = null, r && Vy(r), ee();
18496
- }, W = () => {
18497
- x = null, ae.dismiss(), I({
18738
+ let n = ee;
18739
+ ee = null, e && await n?.cancel();
18740
+ let r = U;
18741
+ U = null, r && Vy(r), we(), De();
18742
+ }, Ae = () => {
18743
+ H = null, Ne.dismiss(), me({
18498
18744
  status: "idle",
18499
18745
  elapsed: 0,
18500
18746
  rect: null,
@@ -18503,14 +18749,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18503
18749
  height: null,
18504
18750
  error: null
18505
18751
  }), t.hook.emit("recording:discard", {});
18506
- }, re = async () => {
18507
- let e = x;
18508
- return Zy(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)), s);
18509
- }, ie = async (e = {}) => {
18510
- let n = x;
18752
+ }, je = async () => {
18753
+ let e = H;
18754
+ return Zy(e?.width ?? Math.max(2, Math.round(i.innerWidth)), e?.height ?? Math.max(2, Math.round(i.innerHeight)), l);
18755
+ }, Me = async (e = {}) => {
18756
+ let n = H;
18511
18757
  if (!n) throw Error("No recording is ready to export.");
18512
- let r = y.status;
18513
- I({
18758
+ let r = B.status;
18759
+ me({
18514
18760
  status: "exporting",
18515
18761
  error: null
18516
18762
  });
@@ -18519,7 +18765,7 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18519
18765
  ...r,
18520
18766
  filename: nb(r.format)
18521
18767
  };
18522
- return I({
18768
+ return me({
18523
18769
  status: "ready",
18524
18770
  duration: n.duration,
18525
18771
  width: n.width,
@@ -18534,29 +18780,29 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18534
18780
  bytes: i.blob.size
18535
18781
  }), i;
18536
18782
  } catch (e) {
18537
- throw I({
18783
+ throw me({
18538
18784
  status: r === "ready" ? "ready" : "error",
18539
18785
  error: e instanceof Error ? e.message : "Could not export the recording."
18540
18786
  }), e;
18541
18787
  }
18542
- }, ae = mb({
18788
+ }, Ne = mb({
18543
18789
  ownerDocument: r,
18544
18790
  ownerWindow: i,
18545
18791
  root: o,
18546
- formats: async () => re(),
18547
- onDiscard: W,
18548
- onExport: ie
18549
- }), oe = async () => {
18550
- if (P) return P;
18551
- if (y.status !== "recording" || !C || !S) throw Error("No recording is active.");
18552
- let e = A, n = C, r = S, a = Db(y.rect);
18792
+ formats: async () => je(),
18793
+ onDiscard: Ae,
18794
+ onExport: Me
18795
+ }), Pe = async () => {
18796
+ if (fe) return fe;
18797
+ if (B.status !== "recording" || !ee || !U) throw Error("No recording is active.");
18798
+ let e = le, n = ee, r = U, a = Db(B.rect);
18553
18799
  if (!a) throw Error("Recording region is unavailable.");
18554
- return P = (async () => {
18555
- D && i.cancelAnimationFrame(D), D = 0, O && i.clearTimeout(O), O = 0;
18556
- let s = w;
18557
- w = null, s && await s;
18800
+ return fe = (async () => {
18801
+ oe && i.cancelAnimationFrame(oe), oe = 0, se && i.clearTimeout(se), se = 0;
18802
+ let s = te;
18803
+ te = null, s && await s;
18558
18804
  let c = await n.finalize();
18559
- if (C = null, S = null, Vy(r), A !== e || N) throw Error("Recording was cancelled.");
18805
+ if (ee = null, U = null, Vy(r), le !== e || de) throw Error("Recording was cancelled.");
18560
18806
  let l = await eb(c), u = {
18561
18807
  blob: c,
18562
18808
  format: "webm",
@@ -18565,14 +18811,14 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18565
18811
  height: l.height,
18566
18812
  createdAt: Date.now()
18567
18813
  };
18568
- return x = u, ee(), z(), o.style.pointerEvents = "none", I({
18814
+ return H = u, we(), De(), _e(), o.style.pointerEvents = "none", me({
18569
18815
  status: "ready",
18570
18816
  elapsed: l.duration,
18571
18817
  duration: l.duration,
18572
18818
  width: l.width,
18573
18819
  height: l.height,
18574
18820
  error: null
18575
- }), ae.show(u), await t.hook.emit("recording:ready", {
18821
+ }), Ne.show(u), await t.hook.emit("recording:ready", {
18576
18822
  rect: a,
18577
18823
  duration: l.duration,
18578
18824
  width: l.width,
@@ -18580,45 +18826,45 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18580
18826
  bytes: c.size
18581
18827
  }), u;
18582
18828
  })().catch(async (t) => {
18583
- if (await ne(!0), z(), A === e && !N) {
18829
+ if (await ke(!0), _e(), le === e && !de) {
18584
18830
  let e = t instanceof Error ? t.message : "Could not finish the recording.";
18585
- I({
18831
+ me({
18586
18832
  status: "error",
18587
18833
  error: e
18588
- }), te(t);
18834
+ }), Oe(t);
18589
18835
  }
18590
18836
  throw t;
18591
18837
  }).finally(() => {
18592
- P = null;
18593
- }), P;
18594
- }, se = (e, t, n) => {
18595
- let r = 1 / s, a = (o) => {
18596
- if (N || A !== n || y.status !== "recording" || C !== t || S !== e) return;
18597
- let s = Math.max(0, (o - j) / 1e3);
18598
- I({ elapsed: s }), _.textContent = `● ${Math.floor(s / 60)}:${String(Math.floor(s % 60)).padStart(2, "0")} Stop`;
18838
+ fe = null;
18839
+ }), fe;
18840
+ }, Fe = (e, t, n) => {
18841
+ let r = 1 / l, a = (o) => {
18842
+ if (de || le !== n || B.status !== "recording" || ee !== t || U !== e) return;
18843
+ let s = Math.max(0, (o - G) / 1e3);
18844
+ me({ elapsed: s }), L.textContent = `${String(Math.floor(s / 60)).padStart(2, "0")}:${String(Math.floor(s % 60)).padStart(2, "0")}`;
18599
18845
  let c = s;
18600
- !w && c - M >= r * .8 && (By(e, y.rect ?? {
18846
+ !te && c - ue >= r * .8 && (By(e, B.rect ?? {
18601
18847
  left: 0,
18602
18848
  top: 0,
18603
18849
  width: i.innerWidth,
18604
18850
  height: i.innerHeight
18605
- }, Ty(i)), M = c, w = t.addFrame(c, r).catch((e) => {
18606
- throw A === n && !N && ne(!0).then(() => {
18607
- z();
18851
+ }, Ty(i)), ue = c, te = t.addFrame(c, r).catch((e) => {
18852
+ throw le === n && !de && ke(!0).then(() => {
18853
+ _e();
18608
18854
  let t = e instanceof Error ? e.message : "MediaBunny could not encode the recording.";
18609
- I({
18855
+ me({
18610
18856
  status: "error",
18611
18857
  error: t
18612
- }), te(e);
18858
+ }), Oe(e);
18613
18859
  }), e;
18614
18860
  }).finally(() => {
18615
- w = null;
18616
- })), D = i.requestAnimationFrame(a);
18861
+ te = null;
18862
+ })), oe = i.requestAnimationFrame(a);
18617
18863
  };
18618
- D = i.requestAnimationFrame(a);
18619
- }, ce = async (e) => {
18620
- let n = ++A;
18621
- ae.dismiss(), x = null, H(), R(), I({
18864
+ oe = i.requestAnimationFrame(a);
18865
+ }, Ie = async (e) => {
18866
+ let n = ++le;
18867
+ Ne.dismiss(), H = null, Te(), _e(), me({
18622
18868
  status: "selecting",
18623
18869
  elapsed: 0,
18624
18870
  rect: e,
@@ -18629,46 +18875,46 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18629
18875
  });
18630
18876
  try {
18631
18877
  let a = await zy(r, i, e);
18632
- if (N || A !== n) {
18878
+ if (de || le !== n) {
18633
18879
  Vy(a);
18634
18880
  return;
18635
18881
  }
18636
- let u = await $y(a.canvas, {
18882
+ let s = await $y(a.canvas, {
18637
18883
  format: "webm",
18638
- frameRate: s,
18639
- quality: l
18884
+ frameRate: l,
18885
+ quality: d
18640
18886
  });
18641
- if (N || A !== n) {
18642
- await u.cancel(), Vy(a);
18887
+ if (de || le !== n) {
18888
+ await s.cancel(), Vy(a);
18643
18889
  return;
18644
18890
  }
18645
- if (S = a, C = u, j = i.performance.now(), M = 0, By(a, e, Ty(i)), await u.addFrame(0, 1 / s), N || A !== n) {
18646
- await ne(!0);
18891
+ if (U = a, ee = s, G = i.performance.now(), ue = 0, By(a, e, Ty(i)), await s.addFrame(0, 1 / l), de || le !== n) {
18892
+ await ke(!0);
18647
18893
  return;
18648
18894
  }
18649
- I({
18895
+ me({
18650
18896
  status: "recording",
18651
18897
  elapsed: 0
18652
- }), o.style.pointerEvents = "auto", _.textContent = "● 0:00 Stop", U(e), se(a, u, n), a.track.addEventListener("ended", () => {
18653
- A === n && y.status === "recording" && oe().catch(() => void 0);
18654
- }, { once: !0 }), O = i.setTimeout(() => {
18655
- A === n && y.status === "recording" && oe().catch(() => void 0);
18656
- }, c * 1e3), await t.hook.emit("recording:start", {
18898
+ }), o.style.pointerEvents = "none", c(!0), Ce(e), L.textContent = "00:00", Ee(e), Fe(a, s, n), a.track.addEventListener("ended", () => {
18899
+ le === n && B.status === "recording" && Pe().catch(() => void 0);
18900
+ }, { once: !0 }), se = i.setTimeout(() => {
18901
+ le === n && B.status === "recording" && Pe().catch(() => void 0);
18902
+ }, u * 1e3), await t.hook.emit("recording:start", {
18657
18903
  rect: { ...e },
18658
- frameRate: s,
18659
- maxDurationSeconds: c
18904
+ frameRate: l,
18905
+ maxDurationSeconds: u
18660
18906
  });
18661
18907
  } catch (t) {
18662
- if (await ne(!0), z(), A !== n || N) return;
18908
+ if (await ke(!0), _e(), le !== n || de) return;
18663
18909
  let r = t instanceof DOMException && t.name === "AbortError", i = r ? null : t instanceof Error ? t.message : "Could not start the recording.";
18664
- throw I({
18910
+ throw me({
18665
18911
  status: r ? "idle" : "error",
18666
18912
  rect: r ? null : e,
18667
18913
  error: i
18668
- }), r || te(t), t;
18914
+ }), r || Oe(t), t;
18669
18915
  }
18670
- }, le = () => {
18671
- y.status !== "selecting" && (++A, ae.dismiss(), x = null, R(), V(null), f.style.display = "block", o.style.pointerEvents = "auto", I({
18916
+ }, Le = () => {
18917
+ B.status !== "selecting" && (++le, Ne.dismiss(), H = null, W = null, re = !1, ie = null, ge(), xe(null), m.style.display = "block", m.style.pointerEvents = "auto", v.style.removeProperty("display"), o.style.pointerEvents = "auto", me({
18672
18918
  status: "selecting",
18673
18919
  elapsed: 0,
18674
18920
  rect: null,
@@ -18677,23 +18923,23 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18677
18923
  height: null,
18678
18924
  error: null
18679
18925
  }));
18680
- }, G = async (e) => {
18681
- if (y.status === "recording") {
18682
- await oe();
18926
+ }, Re = async (e) => {
18927
+ if (B.status === "recording") {
18928
+ await Pe();
18683
18929
  return;
18684
18930
  }
18685
- if (y.status === "selecting") {
18686
- await ue();
18931
+ if (B.status === "selecting") {
18932
+ await ze();
18687
18933
  return;
18688
18934
  }
18689
18935
  if (!e) {
18690
- le();
18936
+ Le();
18691
18937
  return;
18692
18938
  }
18693
18939
  if (e.width < 4 || e.height < 4) throw Error("Recording selection must be at least 4px by 4px.");
18694
- await ce(e);
18695
- }, ue = async () => {
18696
- ++A, H(), await ne(!0), z(), y.status !== "ready" && I({
18940
+ await Ie(e);
18941
+ }, ze = async () => {
18942
+ ++le, Te(), await ke(!0), _e(), B.status !== "ready" && me({
18697
18943
  status: "idle",
18698
18944
  elapsed: 0,
18699
18945
  rect: null,
@@ -18702,26 +18948,64 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18702
18948
  height: null,
18703
18949
  error: null
18704
18950
  });
18705
- }, de = (e) => {
18706
- y.status === "selecting" && e.button === 0 && (e.preventDefault(), e.stopPropagation(), T = {
18951
+ }, Be = (e, t, n) => {
18952
+ let r = W;
18953
+ !re || !r || e.button !== 0 || (e.preventDefault(), e.stopPropagation(), ie = {
18954
+ kind: t,
18955
+ handle: n,
18956
+ pointerId: e.pointerId,
18957
+ startX: e.clientX,
18958
+ startY: e.clientY,
18959
+ rect: { ...r }
18960
+ }, m.setPointerCapture?.(e.pointerId));
18961
+ }, Ve = (e) => {
18962
+ B.status === "selecting" && e.button === 0 && (re && W && be(W, {
18707
18963
  x: e.clientX,
18708
18964
  y: e.clientY
18709
- }, V(qa(T, T, {
18710
- width: i.innerWidth,
18711
- height: i.innerHeight
18712
- })), f.setPointerCapture?.(e.pointerId));
18713
- }, fe = (e) => {
18714
- y.status !== "selecting" || !T || V(qa(T, {
18965
+ }) || (e.preventDefault(), e.stopPropagation(), re = !1, W = null, me({ rect: null }), m.style.cursor = "crosshair", ne = {
18715
18966
  x: e.clientX,
18716
18967
  y: e.clientY
18717
- }, {
18968
+ }, xe(qa(ne, ne, {
18718
18969
  width: i.innerWidth,
18719
18970
  height: i.innerHeight
18720
- }));
18721
- }, pe = (e) => {
18722
- let t = T;
18723
- if (T = null, y.status !== "selecting" || !t) return;
18724
- f.hasPointerCapture?.(e.pointerId) && f.releasePointerCapture(e.pointerId);
18971
+ })), m.setPointerCapture?.(e.pointerId)));
18972
+ }, He = (e) => {
18973
+ if (B.status === "selecting") {
18974
+ if (ie) {
18975
+ let t = ie, n = e.clientX - t.startX, r = e.clientY - t.startY, a = i.innerWidth, o = i.innerHeight;
18976
+ if (t.kind === "move") {
18977
+ Se({
18978
+ ...t.rect,
18979
+ left: t.rect.left + n,
18980
+ top: t.rect.top + r
18981
+ });
18982
+ return;
18983
+ }
18984
+ let s = t.handle ?? "", c = t.rect.left, l = t.rect.top, u = t.rect.left + t.rect.width, d = t.rect.top + t.rect.height;
18985
+ s.includes("w") && (c = Math.min(u - 4, Math.max(0, t.rect.left + n))), s.includes("e") && (u = Math.max(c + 4, Math.min(a, t.rect.left + t.rect.width + n))), s.includes("n") && (l = Math.min(d - 4, Math.max(0, t.rect.top + r))), s.includes("s") && (d = Math.max(l + 4, Math.min(o, t.rect.top + t.rect.height + r))), Se({
18986
+ left: c,
18987
+ top: l,
18988
+ width: u - c,
18989
+ height: d - l
18990
+ });
18991
+ return;
18992
+ }
18993
+ ne && xe(qa(ne, {
18994
+ x: e.clientX,
18995
+ y: e.clientY
18996
+ }, {
18997
+ width: i.innerWidth,
18998
+ height: i.innerHeight
18999
+ }));
19000
+ }
19001
+ }, Ue = (e) => {
19002
+ if (ie) {
19003
+ ie = null, m.hasPointerCapture?.(e.pointerId) && m.releasePointerCapture(e.pointerId), W && xe(W);
19004
+ return;
19005
+ }
19006
+ let t = ne;
19007
+ if (ne = null, B.status !== "selecting" || !t) return;
19008
+ m.hasPointerCapture?.(e.pointerId) && m.releasePointerCapture(e.pointerId);
18725
19009
  let n = qa(t, {
18726
19010
  x: e.clientX,
18727
19011
  y: e.clientY
@@ -18730,35 +19014,60 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18730
19014
  height: i.innerHeight
18731
19015
  });
18732
19016
  if (n.width < 4 || n.height < 4) {
18733
- V(null);
19017
+ W = null, re = !1, me({ rect: null }), xe(null);
19018
+ return;
19019
+ }
19020
+ W = ye(n), re = !0, m.style.cursor = "default", me({ rect: W }), xe(W);
19021
+ }, We = (e) => {
19022
+ ne = null, ie = null, m.hasPointerCapture?.(e.pointerId) && m.releasePointerCapture(e.pointerId), xe(W && re ? W : null);
19023
+ }, Ge = (e) => {
19024
+ if (e.key === "Enter" && B.status === "selecting" && re && W) {
19025
+ e.preventDefault(), e.stopImmediatePropagation(), Ie(W).catch(() => void 0);
18734
19026
  return;
18735
19027
  }
18736
- ce(n).catch(() => void 0);
18737
- }, me = (e) => {
18738
- T = null, f.hasPointerCapture?.(e.pointerId) && f.releasePointerCapture(e.pointerId), V(null);
18739
- }, he = (e) => {
18740
19028
  if (e.key === "Escape") {
18741
- if (y.status === "selecting") {
18742
- e.preventDefault(), e.stopImmediatePropagation(), ue();
19029
+ if (B.status === "selecting") {
19030
+ e.preventDefault(), e.stopImmediatePropagation(), ze();
18743
19031
  return;
18744
19032
  }
18745
- y.status === "recording" && (e.preventDefault(), e.stopImmediatePropagation(), oe().catch(() => void 0));
19033
+ B.status === "recording" && (e.preventDefault(), e.stopImmediatePropagation(), Pe().catch(() => void 0));
18746
19034
  }
18747
19035
  };
18748
- f.addEventListener("pointerdown", de), f.addEventListener("pointermove", fe), f.addEventListener("pointerup", pe), f.addEventListener("pointercancel", me), i.addEventListener("keydown", he, !0), _.addEventListener("click", () => {
18749
- y.status === "recording" && oe().catch(() => void 0);
19036
+ m.addEventListener("pointerdown", Ve), m.addEventListener("pointermove", He), m.addEventListener("pointerup", Ue), m.addEventListener("pointercancel", We), i.addEventListener("keydown", Ge, !0), g.addEventListener("pointerdown", (e) => {
19037
+ let t = e.target;
19038
+ t instanceof Element && t.closest("[data-mesurer-recording-resize]") || Be(e, "move");
19039
+ });
19040
+ for (let e of P) e.addEventListener("pointerdown", (t) => {
19041
+ Be(t, "resize", e.dataset.mesurerRecordingResize);
19042
+ });
19043
+ y.addEventListener("pointerdown", (e) => {
19044
+ e.stopPropagation();
19045
+ }), y.addEventListener("click", (e) => {
19046
+ e.stopPropagation();
19047
+ });
19048
+ let Ke = (e, t) => {
19049
+ let n = W, r = Number(e.value);
19050
+ !n || !Number.isFinite(r) || Se({
19051
+ ...n,
19052
+ [t]: r
19053
+ });
19054
+ };
19055
+ C.addEventListener("change", () => Ke(C, "width")), w.addEventListener("change", () => Ke(w, "height")), O.addEventListener("change", () => Ke(O, "left")), k.addEventListener("change", () => Ke(k, "top")), j.addEventListener("click", () => {
19056
+ B.status === "selecting" && re && W && Ie(W).catch(() => void 0);
19057
+ }), R.addEventListener("click", () => {
19058
+ B.status === "recording" && Pe().catch(() => void 0);
18750
19059
  });
18751
- let ge = {
18752
- snapshot: () => Ob(y),
19060
+ let qe = {
19061
+ snapshot: () => Ob(B),
18753
19062
  subscribe(e) {
18754
- return b.add(e), () => b.delete(e);
19063
+ return V.add(e), () => V.delete(e);
18755
19064
  },
18756
- formats: re,
18757
- start: G,
18758
- stop: oe,
18759
- cancel: ue,
18760
- discard: W,
18761
- export: ie
19065
+ formats: je,
19066
+ start: Re,
19067
+ stop: Pe,
19068
+ cancel: ze,
19069
+ discard: Ae,
19070
+ export: Me
18762
19071
  };
18763
19072
  t.tool.register({
18764
19073
  id: "recording",
@@ -18768,28 +19077,28 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18768
19077
  command: yb,
18769
19078
  toolbarMode: "select",
18770
19079
  icon: Eb,
18771
- active: L,
18772
- hidden: () => !u().toolEnabled,
19080
+ active: he,
19081
+ hidden: () => !f().toolEnabled,
18773
19082
  menu: {
18774
19083
  label: "Recording options",
18775
19084
  items: [
18776
19085
  {
18777
19086
  id: "new",
18778
19087
  label: "New recording",
18779
- disabled: () => y.status === "recording" || y.status === "exporting",
18780
- run: () => G()
19088
+ disabled: () => B.status === "recording" || B.status === "exporting",
19089
+ run: () => Re()
18781
19090
  },
18782
19091
  {
18783
19092
  id: "stop",
18784
19093
  label: "Stop recording",
18785
- disabled: () => y.status !== "recording",
18786
- run: () => oe().then(() => void 0)
19094
+ disabled: () => B.status !== "recording",
19095
+ run: () => Pe().then(() => void 0)
18787
19096
  },
18788
19097
  {
18789
19098
  id: "discard",
18790
19099
  label: "Discard clip",
18791
- disabled: () => x === null,
18792
- run: W
19100
+ disabled: () => H === null,
19101
+ run: Ae
18793
19102
  }
18794
19103
  ]
18795
19104
  }
@@ -18802,16 +19111,16 @@ var Kv = "mesurer.layout-guides", qv = "layout-guides:v1", Jv = "mesurer.layout-
18802
19111
  id: "tool",
18803
19112
  label: "Recording tool",
18804
19113
  description: "Show selected-region video recording in the Select toolbar.",
18805
- value: () => u().toolEnabled,
19114
+ value: () => f().toolEnabled,
18806
19115
  set: async (e) => {
18807
- d({ toolEnabled: e }), !e && L() && await ue();
19116
+ p({ toolEnabled: e }), !e && he() && await ze();
18808
19117
  }
18809
19118
  }]
18810
- }), t.command.register(yb, async () => (await G(), Nb(y))), t.command.register(bb, async () => Fb(await oe())), t.command.register(xb, () => (W(), Nb(y))), t.command.register(Sb, async (e) => {
18811
- let t = await ie(Mb(e));
19119
+ }), t.command.register(yb, async () => (await Re(), Nb(B))), t.command.register(bb, async () => Fb(await Pe())), t.command.register(xb, () => (Ae(), Nb(B))), t.command.register(Sb, async (e) => {
19120
+ let t = await Me(Mb(e));
18812
19121
  return Ib(t, r, i), Pb(t);
18813
- }), t.service.provide(gb, ge), t.lifecycle.onDispose(() => {
18814
- N = !0, ++A, b.clear(), f.removeEventListener("pointerdown", de), f.removeEventListener("pointermove", fe), f.removeEventListener("pointerup", pe), f.removeEventListener("pointercancel", me), i.removeEventListener("keydown", he, !0), k && i.clearTimeout(k), ae.dispose(), H(), z(), ne(!0), a.dispose();
19122
+ }), t.service.provide(gb, qe), t.lifecycle.onDispose(() => {
19123
+ de = !0, ++le, V.clear(), m.removeEventListener("pointerdown", Ve), m.removeEventListener("pointermove", He), m.removeEventListener("pointerup", Ue), m.removeEventListener("pointercancel", We), i.removeEventListener("keydown", Ge, !0), ce && i.clearTimeout(ce), Ne.dispose(), Te(), _e(), ke(!0), a.dispose();
18815
19124
  });
18816
19125
  }
18817
19126
  }), Rb = 144, zb = 96, Bb = 8, Vb = 4, Hb = 1800, Ub = (e, t) => {
@@ -19866,7 +20175,7 @@ function Gx(e) {
19866
20175
  }
19867
20176
  //#endregion
19868
20177
  //#region src/version.ts
19869
- var Kx = "0.2.1-beta.5", qx = Np, Jx = Pp, Yx = () => ({
20178
+ var Kx = "0.2.1-beta.6", qx = Np, Jx = Pp, Yx = () => ({
19870
20179
  ...km(),
19871
20180
  version: Kx
19872
20181
  }), Xx = Jx, Zx = (e, t) => e.left <= t.left + t.width && e.left + e.width >= t.left && e.top <= t.top + t.height && e.top + e.height >= t.top, Qx = (e) => {
@@ -20638,7 +20947,7 @@ var LS = {
20638
20947
  overflow: "visible",
20639
20948
  background: "transparent",
20640
20949
  "box-sizing": "border-box",
20641
- "pointer-events": "auto",
20950
+ "pointer-events": "none",
20642
20951
  "z-index": "2147483647",
20643
20952
  opacity: "1",
20644
20953
  visibility: "visible",