@tscircuit/pcb-viewer 1.11.358 → 1.11.360

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
@@ -6788,7 +6788,7 @@ var ToastContainer = () => {
6788
6788
  };
6789
6789
 
6790
6790
  // src/PCBViewer.tsx
6791
- import { useEffect as useEffect17, useMemo as useMemo8, useRef as useRef14, useState as useState12 } from "react";
6791
+ import { useCallback as useCallback10, useEffect as useEffect17, useMemo as useMemo8, useRef as useRef14, useState as useState12 } from "react";
6792
6792
 
6793
6793
  // node_modules/react-use/esm/useMountedState.js
6794
6794
  import { useCallback as useCallback2, useEffect as useEffect2, useRef } from "react";
@@ -9256,10 +9256,19 @@ var normalizeCopperLayers = (layers) => layers.map(
9256
9256
  (layer) => layer.endsWith("_copper") ? layer.replace("_copper", "") : layer
9257
9257
  );
9258
9258
  var filterTraceByLayers = (trace, targetLayers) => {
9259
- const filteredRoute = trace.route.filter(
9260
- (segment) => segment.route_type === "wire" && "layer" in segment && targetLayers.has(segment.layer)
9261
- );
9262
- if (filteredRoute.length === 0) return null;
9259
+ const filteredRoute = trace.route.filter((segment) => {
9260
+ if (segment.route_type === "wire" && "layer" in segment && targetLayers.has(segment.layer)) {
9261
+ return true;
9262
+ }
9263
+ if (segment.route_type === "via") {
9264
+ return targetLayers.has(segment.from_layer) || targetLayers.has(segment.to_layer);
9265
+ }
9266
+ return false;
9267
+ });
9268
+ const wireCount = filteredRoute.filter(
9269
+ (segment) => segment.route_type === "wire"
9270
+ ).length;
9271
+ if (wireCount < 2) return null;
9263
9272
  return {
9264
9273
  ...trace,
9265
9274
  route: filteredRoute
@@ -14362,7 +14371,7 @@ import { css as css3 } from "@emotion/css";
14362
14371
  // package.json
14363
14372
  var package_default = {
14364
14373
  name: "@tscircuit/pcb-viewer",
14365
- version: "1.11.357",
14374
+ version: "1.11.359",
14366
14375
  main: "dist/index.js",
14367
14376
  type: "module",
14368
14377
  repository: "tscircuit/pcb-viewer",
@@ -14864,6 +14873,12 @@ var ToolbarOverlay = ({ children, elements }) => {
14864
14873
  setErrorsOpen(false);
14865
14874
  }
14866
14875
  }, [isViewMenuOpen]);
14876
+ const stopCanvasInteractionPropagation = useCallback8(
14877
+ (event) => {
14878
+ event.stopPropagation();
14879
+ },
14880
+ []
14881
+ );
14867
14882
  return /* @__PURE__ */ jsxs14(
14868
14883
  "div",
14869
14884
  {
@@ -14902,6 +14917,13 @@ var ToolbarOverlay = ({ children, elements }) => {
14902
14917
  onTouchStart: (e) => e.stopPropagation(),
14903
14918
  onTouchEnd: (e) => e.stopPropagation(),
14904
14919
  onTouchMove: (e) => e.stopPropagation(),
14920
+ onMouseDown: stopCanvasInteractionPropagation,
14921
+ onMouseMove: stopCanvasInteractionPropagation,
14922
+ onMouseUp: stopCanvasInteractionPropagation,
14923
+ onPointerDown: stopCanvasInteractionPropagation,
14924
+ onPointerMove: stopCanvasInteractionPropagation,
14925
+ onPointerUp: stopCanvasInteractionPropagation,
14926
+ onWheel: stopCanvasInteractionPropagation,
14905
14927
  style: {
14906
14928
  position: "absolute",
14907
14929
  opacity: isSmallScreen ? 1 : isMouseOverContainer ? 1 : 0,
@@ -15617,6 +15639,14 @@ var PCBViewer = ({
15617
15639
  );
15618
15640
  const [ref, refDimensions] = useMeasure_default();
15619
15641
  const [transform, setTransformInternal] = useState12(defaultTransform);
15642
+ const shouldAllowCanvasInteraction = useCallback10(
15643
+ (event) => {
15644
+ const target = event.target;
15645
+ if (!(target instanceof Element)) return true;
15646
+ return !target.closest("[data-toolbar-overlay]");
15647
+ },
15648
+ []
15649
+ );
15620
15650
  const {
15621
15651
  ref: transformRef,
15622
15652
  setTransform,
@@ -15624,7 +15654,8 @@ var PCBViewer = ({
15624
15654
  } = src_default({
15625
15655
  transform,
15626
15656
  onSetTransform: setTransformInternal,
15627
- enabled: isInteractionEnabled
15657
+ enabled: isInteractionEnabled,
15658
+ shouldDrag: shouldAllowCanvasInteraction
15628
15659
  });
15629
15660
  let [editEvents, setEditEvents] = useState12([]);
15630
15661
  editEvents = editEventsProp ?? editEvents;