@launchsecure/launch-kit 0.0.38 → 0.0.40

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.
Files changed (101) hide show
  1. package/dist/beacon/beacon.mjs +308 -298
  2. package/dist/beacon/beacon.mjs.map +1 -1
  3. package/dist/beacon/beacon.umd.js +6 -6
  4. package/dist/beacon/beacon.umd.js.map +1 -1
  5. package/dist/beacon/types/internal/screenshot.d.ts.map +1 -1
  6. package/dist/chart-client/assets/index-CWJFFDPu.css +1 -0
  7. package/dist/chart-client/index.html +2 -2
  8. package/dist/client/assets/index-CTzFcfGV.css +32 -0
  9. package/dist/client/index.html +2 -2
  10. package/dist/council-client/assets/index-ArgRc5mN.css +1 -0
  11. package/dist/council-client/index.html +2 -2
  12. package/dist/deck-client/assets/{_baseUniq-CgW32Gdk.js → _baseUniq-BZP7n41F.js} +1 -1
  13. package/dist/deck-client/assets/{arc-D-Mg9gvM.js → arc-31biU3Az.js} +1 -1
  14. package/dist/deck-client/assets/{architectureDiagram-Q4EWVU46-CdTsXsgl.js → architectureDiagram-Q4EWVU46-DHg6Ss--.js} +1 -1
  15. package/dist/deck-client/assets/{blockDiagram-DXYQGD6D-mwTneYyB.js → blockDiagram-DXYQGD6D-CUdblaWk.js} +1 -1
  16. package/dist/deck-client/assets/{c4Diagram-AHTNJAMY-C4R8IbjO.js → c4Diagram-AHTNJAMY-MfAO5lak.js} +1 -1
  17. package/dist/deck-client/assets/channel-BBkRLdnC.js +1 -0
  18. package/dist/deck-client/assets/{chunk-4BX2VUAB-ZWuRIUwb.js → chunk-4BX2VUAB-DQ1MrGgN.js} +1 -1
  19. package/dist/deck-client/assets/{chunk-4TB4RGXK-PNHX10sF.js → chunk-4TB4RGXK-BUJtZ7jO.js} +1 -1
  20. package/dist/deck-client/assets/{chunk-55IACEB6-CD9MUgPr.js → chunk-55IACEB6-BdSnXB6g.js} +1 -1
  21. package/dist/deck-client/assets/{chunk-EDXVE4YY-C_CpORb3.js → chunk-EDXVE4YY-94yZIUI8.js} +1 -1
  22. package/dist/deck-client/assets/{chunk-FMBD7UC4-Bg5RoVC-.js → chunk-FMBD7UC4-PnZ9v6ey.js} +1 -1
  23. package/dist/deck-client/assets/{chunk-OYMX7WX6-DhTwgQwd.js → chunk-OYMX7WX6-DXrWNOsV.js} +1 -1
  24. package/dist/deck-client/assets/{chunk-QZHKN3VN-C5VLMaFa.js → chunk-QZHKN3VN-CsIGIDKX.js} +1 -1
  25. package/dist/deck-client/assets/{chunk-YZCP3GAM-NAGHy4Sr.js → chunk-YZCP3GAM-DVkBO9tn.js} +1 -1
  26. package/dist/deck-client/assets/classDiagram-6PBFFD2Q-DFCaeF-7.js +1 -0
  27. package/dist/deck-client/assets/classDiagram-v2-HSJHXN6E-DFCaeF-7.js +1 -0
  28. package/dist/deck-client/assets/clone-GCEVRScB.js +1 -0
  29. package/dist/deck-client/assets/{cose-bilkent-S5V4N54A-CpUczjZk.js → cose-bilkent-S5V4N54A-m126Oh3b.js} +1 -1
  30. package/dist/deck-client/assets/{dagre-KV5264BT-BOvb07MG.js → dagre-KV5264BT-C2aig8U5.js} +1 -1
  31. package/dist/deck-client/assets/{diagram-5BDNPKRD-BPxwTiC-.js → diagram-5BDNPKRD-CKpoRfGn.js} +1 -1
  32. package/dist/deck-client/assets/{diagram-G4DWMVQ6-Dz_gsHgx.js → diagram-G4DWMVQ6-Cjh115Ep.js} +1 -1
  33. package/dist/deck-client/assets/{diagram-MMDJMWI5-B7z-oVTW.js → diagram-MMDJMWI5-DKlBv_2L.js} +1 -1
  34. package/dist/deck-client/assets/{diagram-TYMM5635-CAIAglLQ.js → diagram-TYMM5635-CdBh4cEn.js} +1 -1
  35. package/dist/deck-client/assets/{erDiagram-SMLLAGMA-BiViTWF3.js → erDiagram-SMLLAGMA-56pn_93p.js} +1 -1
  36. package/dist/deck-client/assets/{flowDiagram-DWJPFMVM-DYVemp0H.js → flowDiagram-DWJPFMVM-BtV3M5xJ.js} +1 -1
  37. package/dist/deck-client/assets/{ganttDiagram-T4ZO3ILL-Chc1Iyu1.js → ganttDiagram-T4ZO3ILL-DTIsC6Zg.js} +1 -1
  38. package/dist/deck-client/assets/{gitGraphDiagram-UUTBAWPF-B7eFgaj5.js → gitGraphDiagram-UUTBAWPF-CJYeyCLe.js} +1 -1
  39. package/dist/deck-client/assets/{graph-CKaIoNwb.js → graph-BDvMu1Ss.js} +1 -1
  40. package/dist/deck-client/assets/index-D4eSxcBn.css +1 -0
  41. package/dist/deck-client/assets/{index-BRawc7RA.js → index-QnGVE9PZ.js} +83 -83
  42. package/dist/deck-client/assets/{infoDiagram-42DDH7IO-BxsVq7vO.js → infoDiagram-42DDH7IO-BWyKJnpW.js} +1 -1
  43. package/dist/deck-client/assets/{ishikawaDiagram-UXIWVN3A-DAM7vPwa.js → ishikawaDiagram-UXIWVN3A-DXYkdO3T.js} +1 -1
  44. package/dist/deck-client/assets/{journeyDiagram-VCZTEJTY-Xe20Nf7R.js → journeyDiagram-VCZTEJTY-C2zBr-J5.js} +1 -1
  45. package/dist/deck-client/assets/{kanban-definition-6JOO6SKY-DS8YguzB.js → kanban-definition-6JOO6SKY-CdoYLS4Z.js} +1 -1
  46. package/dist/deck-client/assets/{layout-DKMBpzR-.js → layout-vOnxnCQU.js} +1 -1
  47. package/dist/deck-client/assets/{linear-DTNtBg5h.js → linear-B0J0WCGz.js} +1 -1
  48. package/dist/deck-client/assets/{min-C4DrxCcA.js → min-B0AXlT9L.js} +1 -1
  49. package/dist/deck-client/assets/{mindmap-definition-QFDTVHPH-B4nEtsw5.js → mindmap-definition-QFDTVHPH-oAybLedr.js} +1 -1
  50. package/dist/deck-client/assets/{pieDiagram-DEJITSTG-BzHdGNu5.js → pieDiagram-DEJITSTG-BjHyHxGk.js} +1 -1
  51. package/dist/deck-client/assets/{quadrantDiagram-34T5L4WZ-CaX0SD4-.js → quadrantDiagram-34T5L4WZ-dtluDZXs.js} +1 -1
  52. package/dist/deck-client/assets/{requirementDiagram-MS252O5E-QeG4p2ni.js → requirementDiagram-MS252O5E-Cq8l7bOl.js} +1 -1
  53. package/dist/deck-client/assets/{sankeyDiagram-XADWPNL6-BoAwgAj-.js → sankeyDiagram-XADWPNL6-C1Vih91z.js} +1 -1
  54. package/dist/deck-client/assets/{sequenceDiagram-FGHM5R23-Dn4pYYgu.js → sequenceDiagram-FGHM5R23-CYkd7oQK.js} +1 -1
  55. package/dist/deck-client/assets/{stateDiagram-FHFEXIEX-Is6KRmQV.js → stateDiagram-FHFEXIEX-CtyG8wBK.js} +1 -1
  56. package/dist/deck-client/assets/stateDiagram-v2-QKLJ7IA2-BLyKWfcN.js +1 -0
  57. package/dist/deck-client/assets/{timeline-definition-GMOUNBTQ-v64IZGuY.js → timeline-definition-GMOUNBTQ-DZIxSyd1.js} +1 -1
  58. package/dist/deck-client/assets/{vennDiagram-DHZGUBPP-noh9eouF.js → vennDiagram-DHZGUBPP-Ct4JVRDM.js} +1 -1
  59. package/dist/deck-client/assets/{wardley-RL74JXVD-cJ_1is2S.js → wardley-RL74JXVD-V29ycxOW.js} +1 -1
  60. package/dist/deck-client/assets/{wardleyDiagram-NUSXRM2D-DxR4j737.js → wardleyDiagram-NUSXRM2D-D-Ua6Cmi.js} +1 -1
  61. package/dist/deck-client/assets/{xychartDiagram-5P7HB3ND-B26vodaL.js → xychartDiagram-5P7HB3ND-BPCOuRVl.js} +1 -1
  62. package/dist/deck-client/index.html +2 -2
  63. package/dist/server/beacon-monitor-entry.js +106 -24
  64. package/dist/server/chart-serve.js +544 -247
  65. package/dist/server/cli.js +743 -324
  66. package/dist/server/council-entry.js +16 -3
  67. package/dist/server/council-serve.js +15 -2
  68. package/dist/server/deck-mcp-entry.js +270 -108
  69. package/dist/server/deck-serve.js +101 -23
  70. package/dist/server/fb-wizard.js +0 -0
  71. package/dist/server/graph-mcp-entry.js +866 -357
  72. package/dist/server/init-entry.js +152 -25
  73. package/dist/server/orbit-entry.js +91 -7
  74. package/dist/server/radar-docker-init-entry.js +0 -0
  75. package/dist/server/radar-entrypoint-entry.js +0 -0
  76. package/dist/server/radar-teardown-entry.js +0 -0
  77. package/dist/server/recall-entry.js +94 -12
  78. package/dist/server/rover-entry.js +44 -1
  79. package/package.json +23 -22
  80. package/scaffolds/ls-marketplace/plugins/kit/commands/activate-statusline.md +8 -7
  81. package/scaffolds/ls-marketplace/plugins/kit/commands/deactivate-statusline.md +2 -2
  82. package/scaffolds/ls-marketplace/plugins/kit/skills/comms/SKILL.md +88 -0
  83. package/scaffolds/ls-marketplace/plugins/kit/skills/project-info/SKILL.md +88 -0
  84. package/scaffolds/ls-marketplace/plugins/kit/skills/slides/SKILL.md +118 -0
  85. package/scaffolds/migrate-safety/scripts/migrate-with-backup.sh +0 -0
  86. package/scaffolds/recall-hook/scripts/ensure-recall.sh +0 -0
  87. package/scaffolds/statusline/statusline-base.sh +20 -0
  88. package/scaffolds/statusline/statusline-mcp.sh +68 -19
  89. package/scaffolds/statusline/statusline-wrapper.sh +12 -9
  90. package/dist/chart-client/assets/index-B6rR0CWx.css +0 -1
  91. package/dist/client/assets/index-D6uX1lQe.css +0 -32
  92. package/dist/council-client/assets/index-CleYLarJ.css +0 -1
  93. package/dist/deck-client/assets/channel-CuSee7GO.js +0 -1
  94. package/dist/deck-client/assets/classDiagram-6PBFFD2Q-_kTisqzs.js +0 -1
  95. package/dist/deck-client/assets/classDiagram-v2-HSJHXN6E-_kTisqzs.js +0 -1
  96. package/dist/deck-client/assets/clone-kb3zkY60.js +0 -1
  97. package/dist/deck-client/assets/index-55P73aS_.css +0 -1
  98. package/dist/deck-client/assets/stateDiagram-v2-QKLJ7IA2-Cy45Ttqq.js +0 -1
  99. /package/dist/chart-client/assets/{index-C_xCi3gW.js → index-Dzlj-oCj.js} +0 -0
  100. /package/dist/client/assets/{index-CRecYFUA.js → index-tTg_ezUF.js} +0 -0
  101. /package/dist/council-client/assets/{index-DO-Vn15O.js → index-B1v46vTE.js} +0 -0
