@tscircuit/pcb-viewer 1.11.345 → 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
  {
@@ -13868,6 +13891,9 @@ var PcbGroupOverlay = ({
13868
13891
  sourceGroups.map((group) => [group.source_group_id, group])
13869
13892
  );
13870
13893
  const visiblePcbGroups = pcbGroups.filter((group) => {
13894
+ if (group.name?.toLowerCase().includes("subpanel")) {
13895
+ return false;
13896
+ }
13871
13897
  if (pcb_group_view_mode === "all") return true;
13872
13898
  if (!group.source_group_id) return false;
13873
13899
  const sourceGroup = sourceGroupById.get(group.source_group_id);
@@ -14191,7 +14217,7 @@ import { css as css3 } from "@emotion/css";
14191
14217
  // package.json
14192
14218
  var package_default = {
14193
14219
  name: "@tscircuit/pcb-viewer",
14194
- version: "1.11.344",
14220
+ version: "1.11.346",
14195
14221
  main: "dist/index.js",
14196
14222
  type: "module",
14197
14223
  repository: "tscircuit/pcb-viewer",
@@ -14228,7 +14254,7 @@ var package_default = {
14228
14254
  "react-cosmos-plugin-vite": "7.0.0-beta.0",
14229
14255
  "react-dom": "19.1.0",
14230
14256
  "react-use": "^17.4.0",
14231
- tscircuit: "^0.0.1212",
14257
+ tscircuit: "^0.0.1421",
14232
14258
  tsup: "^8.0.2",
14233
14259
  "type-fest": "^3.0.0",
14234
14260
  typescript: "^5.4.4",
@@ -14528,6 +14554,7 @@ var ToolbarOverlay = ({ children, elements }) => {
14528
14554
  setIsShowingPcbGroups,
14529
14555
  setIsShowingGroupAnchorOffsets,
14530
14556
  setIsShowingSolderMask,
14557
+ setIsShowingFabricationNotes,
14531
14558
  setPcbGroupViewMode,
14532
14559
  setHoveredErrorId
14533
14560
  } = useGlobalStore((s) => ({
@@ -14548,6 +14575,7 @@ var ToolbarOverlay = ({ children, elements }) => {
14548
14575
  is_showing_pcb_groups: s.is_showing_pcb_groups,
14549
14576
  is_showing_group_anchor_offsets: s.is_showing_group_anchor_offsets,
14550
14577
  is_showing_solder_mask: s.is_showing_solder_mask,
14578
+ is_showing_fabrication_notes: s.is_showing_fabrication_notes,
14551
14579
  pcb_group_view_mode: s.pcb_group_view_mode
14552
14580
  },
14553
14581
  setEditMode: s.setEditMode,
@@ -14559,6 +14587,7 @@ var ToolbarOverlay = ({ children, elements }) => {
14559
14587
  setIsShowingPcbGroups: s.setIsShowingPcbGroups,
14560
14588
  setIsShowingGroupAnchorOffsets: s.setIsShowingGroupAnchorOffsets,
14561
14589
  setIsShowingSolderMask: s.setIsShowingSolderMask,
14590
+ setIsShowingFabricationNotes: s.setIsShowingFabricationNotes,
14562
14591
  setPcbGroupViewMode: s.setPcbGroupViewMode,
14563
14592
  setHoveredErrorId: s.setHoveredErrorId
14564
14593
  }));
@@ -15112,6 +15141,18 @@ var ToolbarOverlay = ({ children, elements }) => {
15112
15141
  }
15113
15142
  }
15114
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
+ ),
15115
15156
  /* @__PURE__ */ jsx20(
15116
15157
  CheckboxMenuItem,
15117
15158
  {