@tscircuit/pcb-viewer 1.6.0 → 1.7.0

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
@@ -13390,7 +13390,7 @@ var import_soup2 = __toESM(require_dist());
13390
13390
  // package.json
13391
13391
  var package_default = {
13392
13392
  name: "@tscircuit/pcb-viewer",
13393
- version: "1.5.0",
13393
+ version: "1.6.0",
13394
13394
  main: "dist/index.js",
13395
13395
  repository: "tscircuit/pcb-viewer",
13396
13396
  license: "MIT",
@@ -14004,7 +14004,7 @@ var HotkeyActionMenu = function(param) {
14004
14004
  };
14005
14005
  // src/components/EditTraceHintOverlay.tsx
14006
14006
  var import_jsx_runtime10 = require("react/jsx-runtime");
14007
- var isInsideOf2 = function(elm, point) {
14007
+ var isInsideOfSmtpad = function(elm, point) {
14008
14008
  var padding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
14009
14009
  if (elm.shape === "circle") {
14010
14010
  return false;
@@ -14017,6 +14017,21 @@ var isInsideOf2 = function(elm, point) {
14017
14017
  var bottom = elm.y + halfHeight + padding;
14018
14018
  return point.x > left && point.x < right && point.y > top && point.y < bottom;
14019
14019
  };
14020
+ var isInsideOfPlatedHole = function(hole, point) {
14021
+ var padding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
14022
+ if (hole.shape === "circle") {
14023
+ var distance = Math.sqrt(Math.pow(point.x - hole.x, 2) + Math.pow(point.y - hole.y, 2));
14024
+ return distance <= hole.outer_diameter / 2 + padding;
14025
+ } else {
14026
+ var halfWidth = hole.hole_width / 2;
14027
+ var halfHeight = hole.hole_height / 2;
14028
+ var left = hole.x - halfWidth - padding;
14029
+ var right = hole.x + halfWidth + padding;
14030
+ var top = hole.y - halfHeight - padding;
14031
+ var bottom = hole.y + halfHeight + padding;
14032
+ return point.x > left && point.x < right && point.y > top && point.y < bottom;
14033
+ }
14034
+ };
14020
14035
  var EditTraceHintOverlay = function(param) {
14021
14036
  var children = param.children, disabledProp = param.disabled, transform = param.transform, soup = param.soup, cancelPanDrag = param.cancelPanDrag, onCreateEditEvent = param.onCreateEditEvent, onModifyEditEvent = param.onModifyEditEvent;
14022
14037
  var _containerRef_current;
@@ -14072,7 +14087,7 @@ var EditTraceHintOverlay = function(param) {
14072
14087
  try {
14073
14088
  for(var _iterator = soup[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
14074
14089
  var e2 = _step.value;
14075
- if (e2.type === "pcb_smtpad" && isInsideOf2(e2, rwMousePoint, 10 / transform.a)) {
14090
+ if (e2.type === "pcb_smtpad" && isInsideOfSmtpad(e2, rwMousePoint, 10 / transform.a) || e2.type === "pcb_plated_hole" && isInsideOfPlatedHole(e2, rwMousePoint, 10 / transform.a)) {
14076
14091
  setSelectedElement(e2);
14077
14092
  setShouldCreateAsVia(false);
14078
14093
  setDragState({