@tscircuit/core 0.0.879 → 0.0.881

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
@@ -6433,6 +6433,35 @@ function getTraceLength(route) {
6433
6433
  return totalLength;
6434
6434
  }
6435
6435
 
6436
+ // lib/utils/pcbStyle/getViaDiameterDefaults.ts
6437
+ var DEFAULT_VIA_HOLE_DIAMETER = 0.3;
6438
+ var DEFAULT_VIA_PAD_DIAMETER = 0.6;
6439
+ var parseDistance = (value, fallback) => {
6440
+ if (value === void 0) return fallback;
6441
+ if (typeof value === "number") return value;
6442
+ const parsed = parseFloat(value);
6443
+ return Number.isFinite(parsed) ? parsed : fallback;
6444
+ };
6445
+ var getViaDiameterDefaults = (pcbStyle) => {
6446
+ return {
6447
+ holeDiameter: parseDistance(
6448
+ pcbStyle?.viaHoleDiameter,
6449
+ DEFAULT_VIA_HOLE_DIAMETER
6450
+ ),
6451
+ padDiameter: parseDistance(
6452
+ pcbStyle?.viaPadDiameter,
6453
+ DEFAULT_VIA_PAD_DIAMETER
6454
+ )
6455
+ };
6456
+ };
6457
+ var getViaDiameterDefaultsWithOverrides = (overrides, pcbStyle) => {
6458
+ const defaults = getViaDiameterDefaults(pcbStyle);
6459
+ return {
6460
+ holeDiameter: overrides.holeDiameter ?? defaults.holeDiameter,
6461
+ padDiameter: overrides.padDiameter ?? defaults.padDiameter
6462
+ };
6463
+ };
6464
+
6436
6465
  // lib/components/primitive-components/Trace/Trace_doInitialPcbTraceRender.ts
