@tscircuit/props 0.0.188 → 0.0.190

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
@@ -442,25 +442,42 @@ var jumperProps = commonComponentProps.extend({
442
442
  });
443
443
  expectTypesMatch(true);
444
444
 
445
+ // lib/components/fuse.ts
446
+ import { z as z25 } from "zod";
447
+ var fusePinLabels = ["pin1", "pin2"];
448
+ var fuseProps = commonComponentProps.extend({
449
+ currentRating: z25.union([z25.number(), z25.string()]),
450
+ voltageRating: z25.union([z25.number(), z25.string()]).optional(),
451
+ schShowRatings: z25.boolean().optional(),
452
+ connections: z25.record(
453
+ z25.string(),
454
+ z25.union([
455
+ z25.string(),
456
+ z25.array(z25.string()).readonly(),
457
+ z25.array(z25.string())
458
+ ])
459
+ ).optional()
460
+ });
461
+
445
462
  // lib/components/platedhole.ts
446
463
  import { distance as distance8 } from "circuit-json";
447
- import { z as z25 } from "zod";
448
- var distanceHiddenUndefined = z25.custom().transform((a) => {
464
+ import { z as z26 } from "zod";
465
+ var distanceHiddenUndefined = z26.custom().transform((a) => {
449
466
  if (a === void 0)
450
467
  return void 0;
451
468
  return distance8.parse(a);
452
469
  });
453
- var platedHoleProps = z25.union([
470
+ var platedHoleProps = z26.union([
454
471
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
455
- name: z25.string().optional(),
456
- shape: z25.literal("circle"),
472
+ name: z26.string().optional(),
473
+ shape: z26.literal("circle"),
457
474
  holeDiameter: distance8,
458
475
  outerDiameter: distance8,
459
476
  portHints: portHints.optional()
460
477
  }),
461
478
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
462
- name: z25.string().optional(),
463
- shape: z25.literal("oval"),
479
+ name: z26.string().optional(),
480
+ shape: z26.literal("oval"),
464
481
  outerWidth: distance8,
465
482
  outerHeight: distance8,
466
483
  holeWidth: distanceHiddenUndefined,
@@ -470,8 +487,8 @@ var platedHoleProps = z25.union([
470
487
  portHints: portHints.optional()
471
488
  }),
472
489
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
473
- name: z25.string().optional(),
474
- shape: z25.literal("pill"),
490
+ name: z26.string().optional(),
491
+ shape: z26.literal("pill"),
475
492
  outerWidth: distance8,
476
493
  outerHeight: distance8,
477
494
  holeWidth: distanceHiddenUndefined,
@@ -481,13 +498,13 @@ var platedHoleProps = z25.union([
481
498
  portHints: portHints.optional()
482
499
  }),
483
500
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
484
- name: z25.string().optional(),
501
+ name: z26.string().optional(),
485
502
  holeDiameter: distance8,
486
503
  rectPadWidth: distance8,
487
504
  rectPadHeight: distance8,
488
- holeShape: z25.literal("circle").optional(),
489
- padShape: z25.literal("rect").optional(),
490
- shape: z25.literal("circular_hole_with_rect_pad").optional(),
505
+ holeShape: z26.literal("circle").optional(),
506
+ padShape: z26.literal("rect").optional(),
507
+ shape: z26.literal("circular_hole_with_rect_pad").optional(),
491
508
  portHints: portHints.optional()
492
509
  }).refine(
493
510
  (prop) => {
@@ -498,10 +515,10 @@ var platedHoleProps = z25.union([
498
515
  }
499
516
  ),
500
517
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
501
- name: z25.string().optional(),
502
- shape: z25.literal("pill_hole_with_rect_pad"),
503
- holeShape: z25.literal("pill"),
504
- padShape: z25.literal("rect"),
518
+ name: z26.string().optional(),
519
+ shape: z26.literal("pill_hole_with_rect_pad"),
520
+ holeShape: z26.literal("pill"),
521
+ padShape: z26.literal("rect"),
505
522
  holeWidth: distance8,
506
523
  holeHeight: distance8,
507
524
  rectPadWidth: distance8,
@@ -523,21 +540,21 @@ expectTypesMatch(true);
523
540
  import { resistance } from "circuit-json";
524
541
 
525
542
  // lib/common/connectionsProp.ts
526
- import { z as z26 } from "zod";
527
- var connectionTarget2 = z26.string().or(z26.array(z26.string()).readonly()).or(z26.array(z26.string()));
543
+ import { z as z27 } from "zod";
544
+ var connectionTarget2 = z27.string().or(z27.array(z27.string()).readonly()).or(z27.array(z27.string()));
528
545
  var createConnectionsProp = (labels) => {
529
- return z26.record(z26.enum(labels), connectionTarget2);
546
+ return z27.record(z27.enum(labels), connectionTarget2);
530
547
  };
531
548
 
532
549
  // lib/components/resistor.ts
533
- import { z as z27 } from "zod";
550
+ import { z as z28 } from "zod";
534
551
  var resistorPinLabels = ["pin1", "pin2", "pos", "neg"];
535
552
  var resistorProps = commonComponentProps.extend({
536
553
  resistance,
537
- pullupFor: z27.string().optional(),
538
- pullupTo: z27.string().optional(),
539
- pulldownFor: z27.string().optional(),
540
- pulldownTo: z27.string().optional(),
554
+ pullupFor: z28.string().optional(),
555
+ pullupTo: z28.string().optional(),
556
+ pulldownFor: z28.string().optional(),
557
+ pulldownTo: z28.string().optional(),
541
558
  connections: createConnectionsProp(resistorPinLabels).optional()
542
559
  });
543
560
  var resistorPins = lrPins;
@@ -545,54 +562,54 @@ expectTypesMatch(true);
545
562
 
546
563
  // lib/components/potentiometer.ts
547
564
  import { resistance as resistance2 } from "circuit-json";
548
- import { z as z28 } from "zod";
565
+ import { z as z29 } from "zod";
549
566
  var potentiometerProps = commonComponentProps.extend({
550
567
  maxResistance: resistance2,
551
- pinVariant: z28.enum(["two_pin", "three_pin"]).optional()
568
+ pinVariant: z29.enum(["two_pin", "three_pin"]).optional()
552
569
  });
553
570
  expectTypesMatch(true);
554
571
 
555
572
  // lib/components/crystal.ts
556
573
  import { frequency, capacitance } from "circuit-json";
557
- import { z as z29 } from "zod";
574
+ import { z as z30 } from "zod";
558
575
  var crystalProps = commonComponentProps.extend({
559
576
  frequency,
560
577
  loadCapacitance: capacitance,
561
- pinVariant: z29.enum(["two_pin", "four_pin"]).optional()
578
+ pinVariant: z30.enum(["two_pin", "four_pin"]).optional()
562
579
  });
563
580
  var crystalPins = lrPins;
564
581
  expectTypesMatch(true);
565
582
 
566
583
  // lib/components/resonator.ts
567
584
  import { frequency as frequency2, capacitance as capacitance2 } from "circuit-json";
568
- import { z as z30 } from "zod";
585
+ import { z as z31 } from "zod";
569
586
  var resonatorProps = commonComponentProps.extend({
570
587
  frequency: frequency2,
571
588
  loadCapacitance: capacitance2,
572
- pinVariant: z30.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
589
+ pinVariant: z31.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
573
590
  });
574
591
  expectTypesMatch(true);
575
592
 
576
593
  // lib/components/stampboard.ts
577
594
  import { distance as distance9 } from "circuit-json";
578
- import { z as z31 } from "zod";
595
+ import { z as z32 } from "zod";
579
596
  var stampboardProps = boardProps.extend({
580
- leftPinCount: z31.number().optional(),
581
- rightPinCount: z31.number().optional(),
582
- topPinCount: z31.number().optional(),
583
- bottomPinCount: z31.number().optional(),
584
- leftPins: z31.array(z31.string()).optional(),
585
- rightPins: z31.array(z31.string()).optional(),
586
- topPins: z31.array(z31.string()).optional(),
587
- bottomPins: z31.array(z31.string()).optional(),
597
+ leftPinCount: z32.number().optional(),
598
+ rightPinCount: z32.number().optional(),
599
+ topPinCount: z32.number().optional(),
600
+ bottomPinCount: z32.number().optional(),
601
+ leftPins: z32.array(z32.string()).optional(),
602
+ rightPins: z32.array(z32.string()).optional(),
603
+ topPins: z32.array(z32.string()).optional(),
604
+ bottomPins: z32.array(z32.string()).optional(),
588
605
  pinPitch: distance9.optional(),
589
- innerHoles: z31.boolean().optional()
606
+ innerHoles: z32.boolean().optional()
590
607
  });
591
608
  expectTypesMatch(true);
592
609
 
593
610
  // lib/components/capacitor.ts
594
611
  import { capacitance as capacitance3, voltage } from "circuit-json";
595
- import { z as z32 } from "zod";
612
+ import { z as z33 } from "zod";
596
613
  var capacitorPinLabels = [
597
614
  "pin1",
598
615
  "pin2",
@@ -604,31 +621,31 @@ var capacitorPinLabels = [
604
621
  var capacitorProps = commonComponentProps.extend({
605
622
  capacitance: capacitance3,
606
623
  maxVoltageRating: voltage.optional(),
607
- schShowRatings: z32.boolean().optional().default(false),
608
- polarized: z32.boolean().optional().default(false),
609
- decouplingFor: z32.string().optional(),
610
- decouplingTo: z32.string().optional(),
611
- bypassFor: z32.string().optional(),
612
- bypassTo: z32.string().optional(),
613
- maxDecouplingTraceLength: z32.number().optional(),
624
+ schShowRatings: z33.boolean().optional().default(false),
625
+ polarized: z33.boolean().optional().default(false),
626
+ decouplingFor: z33.string().optional(),
627
+ decouplingTo: z33.string().optional(),
628
+ bypassFor: z33.string().optional(),
629
+ bypassTo: z33.string().optional(),
630
+ maxDecouplingTraceLength: z33.number().optional(),
614
631
  connections: createConnectionsProp(capacitorPinLabels).optional()
615
632
  });
616
633
  var capacitorPins = lrPolarPins;
617
634
  expectTypesMatch(true);
618
635
 
619
636
  // lib/components/net.ts
620
- import { z as z33 } from "zod";
621
- var netProps = z33.object({
622
- name: z33.string()
637
+ import { z as z34 } from "zod";
638
+ var netProps = z34.object({
639
+ name: z34.string()
623
640
  });
624
641
  expectTypesMatch(true);
625
642
 
626
643
  // lib/components/constrainedlayout.ts
627
- import { z as z34 } from "zod";
628
- var constrainedLayoutProps = z34.object({
629
- name: z34.string().optional(),
630
- pcbOnly: z34.boolean().optional(),
631
- schOnly: z34.boolean().optional()
644
+ import { z as z35 } from "zod";
645
+ var constrainedLayoutProps = z35.object({
646
+ name: z35.string().optional(),
647
+ pcbOnly: z35.boolean().optional(),
648
+ schOnly: z35.boolean().optional()
632
649
  });
633
650
  expectTypesMatch(true);
634
651
 
@@ -637,46 +654,46 @@ import "zod";
637
654
  import { distance as distance10, length as length2 } from "circuit-json";
638
655
 
639
656
  // lib/components/constraint.ts
640
- import { z as z36 } from "zod";
641
- var pcbXDistConstraintProps = z36.object({
642
- pcb: z36.literal(true).optional(),
657
+ import { z as z37 } from "zod";
658
+ var pcbXDistConstraintProps = z37.object({
659
+ pcb: z37.literal(true).optional(),
643
660
  xDist: distance10,
644
- left: z36.string(),
645
- right: z36.string(),
646
- edgeToEdge: z36.literal(true).optional(),
647
- centerToCenter: z36.literal(true).optional()
661
+ left: z37.string(),
662
+ right: z37.string(),
663
+ edgeToEdge: z37.literal(true).optional(),
664
+ centerToCenter: z37.literal(true).optional()
648
665
  });
649
666
  expectTypesMatch(
650
667
  true
651
668
  );
652
- var pcbYDistConstraintProps = z36.object({
653
- pcb: z36.literal(true).optional(),
669
+ var pcbYDistConstraintProps = z37.object({
670
+ pcb: z37.literal(true).optional(),
654
671
  yDist: distance10,
655
- top: z36.string(),
656
- bottom: z36.string(),
657
- edgeToEdge: z36.literal(true).optional(),
658
- centerToCenter: z36.literal(true).optional()
672
+ top: z37.string(),
673
+ bottom: z37.string(),
674
+ edgeToEdge: z37.literal(true).optional(),
675
+ centerToCenter: z37.literal(true).optional()
659
676
  });
660
677
  expectTypesMatch(
661
678
  true
662
679
  );
663
- var pcbSameYConstraintProps = z36.object({
664
- pcb: z36.literal(true).optional(),
665
- sameY: z36.literal(true).optional(),
666
- for: z36.array(z36.string())
680
+ var pcbSameYConstraintProps = z37.object({
681
+ pcb: z37.literal(true).optional(),
682
+ sameY: z37.literal(true).optional(),
683
+ for: z37.array(z37.string())
667
684
  });
668
685
  expectTypesMatch(
669
686
  true
670
687
  );
671
- var pcbSameXConstraintProps = z36.object({
672
- pcb: z36.literal(true).optional(),
673
- sameX: z36.literal(true).optional(),
674
- for: z36.array(z36.string())
688
+ var pcbSameXConstraintProps = z37.object({
689
+ pcb: z37.literal(true).optional(),
690
+ sameX: z37.literal(true).optional(),
691
+ for: z37.array(z37.string())
675
692
  });
676
693
  expectTypesMatch(
677
694
  true
678
695
  );
679
- var constraintProps = z36.union([
696
+ var constraintProps = z37.union([
680
697
  pcbXDistConstraintProps,
681
698
  pcbYDistConstraintProps,
682
699
  pcbSameYConstraintProps,
@@ -685,13 +702,13 @@ var constraintProps = z36.union([
685
702
  expectTypesMatch(true);
686
703
 
687
704
  // lib/components/cutout.ts
688
- import { z as z37 } from "zod";
705
+ import { z as z38 } from "zod";
689
706
  var rectCutoutProps = pcbLayoutProps.omit({
690
707
  layer: true,
691
708
  pcbRotation: true
692
709
  }).extend({
693
- name: z37.string().optional(),
694
- shape: z37.literal("rect"),
710
+ name: z38.string().optional(),
711
+ shape: z38.literal("rect"),
695
712
  width: distance10,
696
713
  height: distance10
697
714
  });
@@ -700,8 +717,8 @@ var circleCutoutProps = pcbLayoutProps.omit({
700
717
  layer: true,
701
718
  pcbRotation: true
702
719
  }).extend({
703
- name: z37.string().optional(),
704
- shape: z37.literal("circle"),
720
+ name: z38.string().optional(),
721
+ shape: z38.literal("circle"),
705
722
  radius: distance10
706
723
  });
707
724
  expectTypesMatch(true);
@@ -709,49 +726,49 @@ var polygonCutoutProps = pcbLayoutProps.omit({
709
726
  layer: true,
710
727
  pcbRotation: true
711
728
  }).extend({
712
- name: z37.string().optional(),
713
- shape: z37.literal("polygon"),
714
- points: z37.array(point)
729
+ name: z38.string().optional(),
730
+ shape: z38.literal("polygon"),
731
+ points: z38.array(point)
715
732
  });
716
733
  expectTypesMatch(true);
717
- var cutoutProps = z37.discriminatedUnion("shape", [
734
+ var cutoutProps = z38.discriminatedUnion("shape", [
718
735
  rectCutoutProps,
719
736
  circleCutoutProps,
720
737
  polygonCutoutProps
721
738
  ]);
722
739
 
723
740
  // lib/components/smtpad.ts
724
- import { z as z38 } from "zod";
741
+ import { z as z39 } from "zod";
725
742
  var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
726
- shape: z38.literal("rect"),
743
+ shape: z39.literal("rect"),
727
744
  width: distance10,
728
745
  height: distance10,
729
746
  portHints: portHints.optional()
730
747
  });
731
748
  expectTypesMatch(true);
732
749
  var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
733
- shape: z38.literal("rotated_rect"),
750
+ shape: z39.literal("rotated_rect"),
734
751
  width: distance10,
735
752
  height: distance10,
736
- ccwRotation: z38.number(),
753
+ ccwRotation: z39.number(),
737
754
  portHints: portHints.optional()
738
755
  });
739
756
  expectTypesMatch(true);
740
757
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
741
- shape: z38.literal("circle"),
758
+ shape: z39.literal("circle"),
742
759
  radius: distance10,
743
760
  portHints: portHints.optional()
744
761
  });
745
762
  expectTypesMatch(true);
746
763
  var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
747
- shape: z38.literal("pill"),
764
+ shape: z39.literal("pill"),
748
765
  width: distance10,
749
766
  height: distance10,
750
767
  radius: distance10,
751
768
  portHints: portHints.optional()
752
769
  });
753
770
  expectTypesMatch(true);
754
- var smtPadProps = z38.union([
771
+ var smtPadProps = z39.union([
755
772
  circleSmtPadProps,
756
773
  rectSmtPadProps,
757
774
  rotatedRectSmtPadProps,
@@ -760,28 +777,28 @@ var smtPadProps = z38.union([
760
777
  expectTypesMatch(true);
761
778
 
762
779
  // lib/components/solderpaste.ts
763
- import { z as z39 } from "zod";
780
+ import { z as z40 } from "zod";
764
781
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
765
- shape: z39.literal("rect"),
782
+ shape: z40.literal("rect"),
766
783
  width: distance10,
767
784
  height: distance10
768
785
  });
769
786
  expectTypesMatch(true);
770
787
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
771
- shape: z39.literal("circle"),
788
+ shape: z40.literal("circle"),
772
789
  radius: distance10
773
790
  });
774
791
  expectTypesMatch(true);
775
- var solderPasteProps = z39.union([
792
+ var solderPasteProps = z40.union([
776
793
  circleSolderPasteProps,
777
794
  rectSolderPasteProps
778
795
  ]);
779
796
  expectTypesMatch(true);
780
797
 
781
798
  // lib/components/hole.ts
782
- import { z as z40 } from "zod";
799
+ import { z as z41 } from "zod";
783
800
  var holeProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
784
- name: z40.string().optional(),
801
+ name: z41.string().optional(),
785
802
  diameter: distance10.optional(),
786
803
  radius: distance10.optional()
787
804
  }).transform((d) => ({
@@ -793,24 +810,24 @@ expectTypesMatch(true);
793
810
 
794
811
  // lib/components/trace.ts
795
812
  import { distance as distance11, route_hint_point as route_hint_point2 } from "circuit-json";
796
- import { z as z41 } from "zod";
797
- var portRef = z41.union([
798
- z41.string(),
799
- z41.custom(
813
+ import { z as z42 } from "zod";
814
+ var portRef = z42.union([
815
+ z42.string(),
816
+ z42.custom(
800
817
  (v) => Boolean(v.getPortSelector)
801
818
  )
802
819
  ]);
803
- var baseTraceProps = z41.object({
804
- key: z41.string().optional(),
820
+ var baseTraceProps = z42.object({
821
+ key: z42.string().optional(),
805
822
  thickness: distance11.optional(),
806
- schematicRouteHints: z41.array(point).optional(),
807
- pcbRouteHints: z41.array(route_hint_point2).optional(),
808
- schDisplayLabel: z41.string().optional(),
823
+ schematicRouteHints: z42.array(point).optional(),
824
+ pcbRouteHints: z42.array(route_hint_point2).optional(),
825
+ schDisplayLabel: z42.string().optional(),
809
826
  maxLength: distance11.optional()
810
827
  });
811
- var traceProps = z41.union([
828
+ var traceProps = z42.union([
812
829
  baseTraceProps.extend({
813
- path: z41.array(portRef)
830
+ path: z42.array(portRef)
814
831
  }),
815
832
  baseTraceProps.extend({
816
833
  from: portRef,
@@ -820,15 +837,15 @@ var traceProps = z41.union([
820
837
 
821
838
  // lib/components/footprint.ts
822
839
  import { layer_ref as layer_ref4 } from "circuit-json";
823
- import { z as z42 } from "zod";
824
- var footprintProps = z42.object({
840
+ import { z as z43 } from "zod";
841
+ var footprintProps = z43.object({
825
842
  originalLayer: layer_ref4.default("top").optional()
826
843
  });
827
844
  expectTypesMatch(true);
828
845
 
829
846
  // lib/components/battery.ts
830
- import { z as z43 } from "zod";
831
- var capacity = z43.number().or(z43.string().endsWith("mAh")).transform((v) => {
847
+ import { z as z44 } from "zod";
848
+ var capacity = z44.number().or(z44.string().endsWith("mAh")).transform((v) => {
832
849
  if (typeof v === "string") {
833
850
  const valString = v.replace("mAh", "");
834
851
  const num = Number.parseFloat(valString);
@@ -847,30 +864,31 @@ expectTypesMatch(true);
847
864
 
848
865
  // lib/components/pin-header.ts
849
866
  import { distance as distance12 } from "circuit-json";
850
- import { z as z44 } from "zod";
867
+ import { z as z45 } from "zod";
851
868
  var pinHeaderProps = commonComponentProps.extend({
852
- pinCount: z44.number(),
869
+ pinCount: z45.number(),
853
870
  pitch: distance12.optional(),
854
- schFacingDirection: z44.enum(["up", "down", "left", "right"]).optional(),
855
- gender: z44.enum(["male", "female"]).optional().default("male"),
856
- showSilkscreenPinLabels: z44.boolean().optional(),
857
- doubleRow: z44.boolean().optional(),
871
+ schFacingDirection: z45.enum(["up", "down", "left", "right"]).optional(),
872
+ gender: z45.enum(["male", "female"]).optional().default("male"),
873
+ showSilkscreenPinLabels: z45.boolean().optional(),
874
+ doubleRow: z45.boolean().optional(),
858
875
  holeDiameter: distance12.optional(),
859
876
  platedDiameter: distance12.optional(),
860
- pinLabels: z44.array(z44.string()).optional(),
861
- facingDirection: z44.enum(["left", "right"]).optional()
877
+ pinLabels: z45.array(z45.string()).optional(),
878
+ facingDirection: z45.enum(["left", "right"]).optional(),
879
+ schPinArrangement: schematicPinArrangement.optional()
862
880
  });
863
881
  expectTypesMatch(true);
864
882
 
865
883
  // lib/components/netalias.ts
866
- import { z as z45 } from "zod";
884
+ import { z as z46 } from "zod";
867
885
  import { rotation as rotation2 } from "circuit-json";
868
- var netAliasProps = z45.object({
869
- net: z45.string().optional(),
886
+ var netAliasProps = z46.object({
887
+ net: z46.string().optional(),
870
888
  schX: distance10.optional(),
871
889
  schY: distance10.optional(),
872
890
  schRotation: rotation2.optional(),
873
- anchorSide: z45.enum(["left", "up", "right", "down"]).optional()
891
+ anchorSide: z46.enum(["left", "up", "right", "down"]).optional()
874
892
  });
875
893
  expectTypesMatch(true);
876
894
 
@@ -884,9 +902,9 @@ var subcircuitProps = subcircuitGroupProps;
884
902
  expectTypesMatch(true);
885
903
 
886
904
  // lib/components/transistor.ts
887
- import { z as z47 } from "zod";
905
+ import { z as z48 } from "zod";
888
906
  var transistorProps = commonComponentProps.extend({
889
- type: z47.enum(["npn", "pnp", "bjt", "jfet", "mosfet"])
907
+ type: z48.enum(["npn", "pnp", "bjt", "jfet", "mosfet"])
890
908
  });
891
909
  var transistorPins = [
892
910
  "pin1",
@@ -899,10 +917,10 @@ var transistorPins = [
899
917
  expectTypesMatch(true);
900
918
 
901
919
  // lib/components/mosfet.ts
902
- import { z as z48 } from "zod";
920
+ import { z as z49 } from "zod";
903
921
  var mosfetProps = commonComponentProps.extend({
904
- channelType: z48.enum(["n", "p"]),
905
- mosfetMode: z48.enum(["enhancement", "depletion"])
922
+ channelType: z49.enum(["n", "p"]),
923
+ mosfetMode: z49.enum(["enhancement", "depletion"])
906
924
  });
907
925
  var mosfetPins = [
908
926
  "pin1",
@@ -922,8 +940,8 @@ var inductorProps = commonComponentProps.extend({
922
940
  var inductorPins = lrPins;
923
941
 
924
942
  // lib/components/diode.ts
925
- import { z as z49 } from "zod";
926
- var diodeConnectionKeys = z49.enum([
943
+ import { z as z50 } from "zod";
944
+ var diodeConnectionKeys = z50.enum([
927
945
  "anode",
928
946
  "cathode",
929
947
  "pin1",
@@ -931,17 +949,17 @@ var diodeConnectionKeys = z49.enum([
931
949
  "pos",
932
950
  "neg"
933
951
  ]);
934
- var connectionTarget3 = z49.string().or(z49.array(z49.string()).readonly()).or(z49.array(z49.string()));
935
- var connectionsProp2 = z49.record(diodeConnectionKeys, connectionTarget3);
936
- var diodeVariant = z49.enum(["standard", "schottky", "zener", "photo", "tvs"]);
952
+ var connectionTarget3 = z50.string().or(z50.array(z50.string()).readonly()).or(z50.array(z50.string()));
953
+ var connectionsProp2 = z50.record(diodeConnectionKeys, connectionTarget3);
954
+ var diodeVariant = z50.enum(["standard", "schottky", "zener", "photo", "tvs"]);
937
955
  var diodeProps = commonComponentProps.extend({
938
956
  connections: connectionsProp2.optional(),
939
957
  variant: diodeVariant.optional().default("standard"),
940
- standard: z49.boolean().optional(),
941
- schottky: z49.boolean().optional(),
942
- zener: z49.boolean().optional(),
943
- photo: z49.boolean().optional(),
944
- tvs: z49.boolean().optional()
958
+ standard: z50.boolean().optional(),
959
+ schottky: z50.boolean().optional(),
960
+ zener: z50.boolean().optional(),
961
+ photo: z50.boolean().optional(),
962
+ tvs: z50.boolean().optional()
945
963
  }).superRefine((data, ctx) => {
946
964
  const enabledFlags = [
947
965
  data.standard,
@@ -952,11 +970,11 @@ var diodeProps = commonComponentProps.extend({
952
970
  ].filter(Boolean).length;
953
971
  if (enabledFlags > 1) {
954
972
  ctx.addIssue({
955
- code: z49.ZodIssueCode.custom,
973
+ code: z50.ZodIssueCode.custom,
956
974
  message: "Exactly one diode variant must be enabled",
957
975
  path: []
958
976
  });
959
- return z49.INVALID;
977
+ return z50.INVALID;
960
978
  }
961
979
  }).transform((data) => {
962
980
  const result = {
@@ -1004,22 +1022,22 @@ var diodePins = lrPolarPins;
1004
1022
  expectTypesMatch(true);
1005
1023
 
1006
1024
  // lib/components/led.ts
1007
- import { z as z50 } from "zod";
1025
+ import { z as z51 } from "zod";
1008
1026
  var ledProps = commonComponentProps.extend({
1009
- color: z50.string().optional(),
1010
- wavelength: z50.string().optional()
1027
+ color: z51.string().optional(),
1028
+ wavelength: z51.string().optional()
1011
1029
  });
1012
1030
  var ledPins = lrPolarPins;
1013
1031
 
1014
1032
  // lib/components/switch.ts
1015
- import { z as z51 } from "zod";
1033
+ import { z as z52 } from "zod";
1016
1034
  var switchProps = commonComponentProps.extend({
1017
- type: z51.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1018
- isNormallyClosed: z51.boolean().optional().default(false),
1019
- spst: z51.boolean().optional(),
1020
- spdt: z51.boolean().optional(),
1021
- dpst: z51.boolean().optional(),
1022
- dpdt: z51.boolean().optional()
1035
+ type: z52.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1036
+ isNormallyClosed: z52.boolean().optional().default(false),
1037
+ spst: z52.boolean().optional(),
1038
+ spdt: z52.boolean().optional(),
1039
+ dpst: z52.boolean().optional(),
1040
+ dpdt: z52.boolean().optional()
1023
1041
  }).transform((props) => {
1024
1042
  const updatedProps = { ...props };
1025
1043
  if (updatedProps.dpdt) {
@@ -1051,31 +1069,31 @@ expectTypesMatch(true);
1051
1069
 
1052
1070
  // lib/components/fabrication-note-text.ts
1053
1071
  import { length as length3 } from "circuit-json";
1054
- import { z as z52 } from "zod";
1072
+ import { z as z53 } from "zod";
1055
1073
  var fabricationNoteTextProps = pcbLayoutProps.extend({
1056
- text: z52.string(),
1057
- anchorAlignment: z52.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1058
- font: z52.enum(["tscircuit2024"]).optional(),
1074
+ text: z53.string(),
1075
+ anchorAlignment: z53.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1076
+ font: z53.enum(["tscircuit2024"]).optional(),
1059
1077
  fontSize: length3.optional(),
1060
- color: z52.string().optional()
1078
+ color: z53.string().optional()
1061
1079
  });
1062
1080
 
1063
1081
  // lib/components/fabrication-note-path.ts
1064
1082
  import { length as length4, route_hint_point as route_hint_point3 } from "circuit-json";
1065
- import { z as z53 } from "zod";
1083
+ import { z as z54 } from "zod";
1066
1084
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1067
- route: z53.array(route_hint_point3),
1085
+ route: z54.array(route_hint_point3),
1068
1086
  strokeWidth: length4.optional(),
1069
- color: z53.string().optional()
1087
+ color: z54.string().optional()
1070
1088
  });
1071
1089
 
1072
1090
  // lib/components/pcb-trace.ts
1073
1091
  import { distance as distance13, route_hint_point as route_hint_point4 } from "circuit-json";
1074
- import { z as z54 } from "zod";
1075
- var pcbTraceProps = z54.object({
1076
- layer: z54.string().optional(),
1092
+ import { z as z55 } from "zod";
1093
+ var pcbTraceProps = z55.object({
1094
+ layer: z55.string().optional(),
1077
1095
  thickness: distance13.optional(),
1078
- route: z54.array(route_hint_point4)
1096
+ route: z55.array(route_hint_point4)
1079
1097
  });
1080
1098
 
1081
1099
  // lib/components/via.ts
@@ -1089,14 +1107,14 @@ var viaProps = commonLayoutProps.extend({
1089
1107
 
1090
1108
  // lib/components/pcb-keepout.ts
1091
1109
  import { distance as distance15 } from "circuit-json";
1092
- import { z as z55 } from "zod";
1093
- var pcbKeepoutProps = z55.union([
1110
+ import { z as z56 } from "zod";
1111
+ var pcbKeepoutProps = z56.union([
1094
1112
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
1095
- shape: z55.literal("circle"),
1113
+ shape: z56.literal("circle"),
1096
1114
  radius: distance15
1097
1115
  }),
1098
1116
  pcbLayoutProps.extend({
1099
- shape: z55.literal("rect"),
1117
+ shape: z56.literal("rect"),
1100
1118
  width: distance15,
1101
1119
  height: distance15
1102
1120
  })
@@ -1110,22 +1128,22 @@ var powerSourceProps = commonComponentProps.extend({
1110
1128
 
1111
1129
  // lib/components/schematic-box.ts
1112
1130
  import { distance as distance16 } from "circuit-json";
1113
- import { z as z56 } from "zod";
1114
- var schematicBoxProps = z56.object({
1131
+ import { z as z57 } from "zod";
1132
+ var schematicBoxProps = z57.object({
1115
1133
  schX: distance16,
1116
1134
  schY: distance16,
1117
1135
  width: distance16,
1118
1136
  height: distance16,
1119
1137
  padding: distance16.default(0),
1120
- title: z56.string().optional(),
1121
- overlay: z56.array(z56.string()).optional(),
1122
- strokeStyle: z56.enum(["solid", "dashed"]).default("solid")
1138
+ title: z57.string().optional(),
1139
+ overlay: z57.array(z57.string()).optional(),
1140
+ strokeStyle: z57.enum(["solid", "dashed"]).default("solid")
1123
1141
  });
1124
1142
 
1125
1143
  // lib/components/schematic-line.ts
1126
1144
  import { distance as distance17 } from "circuit-json";
1127
- import { z as z57 } from "zod";
1128
- var schematicLineProps = z57.object({
1145
+ import { z as z58 } from "zod";
1146
+ var schematicLineProps = z58.object({
1129
1147
  x1: distance17,
1130
1148
  y1: distance17,
1131
1149
  x2: distance17,
@@ -1134,11 +1152,11 @@ var schematicLineProps = z57.object({
1134
1152
 
1135
1153
  // lib/components/schematic-text.ts
1136
1154
  import { distance as distance18, rotation as rotation3 } from "circuit-json";
1137
- import { z as z60 } from "zod";
1155
+ import { z as z61 } from "zod";
1138
1156
 
1139
1157
  // lib/common/nine_point_anchor.ts
1140
- import { z as z58 } from "zod";
1141
- var nine_point_anchor = z58.enum([
1158
+ import { z as z59 } from "zod";
1159
+ var nine_point_anchor = z59.enum([
1142
1160
  "top_left",
1143
1161
  "top_center",
1144
1162
  "top_right",
@@ -1151,8 +1169,8 @@ var nine_point_anchor = z58.enum([
1151
1169
  ]);
1152
1170
 
1153
1171
  // lib/common/five_point_anchor.ts
1154
- import { z as z59 } from "zod";
1155
- var five_point_anchor = z59.enum([
1172
+ import { z as z60 } from "zod";
1173
+ var five_point_anchor = z60.enum([
1156
1174
  "center",
1157
1175
  "left",
1158
1176
  "right",
@@ -1161,40 +1179,40 @@ var five_point_anchor = z59.enum([
1161
1179
  ]);
1162
1180
 
1163
1181
  // lib/components/schematic-text.ts
1164
- var schematicTextProps = z60.object({
1182
+ var schematicTextProps = z61.object({
1165
1183
  schX: distance18,
1166
1184
  schY: distance18,
1167
- text: z60.string(),
1168
- fontSize: z60.number().default(1),
1169
- anchor: z60.union([five_point_anchor.describe("legacy"), nine_point_anchor]).default("center"),
1170
- color: z60.string().default("#000000"),
1185
+ text: z61.string(),
1186
+ fontSize: z61.number().default(1),
1187
+ anchor: z61.union([five_point_anchor.describe("legacy"), nine_point_anchor]).default("center"),
1188
+ color: z61.string().default("#000000"),
1171
1189
  schRotation: rotation3.default(0)
1172
1190
  });
1173
1191
 
1174
1192
  // lib/components/schematic-path.ts
1175
1193
  import { point as point5 } from "circuit-json";
1176
- import { z as z61 } from "zod";
1177
- var schematicPathProps = z61.object({
1178
- points: z61.array(point5),
1179
- isFilled: z61.boolean().optional().default(false),
1180
- fillColor: z61.enum(["red", "blue"]).optional()
1194
+ import { z as z62 } from "zod";
1195
+ var schematicPathProps = z62.object({
1196
+ points: z62.array(point5),
1197
+ isFilled: z62.boolean().optional().default(false),
1198
+ fillColor: z62.enum(["red", "blue"]).optional()
1181
1199
  });
1182
1200
 
1183
1201
  // lib/components/silkscreen-text.ts
1184
1202
  import { length as length5 } from "circuit-json";
1185
- import { z as z62 } from "zod";
1203
+ import { z as z63 } from "zod";
1186
1204
  var silkscreenTextProps = pcbLayoutProps.extend({
1187
- text: z62.string(),
1205
+ text: z63.string(),
1188
1206
  anchorAlignment: nine_point_anchor.default("center"),
1189
- font: z62.enum(["tscircuit2024"]).optional(),
1207
+ font: z63.enum(["tscircuit2024"]).optional(),
1190
1208
  fontSize: length5.optional()
1191
1209
  });
1192
1210
 
1193
1211
  // lib/components/silkscreen-path.ts
1194
1212
  import { length as length6, route_hint_point as route_hint_point5 } from "circuit-json";
1195
- import { z as z63 } from "zod";
1213
+ import { z as z64 } from "zod";
1196
1214
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1197
- route: z63.array(route_hint_point5),
1215
+ route: z64.array(route_hint_point5),
1198
1216
  strokeWidth: length6.optional()
1199
1217
  });
1200
1218
 
@@ -1210,10 +1228,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotat
1210
1228
 
1211
1229
  // lib/components/silkscreen-rect.ts
1212
1230
  import { distance as distance20 } from "circuit-json";
1213
- import { z as z64 } from "zod";
1231
+ import { z as z65 } from "zod";
1214
1232
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1215
- isFilled: z64.boolean().optional(),
1216
- isOutline: z64.boolean().optional(),
1233
+ isFilled: z65.boolean().optional(),
1234
+ isOutline: z65.boolean().optional(),
1217
1235
  strokeWidth: distance20.optional(),
1218
1236
  width: distance20,
1219
1237
  height: distance20
@@ -1221,49 +1239,49 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1221
1239
 
1222
1240
  // lib/components/silkscreen-circle.ts
1223
1241
  import { distance as distance21 } from "circuit-json";
1224
- import { z as z65 } from "zod";
1242
+ import { z as z66 } from "zod";
1225
1243
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1226
- isFilled: z65.boolean().optional(),
1227
- isOutline: z65.boolean().optional(),
1244
+ isFilled: z66.boolean().optional(),
1245
+ isOutline: z66.boolean().optional(),
1228
1246
  strokeWidth: distance21.optional(),
1229
1247
  radius: distance21
1230
1248
  });
1231
1249
 
1232
1250
  // lib/components/trace-hint.ts
1233
1251
  import { distance as distance22, layer_ref as layer_ref6, route_hint_point as route_hint_point6 } from "circuit-json";
1234
- import { z as z66 } from "zod";
1235
- var routeHintPointProps = z66.object({
1252
+ import { z as z67 } from "zod";
1253
+ var routeHintPointProps = z67.object({
1236
1254
  x: distance22,
1237
1255
  y: distance22,
1238
- via: z66.boolean().optional(),
1256
+ via: z67.boolean().optional(),
1239
1257
  toLayer: layer_ref6.optional()
1240
1258
  });
1241
- var traceHintProps = z66.object({
1242
- for: z66.string().optional().describe(
1259
+ var traceHintProps = z67.object({
1260
+ for: z67.string().optional().describe(
1243
1261
  "Selector for the port you're targeting, not required if you're inside a trace"
1244
1262
  ),
1245
- order: z66.number().optional(),
1263
+ order: z67.number().optional(),
1246
1264
  offset: route_hint_point6.or(routeHintPointProps).optional(),
1247
- offsets: z66.array(route_hint_point6).or(z66.array(routeHintPointProps)).optional(),
1248
- traceWidth: z66.number().optional()
1265
+ offsets: z67.array(route_hint_point6).or(z67.array(routeHintPointProps)).optional(),
1266
+ traceWidth: z67.number().optional()
1249
1267
  });
1250
1268
 
1251
1269
  // lib/components/port.ts
1252
- import { z as z67 } from "zod";
1270
+ import { z as z68 } from "zod";
1253
1271
  var portProps = commonLayoutProps.extend({
1254
- name: z67.string(),
1255
- pinNumber: z67.number().optional(),
1256
- aliases: z67.array(z67.string()).optional(),
1272
+ name: z68.string(),
1273
+ pinNumber: z68.number().optional(),
1274
+ aliases: z68.array(z68.string()).optional(),
1257
1275
  direction
1258
1276
  });
1259
1277
 
1260
1278
  // lib/platformConfig.ts
1261
- import { z as z68 } from "zod";
1262
- var platformConfig = z68.object({
1279
+ import { z as z69 } from "zod";
1280
+ var platformConfig = z69.object({
1263
1281
  partsEngine: partsEngine.optional(),
1264
1282
  autorouter: autorouterProp.optional(),
1265
- registryApiUrl: z68.string().optional(),
1266
- cloudAutorouterUrl: z68.string().optional()
1283
+ registryApiUrl: z69.string().optional(),
1284
+ cloudAutorouterUrl: z69.string().optional()
1267
1285
  });
1268
1286
  expectTypesMatch(true);
1269
1287
  export {
@@ -1311,6 +1329,8 @@ export {
1311
1329
  fabricationNoteTextProps,
1312
1330
  footprintProp,
1313
1331
  footprintProps,
1332
+ fusePinLabels,
1333
+ fuseProps,
1314
1334
  groupProps,
1315
1335
  holeProps,
1316
1336
  inductorPins,