@tscircuit/3d-viewer 0.0.424 → 0.0.425

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.
Files changed (2) hide show
  1. package/dist/index.js +1110 -963
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -144,8 +144,8 @@ var require_dist = __commonJS({
144
144
  fromValues: (x, y) => [x, y]
145
145
  },
146
146
  vec3: {
147
- create: (x, y, z126) => [x, y, z126],
148
- fromValues: (x, y, z126) => [x, y, z126]
147
+ create: (x, y, z133) => [x, y, z133],
148
+ fromValues: (x, y, z133) => [x, y, z133]
149
149
  }
150
150
  },
151
151
  geometries: {
@@ -532,29 +532,29 @@ var require_fromRotation = __commonJS({
532
532
  var { sin: sin2, cos: cos2 } = require_trigonometry();
533
533
  var identity = require_identity();
534
534
  var fromRotation = (out, rad, axis) => {
535
- let [x, y, z126] = axis;
536
- const lengthSquared = x * x + y * y + z126 * z126;
535
+ let [x, y, z133] = axis;
536
+ const lengthSquared = x * x + y * y + z133 * z133;
537
537
  if (Math.abs(lengthSquared) < EPS) {
538
538
  return identity(out);
539
539
  }
540
540
  const len = 1 / Math.sqrt(lengthSquared);
541
541
  x *= len;
542
542
  y *= len;
543
- z126 *= len;
543
+ z133 *= len;
544
544
  const s = sin2(rad);
545
545
  const c = cos2(rad);
546
546
  const t = 1 - c;
547
547
  out[0] = x * x * t + c;
548
- out[1] = y * x * t + z126 * s;
549
- out[2] = z126 * x * t - y * s;
548
+ out[1] = y * x * t + z133 * s;
549
+ out[2] = z133 * x * t - y * s;
550
550
  out[3] = 0;
551
- out[4] = x * y * t - z126 * s;
551
+ out[4] = x * y * t - z133 * s;
552
552
  out[5] = y * y * t + c;
553
- out[6] = z126 * y * t + x * s;
553
+ out[6] = z133 * y * t + x * s;
554
554
  out[7] = 0;
555
- out[8] = x * z126 * t + y * s;
556
- out[9] = y * z126 * t - x * s;
557
- out[10] = z126 * z126 * t + c;
555
+ out[8] = x * z133 * t + y * s;
556
+ out[9] = y * z133 * t - x * s;
557
+ out[10] = z133 * z133 * t + c;
558
558
  out[11] = 0;
559
559
  out[12] = 0;
560
560
  out[13] = 0;
@@ -808,8 +808,8 @@ var require_distance = __commonJS({
808
808
  var distance2 = (a, b) => {
809
809
  const x = b[0] - a[0];
810
810
  const y = b[1] - a[1];
811
- const z126 = b[2] - a[2];
812
- return Math.sqrt(x * x + y * y + z126 * z126);
811
+ const z133 = b[2] - a[2];
812
+ return Math.sqrt(x * x + y * y + z133 * z133);
813
813
  };
814
814
  module.exports = distance2;
815
815
  }
@@ -857,11 +857,11 @@ var require_fromValues2 = __commonJS({
857
857
  "node_modules/@jscad/modeling/src/maths/vec3/fromValues.js"(exports, module) {
858
858
  "use strict";
859
859
  var create = require_create2();
860
- var fromValues = (x, y, z126) => {
860
+ var fromValues = (x, y, z133) => {
861
861
  const out = create();
862
862
  out[0] = x;
863
863
  out[1] = y;
864
- out[2] = z126;
864
+ out[2] = z133;
865
865
  return out;
866
866
  };
867
867
  module.exports = fromValues;
@@ -872,10 +872,10 @@ var require_fromValues2 = __commonJS({
872
872
  var require_fromVec2 = __commonJS({
873
873
  "node_modules/@jscad/modeling/src/maths/vec3/fromVec2.js"(exports, module) {
874
874
  "use strict";
875
- var fromVector2 = (out, vector, z126 = 0) => {
875
+ var fromVector2 = (out, vector, z133 = 0) => {
876
876
  out[0] = vector[0];
877
877
  out[1] = vector[1];
878
- out[2] = z126;
878
+ out[2] = z133;
879
879
  return out;
880
880
  };
881
881
  module.exports = fromVector2;
@@ -889,8 +889,8 @@ var require_length = __commonJS({
889
889
  var length2 = (vector) => {
890
890
  const x = vector[0];
891
891
  const y = vector[1];
892
- const z126 = vector[2];
893
- return Math.sqrt(x * x + y * y + z126 * z126);
892
+ const z133 = vector[2];
893
+ return Math.sqrt(x * x + y * y + z133 * z133);
894
894
  };
895
895
  module.exports = length2;
896
896
  }
@@ -973,14 +973,14 @@ var require_normalize = __commonJS({
973
973
  var normalize = (out, vector) => {
974
974
  const x = vector[0];
975
975
  const y = vector[1];
976
- const z126 = vector[2];
977
- let len = x * x + y * y + z126 * z126;
976
+ const z133 = vector[2];
977
+ let len = x * x + y * y + z133 * z133;
978
978
  if (len > 0) {
979
979
  len = 1 / Math.sqrt(len);
980
980
  }
981
981
  out[0] = x * len;
982
982
  out[1] = y * len;
983
- out[2] = z126 * len;
983
+ out[2] = z133 * len;
984
984
  return out;
985
985
  };
986
986
  module.exports = normalize;
@@ -1104,8 +1104,8 @@ var require_squaredDistance = __commonJS({
1104
1104
  var squaredDistance = (a, b) => {
1105
1105
  const x = b[0] - a[0];
1106
1106
  const y = b[1] - a[1];
1107
- const z126 = b[2] - a[2];
1108
- return x * x + y * y + z126 * z126;
1107
+ const z133 = b[2] - a[2];
1108
+ return x * x + y * y + z133 * z133;
1109
1109
  };
1110
1110
  module.exports = squaredDistance;
1111
1111
  }
@@ -1118,8 +1118,8 @@ var require_squaredLength = __commonJS({
1118
1118
  var squaredLength = (vector) => {
1119
1119
  const x = vector[0];
1120
1120
  const y = vector[1];
1121
- const z126 = vector[2];
1122
- return x * x + y * y + z126 * z126;
1121
+ const z133 = vector[2];
1122
+ return x * x + y * y + z133 * z133;
1123
1123
  };
1124
1124
  module.exports = squaredLength;
1125
1125
  }
@@ -1155,12 +1155,12 @@ var require_transform = __commonJS({
1155
1155
  var transform2 = (out, vector, matrix) => {
1156
1156
  const x = vector[0];
1157
1157
  const y = vector[1];
1158
- const z126 = vector[2];
1159
- let w = matrix[3] * x + matrix[7] * y + matrix[11] * z126 + matrix[15];
1158
+ const z133 = vector[2];
1159
+ let w = matrix[3] * x + matrix[7] * y + matrix[11] * z133 + matrix[15];
1160
1160
  w = w || 1;
1161
- out[0] = (matrix[0] * x + matrix[4] * y + matrix[8] * z126 + matrix[12]) / w;
1162
- out[1] = (matrix[1] * x + matrix[5] * y + matrix[9] * z126 + matrix[13]) / w;
1163
- out[2] = (matrix[2] * x + matrix[6] * y + matrix[10] * z126 + matrix[14]) / w;
1161
+ out[0] = (matrix[0] * x + matrix[4] * y + matrix[8] * z133 + matrix[12]) / w;
1162
+ out[1] = (matrix[1] * x + matrix[5] * y + matrix[9] * z133 + matrix[13]) / w;
1163
+ out[2] = (matrix[2] * x + matrix[6] * y + matrix[10] * z133 + matrix[14]) / w;
1164
1164
  return out;
1165
1165
  };
1166
1166
  module.exports = transform2;
@@ -1362,8 +1362,8 @@ var require_isMirroring = __commonJS({
1362
1362
  var isMirroring = (matrix) => {
1363
1363
  const x = matrix[4] * matrix[9] - matrix[8] * matrix[5];
1364
1364
  const y = matrix[8] * matrix[1] - matrix[0] * matrix[9];
1365
- const z126 = matrix[0] * matrix[5] - matrix[4] * matrix[1];
1366
- const d = x * matrix[2] + y * matrix[6] + z126 * matrix[10];
1365
+ const z133 = matrix[0] * matrix[5] - matrix[4] * matrix[1];
1366
+ const d = x * matrix[2] + y * matrix[6] + z133 * matrix[10];
1367
1367
  return d < 0;
1368
1368
  };
1369
1369
  module.exports = isMirroring;
@@ -1465,15 +1465,15 @@ var require_rotate = __commonJS({
1465
1465
  var { sin: sin2, cos: cos2 } = require_trigonometry();
1466
1466
  var copy = require_copy();
1467
1467
  var rotate2 = (out, matrix, radians, axis) => {
1468
- let [x, y, z126] = axis;
1469
- const lengthSquared = x * x + y * y + z126 * z126;
1468
+ let [x, y, z133] = axis;
1469
+ const lengthSquared = x * x + y * y + z133 * z133;
1470
1470
  if (Math.abs(lengthSquared) < EPS) {
1471
1471
  return copy(out, matrix);
1472
1472
  }
1473
1473
  const len = 1 / Math.sqrt(lengthSquared);
1474
1474
  x *= len;
1475
1475
  y *= len;
1476
- z126 *= len;
1476
+ z133 *= len;
1477
1477
  const s = sin2(radians);
1478
1478
  const c = cos2(radians);
1479
1479
  const t = 1 - c;
@@ -1490,14 +1490,14 @@ var require_rotate = __commonJS({
1490
1490
  const a22 = matrix[10];
1491
1491
  const a23 = matrix[11];
1492
1492
  const b00 = x * x * t + c;
1493
- const b01 = y * x * t + z126 * s;
1494
- const b02 = z126 * x * t - y * s;
1495
- const b10 = x * y * t - z126 * s;
1493
+ const b01 = y * x * t + z133 * s;
1494
+ const b02 = z133 * x * t - y * s;
1495
+ const b10 = x * y * t - z133 * s;
1496
1496
  const b11 = y * y * t + c;
1497
- const b12 = z126 * y * t + x * s;
1498
- const b20 = x * z126 * t + y * s;
1499
- const b21 = y * z126 * t - x * s;
1500
- const b22 = z126 * z126 * t + c;
1497
+ const b12 = z133 * y * t + x * s;
1498
+ const b20 = x * z133 * t + y * s;
1499
+ const b21 = y * z133 * t - x * s;
1500
+ const b22 = z133 * z133 * t + c;
1501
1501
  out[0] = a00 * b00 + a10 * b01 + a20 * b02;
1502
1502
  out[1] = a01 * b00 + a11 * b01 + a21 * b02;
1503
1503
  out[2] = a02 * b00 + a12 * b01 + a22 * b02;
@@ -1649,7 +1649,7 @@ var require_scale2 = __commonJS({
1649
1649
  var scale2 = (out, matrix, dimensions) => {
1650
1650
  const x = dimensions[0];
1651
1651
  const y = dimensions[1];
1652
- const z126 = dimensions[2];
1652
+ const z133 = dimensions[2];
1653
1653
  out[0] = matrix[0] * x;
1654
1654
  out[1] = matrix[1] * x;
1655
1655
  out[2] = matrix[2] * x;
@@ -1658,10 +1658,10 @@ var require_scale2 = __commonJS({
1658
1658
  out[5] = matrix[5] * y;
1659
1659
  out[6] = matrix[6] * y;
1660
1660
  out[7] = matrix[7] * y;
1661
- out[8] = matrix[8] * z126;
1662
- out[9] = matrix[9] * z126;
1663
- out[10] = matrix[10] * z126;
1664
- out[11] = matrix[11] * z126;
1661
+ out[8] = matrix[8] * z133;
1662
+ out[9] = matrix[9] * z133;
1663
+ out[10] = matrix[10] * z133;
1664
+ out[11] = matrix[11] * z133;
1665
1665
  out[12] = matrix[12];
1666
1666
  out[13] = matrix[13];
1667
1667
  out[14] = matrix[14];
@@ -1715,7 +1715,7 @@ var require_translate = __commonJS({
1715
1715
  var translate8 = (out, matrix, offsets) => {
1716
1716
  const x = offsets[0];
1717
1717
  const y = offsets[1];
1718
- const z126 = offsets[2];
1718
+ const z133 = offsets[2];
1719
1719
  let a00;
1720
1720
  let a01;
1721
1721
  let a02;
@@ -1729,10 +1729,10 @@ var require_translate = __commonJS({
1729
1729
  let a22;
1730
1730
  let a23;
1731
1731
  if (matrix === out) {
1732
- out[12] = matrix[0] * x + matrix[4] * y + matrix[8] * z126 + matrix[12];
1733
- out[13] = matrix[1] * x + matrix[5] * y + matrix[9] * z126 + matrix[13];
1734
- out[14] = matrix[2] * x + matrix[6] * y + matrix[10] * z126 + matrix[14];
1735
- out[15] = matrix[3] * x + matrix[7] * y + matrix[11] * z126 + matrix[15];
1732
+ out[12] = matrix[0] * x + matrix[4] * y + matrix[8] * z133 + matrix[12];
1733
+ out[13] = matrix[1] * x + matrix[5] * y + matrix[9] * z133 + matrix[13];
1734
+ out[14] = matrix[2] * x + matrix[6] * y + matrix[10] * z133 + matrix[14];
1735
+ out[15] = matrix[3] * x + matrix[7] * y + matrix[11] * z133 + matrix[15];
1736
1736
  } else {
1737
1737
  a00 = matrix[0];
1738
1738
  a01 = matrix[1];
@@ -1758,10 +1758,10 @@ var require_translate = __commonJS({
1758
1758
  out[9] = a21;
1759
1759
  out[10] = a22;
1760
1760
  out[11] = a23;
1761
- out[12] = a00 * x + a10 * y + a20 * z126 + matrix[12];
1762
- out[13] = a01 * x + a11 * y + a21 * z126 + matrix[13];
1763
- out[14] = a02 * x + a12 * y + a22 * z126 + matrix[14];
1764
- out[15] = a03 * x + a13 * y + a23 * z126 + matrix[15];
1761
+ out[12] = a00 * x + a10 * y + a20 * z133 + matrix[12];
1762
+ out[13] = a01 * x + a11 * y + a21 * z133 + matrix[13];
1763
+ out[14] = a02 * x + a12 * y + a22 * z133 + matrix[14];
1764
+ out[15] = a03 * x + a13 * y + a23 * z133 + matrix[15];
1765
1765
  }
1766
1766
  return out;
1767
1767
  };
@@ -3831,11 +3831,11 @@ var require_fromValues4 = __commonJS({
3831
3831
  "node_modules/@jscad/modeling/src/maths/vec4/fromValues.js"(exports, module) {
3832
3832
  "use strict";
3833
3833
  var create = require_create7();
3834
- var fromValues = (x, y, z126, w) => {
3834
+ var fromValues = (x, y, z133, w) => {
3835
3835
  const out = create();
3836
3836
  out[0] = x;
3837
3837
  out[1] = y;
3838
- out[2] = z126;
3838
+ out[2] = z133;
3839
3839
  out[3] = w;
3840
3840
  return out;
3841
3841
  };
@@ -3993,8 +3993,8 @@ var require_projectionOfPoint = __commonJS({
3993
3993
  const a = point2[0] * plane[0] + point2[1] * plane[1] + point2[2] * plane[2] - plane[3];
3994
3994
  const x = point2[0] - a * plane[0];
3995
3995
  const y = point2[1] - a * plane[1];
3996
- const z126 = point2[2] - a * plane[2];
3997
- return vec3.fromValues(x, y, z126);
3996
+ const z133 = point2[2] - a * plane[2];
3997
+ return vec3.fromValues(x, y, z133);
3998
3998
  };
3999
3999
  module.exports = projectionOfPoint;
4000
4000
  }
@@ -4298,11 +4298,11 @@ var require_transform5 = __commonJS({
4298
4298
  "node_modules/@jscad/modeling/src/maths/vec4/transform.js"(exports, module) {
4299
4299
  "use strict";
4300
4300
  var transform2 = (out, vector, matrix) => {
4301
- const [x, y, z126, w] = vector;
4302
- out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z126 + matrix[12] * w;
4303
- out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z126 + matrix[13] * w;
4304
- out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z126 + matrix[14] * w;
4305
- out[3] = matrix[3] * x + matrix[7] * y + matrix[11] * z126 + matrix[15] * w;
4301
+ const [x, y, z133, w] = vector;
4302
+ out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z133 + matrix[12] * w;
4303
+ out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z133 + matrix[13] * w;
4304
+ out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z133 + matrix[14] * w;
4305
+ out[3] = matrix[3] * x + matrix[7] * y + matrix[11] * z133 + matrix[15] * w;
4306
4306
  return out;
4307
4307
  };
4308
4308
  module.exports = transform2;
@@ -4364,8 +4364,8 @@ var require_measureBoundingSphere = __commonJS({
4364
4364
  out[2] = (minz[2] + maxz[2]) * 0.5;
4365
4365
  const x = out[0] - maxx[0];
4366
4366
  const y = out[1] - maxy[1];
4367
- const z126 = out[2] - maxz[2];
4368
- out[3] = Math.sqrt(x * x + y * y + z126 * z126);
4367
+ const z133 = out[2] - maxz[2];
4368
+ out[3] = Math.sqrt(x * x + y * y + z133 * z133);
4369
4369
  cache.set(polygon3, out);
4370
4370
  return out;
4371
4371
  };
@@ -14750,7 +14750,7 @@ var import_jscad_planner = __toESM(require_dist(), 1);
14750
14750
  var import_modeling = __toESM(require_src(), 1);
14751
14751
 
14752
14752
  // node_modules/@tscircuit/footprinter/dist/index.js
14753
- import { z as z124 } from "zod";
14753
+ import { z as z131 } from "zod";
14754
14754
 
14755
14755
  // node_modules/@tscircuit/mm/dist/index.js
14756
14756
  var unitToMm = {
@@ -14830,9 +14830,9 @@ import { z as z48 } from "zod";
14830
14830
  import { z as z49 } from "zod";
14831
14831
  import { z as z50 } from "zod";
14832
14832
  import { z as z51 } from "zod";
14833
- import { z as z53 } from "zod";
14834
14833
  import { z as z52 } from "zod";
14835
14834
  import { z as z54 } from "zod";
14835
+ import { z as z53 } from "zod";
14836
14836
  import { z as z55 } from "zod";
14837
14837
  import { z as z56 } from "zod";
14838
14838
  import { z as z57 } from "zod";
@@ -14902,6 +14902,13 @@ import { z as z120 } from "zod";
14902
14902
  import { z as z121 } from "zod";
14903
14903
  import { z as z122 } from "zod";
14904
14904
  import { z as z123 } from "zod";
14905
+ import { z as z124 } from "zod";
14906
+ import { z as z125 } from "zod";
14907
+ import { z as z126 } from "zod";
14908
+ import { z as z127 } from "zod";
14909
+ import { z as z128 } from "zod";
14910
+ import { z as z129 } from "zod";
14911
+ import { z as z130 } from "zod";
14905
14912
  var unitMappings = {
14906
14913
  Hz: {
14907
14914
  baseUnit: "Hz",
@@ -15448,7 +15455,8 @@ var source_port = z36.object({
15448
15455
  port_hints: z36.array(z36.string()).optional(),
15449
15456
  name: z36.string(),
15450
15457
  source_port_id: z36.string(),
15451
- source_component_id: z36.string(),
15458
+ source_component_id: z36.string().optional(),
15459
+ source_group_id: z36.string().optional(),
15452
15460
  subcircuit_id: z36.string().optional(),
15453
15461
  subcircuit_connectivity_map_key: z36.string().optional()
15454
15462
  });
@@ -15539,178 +15547,191 @@ var source_manually_placed_via = z43.object({
15539
15547
  source_trace_id: z43.string().optional()
15540
15548
  }).describe("Defines a via that is manually placed in the source domain");
15541
15549
  expectTypesMatch(true);
15542
- var schematic_box = z44.object({
15543
- type: z44.literal("schematic_box"),
15544
- schematic_component_id: z44.string().optional(),
15550
+ var unknown_error_finding_part = z44.object({
15551
+ type: z44.literal("unknown_error_finding_part"),
15552
+ unknown_error_finding_part_id: getZodPrefixedIdWithDefault(
15553
+ "unknown_error_finding_part"
15554
+ ),
15555
+ error_type: z44.literal("unknown_error_finding_part").default("unknown_error_finding_part"),
15556
+ message: z44.string(),
15557
+ source_component_id: z44.string().optional(),
15558
+ subcircuit_id: z44.string().optional()
15559
+ }).describe(
15560
+ "Error emitted when an unexpected error occurs while finding a part"
15561
+ );
15562
+ expectTypesMatch(true);
15563
+ var schematic_box = z45.object({
15564
+ type: z45.literal("schematic_box"),
15565
+ schematic_component_id: z45.string().optional(),
15545
15566
  width: distance,
15546
15567
  height: distance,
15547
- is_dashed: z44.boolean().default(false),
15568
+ is_dashed: z45.boolean().default(false),
15548
15569
  x: distance,
15549
15570
  y: distance,
15550
- subcircuit_id: z44.string().optional()
15571
+ subcircuit_id: z45.string().optional()
15551
15572
  }).describe("Draws a box on the schematic");
15552
15573
  expectTypesMatch(true);
15553
- var schematic_path = z45.object({
15554
- type: z45.literal("schematic_path"),
15555
- schematic_component_id: z45.string(),
15556
- fill_color: z45.enum(["red", "blue"]).optional(),
15557
- is_filled: z45.boolean().optional(),
15558
- points: z45.array(point),
15559
- subcircuit_id: z45.string().optional()
15574
+ var schematic_path = z46.object({
15575
+ type: z46.literal("schematic_path"),
15576
+ schematic_component_id: z46.string(),
15577
+ fill_color: z46.enum(["red", "blue"]).optional(),
15578
+ is_filled: z46.boolean().optional(),
15579
+ points: z46.array(point),
15580
+ subcircuit_id: z46.string().optional()
15560
15581
  });
15561
15582
  expectTypesMatch(true);
15562
- var schematic_pin_styles = z46.record(
15563
- z46.object({
15583
+ var schematic_pin_styles = z47.record(
15584
+ z47.object({
15564
15585
  left_margin: length.optional(),
15565
15586
  right_margin: length.optional(),
15566
15587
  top_margin: length.optional(),
15567
15588
  bottom_margin: length.optional()
15568
15589
  })
15569
15590
  );
15570
- var schematic_component_port_arrangement_by_size = z46.object({
15571
- left_size: z46.number(),
15572
- right_size: z46.number(),
15573
- top_size: z46.number().optional(),
15574
- bottom_size: z46.number().optional()
15591
+ var schematic_component_port_arrangement_by_size = z47.object({
15592
+ left_size: z47.number(),
15593
+ right_size: z47.number(),
15594
+ top_size: z47.number().optional(),
15595
+ bottom_size: z47.number().optional()
15575
15596
  });
15576
15597
  expectTypesMatch(true);
15577
- var schematic_component_port_arrangement_by_sides = z46.object({
15578
- left_side: z46.object({
15579
- pins: z46.array(z46.number()),
15598
+ var schematic_component_port_arrangement_by_sides = z47.object({
15599
+ left_side: z47.object({
15600
+ pins: z47.array(z47.number()),
15580
15601
  // @ts-ignore
15581
- direction: z46.enum(["top-to-bottom", "bottom-to-top"]).optional()
15602
+ direction: z47.enum(["top-to-bottom", "bottom-to-top"]).optional()
15582
15603
  }).optional(),
15583
- right_side: z46.object({
15584
- pins: z46.array(z46.number()),
15604
+ right_side: z47.object({
15605
+ pins: z47.array(z47.number()),
15585
15606
  // @ts-ignore
15586
- direction: z46.enum(["top-to-bottom", "bottom-to-top"]).optional()
15607
+ direction: z47.enum(["top-to-bottom", "bottom-to-top"]).optional()
15587
15608
  }).optional(),
15588
- top_side: z46.object({
15589
- pins: z46.array(z46.number()),
15609
+ top_side: z47.object({
15610
+ pins: z47.array(z47.number()),
15590
15611
  // @ts-ignore
15591
- direction: z46.enum(["left-to-right", "right-to-left"]).optional()
15612
+ direction: z47.enum(["left-to-right", "right-to-left"]).optional()
15592
15613
  }).optional(),
15593
- bottom_side: z46.object({
15594
- pins: z46.array(z46.number()),
15614
+ bottom_side: z47.object({
15615
+ pins: z47.array(z47.number()),
15595
15616
  // @ts-ignore
15596
- direction: z46.enum(["left-to-right", "right-to-left"]).optional()
15617
+ direction: z47.enum(["left-to-right", "right-to-left"]).optional()
15597
15618
  }).optional()
15598
15619
  });
15599
15620
  expectTypesMatch(true);
15600
- var port_arrangement = z46.union([
15621
+ var port_arrangement = z47.union([
15601
15622
  schematic_component_port_arrangement_by_size,
15602
15623
  schematic_component_port_arrangement_by_sides
15603
15624
  ]);
15604
- var schematic_component = z46.object({
15605
- type: z46.literal("schematic_component"),
15625
+ var schematic_component = z47.object({
15626
+ type: z47.literal("schematic_component"),
15606
15627
  size,
15607
15628
  center: point,
15608
- source_component_id: z46.string().optional(),
15609
- schematic_component_id: z46.string(),
15629
+ source_component_id: z47.string().optional(),
15630
+ schematic_component_id: z47.string(),
15610
15631
  pin_spacing: length.optional(),
15611
15632
  pin_styles: schematic_pin_styles.optional(),
15612
15633
  box_width: length.optional(),
15613
- symbol_name: z46.string().optional(),
15634
+ symbol_name: z47.string().optional(),
15614
15635
  port_arrangement: port_arrangement.optional(),
15615
- port_labels: z46.record(z46.string()).optional(),
15616
- symbol_display_value: z46.string().optional(),
15617
- subcircuit_id: z46.string().optional(),
15618
- schematic_group_id: z46.string().optional(),
15619
- is_schematic_group: z46.boolean().optional(),
15620
- source_group_id: z46.string().optional(),
15621
- is_box_with_pins: z46.boolean().optional().default(true)
15636
+ port_labels: z47.record(z47.string()).optional(),
15637
+ symbol_display_value: z47.string().optional(),
15638
+ subcircuit_id: z47.string().optional(),
15639
+ schematic_group_id: z47.string().optional(),
15640
+ is_schematic_group: z47.boolean().optional(),
15641
+ source_group_id: z47.string().optional(),
15642
+ is_box_with_pins: z47.boolean().optional().default(true)
15622
15643
  });
15623
15644
  expectTypesMatch(true);
15624
- var schematic_line = z47.object({
15625
- type: z47.literal("schematic_line"),
15645
+ var schematic_line = z48.object({
15646
+ type: z48.literal("schematic_line"),
15626
15647
  schematic_line_id: getZodPrefixedIdWithDefault("schematic_line"),
15627
- schematic_component_id: z47.string(),
15648
+ schematic_component_id: z48.string(),
15628
15649
  x1: distance,
15629
15650
  y1: distance,
15630
15651
  x2: distance,
15631
15652
  y2: distance,
15632
15653
  stroke_width: distance.nullable().optional(),
15633
- color: z47.string().default("#000000"),
15634
- is_dashed: z47.boolean().default(false),
15635
- subcircuit_id: z47.string().optional()
15654
+ color: z48.string().default("#000000"),
15655
+ is_dashed: z48.boolean().default(false),
15656
+ subcircuit_id: z48.string().optional()
15636
15657
  }).describe("Draws a styled line on the schematic");
15637
15658
  expectTypesMatch(true);
15638
- var schematic_rect = z48.object({
15639
- type: z48.literal("schematic_rect"),
15659
+ var schematic_rect = z49.object({
15660
+ type: z49.literal("schematic_rect"),
15640
15661
  schematic_rect_id: getZodPrefixedIdWithDefault("schematic_rect"),
15641
- schematic_component_id: z48.string(),
15662
+ schematic_component_id: z49.string(),
15642
15663
  center: point,
15643
15664
  width: distance,
15644
15665
  height: distance,
15645
15666
  rotation: rotation.default(0),
15646
15667
  stroke_width: distance.nullable().optional(),
15647
- color: z48.string().default("#000000"),
15648
- is_filled: z48.boolean().default(false),
15649
- fill_color: z48.string().optional(),
15650
- is_dashed: z48.boolean().default(false),
15651
- subcircuit_id: z48.string().optional()
15668
+ color: z49.string().default("#000000"),
15669
+ is_filled: z49.boolean().default(false),
15670
+ fill_color: z49.string().optional(),
15671
+ is_dashed: z49.boolean().default(false),
15672
+ subcircuit_id: z49.string().optional()
15652
15673
  }).describe("Draws a styled rectangle on the schematic");
15653
15674
  expectTypesMatch(true);
15654
- var schematic_circle = z49.object({
15655
- type: z49.literal("schematic_circle"),
15675
+ var schematic_circle = z50.object({
15676
+ type: z50.literal("schematic_circle"),
15656
15677
  schematic_circle_id: getZodPrefixedIdWithDefault("schematic_circle"),
15657
- schematic_component_id: z49.string(),
15678
+ schematic_component_id: z50.string(),
15658
15679
  center: point,
15659
15680
  radius: distance,
15660
15681
  stroke_width: distance.nullable().optional(),
15661
- color: z49.string().default("#000000"),
15662
- is_filled: z49.boolean().default(false),
15663
- fill_color: z49.string().optional(),
15664
- is_dashed: z49.boolean().default(false),
15665
- subcircuit_id: z49.string().optional()
15682
+ color: z50.string().default("#000000"),
15683
+ is_filled: z50.boolean().default(false),
15684
+ fill_color: z50.string().optional(),
15685
+ is_dashed: z50.boolean().default(false),
15686
+ subcircuit_id: z50.string().optional()
15666
15687
  }).describe("Draws a styled circle on the schematic");
15667
15688
  expectTypesMatch(true);
15668
- var schematic_arc = z50.object({
15669
- type: z50.literal("schematic_arc"),
15689
+ var schematic_arc = z51.object({
15690
+ type: z51.literal("schematic_arc"),
15670
15691
  schematic_arc_id: getZodPrefixedIdWithDefault("schematic_arc"),
15671
- schematic_component_id: z50.string(),
15692
+ schematic_component_id: z51.string(),
15672
15693
  center: point,
15673
15694
  radius: distance,
15674
15695
  start_angle_degrees: rotation,
15675
15696
  end_angle_degrees: rotation,
15676
- direction: z50.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
15697
+ direction: z51.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
15677
15698
  stroke_width: distance.nullable().optional(),
15678
- color: z50.string().default("#000000"),
15679
- is_dashed: z50.boolean().default(false),
15680
- subcircuit_id: z50.string().optional()
15699
+ color: z51.string().default("#000000"),
15700
+ is_dashed: z51.boolean().default(false),
15701
+ subcircuit_id: z51.string().optional()
15681
15702
  }).describe("Draws a styled arc on the schematic");
15682
15703
  expectTypesMatch(true);
15683
- var schematic_trace = z51.object({
15684
- type: z51.literal("schematic_trace"),
15685
- schematic_trace_id: z51.string(),
15686
- source_trace_id: z51.string().optional(),
15687
- junctions: z51.array(
15688
- z51.object({
15689
- x: z51.number(),
15690
- y: z51.number()
15704
+ var schematic_trace = z52.object({
15705
+ type: z52.literal("schematic_trace"),
15706
+ schematic_trace_id: z52.string(),
15707
+ source_trace_id: z52.string().optional(),
15708
+ junctions: z52.array(
15709
+ z52.object({
15710
+ x: z52.number(),
15711
+ y: z52.number()
15691
15712
  })
15692
15713
  ),
15693
- edges: z51.array(
15694
- z51.object({
15695
- from: z51.object({
15696
- x: z51.number(),
15697
- y: z51.number()
15714
+ edges: z52.array(
15715
+ z52.object({
15716
+ from: z52.object({
15717
+ x: z52.number(),
15718
+ y: z52.number()
15698
15719
  }),
15699
- to: z51.object({
15700
- x: z51.number(),
15701
- y: z51.number()
15720
+ to: z52.object({
15721
+ x: z52.number(),
15722
+ y: z52.number()
15702
15723
  }),
15703
- is_crossing: z51.boolean().optional(),
15704
- from_schematic_port_id: z51.string().optional(),
15705
- to_schematic_port_id: z51.string().optional()
15724
+ is_crossing: z52.boolean().optional(),
15725
+ from_schematic_port_id: z52.string().optional(),
15726
+ to_schematic_port_id: z52.string().optional()
15706
15727
  })
15707
15728
  ),
15708
- subcircuit_id: z51.string().optional(),
15729
+ subcircuit_id: z52.string().optional(),
15709
15730
  // TODO: make required in a future release
15710
- subcircuit_connectivity_map_key: z51.string().optional()
15731
+ subcircuit_connectivity_map_key: z52.string().optional()
15711
15732
  });
15712
15733
  expectTypesMatch(true);
15713
- var fivePointAnchor = z52.enum([
15734
+ var fivePointAnchor = z53.enum([
15714
15735
  "center",
15715
15736
  "left",
15716
15737
  "right",
@@ -15718,229 +15739,238 @@ var fivePointAnchor = z52.enum([
15718
15739
  "bottom"
15719
15740
  ]);
15720
15741
  expectTypesMatch(true);
15721
- var schematic_text = z53.object({
15722
- type: z53.literal("schematic_text"),
15723
- schematic_component_id: z53.string().optional(),
15724
- schematic_text_id: z53.string(),
15725
- text: z53.string(),
15726
- font_size: z53.number().default(0.18),
15727
- position: z53.object({
15742
+ var schematic_text = z54.object({
15743
+ type: z54.literal("schematic_text"),
15744
+ schematic_component_id: z54.string().optional(),
15745
+ schematic_text_id: z54.string(),
15746
+ text: z54.string(),
15747
+ font_size: z54.number().default(0.18),
15748
+ position: z54.object({
15728
15749
  x: distance,
15729
15750
  y: distance
15730
15751
  }),
15731
- rotation: z53.number().default(0),
15732
- anchor: z53.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
15733
- color: z53.string().default("#000000"),
15734
- subcircuit_id: z53.string().optional()
15752
+ rotation: z54.number().default(0),
15753
+ anchor: z54.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
15754
+ color: z54.string().default("#000000"),
15755
+ subcircuit_id: z54.string().optional()
15735
15756
  });
15736
15757
  expectTypesMatch(true);
15737
- var schematic_port = z54.object({
15738
- type: z54.literal("schematic_port"),
15739
- schematic_port_id: z54.string(),
15740
- source_port_id: z54.string(),
15741
- schematic_component_id: z54.string().optional(),
15758
+ var schematic_port = z55.object({
15759
+ type: z55.literal("schematic_port"),
15760
+ schematic_port_id: z55.string(),
15761
+ source_port_id: z55.string(),
15762
+ schematic_component_id: z55.string().optional(),
15742
15763
  center: point,
15743
- facing_direction: z54.enum(["up", "down", "left", "right"]).optional(),
15744
- distance_from_component_edge: z54.number().optional(),
15745
- side_of_component: z54.enum(["top", "bottom", "left", "right"]).optional(),
15746
- true_ccw_index: z54.number().optional(),
15747
- pin_number: z54.number().optional(),
15748
- display_pin_label: z54.string().optional(),
15749
- subcircuit_id: z54.string().optional(),
15750
- is_connected: z54.boolean().optional(),
15751
- has_input_arrow: z54.boolean().optional(),
15752
- has_output_arrow: z54.boolean().optional()
15764
+ facing_direction: z55.enum(["up", "down", "left", "right"]).optional(),
15765
+ distance_from_component_edge: z55.number().optional(),
15766
+ side_of_component: z55.enum(["top", "bottom", "left", "right"]).optional(),
15767
+ true_ccw_index: z55.number().optional(),
15768
+ pin_number: z55.number().optional(),
15769
+ display_pin_label: z55.string().optional(),
15770
+ subcircuit_id: z55.string().optional(),
15771
+ is_connected: z55.boolean().optional(),
15772
+ has_input_arrow: z55.boolean().optional(),
15773
+ has_output_arrow: z55.boolean().optional()
15753
15774
  }).describe("Defines a port on a schematic component");
15754
15775
  expectTypesMatch(true);
15755
- var schematic_net_label = z55.object({
15756
- type: z55.literal("schematic_net_label"),
15776
+ var schematic_net_label = z56.object({
15777
+ type: z56.literal("schematic_net_label"),
15757
15778
  schematic_net_label_id: getZodPrefixedIdWithDefault("schematic_net_label"),
15758
- schematic_trace_id: z55.string().optional(),
15759
- source_trace_id: z55.string().optional(),
15760
- source_net_id: z55.string(),
15779
+ schematic_trace_id: z56.string().optional(),
15780
+ source_trace_id: z56.string().optional(),
15781
+ source_net_id: z56.string(),
15761
15782
  center: point,
15762
15783
  anchor_position: point.optional(),
15763
- anchor_side: z55.enum(["top", "bottom", "left", "right"]),
15764
- text: z55.string(),
15765
- symbol_name: z55.string().optional(),
15766
- is_movable: z55.boolean().optional(),
15767
- subcircuit_id: z55.string().optional()
15784
+ anchor_side: z56.enum(["top", "bottom", "left", "right"]),
15785
+ text: z56.string(),
15786
+ symbol_name: z56.string().optional(),
15787
+ is_movable: z56.boolean().optional(),
15788
+ subcircuit_id: z56.string().optional()
15768
15789
  });
15769
15790
  expectTypesMatch(true);
15770
- var schematic_error = z56.object({
15771
- type: z56.literal("schematic_error"),
15772
- schematic_error_id: z56.string(),
15791
+ var schematic_error = z57.object({
15792
+ type: z57.literal("schematic_error"),
15793
+ schematic_error_id: z57.string(),
15773
15794
  // eventually each error type should be broken out into a dir of files
15774
- error_type: z56.literal("schematic_port_not_found").default("schematic_port_not_found"),
15775
- message: z56.string(),
15776
- subcircuit_id: z56.string().optional()
15795
+ error_type: z57.literal("schematic_port_not_found").default("schematic_port_not_found"),
15796
+ message: z57.string(),
15797
+ subcircuit_id: z57.string().optional()
15777
15798
  }).describe("Defines a schematic error on the schematic");
15778
15799
  expectTypesMatch(true);
15779
- var schematic_layout_error = z57.object({
15780
- type: z57.literal("schematic_layout_error"),
15800
+ var schematic_layout_error = z58.object({
15801
+ type: z58.literal("schematic_layout_error"),
15781
15802
  schematic_layout_error_id: getZodPrefixedIdWithDefault(
15782
15803
  "schematic_layout_error"
15783
15804
  ),
15784
- error_type: z57.literal("schematic_layout_error").default("schematic_layout_error"),
15785
- message: z57.string(),
15786
- source_group_id: z57.string(),
15787
- schematic_group_id: z57.string(),
15788
- subcircuit_id: z57.string().optional()
15805
+ error_type: z58.literal("schematic_layout_error").default("schematic_layout_error"),
15806
+ message: z58.string(),
15807
+ source_group_id: z58.string(),
15808
+ schematic_group_id: z58.string(),
15809
+ subcircuit_id: z58.string().optional()
15789
15810
  }).describe("Error emitted when schematic layout fails for a group");
15790
15811
  expectTypesMatch(true);
15791
- var schematic_debug_object_base = z58.object({
15792
- type: z58.literal("schematic_debug_object"),
15793
- label: z58.string().optional(),
15794
- subcircuit_id: z58.string().optional()
15812
+ var schematic_debug_object_base = z59.object({
15813
+ type: z59.literal("schematic_debug_object"),
15814
+ label: z59.string().optional(),
15815
+ subcircuit_id: z59.string().optional()
15795
15816
  });
15796
15817
  var schematic_debug_rect = schematic_debug_object_base.extend({
15797
- shape: z58.literal("rect"),
15818
+ shape: z59.literal("rect"),
15798
15819
  center: point,
15799
15820
  size
15800
15821
  });
15801
15822
  var schematic_debug_line = schematic_debug_object_base.extend({
15802
- shape: z58.literal("line"),
15823
+ shape: z59.literal("line"),
15803
15824
  start: point,
15804
15825
  end: point
15805
15826
  });
15806
15827
  var schematic_debug_point = schematic_debug_object_base.extend({
15807
- shape: z58.literal("point"),
15828
+ shape: z59.literal("point"),
15808
15829
  center: point
15809
15830
  });
15810
- var schematic_debug_object = z58.discriminatedUnion("shape", [
15831
+ var schematic_debug_object = z59.discriminatedUnion("shape", [
15811
15832
  schematic_debug_rect,
15812
15833
  schematic_debug_line,
15813
15834
  schematic_debug_point
15814
15835
  ]);
15815
15836
  expectTypesMatch(true);
15816
- var schematic_voltage_probe = z59.object({
15817
- type: z59.literal("schematic_voltage_probe"),
15818
- schematic_voltage_probe_id: z59.string(),
15837
+ var schematic_voltage_probe = z60.object({
15838
+ type: z60.literal("schematic_voltage_probe"),
15839
+ schematic_voltage_probe_id: z60.string(),
15819
15840
  position: point,
15820
- schematic_trace_id: z59.string(),
15841
+ schematic_trace_id: z60.string(),
15821
15842
  voltage: voltage.optional(),
15822
- subcircuit_id: z59.string().optional()
15843
+ subcircuit_id: z60.string().optional()
15823
15844
  }).describe("Defines a voltage probe measurement point on a schematic trace");
15824
15845
  expectTypesMatch(true);
15825
- var schematic_manual_edit_conflict_warning = z60.object({
15826
- type: z60.literal("schematic_manual_edit_conflict_warning"),
15846
+ var schematic_manual_edit_conflict_warning = z61.object({
15847
+ type: z61.literal("schematic_manual_edit_conflict_warning"),
15827
15848
  schematic_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
15828
15849
  "schematic_manual_edit_conflict_warning"
15829
15850
  ),
15830
- warning_type: z60.literal("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),
15831
- message: z60.string(),
15832
- schematic_component_id: z60.string(),
15833
- schematic_group_id: z60.string().optional(),
15834
- subcircuit_id: z60.string().optional(),
15835
- source_component_id: z60.string()
15851
+ warning_type: z61.literal("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),
15852
+ message: z61.string(),
15853
+ schematic_component_id: z61.string(),
15854
+ schematic_group_id: z61.string().optional(),
15855
+ subcircuit_id: z61.string().optional(),
15856
+ source_component_id: z61.string()
15836
15857
  }).describe(
15837
15858
  "Warning emitted when a component has both manual placement and explicit schX/schY coordinates"
15838
15859
  );
15839
15860
  expectTypesMatch(true);
15840
- var schematic_group = z61.object({
15841
- type: z61.literal("schematic_group"),
15861
+ var schematic_group = z62.object({
15862
+ type: z62.literal("schematic_group"),
15842
15863
  schematic_group_id: getZodPrefixedIdWithDefault("schematic_group"),
15843
- source_group_id: z61.string(),
15844
- is_subcircuit: z61.boolean().optional(),
15845
- subcircuit_id: z61.string().optional(),
15864
+ source_group_id: z62.string(),
15865
+ is_subcircuit: z62.boolean().optional(),
15866
+ subcircuit_id: z62.string().optional(),
15846
15867
  width: length,
15847
15868
  height: length,
15848
15869
  center: point,
15849
- schematic_component_ids: z61.array(z61.string()),
15850
- show_as_schematic_box: z61.boolean().optional(),
15851
- name: z61.string().optional(),
15852
- description: z61.string().optional()
15870
+ schematic_component_ids: z62.array(z62.string()),
15871
+ show_as_schematic_box: z62.boolean().optional(),
15872
+ name: z62.string().optional(),
15873
+ description: z62.string().optional()
15853
15874
  }).describe("Defines a group of components on the schematic");
15854
15875
  expectTypesMatch(true);
15855
- var schematic_table = z62.object({
15856
- type: z62.literal("schematic_table"),
15876
+ var schematic_table = z63.object({
15877
+ type: z63.literal("schematic_table"),
15857
15878
  schematic_table_id: getZodPrefixedIdWithDefault("schematic_table"),
15858
15879
  anchor_position: point,
15859
- column_widths: z62.array(distance),
15860
- row_heights: z62.array(distance),
15880
+ column_widths: z63.array(distance),
15881
+ row_heights: z63.array(distance),
15861
15882
  cell_padding: distance.optional(),
15862
15883
  border_width: distance.optional(),
15863
- subcircuit_id: z62.string().optional(),
15864
- schematic_component_id: z62.string().optional(),
15884
+ subcircuit_id: z63.string().optional(),
15885
+ schematic_component_id: z63.string().optional(),
15865
15886
  anchor: ninePointAnchor.optional()
15866
15887
  }).describe("Defines a table on the schematic");
15867
15888
  expectTypesMatch(true);
15868
- var schematic_table_cell = z63.object({
15869
- type: z63.literal("schematic_table_cell"),
15889
+ var schematic_table_cell = z64.object({
15890
+ type: z64.literal("schematic_table_cell"),
15870
15891
  schematic_table_cell_id: getZodPrefixedIdWithDefault(
15871
15892
  "schematic_table_cell"
15872
15893
  ),
15873
- schematic_table_id: z63.string(),
15874
- start_row_index: z63.number(),
15875
- end_row_index: z63.number(),
15876
- start_column_index: z63.number(),
15877
- end_column_index: z63.number(),
15878
- text: z63.string().optional(),
15894
+ schematic_table_id: z64.string(),
15895
+ start_row_index: z64.number(),
15896
+ end_row_index: z64.number(),
15897
+ start_column_index: z64.number(),
15898
+ end_column_index: z64.number(),
15899
+ text: z64.string().optional(),
15879
15900
  center: point,
15880
15901
  width: distance,
15881
15902
  height: distance,
15882
- horizontal_align: z63.enum(["left", "center", "right"]).optional(),
15883
- vertical_align: z63.enum(["top", "middle", "bottom"]).optional(),
15903
+ horizontal_align: z64.enum(["left", "center", "right"]).optional(),
15904
+ vertical_align: z64.enum(["top", "middle", "bottom"]).optional(),
15884
15905
  font_size: distance.optional(),
15885
- subcircuit_id: z63.string().optional()
15906
+ subcircuit_id: z64.string().optional()
15886
15907
  }).describe("Defines a cell within a schematic_table");
15887
15908
  expectTypesMatch(true);
15888
- var point_with_bulge = z64.object({
15909
+ var schematic_sheet = z65.object({
15910
+ type: z65.literal("schematic_sheet"),
15911
+ schematic_sheet_id: getZodPrefixedIdWithDefault("schematic_sheet"),
15912
+ name: z65.string().optional(),
15913
+ subcircuit_id: z65.string().optional()
15914
+ }).describe(
15915
+ "Defines a schematic sheet or page that components can be placed on"
15916
+ );
15917
+ expectTypesMatch(true);
15918
+ var point_with_bulge = z66.object({
15889
15919
  x: distance,
15890
15920
  y: distance,
15891
- bulge: z64.number().optional()
15921
+ bulge: z66.number().optional()
15892
15922
  });
15893
15923
  expectTypesMatch(true);
15894
- var ring = z64.object({
15895
- vertices: z64.array(point_with_bulge)
15924
+ var ring = z66.object({
15925
+ vertices: z66.array(point_with_bulge)
15896
15926
  });
15897
15927
  expectTypesMatch(true);
15898
- var brep_shape = z64.object({
15928
+ var brep_shape = z66.object({
15899
15929
  outer_ring: ring,
15900
- inner_rings: z64.array(ring).default([])
15930
+ inner_rings: z66.array(ring).default([])
15901
15931
  });
15902
15932
  expectTypesMatch(true);
15903
- var pcb_route_hint = z65.object({
15933
+ var pcb_route_hint = z67.object({
15904
15934
  x: distance,
15905
15935
  y: distance,
15906
- via: z65.boolean().optional(),
15936
+ via: z67.boolean().optional(),
15907
15937
  via_to_layer: layer_ref.optional()
15908
15938
  });
15909
- var pcb_route_hints = z65.array(pcb_route_hint);
15939
+ var pcb_route_hints = z67.array(pcb_route_hint);
15910
15940
  expectTypesMatch(true);
15911
15941
  expectTypesMatch(true);
15912
- var route_hint_point = z66.object({
15942
+ var route_hint_point = z68.object({
15913
15943
  x: distance,
15914
15944
  y: distance,
15915
- via: z66.boolean().optional(),
15945
+ via: z68.boolean().optional(),
15916
15946
  to_layer: layer_ref.optional(),
15917
15947
  trace_width: distance.optional()
15918
15948
  });
15919
15949
  expectTypesMatch(true);
15920
- var pcb_component = z67.object({
15921
- type: z67.literal("pcb_component"),
15950
+ var pcb_component = z69.object({
15951
+ type: z69.literal("pcb_component"),
15922
15952
  pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
15923
- source_component_id: z67.string(),
15953
+ source_component_id: z69.string(),
15924
15954
  center: point,
15925
15955
  layer: layer_ref,
15926
15956
  rotation,
15927
15957
  width: length,
15928
15958
  height: length,
15929
- do_not_place: z67.boolean().optional(),
15930
- subcircuit_id: z67.string().optional(),
15931
- pcb_group_id: z67.string().optional(),
15932
- obstructs_within_bounds: z67.boolean().default(true).describe(
15959
+ do_not_place: z69.boolean().optional(),
15960
+ subcircuit_id: z69.string().optional(),
15961
+ pcb_group_id: z69.string().optional(),
15962
+ obstructs_within_bounds: z69.boolean().default(true).describe(
15933
15963
  "Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"
15934
15964
  )
15935
15965
  }).describe("Defines a component on the PCB");
15936
15966
  expectTypesMatch(true);
15937
- var pcb_hole_circle_or_square = z68.object({
15938
- type: z68.literal("pcb_hole"),
15967
+ var pcb_hole_circle_or_square = z70.object({
15968
+ type: z70.literal("pcb_hole"),
15939
15969
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
15940
- pcb_group_id: z68.string().optional(),
15941
- subcircuit_id: z68.string().optional(),
15942
- hole_shape: z68.enum(["circle", "square"]),
15943
- hole_diameter: z68.number(),
15970
+ pcb_group_id: z70.string().optional(),
15971
+ subcircuit_id: z70.string().optional(),
15972
+ hole_shape: z70.enum(["circle", "square"]),
15973
+ hole_diameter: z70.number(),
15944
15974
  x: distance,
15945
15975
  y: distance
15946
15976
  });
@@ -15948,14 +15978,14 @@ var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
15948
15978
  "Defines a circular or square hole on the PCB"
15949
15979
  );
15950
15980
  expectTypesMatch(true);
15951
- var pcb_hole_oval = z68.object({
15952
- type: z68.literal("pcb_hole"),
15981
+ var pcb_hole_oval = z70.object({
15982
+ type: z70.literal("pcb_hole"),
15953
15983
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
15954
- pcb_group_id: z68.string().optional(),
15955
- subcircuit_id: z68.string().optional(),
15956
- hole_shape: z68.literal("oval"),
15957
- hole_width: z68.number(),
15958
- hole_height: z68.number(),
15984
+ pcb_group_id: z70.string().optional(),
15985
+ subcircuit_id: z70.string().optional(),
15986
+ hole_shape: z70.literal("oval"),
15987
+ hole_width: z70.number(),
15988
+ hole_height: z70.number(),
15959
15989
  x: distance,
15960
15990
  y: distance
15961
15991
  });
@@ -15963,14 +15993,14 @@ var pcb_hole_oval_shape = pcb_hole_oval.describe(
15963
15993
  "Defines an oval hole on the PCB"
15964
15994
  );
15965
15995
  expectTypesMatch(true);
15966
- var pcb_hole_pill = z68.object({
15967
- type: z68.literal("pcb_hole"),
15996
+ var pcb_hole_pill = z70.object({
15997
+ type: z70.literal("pcb_hole"),
15968
15998
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
15969
- pcb_group_id: z68.string().optional(),
15970
- subcircuit_id: z68.string().optional(),
15971
- hole_shape: z68.literal("pill"),
15972
- hole_width: z68.number(),
15973
- hole_height: z68.number(),
15999
+ pcb_group_id: z70.string().optional(),
16000
+ subcircuit_id: z70.string().optional(),
16001
+ hole_shape: z70.literal("pill"),
16002
+ hole_width: z70.number(),
16003
+ hole_height: z70.number(),
15974
16004
  x: distance,
15975
16005
  y: distance
15976
16006
  });
@@ -15978,14 +16008,14 @@ var pcb_hole_pill_shape = pcb_hole_pill.describe(
15978
16008
  "Defines a pill-shaped hole on the PCB"
15979
16009
  );
15980
16010
  expectTypesMatch(true);
15981
- var pcb_hole_rotated_pill = z68.object({
15982
- type: z68.literal("pcb_hole"),
16011
+ var pcb_hole_rotated_pill = z70.object({
16012
+ type: z70.literal("pcb_hole"),
15983
16013
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
15984
- pcb_group_id: z68.string().optional(),
15985
- subcircuit_id: z68.string().optional(),
15986
- hole_shape: z68.literal("rotated_pill"),
15987
- hole_width: z68.number(),
15988
- hole_height: z68.number(),
16014
+ pcb_group_id: z70.string().optional(),
16015
+ subcircuit_id: z70.string().optional(),
16016
+ hole_shape: z70.literal("rotated_pill"),
16017
+ hole_width: z70.number(),
16018
+ hole_height: z70.number(),
15989
16019
  x: distance,
15990
16020
  y: distance,
15991
16021
  ccw_rotation: rotation
@@ -15995,107 +16025,107 @@ var pcb_hole_rotated_pill_shape = pcb_hole_rotated_pill.describe(
15995
16025
  );
15996
16026
  expectTypesMatch(true);
15997
16027
  var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval).or(pcb_hole_pill).or(pcb_hole_rotated_pill);
15998
- var pcb_plated_hole_circle = z69.object({
15999
- type: z69.literal("pcb_plated_hole"),
16000
- shape: z69.literal("circle"),
16001
- pcb_group_id: z69.string().optional(),
16002
- subcircuit_id: z69.string().optional(),
16003
- outer_diameter: z69.number(),
16004
- hole_diameter: z69.number(),
16028
+ var pcb_plated_hole_circle = z71.object({
16029
+ type: z71.literal("pcb_plated_hole"),
16030
+ shape: z71.literal("circle"),
16031
+ pcb_group_id: z71.string().optional(),
16032
+ subcircuit_id: z71.string().optional(),
16033
+ outer_diameter: z71.number(),
16034
+ hole_diameter: z71.number(),
16005
16035
  x: distance,
16006
16036
  y: distance,
16007
- layers: z69.array(layer_ref),
16008
- port_hints: z69.array(z69.string()).optional(),
16009
- pcb_component_id: z69.string().optional(),
16010
- pcb_port_id: z69.string().optional(),
16037
+ layers: z71.array(layer_ref),
16038
+ port_hints: z71.array(z71.string()).optional(),
16039
+ pcb_component_id: z71.string().optional(),
16040
+ pcb_port_id: z71.string().optional(),
16011
16041
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
16012
16042
  });
16013
- var pcb_plated_hole_oval = z69.object({
16014
- type: z69.literal("pcb_plated_hole"),
16015
- shape: z69.enum(["oval", "pill"]),
16016
- pcb_group_id: z69.string().optional(),
16017
- subcircuit_id: z69.string().optional(),
16018
- outer_width: z69.number(),
16019
- outer_height: z69.number(),
16020
- hole_width: z69.number(),
16021
- hole_height: z69.number(),
16043
+ var pcb_plated_hole_oval = z71.object({
16044
+ type: z71.literal("pcb_plated_hole"),
16045
+ shape: z71.enum(["oval", "pill"]),
16046
+ pcb_group_id: z71.string().optional(),
16047
+ subcircuit_id: z71.string().optional(),
16048
+ outer_width: z71.number(),
16049
+ outer_height: z71.number(),
16050
+ hole_width: z71.number(),
16051
+ hole_height: z71.number(),
16022
16052
  x: distance,
16023
16053
  y: distance,
16024
16054
  ccw_rotation: rotation,
16025
- layers: z69.array(layer_ref),
16026
- port_hints: z69.array(z69.string()).optional(),
16027
- pcb_component_id: z69.string().optional(),
16028
- pcb_port_id: z69.string().optional(),
16055
+ layers: z71.array(layer_ref),
16056
+ port_hints: z71.array(z71.string()).optional(),
16057
+ pcb_component_id: z71.string().optional(),
16058
+ pcb_port_id: z71.string().optional(),
16029
16059
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
16030
16060
  });
16031
- var pcb_circular_hole_with_rect_pad = z69.object({
16032
- type: z69.literal("pcb_plated_hole"),
16033
- shape: z69.literal("circular_hole_with_rect_pad"),
16034
- pcb_group_id: z69.string().optional(),
16035
- subcircuit_id: z69.string().optional(),
16036
- hole_shape: z69.literal("circle"),
16037
- pad_shape: z69.literal("rect"),
16038
- hole_diameter: z69.number(),
16039
- rect_pad_width: z69.number(),
16040
- rect_pad_height: z69.number(),
16041
- rect_border_radius: z69.number().optional(),
16061
+ var pcb_circular_hole_with_rect_pad = z71.object({
16062
+ type: z71.literal("pcb_plated_hole"),
16063
+ shape: z71.literal("circular_hole_with_rect_pad"),
16064
+ pcb_group_id: z71.string().optional(),
16065
+ subcircuit_id: z71.string().optional(),
16066
+ hole_shape: z71.literal("circle"),
16067
+ pad_shape: z71.literal("rect"),
16068
+ hole_diameter: z71.number(),
16069
+ rect_pad_width: z71.number(),
16070
+ rect_pad_height: z71.number(),
16071
+ rect_border_radius: z71.number().optional(),
16042
16072
  hole_offset_x: distance.default(0),
16043
16073
  hole_offset_y: distance.default(0),
16044
16074
  x: distance,
16045
16075
  y: distance,
16046
- layers: z69.array(layer_ref),
16047
- port_hints: z69.array(z69.string()).optional(),
16048
- pcb_component_id: z69.string().optional(),
16049
- pcb_port_id: z69.string().optional(),
16076
+ layers: z71.array(layer_ref),
16077
+ port_hints: z71.array(z71.string()).optional(),
16078
+ pcb_component_id: z71.string().optional(),
16079
+ pcb_port_id: z71.string().optional(),
16050
16080
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
16051
16081
  });
16052
- var pcb_pill_hole_with_rect_pad = z69.object({
16053
- type: z69.literal("pcb_plated_hole"),
16054
- shape: z69.literal("pill_hole_with_rect_pad"),
16055
- pcb_group_id: z69.string().optional(),
16056
- subcircuit_id: z69.string().optional(),
16057
- hole_shape: z69.literal("pill"),
16058
- pad_shape: z69.literal("rect"),
16059
- hole_width: z69.number(),
16060
- hole_height: z69.number(),
16061
- rect_pad_width: z69.number(),
16062
- rect_pad_height: z69.number(),
16063
- rect_border_radius: z69.number().optional(),
16082
+ var pcb_pill_hole_with_rect_pad = z71.object({
16083
+ type: z71.literal("pcb_plated_hole"),
16084
+ shape: z71.literal("pill_hole_with_rect_pad"),
16085
+ pcb_group_id: z71.string().optional(),
16086
+ subcircuit_id: z71.string().optional(),
16087
+ hole_shape: z71.literal("pill"),
16088
+ pad_shape: z71.literal("rect"),
16089
+ hole_width: z71.number(),
16090
+ hole_height: z71.number(),
16091
+ rect_pad_width: z71.number(),
16092
+ rect_pad_height: z71.number(),
16093
+ rect_border_radius: z71.number().optional(),
16064
16094
  hole_offset_x: distance.default(0),
16065
16095
  hole_offset_y: distance.default(0),
16066
16096
  x: distance,
16067
16097
  y: distance,
16068
- layers: z69.array(layer_ref),
16069
- port_hints: z69.array(z69.string()).optional(),
16070
- pcb_component_id: z69.string().optional(),
16071
- pcb_port_id: z69.string().optional(),
16098
+ layers: z71.array(layer_ref),
16099
+ port_hints: z71.array(z71.string()).optional(),
16100
+ pcb_component_id: z71.string().optional(),
16101
+ pcb_port_id: z71.string().optional(),
16072
16102
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
16073
16103
  });
16074
- var pcb_rotated_pill_hole_with_rect_pad = z69.object({
16075
- type: z69.literal("pcb_plated_hole"),
16076
- shape: z69.literal("rotated_pill_hole_with_rect_pad"),
16077
- pcb_group_id: z69.string().optional(),
16078
- subcircuit_id: z69.string().optional(),
16079
- hole_shape: z69.literal("rotated_pill"),
16080
- pad_shape: z69.literal("rect"),
16081
- hole_width: z69.number(),
16082
- hole_height: z69.number(),
16104
+ var pcb_rotated_pill_hole_with_rect_pad = z71.object({
16105
+ type: z71.literal("pcb_plated_hole"),
16106
+ shape: z71.literal("rotated_pill_hole_with_rect_pad"),
16107
+ pcb_group_id: z71.string().optional(),
16108
+ subcircuit_id: z71.string().optional(),
16109
+ hole_shape: z71.literal("rotated_pill"),
16110
+ pad_shape: z71.literal("rect"),
16111
+ hole_width: z71.number(),
16112
+ hole_height: z71.number(),
16083
16113
  hole_ccw_rotation: rotation,
16084
- rect_pad_width: z69.number(),
16085
- rect_pad_height: z69.number(),
16086
- rect_border_radius: z69.number().optional(),
16114
+ rect_pad_width: z71.number(),
16115
+ rect_pad_height: z71.number(),
16116
+ rect_border_radius: z71.number().optional(),
16087
16117
  rect_ccw_rotation: rotation,
16088
16118
  hole_offset_x: distance.default(0),
16089
16119
  hole_offset_y: distance.default(0),
16090
16120
  x: distance,
16091
16121
  y: distance,
16092
- layers: z69.array(layer_ref),
16093
- port_hints: z69.array(z69.string()).optional(),
16094
- pcb_component_id: z69.string().optional(),
16095
- pcb_port_id: z69.string().optional(),
16122
+ layers: z71.array(layer_ref),
16123
+ port_hints: z71.array(z71.string()).optional(),
16124
+ pcb_component_id: z71.string().optional(),
16125
+ pcb_port_id: z71.string().optional(),
16096
16126
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
16097
16127
  });
16098
- var pcb_plated_hole = z69.union([
16128
+ var pcb_plated_hole = z71.union([
16099
16129
  pcb_plated_hole_circle,
16100
16130
  pcb_plated_hole_oval,
16101
16131
  pcb_circular_hole_with_rect_pad,
@@ -16109,118 +16139,120 @@ expectTypesMatch(true);
16109
16139
  expectTypesMatch(true);
16110
16140
  expectTypesMatch(true);
16111
16141
  expectTypesMatch(true);
16112
- var pcb_port = z70.object({
16113
- type: z70.literal("pcb_port"),
16142
+ var pcb_port = z72.object({
16143
+ type: z72.literal("pcb_port"),
16114
16144
  pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
16115
- pcb_group_id: z70.string().optional(),
16116
- subcircuit_id: z70.string().optional(),
16117
- source_port_id: z70.string(),
16118
- pcb_component_id: z70.string(),
16145
+ pcb_group_id: z72.string().optional(),
16146
+ subcircuit_id: z72.string().optional(),
16147
+ source_port_id: z72.string(),
16148
+ pcb_component_id: z72.string().optional(),
16119
16149
  x: distance,
16120
16150
  y: distance,
16121
- layers: z70.array(layer_ref),
16122
- is_board_pinout: z70.boolean().optional()
16151
+ layers: z72.array(layer_ref),
16152
+ is_board_pinout: z72.boolean().optional()
16123
16153
  }).describe("Defines a port on the PCB");
16124
16154
  expectTypesMatch(true);
16125
- var pcb_smtpad_circle = z71.object({
16126
- type: z71.literal("pcb_smtpad"),
16127
- shape: z71.literal("circle"),
16155
+ var pcb_smtpad_circle = z73.object({
16156
+ type: z73.literal("pcb_smtpad"),
16157
+ shape: z73.literal("circle"),
16128
16158
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
16129
- pcb_group_id: z71.string().optional(),
16130
- subcircuit_id: z71.string().optional(),
16159
+ pcb_group_id: z73.string().optional(),
16160
+ subcircuit_id: z73.string().optional(),
16131
16161
  x: distance,
16132
16162
  y: distance,
16133
- radius: z71.number(),
16163
+ radius: z73.number(),
16134
16164
  layer: layer_ref,
16135
- port_hints: z71.array(z71.string()).optional(),
16136
- pcb_component_id: z71.string().optional(),
16137
- pcb_port_id: z71.string().optional(),
16138
- is_covered_with_solder_mask: z71.boolean().optional()
16139
- });
16140
- var pcb_smtpad_rect = z71.object({
16141
- type: z71.literal("pcb_smtpad"),
16142
- shape: z71.literal("rect"),
16165
+ port_hints: z73.array(z73.string()).optional(),
16166
+ pcb_component_id: z73.string().optional(),
16167
+ pcb_port_id: z73.string().optional(),
16168
+ is_covered_with_solder_mask: z73.boolean().optional()
16169
+ });
16170
+ var pcb_smtpad_rect = z73.object({
16171
+ type: z73.literal("pcb_smtpad"),
16172
+ shape: z73.literal("rect"),
16143
16173
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
16144
- pcb_group_id: z71.string().optional(),
16145
- subcircuit_id: z71.string().optional(),
16174
+ pcb_group_id: z73.string().optional(),
16175
+ subcircuit_id: z73.string().optional(),
16146
16176
  x: distance,
16147
16177
  y: distance,
16148
- width: z71.number(),
16149
- height: z71.number(),
16150
- rect_border_radius: z71.number().optional(),
16178
+ width: z73.number(),
16179
+ height: z73.number(),
16180
+ rect_border_radius: z73.number().optional(),
16181
+ corner_radius: z73.number().optional(),
16151
16182
  layer: layer_ref,
16152
- port_hints: z71.array(z71.string()).optional(),
16153
- pcb_component_id: z71.string().optional(),
16154
- pcb_port_id: z71.string().optional(),
16155
- is_covered_with_solder_mask: z71.boolean().optional()
16156
- });
16157
- var pcb_smtpad_rotated_rect = z71.object({
16158
- type: z71.literal("pcb_smtpad"),
16159
- shape: z71.literal("rotated_rect"),
16183
+ port_hints: z73.array(z73.string()).optional(),
16184
+ pcb_component_id: z73.string().optional(),
16185
+ pcb_port_id: z73.string().optional(),
16186
+ is_covered_with_solder_mask: z73.boolean().optional()
16187
+ });
16188
+ var pcb_smtpad_rotated_rect = z73.object({
16189
+ type: z73.literal("pcb_smtpad"),
16190
+ shape: z73.literal("rotated_rect"),
16160
16191
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
16161
- pcb_group_id: z71.string().optional(),
16162
- subcircuit_id: z71.string().optional(),
16192
+ pcb_group_id: z73.string().optional(),
16193
+ subcircuit_id: z73.string().optional(),
16163
16194
  x: distance,
16164
16195
  y: distance,
16165
- width: z71.number(),
16166
- height: z71.number(),
16167
- rect_border_radius: z71.number().optional(),
16196
+ width: z73.number(),
16197
+ height: z73.number(),
16198
+ rect_border_radius: z73.number().optional(),
16199
+ corner_radius: z73.number().optional(),
16168
16200
  ccw_rotation: rotation,
16169
16201
  layer: layer_ref,
16170
- port_hints: z71.array(z71.string()).optional(),
16171
- pcb_component_id: z71.string().optional(),
16172
- pcb_port_id: z71.string().optional(),
16173
- is_covered_with_solder_mask: z71.boolean().optional()
16174
- });
16175
- var pcb_smtpad_pill = z71.object({
16176
- type: z71.literal("pcb_smtpad"),
16177
- shape: z71.literal("pill"),
16202
+ port_hints: z73.array(z73.string()).optional(),
16203
+ pcb_component_id: z73.string().optional(),
16204
+ pcb_port_id: z73.string().optional(),
16205
+ is_covered_with_solder_mask: z73.boolean().optional()
16206
+ });
16207
+ var pcb_smtpad_pill = z73.object({
16208
+ type: z73.literal("pcb_smtpad"),
16209
+ shape: z73.literal("pill"),
16178
16210
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
16179
- pcb_group_id: z71.string().optional(),
16180
- subcircuit_id: z71.string().optional(),
16211
+ pcb_group_id: z73.string().optional(),
16212
+ subcircuit_id: z73.string().optional(),
16181
16213
  x: distance,
16182
16214
  y: distance,
16183
- width: z71.number(),
16184
- height: z71.number(),
16185
- radius: z71.number(),
16215
+ width: z73.number(),
16216
+ height: z73.number(),
16217
+ radius: z73.number(),
16186
16218
  layer: layer_ref,
16187
- port_hints: z71.array(z71.string()).optional(),
16188
- pcb_component_id: z71.string().optional(),
16189
- pcb_port_id: z71.string().optional(),
16190
- is_covered_with_solder_mask: z71.boolean().optional()
16191
- });
16192
- var pcb_smtpad_rotated_pill = z71.object({
16193
- type: z71.literal("pcb_smtpad"),
16194
- shape: z71.literal("rotated_pill"),
16219
+ port_hints: z73.array(z73.string()).optional(),
16220
+ pcb_component_id: z73.string().optional(),
16221
+ pcb_port_id: z73.string().optional(),
16222
+ is_covered_with_solder_mask: z73.boolean().optional()
16223
+ });
16224
+ var pcb_smtpad_rotated_pill = z73.object({
16225
+ type: z73.literal("pcb_smtpad"),
16226
+ shape: z73.literal("rotated_pill"),
16195
16227
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
16196
- pcb_group_id: z71.string().optional(),
16197
- subcircuit_id: z71.string().optional(),
16228
+ pcb_group_id: z73.string().optional(),
16229
+ subcircuit_id: z73.string().optional(),
16198
16230
  x: distance,
16199
16231
  y: distance,
16200
- width: z71.number(),
16201
- height: z71.number(),
16202
- radius: z71.number(),
16232
+ width: z73.number(),
16233
+ height: z73.number(),
16234
+ radius: z73.number(),
16203
16235
  ccw_rotation: rotation,
16204
16236
  layer: layer_ref,
16205
- port_hints: z71.array(z71.string()).optional(),
16206
- pcb_component_id: z71.string().optional(),
16207
- pcb_port_id: z71.string().optional(),
16208
- is_covered_with_solder_mask: z71.boolean().optional()
16209
- });
16210
- var pcb_smtpad_polygon = z71.object({
16211
- type: z71.literal("pcb_smtpad"),
16212
- shape: z71.literal("polygon"),
16237
+ port_hints: z73.array(z73.string()).optional(),
16238
+ pcb_component_id: z73.string().optional(),
16239
+ pcb_port_id: z73.string().optional(),
16240
+ is_covered_with_solder_mask: z73.boolean().optional()
16241
+ });
16242
+ var pcb_smtpad_polygon = z73.object({
16243
+ type: z73.literal("pcb_smtpad"),
16244
+ shape: z73.literal("polygon"),
16213
16245
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
16214
- pcb_group_id: z71.string().optional(),
16215
- subcircuit_id: z71.string().optional(),
16216
- points: z71.array(point),
16246
+ pcb_group_id: z73.string().optional(),
16247
+ subcircuit_id: z73.string().optional(),
16248
+ points: z73.array(point),
16217
16249
  layer: layer_ref,
16218
- port_hints: z71.array(z71.string()).optional(),
16219
- pcb_component_id: z71.string().optional(),
16220
- pcb_port_id: z71.string().optional(),
16221
- is_covered_with_solder_mask: z71.boolean().optional()
16250
+ port_hints: z73.array(z73.string()).optional(),
16251
+ pcb_component_id: z73.string().optional(),
16252
+ pcb_port_id: z73.string().optional(),
16253
+ is_covered_with_solder_mask: z73.boolean().optional()
16222
16254
  });
16223
- var pcb_smtpad = z71.discriminatedUnion("shape", [
16255
+ var pcb_smtpad = z73.discriminatedUnion("shape", [
16224
16256
  pcb_smtpad_circle,
16225
16257
  pcb_smtpad_rect,
16226
16258
  pcb_smtpad_rotated_rect,
@@ -16234,78 +16266,78 @@ expectTypesMatch(true);
16234
16266
  expectTypesMatch(true);
16235
16267
  expectTypesMatch(true);
16236
16268
  expectTypesMatch(true);
16237
- var pcb_solder_paste_circle = z72.object({
16238
- type: z72.literal("pcb_solder_paste"),
16239
- shape: z72.literal("circle"),
16269
+ var pcb_solder_paste_circle = z74.object({
16270
+ type: z74.literal("pcb_solder_paste"),
16271
+ shape: z74.literal("circle"),
16240
16272
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16241
- pcb_group_id: z72.string().optional(),
16242
- subcircuit_id: z72.string().optional(),
16273
+ pcb_group_id: z74.string().optional(),
16274
+ subcircuit_id: z74.string().optional(),
16243
16275
  x: distance,
16244
16276
  y: distance,
16245
- radius: z72.number(),
16277
+ radius: z74.number(),
16246
16278
  layer: layer_ref,
16247
- pcb_component_id: z72.string().optional(),
16248
- pcb_smtpad_id: z72.string().optional()
16279
+ pcb_component_id: z74.string().optional(),
16280
+ pcb_smtpad_id: z74.string().optional()
16249
16281
  });
16250
- var pcb_solder_paste_rect = z72.object({
16251
- type: z72.literal("pcb_solder_paste"),
16252
- shape: z72.literal("rect"),
16282
+ var pcb_solder_paste_rect = z74.object({
16283
+ type: z74.literal("pcb_solder_paste"),
16284
+ shape: z74.literal("rect"),
16253
16285
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16254
- pcb_group_id: z72.string().optional(),
16255
- subcircuit_id: z72.string().optional(),
16286
+ pcb_group_id: z74.string().optional(),
16287
+ subcircuit_id: z74.string().optional(),
16256
16288
  x: distance,
16257
16289
  y: distance,
16258
- width: z72.number(),
16259
- height: z72.number(),
16290
+ width: z74.number(),
16291
+ height: z74.number(),
16260
16292
  layer: layer_ref,
16261
- pcb_component_id: z72.string().optional(),
16262
- pcb_smtpad_id: z72.string().optional()
16293
+ pcb_component_id: z74.string().optional(),
16294
+ pcb_smtpad_id: z74.string().optional()
16263
16295
  });
16264
- var pcb_solder_paste_pill = z72.object({
16265
- type: z72.literal("pcb_solder_paste"),
16266
- shape: z72.literal("pill"),
16296
+ var pcb_solder_paste_pill = z74.object({
16297
+ type: z74.literal("pcb_solder_paste"),
16298
+ shape: z74.literal("pill"),
16267
16299
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16268
- pcb_group_id: z72.string().optional(),
16269
- subcircuit_id: z72.string().optional(),
16300
+ pcb_group_id: z74.string().optional(),
16301
+ subcircuit_id: z74.string().optional(),
16270
16302
  x: distance,
16271
16303
  y: distance,
16272
- width: z72.number(),
16273
- height: z72.number(),
16274
- radius: z72.number(),
16304
+ width: z74.number(),
16305
+ height: z74.number(),
16306
+ radius: z74.number(),
16275
16307
  layer: layer_ref,
16276
- pcb_component_id: z72.string().optional(),
16277
- pcb_smtpad_id: z72.string().optional()
16308
+ pcb_component_id: z74.string().optional(),
16309
+ pcb_smtpad_id: z74.string().optional()
16278
16310
  });
16279
- var pcb_solder_paste_rotated_rect = z72.object({
16280
- type: z72.literal("pcb_solder_paste"),
16281
- shape: z72.literal("rotated_rect"),
16311
+ var pcb_solder_paste_rotated_rect = z74.object({
16312
+ type: z74.literal("pcb_solder_paste"),
16313
+ shape: z74.literal("rotated_rect"),
16282
16314
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16283
- pcb_group_id: z72.string().optional(),
16284
- subcircuit_id: z72.string().optional(),
16315
+ pcb_group_id: z74.string().optional(),
16316
+ subcircuit_id: z74.string().optional(),
16285
16317
  x: distance,
16286
16318
  y: distance,
16287
- width: z72.number(),
16288
- height: z72.number(),
16319
+ width: z74.number(),
16320
+ height: z74.number(),
16289
16321
  ccw_rotation: distance,
16290
16322
  layer: layer_ref,
16291
- pcb_component_id: z72.string().optional(),
16292
- pcb_smtpad_id: z72.string().optional()
16323
+ pcb_component_id: z74.string().optional(),
16324
+ pcb_smtpad_id: z74.string().optional()
16293
16325
  });
16294
- var pcb_solder_paste_oval = z72.object({
16295
- type: z72.literal("pcb_solder_paste"),
16296
- shape: z72.literal("oval"),
16326
+ var pcb_solder_paste_oval = z74.object({
16327
+ type: z74.literal("pcb_solder_paste"),
16328
+ shape: z74.literal("oval"),
16297
16329
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16298
- pcb_group_id: z72.string().optional(),
16299
- subcircuit_id: z72.string().optional(),
16330
+ pcb_group_id: z74.string().optional(),
16331
+ subcircuit_id: z74.string().optional(),
16300
16332
  x: distance,
16301
16333
  y: distance,
16302
- width: z72.number(),
16303
- height: z72.number(),
16334
+ width: z74.number(),
16335
+ height: z74.number(),
16304
16336
  layer: layer_ref,
16305
- pcb_component_id: z72.string().optional(),
16306
- pcb_smtpad_id: z72.string().optional()
16337
+ pcb_component_id: z74.string().optional(),
16338
+ pcb_smtpad_id: z74.string().optional()
16307
16339
  });
16308
- var pcb_solder_paste = z72.union([
16340
+ var pcb_solder_paste = z74.union([
16309
16341
  pcb_solder_paste_circle,
16310
16342
  pcb_solder_paste_rect,
16311
16343
  pcb_solder_paste_pill,
@@ -16319,123 +16351,123 @@ expectTypesMatch(
16319
16351
  true
16320
16352
  );
16321
16353
  expectTypesMatch(true);
16322
- var pcb_text = z73.object({
16323
- type: z73.literal("pcb_text"),
16354
+ var pcb_text = z75.object({
16355
+ type: z75.literal("pcb_text"),
16324
16356
  pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
16325
- pcb_group_id: z73.string().optional(),
16326
- subcircuit_id: z73.string().optional(),
16327
- text: z73.string(),
16357
+ pcb_group_id: z75.string().optional(),
16358
+ subcircuit_id: z75.string().optional(),
16359
+ text: z75.string(),
16328
16360
  center: point,
16329
16361
  layer: layer_ref,
16330
16362
  width: length,
16331
16363
  height: length,
16332
- lines: z73.number(),
16364
+ lines: z75.number(),
16333
16365
  // @ts-ignore
16334
- align: z73.enum(["bottom-left"])
16366
+ align: z75.enum(["bottom-left"])
16335
16367
  }).describe("Defines text on the PCB");
16336
16368
  expectTypesMatch(true);
16337
- var pcb_trace_route_point_wire = z74.object({
16338
- route_type: z74.literal("wire"),
16369
+ var pcb_trace_route_point_wire = z76.object({
16370
+ route_type: z76.literal("wire"),
16339
16371
  x: distance,
16340
16372
  y: distance,
16341
16373
  width: distance,
16342
- start_pcb_port_id: z74.string().optional(),
16343
- end_pcb_port_id: z74.string().optional(),
16374
+ start_pcb_port_id: z76.string().optional(),
16375
+ end_pcb_port_id: z76.string().optional(),
16344
16376
  layer: layer_ref
16345
16377
  });
16346
- var pcb_trace_route_point_via = z74.object({
16347
- route_type: z74.literal("via"),
16378
+ var pcb_trace_route_point_via = z76.object({
16379
+ route_type: z76.literal("via"),
16348
16380
  x: distance,
16349
16381
  y: distance,
16350
16382
  hole_diameter: distance.optional(),
16351
16383
  outer_diameter: distance.optional(),
16352
- from_layer: z74.string(),
16353
- to_layer: z74.string()
16384
+ from_layer: z76.string(),
16385
+ to_layer: z76.string()
16354
16386
  });
16355
- var pcb_trace_route_point = z74.union([
16387
+ var pcb_trace_route_point = z76.union([
16356
16388
  pcb_trace_route_point_wire,
16357
16389
  pcb_trace_route_point_via
16358
16390
  ]);
16359
- var pcb_trace = z74.object({
16360
- type: z74.literal("pcb_trace"),
16361
- source_trace_id: z74.string().optional(),
16362
- pcb_component_id: z74.string().optional(),
16391
+ var pcb_trace = z76.object({
16392
+ type: z76.literal("pcb_trace"),
16393
+ source_trace_id: z76.string().optional(),
16394
+ pcb_component_id: z76.string().optional(),
16363
16395
  pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
16364
- pcb_group_id: z74.string().optional(),
16365
- subcircuit_id: z74.string().optional(),
16366
- route_thickness_mode: z74.enum(["constant", "interpolated"]).default("constant").optional(),
16367
- route_order_index: z74.number().optional(),
16368
- should_round_corners: z74.boolean().optional(),
16369
- trace_length: z74.number().optional(),
16370
- highlight_color: z74.string().optional(),
16371
- route: z74.array(pcb_trace_route_point)
16396
+ pcb_group_id: z76.string().optional(),
16397
+ subcircuit_id: z76.string().optional(),
16398
+ route_thickness_mode: z76.enum(["constant", "interpolated"]).default("constant").optional(),
16399
+ route_order_index: z76.number().optional(),
16400
+ should_round_corners: z76.boolean().optional(),
16401
+ trace_length: z76.number().optional(),
16402
+ highlight_color: z76.string().optional(),
16403
+ route: z76.array(pcb_trace_route_point)
16372
16404
  }).describe("Defines a trace on the PCB");
16373
16405
  expectTypesMatch(true);
16374
16406
  expectTypesMatch(true);
16375
- var pcb_trace_error = z75.object({
16376
- type: z75.literal("pcb_trace_error"),
16407
+ var pcb_trace_error = z77.object({
16408
+ type: z77.literal("pcb_trace_error"),
16377
16409
  pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
16378
- error_type: z75.literal("pcb_trace_error").default("pcb_trace_error"),
16379
- message: z75.string(),
16410
+ error_type: z77.literal("pcb_trace_error").default("pcb_trace_error"),
16411
+ message: z77.string(),
16380
16412
  center: point.optional(),
16381
- pcb_trace_id: z75.string(),
16382
- source_trace_id: z75.string(),
16383
- pcb_component_ids: z75.array(z75.string()),
16384
- pcb_port_ids: z75.array(z75.string()),
16385
- subcircuit_id: z75.string().optional()
16413
+ pcb_trace_id: z77.string(),
16414
+ source_trace_id: z77.string(),
16415
+ pcb_component_ids: z77.array(z77.string()),
16416
+ pcb_port_ids: z77.array(z77.string()),
16417
+ subcircuit_id: z77.string().optional()
16386
16418
  }).describe("Defines a trace error on the PCB");
16387
16419
  expectTypesMatch(true);
16388
- var pcb_trace_missing_error = z76.object({
16389
- type: z76.literal("pcb_trace_missing_error"),
16420
+ var pcb_trace_missing_error = z78.object({
16421
+ type: z78.literal("pcb_trace_missing_error"),
16390
16422
  pcb_trace_missing_error_id: getZodPrefixedIdWithDefault(
16391
16423
  "pcb_trace_missing_error"
16392
16424
  ),
16393
- error_type: z76.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
16394
- message: z76.string(),
16425
+ error_type: z78.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
16426
+ message: z78.string(),
16395
16427
  center: point.optional(),
16396
- source_trace_id: z76.string(),
16397
- pcb_component_ids: z76.array(z76.string()),
16398
- pcb_port_ids: z76.array(z76.string()),
16399
- subcircuit_id: z76.string().optional()
16428
+ source_trace_id: z78.string(),
16429
+ pcb_component_ids: z78.array(z78.string()),
16430
+ pcb_port_ids: z78.array(z78.string()),
16431
+ subcircuit_id: z78.string().optional()
16400
16432
  }).describe(
16401
16433
  "Defines an error when a source trace has no corresponding PCB trace"
16402
16434
  );
16403
16435
  expectTypesMatch(true);
16404
- var pcb_port_not_matched_error = z77.object({
16405
- type: z77.literal("pcb_port_not_matched_error"),
16436
+ var pcb_port_not_matched_error = z79.object({
16437
+ type: z79.literal("pcb_port_not_matched_error"),
16406
16438
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
16407
- error_type: z77.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
16408
- message: z77.string(),
16409
- pcb_component_ids: z77.array(z77.string()),
16410
- subcircuit_id: z77.string().optional()
16439
+ error_type: z79.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
16440
+ message: z79.string(),
16441
+ pcb_component_ids: z79.array(z79.string()),
16442
+ subcircuit_id: z79.string().optional()
16411
16443
  }).describe("Defines a trace error on the PCB where a port is not matched");
16412
16444
  expectTypesMatch(true);
16413
- var pcb_port_not_connected_error = z78.object({
16414
- type: z78.literal("pcb_port_not_connected_error"),
16445
+ var pcb_port_not_connected_error = z80.object({
16446
+ type: z80.literal("pcb_port_not_connected_error"),
16415
16447
  pcb_port_not_connected_error_id: getZodPrefixedIdWithDefault(
16416
16448
  "pcb_port_not_connected_error"
16417
16449
  ),
16418
- error_type: z78.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
16419
- message: z78.string(),
16420
- pcb_port_ids: z78.array(z78.string()),
16421
- pcb_component_ids: z78.array(z78.string()),
16422
- subcircuit_id: z78.string().optional()
16450
+ error_type: z80.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
16451
+ message: z80.string(),
16452
+ pcb_port_ids: z80.array(z80.string()),
16453
+ pcb_component_ids: z80.array(z80.string()),
16454
+ subcircuit_id: z80.string().optional()
16423
16455
  }).describe("Defines an error when a pcb port is not connected to any trace");
16424
16456
  expectTypesMatch(
16425
16457
  true
16426
16458
  );
16427
- var pcb_net = z79.object({
16428
- type: z79.literal("pcb_net"),
16459
+ var pcb_net = z81.object({
16460
+ type: z81.literal("pcb_net"),
16429
16461
  pcb_net_id: getZodPrefixedIdWithDefault("pcb_net"),
16430
- source_net_id: z79.string().optional(),
16431
- highlight_color: z79.string().optional()
16462
+ source_net_id: z81.string().optional(),
16463
+ highlight_color: z81.string().optional()
16432
16464
  }).describe("Defines a net on the PCB");
16433
16465
  expectTypesMatch(true);
16434
- var pcb_via = z80.object({
16435
- type: z80.literal("pcb_via"),
16466
+ var pcb_via = z82.object({
16467
+ type: z82.literal("pcb_via"),
16436
16468
  pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
16437
- pcb_group_id: z80.string().optional(),
16438
- subcircuit_id: z80.string().optional(),
16469
+ pcb_group_id: z82.string().optional(),
16470
+ subcircuit_id: z82.string().optional(),
16439
16471
  x: distance,
16440
16472
  y: distance,
16441
16473
  outer_diameter: distance.default("0.6mm"),
@@ -16444,47 +16476,58 @@ var pcb_via = z80.object({
16444
16476
  from_layer: layer_ref.optional(),
16445
16477
  /** @deprecated */
16446
16478
  to_layer: layer_ref.optional(),
16447
- layers: z80.array(layer_ref),
16448
- pcb_trace_id: z80.string().optional()
16479
+ layers: z82.array(layer_ref),
16480
+ pcb_trace_id: z82.string().optional(),
16481
+ net_is_assignable: z82.boolean().optional(),
16482
+ net_assigned: z82.boolean().optional()
16449
16483
  }).describe("Defines a via on the PCB");
16450
16484
  expectTypesMatch(true);
16451
- var pcb_board = z81.object({
16452
- type: z81.literal("pcb_board"),
16485
+ var pcb_board = z83.object({
16486
+ type: z83.literal("pcb_board"),
16453
16487
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
16454
- is_subcircuit: z81.boolean().optional(),
16455
- subcircuit_id: z81.string().optional(),
16488
+ pcb_panel_id: z83.string().optional(),
16489
+ is_subcircuit: z83.boolean().optional(),
16490
+ subcircuit_id: z83.string().optional(),
16456
16491
  width: length,
16457
16492
  height: length,
16458
16493
  center: point,
16459
16494
  thickness: length.optional().default(1.4),
16460
- num_layers: z81.number().optional().default(4),
16461
- outline: z81.array(point).optional(),
16462
- material: z81.enum(["fr4", "fr1"]).default("fr4")
16495
+ num_layers: z83.number().optional().default(4),
16496
+ outline: z83.array(point).optional(),
16497
+ material: z83.enum(["fr4", "fr1"]).default("fr4")
16463
16498
  }).describe("Defines the board outline of the PCB");
16464
16499
  expectTypesMatch(true);
16465
- var pcb_placement_error = z82.object({
16466
- type: z82.literal("pcb_placement_error"),
16500
+ var pcb_panel = z84.object({
16501
+ type: z84.literal("pcb_panel"),
16502
+ pcb_panel_id: getZodPrefixedIdWithDefault("pcb_panel"),
16503
+ width: length,
16504
+ height: length,
16505
+ covered_with_solder_mask: z84.boolean().optional().default(true)
16506
+ }).describe("Defines a PCB panel that can contain multiple boards");
16507
+ expectTypesMatch(true);
16508
+ var pcb_placement_error = z85.object({
16509
+ type: z85.literal("pcb_placement_error"),
16467
16510
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
16468
- error_type: z82.literal("pcb_placement_error").default("pcb_placement_error"),
16469
- message: z82.string(),
16470
- subcircuit_id: z82.string().optional()
16511
+ error_type: z85.literal("pcb_placement_error").default("pcb_placement_error"),
16512
+ message: z85.string(),
16513
+ subcircuit_id: z85.string().optional()
16471
16514
  }).describe("Defines a placement error on the PCB");
16472
16515
  expectTypesMatch(true);
16473
- var pcb_trace_hint = z83.object({
16474
- type: z83.literal("pcb_trace_hint"),
16516
+ var pcb_trace_hint = z86.object({
16517
+ type: z86.literal("pcb_trace_hint"),
16475
16518
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
16476
- pcb_port_id: z83.string(),
16477
- pcb_component_id: z83.string(),
16478
- route: z83.array(route_hint_point),
16479
- subcircuit_id: z83.string().optional()
16519
+ pcb_port_id: z86.string(),
16520
+ pcb_component_id: z86.string(),
16521
+ route: z86.array(route_hint_point),
16522
+ subcircuit_id: z86.string().optional()
16480
16523
  }).describe("A hint that can be used during generation of a PCB trace");
16481
16524
  expectTypesMatch(true);
16482
- var pcb_silkscreen_line = z84.object({
16483
- type: z84.literal("pcb_silkscreen_line"),
16525
+ var pcb_silkscreen_line = z87.object({
16526
+ type: z87.literal("pcb_silkscreen_line"),
16484
16527
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
16485
- pcb_component_id: z84.string(),
16486
- pcb_group_id: z84.string().optional(),
16487
- subcircuit_id: z84.string().optional(),
16528
+ pcb_component_id: z87.string(),
16529
+ pcb_group_id: z87.string().optional(),
16530
+ subcircuit_id: z87.string().optional(),
16488
16531
  stroke_width: distance.default("0.1mm"),
16489
16532
  x1: distance,
16490
16533
  y1: distance,
@@ -16493,28 +16536,28 @@ var pcb_silkscreen_line = z84.object({
16493
16536
  layer: visible_layer
16494
16537
  }).describe("Defines a silkscreen line on the PCB");
16495
16538
  expectTypesMatch(true);
16496
- var pcb_silkscreen_path = z85.object({
16497
- type: z85.literal("pcb_silkscreen_path"),
16539
+ var pcb_silkscreen_path = z88.object({
16540
+ type: z88.literal("pcb_silkscreen_path"),
16498
16541
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
16499
- pcb_component_id: z85.string(),
16500
- pcb_group_id: z85.string().optional(),
16501
- subcircuit_id: z85.string().optional(),
16542
+ pcb_component_id: z88.string(),
16543
+ pcb_group_id: z88.string().optional(),
16544
+ subcircuit_id: z88.string().optional(),
16502
16545
  layer: visible_layer,
16503
- route: z85.array(point),
16546
+ route: z88.array(point),
16504
16547
  stroke_width: length
16505
16548
  }).describe("Defines a silkscreen path on the PCB");
16506
16549
  expectTypesMatch(true);
16507
- var pcb_silkscreen_text = z86.object({
16508
- type: z86.literal("pcb_silkscreen_text"),
16550
+ var pcb_silkscreen_text = z89.object({
16551
+ type: z89.literal("pcb_silkscreen_text"),
16509
16552
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
16510
- pcb_group_id: z86.string().optional(),
16511
- subcircuit_id: z86.string().optional(),
16512
- font: z86.literal("tscircuit2024").default("tscircuit2024"),
16553
+ pcb_group_id: z89.string().optional(),
16554
+ subcircuit_id: z89.string().optional(),
16555
+ font: z89.literal("tscircuit2024").default("tscircuit2024"),
16513
16556
  font_size: distance.default("0.2mm"),
16514
- pcb_component_id: z86.string(),
16515
- text: z86.string(),
16516
- is_knockout: z86.boolean().default(false).optional(),
16517
- knockout_padding: z86.object({
16557
+ pcb_component_id: z89.string(),
16558
+ text: z89.string(),
16559
+ is_knockout: z89.boolean().default(false).optional(),
16560
+ knockout_padding: z89.object({
16518
16561
  left: length,
16519
16562
  top: length,
16520
16563
  bottom: length,
@@ -16525,248 +16568,299 @@ var pcb_silkscreen_text = z86.object({
16525
16568
  bottom: "0.2mm",
16526
16569
  right: "0.2mm"
16527
16570
  }).optional(),
16528
- ccw_rotation: z86.number().optional(),
16571
+ ccw_rotation: z89.number().optional(),
16529
16572
  layer: layer_ref,
16530
- is_mirrored: z86.boolean().default(false).optional(),
16573
+ is_mirrored: z89.boolean().default(false).optional(),
16531
16574
  anchor_position: point.default({ x: 0, y: 0 }),
16532
16575
  anchor_alignment: ninePointAnchor.default("center")
16533
16576
  }).describe("Defines silkscreen text on the PCB");
16534
16577
  expectTypesMatch(true);
16535
- var pcb_silkscreen_rect = z87.object({
16536
- type: z87.literal("pcb_silkscreen_rect"),
16578
+ var pcb_copper_text = z90.object({
16579
+ type: z90.literal("pcb_copper_text"),
16580
+ pcb_copper_text_id: getZodPrefixedIdWithDefault("pcb_copper_text"),
16581
+ pcb_group_id: z90.string().optional(),
16582
+ subcircuit_id: z90.string().optional(),
16583
+ font: z90.literal("tscircuit2024").default("tscircuit2024"),
16584
+ font_size: distance.default("0.2mm"),
16585
+ pcb_component_id: z90.string(),
16586
+ text: z90.string(),
16587
+ is_knockout: z90.boolean().default(false).optional(),
16588
+ knockout_padding: z90.object({
16589
+ left: length,
16590
+ top: length,
16591
+ bottom: length,
16592
+ right: length
16593
+ }).default({
16594
+ left: "0.2mm",
16595
+ top: "0.2mm",
16596
+ bottom: "0.2mm",
16597
+ right: "0.2mm"
16598
+ }).optional(),
16599
+ ccw_rotation: z90.number().optional(),
16600
+ layer: layer_ref,
16601
+ is_mirrored: z90.boolean().default(false).optional(),
16602
+ anchor_position: point.default({ x: 0, y: 0 }),
16603
+ anchor_alignment: ninePointAnchor.default("center")
16604
+ }).describe("Defines copper text on the PCB");
16605
+ expectTypesMatch(true);
16606
+ var pcb_silkscreen_rect = z91.object({
16607
+ type: z91.literal("pcb_silkscreen_rect"),
16537
16608
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
16538
- pcb_component_id: z87.string(),
16539
- pcb_group_id: z87.string().optional(),
16540
- subcircuit_id: z87.string().optional(),
16609
+ pcb_component_id: z91.string(),
16610
+ pcb_group_id: z91.string().optional(),
16611
+ subcircuit_id: z91.string().optional(),
16541
16612
  center: point,
16542
16613
  width: length,
16543
16614
  height: length,
16544
16615
  layer: layer_ref,
16545
16616
  stroke_width: length.default("1mm"),
16546
- is_filled: z87.boolean().default(true).optional(),
16547
- has_stroke: z87.boolean().optional(),
16548
- is_stroke_dashed: z87.boolean().optional()
16617
+ corner_radius: length.optional(),
16618
+ is_filled: z91.boolean().default(true).optional(),
16619
+ has_stroke: z91.boolean().optional(),
16620
+ is_stroke_dashed: z91.boolean().optional()
16549
16621
  }).describe("Defines a silkscreen rect on the PCB");
16550
16622
  expectTypesMatch(true);
16551
- var pcb_silkscreen_circle = z88.object({
16552
- type: z88.literal("pcb_silkscreen_circle"),
16623
+ var pcb_silkscreen_circle = z92.object({
16624
+ type: z92.literal("pcb_silkscreen_circle"),
16553
16625
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
16554
16626
  "pcb_silkscreen_circle"
16555
16627
  ),
16556
- pcb_component_id: z88.string(),
16557
- pcb_group_id: z88.string().optional(),
16558
- subcircuit_id: z88.string().optional(),
16628
+ pcb_component_id: z92.string(),
16629
+ pcb_group_id: z92.string().optional(),
16630
+ subcircuit_id: z92.string().optional(),
16559
16631
  center: point,
16560
16632
  radius: length,
16561
16633
  layer: visible_layer,
16562
16634
  stroke_width: length.default("1mm")
16563
16635
  }).describe("Defines a silkscreen circle on the PCB");
16564
16636
  expectTypesMatch(true);
16565
- var pcb_silkscreen_oval = z89.object({
16566
- type: z89.literal("pcb_silkscreen_oval"),
16637
+ var pcb_silkscreen_oval = z93.object({
16638
+ type: z93.literal("pcb_silkscreen_oval"),
16567
16639
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
16568
- pcb_component_id: z89.string(),
16569
- pcb_group_id: z89.string().optional(),
16570
- subcircuit_id: z89.string().optional(),
16640
+ pcb_component_id: z93.string(),
16641
+ pcb_group_id: z93.string().optional(),
16642
+ subcircuit_id: z93.string().optional(),
16571
16643
  center: point,
16572
16644
  radius_x: distance,
16573
16645
  radius_y: distance,
16574
16646
  layer: visible_layer
16575
16647
  }).describe("Defines a silkscreen oval on the PCB");
16576
16648
  expectTypesMatch(true);
16577
- var pcb_fabrication_note_text = z90.object({
16578
- type: z90.literal("pcb_fabrication_note_text"),
16649
+ var pcb_fabrication_note_text = z94.object({
16650
+ type: z94.literal("pcb_fabrication_note_text"),
16579
16651
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
16580
16652
  "pcb_fabrication_note_text"
16581
16653
  ),
16582
- subcircuit_id: z90.string().optional(),
16583
- pcb_group_id: z90.string().optional(),
16584
- font: z90.literal("tscircuit2024").default("tscircuit2024"),
16654
+ subcircuit_id: z94.string().optional(),
16655
+ pcb_group_id: z94.string().optional(),
16656
+ font: z94.literal("tscircuit2024").default("tscircuit2024"),
16585
16657
  font_size: distance.default("1mm"),
16586
- pcb_component_id: z90.string(),
16587
- text: z90.string(),
16658
+ pcb_component_id: z94.string(),
16659
+ text: z94.string(),
16588
16660
  layer: visible_layer,
16589
16661
  anchor_position: point.default({ x: 0, y: 0 }),
16590
- anchor_alignment: z90.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
16591
- color: z90.string().optional()
16662
+ anchor_alignment: z94.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
16663
+ color: z94.string().optional()
16592
16664
  }).describe(
16593
16665
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
16594
16666
  );
16595
16667
  expectTypesMatch(true);
16596
- var pcb_fabrication_note_path = z91.object({
16597
- type: z91.literal("pcb_fabrication_note_path"),
16668
+ var pcb_fabrication_note_path = z95.object({
16669
+ type: z95.literal("pcb_fabrication_note_path"),
16598
16670
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
16599
16671
  "pcb_fabrication_note_path"
16600
16672
  ),
16601
- pcb_component_id: z91.string(),
16602
- subcircuit_id: z91.string().optional(),
16673
+ pcb_component_id: z95.string(),
16674
+ subcircuit_id: z95.string().optional(),
16603
16675
  layer: layer_ref,
16604
- route: z91.array(point),
16676
+ route: z95.array(point),
16605
16677
  stroke_width: length,
16606
- color: z91.string().optional()
16678
+ color: z95.string().optional()
16607
16679
  }).describe(
16608
16680
  "Defines a fabrication path on the PCB for fabricators or assemblers"
16609
16681
  );
16610
16682
  expectTypesMatch(true);
16611
- var pcb_fabrication_note_rect = z92.object({
16612
- type: z92.literal("pcb_fabrication_note_rect"),
16683
+ var pcb_fabrication_note_rect = z96.object({
16684
+ type: z96.literal("pcb_fabrication_note_rect"),
16613
16685
  pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
16614
16686
  "pcb_fabrication_note_rect"
16615
16687
  ),
16616
- pcb_component_id: z92.string(),
16617
- pcb_group_id: z92.string().optional(),
16618
- subcircuit_id: z92.string().optional(),
16688
+ pcb_component_id: z96.string(),
16689
+ pcb_group_id: z96.string().optional(),
16690
+ subcircuit_id: z96.string().optional(),
16619
16691
  center: point,
16620
16692
  width: length,
16621
16693
  height: length,
16622
16694
  layer: visible_layer,
16623
16695
  stroke_width: length.default("0.1mm"),
16624
- is_filled: z92.boolean().optional(),
16625
- has_stroke: z92.boolean().optional(),
16626
- is_stroke_dashed: z92.boolean().optional(),
16627
- color: z92.string().optional()
16696
+ corner_radius: length.optional(),
16697
+ is_filled: z96.boolean().optional(),
16698
+ has_stroke: z96.boolean().optional(),
16699
+ is_stroke_dashed: z96.boolean().optional(),
16700
+ color: z96.string().optional()
16628
16701
  }).describe("Defines a fabrication note rectangle on the PCB");
16629
16702
  expectTypesMatch(true);
16630
- var pcb_fabrication_note_dimension = z93.object({
16631
- type: z93.literal("pcb_fabrication_note_dimension"),
16703
+ var pcb_fabrication_note_dimension = z97.object({
16704
+ type: z97.literal("pcb_fabrication_note_dimension"),
16632
16705
  pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
16633
16706
  "pcb_fabrication_note_dimension"
16634
16707
  ),
16635
- pcb_component_id: z93.string(),
16636
- pcb_group_id: z93.string().optional(),
16637
- subcircuit_id: z93.string().optional(),
16708
+ pcb_component_id: z97.string(),
16709
+ pcb_group_id: z97.string().optional(),
16710
+ subcircuit_id: z97.string().optional(),
16638
16711
  layer: visible_layer,
16639
16712
  from: point,
16640
16713
  to: point,
16641
- text: z93.string().optional(),
16714
+ text: z97.string().optional(),
16715
+ text_ccw_rotation: z97.number().optional(),
16642
16716
  offset: length.optional(),
16643
- font: z93.literal("tscircuit2024").default("tscircuit2024"),
16717
+ offset_distance: length.optional(),
16718
+ offset_direction: z97.object({
16719
+ x: z97.number(),
16720
+ y: z97.number()
16721
+ }).optional(),
16722
+ font: z97.literal("tscircuit2024").default("tscircuit2024"),
16644
16723
  font_size: length.default("1mm"),
16645
- color: z93.string().optional(),
16724
+ color: z97.string().optional(),
16646
16725
  arrow_size: length.default("1mm")
16647
16726
  }).describe("Defines a measurement annotation within PCB fabrication notes");
16648
16727
  expectTypesMatch(true);
16649
- var pcb_note_text = z94.object({
16650
- type: z94.literal("pcb_note_text"),
16728
+ var pcb_note_text = z98.object({
16729
+ type: z98.literal("pcb_note_text"),
16651
16730
  pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
16652
- pcb_component_id: z94.string().optional(),
16653
- pcb_group_id: z94.string().optional(),
16654
- subcircuit_id: z94.string().optional(),
16655
- font: z94.literal("tscircuit2024").default("tscircuit2024"),
16731
+ pcb_component_id: z98.string().optional(),
16732
+ pcb_group_id: z98.string().optional(),
16733
+ subcircuit_id: z98.string().optional(),
16734
+ name: z98.string().optional(),
16735
+ font: z98.literal("tscircuit2024").default("tscircuit2024"),
16656
16736
  font_size: distance.default("1mm"),
16657
- text: z94.string(),
16737
+ text: z98.string().optional(),
16658
16738
  anchor_position: point.default({ x: 0, y: 0 }),
16659
- anchor_alignment: z94.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
16660
- color: z94.string().optional()
16739
+ anchor_alignment: z98.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
16740
+ color: z98.string().optional()
16661
16741
  }).describe("Defines a documentation note in text on the PCB");
16662
16742
  expectTypesMatch(true);
16663
- var pcb_note_rect = z95.object({
16664
- type: z95.literal("pcb_note_rect"),
16743
+ var pcb_note_rect = z99.object({
16744
+ type: z99.literal("pcb_note_rect"),
16665
16745
  pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
16666
- pcb_component_id: z95.string().optional(),
16667
- pcb_group_id: z95.string().optional(),
16668
- subcircuit_id: z95.string().optional(),
16746
+ pcb_component_id: z99.string().optional(),
16747
+ pcb_group_id: z99.string().optional(),
16748
+ subcircuit_id: z99.string().optional(),
16749
+ name: z99.string().optional(),
16750
+ text: z99.string().optional(),
16669
16751
  center: point,
16670
16752
  width: length,
16671
16753
  height: length,
16672
16754
  stroke_width: length.default("0.1mm"),
16673
- is_filled: z95.boolean().optional(),
16674
- has_stroke: z95.boolean().optional(),
16675
- is_stroke_dashed: z95.boolean().optional(),
16676
- color: z95.string().optional()
16755
+ corner_radius: length.optional(),
16756
+ is_filled: z99.boolean().optional(),
16757
+ has_stroke: z99.boolean().optional(),
16758
+ is_stroke_dashed: z99.boolean().optional(),
16759
+ color: z99.string().optional()
16677
16760
  }).describe("Defines a rectangular documentation note on the PCB");
16678
16761
  expectTypesMatch(true);
16679
- var pcb_note_path = z96.object({
16680
- type: z96.literal("pcb_note_path"),
16762
+ var pcb_note_path = z100.object({
16763
+ type: z100.literal("pcb_note_path"),
16681
16764
  pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
16682
- pcb_component_id: z96.string().optional(),
16683
- pcb_group_id: z96.string().optional(),
16684
- subcircuit_id: z96.string().optional(),
16685
- route: z96.array(point),
16765
+ pcb_component_id: z100.string().optional(),
16766
+ pcb_group_id: z100.string().optional(),
16767
+ subcircuit_id: z100.string().optional(),
16768
+ name: z100.string().optional(),
16769
+ text: z100.string().optional(),
16770
+ route: z100.array(point),
16686
16771
  stroke_width: length.default("0.1mm"),
16687
- color: z96.string().optional()
16772
+ color: z100.string().optional()
16688
16773
  }).describe("Defines a polyline documentation note on the PCB");
16689
16774
  expectTypesMatch(true);
16690
- var pcb_note_line = z97.object({
16691
- type: z97.literal("pcb_note_line"),
16775
+ var pcb_note_line = z101.object({
16776
+ type: z101.literal("pcb_note_line"),
16692
16777
  pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
16693
- pcb_component_id: z97.string().optional(),
16694
- pcb_group_id: z97.string().optional(),
16695
- subcircuit_id: z97.string().optional(),
16778
+ pcb_component_id: z101.string().optional(),
16779
+ pcb_group_id: z101.string().optional(),
16780
+ subcircuit_id: z101.string().optional(),
16781
+ name: z101.string().optional(),
16782
+ text: z101.string().optional(),
16696
16783
  x1: distance,
16697
16784
  y1: distance,
16698
16785
  x2: distance,
16699
16786
  y2: distance,
16700
16787
  stroke_width: distance.default("0.1mm"),
16701
- color: z97.string().optional(),
16702
- is_dashed: z97.boolean().optional()
16788
+ color: z101.string().optional(),
16789
+ is_dashed: z101.boolean().optional()
16703
16790
  }).describe("Defines a straight documentation note line on the PCB");
16704
16791
  expectTypesMatch(true);
16705
- var pcb_note_dimension = z98.object({
16706
- type: z98.literal("pcb_note_dimension"),
16792
+ var pcb_note_dimension = z102.object({
16793
+ type: z102.literal("pcb_note_dimension"),
16707
16794
  pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
16708
- pcb_component_id: z98.string().optional(),
16709
- pcb_group_id: z98.string().optional(),
16710
- subcircuit_id: z98.string().optional(),
16795
+ pcb_component_id: z102.string().optional(),
16796
+ pcb_group_id: z102.string().optional(),
16797
+ subcircuit_id: z102.string().optional(),
16798
+ name: z102.string().optional(),
16711
16799
  from: point,
16712
16800
  to: point,
16713
- text: z98.string().optional(),
16714
- font: z98.literal("tscircuit2024").default("tscircuit2024"),
16801
+ text: z102.string().optional(),
16802
+ text_ccw_rotation: z102.number().optional(),
16803
+ offset_distance: length.optional(),
16804
+ offset_direction: z102.object({
16805
+ x: z102.number(),
16806
+ y: z102.number()
16807
+ }).optional(),
16808
+ font: z102.literal("tscircuit2024").default("tscircuit2024"),
16715
16809
  font_size: length.default("1mm"),
16716
- color: z98.string().optional(),
16810
+ color: z102.string().optional(),
16717
16811
  arrow_size: length.default("1mm")
16718
16812
  }).describe("Defines a measurement annotation within PCB documentation notes");
16719
16813
  expectTypesMatch(true);
16720
- var pcb_footprint_overlap_error = z99.object({
16721
- type: z99.literal("pcb_footprint_overlap_error"),
16814
+ var pcb_footprint_overlap_error = z103.object({
16815
+ type: z103.literal("pcb_footprint_overlap_error"),
16722
16816
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
16723
- error_type: z99.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
16724
- message: z99.string(),
16725
- pcb_smtpad_ids: z99.array(z99.string()).optional(),
16726
- pcb_plated_hole_ids: z99.array(z99.string()).optional(),
16727
- pcb_hole_ids: z99.array(z99.string()).optional(),
16728
- pcb_keepout_ids: z99.array(z99.string()).optional()
16817
+ error_type: z103.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
16818
+ message: z103.string(),
16819
+ pcb_smtpad_ids: z103.array(z103.string()).optional(),
16820
+ pcb_plated_hole_ids: z103.array(z103.string()).optional(),
16821
+ pcb_hole_ids: z103.array(z103.string()).optional(),
16822
+ pcb_keepout_ids: z103.array(z103.string()).optional()
16729
16823
  }).describe("Error emitted when a pcb footprint overlaps with another element");
16730
16824
  expectTypesMatch(
16731
16825
  true
16732
16826
  );
16733
- var pcb_keepout = z100.object({
16734
- type: z100.literal("pcb_keepout"),
16735
- shape: z100.literal("rect"),
16736
- pcb_group_id: z100.string().optional(),
16737
- subcircuit_id: z100.string().optional(),
16827
+ var pcb_keepout = z104.object({
16828
+ type: z104.literal("pcb_keepout"),
16829
+ shape: z104.literal("rect"),
16830
+ pcb_group_id: z104.string().optional(),
16831
+ subcircuit_id: z104.string().optional(),
16738
16832
  center: point,
16739
16833
  width: distance,
16740
16834
  height: distance,
16741
- pcb_keepout_id: z100.string(),
16742
- layers: z100.array(z100.string()),
16835
+ pcb_keepout_id: z104.string(),
16836
+ layers: z104.array(z104.string()),
16743
16837
  // Specify layers where the keepout applies
16744
- description: z100.string().optional()
16838
+ description: z104.string().optional()
16745
16839
  // Optional description of the keepout
16746
16840
  }).or(
16747
- z100.object({
16748
- type: z100.literal("pcb_keepout"),
16749
- shape: z100.literal("circle"),
16750
- pcb_group_id: z100.string().optional(),
16751
- subcircuit_id: z100.string().optional(),
16841
+ z104.object({
16842
+ type: z104.literal("pcb_keepout"),
16843
+ shape: z104.literal("circle"),
16844
+ pcb_group_id: z104.string().optional(),
16845
+ subcircuit_id: z104.string().optional(),
16752
16846
  center: point,
16753
16847
  radius: distance,
16754
- pcb_keepout_id: z100.string(),
16755
- layers: z100.array(z100.string()),
16848
+ pcb_keepout_id: z104.string(),
16849
+ layers: z104.array(z104.string()),
16756
16850
  // Specify layers where the keepout applies
16757
- description: z100.string().optional()
16851
+ description: z104.string().optional()
16758
16852
  // Optional description of the keepout
16759
16853
  })
16760
16854
  );
16761
16855
  expectTypesMatch(true);
16762
- var pcb_cutout_base = z101.object({
16763
- type: z101.literal("pcb_cutout"),
16856
+ var pcb_cutout_base = z105.object({
16857
+ type: z105.literal("pcb_cutout"),
16764
16858
  pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
16765
- pcb_group_id: z101.string().optional(),
16766
- subcircuit_id: z101.string().optional()
16859
+ pcb_group_id: z105.string().optional(),
16860
+ subcircuit_id: z105.string().optional()
16767
16861
  });
16768
16862
  var pcb_cutout_rect = pcb_cutout_base.extend({
16769
- shape: z101.literal("rect"),
16863
+ shape: z105.literal("rect"),
16770
16864
  center: point,
16771
16865
  width: length,
16772
16866
  height: length,
@@ -16774,164 +16868,168 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
16774
16868
  });
16775
16869
  expectTypesMatch(true);
16776
16870
  var pcb_cutout_circle = pcb_cutout_base.extend({
16777
- shape: z101.literal("circle"),
16871
+ shape: z105.literal("circle"),
16778
16872
  center: point,
16779
16873
  radius: length
16780
16874
  });
16781
16875
  expectTypesMatch(true);
16782
16876
  var pcb_cutout_polygon = pcb_cutout_base.extend({
16783
- shape: z101.literal("polygon"),
16784
- points: z101.array(point)
16877
+ shape: z105.literal("polygon"),
16878
+ points: z105.array(point)
16785
16879
  });
16786
16880
  expectTypesMatch(true);
16787
- var pcb_cutout = z101.discriminatedUnion("shape", [
16881
+ var pcb_cutout = z105.discriminatedUnion("shape", [
16788
16882
  pcb_cutout_rect,
16789
16883
  pcb_cutout_circle,
16790
16884
  pcb_cutout_polygon
16791
16885
  ]).describe("Defines a cutout on the PCB, removing board material.");
16792
16886
  expectTypesMatch(true);
16793
- var pcb_missing_footprint_error = z102.object({
16794
- type: z102.literal("pcb_missing_footprint_error"),
16887
+ var pcb_missing_footprint_error = z106.object({
16888
+ type: z106.literal("pcb_missing_footprint_error"),
16795
16889
  pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
16796
16890
  "pcb_missing_footprint_error"
16797
16891
  ),
16798
- pcb_group_id: z102.string().optional(),
16799
- subcircuit_id: z102.string().optional(),
16800
- error_type: z102.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
16801
- source_component_id: z102.string(),
16802
- message: z102.string()
16892
+ pcb_group_id: z106.string().optional(),
16893
+ subcircuit_id: z106.string().optional(),
16894
+ error_type: z106.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
16895
+ source_component_id: z106.string(),
16896
+ message: z106.string()
16803
16897
  }).describe("Defines a missing footprint error on the PCB");
16804
16898
  expectTypesMatch(
16805
16899
  true
16806
16900
  );
16807
- var external_footprint_load_error = z103.object({
16808
- type: z103.literal("external_footprint_load_error"),
16901
+ var external_footprint_load_error = z107.object({
16902
+ type: z107.literal("external_footprint_load_error"),
16809
16903
  external_footprint_load_error_id: getZodPrefixedIdWithDefault(
16810
16904
  "external_footprint_load_error"
16811
16905
  ),
16812
- pcb_component_id: z103.string(),
16813
- source_component_id: z103.string(),
16814
- pcb_group_id: z103.string().optional(),
16815
- subcircuit_id: z103.string().optional(),
16816
- footprinter_string: z103.string().optional(),
16817
- error_type: z103.literal("external_footprint_load_error").default("external_footprint_load_error"),
16818
- message: z103.string()
16906
+ pcb_component_id: z107.string(),
16907
+ source_component_id: z107.string(),
16908
+ pcb_group_id: z107.string().optional(),
16909
+ subcircuit_id: z107.string().optional(),
16910
+ footprinter_string: z107.string().optional(),
16911
+ error_type: z107.literal("external_footprint_load_error").default("external_footprint_load_error"),
16912
+ message: z107.string()
16819
16913
  }).describe("Defines an error when an external footprint fails to load");
16820
16914
  expectTypesMatch(true);
16821
- var circuit_json_footprint_load_error = z104.object({
16822
- type: z104.literal("circuit_json_footprint_load_error"),
16915
+ var circuit_json_footprint_load_error = z108.object({
16916
+ type: z108.literal("circuit_json_footprint_load_error"),
16823
16917
  circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
16824
16918
  "circuit_json_footprint_load_error"
16825
16919
  ),
16826
- pcb_component_id: z104.string(),
16827
- source_component_id: z104.string(),
16828
- pcb_group_id: z104.string().optional(),
16829
- subcircuit_id: z104.string().optional(),
16830
- error_type: z104.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
16831
- message: z104.string(),
16832
- circuit_json: z104.array(z104.any()).optional()
16920
+ pcb_component_id: z108.string(),
16921
+ source_component_id: z108.string(),
16922
+ pcb_group_id: z108.string().optional(),
16923
+ subcircuit_id: z108.string().optional(),
16924
+ error_type: z108.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
16925
+ message: z108.string(),
16926
+ circuit_json: z108.array(z108.any()).optional()
16833
16927
  }).describe("Defines an error when a circuit JSON footprint fails to load");
16834
16928
  expectTypesMatch(true);
16835
- var pcb_group = z105.object({
16836
- type: z105.literal("pcb_group"),
16929
+ var pcb_group = z109.object({
16930
+ type: z109.literal("pcb_group"),
16837
16931
  pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
16838
- source_group_id: z105.string(),
16839
- is_subcircuit: z105.boolean().optional(),
16840
- subcircuit_id: z105.string().optional(),
16841
- width: length,
16842
- height: length,
16932
+ source_group_id: z109.string(),
16933
+ is_subcircuit: z109.boolean().optional(),
16934
+ subcircuit_id: z109.string().optional(),
16935
+ width: length.optional(),
16936
+ height: length.optional(),
16843
16937
  center: point,
16844
- pcb_component_ids: z105.array(z105.string()),
16845
- name: z105.string().optional(),
16846
- description: z105.string().optional(),
16847
- layout_mode: z105.string().optional(),
16848
- autorouter_configuration: z105.object({
16938
+ outline: z109.array(point).optional(),
16939
+ anchor_position: point.optional(),
16940
+ anchor_alignment: z109.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).optional(),
16941
+ pcb_component_ids: z109.array(z109.string()),
16942
+ name: z109.string().optional(),
16943
+ description: z109.string().optional(),
16944
+ layout_mode: z109.string().optional(),
16945
+ autorouter_configuration: z109.object({
16849
16946
  trace_clearance: length
16850
16947
  }).optional(),
16851
- autorouter_used_string: z105.string().optional()
16948
+ autorouter_used_string: z109.string().optional()
16852
16949
  }).describe("Defines a group of components on the PCB");
16853
16950
  expectTypesMatch(true);
16854
- var pcb_autorouting_error = z106.object({
16855
- type: z106.literal("pcb_autorouting_error"),
16951
+ var pcb_autorouting_error = z110.object({
16952
+ type: z110.literal("pcb_autorouting_error"),
16856
16953
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
16857
- error_type: z106.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
16858
- message: z106.string(),
16859
- subcircuit_id: z106.string().optional()
16954
+ error_type: z110.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
16955
+ message: z110.string(),
16956
+ subcircuit_id: z110.string().optional()
16860
16957
  }).describe("The autorouting has failed to route a portion of the board");
16861
16958
  expectTypesMatch(true);
16862
- var pcb_manual_edit_conflict_warning = z107.object({
16863
- type: z107.literal("pcb_manual_edit_conflict_warning"),
16959
+ var pcb_manual_edit_conflict_warning = z111.object({
16960
+ type: z111.literal("pcb_manual_edit_conflict_warning"),
16864
16961
  pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
16865
16962
  "pcb_manual_edit_conflict_warning"
16866
16963
  ),
16867
- warning_type: z107.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
16868
- message: z107.string(),
16869
- pcb_component_id: z107.string(),
16870
- pcb_group_id: z107.string().optional(),
16871
- subcircuit_id: z107.string().optional(),
16872
- source_component_id: z107.string()
16964
+ warning_type: z111.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
16965
+ message: z111.string(),
16966
+ pcb_component_id: z111.string(),
16967
+ pcb_group_id: z111.string().optional(),
16968
+ subcircuit_id: z111.string().optional(),
16969
+ source_component_id: z111.string()
16873
16970
  }).describe(
16874
16971
  "Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
16875
16972
  );
16876
16973
  expectTypesMatch(true);
16877
- var pcb_breakout_point = z108.object({
16878
- type: z108.literal("pcb_breakout_point"),
16974
+ var pcb_breakout_point = z112.object({
16975
+ type: z112.literal("pcb_breakout_point"),
16879
16976
  pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
16880
- pcb_group_id: z108.string(),
16881
- subcircuit_id: z108.string().optional(),
16882
- source_trace_id: z108.string().optional(),
16883
- source_port_id: z108.string().optional(),
16884
- source_net_id: z108.string().optional(),
16977
+ pcb_group_id: z112.string(),
16978
+ subcircuit_id: z112.string().optional(),
16979
+ source_trace_id: z112.string().optional(),
16980
+ source_port_id: z112.string().optional(),
16981
+ source_net_id: z112.string().optional(),
16885
16982
  x: distance,
16886
16983
  y: distance
16887
16984
  }).describe(
16888
16985
  "Defines a routing target within a pcb_group for a source_trace or source_net"
16889
16986
  );
16890
16987
  expectTypesMatch(true);
16891
- var pcb_ground_plane = z109.object({
16892
- type: z109.literal("pcb_ground_plane"),
16988
+ var pcb_ground_plane = z113.object({
16989
+ type: z113.literal("pcb_ground_plane"),
16893
16990
  pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
16894
- source_pcb_ground_plane_id: z109.string(),
16895
- source_net_id: z109.string(),
16896
- pcb_group_id: z109.string().optional(),
16897
- subcircuit_id: z109.string().optional()
16991
+ source_pcb_ground_plane_id: z113.string(),
16992
+ source_net_id: z113.string(),
16993
+ pcb_group_id: z113.string().optional(),
16994
+ subcircuit_id: z113.string().optional()
16898
16995
  }).describe("Defines a ground plane on the PCB");
16899
16996
  expectTypesMatch(true);
16900
- var pcb_ground_plane_region = z110.object({
16901
- type: z110.literal("pcb_ground_plane_region"),
16997
+ var pcb_ground_plane_region = z114.object({
16998
+ type: z114.literal("pcb_ground_plane_region"),
16902
16999
  pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
16903
17000
  "pcb_ground_plane_region"
16904
17001
  ),
16905
- pcb_ground_plane_id: z110.string(),
16906
- pcb_group_id: z110.string().optional(),
16907
- subcircuit_id: z110.string().optional(),
17002
+ pcb_ground_plane_id: z114.string(),
17003
+ pcb_group_id: z114.string().optional(),
17004
+ subcircuit_id: z114.string().optional(),
16908
17005
  layer: layer_ref,
16909
- points: z110.array(point)
17006
+ points: z114.array(point)
16910
17007
  }).describe("Defines a polygon region of a ground plane");
16911
17008
  expectTypesMatch(true);
16912
- var pcb_thermal_spoke = z111.object({
16913
- type: z111.literal("pcb_thermal_spoke"),
17009
+ var pcb_thermal_spoke = z115.object({
17010
+ type: z115.literal("pcb_thermal_spoke"),
16914
17011
  pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
16915
- pcb_ground_plane_id: z111.string(),
16916
- shape: z111.string(),
16917
- spoke_count: z111.number(),
17012
+ pcb_ground_plane_id: z115.string(),
17013
+ shape: z115.string(),
17014
+ spoke_count: z115.number(),
16918
17015
  spoke_thickness: distance,
16919
17016
  spoke_inner_diameter: distance,
16920
17017
  spoke_outer_diameter: distance,
16921
- pcb_plated_hole_id: z111.string().optional(),
16922
- subcircuit_id: z111.string().optional()
17018
+ pcb_plated_hole_id: z115.string().optional(),
17019
+ subcircuit_id: z115.string().optional()
16923
17020
  }).describe("Pattern for connecting a ground plane to a plated hole");
16924
17021
  expectTypesMatch(true);
16925
- var pcb_copper_pour_base = z112.object({
16926
- type: z112.literal("pcb_copper_pour"),
17022
+ var pcb_copper_pour_base = z116.object({
17023
+ type: z116.literal("pcb_copper_pour"),
16927
17024
  pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
16928
- pcb_group_id: z112.string().optional(),
16929
- subcircuit_id: z112.string().optional(),
17025
+ pcb_group_id: z116.string().optional(),
17026
+ subcircuit_id: z116.string().optional(),
16930
17027
  layer: layer_ref,
16931
- source_net_id: z112.string().optional()
17028
+ source_net_id: z116.string().optional(),
17029
+ covered_with_solder_mask: z116.boolean().optional().default(true)
16932
17030
  });
16933
17031
  var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
16934
- shape: z112.literal("rect"),
17032
+ shape: z116.literal("rect"),
16935
17033
  center: point,
16936
17034
  width: length,
16937
17035
  height: length,
@@ -16939,116 +17037,140 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
16939
17037
  });
16940
17038
  expectTypesMatch(true);
16941
17039
  var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
16942
- shape: z112.literal("brep"),
17040
+ shape: z116.literal("brep"),
16943
17041
  brep_shape
16944
17042
  });
16945
17043
  expectTypesMatch(true);
16946
17044
  var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
16947
- shape: z112.literal("polygon"),
16948
- points: z112.array(point)
17045
+ shape: z116.literal("polygon"),
17046
+ points: z116.array(point)
16949
17047
  });
16950
17048
  expectTypesMatch(true);
16951
- var pcb_copper_pour = z112.discriminatedUnion("shape", [
17049
+ var pcb_copper_pour = z116.discriminatedUnion("shape", [
16952
17050
  pcb_copper_pour_rect,
16953
17051
  pcb_copper_pour_brep,
16954
17052
  pcb_copper_pour_polygon
16955
17053
  ]).describe("Defines a copper pour on the PCB.");
16956
17054
  expectTypesMatch(true);
16957
- var pcb_component_outside_board_error = z113.object({
16958
- type: z113.literal("pcb_component_outside_board_error"),
17055
+ var pcb_component_outside_board_error = z117.object({
17056
+ type: z117.literal("pcb_component_outside_board_error"),
16959
17057
  pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
16960
17058
  "pcb_component_outside_board_error"
16961
17059
  ),
16962
- error_type: z113.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
16963
- message: z113.string(),
16964
- pcb_component_id: z113.string(),
16965
- pcb_board_id: z113.string(),
17060
+ error_type: z117.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
17061
+ message: z117.string(),
17062
+ pcb_component_id: z117.string(),
17063
+ pcb_board_id: z117.string(),
16966
17064
  component_center: point,
16967
- component_bounds: z113.object({
16968
- min_x: z113.number(),
16969
- max_x: z113.number(),
16970
- min_y: z113.number(),
16971
- max_y: z113.number()
17065
+ component_bounds: z117.object({
17066
+ min_x: z117.number(),
17067
+ max_x: z117.number(),
17068
+ min_y: z117.number(),
17069
+ max_y: z117.number()
16972
17070
  }),
16973
- subcircuit_id: z113.string().optional(),
16974
- source_component_id: z113.string().optional()
17071
+ subcircuit_id: z117.string().optional(),
17072
+ source_component_id: z117.string().optional()
16975
17073
  }).describe(
16976
17074
  "Error emitted when a PCB component is placed outside the board boundaries"
16977
17075
  );
16978
17076
  expectTypesMatch(true);
16979
- var pcb_via_clearance_error = z114.object({
16980
- type: z114.literal("pcb_via_clearance_error"),
17077
+ var pcb_component_invalid_layer_error = z118.object({
17078
+ type: z118.literal("pcb_component_invalid_layer_error"),
17079
+ pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
17080
+ "pcb_component_invalid_layer_error"
17081
+ ),
17082
+ error_type: z118.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
17083
+ message: z118.string(),
17084
+ pcb_component_id: z118.string().optional(),
17085
+ source_component_id: z118.string(),
17086
+ layer: layer_ref,
17087
+ subcircuit_id: z118.string().optional()
17088
+ }).describe(
17089
+ "Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
17090
+ );
17091
+ expectTypesMatch(true);
17092
+ var pcb_via_clearance_error = z119.object({
17093
+ type: z119.literal("pcb_via_clearance_error"),
16981
17094
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
16982
- error_type: z114.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
16983
- message: z114.string(),
16984
- pcb_via_ids: z114.array(z114.string()).min(2),
17095
+ error_type: z119.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
17096
+ message: z119.string(),
17097
+ pcb_via_ids: z119.array(z119.string()).min(2),
16985
17098
  minimum_clearance: distance.optional(),
16986
17099
  actual_clearance: distance.optional(),
16987
- pcb_center: z114.object({
16988
- x: z114.number().optional(),
16989
- y: z114.number().optional()
17100
+ pcb_center: z119.object({
17101
+ x: z119.number().optional(),
17102
+ y: z119.number().optional()
16990
17103
  }).optional(),
16991
- subcircuit_id: z114.string().optional()
17104
+ subcircuit_id: z119.string().optional()
16992
17105
  }).describe("Error emitted when vias are closer than the allowed clearance");
16993
17106
  expectTypesMatch(true);
16994
- var pcb_courtyard_rect = z115.object({
16995
- type: z115.literal("pcb_courtyard_rect"),
17107
+ var pcb_courtyard_rect = z120.object({
17108
+ type: z120.literal("pcb_courtyard_rect"),
16996
17109
  pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
16997
- pcb_component_id: z115.string(),
16998
- pcb_group_id: z115.string().optional(),
16999
- subcircuit_id: z115.string().optional(),
17110
+ pcb_component_id: z120.string(),
17111
+ pcb_group_id: z120.string().optional(),
17112
+ subcircuit_id: z120.string().optional(),
17000
17113
  center: point,
17001
17114
  width: length,
17002
17115
  height: length,
17003
17116
  layer: visible_layer,
17004
- stroke_width: length.default("0.1mm"),
17005
- is_filled: z115.boolean().optional(),
17006
- has_stroke: z115.boolean().optional(),
17007
- is_stroke_dashed: z115.boolean().optional(),
17008
- color: z115.string().optional()
17117
+ color: z120.string().optional()
17009
17118
  }).describe("Defines a courtyard rectangle on the PCB");
17010
17119
  expectTypesMatch(true);
17011
- var pcb_courtyard_outline = z116.object({
17012
- type: z116.literal("pcb_courtyard_outline"),
17120
+ var pcb_courtyard_outline = z121.object({
17121
+ type: z121.literal("pcb_courtyard_outline"),
17013
17122
  pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
17014
17123
  "pcb_courtyard_outline"
17015
17124
  ),
17016
- pcb_component_id: z116.string(),
17017
- pcb_group_id: z116.string().optional(),
17018
- subcircuit_id: z116.string().optional(),
17125
+ pcb_component_id: z121.string(),
17126
+ pcb_group_id: z121.string().optional(),
17127
+ subcircuit_id: z121.string().optional(),
17019
17128
  layer: visible_layer,
17020
- outline: z116.array(point).min(2),
17129
+ outline: z121.array(point).min(2),
17021
17130
  stroke_width: length.default("0.1mm"),
17022
- is_closed: z116.boolean().optional(),
17023
- is_stroke_dashed: z116.boolean().optional(),
17024
- color: z116.string().optional()
17131
+ is_closed: z121.boolean().optional(),
17132
+ is_stroke_dashed: z121.boolean().optional(),
17133
+ color: z121.string().optional()
17025
17134
  }).describe("Defines a courtyard outline on the PCB");
17026
17135
  expectTypesMatch(true);
17027
- var cad_component = z117.object({
17028
- type: z117.literal("cad_component"),
17029
- cad_component_id: z117.string(),
17030
- pcb_component_id: z117.string(),
17031
- source_component_id: z117.string(),
17136
+ var pcb_courtyard_polygon = z122.object({
17137
+ type: z122.literal("pcb_courtyard_polygon"),
17138
+ pcb_courtyard_polygon_id: getZodPrefixedIdWithDefault(
17139
+ "pcb_courtyard_polygon"
17140
+ ),
17141
+ pcb_component_id: z122.string(),
17142
+ pcb_group_id: z122.string().optional(),
17143
+ subcircuit_id: z122.string().optional(),
17144
+ layer: visible_layer,
17145
+ points: z122.array(point).min(3),
17146
+ color: z122.string().optional()
17147
+ }).describe("Defines a courtyard polygon on the PCB");
17148
+ expectTypesMatch(true);
17149
+ var cad_component = z123.object({
17150
+ type: z123.literal("cad_component"),
17151
+ cad_component_id: z123.string(),
17152
+ pcb_component_id: z123.string(),
17153
+ source_component_id: z123.string(),
17032
17154
  position: point3,
17033
17155
  rotation: point3.optional(),
17034
17156
  size: point3.optional(),
17035
17157
  layer: layer_ref.optional(),
17036
- subcircuit_id: z117.string().optional(),
17158
+ subcircuit_id: z123.string().optional(),
17037
17159
  // These are all ways to generate/load the 3d model
17038
- footprinter_string: z117.string().optional(),
17039
- model_obj_url: z117.string().optional(),
17040
- model_stl_url: z117.string().optional(),
17041
- model_3mf_url: z117.string().optional(),
17042
- model_gltf_url: z117.string().optional(),
17043
- model_glb_url: z117.string().optional(),
17044
- model_step_url: z117.string().optional(),
17045
- model_wrl_url: z117.string().optional(),
17046
- model_unit_to_mm_scale_factor: z117.number().optional(),
17047
- model_jscad: z117.any().optional()
17160
+ footprinter_string: z123.string().optional(),
17161
+ model_obj_url: z123.string().optional(),
17162
+ model_stl_url: z123.string().optional(),
17163
+ model_3mf_url: z123.string().optional(),
17164
+ model_gltf_url: z123.string().optional(),
17165
+ model_glb_url: z123.string().optional(),
17166
+ model_step_url: z123.string().optional(),
17167
+ model_wrl_url: z123.string().optional(),
17168
+ model_unit_to_mm_scale_factor: z123.number().optional(),
17169
+ model_jscad: z123.any().optional()
17048
17170
  }).describe("Defines a component on the PCB");
17049
17171
  expectTypesMatch(true);
17050
- var wave_shape = z118.enum(["sinewave", "square", "triangle", "sawtooth"]);
17051
- var percentage = z118.union([z118.string(), z118.number()]).transform((val) => {
17172
+ var wave_shape = z124.enum(["sinewave", "square", "triangle", "sawtooth"]);
17173
+ var percentage = z124.union([z124.string(), z124.number()]).transform((val) => {
17052
17174
  if (typeof val === "string") {
17053
17175
  if (val.endsWith("%")) {
17054
17176
  return parseFloat(val.slice(0, -1)) / 100;
@@ -17057,30 +17179,30 @@ var percentage = z118.union([z118.string(), z118.number()]).transform((val) => {
17057
17179
  }
17058
17180
  return val;
17059
17181
  }).pipe(
17060
- z118.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17182
+ z124.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17061
17183
  );
17062
- var simulation_dc_voltage_source = z118.object({
17063
- type: z118.literal("simulation_voltage_source"),
17184
+ var simulation_dc_voltage_source = z124.object({
17185
+ type: z124.literal("simulation_voltage_source"),
17064
17186
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
17065
17187
  "simulation_voltage_source"
17066
17188
  ),
17067
- is_dc_source: z118.literal(true).optional().default(true),
17068
- positive_source_port_id: z118.string().optional(),
17069
- negative_source_port_id: z118.string().optional(),
17070
- positive_source_net_id: z118.string().optional(),
17071
- negative_source_net_id: z118.string().optional(),
17189
+ is_dc_source: z124.literal(true).optional().default(true),
17190
+ positive_source_port_id: z124.string().optional(),
17191
+ negative_source_port_id: z124.string().optional(),
17192
+ positive_source_net_id: z124.string().optional(),
17193
+ negative_source_net_id: z124.string().optional(),
17072
17194
  voltage
17073
17195
  }).describe("Defines a DC voltage source for simulation");
17074
- var simulation_ac_voltage_source = z118.object({
17075
- type: z118.literal("simulation_voltage_source"),
17196
+ var simulation_ac_voltage_source = z124.object({
17197
+ type: z124.literal("simulation_voltage_source"),
17076
17198
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
17077
17199
  "simulation_voltage_source"
17078
17200
  ),
17079
- is_dc_source: z118.literal(false),
17080
- terminal1_source_port_id: z118.string().optional(),
17081
- terminal2_source_port_id: z118.string().optional(),
17082
- terminal1_source_net_id: z118.string().optional(),
17083
- terminal2_source_net_id: z118.string().optional(),
17201
+ is_dc_source: z124.literal(false),
17202
+ terminal1_source_port_id: z124.string().optional(),
17203
+ terminal2_source_port_id: z124.string().optional(),
17204
+ terminal1_source_net_id: z124.string().optional(),
17205
+ terminal2_source_net_id: z124.string().optional(),
17084
17206
  voltage: voltage.optional(),
17085
17207
  frequency: frequency.optional(),
17086
17208
  peak_to_peak_voltage: voltage.optional(),
@@ -17088,62 +17210,64 @@ var simulation_ac_voltage_source = z118.object({
17088
17210
  phase: rotation.optional(),
17089
17211
  duty_cycle: percentage.optional()
17090
17212
  }).describe("Defines an AC voltage source for simulation");
17091
- var simulation_voltage_source = z118.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
17213
+ var simulation_voltage_source = z124.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
17092
17214
  expectTypesMatch(true);
17093
17215
  expectTypesMatch(true);
17094
17216
  expectTypesMatch(true);
17095
- var experiment_type = z119.union([
17096
- z119.literal("spice_dc_sweep"),
17097
- z119.literal("spice_dc_operating_point"),
17098
- z119.literal("spice_transient_analysis"),
17099
- z119.literal("spice_ac_analysis")
17217
+ var experiment_type = z125.union([
17218
+ z125.literal("spice_dc_sweep"),
17219
+ z125.literal("spice_dc_operating_point"),
17220
+ z125.literal("spice_transient_analysis"),
17221
+ z125.literal("spice_ac_analysis")
17100
17222
  ]);
17101
- var simulation_experiment = z119.object({
17102
- type: z119.literal("simulation_experiment"),
17223
+ var simulation_experiment = z125.object({
17224
+ type: z125.literal("simulation_experiment"),
17103
17225
  simulation_experiment_id: getZodPrefixedIdWithDefault(
17104
17226
  "simulation_experiment"
17105
17227
  ),
17106
- name: z119.string(),
17228
+ name: z125.string(),
17107
17229
  experiment_type,
17108
17230
  time_per_step: duration_ms.optional(),
17109
17231
  start_time_ms: ms.optional(),
17110
17232
  end_time_ms: ms.optional()
17111
17233
  }).describe("Defines a simulation experiment configuration");
17112
17234
  expectTypesMatch(true);
17113
- var simulation_transient_voltage_graph = z120.object({
17114
- type: z120.literal("simulation_transient_voltage_graph"),
17235
+ var simulation_transient_voltage_graph = z126.object({
17236
+ type: z126.literal("simulation_transient_voltage_graph"),
17115
17237
  simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
17116
17238
  "simulation_transient_voltage_graph"
17117
17239
  ),
17118
- simulation_experiment_id: z120.string(),
17119
- timestamps_ms: z120.array(z120.number()).optional(),
17120
- voltage_levels: z120.array(z120.number()),
17121
- schematic_voltage_probe_id: z120.string().optional(),
17122
- subcircuit_connectivity_map_key: z120.string().optional(),
17240
+ simulation_experiment_id: z126.string(),
17241
+ timestamps_ms: z126.array(z126.number()).optional(),
17242
+ voltage_levels: z126.array(z126.number()),
17243
+ schematic_voltage_probe_id: z126.string().optional(),
17244
+ simulation_voltage_probe_id: z126.string().optional(),
17245
+ subcircuit_connectivity_map_key: z126.string().optional(),
17123
17246
  time_per_step: duration_ms,
17124
17247
  start_time_ms: ms,
17125
17248
  end_time_ms: ms,
17126
- name: z120.string().optional()
17249
+ name: z126.string().optional()
17127
17250
  }).describe("Stores voltage measurements over time for a simulation");
17128
17251
  expectTypesMatch(true);
17129
- var simulation_switch = z121.object({
17130
- type: z121.literal("simulation_switch"),
17252
+ var simulation_switch = z127.object({
17253
+ type: z127.literal("simulation_switch"),
17131
17254
  simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
17255
+ source_component_id: z127.string().optional(),
17132
17256
  closes_at: ms.optional(),
17133
17257
  opens_at: ms.optional(),
17134
- starts_closed: z121.boolean().optional(),
17258
+ starts_closed: z127.boolean().optional(),
17135
17259
  switching_frequency: frequency.optional()
17136
17260
  }).describe("Defines a switch for simulation timing control");
17137
17261
  expectTypesMatch(true);
17138
- var simulation_voltage_probe = z122.object({
17139
- type: z122.literal("simulation_voltage_probe"),
17262
+ var simulation_voltage_probe = z128.object({
17263
+ type: z128.literal("simulation_voltage_probe"),
17140
17264
  simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
17141
17265
  "simulation_voltage_probe"
17142
17266
  ),
17143
- source_port_id: z122.string().optional(),
17144
- source_net_id: z122.string().optional(),
17145
- name: z122.string().optional(),
17146
- subcircuit_id: z122.string().optional()
17267
+ source_port_id: z128.string().optional(),
17268
+ source_net_id: z128.string().optional(),
17269
+ name: z128.string().optional(),
17270
+ subcircuit_id: z128.string().optional()
17147
17271
  }).describe(
17148
17272
  "Defines a voltage probe for simulation, connected to a port or a net"
17149
17273
  ).refine(
@@ -17153,7 +17277,18 @@ var simulation_voltage_probe = z122.object({
17153
17277
  }
17154
17278
  );
17155
17279
  expectTypesMatch(true);
17156
- var any_circuit_element = z123.union([
17280
+ var simulation_unknown_experiment_error = z129.object({
17281
+ type: z129.literal("simulation_unknown_experiment_error"),
17282
+ simulation_unknown_experiment_error_id: getZodPrefixedIdWithDefault(
17283
+ "simulation_unknown_experiment_error"
17284
+ ),
17285
+ error_type: z129.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
17286
+ message: z129.string(),
17287
+ simulation_experiment_id: z129.string().optional(),
17288
+ subcircuit_id: z129.string().optional()
17289
+ }).describe("An unknown error occurred during the simulation experiment.");
17290
+ expectTypesMatch(true);
17291
+ var any_circuit_element = z130.union([
17157
17292
  source_trace,
17158
17293
  source_port,
17159
17294
  any_source_component,
@@ -17182,6 +17317,7 @@ var any_circuit_element = z123.union([
17182
17317
  source_project_metadata,
17183
17318
  source_trace_not_connected_error,
17184
17319
  source_pin_missing_trace_warning,
17320
+ unknown_error_finding_part,
17185
17321
  pcb_component,
17186
17322
  pcb_hole,
17187
17323
  pcb_missing_footprint_error,
@@ -17198,11 +17334,13 @@ var any_circuit_element = z123.union([
17198
17334
  pcb_smtpad,
17199
17335
  pcb_solder_paste,
17200
17336
  pcb_board,
17337
+ pcb_panel,
17201
17338
  pcb_group,
17202
17339
  pcb_trace_hint,
17203
17340
  pcb_silkscreen_line,
17204
17341
  pcb_silkscreen_path,
17205
17342
  pcb_silkscreen_text,
17343
+ pcb_copper_text,
17206
17344
  pcb_silkscreen_rect,
17207
17345
  pcb_silkscreen_circle,
17208
17346
  pcb_silkscreen_oval,
@@ -17230,8 +17368,10 @@ var any_circuit_element = z123.union([
17230
17368
  pcb_thermal_spoke,
17231
17369
  pcb_copper_pour,
17232
17370
  pcb_component_outside_board_error,
17371
+ pcb_component_invalid_layer_error,
17233
17372
  pcb_courtyard_rect,
17234
17373
  pcb_courtyard_outline,
17374
+ pcb_courtyard_polygon,
17235
17375
  schematic_box,
17236
17376
  schematic_text,
17237
17377
  schematic_line,
@@ -17249,6 +17389,7 @@ var any_circuit_element = z123.union([
17249
17389
  schematic_voltage_probe,
17250
17390
  schematic_manual_edit_conflict_warning,
17251
17391
  schematic_group,
17392
+ schematic_sheet,
17252
17393
  schematic_table,
17253
17394
  schematic_table_cell,
17254
17395
  cad_component,
@@ -17256,7 +17397,8 @@ var any_circuit_element = z123.union([
17256
17397
  simulation_experiment,
17257
17398
  simulation_transient_voltage_graph,
17258
17399
  simulation_switch,
17259
- simulation_voltage_probe
17400
+ simulation_voltage_probe,
17401
+ simulation_unknown_experiment_error
17260
17402
  ]);
17261
17403
  expectTypesMatch(true);
17262
17404
  expectStringUnionsMatch(true);
@@ -17271,7 +17413,7 @@ import { z as z710 } from "zod";
17271
17413
  import { z as z910 } from "zod";
17272
17414
  import "zod";
17273
17415
  import "zod";
17274
- import { z as z125 } from "zod";
17416
+ import { z as z1210 } from "zod";
17275
17417
  import { z as z132 } from "zod";
17276
17418
  import { z as z142 } from "zod";
17277
17419
  import { z as z152 } from "zod";
@@ -17447,12 +17589,12 @@ function convertMilToMm(value) {
17447
17589
  }
17448
17590
  return Number(value);
17449
17591
  }
17450
- var lengthInMm = z124.union([z124.string(), z124.number()]).transform((val) => convertMilToMm(val));
17451
- var extendDipDef = (newDefaults) => z124.object({
17452
- fn: z124.string(),
17453
- num_pins: z124.number().optional().default(6),
17454
- wide: z124.boolean().optional(),
17455
- narrow: z124.boolean().optional(),
17592
+ var lengthInMm = z131.union([z131.string(), z131.number()]).transform((val) => convertMilToMm(val));
17593
+ var extendDipDef = (newDefaults) => z131.object({
17594
+ fn: z131.string(),
17595
+ num_pins: z131.number().optional().default(6),
17596
+ wide: z131.boolean().optional(),
17597
+ narrow: z131.boolean().optional(),
17456
17598
  w: lengthInMm.optional(),
17457
17599
  p: lengthInMm.default(newDefaults.p ?? "2.54mm"),
17458
17600
  id: lengthInMm.optional(),
@@ -18889,24 +19031,24 @@ function determinePinlabelAnchorSide({
18889
19031
  }
18890
19032
  return pinlabelAnchorSide;
18891
19033
  }
18892
- var pinrow_def = z125.object({
18893
- fn: z125.string(),
18894
- num_pins: z125.number().optional().default(6),
18895
- rows: z125.union([z125.string(), z125.number()]).transform((val) => Number(val)).optional().default(1).describe("number of rows"),
19034
+ var pinrow_def = z1210.object({
19035
+ fn: z1210.string(),
19036
+ num_pins: z1210.number().optional().default(6),
19037
+ rows: z1210.union([z1210.string(), z1210.number()]).transform((val) => Number(val)).optional().default(1).describe("number of rows"),
18896
19038
  p: length.default("0.1in").describe("pitch"),
18897
19039
  id: length.default("1.0mm").describe("inner diameter"),
18898
19040
  od: length.default("1.5mm").describe("outer diameter"),
18899
- male: z125.boolean().optional().describe("for male pin headers"),
18900
- female: z125.boolean().optional().describe("for female pin headers"),
18901
- pinlabeltextalignleft: z125.boolean().optional().default(false),
18902
- pinlabeltextaligncenter: z125.boolean().optional().default(false),
18903
- pinlabeltextalignright: z125.boolean().optional().default(false),
18904
- pinlabelverticallyinverted: z125.boolean().optional().default(false),
18905
- pinlabelorthogonal: z125.boolean().optional().default(false),
18906
- nosquareplating: z125.boolean().optional().default(false).describe("do not use rectangular pad for pin 1"),
18907
- nopinlabels: z125.boolean().optional().default(false).describe("omit silkscreen pin labels"),
18908
- doublesidedpinlabel: z125.boolean().optional().default(false).describe("add silkscreen pins in top and bottom layers"),
18909
- bottomsidepinlabel: z125.boolean().optional().default(false).describe(
19041
+ male: z1210.boolean().optional().describe("for male pin headers"),
19042
+ female: z1210.boolean().optional().describe("for female pin headers"),
19043
+ pinlabeltextalignleft: z1210.boolean().optional().default(false),
19044
+ pinlabeltextaligncenter: z1210.boolean().optional().default(false),
19045
+ pinlabeltextalignright: z1210.boolean().optional().default(false),
19046
+ pinlabelverticallyinverted: z1210.boolean().optional().default(false),
19047
+ pinlabelorthogonal: z1210.boolean().optional().default(false),
19048
+ nosquareplating: z1210.boolean().optional().default(false).describe("do not use rectangular pad for pin 1"),
19049
+ nopinlabels: z1210.boolean().optional().default(false).describe("omit silkscreen pin labels"),
19050
+ doublesidedpinlabel: z1210.boolean().optional().default(false).describe("add silkscreen pins in top and bottom layers"),
19051
+ bottomsidepinlabel: z1210.boolean().optional().default(false).describe(
18910
19052
  "place the silkscreen reference text on the bottom layer instead of top"
18911
19053
  )
18912
19054
  }).transform((data) => {
@@ -18920,7 +19062,7 @@ var pinrow_def = z125.object({
18920
19062
  }).superRefine((data, ctx) => {
18921
19063
  if (data.male && data.female) {
18922
19064
  ctx.addIssue({
18923
- code: z125.ZodIssueCode.custom,
19065
+ code: z1210.ZodIssueCode.custom,
18924
19066
  message: "'male' and 'female' cannot both be true; it should be male or female.",
18925
19067
  path: ["male", "female"]
18926
19068
  });
@@ -24552,17 +24694,17 @@ var svgPathPoints = normalizeOnY([
24552
24694
  ]);
24553
24695
  var DIP_PIN_HEIGHT = 5.47;
24554
24696
  var heightAboveSurface = 0.5;
24555
- var DipPinLeg = ({ x, y, z: z126 }) => {
24697
+ var DipPinLeg = ({ x, y, z: z133 }) => {
24556
24698
  const isRotated = x > 0;
24557
24699
  return /* @__PURE__ */ jsxs(Fragment22, { children: [
24558
- /* @__PURE__ */ jsx5(Translate, { offset: { x: x + 0.25 / 2, y, z: z126 }, children: /* @__PURE__ */ jsx5(Rotate, { rotation: ["-90deg", 0, "90deg"], children: /* @__PURE__ */ jsx5(ExtrudeLinear, { height: 0.25, children: /* @__PURE__ */ jsx5(Polygon, { points: svgPathPoints.map((p) => [p.x, p.y]) }) }) }) }),
24700
+ /* @__PURE__ */ jsx5(Translate, { offset: { x: x + 0.25 / 2, y, z: z133 }, children: /* @__PURE__ */ jsx5(Rotate, { rotation: ["-90deg", 0, "90deg"], children: /* @__PURE__ */ jsx5(ExtrudeLinear, { height: 0.25, children: /* @__PURE__ */ jsx5(Polygon, { points: svgPathPoints.map((p) => [p.x, p.y]) }) }) }) }),
24559
24701
  /* @__PURE__ */ jsx5(
24560
24702
  Translate,
24561
24703
  {
24562
24704
  offset: {
24563
24705
  x,
24564
24706
  y: y + (isRotated ? 1 : -1),
24565
- z: z126
24707
+ z: z133
24566
24708
  },
24567
24709
  children: /* @__PURE__ */ jsx5(Rotate, { rotation: ["-90deg", "90deg", isRotated ? "180deg" : "0deg"], children: /* @__PURE__ */ jsx5(ExtrudeLinear, { height: 2, children: /* @__PURE__ */ jsx5(
24568
24710
  Polygon,
@@ -26647,7 +26789,7 @@ import * as THREE14 from "three";
26647
26789
  // package.json
26648
26790
  var package_default = {
26649
26791
  name: "@tscircuit/3d-viewer",
26650
- version: "0.0.423",
26792
+ version: "0.0.424",
26651
26793
  main: "./dist/index.js",
26652
26794
  module: "./dist/index.js",
26653
26795
  type: "module",
@@ -26708,7 +26850,7 @@ var package_default = {
26708
26850
  "@vitejs/plugin-react": "^4.3.4",
26709
26851
  "bun-match-svg": "^0.0.9",
26710
26852
  "bun-types": "1.2.1",
26711
- "circuit-json": "0.0.279",
26853
+ "circuit-json": "0.0.300",
26712
26854
  "circuit-to-svg": "^0.0.179",
26713
26855
  debug: "^4.4.0",
26714
26856
  "jscad-electronics": "^0.0.48",
@@ -27359,11 +27501,11 @@ var useCameraController = ({
27359
27501
  }) => {
27360
27502
  const controlsRef = useRef5(null);
27361
27503
  const baseDistance = useMemo14(() => {
27362
- const [x, y, z126] = initialCameraPosition ?? [5, 5, 5];
27504
+ const [x, y, z133] = initialCameraPosition ?? [5, 5, 5];
27363
27505
  const distance2 = Math.hypot(
27364
27506
  x - defaultTarget.x,
27365
27507
  y - defaultTarget.y,
27366
- z126 - defaultTarget.z
27508
+ z133 - defaultTarget.z
27367
27509
  );
27368
27510
  return distance2 > 0 ? distance2 : 5;
27369
27511
  }, [initialCameraPosition, defaultTarget]);
@@ -29080,7 +29222,9 @@ var BoardGeomBuilder = class {
29080
29222
  if (this.boardClipGeom) {
29081
29223
  pourGeom = (0, import_booleans4.intersect)(this.boardClipGeom, pourGeom);
29082
29224
  }
29083
- const coloredPourGeom = (0, import_colors6.colorize)(colors.copper, pourGeom);
29225
+ const covered = pour.covered_with_solder_mask !== false;
29226
+ const pourMaterialColor = covered ? tracesMaterialColors[this.board.material] ?? colors.fr4GreenSolderWithMask : colors.copper;
29227
+ const coloredPourGeom = (0, import_colors6.colorize)(pourMaterialColor, pourGeom);
29084
29228
  this.copperPourGeoms.push(coloredPourGeom);
29085
29229
  }
29086
29230
  }
@@ -30907,7 +31051,6 @@ function createManifoldBoard(Manifold, CrossSection, boardData, pcbThickness, ma
30907
31051
 
30908
31052
  // src/utils/manifold/process-copper-pours.ts
30909
31053
  import * as THREE23 from "three";
30910
- var COPPER_COLOR4 = new THREE23.Color(...colors.copper);
30911
31054
  var arePointsClockwise4 = (points) => {
30912
31055
  let area = 0;
30913
31056
  for (let i = 0; i < points.length; i++) {
@@ -30973,7 +31116,7 @@ function ringToPoints2(ring2, arcSegments) {
30973
31116
  }
30974
31117
  return allPoints;
30975
31118
  }
30976
- function processCopperPoursForManifold(Manifold, CrossSection, circuitJson, pcbThickness, manifoldInstancesForCleanup, holeUnion, boardClipVolume) {
31119
+ function processCopperPoursForManifold(Manifold, CrossSection, circuitJson, pcbThickness, manifoldInstancesForCleanup, boardMaterial, holeUnion, boardClipVolume) {
30977
31120
  const copperPourGeoms = [];
30978
31121
  const copperPours = circuitJson.filter(
30979
31122
  (e) => e.type === "pcb_copper_pour"
@@ -31065,11 +31208,14 @@ function processCopperPoursForManifold(Manifold, CrossSection, circuitJson, pcbT
31065
31208
  manifoldInstancesForCleanup.push(clipped);
31066
31209
  pourOp = clipped;
31067
31210
  }
31211
+ const covered = pour.covered_with_solder_mask !== false;
31212
+ const pourColorArr = covered ? tracesMaterialColors[boardMaterial] ?? colors.fr4GreenSolderWithMask : colors.copper;
31213
+ const pourColor = new THREE23.Color(...pourColorArr);
31068
31214
  const threeGeom = manifoldMeshToThreeGeometry(pourOp.getMesh());
31069
31215
  copperPourGeoms.push({
31070
31216
  key: `coppour-${pour.pcb_copper_pour_id}`,
31071
31217
  geometry: threeGeom,
31072
- color: COPPER_COLOR4
31218
+ color: pourColor
31073
31219
  });
31074
31220
  }
31075
31221
  }
@@ -31364,6 +31510,7 @@ var useManifoldBoardBuilder = (manifoldJSModule, circuitJson) => {
31364
31510
  circuitJson,
31365
31511
  currentPcbThickness,
31366
31512
  manifoldInstancesForCleanup.current,
31513
+ boardData.material,
31367
31514
  holeUnion,
31368
31515
  boardClipVolume
31369
31516
  );