@tscircuit/pcb-viewer 1.11.424 → 1.11.425

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
@@ -18619,7 +18619,7 @@ import { css as css3 } from "@emotion/css";
18619
18619
  // package.json
18620
18620
  var package_default = {
18621
18621
  name: "@tscircuit/pcb-viewer",
18622
- version: "1.11.423",
18622
+ version: "1.11.424",
18623
18623
  main: "dist/index.js",
18624
18624
  type: "module",
18625
18625
  repository: {
@@ -18800,6 +18800,7 @@ var menuStyle = css2`
18800
18800
  padding: 4px;
18801
18801
  font: 12px sans-serif;
18802
18802
  box-shadow: 0 4px 16px #0008;
18803
+ outline: none;
18803
18804
  `;
18804
18805
  var itemStyle = css2`
18805
18806
  display: block;
@@ -18859,7 +18860,7 @@ var VisibilityContextMenu = ({
18859
18860
  onClose();
18860
18861
  }
18861
18862
  };
18862
- ref.current?.querySelector("button")?.focus();
18863
+ ref.current?.focus();
18863
18864
  window.addEventListener("pointerdown", dismiss, true);
18864
18865
  window.addEventListener("keydown", onKeyDown);
18865
18866
  window.addEventListener("resize", onClose);
@@ -18877,6 +18878,7 @@ var VisibilityContextMenu = ({
18877
18878
  {
18878
18879
  ref,
18879
18880
  role: "menu",
18881
+ tabIndex: -1,
18880
18882
  "aria-label": "PCB context menu",
18881
18883
  className: menuStyle,
18882
18884
  onContextMenu: (event) => {
@@ -18889,16 +18891,17 @@ var VisibilityContextMenu = ({
18889
18891
  onKeyDown: (event) => {
18890
18892
  event.stopPropagation();
18891
18893
  const button = event.target.closest("button");
18892
- if (!button) return;
18893
- const menu = button.closest('[role="menu"]');
18894
+ const menu = button?.closest('[role="menu"]') ?? ref.current;
18895
+ if (!menu) return;
18894
18896
  const items = Array.from(
18895
18897
  menu.querySelectorAll("button:not(:disabled)")
18896
18898
  ).filter((item) => item.closest('[role="menu"]') === menu);
18897
18899
  if (event.key === "ArrowDown" || event.key === "ArrowUp") {
18898
18900
  event.preventDefault();
18899
18901
  const step = event.key === "ArrowDown" ? 1 : -1;
18900
- items[(items.indexOf(button) + step + items.length) % items.length]?.focus();
18901
- } else if (event.key === "ArrowRight" && button.hasAttribute("aria-haspopup")) {
18902
+ const index = button ? items.indexOf(button) : step === 1 ? -1 : 0;
18903
+ items[(index + step + items.length) % items.length]?.focus();
18904
+ } else if (event.key === "ArrowRight" && button?.hasAttribute("aria-haspopup")) {
18902
18905
  event.preventDefault();
18903
18906
  button.click();
18904
18907
  requestAnimationFrame(