@tscircuit/3d-viewer 0.0.370 → 0.0.372

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 +587 -563
  2. package/package.json +3 -3
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, z102) => [x, y, z102],
148
- fromValues: (x, y, z102) => [x, y, z102]
147
+ create: (x, y, z103) => [x, y, z103],
148
+ fromValues: (x, y, z103) => [x, y, z103]
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, z102] = axis;
536
- const lengthSquared = x * x + y * y + z102 * z102;
535
+ let [x, y, z103] = axis;
536
+ const lengthSquared = x * x + y * y + z103 * z103;
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
- z102 *= len;
543
+ z103 *= 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 + z102 * s;
549
- out[2] = z102 * x * t - y * s;
548
+ out[1] = y * x * t + z103 * s;
549
+ out[2] = z103 * x * t - y * s;
550
550
  out[3] = 0;
551
- out[4] = x * y * t - z102 * s;
551
+ out[4] = x * y * t - z103 * s;
552
552
  out[5] = y * y * t + c;
553
- out[6] = z102 * y * t + x * s;
553
+ out[6] = z103 * y * t + x * s;
554
554
  out[7] = 0;
555
- out[8] = x * z102 * t + y * s;
556
- out[9] = y * z102 * t - x * s;
557
- out[10] = z102 * z102 * t + c;
555
+ out[8] = x * z103 * t + y * s;
556
+ out[9] = y * z103 * t - x * s;
557
+ out[10] = z103 * z103 * 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 z102 = b[2] - a[2];
812
- return Math.sqrt(x * x + y * y + z102 * z102);
811
+ const z103 = b[2] - a[2];
812
+ return Math.sqrt(x * x + y * y + z103 * z103);
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, z102) => {
860
+ var fromValues = (x, y, z103) => {
861
861
  const out = create();
862
862
  out[0] = x;
863
863
  out[1] = y;
864
- out[2] = z102;
864
+ out[2] = z103;
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, z102 = 0) => {
875
+ var fromVector2 = (out, vector, z103 = 0) => {
876
876
  out[0] = vector[0];
877
877
  out[1] = vector[1];
878
- out[2] = z102;
878
+ out[2] = z103;
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 z102 = vector[2];
893
- return Math.sqrt(x * x + y * y + z102 * z102);
892
+ const z103 = vector[2];
893
+ return Math.sqrt(x * x + y * y + z103 * z103);
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 z102 = vector[2];
977
- let len = x * x + y * y + z102 * z102;
976
+ const z103 = vector[2];
977
+ let len = x * x + y * y + z103 * z103;
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] = z102 * len;
983
+ out[2] = z103 * 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 z102 = b[2] - a[2];
1108
- return x * x + y * y + z102 * z102;
1107
+ const z103 = b[2] - a[2];
1108
+ return x * x + y * y + z103 * z103;
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 z102 = vector[2];
1122
- return x * x + y * y + z102 * z102;
1121
+ const z103 = vector[2];
1122
+ return x * x + y * y + z103 * z103;
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 z102 = vector[2];
1159
- let w = matrix[3] * x + matrix[7] * y + matrix[11] * z102 + matrix[15];
1158
+ const z103 = vector[2];
1159
+ let w = matrix[3] * x + matrix[7] * y + matrix[11] * z103 + matrix[15];
1160
1160
  w = w || 1;
1161
- out[0] = (matrix[0] * x + matrix[4] * y + matrix[8] * z102 + matrix[12]) / w;
1162
- out[1] = (matrix[1] * x + matrix[5] * y + matrix[9] * z102 + matrix[13]) / w;
1163
- out[2] = (matrix[2] * x + matrix[6] * y + matrix[10] * z102 + matrix[14]) / w;
1161
+ out[0] = (matrix[0] * x + matrix[4] * y + matrix[8] * z103 + matrix[12]) / w;
1162
+ out[1] = (matrix[1] * x + matrix[5] * y + matrix[9] * z103 + matrix[13]) / w;
1163
+ out[2] = (matrix[2] * x + matrix[6] * y + matrix[10] * z103 + 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 z102 = matrix[0] * matrix[5] - matrix[4] * matrix[1];
1366
- const d = x * matrix[2] + y * matrix[6] + z102 * matrix[10];
1365
+ const z103 = matrix[0] * matrix[5] - matrix[4] * matrix[1];
1366
+ const d = x * matrix[2] + y * matrix[6] + z103 * 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, z102] = axis;
1469
- const lengthSquared = x * x + y * y + z102 * z102;
1468
+ let [x, y, z103] = axis;
1469
+ const lengthSquared = x * x + y * y + z103 * z103;
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
- z102 *= len;
1476
+ z103 *= 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 + z102 * s;
1494
- const b02 = z102 * x * t - y * s;
1495
- const b10 = x * y * t - z102 * s;
1493
+ const b01 = y * x * t + z103 * s;
1494
+ const b02 = z103 * x * t - y * s;
1495
+ const b10 = x * y * t - z103 * s;
1496
1496
  const b11 = y * y * t + c;
1497
- const b12 = z102 * y * t + x * s;
1498
- const b20 = x * z102 * t + y * s;
1499
- const b21 = y * z102 * t - x * s;
1500
- const b22 = z102 * z102 * t + c;
1497
+ const b12 = z103 * y * t + x * s;
1498
+ const b20 = x * z103 * t + y * s;
1499
+ const b21 = y * z103 * t - x * s;
1500
+ const b22 = z103 * z103 * 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 z102 = dimensions[2];
1652
+ const z103 = 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] * z102;
1662
- out[9] = matrix[9] * z102;
1663
- out[10] = matrix[10] * z102;
1664
- out[11] = matrix[11] * z102;
1661
+ out[8] = matrix[8] * z103;
1662
+ out[9] = matrix[9] * z103;
1663
+ out[10] = matrix[10] * z103;
1664
+ out[11] = matrix[11] * z103;
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 translate5 = (out, matrix, offsets) => {
1716
1716
  const x = offsets[0];
1717
1717
  const y = offsets[1];
1718
- const z102 = offsets[2];
1718
+ const z103 = 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] * z102 + matrix[12];
1733
- out[13] = matrix[1] * x + matrix[5] * y + matrix[9] * z102 + matrix[13];
1734
- out[14] = matrix[2] * x + matrix[6] * y + matrix[10] * z102 + matrix[14];
1735
- out[15] = matrix[3] * x + matrix[7] * y + matrix[11] * z102 + matrix[15];
1732
+ out[12] = matrix[0] * x + matrix[4] * y + matrix[8] * z103 + matrix[12];
1733
+ out[13] = matrix[1] * x + matrix[5] * y + matrix[9] * z103 + matrix[13];
1734
+ out[14] = matrix[2] * x + matrix[6] * y + matrix[10] * z103 + matrix[14];
1735
+ out[15] = matrix[3] * x + matrix[7] * y + matrix[11] * z103 + 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 * z102 + matrix[12];
1762
- out[13] = a01 * x + a11 * y + a21 * z102 + matrix[13];
1763
- out[14] = a02 * x + a12 * y + a22 * z102 + matrix[14];
1764
- out[15] = a03 * x + a13 * y + a23 * z102 + matrix[15];
1761
+ out[12] = a00 * x + a10 * y + a20 * z103 + matrix[12];
1762
+ out[13] = a01 * x + a11 * y + a21 * z103 + matrix[13];
1763
+ out[14] = a02 * x + a12 * y + a22 * z103 + matrix[14];
1764
+ out[15] = a03 * x + a13 * y + a23 * z103 + 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, z102, w) => {
3834
+ var fromValues = (x, y, z103, w) => {
3835
3835
  const out = create();
3836
3836
  out[0] = x;
3837
3837
  out[1] = y;
3838
- out[2] = z102;
3838
+ out[2] = z103;
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 z102 = point2[2] - a * plane[2];
3997
- return vec3.fromValues(x, y, z102);
3996
+ const z103 = point2[2] - a * plane[2];
3997
+ return vec3.fromValues(x, y, z103);
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, z102, w] = vector;
4302
- out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z102 + matrix[12] * w;
4303
- out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z102 + matrix[13] * w;
4304
- out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z102 + matrix[14] * w;
4305
- out[3] = matrix[3] * x + matrix[7] * y + matrix[11] * z102 + matrix[15] * w;
4301
+ const [x, y, z103, w] = vector;
4302
+ out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z103 + matrix[12] * w;
4303
+ out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z103 + matrix[13] * w;
4304
+ out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z103 + matrix[14] * w;
4305
+ out[3] = matrix[3] * x + matrix[7] * y + matrix[11] * z103 + 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 z102 = out[2] - maxz[2];
4368
- out[3] = Math.sqrt(x * x + y * y + z102 * z102);
4367
+ const z103 = out[2] - maxz[2];
4368
+ out[3] = Math.sqrt(x * x + y * y + z103 * z103);
4369
4369
  cache.set(polygon2, out);
4370
4370
  return out;
4371
4371
  };
@@ -14416,7 +14416,7 @@ var ContainerWithTooltip_default = ContainerWithTooltip;
14416
14416
 
14417
14417
  // src/hooks/use-global-obj-loader.ts
14418
14418
  import { useState as useState2, useEffect as useEffect3 } from "react";
14419
- import { MTLLoader, OBJLoader } from "three-stdlib";
14419
+ import { MTLLoader, OBJLoader, VRMLLoader } from "three-stdlib";
14420
14420
  if (typeof window !== "undefined" && !window.TSCIRCUIT_OBJ_LOADER_CACHE) {
14421
14421
  window.TSCIRCUIT_OBJ_LOADER_CACHE = /* @__PURE__ */ new Map();
14422
14422
  }
