@tscircuit/props 0.0.366 → 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,66 +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(),
1077
+ cornerRadius: distance.optional(),
1063
1078
  portHints: portHints.optional(),
1064
- coveredWithSolderMask: z46.boolean().optional()
1079
+ coveredWithSolderMask: z47.boolean().optional()
1065
1080
  });
1066
1081
  expectTypesMatch(true);
1067
1082
  var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1068
- name: z46.string().optional(),
1069
- shape: z46.literal("rotated_rect"),
1083
+ name: z47.string().optional(),
1084
+ shape: z47.literal("rotated_rect"),
1070
1085
  width: distance,
1071
1086
  height: distance,
1072
- ccwRotation: z46.number(),
1087
+ ccwRotation: z47.number(),
1088
+ cornerRadius: distance.optional(),
1073
1089
  portHints: portHints.optional(),
1074
- coveredWithSolderMask: z46.boolean().optional()
1090
+ coveredWithSolderMask: z47.boolean().optional()
1075
1091
  });
1076
1092
  expectTypesMatch(true);
1077
1093
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1078
- name: z46.string().optional(),
1079
- shape: z46.literal("circle"),
1094
+ name: z47.string().optional(),
1095
+ shape: z47.literal("circle"),
1080
1096
  radius: distance,
1081
1097
  portHints: portHints.optional(),
1082
- coveredWithSolderMask: z46.boolean().optional()
1098
+ coveredWithSolderMask: z47.boolean().optional()
1083
1099
  });
1084
1100
  expectTypesMatch(true);
1085
1101
  var pillSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1086
- name: z46.string().optional(),
1087
- shape: z46.literal("pill"),
1102
+ name: z47.string().optional(),
1103
+ shape: z47.literal("pill"),
1088
1104
  width: distance,
1089
1105
  height: distance,
1090
1106
  radius: distance,
1091
1107
  portHints: portHints.optional(),
1092
- coveredWithSolderMask: z46.boolean().optional()
1108
+ coveredWithSolderMask: z47.boolean().optional()
1093
1109
  });
1094
1110
  expectTypesMatch(true);
1095
1111
  var polygonSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1096
- name: z46.string().optional(),
1097
- shape: z46.literal("polygon"),
1098
- points: z46.array(point),
1112
+ name: z47.string().optional(),
1113
+ shape: z47.literal("polygon"),
1114
+ points: z47.array(point),
1099
1115
  portHints: portHints.optional(),
1100
- coveredWithSolderMask: z46.boolean().optional()
1116
+ coveredWithSolderMask: z47.boolean().optional()
1101
1117
  });
1102
1118
  expectTypesMatch(true);
