@tscircuit/props 0.0.367 → 0.0.368

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
@@ -655,6 +655,20 @@ var boardProps = subcircuitGroupProps.omit({ connections: true }).extend({
655
655
  });
656
656
  expectTypesMatch(true);
657
657
 
658
+ // lib/components/panel.ts
659
+ import { z as z29 } from "zod";
660
+ var panelProps = baseGroupProps.omit({
661
+ width: true,
662
+ height: true,
663
+ children: true
664
+ }).extend({
665
+ width: distance,
666
+ height: distance,
667
+ children: z29.any().optional(),
668
+ noSolderMask: z29.boolean().optional()
669
+ });
670
+ expectTypesMatch(true);
671
+
658
672
  // lib/components/breakout.ts
659
673
  import { distance as distance7 } from "circuit-json";
660
674
  import "zod";
@@ -669,33 +683,33 @@ expectTypesMatch(true);
669
683
 
670
684
  // lib/components/chip.ts
671
685
  import { distance as distance8, supplier_name as supplier_name2 } from "circuit-json";
672
- import { z as z30 } from "zod";
673
- var connectionTarget2 = z30.string().or(z30.array(z30.string()).readonly()).or(z30.array(z30.string()));
674
- var connectionsProp = z30.custom().pipe(z30.record(z30.string(), connectionTarget2));
675
- var pinLabelsProp = z30.record(
686
+ import { z as z31 } from "zod";
687
+ var connectionTarget2 = z31.string().or(z31.array(z31.string()).readonly()).or(z31.array(z31.string()));
688
+ var connectionsProp = z31.custom().pipe(z31.record(z31.string(), connectionTarget2));
689
+ var pinLabelsProp = z31.record(
676
690
  schematicPinLabel,
677
- schematicPinLabel.or(z30.array(schematicPinLabel).readonly()).or(z30.array(schematicPinLabel))
691
+ schematicPinLabel.or(z31.array(schematicPinLabel).readonly()).or(z31.array(schematicPinLabel))
678
692
  );
679
693
  expectTypesMatch(true);
680
- var pinCompatibleVariant = z30.object({
681
- manufacturerPartNumber: z30.string().optional(),
682
- supplierPartNumber: z30.record(supplier_name2, z30.array(z30.string())).optional()
694
+ var pinCompatibleVariant = z31.object({
695
+ manufacturerPartNumber: z31.string().optional(),
696
+ supplierPartNumber: z31.record(supplier_name2, z31.array(z31.string())).optional()
683
697
  });
684
698
  var chipProps = commonComponentProps.extend({
685
- manufacturerPartNumber: z30.string().optional(),
699
+ manufacturerPartNumber: z31.string().optional(),
686
700
  pinLabels: pinLabelsProp.optional(),
687
- showPinAliases: z30.boolean().optional(),
688
- pcbPinLabels: z30.record(z30.string(), z30.string()).optional(),
689
- internallyConnectedPins: z30.array(z30.array(z30.union([z30.string(), z30.number()]))).optional(),
690
- externallyConnectedPins: z30.array(z30.array(z30.string())).optional(),
701
+ showPinAliases: z31.boolean().optional(),
702
+ pcbPinLabels: z31.record(z31.string(), z31.string()).optional(),
703
+ internallyConnectedPins: z31.array(z31.array(z31.union([z31.string(), z31.number()]))).optional(),
704
+ externallyConnectedPins: z31.array(z31.array(z31.string())).optional(),
691
705
  schPinArrangement: schematicPortArrangement.optional(),
692
706
  schPortArrangement: schematicPortArrangement.optional(),
693
- pinCompatibleVariants: z30.array(pinCompatibleVariant).optional(),
707
+ pinCompatibleVariants: z31.array(pinCompatibleVariant).optional(),
694
708
  schPinStyle: schematicPinStyle.optional(),
695
709
  schPinSpacing: distance8.optional(),
696
710
  schWidth: distance8.optional(),
697
711
  schHeight: distance8.optional(),
698
- noSchematicRepresentation: z30.boolean().optional(),
712
+ noSchematicRepresentation: z31.boolean().optional(),
699
713
  connections: connectionsProp.optional()
700
714
  });
701
715
  var bugProps = chipProps;
@@ -707,93 +721,93 @@ expectTypesMatch(true);
707
721
 
708
722
  // lib/components/jumper.ts
709
723
  import { distance as distance9 } from "circuit-json";
710
- import { z as z31 } from "zod";
724
+ import { z as z32 } from "zod";
711
725
  var jumperProps = commonComponentProps.extend({
712
- manufacturerPartNumber: z31.string().optional(),
713
- pinLabels: z31.record(
714
- z31.number().or(schematicPinLabel),
715
- schematicPinLabel.or(z31.array(schematicPinLabel))
726
+ manufacturerPartNumber: z32.string().optional(),
727
+ pinLabels: z32.record(
728
+ z32.number().or(schematicPinLabel),
729
+ schematicPinLabel.or(z32.array(schematicPinLabel))
716
730
  ).optional(),
717
731
  schPinStyle: schematicPinStyle.optional(),
718
732
  schPinSpacing: distance9.optional(),
719
733
  schWidth: distance9.optional(),
720
734
  schHeight: distance9.optional(),
721
- schDirection: z31.enum(["left", "right"]).optional(),
735
+ schDirection: z32.enum(["left", "right"]).optional(),
722
736
  schPinArrangement: schematicPinArrangement.optional(),
723
737
  schPortArrangement: schematicPortArrangement.optional(),
724
- pcbPinLabels: z31.record(z31.string(), z31.string()).optional(),
725
- pinCount: z31.union([z31.literal(2), z31.literal(3)]).optional(),
726
- internallyConnectedPins: z31.array(z31.array(z31.union([z31.string(), z31.number()]))).optional(),
727
- connections: z31.custom().pipe(z31.record(z31.string(), connectionTarget)).optional()
738
+ pcbPinLabels: z32.record(z32.string(), z32.string()).optional(),
739
+ pinCount: z32.union([z32.literal(2), z32.literal(3)]).optional(),
740
+ internallyConnectedPins: z32.array(z32.array(z32.union([z32.string(), z32.number()]))).optional(),
741
+ connections: z32.custom().pipe(z32.record(z32.string(), connectionTarget)).optional()
728
742
  });
729
743
  expectTypesMatch(true);
730
744
 
731
745
  // lib/components/solderjumper.ts
732
- import { z as z32 } from "zod";
746
+ import { z as z33 } from "zod";
733
747
  var solderjumperProps = jumperProps.extend({
734
- bridgedPins: z32.array(z32.array(z32.string())).optional(),
735
- bridged: z32.boolean().optional()
748
+ bridgedPins: z33.array(z33.array(z33.string())).optional(),
749
+ bridged: z33.boolean().optional()
736
750
  });
737
751
  expectTypesMatch(true);
738
752
 
739
753
  // lib/components/connector.ts
740
754
  import { distance as distance10 } from "circuit-json";
741
- import { z as z33 } from "zod";
755
+ import { z as z34 } from "zod";
742
756
  var connectorProps = commonComponentProps.extend({
743
- manufacturerPartNumber: z33.string().optional(),
744
- pinLabels: z33.record(
745
- z33.number().or(schematicPinLabel),
746
- schematicPinLabel.or(z33.array(schematicPinLabel))
757
+ manufacturerPartNumber: z34.string().optional(),
758
+ pinLabels: z34.record(
759
+ z34.number().or(schematicPinLabel),
760
+ schematicPinLabel.or(z34.array(schematicPinLabel))
747
761
  ).optional(),
748
762
  schPinStyle: schematicPinStyle.optional(),
749
763
  schPinSpacing: distance10.optional(),
750
764
  schWidth: distance10.optional(),
751
765
  schHeight: distance10.optional(),
752
- schDirection: z33.enum(["left", "right"]).optional(),
766
+ schDirection: z34.enum(["left", "right"]).optional(),
753
767
  schPortArrangement: schematicPortArrangement.optional(),
754
- internallyConnectedPins: z33.array(z33.array(z33.union([z33.string(), z33.number()]))).optional(),
755
- standard: z33.enum(["usb_c", "m2"]).optional()
768
+ internallyConnectedPins: z34.array(z34.array(z34.union([z34.string(), z34.number()]))).optional(),
769
+ standard: z34.enum(["usb_c", "m2"]).optional()
756
770
  });
757
771
  expectTypesMatch(true);
758
772
 
759
773
  // lib/components/fuse.ts
760
- import { z as z34 } from "zod";
774
+ import { z as z35 } from "zod";
761
775
  var fusePinLabels = ["pin1", "pin2"];
762
776
  var fuseProps = commonComponentProps.extend({
763
- currentRating: z34.union([z34.number(), z34.string()]),
764
- voltageRating: z34.union([z34.number(), z34.string()]).optional(),
765
- schShowRatings: z34.boolean().optional(),
777
+ currentRating: z35.union([z35.number(), z35.string()]),
778
+ voltageRating: z35.union([z35.number(), z35.string()]).optional(),
779
+ schShowRatings: z35.boolean().optional(),
766
780
  schOrientation: schematicOrientation.optional(),
767
- connections: z34.record(
768
- z34.string(),
769
- z34.union([
770
- z34.string(),
771
- z34.array(z34.string()).readonly(),
772
- z34.array(z34.string())
781
+ connections: z35.record(
782
+ z35.string(),
783
+ z35.union([
784
+ z35.string(),
785
+ z35.array(z35.string()).readonly(),
786
+ z35.array(z35.string())
773
787
  ])
774
788
  ).optional()
775
789
  });
776
790
 
777
791
  // lib/components/platedhole.ts
778
792
  import { distance as distance11 } from "circuit-json";
779
- import { z as z35 } from "zod";
780
- var distanceHiddenUndefined = z35.custom().transform((a) => {
793
+ import { z as z36 } from "zod";
794
+ var distanceHiddenUndefined = z36.custom().transform((a) => {
781
795
  if (a === void 0) return void 0;
782
796
  return distance11.parse(a);
783
797
  });
784
- var platedHoleProps = z35.discriminatedUnion("shape", [
798
+ var platedHoleProps = z36.discriminatedUnion("shape", [
785
799
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
786
- name: z35.string().optional(),
787
- connectsTo: z35.string().or(z35.array(z35.string())).optional(),
788
- shape: z35.literal("circle"),
800
+ name: z36.string().optional(),
801
+ connectsTo: z36.string().or(z36.array(z36.string())).optional(),
802
+ shape: z36.literal("circle"),
789
803
  holeDiameter: distance11,
790
804
  outerDiameter: distance11,
791
805
  portHints: portHints.optional()
792
806
  }),
793
807
  pcbLayoutProps.omit({ layer: true }).extend({
794
- name: z35.string().optional(),
795
- connectsTo: z35.string().or(z35.array(z35.string())).optional(),
796
- shape: z35.literal("oval"),
808
+ name: z36.string().optional(),
809
+ connectsTo: z36.string().or(z36.array(z36.string())).optional(),
810
+ shape: z36.literal("oval"),
797
811
  outerWidth: distance11,
798
812
  outerHeight: distance11,
799
813
  holeWidth: distanceHiddenUndefined,
@@ -803,10 +817,10 @@ var platedHoleProps = z35.discriminatedUnion("shape", [
803
817
  portHints: portHints.optional()
804
818
  }),
805
819
  pcbLayoutProps.omit({ layer: true }).extend({
806
- name: z35.string().optional(),
807
- connectsTo: z35.string().or(z35.array(z35.string())).optional(),
808
- shape: z35.literal("pill"),
809
- rectPad: z35.boolean().optional(),
820
+ name: z36.string().optional(),
821
+ connectsTo: z36.string().or(z36.array(z36.string())).optional(),
822
+ shape: z36.literal("pill"),
823
+ rectPad: z36.boolean().optional(),
810
824
  outerWidth: distance11,
811
825
  outerHeight: distance11,
812
826
  holeWidth: distanceHiddenUndefined,
@@ -818,25 +832,25 @@ var platedHoleProps = z35.discriminatedUnion("shape", [
818
832
  holeOffsetY: distance11.optional()
819
833
  }),
820
834
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
821
- name: z35.string().optional(),
822
- connectsTo: z35.string().or(z35.array(z35.string())).optional(),
823
- shape: z35.literal("circular_hole_with_rect_pad"),
835
+ name: z36.string().optional(),
836
+ connectsTo: z36.string().or(z36.array(z36.string())).optional(),
837
+ shape: z36.literal("circular_hole_with_rect_pad"),
824
838
  holeDiameter: distance11,
825
839
  rectPadWidth: distance11,
826
840
  rectPadHeight: distance11,
827
841
  rectBorderRadius: distance11.optional(),
828
- holeShape: z35.literal("circle").optional(),
829
- padShape: z35.literal("rect").optional(),
842
+ holeShape: z36.literal("circle").optional(),
843
+ padShape: z36.literal("rect").optional(),
830
844
  portHints: portHints.optional(),
831
845
  holeOffsetX: distance11.optional(),
832
846
  holeOffsetY: distance11.optional()
833
847
  }),
834
848
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
835
- name: z35.string().optional(),
836
- connectsTo: z35.string().or(z35.array(z35.string())).optional(),
837
- shape: z35.literal("pill_hole_with_rect_pad"),
838
- holeShape: z35.literal("pill"),
839
- padShape: z35.literal("rect"),
849
+ name: z36.string().optional(),
850
+ connectsTo: z36.string().or(z36.array(z36.string())).optional(),
851
+ shape: z36.literal("pill_hole_with_rect_pad"),
852
+ holeShape: z36.literal("pill"),
853
+ padShape: z36.literal("rect"),
840
854
  holeWidth: distance11,
841
855
  holeHeight: distance11,
842
856
  rectPadWidth: distance11,
@@ -858,14 +872,14 @@ expectTypesMatch(true);
858
872
 
859
873
  // lib/components/resistor.ts
860
874
  import { resistance } from "circuit-json";
861
- import { z as z36 } from "zod";
875
+ import { z as z37 } from "zod";
862
876
  var resistorPinLabels = ["pin1", "pin2", "pos", "neg"];
863
877
  var resistorProps = commonComponentProps.extend({
864
878
  resistance,
865
- pullupFor: z36.string().optional(),
866
- pullupTo: z36.string().optional(),
867
- pulldownFor: z36.string().optional(),
868
- pulldownTo: z36.string().optional(),
879
+ pullupFor: z37.string().optional(),
880
+ pullupTo: z37.string().optional(),
881
+ pulldownFor: z37.string().optional(),
882
+ pulldownTo: z37.string().optional(),
869
883
  schOrientation: schematicOrientation.optional(),
870
884
  connections: createConnectionsProp(resistorPinLabels).optional()
871
885
  });
@@ -874,23 +888,23 @@ expectTypesMatch(true);
874
888
 
875
889
  // lib/components/potentiometer.ts
876
890
  import { resistance as resistance2 } from "circuit-json";
877
- import { z as z37 } from "zod";
891
+ import { z as z38 } from "zod";
878
892
  var potentiometerProps = commonComponentProps.extend({
879
893
  maxResistance: resistance2,
880
- pinVariant: z37.enum(["two_pin", "three_pin"]).optional()
894
+ pinVariant: z38.enum(["two_pin", "three_pin"]).optional()
881
895
  });
882
896
  expectTypesMatch(true);
883
897
 
884
898
  // lib/components/crystal.ts
885
899
  import { frequency, capacitance } from "circuit-json";
886
- import { z as z38 } from "zod";
900
+ import { z as z39 } from "zod";
887
901
  var crystalPins = lrPins;
888
902
  var crystalProps = commonComponentProps.extend({
889
903
  frequency,
890
904
  loadCapacitance: capacitance,
891
- manufacturerPartNumber: z38.string().optional(),
892
- mpn: z38.string().optional(),
893
- pinVariant: z38.enum(["two_pin", "four_pin"]).optional(),
905
+ manufacturerPartNumber: z39.string().optional(),
906
+ mpn: z39.string().optional(),
907
+ pinVariant: z39.enum(["two_pin", "four_pin"]).optional(),
894
908
  schOrientation: schematicOrientation.optional(),
895
909
  connections: createConnectionsProp(crystalPins).optional()
896
910
  });
@@ -898,34 +912,34 @@ expectTypesMatch(true);
898
912
 
899
913
  // lib/components/resonator.ts
900
914
  import { frequency as frequency2, capacitance as capacitance2 } from "circuit-json";
901
- import { z as z39 } from "zod";
915
+ import { z as z40 } from "zod";
902
916
  var resonatorProps = commonComponentProps.extend({
903
917
  frequency: frequency2,
904
918
  loadCapacitance: capacitance2,
905
- pinVariant: z39.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
919
+ pinVariant: z40.enum(["no_ground", "ground_pin", "two_ground_pins"]).optional()
906
920
  });
907
921
  expectTypesMatch(true);
908
922
 
909
923
  // lib/components/stampboard.ts
910
924
  import { distance as distance12 } from "circuit-json";
911
- import { z as z40 } from "zod";
925
+ import { z as z41 } from "zod";
912
926
  var stampboardProps = boardProps.extend({
913
- leftPinCount: z40.number().optional(),
914
- rightPinCount: z40.number().optional(),
915
- topPinCount: z40.number().optional(),
916
- bottomPinCount: z40.number().optional(),
917
- leftPins: z40.array(z40.string()).optional(),
918
- rightPins: z40.array(z40.string()).optional(),
919
- topPins: z40.array(z40.string()).optional(),
920
- bottomPins: z40.array(z40.string()).optional(),
927
+ leftPinCount: z41.number().optional(),
928
+ rightPinCount: z41.number().optional(),
929
+ topPinCount: z41.number().optional(),
930
+ bottomPinCount: z41.number().optional(),
931
+ leftPins: z41.array(z41.string()).optional(),
932
+ rightPins: z41.array(z41.string()).optional(),
933
+ topPins: z41.array(z41.string()).optional(),
934
+ bottomPins: z41.array(z41.string()).optional(),
921
935
  pinPitch: distance12.optional(),
922
- innerHoles: z40.boolean().optional()
936
+ innerHoles: z41.boolean().optional()
923
937
  });
924
938
  expectTypesMatch(true);
925
939
 
926
940
  // lib/components/capacitor.ts
927
941
  import { capacitance as capacitance3, voltage } from "circuit-json";
928
- import { z as z41 } from "zod";
942
+ import { z as z42 } from "zod";
929
943
  var capacitorPinLabels = [
930
944
  "pin1",
931
945
  "pin2",
@@ -937,13 +951,13 @@ var capacitorPinLabels = [
937
951
  var capacitorProps = commonComponentProps.extend({
938
952
  capacitance: capacitance3,
939
953
  maxVoltageRating: voltage.optional(),
940
- schShowRatings: z41.boolean().optional().default(false),
941
- polarized: z41.boolean().optional().default(false),
942
- decouplingFor: z41.string().optional(),
943
- decouplingTo: z41.string().optional(),
944
- bypassFor: z41.string().optional(),
945
- bypassTo: z41.string().optional(),
946
- maxDecouplingTraceLength: z41.number().optional(),
954
+ schShowRatings: z42.boolean().optional().default(false),
955
+ polarized: z42.boolean().optional().default(false),
956
+ decouplingFor: z42.string().optional(),
957
+ decouplingTo: z42.string().optional(),
958
+ bypassFor: z42.string().optional(),
959
+ bypassTo: z42.string().optional(),
960
+ maxDecouplingTraceLength: z42.number().optional(),
947
961
  schOrientation: schematicOrientation.optional(),
948
962
  connections: createConnectionsProp(capacitorPinLabels).optional()
949
963
  });
@@ -951,64 +965,64 @@ var capacitorPins = lrPolarPins;
951
965
  expectTypesMatch(true);
952
966
 
953
967
  // lib/components/net.ts
954
- import { z as z42 } from "zod";
955
- var netProps = z42.object({
956
- name: z42.string(),
957
- connectsTo: z42.string().or(z42.array(z42.string())).optional(),
958
- highlightColor: z42.string().optional()
968
+ import { z as z43 } from "zod";
969
+ var netProps = z43.object({
970
+ name: z43.string(),
971
+ connectsTo: z43.string().or(z43.array(z43.string())).optional(),
972
+ highlightColor: z43.string().optional()
959
973
  });
960
974
  expectTypesMatch(true);
961
975
 
962
976
  // lib/components/constrainedlayout.ts
963
- import { z as z43 } from "zod";
964
- var constrainedLayoutProps = z43.object({
965
- name: z43.string().optional(),
966
- pcbOnly: z43.boolean().optional(),
967
- schOnly: z43.boolean().optional()
977
+ import { z as z44 } from "zod";
978
+ var constrainedLayoutProps = z44.object({
979
+ name: z44.string().optional(),
980
+ pcbOnly: z44.boolean().optional(),
981
+ schOnly: z44.boolean().optional()
968
982
  });
969
983
  expectTypesMatch(true);
970
984
 
971
985
  // lib/components/constraint.ts
972
- import { z as z44 } from "zod";
973
- var pcbXDistConstraintProps = z44.object({
974
- pcb: z44.literal(true).optional(),
986
+ import { z as z45 } from "zod";
987
+ var pcbXDistConstraintProps = z45.object({
988
+ pcb: z45.literal(true).optional(),
975
989
  xDist: distance,
976
- left: z44.string(),
977
- right: z44.string(),
978
- edgeToEdge: z44.literal(true).optional(),
979
- centerToCenter: z44.literal(true).optional()
990
+ left: z45.string(),
991
+ right: z45.string(),
992
+ edgeToEdge: z45.literal(true).optional(),
993
+ centerToCenter: z45.literal(true).optional()
980
994
  });
981
995
  expectTypesMatch(
982
996
  true
983
997
  );
984
- var pcbYDistConstraintProps = z44.object({
985
- pcb: z44.literal(true).optional(),
998
+ var pcbYDistConstraintProps = z45.object({
999
+ pcb: z45.literal(true).optional(),
986
1000
  yDist: distance,
987
- top: z44.string(),
988
- bottom: z44.string(),
989
- edgeToEdge: z44.literal(true).optional(),
990
- centerToCenter: z44.literal(true).optional()
1001
+ top: z45.string(),
1002
+ bottom: z45.string(),
1003
+ edgeToEdge: z45.literal(true).optional(),
1004
+ centerToCenter: z45.literal(true).optional()
991
1005
  });
992
1006
  expectTypesMatch(
993
1007
  true
994
1008
  );
995
- var pcbSameYConstraintProps = z44.object({
996
- pcb: z44.literal(true).optional(),
997
- sameY: z44.literal(true).optional(),
998
- for: z44.array(z44.string())
1009
+ var pcbSameYConstraintProps = z45.object({
1010
+ pcb: z45.literal(true).optional(),
1011
+ sameY: z45.literal(true).optional(),
1012
+ for: z45.array(z45.string())
999
1013
  });
1000
1014
  expectTypesMatch(
1001
1015
  true
1002
1016
  );
1003
- var pcbSameXConstraintProps = z44.object({
1004
- pcb: z44.literal(true).optional(),
1005
- sameX: z44.literal(true).optional(),
1006
- for: z44.array(z44.string())
1017
+ var pcbSameXConstraintProps = z45.object({
1018
+ pcb: z45.literal(true).optional(),
1019
+ sameX: z45.literal(true).optional(),
1020
+ for: z45.array(z45.string())
1007
1021
  });
1008
1022
  expectTypesMatch(
1009
1023
  true
1010
1024
  );
1011
- var constraintProps = z44.union([
1025
+ var constraintProps = z45.union([
1012
1026
  pcbXDistConstraintProps,
1013
1027
  pcbYDistConstraintProps,
1014
1028
  pcbSameYConstraintProps,
@@ -1017,13 +1031,13 @@ var constraintProps = z44.union([
1017
1031
  expectTypesMatch(true);
1018
1032
 
1019
1033
  // lib/components/cutout.ts
1020
- import { z as z45 } from "zod";
1034
+ import { z as z46 } from "zod";
1021
1035
  var rectCutoutProps = pcbLayoutProps.omit({
1022
1036
  layer: true,
1023
1037
  pcbRotation: true
1024
1038
  }).extend({
1025
- name: z45.string().optional(),
1026
- shape: z45.literal("rect"),
1039
+ name: z46.string().optional(),
1040
+ shape: z46.literal("rect"),
1027
1041
  width: distance,
1028
1042
  height: distance
1029
1043
  });
@@ -1032,8 +1046,8 @@ var circleCutoutProps = pcbLayoutProps.omit({
1032
1046
  layer: true,
1033
1047
  pcbRotation: true
1034
1048
  }).extend({
1035
- name: z45.string().optional(),
1036
- shape: z45.literal("circle"),
1049
+ name: z46.string().optional(),
1050
+ shape: z46.literal("circle"),
1037
1051
  radius: distance
1038
1052
  });
1039
1053
  expectTypesMatch(true);
@@ -1041,68 +1055,68 @@ var polygonCutoutProps = pcbLayoutProps.omit({
1041
1055
  layer: true,
1042
1056
  pcbRotation: true
1043
1057
  }).extend({
1044
- name: z45.string().optional(),
1045
- shape: z45.literal("polygon"),
1046
- points: z45.array(point)
1058
+ name: z46.string().optional(),
1059
+ shape: z46.literal("polygon"),
1060
+ points: z46.array(point)
1047
1061
  });
1048
1062
  expectTypesMatch(true);
1049
- var cutoutProps = z45.discriminatedUnion("shape", [
1063
+ var cutoutProps = z46.discriminatedUnion("shape", [
1050
1064
  rectCutoutProps,
1051
1065
  circleCutoutProps,
1052
1066
  polygonCutoutProps
1053
1067
  ]);
1054
1068
 
1055
1069
  // lib/components/smtpad.ts
1056
- import { z as z46 } from "zod";
1070
+ import { z as z47 } from "zod";
1057
1071
  var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1058
- name: z46.string().optional(),
1059
- shape: z46.literal("rect"),
1072
+ name: z47.string().optional(),
1073
+ shape: z47.literal("rect"),
1060
1074
  width: distance,
1061
1075
  height: distance,
1062
1076
  rectBorderRadius: distance.optional(),
1063
1077
  cornerRadius: distance.optional(),
1064
1078
  portHints: portHints.optional(),
1065
- coveredWithSolderMask: z46.boolean().optional()
1079
+ coveredWithSolderMask: z47.boolean().optional()
1066
1080
  });
1067
1081
  expectTypesMatch(true);
1068
1082
  var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1069
- name: z46.string().optional(),
1070
- shape: z46.literal("rotated_rect"),
1083
+ name: z47.string().optional(),
1084
+ shape: z47.literal("rotated_rect"),
1071
1085
  width: distance,
1072
1086
  height: distance,
1073
- ccwRotation: z46.number(),
1087
+ ccwRotation: z47.number(),
1074
1088
  cornerRadius: distance.optional(),
1075
1089
  portHints: portHints.optional(),
1076
- coveredWithSolderMask: z46.boolean().optional()
1090
+ coveredWithSolderMask: z47.boolean().optional()
1077
1091
  });
1078
1092
  expectTypesMatch(true);
1079
1093
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1080
- name: z46.string().optional(),
1081
- shape: z46.literal("circle"),
1094
+ name: z47.string().optional(),
1095
+ shape: z47.literal("circle"),
1082
1096
  radius: distance,
1083
1097
  portHints: portHints.optional(),
1084
- coveredWithSolderMask: z46.boolean().optional()
1098
+ coveredWithSolderMask: z47.boolean().optional()
1085
1099
  });
1086
1100
  expectTypesMatch(true);
1087
1101
  var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1088
- name: z46.string().optional(),
1089
- shape: z46.literal("pill"),
1102
+ name: z47.string().optional(),
1103
+ shape: z47.literal("pill"),
1090
1104
  width: distance,
1091
1105
  height: distance,
1092
1106
  radius: distance,
1093
1107
  portHints: portHints.optional(),
1094
- coveredWithSolderMask: z46.boolean().optional()
1108
+ coveredWithSolderMask: z47.boolean().optional()
1095
1109
  });
1096
1110
  expectTypesMatch(true);
1097
1111
  var polygonSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1098
- name: z46.string().optional(),
1099
- shape: z46.literal("polygon"),
1100
- points: z46.array(point),
1112
+ name: z47.string().optional(),
1113
+ shape: z47.literal("polygon"),
1114
+ points: z47.array(point),
1101
1115
  portHints: portHints.optional(),
1102
- coveredWithSolderMask: z46.boolean().optional()
1116
+ coveredWithSolderMask: z47.boolean().optional()
1103
1117
  });
1104
1118
  expectTypesMatch(true);
1105
- var smtPadProps = z46.discriminatedUnion("shape", [
1119
+ var smtPadProps = z47.discriminatedUnion("shape", [
1106
1120
  circleSmtPadProps,
1107
1121
  rectSmtPadProps,
1108
1122
  rotatedRectSmtPadProps,
@@ -1112,29 +1126,29 @@ var smtPadProps = z46.discriminatedUnion("shape", [
1112
1126
  expectTypesMatch(true);
1113
1127
 
1114
1128
  // lib/components/solderpaste.ts
1115
- import { z as z47 } from "zod";
1129
+ import { z as z48 } from "zod";
1116
1130
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1117
- shape: z47.literal("rect"),
1131
+ shape: z48.literal("rect"),
1118
1132
  width: distance,
1119
1133
  height: distance
1120
1134
  });
1121
1135
  expectTypesMatch(true);
1122
1136
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1123
- shape: z47.literal("circle"),
1137
+ shape: z48.literal("circle"),
1124
1138
  radius: distance
1125
1139
  });
1126
1140
  expectTypesMatch(true);
1127
- var solderPasteProps = z47.union([
1141
+ var solderPasteProps = z48.union([
1128
1142
  circleSolderPasteProps,
1129
1143
  rectSolderPasteProps
1130
1144
  ]);
1131
1145
  expectTypesMatch(true);
1132
1146
 
1133
1147
  // lib/components/hole.ts
1134
- import { z as z48 } from "zod";
1148
+ import { z as z49 } from "zod";
1135
1149
  var circleHoleProps = pcbLayoutProps.extend({
1136
- name: z48.string().optional(),
1137
- shape: z48.literal("circle").optional(),
1150
+ name: z49.string().optional(),
1151
+ shape: z49.literal("circle").optional(),
1138
1152
  diameter: distance.optional(),
1139
1153
  radius: distance.optional()
1140
1154
  }).transform((d) => ({
@@ -1143,38 +1157,38 @@ var circleHoleProps = pcbLayoutProps.extend({
1143
1157
  radius: d.radius ?? d.diameter / 2
1144
1158
  }));
1145
1159
  var pillHoleProps = pcbLayoutProps.extend({
1146
- name: z48.string().optional(),
1147
- shape: z48.literal("pill"),
1160
+ name: z49.string().optional(),
1161
+ shape: z49.literal("pill"),
1148
1162
  width: distance,
1149
1163
  height: distance
1150
1164
  });
1151
- var holeProps = z48.union([circleHoleProps, pillHoleProps]);
1165
+ var holeProps = z49.union([circleHoleProps, pillHoleProps]);
1152
1166
  expectTypesMatch(true);
1153
1167
 
1154
1168
  // lib/components/trace.ts
1155
1169
  import { distance as distance13, route_hint_point as route_hint_point2 } from "circuit-json";
1156
- import { z as z49 } from "zod";
1157
- var portRef = z49.union([
1158
- z49.string(),
1159
- z49.custom(
1170
+ import { z as z50 } from "zod";
1171
+ var portRef = z50.union([
1172
+ z50.string(),
1173
+ z50.custom(
1160
1174
  (v) => Boolean(v.getPortSelector)
1161
1175
  )
1162
1176
  ]);
1163
- var baseTraceProps = z49.object({
1164
- key: z49.string().optional(),
1177
+ var baseTraceProps = z50.object({
1178
+ key: z50.string().optional(),
1165
1179
  thickness: distance13.optional(),
1166
- schematicRouteHints: z49.array(point).optional(),
1167
- pcbRouteHints: z49.array(route_hint_point2).optional(),
1168
- pcbPathRelativeTo: z49.string().optional(),
1169
- pcbPath: z49.array(point).optional(),
1170
- schDisplayLabel: z49.string().optional(),
1171
- schStroke: z49.string().optional(),
1172
- highlightColor: z49.string().optional(),
1180
+ schematicRouteHints: z50.array(point).optional(),
1181
+ pcbRouteHints: z50.array(route_hint_point2).optional(),
1182
+ pcbPathRelativeTo: z50.string().optional(),
1183
+ pcbPath: z50.array(point).optional(),
1184
+ schDisplayLabel: z50.string().optional(),
1185
+ schStroke: z50.string().optional(),
1186
+ highlightColor: z50.string().optional(),
1173
1187
  maxLength: distance13.optional()
1174
1188
  });
1175
- var traceProps = z49.union([
1189
+ var traceProps = z50.union([
1176
1190
  baseTraceProps.extend({
1177
- path: z49.array(portRef)
1191
+ path: z50.array(portRef)
1178
1192
  }),
1179
1193
  baseTraceProps.extend({
1180
1194
  from: portRef,
@@ -1184,23 +1198,23 @@ var traceProps = z49.union([
1184
1198
 
1185
1199
  // lib/components/footprint.ts
1186
1200
  import { layer_ref as layer_ref4 } from "circuit-json";
1187
- import { z as z50 } from "zod";
1188
- var footprintProps = z50.object({
1201
+ import { z as z51 } from "zod";
1202
+ var footprintProps = z51.object({
1189
1203
  originalLayer: layer_ref4.default("top").optional()
1190
1204
  });
1191
1205
  expectTypesMatch(true);
1192
1206
 
1193
1207
  // lib/components/symbol.ts
1194
- import { z as z51 } from "zod";
1195
- var symbolProps = z51.object({
1196
- originalFacingDirection: z51.enum(["up", "down", "left", "right"]).default("right").optional()
1208
+ import { z as z52 } from "zod";
1209
+ var symbolProps = z52.object({
1210
+ originalFacingDirection: z52.enum(["up", "down", "left", "right"]).default("right").optional()
1197
1211
  });
1198
1212
  expectTypesMatch(true);
1199
1213
 
1200
1214
  // lib/components/battery.ts
1201
1215
  import { voltage as voltage2 } from "circuit-json";
1202
- import { z as z52 } from "zod";
1203
- var capacity = z52.number().or(z52.string().endsWith("mAh")).transform((v) => {
1216
+ import { z as z53 } from "zod";
1217
+ var capacity = z53.number().or(z53.string().endsWith("mAh")).transform((v) => {
1204
1218
  if (typeof v === "string") {
1205
1219
  const valString = v.replace("mAh", "");
1206
1220
  const num = Number.parseFloat(valString);
@@ -1214,7 +1228,7 @@ var capacity = z52.number().or(z52.string().endsWith("mAh")).transform((v) => {
1214
1228
  var batteryProps = commonComponentProps.extend({
1215
1229
  capacity: capacity.optional(),
1216
1230
  voltage: voltage2.optional(),
1217
- standard: z52.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
1231
+ standard: z53.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
1218
1232
  schOrientation: schematicOrientation.optional()
1219
1233
  });
1220
1234
  var batteryPins = lrPolarPins;
@@ -1224,29 +1238,29 @@ expectTypesMatch(true);
1224
1238
  import { distance as distance14 } from "circuit-json";
1225
1239
 
1226
1240
  // lib/common/pcbOrientation.ts
1227
- import { z as z53 } from "zod";
1228
- var pcbOrientation = z53.enum(["vertical", "horizontal"]).describe(
1241
+ import { z as z54 } from "zod";
1242
+ var pcbOrientation = z54.enum(["vertical", "horizontal"]).describe(
1229
1243
  "vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward"
1230
1244
  );
1231
1245
  expectTypesMatch(true);
1232
1246
 
1233
1247
  // lib/components/pin-header.ts
1234
- import { z as z54 } from "zod";
1248
+ import { z as z55 } from "zod";
1235
1249
  var pinHeaderProps = commonComponentProps.extend({
1236
- pinCount: z54.number(),
1250
+ pinCount: z55.number(),
1237
1251
  pitch: distance14.optional(),
1238
- schFacingDirection: z54.enum(["up", "down", "left", "right"]).optional(),
1239
- gender: z54.enum(["male", "female", "unpopulated"]).optional().default("male"),
1240
- showSilkscreenPinLabels: z54.boolean().optional(),
1241
- pcbPinLabels: z54.record(z54.string(), z54.string()).optional(),
1242
- doubleRow: z54.boolean().optional(),
1243
- rightAngle: z54.boolean().optional(),
1252
+ schFacingDirection: z55.enum(["up", "down", "left", "right"]).optional(),
1253
+ gender: z55.enum(["male", "female", "unpopulated"]).optional().default("male"),
1254
+ showSilkscreenPinLabels: z55.boolean().optional(),
1255
+ pcbPinLabels: z55.record(z55.string(), z55.string()).optional(),
1256
+ doubleRow: z55.boolean().optional(),
1257
+ rightAngle: z55.boolean().optional(),
1244
1258
  pcbOrientation: pcbOrientation.optional(),
1245
1259
  holeDiameter: distance14.optional(),
1246
1260
  platedDiameter: distance14.optional(),
1247
- pinLabels: z54.record(z54.string(), schematicPinLabel).or(z54.array(schematicPinLabel)).optional(),
1248
- connections: z54.custom().pipe(z54.record(z54.string(), connectionTarget)).optional(),
1249
- facingDirection: z54.enum(["left", "right"]).optional(),
1261
+ pinLabels: z55.record(z55.string(), schematicPinLabel).or(z55.array(schematicPinLabel)).optional(),
1262
+ connections: z55.custom().pipe(z55.record(z55.string(), connectionTarget)).optional(),
1263
+ facingDirection: z55.enum(["left", "right"]).optional(),
1250
1264
  schPinArrangement: schematicPinArrangement.optional(),
1251
1265
  schPinStyle: schematicPinStyle.optional(),
1252
1266
  schPinSpacing: distance14.optional(),
@@ -1256,29 +1270,29 @@ var pinHeaderProps = commonComponentProps.extend({
1256
1270
  expectTypesMatch(true);
1257
1271
 
1258
1272
  // lib/components/netalias.ts
1259
- import { z as z55 } from "zod";
1273
+ import { z as z56 } from "zod";
1260
1274
  import { rotation as rotation2 } from "circuit-json";
1261
- var netAliasProps = z55.object({
1262
- net: z55.string().optional(),
1263
- connection: z55.string().optional(),
1275
+ var netAliasProps = z56.object({
1276
+ net: z56.string().optional(),
1277
+ connection: z56.string().optional(),
1264
1278
  schX: distance.optional(),
1265
1279
  schY: distance.optional(),
1266
1280
  schRotation: rotation2.optional(),
1267
- anchorSide: z55.enum(["left", "top", "right", "bottom"]).optional()
1281
+ anchorSide: z56.enum(["left", "top", "right", "bottom"]).optional()
1268
1282
  });
1269
1283
  expectTypesMatch(true);
1270
1284
 
1271
1285
  // lib/components/netlabel.ts
1272
- import { z as z56 } from "zod";
1286
+ import { z as z57 } from "zod";
1273
1287
  import { rotation as rotation3 } from "circuit-json";
1274
- var netLabelProps = z56.object({
1275
- net: z56.string().optional(),
1276
- connection: z56.string().optional(),
1277
- connectsTo: z56.string().or(z56.array(z56.string())).optional(),
1288
+ var netLabelProps = z57.object({
1289
+ net: z57.string().optional(),
1290
+ connection: z57.string().optional(),
1291
+ connectsTo: z57.string().or(z57.array(z57.string())).optional(),
1278
1292
  schX: distance.optional(),
1279
1293
  schY: distance.optional(),
1280
1294
  schRotation: rotation3.optional(),
1281
- anchorSide: z56.enum(["left", "top", "right", "bottom"]).optional()
1295
+ anchorSide: z57.enum(["left", "top", "right", "bottom"]).optional()
1282
1296
  });
1283
1297
  expectTypesMatch(true);
1284
1298
 
@@ -1293,9 +1307,9 @@ expectTypesMatch(true);
1293
1307
 
1294
1308
  // lib/components/analogsimulation.ts
1295
1309
  import { ms } from "circuit-json";
1296
- import { z as z58 } from "zod";
1297
- var analogSimulationProps = z58.object({
1298
- simulationType: z58.literal("spice_transient_analysis").default("spice_transient_analysis"),
1310
+ import { z as z59 } from "zod";
1311
+ var analogSimulationProps = z59.object({
1312
+ simulationType: z59.literal("spice_transient_analysis").default("spice_transient_analysis"),
1299
1313
  duration: ms.optional(),
1300
1314
  timePerStep: ms.optional()
1301
1315
  });
@@ -1304,7 +1318,7 @@ expectTypesMatch(
1304
1318
  );
1305
1319
 
1306
1320
  // lib/components/transistor.ts
1307
- import { z as z59 } from "zod";
1321
+ import { z as z60 } from "zod";
1308
1322
  var transistorPinsLabels = [
1309
1323
  "pin1",
1310
1324
  "pin2",
@@ -1317,7 +1331,7 @@ var transistorPinsLabels = [
1317
1331
  "drain"
1318
1332
  ];
1319
1333
  var transistorProps = commonComponentProps.extend({
1320
- type: z59.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
1334
+ type: z60.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
1321
1335
  connections: createConnectionsProp(transistorPinsLabels).optional()
1322
1336
  });
1323
1337
  var transistorPins = [
@@ -1331,10 +1345,10 @@ var transistorPins = [
1331
1345
  expectTypesMatch(true);
1332
1346
 
1333
1347
  // lib/components/mosfet.ts
1334
- import { z as z60 } from "zod";
1348
+ import { z as z61 } from "zod";
1335
1349
  var mosfetProps = commonComponentProps.extend({
1336
- channelType: z60.enum(["n", "p"]),
1337
- mosfetMode: z60.enum(["enhancement", "depletion"])
1350
+ channelType: z61.enum(["n", "p"]),
1351
+ mosfetMode: z61.enum(["enhancement", "depletion"])
1338
1352
  });
1339
1353
  var mosfetPins = [
1340
1354
  "pin1",
@@ -1348,19 +1362,19 @@ expectTypesMatch(true);
1348
1362
 
1349
1363
  // lib/components/inductor.ts
1350
1364
  import { inductance } from "circuit-json";
1351
- import { z as z61 } from "zod";
1365
+ import { z as z62 } from "zod";
1352
1366
  var inductorPins = lrPins;
1353
1367
  var inductorProps = commonComponentProps.extend({
1354
1368
  inductance,
1355
- maxCurrentRating: z61.union([z61.string(), z61.number()]).optional(),
1369
+ maxCurrentRating: z62.union([z62.string(), z62.number()]).optional(),
1356
1370
  schOrientation: schematicOrientation.optional(),
1357
1371
  connections: createConnectionsProp(inductorPins).optional()
1358
1372
  });
1359
1373
  expectTypesMatch(true);
1360
1374
 
1361
1375
  // lib/components/diode.ts
1362
- import { z as z62 } from "zod";
1363
- var diodeConnectionKeys = z62.enum([
1376
+ import { z as z63 } from "zod";
1377
+ var diodeConnectionKeys = z63.enum([
1364
1378
  "anode",
1365
1379
  "cathode",
1366
1380
  "pin1",
@@ -1368,9 +1382,9 @@ var diodeConnectionKeys = z62.enum([
1368
1382
  "pos",
1369
1383
  "neg"
1370
1384
  ]);
1371
- var connectionTarget3 = z62.string().or(z62.array(z62.string()).readonly()).or(z62.array(z62.string()));
1372
- var connectionsProp2 = z62.record(diodeConnectionKeys, connectionTarget3);
1373
- var diodeVariant = z62.enum([
1385
+ var connectionTarget3 = z63.string().or(z63.array(z63.string()).readonly()).or(z63.array(z63.string()));
1386
+ var connectionsProp2 = z63.record(diodeConnectionKeys, connectionTarget3);
1387
+ var diodeVariant = z63.enum([
1374
1388
  "standard",
1375
1389
  "schottky",
1376
1390
  "zener",
@@ -1381,12 +1395,12 @@ var diodeVariant = z62.enum([
1381
1395
  var diodeProps = commonComponentProps.extend({
1382
1396
  connections: connectionsProp2.optional(),
1383
1397
  variant: diodeVariant.optional().default("standard"),
1384
- standard: z62.boolean().optional(),
1385
- schottky: z62.boolean().optional(),
1386
- zener: z62.boolean().optional(),
1387
- avalanche: z62.boolean().optional(),
1388
- photo: z62.boolean().optional(),
1389
- tvs: z62.boolean().optional(),
1398
+ standard: z63.boolean().optional(),
1399
+ schottky: z63.boolean().optional(),
1400
+ zener: z63.boolean().optional(),
1401
+ avalanche: z63.boolean().optional(),
1402
+ photo: z63.boolean().optional(),
1403
+ tvs: z63.boolean().optional(),
1390
1404
  schOrientation: schematicOrientation.optional()
1391
1405
  }).superRefine((data, ctx) => {
1392
1406
  const enabledFlags = [
@@ -1399,11 +1413,11 @@ var diodeProps = commonComponentProps.extend({
1399
1413
  ].filter(Boolean).length;
1400
1414
  if (enabledFlags > 1) {
1401
1415
  ctx.addIssue({
1402
- code: z62.ZodIssueCode.custom,
1416
+ code: z63.ZodIssueCode.custom,
1403
1417
  message: "Exactly one diode variant must be enabled",
1404
1418
  path: []
1405
1419
  });
1406
- return z62.INVALID;
1420
+ return z63.INVALID;
1407
1421
  }
1408
1422
  }).transform((data) => {
1409
1423
  const result = {
@@ -1450,33 +1464,33 @@ var diodePins = lrPolarPins;
1450
1464
  expectTypesMatch(true);
1451
1465
 
1452
1466
  // lib/components/led.ts
1453
- import { z as z63 } from "zod";
1467
+ import { z as z64 } from "zod";
1454
1468
  var ledProps = commonComponentProps.extend({
1455
- color: z63.string().optional(),
1456
- wavelength: z63.string().optional(),
1457
- schDisplayValue: z63.string().optional(),
1469
+ color: z64.string().optional(),
1470
+ wavelength: z64.string().optional(),
1471
+ schDisplayValue: z64.string().optional(),
1458
1472
  schOrientation: schematicOrientation.optional(),
1459
1473
  connections: createConnectionsProp(lrPolarPins).optional(),
1460
- laser: z63.boolean().optional()
1474
+ laser: z64.boolean().optional()
1461
1475
  });
1462
1476
  var ledPins = lrPolarPins;
1463
1477
 
1464
1478
  // lib/components/switch.ts
1465
1479
  import { ms as ms2, frequency as frequency3 } from "circuit-json";
1466
- import { z as z64 } from "zod";
1480
+ import { z as z65 } from "zod";
1467
1481
  var switchProps = commonComponentProps.extend({
1468
- type: z64.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1469
- isNormallyClosed: z64.boolean().optional().default(false),
1470
- spst: z64.boolean().optional(),
1471
- spdt: z64.boolean().optional(),
1472
- dpst: z64.boolean().optional(),
1473
- dpdt: z64.boolean().optional(),
1482
+ type: z65.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1483
+ isNormallyClosed: z65.boolean().optional().default(false),
1484
+ spst: z65.boolean().optional(),
1485
+ spdt: z65.boolean().optional(),
1486
+ dpst: z65.boolean().optional(),
1487
+ dpdt: z65.boolean().optional(),
1474
1488
  simSwitchFrequency: frequency3.optional(),
1475
1489
  simCloseAt: ms2.optional(),
1476
1490
  simOpenAt: ms2.optional(),
1477
- simStartClosed: z64.boolean().optional(),
1478
- simStartOpen: z64.boolean().optional(),
1479
- connections: z64.custom().pipe(z64.record(z64.string(), connectionTarget)).optional()
1491
+ simStartClosed: z65.boolean().optional(),
1492
+ simStartOpen: z65.boolean().optional(),
1493
+ connections: z65.custom().pipe(z65.record(z65.string(), connectionTarget)).optional()
1480
1494
  }).transform((props) => {
1481
1495
  const updatedProps = { ...props };
1482
1496
  if (updatedProps.dpdt) {
@@ -1508,82 +1522,82 @@ expectTypesMatch(true);
1508
1522
 
1509
1523
  // lib/components/fabrication-note-text.ts
1510
1524
  import { length as length3 } from "circuit-json";
1511
- import { z as z65 } from "zod";
1525
+ import { z as z66 } from "zod";
1512
1526
  var fabricationNoteTextProps = pcbLayoutProps.extend({
1513
- text: z65.string(),
1514
- anchorAlignment: z65.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1515
- font: z65.enum(["tscircuit2024"]).optional(),
1527
+ text: z66.string(),
1528
+ anchorAlignment: z66.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1529
+ font: z66.enum(["tscircuit2024"]).optional(),
1516
1530
  fontSize: length3.optional(),
1517
- color: z65.string().optional()
1531
+ color: z66.string().optional()
1518
1532
  });
1519
1533
  expectTypesMatch(true);
1520
1534
 
1521
1535
  // lib/components/fabrication-note-rect.ts
1522
1536
  import { distance as distance15 } from "circuit-json";
1523
- import { z as z66 } from "zod";
1537
+ import { z as z67 } from "zod";
1524
1538
  var fabricationNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1525
1539
  width: distance15,
1526
1540
  height: distance15,
1527
1541
  strokeWidth: distance15.optional(),
1528
- isFilled: z66.boolean().optional(),
1529
- hasStroke: z66.boolean().optional(),
1530
- isStrokeDashed: z66.boolean().optional(),
1531
- color: z66.string().optional()
1542
+ isFilled: z67.boolean().optional(),
1543
+ hasStroke: z67.boolean().optional(),
1544
+ isStrokeDashed: z67.boolean().optional(),
1545
+ color: z67.string().optional()
1532
1546
  });
1533
1547
 
1534
1548
  // lib/components/fabrication-note-path.ts
1535
1549
  import { length as length4, route_hint_point as route_hint_point3 } from "circuit-json";
1536
- import { z as z67 } from "zod";
1550
+ import { z as z68 } from "zod";
1537
1551
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1538
- route: z67.array(route_hint_point3),
1552
+ route: z68.array(route_hint_point3),
1539
1553
  strokeWidth: length4.optional(),
1540
- color: z67.string().optional()
1554
+ color: z68.string().optional()
1541
1555
  });
1542
1556
 
1543
1557
  // lib/components/fabrication-note-dimension.ts
1544
1558
  import { distance as distance16, length as length5 } from "circuit-json";
1545
- import { z as z68 } from "zod";
1546
- var dimensionTarget = z68.union([z68.string(), point]);
1559
+ import { z as z69 } from "zod";
1560
+ var dimensionTarget = z69.union([z69.string(), point]);
1547
1561
  var fabricationNoteDimensionProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1548
1562
  from: dimensionTarget,
1549
1563
  to: dimensionTarget,
1550
- text: z68.string().optional(),
1564
+ text: z69.string().optional(),
1551
1565
  offset: distance16.optional(),
1552
- font: z68.enum(["tscircuit2024"]).optional(),
1566
+ font: z69.enum(["tscircuit2024"]).optional(),
1553
1567
  fontSize: length5.optional(),
1554
- color: z68.string().optional(),
1568
+ color: z69.string().optional(),
1555
1569
  arrowSize: distance16.optional()
1556
1570
  });
1557
1571
  expectTypesMatch(true);
1558
1572
 
1559
1573
  // lib/components/pcb-trace.ts
1560
1574
  import { distance as distance17, route_hint_point as route_hint_point4 } from "circuit-json";
1561
- import { z as z69 } from "zod";
1562
- var pcbTraceProps = z69.object({
1563
- layer: z69.string().optional(),
1575
+ import { z as z70 } from "zod";
1576
+ var pcbTraceProps = z70.object({
1577
+ layer: z70.string().optional(),
1564
1578
  thickness: distance17.optional(),
1565
- route: z69.array(route_hint_point4)
1579
+ route: z70.array(route_hint_point4)
1566
1580
  });
1567
1581
 
1568
1582
  // lib/components/via.ts
1569
1583
  import { distance as distance18, layer_ref as layer_ref5 } from "circuit-json";
1570
- import { z as z70 } from "zod";
1584
+ import { z as z71 } from "zod";
1571
1585
  var viaProps = commonLayoutProps.extend({
1572
- name: z70.string().optional(),
1586
+ name: z71.string().optional(),
1573
1587
  fromLayer: layer_ref5,
1574
1588
  toLayer: layer_ref5,
1575
1589
  holeDiameter: distance18,
1576
1590
  outerDiameter: distance18,
1577
- connectsTo: z70.string().or(z70.array(z70.string())).optional()
1591
+ connectsTo: z71.string().or(z71.array(z71.string())).optional()
1578
1592
  });
1579
1593
  expectTypesMatch(true);
1580
1594
 
1581
1595
  // lib/components/testpoint.ts
1582
1596
  import { distance as distance19 } from "circuit-json";
1583
- import { z as z71 } from "zod";
1597
+ import { z as z72 } from "zod";
1584
1598
  var testpointProps = commonComponentProps.extend({
1585
- footprintVariant: z71.enum(["pad", "through_hole"]).optional(),
1586
- padShape: z71.enum(["rect", "circle"]).optional().default("circle"),
1599
+ footprintVariant: z72.enum(["pad", "through_hole"]).optional(),
1600
+ padShape: z72.enum(["rect", "circle"]).optional().default("circle"),
1587
1601
  padDiameter: distance19.optional(),
1588
1602
  holeDiameter: distance19.optional(),
1589
1603
  width: distance19.optional(),
@@ -1595,22 +1609,22 @@ var testpointProps = commonComponentProps.extend({
1595
1609
  expectTypesMatch(true);
1596
1610
 
1597
1611
  // lib/components/breakoutpoint.ts
1598
- import { z as z72 } from "zod";
1612
+ import { z as z73 } from "zod";
1599
1613
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
1600
- connection: z72.string()
1614
+ connection: z73.string()
1601
1615
  });
1602
1616
  expectTypesMatch(true);
1603
1617
 
1604
1618
  // lib/components/pcb-keepout.ts
1605
1619
  import { distance as distance20 } from "circuit-json";
1606
- import { z as z73 } from "zod";
1607
- var pcbKeepoutProps = z73.union([
1620
+ import { z as z74 } from "zod";
1621
+ var pcbKeepoutProps = z74.union([
1608
1622
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
1609
- shape: z73.literal("circle"),
1623
+ shape: z74.literal("circle"),
1610
1624
  radius: distance20
1611
1625
  }),
1612
1626
  pcbLayoutProps.extend({
1613
- shape: z73.literal("rect"),
1627
+ shape: z74.literal("rect"),
1614
1628
  width: distance20,
1615
1629
  height: distance20
1616
1630
  })
@@ -1618,35 +1632,35 @@ var pcbKeepoutProps = z73.union([
1618
1632
 
1619
1633
  // lib/components/courtyard-rect.ts
1620
1634
  import { distance as distance21 } from "circuit-json";
1621
- import { z as z74 } from "zod";
1635
+ import { z as z75 } from "zod";
1622
1636
  var courtyardRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1623
1637
  width: distance21,
1624
1638
  height: distance21,
1625
1639
  strokeWidth: distance21.optional(),
1626
- isFilled: z74.boolean().optional(),
1627
- hasStroke: z74.boolean().optional(),
1628
- isStrokeDashed: z74.boolean().optional(),
1629
- color: z74.string().optional()
1640
+ isFilled: z75.boolean().optional(),
1641
+ hasStroke: z75.boolean().optional(),
1642
+ isStrokeDashed: z75.boolean().optional(),
1643
+ color: z75.string().optional()
1630
1644
  });
1631
1645
 
1632
1646
  // lib/components/courtyard-outline.ts
1633
1647
  import { length as length6 } from "circuit-json";
1634
- import { z as z75 } from "zod";
1648
+ import { z as z76 } from "zod";
1635
1649
  var courtyardOutlineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1636
- outline: z75.array(point),
1650
+ outline: z76.array(point),
1637
1651
  strokeWidth: length6.optional(),
1638
- isClosed: z75.boolean().optional(),
1639
- isStrokeDashed: z75.boolean().optional(),
1640
- color: z75.string().optional()
1652
+ isClosed: z76.boolean().optional(),
1653
+ isStrokeDashed: z76.boolean().optional(),
1654
+ color: z76.string().optional()
1641
1655
  });
1642
1656
 
1643
1657
  // lib/components/copper-pour.ts
1644
- import { z as z76 } from "zod";
1658
+ import { z as z77 } from "zod";
1645
1659
  import { layer_ref as layer_ref6 } from "circuit-json";
1646
- var copperPourProps = z76.object({
1647
- name: z76.string().optional(),
1660
+ var copperPourProps = z77.object({
1661
+ name: z77.string().optional(),
1648
1662
  layer: layer_ref6,
1649
- connectsTo: z76.string(),
1663
+ connectsTo: z77.string(),
1650
1664
  padMargin: distance.optional(),
1651
1665
  traceMargin: distance.optional()
1652
1666
  });
@@ -1654,27 +1668,27 @@ expectTypesMatch(true);
1654
1668
 
1655
1669
  // lib/components/cadassembly.ts
1656
1670
  import { layer_ref as layer_ref7 } from "circuit-json";
1657
- import { z as z77 } from "zod";
1658
- var cadassemblyProps = z77.object({
1671
+ import { z as z78 } from "zod";
1672
+ var cadassemblyProps = z78.object({
1659
1673
  originalLayer: layer_ref7.default("top").optional(),
1660
- children: z77.any().optional()
1674
+ children: z78.any().optional()
1661
1675
  });
1662
1676
  expectTypesMatch(true);
1663
1677
 
1664
1678
  // lib/components/cadmodel.ts
1665
- import { z as z78 } from "zod";
1666
- var pcbPosition = z78.object({
1679
+ import { z as z79 } from "zod";
1680
+ var pcbPosition = z79.object({
1667
1681
  pcbX: distance.optional(),
1668
1682
  pcbY: distance.optional(),
1669
1683
  pcbZ: distance.optional()
1670
1684
  });
1671
1685
  var cadModelBaseWithUrl = cadModelBase.extend({
1672
- modelUrl: z78.string(),
1673
- stepUrl: z78.string().optional()
1686
+ modelUrl: z79.string(),
1687
+ stepUrl: z79.string().optional()
1674
1688
  });
1675
1689
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
1676
1690
  expectTypesMatch(true);
1677
- var cadmodelProps = z78.union([z78.null(), z78.string(), cadModelObject]);
1691
+ var cadmodelProps = z79.union([z79.null(), z79.string(), cadModelObject]);
1678
1692
 
1679
1693
  // lib/components/power-source.ts
1680
1694
  import { voltage as voltage3 } from "circuit-json";
@@ -1684,9 +1698,9 @@ var powerSourceProps = commonComponentProps.extend({
1684
1698
 
1685
1699
  // lib/components/voltagesource.ts
1686
1700
  import { frequency as frequency4, rotation as rotation4, voltage as voltage4 } from "circuit-json";
1687
- import { z as z79 } from "zod";
1701
+ import { z as z80 } from "zod";
1688
1702
  var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
1689
- var percentage = z79.union([z79.string(), z79.number()]).transform((val) => {
1703
+ var percentage = z80.union([z80.string(), z80.number()]).transform((val) => {
1690
1704
  if (typeof val === "string") {
1691
1705
  if (val.endsWith("%")) {
1692
1706
  return parseFloat(val.slice(0, -1)) / 100;
@@ -1695,13 +1709,13 @@ var percentage = z79.union([z79.string(), z79.number()]).transform((val) => {
1695
1709
  }
1696
1710
  return val;
1697
1711
  }).pipe(
1698
- z79.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
1712
+ z80.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
1699
1713
  );
1700
1714
  var voltageSourceProps = commonComponentProps.extend({
1701
1715
  voltage: voltage4.optional(),
1702
1716
  frequency: frequency4.optional(),
1703
1717
  peakToPeakVoltage: voltage4.optional(),
1704
- waveShape: z79.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
1718
+ waveShape: z80.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
1705
1719
  phase: rotation4.optional(),
1706
1720
  dutyCycle: percentage.optional(),
1707
1721
  connections: createConnectionsProp(voltageSourcePinLabels).optional()
@@ -1710,47 +1724,47 @@ var voltageSourcePins = lrPolarPins;
1710
1724
  expectTypesMatch(true);
1711
1725
 
1712
1726
  // lib/components/voltageprobe.ts
1713
- import { z as z80 } from "zod";
1727
+ import { z as z81 } from "zod";
1714
1728
  var voltageProbeProps = commonComponentProps.omit({ name: true }).extend({
1715
- name: z80.string().optional(),
1716
- connectsTo: z80.string().or(z80.array(z80.string()))
1729
+ name: z81.string().optional(),
1730
+ connectsTo: z81.string().or(z81.array(z81.string()))
1717
1731
  });
1718
1732
  expectTypesMatch(true);
1719
1733
 
1720
1734
  // lib/components/schematic-arc.ts
1721
1735
  import { distance as distance22, point as point5, rotation as rotation5 } from "circuit-json";
1722
- import { z as z81 } from "zod";
1723
- var schematicArcProps = z81.object({
1736
+ import { z as z82 } from "zod";
1737
+ var schematicArcProps = z82.object({
1724
1738
  center: point5,
1725
1739
  radius: distance22,
1726
1740
  startAngleDegrees: rotation5,
1727
1741
  endAngleDegrees: rotation5,
1728
- direction: z81.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
1742
+ direction: z82.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
1729
1743
  strokeWidth: distance22.optional(),
1730
- color: z81.string().optional(),
1731
- isDashed: z81.boolean().optional().default(false)
1744
+ color: z82.string().optional(),
1745
+ isDashed: z82.boolean().optional().default(false)
1732
1746
  });
1733
1747
 
1734
1748
  // lib/components/schematic-box.ts
1735
1749
  import { distance as distance23 } from "circuit-json";
1736
- import { z as z82 } from "zod";
1737
- var schematicBoxProps = z82.object({
1750
+ import { z as z83 } from "zod";
1751
+ var schematicBoxProps = z83.object({
1738
1752
  schX: distance23.optional(),
1739
1753
  schY: distance23.optional(),
1740
1754
  width: distance23.optional(),
1741
1755
  height: distance23.optional(),
1742
- overlay: z82.array(z82.string()).optional(),
1756
+ overlay: z83.array(z83.string()).optional(),
1743
1757
  padding: distance23.optional(),
1744
1758
  paddingLeft: distance23.optional(),
1745
1759
  paddingRight: distance23.optional(),
1746
1760
  paddingTop: distance23.optional(),
1747
1761
  paddingBottom: distance23.optional(),
1748
- title: z82.string().optional(),
1762
+ title: z83.string().optional(),
1749
1763
  titleAlignment: ninePointAnchor.default("top_left"),
1750
- titleColor: z82.string().optional(),
1764
+ titleColor: z83.string().optional(),
1751
1765
  titleFontSize: distance23.optional(),
1752
- titleInside: z82.boolean().default(false),
1753
- strokeStyle: z82.enum(["solid", "dashed"]).default("solid")
1766
+ titleInside: z83.boolean().default(false),
1767
+ strokeStyle: z83.enum(["solid", "dashed"]).default("solid")
1754
1768
  }).refine(
1755
1769
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
1756
1770
  {
@@ -1765,53 +1779,53 @@ var schematicBoxProps = z82.object({
1765
1779
 
1766
1780
  // lib/components/schematic-circle.ts
1767
1781
  import { distance as distance24, point as point6 } from "circuit-json";
1768
- import { z as z83 } from "zod";
1769
- var schematicCircleProps = z83.object({
1782
+ import { z as z84 } from "zod";
1783
+ var schematicCircleProps = z84.object({
1770
1784
  center: point6,
1771
1785
  radius: distance24,
1772
1786
  strokeWidth: distance24.optional(),
1773
- color: z83.string().optional(),
1774
- isFilled: z83.boolean().optional().default(false),
1775
- fillColor: z83.string().optional(),
1776
- isDashed: z83.boolean().optional().default(false)
1787
+ color: z84.string().optional(),
1788
+ isFilled: z84.boolean().optional().default(false),
1789
+ fillColor: z84.string().optional(),
1790
+ isDashed: z84.boolean().optional().default(false)
1777
1791
  });
1778
1792
 
1779
1793
  // lib/components/schematic-rect.ts
1780
1794
  import { distance as distance25, rotation as rotation6 } from "circuit-json";
1781
- import { z as z84 } from "zod";
1782
- var schematicRectProps = z84.object({
1795
+ import { z as z85 } from "zod";
1796
+ var schematicRectProps = z85.object({
1783
1797
  schX: distance25.optional(),
1784
1798
  schY: distance25.optional(),
1785
1799
  width: distance25,
1786
1800
  height: distance25,
1787
1801
  rotation: rotation6.default(0),
1788
1802
  strokeWidth: distance25.optional(),
1789
- color: z84.string().optional(),
1790
- isFilled: z84.boolean().optional().default(false),
1791
- fillColor: z84.string().optional(),
1792
- isDashed: z84.boolean().optional().default(false)
1803
+ color: z85.string().optional(),
1804
+ isFilled: z85.boolean().optional().default(false),
1805
+ fillColor: z85.string().optional(),
1806
+ isDashed: z85.boolean().optional().default(false)
1793
1807
  });
1794
1808
 
1795
1809
  // lib/components/schematic-line.ts
1796
1810
  import { distance as distance26 } from "circuit-json";
1797
- import { z as z85 } from "zod";
1798
- var schematicLineProps = z85.object({
1811
+ import { z as z86 } from "zod";
1812
+ var schematicLineProps = z86.object({
1799
1813
  x1: distance26,
1800
1814
  y1: distance26,
1801
1815
  x2: distance26,
1802
1816
  y2: distance26,
1803
1817
  strokeWidth: distance26.optional(),
1804
- color: z85.string().optional(),
1805
- isDashed: z85.boolean().optional().default(false)
1818
+ color: z86.string().optional(),
1819
+ isDashed: z86.boolean().optional().default(false)
1806
1820
  });
1807
1821
 
1808
1822
  // lib/components/schematic-text.ts
1809
1823
  import { distance as distance27, rotation as rotation7 } from "circuit-json";
1810
- import { z as z87 } from "zod";
1824
+ import { z as z88 } from "zod";
1811
1825
 
1812
1826
  // lib/common/fivePointAnchor.ts
1813
- import { z as z86 } from "zod";
1814
- var fivePointAnchor = z86.enum([
1827
+ import { z as z87 } from "zod";
1828
+ var fivePointAnchor = z87.enum([
1815
1829
  "center",
1816
1830
  "left",
1817
1831
  "right",
@@ -1820,32 +1834,32 @@ var fivePointAnchor = z86.enum([
1820
1834
  ]);
1821
1835
 
1822
1836
  // lib/components/schematic-text.ts
1823
- var schematicTextProps = z87.object({
1837
+ var schematicTextProps = z88.object({
1824
1838
  schX: distance27.optional(),
1825
1839
  schY: distance27.optional(),
1826
- text: z87.string(),
1827
- fontSize: z87.number().default(1),
1828
- anchor: z87.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
1829
- color: z87.string().default("#000000"),
1840
+ text: z88.string(),
1841
+ fontSize: z88.number().default(1),
1842
+ anchor: z88.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
1843
+ color: z88.string().default("#000000"),
1830
1844
  schRotation: rotation7.default(0)
1831
1845
  });
1832
1846
 
1833
1847
  // lib/components/schematic-path.ts
1834
1848
  import { point as point8 } from "circuit-json";
1835
- import { z as z88 } from "zod";
1836
- var schematicPathProps = z88.object({
1837
- points: z88.array(point8),
1838
- isFilled: z88.boolean().optional().default(false),
1839
- fillColor: z88.enum(["red", "blue"]).optional()
1849
+ import { z as z89 } from "zod";
1850
+ var schematicPathProps = z89.object({
1851
+ points: z89.array(point8),
1852
+ isFilled: z89.boolean().optional().default(false),
1853
+ fillColor: z89.enum(["red", "blue"]).optional()
1840
1854
  });
1841
1855
 
1842
1856
  // lib/components/schematic-table.ts
1843
1857
  import { distance as distance28 } from "circuit-json";
1844
- import { z as z89 } from "zod";
1845
- var schematicTableProps = z89.object({
1858
+ import { z as z90 } from "zod";
1859
+ var schematicTableProps = z90.object({
1846
1860
  schX: distance28.optional(),
1847
1861
  schY: distance28.optional(),
1848
- children: z89.any().optional(),
1862
+ children: z90.any().optional(),
1849
1863
  cellPadding: distance28.optional(),
1850
1864
  borderWidth: distance28.optional(),
1851
1865
  anchor: ninePointAnchor.optional(),
@@ -1855,53 +1869,53 @@ expectTypesMatch(true);
1855
1869
 
1856
1870
  // lib/components/schematic-row.ts
1857
1871
  import { distance as distance29 } from "circuit-json";
1858
- import { z as z90 } from "zod";
1859
- var schematicRowProps = z90.object({
1860
- children: z90.any().optional(),
1872
+ import { z as z91 } from "zod";
1873
+ var schematicRowProps = z91.object({
1874
+ children: z91.any().optional(),
1861
1875
  height: distance29.optional()
1862
1876
  });
1863
1877
  expectTypesMatch(true);
1864
1878
 
1865
1879
  // lib/components/schematic-cell.ts
1866
1880
  import { distance as distance30 } from "circuit-json";
1867
- import { z as z91 } from "zod";
1868
- var schematicCellProps = z91.object({
1869
- children: z91.string().optional(),
1870
- horizontalAlign: z91.enum(["left", "center", "right"]).optional(),
1871
- verticalAlign: z91.enum(["top", "middle", "bottom"]).optional(),
1881
+ import { z as z92 } from "zod";
1882
+ var schematicCellProps = z92.object({
1883
+ children: z92.string().optional(),
1884
+ horizontalAlign: z92.enum(["left", "center", "right"]).optional(),
1885
+ verticalAlign: z92.enum(["top", "middle", "bottom"]).optional(),
1872
1886
  fontSize: distance30.optional(),
1873
- rowSpan: z91.number().optional(),
1874
- colSpan: z91.number().optional(),
1887
+ rowSpan: z92.number().optional(),
1888
+ colSpan: z92.number().optional(),
1875
1889
  width: distance30.optional(),
1876
- text: z91.string().optional()
1890
+ text: z92.string().optional()
1877
1891
  });
1878
1892
  expectTypesMatch(true);
1879
1893
 
1880
1894
  // lib/components/silkscreen-text.ts
1881
1895
  import { layer_ref as layer_ref8, length as length7 } from "circuit-json";
1882
- import { z as z92 } from "zod";
1896
+ import { z as z93 } from "zod";
1883
1897
  var silkscreenTextProps = pcbLayoutProps.extend({
1884
- text: z92.string(),
1898
+ text: z93.string(),
1885
1899
  anchorAlignment: ninePointAnchor.default("center"),
1886
- font: z92.enum(["tscircuit2024"]).optional(),
1900
+ font: z93.enum(["tscircuit2024"]).optional(),
1887
1901
  fontSize: length7.optional(),
1888
1902
  /**
1889
1903
  * If true, text will knock out underlying silkscreen
1890
1904
  */
1891
- isKnockout: z92.boolean().optional(),
1905
+ isKnockout: z93.boolean().optional(),
1892
1906
  knockoutPadding: length7.optional(),
1893
1907
  knockoutPaddingLeft: length7.optional(),
1894
1908
  knockoutPaddingRight: length7.optional(),
1895
1909
  knockoutPaddingTop: length7.optional(),
1896
1910
  knockoutPaddingBottom: length7.optional(),
1897
- layers: z92.array(layer_ref8).optional()
1911
+ layers: z93.array(layer_ref8).optional()
1898
1912
  });
1899
1913
 
1900
1914
  // lib/components/silkscreen-path.ts
1901
1915
  import { length as length8, route_hint_point as route_hint_point5 } from "circuit-json";
1902
- import { z as z93 } from "zod";
1916
+ import { z as z94 } from "zod";
1903
1917
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1904
- route: z93.array(route_hint_point5),
1918
+ route: z94.array(route_hint_point5),
1905
1919
  strokeWidth: length8.optional()
1906
1920
  });
1907
1921
 
@@ -1917,10 +1931,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotat
1917
1931
 
1918
1932
  // lib/components/silkscreen-rect.ts
1919
1933
  import { distance as distance32 } from "circuit-json";
1920
- import { z as z94 } from "zod";
1934
+ import { z as z95 } from "zod";
1921
1935
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1922
- filled: z94.boolean().default(true).optional(),
1923
- stroke: z94.enum(["dashed", "solid", "none"]).optional(),
1936
+ filled: z95.boolean().default(true).optional(),
1937
+ stroke: z95.enum(["dashed", "solid", "none"]).optional(),
1924
1938
  strokeWidth: distance32.optional(),
1925
1939
  width: distance32,
1926
1940
  height: distance32
@@ -1928,66 +1942,66 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1928
1942
 
1929
1943
  // lib/components/silkscreen-circle.ts
1930
1944
  import { distance as distance33 } from "circuit-json";
1931
- import { z as z95 } from "zod";
1945
+ import { z as z96 } from "zod";
1932
1946
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1933
- isFilled: z95.boolean().optional(),
1934
- isOutline: z95.boolean().optional(),
1947
+ isFilled: z96.boolean().optional(),
1948
+ isOutline: z96.boolean().optional(),
1935
1949
  strokeWidth: distance33.optional(),
1936
1950
  radius: distance33
1937
1951
  });
1938
1952
 
1939
1953
  // lib/components/trace-hint.ts
1940
1954
  import { distance as distance34, layer_ref as layer_ref9, route_hint_point as route_hint_point6 } from "circuit-json";
1941
- import { z as z96 } from "zod";
1942
- var routeHintPointProps = z96.object({
1955
+ import { z as z97 } from "zod";
1956
+ var routeHintPointProps = z97.object({
1943
1957
  x: distance34,
1944
1958
  y: distance34,
1945
- via: z96.boolean().optional(),
1959
+ via: z97.boolean().optional(),
1946
1960
  toLayer: layer_ref9.optional()
1947
1961
  });
1948
- var traceHintProps = z96.object({
1949
- for: z96.string().optional().describe(
1962
+ var traceHintProps = z97.object({
1963
+ for: z97.string().optional().describe(
1950
1964
  "Selector for the port you're targeting, not required if you're inside a trace"
1951
1965
  ),
1952
- order: z96.number().optional(),
1966
+ order: z97.number().optional(),
1953
1967
  offset: route_hint_point6.or(routeHintPointProps).optional(),
1954
- offsets: z96.array(route_hint_point6).or(z96.array(routeHintPointProps)).optional(),
1955
- traceWidth: z96.number().optional()
1968
+ offsets: z97.array(route_hint_point6).or(z97.array(routeHintPointProps)).optional(),
1969
+ traceWidth: z97.number().optional()
1956
1970
  });
1957
1971
 
1958
1972
  // lib/components/port.ts
1959
- import { z as z97 } from "zod";
1973
+ import { z as z98 } from "zod";
1960
1974
  var portProps = commonLayoutProps.extend({
1961
- name: z97.string(),
1962
- pinNumber: z97.number().optional(),
1963
- aliases: z97.array(z97.string()).optional(),
1975
+ name: z98.string(),
1976
+ pinNumber: z98.number().optional(),
1977
+ aliases: z98.array(z98.string()).optional(),
1964
1978
  direction,
1965
- connectsTo: z97.string().or(z97.array(z97.string())).optional()
1979
+ connectsTo: z98.string().or(z98.array(z98.string())).optional()
1966
1980
  });
1967
1981
 
1968
1982
  // lib/components/pcb-note-text.ts
1969
1983
  import { length as length9 } from "circuit-json";
1970
- import { z as z98 } from "zod";
1984
+ import { z as z99 } from "zod";
1971
1985
  var pcbNoteTextProps = pcbLayoutProps.extend({
1972
- text: z98.string(),
1973
- anchorAlignment: z98.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1974
- font: z98.enum(["tscircuit2024"]).optional(),
1986
+ text: z99.string(),
1987
+ anchorAlignment: z99.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1988
+ font: z99.enum(["tscircuit2024"]).optional(),
1975
1989
  fontSize: length9.optional(),
1976
- color: z98.string().optional()
1990
+ color: z99.string().optional()
1977
1991
  });
1978
1992
  expectTypesMatch(true);
1979
1993
 
1980
1994
  // lib/components/pcb-note-rect.ts
1981
1995
  import { distance as distance35 } from "circuit-json";
1982
- import { z as z99 } from "zod";
1996
+ import { z as z100 } from "zod";
1983
1997
  var pcbNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1984
1998
  width: distance35,
1985
1999
  height: distance35,
1986
2000
  strokeWidth: distance35.optional(),
1987
- isFilled: z99.boolean().optional(),
1988
- hasStroke: z99.boolean().optional(),
1989
- isStrokeDashed: z99.boolean().optional(),
1990
- color: z99.string().optional()
2001
+ isFilled: z100.boolean().optional(),
2002
+ hasStroke: z100.boolean().optional(),
2003
+ isStrokeDashed: z100.boolean().optional(),
2004
+ color: z100.string().optional()
1991
2005
  });
1992
2006
  expectTypesMatch(true);
1993
2007
 
@@ -1996,40 +2010,40 @@ import {
1996
2010
  length as length10,
1997
2011
  route_hint_point as route_hint_point7
1998
2012
  } from "circuit-json";
1999
- import { z as z100 } from "zod";
2013
+ import { z as z101 } from "zod";
2000
2014
  var pcbNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
2001
- route: z100.array(route_hint_point7),
2015
+ route: z101.array(route_hint_point7),
2002
2016
  strokeWidth: length10.optional(),
2003
- color: z100.string().optional()
2017
+ color: z101.string().optional()
2004
2018
  });
2005
2019
  expectTypesMatch(true);
2006
2020
 
2007
2021
  // lib/components/pcb-note-line.ts
2008
2022
  import { distance as distance36 } from "circuit-json";
2009
- import { z as z101 } from "zod";
2023
+ import { z as z102 } from "zod";
2010
2024
  var pcbNoteLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
2011
2025
  x1: distance36,
2012
2026
  y1: distance36,
2013
2027
  x2: distance36,
2014
2028
  y2: distance36,
2015
2029
  strokeWidth: distance36.optional(),
2016
- color: z101.string().optional(),
2017
- isDashed: z101.boolean().optional()
2030
+ color: z102.string().optional(),
2031
+ isDashed: z102.boolean().optional()
2018
2032
  });
2019
2033
  expectTypesMatch(true);
2020
2034
 
2021
2035
  // lib/components/pcb-note-dimension.ts
2022
2036
  import { distance as distance37, length as length11 } from "circuit-json";
2023
- import { z as z102 } from "zod";
2024
- var dimensionTarget2 = z102.union([z102.string(), point]);
2037
+ import { z as z103 } from "zod";
2038
+ var dimensionTarget2 = z103.union([z103.string(), point]);
2025
2039
  var pcbNoteDimensionProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
2026
2040
  from: dimensionTarget2,
2027
2041
  to: dimensionTarget2,
2028
- text: z102.string().optional(),
2042
+ text: z103.string().optional(),
2029
2043
  offset: distance37.optional(),
2030
- font: z102.enum(["tscircuit2024"]).optional(),
2044
+ font: z103.enum(["tscircuit2024"]).optional(),
2031
2045
  fontSize: length11.optional(),
2032
- color: z102.string().optional(),
2046
+ color: z103.string().optional(),
2033
2047
  arrowSize: distance37.optional()
2034
2048
  });
2035
2049
  expectTypesMatch(
@@ -2037,64 +2051,64 @@ expectTypesMatch(
2037
2051
  );
2038
2052
 
2039
2053
  // lib/platformConfig.ts
2040
- import { z as z103 } from "zod";
2041
- var unvalidatedCircuitJson = z103.array(z103.any()).describe("Circuit JSON");
2042
- var footprintLibraryResult = z103.object({
2043
- footprintCircuitJson: z103.array(z103.any()),
2054
+ import { z as z104 } from "zod";
2055
+ var unvalidatedCircuitJson = z104.array(z104.any()).describe("Circuit JSON");
2056
+ var footprintLibraryResult = z104.object({
2057
+ footprintCircuitJson: z104.array(z104.any()),
2044
2058
  cadModel: cadModelProp.optional()
2045
2059
  });
2046
- var pathToCircuitJsonFn = z103.function().args(z103.string()).returns(z103.promise(footprintLibraryResult)).describe("A function that takes a path and returns Circuit JSON");
2047
- var footprintFileParserEntry = z103.object({
2048
- loadFromUrl: z103.function().args(z103.string()).returns(z103.promise(footprintLibraryResult)).describe(
2060
+ var pathToCircuitJsonFn = z104.function().args(z104.string()).returns(z104.promise(footprintLibraryResult)).describe("A function that takes a path and returns Circuit JSON");
2061
+ var footprintFileParserEntry = z104.object({
2062
+ loadFromUrl: z104.function().args(z104.string()).returns(z104.promise(footprintLibraryResult)).describe(
2049
2063
  "A function that takes a footprint file URL and returns Circuit JSON"
2050
2064
  )
2051
2065
  });
2052
- var spiceEngineSimulationResult = z103.object({
2053
- engineVersionString: z103.string().optional(),
2066
+ var spiceEngineSimulationResult = z104.object({
2067
+ engineVersionString: z104.string().optional(),
2054
2068
  simulationResultCircuitJson: unvalidatedCircuitJson
2055
2069
  });
2056
- var spiceEngineZod = z103.object({
2057
- simulate: z103.function().args(z103.string()).returns(z103.promise(spiceEngineSimulationResult)).describe(
2070
+ var spiceEngineZod = z104.object({
2071
+ simulate: z104.function().args(z104.string()).returns(z104.promise(spiceEngineSimulationResult)).describe(
2058
2072
  "A function that takes a SPICE string and returns a simulation result"
2059
2073
  )
2060
2074
  });
2061
- var autorouterInstance = z103.object({
2062
- run: z103.function().args().returns(z103.promise(z103.unknown())).describe("Run the autorouter"),
2063
- getOutputSimpleRouteJson: z103.function().args().returns(z103.promise(z103.any())).describe("Get the resulting SimpleRouteJson")
2075
+ var autorouterInstance = z104.object({
2076
+ run: z104.function().args().returns(z104.promise(z104.unknown())).describe("Run the autorouter"),
2077
+ getOutputSimpleRouteJson: z104.function().args().returns(z104.promise(z104.any())).describe("Get the resulting SimpleRouteJson")
2064
2078
  });
2065
- var autorouterDefinition = z103.object({
2066
- createAutorouter: z103.function().args(z103.any(), z103.any().optional()).returns(z103.union([autorouterInstance, z103.promise(autorouterInstance)])).describe("Create an autorouter instance")
2079
+ var autorouterDefinition = z104.object({
2080
+ createAutorouter: z104.function().args(z104.any(), z104.any().optional()).returns(z104.union([autorouterInstance, z104.promise(autorouterInstance)])).describe("Create an autorouter instance")
2067
2081
  });
2068
- var platformConfig = z103.object({
2082
+ var platformConfig = z104.object({
2069
2083
  partsEngine: partsEngine.optional(),
2070
2084
  autorouter: autorouterProp.optional(),
2071
- autorouterMap: z103.record(z103.string(), autorouterDefinition).optional(),
2072
- registryApiUrl: z103.string().optional(),
2073
- cloudAutorouterUrl: z103.string().optional(),
2074
- projectName: z103.string().optional(),
2075
- projectBaseUrl: z103.string().optional(),
2076
- version: z103.string().optional(),
2077
- url: z103.string().optional(),
2078
- printBoardInformationToSilkscreen: z103.boolean().optional(),
2079
- includeBoardFiles: z103.array(z103.string()).describe(
2085
+ autorouterMap: z104.record(z104.string(), autorouterDefinition).optional(),
2086
+ registryApiUrl: z104.string().optional(),
2087
+ cloudAutorouterUrl: z104.string().optional(),
2088
+ projectName: z104.string().optional(),
2089
+ projectBaseUrl: z104.string().optional(),
2090
+ version: z104.string().optional(),
2091
+ url: z104.string().optional(),
2092
+ printBoardInformationToSilkscreen: z104.boolean().optional(),
2093
+ includeBoardFiles: z104.array(z104.string()).describe(
2080
2094
  'The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs'
2081
2095
  ).optional(),
2082
- localCacheEngine: z103.any().optional(),
2083
- pcbDisabled: z103.boolean().optional(),
2084
- schematicDisabled: z103.boolean().optional(),
2085
- partsEngineDisabled: z103.boolean().optional(),
2086
- spiceEngineMap: z103.record(z103.string(), spiceEngineZod).optional(),
2087
- footprintLibraryMap: z103.record(
2088
- z103.string(),
2089
- z103.union([
2096
+ localCacheEngine: z104.any().optional(),
2097
+ pcbDisabled: z104.boolean().optional(),
2098
+ schematicDisabled: z104.boolean().optional(),
2099
+ partsEngineDisabled: z104.boolean().optional(),
2100
+ spiceEngineMap: z104.record(z104.string(), spiceEngineZod).optional(),
2101
+ footprintLibraryMap: z104.record(
2102
+ z104.string(),
2103
+ z104.union([
2090
2104
  pathToCircuitJsonFn,
2091
- z103.record(
2092
- z103.string(),
2093
- z103.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
2105
+ z104.record(
2106
+ z104.string(),
2107
+ z104.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
2094
2108
  )
2095
2109
  ])
2096
2110
  ).optional(),
2097
- footprintFileParserMap: z103.record(z103.string(), footprintFileParserEntry).optional()
2111
+ footprintFileParserMap: z104.record(z104.string(), footprintFileParserEntry).optional()
2098
2112
  });
2099
2113
  expectTypesMatch(true);
2100
2114
 
@@ -2195,6 +2209,7 @@ export {
2195
2209
  netLabelProps,
2196
2210
  netProps,
2197
2211
  ninePointAnchor,
2212
+ panelProps,
2198
2213
  partsEngine,
2199
2214
  pcbKeepoutProps,
2200
2215
  pcbLayoutProps,