@@ -14429,6 +14429,10 @@ function useGlobalObjLoader(url) {
14429
14429
  let hasUrlChanged = false;
14430
14430
  async function loadAndParseObj() {
14431
14431
  try {
14432
+ if (cleanUrl.endsWith(".wrl")) {
14433
+ const loader = new VRMLLoader();
14434
+ return await loader.loadAsync(cleanUrl);
14435
+ }
14432
14436
  const response = await fetch(cleanUrl);
14433
14437
  if (!response.ok) {
14434
14438
  throw new Error(
@@ -14651,7 +14655,7 @@ var import_jscad_planner = __toESM(require_dist(), 1);
14651
14655
  var import_modeling2 = __toESM(require_src(), 1);
14652
14656
 
14653
14657
  // node_modules/@tscircuit/footprinter/dist/index.js
14654
- import { z as z101 } from "zod";
14658
+ import { z as z102 } from "zod";
14655
14659
 
14656
14660
  // node_modules/@tscircuit/mm/dist/index.js
14657
14661
  var unitToMm = {
@@ -14780,6 +14784,7 @@ import { z as z97 } from "zod";
14780
14784
  import { z as z98 } from "zod";
14781
14785
  import { z as z99 } from "zod";
14782
14786
  import { z as z100 } from "zod";
14787
+ import { z as z101 } from "zod";
14783
14788
  var unitMappings = {
14784
14789
  Hz: {
14785
14790
  baseUnit: "Hz",
@@ -15391,9 +15396,6 @@ var source_manually_placed_via = z42.object({
15391
15396
  source_manually_placed_via_id: z42.string(),
15392
15397
  source_group_id: z42.string(),
15393
15398
  source_net_id: z42.string(),
15394
- x: distance,
15395
- y: distance,
15396
- layers: z42.array(layer_ref),
15397
15399
  subcircuit_id: z42.string().optional(),
15398
15400
  source_trace_id: z42.string().optional()
15399
15401
  }).describe("Defines a via that is manually placed in the source domain");
@@ -15691,43 +15693,58 @@ var schematic_table_cell = z59.object({
15691
15693
  subcircuit_id: z59.string().optional()
15692
15694
  }).describe("Defines a cell within a schematic_table");
15693
15695
  expectTypesMatch(true);
15694
- var pcb_route_hint = z60.object({
15696
+ var point_with_bulge = z60.object({
15695
15697
  x: distance,
15696
15698
  y: distance,
15697
- via: z60.boolean().optional(),
15698
- via_to_layer: layer_ref.optional()
15699
+ bulge: z60.number().optional()
15699
15700
  });
15700
- var pcb_route_hints = z60.array(pcb_route_hint);
15701
15701
  expectTypesMatch(true);
15702
+ var ring = z60.object({
15703
+ vertices: z60.array(point_with_bulge)
15704
+ });
15702
15705
  expectTypesMatch(true);
15703
- var route_hint_point = z61.object({
15706
+ var brep_shape = z60.object({
15707
+ outer_ring: ring,
15708
+ inner_rings: z60.array(ring).default([])
15709
+ });
15710
+ expectTypesMatch(true);
15711
+ var pcb_route_hint = z61.object({
15704
15712
  x: distance,
15705
15713
  y: distance,
15706
15714
  via: z61.boolean().optional(),
15715
+ via_to_layer: layer_ref.optional()
15716
+ });
15717
+ var pcb_route_hints = z61.array(pcb_route_hint);
15718
+ expectTypesMatch(true);
15719
+ expectTypesMatch(true);
15720
+ var route_hint_point = z62.object({
15721
+ x: distance,
15722
+ y: distance,
15723
+ via: z62.boolean().optional(),
15707
15724
  to_layer: layer_ref.optional(),
15708
15725
  trace_width: distance.optional()
15709
15726
  });
15710
15727
  expectTypesMatch(true);
15711
- var pcb_component = z62.object({
15712
- type: z62.literal("pcb_component"),
15728
+ var pcb_component = z63.object({
15729
+ type: z63.literal("pcb_component"),
15713
15730
  pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
15714
- source_component_id: z62.string(),
15731
+ source_component_id: z63.string(),
15715
15732
  center: point,
15716
15733
  layer: layer_ref,
15717
15734
  rotation,
15718
15735
  width: length,
15719
15736
  height: length,
15720
- subcircuit_id: z62.string().optional(),
15721
- pcb_group_id: z62.string().optional()
15737
+ subcircuit_id: z63.string().optional(),
15738
+ pcb_group_id: z63.string().optional()
15722
15739
  }).describe("Defines a component on the PCB");
15723
15740
  expectTypesMatch(true);
15724
- var pcb_hole_circle_or_square = z63.object({
15725
- type: z63.literal("pcb_hole"),
15741
+ var pcb_hole_circle_or_square = z64.object({
15742
+ type: z64.literal("pcb_hole"),
15726
15743
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
15727
- pcb_group_id: z63.string().optional(),
15728
- subcircuit_id: z63.string().optional(),
15729
- hole_shape: z63.enum(["circle", "square"]),
15730
- hole_diameter: z63.number(),
15744
+ pcb_group_id: z64.string().optional(),
15745
+ subcircuit_id: z64.string().optional(),
15746
+ hole_shape: z64.enum(["circle", "square"]),
15747
+ hole_diameter: z64.number(),
15731
15748
  x: distance,
15732
15749
  y: distance
15733
15750
  });
@@ -15735,14 +15752,14 @@ var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
15735
15752
  "Defines a circular or square hole on the PCB"
15736
15753
  );
15737
15754
  expectTypesMatch(true);
15738
- var pcb_hole_oval = z63.object({
15739
- type: z63.literal("pcb_hole"),
15755
+ var pcb_hole_oval = z64.object({
15756
+ type: z64.literal("pcb_hole"),
15740
15757
  pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
15741
- pcb_group_id: z63.string().optional(),
15742
- subcircuit_id: z63.string().optional(),
15743
- hole_shape: z63.literal("oval"),
15744
- hole_width: z63.number(),
15745
- hole_height: z63.number(),
15758
+ pcb_group_id: z64.string().optional(),
15759
+ subcircuit_id: z64.string().optional(),
15760
+ hole_shape: z64.literal("oval"),
15761
+ hole_width: z64.number(),
15762
+ hole_height: z64.number(),
15746
15763
  x: distance,
15747
15764
  y: distance
15748
15765
  });
@@ -15751,97 +15768,97 @@ var pcb_hole_oval_shape = pcb_hole_oval.describe(
15751
15768
  );
15752
15769
  expectTypesMatch(true);
15753
15770
  var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval);
15754
- var pcb_plated_hole_circle = z64.object({
15755
- type: z64.literal("pcb_plated_hole"),
15756
- shape: z64.literal("circle"),
15757
- pcb_group_id: z64.string().optional(),
15758
- subcircuit_id: z64.string().optional(),
15759
- outer_diameter: z64.number(),
15760
- hole_diameter: z64.number(),
15771
+ var pcb_plated_hole_circle = z65.object({
15772
+ type: z65.literal("pcb_plated_hole"),
15773
+ shape: z65.literal("circle"),
15774
+ pcb_group_id: z65.string().optional(),
15775
+ subcircuit_id: z65.string().optional(),
15776
+ outer_diameter: z65.number(),
15777
+ hole_diameter: z65.number(),
15761
15778
  x: distance,
15762
15779
  y: distance,
15763
- layers: z64.array(layer_ref),
15764
- port_hints: z64.array(z64.string()).optional(),
15765
- pcb_component_id: z64.string().optional(),
15766
- pcb_port_id: z64.string().optional(),
15780
+ layers: z65.array(layer_ref),
15781
+ port_hints: z65.array(z65.string()).optional(),
15782
+ pcb_component_id: z65.string().optional(),
15783
+ pcb_port_id: z65.string().optional(),
15767
15784
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
15768
15785
  });
15769
- var pcb_plated_hole_oval = z64.object({
15770
- type: z64.literal("pcb_plated_hole"),
15771
- shape: z64.enum(["oval", "pill"]),
15772
- pcb_group_id: z64.string().optional(),
15773
- subcircuit_id: z64.string().optional(),
15774
- outer_width: z64.number(),
15775
- outer_height: z64.number(),
15776
- hole_width: z64.number(),
15777
- hole_height: z64.number(),
15786
+ var pcb_plated_hole_oval = z65.object({
15787
+ type: z65.literal("pcb_plated_hole"),
15788
+ shape: z65.enum(["oval", "pill"]),
15789
+ pcb_group_id: z65.string().optional(),
15790
+ subcircuit_id: z65.string().optional(),
15791
+ outer_width: z65.number(),
15792
+ outer_height: z65.number(),
15793
+ hole_width: z65.number(),
15794
+ hole_height: z65.number(),
15778
15795
  x: distance,
15779
15796
  y: distance,
15780
- layers: z64.array(layer_ref),
15781
- port_hints: z64.array(z64.string()).optional(),
15782
- pcb_component_id: z64.string().optional(),
15783
- pcb_port_id: z64.string().optional(),
15797
+ layers: z65.array(layer_ref),
15798
+ port_hints: z65.array(z65.string()).optional(),
15799
+ pcb_component_id: z65.string().optional(),
15800
+ pcb_port_id: z65.string().optional(),
15784
15801
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
15785
15802
  });
15786
- var pcb_circular_hole_with_rect_pad = z64.object({
15787
- type: z64.literal("pcb_plated_hole"),
15788
- shape: z64.literal("circular_hole_with_rect_pad"),
15789
- pcb_group_id: z64.string().optional(),
15790
- subcircuit_id: z64.string().optional(),
15791
- hole_shape: z64.literal("circle"),
15792
- pad_shape: z64.literal("rect"),
15793
- hole_diameter: z64.number(),
15794
- rect_pad_width: z64.number(),
15795
- rect_pad_height: z64.number(),
15803
+ var pcb_circular_hole_with_rect_pad = z65.object({
15804
+ type: z65.literal("pcb_plated_hole"),
15805
+ shape: z65.literal("circular_hole_with_rect_pad"),
15806
+ pcb_group_id: z65.string().optional(),
15807
+ subcircuit_id: z65.string().optional(),
15808
+ hole_shape: z65.literal("circle"),
15809
+ pad_shape: z65.literal("rect"),
15810
+ hole_diameter: z65.number(),
15811
+ rect_pad_width: z65.number(),
15812
+ rect_pad_height: z65.number(),
15796
15813
  x: distance,
15797
15814
  y: distance,
15798
- layers: z64.array(layer_ref),
15799
- port_hints: z64.array(z64.string()).optional(),
15800
- pcb_component_id: z64.string().optional(),
15801
- pcb_port_id: z64.string().optional(),
15815
+ layers: z65.array(layer_ref),
15816
+ port_hints: z65.array(z65.string()).optional(),
15817
+ pcb_component_id: z65.string().optional(),
15818
+ pcb_port_id: z65.string().optional(),
15802
15819
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
15803
15820
  });
15804
- var pcb_pill_hole_with_rect_pad = z64.object({
15805
- type: z64.literal("pcb_plated_hole"),
15806
- shape: z64.literal("pill_hole_with_rect_pad"),
15807
- pcb_group_id: z64.string().optional(),
15808
- subcircuit_id: z64.string().optional(),
15809
- hole_shape: z64.literal("pill"),
15810
- pad_shape: z64.literal("rect"),
15811
- hole_width: z64.number(),
15812
- hole_height: z64.number(),
15813
- rect_pad_width: z64.number(),
15814
- rect_pad_height: z64.number(),
15821
+ var pcb_pill_hole_with_rect_pad = z65.object({
15822
+ type: z65.literal("pcb_plated_hole"),
15823
+ shape: z65.literal("pill_hole_with_rect_pad"),
15824
+ pcb_group_id: z65.string().optional(),
15825
+ subcircuit_id: z65.string().optional(),
15826
+ hole_shape: z65.literal("pill"),
15827
+ pad_shape: z65.literal("rect"),
15828
+ hole_width: z65.number(),
15829
+ hole_height: z65.number(),
15830
+ rect_pad_width: z65.number(),
15831
+ rect_pad_height: z65.number(),
15815
15832
  x: distance,
15816
15833
  y: distance,
15817
- layers: z64.array(layer_ref),
15818
- port_hints: z64.array(z64.string()).optional(),
15819
- pcb_component_id: z64.string().optional(),
15820
- pcb_port_id: z64.string().optional(),
15834
+ layers: z65.array(layer_ref),
15835
+ port_hints: z65.array(z65.string()).optional(),
15836
+ pcb_component_id: z65.string().optional(),
15837
+ pcb_port_id: z65.string().optional(),
15821
15838
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
15822
15839
  });
15823
- var pcb_rotated_pill_hole_with_rect_pad = z64.object({
15824
- type: z64.literal("pcb_plated_hole"),
15825
- shape: z64.literal("rotated_pill_hole_with_rect_pad"),
15826
- pcb_group_id: z64.string().optional(),
15827
- subcircuit_id: z64.string().optional(),
15828
- hole_shape: z64.literal("rotated_pill"),
15829
- pad_shape: z64.literal("rect"),
15830
- hole_width: z64.number(),
15831
- hole_height: z64.number(),
15840
+ var pcb_rotated_pill_hole_with_rect_pad = z65.object({
15841
+ type: z65.literal("pcb_plated_hole"),
15842
+ shape: z65.literal("rotated_pill_hole_with_rect_pad"),
15843
+ pcb_group_id: z65.string().optional(),
15844
+ subcircuit_id: z65.string().optional(),
15845
+ hole_shape: z65.literal("rotated_pill"),
15846
+ pad_shape: z65.literal("rect"),
15847
+ hole_width: z65.number(),
15848
+ hole_height: z65.number(),
15832
15849
  hole_ccw_rotation: rotation,
15833
- rect_pad_width: z64.number(),
15834
- rect_pad_height: z64.number(),
15850
+ rect_pad_width: z65.number(),
15851
+ rect_pad_height: z65.number(),
15835
15852
  rect_ccw_rotation: rotation,
15836
15853
  x: distance,
15837
15854
  y: distance,
15838
- layers: z64.array(layer_ref),
15839
- port_hints: z64.array(z64.string()).optional(),
15840
- pcb_component_id: z64.string().optional(),
15841
- pcb_port_id: z64.string().optional(),
15855
+ layers: z65.array(layer_ref),
15856
+ port_hints: z65.array(z65.string()).optional(),
15857
+ pcb_component_id: z65.string().optional(),
15858
+ pcb_port_id: z65.string().optional(),
15842
15859
  pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole")
15843
15860
  });
15844
- var pcb_plated_hole = z64.union([
15861
+ var pcb_plated_hole = z65.union([
15845
15862
  pcb_plated_hole_circle,
15846
15863
  pcb_plated_hole_oval,
15847
15864
  pcb_circular_hole_with_rect_pad,
@@ -15855,109 +15872,109 @@ expectTypesMatch(true);
15855
15872
  expectTypesMatch(true);
15856
15873
  expectTypesMatch(true);
15857
15874
  expectTypesMatch(true);
15858
- var pcb_port = z65.object({
15859
- type: z65.literal("pcb_port"),
15875
+ var pcb_port = z66.object({
15876
+ type: z66.literal("pcb_port"),
15860
15877
  pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
15861
- pcb_group_id: z65.string().optional(),
15862
- subcircuit_id: z65.string().optional(),
15863
- source_port_id: z65.string(),
15864
- pcb_component_id: z65.string(),
15878
+ pcb_group_id: z66.string().optional(),
15879
+ subcircuit_id: z66.string().optional(),
15880
+ source_port_id: z66.string(),
15881
+ pcb_component_id: z66.string(),
15865
15882
  x: distance,
15866
15883
  y: distance,
15867
- layers: z65.array(layer_ref)
15884
+ layers: z66.array(layer_ref)
15868
15885
  }).describe("Defines a port on the PCB");
15869
15886
  expectTypesMatch(true);
15870
- var pcb_smtpad_circle = z66.object({
15871
- type: z66.literal("pcb_smtpad"),
15872
- shape: z66.literal("circle"),
15887
+ var pcb_smtpad_circle = z67.object({
15888
+ type: z67.literal("pcb_smtpad"),
15889
+ shape: z67.literal("circle"),
15873
15890
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
15874
- pcb_group_id: z66.string().optional(),
15875
- subcircuit_id: z66.string().optional(),
15891
+ pcb_group_id: z67.string().optional(),
15892
+ subcircuit_id: z67.string().optional(),
15876
15893
  x: distance,
15877
15894
  y: distance,
15878
- radius: z66.number(),
15895
+ radius: z67.number(),
15879
15896
  layer: layer_ref,
15880
- port_hints: z66.array(z66.string()).optional(),
15881
- pcb_component_id: z66.string().optional(),
15882
- pcb_port_id: z66.string().optional()
15897
+ port_hints: z67.array(z67.string()).optional(),
15898
+ pcb_component_id: z67.string().optional(),
15899
+ pcb_port_id: z67.string().optional()
15883
15900
  });
15884
- var pcb_smtpad_rect = z66.object({
15885
- type: z66.literal("pcb_smtpad"),
15886
- shape: z66.literal("rect"),
15901
+ var pcb_smtpad_rect = z67.object({
15902
+ type: z67.literal("pcb_smtpad"),
15903
+ shape: z67.literal("rect"),
15887
15904
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
15888
- pcb_group_id: z66.string().optional(),
15889
- subcircuit_id: z66.string().optional(),
15905
+ pcb_group_id: z67.string().optional(),
15906
+ subcircuit_id: z67.string().optional(),
15890
15907
  x: distance,
15891
15908
  y: distance,
15892
- width: z66.number(),
15893
- height: z66.number(),
15909
+ width: z67.number(),
15910
+ height: z67.number(),
15894
15911
  layer: layer_ref,
15895
- port_hints: z66.array(z66.string()).optional(),
15896
- pcb_component_id: z66.string().optional(),
15897
- pcb_port_id: z66.string().optional()
15912
+ port_hints: z67.array(z67.string()).optional(),
15913
+ pcb_component_id: z67.string().optional(),
15914
+ pcb_port_id: z67.string().optional()
15898
15915
  });
15899
- var pcb_smtpad_rotated_rect = z66.object({
15900
- type: z66.literal("pcb_smtpad"),
15901
- shape: z66.literal("rotated_rect"),
15916
+ var pcb_smtpad_rotated_rect = z67.object({
15917
+ type: z67.literal("pcb_smtpad"),
15918
+ shape: z67.literal("rotated_rect"),
15902
15919
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
15903
- pcb_group_id: z66.string().optional(),
15904
- subcircuit_id: z66.string().optional(),
15920
+ pcb_group_id: z67.string().optional(),
15921
+ subcircuit_id: z67.string().optional(),
15905
15922
  x: distance,
15906
15923
  y: distance,
15907
- width: z66.number(),
15908
- height: z66.number(),
15924
+ width: z67.number(),
15925
+ height: z67.number(),
15909
15926
  ccw_rotation: rotation,
15910
15927
  layer: layer_ref,
15911
- port_hints: z66.array(z66.string()).optional(),
15912
- pcb_component_id: z66.string().optional(),
15913
- pcb_port_id: z66.string().optional()
15928
+ port_hints: z67.array(z67.string()).optional(),
15929
+ pcb_component_id: z67.string().optional(),
15930
+ pcb_port_id: z67.string().optional()
15914
15931
  });
15915
- var pcb_smtpad_pill = z66.object({
15916
- type: z66.literal("pcb_smtpad"),
15917
- shape: z66.literal("pill"),
15932
+ var pcb_smtpad_pill = z67.object({
15933
+ type: z67.literal("pcb_smtpad"),
15934
+ shape: z67.literal("pill"),
15918
15935
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
15919
- pcb_group_id: z66.string().optional(),
15920
- subcircuit_id: z66.string().optional(),
15936
+ pcb_group_id: z67.string().optional(),
15937
+ subcircuit_id: z67.string().optional(),
15921
15938
  x: distance,
15922
15939
  y: distance,
15923
- width: z66.number(),
15924
- height: z66.number(),
15925
- radius: z66.number(),
15940
+ width: z67.number(),
15941
+ height: z67.number(),
15942
+ radius: z67.number(),
15926
15943
  layer: layer_ref,
15927
- port_hints: z66.array(z66.string()).optional(),
15928
- pcb_component_id: z66.string().optional(),
15929
- pcb_port_id: z66.string().optional()
15944
+ port_hints: z67.array(z67.string()).optional(),
15945
+ pcb_component_id: z67.string().optional(),
15946
+ pcb_port_id: z67.string().optional()
15930
15947
  });
15931
- var pcb_smtpad_rotated_pill = z66.object({
15932
- type: z66.literal("pcb_smtpad"),
15933
- shape: z66.literal("rotated_pill"),
15948
+ var pcb_smtpad_rotated_pill = z67.object({
15949
+ type: z67.literal("pcb_smtpad"),
15950
+ shape: z67.literal("rotated_pill"),
15934
15951
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
15935
- pcb_group_id: z66.string().optional(),
15936
- subcircuit_id: z66.string().optional(),
15952
+ pcb_group_id: z67.string().optional(),
15953
+ subcircuit_id: z67.string().optional(),
15937
15954
  x: distance,
15938
15955
  y: distance,
15939
- width: z66.number(),
15940
- height: z66.number(),
15941
- radius: z66.number(),
15956
+ width: z67.number(),
15957
+ height: z67.number(),
15958
+ radius: z67.number(),
15942
15959
  ccw_rotation: rotation,
15943
15960
  layer: layer_ref,
15944
- port_hints: z66.array(z66.string()).optional(),
15945
- pcb_component_id: z66.string().optional(),
15946
- pcb_port_id: z66.string().optional()
15961
+ port_hints: z67.array(z67.string()).optional(),
15962
+ pcb_component_id: z67.string().optional(),
15963
+ pcb_port_id: z67.string().optional()
15947
15964
  });
15948
- var pcb_smtpad_polygon = z66.object({
15949
- type: z66.literal("pcb_smtpad"),
15950
- shape: z66.literal("polygon"),
15965
+ var pcb_smtpad_polygon = z67.object({
15966
+ type: z67.literal("pcb_smtpad"),
15967
+ shape: z67.literal("polygon"),
15951
15968
  pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
15952
- pcb_group_id: z66.string().optional(),
15953
- subcircuit_id: z66.string().optional(),
15954
- points: z66.array(point),
15969
+ pcb_group_id: z67.string().optional(),
15970
+ subcircuit_id: z67.string().optional(),
15971
+ points: z67.array(point),
15955
15972
  layer: layer_ref,
15956
- port_hints: z66.array(z66.string()).optional(),
15957
- pcb_component_id: z66.string().optional(),
15958
- pcb_port_id: z66.string().optional()
15973
+ port_hints: z67.array(z67.string()).optional(),
15974
+ pcb_component_id: z67.string().optional(),
15975
+ pcb_port_id: z67.string().optional()
15959
15976
  });
15960
- var pcb_smtpad = z66.discriminatedUnion("shape", [
15977
+ var pcb_smtpad = z67.discriminatedUnion("shape", [
15961
15978
  pcb_smtpad_circle,
15962
15979
  pcb_smtpad_rect,
15963
15980
  pcb_smtpad_rotated_rect,
@@ -15971,78 +15988,78 @@ expectTypesMatch(true);
15971
15988
  expectTypesMatch(true);
15972
15989
  expectTypesMatch(true);
15973
15990
  expectTypesMatch(true);
15974
- var pcb_solder_paste_circle = z67.object({
15975
- type: z67.literal("pcb_solder_paste"),
15976
- shape: z67.literal("circle"),
15991
+ var pcb_solder_paste_circle = z68.object({
15992
+ type: z68.literal("pcb_solder_paste"),
15993
+ shape: z68.literal("circle"),
15977
15994
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
15978
- pcb_group_id: z67.string().optional(),
15979
- subcircuit_id: z67.string().optional(),
15995
+ pcb_group_id: z68.string().optional(),
15996
+ subcircuit_id: z68.string().optional(),
15980
15997
  x: distance,
15981
15998
  y: distance,
15982
- radius: z67.number(),
15999
+ radius: z68.number(),
15983
16000
  layer: layer_ref,
15984
- pcb_component_id: z67.string().optional(),
15985
- pcb_smtpad_id: z67.string().optional()
16001
+ pcb_component_id: z68.string().optional(),
16002
+ pcb_smtpad_id: z68.string().optional()
15986
16003
  });
15987
- var pcb_solder_paste_rect = z67.object({
15988
- type: z67.literal("pcb_solder_paste"),
15989
- shape: z67.literal("rect"),
16004
+ var pcb_solder_paste_rect = z68.object({
16005
+ type: z68.literal("pcb_solder_paste"),
16006
+ shape: z68.literal("rect"),
15990
16007
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
15991
- pcb_group_id: z67.string().optional(),
15992
- subcircuit_id: z67.string().optional(),
16008
+ pcb_group_id: z68.string().optional(),
16009
+ subcircuit_id: z68.string().optional(),
15993
16010
  x: distance,
15994
16011
  y: distance,
15995
- width: z67.number(),
15996
- height: z67.number(),
16012
+ width: z68.number(),
16013
+ height: z68.number(),
15997
16014
  layer: layer_ref,
15998
- pcb_component_id: z67.string().optional(),
15999
- pcb_smtpad_id: z67.string().optional()
16015
+ pcb_component_id: z68.string().optional(),
16016
+ pcb_smtpad_id: z68.string().optional()
16000
16017
  });
16001
- var pcb_solder_paste_pill = z67.object({
16002
- type: z67.literal("pcb_solder_paste"),
16003
- shape: z67.literal("pill"),
16018
+ var pcb_solder_paste_pill = z68.object({
16019
+ type: z68.literal("pcb_solder_paste"),
16020
+ shape: z68.literal("pill"),
16004
16021
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16005
- pcb_group_id: z67.string().optional(),
16006
- subcircuit_id: z67.string().optional(),
16022
+ pcb_group_id: z68.string().optional(),
16023
+ subcircuit_id: z68.string().optional(),
16007
16024
  x: distance,
16008
16025
  y: distance,
16009
- width: z67.number(),
16010
- height: z67.number(),
16011
- radius: z67.number(),
16026
+ width: z68.number(),
16027
+ height: z68.number(),
16028
+ radius: z68.number(),
16012
16029
  layer: layer_ref,
16013
- pcb_component_id: z67.string().optional(),
16014
- pcb_smtpad_id: z67.string().optional()
16030
+ pcb_component_id: z68.string().optional(),
16031
+ pcb_smtpad_id: z68.string().optional()
16015
16032
  });
16016
- var pcb_solder_paste_rotated_rect = z67.object({
16017
- type: z67.literal("pcb_solder_paste"),
16018
- shape: z67.literal("rotated_rect"),
16033
+ var pcb_solder_paste_rotated_rect = z68.object({
16034
+ type: z68.literal("pcb_solder_paste"),
16035
+ shape: z68.literal("rotated_rect"),
16019
16036
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16020
- pcb_group_id: z67.string().optional(),
16021
- subcircuit_id: z67.string().optional(),
16037
+ pcb_group_id: z68.string().optional(),
16038
+ subcircuit_id: z68.string().optional(),
16022
16039
  x: distance,
16023
16040
  y: distance,
16024
- width: z67.number(),
16025
- height: z67.number(),
16041
+ width: z68.number(),
16042
+ height: z68.number(),
16026
16043
  ccw_rotation: distance,
16027
16044
  layer: layer_ref,
16028
- pcb_component_id: z67.string().optional(),
16029
- pcb_smtpad_id: z67.string().optional()
16045
+ pcb_component_id: z68.string().optional(),
16046
+ pcb_smtpad_id: z68.string().optional()
16030
16047
  });
16031
- var pcb_solder_paste_oval = z67.object({
16032
- type: z67.literal("pcb_solder_paste"),
16033
- shape: z67.literal("oval"),
16048
+ var pcb_solder_paste_oval = z68.object({
16049
+ type: z68.literal("pcb_solder_paste"),
16050
+ shape: z68.literal("oval"),
16034
16051
  pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
16035
- pcb_group_id: z67.string().optional(),
16036
- subcircuit_id: z67.string().optional(),
16052
+ pcb_group_id: z68.string().optional(),
16053
+ subcircuit_id: z68.string().optional(),
16037
16054
  x: distance,
16038
16055
  y: distance,
16039
- width: z67.number(),
16040
- height: z67.number(),
16056
+ width: z68.number(),
16057
+ height: z68.number(),
16041
16058
  layer: layer_ref,
16042
- pcb_component_id: z67.string().optional(),
16043
- pcb_smtpad_id: z67.string().optional()
16059
+ pcb_component_id: z68.string().optional(),
16060
+ pcb_smtpad_id: z68.string().optional()
16044
16061
  });
16045
- var pcb_solder_paste = z67.union([
16062
+ var pcb_solder_paste = z68.union([
16046
16063
  pcb_solder_paste_circle,
16047
16064
  pcb_solder_paste_rect,
16048
16065
  pcb_solder_paste_pill,
@@ -16056,115 +16073,115 @@ expectTypesMatch(
16056
16073
  true
16057
16074
  );
16058
16075
  expectTypesMatch(true);
16059
- var pcb_text = z68.object({
16060
- type: z68.literal("pcb_text"),
16076
+ var pcb_text = z69.object({
16077
+ type: z69.literal("pcb_text"),
16061
16078
  pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
16062
- pcb_group_id: z68.string().optional(),
16063
- subcircuit_id: z68.string().optional(),
16064
- text: z68.string(),
16079
+ pcb_group_id: z69.string().optional(),
16080
+ subcircuit_id: z69.string().optional(),
16081
+ text: z69.string(),
16065
16082
  center: point,
16066
16083
  layer: layer_ref,
16067
16084
  width: length,
16068
16085
  height: length,
16069
- lines: z68.number(),
16086
+ lines: z69.number(),
16070
16087
  // @ts-ignore
16071
- align: z68.enum(["bottom-left"])
16088
+ align: z69.enum(["bottom-left"])
16072
16089
  }).describe("Defines text on the PCB");
16073
16090
  expectTypesMatch(true);
16074
- var pcb_trace_route_point_wire = z69.object({
16075
- route_type: z69.literal("wire"),
16091
+ var pcb_trace_route_point_wire = z70.object({
16092
+ route_type: z70.literal("wire"),
16076
16093
  x: distance,
16077
16094
  y: distance,
16078
16095
  width: distance,
16079
- start_pcb_port_id: z69.string().optional(),
16080
- end_pcb_port_id: z69.string().optional(),
16096
+ start_pcb_port_id: z70.string().optional(),
16097
+ end_pcb_port_id: z70.string().optional(),
16081
16098
  layer: layer_ref
16082
16099
  });
16083
- var pcb_trace_route_point_via = z69.object({
16084
- route_type: z69.literal("via"),
16100
+ var pcb_trace_route_point_via = z70.object({
16101
+ route_type: z70.literal("via"),
16085
16102
  x: distance,
16086
16103
  y: distance,
16087
16104
  hole_diameter: distance.optional(),
16088
16105
  outer_diameter: distance.optional(),
16089
- from_layer: z69.string(),
16090
- to_layer: z69.string()
16106
+ from_layer: z70.string(),
16107
+ to_layer: z70.string()
16091
16108
  });
16092
- var pcb_trace_route_point = z69.union([
16109
+ var pcb_trace_route_point = z70.union([
16093
16110
  pcb_trace_route_point_wire,
16094
16111
  pcb_trace_route_point_via
16095
16112
  ]);
16096
- var pcb_trace = z69.object({
16097
- type: z69.literal("pcb_trace"),
16098
- source_trace_id: z69.string().optional(),
16099
- pcb_component_id: z69.string().optional(),
16113
+ var pcb_trace = z70.object({
16114
+ type: z70.literal("pcb_trace"),
16115
+ source_trace_id: z70.string().optional(),
16116
+ pcb_component_id: z70.string().optional(),
16100
16117
  pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
16101
- pcb_group_id: z69.string().optional(),
16102
- subcircuit_id: z69.string().optional(),
16103
- route_thickness_mode: z69.enum(["constant", "interpolated"]).default("constant").optional(),
16104
- route_order_index: z69.number().optional(),
16105
- should_round_corners: z69.boolean().optional(),
16106
- trace_length: z69.number().optional(),
16107
- route: z69.array(pcb_trace_route_point)
16118
+ pcb_group_id: z70.string().optional(),
16119
+ subcircuit_id: z70.string().optional(),
16120
+ route_thickness_mode: z70.enum(["constant", "interpolated"]).default("constant").optional(),
16121
+ route_order_index: z70.number().optional(),
16122
+ should_round_corners: z70.boolean().optional(),
16123
+ trace_length: z70.number().optional(),
16124
+ route: z70.array(pcb_trace_route_point)
16108
16125
  }).describe("Defines a trace on the PCB");
16109
16126
  expectTypesMatch(true);
16110
16127
  expectTypesMatch(true);
16111
- var pcb_trace_error = z70.object({
16112
- type: z70.literal("pcb_trace_error"),
16128
+ var pcb_trace_error = z71.object({
16129
+ type: z71.literal("pcb_trace_error"),
16113
16130
  pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
16114
- error_type: z70.literal("pcb_trace_error").default("pcb_trace_error"),
16115
- message: z70.string(),
16131
+ error_type: z71.literal("pcb_trace_error").default("pcb_trace_error"),
16132
+ message: z71.string(),
16116
16133
  center: point.optional(),
16117
- pcb_trace_id: z70.string(),
16118
- source_trace_id: z70.string(),
16119
- pcb_component_ids: z70.array(z70.string()),
16120
- pcb_port_ids: z70.array(z70.string()),
16121
- subcircuit_id: z70.string().optional()
16134
+ pcb_trace_id: z71.string(),
16135
+ source_trace_id: z71.string(),
16136
+ pcb_component_ids: z71.array(z71.string()),
16137
+ pcb_port_ids: z71.array(z71.string()),
16138
+ subcircuit_id: z71.string().optional()
16122
16139
  }).describe("Defines a trace error on the PCB");
16123
16140
  expectTypesMatch(true);
16124
- var pcb_trace_missing_error = z71.object({
16125
- type: z71.literal("pcb_trace_missing_error"),
16141
+ var pcb_trace_missing_error = z72.object({
16142
+ type: z72.literal("pcb_trace_missing_error"),
16126
16143
  pcb_trace_missing_error_id: getZodPrefixedIdWithDefault(
16127
16144
  "pcb_trace_missing_error"
16128
16145
  ),
16129
- error_type: z71.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
16130
- message: z71.string(),
16146
+ error_type: z72.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
16147
+ message: z72.string(),
16131
16148
  center: point.optional(),
16132
- source_trace_id: z71.string(),
16133
- pcb_component_ids: z71.array(z71.string()),
16134
- pcb_port_ids: z71.array(z71.string()),
16135
- subcircuit_id: z71.string().optional()
16149
+ source_trace_id: z72.string(),
16150
+ pcb_component_ids: z72.array(z72.string()),
16151
+ pcb_port_ids: z72.array(z72.string()),
16152
+ subcircuit_id: z72.string().optional()
16136
16153
  }).describe(
16137
16154
  "Defines an error when a source trace has no corresponding PCB trace"
16138
16155
  );
16139
16156
  expectTypesMatch(true);
16140
- var pcb_port_not_matched_error = z72.object({
16141
- type: z72.literal("pcb_port_not_matched_error"),
16157
+ var pcb_port_not_matched_error = z73.object({
16158
+ type: z73.literal("pcb_port_not_matched_error"),
16142
16159
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
16143
- error_type: z72.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
16144
- message: z72.string(),
16145
- pcb_component_ids: z72.array(z72.string()),
16146
- subcircuit_id: z72.string().optional()
16160
+ error_type: z73.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
16161
+ message: z73.string(),
16162
+ pcb_component_ids: z73.array(z73.string()),
16163
+ subcircuit_id: z73.string().optional()
16147
16164
  }).describe("Defines a trace error on the PCB where a port is not matched");
16148
16165
  expectTypesMatch(true);
16149
- var pcb_port_not_connected_error = z73.object({
16150
- type: z73.literal("pcb_port_not_connected_error"),
16166
+ var pcb_port_not_connected_error = z74.object({
16167
+ type: z74.literal("pcb_port_not_connected_error"),
16151
16168
  pcb_port_not_connected_error_id: getZodPrefixedIdWithDefault(
16152
16169
  "pcb_port_not_connected_error"
16153
16170
  ),
16154
- error_type: z73.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
16155
- message: z73.string(),
16156
- pcb_port_ids: z73.array(z73.string()),
16157
- pcb_component_ids: z73.array(z73.string()),
16158
- subcircuit_id: z73.string().optional()
16171
+ error_type: z74.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
16172
+ message: z74.string(),
16173
+ pcb_port_ids: z74.array(z74.string()),
16174
+ pcb_component_ids: z74.array(z74.string()),
16175
+ subcircuit_id: z74.string().optional()
16159
16176
  }).describe("Defines an error when a pcb port is not connected to any trace");
16160
16177
  expectTypesMatch(
16161
16178
  true
16162
16179
  );
16163
- var pcb_via = z74.object({
16164
- type: z74.literal("pcb_via"),
16180
+ var pcb_via = z75.object({
16181
+ type: z75.literal("pcb_via"),
16165
16182
  pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
16166
- pcb_group_id: z74.string().optional(),
16167
- subcircuit_id: z74.string().optional(),
16183
+ pcb_group_id: z75.string().optional(),
16184
+ subcircuit_id: z75.string().optional(),
16168
16185
  x: distance,
16169
16186
  y: distance,
16170
16187
  outer_diameter: distance.default("0.6mm"),
@@ -16173,47 +16190,47 @@ var pcb_via = z74.object({
16173
16190
  from_layer: layer_ref.optional(),
16174
16191
  /** @deprecated */
16175
16192
  to_layer: layer_ref.optional(),
16176
- layers: z74.array(layer_ref),
16177
- pcb_trace_id: z74.string().optional()
16193
+ layers: z75.array(layer_ref),
16194
+ pcb_trace_id: z75.string().optional()
16178
16195
  }).describe("Defines a via on the PCB");
16179
16196
  expectTypesMatch(true);
16180
- var pcb_board = z75.object({
16181
- type: z75.literal("pcb_board"),
16197
+ var pcb_board = z76.object({
16198
+ type: z76.literal("pcb_board"),
16182
16199
  pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
16183
- is_subcircuit: z75.boolean().optional(),
16184
- subcircuit_id: z75.string().optional(),
16200
+ is_subcircuit: z76.boolean().optional(),
16201
+ subcircuit_id: z76.string().optional(),
16185
16202
  width: length,
16186
16203
  height: length,
16187
16204
  center: point,
16188
16205
  thickness: length.optional().default(1.4),
16189
- num_layers: z75.number().optional().default(4),
16190
- outline: z75.array(point).optional(),
16191
- material: z75.enum(["fr4", "fr1"]).default("fr4")
16206
+ num_layers: z76.number().optional().default(4),
16207
+ outline: z76.array(point).optional(),
16208
+ material: z76.enum(["fr4", "fr1"]).default("fr4")
16192
16209
  }).describe("Defines the board outline of the PCB");
16193
16210
  expectTypesMatch(true);
16194
- var pcb_placement_error = z76.object({
16195
- type: z76.literal("pcb_placement_error"),
16211
+ var pcb_placement_error = z77.object({
16212
+ type: z77.literal("pcb_placement_error"),
16196
16213
  pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
16197
- error_type: z76.literal("pcb_placement_error").default("pcb_placement_error"),
16198
- message: z76.string(),
16199
- subcircuit_id: z76.string().optional()
16214
+ error_type: z77.literal("pcb_placement_error").default("pcb_placement_error"),
16215
+ message: z77.string(),
16216
+ subcircuit_id: z77.string().optional()
16200
16217
  }).describe("Defines a placement error on the PCB");
16201
16218
  expectTypesMatch(true);
16202
- var pcb_trace_hint = z77.object({
16203
- type: z77.literal("pcb_trace_hint"),
16219
+ var pcb_trace_hint = z78.object({
16220
+ type: z78.literal("pcb_trace_hint"),
16204
16221
  pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
16205
- pcb_port_id: z77.string(),
16206
- pcb_component_id: z77.string(),
16207
- route: z77.array(route_hint_point),
16208
- subcircuit_id: z77.string().optional()
16222
+ pcb_port_id: z78.string(),
16223
+ pcb_component_id: z78.string(),
16224
+ route: z78.array(route_hint_point),
16225
+ subcircuit_id: z78.string().optional()
16209
16226
  }).describe("A hint that can be used during generation of a PCB trace");
16210
16227
  expectTypesMatch(true);
16211
- var pcb_silkscreen_line = z78.object({
16212
- type: z78.literal("pcb_silkscreen_line"),
16228
+ var pcb_silkscreen_line = z79.object({
16229
+ type: z79.literal("pcb_silkscreen_line"),
16213
16230
  pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
16214
- pcb_component_id: z78.string(),
16215
- pcb_group_id: z78.string().optional(),
16216
- subcircuit_id: z78.string().optional(),
16231
+ pcb_component_id: z79.string(),
16232
+ pcb_group_id: z79.string().optional(),
16233
+ subcircuit_id: z79.string().optional(),
16217
16234
  stroke_width: distance.default("0.1mm"),
16218
16235
  x1: distance,
16219
16236
  y1: distance,
@@ -16222,159 +16239,159 @@ var pcb_silkscreen_line = z78.object({
16222
16239
  layer: visible_layer
16223
16240
  }).describe("Defines a silkscreen line on the PCB");
16224
16241
  expectTypesMatch(true);
16225
- var pcb_silkscreen_path = z79.object({
16226
- type: z79.literal("pcb_silkscreen_path"),
16242
+ var pcb_silkscreen_path = z80.object({
16243
+ type: z80.literal("pcb_silkscreen_path"),
16227
16244
  pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
16228
- pcb_component_id: z79.string(),
16229
- pcb_group_id: z79.string().optional(),
16230
- subcircuit_id: z79.string().optional(),
16245
+ pcb_component_id: z80.string(),
16246
+ pcb_group_id: z80.string().optional(),
16247
+ subcircuit_id: z80.string().optional(),
16231
16248
  layer: visible_layer,
16232
- route: z79.array(point),
16249
+ route: z80.array(point),
16233
16250
  stroke_width: length
16234
16251
  }).describe("Defines a silkscreen path on the PCB");
16235
16252
  expectTypesMatch(true);
16236
- var pcb_silkscreen_text = z80.object({
16237
- type: z80.literal("pcb_silkscreen_text"),
16253
+ var pcb_silkscreen_text = z81.object({
16254
+ type: z81.literal("pcb_silkscreen_text"),
16238
16255
  pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
16239
- pcb_group_id: z80.string().optional(),
16240
- subcircuit_id: z80.string().optional(),
16241
- font: z80.literal("tscircuit2024").default("tscircuit2024"),
16256
+ pcb_group_id: z81.string().optional(),
16257
+ subcircuit_id: z81.string().optional(),
16258
+ font: z81.literal("tscircuit2024").default("tscircuit2024"),
16242
16259
  font_size: distance.default("0.2mm"),
16243
- pcb_component_id: z80.string(),
16244
- text: z80.string(),
16245
- ccw_rotation: z80.number().optional(),
16260
+ pcb_component_id: z81.string(),
16261
+ text: z81.string(),
16262
+ ccw_rotation: z81.number().optional(),
16246
16263
  layer: layer_ref,
16247
- is_mirrored: z80.boolean().default(false).optional(),
16264
+ is_mirrored: z81.boolean().default(false).optional(),
16248
16265
  anchor_position: point.default({ x: 0, y: 0 }),
16249
16266
  anchor_alignment: ninePointAnchor.default("center")
16250
16267
  }).describe("Defines silkscreen text on the PCB");
16251
16268
  expectTypesMatch(true);
16252
- var pcb_silkscreen_rect = z81.object({
16253
- type: z81.literal("pcb_silkscreen_rect"),
16269
+ var pcb_silkscreen_rect = z82.object({
16270
+ type: z82.literal("pcb_silkscreen_rect"),
16254
16271
  pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
16255
- pcb_component_id: z81.string(),
16256
- pcb_group_id: z81.string().optional(),
16257
- subcircuit_id: z81.string().optional(),
16272
+ pcb_component_id: z82.string(),
16273
+ pcb_group_id: z82.string().optional(),
16274
+ subcircuit_id: z82.string().optional(),
16258
16275
  center: point,
16259
16276
  width: length,
16260
16277
  height: length,
16261
16278
  layer: layer_ref,
16262
16279
  stroke_width: length.default("1mm"),
16263
- is_filled: z81.boolean().default(true).optional(),
16264
- has_stroke: z81.boolean().optional(),
16265
- is_stroke_dashed: z81.boolean().optional()
16280
+ is_filled: z82.boolean().default(true).optional(),
16281
+ has_stroke: z82.boolean().optional(),
16282
+ is_stroke_dashed: z82.boolean().optional()
16266
16283
  }).describe("Defines a silkscreen rect on the PCB");
16267
16284
  expectTypesMatch(true);
16268
- var pcb_silkscreen_circle = z82.object({
16269
- type: z82.literal("pcb_silkscreen_circle"),
16285
+ var pcb_silkscreen_circle = z83.object({
16286
+ type: z83.literal("pcb_silkscreen_circle"),
16270
16287
  pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
16271
16288
  "pcb_silkscreen_circle"
16272
16289
  ),
16273
- pcb_component_id: z82.string(),
16274
- pcb_group_id: z82.string().optional(),
16275
- subcircuit_id: z82.string().optional(),
16290
+ pcb_component_id: z83.string(),
16291
+ pcb_group_id: z83.string().optional(),
16292
+ subcircuit_id: z83.string().optional(),
16276
16293
  center: point,
16277
16294
  radius: length,
16278
16295
  layer: visible_layer,
16279
16296
  stroke_width: length.default("1mm")
16280
16297
  }).describe("Defines a silkscreen circle on the PCB");
16281
16298
  expectTypesMatch(true);
16282
- var pcb_silkscreen_oval = z83.object({
16283
- type: z83.literal("pcb_silkscreen_oval"),
16299
+ var pcb_silkscreen_oval = z84.object({
16300
+ type: z84.literal("pcb_silkscreen_oval"),
16284
16301
  pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
16285
- pcb_component_id: z83.string(),
16286
- pcb_group_id: z83.string().optional(),
16287
- subcircuit_id: z83.string().optional(),
16302
+ pcb_component_id: z84.string(),
16303
+ pcb_group_id: z84.string().optional(),
16304
+ subcircuit_id: z84.string().optional(),
16288
16305
  center: point,
16289
16306
  radius_x: distance,
16290
16307
  radius_y: distance,
16291
16308
  layer: visible_layer
16292
16309
  }).describe("Defines a silkscreen oval on the PCB");
16293
16310
  expectTypesMatch(true);
16294
- var pcb_fabrication_note_text = z84.object({
16295
- type: z84.literal("pcb_fabrication_note_text"),
16311
+ var pcb_fabrication_note_text = z85.object({
16312
+ type: z85.literal("pcb_fabrication_note_text"),
16296
16313
  pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
16297
16314
  "pcb_fabrication_note_text"
16298
16315
  ),
16299
- subcircuit_id: z84.string().optional(),
16300
- pcb_group_id: z84.string().optional(),
16301
- font: z84.literal("tscircuit2024").default("tscircuit2024"),
16316
+ subcircuit_id: z85.string().optional(),
16317
+ pcb_group_id: z85.string().optional(),
16318
+ font: z85.literal("tscircuit2024").default("tscircuit2024"),
16302
16319
  font_size: distance.default("1mm"),
16303
- pcb_component_id: z84.string(),
16304
- text: z84.string(),
16320
+ pcb_component_id: z85.string(),
16321
+ text: z85.string(),
16305
16322
  layer: visible_layer,
16306
16323
  anchor_position: point.default({ x: 0, y: 0 }),
16307
- anchor_alignment: z84.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
16308
- color: z84.string().optional()
16324
+ anchor_alignment: z85.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
16325
+ color: z85.string().optional()
16309
16326
  }).describe(
16310
16327
  "Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
16311
16328
  );
16312
16329
  expectTypesMatch(true);
16313
- var pcb_fabrication_note_path = z85.object({
16314
- type: z85.literal("pcb_fabrication_note_path"),
16330
+ var pcb_fabrication_note_path = z86.object({
16331
+ type: z86.literal("pcb_fabrication_note_path"),
16315
16332
  pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
16316
16333
  "pcb_fabrication_note_path"
16317
16334
  ),
16318
- pcb_component_id: z85.string(),
16319
- subcircuit_id: z85.string().optional(),
16335
+ pcb_component_id: z86.string(),
16336
+ subcircuit_id: z86.string().optional(),
16320
16337
  layer: layer_ref,
16321
- route: z85.array(point),
16338
+ route: z86.array(point),
16322
16339
  stroke_width: length,
16323
- color: z85.string().optional()
16340
+ color: z86.string().optional()
16324
16341
  }).describe(
16325
16342
  "Defines a fabrication path on the PCB for fabricators or assemblers"
16326
16343
  );
16327
16344
  expectTypesMatch(true);
16328
- var pcb_footprint_overlap_error = z86.object({
16329
- type: z86.literal("pcb_footprint_overlap_error"),
16345
+ var pcb_footprint_overlap_error = z87.object({
16346
+ type: z87.literal("pcb_footprint_overlap_error"),
16330
16347
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
16331
- error_type: z86.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
16332
- message: z86.string(),
16333
- pcb_smtpad_ids: z86.array(z86.string()).optional(),
16334
- pcb_plated_hole_ids: z86.array(z86.string()).optional(),
16335
- pcb_hole_ids: z86.array(z86.string()).optional(),
16336
- pcb_keepout_ids: z86.array(z86.string()).optional()
16348
+ error_type: z87.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
16349
+ message: z87.string(),
16350
+ pcb_smtpad_ids: z87.array(z87.string()).optional(),
16351
+ pcb_plated_hole_ids: z87.array(z87.string()).optional(),
16352
+ pcb_hole_ids: z87.array(z87.string()).optional(),
16353
+ pcb_keepout_ids: z87.array(z87.string()).optional()
16337
16354
  }).describe("Error emitted when a pcb footprint overlaps with another element");
16338
16355
  expectTypesMatch(
16339
16356
  true
16340
16357
  );
16341
- var pcb_keepout = z87.object({
16342
- type: z87.literal("pcb_keepout"),
16343
- shape: z87.literal("rect"),
16344
- pcb_group_id: z87.string().optional(),
16345
- subcircuit_id: z87.string().optional(),
16358
+ var pcb_keepout = z88.object({
16359
+ type: z88.literal("pcb_keepout"),
16360
+ shape: z88.literal("rect"),
16361
+ pcb_group_id: z88.string().optional(),
16362
+ subcircuit_id: z88.string().optional(),
16346
16363
  center: point,
16347
16364
  width: distance,
16348
16365
  height: distance,
16349
- pcb_keepout_id: z87.string(),
16350
- layers: z87.array(z87.string()),
16366
+ pcb_keepout_id: z88.string(),
16367
+ layers: z88.array(z88.string()),
16351
16368
  // Specify layers where the keepout applies
16352
- description: z87.string().optional()
16369
+ description: z88.string().optional()
16353
16370
  // Optional description of the keepout
16354
16371
  }).or(
16355
- z87.object({
16356
- type: z87.literal("pcb_keepout"),
16357
- shape: z87.literal("circle"),
16358
- pcb_group_id: z87.string().optional(),
16359
- subcircuit_id: z87.string().optional(),
16372
+ z88.object({
16373
+ type: z88.literal("pcb_keepout"),
16374
+ shape: z88.literal("circle"),
16375
+ pcb_group_id: z88.string().optional(),
16376
+ subcircuit_id: z88.string().optional(),
16360
16377
  center: point,
16361
16378
  radius: distance,
16362
- pcb_keepout_id: z87.string(),
16363
- layers: z87.array(z87.string()),
16379
+ pcb_keepout_id: z88.string(),
16380
+ layers: z88.array(z88.string()),
16364
16381
  // Specify layers where the keepout applies
16365
- description: z87.string().optional()
16382
+ description: z88.string().optional()
16366
16383
  // Optional description of the keepout
16367
16384
  })
16368
16385
  );
16369
16386
  expectTypesMatch(true);
16370
- var pcb_cutout_base = z88.object({
16371
- type: z88.literal("pcb_cutout"),
16387
+ var pcb_cutout_base = z89.object({
16388
+ type: z89.literal("pcb_cutout"),
16372
16389
  pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
16373
- pcb_group_id: z88.string().optional(),
16374
- subcircuit_id: z88.string().optional()
16390
+ pcb_group_id: z89.string().optional(),
16391
+ subcircuit_id: z89.string().optional()
16375
16392
  });
16376
16393
  var pcb_cutout_rect = pcb_cutout_base.extend({
16377
- shape: z88.literal("rect"),
16394
+ shape: z89.literal("rect"),
16378
16395
  center: point,
16379
16396
  width: length,
16380
16397
  height: length,
@@ -16382,180 +16399,182 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
16382
16399
  });
16383
16400
  expectTypesMatch(true);
16384
16401
  var pcb_cutout_circle = pcb_cutout_base.extend({
16385
- shape: z88.literal("circle"),
16402
+ shape: z89.literal("circle"),
16386
16403
  center: point,
16387
16404
  radius: length
16388
16405
  });
16389
16406
  expectTypesMatch(true);
16390
16407
  var pcb_cutout_polygon = pcb_cutout_base.extend({
16391
- shape: z88.literal("polygon"),
16392
- points: z88.array(point)
16408
+ shape: z89.literal("polygon"),
16409
+ points: z89.array(point)
16393
16410
  });
16394
16411
  expectTypesMatch(true);
16395
- var pcb_cutout = z88.discriminatedUnion("shape", [
16412
+ var pcb_cutout = z89.discriminatedUnion("shape", [
16396
16413
  pcb_cutout_rect,
16397
16414
  pcb_cutout_circle,
16398
16415
  pcb_cutout_polygon
16399
16416
  ]).describe("Defines a cutout on the PCB, removing board material.");
16400
16417
  expectTypesMatch(true);
16401
- var pcb_missing_footprint_error = z89.object({
16402
- type: z89.literal("pcb_missing_footprint_error"),
16418
+ var pcb_missing_footprint_error = z90.object({
16419
+ type: z90.literal("pcb_missing_footprint_error"),
16403
16420
  pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
16404
16421
  "pcb_missing_footprint_error"
16405
16422
  ),
16406
- pcb_group_id: z89.string().optional(),
16407
- subcircuit_id: z89.string().optional(),
16408
- error_type: z89.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
16409
- source_component_id: z89.string(),
16410
- message: z89.string()
16423
+ pcb_group_id: z90.string().optional(),
16424
+ subcircuit_id: z90.string().optional(),
16425
+ error_type: z90.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
16426
+ source_component_id: z90.string(),
16427
+ message: z90.string()
16411
16428
  }).describe("Defines a missing footprint error on the PCB");
16412
16429
  expectTypesMatch(
16413
16430
  true
16414
16431
  );
16415
- var pcb_group = z90.object({
16416
- type: z90.literal("pcb_group"),
16432
+ var pcb_group = z91.object({
16433
+ type: z91.literal("pcb_group"),
16417
16434
  pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
16418
- source_group_id: z90.string(),
16419
- is_subcircuit: z90.boolean().optional(),
16420
- subcircuit_id: z90.string().optional(),
16435
+ source_group_id: z91.string(),
16436
+ is_subcircuit: z91.boolean().optional(),
16437
+ subcircuit_id: z91.string().optional(),
16421
16438
  width: length,
16422
16439
  height: length,
16423
16440
  center: point,
16424
- pcb_component_ids: z90.array(z90.string()),
16425
- name: z90.string().optional(),
16426
- description: z90.string().optional(),
16427
- layout_mode: z90.string().optional(),
16428
- autorouter_configuration: z90.object({
16441
+ pcb_component_ids: z91.array(z91.string()),
16442
+ name: z91.string().optional(),
16443
+ description: z91.string().optional(),
16444
+ layout_mode: z91.string().optional(),
16445
+ autorouter_configuration: z91.object({
16429
16446
  trace_clearance: length
16430
16447
  }).optional(),
16431
- autorouter_used_string: z90.string().optional()
16448
+ autorouter_used_string: z91.string().optional()
16432
16449
  }).describe("Defines a group of components on the PCB");
16433
16450
  expectTypesMatch(true);
16434
- var pcb_autorouting_error = z91.object({
16435
- type: z91.literal("pcb_autorouting_error"),
16451
+ var pcb_autorouting_error = z92.object({
16452
+ type: z92.literal("pcb_autorouting_error"),
16436
16453
  pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
16437
- error_type: z91.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
16438
- message: z91.string(),
16439
- subcircuit_id: z91.string().optional()
16454
+ error_type: z92.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
16455
+ message: z92.string(),
16456
+ subcircuit_id: z92.string().optional()
16440
16457
  }).describe("The autorouting has failed to route a portion of the board");
16441
16458
  expectTypesMatch(true);
16442
- var pcb_manual_edit_conflict_warning = z92.object({
16443
- type: z92.literal("pcb_manual_edit_conflict_warning"),
16459
+ var pcb_manual_edit_conflict_warning = z93.object({
16460
+ type: z93.literal("pcb_manual_edit_conflict_warning"),
16444
16461
  pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
16445
16462
  "pcb_manual_edit_conflict_warning"
16446
16463
  ),
16447
- warning_type: z92.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
16448
- message: z92.string(),
16449
- pcb_component_id: z92.string(),
16450
- pcb_group_id: z92.string().optional(),
16451
- subcircuit_id: z92.string().optional(),
16452
- source_component_id: z92.string()
16464
+ warning_type: z93.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
16465
+ message: z93.string(),
16466
+ pcb_component_id: z93.string(),
16467
+ pcb_group_id: z93.string().optional(),
16468
+ subcircuit_id: z93.string().optional(),
16469
+ source_component_id: z93.string()
16453
16470
  }).describe(
16454
16471
  "Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
16455
16472
  );
16456
16473
  expectTypesMatch(true);
16457
- var pcb_breakout_point = z93.object({
16458
- type: z93.literal("pcb_breakout_point"),
16474
+ var pcb_breakout_point = z94.object({
16475
+ type: z94.literal("pcb_breakout_point"),
16459
16476
  pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
16460
- pcb_group_id: z93.string(),
16461
- subcircuit_id: z93.string().optional(),
16462
- source_trace_id: z93.string().optional(),
16463
- source_port_id: z93.string().optional(),
16464
- source_net_id: z93.string().optional(),
16477
+ pcb_group_id: z94.string(),
16478
+ subcircuit_id: z94.string().optional(),
16479
+ source_trace_id: z94.string().optional(),
16480
+ source_port_id: z94.string().optional(),
16481
+ source_net_id: z94.string().optional(),
16465
16482
  x: distance,
16466
16483
  y: distance
16467
16484
  }).describe(
16468
16485
  "Defines a routing target within a pcb_group for a source_trace or source_net"
16469
16486
  );
16470
16487
  expectTypesMatch(true);
16471
- var pcb_ground_plane = z94.object({
16472
- type: z94.literal("pcb_ground_plane"),
16488
+ var pcb_ground_plane = z95.object({
16489
+ type: z95.literal("pcb_ground_plane"),
16473
16490
  pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
16474
- source_pcb_ground_plane_id: z94.string(),
16475
- source_net_id: z94.string(),
16476
- pcb_group_id: z94.string().optional(),
16477
- subcircuit_id: z94.string().optional()
16491
+ source_pcb_ground_plane_id: z95.string(),
16492
+ source_net_id: z95.string(),
16493
+ pcb_group_id: z95.string().optional(),
16494
+ subcircuit_id: z95.string().optional()
16478
16495
  }).describe("Defines a ground plane on the PCB");
16479
16496
  expectTypesMatch(true);
16480
- var pcb_ground_plane_region = z95.object({
16481
- type: z95.literal("pcb_ground_plane_region"),
16497
+ var pcb_ground_plane_region = z96.object({
16498
+ type: z96.literal("pcb_ground_plane_region"),
16482
16499
  pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
16483
16500
  "pcb_ground_plane_region"
16484
16501
  ),
16485
- pcb_ground_plane_id: z95.string(),
16486
- pcb_group_id: z95.string().optional(),
16487
- subcircuit_id: z95.string().optional(),
16502
+ pcb_ground_plane_id: z96.string(),
16503
+ pcb_group_id: z96.string().optional(),
16504
+ subcircuit_id: z96.string().optional(),
16488
16505
  layer: layer_ref,
16489
- points: z95.array(point)
16506
+ points: z96.array(point)
16490
16507
  }).describe("Defines a polygon region of a ground plane");
16491
16508
  expectTypesMatch(true);
16492
- var pcb_thermal_spoke = z96.object({
16493
- type: z96.literal("pcb_thermal_spoke"),
16509
+ var pcb_thermal_spoke = z97.object({
16510
+ type: z97.literal("pcb_thermal_spoke"),
16494
16511
  pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
16495
- pcb_ground_plane_id: z96.string(),
16496
- shape: z96.string(),
16497
- spoke_count: z96.number(),
16512
+ pcb_ground_plane_id: z97.string(),
16513
+ shape: z97.string(),
16514
+ spoke_count: z97.number(),
16498
16515
  spoke_thickness: distance,
16499
16516
  spoke_inner_diameter: distance,
16500
16517
  spoke_outer_diameter: distance,
16501
- pcb_plated_hole_id: z96.string().optional(),
16502
- subcircuit_id: z96.string().optional()
16518
+ pcb_plated_hole_id: z97.string().optional(),
16519
+ subcircuit_id: z97.string().optional()
16503
16520
  }).describe("Pattern for connecting a ground plane to a plated hole");
16504
16521
  expectTypesMatch(true);
16505
- var pcb_copper_pour_base = z97.object({
16506
- type: z97.literal("pcb_copper_pour"),
16522
+ var pcb_copper_pour_base = z98.object({
16523
+ type: z98.literal("pcb_copper_pour"),
16507
16524
  pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
16508
- pcb_group_id: z97.string().optional(),
16509
- subcircuit_id: z97.string().optional(),
16525
+ pcb_group_id: z98.string().optional(),
16526
+ subcircuit_id: z98.string().optional(),
16510
16527
  layer: layer_ref,
16511
- source_net_id: z97.string().optional()
16528
+ source_net_id: z98.string().optional()
16512
16529
  });
16513
16530
  var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
16514
- shape: z97.literal("rect"),
16531
+ shape: z98.literal("rect"),
16515
16532
  center: point,
16516
16533
  width: length,
16517
16534
  height: length,
16518
16535
  rotation: rotation.optional()
16519
16536
  });
16520
16537
  expectTypesMatch(true);
16521
- var pcb_copper_pour_circle = pcb_copper_pour_base.extend({
16522
- shape: z97.literal("circle"),
16523
- center: point,
16524
- radius: length
16538
+ var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
16539
+ shape: z98.literal("brep"),
16540
+ brep_shape
16525
16541
  });
16526
16542
  expectTypesMatch(true);
16527
16543
  var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
16528
- shape: z97.literal("polygon"),
16529
- points: z97.array(point)
16544
+ shape: z98.literal("polygon"),
16545
+ points: z98.array(point)
16530
16546
  });
16531
16547
  expectTypesMatch(true);
16532
- var pcb_copper_pour = z97.discriminatedUnion("shape", [
16548
+ var pcb_copper_pour = z98.discriminatedUnion("shape", [
16533
16549
  pcb_copper_pour_rect,
16534
- pcb_copper_pour_circle,
16550
+ pcb_copper_pour_brep,
16535
16551
  pcb_copper_pour_polygon
16536
16552
  ]).describe("Defines a copper pour on the PCB.");
16537
16553
  expectTypesMatch(true);
16538
- var cad_component = z98.object({
16539
- type: z98.literal("cad_component"),
16540
- cad_component_id: z98.string(),
16541
- pcb_component_id: z98.string(),
16542
- source_component_id: z98.string(),
16554
+ var cad_component = z99.object({
16555
+ type: z99.literal("cad_component"),
16556
+ cad_component_id: z99.string(),
16557
+ pcb_component_id: z99.string(),
16558
+ source_component_id: z99.string(),
16543
16559
  position: point3,
16544
16560
  rotation: point3.optional(),
16545
16561
  size: point3.optional(),
16546
16562
  layer: layer_ref.optional(),
16547
- subcircuit_id: z98.string().optional(),
16563
+ subcircuit_id: z99.string().optional(),
16548
16564
  // These are all ways to generate/load the 3d model
16549
- footprinter_string: z98.string().optional(),
16550
- model_obj_url: z98.string().optional(),
16551
- model_stl_url: z98.string().optional(),
16552
- model_3mf_url: z98.string().optional(),
16553
- model_gltf_url: z98.string().optional(),
16554
- model_jscad: z98.any().optional()
16565
+ footprinter_string: z99.string().optional(),
16566
+ model_obj_url: z99.string().optional(),
16567
+ model_stl_url: z99.string().optional(),
16568
+ model_3mf_url: z99.string().optional(),
16569
+ model_gltf_url: z99.string().optional(),
16570
+ model_glb_url: z99.string().optional(),
16571
+ model_step_url: z99.string().optional(),
16572
+ model_wrl_url: z99.string().optional(),
16573
+ model_jscad: z99.any().optional()
16555
16574
  }).describe("Defines a component on the PCB");
16556
16575
  expectTypesMatch(true);
16557
- var wave_shape = z99.enum(["sinewave", "square", "triangle", "sawtooth"]);
16558
- var percentage = z99.union([z99.string(), z99.number()]).transform((val) => {
16576
+ var wave_shape = z100.enum(["sinewave", "square", "triangle", "sawtooth"]);
16577
+ var percentage = z100.union([z100.string(), z100.number()]).transform((val) => {
16559
16578
  if (typeof val === "string") {
16560
16579
  if (val.endsWith("%")) {
16561
16580
  return parseFloat(val.slice(0, -1)) / 100;
@@ -16564,30 +16583,30 @@ var percentage = z99.union([z99.string(), z99.number()]).transform((val) => {
16564
16583
  }
16565
16584
  return val;
16566
16585
  }).pipe(
16567
- z99.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
16586
+ z100.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
16568
16587
  );
16569
- var simulation_dc_voltage_source = z99.object({
16570
- type: z99.literal("simulation_voltage_source"),
16588
+ var simulation_dc_voltage_source = z100.object({
16589
+ type: z100.literal("simulation_voltage_source"),
16571
16590
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
16572
16591
  "simulation_voltage_source"
16573
16592
  ),
16574
- is_dc_source: z99.literal(true).optional().default(true),
16575
- positive_source_port_id: z99.string().optional(),
16576
- negative_source_port_id: z99.string().optional(),
16577
- positive_source_net_id: z99.string().optional(),
16578
- negative_source_net_id: z99.string().optional(),
16593
+ is_dc_source: z100.literal(true).optional().default(true),
16594
+ positive_source_port_id: z100.string().optional(),
16595
+ negative_source_port_id: z100.string().optional(),
16596
+ positive_source_net_id: z100.string().optional(),
16597
+ negative_source_net_id: z100.string().optional(),
16579
16598
  voltage
16580
16599
  }).describe("Defines a DC voltage source for simulation");
16581
- var simulation_ac_voltage_source = z99.object({
16582
- type: z99.literal("simulation_voltage_source"),
16600
+ var simulation_ac_voltage_source = z100.object({
16601
+ type: z100.literal("simulation_voltage_source"),
16583
16602
  simulation_voltage_source_id: getZodPrefixedIdWithDefault(
16584
16603
  "simulation_voltage_source"
16585
16604
  ),
16586
- is_dc_source: z99.literal(false),
16587
- terminal1_source_port_id: z99.string().optional(),
16588
- terminal2_source_port_id: z99.string().optional(),
16589
- terminal1_source_net_id: z99.string().optional(),
16590
- terminal2_source_net_id: z99.string().optional(),
16605
+ is_dc_source: z100.literal(false),
16606
+ terminal1_source_port_id: z100.string().optional(),
16607
+ terminal2_source_port_id: z100.string().optional(),
16608
+ terminal1_source_net_id: z100.string().optional(),
16609
+ terminal2_source_net_id: z100.string().optional(),
16591
16610
  voltage: voltage.optional(),
16592
16611
  frequency: frequency.optional(),
16593
16612
  peak_to_peak_voltage: voltage.optional(),
@@ -16595,11 +16614,11 @@ var simulation_ac_voltage_source = z99.object({
16595
16614
  phase: rotation.optional(),
16596
16615
  duty_cycle: percentage.optional()
16597
16616
  }).describe("Defines an AC voltage source for simulation");
16598
- var simulation_voltage_source = z99.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
16617
+ var simulation_voltage_source = z100.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
16599
16618
  expectTypesMatch(true);
16600
16619
  expectTypesMatch(true);
16601
16620
  expectTypesMatch(true);
16602
- var any_circuit_element = z100.union([
16621
+ var any_circuit_element = z101.union([
16603
16622
  source_trace,
16604
16623
  source_port,
16605
16624
  any_source_component,
@@ -16871,12 +16890,12 @@ function convertMilToMm(value) {
16871
16890
  }
16872
16891
  return Number(value);
16873
16892
  }
16874
- var lengthInMm = z101.union([z101.string(), z101.number()]).transform((val) => convertMilToMm(val));
16875
- var extendDipDef = (newDefaults) => z101.object({
16876
- fn: z101.string(),
16877
- num_pins: z101.number().optional().default(6),
16878
- wide: z101.boolean().optional(),
16879
- narrow: z101.boolean().optional(),
16893
+ var lengthInMm = z102.union([z102.string(), z102.number()]).transform((val) => convertMilToMm(val));
16894
+ var extendDipDef = (newDefaults) => z102.object({
16895
+ fn: z102.string(),
16896
+ num_pins: z102.number().optional().default(6),
16897
+ wide: z102.boolean().optional(),
16898
+ narrow: z102.boolean().optional(),
16880
16899
  w: lengthInMm.optional(),
16881
16900
  p: lengthInMm.default(newDefaults.p ?? "2.54mm"),
16882
16901
  id: lengthInMm.optional(),
@@ -23844,17 +23863,17 @@ var svgPathPoints = normalizeOnY([
23844
23863
  ]);
23845
23864
  var DIP_PIN_HEIGHT = 5.47;
23846
23865
  var heightAboveSurface = 0.5;
23847
- var DipPinLeg = ({ x, y, z: z102 }) => {
23866
+ var DipPinLeg = ({ x, y, z: z103 }) => {
23848
23867
  const isRotated = x > 0;
23849
23868
  return /* @__PURE__ */ jsxs(Fragment22, { children: [
23850
- /* @__PURE__ */ jsx5(Translate, { offset: { x: x + 0.25 / 2, y, z: z102 }, 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]) }) }) }) }),
23869
+ /* @__PURE__ */ jsx5(Translate, { offset: { x: x + 0.25 / 2, y, z: z103 }, 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]) }) }) }) }),
23851
23870
  /* @__PURE__ */ jsx5(
23852
23871
  Translate,
23853
23872
  {
23854
23873
  offset: {
23855
23874
  x,
23856
23875
  y: y + (isRotated ? 1 : -1),
23857
- z: z102
23876
+ z: z103
23858
23877
  },
23859
23878
  children: /* @__PURE__ */ jsx5(Rotate, { rotation: ["-90deg", "90deg", isRotated ? "180deg" : "0deg"], children: /* @__PURE__ */ jsx5(ExtrudeLinear, { height: 2, children: /* @__PURE__ */ jsx5(
23860
23879
  Polygon,
@@ -25683,7 +25702,7 @@ var AnyCadComponent = ({
25683
25702
  source_component_id: cad_component2.source_component_id
25684
25703
  })?.name;
25685
25704
  }, [circuitJson, cad_component2.source_component_id]);
25686
- const url = cad_component2.model_obj_url ?? cad_component2.model_stl_url;
25705
+ const url = cad_component2.model_obj_url ?? cad_component2.model_wrl_url ?? cad_component2.model_stl_url;
25687
25706
  const gltfUrl = cad_component2.model_gltf_url;
25688
25707
  const rotationOffset = cad_component2.rotation ? tuple(
25689
25708
  cad_component2.rotation.x * Math.PI / 180,
@@ -25789,7 +25808,7 @@ import * as THREE11 from "three";
25789
25808
  // package.json
25790
25809
  var package_default = {
25791
25810
  name: "@tscircuit/3d-viewer",
25792
- version: "0.0.369",
25811
+ version: "0.0.371",
25793
25812
  main: "./dist/index.js",
25794
25813
  module: "./dist/index.js",
25795
25814
  type: "module",
@@ -25837,7 +25856,7 @@ var package_default = {
25837
25856
  "@storybook/react-vite": "^9.1.2",
25838
25857
  "@tscircuit/circuit-json-util": "^0.0.67",
25839
25858
  "@tscircuit/core": "^0.0.691",
25840
- "@tscircuit/props": "^0.0.300",
25859
+ "@tscircuit/props": "^0.0.312",
25841
25860
  "@types/jsdom": "^21.1.7",
25842
25861
  "@types/react": "19",
25843
25862
  "@types/react-dom": "19",
@@ -25845,7 +25864,7 @@ var package_default = {
25845
25864
  "@vitejs/plugin-react": "^4.3.4",
25846
25865
  "bun-match-svg": "^0.0.9",
25847
25866
  "bun-types": "1.2.1",
25848
- "circuit-json": "^0.0.242",
25867
+ "circuit-json": "0.0.246",
25849
25868
  "circuit-to-svg": "^0.0.179",
25850
25869
  debug: "^4.4.0",
25851
25870
  "jscad-electronics": "^0.0.38",
@@ -29876,6 +29895,7 @@ import * as THREE25 from "three";
29876
29895
  import { GLTFLoader as GLTFLoader2 } from "three/examples/jsm/loaders/GLTFLoader.js";
29877
29896
  import { OBJLoader as OBJLoader2 } from "three/examples/jsm/loaders/OBJLoader.js";
29878
29897
  import { STLLoader as STLLoader2 } from "three/examples/jsm/loaders/STLLoader.js";
29898
+ import { VRMLLoader as VRMLLoader2 } from "three/examples/jsm/loaders/VRMLLoader.js";
29879
29899
  async function load3DModel(url) {
29880
29900
  if (url.endsWith(".stl")) {
29881
29901
  const loader = new STLLoader2();
@@ -29891,6 +29911,10 @@ async function load3DModel(url) {
29891
29911
  const loader = new OBJLoader2();
29892
29912
  return await loader.loadAsync(url);
29893
29913
  }
29914
+ if (url.endsWith(".wrl")) {
29915
+ const loader = new VRMLLoader2();
29916
+ return await loader.loadAsync(url);
29917
+ }
29894
29918
  if (url.endsWith(".gltf") || url.endsWith(".glb")) {
29895
29919
  const loader = new GLTFLoader2();
29896
29920
  const gltf = await loader.loadAsync(url);
@@ -29902,7 +29926,7 @@ async function load3DModel(url) {
29902
29926
 
29903
29927
  // src/utils/render-component.tsx
29904
29928
  async function renderComponent(component, scene) {
29905
- const url = component.model_obj_url ?? component.model_stl_url ?? component.model_gltf_url;
29929
+ const url = component.model_obj_url ?? component.model_wrl_url ?? component.model_stl_url ?? component.model_gltf_url;
29906
29930
  if (url) {
29907
29931
  const model = await load3DModel(url);
29908
29932
  if (model) {