@tscircuit/props 0.0.329 → 0.0.331

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
@@ -260,55 +260,69 @@ expectTypesMatch(true);
260
260
  import { z as z12 } from "zod";
261
261
  var schematicPinLabel = z12.string().regex(/^[A-Za-z0-9_]+$/);
262
262
 
263
+ // lib/common/ninePointAnchor.ts
264
+ import { z as z13 } from "zod";
265
+ var ninePointAnchor = z13.enum([
266
+ "top_left",
267
+ "top_center",
268
+ "top_right",
269
+ "center_left",
270
+ "center",
271
+ "center_right",
272
+ "bottom_left",
273
+ "bottom_center",
274
+ "bottom_right"
275
+ ]);
276
+
263
277
  // lib/components/board.ts
264
- import { z as z27 } from "zod";
278
+ import { z as z28 } from "zod";
265
279
 
266
280
  // lib/components/group.ts
267
281
  import { length as length2, distance as distance6 } from "circuit-json";
268
282
 
269
283
  // lib/common/point.ts
270
284
  import { distance as distance5 } from "circuit-json";
271
- import { z as z13 } from "zod";
272
- var point = z13.object({
285
+ import { z as z14 } from "zod";
286
+ var point = z14.object({
273
287
  x: distance5,
274
288
  y: distance5
275
289
  });
276
290
 
277
291
  // lib/components/group.ts
278
- import { z as z26 } from "zod";
292
+ import { z as z27 } from "zod";
279
293
 
280
294
  // lib/manual-edits/manual-edit-events/base_manual_edit_event.ts
281
- import { z as z14 } from "zod";
282
- var base_manual_edit_event = z14.object({
283
- edit_event_id: z14.string(),
284
- in_progress: z14.boolean().optional(),
285
- created_at: z14.number()
295
+ import { z as z15 } from "zod";
296
+ var base_manual_edit_event = z15.object({
297
+ edit_event_id: z15.string(),
298
+ in_progress: z15.boolean().optional(),
299
+ created_at: z15.number()
286
300
  });
287
301
  expectTypesMatch(
288
302
  true
289
303
  );
290
304
 
291
305
  // lib/manual-edits/manual-edit-events/edit_pcb_component_location_event.ts
292
- import { z as z15 } from "zod";
306
+ import { z as z16 } from "zod";
293
307
  var edit_pcb_component_location_event = base_manual_edit_event.extend({
294
- pcb_edit_event_type: z15.literal("edit_component_location").describe("deprecated"),
295
- edit_event_type: z15.literal("edit_pcb_component_location"),
296
- pcb_component_id: z15.string(),
297
- original_center: z15.object({ x: z15.number(), y: z15.number() }),
298
- new_center: z15.object({ x: z15.number(), y: z15.number() })
308
+ pcb_edit_event_type: z16.literal("edit_component_location").describe("deprecated"),
309
+ edit_event_type: z16.literal("edit_pcb_component_location"),
310
+ pcb_component_id: z16.string(),
311
+ original_center: z16.object({ x: z16.number(), y: z16.number() }),
312
+ new_center: z16.object({ x: z16.number(), y: z16.number() })
299
313
  });
300
314
  var edit_component_location_event = edit_pcb_component_location_event;
301
315
  expectTypesMatch(true);
302
316
 
303
317
  // lib/manual-edits/manual-edit-events/edit_trace_hint_event.ts
304
- import { z as z16 } from "zod";
318
+ import { z as z17 } from "zod";
305
319
  var edit_trace_hint_event = base_manual_edit_event.extend({
306
- pcb_edit_event_type: z16.literal("edit_trace_hint").describe("deprecated"),
307
- edit_event_type: z16.literal("edit_pcb_trace_hint").optional(),
308
- pcb_port_id: z16.string(),
309
- pcb_trace_hint_id: z16.string().optional(),
310
- route: z16.array(
311
- z16.object({ x: z16.number(), y: z16.number(), via: z16.boolean().optional() })
320
+ pcb_edit_event_type: z17.literal("edit_trace_hint").describe("deprecated"),
321
+ edit_event_type: z17.literal("edit_pcb_trace_hint").optional(),
322
+ pcb_port_id: z17.string(),
323
+ pcb_trace_hint_id: z17.string().optional(),
324
+ route: z17.array(
325
+ z17.object({ x: z17.number(), y: z17.number(), via: z17.boolean().optional() })
312
326
  )
313
327
  });
314
328
  expectTypesMatch(
@@ -316,38 +330,38 @@ expectTypesMatch(
316
330
  );
317
331
 
318
332
  // lib/manual-edits/manual-edit-events/edit_schematic_component_location_event.ts
319
- import { z as z17 } from "zod";
333
+ import { z as z18 } from "zod";
320
334
  var edit_schematic_component_location_event = base_manual_edit_event.extend({
321
- edit_event_type: z17.literal("edit_schematic_component_location"),
322
- schematic_component_id: z17.string(),
323
- original_center: z17.object({ x: z17.number(), y: z17.number() }),
324
- new_center: z17.object({ x: z17.number(), y: z17.number() })
335
+ edit_event_type: z18.literal("edit_schematic_component_location"),
336
+ schematic_component_id: z18.string(),
337
+ original_center: z18.object({ x: z18.number(), y: z18.number() }),
338
+ new_center: z18.object({ x: z18.number(), y: z18.number() })
325
339
  });
326
340
  expectTypesMatch(true);
327
341
 
328
342
  // lib/manual-edits/manual-edit-events/edit_pcb_group_location_event.ts
329
- import { z as z18 } from "zod";
343
+ import { z as z19 } from "zod";
330
344
  var edit_pcb_group_location_event = base_manual_edit_event.extend({
331
- edit_event_type: z18.literal("edit_pcb_group_location"),
332
- pcb_group_id: z18.string(),
333
- original_center: z18.object({ x: z18.number(), y: z18.number() }),
334
- new_center: z18.object({ x: z18.number(), y: z18.number() })
345
+ edit_event_type: z19.literal("edit_pcb_group_location"),
346
+ pcb_group_id: z19.string(),
347
+ original_center: z19.object({ x: z19.number(), y: z19.number() }),
348
+ new_center: z19.object({ x: z19.number(), y: z19.number() })
335
349
  });
336
350
  expectTypesMatch(true);
337
351
 
338
352
  // lib/manual-edits/manual-edit-events/edit_schematic_group_location_event.ts
339
- import { z as z19 } from "zod";
353
+ import { z as z20 } from "zod";
340
354
  var edit_schematic_group_location_event = base_manual_edit_event.extend({
341
- edit_event_type: z19.literal("edit_schematic_group_location"),
342
- schematic_group_id: z19.string(),
343
- original_center: z19.object({ x: z19.number(), y: z19.number() }),
344
- new_center: z19.object({ x: z19.number(), y: z19.number() })
355
+ edit_event_type: z20.literal("edit_schematic_group_location"),
356
+ schematic_group_id: z20.string(),
357
+ original_center: z20.object({ x: z20.number(), y: z20.number() }),
358
+ new_center: z20.object({ x: z20.number(), y: z20.number() })
345
359
  });
346
360
  expectTypesMatch(true);
347
361
 
348
362
  // lib/manual-edits/manual_edit_event.ts
349
- import { z as z20 } from "zod";
350
- var manual_edit_event = z20.union([
363
+ import { z as z21 } from "zod";
364
+ var manual_edit_event = z21.union([
351
365
  edit_pcb_component_location_event,
352
366
  edit_trace_hint_event,
353
367
  edit_schematic_component_location_event
@@ -355,33 +369,33 @@ var manual_edit_event = z20.union([
355
369
  expectTypesMatch(true);
356
370
 
357
371
  // lib/manual-edits/manual_edits_file.ts
358
- import { z as z24 } from "zod";
372
+ import { z as z25 } from "zod";
359
373
 
360
374
  // lib/manual-edits/manual_pcb_placement.ts
361
- import { z as z21 } from "zod";
375
+ import { z as z22 } from "zod";
362
376
  import { point as point2 } from "circuit-json";
363
- var manual_pcb_placement = z21.object({
364
- selector: z21.string(),
365
- relative_to: z21.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
377
+ var manual_pcb_placement = z22.object({
378
+ selector: z22.string(),
379
+ relative_to: z22.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
366
380
  center: point2
367
381
  });
368
382
  expectTypesMatch(true);
369
383
 
370
384
  // lib/manual-edits/manual_trace_hint.ts
371
- import { z as z22 } from "zod";
385
+ import { z as z23 } from "zod";
372
386
  import { route_hint_point } from "circuit-json";
373
- var manual_trace_hint = z22.object({
374
- pcb_port_selector: z22.string(),
375
- offsets: z22.array(route_hint_point)
387
+ var manual_trace_hint = z23.object({
388
+ pcb_port_selector: z23.string(),
389
+ offsets: z23.array(route_hint_point)
376
390
  });
377
391
  expectTypesMatch(true);
378
392
 
379
393
  // lib/manual-edits/manual_schematic_placement.ts
380
- import { z as z23 } from "zod";
394
+ import { z as z24 } from "zod";
381
395
  import { point as point4 } from "circuit-json";
382
- var manual_schematic_placement = z23.object({
383
- selector: z23.string(),
384
- relative_to: z23.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
396
+ var manual_schematic_placement = z24.object({
397
+ selector: z24.string(),
398
+ relative_to: z24.string().optional().default("group_center").describe("Can be a selector or 'group_center'"),
385
399
  center: point4
386
400
  });
387
401
  expectTypesMatch(
@@ -389,37 +403,37 @@ expectTypesMatch(
389
403
  );
390
404
 
391
405
  // lib/manual-edits/manual_edits_file.ts
392
- var manual_edits_file = z24.object({
393
- pcb_placements: z24.array(manual_pcb_placement).optional(),
394
- manual_trace_hints: z24.array(manual_trace_hint).optional(),
395
- schematic_placements: z24.array(manual_schematic_placement).optional()
406
+ var manual_edits_file = z25.object({
407
+ pcb_placements: z25.array(manual_pcb_placement).optional(),
408
+ manual_trace_hints: z25.array(manual_trace_hint).optional(),
409
+ schematic_placements: z25.array(manual_schematic_placement).optional()
396
410
  });
397
411
  expectTypesMatch(true);
398
412
 
399
413
  // lib/common/connectionsProp.ts
400
- import { z as z25 } from "zod";
401
- var connectionTarget = z25.string().or(z25.array(z25.string()).readonly()).or(z25.array(z25.string()));
414
+ import { z as z26 } from "zod";
415
+ var connectionTarget = z26.string().or(z26.array(z26.string()).readonly()).or(z26.array(z26.string()));
402
416
  var createConnectionsProp = (labels) => {
403
- return z25.record(z25.enum(labels), connectionTarget);
417
+ return z26.record(z26.enum(labels), connectionTarget);
404
418
  };
405
419
 
406
420
  // lib/components/group.ts
407
- var layoutConfig = z26.object({
408
- layoutMode: z26.enum(["grid", "flex", "match-adapt", "relative", "none"]).optional(),
409
- position: z26.enum(["absolute", "relative"]).optional(),
410
- grid: z26.boolean().optional(),
411
- gridCols: z26.number().or(z26.string()).optional(),
412
- gridRows: z26.number().or(z26.string()).optional(),
413
- gridTemplateRows: z26.string().optional(),
414
- gridTemplateColumns: z26.string().optional(),
415
- gridTemplate: z26.string().optional(),
416
- gridGap: z26.number().or(z26.string()).optional(),
417
- gridRowGap: z26.number().or(z26.string()).optional(),
418
- gridColumnGap: z26.number().or(z26.string()).optional(),
419
- flex: z26.boolean().or(z26.string()).optional(),
420
- flexDirection: z26.enum(["row", "column"]).optional(),
421
- alignItems: z26.enum(["start", "center", "end", "stretch"]).optional(),
422
- justifyContent: z26.enum([
421
+ var layoutConfig = z27.object({
422
+ layoutMode: z27.enum(["grid", "flex", "match-adapt", "relative", "none"]).optional(),
423
+ position: z27.enum(["absolute", "relative"]).optional(),
424
+ grid: z27.boolean().optional(),
425
+ gridCols: z27.number().or(z27.string()).optional(),
426
+ gridRows: z27.number().or(z27.string()).optional(),
427
+ gridTemplateRows: z27.string().optional(),
428
+ gridTemplateColumns: z27.string().optional(),
429
+ gridTemplate: z27.string().optional(),
430
+ gridGap: z27.number().or(z27.string()).optional(),
431
+ gridRowGap: z27.number().or(z27.string()).optional(),
432
+ gridColumnGap: z27.number().or(z27.string()).optional(),
433
+ flex: z27.boolean().or(z27.string()).optional(),
434
+ flexDirection: z27.enum(["row", "column"]).optional(),
435
+ alignItems: z27.enum(["start", "center", "end", "stretch"]).optional(),
436
+ justifyContent: z27.enum([
423
437
  "start",
424
438
  "center",
425
439
  "end",
@@ -428,16 +442,16 @@ var layoutConfig = z26.object({
428
442
  "space-around",
429
443
  "space-evenly"
430
444
  ]).optional(),
431
- flexRow: z26.boolean().optional(),
432
- flexColumn: z26.boolean().optional(),
433
- gap: z26.number().or(z26.string()).optional(),
434
- pack: z26.boolean().optional().describe("Pack the contents of this group using a packing strategy"),
435
- packOrderStrategy: z26.enum([
445
+ flexRow: z27.boolean().optional(),
446
+ flexColumn: z27.boolean().optional(),
447
+ gap: z27.number().or(z27.string()).optional(),
448
+ pack: z27.boolean().optional().describe("Pack the contents of this group using a packing strategy"),
449
+ packOrderStrategy: z27.enum([
436
450
  "largest_to_smallest",
437
451
  "first_to_last",
438
452
  "highest_to_lowest_pin_count"
439
453
  ]).optional(),
440
- packPlacementStrategy: z26.enum(["shortest_connection_along_outline"]).optional(),
454
+ packPlacementStrategy: z27.enum(["shortest_connection_along_outline"]).optional(),
441
455
  padding: length2.optional(),
442
456
  paddingLeft: length2.optional(),
443
457
  paddingRight: length2.optional(),
@@ -447,27 +461,27 @@ var layoutConfig = z26.object({
447
461
  paddingY: length2.optional(),
448
462
  width: length2.optional(),
449
463
  height: length2.optional(),
450
- matchAdapt: z26.boolean().optional(),
451
- matchAdaptTemplate: z26.any().optional()
464
+ matchAdapt: z27.boolean().optional(),
465
+ matchAdaptTemplate: z27.any().optional()
452
466
  });
453
467
  expectTypesMatch(true);
454
- var border = z26.object({
468
+ var border = z27.object({
455
469
  strokeWidth: length2.optional(),
456
- dashed: z26.boolean().optional(),
457
- solid: z26.boolean().optional()
458
- });
459
- var autorouterConfig = z26.object({
460
- serverUrl: z26.string().optional(),
461
- inputFormat: z26.enum(["simplified", "circuit-json"]).optional(),
462
- serverMode: z26.enum(["job", "solve-endpoint"]).optional(),
463
- serverCacheEnabled: z26.boolean().optional(),
464
- cache: z26.custom((v) => true).optional(),
470
+ dashed: z27.boolean().optional(),
471
+ solid: z27.boolean().optional()
472
+ });
473
+ var autorouterConfig = z27.object({
474
+ serverUrl: z27.string().optional(),
475
+ inputFormat: z27.enum(["simplified", "circuit-json"]).optional(),
476
+ serverMode: z27.enum(["job", "solve-endpoint"]).optional(),
477
+ serverCacheEnabled: z27.boolean().optional(),
478
+ cache: z27.custom((v) => true).optional(),
465
479
  traceClearance: length2.optional(),
466
- groupMode: z26.enum(["sequential_trace", "subcircuit", "sequential-trace"]).optional(),
467
- algorithmFn: z26.custom(
480
+ groupMode: z27.enum(["sequential_trace", "subcircuit", "sequential-trace"]).optional(),
481
+ algorithmFn: z27.custom(
468
482
  (v) => typeof v === "function" || v === void 0
469
483
  ).optional(),
470
- preset: z26.enum([
484
+ preset: z27.enum([
471
485
  "sequential_trace",
472
486
  "subcircuit",
473
487
  "auto",
@@ -478,45 +492,45 @@ var autorouterConfig = z26.object({
478
492
  "auto-local",
479
493
  "auto-cloud"
480
494
  ]).optional(),
481
- local: z26.boolean().optional()
495
+ local: z27.boolean().optional()
482
496
  });
483
- var autorouterProp = z26.union([
497
+ var autorouterProp = z27.union([
484
498
  autorouterConfig,
485
- z26.literal("sequential_trace"),
486
- z26.literal("subcircuit"),
487
- z26.literal("auto"),
488
- z26.literal("auto_local"),
489
- z26.literal("auto_cloud"),
490
- z26.literal("freerouting"),
491
- z26.literal("sequential-trace"),
492
- z26.literal("auto-local"),
493
- z26.literal("auto-cloud")
499
+ z27.literal("sequential_trace"),
500
+ z27.literal("subcircuit"),
501
+ z27.literal("auto"),
502
+ z27.literal("auto_local"),
503
+ z27.literal("auto_cloud"),
504
+ z27.literal("freerouting"),
505
+ z27.literal("sequential-trace"),
506
+ z27.literal("auto-local"),
507
+ z27.literal("auto-cloud")
494
508
  ]);
495
509
  var baseGroupProps = commonLayoutProps.extend({
496
- name: z26.string().optional(),
497
- children: z26.any().optional(),
498
- schTitle: z26.string().optional(),
499
- key: z26.any().optional(),
500
- showAsSchematicBox: z26.boolean().optional(),
501
- connections: z26.record(z26.string(), connectionTarget.optional()).optional(),
510
+ name: z27.string().optional(),
511
+ children: z27.any().optional(),
512
+ schTitle: z27.string().optional(),
513
+ key: z27.any().optional(),
514
+ showAsSchematicBox: z27.boolean().optional(),
515
+ connections: z27.record(z27.string(), connectionTarget.optional()).optional(),
502
516
  schPinArrangement: schematicPinArrangement.optional(),
503
517
  ...layoutConfig.shape,
504
518
  grid: layoutConfig.shape.grid.describe("@deprecated use pcbGrid"),
505
519
  flex: layoutConfig.shape.flex.describe("@deprecated use pcbFlex"),
506
- pcbGrid: z26.boolean().optional(),
507
- pcbGridCols: z26.number().or(z26.string()).optional(),
508
- pcbGridRows: z26.number().or(z26.string()).optional(),
509
- pcbGridTemplateRows: z26.string().optional(),
510
- pcbGridTemplateColumns: z26.string().optional(),
511
- pcbGridTemplate: z26.string().optional(),
512
- pcbGridGap: z26.number().or(z26.string()).optional(),
513
- pcbGridRowGap: z26.number().or(z26.string()).optional(),
514
- pcbGridColumnGap: z26.number().or(z26.string()).optional(),
515
- pcbFlex: z26.boolean().or(z26.string()).optional(),
516
- pcbFlexGap: z26.number().or(z26.string()).optional(),
517
- pcbFlexDirection: z26.enum(["row", "column"]).optional(),
518
- pcbAlignItems: z26.enum(["start", "center", "end", "stretch"]).optional(),
519
- pcbJustifyContent: z26.enum([
520
+ pcbGrid: z27.boolean().optional(),
521
+ pcbGridCols: z27.number().or(z27.string()).optional(),
522
+ pcbGridRows: z27.number().or(z27.string()).optional(),
523
+ pcbGridTemplateRows: z27.string().optional(),
524
+ pcbGridTemplateColumns: z27.string().optional(),
525
+ pcbGridTemplate: z27.string().optional(),
526
+ pcbGridGap: z27.number().or(z27.string()).optional(),
527
+ pcbGridRowGap: z27.number().or(z27.string()).optional(),
528
+ pcbGridColumnGap: z27.number().or(z27.string()).optional(),
529
+ pcbFlex: z27.boolean().or(z27.string()).optional(),
530
+ pcbFlexGap: z27.number().or(z27.string()).optional(),
531
+ pcbFlexDirection: z27.enum(["row", "column"]).optional(),
532
+ pcbAlignItems: z27.enum(["start", "center", "end", "stretch"]).optional(),
533
+ pcbJustifyContent: z27.enum([
520
534
  "start",
521
535
  "center",
522
536
  "end",
@@ -525,25 +539,25 @@ var baseGroupProps = commonLayoutProps.extend({
525
539
  "space-around",
526
540
  "space-evenly"
527
541
  ]).optional(),
528
- pcbFlexRow: z26.boolean().optional(),
529
- pcbFlexColumn: z26.boolean().optional(),
530
- pcbGap: z26.number().or(z26.string()).optional(),
531
- pcbPack: z26.boolean().optional(),
532
- pcbPackGap: z26.number().or(z26.string()).optional(),
533
- schGrid: z26.boolean().optional(),
534
- schGridCols: z26.number().or(z26.string()).optional(),
535
- schGridRows: z26.number().or(z26.string()).optional(),
536
- schGridTemplateRows: z26.string().optional(),
537
- schGridTemplateColumns: z26.string().optional(),
538
- schGridTemplate: z26.string().optional(),
539
- schGridGap: z26.number().or(z26.string()).optional(),
540
- schGridRowGap: z26.number().or(z26.string()).optional(),
541
- schGridColumnGap: z26.number().or(z26.string()).optional(),
542
- schFlex: z26.boolean().or(z26.string()).optional(),
543
- schFlexGap: z26.number().or(z26.string()).optional(),
544
- schFlexDirection: z26.enum(["row", "column"]).optional(),
545
- schAlignItems: z26.enum(["start", "center", "end", "stretch"]).optional(),
546
- schJustifyContent: z26.enum([
542
+ pcbFlexRow: z27.boolean().optional(),
543
+ pcbFlexColumn: z27.boolean().optional(),
544
+ pcbGap: z27.number().or(z27.string()).optional(),
545
+ pcbPack: z27.boolean().optional(),
546
+ pcbPackGap: z27.number().or(z27.string()).optional(),
547
+ schGrid: z27.boolean().optional(),
548
+ schGridCols: z27.number().or(z27.string()).optional(),
549
+ schGridRows: z27.number().or(z27.string()).optional(),
550
+ schGridTemplateRows: z27.string().optional(),
551
+ schGridTemplateColumns: z27.string().optional(),
552
+ schGridTemplate: z27.string().optional(),
553
+ schGridGap: z27.number().or(z27.string()).optional(),
554
+ schGridRowGap: z27.number().or(z27.string()).optional(),
555
+ schGridColumnGap: z27.number().or(z27.string()).optional(),
556
+ schFlex: z27.boolean().or(z27.string()).optional(),
557
+ schFlexGap: z27.number().or(z27.string()).optional(),
558
+ schFlexDirection: z27.enum(["row", "column"]).optional(),
559
+ schAlignItems: z27.enum(["start", "center", "end", "stretch"]).optional(),
560
+ schJustifyContent: z27.enum([
547
561
  "start",
548
562
  "center",
549
563
  "end",
@@ -552,11 +566,11 @@ var baseGroupProps = commonLayoutProps.extend({
552
566
  "space-around",
553
567
  "space-evenly"
554
568
  ]).optional(),
555
- schFlexRow: z26.boolean().optional(),
556
- schFlexColumn: z26.boolean().optional(),
557
- schGap: z26.number().or(z26.string()).optional(),
558
- schPack: z26.boolean().optional(),
559
- schMatchAdapt: z26.boolean().optional(),
569
+ schFlexRow: z27.boolean().optional(),
570
+ schFlexColumn: z27.boolean().optional(),
571
+ schGap: z27.number().or(z27.string()).optional(),
572
+ schPack: z27.boolean().optional(),
573
+ schMatchAdapt: z27.boolean().optional(),
560
574
  pcbWidth: length2.optional(),
561
575
  pcbHeight: length2.optional(),
562
576
  schWidth: length2.optional(),
@@ -576,32 +590,32 @@ var baseGroupProps = commonLayoutProps.extend({
576
590
  pcbPaddingTop: length2.optional(),
577
591
  pcbPaddingBottom: length2.optional()
578
592
  });
579
- var partsEngine = z26.custom((v) => "findPart" in v);
593
+ var partsEngine = z27.custom((v) => "findPart" in v);
580
594
  var subcircuitGroupProps = baseGroupProps.extend({
581
595
  manualEdits: manual_edits_file.optional(),
582
- schAutoLayoutEnabled: z26.boolean().optional(),
583
- schTraceAutoLabelEnabled: z26.boolean().optional(),
596
+ schAutoLayoutEnabled: z27.boolean().optional(),
597
+ schTraceAutoLabelEnabled: z27.boolean().optional(),
584
598
  schMaxTraceDistance: distance6.optional(),
585
- routingDisabled: z26.boolean().optional(),
599
+ routingDisabled: z27.boolean().optional(),
586
600
  defaultTraceWidth: length2.optional(),
587
601
  minTraceWidth: length2.optional(),
588
602
  partsEngine: partsEngine.optional(),
589
- pcbRouteCache: z26.custom((v) => true).optional(),
603
+ pcbRouteCache: z27.custom((v) => true).optional(),
590
604
  autorouter: autorouterProp.optional(),
591
- square: z26.boolean().optional(),
592
- emptyArea: z26.string().optional(),
593
- filledArea: z26.string().optional(),
605
+ square: z27.boolean().optional(),
606
+ emptyArea: z27.string().optional(),
607
+ filledArea: z27.string().optional(),
594
608
  width: distance6.optional(),
595
609
  height: distance6.optional(),
596
- outline: z26.array(point).optional(),
610
+ outline: z27.array(point).optional(),
597
611
  outlineOffsetX: distance6.optional(),
598
612
  outlineOffsetY: distance6.optional()
599
613
  });
600
614
  var subcircuitGroupPropsWithBool = subcircuitGroupProps.extend({
601
- subcircuit: z26.literal(true)
615
+ subcircuit: z27.literal(true)
602
616
  });
603
- var groupProps = z26.discriminatedUnion("subcircuit", [
604
- baseGroupProps.extend({ subcircuit: z26.literal(false).optional() }),
617
+ var groupProps = z27.discriminatedUnion("subcircuit", [
618
+ baseGroupProps.extend({ subcircuit: z27.literal(false).optional() }),
605
619
  subcircuitGroupPropsWithBool
606
620
  ]);
607
621
  expectTypesMatch(true);
@@ -610,9 +624,10 @@ expectTypesMatch(true);
610
624
 
611
625
  // lib/components/board.ts
612
626
  var boardProps = subcircuitGroupProps.extend({
613
- material: z27.enum(["fr4", "fr1"]).default("fr4"),
614
- layers: z27.union([z27.literal(2), z27.literal(4)]).default(2),
615
- borderRadius: distance.optional()
627
+ material: z28.enum(["fr4", "fr1"]).default("fr4"),
628
+ layers: z28.union([z28.literal(2), z28.literal(4)]).default(2),
629
+ borderRadius: distance.optional(),
630
+ boardOrigin: ninePointAnchor.optional()
616
631
  });
617
632
  expectTypesMatch(true);
618
633
 
@@ -630,33 +645,33 @@ expectTypesMatch(true);
630
645
 
631
646
  // lib/components/chip.ts
632
647
  import { distance as distance8, supplier_name as supplier_name2 } from "circuit-json";
633
- import { z as z29 } from "zod";
634
- var connectionTarget2 = z29.string().or(z29.array(z29.string()).readonly()).or(z29.array(z29.string()));
635
- var connectionsProp = z29.custom().pipe(z29.record(z29.string(), connectionTarget2));
636
- var pinLabelsProp = z29.record(
648
+ import { z as z30 } from "zod";
649
+ var connectionTarget2 = z30.string().or(z30.array(z30.string()).readonly()).or(z30.array(z30.string()));
650
+ var connectionsProp = z30.custom().pipe(z30.record(z30.string(), connectionTarget2));
651
+ var pinLabelsProp = z30.record(
637
652
  schematicPinLabel,
638
- schematicPinLabel.or(z29.array(schematicPinLabel).readonly()).or(z29.array(schematicPinLabel))
653
+ schematicPinLabel.or(z30.array(schematicPinLabel).readonly()).or(z30.array(schematicPinLabel))
639
654
  );
640
655
  expectTypesMatch(true);
641
- var pinCompatibleVariant = z29.object({
642
- manufacturerPartNumber: z29.string().optional(),
643
- supplierPartNumber: z29.record(supplier_name2, z29.array(z29.string())).optional()
656
+ var pinCompatibleVariant = z30.object({
657
+ manufacturerPartNumber: z30.string().optional(),
658
+ supplierPartNumber: z30.record(supplier_name2, z30.array(z30.string())).optional()
644
659
  });
645
660
  var chipProps = commonComponentProps.extend({
646
- manufacturerPartNumber: z29.string().optional(),
661
+ manufacturerPartNumber: z30.string().optional(),
647
662
  pinLabels: pinLabelsProp.optional(),
648
- showPinAliases: z29.boolean().optional(),
649
- pcbPinLabels: z29.record(z29.string(), z29.string()).optional(),
650
- internallyConnectedPins: z29.array(z29.array(z29.union([z29.string(), z29.number()]))).optional(),
651
- externallyConnectedPins: z29.array(z29.array(z29.string())).optional(),
663
+ showPinAliases: z30.boolean().optional(),
664
+ pcbPinLabels: z30.record(z30.string(), z30.string()).optional(),
665
+ internallyConnectedPins: z30.array(z30.array(z30.union([z30.string(), z30.number()]))).optional(),
666
+ externallyConnectedPins: z30.array(z30.array(z30.string())).optional(),
652
667
  schPinArrangement: schematicPortArrangement.optional(),
653
668
  schPortArrangement: schematicPortArrangement.optional(),
654
- pinCompatibleVariants: z29.array(pinCompatibleVariant).optional(),
669
+ pinCompatibleVariants: z30.array(pinCompatibleVariant).optional(),
655
670
  schPinStyle: schematicPinStyle.optional(),
656
671
  schPinSpacing: distance8.optional(),
657
672
  schWidth: distance8.optional(),
658
673
  schHeight: distance8.optional(),
659
- noSchematicRepresentation: z29.boolean().optional(),
674
+ noSchematicRepresentation: z30.boolean().optional(),
660
675
  connections: connectionsProp.optional()
661
676
  });
662
677
  var bugProps = chipProps;
@@ -668,93 +683,93 @@ expectTypesMatch(true);
668
683
 
669
684
  // lib/components/jumper.ts
670
685
  import { distance as distance9 } from "circuit-json";
671
- import { z as z30 } from "zod";
686
+ import { z as z31 } from "zod";
672
687
  var jumperProps = commonComponentProps.extend({
673
- manufacturerPartNumber: z30.string().optional(),
674
- pinLabels: z30.record(
675
- z30.number().or(schematicPinLabel),
676
- schematicPinLabel.or(z30.array(schematicPinLabel))
688
+ manufacturerPartNumber: z31.string().optional(),
689
+ pinLabels: z31.record(
690
+ z31.number().or(schematicPinLabel),
691
+ schematicPinLabel.or(z31.array(schematicPinLabel))
677
692
  ).optional(),
678
693
  schPinStyle: schematicPinStyle.optional(),
679
694
  schPinSpacing: distance9.optional(),
680
695
  schWidth: distance9.optional(),
681
696
  schHeight: distance9.optional(),
682
- schDirection: z30.enum(["left", "right"]).optional(),
697
+ schDirection: z31.enum(["left", "right"]).optional(),
683
698
  schPinArrangement: schematicPinArrangement.optional(),
684
699
  schPortArrangement: schematicPortArrangement.optional(),
685
- pcbPinLabels: z30.record(z30.string(), z30.string()).optional(),
686
- pinCount: z30.union([z30.literal(2), z30.literal(3)]).optional(),
687
- internallyConnectedPins: z30.array(z30.array(z30.union([z30.string(), z30.number()]))).optional(),
688
- connections: z30.custom().pipe(z30.record(z30.string(), connectionTarget)).optional()
700
+ pcbPinLabels: z31.record(z31.string(), z31.string()).optional(),
701
+ pinCount: z31.union([z31.literal(2), z31.literal(3)]).optional(),
702
+ internallyConnectedPins: z31.array(z31.array(z31.union([z31.string(), z31.number()]))).optional(),
703
+ connections: z31.custom().pipe(z31.record(z31.string(), connectionTarget)).optional()
689
704
  });
690
705
  expectTypesMatch(true);
691
706
 
692
707
  // lib/components/solderjumper.ts
693
- import { z as z31 } from "zod";
708
+ import { z as z32 } from "zod";
694
709
  var solderjumperProps = jumperProps.extend({
695
- bridgedPins: z31.array(z31.array(z31.string())).optional(),
696
- bridged: z31.boolean().optional()
710
+ bridgedPins: z32.array(z32.array(z32.string())).optional(),
711
+ bridged: z32.boolean().optional()
697
712
  });
698
713
  expectTypesMatch(true);
699
714
 
700
715
  // lib/components/connector.ts
701
716
  import { distance as distance10 } from "circuit-json";
702
- import { z as z32 } from "zod";
717
+ import { z as z33 } from "zod";
703
718
  var connectorProps = commonComponentProps.extend({
704
- manufacturerPartNumber: z32.string().optional(),
705
- pinLabels: z32.record(
706
- z32.number().or(schematicPinLabel),
707
- schematicPinLabel.or(z32.array(schematicPinLabel))
719
+ manufacturerPartNumber: z33.string().optional(),
720
+ pinLabels: z33.record(
721
+ z33.number().or(schematicPinLabel),
722
+ schematicPinLabel.or(z33.array(schematicPinLabel))
708
723
  ).optional(),
709
724
  schPinStyle: schematicPinStyle.optional(),
710
725
  schPinSpacing: distance10.optional(),
711
726
  schWidth: distance10.optional(),
712
727
  schHeight: distance10.optional(),
713
- schDirection: z32.enum(["left", "right"]).optional(),
728
+ schDirection: z33.enum(["left", "right"]).optional(),
714
729
  schPortArrangement: schematicPortArrangement.optional(),
715
- internallyConnectedPins: z32.array(z32.array(z32.union([z32.string(), z32.number()]))).optional(),
716
- standard: z32.enum(["usb_c", "m2"]).optional()
730
+ internallyConnectedPins: z33.array(z33.array(z33.union([z33.string(), z33.number()]))).optional(),
731
+ standard: z33.enum(["usb_c", "m2"]).optional()
717
732
  });
718
733
  expectTypesMatch(true);
719
734
 
720
735
  // lib/components/fuse.ts
721
- import { z as z33 } from "zod";
736
+ import { z as z34 } from "zod";
722
737
  var fusePinLabels = ["pin1", "pin2"];
723
738
  var fuseProps = commonComponentProps.extend({
724
- currentRating: z33.union([z33.number(), z33.string()]),
725
- voltageRating: z33.union([z33.number(), z33.string()]).optional(),
726
- schShowRatings: z33.boolean().optional(),
739
+ currentRating: z34.union([z34.number(), z34.string()]),
740
+ voltageRating: z34.union([z34.number(), z34.string()]).optional(),
741
+ schShowRatings: z34.boolean().optional(),
727
742
  schOrientation: schematicOrientation.optional(),
728
- connections: z33.record(
729
- z33.string(),
730
- z33.union([
731
- z33.string(),
732
- z33.array(z33.string()).readonly(),
733
- z33.array(z33.string())
743
+ connections: z34.record(
744
+ z34.string(),
745
+ z34.union([
746
+ z34.string(),
747
+ z34.array(z34.string()).readonly(),
748
+ z34.array(z34.string())
734
749
  ])
735
750
  ).optional()
736
751
  });
737
752
 
738
753
  // lib/components/platedhole.ts
739
754
  import { distance as distance11 } from "circuit-json";
740
- import { z as z34 } from "zod";
741
- var distanceHiddenUndefined = z34.custom().transform((a) => {
755
+ import { z as z35 } from "zod";
756
+ var distanceHiddenUndefined = z35.custom().transform((a) => {
742
757
  if (a === void 0) return void 0;
743
758
  return distance11.parse(a);
744
759
  });
745
- var platedHoleProps = z34.discriminatedUnion("shape", [
760
+ var platedHoleProps = z35.discriminatedUnion("shape", [
746
761
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
747
- name: z34.string().optional(),
748
- connectsTo: z34.string().or(z34.array(z34.string())).optional(),
749
- shape: z34.literal("circle"),
762
+ name: z35.string().optional(),
763
+ connectsTo: z35.string().or(z35.array(z35.string())).optional(),
764
+ shape: z35.literal("circle"),
750
765
  holeDiameter: distance11,
751
766
  outerDiameter: distance11,
752
767
  portHints: portHints.optional()
753
768
  }),
754
769
  pcbLayoutProps.omit({ layer: true }).extend({
755
- name: z34.string().optional(),
756
- connectsTo: z34.string().or(z34.array(z34.string())).optional(),
757
- shape: z34.literal("oval"),
770
+ name: z35.string().optional(),
771
+ connectsTo: z35.string().or(z35.array(z35.string())).optional(),
772
+ shape: z35.literal("oval"),
758
773
  outerWidth: distance11,
759
774
  outerHeight: distance11,
760
775
  holeWidth: distanceHiddenUndefined,
@@ -764,10 +779,10 @@ var platedHoleProps = z34.discriminatedUnion("shape", [
764
779
  portHints: portHints.optional()
765
780
  }),
766
781
  pcbLayoutProps.omit({ layer: true }).extend({
767
- name: z34.string().optional(),
768
- connectsTo: z34.string().or(z34.array(z34.string())).optional(),
769
- shape: z34.literal("pill"),
770
- rectPad: z34.boolean().optional(),
782
+ name: z35.string().optional(),
783
+ connectsTo: z35.string().or(z35.array(z35.string())).optional(),
784
+ shape: z35.literal("pill"),
785
+ rectPad: z35.boolean().optional(),
771
786
  outerWidth: distance11,
772
787
  outerHeight: distance11,
773
788
  holeWidth: distanceHiddenUndefined,
@@ -777,25 +792,25 @@ var platedHoleProps = z34.discriminatedUnion("shape", [
777
792
  portHints: portHints.optional()
778
793
  }),
779
794
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
780
- name: z34.string().optional(),
781
- connectsTo: z34.string().or(z34.array(z34.string())).optional(),
782
- shape: z34.literal("circular_hole_with_rect_pad"),
795
+ name: z35.string().optional(),
796
+ connectsTo: z35.string().or(z35.array(z35.string())).optional(),
797
+ shape: z35.literal("circular_hole_with_rect_pad"),
783
798
  holeDiameter: distance11,
784
799
  rectPadWidth: distance11,
785
800
  rectPadHeight: distance11,
786
801
  rectBorderRadius: distance11.optional(),
787
- holeShape: z34.literal("circle").optional(),
788
- padShape: z34.literal("rect").optional(),
802
+ holeShape: z35.literal("circle").optional(),
803
+ padShape: z35.literal("rect").optional(),
789
804
  portHints: portHints.optional(),
790
805
  holeOffsetX: distance11.optional(),
791
806
  holeOffsetY: distance11.optional()
792
807
  }),
793
808
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
794
- name: z34.string().optional(),
795
- connectsTo: z34.string().or(z34.array(z34.string())).optional(),
796
- shape: z34.literal("pill_hole_with_rect_pad"),
797
- holeShape: z34.literal("pill"),
798
- padShape: z34.literal("rect"),
809
+ name: z35.string().optional(),
810
+ connectsTo: z35.string().or(z35.array(z35.string())).optional(),
811
+ shape: z35.literal("pill_hole_with_rect_pad"),
812
+ holeShape: z35.literal("pill"),
813
+ padShape: z35.literal("rect"),
799
814
  holeWidth: distance11,
800
815
  holeHeight: distance11,
801
816
  rectPadWidth: distance11,
@@ -817,14 +832,14 @@ expectTypesMatch(true);
817
832
 
818
833
  // lib/components/resistor.ts
819
834
  import { resistance } from "circuit-json";
820
- import { z as z35 } from "zod";
835
+ import { z as z36 } from "zod";
821
836
  var resistorPinLabels = ["pin1", "pin2", "pos", "neg"];
822
837
  var resistorProps = commonComponentProps.extend({
823
838
  resistance,
824
- pullupFor: z35.string().optional(),
825
- pullupTo: z35.string().optional(),
826
- pulldownFor: z35.string().optional(),
827
- pulldownTo: z35.string().optional(),
839
+ pullupFor: z36.string().optional(),
840
+ pullupTo: z36.string().optional(),
841
+ pulldownFor: z36.string().optional(),
842
+ pulldownTo: z36.string().optional(),
828
843
  schOrientation: schematicOrientation.optional(),
829
844
  connections: createConnectionsProp(resistorPinLabels).optional()
830
845
  });
@@ -833,23 +848,23 @@ expectTypesMatch(true);
833
848
 
834
849
  // lib/components/potentiometer.ts
835
850
  import { resistance as resistance2 } from "circuit-json";
836
- import { z as z36 } from "zod";
851
+ import { z as z37 } from "zod";
837
852
  var potentiometerProps = commonComponentProps.extend({
838
853
  maxResistance: resistance2,
839
- pinVariant: z36.enum(["two_pin", "three_pin"]).optional()
854
+ pinVariant: z37.enum(["two_pin", "three_pin"]).optional()
840
855
  });
841
856
  expectTypesMatch(true);
842
857
 
843
858
  // lib/components/crystal.ts
844
859
  import { frequency, capacitance } from "circuit-json";
845
- import { z as z37 } from "zod";
860
+ import { z as z38 } from "zod";
846
861
  var crystalPins = lrPins;
847
862
  var crystalProps = commonComponentProps.extend({
848
863
  frequency,
849
864
  loadCapacitance: capacitance,
850
- manufacturerPartNumber: z37.string().optional(),
851
- mpn: z37.string().optional(),
852
- pinVariant: z37.enum(["two_pin", "four_pin"]).optional(),
865
+ manufacturerPartNumber: z38.string().optional(),
866
+ mpn: z38.string().optional(),
867
+ pinVariant: z38.enum(["two_pin", "four_pin"]).optional(),
853
868
  schOrientation: schematicOrientation.optional(),
854
869
  connections: createConnectionsProp(crystalPins).optional()
855
870
  });
@@ -857,34 +872,34 @@ expectTypesMatch(true);
857
872
 
858
873
  // lib/components/resonator.ts
859
874
  import { frequency as frequency2, capacitance as capacitance2 } from "circuit-json";
860
- import { z as z38 } from "zod";
875
+ import { z as z39 } from "zod";
861
876
  var resonatorProps = commonComponentProps.extend({
862
877
  frequency: frequency2,
863
878
  loadCapacitance: capacitance2,
864
- pinVariant: z38.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
879
+ pinVariant: z39.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
865
880
  });
866
881
  expectTypesMatch(true);
867
882
 
868
883
  // lib/components/stampboard.ts
869
884
  import { distance as distance12 } from "circuit-json";
870
- import { z as z39 } from "zod";
885
+ import { z as z40 } from "zod";
871
886
  var stampboardProps = boardProps.extend({
872
- leftPinCount: z39.number().optional(),
873
- rightPinCount: z39.number().optional(),
874
- topPinCount: z39.number().optional(),
875
- bottomPinCount: z39.number().optional(),
876
- leftPins: z39.array(z39.string()).optional(),
877
- rightPins: z39.array(z39.string()).optional(),
878
- topPins: z39.array(z39.string()).optional(),
879
- bottomPins: z39.array(z39.string()).optional(),
887
+ leftPinCount: z40.number().optional(),
888
+ rightPinCount: z40.number().optional(),
889
+ topPinCount: z40.number().optional(),
890
+ bottomPinCount: z40.number().optional(),
891
+ leftPins: z40.array(z40.string()).optional(),
892
+ rightPins: z40.array(z40.string()).optional(),
893
+ topPins: z40.array(z40.string()).optional(),
894
+ bottomPins: z40.array(z40.string()).optional(),
880
895
  pinPitch: distance12.optional(),
881
- innerHoles: z39.boolean().optional()
896
+ innerHoles: z40.boolean().optional()
882
897
  });
883
898
  expectTypesMatch(true);
884
899
 
885
900
  // lib/components/capacitor.ts
886
901
  import { capacitance as capacitance3, voltage } from "circuit-json";
887
- import { z as z40 } from "zod";
902
+ import { z as z41 } from "zod";
888
903
  var capacitorPinLabels = [
889
904
  "pin1",
890
905
  "pin2",
@@ -896,13 +911,13 @@ var capacitorPinLabels = [
896
911
  var capacitorProps = commonComponentProps.extend({
897
912
  capacitance: capacitance3,
898
913
  maxVoltageRating: voltage.optional(),
899
- schShowRatings: z40.boolean().optional().default(false),
900
- polarized: z40.boolean().optional().default(false),
901
- decouplingFor: z40.string().optional(),
902
- decouplingTo: z40.string().optional(),
903
- bypassFor: z40.string().optional(),
904
- bypassTo: z40.string().optional(),
905
- maxDecouplingTraceLength: z40.number().optional(),
914
+ schShowRatings: z41.boolean().optional().default(false),
915
+ polarized: z41.boolean().optional().default(false),
916
+ decouplingFor: z41.string().optional(),
917
+ decouplingTo: z41.string().optional(),
918
+ bypassFor: z41.string().optional(),
919
+ bypassTo: z41.string().optional(),
920
+ maxDecouplingTraceLength: z41.number().optional(),
906
921
  schOrientation: schematicOrientation.optional(),
907
922
  connections: createConnectionsProp(capacitorPinLabels).optional()
908
923
  });
@@ -910,63 +925,63 @@ var capacitorPins = lrPolarPins;
910
925
  expectTypesMatch(true);
911
926
 
912
927
  // lib/components/net.ts
913
- import { z as z41 } from "zod";
914
- var netProps = z41.object({
915
- name: z41.string(),
916
- connectsTo: z41.string().or(z41.array(z41.string())).optional()
928
+ import { z as z42 } from "zod";
929
+ var netProps = z42.object({
930
+ name: z42.string(),
931
+ connectsTo: z42.string().or(z42.array(z42.string())).optional()
917
932
  });
918
933
  expectTypesMatch(true);
919
934
 
920
935
  // lib/components/constrainedlayout.ts
921
- import { z as z42 } from "zod";
922
- var constrainedLayoutProps = z42.object({
923
- name: z42.string().optional(),
924
- pcbOnly: z42.boolean().optional(),
925
- schOnly: z42.boolean().optional()
936
+ import { z as z43 } from "zod";
937
+ var constrainedLayoutProps = z43.object({
938
+ name: z43.string().optional(),
939
+ pcbOnly: z43.boolean().optional(),
940
+ schOnly: z43.boolean().optional()
926
941
  });
927
942
  expectTypesMatch(true);
928
943
 
929
944
  // lib/components/constraint.ts
930
- import { z as z43 } from "zod";
931
- var pcbXDistConstraintProps = z43.object({
932
- pcb: z43.literal(true).optional(),
945
+ import { z as z44 } from "zod";
946
+ var pcbXDistConstraintProps = z44.object({
947
+ pcb: z44.literal(true).optional(),
933
948
  xDist: distance,
934
- left: z43.string(),
935
- right: z43.string(),
936
- edgeToEdge: z43.literal(true).optional(),
937
- centerToCenter: z43.literal(true).optional()
949
+ left: z44.string(),
950
+ right: z44.string(),
951
+ edgeToEdge: z44.literal(true).optional(),
952
+ centerToCenter: z44.literal(true).optional()
938
953
  });
939
954
  expectTypesMatch(
940
955
  true
941
956
  );
942
- var pcbYDistConstraintProps = z43.object({
943
- pcb: z43.literal(true).optional(),
957
+ var pcbYDistConstraintProps = z44.object({
958
+ pcb: z44.literal(true).optional(),
944
959
  yDist: distance,
945
- top: z43.string(),
946
- bottom: z43.string(),
947
- edgeToEdge: z43.literal(true).optional(),
948
- centerToCenter: z43.literal(true).optional()
960
+ top: z44.string(),
961
+ bottom: z44.string(),
962
+ edgeToEdge: z44.literal(true).optional(),
963
+ centerToCenter: z44.literal(true).optional()
949
964
  });
950
965
  expectTypesMatch(
951
966
  true
952
967
  );
953
- var pcbSameYConstraintProps = z43.object({
954
- pcb: z43.literal(true).optional(),
955
- sameY: z43.literal(true).optional(),
956
- for: z43.array(z43.string())
968
+ var pcbSameYConstraintProps = z44.object({
969
+ pcb: z44.literal(true).optional(),
970
+ sameY: z44.literal(true).optional(),
971
+ for: z44.array(z44.string())
957
972
  });
958
973
  expectTypesMatch(
959
974
  true
960
975
  );
961
- var pcbSameXConstraintProps = z43.object({
962
- pcb: z43.literal(true).optional(),
963
- sameX: z43.literal(true).optional(),
964
- for: z43.array(z43.string())
976
+ var pcbSameXConstraintProps = z44.object({
977
+ pcb: z44.literal(true).optional(),
978
+ sameX: z44.literal(true).optional(),
979
+ for: z44.array(z44.string())
965
980
  });
966
981
  expectTypesMatch(
967
982
  true
968
983
  );
969
- var constraintProps = z43.union([
984
+ var constraintProps = z44.union([
970
985
  pcbXDistConstraintProps,
971
986
  pcbYDistConstraintProps,
972
987
  pcbSameYConstraintProps,
@@ -975,13 +990,13 @@ var constraintProps = z43.union([
975
990
  expectTypesMatch(true);
976
991
 
977
992
  // lib/components/cutout.ts
978
- import { z as z44 } from "zod";
993
+ import { z as z45 } from "zod";
979
994
  var rectCutoutProps = pcbLayoutProps.omit({
980
995
  layer: true,
981
996
  pcbRotation: true
982
997
  }).extend({
983
- name: z44.string().optional(),
984
- shape: z44.literal("rect"),
998
+ name: z45.string().optional(),
999
+ shape: z45.literal("rect"),
985
1000
  width: distance,
986
1001
  height: distance
987
1002
  });
@@ -990,8 +1005,8 @@ var circleCutoutProps = pcbLayoutProps.omit({
990
1005
  layer: true,
991
1006
  pcbRotation: true
992
1007
  }).extend({
993
- name: z44.string().optional(),
994
- shape: z44.literal("circle"),
1008
+ name: z45.string().optional(),
1009
+ shape: z45.literal("circle"),
995
1010
  radius: distance
996
1011
  });
997
1012
  expectTypesMatch(true);
@@ -999,66 +1014,66 @@ var polygonCutoutProps = pcbLayoutProps.omit({
999
1014
  layer: true,
1000
1015
  pcbRotation: true
1001
1016
  }).extend({
1002
- name: z44.string().optional(),
1003
- shape: z44.literal("polygon"),
1004
- points: z44.array(point)
1017
+ name: z45.string().optional(),
1018
+ shape: z45.literal("polygon"),
1019
+ points: z45.array(point)
1005
1020
  });
1006
1021
  expectTypesMatch(true);
1007
- var cutoutProps = z44.discriminatedUnion("shape", [
1022
+ var cutoutProps = z45.discriminatedUnion("shape", [
1008
1023
  rectCutoutProps,
1009
1024
  circleCutoutProps,
1010
1025
  polygonCutoutProps
1011
1026
  ]);
1012
1027
 
1013
1028
  // lib/components/smtpad.ts
1014
- import { z as z45 } from "zod";
1029
+ import { z as z46 } from "zod";
1015
1030
  var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1016
- name: z45.string().optional(),
1017
- shape: z45.literal("rect"),
1031
+ name: z46.string().optional(),
1032
+ shape: z46.literal("rect"),
1018
1033
  width: distance,
1019
1034
  height: distance,
1020
1035
  rectBorderRadius: distance.optional(),
1021
1036
  portHints: portHints.optional(),
1022
- coveredWithSolderMask: z45.boolean().optional()
1037
+ coveredWithSolderMask: z46.boolean().optional()
1023
1038
  });
1024
1039
  expectTypesMatch(true);
1025
1040
  var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1026
- name: z45.string().optional(),
1027
- shape: z45.literal("rotated_rect"),
1041
+ name: z46.string().optional(),
1042
+ shape: z46.literal("rotated_rect"),
1028
1043
  width: distance,
1029
1044
  height: distance,
1030
- ccwRotation: z45.number(),
1045
+ ccwRotation: z46.number(),
1031
1046
  portHints: portHints.optional(),
1032
- coveredWithSolderMask: z45.boolean().optional()
1047
+ coveredWithSolderMask: z46.boolean().optional()
1033
1048
  });
1034
1049
  expectTypesMatch(true);
1035
1050
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1036
- name: z45.string().optional(),
1037
- shape: z45.literal("circle"),
1051
+ name: z46.string().optional(),
1052
+ shape: z46.literal("circle"),
1038
1053
  radius: distance,
1039
1054
  portHints: portHints.optional(),
1040
- coveredWithSolderMask: z45.boolean().optional()
1055
+ coveredWithSolderMask: z46.boolean().optional()
1041
1056
  });
1042
1057
  expectTypesMatch(true);
1043
1058
  var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1044
- name: z45.string().optional(),
1045
- shape: z45.literal("pill"),
1059
+ name: z46.string().optional(),
1060
+ shape: z46.literal("pill"),
1046
1061
  width: distance,
1047
1062
  height: distance,
1048
1063
  radius: distance,
1049
1064
  portHints: portHints.optional(),
1050
- coveredWithSolderMask: z45.boolean().optional()
1065
+ coveredWithSolderMask: z46.boolean().optional()
1051
1066
  });
1052
1067
  expectTypesMatch(true);
1053
1068
  var polygonSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1054
- name: z45.string().optional(),
1055
- shape: z45.literal("polygon"),
1056
- points: z45.array(point),
1069
+ name: z46.string().optional(),
1070
+ shape: z46.literal("polygon"),
1071
+ points: z46.array(point),
1057
1072
  portHints: portHints.optional(),
1058
- coveredWithSolderMask: z45.boolean().optional()
1073
+ coveredWithSolderMask: z46.boolean().optional()
1059
1074
  });
1060
1075
  expectTypesMatch(true);
1061
- var smtPadProps = z45.discriminatedUnion("shape", [
1076
+ var smtPadProps = z46.discriminatedUnion("shape", [
1062
1077
  circleSmtPadProps,
1063
1078
  rectSmtPadProps,
1064
1079
  rotatedRectSmtPadProps,
@@ -1068,29 +1083,29 @@ var smtPadProps = z45.discriminatedUnion("shape", [
1068
1083
  expectTypesMatch(true);
1069
1084
 
1070
1085
  // lib/components/solderpaste.ts
1071
- import { z as z46 } from "zod";
1086
+ import { z as z47 } from "zod";
1072
1087
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1073
- shape: z46.literal("rect"),
1088
+ shape: z47.literal("rect"),
1074
1089
  width: distance,
1075
1090
  height: distance
1076
1091
  });
1077
1092
  expectTypesMatch(true);
1078
1093
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1079
- shape: z46.literal("circle"),
1094
+ shape: z47.literal("circle"),
1080
1095
  radius: distance
1081
1096
  });
1082
1097
  expectTypesMatch(true);
1083
- var solderPasteProps = z46.union([
1098
+ var solderPasteProps = z47.union([
1084
1099
  circleSolderPasteProps,
1085
1100
  rectSolderPasteProps
1086
1101
  ]);
1087
1102
  expectTypesMatch(true);
1088
1103
 
1089
1104
  // lib/components/hole.ts
1090
- import { z as z47 } from "zod";
1105
+ import { z as z48 } from "zod";
1091
1106
  var circleHoleProps = pcbLayoutProps.extend({
1092
- name: z47.string().optional(),
1093
- shape: z47.literal("circle").optional(),
1107
+ name: z48.string().optional(),
1108
+ shape: z48.literal("circle").optional(),
1094
1109
  diameter: distance.optional(),
1095
1110
  radius: distance.optional()
1096
1111
  }).transform((d) => ({
@@ -1099,37 +1114,37 @@ var circleHoleProps = pcbLayoutProps.extend({
1099
1114
  radius: d.radius ?? d.diameter / 2
1100
1115
  }));
1101
1116
  var pillHoleProps = pcbLayoutProps.extend({
1102
- name: z47.string().optional(),
1103
- shape: z47.literal("pill"),
1117
+ name: z48.string().optional(),
1118
+ shape: z48.literal("pill"),
1104
1119
  width: distance,
1105
1120
  height: distance
1106
1121
  });
1107
- var holeProps = z47.union([circleHoleProps, pillHoleProps]);
1122
+ var holeProps = z48.union([circleHoleProps, pillHoleProps]);
1108
1123
  expectTypesMatch(true);
1109
1124
 
1110
1125
  // lib/components/trace.ts
1111
1126
  import { distance as distance13, route_hint_point as route_hint_point2 } from "circuit-json";
1112
- import { z as z48 } from "zod";
1113
- var portRef = z48.union([
1114
- z48.string(),
1115
- z48.custom(
1127
+ import { z as z49 } from "zod";
1128
+ var portRef = z49.union([
1129
+ z49.string(),
1130
+ z49.custom(
1116
1131
  (v) => Boolean(v.getPortSelector)
1117
1132
  )
1118
1133
  ]);
1119
- var baseTraceProps = z48.object({
1120
- key: z48.string().optional(),
1134
+ var baseTraceProps = z49.object({
1135
+ key: z49.string().optional(),
1121
1136
  thickness: distance13.optional(),
1122
- schematicRouteHints: z48.array(point).optional(),
1123
- pcbRouteHints: z48.array(route_hint_point2).optional(),
1124
- pcbPathRelativeTo: z48.string().optional(),
1125
- pcbPath: z48.array(point).optional(),
1126
- schDisplayLabel: z48.string().optional(),
1127
- schStroke: z48.string().optional(),
1137
+ schematicRouteHints: z49.array(point).optional(),
1138
+ pcbRouteHints: z49.array(route_hint_point2).optional(),
1139
+ pcbPathRelativeTo: z49.string().optional(),
1140
+ pcbPath: z49.array(point).optional(),
1141
+ schDisplayLabel: z49.string().optional(),
1142
+ schStroke: z49.string().optional(),
1128
1143
  maxLength: distance13.optional()
1129
1144
  });
1130
- var traceProps = z48.union([
1145
+ var traceProps = z49.union([
1131
1146
  baseTraceProps.extend({
1132
- path: z48.array(portRef)
1147
+ path: z49.array(portRef)
1133
1148
  }),
1134
1149
  baseTraceProps.extend({
1135
1150
  from: portRef,
@@ -1139,23 +1154,23 @@ var traceProps = z48.union([
1139
1154
 
1140
1155
  // lib/components/footprint.ts
1141
1156
  import { layer_ref as layer_ref4 } from "circuit-json";
1142
- import { z as z49 } from "zod";
1143
- var footprintProps = z49.object({
1157
+ import { z as z50 } from "zod";
1158
+ var footprintProps = z50.object({
1144
1159
  originalLayer: layer_ref4.default("top").optional()
1145
1160
  });
1146
1161
  expectTypesMatch(true);
1147
1162
 
1148
1163
  // lib/components/symbol.ts
1149
- import { z as z50 } from "zod";
1150
- var symbolProps = z50.object({
1151
- originalFacingDirection: z50.enum(["up", "down", "left", "right"]).default("right").optional()
1164
+ import { z as z51 } from "zod";
1165
+ var symbolProps = z51.object({
1166
+ originalFacingDirection: z51.enum(["up", "down", "left", "right"]).default("right").optional()
1152
1167
  });
1153
1168
  expectTypesMatch(true);
1154
1169
 
1155
1170
  // lib/components/battery.ts
1156
1171
  import { voltage as voltage2 } from "circuit-json";
1157
- import { z as z51 } from "zod";
1158
- var capacity = z51.number().or(z51.string().endsWith("mAh")).transform((v) => {
1172
+ import { z as z52 } from "zod";
1173
+ var capacity = z52.number().or(z52.string().endsWith("mAh")).transform((v) => {
1159
1174
  if (typeof v === "string") {
1160
1175
  const valString = v.replace("mAh", "");
1161
1176
  const num = Number.parseFloat(valString);
@@ -1169,7 +1184,7 @@ var capacity = z51.number().or(z51.string().endsWith("mAh")).transform((v) => {
1169
1184
  var batteryProps = commonComponentProps.extend({
1170
1185
  capacity: capacity.optional(),
1171
1186
  voltage: voltage2.optional(),
1172
- standard: z51.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
1187
+ standard: z52.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
1173
1188
  schOrientation: schematicOrientation.optional()
1174
1189
  });
1175
1190
  var batteryPins = lrPolarPins;
@@ -1179,29 +1194,29 @@ expectTypesMatch(true);
1179
1194
  import { distance as distance14 } from "circuit-json";
1180
1195
 
1181
1196
  // lib/common/pcbOrientation.ts
1182
- import { z as z52 } from "zod";
1183
- var pcbOrientation = z52.enum(["vertical", "horizontal"]).describe(
1197
+ import { z as z53 } from "zod";
1198
+ var pcbOrientation = z53.enum(["vertical", "horizontal"]).describe(
1184
1199
  "vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward"
1185
1200
  );
1186
1201
  expectTypesMatch(true);
1187
1202
 
1188
1203
  // lib/components/pin-header.ts
1189
- import { z as z53 } from "zod";
1204
+ import { z as z54 } from "zod";
1190
1205
  var pinHeaderProps = commonComponentProps.extend({
1191
- pinCount: z53.number(),
1206
+ pinCount: z54.number(),
1192
1207
  pitch: distance14.optional(),
1193
- schFacingDirection: z53.enum(["up", "down", "left", "right"]).optional(),
1194
- gender: z53.enum(["male", "female", "unpopulated"]).optional().default("male"),
1195
- showSilkscreenPinLabels: z53.boolean().optional(),
1196
- pcbPinLabels: z53.record(z53.string(), z53.string()).optional(),
1197
- doubleRow: z53.boolean().optional(),
1198
- rightAngle: z53.boolean().optional(),
1208
+ schFacingDirection: z54.enum(["up", "down", "left", "right"]).optional(),
1209
+ gender: z54.enum(["male", "female", "unpopulated"]).optional().default("male"),
1210
+ showSilkscreenPinLabels: z54.boolean().optional(),
1211
+ pcbPinLabels: z54.record(z54.string(), z54.string()).optional(),
1212
+ doubleRow: z54.boolean().optional(),
1213
+ rightAngle: z54.boolean().optional(),
1199
1214
  pcbOrientation: pcbOrientation.optional(),
1200
1215
  holeDiameter: distance14.optional(),
1201
1216
  platedDiameter: distance14.optional(),
1202
- pinLabels: z53.record(z53.string(), schematicPinLabel).or(z53.array(schematicPinLabel)).optional(),
1203
- connections: z53.custom().pipe(z53.record(z53.string(), connectionTarget)).optional(),
1204
- facingDirection: z53.enum(["left", "right"]).optional(),
1217
+ pinLabels: z54.record(z54.string(), schematicPinLabel).or(z54.array(schematicPinLabel)).optional(),
1218
+ connections: z54.custom().pipe(z54.record(z54.string(), connectionTarget)).optional(),
1219
+ facingDirection: z54.enum(["left", "right"]).optional(),
1205
1220
  schPinArrangement: schematicPinArrangement.optional(),
1206
1221
  schPinStyle: schematicPinStyle.optional(),
1207
1222
  schPinSpacing: distance14.optional(),
@@ -1211,29 +1226,29 @@ var pinHeaderProps = commonComponentProps.extend({
1211
1226
  expectTypesMatch(true);
1212
1227
 
1213
1228
  // lib/components/netalias.ts
1214
- import { z as z54 } from "zod";
1229
+ import { z as z55 } from "zod";
1215
1230
  import { rotation as rotation2 } from "circuit-json";
1216
- var netAliasProps = z54.object({
1217
- net: z54.string().optional(),
1218
- connection: z54.string().optional(),
1231
+ var netAliasProps = z55.object({
1232
+ net: z55.string().optional(),
1233
+ connection: z55.string().optional(),
1219
1234
  schX: distance.optional(),
1220
1235
  schY: distance.optional(),
1221
1236
  schRotation: rotation2.optional(),
1222
- anchorSide: z54.enum(["left", "top", "right", "bottom"]).optional()
1237
+ anchorSide: z55.enum(["left", "top", "right", "bottom"]).optional()
1223
1238
  });
1224
1239
  expectTypesMatch(true);
1225
1240
 
1226
1241
  // lib/components/netlabel.ts
1227
- import { z as z55 } from "zod";
1242
+ import { z as z56 } from "zod";
1228
1243
  import { rotation as rotation3 } from "circuit-json";
1229
- var netLabelProps = z55.object({
1230
- net: z55.string().optional(),
1231
- connection: z55.string().optional(),
1232
- connectsTo: z55.string().or(z55.array(z55.string())).optional(),
1244
+ var netLabelProps = z56.object({
1245
+ net: z56.string().optional(),
1246
+ connection: z56.string().optional(),
1247
+ connectsTo: z56.string().or(z56.array(z56.string())).optional(),
1233
1248
  schX: distance.optional(),
1234
1249
  schY: distance.optional(),
1235
1250
  schRotation: rotation3.optional(),
1236
- anchorSide: z55.enum(["left", "top", "right", "bottom"]).optional()
1251
+ anchorSide: z56.enum(["left", "top", "right", "bottom"]).optional()
1237
1252
  });
1238
1253
  expectTypesMatch(true);
1239
1254
 
@@ -1247,7 +1262,7 @@ var subcircuitProps = subcircuitGroupProps;
1247
1262
  expectTypesMatch(true);
1248
1263
 
1249
1264
  // lib/components/transistor.ts
1250
- import { z as z57 } from "zod";
1265
+ import { z as z58 } from "zod";
1251
1266
  var transistorPinsLabels = [
1252
1267
  "pin1",
1253
1268
  "pin2",
@@ -1260,7 +1275,7 @@ var transistorPinsLabels = [
1260
1275
  "drain"
1261
1276
  ];
1262
1277
  var transistorProps = commonComponentProps.extend({
1263
- type: z57.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
1278
+ type: z58.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
1264
1279
  connections: createConnectionsProp(transistorPinsLabels).optional()
1265
1280
  });
1266
1281
  var transistorPins = [
@@ -1274,10 +1289,10 @@ var transistorPins = [
1274
1289
  expectTypesMatch(true);
1275
1290
 
1276
1291
  // lib/components/mosfet.ts
1277
- import { z as z58 } from "zod";
1292
+ import { z as z59 } from "zod";
1278
1293
  var mosfetProps = commonComponentProps.extend({
1279
- channelType: z58.enum(["n", "p"]),
1280
- mosfetMode: z58.enum(["enhancement", "depletion"])
1294
+ channelType: z59.enum(["n", "p"]),
1295
+ mosfetMode: z59.enum(["enhancement", "depletion"])
1281
1296
  });
1282
1297
  var mosfetPins = [
1283
1298
  "pin1",
@@ -1291,19 +1306,19 @@ expectTypesMatch(true);
1291
1306
 
1292
1307
  // lib/components/inductor.ts
1293
1308
  import { inductance } from "circuit-json";
1294
- import { z as z59 } from "zod";
1309
+ import { z as z60 } from "zod";
1295
1310
  var inductorPins = lrPins;
1296
1311
  var inductorProps = commonComponentProps.extend({
1297
1312
  inductance,
1298
- maxCurrentRating: z59.union([z59.string(), z59.number()]).optional(),
1313
+ maxCurrentRating: z60.union([z60.string(), z60.number()]).optional(),
1299
1314
  schOrientation: schematicOrientation.optional(),
1300
1315
  connections: createConnectionsProp(inductorPins).optional()
1301
1316
  });
1302
1317
  expectTypesMatch(true);
1303
1318
 
1304
1319
  // lib/components/diode.ts
1305
- import { z as z60 } from "zod";
1306
- var diodeConnectionKeys = z60.enum([
1320
+ import { z as z61 } from "zod";
1321
+ var diodeConnectionKeys = z61.enum([
1307
1322
  "anode",
1308
1323
  "cathode",
1309
1324
  "pin1",
@@ -1311,9 +1326,9 @@ var diodeConnectionKeys = z60.enum([
1311
1326
  "pos",
1312
1327
  "neg"
1313
1328
  ]);
1314
- var connectionTarget3 = z60.string().or(z60.array(z60.string()).readonly()).or(z60.array(z60.string()));
1315
- var connectionsProp2 = z60.record(diodeConnectionKeys, connectionTarget3);
1316
- var diodeVariant = z60.enum([
1329
+ var connectionTarget3 = z61.string().or(z61.array(z61.string()).readonly()).or(z61.array(z61.string()));
1330
+ var connectionsProp2 = z61.record(diodeConnectionKeys, connectionTarget3);
1331
+ var diodeVariant = z61.enum([
1317
1332
  "standard",
1318
1333
  "schottky",
1319
1334
  "zener",
@@ -1324,12 +1339,12 @@ var diodeVariant = z60.enum([
1324
1339
  var diodeProps = commonComponentProps.extend({
1325
1340
  connections: connectionsProp2.optional(),
1326
1341
  variant: diodeVariant.optional().default("standard"),
1327
- standard: z60.boolean().optional(),
1328
- schottky: z60.boolean().optional(),
1329
- zener: z60.boolean().optional(),
1330
- avalanche: z60.boolean().optional(),
1331
- photo: z60.boolean().optional(),
1332
- tvs: z60.boolean().optional(),
1342
+ standard: z61.boolean().optional(),
1343
+ schottky: z61.boolean().optional(),
1344
+ zener: z61.boolean().optional(),
1345
+ avalanche: z61.boolean().optional(),
1346
+ photo: z61.boolean().optional(),
1347
+ tvs: z61.boolean().optional(),
1333
1348
  schOrientation: schematicOrientation.optional()
1334
1349
  }).superRefine((data, ctx) => {
1335
1350
  const enabledFlags = [
@@ -1342,11 +1357,11 @@ var diodeProps = commonComponentProps.extend({
1342
1357
  ].filter(Boolean).length;
1343
1358
  if (enabledFlags > 1) {
1344
1359
  ctx.addIssue({
1345
- code: z60.ZodIssueCode.custom,
1360
+ code: z61.ZodIssueCode.custom,
1346
1361
  message: "Exactly one diode variant must be enabled",
1347
1362
  path: []
1348
1363
  });
1349
- return z60.INVALID;
1364
+ return z61.INVALID;
1350
1365
  }
1351
1366
  }).transform((data) => {
1352
1367
  const result = {
@@ -1393,26 +1408,26 @@ var diodePins = lrPolarPins;
1393
1408
  expectTypesMatch(true);
1394
1409
 
1395
1410
  // lib/components/led.ts
1396
- import { z as z61 } from "zod";
1411
+ import { z as z62 } from "zod";
1397
1412
  var ledProps = commonComponentProps.extend({
1398
- color: z61.string().optional(),
1399
- wavelength: z61.string().optional(),
1400
- schDisplayValue: z61.string().optional(),
1413
+ color: z62.string().optional(),
1414
+ wavelength: z62.string().optional(),
1415
+ schDisplayValue: z62.string().optional(),
1401
1416
  schOrientation: schematicOrientation.optional(),
1402
1417
  connections: createConnectionsProp(lrPolarPins).optional(),
1403
- laser: z61.boolean().optional()
1418
+ laser: z62.boolean().optional()
1404
1419
  });
1405
1420
  var ledPins = lrPolarPins;
1406
1421
 
1407
1422
  // lib/components/switch.ts
1408
- import { z as z62 } from "zod";
1423
+ import { z as z63 } from "zod";
1409
1424
  var switchProps = commonComponentProps.extend({
1410
- type: z62.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1411
- isNormallyClosed: z62.boolean().optional().default(false),
1412
- spst: z62.boolean().optional(),
1413
- spdt: z62.boolean().optional(),
1414
- dpst: z62.boolean().optional(),
1415
- dpdt: z62.boolean().optional()
1425
+ type: z63.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1426
+ isNormallyClosed: z63.boolean().optional().default(false),
1427
+ spst: z63.boolean().optional(),
1428
+ spdt: z63.boolean().optional(),
1429
+ dpst: z63.boolean().optional(),
1430
+ dpdt: z63.boolean().optional()
1416
1431
  }).transform((props) => {
1417
1432
  const updatedProps = { ...props };
1418
1433
  if (updatedProps.dpdt) {
@@ -1444,52 +1459,52 @@ expectTypesMatch(true);
1444
1459
 
1445
1460
  // lib/components/fabrication-note-text.ts
1446
1461
  import { length as length3 } from "circuit-json";
1447
- import { z as z63 } from "zod";
1462
+ import { z as z64 } from "zod";
1448
1463
  var fabricationNoteTextProps = pcbLayoutProps.extend({
1449
- text: z63.string(),
1450
- anchorAlignment: z63.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1451
- font: z63.enum(["tscircuit2024"]).optional(),
1464
+ text: z64.string(),
1465
+ anchorAlignment: z64.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1466
+ font: z64.enum(["tscircuit2024"]).optional(),
1452
1467
  fontSize: length3.optional(),
1453
- color: z63.string().optional()
1468
+ color: z64.string().optional()
1454
1469
  });
1455
1470
 
1456
1471
  // lib/components/fabrication-note-path.ts
1457
1472
  import { length as length4, route_hint_point as route_hint_point3 } from "circuit-json";
1458
- import { z as z64 } from "zod";
1473
+ import { z as z65 } from "zod";
1459
1474
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1460
- route: z64.array(route_hint_point3),
1475
+ route: z65.array(route_hint_point3),
1461
1476
  strokeWidth: length4.optional(),
1462
- color: z64.string().optional()
1477
+ color: z65.string().optional()
1463
1478
  });
1464
1479
 
1465
1480
  // lib/components/pcb-trace.ts
1466
1481
  import { distance as distance15, route_hint_point as route_hint_point4 } from "circuit-json";
1467
- import { z as z65 } from "zod";
1468
- var pcbTraceProps = z65.object({
1469
- layer: z65.string().optional(),
1482
+ import { z as z66 } from "zod";
1483
+ var pcbTraceProps = z66.object({
1484
+ layer: z66.string().optional(),
1470
1485
  thickness: distance15.optional(),
1471
- route: z65.array(route_hint_point4)
1486
+ route: z66.array(route_hint_point4)
1472
1487
  });
1473
1488
 
1474
1489
  // lib/components/via.ts
1475
1490
  import { distance as distance16, layer_ref as layer_ref5 } from "circuit-json";
1476
- import { z as z66 } from "zod";
1491
+ import { z as z67 } from "zod";
1477
1492
  var viaProps = commonLayoutProps.extend({
1478
- name: z66.string().optional(),
1493
+ name: z67.string().optional(),
1479
1494
  fromLayer: layer_ref5,
1480
1495
  toLayer: layer_ref5,
1481
1496
  holeDiameter: distance16,
1482
1497
  outerDiameter: distance16,
1483
- connectsTo: z66.string().or(z66.array(z66.string())).optional()
1498
+ connectsTo: z67.string().or(z67.array(z67.string())).optional()
1484
1499
  });
1485
1500
  expectTypesMatch(true);
1486
1501
 
1487
1502
  // lib/components/testpoint.ts
1488
1503
  import { distance as distance17 } from "circuit-json";
1489
- import { z as z67 } from "zod";
1504
+ import { z as z68 } from "zod";
1490
1505
  var testpointProps = commonComponentProps.extend({
1491
- footprintVariant: z67.enum(["pad", "through_hole"]).optional(),
1492
- padShape: z67.enum(["rect", "circle"]).optional().default("circle"),
1506
+ footprintVariant: z68.enum(["pad", "through_hole"]).optional(),
1507
+ padShape: z68.enum(["rect", "circle"]).optional().default("circle"),
1493
1508
  padDiameter: distance17.optional(),
1494
1509
  holeDiameter: distance17.optional(),
1495
1510
  width: distance17.optional(),
@@ -1501,34 +1516,34 @@ var testpointProps = commonComponentProps.extend({
1501
1516
  expectTypesMatch(true);
1502
1517
 
1503
1518
  // lib/components/breakoutpoint.ts
1504
- import { z as z68 } from "zod";
1519
+ import { z as z69 } from "zod";
1505
1520
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
1506
- connection: z68.string()
1521
+ connection: z69.string()
1507
1522
  });
1508
1523
  expectTypesMatch(true);
1509
1524
 
1510
1525
  // lib/components/pcb-keepout.ts
1511
1526
  import { distance as distance18 } from "circuit-json";
1512
- import { z as z69 } from "zod";
1513
- var pcbKeepoutProps = z69.union([
1527
+ import { z as z70 } from "zod";
1528
+ var pcbKeepoutProps = z70.union([
1514
1529
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
1515
- shape: z69.literal("circle"),
1530
+ shape: z70.literal("circle"),
1516
1531
  radius: distance18
1517
1532
  }),
1518
1533
  pcbLayoutProps.extend({
1519
- shape: z69.literal("rect"),
1534
+ shape: z70.literal("rect"),
1520
1535
  width: distance18,
1521
1536
  height: distance18
1522
1537
  })
1523
1538
  ]);
1524
1539
 
1525
1540
  // lib/components/copper-pour.ts
1526
- import { z as z70 } from "zod";
1541
+ import { z as z71 } from "zod";
1527
1542
  import { layer_ref as layer_ref6 } from "circuit-json";
1528
- var copperPourProps = z70.object({
1529
- name: z70.string().optional(),
1543
+ var copperPourProps = z71.object({
1544
+ name: z71.string().optional(),
1530
1545
  layer: layer_ref6,
1531
- connectsTo: z70.string(),
1546
+ connectsTo: z71.string(),
1532
1547
  padMargin: distance.optional(),
1533
1548
  traceMargin: distance.optional()
1534
1549
  });
@@ -1536,26 +1551,26 @@ expectTypesMatch(true);
1536
1551
 
1537
1552
  // lib/components/cadassembly.ts
1538
1553
  import { layer_ref as layer_ref7 } from "circuit-json";
1539
- import { z as z71 } from "zod";
1540
- var cadassemblyProps = z71.object({
1554
+ import { z as z72 } from "zod";
1555
+ var cadassemblyProps = z72.object({
1541
1556
  originalLayer: layer_ref7.default("top").optional(),
1542
- children: z71.any().optional()
1557
+ children: z72.any().optional()
1543
1558
  });
1544
1559
  expectTypesMatch(true);
1545
1560
 
1546
1561
  // lib/components/cadmodel.ts
1547
- import { z as z72 } from "zod";
1548
- var pcbPosition = z72.object({
1562
+ import { z as z73 } from "zod";
1563
+ var pcbPosition = z73.object({
1549
1564
  pcbX: distance.optional(),
1550
1565
  pcbY: distance.optional(),
1551
1566
  pcbZ: distance.optional()
1552
1567
  });
1553
1568
  var cadModelBaseWithUrl = cadModelBase.extend({
1554
- modelUrl: z72.string()
1569
+ modelUrl: z73.string()
1555
1570
  });
1556
1571
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
1557
1572
  expectTypesMatch(true);
1558
- var cadmodelProps = z72.union([z72.null(), z72.string(), cadModelObject]);
1573
+ var cadmodelProps = z73.union([z73.null(), z73.string(), cadModelObject]);
1559
1574
 
1560
1575
  // lib/components/power-source.ts
1561
1576
  import { voltage as voltage3 } from "circuit-json";
@@ -1565,9 +1580,9 @@ var powerSourceProps = commonComponentProps.extend({
1565
1580
 
1566
1581
  // lib/components/voltagesource.ts
1567
1582
  import { frequency as frequency3, rotation as rotation4, voltage as voltage4 } from "circuit-json";
1568
- import { z as z73 } from "zod";
1583
+ import { z as z74 } from "zod";
1569
1584
  var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
1570
- var percentage = z73.union([z73.string(), z73.number()]).transform((val) => {
1585
+ var percentage = z74.union([z74.string(), z74.number()]).transform((val) => {
1571
1586
  if (typeof val === "string") {
1572
1587
  if (val.endsWith("%")) {
1573
1588
  return parseFloat(val.slice(0, -1)) / 100;
@@ -1576,13 +1591,13 @@ var percentage = z73.union([z73.string(), z73.number()]).transform((val) => {
1576
1591
  }
1577
1592
  return val;
1578
1593
  }).pipe(
1579
- z73.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
1594
+ z74.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
1580
1595
  );
1581
1596
  var voltageSourceProps = commonComponentProps.extend({
1582
1597
  voltage: voltage4.optional(),
1583
1598
  frequency: frequency3.optional(),
1584
1599
  peakToPeakVoltage: voltage4.optional(),
1585
- waveShape: z73.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
1600
+ waveShape: z74.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
1586
1601
  phase: rotation4.optional(),
1587
1602
  dutyCycle: percentage.optional(),
1588
1603
  connections: createConnectionsProp(voltageSourcePinLabels).optional()
@@ -1590,42 +1605,40 @@ var voltageSourceProps = commonComponentProps.extend({
1590
1605
  var voltageSourcePins = lrPolarPins;
1591
1606
  expectTypesMatch(true);
1592
1607
 
1593
- // lib/components/schematic-box.ts
1594
- import { distance as distance19 } from "circuit-json";
1608
+ // lib/components/schematic-arc.ts
1609
+ import { distance as distance19, point as point5, rotation as rotation5 } from "circuit-json";
1595
1610
  import { z as z75 } from "zod";
1596
-
1597
- // lib/common/ninePointAnchor.ts
1598
- import { z as z74 } from "zod";
1599
- var ninePointAnchor = z74.enum([
1600
- "top_left",
1601
- "top_center",
1602
- "top_right",
1603
- "center_left",
1604
- "center",
1605
- "center_right",
1606
- "bottom_left",
1607
- "bottom_center",
1608
- "bottom_right"
1609
- ]);
1611
+ var schematicArcProps = z75.object({
1612
+ center: point5,
1613
+ radius: distance19,
1614
+ startAngleDegrees: rotation5,
1615
+ endAngleDegrees: rotation5,
1616
+ direction: z75.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
1617
+ strokeWidth: distance19.optional(),
1618
+ color: z75.string().optional().default("#000000"),
1619
+ isDashed: z75.boolean().optional().default(false)
1620
+ });
1610
1621
 
1611
1622
  // lib/components/schematic-box.ts
1612
- var schematicBoxProps = z75.object({
1613
- schX: distance19.optional(),
1614
- schY: distance19.optional(),
1615
- width: distance19.optional(),
1616
- height: distance19.optional(),
1617
- overlay: z75.array(z75.string()).optional(),
1618
- padding: distance19.optional(),
1619
- paddingLeft: distance19.optional(),
1620
- paddingRight: distance19.optional(),
1621
- paddingTop: distance19.optional(),
1622
- paddingBottom: distance19.optional(),
1623
- title: z75.string().optional(),
1623
+ import { distance as distance20 } from "circuit-json";
1624
+ import { z as z76 } from "zod";
1625
+ var schematicBoxProps = z76.object({
1626
+ schX: distance20.optional(),
1627
+ schY: distance20.optional(),
1628
+ width: distance20.optional(),
1629
+ height: distance20.optional(),
1630
+ overlay: z76.array(z76.string()).optional(),
1631
+ padding: distance20.optional(),
1632
+ paddingLeft: distance20.optional(),
1633
+ paddingRight: distance20.optional(),
1634
+ paddingTop: distance20.optional(),
1635
+ paddingBottom: distance20.optional(),
1636
+ title: z76.string().optional(),
1624
1637
  titleAlignment: ninePointAnchor.default("top_left"),
1625
- titleColor: z75.string().optional(),
1626
- titleFontSize: distance19.optional(),
1627
- titleInside: z75.boolean().default(false),
1628
- strokeStyle: z75.enum(["solid", "dashed"]).default("solid")
1638
+ titleColor: z76.string().optional(),
1639
+ titleFontSize: distance20.optional(),
1640
+ titleInside: z76.boolean().default(false),
1641
+ strokeStyle: z76.enum(["solid", "dashed"]).default("solid")
1629
1642
  }).refine(
1630
1643
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
1631
1644
  {
@@ -1638,23 +1651,54 @@ var schematicBoxProps = z75.object({
1638
1651
  }
1639
1652
  );
1640
1653
 
1654
+ // lib/components/schematic-circle.ts
1655
+ import { distance as distance21, point as point6 } from "circuit-json";
1656
+ import { z as z77 } from "zod";
1657
+ var schematicCircleProps = z77.object({
1658
+ center: point6,
1659
+ radius: distance21,
1660
+ strokeWidth: distance21.optional(),
1661
+ color: z77.string().optional().default("#000000"),
1662
+ isFilled: z77.boolean().optional().default(false),
1663
+ fillColor: z77.string().optional(),
1664
+ isDashed: z77.boolean().optional().default(false)
1665
+ });
1666
+
1667
+ // lib/components/schematic-rect.ts
1668
+ import { distance as distance22, point as point7, rotation as rotation6 } from "circuit-json";
1669
+ import { z as z78 } from "zod";
1670
+ var schematicRectProps = z78.object({
1671
+ center: point7,
1672
+ width: distance22,
1673
+ height: distance22,
1674
+ rotation: rotation6.default(0),
1675
+ strokeWidth: distance22.optional(),
1676
+ color: z78.string().optional().default("#000000"),
1677
+ isFilled: z78.boolean().optional().default(false),
1678
+ fillColor: z78.string().optional(),
1679
+ isDashed: z78.boolean().optional().default(false)
1680
+ });
1681
+
1641
1682
  // lib/components/schematic-line.ts
1642
- import { distance as distance20 } from "circuit-json";
1643
- import { z as z76 } from "zod";
1644
- var schematicLineProps = z76.object({
1645
- x1: distance20,
1646
- y1: distance20,
1647
- x2: distance20,
1648
- y2: distance20
1683
+ import { distance as distance23 } from "circuit-json";
1684
+ import { z as z79 } from "zod";
1685
+ var schematicLineProps = z79.object({
1686
+ x1: distance23,
1687
+ y1: distance23,
1688
+ x2: distance23,
1689
+ y2: distance23,
1690
+ strokeWidth: distance23.optional(),
1691
+ color: z79.string().optional().default("#000000"),
1692
+ isDashed: z79.boolean().optional().default(false)
1649
1693
  });
1650
1694
 
1651
1695
  // lib/components/schematic-text.ts
1652
- import { distance as distance21, rotation as rotation5 } from "circuit-json";
1653
- import { z as z78 } from "zod";
1696
+ import { distance as distance24, rotation as rotation7 } from "circuit-json";
1697
+ import { z as z81 } from "zod";
1654
1698
 
1655
1699
  // lib/common/fivePointAnchor.ts
1656
- import { z as z77 } from "zod";
1657
- var fivePointAnchor = z77.enum([
1700
+ import { z as z80 } from "zod";
1701
+ var fivePointAnchor = z80.enum([
1658
1702
  "center",
1659
1703
  "left",
1660
1704
  "right",
@@ -1663,188 +1707,188 @@ var fivePointAnchor = z77.enum([
1663
1707
  ]);
1664
1708
 
1665
1709
  // lib/components/schematic-text.ts
1666
- var schematicTextProps = z78.object({
1667
- schX: distance21.optional(),
1668
- schY: distance21.optional(),
1669
- text: z78.string(),
1670
- fontSize: z78.number().default(1),
1671
- anchor: z78.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
1672
- color: z78.string().default("#000000"),
1673
- schRotation: rotation5.default(0)
1710
+ var schematicTextProps = z81.object({
1711
+ schX: distance24.optional(),
1712
+ schY: distance24.optional(),
1713
+ text: z81.string(),
1714
+ fontSize: z81.number().default(1),
1715
+ anchor: z81.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
1716
+ color: z81.string().default("#000000"),
1717
+ schRotation: rotation7.default(0)
1674
1718
  });
1675
1719
 
1676
1720
  // lib/components/schematic-path.ts
1677
- import { point as point5 } from "circuit-json";
1678
- import { z as z79 } from "zod";
1679
- var schematicPathProps = z79.object({
1680
- points: z79.array(point5),
1681
- isFilled: z79.boolean().optional().default(false),
1682
- fillColor: z79.enum(["red", "blue"]).optional()
1721
+ import { point as point8 } from "circuit-json";
1722
+ import { z as z82 } from "zod";
1723
+ var schematicPathProps = z82.object({
1724
+ points: z82.array(point8),
1725
+ isFilled: z82.boolean().optional().default(false),
1726
+ fillColor: z82.enum(["red", "blue"]).optional()
1683
1727
  });
1684
1728
 
1685
1729
  // lib/components/schematic-table.ts
1686
- import { distance as distance22 } from "circuit-json";
1687
- import { z as z80 } from "zod";
1688
- var schematicTableProps = z80.object({
1689
- schX: distance22.optional(),
1690
- schY: distance22.optional(),
1691
- children: z80.any().optional(),
1692
- cellPadding: distance22.optional(),
1693
- borderWidth: distance22.optional(),
1730
+ import { distance as distance25 } from "circuit-json";
1731
+ import { z as z83 } from "zod";
1732
+ var schematicTableProps = z83.object({
1733
+ schX: distance25.optional(),
1734
+ schY: distance25.optional(),
1735
+ children: z83.any().optional(),
1736
+ cellPadding: distance25.optional(),
1737
+ borderWidth: distance25.optional(),
1694
1738
  anchor: ninePointAnchor.optional(),
1695
- fontSize: distance22.optional()
1739
+ fontSize: distance25.optional()
1696
1740
  });
1697
1741
  expectTypesMatch(true);
1698
1742
 
1699
1743
  // lib/components/schematic-row.ts
1700
- import { distance as distance23 } from "circuit-json";
1701
- import { z as z81 } from "zod";
1702
- var schematicRowProps = z81.object({
1703
- children: z81.any().optional(),
1704
- height: distance23.optional()
1744
+ import { distance as distance26 } from "circuit-json";
1745
+ import { z as z84 } from "zod";
1746
+ var schematicRowProps = z84.object({
1747
+ children: z84.any().optional(),
1748
+ height: distance26.optional()
1705
1749
  });
1706
1750
  expectTypesMatch(true);
1707
1751
 
1708
1752
  // lib/components/schematic-cell.ts
1709
- import { distance as distance24 } from "circuit-json";
1710
- import { z as z82 } from "zod";
1711
- var schematicCellProps = z82.object({
1712
- children: z82.string().optional(),
1713
- horizontalAlign: z82.enum(["left", "center", "right"]).optional(),
1714
- verticalAlign: z82.enum(["top", "middle", "bottom"]).optional(),
1715
- fontSize: distance24.optional(),
1716
- rowSpan: z82.number().optional(),
1717
- colSpan: z82.number().optional(),
1718
- width: distance24.optional(),
1719
- text: z82.string().optional()
1753
+ import { distance as distance27 } from "circuit-json";
1754
+ import { z as z85 } from "zod";
1755
+ var schematicCellProps = z85.object({
1756
+ children: z85.string().optional(),
1757
+ horizontalAlign: z85.enum(["left", "center", "right"]).optional(),
1758
+ verticalAlign: z85.enum(["top", "middle", "bottom"]).optional(),
1759
+ fontSize: distance27.optional(),
1760
+ rowSpan: z85.number().optional(),
1761
+ colSpan: z85.number().optional(),
1762
+ width: distance27.optional(),
1763
+ text: z85.string().optional()
1720
1764
  });
1721
1765
  expectTypesMatch(true);
1722
1766
 
1723
1767
  // lib/components/silkscreen-text.ts
1724
1768
  import { layer_ref as layer_ref8, length as length5 } from "circuit-json";
1725
- import { z as z83 } from "zod";
1769
+ import { z as z86 } from "zod";
1726
1770
  var silkscreenTextProps = pcbLayoutProps.extend({
1727
- text: z83.string(),
1771
+ text: z86.string(),
1728
1772
  anchorAlignment: ninePointAnchor.default("center"),
1729
- font: z83.enum(["tscircuit2024"]).optional(),
1773
+ font: z86.enum(["tscircuit2024"]).optional(),
1730
1774
  fontSize: length5.optional(),
1731
1775
  /**
1732
1776
  * If true, text will knock out underlying silkscreen
1733
1777
  */
1734
- isKnockout: z83.boolean().optional(),
1778
+ isKnockout: z86.boolean().optional(),
1735
1779
  knockoutPadding: length5.optional(),
1736
1780
  knockoutPaddingLeft: length5.optional(),
1737
1781
  knockoutPaddingRight: length5.optional(),
1738
1782
  knockoutPaddingTop: length5.optional(),
1739
1783
  knockoutPaddingBottom: length5.optional(),
1740
- layers: z83.array(layer_ref8).optional()
1784
+ layers: z86.array(layer_ref8).optional()
1741
1785
  });
1742
1786
 
1743
1787
  // lib/components/silkscreen-path.ts
1744
1788
  import { length as length6, route_hint_point as route_hint_point5 } from "circuit-json";
1745
- import { z as z84 } from "zod";
1789
+ import { z as z87 } from "zod";
1746
1790
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1747
- route: z84.array(route_hint_point5),
1791
+ route: z87.array(route_hint_point5),
1748
1792
  strokeWidth: length6.optional()
1749
1793
  });
1750
1794
 
1751
1795
  // lib/components/silkscreen-line.ts
1752
- import { distance as distance25 } from "circuit-json";
1796
+ import { distance as distance28 } from "circuit-json";
1753
1797
  var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1754
- strokeWidth: distance25,
1755
- x1: distance25,
1756
- y1: distance25,
1757
- x2: distance25,
1758
- y2: distance25
1798
+ strokeWidth: distance28,
1799
+ x1: distance28,
1800
+ y1: distance28,
1801
+ x2: distance28,
1802
+ y2: distance28
1759
1803
  });
1760
1804
 
1761
1805
  // lib/components/silkscreen-rect.ts
1762
- import { distance as distance26 } from "circuit-json";
1763
- import { z as z85 } from "zod";
1806
+ import { distance as distance29 } from "circuit-json";
1807
+ import { z as z88 } from "zod";
1764
1808
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1765
- filled: z85.boolean().default(true).optional(),
1766
- stroke: z85.enum(["dashed", "solid", "none"]).optional(),
1767
- strokeWidth: distance26.optional(),
1768
- width: distance26,
1769
- height: distance26
1809
+ filled: z88.boolean().default(true).optional(),
1810
+ stroke: z88.enum(["dashed", "solid", "none"]).optional(),
1811
+ strokeWidth: distance29.optional(),
1812
+ width: distance29,
1813
+ height: distance29
1770
1814
  });
1771
1815
 
1772
1816
  // lib/components/silkscreen-circle.ts
1773
- import { distance as distance27 } from "circuit-json";
1774
- import { z as z86 } from "zod";
1817
+ import { distance as distance30 } from "circuit-json";
1818
+ import { z as z89 } from "zod";
1775
1819
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1776
- isFilled: z86.boolean().optional(),
1777
- isOutline: z86.boolean().optional(),
1778
- strokeWidth: distance27.optional(),
1779
- radius: distance27
1820
+ isFilled: z89.boolean().optional(),
1821
+ isOutline: z89.boolean().optional(),
1822
+ strokeWidth: distance30.optional(),
1823
+ radius: distance30
1780
1824
  });
1781
1825
 
1782
1826
  // lib/components/trace-hint.ts
1783
- import { distance as distance28, layer_ref as layer_ref9, route_hint_point as route_hint_point6 } from "circuit-json";
1784
- import { z as z87 } from "zod";
1785
- var routeHintPointProps = z87.object({
1786
- x: distance28,
1787
- y: distance28,
1788
- via: z87.boolean().optional(),
1827
+ import { distance as distance31, layer_ref as layer_ref9, route_hint_point as route_hint_point6 } from "circuit-json";
1828
+ import { z as z90 } from "zod";
1829
+ var routeHintPointProps = z90.object({
1830
+ x: distance31,
1831
+ y: distance31,
1832
+ via: z90.boolean().optional(),
1789
1833
  toLayer: layer_ref9.optional()
1790
1834
  });
1791
- var traceHintProps = z87.object({
1792
- for: z87.string().optional().describe(
1835
+ var traceHintProps = z90.object({
1836
+ for: z90.string().optional().describe(
1793
1837
  "Selector for the port you're targeting, not required if you're inside a trace"
1794
1838
  ),
1795
- order: z87.number().optional(),
1839
+ order: z90.number().optional(),
1796
1840
  offset: route_hint_point6.or(routeHintPointProps).optional(),
1797
- offsets: z87.array(route_hint_point6).or(z87.array(routeHintPointProps)).optional(),
1798
- traceWidth: z87.number().optional()
1841
+ offsets: z90.array(route_hint_point6).or(z90.array(routeHintPointProps)).optional(),
1842
+ traceWidth: z90.number().optional()
1799
1843
  });
1800
1844
 
1801
1845
  // lib/components/port.ts
1802
- import { z as z88 } from "zod";
1846
+ import { z as z91 } from "zod";
1803
1847
  var portProps = commonLayoutProps.extend({
1804
- name: z88.string(),
1805
- pinNumber: z88.number().optional(),
1806
- aliases: z88.array(z88.string()).optional(),
1848
+ name: z91.string(),
1849
+ pinNumber: z91.number().optional(),
1850
+ aliases: z91.array(z91.string()).optional(),
1807
1851
  direction
1808
1852
  });
1809
1853
 
1810
1854
  // lib/platformConfig.ts
1811
- import { z as z89 } from "zod";
1812
- var unvalidatedCircuitJson = z89.array(z89.any()).describe("Circuit JSON");
1813
- var footprintLibraryResult = z89.object({
1814
- footprintCircuitJson: z89.array(z89.any()),
1855
+ import { z as z92 } from "zod";
1856
+ var unvalidatedCircuitJson = z92.array(z92.any()).describe("Circuit JSON");
1857
+ var footprintLibraryResult = z92.object({
1858
+ footprintCircuitJson: z92.array(z92.any()),
1815
1859
  cadModel: cadModelProp.optional()
1816
1860
  });
1817
- var pathToCircuitJsonFn = z89.function().args(z89.string()).returns(z89.promise(footprintLibraryResult)).describe("A function that takes a path and returns Circuit JSON");
1818
- var footprintFileParserEntry = z89.object({
1819
- loadFromUrl: z89.function().args(z89.string()).returns(z89.promise(footprintLibraryResult)).describe(
1861
+ var pathToCircuitJsonFn = z92.function().args(z92.string()).returns(z92.promise(footprintLibraryResult)).describe("A function that takes a path and returns Circuit JSON");
1862
+ var footprintFileParserEntry = z92.object({
1863
+ loadFromUrl: z92.function().args(z92.string()).returns(z92.promise(footprintLibraryResult)).describe(
1820
1864
  "A function that takes a footprint file URL and returns Circuit JSON"
1821
1865
  )
1822
1866
  });
1823
- var platformConfig = z89.object({
1867
+ var platformConfig = z92.object({
1824
1868
  partsEngine: partsEngine.optional(),
1825
1869
  autorouter: autorouterProp.optional(),
1826
- registryApiUrl: z89.string().optional(),
1827
- cloudAutorouterUrl: z89.string().optional(),
1828
- projectName: z89.string().optional(),
1829
- projectBaseUrl: z89.string().optional(),
1830
- version: z89.string().optional(),
1831
- url: z89.string().optional(),
1832
- printBoardInformationToSilkscreen: z89.boolean().optional(),
1833
- localCacheEngine: z89.any().optional(),
1834
- pcbDisabled: z89.boolean().optional(),
1835
- schematicDisabled: z89.boolean().optional(),
1836
- partsEngineDisabled: z89.boolean().optional(),
1837
- footprintLibraryMap: z89.record(
1838
- z89.string(),
1839
- z89.union([
1870
+ registryApiUrl: z92.string().optional(),
1871
+ cloudAutorouterUrl: z92.string().optional(),
1872
+ projectName: z92.string().optional(),
1873
+ projectBaseUrl: z92.string().optional(),
1874
+ version: z92.string().optional(),
1875
+ url: z92.string().optional(),
1876
+ printBoardInformationToSilkscreen: z92.boolean().optional(),
1877
+ localCacheEngine: z92.any().optional(),
1878
+ pcbDisabled: z92.boolean().optional(),
1879
+ schematicDisabled: z92.boolean().optional(),
1880
+ partsEngineDisabled: z92.boolean().optional(),
1881
+ footprintLibraryMap: z92.record(
1882
+ z92.string(),
1883
+ z92.union([
1840
1884
  pathToCircuitJsonFn,
1841
- z89.record(
1842
- z89.string(),
1843
- z89.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
1885
+ z92.record(
1886
+ z92.string(),
1887
+ z92.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
1844
1888
  )
1845
1889
  ])
1846
1890
  ).optional(),
1847
- footprintFileParserMap: z89.record(z89.string(), footprintFileParserEntry).optional()
1891
+ footprintFileParserMap: z92.record(z92.string(), footprintFileParserEntry).optional()
1848
1892
  });
1849
1893
  expectTypesMatch(true);
1850
1894
 
@@ -1974,8 +2018,10 @@ export {
1974
2018
  rotatedRectSmtPadProps,
1975
2019
  rotationPoint3,
1976
2020
  routeHintPointProps,
2021
+ schematicArcProps,
1977
2022
  schematicBoxProps,
1978
2023
  schematicCellProps,
2024
+ schematicCircleProps,
1979
2025
  schematicLineProps,
1980
2026
  schematicOrientation,
1981
2027
  schematicPathProps,
@@ -1983,6 +2029,7 @@ export {
1983
2029
  schematicPinLabel,
1984
2030
  schematicPinStyle,
1985
2031
  schematicPortArrangement,
2032
+ schematicRectProps,
1986
2033
  schematicRowProps,
1987
2034
  schematicTableProps,
1988
2035
  schematicTextProps,