6437
6466
  var portToObjective = (port) => {
6438
6467
  const portPosition = port._getGlobalPcbPositionAfterLayout();
@@ -6697,6 +6726,8 @@ function Trace_doInitialPcbTraceRender(trace) {
6697
6726
  }
6698
6727
  const mergedRoute = mergeRoutes(routes);
6699
6728
  const traceLength = getTraceLength(mergedRoute);
6729
+ const pcbStyle = trace.getInheritedMergedProperty("pcbStyle");
6730
+ const { holeDiameter, padDiameter } = getViaDiameterDefaults(pcbStyle);
6700
6731
  const pcb_trace = db.pcb_trace.insert({
6701
6732
  route: mergedRoute,
6702
6733
  source_trace_id: trace.source_trace_id,
@@ -6711,8 +6742,8 @@ function Trace_doInitialPcbTraceRender(trace) {
6711
6742
  pcb_trace_id: pcb_trace.pcb_trace_id,
6712
6743
  x: point.x,
6713
6744
  y: point.y,
6714
- hole_diameter: 0.3,
6715
- outer_diameter: 0.6,
6745
+ hole_diameter: holeDiameter,
6746
+ outer_diameter: padDiameter,
6716
6747
  layers: [point.from_layer, point.to_layer],
6717
6748
  from_layer: point.from_layer,
6718
6749
  to_layer: point.to_layer
@@ -9636,6 +9667,18 @@ var getSimpleRouteJsonFromCircuitJson = ({
9636
9667
  });
9637
9668
  if (connectedPorts.length < 2) return null;
9638
9669
  const [portA, portB] = connectedPorts;
9670
+ if (portA.x === void 0 || portA.y === void 0) {
9671
+ console.error(
9672
+ `(source_port_id: ${portA.source_port_id}) for trace ${trace.source_trace_id} does not have x/y coordinates. Skipping this trace.`
9673
+ );
9674
+ return null;
9675
+ }
9676
+ if (portB.x === void 0 || portB.y === void 0) {
9677
+ console.error(
9678
+ `(source_port_id: ${portB.source_port_id}) for trace ${trace.source_trace_id} does not have x/y coordinates. Skipping this trace.`
9679
+ );
9680
+ return null;
9681
+ }
9639
9682
  const layerA = portA.layers?.[0] ?? "top";
9640
9683
  const layerB = portB.layers?.[0] ?? "top";
9641
9684
  const matchingHints = traceHints.filter(
@@ -13714,6 +13757,8 @@ var Group6 = class extends NormalComponent3 {
13714
13757
  const { output_pcb_traces } = this._asyncAutoroutingResult;
13715
13758
  if (!output_pcb_traces) return;
13716
13759
  const { db } = this.root;
13760
+ const pcbStyle = this.getInheritedMergedProperty("pcbStyle");
13761
+ const { holeDiameter, padDiameter } = getViaDiameterDefaults(pcbStyle);
13717
13762
  for (const pcb_trace of output_pcb_traces) {
13718
13763
  if (pcb_trace.type !== "pcb_trace") continue;
13719
13764
  pcb_trace.subcircuit_id = this.subcircuit_id;
@@ -13734,8 +13779,8 @@ var Group6 = class extends NormalComponent3 {
13734
13779
  pcb_trace_id: pcb_trace.pcb_trace_id,
13735
13780
  x: point.x,
13736
13781
  y: point.y,
13737
- hole_diameter: 0.3,
13738
- outer_diameter: 0.6,
13782
+ hole_diameter: holeDiameter,
13783
+ outer_diameter: padDiameter,
13739
13784
  layers: [
13740
13785
  point.from_layer,
13741
13786
  point.to_layer
@@ -17189,9 +17234,19 @@ var Via = class extends PrimitiveComponent2 {
17189
17234
  getAvailablePcbLayers() {
17190
17235
  return ["top", "inner1", "inner2", "bottom"];
17191
17236
  }
17237
+ _getResolvedViaDiameters(pcbStyle) {
17238
+ return getViaDiameterDefaultsWithOverrides(
17239
+ {
17240
+ holeDiameter: this._parsedProps.holeDiameter,
17241
+ padDiameter: this._parsedProps.outerDiameter
17242
+ },
17243
+ pcbStyle
17244
+ );
17245
+ }
17192
17246
  getPcbSize() {
17193
- const { _parsedProps: props } = this;
17194
- return { width: props.outerDiameter, height: props.outerDiameter };
17247
+ const pcbStyle = this.getInheritedMergedProperty("pcbStyle");
17248
+ const { padDiameter } = this._getResolvedViaDiameters(pcbStyle);
17249
+ return { width: padDiameter, height: padDiameter };
17195
17250
  }
17196
17251
  _getPcbCircuitJsonBounds() {
17197
17252
  const { db } = this.root;
@@ -17253,14 +17308,15 @@ var Via = class extends PrimitiveComponent2 {
17253
17308
  doInitialPcbComponentRender() {
17254
17309
  if (this.root?.pcbDisabled) return;
17255
17310
  const { db } = this.root;
17256
- const { _parsedProps: props } = this;
17311
+ const pcbStyle = this.getInheritedMergedProperty("pcbStyle");
17312
+ const { padDiameter } = this._getResolvedViaDiameters(pcbStyle);
17257
17313
  const position = this._getGlobalPcbPositionBeforeLayout();
17258
17314
  const subcircuit = this.getSubcircuit();
17259
17315
  const pcb_component = db.pcb_component.insert({
17260
17316
  center: position,
17261
- width: props.outerDiameter,
17262
- height: props.outerDiameter,
17263
- layer: props.fromLayer ?? "top",
17317
+ width: padDiameter,
17318
+ height: padDiameter,
17319
+ layer: this._parsedProps.fromLayer ?? "top",
17264
17320
  rotation: 0,
17265
17321
  source_component_id: this.source_component_id,
17266
17322
  subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
@@ -17283,21 +17339,22 @@ var Via = class extends PrimitiveComponent2 {
17283
17339
  doInitialPcbPrimitiveRender() {
17284
17340
  if (this.root?.pcbDisabled) return;
17285
17341
  const { db } = this.root;
17286
- const { _parsedProps: props } = this;
17342
+ const pcbStyle = this.getInheritedMergedProperty("pcbStyle");
17343
+ const { holeDiameter, padDiameter } = this._getResolvedViaDiameters(pcbStyle);
17287
17344
  const position = this._getGlobalPcbPositionBeforeLayout();
17288
17345
  const subcircuit = this.getSubcircuit();
17289
17346
  const pcb_via = db.pcb_via.insert({
17290
17347
  x: position.x,
17291
17348
  y: position.y,
17292
- hole_diameter: props.holeDiameter,
17293
- outer_diameter: props.outerDiameter,
17349
+ hole_diameter: holeDiameter,
17350
+ outer_diameter: padDiameter,
17294
17351
  layers: ["bottom", "top"],
17295
- from_layer: props.fromLayer || "bottom",
17296
- to_layer: props.toLayer || "top",
17352
+ from_layer: this._parsedProps.fromLayer || "bottom",
17353
+ to_layer: this._parsedProps.toLayer || "top",
17297
17354
  subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
17298
17355
  subcircuit_connectivity_map_key: this.subcircuit_connectivity_map_key ?? void 0,
17299
17356
  pcb_group_id: this.getGroup()?.pcb_group_id ?? void 0,
17300
- net_is_assignable: props.netIsAssignable ?? void 0
17357
+ net_is_assignable: this._parsedProps.netIsAssignable ?? void 0
17301
17358
  });
17302
17359
  this.pcb_via_id = pcb_via.pcb_via_id;
17303
17360
  }
@@ -18513,7 +18570,7 @@ var VoltageProbe = class extends PrimitiveComponent2 {
18513
18570
  if (!finalName) {
18514
18571
  finalName = targets[0].split(" > ").map((s) => s.replace(/^\./, "")).join(".");
18515
18572
  }
18516
- this.finalProbeName = finalName;
18573
+ this.finalProbeName = finalName ?? null;
18517
18574
  const { simulation_voltage_probe_id } = db.simulation_voltage_probe.insert({
18518
18575
  name: finalName,
18519
18576
  source_port_id: port?.source_port_id ?? void 0,
@@ -18576,7 +18633,7 @@ import { identity as identity6 } from "transformation-matrix";
18576
18633
  var package_default = {
18577
18634
  name: "@tscircuit/core",
18578
18635
  type: "module",
18579
- version: "0.0.878",
18636
+ version: "0.0.880",
18580
18637
  types: "dist/index.d.ts",
18581
18638
  main: "dist/index.js",
18582
18639
  module: "dist/index.js",
@@ -18620,7 +18677,7 @@ var package_default = {
18620
18677
  "@tscircuit/math-utils": "^0.0.29",
18621
18678
  "@tscircuit/miniflex": "^0.0.4",
18622
18679
  "@tscircuit/ngspice-spice-engine": "^0.0.4",
18623
- "@tscircuit/props": "^0.0.410",
18680
+ "@tscircuit/props": "^0.0.418",
18624
18681
  "@tscircuit/schematic-autolayout": "^0.0.6",
18625
18682
  "@tscircuit/schematic-match-adapt": "^0.0.16",
18626
18683
  "@tscircuit/schematic-trace-solver": "^v0.0.45",
@@ -18640,7 +18697,7 @@ var package_default = {
18640
18697
  "circuit-json-to-gltf": "^0.0.31",
18641
18698
  "circuit-json-to-simple-3d": "^0.0.9",
18642
18699
  "circuit-json-to-spice": "^0.0.25",
18643
- "circuit-to-svg": "^0.0.279",
18700
+ "circuit-to-svg": "^0.0.280",
18644
18701
  concurrently: "^9.1.2",
18645
18702
  "connectivity-map": "^1.0.0",
18646
18703
  debug: "^4.3.6",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.879",
4
+ "version": "0.0.881",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -45,7 +45,7 @@
45
45
  "@tscircuit/math-utils": "^0.0.29",
46
46
  "@tscircuit/miniflex": "^0.0.4",
47
47
  "@tscircuit/ngspice-spice-engine": "^0.0.4",
48
- "@tscircuit/props": "^0.0.410",
48
+ "@tscircuit/props": "^0.0.418",
49
49
  "@tscircuit/schematic-autolayout": "^0.0.6",
50
50
  "@tscircuit/schematic-match-adapt": "^0.0.16",
51
51
  "@tscircuit/schematic-trace-solver": "^v0.0.45",
@@ -65,7 +65,7 @@
65
65
  "circuit-json-to-gltf": "^0.0.31",
66
66
  "circuit-json-to-simple-3d": "^0.0.9",
67
67
  "circuit-json-to-spice": "^0.0.25",
68
- "circuit-to-svg": "^0.0.279",
68
+ "circuit-to-svg": "^0.0.280",
69
69
  "concurrently": "^9.1.2",
70
70
  "connectivity-map": "^1.0.0",
71
71
  "debug": "^4.3.6",