@tscircuit/core 0.0.1936 → 0.0.1938

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
@@ -99217,6 +99217,7 @@ declare class Keepout extends PrimitiveComponent<typeof pcbKeepoutProps> {
99217
99217
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8" | {
99218
99218
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8";
99219
99219
  }>, "many">>;
99220
+ warningOnly: zod.ZodOptional<zod.ZodBoolean>;
99220
99221
  excludeRefs: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
99221
99222
  }, "strip", zod.ZodTypeAny, {
99222
99223
  shape: "circle";
@@ -99253,6 +99254,7 @@ declare class Keepout extends PrimitiveComponent<typeof pcbKeepoutProps> {
99253
99254
  pcbSx?: _tscircuit_props.PcbSx | undefined;
99254
99255
  pcbRelative?: boolean | undefined;
99255
99256
  relative?: boolean | undefined;
99257
+ warningOnly?: boolean | undefined;
99256
99258
  excludeRefs?: string[] | undefined;
99257
99259
  }, {
99258
99260
  shape: "circle";
@@ -99293,6 +99295,7 @@ declare class Keepout extends PrimitiveComponent<typeof pcbKeepoutProps> {
99293
99295
  pcbSx?: _tscircuit_props.PcbSx | undefined;
99294
99296
  pcbRelative?: boolean | undefined;
99295
99297
  relative?: boolean | undefined;
99298
+ warningOnly?: boolean | undefined;
99296
99299
  excludeRefs?: string[] | undefined;
99297
99300
  }>, zod.ZodObject<{
99298
99301
  pcbX: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
@@ -99372,6 +99375,7 @@ declare class Keepout extends PrimitiveComponent<typeof pcbKeepoutProps> {
99372
99375
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8" | {
99373
99376
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8";
99374
99377
  }>, "many">>;
99378
+ warningOnly: zod.ZodOptional<zod.ZodBoolean>;
99375
99379
  excludeRefs: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
99376
99380
  }, "strip", zod.ZodTypeAny, {
99377
99381
  shape: "rect";
@@ -99410,6 +99414,7 @@ declare class Keepout extends PrimitiveComponent<typeof pcbKeepoutProps> {
99410
99414
  pcbSx?: _tscircuit_props.PcbSx | undefined;
99411
99415
  pcbRelative?: boolean | undefined;
99412
99416
  relative?: boolean | undefined;
99417
+ warningOnly?: boolean | undefined;
99413
99418
  excludeRefs?: string[] | undefined;
99414
99419
  }, {
99415
99420
  shape: "rect";
@@ -99452,6 +99457,7 @@ declare class Keepout extends PrimitiveComponent<typeof pcbKeepoutProps> {
99452
99457
  pcbSx?: _tscircuit_props.PcbSx | undefined;
99453
99458
  pcbRelative?: boolean | undefined;
99454
99459
  relative?: boolean | undefined;
99460
+ warningOnly?: boolean | undefined;
99455
99461
  excludeRefs?: string[] | undefined;
99456
99462
  }>]>;
99457
99463
  };
@@ -108279,12 +108285,12 @@ declare const pcbViaProps: z.ZodObject<{
108279
108285
  }>>;
108280
108286
  schRelative: z.ZodOptional<z.ZodBoolean>;
108281
108287
  pcbRelative: z.ZodOptional<z.ZodBoolean>;
108288
+ tented: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["both_sides", "top_and_bottom_tented", "top_tented", "bottom_tented", "exposed"]>]>, "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed", boolean | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | "both_sides">>;
108282
108289
  isTented: z.ZodOptional<z.ZodBoolean>;
108283
108290
  tentedOnTop: z.ZodOptional<z.ZodBoolean>;
108284
108291
  tentedOnBottom: z.ZodOptional<z.ZodBoolean>;
108285
108292
  outerDiameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
108286
108293
  netIsAssignable: z.ZodOptional<z.ZodBoolean>;
108287
- tented: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["both_sides", "top_and_bottom_tented", "top_tented", "bottom_tented", "exposed"]>]>, "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed", boolean | "both_sides" | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed">>;
108288
108294
  }, "strip", z.ZodTypeAny, {
108289
108295
  symbol?: _tscircuit_props.SymbolProp | undefined;
108290
108296
  fromLayer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8" | undefined;
@@ -108340,12 +108346,12 @@ declare const pcbViaProps: z.ZodObject<{
108340
108346
  } | undefined;
108341
108347
  schRelative?: boolean | undefined;
108342
108348
  pcbRelative?: boolean | undefined;
108349
+ tented?: "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | undefined;
108343
108350
  isTented?: boolean | undefined;
108344
108351
  tentedOnTop?: boolean | undefined;
108345
108352
  tentedOnBottom?: boolean | undefined;
108346
108353
  outerDiameter?: number | undefined;
108347
108354
  netIsAssignable?: boolean | undefined;
108348
- tented?: "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | undefined;
108349
108355
  }, {
108350
108356
  symbol?: _tscircuit_props.SymbolProp | undefined;
108351
108357
  fromLayer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8" | {
@@ -108409,12 +108415,12 @@ declare const pcbViaProps: z.ZodObject<{
108409
108415
  } | undefined;
108410
108416
  schRelative?: boolean | undefined;
108411
108417
  pcbRelative?: boolean | undefined;
108418
+ tented?: boolean | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | "both_sides" | undefined;
108412
108419
  isTented?: boolean | undefined;
108413
108420
  tentedOnTop?: boolean | undefined;
108414
108421
  tentedOnBottom?: boolean | undefined;
108415
108422
  outerDiameter?: string | number | undefined;
108416
108423
  netIsAssignable?: boolean | undefined;
108417
- tented?: boolean | "both_sides" | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | undefined;
108418
108424
  }>;
