@tscircuit/pcb-viewer 1.11.346 → 1.11.347

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.d.ts CHANGED
@@ -21,6 +21,7 @@ interface State {
21
21
  is_showing_pcb_groups: boolean;
22
22
  is_showing_group_anchor_offsets: boolean;
23
23
  is_showing_solder_mask: boolean;
24
+ is_showing_fabrication_notes: boolean;
24
25
  pcb_group_view_mode: "all" | "named_only";
25
26
  hovered_error_id: string | null;
26
27
  selectLayer: (layer: LayerRef) => void;
@@ -36,6 +37,7 @@ interface State {
36
37
  setIsShowingPcbGroups: (is_showing: boolean) => void;
37
38
  setIsShowingGroupAnchorOffsets: (is_showing: boolean) => void;
38
39
  setIsShowingSolderMask: (is_showing: boolean) => void;
40
+ setIsShowingFabricationNotes: (is_showing: boolean) => void;
39
41
  setPcbGroupViewMode: (mode: "all" | "named_only") => void;
40
42
  setHoveredErrorId: (errorId: string | null) => void;
41
43
  }
package/dist/index.js CHANGED
@@ -6475,7 +6475,8 @@ var STORAGE_KEYS = {
6475
6475
  PCB_GROUP_VIEW_MODE: "pcb_viewer_group_view_mode",
6476
6476
  IS_SHOWING_COPPER_POURS: "pcb_viewer_is_showing_copper_pours",
6477
6477
  IS_SHOWING_GROUP_ANCHOR_OFFSETS: "pcb_viewer_is_showing_group_anchor_offsets",
6478
- IS_SHOWING_SOLDER_MASK: "pcb_viewer_is_showing_solder_mask"
6478
+ IS_SHOWING_SOLDER_MASK: "pcb_viewer_is_showing_solder_mask",
6479
+ IS_SHOWING_FABRICATION_NOTES: "pcb_viewer_is_showing_fabrication_notes"
6479
6480
  };
6480
6481
  var getStoredBoolean = (key, defaultValue) => {
6481
6482
  if (typeof window === "undefined") return defaultValue;
@@ -6539,6 +6540,10 @@ var createStore = (initialState = {}, disablePcbGroups = false) => createZustand
6539
6540
  STORAGE_KEYS.IS_SHOWING_SOLDER_MASK,
6540
6541
  false
6541
6542
  ),
6543
+ is_showing_fabrication_notes: getStoredBoolean(
6544
+ STORAGE_KEYS.IS_SHOWING_FABRICATION_NOTES,
6545
+ false
6546
+ ),
6542
6547
  pcb_group_view_mode: disablePcbGroups ? "all" : getStoredString(
6543
6548
  STORAGE_KEYS.PCB_GROUP_VIEW_MODE,
6544
6549
  DEFAULT_PCB_GROUP_VIEW_MODE
@@ -6580,6 +6585,13 @@ var createStore = (initialState = {}, disablePcbGroups = false) => createZustand
6580
6585
  setStoredBoolean(STORAGE_KEYS.IS_SHOWING_SOLDER_MASK, is_showing);
6581
6586
  set({ is_showing_solder_mask: is_showing });
6582
6587
  },
6588
+ setIsShowingFabricationNotes: (is_showing) => {
6589
+ setStoredBoolean(
6590
+ STORAGE_KEYS.IS_SHOWING_FABRICATION_NOTES,
6591
+ is_showing
6592
+ );
6593
+ set({ is_showing_fabrication_notes: is_showing });
6594
+ },
6583
6595
  setPcbGroupViewMode: (mode) => {
6584
6596
  if (disablePcbGroups) return;
6585
6597
  setStoredString(STORAGE_KEYS.PCB_GROUP_VIEW_MODE, mode);
@@ -9873,24 +9885,26 @@ var CanvasPrimitiveRenderer = ({
9873
9885
  const canvasRefs = useRef3({});
9874
9886
  const selectedLayer = useGlobalStore((s) => s.selected_layer);
9875
9887
  const isShowingSolderMask = useGlobalStore((s) => s.is_showing_solder_mask);
9888
+ const isShowingFabricationNotes = useGlobalStore(
9889
+ (s) => s.is_showing_fabrication_notes
9890
+ );
9876
9891
  useEffect5(() => {
9877
9892
  if (!canvasRefs.current) return;
9878
9893
  if (Object.keys(canvasRefs.current).length === 0) return;
9879
- const filteredCanvasRefs = Object.fromEntries(
9894
+ const availableCanvasRefs = Object.fromEntries(
9880
9895
  Object.entries(canvasRefs.current).filter(([layer, canvas]) => {
9881
9896
  if (!canvas) return false;
9882
- if (!isShowingSolderMask && layer.includes("soldermask")) {
9883
- return false;
9884
- }
9885
9897
  return true;
9886
9898
  })
9887
9899
  );
9888
- if (Object.keys(filteredCanvasRefs).length === 0) return;
9889
- const drawer = new Drawer(filteredCanvasRefs);
9900
+ if (Object.keys(availableCanvasRefs).length === 0) return;
9901
+ const drawer = new Drawer(availableCanvasRefs);
9890
9902
  if (transform) drawer.transform = transform;
9891
9903
  drawer.clear();
9892
9904
  drawer.foregroundLayer = selectedLayer;
9893
- const filteredPrimitives = primitives.filter((p) => isShowingSolderMask || !p.layer?.includes("soldermask")).filter((p) => p.layer !== "board").filter((p) => p._element?.type !== "pcb_smtpad").filter((p) => p._element?.type !== "pcb_plated_hole").filter((p) => p._element?.type !== "pcb_via").filter((p) => p._element?.type !== "pcb_trace");
9905
+ const filteredPrimitives = primitives.filter((p) => isShowingSolderMask || !p.layer?.includes("soldermask")).filter(
9906
+ (p) => isShowingFabricationNotes || !p.layer?.includes("fabrication")
9907
+ ).filter((p) => p.layer !== "board").filter((p) => p._element?.type !== "pcb_smtpad").filter((p) => p._element?.type !== "pcb_plated_hole").filter((p) => p._element?.type !== "pcb_via").filter((p) => p._element?.type !== "pcb_trace");
9894
9908
  drawPrimitives(drawer, filteredPrimitives);
9895
9909
  if (transform) {
9896
9910
  const topCanvas = canvasRefs.current.top;
@@ -10060,23 +10074,25 @@ var CanvasPrimitiveRenderer = ({
10060
10074
  realToCanvasMat: transform
10061
10075
  });
10062
10076
  }
10063
- const topFabCanvas = canvasRefs.current.top_fabrication;
10064
- if (topFabCanvas) {
10065
- drawFabricationNoteElementsForLayer({
10066
- canvas: topFabCanvas,
10067
- elements,
10068
- layers: ["top_fabrication_note"],
10069
- realToCanvasMat: transform
10070
- });
10071
- }
10072
- const bottomFabCanvas = canvasRefs.current.bottom_fabrication;
10073
- if (bottomFabCanvas) {
10074
- drawFabricationNoteElementsForLayer({
10075
- canvas: bottomFabCanvas,
10076
- elements,
10077
- layers: ["bottom_fabrication_note"],
10078
- realToCanvasMat: transform
10079
- });
10077
+ if (isShowingFabricationNotes) {
10078
+ const topFabCanvas = canvasRefs.current.top_fabrication;
10079
+ if (topFabCanvas) {
10080
+ drawFabricationNoteElementsForLayer({
10081
+ canvas: topFabCanvas,
10082
+ elements,
10083
+ layers: ["top_fabrication_note"],
10084
+ realToCanvasMat: transform
10085
+ });
10086
+ }
10087
+ const bottomFabCanvas = canvasRefs.current.bottom_fabrication;
10088
+ if (bottomFabCanvas) {
10089
+ drawFabricationNoteElementsForLayer({
10090
+ canvas: bottomFabCanvas,
10091
+ elements,
10092
+ layers: ["bottom_fabrication_note"],
10093
+ realToCanvasMat: transform
10094
+ });
10095
+ }
10080
10096
  }
10081
10097
  const bottomNotesCanvas = canvasRefs.current.bottom_notes;
10082
10098
  if (bottomNotesCanvas) {
@@ -10155,7 +10171,14 @@ var CanvasPrimitiveRenderer = ({
10155
10171
  }
10156
10172
  }
10157
10173
  drawer.orderAndFadeLayers();
10158
- }, [primitives, elements, transform, selectedLayer, isShowingSolderMask]);
10174
+ }, [
10175
+ primitives,
10176
+ elements,
10177
+ transform,
10178
+ selectedLayer,
10179
+ isShowingSolderMask,
10180
+ isShowingFabricationNotes
10181
+ ]);
10159
10182
  return /* @__PURE__ */ jsxs(
10160
10183
  "div",
10161
10184
  {
@@ -14194,7 +14217,7 @@ import { css as css3 } from "@emotion/css";
14194
14217
  // package.json
14195
14218
  var package_default = {
14196
14219
  name: "@tscircuit/pcb-viewer",
14197
- version: "1.11.345",
14220
+ version: "1.11.346",
14198
14221
  main: "dist/index.js",
14199
14222
  type: "module",
14200
14223
  repository: "tscircuit/pcb-viewer",
@@ -14531,6 +14554,7 @@ var ToolbarOverlay = ({ children, elements }) => {
14531
14554
  setIsShowingPcbGroups,
14532
14555
  setIsShowingGroupAnchorOffsets,
14533
14556
  setIsShowingSolderMask,
14557
+ setIsShowingFabricationNotes,
14534
14558
  setPcbGroupViewMode,
14535
14559
  setHoveredErrorId
14536
14560
  } = useGlobalStore((s) => ({
@@ -14551,6 +14575,7 @@ var ToolbarOverlay = ({ children, elements }) => {
14551
14575
  is_showing_pcb_groups: s.is_showing_pcb_groups,
14552
14576
  is_showing_group_anchor_offsets: s.is_showing_group_anchor_offsets,
14553
14577
  is_showing_solder_mask: s.is_showing_solder_mask,
14578
+ is_showing_fabrication_notes: s.is_showing_fabrication_notes,
14554
14579
  pcb_group_view_mode: s.pcb_group_view_mode
14555
14580
  },
14556
14581
  setEditMode: s.setEditMode,
@@ -14562,6 +14587,7 @@ var ToolbarOverlay = ({ children, elements }) => {
14562
14587
  setIsShowingPcbGroups: s.setIsShowingPcbGroups,
14563
14588
  setIsShowingGroupAnchorOffsets: s.setIsShowingGroupAnchorOffsets,
14564
14589
  setIsShowingSolderMask: s.setIsShowingSolderMask,
14590
+ setIsShowingFabricationNotes: s.setIsShowingFabricationNotes,
14565
14591
  setPcbGroupViewMode: s.setPcbGroupViewMode,
14566
14592
  setHoveredErrorId: s.setHoveredErrorId
14567
14593
  }));
@@ -15115,6 +15141,18 @@ var ToolbarOverlay = ({ children, elements }) => {
15115
15141
  }
15116
15142
  }
15117
15143
  ),
15144
+ /* @__PURE__ */ jsx20(
15145
+ CheckboxMenuItem,
15146
+ {
15147
+ label: "Show Fabrication Notes",
15148
+ checked: viewSettings.is_showing_fabrication_notes,
15149
+ onClick: () => {
15150
+ setIsShowingFabricationNotes(
15151
+ !viewSettings.is_showing_fabrication_notes
15152
+ );
15153
+ }
15154
+ }
15155
+ ),
15118
15156
  /* @__PURE__ */ jsx20(
15119
15157
  CheckboxMenuItem,
15120
15158
  {