1103
- var smtPadProps = z46.discriminatedUnion("shape", [
1119
+ var smtPadProps = z47.discriminatedUnion("shape", [
1104
1120
  circleSmtPadProps,
1105
1121
  rectSmtPadProps,
1106
1122
  rotatedRectSmtPadProps,
@@ -1110,29 +1126,29 @@ var smtPadProps = z46.discriminatedUnion("shape", [
1110
1126
  expectTypesMatch(true);
1111
1127
 
1112
1128
  // lib/components/solderpaste.ts
1113
- import { z as z47 } from "zod";
1129
+ import { z as z48 } from "zod";
1114
1130
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1115
- shape: z47.literal("rect"),
1131
+ shape: z48.literal("rect"),
1116
1132
  width: distance,
1117
1133
  height: distance
1118
1134
  });
1119
1135
  expectTypesMatch(true);
1120
1136
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1121
- shape: z47.literal("circle"),
1137
+ shape: z48.literal("circle"),
1122
1138
  radius: distance
1123
1139
  });
1124
1140
  expectTypesMatch(true);
1125
- var solderPasteProps = z47.union([
1141
+ var solderPasteProps = z48.union([
1126
1142
  circleSolderPasteProps,
1127
1143
  rectSolderPasteProps
1128
1144
  ]);
1129
1145
  expectTypesMatch(true);
1130
1146
 
1131
1147
  // lib/components/hole.ts
1132
- import { z as z48 } from "zod";
1148
+ import { z as z49 } from "zod";
1133
1149
  var circleHoleProps = pcbLayoutProps.extend({
1134
- name: z48.string().optional(),
1135
- shape: z48.literal("circle").optional(),
1150
+ name: z49.string().optional(),
1151
+ shape: z49.literal("circle").optional(),
1136
1152
  diameter: distance.optional(),
1137
1153
  radius: distance.optional()
1138
1154
  }).transform((d) => ({
@@ -1141,38 +1157,38 @@ var circleHoleProps = pcbLayoutProps.extend({
1141
1157
  radius: d.radius ?? d.diameter / 2
1142
1158
  }));
1143
1159
  var pillHoleProps = pcbLayoutProps.extend({
1144
- name: z48.string().optional(),
1145
- shape: z48.literal("pill"),
1160
+ name: z49.string().optional(),
1161
+ shape: z49.literal("pill"),
1146
1162
  width: distance,
1147
1163
  height: distance
1148
1164
  });
1149
- var holeProps = z48.union([circleHoleProps, pillHoleProps]);
1165
+ var holeProps = z49.union([circleHoleProps, pillHoleProps]);
1150
1166
  expectTypesMatch(true);
1151
1167
 
1152
1168
  // lib/components/trace.ts
1153
1169
  import { distance as distance13, route_hint_point as route_hint_point2 } from "circuit-json";
1154
- import { z as z49 } from "zod";
1155
- var portRef = z49.union([
1156
- z49.string(),
1157
- z49.custom(
1170
+ import { z as z50 } from "zod";
1171
+ var portRef = z50.union([
1172
+ z50.string(),
1173
+ z50.custom(
1158
1174
  (v) => Boolean(v.getPortSelector)
1159
1175
  )
1160
1176
  ]);
1161
- var baseTraceProps = z49.object({
1162
- key: z49.string().optional(),
1177
+ var baseTraceProps = z50.object({
1178
+ key: z50.string().optional(),
1163
1179
  thickness: distance13.optional(),
1164
- schematicRouteHints: z49.array(point).optional(),
1165
- pcbRouteHints: z49.array(route_hint_point2).optional(),
1166
- pcbPathRelativeTo: z49.string().optional(),
1167
- pcbPath: z49.array(point).optional(),
1168
- schDisplayLabel: z49.string().optional(),
1169
- schStroke: z49.string().optional(),
1170
- 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(),
1171
1187
  maxLength: distance13.optional()
1172
1188
  });
1173
- var traceProps = z49.union([
1189
+ var traceProps = z50.union([
1174
1190
  baseTraceProps.extend({
1175
- path: z49.array(portRef)
1191
+ path: z50.array(portRef)
1176
1192
  }),
1177
1193
  baseTraceProps.extend({
1178
1194
  from: portRef,
@@ -1182,23 +1198,23 @@ var traceProps = z49.union([
1182
1198
 
1183
1199
  // lib/components/footprint.ts
1184
1200
  import { layer_ref as layer_ref4 } from "circuit-json";
1185
- import { z as z50 } from "zod";
1186
- var footprintProps = z50.object({
1201
+ import { z as z51 } from "zod";
1202
+ var footprintProps = z51.object({
1187
1203
  originalLayer: layer_ref4.default("top").optional()
1188
1204
  });
1189
1205
  expectTypesMatch(true);
1190
1206
 
1191
1207
  // lib/components/symbol.ts
1192
- import { z as z51 } from "zod";
1193
- var symbolProps = z51.object({
1194
- 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()
1195
1211
  });
1196
1212
  expectTypesMatch(true);
1197
1213
 
1198
1214
  // lib/components/battery.ts
1199
1215
  import { voltage as voltage2 } from "circuit-json";
1200
- import { z as z52 } from "zod";
1201
- 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) => {
1202
1218
  if (typeof v === "string") {
1203
1219
  const valString = v.replace("mAh", "");
1204
1220
  const num = Number.parseFloat(valString);
@@ -1212,7 +1228,7 @@ var capacity = z52.number().or(z52.string().endsWith("mAh")).transform((v) => {
1212
1228
  var batteryProps = commonComponentProps.extend({
1213
1229
  capacity: capacity.optional(),
1214
1230
  voltage: voltage2.optional(),
1215
- standard: z52.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
1231
+ standard: z53.enum(["AA", "AAA", "9V", "CR2032", "18650", "C"]).optional(),
1216
1232
  schOrientation: schematicOrientation.optional()
1217
1233
  });
1218
1234
  var batteryPins = lrPolarPins;
@@ -1222,29 +1238,29 @@ expectTypesMatch(true);
1222
1238
  import { distance as distance14 } from "circuit-json";
1223
1239
 
1224
1240
  // lib/common/pcbOrientation.ts
1225
- import { z as z53 } from "zod";
1226
- var pcbOrientation = z53.enum(["vertical", "horizontal"]).describe(
1241
+ import { z as z54 } from "zod";
1242
+ var pcbOrientation = z54.enum(["vertical", "horizontal"]).describe(
1227
1243
  "vertical means pins go 1->2 downward and horizontal means pins go 1->2 rightward"
1228
1244
  );
1229
1245
  expectTypesMatch(true);
1230
1246
 
1231
1247
  // lib/components/pin-header.ts
1232
- import { z as z54 } from "zod";
1248
+ import { z as z55 } from "zod";
1233
1249
  var pinHeaderProps = commonComponentProps.extend({
1234
- pinCount: z54.number(),
1250
+ pinCount: z55.number(),
1235
1251
  pitch: distance14.optional(),
1236
- schFacingDirection: z54.enum(["up", "down", "left", "right"]).optional(),
1237
- gender: z54.enum(["male", "female", "unpopulated"]).optional().default("male"),
1238
- showSilkscreenPinLabels: z54.boolean().optional(),
1239
- pcbPinLabels: z54.record(z54.string(), z54.string()).optional(),
1240
- doubleRow: z54.boolean().optional(),
1241
- 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(),
1242
1258
  pcbOrientation: pcbOrientation.optional(),
1243
1259
  holeDiameter: distance14.optional(),
1244
1260
  platedDiameter: distance14.optional(),
1245
- pinLabels: z54.record(z54.string(), schematicPinLabel).or(z54.array(schematicPinLabel)).optional(),
1246
- connections: z54.custom().pipe(z54.record(z54.string(), connectionTarget)).optional(),
1247
- 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(),
1248
1264
  schPinArrangement: schematicPinArrangement.optional(),
1249
1265
  schPinStyle: schematicPinStyle.optional(),
1250
1266
  schPinSpacing: distance14.optional(),
@@ -1254,29 +1270,29 @@ var pinHeaderProps = commonComponentProps.extend({
1254
1270
  expectTypesMatch(true);
1255
1271
 
1256
1272
  // lib/components/netalias.ts
1257
- import { z as z55 } from "zod";
1273
+ import { z as z56 } from "zod";
1258
1274
  import { rotation as rotation2 } from "circuit-json";
1259
- var netAliasProps = z55.object({
1260
- net: z55.string().optional(),
1261
- connection: z55.string().optional(),
1275
+ var netAliasProps = z56.object({
1276
+ net: z56.string().optional(),
1277
+ connection: z56.string().optional(),
1262
1278
  schX: distance.optional(),
1263
1279
  schY: distance.optional(),
1264
1280
  schRotation: rotation2.optional(),
1265
- anchorSide: z55.enum(["left", "top", "right", "bottom"]).optional()
1281
+ anchorSide: z56.enum(["left", "top", "right", "bottom"]).optional()
1266
1282
  });
1267
1283
  expectTypesMatch(true);
1268
1284
 
1269
1285
  // lib/components/netlabel.ts
1270
- import { z as z56 } from "zod";
1286
+ import { z as z57 } from "zod";
1271
1287
  import { rotation as rotation3 } from "circuit-json";
1272
- var netLabelProps = z56.object({
1273
- net: z56.string().optional(),
1274
- connection: z56.string().optional(),
1275
- 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(),
1276
1292
  schX: distance.optional(),
1277
1293
  schY: distance.optional(),
1278
1294
  schRotation: rotation3.optional(),
1279
- anchorSide: z56.enum(["left", "top", "right", "bottom"]).optional()
1295
+ anchorSide: z57.enum(["left", "top", "right", "bottom"]).optional()
1280
1296
  });
1281
1297
  expectTypesMatch(true);
1282
1298
 
@@ -1291,9 +1307,9 @@ expectTypesMatch(true);
1291
1307
 
1292
1308
  // lib/components/analogsimulation.ts
1293
1309
  import { ms } from "circuit-json";
1294
- import { z as z58 } from "zod";
1295
- var analogSimulationProps = z58.object({
1296
- 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"),
1297
1313
  duration: ms.optional(),
1298
1314
  timePerStep: ms.optional()
1299
1315
  });
@@ -1302,7 +1318,7 @@ expectTypesMatch(
1302
1318
  );
1303
1319
 
1304
1320
  // lib/components/transistor.ts
1305
- import { z as z59 } from "zod";
1321
+ import { z as z60 } from "zod";
1306
1322
  var transistorPinsLabels = [
1307
1323
  "pin1",
1308
1324
  "pin2",
@@ -1315,7 +1331,7 @@ var transistorPinsLabels = [
1315
1331
  "drain"
1316
1332
  ];
1317
1333
  var transistorProps = commonComponentProps.extend({
1318
- type: z59.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
1334
+ type: z60.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
1319
1335
  connections: createConnectionsProp(transistorPinsLabels).optional()
1320
1336
  });
1321
1337
  var transistorPins = [
@@ -1329,10 +1345,10 @@ var transistorPins = [
1329
1345
  expectTypesMatch(true);
1330
1346
 
1331
1347
  // lib/components/mosfet.ts
1332
- import { z as z60 } from "zod";
1348
+ import { z as z61 } from "zod";
1333
1349
  var mosfetProps = commonComponentProps.extend({
1334
- channelType: z60.enum(["n", "p"]),
1335
- mosfetMode: z60.enum(["enhancement", "depletion"])
1350
+ channelType: z61.enum(["n", "p"]),
1351
+ mosfetMode: z61.enum(["enhancement", "depletion"])
1336
1352
  });
1337
1353
  var mosfetPins = [
1338
1354
  "pin1",
@@ -1346,19 +1362,19 @@ expectTypesMatch(true);
1346
1362
 
1347
1363
  // lib/components/inductor.ts
1348
1364
  import { inductance } from "circuit-json";
1349
- import { z as z61 } from "zod";
1365
+ import { z as z62 } from "zod";
1350
1366
  var inductorPins = lrPins;
1351
1367
  var inductorProps = commonComponentProps.extend({
1352
1368
  inductance,
1353
- maxCurrentRating: z61.union([z61.string(), z61.number()]).optional(),
1369
+ maxCurrentRating: z62.union([z62.string(), z62.number()]).optional(),
1354
1370
  schOrientation: schematicOrientation.optional(),
1355
1371
  connections: createConnectionsProp(inductorPins).optional()
1356
1372
  });
1357
1373
  expectTypesMatch(true);
1358
1374
 
1359
1375
  // lib/components/diode.ts
1360
- import { z as z62 } from "zod";
1361
- var diodeConnectionKeys = z62.enum([
1376
+ import { z as z63 } from "zod";
1377
+ var diodeConnectionKeys = z63.enum([
1362
1378
  "anode",
1363
1379
  "cathode",
1364
1380
  "pin1",
@@ -1366,9 +1382,9 @@ var diodeConnectionKeys = z62.enum([
1366
1382
  "pos",
1367
1383
  "neg"
1368
1384
  ]);
1369
- var connectionTarget3 = z62.string().or(z62.array(z62.string()).readonly()).or(z62.array(z62.string()));
1370
- var connectionsProp2 = z62.record(diodeConnectionKeys, connectionTarget3);
1371
- 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([
1372
1388
  "standard",
1373
1389
  "schottky",
1374
1390
  "zener",
@@ -1379,12 +1395,12 @@ var diodeVariant = z62.enum([
1379
1395
  var diodeProps = commonComponentProps.extend({
1380
1396
  connections: connectionsProp2.optional(),
1381
1397
  variant: diodeVariant.optional().default("standard"),
1382
- standard: z62.boolean().optional(),
1383
- schottky: z62.boolean().optional(),
1384
- zener: z62.boolean().optional(),
1385
- avalanche: z62.boolean().optional(),
1386
- photo: z62.boolean().optional(),
1387
- 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(),
1388
1404
  schOrientation: schematicOrientation.optional()
1389
1405
  }).superRefine((data, ctx) => {
1390
1406
  const enabledFlags = [
@@ -1397,11 +1413,11 @@ var diodeProps = commonComponentProps.extend({
1397
1413
  ].filter(Boolean).length;
1398
1414
  if (enabledFlags > 1) {
1399
1415
  ctx.addIssue({
1400
- code: z62.ZodIssueCode.custom,
1416
+ code: z63.ZodIssueCode.custom,
1401
1417
  message: "Exactly one diode variant must be enabled",
1402
1418
  path: []
1403
1419
  });
1404
- return z62.INVALID;
1420
+ return z63.INVALID;
1405
1421
  }
1406
1422
  }).transform((data) => {
1407
1423
  const result = {
@@ -1448,33 +1464,33 @@ var diodePins = lrPolarPins;
1448
1464
  expectTypesMatch(true);
1449
1465
 
1450
1466
  // lib/components/led.ts
1451
- import { z as z63 } from "zod";
1467
+ import { z as z64 } from "zod";
1452
1468
  var ledProps = commonComponentProps.extend({
1453
- color: z63.string().optional(),
1454
- wavelength: z63.string().optional(),
1455
- schDisplayValue: z63.string().optional(),
1469
+ color: z64.string().optional(),
1470
+ wavelength: z64.string().optional(),
1471
+ schDisplayValue: z64.string().optional(),
1456
1472
  schOrientation: schematicOrientation.optional(),
1457
1473
  connections: createConnectionsProp(lrPolarPins).optional(),
1458
- laser: z63.boolean().optional()
1474
+ laser: z64.boolean().optional()
1459
1475
  });
1460
1476
  var ledPins = lrPolarPins;
1461
1477
 
1462
1478
  // lib/components/switch.ts
1463
1479
  import { ms as ms2, frequency as frequency3 } from "circuit-json";
1464
- import { z as z64 } from "zod";
1480
+ import { z as z65 } from "zod";
1465
1481
  var switchProps = commonComponentProps.extend({
1466
- type: z64.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
1467
- isNormallyClosed: z64.boolean().optional().default(false),
1468
- spst: z64.boolean().optional(),
1469
- spdt: z64.boolean().optional(),
1470
- dpst: z64.boolean().optional(),
1471
- 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(),
1472
1488
  simSwitchFrequency: frequency3.optional(),
1473
1489
  simCloseAt: ms2.optional(),
1474
1490
  simOpenAt: ms2.optional(),
1475
- simStartClosed: z64.boolean().optional(),
1476
- simStartOpen: z64.boolean().optional(),
1477
- 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()
1478
1494
  }).transform((props) => {
1479
1495
  const updatedProps = { ...props };
1480
1496
  if (updatedProps.dpdt) {
@@ -1506,82 +1522,82 @@ expectTypesMatch(true);
1506
1522
 
1507
1523
  // lib/components/fabrication-note-text.ts
1508
1524
  import { length as length3 } from "circuit-json";
1509
- import { z as z65 } from "zod";
1525
+ import { z as z66 } from "zod";
1510
1526
  var fabricationNoteTextProps = pcbLayoutProps.extend({
1511
- text: z65.string(),
1512
- anchorAlignment: z65.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1513
- 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(),
1514
1530
  fontSize: length3.optional(),
1515
- color: z65.string().optional()
1531
+ color: z66.string().optional()
1516
1532
  });
1517
1533
  expectTypesMatch(true);
1518
1534
 
1519
1535
  // lib/components/fabrication-note-rect.ts
1520
1536
  import { distance as distance15 } from "circuit-json";
1521
- import { z as z66 } from "zod";
1537
+ import { z as z67 } from "zod";
1522
1538
  var fabricationNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1523
1539
  width: distance15,
1524
1540
  height: distance15,
1525
1541
  strokeWidth: distance15.optional(),
1526
- isFilled: z66.boolean().optional(),
1527
- hasStroke: z66.boolean().optional(),
1528
- isStrokeDashed: z66.boolean().optional(),
1529
- color: z66.string().optional()
1542
+ isFilled: z67.boolean().optional(),
1543
+ hasStroke: z67.boolean().optional(),
1544
+ isStrokeDashed: z67.boolean().optional(),
1545
+ color: z67.string().optional()
1530
1546
  });
1531
1547
 
1532
1548
  // lib/components/fabrication-note-path.ts
1533
1549
  import { length as length4, route_hint_point as route_hint_point3 } from "circuit-json";
1534
- import { z as z67 } from "zod";
1550
+ import { z as z68 } from "zod";
1535
1551
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1536
- route: z67.array(route_hint_point3),
1552
+ route: z68.array(route_hint_point3),
1537
1553
  strokeWidth: length4.optional(),
1538
- color: z67.string().optional()
1554
+ color: z68.string().optional()
1539
1555
  });
1540
1556
 
1541
1557
  // lib/components/fabrication-note-dimension.ts
1542
1558
  import { distance as distance16, length as length5 } from "circuit-json";
1543
- import { z as z68 } from "zod";
1544
- var dimensionTarget = z68.union([z68.string(), point]);
1559
+ import { z as z69 } from "zod";
1560
+ var dimensionTarget = z69.union([z69.string(), point]);
1545
1561
  var fabricationNoteDimensionProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1546
1562
  from: dimensionTarget,
1547
1563
  to: dimensionTarget,
1548
- text: z68.string().optional(),
1564
+ text: z69.string().optional(),
1549
1565
  offset: distance16.optional(),
1550
- font: z68.enum(["tscircuit2024"]).optional(),
1566
+ font: z69.enum(["tscircuit2024"]).optional(),
1551
1567
  fontSize: length5.optional(),
1552
- color: z68.string().optional(),
1568
+ color: z69.string().optional(),
1553
1569
  arrowSize: distance16.optional()
1554
1570
  });
1555
1571
  expectTypesMatch(true);
1556
1572
 
1557
1573
  // lib/components/pcb-trace.ts
1558
1574
  import { distance as distance17, route_hint_point as route_hint_point4 } from "circuit-json";
1559
- import { z as z69 } from "zod";
1560
- var pcbTraceProps = z69.object({
1561
- layer: z69.string().optional(),
1575
+ import { z as z70 } from "zod";
1576
+ var pcbTraceProps = z70.object({
1577
+ layer: z70.string().optional(),
1562
1578
  thickness: distance17.optional(),
1563
- route: z69.array(route_hint_point4)
1579
+ route: z70.array(route_hint_point4)
1564
1580
  });
1565
1581
 
1566
1582
  // lib/components/via.ts
1567
1583
  import { distance as distance18, layer_ref as layer_ref5 } from "circuit-json";
1568
- import { z as z70 } from "zod";
1584
+ import { z as z71 } from "zod";
1569
1585
  var viaProps = commonLayoutProps.extend({
1570
- name: z70.string().optional(),
1586
+ name: z71.string().optional(),
1571
1587
  fromLayer: layer_ref5,
1572
1588
  toLayer: layer_ref5,
1573
1589
  holeDiameter: distance18,
1574
1590
  outerDiameter: distance18,
1575
- connectsTo: z70.string().or(z70.array(z70.string())).optional()
1591
+ connectsTo: z71.string().or(z71.array(z71.string())).optional()
1576
1592
  });
1577
1593
  expectTypesMatch(true);
1578
1594
 
1579
1595
  // lib/components/testpoint.ts
1580
1596
  import { distance as distance19 } from "circuit-json";
1581
- import { z as z71 } from "zod";
1597
+ import { z as z72 } from "zod";
1582
1598
  var testpointProps = commonComponentProps.extend({
1583
- footprintVariant: z71.enum(["pad", "through_hole"]).optional(),
1584
- 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"),
1585
1601
  padDiameter: distance19.optional(),
1586
1602
  holeDiameter: distance19.optional(),
1587
1603
  width: distance19.optional(),
@@ -1593,22 +1609,22 @@ var testpointProps = commonComponentProps.extend({
1593
1609
  expectTypesMatch(true);
1594
1610
 
1595
1611
  // lib/components/breakoutpoint.ts
1596
- import { z as z72 } from "zod";
1612
+ import { z as z73 } from "zod";
1597
1613
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
1598
- connection: z72.string()
1614
+ connection: z73.string()
1599
1615
  });
1600
1616
  expectTypesMatch(true);
1601
1617
 
1602
1618
  // lib/components/pcb-keepout.ts
1603
1619
  import { distance as distance20 } from "circuit-json";
1604
- import { z as z73 } from "zod";
1605
- var pcbKeepoutProps = z73.union([
1620
+ import { z as z74 } from "zod";
1621
+ var pcbKeepoutProps = z74.union([
1606
1622
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
1607
- shape: z73.literal("circle"),
1623
+ shape: z74.literal("circle"),
1608
1624
  radius: distance20
1609
1625
  }),
1610
1626
  pcbLayoutProps.extend({
1611
- shape: z73.literal("rect"),
1627
+ shape: z74.literal("rect"),
1612
1628
  width: distance20,
1613
1629
  height: distance20
1614
1630
  })
@@ -1616,35 +1632,35 @@ var pcbKeepoutProps = z73.union([
1616
1632
 
1617
1633
  // lib/components/courtyard-rect.ts
1618
1634
  import { distance as distance21 } from "circuit-json";
1619
- import { z as z74 } from "zod";
1635
+ import { z as z75 } from "zod";
1620
1636
  var courtyardRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1621
1637
  width: distance21,
1622
1638
  height: distance21,
1623
1639
  strokeWidth: distance21.optional(),
1624
- isFilled: z74.boolean().optional(),
1625
- hasStroke: z74.boolean().optional(),
1626
- isStrokeDashed: z74.boolean().optional(),
1627
- color: z74.string().optional()
1640
+ isFilled: z75.boolean().optional(),
1641
+ hasStroke: z75.boolean().optional(),
1642
+ isStrokeDashed: z75.boolean().optional(),
1643
+ color: z75.string().optional()
1628
1644
  });
1629
1645
 
1630
1646
  // lib/components/courtyard-outline.ts
1631
1647
  import { length as length6 } from "circuit-json";
1632
- import { z as z75 } from "zod";
1648
+ import { z as z76 } from "zod";
1633
1649
  var courtyardOutlineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1634
- outline: z75.array(point),
1650
+ outline: z76.array(point),
1635
1651
  strokeWidth: length6.optional(),
1636
- isClosed: z75.boolean().optional(),
1637
- isStrokeDashed: z75.boolean().optional(),
1638
- color: z75.string().optional()
1652
+ isClosed: z76.boolean().optional(),
1653
+ isStrokeDashed: z76.boolean().optional(),
1654
+ color: z76.string().optional()
1639
1655
  });
1640
1656
 
1641
1657
  // lib/components/copper-pour.ts
1642
- import { z as z76 } from "zod";
1658
+ import { z as z77 } from "zod";
1643
1659
  import { layer_ref as layer_ref6 } from "circuit-json";
1644
- var copperPourProps = z76.object({
1645
- name: z76.string().optional(),
1660
+ var copperPourProps = z77.object({
1661
+ name: z77.string().optional(),
1646
1662
  layer: layer_ref6,
1647
- connectsTo: z76.string(),
1663
+ connectsTo: z77.string(),
1648
1664
  padMargin: distance.optional(),
1649
1665
  traceMargin: distance.optional()
1650
1666
  });
@@ -1652,27 +1668,27 @@ expectTypesMatch(true);
1652
1668
 
1653
1669
  // lib/components/cadassembly.ts
1654
1670
  import { layer_ref as layer_ref7 } from "circuit-json";
1655
- import { z as z77 } from "zod";
1656
- var cadassemblyProps = z77.object({
1671
+ import { z as z78 } from "zod";
1672
+ var cadassemblyProps = z78.object({
1657
1673
  originalLayer: layer_ref7.default("top").optional(),
1658
- children: z77.any().optional()
1674
+ children: z78.any().optional()
1659
1675
  });
1660
1676
  expectTypesMatch(true);
1661
1677
 
1662
1678
  // lib/components/cadmodel.ts
1663
- import { z as z78 } from "zod";
1664
- var pcbPosition = z78.object({
1679
+ import { z as z79 } from "zod";
1680
+ var pcbPosition = z79.object({
1665
1681
  pcbX: distance.optional(),
1666
1682
  pcbY: distance.optional(),
1667
1683
  pcbZ: distance.optional()
1668
1684
  });
1669
1685
  var cadModelBaseWithUrl = cadModelBase.extend({
1670
- modelUrl: z78.string(),
1671
- stepUrl: z78.string().optional()
1686
+ modelUrl: z79.string(),
1687
+ stepUrl: z79.string().optional()
1672
1688
  });
1673
1689
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
1674
1690
  expectTypesMatch(true);
1675
- var cadmodelProps = z78.union([z78.null(), z78.string(), cadModelObject]);
1691
+ var cadmodelProps = z79.union([z79.null(), z79.string(), cadModelObject]);
1676
1692
 
1677
1693
  // lib/components/power-source.ts
1678
1694
  import { voltage as voltage3 } from "circuit-json";
@@ -1682,9 +1698,9 @@ var powerSourceProps = commonComponentProps.extend({
1682
1698
 
1683
1699
  // lib/components/voltagesource.ts
1684
1700
  import { frequency as frequency4, rotation as rotation4, voltage as voltage4 } from "circuit-json";
1685
- import { z as z79 } from "zod";
1701
+ import { z as z80 } from "zod";
1686
1702
  var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
1687
- var percentage = z79.union([z79.string(), z79.number()]).transform((val) => {
1703
+ var percentage = z80.union([z80.string(), z80.number()]).transform((val) => {
1688
1704
  if (typeof val === "string") {
1689
1705
  if (val.endsWith("%")) {
1690
1706
  return parseFloat(val.slice(0, -1)) / 100;
@@ -1693,13 +1709,13 @@ var percentage = z79.union([z79.string(), z79.number()]).transform((val) => {
1693
1709
  }
1694
1710
  return val;
1695
1711
  }).pipe(
1696
- 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%")
1697
1713
  );
1698
1714
  var voltageSourceProps = commonComponentProps.extend({
1699
1715
  voltage: voltage4.optional(),
1700
1716
  frequency: frequency4.optional(),
1701
1717
  peakToPeakVoltage: voltage4.optional(),
1702
- waveShape: z79.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
1718
+ waveShape: z80.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
1703
1719
  phase: rotation4.optional(),
1704
1720
  dutyCycle: percentage.optional(),
1705
1721
  connections: createConnectionsProp(voltageSourcePinLabels).optional()
@@ -1708,47 +1724,47 @@ var voltageSourcePins = lrPolarPins;
1708
1724
  expectTypesMatch(true);
1709
1725
 
1710
1726
  // lib/components/voltageprobe.ts
1711
- import { z as z80 } from "zod";
1727
+ import { z as z81 } from "zod";
1712
1728
  var voltageProbeProps = commonComponentProps.omit({ name: true }).extend({
1713
- name: z80.string().optional(),
1714
- connectsTo: z80.string().or(z80.array(z80.string()))
1729
+ name: z81.string().optional(),
1730
+ connectsTo: z81.string().or(z81.array(z81.string()))
1715
1731
  });
1716
1732
  expectTypesMatch(true);
1717
1733
 
1718
1734
  // lib/components/schematic-arc.ts
1719
1735
  import { distance as distance22, point as point5, rotation as rotation5 } from "circuit-json";
1720
- import { z as z81 } from "zod";
1721
- var schematicArcProps = z81.object({
1736
+ import { z as z82 } from "zod";
1737
+ var schematicArcProps = z82.object({
1722
1738
  center: point5,
1723
1739
  radius: distance22,
1724
1740
  startAngleDegrees: rotation5,
1725
1741
  endAngleDegrees: rotation5,
1726
- direction: z81.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
1742
+ direction: z82.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
1727
1743
  strokeWidth: distance22.optional(),
1728
- color: z81.string().optional(),
1729
- isDashed: z81.boolean().optional().default(false)
1744
+ color: z82.string().optional(),
1745
+ isDashed: z82.boolean().optional().default(false)
1730
1746
  });
1731
1747
 
1732
1748
  // lib/components/schematic-box.ts
1733
1749
  import { distance as distance23 } from "circuit-json";
1734
- import { z as z82 } from "zod";
1735
- var schematicBoxProps = z82.object({
1750
+ import { z as z83 } from "zod";
1751
+ var schematicBoxProps = z83.object({
1736
1752
  schX: distance23.optional(),
1737
1753
  schY: distance23.optional(),
1738
1754
  width: distance23.optional(),
1739
1755
  height: distance23.optional(),
1740
- overlay: z82.array(z82.string()).optional(),
1756
+ overlay: z83.array(z83.string()).optional(),
1741
1757
  padding: distance23.optional(),
1742
1758
  paddingLeft: distance23.optional(),
1743
1759
  paddingRight: distance23.optional(),
1744
1760
  paddingTop: distance23.optional(),
1745
1761
  paddingBottom: distance23.optional(),
1746
- title: z82.string().optional(),
1762
+ title: z83.string().optional(),
1747
1763
  titleAlignment: ninePointAnchor.default("top_left"),
1748
- titleColor: z82.string().optional(),
1764
+ titleColor: z83.string().optional(),
1749
1765
  titleFontSize: distance23.optional(),
1750
- titleInside: z82.boolean().default(false),
1751
- strokeStyle: z82.enum(["solid", "dashed"]).default("solid")
1766
+ titleInside: z83.boolean().default(false),
1767
+ strokeStyle: z83.enum(["solid", "dashed"]).default("solid")
1752
1768
  }).refine(
1753
1769
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
1754
1770
  {
@@ -1763,53 +1779,53 @@ var schematicBoxProps = z82.object({
1763
1779
 
1764
1780
  // lib/components/schematic-circle.ts
1765
1781
  import { distance as distance24, point as point6 } from "circuit-json";
1766
- import { z as z83 } from "zod";
1767
- var schematicCircleProps = z83.object({
1782
+ import { z as z84 } from "zod";
1783
+ var schematicCircleProps = z84.object({
1768
1784
  center: point6,
1769
1785
  radius: distance24,
1770
1786
  strokeWidth: distance24.optional(),
1771
- color: z83.string().optional(),
1772
- isFilled: z83.boolean().optional().default(false),
1773
- fillColor: z83.string().optional(),
1774
- 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)
1775
1791
  });
1776
1792
 
1777
1793
  // lib/components/schematic-rect.ts
1778
1794
  import { distance as distance25, rotation as rotation6 } from "circuit-json";
1779
- import { z as z84 } from "zod";
1780
- var schematicRectProps = z84.object({
1795
+ import { z as z85 } from "zod";
1796
+ var schematicRectProps = z85.object({
1781
1797
  schX: distance25.optional(),
1782
1798
  schY: distance25.optional(),
1783
1799
  width: distance25,
1784
1800
  height: distance25,
1785
1801
  rotation: rotation6.default(0),
1786
1802
  strokeWidth: distance25.optional(),
1787
- color: z84.string().optional(),
1788
- isFilled: z84.boolean().optional().default(false),
1789
- fillColor: z84.string().optional(),
1790
- 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)
1791
1807
  });
1792
1808
 
1793
1809
  // lib/components/schematic-line.ts
1794
1810
  import { distance as distance26 } from "circuit-json";
1795
- import { z as z85 } from "zod";
1796
- var schematicLineProps = z85.object({
1811
+ import { z as z86 } from "zod";
1812
+ var schematicLineProps = z86.object({
1797
1813
  x1: distance26,
1798
1814
  y1: distance26,
1799
1815
  x2: distance26,
1800
1816
  y2: distance26,
1801
1817
  strokeWidth: distance26.optional(),
1802
- color: z85.string().optional(),
1803
- isDashed: z85.boolean().optional().default(false)
1818
+ color: z86.string().optional(),
1819
+ isDashed: z86.boolean().optional().default(false)
1804
1820
  });
1805
1821
 
1806
1822
  // lib/components/schematic-text.ts
1807
1823
  import { distance as distance27, rotation as rotation7 } from "circuit-json";
1808
- import { z as z87 } from "zod";
1824
+ import { z as z88 } from "zod";
1809
1825
 
1810
1826
  // lib/common/fivePointAnchor.ts
1811
- import { z as z86 } from "zod";
1812
- var fivePointAnchor = z86.enum([
1827
+ import { z as z87 } from "zod";
1828
+ var fivePointAnchor = z87.enum([
1813
1829
  "center",
1814
1830
  "left",
1815
1831
  "right",
@@ -1818,32 +1834,32 @@ var fivePointAnchor = z86.enum([
1818
1834
  ]);
1819
1835
 
1820
1836
  // lib/components/schematic-text.ts
1821
- var schematicTextProps = z87.object({
1837
+ var schematicTextProps = z88.object({
1822
1838
  schX: distance27.optional(),
1823
1839
  schY: distance27.optional(),
1824
- text: z87.string(),
1825
- fontSize: z87.number().default(1),
1826
- anchor: z87.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
1827
- 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"),
1828
1844
  schRotation: rotation7.default(0)
1829
1845
  });
1830
1846
 
1831
1847
  // lib/components/schematic-path.ts
1832
1848
  import { point as point8 } from "circuit-json";
1833
- import { z as z88 } from "zod";
1834
- var schematicPathProps = z88.object({
1835
- points: z88.array(point8),
1836
- isFilled: z88.boolean().optional().default(false),
1837
- 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()
1838
1854
  });
1839
1855
 
1840
1856
  // lib/components/schematic-table.ts
1841
1857
  import { distance as distance28 } from "circuit-json";
1842
- import { z as z89 } from "zod";
1843
- var schematicTableProps = z89.object({
1858
+ import { z as z90 } from "zod";
1859
+ var schematicTableProps = z90.object({
1844
1860
  schX: distance28.optional(),
1845
1861
  schY: distance28.optional(),
1846
- children: z89.any().optional(),
1862
+ children: z90.any().optional(),
1847
1863
  cellPadding: distance28.optional(),
1848
1864
  borderWidth: distance28.optional(),
1849
1865
  anchor: ninePointAnchor.optional(),
@@ -1853,53 +1869,53 @@ expectTypesMatch(true);
1853
1869
 
1854
1870
  // lib/components/schematic-row.ts
1855
1871
  import { distance as distance29 } from "circuit-json";
1856
- import { z as z90 } from "zod";
1857
- var schematicRowProps = z90.object({
1858
- children: z90.any().optional(),
1872
+ import { z as z91 } from "zod";
1873
+ var schematicRowProps = z91.object({
1874
+ children: z91.any().optional(),
1859
1875
  height: distance29.optional()
1860
1876
  });
1861
1877
  expectTypesMatch(true);
1862
1878
 
1863
1879
  // lib/components/schematic-cell.ts
1864
1880
  import { distance as distance30 } from "circuit-json";
1865
- import { z as z91 } from "zod";
1866
- var schematicCellProps = z91.object({
1867
- children: z91.string().optional(),
1868
- horizontalAlign: z91.enum(["left", "center", "right"]).optional(),
1869
- 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(),
1870
1886
  fontSize: distance30.optional(),
1871
- rowSpan: z91.number().optional(),
1872
- colSpan: z91.number().optional(),
1887
+ rowSpan: z92.number().optional(),
1888
+ colSpan: z92.number().optional(),
1873
1889
  width: distance30.optional(),
1874
- text: z91.string().optional()
1890
+ text: z92.string().optional()
1875
1891
  });
1876
1892
  expectTypesMatch(true);
1877
1893
 
1878
1894
  // lib/components/silkscreen-text.ts
1879
1895
  import { layer_ref as layer_ref8, length as length7 } from "circuit-json";
1880
- import { z as z92 } from "zod";
1896
+ import { z as z93 } from "zod";
1881
1897
  var silkscreenTextProps = pcbLayoutProps.extend({
1882
- text: z92.string(),
1898
+ text: z93.string(),
1883
1899
  anchorAlignment: ninePointAnchor.default("center"),
1884
- font: z92.enum(["tscircuit2024"]).optional(),
1900
+ font: z93.enum(["tscircuit2024"]).optional(),
1885
1901
  fontSize: length7.optional(),
1886
1902
  /**
1887
1903
  * If true, text will knock out underlying silkscreen
1888
1904
  */
1889
- isKnockout: z92.boolean().optional(),
1905
+ isKnockout: z93.boolean().optional(),
1890
1906
  knockoutPadding: length7.optional(),
1891
1907
  knockoutPaddingLeft: length7.optional(),
1892
1908
  knockoutPaddingRight: length7.optional(),
1893
1909
  knockoutPaddingTop: length7.optional(),
1894
1910
  knockoutPaddingBottom: length7.optional(),
1895
- layers: z92.array(layer_ref8).optional()
1911
+ layers: z93.array(layer_ref8).optional()
1896
1912
  });
1897
1913
 
1898
1914
  // lib/components/silkscreen-path.ts
1899
1915
  import { length as length8, route_hint_point as route_hint_point5 } from "circuit-json";
1900
- import { z as z93 } from "zod";
1916
+ import { z as z94 } from "zod";
1901
1917
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1902
- route: z93.array(route_hint_point5),
1918
+ route: z94.array(route_hint_point5),
1903
1919
  strokeWidth: length8.optional()
1904
1920
  });
1905
1921
 
@@ -1915,10 +1931,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotat
1915
1931
 
1916
1932
  // lib/components/silkscreen-rect.ts
1917
1933
  import { distance as distance32 } from "circuit-json";
1918
- import { z as z94 } from "zod";
1934
+ import { z as z95 } from "zod";
1919
1935
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1920
- filled: z94.boolean().default(true).optional(),
1921
- stroke: z94.enum(["dashed", "solid", "none"]).optional(),
1936
+ filled: z95.boolean().default(true).optional(),
1937
+ stroke: z95.enum(["dashed", "solid", "none"]).optional(),
1922
1938
  strokeWidth: distance32.optional(),
1923
1939
  width: distance32,
1924
1940
  height: distance32
@@ -1926,66 +1942,66 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1926
1942
 
1927
1943
  // lib/components/silkscreen-circle.ts
1928
1944
  import { distance as distance33 } from "circuit-json";
1929
- import { z as z95 } from "zod";
1945
+ import { z as z96 } from "zod";
1930
1946
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1931
- isFilled: z95.boolean().optional(),
1932
- isOutline: z95.boolean().optional(),
1947
+ isFilled: z96.boolean().optional(),
1948
+ isOutline: z96.boolean().optional(),
1933
1949
  strokeWidth: distance33.optional(),
1934
1950
  radius: distance33
1935
1951
  });
1936
1952
 
1937
1953
  // lib/components/trace-hint.ts
1938
1954
  import { distance as distance34, layer_ref as layer_ref9, route_hint_point as route_hint_point6 } from "circuit-json";
1939
- import { z as z96 } from "zod";
1940
- var routeHintPointProps = z96.object({
1955
+ import { z as z97 } from "zod";
1956
+ var routeHintPointProps = z97.object({
1941
1957
  x: distance34,
1942
1958
  y: distance34,
1943
- via: z96.boolean().optional(),
1959
+ via: z97.boolean().optional(),
1944
1960
  toLayer: layer_ref9.optional()
1945
1961
  });
1946
- var traceHintProps = z96.object({
1947
- for: z96.string().optional().describe(
1962
+ var traceHintProps = z97.object({
1963
+ for: z97.string().optional().describe(
1948
1964
  "Selector for the port you're targeting, not required if you're inside a trace"
1949
1965
  ),
1950
- order: z96.number().optional(),
1966
+ order: z97.number().optional(),
1951
1967
  offset: route_hint_point6.or(routeHintPointProps).optional(),
1952
- offsets: z96.array(route_hint_point6).or(z96.array(routeHintPointProps)).optional(),
1953
- traceWidth: z96.number().optional()
1968
+ offsets: z97.array(route_hint_point6).or(z97.array(routeHintPointProps)).optional(),
1969
+ traceWidth: z97.number().optional()
1954
1970
  });
1955
1971
 
1956
1972
  // lib/components/port.ts
1957
- import { z as z97 } from "zod";
1973
+ import { z as z98 } from "zod";
1958
1974
  var portProps = commonLayoutProps.extend({
1959
- name: z97.string(),
1960
- pinNumber: z97.number().optional(),
1961
- aliases: z97.array(z97.string()).optional(),
1975
+ name: z98.string(),
1976
+ pinNumber: z98.number().optional(),
1977
+ aliases: z98.array(z98.string()).optional(),
1962
1978
  direction,
1963
- connectsTo: z97.string().or(z97.array(z97.string())).optional()
1979
+ connectsTo: z98.string().or(z98.array(z98.string())).optional()
1964
1980
  });
1965
1981
 
1966
1982
  // lib/components/pcb-note-text.ts
1967
1983
  import { length as length9 } from "circuit-json";
1968
- import { z as z98 } from "zod";
1984
+ import { z as z99 } from "zod";
1969
1985
  var pcbNoteTextProps = pcbLayoutProps.extend({
1970
- text: z98.string(),
1971
- anchorAlignment: z98.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
1972
- 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(),
1973
1989
  fontSize: length9.optional(),
1974
- color: z98.string().optional()
1990
+ color: z99.string().optional()
1975
1991
  });
1976
1992
  expectTypesMatch(true);
1977
1993
 
1978
1994
  // lib/components/pcb-note-rect.ts
1979
1995
  import { distance as distance35 } from "circuit-json";
1980
- import { z as z99 } from "zod";
1996
+ import { z as z100 } from "zod";
1981
1997
  var pcbNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
1982
1998
  width: distance35,
1983
1999
  height: distance35,
1984
2000
  strokeWidth: distance35.optional(),
1985
- isFilled: z99.boolean().optional(),
1986
- hasStroke: z99.boolean().optional(),
1987
- isStrokeDashed: z99.boolean().optional(),
1988
- color: z99.string().optional()
2001
+ isFilled: z100.boolean().optional(),
2002
+ hasStroke: z100.boolean().optional(),
2003
+ isStrokeDashed: z100.boolean().optional(),
2004
+ color: z100.string().optional()
1989
2005
  });
1990
2006
  expectTypesMatch(true);
1991
2007
 
@@ -1994,40 +2010,40 @@ import {
1994
2010
  length as length10,
1995
2011
  route_hint_point as route_hint_point7
1996
2012
  } from "circuit-json";
1997
- import { z as z100 } from "zod";
2013
+ import { z as z101 } from "zod";
1998
2014
  var pcbNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
1999
- route: z100.array(route_hint_point7),
2015
+ route: z101.array(route_hint_point7),
2000
2016
  strokeWidth: length10.optional(),
2001
- color: z100.string().optional()
2017
+ color: z101.string().optional()
2002
2018
  });
2003
2019
  expectTypesMatch(true);
2004
2020
 
2005
2021
  // lib/components/pcb-note-line.ts
2006
2022
  import { distance as distance36 } from "circuit-json";
2007
- import { z as z101 } from "zod";
2023
+ import { z as z102 } from "zod";
2008
2024
  var pcbNoteLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
2009
2025
  x1: distance36,
2010
2026
  y1: distance36,
2011
2027
  x2: distance36,
2012
2028
  y2: distance36,
2013
2029
  strokeWidth: distance36.optional(),
2014
- color: z101.string().optional(),
2015
- isDashed: z101.boolean().optional()
2030
+ color: z102.string().optional(),
2031
+ isDashed: z102.boolean().optional()
2016
2032
  });
2017
2033
  expectTypesMatch(true);
2018
2034
 
2019
2035
  // lib/components/pcb-note-dimension.ts
2020
2036
  import { distance as distance37, length as length11 } from "circuit-json";
2021
- import { z as z102 } from "zod";
2022
- var dimensionTarget2 = z102.union([z102.string(), point]);
2037
+ import { z as z103 } from "zod";
2038
+ var dimensionTarget2 = z103.union([z103.string(), point]);
2023
2039
  var pcbNoteDimensionProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
2024
2040
  from: dimensionTarget2,
2025
2041
  to: dimensionTarget2,
2026
- text: z102.string().optional(),
2042
+ text: z103.string().optional(),
2027
2043
  offset: distance37.optional(),
2028
- font: z102.enum(["tscircuit2024"]).optional(),
2044
+ font: z103.enum(["tscircuit2024"]).optional(),
2029
2045
  fontSize: length11.optional(),
2030
- color: z102.string().optional(),
2046
+ color: z103.string().optional(),
2031
2047
  arrowSize: distance37.optional()
2032
2048
  });
2033
2049
  expectTypesMatch(
@@ -2035,64 +2051,64 @@ expectTypesMatch(
2035
2051
  );
2036
2052
 
2037
2053
  // lib/platformConfig.ts
2038
- import { z as z103 } from "zod";
2039
- var unvalidatedCircuitJson = z103.array(z103.any()).describe("Circuit JSON");
2040
- var footprintLibraryResult = z103.object({
2041
- 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()),
2042
2058
  cadModel: cadModelProp.optional()
2043
2059
  });
2044
- var pathToCircuitJsonFn = z103.function().args(z103.string()).returns(z103.promise(footprintLibraryResult)).describe("A function that takes a path and returns Circuit JSON");
2045
- var footprintFileParserEntry = z103.object({
2046
- 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(
2047
2063
  "A function that takes a footprint file URL and returns Circuit JSON"
2048
2064
  )
2049
2065
  });
2050
- var spiceEngineSimulationResult = z103.object({
2051
- engineVersionString: z103.string().optional(),
2066
+ var spiceEngineSimulationResult = z104.object({
2067
+ engineVersionString: z104.string().optional(),
2052
2068
  simulationResultCircuitJson: unvalidatedCircuitJson
2053
2069
  });
2054
- var spiceEngineZod = z103.object({
2055
- 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(
2056
2072
  "A function that takes a SPICE string and returns a simulation result"
2057
2073
  )
2058
2074
  });
2059
- var autorouterInstance = z103.object({
2060
- run: z103.function().args().returns(z103.promise(z103.unknown())).describe("Run the autorouter"),
2061
- 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")
2062
2078
  });
2063
- var autorouterDefinition = z103.object({
2064
- 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")
2065
2081
  });
2066
- var platformConfig = z103.object({
2082
+ var platformConfig = z104.object({
2067
2083
  partsEngine: partsEngine.optional(),
2068
2084
  autorouter: autorouterProp.optional(),
2069
- autorouterMap: z103.record(z103.string(), autorouterDefinition).optional(),
2070
- registryApiUrl: z103.string().optional(),
2071
- cloudAutorouterUrl: z103.string().optional(),
2072
- projectName: z103.string().optional(),
2073
- projectBaseUrl: z103.string().optional(),
2074
- version: z103.string().optional(),
2075
- url: z103.string().optional(),
2076
- printBoardInformationToSilkscreen: z103.boolean().optional(),
2077
- 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(
2078
2094
  'The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs'
2079
2095
  ).optional(),
2080
- localCacheEngine: z103.any().optional(),
2081
- pcbDisabled: z103.boolean().optional(),
2082
- schematicDisabled: z103.boolean().optional(),
2083
- partsEngineDisabled: z103.boolean().optional(),
2084
- spiceEngineMap: z103.record(z103.string(), spiceEngineZod).optional(),
2085
- footprintLibraryMap: z103.record(
2086
- z103.string(),
2087
- 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([
2088
2104
  pathToCircuitJsonFn,
2089
- z103.record(
2090
- z103.string(),
2091
- z103.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
2105
+ z104.record(
2106
+ z104.string(),
2107
+ z104.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
2092
2108
  )
2093
2109
  ])
2094
2110
  ).optional(),
2095
- footprintFileParserMap: z103.record(z103.string(), footprintFileParserEntry).optional()
2111
+ footprintFileParserMap: z104.record(z104.string(), footprintFileParserEntry).optional()
2096
2112
  });
2097
2113
  expectTypesMatch(true);
2098
2114
 
@@ -2193,6 +2209,7 @@ export {
2193
2209
  netLabelProps,
2194
2210
  netProps,
2195
2211
  ninePointAnchor,
2212
+ panelProps,
2196
2213
  partsEngine,
2197
2214
  pcbKeepoutProps,
2198
2215
  pcbLayoutProps,