108419
108425
  declare class PcbVia extends PrimitiveComponent<typeof pcbViaProps> {
108420
108426
  pcb_via_id: string | null;
@@ -108539,12 +108545,12 @@ declare class PcbVia extends PrimitiveComponent<typeof pcbViaProps> {
108539
108545
  }>>;
108540
108546
  schRelative: z.ZodOptional<z.ZodBoolean>;
108541
108547
  pcbRelative: z.ZodOptional<z.ZodBoolean>;
108548
+ tented: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["both_sides", "top_and_bottom_tented", "top_tented", "bottom_tented", "exposed"]>]>, "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed", boolean | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | "both_sides">>;
108542
108549
  isTented: z.ZodOptional<z.ZodBoolean>;
108543
108550
  tentedOnTop: z.ZodOptional<z.ZodBoolean>;
108544
108551
  tentedOnBottom: z.ZodOptional<z.ZodBoolean>;
108545
108552
  outerDiameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
108546
108553
  netIsAssignable: z.ZodOptional<z.ZodBoolean>;
108547
- tented: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["both_sides", "top_and_bottom_tented", "top_tented", "bottom_tented", "exposed"]>]>, "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed", boolean | "both_sides" | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed">>;
108548
108554
  }, "strip", z.ZodTypeAny, {
108549
108555
  symbol?: _tscircuit_props.SymbolProp | undefined;
108550
108556
  fromLayer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8" | undefined;
@@ -108600,12 +108606,12 @@ declare class PcbVia extends PrimitiveComponent<typeof pcbViaProps> {
108600
108606
  } | undefined;
108601
108607
  schRelative?: boolean | undefined;
108602
108608
  pcbRelative?: boolean | undefined;
108609
+ tented?: "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | undefined;
108603
108610
  isTented?: boolean | undefined;
108604
108611
  tentedOnTop?: boolean | undefined;
108605
108612
  tentedOnBottom?: boolean | undefined;
108606
108613
  outerDiameter?: number | undefined;
108607
108614
  netIsAssignable?: boolean | undefined;
108608
- tented?: "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | undefined;
108609
108615
  }, {
108610
108616
  symbol?: _tscircuit_props.SymbolProp | undefined;
108611
108617
  fromLayer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | "inner7" | "inner8" | {
@@ -108669,12 +108675,12 @@ declare class PcbVia extends PrimitiveComponent<typeof pcbViaProps> {
108669
108675
  } | undefined;
108670
108676
  schRelative?: boolean | undefined;
108671
108677
  pcbRelative?: boolean | undefined;
108678
+ tented?: boolean | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | "both_sides" | undefined;
108672
108679
  isTented?: boolean | undefined;
108673
108680
  tentedOnTop?: boolean | undefined;
108674
108681
  tentedOnBottom?: boolean | undefined;
108675
108682
  outerDiameter?: string | number | undefined;
108676
108683
  netIsAssignable?: boolean | undefined;
108677
- tented?: boolean | "both_sides" | "top_and_bottom_tented" | "top_tented" | "bottom_tented" | "exposed" | undefined;
108678
108684
  }>;
108679
108685
  };
