@tscircuit/props 0.0.216 → 0.0.218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -427,6 +427,7 @@ var pinCompatibleVariant = z24.object({
427
427
  var chipProps = commonComponentProps.extend({
428
428
  manufacturerPartNumber: z24.string().optional(),
429
429
  pinLabels: pinLabelsProp.optional(),
430
+ showPinAliases: z24.boolean().optional(),
430
431
  internallyConnectedPins: z24.array(z24.array(z24.string())).optional(),
431
432
  externallyConnectedPins: z24.array(z24.array(z24.string())).optional(),
432
433
  schPinArrangement: schematicPortArrangement.optional(),
@@ -934,6 +935,7 @@ import { z as z49 } from "zod";
934
935
  import { rotation as rotation2 } from "circuit-json";
935
936
  var netAliasProps = z49.object({
936
937
  net: z49.string().optional(),
938
+ connection: z49.string().optional(),
937
939
  schX: distance12.optional(),
938
940
  schY: distance12.optional(),
939
941
  schRotation: rotation2.optional(),
@@ -941,6 +943,19 @@ var netAliasProps = z49.object({
941
943
  });
942
944
  expectTypesMatch(true);
943
945
 
946
+ // lib/components/netlabel.ts
947
+ import { z as z50 } from "zod";
948
+ import { rotation as rotation3 } from "circuit-json";
949
+ var netLabelProps = z50.object({
950
+ net: z50.string().optional(),
951
+ connection: z50.string().optional(),
952
+ schX: distance12.optional(),
953
+ schY: distance12.optional(),
954
+ schRotation: rotation3.optional(),
955
+ anchorSide: z50.enum(["left", "up", "right", "down"]).optional()
956
+ });
957
+ expectTypesMatch(true);
958
+
944
959
  // lib/components/push-button.ts
945
960
  import "zod";
946
961
  var pushButtonProps = chipProps.extend({});
@@ -951,9 +966,9 @@ var subcircuitProps = subcircuitGroupProps;
951
966
  expectTypesMatch(true);
952
967
 
953
968
  // lib/components/transistor.ts
954
- import { z as z51 } from "zod";
969
+ import { z as z52 } from "zod";
955
970
  var transistorProps = commonComponentProps.extend({
956
- type: z51.enum(["npn", "pnp", "bjt", "jfet", "mosfet"])
971
+ type: z52.enum(["npn", "pnp", "bjt", "jfet", "mosfet"])
957
972
  });
958
973
  var transistorPins = [
959
974
  "pin1",
@@ -966,10 +981,10 @@ var transistorPins = [
966
981
  expectTypesMatch(true);
967
982
 
968
983
  // lib/components/mosfet.ts
969
- import { z as z52 } from "zod";
984
+ import { z as z53 } from "zod";
970
985
  var mosfetProps = commonComponentProps.extend({
971
- channelType: z52.enum(["n", "p"]),
972
- mosfetMode: z52.enum(["enhancement", "depletion"])
986
+ channelType: z53.enum(["n", "p"]),
987
+ mosfetMode: z53.enum(["enhancement", "depletion"])
973
988
  });
974
989
  var mosfetPins = [
975
990
  "pin1",
@@ -989,8 +1004,8 @@ var inductorProps = commonComponentProps.extend({
989
1004
  var inductorPins = lrPins;
990
1005
 
991
1006
  // lib/components/diode.ts
992
- import { z as z53 } from "zod";
993
- var diodeConnectionKeys = z53.enum([
1007
+ import { z as z54 } from "zod";
1008
+ var diodeConnectionKeys = z54.enum([
994
1009
  "anode",
995
1010
  "cathode",
996
1011
  "pin1",
@@ -998,17 +1013,17 @@ var diodeConnectionKeys = z53.enum([
998
1013
  "pos",
999
1014
  "neg"
1000
1015
  ]);
1001
- var connectionTarget3 = z53.string().or(z53.array(z53.string()).readonly()).or(z53.array(z53.string()));
1002
- var connectionsProp2 = z53.record(diodeConnectionKeys, connectionTarget3);
1003
- var diodeVariant = z53.enum(["standard", "schottky", "zener", "photo", "tvs"]);
1016
+ var connectionTarget3 = z54.string().or(z54.array(z54.string()).readonly()).or(z54.array(z54.string()));
1017
+ var connectionsProp2 = z54.record(diodeConnectionKeys, connectionTarget3);
1018
+ var diodeVariant = z54.enum(["standard", "schottky", "zener", "photo", "tvs"]);
1004
1019
  var diodeProps = commonComponentProps.extend({
1005
1020
  connections: connectionsProp2.optional(),
1006
1021
  variant: diodeVariant.optional().default("standard"),
1007
- standard: z53.boolean().optional(),
1008
- schottky: z53.boolean().optional(),
1009
- zener: z53.boolean().optional(),
1010
- photo: z53.boolean().optional(),
1011
- tvs: z53.boolean().optional()
1022
+ standard: z54.boolean().optional(),
1023
+ schottky: z54.boolean().optional(),
1024
+ zener: z54.boolean().optional(),
1025
+ photo: z54.boolean().optional(),
1026
+ tvs: z54.boolean().optional()
1012
1027
  }).superRefine((data, ctx) => {
1013
1028
  const enabledFlags = [
1014
1029
  data.standard,
@@ -1019,11 +1034,11 @@ var diodeProps = commonComponentProps.extend({
1019
1034
  ].filter(Boolean).length;
1020
1035
  if (enabledFlags > 1) {
1021
1036
  ctx.addIssue({
1022
- code: z53.ZodIssueCode.custom,
1037
+ code: z54.ZodIssueCode.custom,
1023
1038
  message: "Exactly one diode variant must be enabled",
1024
1039
  path: []
1025
1040
  });
1026
- return z53.INVALID;
1041
+ return z54.INVALID;
1027
1042
  }
1028
1043
  }).transform((data) => {
1029
1044
  const result = {
@@ -1071,23 +1086,23 @@ var diodePins = lrPolarPins;
1071
1086
  expectTypesMatch(true);
1072
1087
 
1073
1088
  // lib/components/led.ts
1074
- import { z as z54 } from "zod";
1089
+ import { z as z55 } from "zod";
1075
1090
  var ledProps = commonComponentProps.extend({
1076
- color: z54.string().optional(),
1077
- wavelength: z54.string().optional(),
1078
- schDisplayValue: z54.string().optional()
1091
+ color: z55.string().optional(),
1092
+ wavelength: z55.string().optional(),
1093
+ schDisplayValue: z55.string().optional()
1079
1094
  });
1080
1095
  var ledPins = lrPolarPins;
1081
1096
 
1082
1097
  // lib/components/switch.ts
1083
- import { z as z55 } from "zod";
1098
+ import { z as z56 } from "zod";
1084
1099
  var switchProps = commonComponentProps.extend({
1085
- type: z55.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1086
- isNormallyClosed: z55.boolean().optional().default(false),
1087
- spst: z55.boolean().optional(),
1088
- spdt: z55.boolean().optional(),
1089
- dpst: z55.boolean().optional(),
1090
- dpdt: z55.boolean().optional()
1100
+ type: z56.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1101
+ isNormallyClosed: z56.boolean().optional().default(false),
1102
+ spst: z56.boolean().optional(),
1103
+ spdt: z56.boolean().optional(),
1104
+ dpst: z56.boolean().optional(),
1105
+ dpdt: z56.boolean().optional()
1091
1106
  }).transform((props) => {
1092
1107
  const updatedProps = { ...props };
1093
1108
  if (updatedProps.dpdt) {
@@ -1119,31 +1134,31 @@ expectTypesMatch(true);
1119
1134
 
1120
1135
  // lib/components/fabrication-note-text.ts
1121
1136
  import { length as length3 } from "circuit-json";
1122
- import { z as z56 } from "zod";
1137
+ import { z as z57 } from "zod";
1123
1138
  var fabricationNoteTextProps = pcbLayoutProps.extend({
1124
- text: z56.string(),
1125
- anchorAlignment: z56.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1126
- font: z56.enum(["tscircuit2024"]).optional(),
1139
+ text: z57.string(),
1140
+ anchorAlignment: z57.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1141
+ font: z57.enum(["tscircuit2024"]).optional(),
1127
1142
  fontSize: length3.optional(),
1128
- color: z56.string().optional()
1143
+ color: z57.string().optional()
1129
1144
  });
1130
1145
 
1131
1146
  // lib/components/fabrication-note-path.ts
1132
1147
  import { length as length4, route_hint_point as route_hint_point3 } from "circuit-json";
1133
- import { z as z57 } from "zod";
1148
+ import { z as z58 } from "zod";
1134
1149
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1135
- route: z57.array(route_hint_point3),
1150
+ route: z58.array(route_hint_point3),
1136
1151
  strokeWidth: length4.optional(),
1137
- color: z57.string().optional()
1152
+ color: z58.string().optional()
1138
1153
  });
1139
1154
 
1140
1155
  // lib/components/pcb-trace.ts
1141
1156
  import { distance as distance15, route_hint_point as route_hint_point4 } from "circuit-json";
1142
- import { z as z58 } from "zod";
1143
- var pcbTraceProps = z58.object({
1144
- layer: z58.string().optional(),
1157
+ import { z as z59 } from "zod";
1158
+ var pcbTraceProps = z59.object({
1159
+ layer: z59.string().optional(),
1145
1160
  thickness: distance15.optional(),
1146
- route: z58.array(route_hint_point4)
1161
+ route: z59.array(route_hint_point4)
1147
1162
  });
1148
1163
 
1149
1164
  // lib/components/via.ts
@@ -1157,10 +1172,10 @@ var viaProps = commonLayoutProps.extend({
1157
1172
 
1158
1173
  // lib/components/testpoint.ts
1159
1174
  import { distance as distance17 } from "circuit-json";
1160
- import { z as z59 } from "zod";
1175
+ import { z as z60 } from "zod";
1161
1176
  var testpointProps = commonComponentProps.extend({
1162
- footprintVariant: z59.enum(["pad", "through_hole"]).optional().default("pad"),
1163
- padShape: z59.enum(["rect", "circle"]).optional().default("circle"),
1177
+ footprintVariant: z60.enum(["pad", "through_hole"]).optional().default("pad"),
1178
+ padShape: z60.enum(["rect", "circle"]).optional().default("circle"),
1164
1179
  padDiameter: distance17.optional(),
1165
1180
  holeDiameter: distance17.optional(),
1166
1181
  width: distance17.optional(),
@@ -1172,22 +1187,22 @@ var testpointProps = commonComponentProps.extend({
1172
1187
  expectTypesMatch(true);
1173
1188
 
1174
1189
  // lib/components/breakoutpoint.ts
1175
- import { z as z60 } from "zod";
1190
+ import { z as z61 } from "zod";
1176
1191
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
1177
- connection: z60.string()
1192
+ connection: z61.string()
1178
1193
  });
1179
1194
  expectTypesMatch(true);
1180
1195
 
1181
1196
  // lib/components/pcb-keepout.ts
1182
1197
  import { distance as distance18 } from "circuit-json";
1183
- import { z as z61 } from "zod";
1184
- var pcbKeepoutProps = z61.union([
1198
+ import { z as z62 } from "zod";
1199
+ var pcbKeepoutProps = z62.union([
1185
1200
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
1186
- shape: z61.literal("circle"),
1201
+ shape: z62.literal("circle"),
1187
1202
  radius: distance18
1188
1203
  }),
1189
1204
  pcbLayoutProps.extend({
1190
- shape: z61.literal("rect"),
1205
+ shape: z62.literal("rect"),
1191
1206
  width: distance18,
1192
1207
  height: distance18
1193
1208
  })
@@ -1201,11 +1216,11 @@ var powerSourceProps = commonComponentProps.extend({
1201
1216
 
1202
1217
  // lib/components/schematic-box.ts
1203
1218
  import { distance as distance19 } from "circuit-json";
1204
- import { z as z63 } from "zod";
1219
+ import { z as z64 } from "zod";
1205
1220
 
1206
1221
  // lib/common/nine_point_anchor.ts
1207
- import { z as z62 } from "zod";
1208
- var nine_point_anchor = z62.enum([
1222
+ import { z as z63 } from "zod";
1223
+ var nine_point_anchor = z63.enum([
1209
1224
  "top_left",
1210
1225
  "top_center",
1211
1226
  "top_right",
@@ -1218,23 +1233,23 @@ var nine_point_anchor = z62.enum([
1218
1233
  ]);
1219
1234
 
1220
1235
  // lib/components/schematic-box.ts
1221
- var schematicBoxProps = z63.object({
1236
+ var schematicBoxProps = z64.object({
1222
1237
  schX: distance19,
1223
1238
  schY: distance19,
1224
1239
  width: distance19.optional(),
1225
1240
  height: distance19.optional(),
1226
- overlay: z63.array(z63.string()).optional(),
1241
+ overlay: z64.array(z64.string()).optional(),
1227
1242
  padding: distance19.optional(),
1228
1243
  paddingLeft: distance19.optional(),
1229
1244
  paddingRight: distance19.optional(),
1230
1245
  paddingTop: distance19.optional(),
1231
1246
  paddingBottom: distance19.optional(),
1232
- title: z63.string().optional(),
1247
+ title: z64.string().optional(),
1233
1248
  titleAlignment: nine_point_anchor.default("center"),
1234
- titleColor: z63.string().optional(),
1249
+ titleColor: z64.string().optional(),
1235
1250
  titleFontSize: distance19.optional(),
1236
- titleInside: z63.boolean().default(false),
1237
- strokeStyle: z63.enum(["solid", "dashed"]).default("solid")
1251
+ titleInside: z64.boolean().default(false),
1252
+ strokeStyle: z64.enum(["solid", "dashed"]).default("solid")
1238
1253
  }).refine(
1239
1254
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
1240
1255
  {
@@ -1249,8 +1264,8 @@ var schematicBoxProps = z63.object({
1249
1264
 
1250
1265
  // lib/components/schematic-line.ts
1251
1266
  import { distance as distance20 } from "circuit-json";
1252
- import { z as z64 } from "zod";
1253
- var schematicLineProps = z64.object({
1267
+ import { z as z65 } from "zod";
1268
+ var schematicLineProps = z65.object({
1254
1269
  x1: distance20,
1255
1270
  y1: distance20,
1256
1271
  x2: distance20,
@@ -1258,12 +1273,12 @@ var schematicLineProps = z64.object({
1258
1273
  });
1259
1274
 
1260
1275
  // lib/components/schematic-text.ts
1261
- import { distance as distance21, rotation as rotation3 } from "circuit-json";
1262
- import { z as z66 } from "zod";
1276
+ import { distance as distance21, rotation as rotation4 } from "circuit-json";
1277
+ import { z as z67 } from "zod";
1263
1278
 
1264
1279
  // lib/common/five_point_anchor.ts
1265
- import { z as z65 } from "zod";
1266
- var five_point_anchor = z65.enum([
1280
+ import { z as z66 } from "zod";
1281
+ var five_point_anchor = z66.enum([
1267
1282
  "center",
1268
1283
  "left",
1269
1284
  "right",
@@ -1272,40 +1287,40 @@ var five_point_anchor = z65.enum([
1272
1287
  ]);
1273
1288
 
1274
1289
  // lib/components/schematic-text.ts
1275
- var schematicTextProps = z66.object({
1290
+ var schematicTextProps = z67.object({
1276
1291
  schX: distance21,
1277
1292
  schY: distance21,
1278
- text: z66.string(),
1279
- fontSize: z66.number().default(1),
1280
- anchor: z66.union([five_point_anchor.describe("legacy"), nine_point_anchor]).default("center"),
1281
- color: z66.string().default("#000000"),
1282
- schRotation: rotation3.default(0)
1293
+ text: z67.string(),
1294
+ fontSize: z67.number().default(1),
1295
+ anchor: z67.union([five_point_anchor.describe("legacy"), nine_point_anchor]).default("center"),
1296
+ color: z67.string().default("#000000"),
1297
+ schRotation: rotation4.default(0)
1283
1298
  });
1284
1299
 
1285
1300
  // lib/components/schematic-path.ts
1286
1301
  import { point as point5 } from "circuit-json";
1287
- import { z as z67 } from "zod";
1288
- var schematicPathProps = z67.object({
1289
- points: z67.array(point5),
1290
- isFilled: z67.boolean().optional().default(false),
1291
- fillColor: z67.enum(["red", "blue"]).optional()
1302
+ import { z as z68 } from "zod";
1303
+ var schematicPathProps = z68.object({
1304
+ points: z68.array(point5),
1305
+ isFilled: z68.boolean().optional().default(false),
1306
+ fillColor: z68.enum(["red", "blue"]).optional()
1292
1307
  });
1293
1308
 
1294
1309
  // lib/components/silkscreen-text.ts
1295
1310
  import { length as length5 } from "circuit-json";
1296
- import { z as z68 } from "zod";
1311
+ import { z as z69 } from "zod";
1297
1312
  var silkscreenTextProps = pcbLayoutProps.extend({
1298
- text: z68.string(),
1313
+ text: z69.string(),
1299
1314
  anchorAlignment: nine_point_anchor.default("center"),
1300
- font: z68.enum(["tscircuit2024"]).optional(),
1315
+ font: z69.enum(["tscircuit2024"]).optional(),
1301
1316
  fontSize: length5.optional()
1302
1317
  });
1303
1318
 
1304
1319
  // lib/components/silkscreen-path.ts
1305
1320
  import { length as length6, route_hint_point as route_hint_point5 } from "circuit-json";
1306
- import { z as z69 } from "zod";
1321
+ import { z as z70 } from "zod";
1307
1322
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1308
- route: z69.array(route_hint_point5),
1323
+ route: z70.array(route_hint_point5),
1309
1324
  strokeWidth: length6.optional()
1310
1325
  });
1311
1326
 
@@ -1321,10 +1336,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotat
1321
1336
 
1322
1337
  // lib/components/silkscreen-rect.ts
1323
1338
  import { distance as distance23 } from "circuit-json";
1324
- import { z as z70 } from "zod";
1339
+ import { z as z71 } from "zod";
1325
1340
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1326
- filled: z70.boolean().default(true).optional(),
1327
- stroke: z70.enum(["dashed", "solid", "none"]).optional(),
1341
+ filled: z71.boolean().default(true).optional(),
1342
+ stroke: z71.enum(["dashed", "solid", "none"]).optional(),
1328
1343
  strokeWidth: distance23.optional(),
1329
1344
  width: distance23,
1330
1345
  height: distance23
@@ -1332,60 +1347,60 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1332
1347
 
1333
1348
  // lib/components/silkscreen-circle.ts
1334
1349
  import { distance as distance24 } from "circuit-json";
1335
- import { z as z71 } from "zod";
1350
+ import { z as z72 } from "zod";
1336
1351
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1337
- isFilled: z71.boolean().optional(),
1338
- isOutline: z71.boolean().optional(),
1352
+ isFilled: z72.boolean().optional(),
1353
+ isOutline: z72.boolean().optional(),
1339
1354
  strokeWidth: distance24.optional(),
1340
1355
  radius: distance24
1341
1356
  });
1342
1357
 
1343
1358
  // lib/components/trace-hint.ts
1344
1359
  import { distance as distance25, layer_ref as layer_ref6, route_hint_point as route_hint_point6 } from "circuit-json";
1345
- import { z as z72 } from "zod";
1346
- var routeHintPointProps = z72.object({
1360
+ import { z as z73 } from "zod";
1361
+ var routeHintPointProps = z73.object({
1347
1362
  x: distance25,
1348
1363
  y: distance25,
1349
- via: z72.boolean().optional(),
1364
+ via: z73.boolean().optional(),
1350
1365
  toLayer: layer_ref6.optional()
1351
1366
  });
1352
- var traceHintProps = z72.object({
1353
- for: z72.string().optional().describe(
1367
+ var traceHintProps = z73.object({
1368
+ for: z73.string().optional().describe(
1354
1369
  "Selector for the port you're targeting, not required if you're inside a trace"
1355
1370
  ),
1356
- order: z72.number().optional(),
1371
+ order: z73.number().optional(),
1357
1372
  offset: route_hint_point6.or(routeHintPointProps).optional(),
1358
- offsets: z72.array(route_hint_point6).or(z72.array(routeHintPointProps)).optional(),
1359
- traceWidth: z72.number().optional()
1373
+ offsets: z73.array(route_hint_point6).or(z73.array(routeHintPointProps)).optional(),
1374
+ traceWidth: z73.number().optional()
1360
1375
  });
1361
1376
 
1362
1377
  // lib/components/port.ts
1363
- import { z as z73 } from "zod";
1378
+ import { z as z74 } from "zod";
1364
1379
  var portProps = commonLayoutProps.extend({
1365
- name: z73.string(),
1366
- pinNumber: z73.number().optional(),
1367
- aliases: z73.array(z73.string()).optional(),
1380
+ name: z74.string(),
1381
+ pinNumber: z74.number().optional(),
1382
+ aliases: z74.array(z74.string()).optional(),
1368
1383
  direction
1369
1384
  });
1370
1385
 
1371
1386
  // lib/platformConfig.ts
1372
- import { z as z74 } from "zod";
1373
- var unvalidatedCircuitJson = z74.array(z74.any()).describe("Circuit JSON");
1374
- var pathToCircuitJsonFn = z74.function().args(z74.string()).returns(z74.promise(z74.object({ footprintCircuitJson: z74.array(z74.any()) }))).describe("A function that takes a path and returns Circuit JSON");
1375
- var platformConfig = z74.object({
1387
+ import { z as z75 } from "zod";
1388
+ var unvalidatedCircuitJson = z75.array(z75.any()).describe("Circuit JSON");
1389
+ var pathToCircuitJsonFn = z75.function().args(z75.string()).returns(z75.promise(z75.object({ footprintCircuitJson: z75.array(z75.any()) }))).describe("A function that takes a path and returns Circuit JSON");
1390
+ var platformConfig = z75.object({
1376
1391
  partsEngine: partsEngine.optional(),
1377
1392
  autorouter: autorouterProp.optional(),
1378
- registryApiUrl: z74.string().optional(),
1379
- cloudAutorouterUrl: z74.string().optional(),
1380
- localCacheEngine: z74.any().optional(),
1381
- pcbDisabled: z74.boolean().optional(),
1382
- schematicDisabled: z74.boolean().optional(),
1383
- partsEngineDisabled: z74.boolean().optional(),
1384
- footprintLibraryMap: z74.record(
1385
- z74.string(),
1386
- z74.record(
1387
- z74.string(),
1388
- z74.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
1393
+ registryApiUrl: z75.string().optional(),
1394
+ cloudAutorouterUrl: z75.string().optional(),
1395
+ localCacheEngine: z75.any().optional(),
1396
+ pcbDisabled: z75.boolean().optional(),
1397
+ schematicDisabled: z75.boolean().optional(),
1398
+ partsEngineDisabled: z75.boolean().optional(),
1399
+ footprintLibraryMap: z75.record(
1400
+ z75.string(),
1401
+ z75.record(
1402
+ z75.string(),
1403
+ z75.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
1389
1404
  )
1390
1405
  ).optional()
1391
1406
  });
@@ -1458,6 +1473,7 @@ export {
1458
1473
  mosfetPins,
1459
1474
  mosfetProps,
1460
1475
  netAliasProps,
1476
+ netLabelProps,
1461
1477
  netProps,
1462
1478
  partsEngine,
1463
1479
  pcbKeepoutProps,