@tscircuit/pcb-viewer 1.11.335 → 1.11.337

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
@@ -8098,6 +8098,7 @@ var LAYER_NAME_TO_COLOR = {
8098
8098
  ...colors_default.board
8099
8099
  };
8100
8100
  var DEFAULT_DRAW_ORDER = [
8101
+ "board",
8101
8102
  "inner6",
8102
8103
  "inner5",
8103
8104
  "inner4",
@@ -8109,15 +8110,12 @@ var DEFAULT_DRAW_ORDER = [
8109
8110
  "bottom_silkscreen",
8110
8111
  "top",
8111
8112
  "soldermask_top",
8112
- "soldermask_with_copper_bottom",
8113
- "soldermask_with_copper_top",
8114
8113
  "bottom_courtyard",
8115
8114
  "bottom_fabrication",
8116
8115
  "top_courtyard",
8117
8116
  "top_fabrication",
8118
8117
  "edge_cuts",
8119
- "top_silkscreen",
8120
- "board"
8118
+ "top_silkscreen"
8121
8119
  ];
8122
8120
  var Drawer = class {
8123
8121
  canvasLayerMap;
@@ -8408,35 +8406,38 @@ var Drawer = class {
8408
8406
  */
8409
8407
  orderAndFadeLayers() {
8410
8408
  const { canvasLayerMap, foregroundLayer } = this;
8409
+ const associatedSoldermask = foregroundLayer === "top" ? "soldermask_top" : foregroundLayer === "bottom" ? "soldermask_bottom" : void 0;
8411
8410
  const associatedSilkscreen = foregroundLayer === "top" ? "top_silkscreen" : foregroundLayer === "bottom" ? "bottom_silkscreen" : void 0;
8412
8411
  const associatedNotes = foregroundLayer === "top" ? "top_notes" : foregroundLayer === "bottom" ? "bottom_notes" : void 0;
8413
8412
  const associatedFabrication = foregroundLayer === "top" ? "top_fabrication" : foregroundLayer === "bottom" ? "bottom_fabrication" : void 0;
8414
- const maskWithCopperLayerForForeground = foregroundLayer === "top" ? "soldermask_with_copper_top" : foregroundLayer === "bottom" ? "soldermask_with_copper_bottom" : void 0;
8415
8413
  const opaqueLayers = /* @__PURE__ */ new Set([
8416
8414
  foregroundLayer,
8417
8415
  "drill",
8418
8416
  "edge_cuts",
8419
8417
  "other",
8420
8418
  "board",
8419
+ ...associatedSoldermask ? [associatedSoldermask] : [],
8421
8420
  ...associatedSilkscreen ? [associatedSilkscreen] : [],
8422
8421
  ...associatedNotes ? [associatedNotes] : [],
8423
- ...associatedFabrication ? [associatedFabrication] : [],
8424
- ...maskWithCopperLayerForForeground ? [maskWithCopperLayerForForeground] : []
8422
+ ...associatedFabrication ? [associatedFabrication] : []
8425
8423
  ]);
8426
8424
  const layersToShiftToTop = [
8427
8425
  foregroundLayer,
8428
8426
  "edge_cuts",
8427
+ ...associatedSoldermask ? [associatedSoldermask] : [],
8429
8428
  ...associatedSilkscreen ? [associatedSilkscreen] : [],
8430
8429
  ...associatedNotes ? [associatedNotes] : [],
8431
- ...associatedFabrication ? [associatedFabrication] : [],
8432
- ...maskWithCopperLayerForForeground ? [maskWithCopperLayerForForeground] : []
8430
+ ...associatedFabrication ? [associatedFabrication] : []
8433
8431
  ];
8432
+ const drillBeforeForeground = foregroundLayer === "drill" ? [] : ["drill"];
8433
+ const drillAfterForeground = foregroundLayer === "drill" ? ["drill"] : [];
8434
8434
  const order = [
8435
8435
  ...DEFAULT_DRAW_ORDER.filter((l) => !layersToShiftToTop.includes(l)),
8436
+ ...drillBeforeForeground,
8436
8437
  foregroundLayer,
8437
- ...maskWithCopperLayerForForeground ? [maskWithCopperLayerForForeground] : [],
8438
+ ...associatedSoldermask ? [associatedSoldermask] : [],
8439
+ ...drillAfterForeground,
8438
8440
  "edge_cuts",
8439
- "drill",
8440
8441
  ...associatedSilkscreen ? [associatedSilkscreen] : [],
8441
8442
  ...associatedNotes ? [associatedNotes] : [],
8442
8443
  ...associatedFabrication ? [associatedFabrication] : []
@@ -8660,7 +8661,8 @@ function drawPcbBoardElements({
8660
8661
  for (const element of pcbBoardElements) {
8661
8662
  drawer.drawElements([element], {
8662
8663
  layers,
8663
- drawSoldermask,
8664
+ drawSoldermask: false,
8665
+ drawBoardMaterial: drawSoldermask ?? false,
8664
8666
  minBoardOutlineStrokePx: 2
8665
8667
  });
8666
8668
  }
@@ -8736,7 +8738,7 @@ function drawPcbPanelElements({
8736
8738
  drawer.realToCanvasMat = realToCanvasMat;
8737
8739
  const pcbPanelElements = elements.filter(isPcbPanelElement);
8738
8740
  for (const element of pcbPanelElements) {
8739
- drawer.drawElements([element], { layers, drawSoldermask });
8741
+ drawer.drawElements([element], { layers });
8740
8742
  }
8741
8743
  }
8742
8744
 
@@ -9367,7 +9369,25 @@ function drawSoldermaskElementsForLayer({
9367
9369
  }) {
9368
9370
  const drawer = new CircuitToCanvasDrawer12(canvas);
9369
9371
  drawer.realToCanvasMat = realToCanvasMat;
9370
- drawer.drawElements(elements, { layers, drawSoldermask: true });
9372
+ const boards = elements.filter((element) => element.type === "pcb_board");
9373
+ if (boards.length <= 1) {
9374
+ drawer.drawElements(elements, {
9375
+ layers,
9376
+ drawSoldermask: true,
9377
+ drawBoardMaterial: false
9378
+ });
9379
+ } else {
9380
+ const nonBoardElements = elements.filter(
9381
+ (element) => element.type !== "pcb_board"
9382
+ );
9383
+ for (const board of boards) {
9384
+ drawer.drawElements([board, ...nonBoardElements], {
9385
+ layers,
9386
+ drawSoldermask: true,
9387
+ drawBoardMaterial: false
9388
+ });
9389
+ }
9390
+ }
9371
9391
  if (!primitives) return;
9372
9392
  const hoveredElementIds = /* @__PURE__ */ new Set();
9373
9393
  for (const primitive of primitives) {
@@ -9398,7 +9418,11 @@ function drawSoldermaskElementsForLayer({
9398
9418
  const hoverDrawer = new CircuitToCanvasDrawer12(canvas);
9399
9419
  hoverDrawer.configure({ colorOverrides: HOVER_SOLDERMASK_COLOR_MAP });
9400
9420
  hoverDrawer.realToCanvasMat = realToCanvasMat;
9401
- hoverDrawer.drawElements(hoveredElements, { layers, drawSoldermask: true });
9421
+ hoverDrawer.drawElements(hoveredElements, {
9422
+ layers,
9423
+ drawSoldermask: true,
9424
+ drawBoardMaterial: false
9425
+ });
9402
9426
  }
9403
9427
 
9404
9428
  // src/lib/draw-silkscreen.ts
@@ -9656,15 +9680,6 @@ var CanvasPrimitiveRenderer = ({
9656
9680
  primitives,
9657
9681
  drawSoldermask: isShowingSolderMask
9658
9682
  });
9659
- if (isShowingSolderMask) {
9660
- drawSoldermaskElementsForLayer({
9661
- canvas,
9662
- elements,
9663
- layers: [copperLayer],
9664
- realToCanvasMat: transform,
9665
- primitives
9666
- });
9667
- }
9668
9683
  }
9669
9684
  if (topCanvas) {
9670
9685
  drawPcbViaElementsForLayer({
@@ -9732,15 +9747,6 @@ var CanvasPrimitiveRenderer = ({
9732
9747
  layers: ["drill"],
9733
9748
  realToCanvasMat: transform
9734
9749
  });
9735
- if (isShowingSolderMask) {
9736
- drawSoldermaskElementsForLayer({
9737
- canvas: drillCanvas,
9738
- elements,
9739
- layers: ["drill"],
9740
- realToCanvasMat: transform,
9741
- primitives
9742
- });
9743
- }
9744
9750
  }
9745
9751
  const topSilkscreenCanvas = canvasRefs.current.top_silkscreen;
9746
9752
  if (topSilkscreenCanvas) {
@@ -11983,6 +11989,9 @@ var ErrorOverlay = ({
11983
11989
  x: port2.x,
11984
11990
  y: port2.y
11985
11991
  });
11992
+ if (!isShowingDRCErrors) {
11993
+ return null;
11994
+ }
11986
11995
  const canLineBeDrawn = !(isNaN(screenPort1.x) || isNaN(screenPort1.y) || isNaN(screenPort2.x) || isNaN(screenPort2.y));
11987
11996
  const errorCenter = {
11988
11997
  x: (screenPort1.x + screenPort2.x) / 2,
@@ -13888,7 +13897,7 @@ import { css as css3 } from "@emotion/css";
13888
13897
  // package.json
13889
13898
  var package_default = {
13890
13899
  name: "@tscircuit/pcb-viewer",
13891
- version: "1.11.334",
13900
+ version: "1.11.336",
13892
13901
  main: "dist/index.js",
13893
13902
  type: "module",
13894
13903
  repository: "tscircuit/pcb-viewer",
@@ -13942,7 +13951,7 @@ var package_default = {
13942
13951
  "@tscircuit/math-utils": "^0.0.29",
13943
13952
  "@vitejs/plugin-react": "^5.0.2",
13944
13953
  "circuit-json": "^0.0.374",
13945
- "circuit-to-canvas": "^0.0.69",
13954
+ "circuit-to-canvas": "^0.0.72",
13946
13955
  "circuit-to-svg": "^0.0.323",
13947
13956
  color: "^4.2.3",
13948
13957
  "react-supergrid": "^1.0.10",