108680
108686
  private _getLayers;
package/dist/index.js CHANGED
@@ -3166,6 +3166,7 @@ var getObstaclesFromCircuitJson = (circuitJson, connMap) => {
3166
3166
  }
3167
3167
  }
3168
3168
  } else if (element.type === "pcb_keepout") {
3169
+ if (element.warning_only) continue;
3169
3170
  if (element.shape === "circle") {
3170
3171
  obstacles.push({
3171
3172
  componentId: pcbComponentId,
@@ -3667,6 +3668,15 @@ var getViaDiameterDefaultsWithOverrides = (overrides, pcbStyle) => {
3667
3668
  };
3668
3669
  };
3669
3670
 
3671
+ // lib/utils/getViaTenting.ts
3672
+ var getViaTenting = (tented) => {
3673
+ if (tented === void 0) return {};
3674
+ return {
3675
+ tented_on_top: tented === "top_tented" || tented === "top_and_bottom_tented",
3676
+ tented_on_bottom: tented === "bottom_tented" || tented === "top_and_bottom_tented"
3677
+ };
3678
+ };
3679
+
3670
3680
  // lib/components/primitive-components/Via.ts
3671
3681
  import "zod";
3672
3682
 
@@ -4991,9 +5001,11 @@ var Via = class extends PrimitiveComponent2 {
4991
5001
  const position = this._getGlobalPcbPositionBeforeLayout();
4992
5002
  const subcircuit = this.getSubcircuit();
4993
5003
  const connectedNetOrTrace = this._getConnectedNetOrTrace();
5004
+ const { isFlipped } = this._getPcbPrimitiveFlippedHelpers();
5005
+ const viaTenting = getViaTenting(this._parsedProps.tented);
4994
5006
  const sourceTraceId = this.source_trace_id ?? (connectedNetOrTrace instanceof Net ? void 0 : connectedNetOrTrace?.source_trace_id);
4995
5007
  const sourceNetId = !sourceTraceId && connectedNetOrTrace instanceof Net ? connectedNetOrTrace.source_net_id : void 0;
4996
- const pcb_via3 = db.pcb_via.insert({
5008
+ const pcb_via4 = db.pcb_via.insert({
4997
5009
  x: position.x,
4998
5010
  y: position.y,
4999
5011
  hole_diameter: holeDiameter,
@@ -5005,10 +5017,12 @@ var Via = class extends PrimitiveComponent2 {
5005
5017
  subcircuit_connectivity_map_key: this.subcircuit_connectivity_map_key ?? void 0,
5006
5018
  pcb_group_id: this.getGroup()?.pcb_group_id ?? void 0,
5007
5019
  net_is_assignable: this._parsedProps.netIsAssignable ?? void 0,
5020
+ tented_on_top: isFlipped ? viaTenting.tented_on_bottom : viaTenting.tented_on_top,
5021
+ tented_on_bottom: isFlipped ? viaTenting.tented_on_top : viaTenting.tented_on_bottom,
5008
5022
  ...sourceTraceId ? { source_trace_id: sourceTraceId } : {},
5009
5023
  ...sourceNetId ? { source_net_id: sourceNetId } : {}
5010
5024
  });
5011
- this.pcb_via_id = pcb_via3.pcb_via_id;
5025
+ this.pcb_via_id = pcb_via4.pcb_via_id;
5012
5026
  }
5013
5027
  };
5014
5028
 
@@ -5527,7 +5541,9 @@ function Trace_doInitialPcbManualTraceRender(trace) {
5527
5541
  ...restOfPoint,
5528
5542
  ...transformedPoint,
5529
5543
  from_layer: maybeFlipLayer(point6.from_layer),
5530
- to_layer: maybeFlipLayer(point6.to_layer)
5544
+ to_layer: maybeFlipLayer(point6.to_layer),
5545
+ tented_on_top: isFlipped ? point6.tented_on_bottom : point6.tented_on_top,
5546
+ tented_on_bottom: isFlipped ? point6.tented_on_top : point6.tented_on_bottom
5531
5547
  };
5532
5548
  }
5533
5549
  return {
@@ -5583,8 +5599,8 @@ function Trace_doInitialPcbManualTraceRender(trace) {
5583
5599
  net_is_assignable: inflatedPcbVia?.net_is_assignable,
5584
5600
  net_assigned: inflatedPcbVia?.net_assigned,
5585
5601
  // Use the same footprint flip as the route and via layers above.
5586
- tented_on_top: isFlipped ? inflatedPcbVia?.tented_on_bottom : inflatedPcbVia?.tented_on_top,
5587
- tented_on_bottom: isFlipped ? inflatedPcbVia?.tented_on_top : inflatedPcbVia?.tented_on_bottom
5602
+ tented_on_top: (isFlipped ? inflatedPcbVia?.tented_on_bottom : inflatedPcbVia?.tented_on_top) ?? point6.tented_on_top,
5603
+ tented_on_bottom: (isFlipped ? inflatedPcbVia?.tented_on_top : inflatedPcbVia?.tented_on_bottom) ?? point6.tented_on_bottom
5588
5604
  });
5589
5605
  }
5590
5606
  }
@@ -8017,7 +8033,8 @@ var underscorifyPortArrangement = (portArrangement) => {
8017
8033
  // lib/utils/createComponentsFromCircuitJson.ts
8018
8034
  import { getUnitVectorFromDirection as getUnitVectorFromDirection2 } from "@tscircuit/math-utils";
8019
8035
  import {
8020
- pcb_via as pcb_via2
8036
+ pcb_via as pcb_via2,
8037
+ layer_ref as layer_ref2
8021
8038
  } from "circuit-json";
8022
8039
 
8023
8040
  // lib/utils/normalizeTextForCircuitJson.ts
@@ -9025,6 +9042,7 @@ var Keepout = class extends PrimitiveComponent2 {
9025
9042
  layers,
9026
9043
  shape: "circle",
9027
9044
  ...pcbKeepoutExclusionProps,
9045
+ ...props.warningOnly !== void 0 ? { warning_only: props.warningOnly } : {},
9028
9046
  // @ts-ignore: no idea why this is triggering
9029
9047
  radius: props.radius,
9030
9048
  center: {
@@ -9039,6 +9057,7 @@ var Keepout = class extends PrimitiveComponent2 {
9039
9057
  layers,
9040
9058
  shape: "rect",
9041
9059
  ...pcbKeepoutExclusionProps,
9060
+ ...props.warningOnly !== void 0 ? { warning_only: props.warningOnly } : {},
9042
9061
  ...isRotated90 ? { width: props.height, height: props.width } : { width: props.width, height: props.height },
9043
9062
  // @ts-ignore: no idea why this is triggering
9044
9063
  center: {
@@ -9351,7 +9370,7 @@ var PcbTrace = class extends PrimitiveComponent2 {
9351
9370
  const { _parsedProps: props } = this;
9352
9371
  const container = this.getPrimitiveContainer();
9353
9372
  const subcircuit = this.getSubcircuit();
9354
- const { maybeFlipLayer } = this._getPcbPrimitiveFlippedHelpers();
9373
+ const { isFlipped, maybeFlipLayer } = this._getPcbPrimitiveFlippedHelpers();
9355
9374
  const parentTransform = this._computePcbGlobalTransformBeforeLayout();
9356
9375
  const transformedRoute = props.route.map((point6) => {
9357
9376
  if (point6.route_type === "wire") {
@@ -9370,7 +9389,9 @@ var PcbTrace = class extends PrimitiveComponent2 {
9370
9389
  ...restOfPoint,
9371
9390
  ...transformedPoint,
9372
9391
  from_layer: maybeFlipLayer(point6.from_layer),
9373
- to_layer: maybeFlipLayer(point6.to_layer)
9392
+ to_layer: maybeFlipLayer(point6.to_layer),
9393
+ tented_on_top: isFlipped ? point6.tented_on_bottom : point6.tented_on_top,
9394
+ tented_on_bottom: isFlipped ? point6.tented_on_top : point6.tented_on_bottom
9374
9395
  };
9375
9396
  }
9376
9397
  return {
@@ -9537,10 +9558,14 @@ var PcbVia = class extends PrimitiveComponent2 {
9537
9558
  holeDiameter,
9538
9559
  outerDiameter,
9539
9560
  netIsAssignable,
9561
+ tented,
9540
9562
  isTented,
9541
9563
  tentedOnTop,
9542
9564
  tentedOnBottom
9543
9565
  } = this._parsedProps;
9566
+ const viaTenting = getViaTenting(tented);
9567
+ const topTenting = tentedOnTop ?? viaTenting.tented_on_top ?? isTented;
9568
+ const bottomTenting = tentedOnBottom ?? viaTenting.tented_on_bottom ?? isTented;
9544
9569
  const subcircuit = this.getSubcircuit();
9545
9570
  const position = this._getGlobalPcbPositionBeforeLayout();
9546
9571
  const { isFlipped, maybeFlipLayer } = this._getPcbPrimitiveFlippedHelpers();
@@ -9562,8 +9587,8 @@ var PcbVia = class extends PrimitiveComponent2 {
9562
9587
  pcb_group_id: this.getGroup()?.pcb_group_id ?? void 0,
9563
9588
  net_is_assignable: netIsAssignable,
9564
9589
  // Use the same footprint flip as the via layers above.
9565
- tented_on_top: (isFlipped ? tentedOnBottom : tentedOnTop) ?? isTented,
9566
- tented_on_bottom: (isFlipped ? tentedOnTop : tentedOnBottom) ?? isTented
9590
+ tented_on_top: isFlipped ? bottomTenting : topTenting,
9591
+ tented_on_bottom: isFlipped ? topTenting : bottomTenting
9567
9592
  });
9568
9593
  this.pcb_via_id = pcbVia.pcb_via_id;
9569
9594
  }
@@ -11925,6 +11950,8 @@ var createComponentsFromCircuitJson = ({
11925
11950
  } else if (elm.type === "pcb_keepout" && elm.shape === "circle") {
11926
11951
  components.push(
11927
11952
  new Keepout({
11953
+ warningOnly: elm.warning_only,
11954
+ layers: elm.layers.map((layer) => layer_ref2.parse(layer)),
11928
11955
  pcbX: elm.center.x,
11929
11956
  pcbY: elm.center.y,
11930
11957
  shape: "circle",
@@ -11934,6 +11961,8 @@ var createComponentsFromCircuitJson = ({
11934
11961
  } else if (elm.type === "pcb_keepout" && elm.shape === "rect") {
11935
11962
  components.push(
11936
11963
  new Keepout({
11964
+ warningOnly: elm.warning_only,
11965
+ layers: elm.layers.map((layer) => layer_ref2.parse(layer)),
11937
11966
  pcbX: elm.center.x,
11938
11967
  pcbY: elm.center.y,
11939
11968
  shape: "rect",
@@ -63379,7 +63408,7 @@ function Group_getRoutingPhasePlans(group) {
63379
63408
  var package_default = {
63380
63409
  name: "@tscircuit/core",
63381
63410
  type: "module",
63382
- version: "0.0.1935",
63411
+ version: "0.0.1937",
63383
63412
  types: "dist/index.d.ts",
63384
63413
  main: "dist/index.js",
63385
63414
  module: "dist/index.js",
@@ -63415,7 +63444,7 @@ var package_default = {
63415
63444
  "@tscircuit/bga-fanout-solver": "github:tscircuit/bga-fanout-solver#247c835cb8d69b65e53891dcf869731079415b39",
63416
63445
  "@tscircuit/bus-lanes-solver": "github:tscircuit/bus-lanes-solver#0bc8d071241b18a3e7465a878881abe4998f6384",
63417
63446
  "@tscircuit/capacity-autorouter": "^0.0.900",
63418
- "@tscircuit/checks": "^0.0.200",
63447
+ "@tscircuit/checks": "^0.0.201",
63419
63448
  "@tscircuit/circuit-json-util": "^0.0.114",
63420
63449
  "@tscircuit/common": "^0.0.20",
63421
63450
  "@tscircuit/copper-pour-solver": "^0.0.54",
@@ -63433,7 +63462,7 @@ var package_default = {
63433
63462
  "@tscircuit/math-utils": "^0.0.36",
63434
63463
  "@tscircuit/miniflex": "^0.0.4",
63435
63464
  "@tscircuit/ngspice-spice-engine": "^0.0.20",
63436
- "@tscircuit/props": "^0.0.660",
63465
+ "@tscircuit/props": "^0.0.661",
63437
63466
  "@tscircuit/schematic-match-adapt": "^0.0.18",
63438
63467
  "@tscircuit/schematic-trace-solver": "^0.0.199",
63439
63468
  "@tscircuit/solver-utils": "^0.0.16",
@@ -63449,12 +63478,12 @@ var package_default = {
63449
63478
  "bun-match-svg": "0.0.12",
63450
63479
  "calculate-elbow": "^0.0.12",
63451
63480
  "chokidar-cli": "^3.0.0",
63452
- "circuit-json": "^0.0.493",
63481
+ "circuit-json": "^0.0.494",
63453
63482
  "circuit-json-to-bpc": "^0.0.13",
63454
63483
  "circuit-json-to-connectivity-map": "^0.0.30",
63455
63484
  "circuit-json-to-gltf": "^0.0.128",
63456
63485
  "circuit-json-to-spice": "^0.0.45",
63457
- "circuit-to-svg": "^0.0.422",
63486
+ "circuit-to-svg": "^0.0.424",
63458
63487
  concurrently: "^9.1.2",
63459
63488
  "connectivity-map": "^1.0.0",
63460
63489
  debug: "^4.3.6",
@@ -63512,8 +63541,8 @@ var package_default = {
63512
63541
  },
63513
63542
  overrides: {
63514
63543
  "@tscircuit/circuit-json-util": "^0.0.114",
63515
- "@tscircuit/props": "^0.0.660",
63516
- "circuit-json": "^0.0.493"
63544
+ "@tscircuit/props": "^0.0.661",
63545
+ "circuit-json": "^0.0.494"
63517
63546
  }
63518
63547
  };
63519
63548
 
@@ -68689,6 +68718,7 @@ function CopperPour_doInitialPcbCopperPourRender(copperPour) {
68689
68718
  }
68690
68719
 
68691
68720
  // lib/components/primitive-components/CopperPour/CopperPour_doInitialPcbViaStitchRender.ts
68721
+ import { pcb_via as pcb_via3 } from "circuit-json";
68692
68722
  var renderViaStitchingForCopperPours = (copperPour) => {
68693
68723
  const subcircuit = copperPour.getSubcircuit();
68694
68724
  if (!subcircuit.root) return;
@@ -68730,8 +68760,12 @@ var renderViaStitchingForCopperPours = (copperPour) => {
68730
68760
  throw new Error(solver.error ?? "Via stitching solver failed");
68731
68761
  }
68732
68762
  for (const pcbVia of solver.getOutput().pcbVias) {
68733
- const { pcb_via_id: _solverViaId, ...pcbViaInput } = pcbVia;
68734
- const insertedVia = db.pcb_via.insert(pcbViaInput);
68763
+ const { pcb_via_id: _solverViaId, ...pcbViaInput } = pcb_via3.parse(pcbVia);
68764
+ const insertedVia = db.pcb_via.insert({
68765
+ ...pcbViaInput,
68766
+ tented_on_top: void 0,
68767
+ tented_on_bottom: void 0
68768
+ });
68735
68769
  boardComponent?._generatedStitchingViaIds?.add(insertedVia.pcb_via_id);
68736
68770
  }
68737
68771
  };
@@ -69541,6 +69575,7 @@ var Board = class extends Group5 {
69541
69575
  const pcbBoardFromCircuitJson = circuitJsonElements?.find(
69542
69576
  (elm) => elm.type === "pcb_board"
69543
69577
  );
69578
+ const viaTenting = getViaTenting(props.defaultViaTenting);
69544
69579
  const rawProps = this.props;
69545
69580
  const resolvedIsViaInPadAllowed = rawProps.isViaInPadAllowed ?? pcbBoardFromCircuitJson?.is_via_in_pad_allowed;
69546
69581
  const resolvedAllowBlindAndBuriedVias = rawProps.allowBlindAndBuriedVias ?? pcbBoardFromCircuitJson?.allow_blind_and_buried_vias;
@@ -69598,7 +69633,10 @@ var Board = class extends Group5 {
69598
69633
  const resolvedMinViaPadDiameter = subcircuitProps2.minViaPadDiameter ?? (pcbStyle?.viaPadDiameter !== void 0 ? styledViaDimensions.padDiameter : configuredViaHoleDiameter !== void 0 ? configuredViaHoleDiameter + DEFAULT_VIA_PAD_DIAMETER_OVER_HOLE_DIAMETER_MM : jlcMinTolerances.min_via_pad_diameter);
69599
69634
  const pcb_board = db.pcb_board.insert({
69600
69635
  source_board_id: this.source_board_id,
69636
+ subcircuit_id: this.subcircuit_id ?? void 0,
69601
69637
  center,
69638
+ default_via_tented_on_top: viaTenting.tented_on_top ?? pcbBoardFromCircuitJson?.default_via_tented_on_top,
69639
+ default_via_tented_on_bottom: viaTenting.tented_on_bottom ?? pcbBoardFromCircuitJson?.default_via_tented_on_bottom,
69602
69640
  thickness: this.boardThickness,
69603
69641
  num_layers: this.allLayers.length,
69604
69642
  width: computedWidth,
@@ -72410,7 +72448,7 @@ var PcbNoteDimension = class extends PrimitiveComponent2 {
72410
72448
  import { breakoutProps } from "@tscircuit/props";
72411
72449
 
72412
72450
  // lib/components/primitive-components/AutoplacedBreakoutPoint.ts
72413
- import { layer_ref as layer_ref2 } from "circuit-json";
72451
+ import { layer_ref as layer_ref3 } from "circuit-json";
72414
72452
  var AutoplacedBreakoutPoint = class extends BaseBreakoutPoint {
72415
72453
  get config() {
72416
72454
  return {
@@ -72424,7 +72462,7 @@ var AutoplacedBreakoutPoint = class extends BaseBreakoutPoint {
72424
72462
  position
72425
72463
  }) {
72426
72464
  this.matchedSourceTraceId = sourceTraceId;
72427
- this._renderPcbBreakoutPoint({ layer: layer_ref2.parse(layer) });
72465
+ this._renderPcbBreakoutPoint({ layer: layer_ref3.parse(layer) });
72428
72466
  this._setPositionFromLayout(position);
72429
72467
  }
72430
72468
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.1936",
4
+ "version": "0.0.1938",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -37,7 +37,7 @@
37
37
  "@tscircuit/bga-fanout-solver": "github:tscircuit/bga-fanout-solver#247c835cb8d69b65e53891dcf869731079415b39",
38
38
  "@tscircuit/bus-lanes-solver": "github:tscircuit/bus-lanes-solver#0bc8d071241b18a3e7465a878881abe4998f6384",
39
39
  "@tscircuit/capacity-autorouter": "^0.0.900",
40
- "@tscircuit/checks": "^0.0.200",
40
+ "@tscircuit/checks": "^0.0.201",
41
41
  "@tscircuit/circuit-json-util": "^0.0.114",
42
42
  "@tscircuit/common": "^0.0.20",
43
43
  "@tscircuit/copper-pour-solver": "^0.0.54",
@@ -55,7 +55,7 @@
55
55
  "@tscircuit/math-utils": "^0.0.36",
56
56
  "@tscircuit/miniflex": "^0.0.4",
57
57
  "@tscircuit/ngspice-spice-engine": "^0.0.20",
58
- "@tscircuit/props": "^0.0.660",
58
+ "@tscircuit/props": "^0.0.661",
59
59
  "@tscircuit/schematic-match-adapt": "^0.0.18",
60
60
  "@tscircuit/schematic-trace-solver": "^0.0.199",
61
61
  "@tscircuit/solver-utils": "^0.0.16",
@@ -71,12 +71,12 @@
71
71
  "bun-match-svg": "0.0.12",
72
72
  "calculate-elbow": "^0.0.12",
73
73
  "chokidar-cli": "^3.0.0",
74
- "circuit-json": "^0.0.493",
74
+ "circuit-json": "^0.0.494",
75
75
  "circuit-json-to-bpc": "^0.0.13",
76
76
  "circuit-json-to-connectivity-map": "^0.0.30",
77
77
  "circuit-json-to-gltf": "^0.0.128",
78
78
  "circuit-json-to-spice": "^0.0.45",
79
- "circuit-to-svg": "^0.0.422",
79
+ "circuit-to-svg": "^0.0.424",
80
80
  "concurrently": "^9.1.2",
81
81
  "connectivity-map": "^1.0.0",
82
82
  "debug": "^4.3.6",
@@ -134,7 +134,7 @@
134
134
  },
135
135
  "overrides": {
136
136
  "@tscircuit/circuit-json-util": "^0.0.114",
137
- "@tscircuit/props": "^0.0.660",
138
- "circuit-json": "^0.0.493"
137
+ "@tscircuit/props": "^0.0.661",
138
+ "circuit-json": "^0.0.494"
139
139
  }
140
140
  }