@tscircuit/props 0.0.579 → 0.0.580

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
@@ -25,10 +25,46 @@ var calcString = z2.string().regex(/^calc\(.*\)$/);
25
25
  var distance = baseDistance;
26
26
  var pcbCoordinate = calcString.or(baseDistance);
27
27
 
28
- // lib/enclosure/fdm/box.ts
28
+ // lib/common/commonShape.ts
29
29
  import { z as z3 } from "zod";
30
- var enclosureFdmBoxProps = z3.object({
31
- boardRef: z3.string().min(1),
30
+ var pillShapeProps = z3.object({
31
+ shape: z3.literal("pill"),
32
+ width: distance,
33
+ height: distance
34
+ });
35
+ var rectShapeProps = z3.object({
36
+ shape: z3.literal("rect"),
37
+ width: distance,
38
+ height: distance
39
+ });
40
+ var circleShapeProps = z3.object({
41
+ shape: z3.literal("circle"),
42
+ radius: distance
43
+ });
44
+ var commonShapeProps = z3.discriminatedUnion("shape", [
45
+ pillShapeProps,
46
+ rectShapeProps,
47
+ circleShapeProps
48
+ ]);
49
+ expectTypesMatch(true);
50
+
51
+ // lib/enclosure/cutout-aperture.ts
52
+ import { z as z4 } from "zod";
53
+ var enclosureCutoutApertureShapes = ["pill", "rect", "circle"];
54
+ var apertureOnlyProps = {
55
+ margin: distance.optional()
56
+ };
57
+ var enclosureCutoutApertureProps = z4.discriminatedUnion("shape", [
58
+ pillShapeProps.extend(apertureOnlyProps),
59
+ rectShapeProps.extend(apertureOnlyProps),
60
+ circleShapeProps.extend(apertureOnlyProps)
61
+ ]);
62
+ expectTypesMatch(true);
63
+
64
+ // lib/enclosure/fdm/box.ts
65
+ import { z as z5 } from "zod";
66
+ var enclosureFdmBoxProps = z5.object({
67
+ boardRef: z5.string().min(1),
32
68
  width: distance.optional(),
33
69
  height: distance.optional(),
34
70
  depth: distance.optional(),
@@ -38,14 +74,15 @@ expectTypesMatch(true);
38
74
 
39
75
  // lib/enclosure/index.ts
40
76
  var enclosureProps = {
77
+ cutoutaperture: enclosureCutoutApertureProps,
41
78
  fdm: {
42
- Box: enclosureFdmBoxProps
79
+ box: enclosureFdmBoxProps
43
80
  }
44
81
  };
45
82
 
46
83
  // lib/common/portHints.ts
47
- import { z as z4 } from "zod";
48
- var portHints = z4.array(z4.string().or(z4.number()));
84
+ import { z as z6 } from "zod";
85
+ var portHints = z6.array(z6.string().or(z6.number()));
49
86
  expectTypesMatch(true);
50
87
 
51
88
  // lib/common/layout.ts
@@ -55,34 +92,34 @@ import {
55
92
  rotation as rotation2,
56
93
  supplier_name
57
94
  } from "circuit-json";
58
- import { z as z17 } from "zod";
95
+ import { z as z19 } from "zod";
59
96
 
60
97
  // lib/common/cadModel.ts
61
- import { z as z7 } from "zod";
98
+ import { z as z9 } from "zod";
62
99
 
63
100
  // lib/common/point3.ts
64
101
  import { distance as distance2 } from "circuit-json";
65
- import { z as z5 } from "zod";
66
- var point3 = z5.object({
102
+ import { z as z7 } from "zod";
103
+ var point3 = z7.object({
67
104
  x: distance2,
68
105
  y: distance2,
69
106
  z: distance2
70
107
  });
71
108
 
72
109
  // lib/common/url.ts
73
- import { z as z6 } from "zod";
74
- var url = z6.preprocess((value) => {
110
+ import { z as z8 } from "zod";
111
+ var url = z8.preprocess((value) => {
75
112
  if (value && typeof value === "object" && "default" in value) {
76
113
  return value.default;
77
114
  }
78
115
  return value;
79
- }, z6.string());
116
+ }, z8.string());
80
117
 
81
118
  // lib/common/cadModel.ts
82
- var rotationPoint3 = z7.object({
83
- x: z7.union([z7.number(), z7.string()]),
84
- y: z7.union([z7.number(), z7.string()]),
85
- z: z7.union([z7.number(), z7.string()])
119
+ var rotationPoint3 = z9.object({
120
+ x: z9.union([z9.number(), z9.string()]),
121
+ y: z9.union([z9.number(), z9.string()]),
122
+ z: z9.union([z9.number(), z9.string()])
86
123
  });
87
124
  var cadModelAxisDirections = [
88
125
  "x+",
@@ -92,17 +129,17 @@ var cadModelAxisDirections = [
92
129
  "z+",
93
130
  "z-"
94
131
  ];
95
- var cadModelAxisDirection = z7.enum(cadModelAxisDirections);
96
- var cadModelBase = z7.object({
97
- rotationOffset: z7.number().or(rotationPoint3).optional(),
132
+ var cadModelAxisDirection = z9.enum(cadModelAxisDirections);
133
+ var cadModelBase = z9.object({
134
+ rotationOffset: z9.number().or(rotationPoint3).optional(),
98
135
  positionOffset: point3.optional(),
99
136
  modelOriginPosition: point3.optional(),
100
137
  size: point3.optional(),
101
138
  modelUnitToMmScale: distance.optional(),
102
139
  modelBoardNormalDirection: cadModelAxisDirection.optional(),
103
- pcbRotationOffset: z7.number().optional(),
140
+ pcbRotationOffset: z9.number().optional(),
104
141
  zOffsetFromSurface: distance.optional(),
105
- showAsTranslucentModel: z7.boolean().optional(),
142
+ showAsTranslucentModel: z9.boolean().optional(),
106
143
  stepUrl: url.optional()
107
144
  });
108
145
  expectTypesMatch(true);
@@ -126,12 +163,12 @@ var cadModelWrl = cadModelBase.extend({
126
163
  wrlUrl: url
127
164
  });
128
165
  var cadModelJscad = cadModelBase.extend({
129
- jscad: z7.record(z7.any())
166
+ jscad: z9.record(z9.any())
130
167
  });
131
- var cadModelProp = z7.union([
132
- z7.null(),
168
+ var cadModelProp = z9.union([
169
+ z9.null(),
133
170
  url,
134
- z7.custom((v) => {
171
+ z9.custom((v) => {
135
172
  return v && typeof v === "object" && "type" in v && "props" in v;
136
173
  }),
137
174
  cadModelStl,
@@ -145,17 +182,17 @@ var cadModelProp = z7.union([
145
182
  expectTypesMatch(true);
146
183
 
147
184
  // lib/common/footprintProp.ts
148
- import { z as z8 } from "zod";
149
- var footprintProp = z8.custom((v) => true);
185
+ import { z as z10 } from "zod";
186
+ var footprintProp = z10.custom((v) => true);
150
187
 
151
188
  // lib/common/kicadFootprintMetadata.ts
152
189
  import { distance as distance4, rotation } from "circuit-json";
153
- import { z as z10 } from "zod";
190
+ import { z as z12 } from "zod";
154
191
 
155
192
  // lib/common/point.ts
156
193
  import { distance as distance3 } from "circuit-json";
157
- import { z as z9 } from "zod";
158
- var point = z9.object({
194
+ import { z as z11 } from "zod";
195
+ var point = z11.object({
159
196
  x: distance3,
160
197
  y: distance3
161
198
  });
@@ -165,25 +202,25 @@ var kicadAt = point.extend({
165
202
  rotation: rotation.optional()
166
203
  });
167
204
  expectTypesMatch(true);
168
- var kicadFont = z10.object({
205
+ var kicadFont = z12.object({
169
206
  size: point.optional(),
170
207
  thickness: distance4.optional()
171
208
  });
172
209
  expectTypesMatch(true);
173
- var kicadEffects = z10.object({
210
+ var kicadEffects = z12.object({
174
211
  font: kicadFont.optional()
175
212
  });
176
213
  expectTypesMatch(true);
177
- var kicadProperty = z10.object({
178
- value: z10.string(),
214
+ var kicadProperty = z12.object({
215
+ value: z12.string(),
179
216
  at: kicadAt.optional(),
180
- layer: z10.string().optional(),
181
- uuid: z10.string().optional(),
182
- hide: z10.boolean().optional(),
217
+ layer: z12.string().optional(),
218
+ uuid: z12.string().optional(),
219
+ hide: z12.boolean().optional(),
183
220
  effects: kicadEffects.optional()
184
221
  });
185
222
  expectTypesMatch(true);
186
- var kicadFootprintProperties = z10.object({
223
+ var kicadFootprintProperties = z12.object({
187
224
  Reference: kicadProperty.optional(),
188
225
  Value: kicadProperty.optional(),
189
226
  Datasheet: kicadProperty.optional(),
@@ -192,74 +229,74 @@ var kicadFootprintProperties = z10.object({
192
229
  expectTypesMatch(
193
230
  true
194
231
  );
195
- var kicadFootprintAttributes = z10.object({
196
- through_hole: z10.boolean().optional(),
197
- smd: z10.boolean().optional(),
198
- exclude_from_pos_files: z10.boolean().optional(),
199
- exclude_from_bom: z10.boolean().optional()
232
+ var kicadFootprintAttributes = z12.object({
233
+ through_hole: z12.boolean().optional(),
234
+ smd: z12.boolean().optional(),
235
+ exclude_from_pos_files: z12.boolean().optional(),
236
+ exclude_from_bom: z12.boolean().optional()
200
237
  });
201
238
  expectTypesMatch(
202
239
  true
203
240
  );
204
- var kicadFootprintPad = z10.object({
205
- name: z10.string(),
206
- type: z10.string(),
207
- shape: z10.string().optional(),
241
+ var kicadFootprintPad = z12.object({
242
+ name: z12.string(),
243
+ type: z12.string(),
244
+ shape: z12.string().optional(),
208
245
  at: kicadAt.optional(),
209
246
  size: point.optional(),
210
247
  drill: distance4.optional(),
211
- layers: z10.array(z10.string()).optional(),
212
- removeUnusedLayers: z10.boolean().optional(),
213
- uuid: z10.string().optional()
248
+ layers: z12.array(z12.string()).optional(),
249
+ removeUnusedLayers: z12.boolean().optional(),
250
+ uuid: z12.string().optional()
214
251
  });
215
252
  expectTypesMatch(true);
216
- var kicadFootprintModel = z10.object({
217
- path: z10.string(),
253
+ var kicadFootprintModel = z12.object({
254
+ path: z12.string(),
218
255
  offset: point3.optional(),
219
256
  scale: point3.optional(),
220
257
  rotate: point3.optional()
221
258
  });
222
259
  expectTypesMatch(true);
223
- var kicadFootprintMetadata = z10.object({
224
- footprintName: z10.string().optional(),
225
- version: z10.union([z10.number(), z10.string()]).optional(),
226
- generator: z10.string().optional(),
227
- generatorVersion: z10.union([z10.number(), z10.string()]).optional(),
228
- layer: z10.string().optional(),
260
+ var kicadFootprintMetadata = z12.object({
261
+ footprintName: z12.string().optional(),
262
+ version: z12.union([z12.number(), z12.string()]).optional(),
263
+ generator: z12.string().optional(),
264
+ generatorVersion: z12.union([z12.number(), z12.string()]).optional(),
265
+ layer: z12.string().optional(),
229
266
  properties: kicadFootprintProperties.optional(),
230
267
  attributes: kicadFootprintAttributes.optional(),
231
- pads: z10.array(kicadFootprintPad).optional(),
232
- embeddedFonts: z10.boolean().optional(),
268
+ pads: z12.array(kicadFootprintPad).optional(),
269
+ embeddedFonts: z12.boolean().optional(),
233
270
  model: kicadFootprintModel.optional()
234
271
  });
235
272
  expectTypesMatch(true);
236
273
 
237
274
  // lib/common/kicadSymbolMetadata.ts
238
275
  import { distance as distance5 } from "circuit-json";
239
- import { z as z11 } from "zod";
240
- var kicadSymbolPinNumbers = z11.object({
241
- hide: z11.boolean().optional()
276
+ import { z as z13 } from "zod";
277
+ var kicadSymbolPinNumbers = z13.object({
278
+ hide: z13.boolean().optional()
242
279
  });
243
280
  expectTypesMatch(true);
244
- var kicadSymbolPinNames = z11.object({
281
+ var kicadSymbolPinNames = z13.object({
245
282
  offset: distance5.optional(),
246
- hide: z11.boolean().optional()
283
+ hide: z13.boolean().optional()
247
284
  });
248
285
  expectTypesMatch(true);
249
- var kicadSymbolEffects = z11.object({
286
+ var kicadSymbolEffects = z13.object({
250
287
  font: kicadFont.optional(),
251
- justify: z11.union([z11.string(), z11.array(z11.string())]).optional(),
252
- hide: z11.boolean().optional()
288
+ justify: z13.union([z13.string(), z13.array(z13.string())]).optional(),
289
+ hide: z13.boolean().optional()
253
290
  });
254
291
  expectTypesMatch(true);
255
- var kicadSymbolProperty = z11.object({
256
- value: z11.string(),
257
- id: z11.union([z11.number(), z11.string()]).optional(),
292
+ var kicadSymbolProperty = z13.object({
293
+ value: z13.string(),
294
+ id: z13.union([z13.number(), z13.string()]).optional(),
258
295
  at: kicadAt.optional(),
259
296
  effects: kicadSymbolEffects.optional()
260
297
  });
261
298
  expectTypesMatch(true);
262
- var kicadSymbolProperties = z11.object({
299
+ var kicadSymbolProperties = z13.object({
263
300
  Reference: kicadSymbolProperty.optional(),
264
301
  Value: kicadSymbolProperty.optional(),
265
302
  Footprint: kicadSymbolProperty.optional(),
@@ -269,55 +306,55 @@ var kicadSymbolProperties = z11.object({
269
306
  ki_fp_filters: kicadSymbolProperty.optional()
270
307
  });
271
308
  expectTypesMatch(true);
272
- var kicadSymbolMetadata = z11.object({
273
- symbolName: z11.string().optional(),
274
- extends: z11.string().optional(),
309
+ var kicadSymbolMetadata = z13.object({
310
+ symbolName: z13.string().optional(),
311
+ extends: z13.string().optional(),
275
312
  pinNumbers: kicadSymbolPinNumbers.optional(),
276
313
  pinNames: kicadSymbolPinNames.optional(),
277
- excludeFromSim: z11.boolean().optional(),
278
- inBom: z11.boolean().optional(),
279
- onBoard: z11.boolean().optional(),
314
+ excludeFromSim: z13.boolean().optional(),
315
+ inBom: z13.boolean().optional(),
316
+ onBoard: z13.boolean().optional(),
280
317
  properties: kicadSymbolProperties.optional(),
281
- embeddedFonts: z11.boolean().optional()
318
+ embeddedFonts: z13.boolean().optional()
282
319
  });
283
320
  expectTypesMatch(true);
284
321
 
285
322
  // lib/common/pcbStyle.ts
286
323
  import { distance as distance6 } from "circuit-json";
287
- import { z as z12 } from "zod";
288
- var pcbStyle = z12.object({
324
+ import { z as z14 } from "zod";
325
+ var pcbStyle = z14.object({
289
326
  silkscreenFontSize: distance6.optional(),
290
327
  viaPadDiameter: distance6.optional(),
291
328
  viaHoleDiameter: distance6.optional(),
292
- silkscreenTextPosition: z12.union([
293
- z12.enum(["centered", "outside", "none"]),
294
- z12.object({
295
- offsetX: z12.number(),
296
- offsetY: z12.number()
329
+ silkscreenTextPosition: z14.union([
330
+ z14.enum(["centered", "outside", "none"]),
331
+ z14.object({
332
+ offsetX: z14.number(),
333
+ offsetY: z14.number()
297
334
  })
298
335
  ]).optional(),
299
- silkscreenTextVisibility: z12.enum(["hidden", "visible", "inherit"]).optional()
336
+ silkscreenTextVisibility: z14.enum(["hidden", "visible", "inherit"]).optional()
300
337
  });
301
338
  expectTypesMatch(true);
302
339
 
303
340
  // lib/common/pcbSx.ts
304
341
  import { length as length2 } from "circuit-json";
305
- import { z as z13 } from "zod";
306
- var pcbSxValue = z13.object({
342
+ import { z as z15 } from "zod";
343
+ var pcbSxValue = z15.object({
307
344
  fontSize: length2.optional(),
308
345
  pcbX: pcbCoordinate.optional(),
309
346
  pcbY: pcbCoordinate.optional(),
310
- visibility: z13.enum(["hidden", "visible", "inherit"]).optional()
347
+ visibility: z15.enum(["hidden", "visible", "inherit"]).optional()
311
348
  });
312
- var pcbSx = z13.record(
313
- z13.string(),
349
+ var pcbSx = z15.record(
350
+ z15.string(),
314
351
  pcbSxValue
315
352
  );
316
353
  expectTypesMatch(true);
317
354
 
318
355
  // lib/common/pinAttributeMap.ts
319
- import { z as z14 } from "zod";
320
- var pinCapability = z14.enum([
356
+ import { z as z16 } from "zod";
357
+ var pinCapability = z16.enum([
321
358
  "i2c_sda",
322
359
  "i2c_scl",
323
360
  "spi_cs",
@@ -327,51 +364,51 @@ var pinCapability = z14.enum([
327
364
  "uart_tx",
328
365
  "uart_rx"
329
366
  ]);
330
- var pinAttributeMap = z14.object({
331
- capabilities: z14.array(pinCapability).optional(),
332
- activeCapabilities: z14.array(pinCapability).optional(),
367
+ var pinAttributeMap = z16.object({
368
+ capabilities: z16.array(pinCapability).optional(),
369
+ activeCapabilities: z16.array(pinCapability).optional(),
333
370
  activeCapability: pinCapability.optional(),
334
- providesPower: z14.boolean().optional(),
335
- requiresPower: z14.boolean().optional(),
336
- providesGround: z14.boolean().optional(),
337
- requiresGround: z14.boolean().optional(),
338
- providesVoltage: z14.union([z14.string(), z14.number()]).optional(),
339
- requiresVoltage: z14.union([z14.string(), z14.number()]).optional(),
340
- doNotConnect: z14.boolean().optional(),
341
- includeInBoardPinout: z14.boolean().optional(),
342
- highlightColor: z14.string().optional(),
343
- mustBeConnected: z14.boolean().optional(),
344
- canUseInternalPullup: z14.boolean().optional(),
345
- isUsingInternalPullup: z14.boolean().optional(),
346
- needsExternalPullup: z14.boolean().optional(),
347
- canUseInternalPulldown: z14.boolean().optional(),
348
- isUsingInternalPulldown: z14.boolean().optional(),
349
- needsExternalPulldown: z14.boolean().optional(),
350
- canUseOpenDrain: z14.boolean().optional(),
351
- isUsingOpenDrain: z14.boolean().optional(),
352
- canUsePushPull: z14.boolean().optional(),
353
- isUsingPushPull: z14.boolean().optional(),
354
- shouldHaveDecouplingCapacitor: z14.boolean().optional(),
355
- recommendedDecouplingCapacitorCapacitance: z14.union([z14.string(), z14.number()]).optional(),
356
- isGpio: z14.boolean().optional()
371
+ providesPower: z16.boolean().optional(),
372
+ requiresPower: z16.boolean().optional(),
373
+ providesGround: z16.boolean().optional(),
374
+ requiresGround: z16.boolean().optional(),
375
+ providesVoltage: z16.union([z16.string(), z16.number()]).optional(),
376
+ requiresVoltage: z16.union([z16.string(), z16.number()]).optional(),
377
+ doNotConnect: z16.boolean().optional(),
378
+ includeInBoardPinout: z16.boolean().optional(),
379
+ highlightColor: z16.string().optional(),
380
+ mustBeConnected: z16.boolean().optional(),
381
+ canUseInternalPullup: z16.boolean().optional(),
382
+ isUsingInternalPullup: z16.boolean().optional(),
383
+ needsExternalPullup: z16.boolean().optional(),
384
+ canUseInternalPulldown: z16.boolean().optional(),
385
+ isUsingInternalPulldown: z16.boolean().optional(),
386
+ needsExternalPulldown: z16.boolean().optional(),
387
+ canUseOpenDrain: z16.boolean().optional(),
388
+ isUsingOpenDrain: z16.boolean().optional(),
389
+ canUsePushPull: z16.boolean().optional(),
390
+ isUsingPushPull: z16.boolean().optional(),
391
+ shouldHaveDecouplingCapacitor: z16.boolean().optional(),
392
+ recommendedDecouplingCapacitorCapacitance: z16.union([z16.string(), z16.number()]).optional(),
393
+ isGpio: z16.boolean().optional()
357
394
  });
358
395
  expectTypesMatch(true);
359
396
 
360
397
  // lib/common/schStyle.ts
361
398
  import { distance as distance7 } from "circuit-json";
362
- import { z as z15 } from "zod";
363
- var schStyle = z15.object({
364
- defaultPassiveSize: z15.union([z15.enum(["xs", "sm", "md"]), distance7]).optional(),
365
- defaultCapacitorOrientation: z15.enum(["vertical", "none"]).optional()
399
+ import { z as z17 } from "zod";
400
+ var schStyle = z17.object({
401
+ defaultPassiveSize: z17.union([z17.enum(["xs", "sm", "md"]), distance7]).optional(),
402
+ defaultCapacitorOrientation: z17.enum(["vertical", "none"]).optional()
366
403
  });
367
404
  expectTypesMatch(true);
368
405
 
369
406
  // lib/common/symbolProp.ts
370
- import { z as z16 } from "zod";
371
- var symbolProp = z16.custom((v) => true);
407
+ import { z as z18 } from "zod";
408
+ var symbolProp = z18.custom((v) => true);
372
409
 
373
410
  // lib/common/layout.ts
374
- var pcbLayoutProps = z17.object({
411
+ var pcbLayoutProps = z19.object({
375
412
  pcbX: pcbCoordinate.optional(),
376
413
  pcbY: pcbCoordinate.optional(),
377
414
  pcbLeftEdgeX: pcbCoordinate.optional(),
@@ -381,14 +418,14 @@ var pcbLayoutProps = z17.object({
381
418
  pcbOffsetX: distance8.optional(),
382
419
  pcbOffsetY: distance8.optional(),
383
420
  pcbRotation: rotation2.optional(),
384
- pcbPositionAnchor: z17.string().optional(),
385
- pcbPositionMode: z17.enum([
421
+ pcbPositionAnchor: z19.string().optional(),
422
+ pcbPositionMode: z19.enum([
386
423
  "relative_to_group_anchor",
387
424
  "auto",
388
425
  "relative_to_board_anchor",
389
426
  "relative_to_component_anchor"
390
427
  ]).optional(),
391
- shouldBeOnEdgeOfBoard: z17.boolean().optional(),
428
+ shouldBeOnEdgeOfBoard: z19.boolean().optional(),
392
429
  layer: layer_ref.optional(),
393
430
  pcbMarginTop: distance8.optional(),
394
431
  pcbMarginRight: distance8.optional(),
@@ -398,11 +435,11 @@ var pcbLayoutProps = z17.object({
398
435
  pcbMarginY: distance8.optional(),
399
436
  pcbStyle: pcbStyle.optional(),
400
437
  pcbSx: pcbSx.optional(),
401
- pcbRelative: z17.boolean().optional(),
402
- relative: z17.boolean().optional()
438
+ pcbRelative: z19.boolean().optional(),
439
+ relative: z19.boolean().optional()
403
440
  });
404
441
  expectTypesMatch(true);
405
- var commonLayoutProps = z17.object({
442
+ var commonLayoutProps = z19.object({
406
443
  pcbX: pcbCoordinate.optional(),
407
444
  pcbY: pcbCoordinate.optional(),
408
445
  pcbLeftEdgeX: pcbCoordinate.optional(),
@@ -412,14 +449,14 @@ var commonLayoutProps = z17.object({
412
449
  pcbOffsetX: distance8.optional(),
413
450
  pcbOffsetY: distance8.optional(),
414
451
  pcbRotation: rotation2.optional(),
415
- pcbPositionAnchor: z17.string().optional(),
416
- pcbPositionMode: z17.enum([
452
+ pcbPositionAnchor: z19.string().optional(),
453
+ pcbPositionMode: z19.enum([
417
454
  "relative_to_group_anchor",
418
455
  "auto",
419
456
  "relative_to_board_anchor",
420
457
  "relative_to_component_anchor"
421
458
  ]).optional(),
422
- shouldBeOnEdgeOfBoard: z17.boolean().optional(),
459
+ shouldBeOnEdgeOfBoard: z19.boolean().optional(),
423
460
  pcbMarginTop: distance8.optional(),
424
461
  pcbMarginRight: distance8.optional(),
425
462
  pcbMarginBottom: distance8.optional(),
@@ -441,44 +478,44 @@ var commonLayoutProps = z17.object({
441
478
  footprint: footprintProp.optional(),
442
479
  symbol: symbolProp.optional(),
443
480
  schStyle: schStyle.optional(),
444
- relative: z17.boolean().optional(),
445
- schRelative: z17.boolean().optional(),
446
- pcbRelative: z17.boolean().optional()
481
+ relative: z19.boolean().optional(),
482
+ schRelative: z19.boolean().optional(),
483
+ pcbRelative: z19.boolean().optional()
447
484
  });
448
485
  expectTypesMatch(true);
449
- var supplierProps = z17.object({
450
- supplierPartNumbers: z17.record(supplier_name, z17.array(z17.string())).optional()
486
+ var supplierProps = z19.object({
487
+ supplierPartNumbers: z19.record(supplier_name, z19.array(z19.string())).optional()
451
488
  });
452
489
  expectTypesMatch(true);
453
490
  var commonComponentProps = commonLayoutProps.merge(supplierProps).extend({
454
- key: z17.any().optional(),
455
- name: z17.string(),
456
- displayName: z17.string().optional(),
457
- schSectionName: z17.string().optional().describe(
491
+ key: z19.any().optional(),
492
+ name: z19.string(),
493
+ displayName: z19.string().optional(),
494
+ schSectionName: z19.string().optional().describe(
458
495
  'This component will be drawn as part of this section e.g. "Power"'
459
496
  ),
460
- schSheetName: z17.string().optional().describe(
497
+ schSheetName: z19.string().optional().describe(
461
498
  'This component will be drawn as part of this sheet e.g. "Main"'
462
499
  ),
463
500
  datasheetUrl: url.optional(),
464
501
  cadModel: cadModelProp.optional(),
465
502
  kicadFootprintMetadata: kicadFootprintMetadata.optional(),
466
503
  kicadSymbolMetadata: kicadSymbolMetadata.optional(),
467
- children: z17.any().optional(),
468
- symbolName: z17.string().optional(),
469
- doNotPlace: z17.boolean().optional(),
470
- allowOffBoard: z17.boolean().optional().describe(
504
+ children: z19.any().optional(),
505
+ symbolName: z19.string().optional(),
506
+ doNotPlace: z19.boolean().optional(),
507
+ allowOffBoard: z19.boolean().optional().describe(
471
508
  "Allows the PCB component to hang off the board (e.g. for USB ports or displays)"
472
509
  ),
473
- obstructsWithinBounds: z17.boolean().optional().describe(
510
+ obstructsWithinBounds: z19.boolean().optional().describe(
474
511
  "Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"
475
512
  ),
476
- showAsTranslucentModel: z17.boolean().optional().describe(
513
+ showAsTranslucentModel: z19.boolean().optional().describe(
477
514
  "Whether to show this component's CAD model as translucent in the 3D viewer."
478
515
  ),
479
- pinAttributes: z17.record(z17.string(), pinAttributeMap).optional(),
480
- mfn: z17.string().describe("Manufacturer Part Number").optional(),
481
- manufacturerPartNumber: z17.string().optional()
516
+ pinAttributes: z19.record(z19.string(), pinAttributeMap).optional(),
517
+ mfn: z19.string().describe("Manufacturer Part Number").optional(),
518
+ manufacturerPartNumber: z19.string().optional()
482
519
  });
483
520
  expectTypesMatch(true);
484
521
  var componentProps = commonComponentProps;
@@ -493,7 +530,7 @@ var lrPolarPins = [
493
530
  "cathode",
494
531
  "neg"
495
532
  ];
496
- var distanceOrMultiplier = distance8.or(z17.enum(["2x", "3x", "4x"]));
533
+ var distanceOrMultiplier = distance8.or(z19.enum(["2x", "3x", "4x"]));
497
534
 
498
535
  // lib/generated/kicad-autocomplete.ts
499
536
  var kicadFootprintKeys = [
@@ -15959,8 +15996,8 @@ var footprinterStringExamples = [
15959
15996
  ];
15960
15997
 
15961
15998
  // lib/common/schematicOrientation.ts
15962
- import { z as z18 } from "zod";
15963
- var schematicOrientation = z18.enum([
15999
+ import { z as z20 } from "zod";
16000
+ var schematicOrientation = z20.enum([
15964
16001
  "vertical",
15965
16002
  "horizontal",
15966
16003
  "pos_top",
@@ -15979,32 +16016,32 @@ expectTypesMatch(
15979
16016
  );
15980
16017
 
15981
16018
  // lib/common/schematicPinDefinitions.ts
15982
- import { z as z19 } from "zod";
15983
- var explicitPinSideDefinition = z19.object({
15984
- pins: z19.array(z19.union([z19.number(), z19.string()])),
15985
- direction: z19.union([
15986
- z19.literal("top-to-bottom"),
15987
- z19.literal("left-to-right"),
15988
- z19.literal("bottom-to-top"),
15989
- z19.literal("right-to-left")
16019
+ import { z as z21 } from "zod";
16020
+ var explicitPinSideDefinition = z21.object({
16021
+ pins: z21.array(z21.union([z21.number(), z21.string()])),
16022
+ direction: z21.union([
16023
+ z21.literal("top-to-bottom"),
16024
+ z21.literal("left-to-right"),
16025
+ z21.literal("bottom-to-top"),
16026
+ z21.literal("right-to-left")
15990
16027
  ])
15991
16028
  });
15992
- var pinSideDefinitionInput = z19.array(z19.union([z19.number(), z19.string()]));
15993
- var pinSideDefinitionWithDefaultDirection = (direction2) => z19.union([explicitPinSideDefinition, pinSideDefinitionInput]).transform(
16029
+ var pinSideDefinitionInput = z21.array(z21.union([z21.number(), z21.string()]));
16030
+ var pinSideDefinitionWithDefaultDirection = (direction2) => z21.union([explicitPinSideDefinition, pinSideDefinitionInput]).transform(
15994
16031
  (value) => Array.isArray(value) ? {
15995
16032
  pins: value,
15996
16033
  direction: direction2
15997
16034
  } : value
15998
16035
  );
15999
- var schematicPortArrangement = z19.object({
16000
- leftSize: z19.number().optional().describe("@deprecated, use leftPinCount"),
16001
- topSize: z19.number().optional().describe("@deprecated, use topPinCount"),
16002
- rightSize: z19.number().optional().describe("@deprecated, use rightPinCount"),
16003
- bottomSize: z19.number().optional().describe("@deprecated, use bottomPinCount"),
16004
- leftPinCount: z19.number().optional(),
16005
- rightPinCount: z19.number().optional(),
16006
- topPinCount: z19.number().optional(),
16007
- bottomPinCount: z19.number().optional(),
16036
+ var schematicPortArrangement = z21.object({
16037
+ leftSize: z21.number().optional().describe("@deprecated, use leftPinCount"),
16038
+ topSize: z21.number().optional().describe("@deprecated, use topPinCount"),
16039
+ rightSize: z21.number().optional().describe("@deprecated, use rightPinCount"),
16040
+ bottomSize: z21.number().optional().describe("@deprecated, use bottomPinCount"),
16041
+ leftPinCount: z21.number().optional(),
16042
+ rightPinCount: z21.number().optional(),
16043
+ topPinCount: z21.number().optional(),
16044
+ bottomPinCount: z21.number().optional(),
16008
16045
  leftSide: pinSideDefinitionWithDefaultDirection("top-to-bottom").optional(),
16009
16046
  rightSide: pinSideDefinitionWithDefaultDirection("top-to-bottom").optional(),
16010
16047
  topSide: pinSideDefinitionWithDefaultDirection("left-to-right").optional(),
@@ -16015,9 +16052,9 @@ expectTypesMatch(true);
16015
16052
 
16016
16053
  // lib/common/schematicPinStyle.ts
16017
16054
  import { distance as distance9 } from "circuit-json";
16018
- import { z as z20 } from "zod";
16019
- var schematicPinStyle = z20.record(
16020
- z20.object({
16055
+ import { z as z22 } from "zod";
16056
+ var schematicPinStyle = z22.record(
16057
+ z22.object({
16021
16058
  marginLeft: distance9.optional(),
16022
16059
  marginRight: distance9.optional(),
16023
16060
  marginTop: distance9.optional(),
@@ -16031,17 +16068,17 @@ var schematicPinStyle = z20.record(
16031
16068
  expectTypesMatch(true);
16032
16069
 
16033
16070
  // lib/common/schematicPinLabel.ts
16034
- import { z as z21 } from "zod";
16035
- var schematicPinLabel = z21.string().regex(/^[A-Za-z0-9_]+$/);
16071
+ import { z as z23 } from "zod";
16072
+ var schematicPinLabel = z23.string().regex(/^[A-Za-z0-9_]+$/);
16036
16073
 
16037
16074
  // lib/common/schematicSize.ts
16038
16075
  import { distance as distance10 } from "circuit-json";
16039
- import { z as z22 } from "zod";
16040
- var schematicSymbolSize = distance10.or(z22.enum(["xs", "sm", "default", "md"])).describe("distance between pin1 and pin2 of the schematic symbol");
16076
+ import { z as z24 } from "zod";
16077
+ var schematicSymbolSize = distance10.or(z24.enum(["xs", "sm", "default", "md"])).describe("distance between pin1 and pin2 of the schematic symbol");
16041
16078
 
16042
16079
  // lib/common/kicadPinMetadata.ts
16043
- import { z as z23 } from "zod";
16044
- var kicadPinElectricalType = z23.enum([
16080
+ import { z as z25 } from "zod";
16081
+ var kicadPinElectricalType = z25.enum([
16045
16082
  "input",
16046
16083
  "output",
16047
16084
  "bidirectional",
@@ -16055,7 +16092,7 @@ var kicadPinElectricalType = z23.enum([
16055
16092
  "open_emitter",
16056
16093
  "no_connect"
16057
16094
  ]);
16058
- var kicadPinGraphicStyle = z23.enum([
16095
+ var kicadPinGraphicStyle = z25.enum([
16059
16096
  "line",
16060
16097
  "inverted",
16061
16098
  "clock",
@@ -16066,7 +16103,7 @@ var kicadPinGraphicStyle = z23.enum([
16066
16103
  "falling_edge_clock",
16067
16104
  "nonlogic"
16068
16105
  ]);
16069
- var kicadPinMetadata = z23.object({
16106
+ var kicadPinMetadata = z25.object({
16070
16107
  electricalType: kicadPinElectricalType.optional(),
16071
16108
  graphicStyle: kicadPinGraphicStyle.optional(),
16072
16109
  pinLength: distance.optional(),
@@ -16076,14 +16113,14 @@ var kicadPinMetadata = z23.object({
16076
16113
  expectTypesMatch(true);
16077
16114
 
16078
16115
  // lib/customDrc.ts
16079
- import { z as z24 } from "zod";
16080
- var customDrcCheckFn = z24.custom(
16116
+ import { z as z26 } from "zod";
16117
+ var customDrcCheckFn = z26.custom(
16081
16118
  (value) => typeof value === "function"
16082
16119
  );
16083
16120
 
16084
16121
  // lib/common/ninePointAnchor.ts
16085
- import { z as z25 } from "zod";
16086
- var ninePointAnchor = z25.enum([
16122
+ import { z as z27 } from "zod";
16123
+ var ninePointAnchor = z27.enum([
16087
16124
  "top_left",
16088
16125
  "top_center",
16089
16126
  "top_right",
@@ -16096,47 +16133,47 @@ var ninePointAnchor = z25.enum([
16096
16133
  ]);
16097
16134
 
16098
16135
  // lib/components/board.ts
16099
- import { z as z39 } from "zod";
16136
+ import { z as z41 } from "zod";
16100
16137
 
16101
16138
  // lib/components/group.ts
16102
16139
  import {
16103
16140
  length as length3,
16104
16141
  distance as distance11
16105
16142
  } from "circuit-json";
16106
- import { z as z38 } from "zod";
16143
+ import { z as z40 } from "zod";
16107
16144
 
16108
16145
  // lib/manual-edits/manual-edit-events/base_manual_edit_event.ts
16109
- import { z as z26 } from "zod";
16110
- var base_manual_edit_event = z26.object({
16111
- edit_event_id: z26.string(),
16112
- in_progress: z26.boolean().optional(),
16113
- created_at: z26.number()
16146
+ import { z as z28 } from "zod";
16147
+ var base_manual_edit_event = z28.object({
16148
+ edit_event_id: z28.string(),
16149
+ in_progress: z28.boolean().optional(),
16150
+ created_at: z28.number()
16114
16151
  });
16115
16152
  expectTypesMatch(
16116
16153
  true
16117
16154
  );
16118
16155
 
16119
16156
  // lib/manual-edits/manual-edit-events/edit_pcb_component_location_event.ts
16120
- import { z as z27 } from "zod";
16157
+ import { z as z29 } from "zod";
16121
16158
  var edit_pcb_component_location_event = base_manual_edit_event.extend({
16122
- pcb_edit_event_type: z27.literal("edit_component_location").describe("deprecated"),
16123
- edit_event_type: z27.literal("edit_pcb_component_location"),
16124
- pcb_component_id: z27.string(),
16125
- original_center: z27.object({ x: z27.number(), y: z27.number() }),
16126
- new_center: z27.object({ x: z27.number(), y: z27.number() })
16159
+ pcb_edit_event_type: z29.literal("edit_component_location").describe("deprecated"),
16160
+ edit_event_type: z29.literal("edit_pcb_component_location"),
16161
+ pcb_component_id: z29.string(),
16162
+ original_center: z29.object({ x: z29.number(), y: z29.number() }),
16163
+ new_center: z29.object({ x: z29.number(), y: z29.number() })
16127
16164
  });
16128
16165
  var edit_component_location_event = edit_pcb_component_location_event;
16129
16166
  expectTypesMatch(true);
16130
16167
 
16131
16168
  // lib/manual-edits/manual-edit-events/edit_trace_hint_event.ts
16132
- import { z as z28 } from "zod";
16169
+ import { z as z30 } from "zod";
16133
16170
  var edit_trace_hint_event = base_manual_edit_event.extend({
16134
- pcb_edit_event_type: z28.literal("edit_trace_hint").describe("deprecated"),
16135
- edit_event_type: z28.literal("edit_pcb_trace_hint").optional(),
16136
- pcb_port_id: z28.string(),
16137
- pcb_trace_hint_id: z28.string().optional(),
16138
- route: z28.array(
16139
- z28.object({ x: z28.number(), y: z28.number(), via: z28.boolean().optional() })
16171
+ pcb_edit_event_type: z30.literal("edit_trace_hint").describe("deprecated"),
16172
+ edit_event_type: z30.literal("edit_pcb_trace_hint").optional(),
16173
+ pcb_port_id: z30.string(),
16174
+ pcb_trace_hint_id: z30.string().optional(),
16175
+ route: z30.array(
16176
+ z30.object({ x: z30.number(), y: z30.number(), via: z30.boolean().optional() })
16140
16177
  )
16141
16178
  });
16142
16179
  expectTypesMatch(
@@ -16144,38 +16181,38 @@ expectTypesMatch(
16144
16181
  );
16145
16182
 
16146
16183
  // lib/manual-edits/manual-edit-events/edit_schematic_component_location_event.ts
16147
- import { z as z29 } from "zod";
16184
+ import { z as z31 } from "zod";
16148
16185
  var edit_schematic_component_location_event = base_manual_edit_event.extend({
16149
- edit_event_type: z29.literal("edit_schematic_component_location"),
16150
- schematic_component_id: z29.string(),
16151
- original_center: z29.object({ x: z29.number(), y: z29.number() }),
16152
- new_center: z29.object({ x: z29.number(), y: z29.number() })
16186
+ edit_event_type: z31.literal("edit_schematic_component_location"),
16187
+ schematic_component_id: z31.string(),
16188
+ original_center: z31.object({ x: z31.number(), y: z31.number() }),
16189
+ new_center: z31.object({ x: z31.number(), y: z31.number() })
16153
16190
  });
16154
16191
  expectTypesMatch(true);
16155
16192
 
16156
16193
  // lib/manual-edits/manual-edit-events/edit_pcb_group_location_event.ts
16157
- import { z as z30 } from "zod";
16194
+ import { z as z32 } from "zod";
16158
16195
  var edit_pcb_group_location_event = base_manual_edit_event.extend({
16159
- edit_event_type: z30.literal("edit_pcb_group_location"),
16160
- pcb_group_id: z30.string(),
16161
- original_center: z30.object({ x: z30.number(), y: z30.number() }),
16162
- new_center: z30.object({ x: z30.number(), y: z30.number() })
16196
+ edit_event_type: z32.literal("edit_pcb_group_location"),
16197
+ pcb_group_id: z32.string(),
16198
+ original_center: z32.object({ x: z32.number(), y: z32.number() }),
16199
+ new_center: z32.object({ x: z32.number(), y: z32.number() })
16163
16200
  });
16164
16201
  expectTypesMatch(true);
16165
16202
 
16166
16203
  // lib/manual-edits/manual-edit-events/edit_schematic_group_location_event.ts
16167
- import { z as z31 } from "zod";
16204
+ import { z as z33 } from "zod";
16168
16205
  var edit_schematic_group_location_event = base_manual_edit_event.extend({
16169
- edit_event_type: z31.literal("edit_schematic_group_location"),
16170
- schematic_group_id: z31.string(),
16171
- original_center: z31.object({ x: z31.number(), y: z31.number() }),
16172
- new_center: z31.object({ x: z31.number(), y: z31.number() })
16206
+ edit_event_type: z33.literal("edit_schematic_group_location"),
16207
+ schematic_group_id: z33.string(),
16208
+ original_center: z33.object({ x: z33.number(), y: z33.number() }),
16209
+ new_center: z33.object({ x: z33.number(), y: z33.number() })
16173
16210
  });
16174
16211
  expectTypesMatch(true);
16175
16212
 
16176
16213
  // lib/manual-edits/manual_edit_event.ts
16177
- import { z as z32 } from "zod";
16178
- var manual_edit_event = z32.union([
16214
+ import { z as z34 } from "zod";
16215
+ var manual_edit_event = z34.union([
16179
16216
  edit_pcb_component_location_event,
16180
16217
  edit_trace_hint_event,
16181
16218
  edit_schematic_component_location_event
@@ -16183,33 +16220,33 @@ var manual_edit_event = z32.union([
16183
16220
  expectTypesMatch(true);
16184
16221
 
16185
16222
  // lib/manual-edits/manual_edits_file.ts
16186
- import { z as z36 } from "zod";
16223
+ import { z as z38 } from "zod";
16187
16224
 
16188
16225
  // lib/manual-edits/manual_pcb_placement.ts
16189
- import { z as z33 } from "zod";
16226
+ import { z as z35 } from "zod";
16190
16227
  import { point as point2 } from "circuit-json";
16191
- var manual_pcb_placement = z33.object({
16192
- selector: z33.string(),
16193
- relative_to: z33.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
16228
+ var manual_pcb_placement = z35.object({
16229
+ selector: z35.string(),
16230
+ relative_to: z35.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
16194
16231
  center: point2
16195
16232
  });
16196
16233
  expectTypesMatch(true);
16197
16234
 
16198
16235
  // lib/manual-edits/manual_trace_hint.ts
16199
- import { z as z34 } from "zod";
16236
+ import { z as z36 } from "zod";
16200
16237
  import { route_hint_point } from "circuit-json";
16201
- var manual_trace_hint = z34.object({
16202
- pcb_port_selector: z34.string(),
16203
- offsets: z34.array(route_hint_point)
16238
+ var manual_trace_hint = z36.object({
16239
+ pcb_port_selector: z36.string(),
16240
+ offsets: z36.array(route_hint_point)
16204
16241
  });
16205
16242
  expectTypesMatch(true);
16206
16243
 
16207
16244
  // lib/manual-edits/manual_schematic_placement.ts
16208
- import { z as z35 } from "zod";
16245
+ import { z as z37 } from "zod";
16209
16246
  import { point as point4 } from "circuit-json";
16210
- var manual_schematic_placement = z35.object({
16211
- selector: z35.string(),
16212
- relative_to: z35.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
16247
+ var manual_schematic_placement = z37.object({
16248
+ selector: z37.string(),
16249
+ relative_to: z37.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
16213
16250
  center: point4
16214
16251
  });
16215
16252
  expectTypesMatch(
@@ -16217,37 +16254,37 @@ expectTypesMatch(
16217
16254
  );
16218
16255
 
16219
16256
  // lib/manual-edits/manual_edits_file.ts
16220
- var manual_edits_file = z36.object({
16221
- pcb_placements: z36.array(manual_pcb_placement).optional(),
16222
- manual_trace_hints: z36.array(manual_trace_hint).optional(),
16223
- schematic_placements: z36.array(manual_schematic_placement).optional()
16257
+ var manual_edits_file = z38.object({
16258
+ pcb_placements: z38.array(manual_pcb_placement).optional(),
16259
+ manual_trace_hints: z38.array(manual_trace_hint).optional(),
16260
+ schematic_placements: z38.array(manual_schematic_placement).optional()
16224
16261
  });
16225
16262
  expectTypesMatch(true);
16226
16263
 
16227
16264
  // lib/common/connectionsProp.ts
16228
- import { z as z37 } from "zod";
16229
- var connectionTarget = z37.string().or(z37.array(z37.string()).readonly()).or(z37.array(z37.string()));
16265
+ import { z as z39 } from "zod";
16266
+ var connectionTarget = z39.string().or(z39.array(z39.string()).readonly()).or(z39.array(z39.string()));
16230
16267
  var createConnectionsProp = (labels) => {
16231
- return z37.record(z37.enum(labels), connectionTarget);
16268
+ return z39.record(z39.enum(labels), connectionTarget);
16232
16269
  };
16233
16270
 
16234
16271
  // lib/components/group.ts
16235
- var layoutConfig = z38.object({
16236
- layoutMode: z38.enum(["grid", "flex", "match-adapt", "relative", "none"]).optional(),
16237
- position: z38.enum(["absolute", "relative"]).optional(),
16238
- grid: z38.boolean().optional(),
16239
- gridCols: z38.number().or(z38.string()).optional(),
16240
- gridRows: z38.number().or(z38.string()).optional(),
16241
- gridTemplateRows: z38.string().optional(),
16242
- gridTemplateColumns: z38.string().optional(),
16243
- gridTemplate: z38.string().optional(),
16244
- gridGap: z38.number().or(z38.string()).optional(),
16245
- gridRowGap: z38.number().or(z38.string()).optional(),
16246
- gridColumnGap: z38.number().or(z38.string()).optional(),
16247
- flex: z38.boolean().or(z38.string()).optional(),
16248
- flexDirection: z38.enum(["row", "column"]).optional(),
16249
- alignItems: z38.enum(["start", "center", "end", "stretch"]).optional(),
16250
- justifyContent: z38.enum([
16272
+ var layoutConfig = z40.object({
16273
+ layoutMode: z40.enum(["grid", "flex", "match-adapt", "relative", "none"]).optional(),
16274
+ position: z40.enum(["absolute", "relative"]).optional(),
16275
+ grid: z40.boolean().optional(),
16276
+ gridCols: z40.number().or(z40.string()).optional(),
16277
+ gridRows: z40.number().or(z40.string()).optional(),
16278
+ gridTemplateRows: z40.string().optional(),
16279
+ gridTemplateColumns: z40.string().optional(),
16280
+ gridTemplate: z40.string().optional(),
16281
+ gridGap: z40.number().or(z40.string()).optional(),
16282
+ gridRowGap: z40.number().or(z40.string()).optional(),
16283
+ gridColumnGap: z40.number().or(z40.string()).optional(),
16284
+ flex: z40.boolean().or(z40.string()).optional(),
16285
+ flexDirection: z40.enum(["row", "column"]).optional(),
16286
+ alignItems: z40.enum(["start", "center", "end", "stretch"]).optional(),
16287
+ justifyContent: z40.enum([
16251
16288
  "start",
16252
16289
  "center",
16253
16290
  "end",
@@ -16256,16 +16293,16 @@ var layoutConfig = z38.object({
16256
16293
  "space-around",
16257
16294
  "space-evenly"
16258
16295
  ]).optional(),
16259
- flexRow: z38.boolean().optional(),
16260
- flexColumn: z38.boolean().optional(),
16261
- gap: z38.number().or(z38.string()).optional(),
16262
- pack: z38.boolean().optional().describe("Pack the contents of this group using a packing strategy"),
16263
- packOrderStrategy: z38.enum([
16296
+ flexRow: z40.boolean().optional(),
16297
+ flexColumn: z40.boolean().optional(),
16298
+ gap: z40.number().or(z40.string()).optional(),
16299
+ pack: z40.boolean().optional().describe("Pack the contents of this group using a packing strategy"),
16300
+ packOrderStrategy: z40.enum([
16264
16301
  "largest_to_smallest",
16265
16302
  "first_to_last",
16266
16303
  "highest_to_lowest_pin_count"
16267
16304
  ]).optional(),
16268
- packPlacementStrategy: z38.enum(["shortest_connection_along_outline"]).optional(),
16305
+ packPlacementStrategy: z40.enum(["shortest_connection_along_outline"]).optional(),
16269
16306
  padding: length3.optional(),
16270
16307
  paddingLeft: length3.optional(),
16271
16308
  paddingRight: length3.optional(),
@@ -16275,17 +16312,17 @@ var layoutConfig = z38.object({
16275
16312
  paddingY: length3.optional(),
16276
16313
  width: length3.optional(),
16277
16314
  height: length3.optional(),
16278
- matchAdapt: z38.boolean().optional(),
16279
- matchAdaptTemplate: z38.any().optional()
16315
+ matchAdapt: z40.boolean().optional(),
16316
+ matchAdaptTemplate: z40.any().optional()
16280
16317
  });
16281
16318
  expectTypesMatch(true);
16282
- var border = z38.object({
16319
+ var border = z40.object({
16283
16320
  strokeWidth: length3.optional(),
16284
- dashed: z38.boolean().optional(),
16285
- solid: z38.boolean().optional()
16321
+ dashed: z40.boolean().optional(),
16322
+ solid: z40.boolean().optional()
16286
16323
  });
16287
- var pcbAnchorAlignmentAutocomplete = z38.custom((value) => typeof value === "string");
16288
- var routingTolerances = z38.object({
16324
+ var pcbAnchorAlignmentAutocomplete = z40.custom((value) => typeof value === "string");
16325
+ var routingTolerances = z40.object({
16289
16326
  minTraceWidth: length3.optional(),
16290
16327
  minViaHoleEdgeToViaHoleEdgeClearance: length3.optional(),
16291
16328
  minViaEdgeToPadEdgeClearance: length3.optional(),
@@ -16296,19 +16333,19 @@ var routingTolerances = z38.object({
16296
16333
  minViaHoleDiameter: length3.optional(),
16297
16334
  minViaPadDiameter: length3.optional()
16298
16335
  });
16299
- var autorouterConfig = z38.object({
16336
+ var autorouterConfig = z40.object({
16300
16337
  serverUrl: url.optional(),
16301
- inputFormat: z38.enum(["simplified", "circuit-json"]).optional(),
16302
- serverMode: z38.enum(["job", "solve-endpoint"]).optional(),
16303
- serverCacheEnabled: z38.boolean().optional(),
16304
- cache: z38.custom((v) => true).optional(),
16338
+ inputFormat: z40.enum(["simplified", "circuit-json"]).optional(),
16339
+ serverMode: z40.enum(["job", "solve-endpoint"]).optional(),
16340
+ serverCacheEnabled: z40.boolean().optional(),
16341
+ cache: z40.custom((v) => true).optional(),
16305
16342
  traceClearance: length3.optional(),
16306
- availableJumperTypes: z38.array(z38.enum(["1206x4", "0603"])).optional(),
16307
- groupMode: z38.enum(["sequential_trace", "subcircuit", "sequential-trace"]).optional(),
16308
- algorithmFn: z38.custom(
16343
+ availableJumperTypes: z40.array(z40.enum(["1206x4", "0603"])).optional(),
16344
+ groupMode: z40.enum(["sequential_trace", "subcircuit", "sequential-trace"]).optional(),
16345
+ algorithmFn: z40.custom(
16309
16346
  (v) => typeof v === "function" || v === void 0
16310
16347
  ).optional(),
16311
- preset: z38.enum([
16348
+ preset: z40.enum([
16312
16349
  "sequential_trace",
16313
16350
  "subcircuit",
16314
16351
  "default",
@@ -16325,61 +16362,61 @@ var autorouterConfig = z38.object({
16325
16362
  "auto-local",
16326
16363
  "auto-cloud"
16327
16364
  ]).optional(),
16328
- local: z38.boolean().optional()
16365
+ local: z40.boolean().optional()
16329
16366
  });
16330
- var autorouterPreset = z38.union([
16331
- z38.literal("sequential_trace"),
16332
- z38.literal("subcircuit"),
16333
- z38.literal("default"),
16334
- z38.literal("auto"),
16335
- z38.literal("auto_local"),
16336
- z38.literal("auto_cloud"),
16337
- z38.literal("auto_jumper"),
16338
- z38.literal("tscircuit_beta"),
16339
- z38.literal("krt"),
16340
- z38.literal("freerouting"),
16341
- z38.literal("laser_prefab"),
16367
+ var autorouterPreset = z40.union([
16368
+ z40.literal("sequential_trace"),
16369
+ z40.literal("subcircuit"),
16370
+ z40.literal("default"),
16371
+ z40.literal("auto"),
16372
+ z40.literal("auto_local"),
16373
+ z40.literal("auto_cloud"),
16374
+ z40.literal("auto_jumper"),
16375
+ z40.literal("tscircuit_beta"),
16376
+ z40.literal("krt"),
16377
+ z40.literal("freerouting"),
16378
+ z40.literal("laser_prefab"),
16342
16379
  // Prefabricated PCB with laser copper ablation
16343
- z38.literal("auto-jumper"),
16344
- z38.literal("sequential-trace"),
16345
- z38.literal("auto-local"),
16346
- z38.literal("auto-cloud")
16380
+ z40.literal("auto-jumper"),
16381
+ z40.literal("sequential-trace"),
16382
+ z40.literal("auto-local"),
16383
+ z40.literal("auto-cloud")
16347
16384
  ]);
16348
- var autorouterString = z38.string();
16349
- var autorouterProp = z38.union([
16385
+ var autorouterString = z40.string();
16386
+ var autorouterProp = z40.union([
16350
16387
  autorouterConfig,
16351
16388
  autorouterPreset,
16352
16389
  autorouterString
16353
16390
  ]);
16354
- var autorouterEffortLevel = z38.enum(["1x", "2x", "5x", "10x", "100x"]);
16391
+ var autorouterEffortLevel = z40.enum(["1x", "2x", "5x", "10x", "100x"]);
16355
16392
  var baseGroupProps = commonLayoutProps.extend({
16356
- name: z38.string().optional(),
16357
- children: z38.any().optional(),
16358
- schTitle: z38.string().optional(),
16359
- schSheetName: z38.string().optional().describe('This group will be drawn as part of this sheet e.g. "Main"'),
16360
- key: z38.any().optional(),
16361
- showAsSchematicBox: z38.boolean().optional(),
16362
- connections: z38.record(z38.string(), connectionTarget.optional()).optional(),
16393
+ name: z40.string().optional(),
16394
+ children: z40.any().optional(),
16395
+ schTitle: z40.string().optional(),
16396
+ schSheetName: z40.string().optional().describe('This group will be drawn as part of this sheet e.g. "Main"'),
16397
+ key: z40.any().optional(),
16398
+ showAsSchematicBox: z40.boolean().optional(),
16399
+ connections: z40.record(z40.string(), connectionTarget.optional()).optional(),
16363
16400
  schPinArrangement: schematicPinArrangement.optional(),
16364
16401
  schPinSpacing: length3.optional(),
16365
16402
  schPinStyle: schematicPinStyle.optional(),
16366
16403
  ...layoutConfig.shape,
16367
16404
  grid: layoutConfig.shape.grid.describe("@deprecated use pcbGrid"),
16368
16405
  flex: layoutConfig.shape.flex.describe("@deprecated use pcbFlex"),
16369
- pcbGrid: z38.boolean().optional(),
16370
- pcbGridCols: z38.number().or(z38.string()).optional(),
16371
- pcbGridRows: z38.number().or(z38.string()).optional(),
16372
- pcbGridTemplateRows: z38.string().optional(),
16373
- pcbGridTemplateColumns: z38.string().optional(),
16374
- pcbGridTemplate: z38.string().optional(),
16375
- pcbGridGap: z38.number().or(z38.string()).optional(),
16376
- pcbGridRowGap: z38.number().or(z38.string()).optional(),
16377
- pcbGridColumnGap: z38.number().or(z38.string()).optional(),
16378
- pcbFlex: z38.boolean().or(z38.string()).optional(),
16379
- pcbFlexGap: z38.number().or(z38.string()).optional(),
16380
- pcbFlexDirection: z38.enum(["row", "column"]).optional(),
16381
- pcbAlignItems: z38.enum(["start", "center", "end", "stretch"]).optional(),
16382
- pcbJustifyContent: z38.enum([
16406
+ pcbGrid: z40.boolean().optional(),
16407
+ pcbGridCols: z40.number().or(z40.string()).optional(),
16408
+ pcbGridRows: z40.number().or(z40.string()).optional(),
16409
+ pcbGridTemplateRows: z40.string().optional(),
16410
+ pcbGridTemplateColumns: z40.string().optional(),
16411
+ pcbGridTemplate: z40.string().optional(),
16412
+ pcbGridGap: z40.number().or(z40.string()).optional(),
16413
+ pcbGridRowGap: z40.number().or(z40.string()).optional(),
16414
+ pcbGridColumnGap: z40.number().or(z40.string()).optional(),
16415
+ pcbFlex: z40.boolean().or(z40.string()).optional(),
16416
+ pcbFlexGap: z40.number().or(z40.string()).optional(),
16417
+ pcbFlexDirection: z40.enum(["row", "column"]).optional(),
16418
+ pcbAlignItems: z40.enum(["start", "center", "end", "stretch"]).optional(),
16419
+ pcbJustifyContent: z40.enum([
16383
16420
  "start",
16384
16421
  "center",
16385
16422
  "end",
@@ -16388,25 +16425,25 @@ var baseGroupProps = commonLayoutProps.extend({
16388
16425
  "space-around",
16389
16426
  "space-evenly"
16390
16427
  ]).optional(),
16391
- pcbFlexRow: z38.boolean().optional(),
16392
- pcbFlexColumn: z38.boolean().optional(),
16393
- pcbGap: z38.number().or(z38.string()).optional(),
16394
- pcbPack: z38.boolean().optional(),
16395
- pcbPackGap: z38.number().or(z38.string()).optional(),
16396
- schGrid: z38.boolean().optional(),
16397
- schGridCols: z38.number().or(z38.string()).optional(),
16398
- schGridRows: z38.number().or(z38.string()).optional(),
16399
- schGridTemplateRows: z38.string().optional(),
16400
- schGridTemplateColumns: z38.string().optional(),
16401
- schGridTemplate: z38.string().optional(),
16402
- schGridGap: z38.number().or(z38.string()).optional(),
16403
- schGridRowGap: z38.number().or(z38.string()).optional(),
16404
- schGridColumnGap: z38.number().or(z38.string()).optional(),
16405
- schFlex: z38.boolean().or(z38.string()).optional(),
16406
- schFlexGap: z38.number().or(z38.string()).optional(),
16407
- schFlexDirection: z38.enum(["row", "column"]).optional(),
16408
- schAlignItems: z38.enum(["start", "center", "end", "stretch"]).optional(),
16409
- schJustifyContent: z38.enum([
16428
+ pcbFlexRow: z40.boolean().optional(),
16429
+ pcbFlexColumn: z40.boolean().optional(),
16430
+ pcbGap: z40.number().or(z40.string()).optional(),
16431
+ pcbPack: z40.boolean().optional(),
16432
+ pcbPackGap: z40.number().or(z40.string()).optional(),
16433
+ schGrid: z40.boolean().optional(),
16434
+ schGridCols: z40.number().or(z40.string()).optional(),
16435
+ schGridRows: z40.number().or(z40.string()).optional(),
16436
+ schGridTemplateRows: z40.string().optional(),
16437
+ schGridTemplateColumns: z40.string().optional(),
16438
+ schGridTemplate: z40.string().optional(),
16439
+ schGridGap: z40.number().or(z40.string()).optional(),
16440
+ schGridRowGap: z40.number().or(z40.string()).optional(),
16441
+ schGridColumnGap: z40.number().or(z40.string()).optional(),
16442
+ schFlex: z40.boolean().or(z40.string()).optional(),
16443
+ schFlexGap: z40.number().or(z40.string()).optional(),
16444
+ schFlexDirection: z40.enum(["row", "column"]).optional(),
16445
+ schAlignItems: z40.enum(["start", "center", "end", "stretch"]).optional(),
16446
+ schJustifyContent: z40.enum([
16410
16447
  "start",
16411
16448
  "center",
16412
16449
  "end",
@@ -16415,11 +16452,11 @@ var baseGroupProps = commonLayoutProps.extend({
16415
16452
  "space-around",
16416
16453
  "space-evenly"
16417
16454
  ]).optional(),
16418
- schFlexRow: z38.boolean().optional(),
16419
- schFlexColumn: z38.boolean().optional(),
16420
- schGap: z38.number().or(z38.string()).optional(),
16421
- schPack: z38.boolean().optional(),
16422
- schMatchAdapt: z38.boolean().optional(),
16455
+ schFlexRow: z40.boolean().optional(),
16456
+ schFlexColumn: z40.boolean().optional(),
16457
+ schGap: z40.number().or(z40.string()).optional(),
16458
+ schPack: z40.boolean().optional(),
16459
+ schMatchAdapt: z40.boolean().optional(),
16423
16460
  pcbWidth: length3.optional(),
16424
16461
  pcbHeight: length3.optional(),
16425
16462
  minTraceWidth: length3.optional(),
@@ -16442,40 +16479,40 @@ var baseGroupProps = commonLayoutProps.extend({
16442
16479
  pcbPaddingBottom: length3.optional(),
16443
16480
  pcbAnchorAlignment: pcbAnchorAlignmentAutocomplete.optional()
16444
16481
  });
16445
- var partsEngine = z38.custom((v) => "findPart" in v);
16482
+ var partsEngine = z40.custom((v) => "findPart" in v);
16446
16483
  var subcircuitGroupProps = baseGroupProps.extend({
16447
16484
  manualEdits: manual_edits_file.optional(),
16448
- schAutoLayoutEnabled: z38.boolean().optional(),
16449
- schTraceAutoLabelEnabled: z38.boolean().optional(),
16485
+ schAutoLayoutEnabled: z40.boolean().optional(),
16486
+ schTraceAutoLabelEnabled: z40.boolean().optional(),
16450
16487
  schMaxTraceDistance: distance11.optional(),
16451
- routingDisabled: z38.boolean().optional(),
16452
- bomDisabled: z38.boolean().optional(),
16488
+ routingDisabled: z40.boolean().optional(),
16489
+ bomDisabled: z40.boolean().optional(),
16453
16490
  defaultTraceWidth: length3.optional(),
16454
16491
  ...routingTolerances.shape,
16455
16492
  nominalTraceWidth: length3.optional(),
16456
16493
  partsEngine: partsEngine.optional(),
16457
- _subcircuitCachingEnabled: z38.boolean().optional(),
16458
- pcbRouteCache: z38.custom((v) => true).optional(),
16494
+ _subcircuitCachingEnabled: z40.boolean().optional(),
16495
+ pcbRouteCache: z40.custom((v) => true).optional(),
16459
16496
  autorouter: autorouterProp.optional(),
16460
16497
  autorouterEffortLevel: autorouterEffortLevel.optional(),
16461
- autorouterVersion: z38.enum(["v1", "v2", "v3", "v4", "v5", "v6", "latest"]).optional(),
16462
- square: z38.boolean().optional(),
16463
- emptyArea: z38.string().optional(),
16464
- filledArea: z38.string().optional(),
16498
+ autorouterVersion: z40.enum(["v1", "v2", "v3", "v4", "v5", "v6", "latest"]).optional(),
16499
+ square: z40.boolean().optional(),
16500
+ emptyArea: z40.string().optional(),
16501
+ filledArea: z40.string().optional(),
16465
16502
  width: distance11.optional(),
16466
16503
  height: distance11.optional(),
16467
- outline: z38.array(point).optional(),
16504
+ outline: z40.array(point).optional(),
16468
16505
  outlineOffsetX: distance11.optional(),
16469
16506
  outlineOffsetY: distance11.optional(),
16470
- circuitJson: z38.array(z38.any()).optional(),
16471
- exposedNets: z38.array(z38.string()).optional(),
16472
- exposeNets: z38.boolean().optional()
16507
+ circuitJson: z40.array(z40.any()).optional(),
16508
+ exposedNets: z40.array(z40.string()).optional(),
16509
+ exposeNets: z40.boolean().optional()
16473
16510
  });
16474
16511
  var subcircuitGroupPropsWithBool = subcircuitGroupProps.extend({
16475
- subcircuit: z38.literal(true)
16512
+ subcircuit: z40.literal(true)
16476
16513
  });
16477
- var groupProps = z38.discriminatedUnion("subcircuit", [
16478
- baseGroupProps.extend({ subcircuit: z38.literal(false).optional() }),
16514
+ var groupProps = z40.discriminatedUnion("subcircuit", [
16515
+ baseGroupProps.extend({ subcircuit: z40.literal(false).optional() }),
16479
16516
  subcircuitGroupPropsWithBool
16480
16517
  ]);
16481
16518
  expectTypesMatch(true);
@@ -16485,35 +16522,35 @@ expectTypesMatch(true);
16485
16522
  expectTypesMatch(true);
16486
16523
 
16487
16524
  // lib/components/board.ts
16488
- var boardColor = z39.custom((value) => typeof value === "string");
16525
+ var boardColor = z41.custom((value) => typeof value === "string");
16489
16526
  var boardProps = subcircuitGroupProps.omit({ connections: true }).extend({
16490
- material: z39.enum(["fr4", "fr1", "flex"]).default("fr4"),
16491
- layers: z39.union([
16492
- z39.literal(1),
16493
- z39.literal(2),
16494
- z39.literal(4),
16495
- z39.literal(6),
16496
- z39.literal(8)
16527
+ material: z41.enum(["fr4", "fr1", "flex"]).default("fr4"),
16528
+ layers: z41.union([
16529
+ z41.literal(1),
16530
+ z41.literal(2),
16531
+ z41.literal(4),
16532
+ z41.literal(6),
16533
+ z41.literal(8)
16497
16534
  ]).default(2),
16498
16535
  borderRadius: distance.optional(),
16499
16536
  thickness: distance.optional(),
16500
16537
  boardAnchorPosition: point.optional(),
16501
16538
  anchorAlignment: ninePointAnchor.optional(),
16502
16539
  boardAnchorAlignment: ninePointAnchor.optional().describe("Prefer using anchorAlignment when possible"),
16503
- title: z39.string().optional(),
16540
+ title: z41.string().optional(),
16504
16541
  solderMaskColor: boardColor.optional(),
16505
16542
  topSolderMaskColor: boardColor.optional(),
16506
16543
  bottomSolderMaskColor: boardColor.optional(),
16507
16544
  silkscreenColor: boardColor.optional(),
16508
16545
  topSilkscreenColor: boardColor.optional(),
16509
16546
  bottomSilkscreenColor: boardColor.optional(),
16510
- doubleSidedAssembly: z39.boolean().optional().default(false),
16511
- schematicDisabled: z39.boolean().optional()
16547
+ doubleSidedAssembly: z41.boolean().optional().default(false),
16548
+ schematicDisabled: z41.boolean().optional()
16512
16549
  });
16513
16550
  expectTypesMatch(true);
16514
16551
 
16515
16552
  // lib/components/panel.ts
16516
- import { z as z40 } from "zod";
16553
+ import { z as z42 } from "zod";
16517
16554
  var panelProps = baseGroupProps.omit({
16518
16555
  width: true,
16519
16556
  height: true,
@@ -16522,25 +16559,25 @@ var panelProps = baseGroupProps.omit({
16522
16559
  }).extend({
16523
16560
  width: distance.optional(),
16524
16561
  height: distance.optional(),
16525
- children: z40.any().optional(),
16562
+ children: z42.any().optional(),
16526
16563
  anchorAlignment: ninePointAnchor.optional(),
16527
- noSolderMask: z40.boolean().optional(),
16528
- panelizationMethod: z40.enum(["tab-routing", "none"]).optional(),
16564
+ noSolderMask: z42.boolean().optional(),
16565
+ panelizationMethod: z42.enum(["tab-routing", "none"]).optional(),
16529
16566
  boardGap: distance.optional(),
16530
- layoutMode: z40.enum(["grid", "pack", "none"]).optional(),
16531
- row: z40.number().optional(),
16532
- col: z40.number().optional(),
16567
+ layoutMode: z42.enum(["grid", "pack", "none"]).optional(),
16568
+ row: z42.number().optional(),
16569
+ col: z42.number().optional(),
16533
16570
  cellWidth: distance.optional(),
16534
16571
  cellHeight: distance.optional(),
16535
16572
  tabWidth: distance.optional(),
16536
16573
  tabLength: distance.optional(),
16537
- mouseBites: z40.boolean().optional(),
16574
+ mouseBites: z42.boolean().optional(),
16538
16575
  edgePadding: distance.optional(),
16539
16576
  edgePaddingLeft: distance.optional(),
16540
16577
  edgePaddingRight: distance.optional(),
16541
16578
  edgePaddingTop: distance.optional(),
16542
16579
  edgePaddingBottom: distance.optional(),
16543
- _subcircuitCachingEnabled: z40.boolean().optional()
16580
+ _subcircuitCachingEnabled: z42.boolean().optional()
16544
16581
  });
16545
16582
  expectTypesMatch(true);
16546
16583
 
@@ -16563,37 +16600,37 @@ expectTypesMatch(true);
16563
16600
 
16564
16601
  // lib/components/chip.ts
16565
16602
  import { distance as distance13, supplier_name as supplier_name2 } from "circuit-json";
16566
- import { z as z43 } from "zod";
16567
- var connectionTarget2 = z43.string().or(z43.array(z43.string()).readonly()).or(z43.array(z43.string()));
16568
- var noConnectProp = z43.array(schematicPinLabel).readonly().or(z43.array(schematicPinLabel));
16569
- var connectionsProp = z43.custom().pipe(z43.record(z43.string(), connectionTarget2));
16570
- var spicemodelElement = z43.custom(
16603
+ import { z as z45 } from "zod";
16604
+ var connectionTarget2 = z45.string().or(z45.array(z45.string()).readonly()).or(z45.array(z45.string()));
16605
+ var noConnectProp = z45.array(schematicPinLabel).readonly().or(z45.array(schematicPinLabel));
16606
+ var connectionsProp = z45.custom().pipe(z45.record(z45.string(), connectionTarget2));
16607
+ var spicemodelElement = z45.custom(
16571
16608
  (v) => !!v && typeof v === "object" && "type" in v && "props" in v
16572
16609
  );
16573
- var pinLabelsProp = z43.record(
16610
+ var pinLabelsProp = z45.record(
16574
16611
  schematicPinLabel,
16575
- schematicPinLabel.or(z43.array(schematicPinLabel).readonly()).or(z43.array(schematicPinLabel))
16612
+ schematicPinLabel.or(z45.array(schematicPinLabel).readonly()).or(z45.array(schematicPinLabel))
16576
16613
  );
16577
16614
  expectTypesMatch(true);
16578
- var pinCompatibleVariant = z43.object({
16579
- manufacturerPartNumber: z43.string().optional(),
16580
- supplierPartNumber: z43.record(supplier_name2, z43.array(z43.string())).optional()
16615
+ var pinCompatibleVariant = z45.object({
16616
+ manufacturerPartNumber: z45.string().optional(),
16617
+ supplierPartNumber: z45.record(supplier_name2, z45.array(z45.string())).optional()
16581
16618
  });
16582
16619
  var chipProps = commonComponentProps.extend({
16583
- manufacturerPartNumber: z43.string().optional(),
16620
+ manufacturerPartNumber: z45.string().optional(),
16584
16621
  pinLabels: pinLabelsProp.optional(),
16585
- showPinAliases: z43.boolean().optional(),
16586
- pcbPinLabels: z43.record(z43.string(), z43.string()).optional(),
16587
- internallyConnectedPins: z43.array(z43.array(z43.union([z43.string(), z43.number()]))).optional(),
16588
- externallyConnectedPins: z43.array(z43.array(z43.string())).optional(),
16622
+ showPinAliases: z45.boolean().optional(),
16623
+ pcbPinLabels: z45.record(z45.string(), z45.string()).optional(),
16624
+ internallyConnectedPins: z45.array(z45.array(z45.union([z45.string(), z45.number()]))).optional(),
16625
+ externallyConnectedPins: z45.array(z45.array(z45.string())).optional(),
16589
16626
  schPinArrangement: schematicPortArrangement.optional(),
16590
16627
  schPortArrangement: schematicPortArrangement.optional(),
16591
- pinCompatibleVariants: z43.array(pinCompatibleVariant).optional(),
16628
+ pinCompatibleVariants: z45.array(pinCompatibleVariant).optional(),
16592
16629
  schPinStyle: schematicPinStyle.optional(),
16593
16630
  schPinSpacing: distance13.optional(),
16594
16631
  schWidth: distance13.optional(),
16595
16632
  schHeight: distance13.optional(),
16596
- noSchematicRepresentation: z43.boolean().optional(),
16633
+ noSchematicRepresentation: z45.boolean().optional(),
16597
16634
  noConnect: noConnectProp.optional(),
16598
16635
  connections: connectionsProp.optional(),
16599
16636
  spiceModel: spicemodelElement.optional()
@@ -16607,75 +16644,75 @@ expectTypesMatch(true);
16607
16644
 
16608
16645
  // lib/components/jumper.ts
16609
16646
  import { distance as distance14 } from "circuit-json";
16610
- import { z as z44 } from "zod";
16647
+ import { z as z46 } from "zod";
16611
16648
  var jumperProps = commonComponentProps.extend({
16612
- manufacturerPartNumber: z44.string().optional(),
16613
- pinLabels: z44.record(
16614
- z44.number().or(schematicPinLabel),
16615
- schematicPinLabel.or(z44.array(schematicPinLabel))
16649
+ manufacturerPartNumber: z46.string().optional(),
16650
+ pinLabels: z46.record(
16651
+ z46.number().or(schematicPinLabel),
16652
+ schematicPinLabel.or(z46.array(schematicPinLabel))
16616
16653
  ).optional(),
16617
16654
  schPinStyle: schematicPinStyle.optional(),
16618
16655
  schPinSpacing: distance14.optional(),
16619
16656
  schWidth: distance14.optional(),
16620
16657
  schHeight: distance14.optional(),
16621
- schDirection: z44.enum(["left", "right"]).optional(),
16658
+ schDirection: z46.enum(["left", "right"]).optional(),
16622
16659
  schPinArrangement: schematicPinArrangement.optional(),
16623
16660
  schPortArrangement: schematicPortArrangement.optional(),
16624
- pcbPinLabels: z44.record(z44.string(), z44.string()).optional(),
16625
- pinCount: z44.union([z44.literal(2), z44.literal(3)]).optional(),
16626
- internallyConnectedPins: z44.array(z44.array(z44.union([z44.string(), z44.number()]))).optional(),
16627
- connections: z44.custom().pipe(z44.record(z44.string(), connectionTarget)).optional()
16661
+ pcbPinLabels: z46.record(z46.string(), z46.string()).optional(),
16662
+ pinCount: z46.union([z46.literal(2), z46.literal(3)]).optional(),
16663
+ internallyConnectedPins: z46.array(z46.array(z46.union([z46.string(), z46.number()]))).optional(),
16664
+ connections: z46.custom().pipe(z46.record(z46.string(), connectionTarget)).optional()
16628
16665
  });
16629
16666
  expectTypesMatch(true);
16630
16667
 
16631
16668
  // lib/components/solderjumper.ts
16632
- import { z as z45 } from "zod";
16669
+ import { z as z47 } from "zod";
16633
16670
  var solderjumperProps = jumperProps.extend({
16634
- bridgedPins: z45.array(z45.array(z45.string())).optional(),
16635
- bridged: z45.boolean().optional()
16671
+ bridgedPins: z47.array(z47.array(z47.string())).optional(),
16672
+ bridged: z47.boolean().optional()
16636
16673
  });
16637
16674
  expectTypesMatch(true);
16638
16675
 
16639
16676
  // lib/components/connector.ts
16640
- import { z as z46 } from "zod";
16677
+ import { z as z48 } from "zod";
16641
16678
  var connectorProps = chipProps.extend({
16642
- standard: z46.enum(["usb_c", "m2"]).optional()
16679
+ standard: z48.enum(["usb_c", "m2"]).optional()
16643
16680
  });
16644
16681
  expectTypesMatch(true);
16645
16682
 
16646
16683
  // lib/components/interconnect.ts
16647
- import { z as z47 } from "zod";
16684
+ import { z as z49 } from "zod";
16648
16685
  var interconnectProps = commonComponentProps.extend({
16649
- standard: z47.enum(["TSC0001_36P_XALT_2025_11", "0805", "0603", "1206"]).optional(),
16650
- pinLabels: z47.record(
16651
- z47.number().or(schematicPinLabel),
16652
- schematicPinLabel.or(z47.array(schematicPinLabel))
16686
+ standard: z49.enum(["TSC0001_36P_XALT_2025_11", "0805", "0603", "1206"]).optional(),
16687
+ pinLabels: z49.record(
16688
+ z49.number().or(schematicPinLabel),
16689
+ schematicPinLabel.or(z49.array(schematicPinLabel))
16653
16690
  ).optional(),
16654
- internallyConnectedPins: z47.array(z47.array(z47.union([z47.string(), z47.number()]))).optional()
16691
+ internallyConnectedPins: z49.array(z49.array(z49.union([z49.string(), z49.number()]))).optional()
16655
16692
  });
16656
16693
  expectTypesMatch(true);
16657
16694
 
16658
16695
  // lib/components/fuse.ts
16659
- import { z as z48 } from "zod";
16696
+ import { z as z50 } from "zod";
16660
16697
  var fusePinLabels = ["pin1", "pin2"];
16661
16698
  var fuseProps = commonComponentProps.extend({
16662
- currentRating: z48.union([z48.number(), z48.string()]),
16663
- voltageRating: z48.union([z48.number(), z48.string()]).optional(),
16664
- schShowRatings: z48.boolean().optional(),
16699
+ currentRating: z50.union([z50.number(), z50.string()]),
16700
+ voltageRating: z50.union([z50.number(), z50.string()]).optional(),
16701
+ schShowRatings: z50.boolean().optional(),
16665
16702
  schOrientation: schematicOrientation.optional(),
16666
- connections: z48.record(
16667
- z48.string(),
16668
- z48.union([
16669
- z48.string(),
16670
- z48.array(z48.string()).readonly(),
16671
- z48.array(z48.string())
16703
+ connections: z50.record(
16704
+ z50.string(),
16705
+ z50.union([
16706
+ z50.string(),
16707
+ z50.array(z50.string()).readonly(),
16708
+ z50.array(z50.string())
16672
16709
  ])
16673
16710
  ).optional()
16674
16711
  });
16675
16712
 
16676
16713
  // lib/components/platedhole.ts
16677
16714
  import { distance as distance15 } from "circuit-json";
16678
- import { z as z49 } from "zod";
16715
+ import { z as z51 } from "zod";
16679
16716
  var DEFAULT_PIN_HEADER_HOLE_DIAMETER = "0.04in";
16680
16717
  var DEFAULT_PIN_HEADER_OUTER_DIAMETER = "0.1in";
16681
16718
  var inferPlatedHoleShapeAndDefaults = (rawProps) => {
@@ -16707,26 +16744,26 @@ var inferPlatedHoleShapeAndDefaults = (rawProps) => {
16707
16744
  props.outerDiameter = DEFAULT_PIN_HEADER_OUTER_DIAMETER;
16708
16745
  return props;
16709
16746
  };
16710
- var distanceHiddenUndefined = z49.custom().transform((a) => {
16747
+ var distanceHiddenUndefined = z51.custom().transform((a) => {
16711
16748
  if (a === void 0) return void 0;
16712
16749
  return distance15.parse(a);
16713
16750
  });
16714
- var platedHolePropsByShape = z49.discriminatedUnion("shape", [
16751
+ var platedHolePropsByShape = z51.discriminatedUnion("shape", [
16715
16752
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
16716
- name: z49.string().optional(),
16717
- connectsTo: z49.string().or(z49.array(z49.string())).optional(),
16718
- shape: z49.literal("circle"),
16753
+ name: z51.string().optional(),
16754
+ connectsTo: z51.string().or(z51.array(z51.string())).optional(),
16755
+ shape: z51.literal("circle"),
16719
16756
  holeDiameter: distance15,
16720
16757
  outerDiameter: distance15,
16721
16758
  padDiameter: distance15.optional().describe("Diameter of the copper pad"),
16722
16759
  portHints: portHints.optional(),
16723
16760
  solderMaskMargin: distance15.optional(),
16724
- coveredWithSolderMask: z49.boolean().optional()
16761
+ coveredWithSolderMask: z51.boolean().optional()
16725
16762
  }),
16726
16763
  pcbLayoutProps.omit({ layer: true }).extend({
16727
- name: z49.string().optional(),
16728
- connectsTo: z49.string().or(z49.array(z49.string())).optional(),
16729
- shape: z49.literal("oval"),
16764
+ name: z51.string().optional(),
16765
+ connectsTo: z51.string().or(z51.array(z51.string())).optional(),
16766
+ shape: z51.literal("oval"),
16730
16767
  outerWidth: distance15,
16731
16768
  outerHeight: distance15,
16732
16769
  holeWidth: distanceHiddenUndefined,
@@ -16735,13 +16772,13 @@ var platedHolePropsByShape = z49.discriminatedUnion("shape", [
16735
16772
  innerHeight: distance15.optional().describe("DEPRECATED use holeHeight"),
16736
16773
  portHints: portHints.optional(),
16737
16774
  solderMaskMargin: distance15.optional(),
16738
- coveredWithSolderMask: z49.boolean().optional()
16775
+ coveredWithSolderMask: z51.boolean().optional()
16739
16776
  }),
16740
16777
  pcbLayoutProps.omit({ layer: true }).extend({
16741
- name: z49.string().optional(),
16742
- connectsTo: z49.string().or(z49.array(z49.string())).optional(),
16743
- shape: z49.literal("pill"),
16744
- rectPad: z49.boolean().optional(),
16778
+ name: z51.string().optional(),
16779
+ connectsTo: z51.string().or(z51.array(z51.string())).optional(),
16780
+ shape: z51.literal("pill"),
16781
+ rectPad: z51.boolean().optional(),
16745
16782
  outerWidth: distance15,
16746
16783
  outerHeight: distance15,
16747
16784
  holeWidth: distanceHiddenUndefined,
@@ -16752,30 +16789,30 @@ var platedHolePropsByShape = z49.discriminatedUnion("shape", [
16752
16789
  holeOffsetX: distance15.optional(),
16753
16790
  holeOffsetY: distance15.optional(),
16754
16791
  solderMaskMargin: distance15.optional(),
16755
- coveredWithSolderMask: z49.boolean().optional()
16792
+ coveredWithSolderMask: z51.boolean().optional()
16756
16793
  }),
16757
16794
  pcbLayoutProps.omit({ layer: true }).extend({
16758
- name: z49.string().optional(),
16759
- connectsTo: z49.string().or(z49.array(z49.string())).optional(),
16760
- shape: z49.literal("circular_hole_with_rect_pad"),
16795
+ name: z51.string().optional(),
16796
+ connectsTo: z51.string().or(z51.array(z51.string())).optional(),
16797
+ shape: z51.literal("circular_hole_with_rect_pad"),
16761
16798
  holeDiameter: distance15,
16762
16799
  rectPadWidth: distance15,
16763
16800
  rectPadHeight: distance15,
16764
16801
  rectBorderRadius: distance15.optional(),
16765
- holeShape: z49.literal("circle").optional(),
16766
- padShape: z49.literal("rect").optional(),
16802
+ holeShape: z51.literal("circle").optional(),
16803
+ padShape: z51.literal("rect").optional(),
16767
16804
  portHints: portHints.optional(),
16768
16805
  holeOffsetX: distance15.optional(),
16769
16806
  holeOffsetY: distance15.optional(),
16770
16807
  solderMaskMargin: distance15.optional(),
16771
- coveredWithSolderMask: z49.boolean().optional()
16808
+ coveredWithSolderMask: z51.boolean().optional()
16772
16809
  }),
16773
16810
  pcbLayoutProps.omit({ layer: true }).extend({
16774
- name: z49.string().optional(),
16775
- connectsTo: z49.string().or(z49.array(z49.string())).optional(),
16776
- shape: z49.literal("pill_hole_with_rect_pad"),
16777
- holeShape: z49.literal("pill").optional(),
16778
- padShape: z49.literal("rect").optional(),
16811
+ name: z51.string().optional(),
16812
+ connectsTo: z51.string().or(z51.array(z51.string())).optional(),
16813
+ shape: z51.literal("pill_hole_with_rect_pad"),
16814
+ holeShape: z51.literal("pill").optional(),
16815
+ padShape: z51.literal("rect").optional(),
16779
16816
  holeWidth: distance15,
16780
16817
  holeHeight: distance15,
16781
16818
  rectPadWidth: distance15,
@@ -16785,22 +16822,22 @@ var platedHolePropsByShape = z49.discriminatedUnion("shape", [
16785
16822
  holeOffsetX: distance15.optional(),
16786
16823
  holeOffsetY: distance15.optional(),
16787
16824
  solderMaskMargin: distance15.optional(),
16788
- coveredWithSolderMask: z49.boolean().optional()
16825
+ coveredWithSolderMask: z51.boolean().optional()
16789
16826
  }),
16790
16827
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
16791
- name: z49.string().optional(),
16792
- connectsTo: z49.string().or(z49.array(z49.string())).optional(),
16793
- shape: z49.literal("hole_with_polygon_pad"),
16794
- holeShape: z49.enum(["circle", "oval", "pill", "rotated_pill"]),
16828
+ name: z51.string().optional(),
16829
+ connectsTo: z51.string().or(z51.array(z51.string())).optional(),
16830
+ shape: z51.literal("hole_with_polygon_pad"),
16831
+ holeShape: z51.enum(["circle", "oval", "pill", "rotated_pill"]),
16795
16832
  holeDiameter: distance15.optional(),
16796
16833
  holeWidth: distance15.optional(),
16797
16834
  holeHeight: distance15.optional(),
16798
- padOutline: z49.array(point),
16835
+ padOutline: z51.array(point),
16799
16836
  holeOffsetX: distance15,
16800
16837
  holeOffsetY: distance15,
16801
16838
  portHints: portHints.optional(),
16802
16839
  solderMaskMargin: distance15.optional(),
16803
- coveredWithSolderMask: z49.boolean().optional()
16840
+ coveredWithSolderMask: z51.boolean().optional()
16804
16841
  })
16805
16842
  ]).transform((a) => {
16806
16843
  if ("innerWidth" in a && a.innerWidth !== void 0) {
@@ -16811,7 +16848,7 @@ var platedHolePropsByShape = z49.discriminatedUnion("shape", [
16811
16848
  }
16812
16849
  return a;
16813
16850
  });
16814
- var platedHoleProps = z49.preprocess(
16851
+ var platedHoleProps = z51.preprocess(
16815
16852
  inferPlatedHoleShapeAndDefaults,
16816
16853
  platedHolePropsByShape
16817
16854
  );
@@ -16819,7 +16856,7 @@ expectTypesMatch(true);
16819
16856
 
16820
16857
  // lib/components/resistor.ts
16821
16858
  import { resistance } from "circuit-json";
16822
- import { z as z50 } from "zod";
16859
+ import { z as z52 } from "zod";
16823
16860
  var resistorPinLabels = ["pin1", "pin2", "pos", "neg"];
16824
16861
  var resistorImperialFootprintNames = /* @__PURE__ */ new Set([
16825
16862
  "01005",
@@ -16843,7 +16880,7 @@ var resistorFootprintProp = footprintProp.optional().transform(mapResistorFootpr
16843
16880
  var resistorProps = commonComponentProps.extend({
16844
16881
  footprint: resistorFootprintProp,
16845
16882
  resistance,
16846
- tolerance: z50.union([z50.string(), z50.number()]).transform((val) => {
16883
+ tolerance: z52.union([z52.string(), z52.number()]).transform((val) => {
16847
16884
  if (typeof val === "string") {
16848
16885
  if (val.endsWith("%")) {
16849
16886
  return parseFloat(val.slice(0, -1)) / 100;
@@ -16852,12 +16889,12 @@ var resistorProps = commonComponentProps.extend({
16852
16889
  }
16853
16890
  return val;
16854
16891
  }).pipe(
16855
- z50.number().min(0, "Tolerance must be non-negative").max(1, "Tolerance cannot be greater than 100%")
16892
+ z52.number().min(0, "Tolerance must be non-negative").max(1, "Tolerance cannot be greater than 100%")
16856
16893
  ).optional(),
16857
- pullupFor: z50.string().optional(),
16858
- pullupTo: z50.string().optional(),
16859
- pulldownFor: z50.string().optional(),
16860
- pulldownTo: z50.string().optional(),
16894
+ pullupFor: z52.string().optional(),
16895
+ pullupTo: z52.string().optional(),
16896
+ pulldownFor: z52.string().optional(),
16897
+ pulldownTo: z52.string().optional(),
16861
16898
  schOrientation: schematicOrientation.optional(),
16862
16899
  schSize: schematicSymbolSize.optional(),
16863
16900
  connections: createConnectionsProp(resistorPinLabels).optional()
@@ -16867,18 +16904,18 @@ expectTypesMatch(true);
16867
16904
 
16868
16905
  // lib/components/potentiometer.ts
16869
16906
  import { resistance as resistance2 } from "circuit-json";
16870
- import { z as z51 } from "zod";
16907
+ import { z as z53 } from "zod";
16871
16908
  var potentiometerPinLabels = ["pin1", "pin2", "pin3"];
16872
16909
  var potentiometerProps = commonComponentProps.extend({
16873
16910
  maxResistance: resistance2,
16874
- pinVariant: z51.enum(["two_pin", "three_pin"]).optional(),
16911
+ pinVariant: z53.enum(["two_pin", "three_pin"]).optional(),
16875
16912
  connections: createConnectionsProp(potentiometerPinLabels).optional()
16876
16913
  });
16877
16914
  expectTypesMatch(true);
16878
16915
 
16879
16916
  // lib/components/crystal.ts
16880
16917
  import { capacitance, distance as distance16, frequency } from "circuit-json";
16881
- import { z as z52 } from "zod";
16918
+ import { z as z54 } from "zod";
16882
16919
  var crystalPins = [
16883
16920
  "pin1",
16884
16921
  "left",
@@ -16891,9 +16928,9 @@ var crystalProps = commonComponentProps.extend({
16891
16928
  frequency,
16892
16929
  loadCapacitance: capacitance,
16893
16930
  maxTraceLength: distance16.optional(),
16894
- manufacturerPartNumber: z52.string().optional(),
16895
- mpn: z52.string().optional(),
16896
- pinVariant: z52.enum(["two_pin", "four_pin"]).optional(),
16931
+ manufacturerPartNumber: z54.string().optional(),
16932
+ mpn: z54.string().optional(),
16933
+ pinVariant: z54.enum(["two_pin", "four_pin"]).optional(),
16897
16934
  schOrientation: schematicOrientation.optional(),
16898
16935
  connections: createConnectionsProp(crystalPins).optional()
16899
16936
  });
@@ -16901,34 +16938,34 @@ expectTypesMatch(true);
16901
16938
 
16902
16939
  // lib/components/resonator.ts
16903
16940
  import { frequency as frequency2, capacitance as capacitance2 } from "circuit-json";
16904
- import { z as z53 } from "zod";
16941
+ import { z as z55 } from "zod";
16905
16942
  var resonatorProps = commonComponentProps.extend({
16906
16943
  frequency: frequency2,
16907
16944
  loadCapacitance: capacitance2,
16908
- pinVariant: z53.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
16945
+ pinVariant: z55.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
16909
16946
  });
16910
16947
  expectTypesMatch(true);
16911
16948
 
16912
16949
  // lib/components/stampboard.ts
16913
16950
  import { distance as distance17 } from "circuit-json";
16914
- import { z as z54 } from "zod";
16951
+ import { z as z56 } from "zod";
16915
16952
  var stampboardProps = boardProps.extend({
16916
- leftPinCount: z54.number().optional(),
16917
- rightPinCount: z54.number().optional(),
16918
- topPinCount: z54.number().optional(),
16919
- bottomPinCount: z54.number().optional(),
16920
- leftPins: z54.array(z54.string()).optional(),
16921
- rightPins: z54.array(z54.string()).optional(),
16922
- topPins: z54.array(z54.string()).optional(),
16923
- bottomPins: z54.array(z54.string()).optional(),
16953
+ leftPinCount: z56.number().optional(),
16954
+ rightPinCount: z56.number().optional(),
16955
+ topPinCount: z56.number().optional(),
16956
+ bottomPinCount: z56.number().optional(),
16957
+ leftPins: z56.array(z56.string()).optional(),
16958
+ rightPins: z56.array(z56.string()).optional(),
16959
+ topPins: z56.array(z56.string()).optional(),
16960
+ bottomPins: z56.array(z56.string()).optional(),
16924
16961
  pinPitch: distance17.optional(),
16925
- innerHoles: z54.boolean().optional()
16962
+ innerHoles: z56.boolean().optional()
16926
16963
  });
16927
16964
  expectTypesMatch(true);
16928
16965
 
16929
16966
  // lib/components/capacitor.ts
16930
16967
  import { capacitance as capacitance3, voltage } from "circuit-json";
16931
- import { z as z55 } from "zod";
16968
+ import { z as z57 } from "zod";
16932
16969
  var capacitorPinLabels = [
16933
16970
  "pin1",
16934
16971
  "pin2",
@@ -16940,13 +16977,13 @@ var capacitorPinLabels = [
16940
16977
  var capacitorProps = commonComponentProps.extend({
16941
16978
  capacitance: capacitance3,
16942
16979
  maxVoltageRating: voltage.optional(),
16943
- schShowRatings: z55.boolean().optional().default(false),
16944
- polarized: z55.boolean().optional().default(false),
16945
- decouplingFor: z55.string().optional(),
16946
- decouplingTo: z55.string().optional(),
16947
- bypassFor: z55.string().optional(),
16948
- bypassTo: z55.string().optional(),
16949
- maxDecouplingTraceLength: z55.number().optional(),
16980
+ schShowRatings: z57.boolean().optional().default(false),
16981
+ polarized: z57.boolean().optional().default(false),
16982
+ decouplingFor: z57.string().optional(),
16983
+ decouplingTo: z57.string().optional(),
16984
+ bypassFor: z57.string().optional(),
16985
+ bypassTo: z57.string().optional(),
16986
+ maxDecouplingTraceLength: z57.number().optional(),
16950
16987
  schOrientation: schematicOrientation.optional(),
16951
16988
  schSize: schematicSymbolSize.optional(),
16952
16989
  connections: createConnectionsProp(capacitorPinLabels).optional()
@@ -16956,14 +16993,14 @@ expectTypesMatch(true);
16956
16993
 
16957
16994
  // lib/components/net.ts
16958
16995
  import { distance as distance18 } from "circuit-json";
16959
- import { z as z56 } from "zod";
16960
- var netProps = z56.object({
16961
- name: z56.string(),
16962
- connectsTo: z56.string().or(z56.array(z56.string())).optional(),
16963
- routingPhaseIndex: z56.number().nullable().optional(),
16964
- highlightColor: z56.string().optional(),
16965
- isPowerNet: z56.boolean().optional(),
16966
- isGroundNet: z56.boolean().optional(),
16996
+ import { z as z58 } from "zod";
16997
+ var netProps = z58.object({
16998
+ name: z58.string(),
16999
+ connectsTo: z58.string().or(z58.array(z58.string())).optional(),
17000
+ routingPhaseIndex: z58.number().nullable().optional(),
17001
+ highlightColor: z58.string().optional(),
17002
+ isPowerNet: z58.boolean().optional(),
17003
+ isGroundNet: z58.boolean().optional(),
16967
17004
  nominalTraceWidth: distance18.optional()
16968
17005
  });
16969
17006
  expectTypesMatch(true);
@@ -16977,55 +17014,55 @@ var fiducialProps = commonComponentProps.extend({
16977
17014
  expectTypesMatch(true);
16978
17015
 
16979
17016
  // lib/components/constrainedlayout.ts
16980
- import { z as z58 } from "zod";
16981
- var constrainedLayoutProps = z58.object({
16982
- name: z58.string().optional(),
16983
- pcbOnly: z58.boolean().optional(),
16984
- schOnly: z58.boolean().optional()
17017
+ import { z as z60 } from "zod";
17018
+ var constrainedLayoutProps = z60.object({
17019
+ name: z60.string().optional(),
17020
+ pcbOnly: z60.boolean().optional(),
17021
+ schOnly: z60.boolean().optional()
16985
17022
  });
16986
17023
  expectTypesMatch(true);
16987
17024
 
16988
17025
  // lib/components/constraint.ts
16989
- import { z as z59 } from "zod";
16990
- var pcbXDistConstraintProps = z59.object({
16991
- pcb: z59.literal(true).optional(),
17026
+ import { z as z61 } from "zod";
17027
+ var pcbXDistConstraintProps = z61.object({
17028
+ pcb: z61.literal(true).optional(),
16992
17029
  xDist: distance,
16993
- left: z59.string(),
16994
- right: z59.string(),
16995
- edgeToEdge: z59.literal(true).optional(),
16996
- centerToCenter: z59.literal(true).optional()
17030
+ left: z61.string(),
17031
+ right: z61.string(),
17032
+ edgeToEdge: z61.literal(true).optional(),
17033
+ centerToCenter: z61.literal(true).optional()
16997
17034
  });
16998
17035
  expectTypesMatch(
16999
17036
  true
17000
17037
  );
17001
- var pcbYDistConstraintProps = z59.object({
17002
- pcb: z59.literal(true).optional(),
17038
+ var pcbYDistConstraintProps = z61.object({
17039
+ pcb: z61.literal(true).optional(),
17003
17040
  yDist: distance,
17004
- top: z59.string(),
17005
- bottom: z59.string(),
17006
- edgeToEdge: z59.literal(true).optional(),
17007
- centerToCenter: z59.literal(true).optional()
17041
+ top: z61.string(),
17042
+ bottom: z61.string(),
17043
+ edgeToEdge: z61.literal(true).optional(),
17044
+ centerToCenter: z61.literal(true).optional()
17008
17045
  });
17009
17046
  expectTypesMatch(
17010
17047
  true
17011
17048
  );
17012
- var pcbSameYConstraintProps = z59.object({
17013
- pcb: z59.literal(true).optional(),
17014
- sameY: z59.literal(true).optional(),
17015
- for: z59.array(z59.string())
17049
+ var pcbSameYConstraintProps = z61.object({
17050
+ pcb: z61.literal(true).optional(),
17051
+ sameY: z61.literal(true).optional(),
17052
+ for: z61.array(z61.string())
17016
17053
  });
17017
17054
  expectTypesMatch(
17018
17055
  true
17019
17056
  );
17020
- var pcbSameXConstraintProps = z59.object({
17021
- pcb: z59.literal(true).optional(),
17022
- sameX: z59.literal(true).optional(),
17023
- for: z59.array(z59.string())
17057
+ var pcbSameXConstraintProps = z61.object({
17058
+ pcb: z61.literal(true).optional(),
17059
+ sameX: z61.literal(true).optional(),
17060
+ for: z61.array(z61.string())
17024
17061
  });
17025
17062
  expectTypesMatch(
17026
17063
  true
17027
17064
  );
17028
- var constraintProps = z59.union([
17065
+ var constraintProps = z61.union([
17029
17066
  pcbXDistConstraintProps,
17030
17067
  pcbYDistConstraintProps,
17031
17068
  pcbSameYConstraintProps,
@@ -17034,13 +17071,13 @@ var constraintProps = z59.union([
17034
17071
  expectTypesMatch(true);
17035
17072
 
17036
17073
  // lib/components/cutout.ts
17037
- import { z as z60 } from "zod";
17074
+ import { z as z62 } from "zod";
17038
17075
  var rectCutoutProps = pcbLayoutProps.omit({
17039
17076
  layer: true,
17040
17077
  pcbRotation: true
17041
17078
  }).extend({
17042
- name: z60.string().optional(),
17043
- shape: z60.literal("rect"),
17079
+ name: z62.string().optional(),
17080
+ shape: z62.literal("rect"),
17044
17081
  width: distance,
17045
17082
  height: distance
17046
17083
  });
@@ -17049,8 +17086,8 @@ var circleCutoutProps = pcbLayoutProps.omit({
17049
17086
  layer: true,
17050
17087
  pcbRotation: true
17051
17088
  }).extend({
17052
- name: z60.string().optional(),
17053
- shape: z60.literal("circle"),
17089
+ name: z62.string().optional(),
17090
+ shape: z62.literal("circle"),
17054
17091
  radius: distance
17055
17092
  });
17056
17093
  expectTypesMatch(true);
@@ -17058,36 +17095,36 @@ var polygonCutoutProps = pcbLayoutProps.omit({
17058
17095
  layer: true,
17059
17096
  pcbRotation: true
17060
17097
  }).extend({
17061
- name: z60.string().optional(),
17062
- shape: z60.literal("polygon"),
17063
- points: z60.array(point)
17098
+ name: z62.string().optional(),
17099
+ shape: z62.literal("polygon"),
17100
+ points: z62.array(point)
17064
17101
  });
17065
17102
  expectTypesMatch(true);
17066
- var cutoutProps = z60.discriminatedUnion("shape", [
17103
+ var cutoutProps = z62.discriminatedUnion("shape", [
17067
17104
  rectCutoutProps,
17068
17105
  circleCutoutProps,
17069
17106
  polygonCutoutProps
17070
17107
  ]);
17071
17108
 
17072
17109
  // lib/components/drc-check.ts
17073
- import { z as z61 } from "zod";
17074
- var drcCheckProps = z61.object({
17075
- name: z61.string().optional(),
17110
+ import { z as z63 } from "zod";
17111
+ var drcCheckProps = z63.object({
17112
+ name: z63.string().optional(),
17076
17113
  checkFn: customDrcCheckFn
17077
17114
  });
17078
17115
  expectTypesMatch(true);
17079
17116
 
17080
17117
  // lib/components/smtpad.ts
17081
- import { z as z62 } from "zod";
17118
+ import { z as z64 } from "zod";
17082
17119
  var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17083
- name: z62.string().optional(),
17084
- shape: z62.literal("rect"),
17120
+ name: z64.string().optional(),
17121
+ shape: z64.literal("rect"),
17085
17122
  width: distance,
17086
17123
  height: distance,
17087
17124
  rectBorderRadius: distance.optional(),
17088
17125
  cornerRadius: distance.optional(),
17089
17126
  portHints: portHints.optional(),
17090
- coveredWithSolderMask: z62.boolean().optional(),
17127
+ coveredWithSolderMask: z64.boolean().optional(),
17091
17128
  solderMaskMargin: distance.optional(),
17092
17129
  solderMaskMarginLeft: distance.optional(),
17093
17130
  solderMaskMarginRight: distance.optional(),
@@ -17096,14 +17133,14 @@ var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17096
17133
  });
17097
17134
  expectTypesMatch(true);
17098
17135
  var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17099
- name: z62.string().optional(),
17100
- shape: z62.literal("rotated_rect"),
17136
+ name: z64.string().optional(),
17137
+ shape: z64.literal("rotated_rect"),
17101
17138
  width: distance,
17102
17139
  height: distance,
17103
- ccwRotation: z62.number(),
17140
+ ccwRotation: z64.number(),
17104
17141
  cornerRadius: distance.optional(),
17105
17142
  portHints: portHints.optional(),
17106
- coveredWithSolderMask: z62.boolean().optional(),
17143
+ coveredWithSolderMask: z64.boolean().optional(),
17107
17144
  solderMaskMargin: distance.optional(),
17108
17145
  solderMaskMarginLeft: distance.optional(),
17109
17146
  solderMaskMarginRight: distance.optional(),
@@ -17112,35 +17149,35 @@ var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17112
17149
  });
17113
17150
  expectTypesMatch(true);
17114
17151
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17115
- name: z62.string().optional(),
17116
- shape: z62.literal("circle"),
17152
+ name: z64.string().optional(),
17153
+ shape: z64.literal("circle"),
17117
17154
  radius: distance,
17118
17155
  portHints: portHints.optional(),
17119
- coveredWithSolderMask: z62.boolean().optional(),
17156
+ coveredWithSolderMask: z64.boolean().optional(),
17120
17157
  solderMaskMargin: distance.optional()
17121
17158
  });
17122
17159
  expectTypesMatch(true);
17123
17160
  var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17124
- name: z62.string().optional(),
17125
- shape: z62.literal("pill"),
17161
+ name: z64.string().optional(),
17162
+ shape: z64.literal("pill"),
17126
17163
  width: distance,
17127
17164
  height: distance,
17128
17165
  radius: distance,
17129
17166
  portHints: portHints.optional(),
17130
- coveredWithSolderMask: z62.boolean().optional(),
17167
+ coveredWithSolderMask: z64.boolean().optional(),
17131
17168
  solderMaskMargin: distance.optional()
17132
17169
  });
17133
17170
  expectTypesMatch(true);
17134
17171
  var polygonSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17135
- name: z62.string().optional(),
17136
- shape: z62.literal("polygon"),
17137
- points: z62.array(point),
17172
+ name: z64.string().optional(),
17173
+ shape: z64.literal("polygon"),
17174
+ points: z64.array(point),
17138
17175
  portHints: portHints.optional(),
17139
- coveredWithSolderMask: z62.boolean().optional(),
17176
+ coveredWithSolderMask: z64.boolean().optional(),
17140
17177
  solderMaskMargin: distance.optional()
17141
17178
  });
17142
17179
  expectTypesMatch(true);
17143
- var smtPadProps = z62.discriminatedUnion("shape", [
17180
+ var smtPadProps = z64.discriminatedUnion("shape", [
17144
17181
  circleSmtPadProps,
17145
17182
  rectSmtPadProps,
17146
17183
  rotatedRectSmtPadProps,
@@ -17150,63 +17187,63 @@ var smtPadProps = z62.discriminatedUnion("shape", [
17150
17187
  expectTypesMatch(true);
17151
17188
 
17152
17189
  // lib/components/solderpaste.ts
17153
- import { z as z63 } from "zod";
17190
+ import { z as z65 } from "zod";
17154
17191
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17155
- shape: z63.literal("rect"),
17192
+ shape: z65.literal("rect"),
17156
17193
  width: distance,
17157
17194
  height: distance
17158
17195
  });
17159
17196
  expectTypesMatch(true);
17160
17197
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17161
- shape: z63.literal("circle"),
17198
+ shape: z65.literal("circle"),
17162
17199
  radius: distance
17163
17200
  });
17164
17201
  expectTypesMatch(true);
17165
- var solderPasteProps = z63.union([
17202
+ var solderPasteProps = z65.union([
17166
17203
  circleSolderPasteProps,
17167
17204
  rectSolderPasteProps
17168
17205
  ]);
17169
17206
  expectTypesMatch(true);
17170
17207
 
17171
17208
  // lib/components/hole.ts
17172
- import { z as z64 } from "zod";
17209
+ import { z as z66 } from "zod";
17173
17210
  var circleHoleProps = pcbLayoutProps.extend({
17174
- name: z64.string().optional(),
17175
- shape: z64.literal("circle").optional(),
17211
+ name: z66.string().optional(),
17212
+ shape: z66.literal("circle").optional(),
17176
17213
  diameter: distance.optional(),
17177
17214
  radius: distance.optional(),
17178
17215
  solderMaskMargin: distance.optional(),
17179
- coveredWithSolderMask: z64.boolean().optional()
17216
+ coveredWithSolderMask: z66.boolean().optional()
17180
17217
  }).transform((d) => ({
17181
17218
  ...d,
17182
17219
  diameter: d.diameter ?? 2 * d.radius,
17183
17220
  radius: d.radius ?? d.diameter / 2
17184
17221
  }));
17185
17222
  var pillHoleProps = pcbLayoutProps.extend({
17186
- name: z64.string().optional(),
17187
- shape: z64.literal("pill"),
17223
+ name: z66.string().optional(),
17224
+ shape: z66.literal("pill"),
17188
17225
  width: distance,
17189
17226
  height: distance,
17190
17227
  solderMaskMargin: distance.optional(),
17191
- coveredWithSolderMask: z64.boolean().optional()
17228
+ coveredWithSolderMask: z66.boolean().optional()
17192
17229
  });
17193
17230
  var ovalHoleProps = pcbLayoutProps.extend({
17194
- name: z64.string().optional(),
17195
- shape: z64.literal("oval"),
17231
+ name: z66.string().optional(),
17232
+ shape: z66.literal("oval"),
17196
17233
  width: distance,
17197
17234
  height: distance,
17198
17235
  solderMaskMargin: distance.optional(),
17199
- coveredWithSolderMask: z64.boolean().optional()
17236
+ coveredWithSolderMask: z66.boolean().optional()
17200
17237
  });
17201
17238
  var rectHoleProps = pcbLayoutProps.extend({
17202
- name: z64.string().optional(),
17203
- shape: z64.literal("rect"),
17239
+ name: z66.string().optional(),
17240
+ shape: z66.literal("rect"),
17204
17241
  width: distance,
17205
17242
  height: distance,
17206
17243
  solderMaskMargin: distance.optional(),
17207
- coveredWithSolderMask: z64.boolean().optional()
17244
+ coveredWithSolderMask: z66.boolean().optional()
17208
17245
  });
17209
- var holeProps = z64.union([
17246
+ var holeProps = z66.union([
17210
17247
  circleHoleProps,
17211
17248
  pillHoleProps,
17212
17249
  ovalHoleProps,
@@ -17216,57 +17253,57 @@ expectTypesMatch(true);
17216
17253
 
17217
17254
  // lib/components/trace.ts
17218
17255
  import { distance as distance19, layer_ref as layer_ref4, route_hint_point as route_hint_point2 } from "circuit-json";
17219
- import { z as z65 } from "zod";
17220
- var portRef = z65.union([
17221
- z65.string(),
17222
- z65.custom(
17256
+ import { z as z67 } from "zod";
17257
+ var portRef = z67.union([
17258
+ z67.string(),
17259
+ z67.custom(
17223
17260
  (v) => typeof v === "object" && v !== null && "getPortSelector" in v && typeof v.getPortSelector === "function"
17224
17261
  )
17225
17262
  ]);
17226
17263
  var pcbPathPoint = point.extend({
17227
- via: z65.boolean().optional(),
17264
+ via: z67.boolean().optional(),
17228
17265
  fromLayer: layer_ref4.optional(),
17229
17266
  toLayer: layer_ref4.optional()
17230
17267
  }).superRefine((value, ctx) => {
17231
17268
  if (value.via) {
17232
17269
  if (!value.toLayer) {
17233
17270
  ctx.addIssue({
17234
- code: z65.ZodIssueCode.custom,
17271
+ code: z67.ZodIssueCode.custom,
17235
17272
  message: "toLayer is required when via is true",
17236
17273
  path: ["toLayer"]
17237
17274
  });
17238
17275
  }
17239
17276
  } else if (value.fromLayer || value.toLayer) {
17240
17277
  ctx.addIssue({
17241
- code: z65.ZodIssueCode.custom,
17278
+ code: z67.ZodIssueCode.custom,
17242
17279
  message: "fromLayer/toLayer are only allowed when via is true",
17243
17280
  path: ["via"]
17244
17281
  });
17245
17282
  }
17246
17283
  });
17247
- var pcbPath = z65.array(z65.union([pcbPathPoint, z65.string()]));
17248
- var baseTraceProps = z65.object({
17249
- key: z65.string().optional(),
17250
- name: z65.string().optional(),
17251
- displayName: z65.string().optional(),
17284
+ var pcbPath = z67.array(z67.union([pcbPathPoint, z67.string()]));
17285
+ var baseTraceProps = z67.object({
17286
+ key: z67.string().optional(),
17287
+ name: z67.string().optional(),
17288
+ displayName: z67.string().optional(),
17252
17289
  thickness: distance19.optional(),
17253
17290
  width: distance19.optional().describe("Alias for trace thickness"),
17254
- schematicRouteHints: z65.array(point).optional(),
17255
- pcbRouteHints: z65.array(route_hint_point2).optional(),
17256
- pcbPathRelativeTo: z65.string().optional(),
17291
+ schematicRouteHints: z67.array(point).optional(),
17292
+ pcbRouteHints: z67.array(route_hint_point2).optional(),
17293
+ pcbPathRelativeTo: z67.string().optional(),
17257
17294
  pcbPath: pcbPath.optional(),
17258
- pcbPaths: z65.array(pcbPath).optional(),
17259
- routingPhaseIndex: z65.number().nullable().optional(),
17260
- pcbStraightLine: z65.boolean().optional().describe("Draw a straight pcb trace between the connected points"),
17261
- schDisplayLabel: z65.string().optional(),
17262
- schStroke: z65.string().optional(),
17263
- highlightColor: z65.string().optional(),
17295
+ pcbPaths: z67.array(pcbPath).optional(),
17296
+ routingPhaseIndex: z67.number().nullable().optional(),
17297
+ pcbStraightLine: z67.boolean().optional().describe("Draw a straight pcb trace between the connected points"),
17298
+ schDisplayLabel: z67.string().optional(),
17299
+ schStroke: z67.string().optional(),
17300
+ highlightColor: z67.string().optional(),
17264
17301
  maxLength: distance19.optional(),
17265
- connectsTo: z65.string().or(z65.array(z65.string())).optional()
17302
+ connectsTo: z67.string().or(z67.array(z67.string())).optional()
17266
17303
  });
17267
- var traceProps = z65.union([
17304
+ var traceProps = z67.union([
17268
17305
  baseTraceProps.extend({
17269
- path: z65.array(portRef)
17306
+ path: z67.array(portRef)
17270
17307
  }),
17271
17308
  baseTraceProps.extend({
17272
17309
  from: portRef,
@@ -17279,19 +17316,19 @@ var traceProps = z65.union([
17279
17316
  ]);
17280
17317
 
17281
17318
  // lib/components/differentialpair.ts
17282
- import { z as z66 } from "zod";
17283
- var differentialPairProps = z66.object({
17284
- name: z66.string().optional(),
17285
- positiveConnection: z66.string(),
17286
- negativeConnection: z66.string(),
17287
- maxLengthSkew: z66.number().min(0).max(1).optional()
17319
+ import { z as z68 } from "zod";
17320
+ var differentialPairProps = z68.object({
17321
+ name: z68.string().optional(),
17322
+ positiveConnection: z68.string(),
17323
+ negativeConnection: z68.string(),
17324
+ maxLengthSkew: z68.number().min(0).max(1).optional()
17288
17325
  });
17289
17326
  expectTypesMatch(true);
17290
17327
 
17291
17328
  // lib/components/footprint.ts
17292
17329
  import { layer_ref as layer_ref5 } from "circuit-json";
17293
- import { z as z67 } from "zod";
17294
- var footprintInsertionDirection = z67.enum([
17330
+ import { z as z69 } from "zod";
17331
+ var footprintInsertionDirection = z69.enum([
17295
17332
  "from_above",
17296
17333
  "from_left",
17297
17334
  "from_right",
@@ -17299,11 +17336,11 @@ var footprintInsertionDirection = z67.enum([
17299
17336
  "from_back"
17300
17337
  ]);
17301
17338
  expectTypesMatch(true);
17302
- var footprintProps = z67.object({
17303
- children: z67.any().optional(),
17304
- name: z67.string().optional(),
17339
+ var footprintProps = z69.object({
17340
+ children: z69.any().optional(),
17341
+ name: z69.string().optional(),
17305
17342
  originalLayer: layer_ref5.default("top").optional(),
17306
- circuitJson: z67.array(z67.any()).optional(),
17343
+ circuitJson: z69.array(z69.any()).optional(),
17307
17344
  src: footprintProp.describe("Can be a footprint or kicad string").optional(),
17308
17345
  insertionDirection: footprintInsertionDirection.optional().describe(
17309
17346
  "Direction a cable or mating part is inserted into this footprint in its unrotated orientation."
@@ -17312,19 +17349,19 @@ var footprintProps = z67.object({
17312
17349
  expectTypesMatch(true);
17313
17350
 
17314
17351
  // lib/components/symbol.ts
17315
- import { z as z68 } from "zod";
17316
- var symbolProps = z68.object({
17317
- originalFacingDirection: z68.enum(["up", "down", "left", "right"]).default("right").optional(),
17352
+ import { z as z70 } from "zod";
17353
+ var symbolProps = z70.object({
17354
+ originalFacingDirection: z70.enum(["up", "down", "left", "right"]).default("right").optional(),
17318
17355
  width: distance.optional(),
17319
17356
  height: distance.optional(),
17320
- name: z68.string().optional()
17357
+ name: z70.string().optional()
17321
17358
  });
17322
17359
  expectTypesMatch(true);
17323
17360
 
17324
17361
  // lib/components/battery.ts
17325
17362
  import { voltage as voltage2 } from "circuit-json";
17326
- import { z as z69 } from "zod";
17327
- var capacity = z69.number().or(z69.string().endsWith("mAh")).transform((v) => {
17363
+ import { z as z71 } from "zod";
17364
+ var capacity = z71.number().or(z71.string().endsWith("mAh")).transform((v) => {
17328
17365
  if (typeof v === "string") {
17329
17366
  const valString = v.replace("mAh", "");
17330
17367
  const num = Number.parseFloat(valString);
@@ -17338,14 +17375,14 @@ var capacity = z69.number().or(z69.string().endsWith("mAh")).transform((v) => {
17338
17375
  var batteryProps = commonComponentProps.extend({
17339
17376
  capacity: capacity.optional(),
17340
17377
  voltage: voltage2.optional(),
17341
- standard: z69.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
17378
+ standard: z71.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
17342
17379
  schOrientation: schematicOrientation.optional()
17343
17380
  });
17344
17381
  var batteryPins = lrPolarPins;
17345
17382
  expectTypesMatch(true);
17346
17383
 
17347
17384
  // lib/components/mountedboard.ts
17348
- import { z as z70 } from "zod";
17385
+ import { z as z72 } from "zod";
17349
17386
  var mountedboardProps = subcircuitGroupProps.extend({
17350
17387
  manufacturerPartNumber: chipProps.shape.manufacturerPartNumber,
17351
17388
  pinLabels: chipProps.shape.pinLabels,
@@ -17357,7 +17394,7 @@ var mountedboardProps = subcircuitGroupProps.extend({
17357
17394
  internallyConnectedPins: chipProps.shape.internallyConnectedPins,
17358
17395
  externallyConnectedPins: chipProps.shape.externallyConnectedPins,
17359
17396
  boardToBoardDistance: distance.optional(),
17360
- mountOrientation: z70.enum(["faceDown", "faceUp"]).optional()
17397
+ mountOrientation: z72.enum(["faceDown", "faceUp"]).optional()
17361
17398
  });
17362
17399
  expectTypesMatch(true);
17363
17400
 
@@ -17365,29 +17402,29 @@ expectTypesMatch(true);
17365
17402
  import { distance as distance20 } from "circuit-json";
17366
17403
 
17367
17404
  // lib/common/pcbOrientation.ts
17368
- import { z as z71 } from "zod";
17369
- var pcbOrientation = z71.enum(["vertical", "horizontal"]).describe(
17405
+ import { z as z73 } from "zod";
17406
+ var pcbOrientation = z73.enum(["vertical", "horizontal"]).describe(
17370
17407
  "vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward"
17371
17408
  );
17372
17409
  expectTypesMatch(true);
17373
17410
 
17374
17411
  // lib/components/pin-header.ts
17375
- import { z as z72 } from "zod";
17412
+ import { z as z74 } from "zod";
17376
17413
  var pinHeaderProps = commonComponentProps.extend({
17377
- pinCount: z72.number(),
17414
+ pinCount: z74.number(),
17378
17415
  pitch: distance20.optional(),
17379
- schFacingDirection: z72.enum(["up", "down", "left", "right"]).optional(),
17380
- gender: z72.enum(["male", "female", "unpopulated"]).optional().default("male"),
17381
- showSilkscreenPinLabels: z72.boolean().optional(),
17382
- pcbPinLabels: z72.record(z72.string(), z72.string()).optional(),
17383
- doubleRow: z72.boolean().optional(),
17384
- rightAngle: z72.boolean().optional(),
17416
+ schFacingDirection: z74.enum(["up", "down", "left", "right"]).optional(),
17417
+ gender: z74.enum(["male", "female", "unpopulated"]).optional().default("male"),
17418
+ showSilkscreenPinLabels: z74.boolean().optional(),
17419
+ pcbPinLabels: z74.record(z74.string(), z74.string()).optional(),
17420
+ doubleRow: z74.boolean().optional(),
17421
+ rightAngle: z74.boolean().optional(),
17385
17422
  pcbOrientation: pcbOrientation.optional(),
17386
17423
  holeDiameter: distance20.optional(),
17387
17424
  platedDiameter: distance20.optional(),
17388
- pinLabels: z72.record(z72.string(), schematicPinLabel).or(z72.array(schematicPinLabel)).optional(),
17389
- connections: z72.custom().pipe(z72.record(z72.string(), connectionTarget)).optional(),
17390
- facingDirection: z72.enum(["left", "right"]).optional(),
17425
+ pinLabels: z74.record(z74.string(), schematicPinLabel).or(z74.array(schematicPinLabel)).optional(),
17426
+ connections: z74.custom().pipe(z74.record(z74.string(), connectionTarget)).optional(),
17427
+ facingDirection: z74.enum(["left", "right"]).optional(),
17391
17428
  schPinArrangement: schematicPinArrangement.optional(),
17392
17429
  schPinStyle: schematicPinStyle.optional(),
17393
17430
  schPinSpacing: distance20.optional(),
@@ -17397,29 +17434,29 @@ var pinHeaderProps = commonComponentProps.extend({
17397
17434
  expectTypesMatch(true);
17398
17435
 
17399
17436
  // lib/components/netalias.ts
17400
- import { z as z73 } from "zod";
17437
+ import { z as z75 } from "zod";
17401
17438
  import { rotation as rotation3 } from "circuit-json";
17402
- var netAliasProps = z73.object({
17403
- net: z73.string().optional(),
17404
- connection: z73.string().optional(),
17439
+ var netAliasProps = z75.object({
17440
+ net: z75.string().optional(),
17441
+ connection: z75.string().optional(),
17405
17442
  schX: distance.optional(),
17406
17443
  schY: distance.optional(),
17407
17444
  schRotation: rotation3.optional(),
17408
- anchorSide: z73.enum(["left", "top", "right", "bottom"]).optional()
17445
+ anchorSide: z75.enum(["left", "top", "right", "bottom"]).optional()
17409
17446
  });
17410
17447
  expectTypesMatch(true);
17411
17448
 
17412
17449
  // lib/components/netlabel.ts
17413
- import { z as z74 } from "zod";
17450
+ import { z as z76 } from "zod";
17414
17451
  import { rotation as rotation4 } from "circuit-json";
17415
- var netLabelProps = z74.object({
17416
- net: z74.string().optional(),
17417
- connection: z74.string().optional(),
17418
- connectsTo: z74.string().or(z74.array(z74.string())).optional(),
17452
+ var netLabelProps = z76.object({
17453
+ net: z76.string().optional(),
17454
+ connection: z76.string().optional(),
17455
+ connectsTo: z76.string().or(z76.array(z76.string())).optional(),
17419
17456
  schX: distance.optional(),
17420
17457
  schY: distance.optional(),
17421
17458
  schRotation: rotation4.optional(),
17422
- anchorSide: z74.enum(["left", "top", "right", "bottom"]).optional()
17459
+ anchorSide: z76.enum(["left", "top", "right", "bottom"]).optional()
17423
17460
  });
17424
17461
  expectTypesMatch(true);
17425
17462
 
@@ -17434,52 +17471,52 @@ expectTypesMatch(true);
17434
17471
 
17435
17472
  // lib/components/analogsimulation.ts
17436
17473
  import { ms } from "circuit-json";
17437
- import { z as z76 } from "zod";
17438
- var spiceEngine = z76.custom(
17474
+ import { z as z78 } from "zod";
17475
+ var spiceEngine = z78.custom(
17439
17476
  (value) => typeof value === "string"
17440
17477
  );
17441
- var spiceOptions = z76.object({
17442
- method: z76.enum(["trap", "gear"]).optional(),
17443
- reltol: z76.union([z76.number(), z76.string()]).optional(),
17444
- abstol: z76.union([z76.number(), z76.string()]).optional(),
17445
- vntol: z76.union([z76.number(), z76.string()]).optional()
17478
+ var spiceOptions = z78.object({
17479
+ method: z78.enum(["trap", "gear"]).optional(),
17480
+ reltol: z78.union([z78.number(), z78.string()]).optional(),
17481
+ abstol: z78.union([z78.number(), z78.string()]).optional(),
17482
+ vntol: z78.union([z78.number(), z78.string()]).optional()
17446
17483
  });
17447
- var analogSimulationProps = z76.object({
17448
- name: z76.string().optional(),
17449
- simulationType: z76.literal("spice_transient_analysis").default("spice_transient_analysis"),
17484
+ var analogSimulationProps = z78.object({
17485
+ name: z78.string().optional(),
17486
+ simulationType: z78.literal("spice_transient_analysis").default("spice_transient_analysis"),
17450
17487
  duration: ms.optional(),
17451
17488
  startTime: ms.optional(),
17452
17489
  timePerStep: ms.optional(),
17453
17490
  spiceEngine: spiceEngine.optional(),
17454
17491
  spiceOptions: spiceOptions.optional(),
17455
- graphIndependentAxes: z76.boolean().optional()
17492
+ graphIndependentAxes: z78.boolean().optional()
17456
17493
  });
17457
17494
  expectTypesMatch(
17458
17495
  true
17459
17496
  );
17460
17497
 
17461
17498
  // lib/components/autoroutingphase.ts
17462
- import { z as z77 } from "zod";
17463
- var autoroutingPhaseProps = z77.object({
17464
- key: z77.any().optional(),
17465
- name: z77.string().optional(),
17499
+ import { z as z79 } from "zod";
17500
+ var autoroutingPhaseProps = z79.object({
17501
+ key: z79.any().optional(),
17502
+ name: z79.string().optional(),
17466
17503
  autorouter: autorouterProp.optional(),
17467
- phaseIndex: z77.number().optional(),
17504
+ phaseIndex: z79.number().optional(),
17468
17505
  ...routingTolerances.shape,
17469
- region: z77.object({
17470
- shape: z77.literal("rect").optional(),
17471
- minX: z77.number(),
17472
- maxX: z77.number(),
17473
- minY: z77.number(),
17474
- maxY: z77.number()
17506
+ region: z79.object({
17507
+ shape: z79.literal("rect").optional(),
17508
+ minX: z79.number(),
17509
+ maxX: z79.number(),
17510
+ minY: z79.number(),
17511
+ maxY: z79.number()
17475
17512
  }).optional(),
17476
- connection: z77.string().optional(),
17477
- connections: z77.array(z77.string()).optional(),
17478
- reroute: z77.boolean().optional()
17513
+ connection: z79.string().optional(),
17514
+ connections: z79.array(z79.string()).optional(),
17515
+ reroute: z79.boolean().optional()
17479
17516
  }).superRefine((value, ctx) => {
17480
17517
  if (value.reroute !== void 0 && value.region === void 0 && value.connection === void 0 && value.connections === void 0) {
17481
17518
  ctx.addIssue({
17482
- code: z77.ZodIssueCode.custom,
17519
+ code: z79.ZodIssueCode.custom,
17483
17520
  message: "region, connection, or connections is required when reroute is provided",
17484
17521
  path: ["region"]
17485
17522
  });
@@ -17488,15 +17525,15 @@ var autoroutingPhaseProps = z77.object({
17488
17525
  expectTypesMatch(true);
17489
17526
 
17490
17527
  // lib/components/spicemodel.ts
17491
- import { z as z78 } from "zod";
17492
- var spicemodelProps = z78.object({
17493
- source: z78.string(),
17494
- spicePinMapping: z78.record(z78.string(), z78.string()).optional()
17528
+ import { z as z80 } from "zod";
17529
+ var spicemodelProps = z80.object({
17530
+ source: z80.string(),
17531
+ spicePinMapping: z80.record(z80.string(), z80.string()).optional()
17495
17532
  });
17496
17533
  expectTypesMatch(true);
17497
17534
 
17498
17535
  // lib/components/transistor.ts
17499
- import { z as z79 } from "zod";
17536
+ import { z as z81 } from "zod";
17500
17537
  var transistorPinsLabels = [
17501
17538
  "pin1",
17502
17539
  "pin2",
@@ -17509,7 +17546,7 @@ var transistorPinsLabels = [
17509
17546
  "drain"
17510
17547
  ];
17511
17548
  var transistorProps = commonComponentProps.extend({
17512
- type: z79.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
17549
+ type: z81.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
17513
17550
  connections: createConnectionsProp(transistorPinsLabels).optional()
17514
17551
  });
17515
17552
  var transistorPins = [
@@ -17523,7 +17560,7 @@ var transistorPins = [
17523
17560
  expectTypesMatch(true);
17524
17561
 
17525
17562
  // lib/components/mosfet.ts
17526
- import { z as z80 } from "zod";
17563
+ import { z as z82 } from "zod";
17527
17564
  var mosfetPins = [
17528
17565
  "pin1",
17529
17566
  "drain",
@@ -17533,11 +17570,11 @@ var mosfetPins = [
17533
17570
  "gate"
17534
17571
  ];
17535
17572
  var mosfetProps = commonComponentProps.extend({
17536
- channelType: z80.enum(["n", "p"]),
17537
- mosfetMode: z80.enum(["enhancement", "depletion"]),
17538
- symbolDrainSide: z80.enum(["left", "right", "top", "bottom"]).optional(),
17539
- symbolSourceSide: z80.enum(["left", "right", "top", "bottom"]).optional(),
17540
- symbolGateSide: z80.enum(["left", "right", "top", "bottom"]).optional(),
17573
+ channelType: z82.enum(["n", "p"]),
17574
+ mosfetMode: z82.enum(["enhancement", "depletion"]),
17575
+ symbolDrainSide: z82.enum(["left", "right", "top", "bottom"]).optional(),
17576
+ symbolSourceSide: z82.enum(["left", "right", "top", "bottom"]).optional(),
17577
+ symbolGateSide: z82.enum(["left", "right", "top", "bottom"]).optional(),
17541
17578
  connections: createConnectionsProp(mosfetPins).optional()
17542
17579
  });
17543
17580
  expectTypesMatch(true);
@@ -17559,20 +17596,20 @@ expectTypesMatch(true);
17559
17596
 
17560
17597
  // lib/components/inductor.ts
17561
17598
  import { inductance } from "circuit-json";
17562
- import { z as z82 } from "zod";
17599
+ import { z as z84 } from "zod";
17563
17600
  var inductorPins = lrPins;
17564
17601
  var inductorProps = commonComponentProps.extend({
17565
17602
  inductance,
17566
- maxCurrentRating: z82.union([z82.string(), z82.number()]).optional(),
17603
+ maxCurrentRating: z84.union([z84.string(), z84.number()]).optional(),
17567
17604
  schOrientation: schematicOrientation.optional(),
17568
17605
  connections: createConnectionsProp(inductorPins).optional()
17569
17606
  });
17570
17607
  expectTypesMatch(true);
17571
17608
 
17572
17609
  // lib/components/diode.ts
17573
- import { z as z83 } from "zod";
17610
+ import { z as z85 } from "zod";
17574
17611
  var diodePins = lrPolarPins;
17575
- var diodeConnectionKeys = z83.enum([
17612
+ var diodeConnectionKeys = z85.enum([
17576
17613
  "anode",
17577
17614
  "cathode",
17578
17615
  "pin1",
@@ -17580,13 +17617,13 @@ var diodeConnectionKeys = z83.enum([
17580
17617
  "pos",
17581
17618
  "neg"
17582
17619
  ]);
17583
- var connectionTarget3 = z83.string().or(z83.array(z83.string()).readonly()).or(z83.array(z83.string()));
17584
- var connectionsProp2 = z83.record(diodeConnectionKeys, connectionTarget3);
17585
- var diodePinLabelsProp = z83.record(
17586
- z83.enum(diodePins),
17587
- schematicPinLabel.or(z83.array(schematicPinLabel).readonly()).or(z83.array(schematicPinLabel))
17620
+ var connectionTarget3 = z85.string().or(z85.array(z85.string()).readonly()).or(z85.array(z85.string()));
17621
+ var connectionsProp2 = z85.record(diodeConnectionKeys, connectionTarget3);
17622
+ var diodePinLabelsProp = z85.record(
17623
+ z85.enum(diodePins),
17624
+ schematicPinLabel.or(z85.array(schematicPinLabel).readonly()).or(z85.array(schematicPinLabel))
17588
17625
  );
17589
- var diodeVariant = z83.enum([
17626
+ var diodeVariant = z85.enum([
17590
17627
  "standard",
17591
17628
  "schottky",
17592
17629
  "zener",
@@ -17597,12 +17634,12 @@ var diodeVariant = z83.enum([
17597
17634
  var diodeProps = commonComponentProps.extend({
17598
17635
  connections: connectionsProp2.optional(),
17599
17636
  variant: diodeVariant.optional().default("standard"),
17600
- standard: z83.boolean().optional(),
17601
- schottky: z83.boolean().optional(),
17602
- zener: z83.boolean().optional(),
17603
- avalanche: z83.boolean().optional(),
17604
- photo: z83.boolean().optional(),
17605
- tvs: z83.boolean().optional(),
17637
+ standard: z85.boolean().optional(),
17638
+ schottky: z85.boolean().optional(),
17639
+ zener: z85.boolean().optional(),
17640
+ avalanche: z85.boolean().optional(),
17641
+ photo: z85.boolean().optional(),
17642
+ tvs: z85.boolean().optional(),
17606
17643
  schOrientation: schematicOrientation.optional(),
17607
17644
  pinLabels: diodePinLabelsProp.optional()
17608
17645
  }).superRefine((data, ctx) => {
@@ -17616,11 +17653,11 @@ var diodeProps = commonComponentProps.extend({
17616
17653
  ].filter(Boolean).length;
17617
17654
  if (enabledFlags > 1) {
17618
17655
  ctx.addIssue({
17619
- code: z83.ZodIssueCode.custom,
17656
+ code: z85.ZodIssueCode.custom,
17620
17657
  message: "Exactly one diode variant must be enabled",
17621
17658
  path: []
17622
17659
  });
17623
- return z83.INVALID;
17660
+ return z85.INVALID;
17624
17661
  }
17625
17662
  }).transform((data) => {
17626
17663
  const result = {
@@ -17666,34 +17703,34 @@ var diodeProps = commonComponentProps.extend({
17666
17703
  expectTypesMatch(true);
17667
17704
 
17668
17705
  // lib/components/led.ts
17669
- import { z as z84 } from "zod";
17706
+ import { z as z86 } from "zod";
17670
17707
  var ledProps = commonComponentProps.extend({
17671
- color: z84.string().optional(),
17672
- wavelength: z84.string().optional(),
17673
- schDisplayValue: z84.string().optional(),
17708
+ color: z86.string().optional(),
17709
+ wavelength: z86.string().optional(),
17710
+ schDisplayValue: z86.string().optional(),
17674
17711
  schOrientation: schematicOrientation.optional(),
17675
17712
  connections: createConnectionsProp(lrPolarPins).optional(),
17676
- laser: z84.boolean().optional()
17713
+ laser: z86.boolean().optional()
17677
17714
  });
17678
17715
  var ledPins = lrPolarPins;
17679
17716
 
17680
17717
  // lib/components/switch.ts
17681
17718
  import { ms as ms2, frequency as frequency3 } from "circuit-json";
17682
- import { z as z85 } from "zod";
17719
+ import { z as z87 } from "zod";
17683
17720
  var switchProps = commonComponentProps.extend({
17684
- type: z85.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
17685
- isNormallyClosed: z85.boolean().optional().default(false),
17686
- spst: z85.boolean().optional(),
17687
- spdt: z85.boolean().optional(),
17688
- dpst: z85.boolean().optional(),
17689
- dpdt: z85.boolean().optional(),
17721
+ type: z87.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
17722
+ isNormallyClosed: z87.boolean().optional().default(false),
17723
+ spst: z87.boolean().optional(),
17724
+ spdt: z87.boolean().optional(),
17725
+ dpst: z87.boolean().optional(),
17726
+ dpdt: z87.boolean().optional(),
17690
17727
  pinLabels: pinLabelsProp.optional(),
17691
17728
  simSwitchFrequency: frequency3.optional(),
17692
17729
  simCloseAt: ms2.optional(),
17693
17730
  simOpenAt: ms2.optional(),
17694
- simStartClosed: z85.boolean().optional(),
17695
- simStartOpen: z85.boolean().optional(),
17696
- connections: z85.custom().pipe(z85.record(z85.string(), connectionTarget)).optional()
17731
+ simStartClosed: z87.boolean().optional(),
17732
+ simStartOpen: z87.boolean().optional(),
17733
+ connections: z87.custom().pipe(z87.record(z87.string(), connectionTarget)).optional()
17697
17734
  }).transform((props) => {
17698
17735
  const updatedProps = { ...props };
17699
17736
  if (updatedProps.dpdt) {
@@ -17725,33 +17762,33 @@ expectTypesMatch(true);
17725
17762
 
17726
17763
  // lib/components/fabrication-note-text.ts
17727
17764
  import { length as length4 } from "circuit-json";
17728
- import { z as z86 } from "zod";
17765
+ import { z as z88 } from "zod";
17729
17766
  var fabricationNoteTextProps = pcbLayoutProps.extend({
17730
- text: z86.string(),
17731
- anchorAlignment: z86.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
17732
- font: z86.enum(["tscircuit2024"]).optional(),
17767
+ text: z88.string(),
17768
+ anchorAlignment: z88.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
17769
+ font: z88.enum(["tscircuit2024"]).optional(),
17733
17770
  fontSize: length4.optional(),
17734
- color: z86.string().optional()
17771
+ color: z88.string().optional()
17735
17772
  });
17736
17773
  expectTypesMatch(true);
17737
17774
 
17738
17775
  // lib/components/fabrication-note-rect.ts
17739
17776
  import { distance as distance21 } from "circuit-json";
17740
- import { z as z87 } from "zod";
17777
+ import { z as z89 } from "zod";
17741
17778
  var fabricationNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17742
17779
  width: distance21,
17743
17780
  height: distance21,
17744
17781
  strokeWidth: distance21.optional(),
17745
- isFilled: z87.boolean().optional(),
17746
- hasStroke: z87.boolean().optional(),
17747
- isStrokeDashed: z87.boolean().optional(),
17748
- color: z87.string().optional(),
17782
+ isFilled: z89.boolean().optional(),
17783
+ hasStroke: z89.boolean().optional(),
17784
+ isStrokeDashed: z89.boolean().optional(),
17785
+ color: z89.string().optional(),
17749
17786
  cornerRadius: distance21.optional()
17750
17787
  });
17751
17788
 
17752
17789
  // lib/components/fabrication-note-path.ts
17753
17790
  import { length as length5, route_hint_point as route_hint_point3 } from "circuit-json";
17754
- import { z as z88 } from "zod";
17791
+ import { z as z90 } from "zod";
17755
17792
  var fabricationNotePathProps = pcbLayoutProps.omit({
17756
17793
  pcbLeftEdgeX: true,
17757
17794
  pcbRightEdgeX: true,
@@ -17763,15 +17800,15 @@ var fabricationNotePathProps = pcbLayoutProps.omit({
17763
17800
  pcbOffsetY: true,
17764
17801
  pcbRotation: true
17765
17802
  }).extend({
17766
- route: z88.array(route_hint_point3),
17803
+ route: z90.array(route_hint_point3),
17767
17804
  strokeWidth: length5.optional(),
17768
- color: z88.string().optional()
17805
+ color: z90.string().optional()
17769
17806
  });
17770
17807
 
17771
17808
  // lib/components/fabrication-note-dimension.ts
17772
17809
  import { distance as distance22, length as length6 } from "circuit-json";
17773
- import { z as z89 } from "zod";
17774
- var dimensionTarget = z89.union([z89.string(), point]);
17810
+ import { z as z91 } from "zod";
17811
+ var dimensionTarget = z91.union([z91.string(), point]);
17775
17812
  var fabricationNoteDimensionProps = pcbLayoutProps.omit({
17776
17813
  pcbLeftEdgeX: true,
17777
17814
  pcbRightEdgeX: true,
@@ -17785,54 +17822,54 @@ var fabricationNoteDimensionProps = pcbLayoutProps.omit({
17785
17822
  }).extend({
17786
17823
  from: dimensionTarget,
17787
17824
  to: dimensionTarget,
17788
- text: z89.string().optional(),
17825
+ text: z91.string().optional(),
17789
17826
  offset: distance22.optional(),
17790
- font: z89.enum(["tscircuit2024"]).optional(),
17827
+ font: z91.enum(["tscircuit2024"]).optional(),
17791
17828
  fontSize: length6.optional(),
17792
- color: z89.string().optional(),
17829
+ color: z91.string().optional(),
17793
17830
  arrowSize: distance22.optional(),
17794
- units: z89.enum(["in", "mm"]).optional(),
17795
- outerEdgeToEdge: z89.literal(true).optional(),
17796
- centerToCenter: z89.literal(true).optional(),
17797
- innerEdgeToEdge: z89.literal(true).optional()
17831
+ units: z91.enum(["in", "mm"]).optional(),
17832
+ outerEdgeToEdge: z91.literal(true).optional(),
17833
+ centerToCenter: z91.literal(true).optional(),
17834
+ innerEdgeToEdge: z91.literal(true).optional()
17798
17835
  });
17799
17836
  expectTypesMatch(true);
17800
17837
 
17801
17838
  // lib/components/pcb-trace.ts
17802
17839
  import { distance as distance23, route_hint_point as route_hint_point4 } from "circuit-json";
17803
- import { z as z90 } from "zod";
17804
- var pcbTraceProps = z90.object({
17805
- layer: z90.string().optional(),
17840
+ import { z as z92 } from "zod";
17841
+ var pcbTraceProps = z92.object({
17842
+ layer: z92.string().optional(),
17806
17843
  thickness: distance23.optional(),
17807
- route: z90.array(route_hint_point4)
17844
+ route: z92.array(route_hint_point4)
17808
17845
  });
17809
17846
 
17810
17847
  // lib/components/via.ts
17811
17848
  import { distance as distance24, layer_ref as layer_ref6 } from "circuit-json";
17812
- import { z as z91 } from "zod";
17849
+ import { z as z93 } from "zod";
17813
17850
  var viaProps = commonLayoutProps.extend({
17814
- name: z91.string().optional(),
17851
+ name: z93.string().optional(),
17815
17852
  fromLayer: layer_ref6.optional(),
17816
17853
  toLayer: layer_ref6.optional(),
17817
17854
  holeDiameter: distance24.optional(),
17818
17855
  outerDiameter: distance24.optional(),
17819
- layers: z91.array(layer_ref6).optional(),
17820
- connectsTo: z91.string().or(z91.array(z91.string())).optional(),
17821
- netIsAssignable: z91.boolean().optional()
17856
+ layers: z93.array(layer_ref6).optional(),
17857
+ connectsTo: z93.string().or(z93.array(z93.string())).optional(),
17858
+ netIsAssignable: z93.boolean().optional()
17822
17859
  });
17823
17860
  expectTypesMatch(true);
17824
17861
 
17825
17862
  // lib/components/testpoint.ts
17826
17863
  import { distance as distance25 } from "circuit-json";
17827
- import { z as z92 } from "zod";
17864
+ import { z as z94 } from "zod";
17828
17865
  var testpointPins = ["pin1"];
17829
- var testpointConnectionsProp = z92.object({
17866
+ var testpointConnectionsProp = z94.object({
17830
17867
  pin1: connectionTarget
17831
17868
  }).strict();
17832
17869
  var testpointProps = commonComponentProps.extend({
17833
17870
  connections: testpointConnectionsProp.optional(),
17834
- footprintVariant: z92.enum(["pad", "through_hole"]).optional(),
17835
- padShape: z92.enum(["rect", "circle"]).optional().default("circle"),
17871
+ footprintVariant: z94.enum(["pad", "through_hole"]).optional(),
17872
+ padShape: z94.enum(["rect", "circle"]).optional().default("circle"),
17836
17873
  padDiameter: distance25.optional(),
17837
17874
  holeDiameter: distance25.optional(),
17838
17875
  width: distance25.optional(),
@@ -17844,45 +17881,45 @@ var testpointProps = commonComponentProps.extend({
17844
17881
  expectTypesMatch(true);
17845
17882
 
17846
17883
  // lib/components/breakoutpoint.ts
17847
- import { z as z93 } from "zod";
17884
+ import { z as z95 } from "zod";
17848
17885
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
17849
- connection: z93.string()
17886
+ connection: z95.string()
17850
17887
  });
17851
17888
  expectTypesMatch(true);
17852
17889
 
17853
17890
  // lib/components/pcb-keepout.ts
17854
17891
  import { distance as distance26, layer_ref as layer_ref7 } from "circuit-json";
17855
- import { z as z94 } from "zod";
17856
- var pcbKeepoutProps = z94.union([
17892
+ import { z as z96 } from "zod";
17893
+ var pcbKeepoutProps = z96.union([
17857
17894
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
17858
- shape: z94.literal("circle"),
17895
+ shape: z96.literal("circle"),
17859
17896
  radius: distance26,
17860
- layers: z94.array(layer_ref7).optional()
17897
+ layers: z96.array(layer_ref7).optional()
17861
17898
  }),
17862
17899
  pcbLayoutProps.extend({
17863
- shape: z94.literal("rect"),
17900
+ shape: z96.literal("rect"),
17864
17901
  width: distance26,
17865
17902
  height: distance26,
17866
- layers: z94.array(layer_ref7).optional()
17903
+ layers: z96.array(layer_ref7).optional()
17867
17904
  })
17868
17905
  ]);
17869
17906
 
17870
17907
  // lib/components/courtyard-rect.ts
17871
17908
  import { distance as distance27 } from "circuit-json";
17872
- import { z as z95 } from "zod";
17909
+ import { z as z97 } from "zod";
17873
17910
  var courtyardRectProps = pcbLayoutProps.extend({
17874
17911
  width: distance27,
17875
17912
  height: distance27,
17876
17913
  strokeWidth: distance27.optional(),
17877
- isFilled: z95.boolean().optional(),
17878
- hasStroke: z95.boolean().optional(),
17879
- isStrokeDashed: z95.boolean().optional(),
17880
- color: z95.string().optional()
17914
+ isFilled: z97.boolean().optional(),
17915
+ hasStroke: z97.boolean().optional(),
17916
+ isStrokeDashed: z97.boolean().optional(),
17917
+ color: z97.string().optional()
17881
17918
  });
17882
17919
 
17883
17920
  // lib/components/courtyard-outline.ts
17884
17921
  import { length as length7 } from "circuit-json";
17885
- import { z as z96 } from "zod";
17922
+ import { z as z98 } from "zod";
17886
17923
  var courtyardOutlineProps = pcbLayoutProps.omit({
17887
17924
  pcbLeftEdgeX: true,
17888
17925
  pcbRightEdgeX: true,
@@ -17894,11 +17931,11 @@ var courtyardOutlineProps = pcbLayoutProps.omit({
17894
17931
  pcbOffsetY: true,
17895
17932
  pcbRotation: true
17896
17933
  }).extend({
17897
- outline: z96.array(point),
17934
+ outline: z98.array(point),
17898
17935
  strokeWidth: length7.optional(),
17899
- isClosed: z96.boolean().optional(),
17900
- isStrokeDashed: z96.boolean().optional(),
17901
- color: z96.string().optional()
17936
+ isClosed: z98.boolean().optional(),
17937
+ isStrokeDashed: z98.boolean().optional(),
17938
+ color: z98.string().optional()
17902
17939
  });
17903
17940
 
17904
17941
  // lib/components/courtyard-circle.ts
@@ -17918,35 +17955,35 @@ var courtyardPillProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17918
17955
  });
17919
17956
 
17920
17957
  // lib/components/copper-pour.ts
17921
- import { z as z99 } from "zod";
17958
+ import { z as z101 } from "zod";
17922
17959
  import { layer_ref as layer_ref8 } from "circuit-json";
17923
- var copperPourProps = z99.object({
17924
- name: z99.string().optional(),
17960
+ var copperPourProps = z101.object({
17961
+ name: z101.string().optional(),
17925
17962
  layer: layer_ref8,
17926
- connectsTo: z99.string(),
17927
- unbroken: z99.boolean().optional(),
17963
+ connectsTo: z101.string(),
17964
+ unbroken: z101.boolean().optional(),
17928
17965
  padMargin: distance.optional(),
17929
17966
  traceMargin: distance.optional(),
17930
17967
  clearance: distance.optional(),
17931
17968
  boardEdgeMargin: distance.optional(),
17932
17969
  cutoutMargin: distance.optional(),
17933
- outline: z99.array(point).optional(),
17934
- coveredWithSolderMask: z99.boolean().optional().default(true)
17970
+ outline: z101.array(point).optional(),
17971
+ coveredWithSolderMask: z101.boolean().optional().default(true)
17935
17972
  });
17936
17973
  expectTypesMatch(true);
17937
17974
 
17938
17975
  // lib/components/cadassembly.ts
17939
17976
  import { layer_ref as layer_ref9 } from "circuit-json";
17940
- import { z as z100 } from "zod";
17941
- var cadassemblyProps = z100.object({
17977
+ import { z as z102 } from "zod";
17978
+ var cadassemblyProps = z102.object({
17942
17979
  originalLayer: layer_ref9.default("top").optional(),
17943
- children: z100.any().optional()
17980
+ children: z102.any().optional()
17944
17981
  });
17945
17982
  expectTypesMatch(true);
17946
17983
 
17947
17984
  // lib/components/cadmodel.ts
17948
- import { z as z101 } from "zod";
17949
- var pcbPosition = z101.object({
17985
+ import { z as z103 } from "zod";
17986
+ var pcbPosition = z103.object({
17950
17987
  pcbX: pcbCoordinate.optional(),
17951
17988
  pcbY: pcbCoordinate.optional(),
17952
17989
  pcbLeftEdgeX: pcbCoordinate.optional(),
@@ -17963,7 +18000,7 @@ var cadModelBaseWithUrl = cadModelBase.extend({
17963
18000
  });
17964
18001
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
17965
18002
  expectTypesMatch(true);
17966
- var cadmodelProps = z101.union([z101.null(), url, cadModelObject]);
18003
+ var cadmodelProps = z103.union([z103.null(), url, cadModelObject]);
17967
18004
 
17968
18005
  // lib/components/power-source.ts
17969
18006
  import { voltage as voltage3 } from "circuit-json";
@@ -17973,9 +18010,9 @@ var powerSourceProps = commonComponentProps.extend({
17973
18010
 
17974
18011
  // lib/components/voltagesource.ts
17975
18012
  import { frequency as frequency4, ms as ms3, rotation as rotation5, voltage as voltage4 } from "circuit-json";
17976
- import { z as z102 } from "zod";
18013
+ import { z as z104 } from "zod";
17977
18014
  var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
17978
- var percentage = z102.union([z102.string(), z102.number()]).transform((val) => {
18015
+ var percentage = z104.union([z104.string(), z104.number()]).transform((val) => {
17979
18016
  if (typeof val === "string") {
17980
18017
  if (val.endsWith("%")) {
17981
18018
  return parseFloat(val.slice(0, -1)) / 100;
@@ -17984,13 +18021,13 @@ var percentage = z102.union([z102.string(), z102.number()]).transform((val) => {
17984
18021
  }
17985
18022
  return val;
17986
18023
  }).pipe(
17987
- z102.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18024
+ z104.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17988
18025
  );
17989
18026
  var voltageSourceProps = commonComponentProps.extend({
17990
18027
  voltage: voltage4.optional(),
17991
18028
  frequency: frequency4.optional(),
17992
18029
  peakToPeakVoltage: voltage4.optional(),
17993
- waveShape: z102.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18030
+ waveShape: z104.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
17994
18031
  phase: rotation5.optional(),
17995
18032
  dutyCycle: percentage.optional(),
17996
18033
  pulseDelay: ms3.optional(),
@@ -18005,9 +18042,9 @@ expectTypesMatch(true);
18005
18042
 
18006
18043
  // lib/components/currentsource.ts
18007
18044
  import { frequency as frequency5, rotation as rotation6, current } from "circuit-json";
18008
- import { z as z103 } from "zod";
18045
+ import { z as z105 } from "zod";
18009
18046
  var currentSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
18010
- var percentage2 = z103.union([z103.string(), z103.number()]).transform((val) => {
18047
+ var percentage2 = z105.union([z105.string(), z105.number()]).transform((val) => {
18011
18048
  if (typeof val === "string") {
18012
18049
  if (val.endsWith("%")) {
18013
18050
  return parseFloat(val.slice(0, -1)) / 100;
@@ -18016,13 +18053,13 @@ var percentage2 = z103.union([z103.string(), z103.number()]).transform((val) =>
18016
18053
  }
18017
18054
  return val;
18018
18055
  }).pipe(
18019
- z103.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18056
+ z105.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18020
18057
  );
18021
18058
  var currentSourceProps = commonComponentProps.extend({
18022
18059
  current: current.optional(),
18023
18060
  frequency: frequency5.optional(),
18024
18061
  peakToPeakCurrent: current.optional(),
18025
- waveShape: z103.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18062
+ waveShape: z105.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18026
18063
  phase: rotation6.optional(),
18027
18064
  dutyCycle: percentage2.optional(),
18028
18065
  connections: createConnectionsProp(currentSourcePinLabels).optional()
@@ -18031,21 +18068,21 @@ var currentSourcePins = lrPolarPins;
18031
18068
  expectTypesMatch(true);
18032
18069
 
18033
18070
  // lib/components/voltageprobe.ts
18034
- import { z as z104 } from "zod";
18071
+ import { z as z106 } from "zod";
18035
18072
  var voltageProbeProps = commonComponentProps.omit({ name: true }).extend({
18036
- name: z104.string().optional(),
18037
- connectsTo: z104.string(),
18038
- referenceTo: z104.string().optional(),
18039
- color: z104.string().optional(),
18040
- graphDisplayName: z104.string().optional(),
18041
- graphCenter: z104.number().optional(),
18042
- graphVerticalOffset: z104.number().or(z104.string()).optional(),
18043
- graphVoltagePerDiv: z104.number().or(z104.string()).optional()
18073
+ name: z106.string().optional(),
18074
+ connectsTo: z106.string(),
18075
+ referenceTo: z106.string().optional(),
18076
+ color: z106.string().optional(),
18077
+ graphDisplayName: z106.string().optional(),
18078
+ graphCenter: z106.number().optional(),
18079
+ graphVerticalOffset: z106.number().or(z106.string()).optional(),
18080
+ graphVoltagePerDiv: z106.number().or(z106.string()).optional()
18044
18081
  });
18045
18082
  expectTypesMatch(true);
18046
18083
 
18047
18084
  // lib/components/ammeter.ts
18048
- import { z as z105 } from "zod";
18085
+ import { z as z107 } from "zod";
18049
18086
  var ammeterPinLabels = ["pin1", "pin2", "pos", "neg"];
18050
18087
  var hasAmmeterConnectionPair = (connections) => {
18051
18088
  return connections.pos !== void 0 && connections.neg !== void 0 || connections.pin1 !== void 0 && connections.pin2 !== void 0;
@@ -18055,57 +18092,57 @@ var ammeterProps = commonComponentProps.extend({
18055
18092
  hasAmmeterConnectionPair,
18056
18093
  "Ammeter connections must include either pos/neg or pin1/pin2"
18057
18094
  ),
18058
- color: z105.string().optional(),
18059
- graphDisplayName: z105.string().optional(),
18060
- graphCenter: z105.number().optional(),
18061
- graphVerticalOffset: z105.number().or(z105.string()).optional(),
18062
- graphCurrentPerDiv: z105.number().or(z105.string()).optional()
18095
+ color: z107.string().optional(),
18096
+ graphDisplayName: z107.string().optional(),
18097
+ graphCenter: z107.number().optional(),
18098
+ graphVerticalOffset: z107.number().or(z107.string()).optional(),
18099
+ graphCurrentPerDiv: z107.number().or(z107.string()).optional()
18063
18100
  });
18064
18101
  var ammeterPins = ammeterPinLabels;
18065
18102
  expectTypesMatch(true);
18066
18103
 
18067
18104
  // lib/components/schematic-arc.ts
18068
18105
  import { distance as distance30, point as point5, rotation as rotation7 } from "circuit-json";
18069
- import { z as z106 } from "zod";
18070
- var schematicArcProps = z106.object({
18106
+ import { z as z108 } from "zod";
18107
+ var schematicArcProps = z108.object({
18071
18108
  center: point5,
18072
18109
  radius: distance30,
18073
18110
  startAngleDegrees: rotation7,
18074
18111
  endAngleDegrees: rotation7,
18075
- direction: z106.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
18112
+ direction: z108.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
18076
18113
  strokeWidth: distance30.optional(),
18077
- color: z106.string().optional(),
18078
- isDashed: z106.boolean().optional().default(false)
18114
+ color: z108.string().optional(),
18115
+ isDashed: z108.boolean().optional().default(false)
18079
18116
  });
18080
18117
  expectTypesMatch(true);
18081
18118
 
18082
18119
  // lib/components/toolingrail.ts
18083
- import { z as z107 } from "zod";
18084
- var toolingrailProps = z107.object({
18085
- children: z107.any().optional()
18120
+ import { z as z109 } from "zod";
18121
+ var toolingrailProps = z109.object({
18122
+ children: z109.any().optional()
18086
18123
  });
18087
18124
  expectTypesMatch(true);
18088
18125
 
18089
18126
  // lib/components/schematic-box.ts
18090
18127
  import { distance as distance31 } from "circuit-json";
18091
- import { z as z108 } from "zod";
18092
- var schematicBoxProps = z108.object({
18128
+ import { z as z110 } from "zod";
18129
+ var schematicBoxProps = z110.object({
18093
18130
  schX: distance31.optional(),
18094
18131
  schY: distance31.optional(),
18095
18132
  width: distance31.optional(),
18096
18133
  height: distance31.optional(),
18097
- overlay: z108.array(z108.string()).optional(),
18134
+ overlay: z110.array(z110.string()).optional(),
18098
18135
  padding: distance31.optional(),
18099
18136
  paddingLeft: distance31.optional(),
18100
18137
  paddingRight: distance31.optional(),
18101
18138
  paddingTop: distance31.optional(),
18102
18139
  paddingBottom: distance31.optional(),
18103
- title: z108.string().optional(),
18140
+ title: z110.string().optional(),
18104
18141
  titleAlignment: ninePointAnchor.default("top_left"),
18105
- titleColor: z108.string().optional(),
18142
+ titleColor: z110.string().optional(),
18106
18143
  titleFontSize: distance31.optional(),
18107
- titleInside: z108.boolean().default(false),
18108
- strokeStyle: z108.enum(["solid", "dashed"]).default("solid")
18144
+ titleInside: z110.boolean().default(false),
18145
+ strokeStyle: z110.enum(["solid", "dashed"]).default("solid")
18109
18146
  }).refine(
18110
18147
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
18111
18148
  {
@@ -18121,15 +18158,15 @@ expectTypesMatch(true);
18121
18158
 
18122
18159
  // lib/components/schematic-circle.ts
18123
18160
  import { distance as distance32, point as point6 } from "circuit-json";
18124
- import { z as z109 } from "zod";
18125
- var schematicCircleProps = z109.object({
18161
+ import { z as z111 } from "zod";
18162
+ var schematicCircleProps = z111.object({
18126
18163
  center: point6,
18127
18164
  radius: distance32,
18128
18165
  strokeWidth: distance32.optional(),
18129
- color: z109.string().optional(),
18130
- isFilled: z109.boolean().optional().default(false),
18131
- fillColor: z109.string().optional(),
18132
- isDashed: z109.boolean().optional().default(false)
18166
+ color: z111.string().optional(),
18167
+ isFilled: z111.boolean().optional().default(false),
18168
+ fillColor: z111.string().optional(),
18169
+ isDashed: z111.boolean().optional().default(false)
18133
18170
  });
18134
18171
  expectTypesMatch(
18135
18172
  true
@@ -18137,32 +18174,32 @@ expectTypesMatch(
18137
18174
 
18138
18175
  // lib/components/schematic-rect.ts
18139
18176
  import { distance as distance33, rotation as rotation8 } from "circuit-json";
18140
- import { z as z110 } from "zod";
18141
- var schematicRectProps = z110.object({
18177
+ import { z as z112 } from "zod";
18178
+ var schematicRectProps = z112.object({
18142
18179
  schX: distance33.optional(),
18143
18180
  schY: distance33.optional(),
18144
18181
  width: distance33,
18145
18182
  height: distance33,
18146
18183
  rotation: rotation8.default(0),
18147
18184
  strokeWidth: distance33.optional(),
18148
- color: z110.string().optional(),
18149
- isFilled: z110.boolean().optional().default(false),
18150
- fillColor: z110.string().optional(),
18151
- isDashed: z110.boolean().optional().default(false)
18185
+ color: z112.string().optional(),
18186
+ isFilled: z112.boolean().optional().default(false),
18187
+ fillColor: z112.string().optional(),
18188
+ isDashed: z112.boolean().optional().default(false)
18152
18189
  });
18153
18190
  expectTypesMatch(true);
18154
18191
 
18155
18192
  // lib/components/schematic-line.ts
18156
18193
  import { distance as distance34 } from "circuit-json";
18157
- import { z as z111 } from "zod";
18158
- var schematicLineProps = z111.object({
18194
+ import { z as z113 } from "zod";
18195
+ var schematicLineProps = z113.object({
18159
18196
  x1: distance34,
18160
18197
  y1: distance34,
18161
18198
  x2: distance34,
18162
18199
  y2: distance34,
18163
18200
  strokeWidth: distance34.optional(),
18164
- color: z111.string().optional(),
18165
- isDashed: z111.boolean().optional().default(false),
18201
+ color: z113.string().optional(),
18202
+ isDashed: z113.boolean().optional().default(false),
18166
18203
  dashLength: distance34.optional(),
18167
18204
  dashGap: distance34.optional()
18168
18205
  });
@@ -18170,11 +18207,11 @@ expectTypesMatch(true);
18170
18207
 
18171
18208
  // lib/components/schematic-text.ts
18172
18209
  import { distance as distance35, rotation as rotation9 } from "circuit-json";
18173
- import { z as z113 } from "zod";
18210
+ import { z as z115 } from "zod";
18174
18211
 
18175
18212
  // lib/common/fivePointAnchor.ts
18176
- import { z as z112 } from "zod";
18177
- var fivePointAnchor = z112.enum([
18213
+ import { z as z114 } from "zod";
18214
+ var fivePointAnchor = z114.enum([
18178
18215
  "center",
18179
18216
  "left",
18180
18217
  "right",
@@ -18183,39 +18220,39 @@ var fivePointAnchor = z112.enum([
18183
18220
  ]);
18184
18221
 
18185
18222
  // lib/components/schematic-text.ts
18186
- var schematicTextProps = z113.object({
18223
+ var schematicTextProps = z115.object({
18187
18224
  schX: distance35.optional(),
18188
18225
  schY: distance35.optional(),
18189
- text: z113.string(),
18190
- fontSize: z113.number().default(1),
18191
- anchor: z113.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
18192
- color: z113.string().default("#000000"),
18226
+ text: z115.string(),
18227
+ fontSize: z115.number().default(1),
18228
+ anchor: z115.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
18229
+ color: z115.string().default("#000000"),
18193
18230
  schRotation: rotation9.default(0)
18194
18231
  });
18195
18232
  expectTypesMatch(true);
18196
18233
 
18197
18234
  // lib/components/schematic-path.ts
18198
18235
  import { distance as distance36, point as point7 } from "circuit-json";
18199
- import { z as z114 } from "zod";
18200
- var schematicPathProps = z114.object({
18201
- points: z114.array(point7).optional(),
18202
- svgPath: z114.string().optional(),
18236
+ import { z as z116 } from "zod";
18237
+ var schematicPathProps = z116.object({
18238
+ points: z116.array(point7).optional(),
18239
+ svgPath: z116.string().optional(),
18203
18240
  strokeWidth: distance36.optional(),
18204
- strokeColor: z114.string().optional(),
18241
+ strokeColor: z116.string().optional(),
18205
18242
  dashLength: distance36.optional(),
18206
18243
  dashGap: distance36.optional(),
18207
- isFilled: z114.boolean().optional().default(false),
18208
- fillColor: z114.string().optional()
18244
+ isFilled: z116.boolean().optional().default(false),
18245
+ fillColor: z116.string().optional()
18209
18246
  });
18210
18247
  expectTypesMatch(true);
18211
18248
 
18212
18249
  // lib/components/schematic-table.ts
18213
18250
  import { distance as distance37 } from "circuit-json";
18214
- import { z as z115 } from "zod";
18215
- var schematicTableProps = z115.object({
18251
+ import { z as z117 } from "zod";
18252
+ var schematicTableProps = z117.object({
18216
18253
  schX: distance37.optional(),
18217
18254
  schY: distance37.optional(),
18218
- children: z115.any().optional(),
18255
+ children: z117.any().optional(),
18219
18256
  cellPadding: distance37.optional(),
18220
18257
  borderWidth: distance37.optional(),
18221
18258
  anchor: ninePointAnchor.optional(),
@@ -18225,34 +18262,34 @@ expectTypesMatch(true);
18225
18262
 
18226
18263
  // lib/components/schematic-row.ts
18227
18264
  import { distance as distance38 } from "circuit-json";
18228
- import { z as z116 } from "zod";
18229
- var schematicRowProps = z116.object({
18230
- children: z116.any().optional(),
18265
+ import { z as z118 } from "zod";
18266
+ var schematicRowProps = z118.object({
18267
+ children: z118.any().optional(),
18231
18268
  height: distance38.optional()
18232
18269
  });
18233
18270
  expectTypesMatch(true);
18234
18271
 
18235
18272
  // lib/components/schematic-cell.ts
18236
18273
  import { distance as distance39 } from "circuit-json";
18237
- import { z as z117 } from "zod";
18238
- var schematicCellProps = z117.object({
18239
- children: z117.string().optional(),
18240
- horizontalAlign: z117.enum(["left", "center", "right"]).optional(),
18241
- verticalAlign: z117.enum(["top", "middle", "bottom"]).optional(),
18274
+ import { z as z119 } from "zod";
18275
+ var schematicCellProps = z119.object({
18276
+ children: z119.string().optional(),
18277
+ horizontalAlign: z119.enum(["left", "center", "right"]).optional(),
18278
+ verticalAlign: z119.enum(["top", "middle", "bottom"]).optional(),
18242
18279
  fontSize: distance39.optional(),
18243
- rowSpan: z117.number().optional(),
18244
- colSpan: z117.number().optional(),
18280
+ rowSpan: z119.number().optional(),
18281
+ colSpan: z119.number().optional(),
18245
18282
  width: distance39.optional(),
18246
- text: z117.string().optional()
18283
+ text: z119.string().optional()
18247
18284
  });
18248
18285
  expectTypesMatch(true);
18249
18286
 
18250
18287
  // lib/components/schematic-section.ts
18251
18288
  import { distance as distance40 } from "circuit-json";
18252
- import { z as z118 } from "zod";
18253
- var schematicSectionProps = z118.object({
18254
- displayName: z118.string().optional(),
18255
- name: z118.string(),
18289
+ import { z as z120 } from "zod";
18290
+ var schematicSectionProps = z120.object({
18291
+ displayName: z120.string().optional(),
18292
+ name: z120.string(),
18256
18293
  sectionTitleFontSize: distance40.optional()
18257
18294
  });
18258
18295
  expectTypesMatch(
@@ -18260,51 +18297,51 @@ expectTypesMatch(
18260
18297
  );
18261
18298
 
18262
18299
  // lib/components/schematic-sheet.ts
18263
- import { z as z119 } from "zod";
18264
- var schematicSheetProps = z119.object({
18265
- name: z119.string(),
18266
- displayName: z119.string(),
18267
- sheetIndex: z119.number().optional(),
18268
- children: z119.any().optional()
18300
+ import { z as z121 } from "zod";
18301
+ var schematicSheetProps = z121.object({
18302
+ name: z121.string(),
18303
+ displayName: z121.string(),
18304
+ sheetIndex: z121.number().optional(),
18305
+ children: z121.any().optional()
18269
18306
  });
18270
18307
  expectTypesMatch(true);
18271
18308
 
18272
18309
  // lib/components/copper-text.ts
18273
18310
  import { layer_ref as layer_ref10, length as length8 } from "circuit-json";
18274
- import { z as z120 } from "zod";
18311
+ import { z as z122 } from "zod";
18275
18312
  var copperTextProps = pcbLayoutProps.extend({
18276
- text: z120.string(),
18313
+ text: z122.string(),
18277
18314
  anchorAlignment: ninePointAnchor.default("center"),
18278
- font: z120.enum(["tscircuit2024"]).optional(),
18315
+ font: z122.enum(["tscircuit2024"]).optional(),
18279
18316
  fontSize: length8.optional(),
18280
- layers: z120.array(layer_ref10).optional(),
18281
- knockout: z120.boolean().optional(),
18282
- mirrored: z120.boolean().optional()
18317
+ layers: z122.array(layer_ref10).optional(),
18318
+ knockout: z122.boolean().optional(),
18319
+ mirrored: z122.boolean().optional()
18283
18320
  });
18284
18321
 
18285
18322
  // lib/components/silkscreen-text.ts
18286
18323
  import { layer_ref as layer_ref11, length as length9 } from "circuit-json";
18287
- import { z as z121 } from "zod";
18324
+ import { z as z123 } from "zod";
18288
18325
  var silkscreenTextProps = pcbLayoutProps.extend({
18289
- text: z121.string(),
18326
+ text: z123.string(),
18290
18327
  anchorAlignment: ninePointAnchor.default("center"),
18291
- font: z121.enum(["tscircuit2024"]).optional(),
18328
+ font: z123.enum(["tscircuit2024"]).optional(),
18292
18329
  fontSize: length9.optional(),
18293
18330
  /**
18294
18331
  * If true, text will knock out underlying silkscreen
18295
18332
  */
18296
- isKnockout: z121.boolean().optional(),
18333
+ isKnockout: z123.boolean().optional(),
18297
18334
  knockoutPadding: length9.optional(),
18298
18335
  knockoutPaddingLeft: length9.optional(),
18299
18336
  knockoutPaddingRight: length9.optional(),
18300
18337
  knockoutPaddingTop: length9.optional(),
18301
18338
  knockoutPaddingBottom: length9.optional(),
18302
- layers: z121.array(layer_ref11).optional()
18339
+ layers: z123.array(layer_ref11).optional()
18303
18340
  });
18304
18341
 
18305
18342
  // lib/components/silkscreen-path.ts
18306
18343
  import { length as length10, route_hint_point as route_hint_point5 } from "circuit-json";
18307
- import { z as z122 } from "zod";
18344
+ import { z as z124 } from "zod";
18308
18345
  var silkscreenPathProps = pcbLayoutProps.omit({
18309
18346
  pcbLeftEdgeX: true,
18310
18347
  pcbRightEdgeX: true,
@@ -18316,7 +18353,7 @@ var silkscreenPathProps = pcbLayoutProps.omit({
18316
18353
  pcbOffsetY: true,
18317
18354
  pcbRotation: true
18318
18355
  }).extend({
18319
- route: z122.array(route_hint_point5),
18356
+ route: z124.array(route_hint_point5),
18320
18357
  strokeWidth: length10.optional()
18321
18358
  });
18322
18359
 
@@ -18338,10 +18375,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({
18338
18375
 
18339
18376
  // lib/components/silkscreen-rect.ts
18340
18377
  import { distance as distance42 } from "circuit-json";
18341
- import { z as z123 } from "zod";
18378
+ import { z as z125 } from "zod";
18342
18379
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18343
- filled: z123.boolean().default(true).optional(),
18344
- stroke: z123.enum(["dashed", "solid", "none"]).optional(),
18380
+ filled: z125.boolean().default(true).optional(),
18381
+ stroke: z125.enum(["dashed", "solid", "none"]).optional(),
18345
18382
  strokeWidth: distance42.optional(),
18346
18383
  width: distance42,
18347
18384
  height: distance42,
@@ -18350,10 +18387,10 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18350
18387
 
18351
18388
  // lib/components/silkscreen-circle.ts
18352
18389
  import { distance as distance43 } from "circuit-json";
18353
- import { z as z124 } from "zod";
18390
+ import { z as z126 } from "zod";
18354
18391
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18355
- isFilled: z124.boolean().optional(),
18356
- isOutline: z124.boolean().optional(),
18392
+ isFilled: z126.boolean().optional(),
18393
+ isOutline: z126.boolean().optional(),
18357
18394
  strokeWidth: distance43.optional(),
18358
18395
  radius: distance43
18359
18396
  });
@@ -18371,63 +18408,63 @@ expectTypesMatch(true);
18371
18408
 
18372
18409
  // lib/components/trace-hint.ts
18373
18410
  import { distance as distance44, layer_ref as layer_ref12, route_hint_point as route_hint_point6 } from "circuit-json";
18374
- import { z as z126 } from "zod";
18375
- var routeHintPointProps = z126.object({
18411
+ import { z as z128 } from "zod";
18412
+ var routeHintPointProps = z128.object({
18376
18413
  x: distance44,
18377
18414
  y: distance44,
18378
- via: z126.boolean().optional(),
18415
+ via: z128.boolean().optional(),
18379
18416
  toLayer: layer_ref12.optional()
18380
18417
  });
18381
- var traceHintProps = z126.object({
18382
- for: z126.string().optional().describe(
18418
+ var traceHintProps = z128.object({
18419
+ for: z128.string().optional().describe(
18383
18420
  "Selector for the port you're targeting, not required if you're inside a trace"
18384
18421
  ),
18385
- order: z126.number().optional(),
18422
+ order: z128.number().optional(),
18386
18423
  offset: route_hint_point6.or(routeHintPointProps).optional(),
18387
- offsets: z126.array(route_hint_point6).or(z126.array(routeHintPointProps)).optional(),
18388
- traceWidth: z126.number().optional()
18424
+ offsets: z128.array(route_hint_point6).or(z128.array(routeHintPointProps)).optional(),
18425
+ traceWidth: z128.number().optional()
18389
18426
  });
18390
18427
 
18391
18428
  // lib/components/port.ts
18392
- import { z as z127 } from "zod";
18429
+ import { z as z129 } from "zod";
18393
18430
  var portProps = commonLayoutProps.extend({
18394
- name: z127.string().optional(),
18395
- pinNumber: z127.number().optional(),
18396
- schStemLength: z127.number().optional(),
18397
- aliases: z127.array(z127.string()).optional(),
18398
- layer: z127.string().optional(),
18399
- layers: z127.array(z127.string()).optional(),
18400
- schX: z127.number().optional(),
18401
- schY: z127.number().optional(),
18431
+ name: z129.string().optional(),
18432
+ pinNumber: z129.number().optional(),
18433
+ schStemLength: z129.number().optional(),
18434
+ aliases: z129.array(z129.string()).optional(),
18435
+ layer: z129.string().optional(),
18436
+ layers: z129.array(z129.string()).optional(),
18437
+ schX: z129.number().optional(),
18438
+ schY: z129.number().optional(),
18402
18439
  direction: direction.optional(),
18403
- connectsTo: z127.string().or(z127.array(z127.string())).optional(),
18440
+ connectsTo: z129.string().or(z129.array(z129.string())).optional(),
18404
18441
  kicadPinMetadata: kicadPinMetadata.optional(),
18405
- hasInversionCircle: z127.boolean().optional()
18442
+ hasInversionCircle: z129.boolean().optional()
18406
18443
  });
18407
18444
 
18408
18445
  // lib/components/pcb-note-text.ts
18409
18446
  import { length as length11 } from "circuit-json";
18410
- import { z as z128 } from "zod";
18447
+ import { z as z130 } from "zod";
18411
18448
  var pcbNoteTextProps = pcbLayoutProps.extend({
18412
- text: z128.string(),
18413
- anchorAlignment: z128.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
18414
- font: z128.enum(["tscircuit2024"]).optional(),
18449
+ text: z130.string(),
18450
+ anchorAlignment: z130.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
18451
+ font: z130.enum(["tscircuit2024"]).optional(),
18415
18452
  fontSize: length11.optional(),
18416
- color: z128.string().optional()
18453
+ color: z130.string().optional()
18417
18454
  });
18418
18455
  expectTypesMatch(true);
18419
18456
 
18420
18457
  // lib/components/pcb-note-rect.ts
18421
18458
  import { distance as distance45 } from "circuit-json";
18422
- import { z as z129 } from "zod";
18459
+ import { z as z131 } from "zod";
18423
18460
  var pcbNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18424
18461
  width: distance45,
18425
18462
  height: distance45,
18426
18463
  strokeWidth: distance45.optional(),
18427
- isFilled: z129.boolean().optional(),
18428
- hasStroke: z129.boolean().optional(),
18429
- isStrokeDashed: z129.boolean().optional(),
18430
- color: z129.string().optional(),
18464
+ isFilled: z131.boolean().optional(),
18465
+ hasStroke: z131.boolean().optional(),
18466
+ isStrokeDashed: z131.boolean().optional(),
18467
+ color: z131.string().optional(),
18431
18468
  cornerRadius: distance45.optional()
18432
18469
  });
18433
18470
  expectTypesMatch(true);
@@ -18437,7 +18474,7 @@ import {
18437
18474
  length as length12,
18438
18475
  route_hint_point as route_hint_point7
18439
18476
  } from "circuit-json";
18440
- import { z as z130 } from "zod";
18477
+ import { z as z132 } from "zod";
18441
18478
  var pcbNotePathProps = pcbLayoutProps.omit({
18442
18479
  pcbLeftEdgeX: true,
18443
18480
  pcbRightEdgeX: true,
@@ -18449,15 +18486,15 @@ var pcbNotePathProps = pcbLayoutProps.omit({
18449
18486
  pcbOffsetY: true,
18450
18487
  pcbRotation: true
18451
18488
  }).extend({
18452
- route: z130.array(route_hint_point7),
18489
+ route: z132.array(route_hint_point7),
18453
18490
  strokeWidth: length12.optional(),
18454
- color: z130.string().optional()
18491
+ color: z132.string().optional()
18455
18492
  });
18456
18493
  expectTypesMatch(true);
18457
18494
 
18458
18495
  // lib/components/pcb-note-line.ts
18459
18496
  import { distance as distance46 } from "circuit-json";
18460
- import { z as z131 } from "zod";
18497
+ import { z as z133 } from "zod";
18461
18498
  var pcbNoteLineProps = pcbLayoutProps.omit({
18462
18499
  pcbLeftEdgeX: true,
18463
18500
  pcbRightEdgeX: true,
@@ -18474,15 +18511,15 @@ var pcbNoteLineProps = pcbLayoutProps.omit({
18474
18511
  x2: distance46,
18475
18512
  y2: distance46,
18476
18513
  strokeWidth: distance46.optional(),
18477
- color: z131.string().optional(),
18478
- isDashed: z131.boolean().optional()
18514
+ color: z133.string().optional(),
18515
+ isDashed: z133.boolean().optional()
18479
18516
  });
18480
18517
  expectTypesMatch(true);
18481
18518
 
18482
18519
  // lib/components/pcb-note-dimension.ts
18483
18520
  import { distance as distance47, length as length13 } from "circuit-json";
18484
- import { z as z132 } from "zod";
18485
- var dimensionTarget2 = z132.union([z132.string(), point]);
18521
+ import { z as z134 } from "zod";
18522
+ var dimensionTarget2 = z134.union([z134.string(), point]);
18486
18523
  var pcbNoteDimensionProps = pcbLayoutProps.omit({
18487
18524
  pcbLeftEdgeX: true,
18488
18525
  pcbRightEdgeX: true,
@@ -18496,101 +18533,101 @@ var pcbNoteDimensionProps = pcbLayoutProps.omit({
18496
18533
  }).extend({
18497
18534
  from: dimensionTarget2,
18498
18535
  to: dimensionTarget2,
18499
- text: z132.string().optional(),
18536
+ text: z134.string().optional(),
18500
18537
  offset: distance47.optional(),
18501
- font: z132.enum(["tscircuit2024"]).optional(),
18538
+ font: z134.enum(["tscircuit2024"]).optional(),
18502
18539
  fontSize: length13.optional(),
18503
- color: z132.string().optional(),
18540
+ color: z134.string().optional(),
18504
18541
  arrowSize: distance47.optional(),
18505
- units: z132.enum(["in", "mm"]).optional(),
18506
- outerEdgeToEdge: z132.literal(true).optional(),
18507
- centerToCenter: z132.literal(true).optional(),
18508
- innerEdgeToEdge: z132.literal(true).optional()
18542
+ units: z134.enum(["in", "mm"]).optional(),
18543
+ outerEdgeToEdge: z134.literal(true).optional(),
18544
+ centerToCenter: z134.literal(true).optional(),
18545
+ innerEdgeToEdge: z134.literal(true).optional()
18509
18546
  });
18510
18547
  expectTypesMatch(
18511
18548
  true
18512
18549
  );
18513
18550
 
18514
18551
  // lib/platformConfig.ts
18515
- import { z as z133 } from "zod";
18516
- var unvalidatedCircuitJson = z133.array(z133.any()).describe("Circuit JSON");
18517
- var footprintLibraryResult = z133.object({
18518
- footprintCircuitJson: z133.array(z133.any()),
18552
+ import { z as z135 } from "zod";
18553
+ var unvalidatedCircuitJson = z135.array(z135.any()).describe("Circuit JSON");
18554
+ var footprintLibraryResult = z135.object({
18555
+ footprintCircuitJson: z135.array(z135.any()),
18519
18556
  cadModel: cadModelProp.optional()
18520
18557
  });
18521
- var pathToCircuitJsonFn = z133.function().args(z133.string()).returns(z133.promise(footprintLibraryResult)).or(
18522
- z133.function().args(
18523
- z133.string(),
18524
- z133.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
18525
- ).returns(z133.promise(footprintLibraryResult))
18558
+ var pathToCircuitJsonFn = z135.function().args(z135.string()).returns(z135.promise(footprintLibraryResult)).or(
18559
+ z135.function().args(
18560
+ z135.string(),
18561
+ z135.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
18562
+ ).returns(z135.promise(footprintLibraryResult))
18526
18563
  ).describe("A function that takes a path and returns Circuit JSON");
18527
- var footprintFileParserEntry = z133.object({
18528
- loadFromUrl: z133.function().args(z133.string()).returns(z133.promise(footprintLibraryResult)).describe(
18564
+ var footprintFileParserEntry = z135.object({
18565
+ loadFromUrl: z135.function().args(z135.string()).returns(z135.promise(footprintLibraryResult)).describe(
18529
18566
  "A function that takes a footprint file URL and returns Circuit JSON"
18530
18567
  )
18531
18568
  });
18532
- var spiceEngineSimulationResult = z133.object({
18533
- engineVersionString: z133.string().optional(),
18569
+ var spiceEngineSimulationResult = z135.object({
18570
+ engineVersionString: z135.string().optional(),
18534
18571
  simulationResultCircuitJson: unvalidatedCircuitJson
18535
18572
  });
18536
- var spiceEngineZod = z133.object({
18537
- simulate: z133.function().args(z133.string()).returns(z133.promise(spiceEngineSimulationResult)).describe(
18573
+ var spiceEngineZod = z135.object({
18574
+ simulate: z135.function().args(z135.string()).returns(z135.promise(spiceEngineSimulationResult)).describe(
18538
18575
  "A function that takes a SPICE string and returns a simulation result"
18539
18576
  )
18540
18577
  });
18541
- var defaultSpiceEngine = z133.custom(
18578
+ var defaultSpiceEngine = z135.custom(
18542
18579
  (value) => typeof value === "string"
18543
18580
  );
18544
- var autorouterInstance = z133.object({
18545
- run: z133.function().args().returns(z133.promise(z133.unknown())).describe("Run the autorouter"),
18546
- getOutputSimpleRouteJson: z133.function().args().returns(z133.promise(z133.any())).describe("Get the resulting SimpleRouteJson")
18581
+ var autorouterInstance = z135.object({
18582
+ run: z135.function().args().returns(z135.promise(z135.unknown())).describe("Run the autorouter"),
18583
+ getOutputSimpleRouteJson: z135.function().args().returns(z135.promise(z135.any())).describe("Get the resulting SimpleRouteJson")
18547
18584
  });
18548
- var autorouterDefinition = z133.object({
18549
- createAutorouter: z133.function().args(z133.any(), z133.any().optional()).returns(z133.union([autorouterInstance, z133.promise(autorouterInstance)])).describe("Create an autorouter instance")
18585
+ var autorouterDefinition = z135.object({
18586
+ createAutorouter: z135.function().args(z135.any(), z135.any().optional()).returns(z135.union([autorouterInstance, z135.promise(autorouterInstance)])).describe("Create an autorouter instance")
18550
18587
  });
18551
- var platformFetch = z133.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
18552
- var platformConfig = z133.object({
18588
+ var platformFetch = z135.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
18589
+ var platformConfig = z135.object({
18553
18590
  partsEngine: partsEngine.optional(),
18554
18591
  autorouter: autorouterProp.optional(),
18555
- autorouterMap: z133.record(z133.string(), autorouterDefinition).optional(),
18592
+ autorouterMap: z135.record(z135.string(), autorouterDefinition).optional(),
18556
18593
  registryApiUrl: url.optional(),
18557
18594
  cloudAutorouterUrl: url.optional(),
18558
- projectName: z133.string().optional(),
18595
+ projectName: z135.string().optional(),
18559
18596
  projectBaseUrl: url.optional(),
18560
- version: z133.string().optional(),
18597
+ version: z135.string().optional(),
18561
18598
  url: url.optional(),
18562
- printBoardInformationToSilkscreen: z133.boolean().optional(),
18563
- includeBoardFiles: z133.array(z133.string()).describe(
18599
+ printBoardInformationToSilkscreen: z135.boolean().optional(),
18600
+ includeBoardFiles: z135.array(z135.string()).describe(
18564
18601
  'The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs'
18565
18602
  ).optional(),
18566
- snapshotsDir: z133.string().describe(
18603
+ snapshotsDir: z135.string().describe(
18567
18604
  'The directory where snapshots are stored for "tsci snapshot", defaults to "tests/__snapshots__"'
18568
18605
  ).optional(),
18569
18606
  defaultSpiceEngine: defaultSpiceEngine.optional(),
18570
- unitPreference: z133.enum(["mm", "in", "mil"]).optional(),
18571
- localCacheEngine: z133.any().optional(),
18572
- pcbDisabled: z133.boolean().optional(),
18573
- routingDisabled: z133.boolean().optional(),
18574
- schematicDisabled: z133.boolean().optional(),
18575
- partsEngineDisabled: z133.boolean().optional(),
18576
- drcChecksDisabled: z133.boolean().optional(),
18577
- netlistDrcChecksDisabled: z133.boolean().optional(),
18578
- routingDrcChecksDisabled: z133.boolean().optional(),
18579
- placementDrcChecksDisabled: z133.boolean().optional(),
18580
- pinSpecificationDrcChecksDisabled: z133.boolean().optional(),
18581
- spiceEngineMap: z133.record(z133.string(), spiceEngineZod).optional(),
18582
- footprintLibraryMap: z133.record(
18583
- z133.string(),
18584
- z133.union([
18607
+ unitPreference: z135.enum(["mm", "in", "mil"]).optional(),
18608
+ localCacheEngine: z135.any().optional(),
18609
+ pcbDisabled: z135.boolean().optional(),
18610
+ routingDisabled: z135.boolean().optional(),
18611
+ schematicDisabled: z135.boolean().optional(),
18612
+ partsEngineDisabled: z135.boolean().optional(),
18613
+ drcChecksDisabled: z135.boolean().optional(),
18614
+ netlistDrcChecksDisabled: z135.boolean().optional(),
18615
+ routingDrcChecksDisabled: z135.boolean().optional(),
18616
+ placementDrcChecksDisabled: z135.boolean().optional(),
18617
+ pinSpecificationDrcChecksDisabled: z135.boolean().optional(),
18618
+ spiceEngineMap: z135.record(z135.string(), spiceEngineZod).optional(),
18619
+ footprintLibraryMap: z135.record(
18620
+ z135.string(),
18621
+ z135.union([
18585
18622
  pathToCircuitJsonFn,
18586
- z133.record(
18587
- z133.string(),
18588
- z133.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
18623
+ z135.record(
18624
+ z135.string(),
18625
+ z135.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
18589
18626
  )
18590
18627
  ])
18591
18628
  ).optional(),
18592
- footprintFileParserMap: z133.record(z133.string(), footprintFileParserEntry).optional(),
18593
- resolveProjectStaticFileImportUrl: z133.function().args(z133.string()).returns(z133.promise(z133.string())).describe(
18629
+ footprintFileParserMap: z135.record(z135.string(), footprintFileParserEntry).optional(),
18630
+ resolveProjectStaticFileImportUrl: z135.function().args(z135.string()).returns(z135.promise(z135.string())).describe(
18594
18631
  "A function that returns a string URL for static files for the project"
18595
18632
  ).optional(),
18596
18633
  platformFetch: platformFetch.optional()
@@ -18648,10 +18685,12 @@ export {
18648
18685
  capacitorProps,
18649
18686
  chipProps,
18650
18687
  circleCutoutProps,
18688
+ circleShapeProps,
18651
18689
  circleSmtPadProps,
18652
18690
  circleSolderPasteProps,
18653
18691
  commonComponentProps,
18654
18692
  commonLayoutProps,
18693
+ commonShapeProps,
18655
18694
  componentProps,
18656
18695
  connectorProps,
18657
18696
  constrainedLayoutProps,
@@ -18682,6 +18721,8 @@ export {
18682
18721
  edit_schematic_component_location_event,
18683
18722
  edit_schematic_group_location_event,
18684
18723
  edit_trace_hint_event,
18724
+ enclosureCutoutApertureProps,
18725
+ enclosureCutoutApertureShapes,
18685
18726
  enclosureFdmBoxProps,
18686
18727
  enclosureProps,
18687
18728
  explicitPinSideDefinition,
@@ -18759,6 +18800,7 @@ export {
18759
18800
  pcbTraceProps,
18760
18801
  pcbXDistConstraintProps,
18761
18802
  pcbYDistConstraintProps,
18803
+ pillShapeProps,
18762
18804
  pillSmtPadProps,
18763
18805
  pinAttributeMap,
18764
18806
  pinCapability,
@@ -18780,6 +18822,7 @@ export {
18780
18822
  projectConfig,
18781
18823
  pushButtonProps,
18782
18824
  rectCutoutProps,
18825
+ rectShapeProps,
18783
18826
  rectSmtPadProps,
18784
18827
  rectSolderPasteProps,
18785
18828
  resistorPinLabels,