@@ -961,14 +961,14 @@ class ct {
961
961
  const m = document.createElement("label");
962
962
  m.className = "beacon-label", m.textContent = t.severityLabel, this.severitiesContainer = document.createElement("div"), this.severitiesContainer.className = "beacon-severity";
963
963
  for (const g of n) {
964
- const u = document.createElement("label");
965
- u.className = "beacon-severity-opt", u.dataset.sev = g;
966
- const v = document.createElement("input");
967
- v.type = "radio", v.name = "beacon-severity", v.value = g, g === this.severitySelected && (v.checked = !0, u.classList.add("selected")), v.addEventListener("change", () => this.setSeverity(g)), u.appendChild(v), u.appendChild(document.createTextNode(this.severityLabel(g))), this.severitiesContainer.appendChild(u);
964
+ const f = document.createElement("label");
965
+ f.className = "beacon-severity-opt", f.dataset.sev = g;
966
+ const y = document.createElement("input");
967
+ y.type = "radio", y.name = "beacon-severity", y.value = g, g === this.severitySelected && (y.checked = !0, f.classList.add("selected")), y.addEventListener("change", () => this.setSeverity(g)), f.appendChild(y), f.appendChild(document.createTextNode(this.severityLabel(g))), this.severitiesContainer.appendChild(f);
968
968
  }
969
969
  l.appendChild(m), l.appendChild(this.severitiesContainer), s.appendChild(l), this.pluginSlot = document.createElement("div"), this.pluginSlot.className = "beacon-plugin-panels", s.appendChild(this.pluginSlot), this.statusEl = document.createElement("div"), this.statusEl.className = "beacon-status", s.appendChild(this.statusEl);
970
- const p = document.createElement("div");
971
- p.className = "beacon-actions", this.submitBtn = document.createElement("button"), this.submitBtn.type = "button", this.submitBtn.className = "beacon-btn primary", this.submitBtn.textContent = t.send, this.submitBtn.addEventListener("click", () => this.callbacks.onSubmit()), p.appendChild(this.submitBtn), s.appendChild(p), this.root.addEventListener("close", () => {
970
+ const u = document.createElement("div");
971
+ u.className = "beacon-actions", this.submitBtn = document.createElement("button"), this.submitBtn.type = "button", this.submitBtn.className = "beacon-btn primary", this.submitBtn.textContent = t.send, this.submitBtn.addEventListener("click", () => this.callbacks.onSubmit()), u.appendChild(this.submitBtn), s.appendChild(u), this.root.addEventListener("close", () => {
972
972
  if (this.expectedSuppressedCloses > 0) {
973
973
  this.expectedSuppressedCloses -= 1;
974
974
  return;
@@ -1260,12 +1260,12 @@ function wt() {
1260
1260
  }
1261
1261
  t.style.display = "", r.textContent = `${l} runtime error${l !== 1 ? "s" : ""} captured`, i.innerHTML = "";
1262
1262
  for (const m of d) {
1263
- const p = document.createElement("li");
1264
- p.className = "beacon-events-item";
1263
+ const u = document.createElement("li");
1264
+ u.className = "beacon-events-item";
1265
1265
  const g = document.createElement("span");
1266
1266
  g.className = `beacon-events-kind ${m.kind === "unhandledrejection" ? "rejection" : "error"}`, g.textContent = m.kind === "unhandledrejection" ? "REJ" : "ERR";
1267
- const u = document.createElement("span");
1268
- u.className = "beacon-events-msg", u.textContent = m.message, p.appendChild(g), p.appendChild(u), i.appendChild(p);
1267
+ const f = document.createElement("span");
1268
+ f.className = "beacon-events-msg", f.textContent = m.message, u.appendChild(g), u.appendChild(f), i.appendChild(u);
1269
1269
  }
1270
1270
  }
1271
1271
  s();
@@ -1317,7 +1317,7 @@ function At(e) {
1317
1317
  try {
1318
1318
  const l = Array.from(i.classList).join(" ");
1319
1319
  Array.from(c.children).filter(
1320
- (p) => p.tagName === i.tagName && Array.from(p.classList).join(" ") === l
1320
+ (u) => u.tagName === i.tagName && Array.from(u.classList).join(" ") === l
1321
1321
  ).length > 1 && (d = `${i.tagName.toLowerCase()}:nth-of-type(${kt(i)})`);
1322
1322
  } catch {
1323
1323
  }
@@ -1466,10 +1466,10 @@ async function _e(e, t, n, o = jt) {
1466
1466
  for (const d of t) {
1467
1467
  const l = Vt(d);
1468
1468
  if (!l) continue;
1469
- const m = l.x * s, p = l.y * c, g = l.w * s, u = l.h * c;
1470
- i.lineWidth = Ft, i.strokeStyle = o, i.strokeRect(m, p, g, u);
1471
- const v = m + g, S = p;
1472
- i.beginPath(), i.fillStyle = o, i.arc(v, S, Ht, 0, Math.PI * 2), i.fill(), i.lineWidth = 3, i.strokeStyle = Ut, i.stroke(), i.fillStyle = qt, i.font = "bold 16px system-ui, -apple-system, sans-serif", i.textAlign = "center", i.textBaseline = "middle", i.fillText(String(d.number), v, S + 1);
1469
+ const m = l.x * s, u = l.y * c, g = l.w * s, f = l.h * c;
1470
+ i.lineWidth = Ft, i.strokeStyle = o, i.strokeRect(m, u, g, f);
1471
+ const y = m + g, S = u;
1472
+ i.beginPath(), i.fillStyle = o, i.arc(y, S, Ht, 0, Math.PI * 2), i.fill(), i.lineWidth = 3, i.strokeStyle = Ut, i.stroke(), i.fillStyle = qt, i.font = "bold 16px system-ui, -apple-system, sans-serif", i.textAlign = "center", i.textBaseline = "middle", i.fillText(String(d.number), y, S + 1);
1473
1473
  }
1474
1474
  return r.toDataURL("image/jpeg", 0.85);
1475
1475
  }
@@ -1544,13 +1544,13 @@ function Xt(e = {}) {
1544
1544
  margin-right: 8px;
1545
1545
  "></span>`;
1546
1546
  function c(h) {
1547
- return h.replace(/[<>&]/g, (f) => ({ "<": "&lt;", ">": "&gt;", "&": "&amp;" })[f]);
1547
+ return h.replace(/[<>&]/g, (p) => ({ "<": "&lt;", ">": "&gt;", "&": "&amp;" })[p]);
1548
1548
  }
1549
1549
  document.body.appendChild(r), document.body.appendChild(i);
1550
1550
  const d = /* @__PURE__ */ new Map();
1551
1551
  function l(h) {
1552
- const f = document.createElement("div");
1553
- return f.className = D, f.setAttribute("aria-hidden", "true"), f.style.cssText = [
1552
+ const p = document.createElement("div");
1553
+ return p.className = D, p.setAttribute("aria-hidden", "true"), p.style.cssText = [
1554
1554
  "position: fixed",
1555
1555
  "width: 24px",
1556
1556
  "height: 24px",
@@ -1565,7 +1565,7 @@ function Xt(e = {}) {
1565
1565
  "box-shadow: 0 2px 8px hsl(0 0% 0% / 0.4)",
1566
1566
  "pointer-events: none",
1567
1567
  "z-index: 2147483646"
1568
- ].join("; "), f.textContent = String(h), document.body.appendChild(f), f;
1568
+ ].join("; "), p.textContent = String(h), document.body.appendChild(p), p;
1569
1569
  }
1570
1570
  function m() {
1571
1571
  const h = document.createElement("div");
@@ -1578,56 +1578,56 @@ function Xt(e = {}) {
1578
1578
  "z-index: 2147483645"
1579
1579
  ].join("; "), document.body.appendChild(h), h;
1580
1580
  }
1581
- function p(h, f, E) {
1581
+ function u(h, p, E) {
1582
1582
  const b = E ? "0.5" : "1";
1583
- h.outline.style.display = "block", h.outline.style.opacity = b, h.outline.style.left = `${f.x}px`, h.outline.style.top = `${f.y}px`, h.outline.style.width = `${f.w}px`, h.outline.style.height = `${f.h}px`, h.marker.style.display = "flex", h.marker.style.opacity = b, h.marker.style.left = `${f.x + f.w - 12}px`, h.marker.style.top = `${Math.max(2, f.y - 12)}px`;
1583
+ h.outline.style.display = "block", h.outline.style.opacity = b, h.outline.style.left = `${p.x}px`, h.outline.style.top = `${p.y}px`, h.outline.style.width = `${p.w}px`, h.outline.style.height = `${p.h}px`, h.marker.style.display = "flex", h.marker.style.opacity = b, h.marker.style.left = `${p.x + p.w - 12}px`, h.marker.style.top = `${Math.max(2, p.y - 12)}px`;
1584
1584
  }
1585
1585
  function g(h) {
1586
1586
  h.marker.style.display = "none", h.outline.style.display = "none";
1587
1587
  }
1588
- function u() {
1588
+ function f() {
1589
1589
  d.forEach((h) => {
1590
- let f = h.anchor.target;
1591
- if (f && !f.isConnected && (f = null), !f && h.anchor.selector) {
1590
+ let p = h.anchor.target;
1591
+ if (p && !p.isConnected && (p = null), !p && h.anchor.selector) {
1592
1592
  try {
1593
- f = document.querySelector(h.anchor.selector);
1593
+ p = document.querySelector(h.anchor.selector);
1594
1594
  } catch {
1595
- f = null;
1595
+ p = null;
1596
1596
  }
1597
- f && (h.anchor.target = f);
1597
+ p && (h.anchor.target = p);
1598
1598
  }
1599
- if (f) {
1600
- const b = f.getBoundingClientRect();
1599
+ if (p) {
1600
+ const b = p.getBoundingClientRect();
1601
1601
  if (b.width > 0 || b.height > 0) {
1602
- p(h, { x: b.left, y: b.top, w: b.width, h: b.height }, !1);
1602
+ u(h, { x: b.left, y: b.top, w: b.width, h: b.height }, !1);
1603
1603
  return;
1604
1604
  }
1605
1605
  }
1606
1606
  const E = h.anchor.fallbackRect;
1607
1607
  if (E && (E.w > 0 || E.h > 0)) {
1608
- p(h, E, !0);
1608
+ u(h, E, !0);
1609
1609
  return;
1610
1610
  }
1611
1611
  g(h);
1612
1612
  });
1613
1613
  }
1614
- let v = null;
1614
+ let y = null;
1615
1615
  function S() {
1616
- v === null && (v = requestAnimationFrame(() => {
1617
- v = null, u();
1616
+ y === null && (y = requestAnimationFrame(() => {
1617
+ y = null, f();
1618
1618
  }));
1619
1619
  }
1620
1620
  return window.addEventListener("scroll", S, !0), window.addEventListener("resize", S), {
1621
- addPin(h, f) {
1621
+ addPin(h, p) {
1622
1622
  const E = l(h), b = m();
1623
- d.set(h, { anchor: f, marker: E, outline: b }), u();
1623
+ d.set(h, { anchor: p, marker: E, outline: b }), f();
1624
1624
  },
1625
1625
  setLoading(h) {
1626
1626
  h ? i.innerHTML = s + c(h) : i.textContent = he;
1627
1627
  },
1628
1628
  destroy() {
1629
- window.removeEventListener("scroll", S, !0), window.removeEventListener("resize", S), v !== null && cancelAnimationFrame(v), r.remove(), i.remove(), a.remove(), d.forEach(({ marker: h, outline: f }) => {
1630
- h.remove(), f.remove();
1629
+ window.removeEventListener("scroll", S, !0), window.removeEventListener("resize", S), y !== null && cancelAnimationFrame(y), r.remove(), i.remove(), a.remove(), d.forEach(({ marker: h, outline: p }) => {
1630
+ h.remove(), p.remove();
1631
1631
  }), d.clear();
1632
1632
  }
1633
1633
  };
@@ -1661,10 +1661,10 @@ function Jt(e) {
1661
1661
  }
1662
1662
  document.addEventListener("keydown", d, !0), n.addEventListener("click", (l) => {
1663
1663
  var g;
1664
- const p = (g = l.target.closest("[data-action]")) == null ? void 0 : g.getAttribute("data-action");
1665
- if (p && (l.stopPropagation(), p === "cancel" && c({ cancelled: "pin" }), p === "save")) {
1666
- const u = s.value.trim();
1667
- c({ ...u ? { note: u } : {}, cancelled: !1 });
1664
+ const u = (g = l.target.closest("[data-action]")) == null ? void 0 : g.getAttribute("data-action");
1665
+ if (u && (l.stopPropagation(), u === "cancel" && c({ cancelled: "pin" }), u === "save")) {
1666
+ const f = s.value.trim();
1667
+ c({ ...f ? { note: f } : {}, cancelled: !1 });
1668
1668
  }
1669
1669
  }), s.addEventListener("keydown", (l) => {
1670
1670
  if (l.key === "Enter" && (l.metaKey || l.ctrlKey)) {
@@ -1722,7 +1722,7 @@ function en(e) {
1722
1722
  }
1723
1723
  return !1;
1724
1724
  }
1725
- function p(b) {
1725
+ function u(b) {
1726
1726
  return b.tagName.includes("-");
1727
1727
  }
1728
1728
  function g(b, x) {
@@ -1732,17 +1732,17 @@ function en(e) {
1732
1732
  r.style.display = "block", i.style.display = "block";
1733
1733
  for (const T of A) {
1734
1734
  if (m(T)) continue;
1735
- let y = T, L = 16;
1736
- for (; y.shadowRoot && !p(y) && L-- > 0; ) {
1737
- const M = (((k = (C = y.shadowRoot).elementsFromPoint) == null ? void 0 : k.call(C, b, x)) ?? []).find((O) => !m(O) && O !== y);
1735
+ let v = T, L = 16;
1736
+ for (; v.shadowRoot && !u(v) && L-- > 0; ) {
1737
+ const M = (((k = (C = v.shadowRoot).elementsFromPoint) == null ? void 0 : k.call(C, b, x)) ?? []).find((O) => !m(O) && O !== v);
1738
1738
  if (!M) break;
1739
- y = M;
1739
+ v = M;
1740
1740
  }
1741
- return y;
1741
+ return v;
1742
1742
  }
1743
1743
  return null;
1744
1744
  }
1745
- function u(b) {
1745
+ function f(b) {
1746
1746
  const x = b.getBoundingClientRect();
1747
1747
  r.style.left = `${x.left}px`, r.style.top = `${x.top}px`, r.style.width = `${x.width}px`, r.style.height = `${x.height}px`;
1748
1748
  const A = b.tagName.toLowerCase(), C = b.classList.length > 0 ? "." + Array.from(b.classList).slice(0, 2).join(".") : "";
@@ -1750,9 +1750,9 @@ function en(e) {
1750
1750
  const k = x.top - 22;
1751
1751
  i.style.left = `${x.left}px`, i.style.top = `${k >= 0 ? k : x.bottom + 4}px`;
1752
1752
  }
1753
- function v(b) {
1753
+ function y(b) {
1754
1754
  const x = g(b.clientX, b.clientY);
1755
- x ? (u(x), n == null || n(x)) : (r.style.display = "none", i.style.display = "none", n == null || n(null));
1755
+ x ? (f(x), n == null || n(x)) : (r.style.display = "none", i.style.display = "none", n == null || n(null));
1756
1756
  }
1757
1757
  function S(b) {
1758
1758
  if (b.button !== 0) return;
@@ -1763,13 +1763,13 @@ function en(e) {
1763
1763
  function h(b) {
1764
1764
  b.preventDefault(), b.stopPropagation();
1765
1765
  }
1766
- function f(b) {
1766
+ function p(b) {
1767
1767
  b.key === "Escape" && (b.preventDefault(), E(null));
1768
1768
  }
1769
1769
  function E(b) {
1770
- c || (c = !0, document.removeEventListener("mousemove", v, !0), document.removeEventListener("pointerdown", S, !0), document.removeEventListener("click", h, !0), document.removeEventListener("mouseup", h, !0), document.removeEventListener("keydown", f, !0), r.remove(), i.remove(), document.body.style.cursor = s, d(b));
1770
+ c || (c = !0, document.removeEventListener("mousemove", y, !0), document.removeEventListener("pointerdown", S, !0), document.removeEventListener("click", h, !0), document.removeEventListener("mouseup", h, !0), document.removeEventListener("keydown", p, !0), r.remove(), i.remove(), document.body.style.cursor = s, d(b));
1771
1771
  }
1772
- return document.addEventListener("mousemove", v, !0), document.addEventListener("pointerdown", S, !0), document.addEventListener("click", h, !0), document.addEventListener("mouseup", h, !0), document.addEventListener("keydown", f, !0), {
1772
+ return document.addEventListener("mousemove", y, !0), document.addEventListener("pointerdown", S, !0), document.addEventListener("click", h, !0), document.addEventListener("mouseup", h, !0), document.addEventListener("keydown", p, !0), {
1773
1773
  cancel: () => E(null),
1774
1774
  promise: l
1775
1775
  };
@@ -1827,6 +1827,12 @@ function on() {
1827
1827
  window.scrollTo(t, n);
1828
1828
  };
1829
1829
  }
1830
+ function rn() {
1831
+ const e = document.createElement("style");
1832
+ return e.setAttribute("data-beacon-capture", ""), e.textContent = "*,*::before,*::after{animation:none !important;transition:none !important;}", (document.head ?? document.documentElement).appendChild(e), () => {
1833
+ e.remove();
1834
+ };
1835
+ }
1830
1836
  let ye = Promise.resolve();
1831
1837
  async function De(e = {}) {
1832
1838
  const t = ye;
@@ -1835,71 +1841,75 @@ async function De(e = {}) {
1835
1841
  n = o;
1836
1842
  });
1837
1843
  try {
1838
- return await t, await rn(e, n);
1844
+ return await t, await an(e, n);
1839
1845
  } catch (o) {
1840
1846
  throw n(), o;
1841
1847
  }
1842
1848
  }
1843
- async function rn(e, t) {
1849
+ async function an(e, t) {
1844
1850
  const {
1845
1851
  quality: n = 0.7,
1846
1852
  pixelRatio: o = Math.min(window.devicePixelRatio || 1, 2),
1847
1853
  excludeShadowRoot: a,
1848
1854
  excludeHosts: r,
1849
1855
  fullPage: i = !0
1850
- } = e, s = await tn(), c = a || r != null && r.length ? (g) => {
1851
- let u = g;
1852
- for (; u; ) {
1853
- if (a && u === a.host || r && u instanceof Element && r.includes(u) || u instanceof Element && u.classList.contains("beacon-no-capture")) return !1;
1854
- u = u.parentNode;
1856
+ } = e, s = await tn(), c = a || r != null && r.length ? (f) => {
1857
+ let y = f;
1858
+ for (; y; ) {
1859
+ if (a && y === a.host || r && y instanceof Element && r.includes(y) || y instanceof Element && y.classList.contains("beacon-no-capture")) return !1;
1860
+ y = y.parentNode;
1855
1861
  }
1856
1862
  return !0;
1857
1863
  } : void 0, d = nn(), l = i ? on() : () => {
1858
- };
1859
- let m = !1;
1860
- const p = () => {
1861
- if (!m) {
1862
- m = !0;
1864
+ }, m = rn();
1865
+ let u = !1;
1866
+ const g = () => {
1867
+ if (!u) {
1868
+ u = !0;
1863
1869
  try {
1864
- l();
1870
+ m();
1865
1871
  } finally {
1866
1872
  try {
1867
- d();
1873
+ l();
1868
1874
  } finally {
1869
- t();
1875
+ try {
1876
+ d();
1877
+ } finally {
1878
+ t();
1879
+ }
1870
1880
  }
1871
1881
  }
1872
1882
  }
1873
1883
  };
1874
1884
  try {
1875
- i && await new Promise((h) => requestAnimationFrame(() => h()));
1876
- const g = document.documentElement, u = i ? Math.max(g.scrollWidth, window.innerWidth) : window.innerWidth, v = i ? Math.max(g.scrollHeight, window.innerHeight) : window.innerHeight;
1877
- return { dataUrl: await s.toJpeg(g, {
1885
+ i && await new Promise((p) => requestAnimationFrame(() => p()));
1886
+ const f = document.documentElement, y = i ? Math.max(f.scrollWidth, window.innerWidth) : window.innerWidth, S = i ? Math.max(f.scrollHeight, window.innerHeight) : window.innerHeight;
1887
+ return { dataUrl: await s.toJpeg(f, {
1878
1888
  quality: n,
1879
1889
  pixelRatio: o,
1880
1890
  cacheBust: !0,
1881
1891
  ...c ? { filter: c } : {},
1882
1892
  imagePlaceholder: q,
1883
- width: u,
1884
- height: v,
1893
+ width: y,
1894
+ height: S,
1885
1895
  style: { transform: "none" }
1886
- }), width: u, height: v, pixelRatio: o, dispose: p };
1887
- } catch (g) {
1888
- throw p(), g;
1896
+ }), width: y, height: S, pixelRatio: o, dispose: g };
1897
+ } catch (f) {
1898
+ throw g(), f;
1889
1899
  }
1890
1900
  }
1891
1901
  let ee = null;
1892
- function an(e) {
1902
+ function sn(e) {
1893
1903
  ee = e;
1894
1904
  }
1895
- function sn() {
1905
+ function cn() {
1896
1906
  return ee;
1897
1907
  }
1898
1908
  function R() {
1899
1909
  ee = null;
1900
1910
  }
1901
1911
  const ve = "http://www.w3.org/2000/svg";
1902
- function cn() {
1912
+ function ln() {
1903
1913
  const e = document.createElementNS(ve, "svg");
1904
1914
  e.setAttribute("viewBox", "0 0 24 24"), e.setAttribute("fill", "none"), e.setAttribute("stroke", "currentColor"), e.setAttribute("stroke-width", "2"), e.setAttribute("stroke-linecap", "round"), e.setAttribute("stroke-linejoin", "round"), e.setAttribute("aria-hidden", "true");
1905
1915
  const t = [
@@ -1913,26 +1923,26 @@ function cn() {
1913
1923
  }
1914
1924
  return e;
1915
1925
  }
1916
- function ln(e = {}) {
1926
+ function dn(e = {}) {
1917
1927
  const t = e.maxPins ?? 20;
1918
1928
  let n = [], o = /* @__PURE__ */ new WeakMap(), a = null, r = 0, i = null, s = null, c = null, d = null;
1919
1929
  function l() {
1920
1930
  n = [], o = /* @__PURE__ */ new WeakMap(), a = null, r += 1, R(), S(), h();
1921
1931
  }
1922
1932
  function m() {
1923
- const f = document.querySelector("launch-kit-beacon");
1924
- return (f == null ? void 0 : f.shadowRoot) ?? null;
1933
+ const p = document.querySelector("launch-kit-beacon");
1934
+ return (p == null ? void 0 : p.shadowRoot) ?? null;
1925
1935
  }
1926
- function p() {
1936
+ function u() {
1927
1937
  if (typeof window > "u") return e.accent ?? "#0ea5e9";
1928
1938
  if (e.accent) return e.accent;
1929
- const f = document.querySelector("launch-kit-beacon");
1930
- return f && getComputedStyle(f).getPropertyValue("--beacon-accent").trim() || "#0ea5e9";
1939
+ const p = document.querySelector("launch-kit-beacon");
1940
+ return p && getComputedStyle(p).getPropertyValue("--beacon-accent").trim() || "#0ea5e9";
1931
1941
  }
1932
- async function g(f) {
1942
+ async function g(p) {
1933
1943
  const E = m();
1934
1944
  if (!E) return;
1935
- const b = p(), x = await f.requestMode("pickElement"), A = Xt({ accent: b });
1945
+ const b = u(), x = await p.requestMode("pickElement"), A = Xt({ accent: b });
1936
1946
  for (const C of n) {
1937
1947
  const k = o.get(C);
1938
1948
  k && A.addPin(C.number, {
@@ -1946,8 +1956,8 @@ function ln(e = {}) {
1946
1956
  for (; C && !(n.length >= t); ) {
1947
1957
  const T = await en({ shadowRoot: E, accent: b }).promise;
1948
1958
  if (!T) break;
1949
- const y = T.getBoundingClientRect(), L = await Jt({
1950
- anchor: { x: y.left, y: y.bottom },
1959
+ const v = T.getBoundingClientRect(), L = await Jt({
1960
+ anchor: { x: v.left, y: v.bottom },
1951
1961
  pinNumber: n.length + 1
1952
1962
  });
1953
1963
  if (L.cancelled === "all") {
@@ -1966,64 +1976,64 @@ function ln(e = {}) {
1966
1976
  fallbackRect: I.boundingRect
1967
1977
  });
1968
1978
  }
1969
- n.length > 0 ? (A.setLoading("Capturing screenshot…"), await new Promise((k) => requestAnimationFrame(() => k())), await u()) : (a = null, R());
1979
+ n.length > 0 ? (A.setLoading("Capturing screenshot…"), await new Promise((k) => requestAnimationFrame(() => k())), await f()) : (a = null, R());
1970
1980
  } finally {
1971
1981
  A.destroy(), x();
1972
1982
  }
1973
1983
  S(), h();
1974
1984
  }
1975
- async function u() {
1976
- const f = ++r;
1985
+ async function f() {
1986
+ const p = ++r;
1977
1987
  if (n.length === 0) {
1978
1988
  a = null, R(), h();
1979
1989
  return;
1980
1990
  }
1981
- const E = p();
1991
+ const E = u();
1982
1992
  try {
1983
1993
  const b = Array.from(document.querySelectorAll("launch-kit-beacon")), x = await De({ excludeHosts: b });
1984
1994
  try {
1985
- if (f !== r) return;
1995
+ if (p !== r) return;
1986
1996
  const A = n.map((T) => ({
1987
1997
  number: T.number,
1988
1998
  selector: T.selector,
1989
1999
  boundingRect: T.boundingRect,
1990
2000
  ...o.get(T) ? { liveElement: o.get(T) } : {}
1991
2001
  })), C = { w: x.width, h: x.height, dpr: x.pixelRatio }, k = await _e(x.dataUrl, A, C, E);
1992
- if (f !== r) return;
1993
- a = k, an({ dataUrl: k, mime: "image/jpeg" });
2002
+ if (p !== r) return;
2003
+ a = k, sn({ dataUrl: k, mime: "image/jpeg" });
1994
2004
  } finally {
1995
2005
  x.dispose();
1996
2006
  }
1997
2007
  } catch {
1998
- if (f !== r) return;
2008
+ if (p !== r) return;
1999
2009
  a = null, R();
2000
2010
  }
2001
- f === r && h();
2011
+ p === r && h();
2002
2012
  }
2003
- function v(f) {
2004
- const E = n.findIndex((b) => b.number === f);
2013
+ function y(p) {
2014
+ const E = n.findIndex((b) => b.number === p);
2005
2015
  E !== -1 && (n.splice(E, 1), n.forEach((b, x) => {
2006
2016
  b.number = x + 1;
2007
- }), a = null, R(), S(), h(), u());
2017
+ }), a = null, R(), S(), h(), f());
2008
2018
  }
2009
2019
  function S() {
2010
2020
  if (i && (i.textContent = `Pins (${n.length})`, i.style.display = n.length === 0 ? "none" : ""), d && (d.textContent = n.length === 0 ? "Annotate elements" : "Add another pin"), !!s) {
2011
2021
  s.innerHTML = "", s.style.display = n.length === 0 ? "none" : "";
2012
- for (const f of n) {
2022
+ for (const p of n) {
2013
2023
  const E = document.createElement("div");
2014
- E.className = "beacon-pin-item", E.dataset.pin = String(f.number);
2024
+ E.className = "beacon-pin-item", E.dataset.pin = String(p.number);
2015
2025
  const b = document.createElement("span");
2016
- b.className = "beacon-pin-num", b.textContent = String(f.number);
2026
+ b.className = "beacon-pin-num", b.textContent = String(p.number);
2017
2027
  const x = document.createElement("div");
2018
2028
  x.className = "beacon-pin-meta";
2019
2029
  const A = document.createElement("div");
2020
- A.className = "beacon-pin-selector", A.title = f.selector, A.textContent = f.selector || f.tagName;
2030
+ A.className = "beacon-pin-selector", A.title = p.selector, A.textContent = p.selector || p.tagName;
2021
2031
  const C = document.createElement("input");
2022
- C.type = "text", C.className = "beacon-pin-note-input", C.placeholder = "Add a note (optional)", C.value = f.note ?? "", C.addEventListener("input", () => {
2023
- C.value.trim() ? f.note = C.value : delete f.note;
2032
+ C.type = "text", C.className = "beacon-pin-note-input", C.placeholder = "Add a note (optional)", C.value = p.note ?? "", C.addEventListener("input", () => {
2033
+ C.value.trim() ? p.note = C.value : delete p.note;
2024
2034
  }), x.appendChild(A), x.appendChild(C);
2025
2035
  const k = document.createElement("button");
2026
- k.type = "button", k.className = "beacon-icon-btn", k.setAttribute("aria-label", `Remove pin ${f.number}`), k.appendChild(cn()), k.addEventListener("click", () => v(f.number)), E.appendChild(b), E.appendChild(x), E.appendChild(k), s.appendChild(E);
2036
+ k.type = "button", k.className = "beacon-icon-btn", k.setAttribute("aria-label", `Remove pin ${p.number}`), k.appendChild(ln()), k.addEventListener("click", () => y(p.number)), E.appendChild(b), E.appendChild(x), E.appendChild(k), s.appendChild(E);
2027
2037
  }
2028
2038
  }
2029
2039
  }
@@ -2032,13 +2042,13 @@ function ln(e = {}) {
2032
2042
  }
2033
2043
  return {
2034
2044
  name: "domEle",
2035
- setupOnce(f) {
2036
- return f.on("close", () => l());
2045
+ setupOnce(p) {
2046
+ return p.on("close", () => l());
2037
2047
  },
2038
- form(f) {
2048
+ form(p) {
2039
2049
  return {
2040
2050
  render: (E) => (i = document.createElement("div"), i.className = "beacon-pin-list-header", E.appendChild(i), s = document.createElement("div"), s.className = "beacon-pin-list", E.appendChild(s), d = document.createElement("button"), d.type = "button", d.className = "beacon-btn secondary beacon-pin-annotate", d.addEventListener("click", () => {
2041
- g(f);
2051
+ g(p);
2042
2052
  }), E.appendChild(d), c = document.createElement("img"), c.className = "beacon-thumb", c.alt = "Annotated screenshot preview", c.style.display = "none", E.appendChild(c), S(), h(), () => {
2043
2053
  i = null, s = null, c = null, d = null;
2044
2054
  })
@@ -2049,14 +2059,14 @@ function ln(e = {}) {
2049
2059
  }
2050
2060
  };
2051
2061
  }
2052
- function dn(e) {
2062
+ function un(e) {
2053
2063
  return !!e && typeof e == "object" && !("v" in e) && "error" in e;
2054
2064
  }
2055
- function un(e = {}) {
2065
+ function pn(e = {}) {
2056
2066
  return {
2057
2067
  name: "domSS",
2058
2068
  async capture(t) {
2059
- const n = sn();
2069
+ const n = cn();
2060
2070
  if (n)
2061
2071
  return { dataUrl: n.dataUrl, mime: n.mime };
2062
2072
  const o = await t.requestMode("hide");
@@ -2068,7 +2078,7 @@ function un(e = {}) {
2068
2078
  excludeHosts: a
2069
2079
  });
2070
2080
  try {
2071
- const i = t.captured("domEle"), s = pn(i), c = { w: r.width, h: r.height, dpr: r.pixelRatio }, d = e.accent ?? fn();
2081
+ const i = t.captured("domEle"), s = fn(i), c = { w: r.width, h: r.height, dpr: r.pixelRatio }, d = e.accent ?? mn();
2072
2082
  return { dataUrl: s.length > 0 ? await _e(r.dataUrl, s, c, d) : r.dataUrl, mime: "image/jpeg" };
2073
2083
  } finally {
2074
2084
  r.dispose();
@@ -2079,8 +2089,8 @@ function un(e = {}) {
2079
2089
  }
2080
2090
  };
2081
2091
  }
2082
- function pn(e) {
2083
- if (!e || dn(e)) return [];
2092
+ function fn(e) {
2093
+ if (!e || un(e)) return [];
2084
2094
  const t = e.pins;
2085
2095
  return Array.isArray(t) ? t.filter((n) => !!n && typeof n == "object").map((n) => ({
2086
2096
  number: Number(n.number) || 0,
@@ -2088,14 +2098,14 @@ function pn(e) {
2088
2098
  boundingRect: n.boundingRect ?? { x: 0, y: 0, w: 0, h: 0 }
2089
2099
  })) : [];
2090
2100
  }
2091
- function fn() {
2101
+ function mn() {
2092
2102
  if (typeof window > "u") return "#0ea5e9";
2093
2103
  const e = document.querySelector("launch-kit-beacon");
2094
2104
  return e && getComputedStyle(e).getPropertyValue("--beacon-accent").trim() || "#0ea5e9";
2095
2105
  }
2096
- const xe = "beacon-no-capture", we = "__lsBeaconMonitorChipPos", mn = "#10b981";
2097
- function hn(e) {
2098
- const t = e.accent ?? mn, n = e.startedAt ?? Date.now(), o = document.createElement("div");
2106
+ const xe = "beacon-no-capture", we = "__lsBeaconMonitorChipPos", hn = "#10b981";
2107
+ function bn(e) {
2108
+ const t = e.accent ?? hn, n = e.startedAt ?? Date.now(), o = document.createElement("div");
2099
2109
  o.className = `${xe} beacon-monitor-overlay-frame`, o.setAttribute("aria-hidden", "true"), o.style.setProperty("--beacon-monitor-accent", t), document.body.appendChild(o);
2100
2110
  const a = document.createElement("div");
2101
2111
  a.className = `${xe} beacon-monitor-overlay-chip`, a.setAttribute("role", "status"), a.setAttribute("aria-label", "Recording — drag to move"), a.style.setProperty("--beacon-monitor-accent", t);
@@ -2113,52 +2123,52 @@ function hn(e) {
2113
2123
  l.type = "button", l.className = "beacon-monitor-overlay-stop", l.textContent = "Stop", l.setAttribute("aria-label", "Stop monitoring"), r.appendChild(i), r.appendChild(s), r.appendChild(c), r.appendChild(d), r.appendChild(l), a.appendChild(r);
2114
2124
  const m = document.createElement("div");
2115
2125
  m.className = "beacon-monitor-overlay-url", e.url ? (m.textContent = e.url, m.title = e.url) : m.style.display = "none", a.appendChild(m), document.body.appendChild(a);
2116
- const p = g() ?? u();
2117
- S(v(p));
2126
+ const u = g() ?? f();
2127
+ S(y(u));
2118
2128
  function g() {
2119
2129
  try {
2120
- const y = localStorage.getItem(we);
2121
- if (!y) return null;
2122
- const L = JSON.parse(y), I = typeof L.x == "number" ? L.x : NaN, M = typeof L.y == "number" ? L.y : NaN;
2130
+ const v = localStorage.getItem(we);
2131
+ if (!v) return null;
2132
+ const L = JSON.parse(v), I = typeof L.x == "number" ? L.x : NaN, M = typeof L.y == "number" ? L.y : NaN;
2123
2133
  return !Number.isFinite(I) || !Number.isFinite(M) ? null : { x: I, y: M };
2124
2134
  } catch {
2125
2135
  return null;
2126
2136
  }
2127
2137
  }
2128
- function u() {
2138
+ function f() {
2129
2139
  const L = a.getBoundingClientRect().width || 200;
2130
2140
  return { x: Math.max(8, Math.floor((window.innerWidth - L) / 2)), y: 16 };
2131
2141
  }
2132
- function v(y) {
2142
+ function y(v) {
2133
2143
  const I = a.getBoundingClientRect(), M = I.width || 200, O = I.height || 40, We = Math.max(8, window.innerWidth - M - 8), Ye = Math.max(8, window.innerHeight - O - 8);
2134
2144
  return {
2135
- x: Math.min(Math.max(8, y.x), We),
2136
- y: Math.min(Math.max(8, y.y), Ye)
2145
+ x: Math.min(Math.max(8, v.x), We),
2146
+ y: Math.min(Math.max(8, v.y), Ye)
2137
2147
  };
2138
2148
  }
2139
- function S(y) {
2140
- a.style.left = `${y.x}px`, a.style.top = `${y.y}px`;
2149
+ function S(v) {
2150
+ a.style.left = `${v.x}px`, a.style.top = `${v.y}px`;
2141
2151
  }
2142
- let h = !1, f = null, E = { x: 0, y: 0 };
2143
- function b(y) {
2144
- if (y.target instanceof Element && y.target.closest(".beacon-monitor-overlay-stop")) return;
2145
- y.preventDefault(), h = !0, f = y.pointerId;
2152
+ let h = !1, p = null, E = { x: 0, y: 0 };
2153
+ function b(v) {
2154
+ if (v.target instanceof Element && v.target.closest(".beacon-monitor-overlay-stop")) return;
2155
+ v.preventDefault(), h = !0, p = v.pointerId;
2146
2156
  try {
2147
- a.setPointerCapture(y.pointerId);
2157
+ a.setPointerCapture(v.pointerId);
2148
2158
  } catch {
2149
2159
  }
2150
2160
  a.setAttribute("data-dragging", "true");
2151
2161
  const L = a.getBoundingClientRect();
2152
- E = { x: y.clientX - L.left, y: y.clientY - L.top };
2162
+ E = { x: v.clientX - L.left, y: v.clientY - L.top };
2153
2163
  }
2154
- function x(y) {
2155
- !h || y.pointerId !== f || S(v({ x: y.clientX - E.x, y: y.clientY - E.y }));
2164
+ function x(v) {
2165
+ !h || v.pointerId !== p || S(y({ x: v.clientX - E.x, y: v.clientY - E.y }));
2156
2166
  }
2157
- function A(y) {
2158
- if (!h || y.pointerId !== f) return;
2159
- h = !1, f = null, a.removeAttribute("data-dragging");
2167
+ function A(v) {
2168
+ if (!h || v.pointerId !== p) return;
2169
+ h = !1, p = null, a.removeAttribute("data-dragging");
2160
2170
  try {
2161
- a.releasePointerCapture(y.pointerId);
2171
+ a.releasePointerCapture(v.pointerId);
2162
2172
  } catch {
2163
2173
  }
2164
2174
  const L = a.getBoundingClientRect();
@@ -2167,38 +2177,38 @@ function hn(e) {
2167
2177
  } catch {
2168
2178
  }
2169
2179
  }
2170
- a.addEventListener("pointerdown", b), a.addEventListener("pointermove", x), a.addEventListener("pointerup", A), a.addEventListener("pointercancel", A), l.addEventListener("click", (y) => {
2171
- y.stopPropagation(), e.onStop();
2180
+ a.addEventListener("pointerdown", b), a.addEventListener("pointermove", x), a.addEventListener("pointerup", A), a.addEventListener("pointercancel", A), l.addEventListener("click", (v) => {
2181
+ v.stopPropagation(), e.onStop();
2172
2182
  });
2173
2183
  function C() {
2174
- const y = a.getBoundingClientRect();
2175
- S(v({ x: y.left, y: y.top }));
2184
+ const v = a.getBoundingClientRect();
2185
+ S(y({ x: v.left, y: v.top }));
2176
2186
  }
2177
2187
  window.addEventListener("resize", C);
2178
2188
  function k() {
2179
- const y = Math.max(0, Math.floor((Date.now() - n) / 1e3));
2180
- d.textContent = bn(y);
2189
+ const v = Math.max(0, Math.floor((Date.now() - n) / 1e3));
2190
+ d.textContent = gn(v);
2181
2191
  }
2182
2192
  k();
2183
2193
  const T = window.setInterval(k, 1e3);
2184
2194
  return {
2185
- updateUrl(y) {
2186
- y ? (m.textContent = y, m.title = y, m.style.display = "") : m.style.display = "none";
2195
+ updateUrl(v) {
2196
+ v ? (m.textContent = v, m.title = v, m.style.display = "") : m.style.display = "none";
2187
2197
  },
2188
2198
  destroy() {
2189
2199
  window.clearInterval(T), window.removeEventListener("resize", C), a.removeEventListener("pointerdown", b), a.removeEventListener("pointermove", x), a.removeEventListener("pointerup", A), a.removeEventListener("pointercancel", A), o.remove(), a.remove();
2190
2200
  }
2191
2201
  };
2192
2202
  }
2193
- function bn(e) {
2203
+ function gn(e) {
2194
2204
  const t = Math.floor(e / 3600), n = Math.floor(e % 3600 / 60), o = e % 60;
2195
2205
  return t > 0 ? `${$(t)}:${$(n)}:${$(o)}` : `${$(n)}:${$(o)}`;
2196
2206
  }
2197
2207
  function $(e) {
2198
2208
  return e < 10 ? `0${e}` : String(e);
2199
2209
  }
2200
- const H = 80, gn = 'button, a, input[type="submit"], input[type="button"], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="option"]', yn = 1024, vn = 5;
2201
- function xn(e, t) {
2210
+ const H = 80, yn = 'button, a, input[type="submit"], input[type="button"], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="option"]', vn = 1024, xn = 5;
2211
+ function wn(e, t) {
2202
2212
  return e.length > t ? e.slice(0, t) : e;
2203
2213
  }
2204
2214
  function te(e) {
@@ -2222,7 +2232,7 @@ function Ee(e) {
2222
2232
  const t = U(e.textContent, H), n = U(e.getAttribute("aria-label"), H), o = e.getAttribute("data-testid") || void 0, a = e.getAttribute("name") || void 0;
2223
2233
  let r = n || t;
2224
2234
  if (!r) {
2225
- const i = e.closest(gn);
2235
+ const i = e.closest(yn);
2226
2236
  i && i !== e && (r = U(i.getAttribute("aria-label"), H) || U(i.textContent, H));
2227
2237
  }
2228
2238
  return {
@@ -2239,7 +2249,7 @@ function Ee(e) {
2239
2249
  ...r && r !== t ? { label: r } : {}
2240
2250
  };
2241
2251
  }
2242
- function wn(e, t) {
2252
+ function En(e, t) {
2243
2253
  const n = [], o = document.querySelectorAll("body *");
2244
2254
  for (const a of Array.from(o)) {
2245
2255
  const r = getComputedStyle(a);
@@ -2254,29 +2264,29 @@ function wn(e, t) {
2254
2264
  classes: Array.from(a.classList).slice(0, 5).join(" ")
2255
2265
  });
2256
2266
  }
2257
- return n.sort((a, r) => r.zIndex - a.zIndex).slice(0, vn);
2267
+ return n.sort((a, r) => r.zIndex - a.zIndex).slice(0, xn);
2258
2268
  }
2259
- function En(e) {
2269
+ function Sn(e) {
2260
2270
  const t = (a) => (r) => {
2261
2271
  const i = r, s = i.target;
2262
2272
  if (!(s instanceof Element)) return;
2263
- const c = i.clientX, d = i.clientY, l = document.elementFromPoint(c, d), m = l === s || (l ? s.contains(l) || l.contains(s) : !1), p = document.querySelectorAll('[role="dialog"][data-state="open"]').length, g = getComputedStyle(document.body).pointerEvents, u = m ? [] : wn(c, d);
2273
+ const c = i.clientX, d = i.clientY, l = document.elementFromPoint(c, d), m = l === s || (l ? s.contains(l) || l.contains(s) : !1), u = document.querySelectorAll('[role="dialog"][data-state="open"]').length, g = getComputedStyle(document.body).pointerEvents, f = m ? [] : En(c, d);
2264
2274
  e.emitClick({
2265
2275
  kind: a,
2266
2276
  target: Ee(s),
2267
2277
  hitMatchesTarget: m,
2268
2278
  ...!m && l instanceof Element ? { hitTarget: Ee(l) } : {},
2269
2279
  coords: { x: c, y: d },
2270
- openDialogs: p,
2280
+ openDialogs: u,
2271
2281
  bodyPointerEvents: g,
2272
- ...u.length > 0 ? { overlaysAtPoint: u } : {}
2282
+ ...f.length > 0 ? { overlaysAtPoint: f } : {}
2273
2283
  });
2274
2284
  }, n = t("click"), o = t("mousedown");
2275
2285
  return document.addEventListener("click", n, { capture: !0, passive: !0 }), document.addEventListener("mousedown", o, { capture: !0, passive: !0 }), () => {
2276
2286
  document.removeEventListener("click", n, { capture: !0 }), document.removeEventListener("mousedown", o, { capture: !0 });
2277
2287
  };
2278
2288
  }
2279
- function Sn(e) {
2289
+ function Cn(e) {
2280
2290
  const t = history.pushState, n = history.replaceState;
2281
2291
  let o = window.location.href;
2282
2292
  const a = (s) => {
@@ -2297,7 +2307,7 @@ function Sn(e) {
2297
2307
  history.pushState = t, history.replaceState = n, window.removeEventListener("popstate", r), window.removeEventListener("hashchange", i);
2298
2308
  };
2299
2309
  }
2300
- function Cn(e) {
2310
+ function kn(e) {
2301
2311
  const t = /* @__PURE__ */ new WeakSet(), n = (a, r) => {
2302
2312
  const i = te(a);
2303
2313
  e.emitDialog({
@@ -2305,7 +2315,7 @@ function Cn(e) {
2305
2315
  action: r,
2306
2316
  selector: i,
2307
2317
  state: a.getAttribute("data-state"),
2308
- ...r === "mount" ? { outerHTML: xn(a.outerHTML, yn) } : {}
2318
+ ...r === "mount" ? { outerHTML: wn(a.outerHTML, vn) } : {}
2309
2319
  });
2310
2320
  };
2311
2321
  for (const a of Array.from(document.querySelectorAll('[role="dialog"]')))
@@ -2316,14 +2326,14 @@ function Cn(e) {
2316
2326
  for (const l of Array.from(d.addedNodes)) {
2317
2327
  if (!(l instanceof Element)) continue;
2318
2328
  const m = (r = l.matches) != null && r.call(l, '[role="dialog"]') ? [l] : Array.from(((i = l.querySelectorAll) == null ? void 0 : i.call(l, '[role="dialog"]')) ?? []);
2319
- for (const p of m)
2320
- t.has(p) || (t.add(p), n(p, "mount"));
2329
+ for (const u of m)
2330
+ t.has(u) || (t.add(u), n(u, "mount"));
2321
2331
  }
2322
2332
  for (const l of Array.from(d.removedNodes)) {
2323
2333
  if (!(l instanceof Element)) continue;
2324
2334
  const m = (s = l.matches) != null && s.call(l, '[role="dialog"]') ? [l] : Array.from(((c = l.querySelectorAll) == null ? void 0 : c.call(l, '[role="dialog"]')) ?? []);
2325
- for (const p of m)
2326
- t.has(p) && (t.delete(p), n(p, "unmount"));
2335
+ for (const u of m)
2336
+ t.has(u) && (t.delete(u), n(u, "unmount"));
2327
2337
  }
2328
2338
  d.type === "attributes" && d.attributeName === "data-state" && d.target instanceof Element && d.target.getAttribute("role") === "dialog" && n(d.target, "state");
2329
2339
  }
@@ -2335,7 +2345,7 @@ function Cn(e) {
2335
2345
  attributeFilter: ["data-state"]
2336
2346
  }), () => o.disconnect();
2337
2347
  }
2338
- function kn(e) {
2348
+ function An(e) {
2339
2349
  const t = (n) => {
2340
2350
  const o = n.target;
2341
2351
  if (!(o instanceof HTMLFormElement)) return;
@@ -2359,27 +2369,27 @@ function kn(e) {
2359
2369
  };
2360
2370
  return document.addEventListener("submit", t, { capture: !0 }), () => document.removeEventListener("submit", t, { capture: !0 });
2361
2371
  }
2362
- function An(e) {
2363
- const t = En(e), n = Sn(e), o = Cn(e), a = kn(e);
2372
+ function Ln(e) {
2373
+ const t = Sn(e), n = Cn(e), o = kn(e), a = An(e);
2364
2374
  return {
2365
2375
  uninstall() {
2366
2376
  t(), n(), o(), a();
2367
2377
  }
2368
2378
  };
2369
2379
  }
2370
- const G = 1e3, Se = 10 * 1024, $e = "[REDACTED]", Be = /* @__PURE__ */ new Set(["POST", "PUT", "PATCH", "DELETE"]), Ln = [
2380
+ const G = 1e3, Se = 10 * 1024, $e = "[REDACTED]", Be = /* @__PURE__ */ new Set(["POST", "PUT", "PATCH", "DELETE"]), Tn = [
2371
2381
  /Bearer\s+[A-Za-z0-9._\-+/=]+/gi,
2372
2382
  /\bls_pat_[A-Za-z0-9_]+/g,
2373
2383
  // JWT: three dot-separated base64url segments starting with eyJ (the b64
2374
2384
  // encoding of the JSON {"). Matches Auth0/Clerk/most providers' tokens.
2375
2385
  /\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g
2376
- ], Tn = /^(password|passwd|secret|token|api[_-]?key|auth|access[_-]?token|refresh[_-]?token|client[_-]?secret|private[_-]?key)$/i;
2386
+ ], Nn = /^(password|passwd|secret|token|api[_-]?key|auth|access[_-]?token|refresh[_-]?token|client[_-]?secret|private[_-]?key)$/i;
2377
2387
  function J(e, t) {
2378
2388
  return e.length > t ? e.slice(0, t) : e;
2379
2389
  }
2380
2390
  function ze(e) {
2381
2391
  let t = e;
2382
- for (const n of Ln)
2392
+ for (const n of Tn)
2383
2393
  t = t.replace(n, $e);
2384
2394
  return t;
2385
2395
  }
@@ -2389,7 +2399,7 @@ function Z(e) {
2389
2399
  if (Array.isArray(e)) return e.map(Z);
2390
2400
  const t = {};
2391
2401
  for (const [n, o] of Object.entries(e))
2392
- t[n] = Tn.test(n) ? $e : Z(o);
2402
+ t[n] = Nn.test(n) ? $e : Z(o);
2393
2403
  return t;
2394
2404
  }
2395
2405
  function Ce(e, t) {
@@ -2405,7 +2415,7 @@ function F(e, t) {
2405
2415
  const n = e.length, o = { bodySize: n };
2406
2416
  return n > Se ? (o.body = Ce(e.slice(0, Se), t), o.bodyTruncated = !0) : o.body = Ce(e, t), t && (o.contentType = t), o;
2407
2417
  }
2408
- function Nn(e, t) {
2418
+ function Mn(e, t) {
2409
2419
  const n = t == null ? void 0 : t.body;
2410
2420
  if (n != null) {
2411
2421
  if (typeof n == "string") return n;
@@ -2420,10 +2430,10 @@ function Nn(e, t) {
2420
2430
  }
2421
2431
  return e instanceof Request, null;
2422
2432
  }
2423
- function Mn(e, t) {
2433
+ function In(e, t) {
2424
2434
  return !!(((o) => o ? o instanceof Headers ? o.has("authorization") : Array.isArray(o) ? o.some(([a]) => a.toLowerCase() === "authorization") : typeof o == "object" ? Object.keys(o).some((a) => a.toLowerCase() === "authorization") : !1 : !1)(t == null ? void 0 : t.headers) || e instanceof Request && e.headers.has("authorization"));
2425
2435
  }
2426
- function In(e, t) {
2436
+ function Rn(e, t) {
2427
2437
  return ((o) => {
2428
2438
  if (o) {
2429
2439
  if (o instanceof Headers) return o.get("content-type") || void 0;
@@ -2438,26 +2448,26 @@ function In(e, t) {
2438
2448
  }
2439
2449
  })(t == null ? void 0 : t.headers) ?? (e instanceof Request && e.headers.get("content-type") || void 0);
2440
2450
  }
2441
- function Rn(e, t, n) {
2451
+ function Pn(e, t, n) {
2442
2452
  if (!Be.has(n)) return;
2443
- const o = Mn(e, t), a = Nn(e, t);
2453
+ const o = In(e, t), a = Mn(e, t);
2444
2454
  if (a == null && !o) return;
2445
- const r = In(e, t), i = a != null ? F(a, r) : {};
2455
+ const r = Rn(e, t), i = a != null ? F(a, r) : {};
2446
2456
  return o && (i.hasAuth = !0), i;
2447
2457
  }
2448
- function Pn(e) {
2458
+ function _n(e) {
2449
2459
  const t = window.fetch;
2450
2460
  if (typeof t != "function") return () => {
2451
2461
  };
2452
2462
  const n = async (o, a) => {
2453
- const r = performance.now(), i = ((a == null ? void 0 : a.method) ?? (o instanceof Request ? o.method : "GET")).toUpperCase(), s = typeof o == "string" ? o : o instanceof URL ? o.toString() : o.url, c = Rn(o, a, i);
2463
+ const r = performance.now(), i = ((a == null ? void 0 : a.method) ?? (o instanceof Request ? o.method : "GET")).toUpperCase(), s = typeof o == "string" ? o : o instanceof URL ? o.toString() : o.url, c = Pn(o, a, i);
2454
2464
  try {
2455
2465
  const d = await t.call(window, o, a), l = Math.round(performance.now() - r), m = d.status >= 400;
2456
- let p;
2466
+ let u;
2457
2467
  if (m || e.verbose)
2458
2468
  try {
2459
- const g = await d.clone().text(), u = d.headers.get("content-type") || void 0;
2460
- p = F(g, u);
2469
+ const g = await d.clone().text(), f = d.headers.get("content-type") || void 0;
2470
+ u = F(g, f);
2461
2471
  } catch {
2462
2472
  }
2463
2473
  return (m || e.verbose) && e.emit({
@@ -2468,7 +2478,7 @@ function Pn(e) {
2468
2478
  durationMs: l,
2469
2479
  failed: m,
2470
2480
  ...c ? { request: c } : {},
2471
- ...p ? { response: p } : {}
2481
+ ...u ? { response: u } : {}
2472
2482
  }), d;
2473
2483
  } catch (d) {
2474
2484
  const l = Math.round(performance.now() - r);
@@ -2488,7 +2498,7 @@ function Pn(e) {
2488
2498
  window.fetch.__lsBeaconWrapped && (window.fetch = t);
2489
2499
  };
2490
2500
  }
2491
- function _n(e) {
2501
+ function Dn(e) {
2492
2502
  if (e == null) return null;
2493
2503
  if (typeof e == "string") return e;
2494
2504
  if (e instanceof URLSearchParams) return e.toString();
@@ -2500,7 +2510,7 @@ function _n(e) {
2500
2510
  }
2501
2511
  return e instanceof Blob ? `[Blob ${e.size}b ${e.type || "unknown"}]` : e instanceof ArrayBuffer ? `[binary ${e.byteLength}b]` : ArrayBuffer.isView(e) ? `[binary ${e.byteLength}b]` : null;
2502
2512
  }
2503
- function Dn(e) {
2513
+ function $n(e) {
2504
2514
  const t = XMLHttpRequest.prototype, n = t.open, o = t.send, a = t.setRequestHeader, r = /* @__PURE__ */ new WeakMap();
2505
2515
  return t.open = function(s, c, ...d) {
2506
2516
  return r.set(this, {
@@ -2520,31 +2530,31 @@ function Dn(e) {
2520
2530
  const c = r.get(this);
2521
2531
  if (c)
2522
2532
  if (c.start = performance.now(), Be.has(c.method)) {
2523
- const l = _n(s);
2533
+ const l = Dn(s);
2524
2534
  l != null ? c.request = F(l, c.requestContentType) : c.request = {}, c.hasAuth && (c.request.hasAuth = !0);
2525
2535
  } else c.hasAuth && (c.request = { hasAuth: !0 });
2526
2536
  const d = () => {
2527
2537
  this.removeEventListener("loadend", d);
2528
2538
  const l = r.get(this);
2529
2539
  if (!l) return;
2530
- const m = Math.round(performance.now() - l.start), p = this.status === 0 || this.status >= 400;
2540
+ const m = Math.round(performance.now() - l.start), u = this.status === 0 || this.status >= 400;
2531
2541
  let g;
2532
- if ((p || e.verbose) && this.status > 0)
2542
+ if ((u || e.verbose) && this.status > 0)
2533
2543
  try {
2534
- const u = this.responseType === "" || this.responseType === "text" ? this.responseText : "";
2535
- if (u) {
2536
- const v = this.getResponseHeader("content-type") || void 0;
2537
- g = F(u, v);
2544
+ const f = this.responseType === "" || this.responseType === "text" ? this.responseText : "";
2545
+ if (f) {
2546
+ const y = this.getResponseHeader("content-type") || void 0;
2547
+ g = F(f, y);
2538
2548
  }
2539
2549
  } catch {
2540
2550
  }
2541
- (p || e.verbose) && e.emit({
2551
+ (u || e.verbose) && e.emit({
2542
2552
  kind: "xhr",
2543
2553
  url: J(l.url, G),
2544
2554
  method: l.method,
2545
2555
  status: this.status,
2546
2556
  durationMs: m,
2547
- failed: p,
2557
+ failed: u,
2548
2558
  ...l.request ? { request: l.request } : {},
2549
2559
  ...g ? { response: g } : {}
2550
2560
  }), r.delete(this);
@@ -2554,25 +2564,25 @@ function Dn(e) {
2554
2564
  t.open = n, t.send = o, t.setRequestHeader = a;
2555
2565
  };
2556
2566
  }
2557
- function $n(e) {
2558
- const t = Pn(e), n = Dn(e);
2567
+ function Bn(e) {
2568
+ const t = _n(e), n = $n(e);
2559
2569
  return {
2560
2570
  uninstall() {
2561
2571
  t(), n();
2562
2572
  }
2563
2573
  };
2564
2574
  }
2565
- const Bn = 1e3, ke = 50, zn = 500;
2566
- class On {
2575
+ const zn = 1e3, ke = 50, On = 500;
2576
+ class Hn {
2567
2577
  constructor(t) {
2568
2578
  this.buffer = [], this.inflight = !1, this.timer = null, this.destroyed = !1, this.handleVisibilityChange = () => {
2569
2579
  document.visibilityState === "hidden" && this.flushSync();
2570
2580
  }, this.url = t.url, this.sessionId = t.sessionId, this.onError = t.onError, this.timer = setInterval(() => {
2571
2581
  this.flush();
2572
- }, Bn), this.pagehideHandler = () => this.flushSync(), window.addEventListener("pagehide", this.pagehideHandler), document.addEventListener("visibilitychange", this.handleVisibilityChange);
2582
+ }, zn), this.pagehideHandler = () => this.flushSync(), window.addEventListener("pagehide", this.pagehideHandler), document.addEventListener("visibilitychange", this.handleVisibilityChange);
2573
2583
  }
2574
2584
  enqueue(t) {
2575
- this.destroyed || (this.buffer.push(t), this.buffer.length > zn && this.buffer.shift(), this.buffer.length >= ke && this.flush());
2585
+ this.destroyed || (this.buffer.push(t), this.buffer.length > On && this.buffer.shift(), this.buffer.length >= ke && this.flush());
2576
2586
  }
2577
2587
  /** Async flush via fetch. No-op when in-flight or empty. */
2578
2588
  async flush() {
@@ -2635,10 +2645,10 @@ class On {
2635
2645
  const ne = "__lsBeaconMonitorUrl", Oe = "__lsBeaconMonitorSession", oe = "__lsBeaconMonitorVerbose", re = "__lsBeaconMonitorDeadline", He = 30 * 6e4, Ae = 4096;
2636
2646
  let w = null;
2637
2647
  const Q = /* @__PURE__ */ new Set();
2638
- function Hn() {
2648
+ function Un() {
2639
2649
  return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID().slice(0, 8) : Math.random().toString(36).slice(2, 10);
2640
2650
  }
2641
- function Un(e) {
2651
+ function qn(e) {
2642
2652
  const t = /* @__PURE__ */ new WeakSet(), n = (o) => {
2643
2653
  if (o === null || typeof o != "object")
2644
2654
  return typeof o == "string" && o.length > Ae ? o.slice(0, Ae) : o;
@@ -2666,7 +2676,7 @@ function ae() {
2666
2676
  } catch {
2667
2677
  }
2668
2678
  }
2669
- function qn(e) {
2679
+ function Fn(e) {
2670
2680
  return w ? (w.seq += 1, {
2671
2681
  ...e,
2672
2682
  ts: Date.now(),
@@ -2681,10 +2691,10 @@ function qn(e) {
2681
2691
  }
2682
2692
  function P(e) {
2683
2693
  if (!w) return;
2684
- const t = qn(e);
2694
+ const t = Fn(e);
2685
2695
  w.transport.enqueue(t);
2686
2696
  }
2687
- function Fn() {
2697
+ function jn() {
2688
2698
  if (w)
2689
2699
  try {
2690
2700
  sessionStorage.setItem(ne, w.url), sessionStorage.setItem(Oe, w.sessionId), sessionStorage.setItem(oe, w.verbose ? "1" : "0"), sessionStorage.setItem(re, String(w.deadlineMs));
@@ -2697,7 +2707,7 @@ function Ue() {
2697
2707
  } catch {
2698
2708
  }
2699
2709
  }
2700
- function jn() {
2710
+ function Vn() {
2701
2711
  try {
2702
2712
  const e = sessionStorage.getItem(ne);
2703
2713
  if (!e) return null;
@@ -2722,30 +2732,30 @@ function Le(e) {
2722
2732
  }
2723
2733
  function qe(e) {
2724
2734
  if (w && j(), !e.url) return;
2725
- const t = e.maxSessionMs ?? He, n = Date.now() + t, o = Hn(), a = !!e.verbose, r = new On({
2735
+ const t = e.maxSessionMs ?? He, n = Date.now() + t, o = Un(), a = !!e.verbose, r = new Hn({
2726
2736
  url: e.url,
2727
2737
  sessionId: o,
2728
- onError: (u) => {
2729
- console.warn("[launch-kit-beacon] monitor transport error:", u.message);
2738
+ onError: (f) => {
2739
+ console.warn("[launch-kit-beacon] monitor transport error:", f.message);
2730
2740
  }
2731
2741
  }), i = Pe(), s = i.install(), c = i.snapshot();
2732
- for (const u of c) Le(u);
2742
+ for (const f of c) Le(f);
2733
2743
  let d = c.length;
2734
2744
  const l = i.subscribe(() => {
2735
2745
  if (!w) return;
2736
- const u = w.errorsBuffer.snapshot();
2737
- for (; w.drainedThrough < u.length; ) {
2738
- const v = u[w.drainedThrough];
2739
- v && Le(v), w.drainedThrough += 1;
2746
+ const f = w.errorsBuffer.snapshot();
2747
+ for (; w.drainedThrough < f.length; ) {
2748
+ const y = f[w.drainedThrough];
2749
+ y && Le(y), w.drainedThrough += 1;
2740
2750
  }
2741
- }), m = $n({
2742
- emit: (u) => P(u),
2751
+ }), m = Bn({
2752
+ emit: (f) => P(f),
2743
2753
  verbose: a
2744
- }), p = An({
2745
- emitClick: (u) => P(u),
2746
- emitRoute: (u) => P(u),
2747
- emitDialog: (u) => P(u),
2748
- emitSubmit: (u) => P(u)
2754
+ }), u = Ln({
2755
+ emitClick: (f) => P(f),
2756
+ emitRoute: (f) => P(f),
2757
+ emitDialog: (f) => P(f),
2758
+ emitSubmit: (f) => P(f)
2749
2759
  }), g = setTimeout(() => {
2750
2760
  console.info("[launch-kit-beacon] monitor session expired (max duration reached)"), j();
2751
2761
  }, Math.max(0, n - Date.now()));
@@ -2758,27 +2768,27 @@ function qe(e) {
2758
2768
  transport: r,
2759
2769
  errorsBuffer: i,
2760
2770
  uninstallNetwork: m.uninstall,
2761
- uninstallDom: p.uninstall,
2771
+ uninstallDom: u.uninstall,
2762
2772
  uninstallErrors: s,
2763
2773
  errorsUnsub: l,
2764
2774
  deadlineTimer: g,
2765
2775
  drainedThrough: d
2766
- }, Fn(), ae();
2776
+ }, jn(), ae();
2767
2777
  }
2768
2778
  function j() {
2769
2779
  Fe(), Ue(), ae();
2770
2780
  }
2771
- function Vn() {
2781
+ function Wn() {
2772
2782
  w && (Fe(), ae());
2773
2783
  }
2774
2784
  function Fe() {
2775
2785
  w && (clearTimeout(w.deadlineTimer), w.errorsUnsub(), w.uninstallErrors(), w.uninstallNetwork(), w.uninstallDom(), w.transport.destroy(), w = null);
2776
2786
  }
2777
- function oo(e, t) {
2787
+ function ro(e, t) {
2778
2788
  w && P({
2779
2789
  kind: "probe",
2780
2790
  label: e.slice(0, 200),
2781
- data: Un(t)
2791
+ data: qn(t)
2782
2792
  });
2783
2793
  }
2784
2794
  function Te() {
@@ -2792,19 +2802,19 @@ function Me(e) {
2792
2802
  Q.delete(e);
2793
2803
  };
2794
2804
  }
2795
- function Wn() {
2805
+ function Yn() {
2796
2806
  if (w || typeof window > "u") return;
2797
- const e = jn();
2807
+ const e = Vn();
2798
2808
  e && qe({
2799
2809
  url: e.url,
2800
2810
  verbose: e.verbose,
2801
2811
  maxSessionMs: Math.max(6e4, e.deadlineMs - Date.now())
2802
2812
  });
2803
2813
  }
2804
- function ro(e = {}) {
2814
+ function ao(e = {}) {
2805
2815
  let t = null, n = null, o = "", a = null;
2806
2816
  function r() {
2807
- a || (a = hn({
2817
+ a || (a = bn({
2808
2818
  onStop: () => j(),
2809
2819
  url: Ne()
2810
2820
  }));
@@ -2825,29 +2835,29 @@ function ro(e = {}) {
2825
2835
  l.className = "beacon-monitor-title", l.textContent = "Monitor — paste a stream URL", t.appendChild(l);
2826
2836
  const m = document.createElement("div");
2827
2837
  m.className = "beacon-monitor-row";
2828
- const p = document.createElement("input");
2829
- p.type = "url", p.className = "beacon-monitor-input", p.placeholder = "http://localhost:9876/m/…", p.value = o, p.autocomplete = "off", p.spellcheck = !1, m.appendChild(p);
2838
+ const u = document.createElement("input");
2839
+ u.type = "url", u.className = "beacon-monitor-input", u.placeholder = "http://localhost:9876/m/…", u.value = o, u.autocomplete = "off", u.spellcheck = !1, m.appendChild(u);
2830
2840
  const g = document.createElement("button");
2831
2841
  g.type = "button", g.className = "beacon-monitor-btn", g.textContent = "Start", g.disabled = !o.trim(), m.appendChild(g), t.appendChild(m);
2832
- const u = document.createElement("label");
2833
- u.className = "beacon-monitor-verbose";
2834
- const v = document.createElement("input");
2835
- v.type = "checkbox", v.dataset.role = "verbose", u.appendChild(v), u.appendChild(document.createTextNode(" verbose (capture successful network too)")), t.appendChild(u);
2842
+ const f = document.createElement("label");
2843
+ f.className = "beacon-monitor-verbose";
2844
+ const y = document.createElement("input");
2845
+ y.type = "checkbox", y.dataset.role = "verbose", f.appendChild(y), f.appendChild(document.createTextNode(" verbose (capture successful network too)")), t.appendChild(f);
2836
2846
  const S = document.createElement("div");
2837
- S.className = "beacon-monitor-help", S.textContent = "Streams clicks, failed network, errors, route + dialog changes.", t.appendChild(S), p.addEventListener("input", () => {
2838
- o = p.value, g.disabled = !p.value.trim();
2847
+ S.className = "beacon-monitor-help", S.textContent = "Streams clicks, failed network, errors, route + dialog changes.", t.appendChild(S), u.addEventListener("input", () => {
2848
+ o = u.value, g.disabled = !u.value.trim();
2839
2849
  }), g.addEventListener("click", () => {
2840
- const h = p.value.trim();
2850
+ const h = u.value.trim();
2841
2851
  if (h) {
2842
2852
  try {
2843
2853
  new URL(h);
2844
2854
  } catch {
2845
- p.setCustomValidity("Enter a valid URL (e.g. http://localhost:9876/m/abc)"), p.reportValidity();
2855
+ u.setCustomValidity("Enter a valid URL (e.g. http://localhost:9876/m/abc)"), u.reportValidity();
2846
2856
  return;
2847
2857
  }
2848
- p.setCustomValidity(""), qe({
2858
+ u.setCustomValidity(""), qe({
2849
2859
  url: h,
2850
- verbose: v.checked,
2860
+ verbose: y.checked,
2851
2861
  ...e.maxSessionMs !== void 0 ? { maxSessionMs: e.maxSessionMs } : {}
2852
2862
  });
2853
2863
  }
@@ -2858,14 +2868,14 @@ function ro(e = {}) {
2858
2868
  t.innerHTML = "";
2859
2869
  const l = Ne() ?? "", m = document.createElement("div");
2860
2870
  m.className = "beacon-monitor-title";
2861
- const p = document.createElement("span");
2862
- p.className = "beacon-monitor-rec", p.setAttribute("aria-hidden", "true"), m.appendChild(p), m.appendChild(document.createTextNode(" Monitor — recording")), t.appendChild(m);
2871
+ const u = document.createElement("span");
2872
+ u.className = "beacon-monitor-rec", u.setAttribute("aria-hidden", "true"), m.appendChild(u), m.appendChild(document.createTextNode(" Monitor — recording")), t.appendChild(m);
2863
2873
  const g = document.createElement("div");
2864
2874
  g.className = "beacon-monitor-active-url", g.title = l, g.textContent = l, t.appendChild(g);
2865
- const u = document.createElement("div");
2866
- u.className = "beacon-monitor-row";
2867
- const v = document.createElement("button");
2868
- v.type = "button", v.className = "beacon-monitor-btn stop", v.textContent = "Stop monitoring", v.addEventListener("click", () => j()), u.appendChild(v), t.appendChild(u);
2875
+ const f = document.createElement("div");
2876
+ f.className = "beacon-monitor-row";
2877
+ const y = document.createElement("button");
2878
+ y.type = "button", y.className = "beacon-monitor-btn stop", y.textContent = "Stop monitoring", y.addEventListener("click", () => j()), f.appendChild(y), t.appendChild(f);
2869
2879
  const S = document.createElement("div");
2870
2880
  S.className = "beacon-monitor-help", S.textContent = "Events stream to the URL above. Auto-stops after 30 min.", t.appendChild(S);
2871
2881
  }
@@ -2875,17 +2885,17 @@ function ro(e = {}) {
2875
2885
  return {
2876
2886
  name: "liveMonitor",
2877
2887
  setupOnce(l) {
2878
- Wn(), Te() && r();
2879
- const m = Me((g, u) => {
2880
- g ? (r(), a == null || a.updateUrl(u)) : i();
2881
- }), p = () => {
2888
+ Yn(), Te() && r();
2889
+ const m = Me((g, f) => {
2890
+ g ? (r(), a == null || a.updateUrl(f)) : i();
2891
+ }), u = () => {
2882
2892
  i(), m();
2883
2893
  try {
2884
- Vn();
2894
+ Wn();
2885
2895
  } catch {
2886
2896
  }
2887
2897
  };
2888
- l.signal.addEventListener("abort", p, { once: !0 });
2898
+ l.signal.addEventListener("abort", u, { once: !0 });
2889
2899
  },
2890
2900
  form() {
2891
2901
  return {
@@ -2904,12 +2914,12 @@ const ie = {
2904
2914
  "submit:error": /* @__PURE__ */ new Set(),
2905
2915
  ready: /* @__PURE__ */ new Set()
2906
2916
  };
2907
- function ao(e) {
2917
+ function io(e) {
2908
2918
  if (typeof window > "u") return;
2909
2919
  if (!e.endpoint) throw new Error("init: endpoint is required");
2910
- Re(), Xn();
2911
- const t = { ...lt(), ...e.labels ?? {} }, n = new AbortController(), o = Jn(e), a = e.position ?? "bottom-right", r = e.theme ?? "auto";
2912
- Xe(), Gn(e, a, r);
2920
+ Re(), Kn();
2921
+ const t = { ...lt(), ...e.labels ?? {} }, n = new AbortController(), o = Zn(e), a = e.position ?? "bottom-right", r = e.theme ?? "auto";
2922
+ Xe(), Jn(e, a, r);
2913
2923
  const i = document.querySelector(z);
2914
2924
  if (!i)
2915
2925
  throw new Error("init: failed to acquire <launch-kit-beacon> host");
@@ -2920,7 +2930,7 @@ function ao(e) {
2920
2930
  ["bug", "idea", "ux", "a11y"],
2921
2931
  {
2922
2932
  onSubmit: () => {
2923
- eo();
2933
+ to();
2924
2934
  },
2925
2935
  onClose: (m) => {
2926
2936
  V("close", {}), m === "user" && Ve();
@@ -2940,7 +2950,7 @@ function ao(e) {
2940
2950
  hostElement: i,
2941
2951
  initAbort: n,
2942
2952
  labels: t,
2943
- debug: !!e.debug || Qn(),
2953
+ debug: !!e.debug || eo(),
2944
2954
  healthIndicator: e.healthIndicator ?? "never",
2945
2955
  position: a,
2946
2956
  theme: r,
@@ -2955,12 +2965,12 @@ function ao(e) {
2955
2965
  },
2956
2966
  panelSources: []
2957
2967
  };
2958
- N = l, i.onTriggerClick = () => Yn(), d.install(
2968
+ N = l, i.onTriggerClick = () => Xn(), d.install(
2959
2969
  (m) => je(m),
2960
2970
  (m) => se(m)
2961
2971
  ), B("ready", { ready: !0 }), l.debug && console.info("[beacon] ready", l.endpoint);
2962
2972
  }
2963
- function Yn() {
2973
+ function Xn() {
2964
2974
  const e = N;
2965
2975
  e && (e.currentSubmit || (e.panelSources = e.plugins.map((t) => {
2966
2976
  if (!t.form) return null;
@@ -2988,11 +2998,11 @@ function Yn() {
2988
2998
  }
2989
2999
  }), e.dialog.open(), V("open", {})));
2990
3000
  }
2991
- function io() {
3001
+ function so() {
2992
3002
  const e = N;
2993
3003
  e && e.dialog.close("user");
2994
3004
  }
2995
- function Xn() {
3005
+ function Kn() {
2996
3006
  var t;
2997
3007
  const e = N;
2998
3008
  if (e) {
@@ -3004,7 +3014,7 @@ function Xn() {
3004
3014
  e.hostElement.onTriggerClick = null, N = null;
3005
3015
  }
3006
3016
  }
3007
- function so() {
3017
+ function co() {
3008
3018
  const e = N;
3009
3019
  return e ? {
3010
3020
  ready: !0,
@@ -3012,13 +3022,13 @@ function so() {
3012
3022
  plugins: e.registry.status()
3013
3023
  } : { ready: !1, transport: "idle", plugins: {} };
3014
3024
  }
3015
- function co(e, t) {
3016
- return ie[e].add(t), () => Kn(e, t);
3025
+ function lo(e, t) {
3026
+ return ie[e].add(t), () => Gn(e, t);
3017
3027
  }
3018
- function Kn(e, t) {
3028
+ function Gn(e, t) {
3019
3029
  ie[e].delete(t);
3020
3030
  }
3021
- function Gn(e, t, n) {
3031
+ function Jn(e, t, n) {
3022
3032
  let o = document.querySelector(z);
3023
3033
  if (!o) {
3024
3034
  o = document.createElement(z), o.setAttribute("position", t), o.setAttribute("theme", n), t === "hidden" && (o.style.position = "absolute", o.style.left = "-9999px"), (document.body ?? document.documentElement).appendChild(o);
@@ -3026,13 +3036,13 @@ function Gn(e, t, n) {
3026
3036
  }
3027
3037
  e.position !== void 0 && o.setAttribute("position", t), e.theme !== void 0 && o.setAttribute("theme", n);
3028
3038
  }
3029
- function Jn(e) {
3030
- return e.plugins ? e.plugins : e.defaultPlugins === !1 ? [] : Zn();
3031
- }
3032
- function Zn() {
3033
- return [ft(), wt(), ln(), un()];
3039
+ function Zn(e) {
3040
+ return e.plugins ? e.plugins : e.defaultPlugins === !1 ? [] : Qn();
3034
3041
  }
3035
3042
  function Qn() {
3043
+ return [ft(), wt(), dn(), pn()];
3044
+ }
3045
+ function eo() {
3036
3046
  if (typeof window > "u") return !1;
3037
3047
  try {
3038
3048
  return new URLSearchParams(window.location.search).has("lsbeacon-debug");
@@ -3092,7 +3102,7 @@ function Ve() {
3092
3102
  const e = N;
3093
3103
  e && (e.dialog.resetState(), e.dialog.clearPluginPanels(), e.formValues = {});
3094
3104
  }
3095
- async function eo() {
3105
+ async function to() {
3096
3106
  const e = N;
3097
3107
  if (!e || e.currentSubmit) return;
3098
3108
  const t = e.dialog.getDescription().trim();
@@ -3107,7 +3117,7 @@ async function eo() {
3107
3117
  (s) => e.capturedEntries[s],
3108
3118
  (s) => se(s)
3109
3119
  );
3110
- e.capturedEntries = o, n = to(e, t, o);
3120
+ e.capturedEntries = o, n = no(e, t, o);
3111
3121
  let a = null;
3112
3122
  if (V("beforeSubmit", { payload: n, cancel: (s) => {
3113
3123
  a === null && (a = s);
@@ -3134,9 +3144,9 @@ async function eo() {
3134
3144
  e.currentSubmit = null;
3135
3145
  }
3136
3146
  }
3137
- function to(e, t, n) {
3147
+ function no(e, t, n) {
3138
3148
  var r;
3139
- const o = no(), a = (r = e.context) == null ? void 0 : r.call(e);
3149
+ const o = oo(), a = (r = e.context) == null ? void 0 : r.call(e);
3140
3150
  return {
3141
3151
  description: t,
3142
3152
  severity: e.dialog.getSeverity(),
@@ -3145,7 +3155,7 @@ function to(e, t, n) {
3145
3155
  plugins: n
3146
3156
  };
3147
3157
  }
3148
- function no() {
3158
+ function oo() {
3149
3159
  const e = window.location.href, t = document.referrer, n = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
3150
3160
  return {
3151
3161
  url: e,
@@ -3169,22 +3179,22 @@ function no() {
3169
3179
  Re();
3170
3180
  export {
3171
3181
  Ne as currentMonitorUrl,
3172
- Xn as destroy,
3173
- ln as domEle,
3174
- un as domSS,
3182
+ Kn as destroy,
3183
+ dn as domEle,
3184
+ pn as domSS,
3175
3185
  wt as errors,
3176
- io as hide,
3177
- ao as init,
3186
+ so as hide,
3187
+ io as init,
3178
3188
  Te as isMonitorActive,
3179
- dn as isPluginFailure,
3180
- ro as liveMonitor,
3189
+ un as isPluginFailure,
3190
+ ao as liveMonitor,
3181
3191
  ft as metadata,
3182
- Kn as off,
3183
- co as on,
3184
- oo as probe,
3185
- Yn as show,
3192
+ Gn as off,
3193
+ lo as on,
3194
+ ro as probe,
3195
+ Xn as show,
3186
3196
  qe as startMonitor,
3187
- so as status,
3197
+ co as status,
3188
3198
  j as stopMonitor
3189
3199
  };
3190
3200
  //# sourceMappingURL=beacon.mjs.map