@tscircuit/props 0.0.581 → 0.0.583

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
@@ -16542,7 +16542,8 @@ var boardProps = subcircuitGroupProps.omit({ connections: true }).extend({
16542
16542
  z42.literal(2),
16543
16543
  z42.literal(4),
16544
16544
  z42.literal(6),
16545
- z42.literal(8)
16545
+ z42.literal(8),
16546
+ z42.literal(10)
16546
16547
  ]).default(2),
16547
16548
  borderRadius: distance.optional(),
16548
16549
  thickness: distance.optional(),
@@ -16612,6 +16613,7 @@ expectTypesMatch(true);
16612
16613
 
16613
16614
  // lib/components/chip.ts
16614
16615
  import { distance as distance13, supplier_name as supplier_name2 } from "circuit-json";
16616
+ import { isValidElement } from "react";
16615
16617
  import { z as z46 } from "zod";
16616
16618
  var connectionTarget2 = z46.string().or(z46.array(z46.string()).readonly()).or(z46.array(z46.string()));
16617
16619
  var noConnectProp = z46.array(schematicPinLabel).readonly().or(z46.array(schematicPinLabel));
@@ -16619,6 +16621,9 @@ var connectionsProp = z46.custom().pipe(z46.record(z46.string(), connectionTarge
16619
16621
  var spicemodelElement = z46.custom(
16620
16622
  (v) => !!v && typeof v === "object" && "type" in v && "props" in v
16621
16623
  );
16624
+ var internalCircuitElement = z46.custom(
16625
+ (value) => isValidElement(value) && value.type === "internalcircuit"
16626
+ );
16622
16627
  var pinLabelsProp = z46.record(
16623
16628
  schematicPinLabel,
16624
16629
  schematicPinLabel.or(z46.array(schematicPinLabel).readonly()).or(z46.array(schematicPinLabel))
@@ -16645,7 +16650,8 @@ var chipProps = commonComponentProps.extend({
16645
16650
  noSchematicRepresentation: z46.boolean().optional(),
16646
16651
  noConnect: noConnectProp.optional(),
16647
16652
  connections: connectionsProp.optional(),
16648
- spiceModel: spicemodelElement.optional()
16653
+ spiceModel: spicemodelElement.optional(),
16654
+ internalCircuit: internalCircuitElement.optional()
16649
16655
  });
16650
16656
  var bugProps = chipProps;
16651
16657
  expectTypesMatch(true);
@@ -17618,10 +17624,19 @@ var inductorProps = commonComponentProps.extend({
17618
17624
  });
17619
17625
  expectTypesMatch(true);
17620
17626
 
17621
- // lib/components/diode.ts
17627
+ // lib/components/internal-circuit.ts
17622
17628
  import { z as z86 } from "zod";
17629
+ var internalCircuitProps = z86.object({
17630
+ children: z86.custom().optional()
17631
+ });
17632
+ expectTypesMatch(
17633
+ true
17634
+ );
17635
+
17636
+ // lib/components/diode.ts
17637
+ import { z as z87 } from "zod";
17623
17638
  var diodePins = lrPolarPins;
17624
- var diodeConnectionKeys = z86.enum([
17639
+ var diodeConnectionKeys = z87.enum([
17625
17640
  "anode",
17626
17641
  "cathode",
17627
17642
  "pin1",
@@ -17629,13 +17644,13 @@ var diodeConnectionKeys = z86.enum([
17629
17644
  "pos",
17630
17645
  "neg"
17631
17646
  ]);
17632
- var connectionTarget3 = z86.string().or(z86.array(z86.string()).readonly()).or(z86.array(z86.string()));
17633
- var connectionsProp2 = z86.record(diodeConnectionKeys, connectionTarget3);
17634
- var diodePinLabelsProp = z86.record(
17635
- z86.enum(diodePins),
17636
- schematicPinLabel.or(z86.array(schematicPinLabel).readonly()).or(z86.array(schematicPinLabel))
17647
+ var connectionTarget3 = z87.string().or(z87.array(z87.string()).readonly()).or(z87.array(z87.string()));
17648
+ var connectionsProp2 = z87.record(diodeConnectionKeys, connectionTarget3);
17649
+ var diodePinLabelsProp = z87.record(
17650
+ z87.enum(diodePins),
17651
+ schematicPinLabel.or(z87.array(schematicPinLabel).readonly()).or(z87.array(schematicPinLabel))
17637
17652
  );
17638
- var diodeVariant = z86.enum([
17653
+ var diodeVariant = z87.enum([
17639
17654
  "standard",
17640
17655
  "schottky",
17641
17656
  "zener",
@@ -17646,12 +17661,12 @@ var diodeVariant = z86.enum([
17646
17661
  var diodeProps = commonComponentProps.extend({
17647
17662
  connections: connectionsProp2.optional(),
17648
17663
  variant: diodeVariant.optional().default("standard"),
17649
- standard: z86.boolean().optional(),
17650
- schottky: z86.boolean().optional(),
17651
- zener: z86.boolean().optional(),
17652
- avalanche: z86.boolean().optional(),
17653
- photo: z86.boolean().optional(),
17654
- tvs: z86.boolean().optional(),
17664
+ standard: z87.boolean().optional(),
17665
+ schottky: z87.boolean().optional(),
17666
+ zener: z87.boolean().optional(),
17667
+ avalanche: z87.boolean().optional(),
17668
+ photo: z87.boolean().optional(),
17669
+ tvs: z87.boolean().optional(),
17655
17670
  schOrientation: schematicOrientation.optional(),
17656
17671
  pinLabels: diodePinLabelsProp.optional()
17657
17672
  }).superRefine((data, ctx) => {
@@ -17665,11 +17680,11 @@ var diodeProps = commonComponentProps.extend({
17665
17680
  ].filter(Boolean).length;
17666
17681
  if (enabledFlags > 1) {
17667
17682
  ctx.addIssue({
17668
- code: z86.ZodIssueCode.custom,
17683
+ code: z87.ZodIssueCode.custom,
17669
17684
  message: "Exactly one diode variant must be enabled",
17670
17685
  path: []
17671
17686
  });
17672
- return z86.INVALID;
17687
+ return z87.INVALID;
17673
17688
  }
17674
17689
  }).transform((data) => {
17675
17690
  const result = {
@@ -17715,34 +17730,34 @@ var diodeProps = commonComponentProps.extend({
17715
17730
  expectTypesMatch(true);
17716
17731
 
17717
17732
  // lib/components/led.ts
17718
- import { z as z87 } from "zod";
17733
+ import { z as z88 } from "zod";
17719
17734
  var ledProps = commonComponentProps.extend({
17720
- color: z87.string().optional(),
17721
- wavelength: z87.string().optional(),
17722
- schDisplayValue: z87.string().optional(),
17735
+ color: z88.string().optional(),
17736
+ wavelength: z88.string().optional(),
17737
+ schDisplayValue: z88.string().optional(),
17723
17738
  schOrientation: schematicOrientation.optional(),
17724
17739
  connections: createConnectionsProp(lrPolarPins).optional(),
17725
- laser: z87.boolean().optional()
17740
+ laser: z88.boolean().optional()
17726
17741
  });
17727
17742
  var ledPins = lrPolarPins;
17728
17743
 
17729
17744
  // lib/components/switch.ts
17730
17745
  import { ms as ms2, frequency as frequency3 } from "circuit-json";
17731
- import { z as z88 } from "zod";
17746
+ import { z as z89 } from "zod";
17732
17747
  var switchProps = commonComponentProps.extend({
17733
- type: z88.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
17734
- isNormallyClosed: z88.boolean().optional().default(false),
17735
- spst: z88.boolean().optional(),
17736
- spdt: z88.boolean().optional(),
17737
- dpst: z88.boolean().optional(),
17738
- dpdt: z88.boolean().optional(),
17748
+ type: z89.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
17749
+ isNormallyClosed: z89.boolean().optional().default(false),
17750
+ spst: z89.boolean().optional(),
17751
+ spdt: z89.boolean().optional(),
17752
+ dpst: z89.boolean().optional(),
17753
+ dpdt: z89.boolean().optional(),
17739
17754
  pinLabels: pinLabelsProp.optional(),
17740
17755
  simSwitchFrequency: frequency3.optional(),
17741
17756
  simCloseAt: ms2.optional(),
17742
17757
  simOpenAt: ms2.optional(),
17743
- simStartClosed: z88.boolean().optional(),
17744
- simStartOpen: z88.boolean().optional(),
17745
- connections: z88.custom().pipe(z88.record(z88.string(), connectionTarget)).optional()
17758
+ simStartClosed: z89.boolean().optional(),
17759
+ simStartOpen: z89.boolean().optional(),
17760
+ connections: z89.custom().pipe(z89.record(z89.string(), connectionTarget)).optional()
17746
17761
  }).transform((props) => {
17747
17762
  const updatedProps = { ...props };
17748
17763
  if (updatedProps.dpdt) {
@@ -17774,33 +17789,33 @@ expectTypesMatch(true);
17774
17789
 
17775
17790
  // lib/components/fabrication-note-text.ts
17776
17791
  import { length as length4 } from "circuit-json";
17777
- import { z as z89 } from "zod";
17792
+ import { z as z90 } from "zod";
17778
17793
  var fabricationNoteTextProps = pcbLayoutProps.extend({
17779
- text: z89.string(),
17780
- anchorAlignment: z89.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
17781
- font: z89.enum(["tscircuit2024"]).optional(),
17794
+ text: z90.string(),
17795
+ anchorAlignment: z90.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
17796
+ font: z90.enum(["tscircuit2024"]).optional(),
17782
17797
  fontSize: length4.optional(),
17783
- color: z89.string().optional()
17798
+ color: z90.string().optional()
17784
17799
  });
17785
17800
  expectTypesMatch(true);
17786
17801
 
17787
17802
  // lib/components/fabrication-note-rect.ts
17788
17803
  import { distance as distance21 } from "circuit-json";
17789
- import { z as z90 } from "zod";
17804
+ import { z as z91 } from "zod";
17790
17805
  var fabricationNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17791
17806
  width: distance21,
17792
17807
  height: distance21,
17793
17808
  strokeWidth: distance21.optional(),
17794
- isFilled: z90.boolean().optional(),
17795
- hasStroke: z90.boolean().optional(),
17796
- isStrokeDashed: z90.boolean().optional(),
17797
- color: z90.string().optional(),
17809
+ isFilled: z91.boolean().optional(),
17810
+ hasStroke: z91.boolean().optional(),
17811
+ isStrokeDashed: z91.boolean().optional(),
17812
+ color: z91.string().optional(),
17798
17813
  cornerRadius: distance21.optional()
17799
17814
  });
17800
17815
 
17801
17816
  // lib/components/fabrication-note-path.ts
17802
17817
  import { length as length5, route_hint_point as route_hint_point3 } from "circuit-json";
17803
- import { z as z91 } from "zod";
17818
+ import { z as z92 } from "zod";
17804
17819
  var fabricationNotePathProps = pcbLayoutProps.omit({
17805
17820
  pcbLeftEdgeX: true,
17806
17821
  pcbRightEdgeX: true,
@@ -17812,15 +17827,15 @@ var fabricationNotePathProps = pcbLayoutProps.omit({
17812
17827
  pcbOffsetY: true,
17813
17828
  pcbRotation: true
17814
17829
  }).extend({
17815
- route: z91.array(route_hint_point3),
17830
+ route: z92.array(route_hint_point3),
17816
17831
  strokeWidth: length5.optional(),
17817
- color: z91.string().optional()
17832
+ color: z92.string().optional()
17818
17833
  });
17819
17834
 
17820
17835
  // lib/components/fabrication-note-dimension.ts
17821
17836
  import { distance as distance22, length as length6 } from "circuit-json";
17822
- import { z as z92 } from "zod";
17823
- var dimensionTarget = z92.union([z92.string(), point]);
17837
+ import { z as z93 } from "zod";
17838
+ var dimensionTarget = z93.union([z93.string(), point]);
17824
17839
  var fabricationNoteDimensionProps = pcbLayoutProps.omit({
17825
17840
  pcbLeftEdgeX: true,
17826
17841
  pcbRightEdgeX: true,
@@ -17834,54 +17849,54 @@ var fabricationNoteDimensionProps = pcbLayoutProps.omit({
17834
17849
  }).extend({
17835
17850
  from: dimensionTarget,
17836
17851
  to: dimensionTarget,
17837
- text: z92.string().optional(),
17852
+ text: z93.string().optional(),
17838
17853
  offset: distance22.optional(),
17839
- font: z92.enum(["tscircuit2024"]).optional(),
17854
+ font: z93.enum(["tscircuit2024"]).optional(),
17840
17855
  fontSize: length6.optional(),
17841
- color: z92.string().optional(),
17856
+ color: z93.string().optional(),
17842
17857
  arrowSize: distance22.optional(),
17843
- units: z92.enum(["in", "mm"]).optional(),
17844
- outerEdgeToEdge: z92.literal(true).optional(),
17845
- centerToCenter: z92.literal(true).optional(),
17846
- innerEdgeToEdge: z92.literal(true).optional()
17858
+ units: z93.enum(["in", "mm"]).optional(),
17859
+ outerEdgeToEdge: z93.literal(true).optional(),
17860
+ centerToCenter: z93.literal(true).optional(),
17861
+ innerEdgeToEdge: z93.literal(true).optional()
17847
17862
  });
17848
17863
  expectTypesMatch(true);
17849
17864
 
17850
17865
  // lib/components/pcb-trace.ts
17851
17866
  import { distance as distance23, route_hint_point as route_hint_point4 } from "circuit-json";
17852
- import { z as z93 } from "zod";
17853
- var pcbTraceProps = z93.object({
17854
- layer: z93.string().optional(),
17867
+ import { z as z94 } from "zod";
17868
+ var pcbTraceProps = z94.object({
17869
+ layer: z94.string().optional(),
17855
17870
  thickness: distance23.optional(),
17856
- route: z93.array(route_hint_point4)
17871
+ route: z94.array(route_hint_point4)
17857
17872
  });
17858
17873
 
17859
17874
  // lib/components/via.ts
17860
17875
  import { distance as distance24, layer_ref as layer_ref6 } from "circuit-json";
17861
- import { z as z94 } from "zod";
17876
+ import { z as z95 } from "zod";
17862
17877
  var viaProps = commonLayoutProps.extend({
17863
- name: z94.string().optional(),
17878
+ name: z95.string().optional(),
17864
17879
  fromLayer: layer_ref6.optional(),
17865
17880
  toLayer: layer_ref6.optional(),
17866
17881
  holeDiameter: distance24.optional(),
17867
17882
  outerDiameter: distance24.optional(),
17868
- layers: z94.array(layer_ref6).optional(),
17869
- connectsTo: z94.string().or(z94.array(z94.string())).optional(),
17870
- netIsAssignable: z94.boolean().optional()
17883
+ layers: z95.array(layer_ref6).optional(),
17884
+ connectsTo: z95.string().or(z95.array(z95.string())).optional(),
17885
+ netIsAssignable: z95.boolean().optional()
17871
17886
  });
17872
17887
  expectTypesMatch(true);
17873
17888
 
17874
17889
  // lib/components/testpoint.ts
17875
17890
  import { distance as distance25 } from "circuit-json";
17876
- import { z as z95 } from "zod";
17891
+ import { z as z96 } from "zod";
17877
17892
  var testpointPins = ["pin1"];
17878
- var testpointConnectionsProp = z95.object({
17893
+ var testpointConnectionsProp = z96.object({
17879
17894
  pin1: connectionTarget
17880
17895
  }).strict();
17881
17896
  var testpointProps = commonComponentProps.extend({
17882
17897
  connections: testpointConnectionsProp.optional(),
17883
- footprintVariant: z95.enum(["pad", "through_hole"]).optional(),
17884
- padShape: z95.enum(["rect", "circle"]).optional().default("circle"),
17898
+ footprintVariant: z96.enum(["pad", "through_hole"]).optional(),
17899
+ padShape: z96.enum(["rect", "circle"]).optional().default("circle"),
17885
17900
  padDiameter: distance25.optional(),
17886
17901
  holeDiameter: distance25.optional(),
17887
17902
  width: distance25.optional(),
@@ -17893,45 +17908,45 @@ var testpointProps = commonComponentProps.extend({
17893
17908
  expectTypesMatch(true);
17894
17909
 
17895
17910
  // lib/components/breakoutpoint.ts
17896
- import { z as z96 } from "zod";
17911
+ import { z as z97 } from "zod";
17897
17912
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
17898
- connection: z96.string()
17913
+ connection: z97.string()
17899
17914
  });
17900
17915
  expectTypesMatch(true);
17901
17916
 
17902
17917
  // lib/components/pcb-keepout.ts
17903
17918
  import { distance as distance26, layer_ref as layer_ref7 } from "circuit-json";
17904
- import { z as z97 } from "zod";
17905
- var pcbKeepoutProps = z97.union([
17919
+ import { z as z98 } from "zod";
17920
+ var pcbKeepoutProps = z98.union([
17906
17921
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
17907
- shape: z97.literal("circle"),
17922
+ shape: z98.literal("circle"),
17908
17923
  radius: distance26,
17909
- layers: z97.array(layer_ref7).optional()
17924
+ layers: z98.array(layer_ref7).optional()
17910
17925
  }),
17911
17926
  pcbLayoutProps.extend({
17912
- shape: z97.literal("rect"),
17927
+ shape: z98.literal("rect"),
17913
17928
  width: distance26,
17914
17929
  height: distance26,
17915
- layers: z97.array(layer_ref7).optional()
17930
+ layers: z98.array(layer_ref7).optional()
17916
17931
  })
17917
17932
  ]);
17918
17933
 
17919
17934
  // lib/components/courtyard-rect.ts
17920
17935
  import { distance as distance27 } from "circuit-json";
17921
- import { z as z98 } from "zod";
17936
+ import { z as z99 } from "zod";
17922
17937
  var courtyardRectProps = pcbLayoutProps.extend({
17923
17938
  width: distance27,
17924
17939
  height: distance27,
17925
17940
  strokeWidth: distance27.optional(),
17926
- isFilled: z98.boolean().optional(),
17927
- hasStroke: z98.boolean().optional(),
17928
- isStrokeDashed: z98.boolean().optional(),
17929
- color: z98.string().optional()
17941
+ isFilled: z99.boolean().optional(),
17942
+ hasStroke: z99.boolean().optional(),
17943
+ isStrokeDashed: z99.boolean().optional(),
17944
+ color: z99.string().optional()
17930
17945
  });
17931
17946
 
17932
17947
  // lib/components/courtyard-outline.ts
17933
17948
  import { length as length7 } from "circuit-json";
17934
- import { z as z99 } from "zod";
17949
+ import { z as z100 } from "zod";
17935
17950
  var courtyardOutlineProps = pcbLayoutProps.omit({
17936
17951
  pcbLeftEdgeX: true,
17937
17952
  pcbRightEdgeX: true,
@@ -17943,11 +17958,11 @@ var courtyardOutlineProps = pcbLayoutProps.omit({
17943
17958
  pcbOffsetY: true,
17944
17959
  pcbRotation: true
17945
17960
  }).extend({
17946
- outline: z99.array(point),
17961
+ outline: z100.array(point),
17947
17962
  strokeWidth: length7.optional(),
17948
- isClosed: z99.boolean().optional(),
17949
- isStrokeDashed: z99.boolean().optional(),
17950
- color: z99.string().optional()
17963
+ isClosed: z100.boolean().optional(),
17964
+ isStrokeDashed: z100.boolean().optional(),
17965
+ color: z100.string().optional()
17951
17966
  });
17952
17967
 
17953
17968
  // lib/components/courtyard-circle.ts
@@ -17967,35 +17982,35 @@ var courtyardPillProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17967
17982
  });
17968
17983
 
17969
17984
  // lib/components/copper-pour.ts
17970
- import { z as z102 } from "zod";
17985
+ import { z as z103 } from "zod";
17971
17986
  import { layer_ref as layer_ref8 } from "circuit-json";
17972
- var copperPourProps = z102.object({
17973
- name: z102.string().optional(),
17987
+ var copperPourProps = z103.object({
17988
+ name: z103.string().optional(),
17974
17989
  layer: layer_ref8,
17975
- connectsTo: z102.string(),
17976
- unbroken: z102.boolean().optional(),
17990
+ connectsTo: z103.string(),
17991
+ unbroken: z103.boolean().optional(),
17977
17992
  padMargin: distance.optional(),
17978
17993
  traceMargin: distance.optional(),
17979
17994
  clearance: distance.optional(),
17980
17995
  boardEdgeMargin: distance.optional(),
17981
17996
  cutoutMargin: distance.optional(),
17982
- outline: z102.array(point).optional(),
17983
- coveredWithSolderMask: z102.boolean().optional().default(true)
17997
+ outline: z103.array(point).optional(),
17998
+ coveredWithSolderMask: z103.boolean().optional().default(true)
17984
17999
  });
17985
18000
  expectTypesMatch(true);
17986
18001
 
17987
18002
  // lib/components/cadassembly.ts
17988
18003
  import { layer_ref as layer_ref9 } from "circuit-json";
17989
- import { z as z103 } from "zod";
17990
- var cadassemblyProps = z103.object({
18004
+ import { z as z104 } from "zod";
18005
+ var cadassemblyProps = z104.object({
17991
18006
  originalLayer: layer_ref9.default("top").optional(),
17992
- children: z103.any().optional()
18007
+ children: z104.any().optional()
17993
18008
  });
17994
18009
  expectTypesMatch(true);
17995
18010
 
17996
18011
  // lib/components/cadmodel.ts
17997
- import { z as z104 } from "zod";
17998
- var pcbPosition = z104.object({
18012
+ import { z as z105 } from "zod";
18013
+ var pcbPosition = z105.object({
17999
18014
  pcbX: pcbCoordinate.optional(),
18000
18015
  pcbY: pcbCoordinate.optional(),
18001
18016
  pcbLeftEdgeX: pcbCoordinate.optional(),
@@ -18012,7 +18027,7 @@ var cadModelBaseWithUrl = cadModelBase.extend({
18012
18027
  });
18013
18028
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
18014
18029
  expectTypesMatch(true);
18015
- var cadmodelProps = z104.union([z104.null(), url, cadModelObject]);
18030
+ var cadmodelProps = z105.union([z105.null(), url, cadModelObject]);
18016
18031
 
18017
18032
  // lib/components/power-source.ts
18018
18033
  import { voltage as voltage3 } from "circuit-json";
@@ -18022,9 +18037,9 @@ var powerSourceProps = commonComponentProps.extend({
18022
18037
 
18023
18038
  // lib/components/voltagesource.ts
18024
18039
  import { frequency as frequency4, ms as ms3, rotation as rotation5, voltage as voltage4 } from "circuit-json";
18025
- import { z as z105 } from "zod";
18040
+ import { z as z106 } from "zod";
18026
18041
  var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
18027
- var percentage = z105.union([z105.string(), z105.number()]).transform((val) => {
18042
+ var percentage = z106.union([z106.string(), z106.number()]).transform((val) => {
18028
18043
  if (typeof val === "string") {
18029
18044
  if (val.endsWith("%")) {
18030
18045
  return parseFloat(val.slice(0, -1)) / 100;
@@ -18033,13 +18048,13 @@ var percentage = z105.union([z105.string(), z105.number()]).transform((val) => {
18033
18048
  }
18034
18049
  return val;
18035
18050
  }).pipe(
18036
- z105.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18051
+ z106.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18037
18052
  );
18038
18053
  var voltageSourceProps = commonComponentProps.extend({
18039
18054
  voltage: voltage4.optional(),
18040
18055
  frequency: frequency4.optional(),
18041
18056
  peakToPeakVoltage: voltage4.optional(),
18042
- waveShape: z105.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18057
+ waveShape: z106.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18043
18058
  phase: rotation5.optional(),
18044
18059
  dutyCycle: percentage.optional(),
18045
18060
  pulseDelay: ms3.optional(),
@@ -18054,9 +18069,9 @@ expectTypesMatch(true);
18054
18069
 
18055
18070
  // lib/components/currentsource.ts
18056
18071
  import { frequency as frequency5, rotation as rotation6, current } from "circuit-json";
18057
- import { z as z106 } from "zod";
18072
+ import { z as z107 } from "zod";
18058
18073
  var currentSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
18059
- var percentage2 = z106.union([z106.string(), z106.number()]).transform((val) => {
18074
+ var percentage2 = z107.union([z107.string(), z107.number()]).transform((val) => {
18060
18075
  if (typeof val === "string") {
18061
18076
  if (val.endsWith("%")) {
18062
18077
  return parseFloat(val.slice(0, -1)) / 100;
@@ -18065,13 +18080,13 @@ var percentage2 = z106.union([z106.string(), z106.number()]).transform((val) =>
18065
18080
  }
18066
18081
  return val;
18067
18082
  }).pipe(
18068
- z106.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18083
+ z107.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
18069
18084
  );
18070
18085
  var currentSourceProps = commonComponentProps.extend({
18071
18086
  current: current.optional(),
18072
18087
  frequency: frequency5.optional(),
18073
18088
  peakToPeakCurrent: current.optional(),
18074
- waveShape: z106.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18089
+ waveShape: z107.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
18075
18090
  phase: rotation6.optional(),
18076
18091
  dutyCycle: percentage2.optional(),
18077
18092
  connections: createConnectionsProp(currentSourcePinLabels).optional()
@@ -18080,21 +18095,21 @@ var currentSourcePins = lrPolarPins;
18080
18095
  expectTypesMatch(true);
18081
18096
 
18082
18097
  // lib/components/voltageprobe.ts
18083
- import { z as z107 } from "zod";
18098
+ import { z as z108 } from "zod";
18084
18099
  var voltageProbeProps = commonComponentProps.omit({ name: true }).extend({
18085
- name: z107.string().optional(),
18086
- connectsTo: z107.string(),
18087
- referenceTo: z107.string().optional(),
18088
- color: z107.string().optional(),
18089
- graphDisplayName: z107.string().optional(),
18090
- graphCenter: z107.number().optional(),
18091
- graphVerticalOffset: z107.number().or(z107.string()).optional(),
18092
- graphVoltagePerDiv: z107.number().or(z107.string()).optional()
18100
+ name: z108.string().optional(),
18101
+ connectsTo: z108.string(),
18102
+ referenceTo: z108.string().optional(),
18103
+ color: z108.string().optional(),
18104
+ graphDisplayName: z108.string().optional(),
18105
+ graphCenter: z108.number().optional(),
18106
+ graphVerticalOffset: z108.number().or(z108.string()).optional(),
18107
+ graphVoltagePerDiv: z108.number().or(z108.string()).optional()
18093
18108
  });
18094
18109
  expectTypesMatch(true);
18095
18110
 
18096
18111
  // lib/components/ammeter.ts
18097
- import { z as z108 } from "zod";
18112
+ import { z as z109 } from "zod";
18098
18113
  var ammeterPinLabels = ["pin1", "pin2", "pos", "neg"];
18099
18114
  var hasAmmeterConnectionPair = (connections) => {
18100
18115
  return connections.pos !== void 0 && connections.neg !== void 0 || connections.pin1 !== void 0 && connections.pin2 !== void 0;
@@ -18104,57 +18119,57 @@ var ammeterProps = commonComponentProps.extend({
18104
18119
  hasAmmeterConnectionPair,
18105
18120
  "Ammeter connections must include either pos/neg or pin1/pin2"
18106
18121
  ),
18107
- color: z108.string().optional(),
18108
- graphDisplayName: z108.string().optional(),
18109
- graphCenter: z108.number().optional(),
18110
- graphVerticalOffset: z108.number().or(z108.string()).optional(),
18111
- graphCurrentPerDiv: z108.number().or(z108.string()).optional()
18122
+ color: z109.string().optional(),
18123
+ graphDisplayName: z109.string().optional(),
18124
+ graphCenter: z109.number().optional(),
18125
+ graphVerticalOffset: z109.number().or(z109.string()).optional(),
18126
+ graphCurrentPerDiv: z109.number().or(z109.string()).optional()
18112
18127
  });
18113
18128
  var ammeterPins = ammeterPinLabels;
18114
18129
  expectTypesMatch(true);
18115
18130
 
18116
18131
  // lib/components/schematic-arc.ts
18117
18132
  import { distance as distance30, point as point5, rotation as rotation7 } from "circuit-json";
18118
- import { z as z109 } from "zod";
18119
- var schematicArcProps = z109.object({
18133
+ import { z as z110 } from "zod";
18134
+ var schematicArcProps = z110.object({
18120
18135
  center: point5,
18121
18136
  radius: distance30,
18122
18137
  startAngleDegrees: rotation7,
18123
18138
  endAngleDegrees: rotation7,
18124
- direction: z109.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
18139
+ direction: z110.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
18125
18140
  strokeWidth: distance30.optional(),
18126
- color: z109.string().optional(),
18127
- isDashed: z109.boolean().optional().default(false)
18141
+ color: z110.string().optional(),
18142
+ isDashed: z110.boolean().optional().default(false)
18128
18143
  });
18129
18144
  expectTypesMatch(true);
18130
18145
 
18131
18146
  // lib/components/toolingrail.ts
18132
- import { z as z110 } from "zod";
18133
- var toolingrailProps = z110.object({
18134
- children: z110.any().optional()
18147
+ import { z as z111 } from "zod";
18148
+ var toolingrailProps = z111.object({
18149
+ children: z111.any().optional()
18135
18150
  });
18136
18151
  expectTypesMatch(true);
18137
18152
 
18138
18153
  // lib/components/schematic-box.ts
18139
18154
  import { distance as distance31 } from "circuit-json";
18140
- import { z as z111 } from "zod";
18141
- var schematicBoxProps = z111.object({
18155
+ import { z as z112 } from "zod";
18156
+ var schematicBoxProps = z112.object({
18142
18157
  schX: distance31.optional(),
18143
18158
  schY: distance31.optional(),
18144
18159
  width: distance31.optional(),
18145
18160
  height: distance31.optional(),
18146
- overlay: z111.array(z111.string()).optional(),
18161
+ overlay: z112.array(z112.string()).optional(),
18147
18162
  padding: distance31.optional(),
18148
18163
  paddingLeft: distance31.optional(),
18149
18164
  paddingRight: distance31.optional(),
18150
18165
  paddingTop: distance31.optional(),
18151
18166
  paddingBottom: distance31.optional(),
18152
- title: z111.string().optional(),
18167
+ title: z112.string().optional(),
18153
18168
  titleAlignment: ninePointAnchor.default("top_left"),
18154
- titleColor: z111.string().optional(),
18169
+ titleColor: z112.string().optional(),
18155
18170
  titleFontSize: distance31.optional(),
18156
- titleInside: z111.boolean().default(false),
18157
- strokeStyle: z111.enum(["solid", "dashed"]).default("solid")
18171
+ titleInside: z112.boolean().default(false),
18172
+ strokeStyle: z112.enum(["solid", "dashed"]).default("solid")
18158
18173
  }).refine(
18159
18174
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
18160
18175
  {
@@ -18170,15 +18185,15 @@ expectTypesMatch(true);
18170
18185
 
18171
18186
  // lib/components/schematic-circle.ts
18172
18187
  import { distance as distance32, point as point6 } from "circuit-json";
18173
- import { z as z112 } from "zod";
18174
- var schematicCircleProps = z112.object({
18188
+ import { z as z113 } from "zod";
18189
+ var schematicCircleProps = z113.object({
18175
18190
  center: point6,
18176
18191
  radius: distance32,
18177
18192
  strokeWidth: distance32.optional(),
18178
- color: z112.string().optional(),
18179
- isFilled: z112.boolean().optional().default(false),
18180
- fillColor: z112.string().optional(),
18181
- isDashed: z112.boolean().optional().default(false)
18193
+ color: z113.string().optional(),
18194
+ isFilled: z113.boolean().optional().default(false),
18195
+ fillColor: z113.string().optional(),
18196
+ isDashed: z113.boolean().optional().default(false)
18182
18197
  });
18183
18198
  expectTypesMatch(
18184
18199
  true
@@ -18186,32 +18201,32 @@ expectTypesMatch(
18186
18201
 
18187
18202
  // lib/components/schematic-rect.ts
18188
18203
  import { distance as distance33, rotation as rotation8 } from "circuit-json";
18189
- import { z as z113 } from "zod";
18190
- var schematicRectProps = z113.object({
18204
+ import { z as z114 } from "zod";
18205
+ var schematicRectProps = z114.object({
18191
18206
  schX: distance33.optional(),
18192
18207
  schY: distance33.optional(),
18193
18208
  width: distance33,
18194
18209
  height: distance33,
18195
18210
  rotation: rotation8.default(0),
18196
18211
  strokeWidth: distance33.optional(),
18197
- color: z113.string().optional(),
18198
- isFilled: z113.boolean().optional().default(false),
18199
- fillColor: z113.string().optional(),
18200
- isDashed: z113.boolean().optional().default(false)
18212
+ color: z114.string().optional(),
18213
+ isFilled: z114.boolean().optional().default(false),
18214
+ fillColor: z114.string().optional(),
18215
+ isDashed: z114.boolean().optional().default(false)
18201
18216
  });
18202
18217
  expectTypesMatch(true);
18203
18218
 
18204
18219
  // lib/components/schematic-line.ts
18205
18220
  import { distance as distance34 } from "circuit-json";
18206
- import { z as z114 } from "zod";
18207
- var schematicLineProps = z114.object({
18221
+ import { z as z115 } from "zod";
18222
+ var schematicLineProps = z115.object({
18208
18223
  x1: distance34,
18209
18224
  y1: distance34,
18210
18225
  x2: distance34,
18211
18226
  y2: distance34,
18212
18227
  strokeWidth: distance34.optional(),
18213
- color: z114.string().optional(),
18214
- isDashed: z114.boolean().optional().default(false),
18228
+ color: z115.string().optional(),
18229
+ isDashed: z115.boolean().optional().default(false),
18215
18230
  dashLength: distance34.optional(),
18216
18231
  dashGap: distance34.optional()
18217
18232
  });
@@ -18219,11 +18234,11 @@ expectTypesMatch(true);
18219
18234
 
18220
18235
  // lib/components/schematic-text.ts
18221
18236
  import { distance as distance35, rotation as rotation9 } from "circuit-json";
18222
- import { z as z116 } from "zod";
18237
+ import { z as z117 } from "zod";
18223
18238
 
18224
18239
  // lib/common/fivePointAnchor.ts
18225
- import { z as z115 } from "zod";
18226
- var fivePointAnchor = z115.enum([
18240
+ import { z as z116 } from "zod";
18241
+ var fivePointAnchor = z116.enum([
18227
18242
  "center",
18228
18243
  "left",
18229
18244
  "right",
@@ -18232,39 +18247,39 @@ var fivePointAnchor = z115.enum([
18232
18247
  ]);
18233
18248
 
18234
18249
  // lib/components/schematic-text.ts
18235
- var schematicTextProps = z116.object({
18250
+ var schematicTextProps = z117.object({
18236
18251
  schX: distance35.optional(),
18237
18252
  schY: distance35.optional(),
18238
- text: z116.string(),
18239
- fontSize: z116.number().default(1),
18240
- anchor: z116.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
18241
- color: z116.string().default("#000000"),
18253
+ text: z117.string(),
18254
+ fontSize: z117.number().default(1),
18255
+ anchor: z117.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
18256
+ color: z117.string().default("#000000"),
18242
18257
  schRotation: rotation9.default(0)
18243
18258
  });
18244
18259
  expectTypesMatch(true);
18245
18260
 
18246
18261
  // lib/components/schematic-path.ts
18247
18262
  import { distance as distance36, point as point7 } from "circuit-json";
18248
- import { z as z117 } from "zod";
18249
- var schematicPathProps = z117.object({
18250
- points: z117.array(point7).optional(),
18251
- svgPath: z117.string().optional(),
18263
+ import { z as z118 } from "zod";
18264
+ var schematicPathProps = z118.object({
18265
+ points: z118.array(point7).optional(),
18266
+ svgPath: z118.string().optional(),
18252
18267
  strokeWidth: distance36.optional(),
18253
- strokeColor: z117.string().optional(),
18268
+ strokeColor: z118.string().optional(),
18254
18269
  dashLength: distance36.optional(),
18255
18270
  dashGap: distance36.optional(),
18256
- isFilled: z117.boolean().optional().default(false),
18257
- fillColor: z117.string().optional()
18271
+ isFilled: z118.boolean().optional().default(false),
18272
+ fillColor: z118.string().optional()
18258
18273
  });
18259
18274
  expectTypesMatch(true);
18260
18275
 
18261
18276
  // lib/components/schematic-table.ts
18262
18277
  import { distance as distance37 } from "circuit-json";
18263
- import { z as z118 } from "zod";
18264
- var schematicTableProps = z118.object({
18278
+ import { z as z119 } from "zod";
18279
+ var schematicTableProps = z119.object({
18265
18280
  schX: distance37.optional(),
18266
18281
  schY: distance37.optional(),
18267
- children: z118.any().optional(),
18282
+ children: z119.any().optional(),
18268
18283
  cellPadding: distance37.optional(),
18269
18284
  borderWidth: distance37.optional(),
18270
18285
  anchor: ninePointAnchor.optional(),
@@ -18274,34 +18289,34 @@ expectTypesMatch(true);
18274
18289
 
18275
18290
  // lib/components/schematic-row.ts
18276
18291
  import { distance as distance38 } from "circuit-json";
18277
- import { z as z119 } from "zod";
18278
- var schematicRowProps = z119.object({
18279
- children: z119.any().optional(),
18292
+ import { z as z120 } from "zod";
18293
+ var schematicRowProps = z120.object({
18294
+ children: z120.any().optional(),
18280
18295
  height: distance38.optional()
18281
18296
  });
18282
18297
  expectTypesMatch(true);
18283
18298
 
18284
18299
  // lib/components/schematic-cell.ts
18285
18300
  import { distance as distance39 } from "circuit-json";
18286
- import { z as z120 } from "zod";
18287
- var schematicCellProps = z120.object({
18288
- children: z120.string().optional(),
18289
- horizontalAlign: z120.enum(["left", "center", "right"]).optional(),
18290
- verticalAlign: z120.enum(["top", "middle", "bottom"]).optional(),
18301
+ import { z as z121 } from "zod";
18302
+ var schematicCellProps = z121.object({
18303
+ children: z121.string().optional(),
18304
+ horizontalAlign: z121.enum(["left", "center", "right"]).optional(),
18305
+ verticalAlign: z121.enum(["top", "middle", "bottom"]).optional(),
18291
18306
  fontSize: distance39.optional(),
18292
- rowSpan: z120.number().optional(),
18293
- colSpan: z120.number().optional(),
18307
+ rowSpan: z121.number().optional(),
18308
+ colSpan: z121.number().optional(),
18294
18309
  width: distance39.optional(),
18295
- text: z120.string().optional()
18310
+ text: z121.string().optional()
18296
18311
  });
18297
18312
  expectTypesMatch(true);
18298
18313
 
18299
18314
  // lib/components/schematic-section.ts
18300
18315
  import { distance as distance40 } from "circuit-json";
18301
- import { z as z121 } from "zod";
18302
- var schematicSectionProps = z121.object({
18303
- displayName: z121.string().optional(),
18304
- name: z121.string(),
18316
+ import { z as z122 } from "zod";
18317
+ var schematicSectionProps = z122.object({
18318
+ displayName: z122.string().optional(),
18319
+ name: z122.string(),
18305
18320
  sectionTitleFontSize: distance40.optional()
18306
18321
  });
18307
18322
  expectTypesMatch(
@@ -18309,51 +18324,51 @@ expectTypesMatch(
18309
18324
  );
18310
18325
 
18311
18326
  // lib/components/schematic-sheet.ts
18312
- import { z as z122 } from "zod";
18313
- var schematicSheetProps = z122.object({
18314
- name: z122.string(),
18315
- displayName: z122.string(),
18316
- sheetIndex: z122.number().optional(),
18317
- children: z122.any().optional()
18327
+ import { z as z123 } from "zod";
18328
+ var schematicSheetProps = z123.object({
18329
+ name: z123.string(),
18330
+ displayName: z123.string(),
18331
+ sheetIndex: z123.number().optional(),
18332
+ children: z123.any().optional()
18318
18333
  });
18319
18334
  expectTypesMatch(true);
18320
18335
 
18321
18336
  // lib/components/copper-text.ts
18322
18337
  import { layer_ref as layer_ref10, length as length8 } from "circuit-json";
18323
- import { z as z123 } from "zod";
18338
+ import { z as z124 } from "zod";
18324
18339
  var copperTextProps = pcbLayoutProps.extend({
18325
- text: z123.string(),
18340
+ text: z124.string(),
18326
18341
  anchorAlignment: ninePointAnchor.default("center"),
18327
- font: z123.enum(["tscircuit2024"]).optional(),
18342
+ font: z124.enum(["tscircuit2024"]).optional(),
18328
18343
  fontSize: length8.optional(),
18329
- layers: z123.array(layer_ref10).optional(),
18330
- knockout: z123.boolean().optional(),
18331
- mirrored: z123.boolean().optional()
18344
+ layers: z124.array(layer_ref10).optional(),
18345
+ knockout: z124.boolean().optional(),
18346
+ mirrored: z124.boolean().optional()
18332
18347
  });
18333
18348
 
18334
18349
  // lib/components/silkscreen-text.ts
18335
18350
  import { layer_ref as layer_ref11, length as length9 } from "circuit-json";
18336
- import { z as z124 } from "zod";
18351
+ import { z as z125 } from "zod";
18337
18352
  var silkscreenTextProps = pcbLayoutProps.extend({
18338
- text: z124.string(),
18353
+ text: z125.string(),
18339
18354
  anchorAlignment: ninePointAnchor.default("center"),
18340
- font: z124.enum(["tscircuit2024"]).optional(),
18355
+ font: z125.enum(["tscircuit2024"]).optional(),
18341
18356
  fontSize: length9.optional(),
18342
18357
  /**
18343
18358
  * If true, text will knock out underlying silkscreen
18344
18359
  */
18345
- isKnockout: z124.boolean().optional(),
18360
+ isKnockout: z125.boolean().optional(),
18346
18361
  knockoutPadding: length9.optional(),
18347
18362
  knockoutPaddingLeft: length9.optional(),
18348
18363
  knockoutPaddingRight: length9.optional(),
18349
18364
  knockoutPaddingTop: length9.optional(),
18350
18365
  knockoutPaddingBottom: length9.optional(),
18351
- layers: z124.array(layer_ref11).optional()
18366
+ layers: z125.array(layer_ref11).optional()
18352
18367
  });
18353
18368
 
18354
18369
  // lib/components/silkscreen-path.ts
18355
18370
  import { length as length10, route_hint_point as route_hint_point5 } from "circuit-json";
18356
- import { z as z125 } from "zod";
18371
+ import { z as z126 } from "zod";
18357
18372
  var silkscreenPathProps = pcbLayoutProps.omit({
18358
18373
  pcbLeftEdgeX: true,
18359
18374
  pcbRightEdgeX: true,
@@ -18365,7 +18380,7 @@ var silkscreenPathProps = pcbLayoutProps.omit({
18365
18380
  pcbOffsetY: true,
18366
18381
  pcbRotation: true
18367
18382
  }).extend({
18368
- route: z125.array(route_hint_point5),
18383
+ route: z126.array(route_hint_point5),
18369
18384
  strokeWidth: length10.optional()
18370
18385
  });
18371
18386
 
@@ -18387,10 +18402,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({
18387
18402
 
18388
18403
  // lib/components/silkscreen-rect.ts
18389
18404
  import { distance as distance42 } from "circuit-json";
18390
- import { z as z126 } from "zod";
18405
+ import { z as z127 } from "zod";
18391
18406
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18392
- filled: z126.boolean().default(true).optional(),
18393
- stroke: z126.enum(["dashed", "solid", "none"]).optional(),
18407
+ filled: z127.boolean().default(true).optional(),
18408
+ stroke: z127.enum(["dashed", "solid", "none"]).optional(),
18394
18409
  strokeWidth: distance42.optional(),
18395
18410
  width: distance42,
18396
18411
  height: distance42,
@@ -18399,10 +18414,10 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18399
18414
 
18400
18415
  // lib/components/silkscreen-circle.ts
18401
18416
  import { distance as distance43 } from "circuit-json";
18402
- import { z as z127 } from "zod";
18417
+ import { z as z128 } from "zod";
18403
18418
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18404
- isFilled: z127.boolean().optional(),
18405
- isOutline: z127.boolean().optional(),
18419
+ isFilled: z128.boolean().optional(),
18420
+ isOutline: z128.boolean().optional(),
18406
18421
  strokeWidth: distance43.optional(),
18407
18422
  radius: distance43
18408
18423
  });
@@ -18420,63 +18435,63 @@ expectTypesMatch(true);
18420
18435
 
18421
18436
  // lib/components/trace-hint.ts
18422
18437
  import { distance as distance44, layer_ref as layer_ref12, route_hint_point as route_hint_point6 } from "circuit-json";
18423
- import { z as z129 } from "zod";
18424
- var routeHintPointProps = z129.object({
18438
+ import { z as z130 } from "zod";
18439
+ var routeHintPointProps = z130.object({
18425
18440
  x: distance44,
18426
18441
  y: distance44,
18427
- via: z129.boolean().optional(),
18442
+ via: z130.boolean().optional(),
18428
18443
  toLayer: layer_ref12.optional()
18429
18444
  });
18430
- var traceHintProps = z129.object({
18431
- for: z129.string().optional().describe(
18445
+ var traceHintProps = z130.object({
18446
+ for: z130.string().optional().describe(
18432
18447
  "Selector for the port you're targeting, not required if you're inside a trace"
18433
18448
  ),
18434
- order: z129.number().optional(),
18449
+ order: z130.number().optional(),
18435
18450
  offset: route_hint_point6.or(routeHintPointProps).optional(),
18436
- offsets: z129.array(route_hint_point6).or(z129.array(routeHintPointProps)).optional(),
18437
- traceWidth: z129.number().optional()
18451
+ offsets: z130.array(route_hint_point6).or(z130.array(routeHintPointProps)).optional(),
18452
+ traceWidth: z130.number().optional()
18438
18453
  });
18439
18454
 
18440
18455
  // lib/components/port.ts
18441
- import { z as z130 } from "zod";
18456
+ import { z as z131 } from "zod";
18442
18457
  var portProps = commonLayoutProps.extend({
18443
- name: z130.string().optional(),
18444
- pinNumber: z130.number().optional(),
18445
- schStemLength: z130.number().optional(),
18446
- aliases: z130.array(z130.string()).optional(),
18447
- layer: z130.string().optional(),
18448
- layers: z130.array(z130.string()).optional(),
18449
- schX: z130.number().optional(),
18450
- schY: z130.number().optional(),
18458
+ name: z131.string().optional(),
18459
+ pinNumber: z131.number().optional(),
18460
+ schStemLength: z131.number().optional(),
18461
+ aliases: z131.array(z131.string()).optional(),
18462
+ layer: z131.string().optional(),
18463
+ layers: z131.array(z131.string()).optional(),
18464
+ schX: z131.number().optional(),
18465
+ schY: z131.number().optional(),
18451
18466
  direction: direction.optional(),
18452
- connectsTo: z130.string().or(z130.array(z130.string())).optional(),
18467
+ connectsTo: z131.string().or(z131.array(z131.string())).optional(),
18453
18468
  kicadPinMetadata: kicadPinMetadata.optional(),
18454
- hasInversionCircle: z130.boolean().optional()
18469
+ hasInversionCircle: z131.boolean().optional()
18455
18470
  });
18456
18471
 
18457
18472
  // lib/components/pcb-note-text.ts
18458
18473
  import { length as length11 } from "circuit-json";
18459
- import { z as z131 } from "zod";
18474
+ import { z as z132 } from "zod";
18460
18475
  var pcbNoteTextProps = pcbLayoutProps.extend({
18461
- text: z131.string(),
18462
- anchorAlignment: z131.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
18463
- font: z131.enum(["tscircuit2024"]).optional(),
18476
+ text: z132.string(),
18477
+ anchorAlignment: z132.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
18478
+ font: z132.enum(["tscircuit2024"]).optional(),
18464
18479
  fontSize: length11.optional(),
18465
- color: z131.string().optional()
18480
+ color: z132.string().optional()
18466
18481
  });
18467
18482
  expectTypesMatch(true);
18468
18483
 
18469
18484
  // lib/components/pcb-note-rect.ts
18470
18485
  import { distance as distance45 } from "circuit-json";
18471
- import { z as z132 } from "zod";
18486
+ import { z as z133 } from "zod";
18472
18487
  var pcbNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18473
18488
  width: distance45,
18474
18489
  height: distance45,
18475
18490
  strokeWidth: distance45.optional(),
18476
- isFilled: z132.boolean().optional(),
18477
- hasStroke: z132.boolean().optional(),
18478
- isStrokeDashed: z132.boolean().optional(),
18479
- color: z132.string().optional(),
18491
+ isFilled: z133.boolean().optional(),
18492
+ hasStroke: z133.boolean().optional(),
18493
+ isStrokeDashed: z133.boolean().optional(),
18494
+ color: z133.string().optional(),
18480
18495
  cornerRadius: distance45.optional()
18481
18496
  });
18482
18497
  expectTypesMatch(true);
@@ -18486,7 +18501,7 @@ import {
18486
18501
  length as length12,
18487
18502
  route_hint_point as route_hint_point7
18488
18503
  } from "circuit-json";
18489
- import { z as z133 } from "zod";
18504
+ import { z as z134 } from "zod";
18490
18505
  var pcbNotePathProps = pcbLayoutProps.omit({
18491
18506
  pcbLeftEdgeX: true,
18492
18507
  pcbRightEdgeX: true,
@@ -18498,15 +18513,15 @@ var pcbNotePathProps = pcbLayoutProps.omit({
18498
18513
  pcbOffsetY: true,
18499
18514
  pcbRotation: true
18500
18515
  }).extend({
18501
- route: z133.array(route_hint_point7),
18516
+ route: z134.array(route_hint_point7),
18502
18517
  strokeWidth: length12.optional(),
18503
- color: z133.string().optional()
18518
+ color: z134.string().optional()
18504
18519
  });
18505
18520
  expectTypesMatch(true);
18506
18521
 
18507
18522
  // lib/components/pcb-note-line.ts
18508
18523
  import { distance as distance46 } from "circuit-json";
18509
- import { z as z134 } from "zod";
18524
+ import { z as z135 } from "zod";
18510
18525
  var pcbNoteLineProps = pcbLayoutProps.omit({
18511
18526
  pcbLeftEdgeX: true,
18512
18527
  pcbRightEdgeX: true,
@@ -18523,15 +18538,15 @@ var pcbNoteLineProps = pcbLayoutProps.omit({
18523
18538
  x2: distance46,
18524
18539
  y2: distance46,
18525
18540
  strokeWidth: distance46.optional(),
18526
- color: z134.string().optional(),
18527
- isDashed: z134.boolean().optional()
18541
+ color: z135.string().optional(),
18542
+ isDashed: z135.boolean().optional()
18528
18543
  });
18529
18544
  expectTypesMatch(true);
18530
18545
 
18531
18546
  // lib/components/pcb-note-dimension.ts
18532
18547
  import { distance as distance47, length as length13 } from "circuit-json";
18533
- import { z as z135 } from "zod";
18534
- var dimensionTarget2 = z135.union([z135.string(), point]);
18548
+ import { z as z136 } from "zod";
18549
+ var dimensionTarget2 = z136.union([z136.string(), point]);
18535
18550
  var pcbNoteDimensionProps = pcbLayoutProps.omit({
18536
18551
  pcbLeftEdgeX: true,
18537
18552
  pcbRightEdgeX: true,
@@ -18545,101 +18560,101 @@ var pcbNoteDimensionProps = pcbLayoutProps.omit({
18545
18560
  }).extend({
18546
18561
  from: dimensionTarget2,
18547
18562
  to: dimensionTarget2,
18548
- text: z135.string().optional(),
18563
+ text: z136.string().optional(),
18549
18564
  offset: distance47.optional(),
18550
- font: z135.enum(["tscircuit2024"]).optional(),
18565
+ font: z136.enum(["tscircuit2024"]).optional(),
18551
18566
  fontSize: length13.optional(),
18552
- color: z135.string().optional(),
18567
+ color: z136.string().optional(),
18553
18568
  arrowSize: distance47.optional(),
18554
- units: z135.enum(["in", "mm"]).optional(),
18555
- outerEdgeToEdge: z135.literal(true).optional(),
18556
- centerToCenter: z135.literal(true).optional(),
18557
- innerEdgeToEdge: z135.literal(true).optional()
18569
+ units: z136.enum(["in", "mm"]).optional(),
18570
+ outerEdgeToEdge: z136.literal(true).optional(),
18571
+ centerToCenter: z136.literal(true).optional(),
18572
+ innerEdgeToEdge: z136.literal(true).optional()
18558
18573
  });
18559
18574
  expectTypesMatch(
18560
18575
  true
18561
18576
  );
18562
18577
 
18563
18578
  // lib/platformConfig.ts
18564
- import { z as z136 } from "zod";
18565
- var unvalidatedCircuitJson = z136.array(z136.any()).describe("Circuit JSON");
18566
- var footprintLibraryResult = z136.object({
18567
- footprintCircuitJson: z136.array(z136.any()),
18579
+ import { z as z137 } from "zod";
18580
+ var unvalidatedCircuitJson = z137.array(z137.any()).describe("Circuit JSON");
18581
+ var footprintLibraryResult = z137.object({
18582
+ footprintCircuitJson: z137.array(z137.any()),
18568
18583
  cadModel: cadModelProp.optional()
18569
18584
  });
18570
- var pathToCircuitJsonFn = z136.function().args(z136.string()).returns(z136.promise(footprintLibraryResult)).or(
18571
- z136.function().args(
18572
- z136.string(),
18573
- z136.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
18574
- ).returns(z136.promise(footprintLibraryResult))
18585
+ var pathToCircuitJsonFn = z137.function().args(z137.string()).returns(z137.promise(footprintLibraryResult)).or(
18586
+ z137.function().args(
18587
+ z137.string(),
18588
+ z137.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
18589
+ ).returns(z137.promise(footprintLibraryResult))
18575
18590
  ).describe("A function that takes a path and returns Circuit JSON");
18576
- var footprintFileParserEntry = z136.object({
18577
- loadFromUrl: z136.function().args(z136.string()).returns(z136.promise(footprintLibraryResult)).describe(
18591
+ var footprintFileParserEntry = z137.object({
18592
+ loadFromUrl: z137.function().args(z137.string()).returns(z137.promise(footprintLibraryResult)).describe(
18578
18593
  "A function that takes a footprint file URL and returns Circuit JSON"
18579
18594
  )
18580
18595
  });
18581
- var spiceEngineSimulationResult = z136.object({
18582
- engineVersionString: z136.string().optional(),
18596
+ var spiceEngineSimulationResult = z137.object({
18597
+ engineVersionString: z137.string().optional(),
18583
18598
  simulationResultCircuitJson: unvalidatedCircuitJson
18584
18599
  });
18585
- var spiceEngineZod = z136.object({
18586
- simulate: z136.function().args(z136.string()).returns(z136.promise(spiceEngineSimulationResult)).describe(
18600
+ var spiceEngineZod = z137.object({
18601
+ simulate: z137.function().args(z137.string()).returns(z137.promise(spiceEngineSimulationResult)).describe(
18587
18602
  "A function that takes a SPICE string and returns a simulation result"
18588
18603
  )
18589
18604
  });
18590
- var defaultSpiceEngine = z136.custom(
18605
+ var defaultSpiceEngine = z137.custom(
18591
18606
  (value) => typeof value === "string"
18592
18607
  );
18593
- var autorouterInstance = z136.object({
18594
- run: z136.function().args().returns(z136.promise(z136.unknown())).describe("Run the autorouter"),
18595
- getOutputSimpleRouteJson: z136.function().args().returns(z136.promise(z136.any())).describe("Get the resulting SimpleRouteJson")
18608
+ var autorouterInstance = z137.object({
18609
+ run: z137.function().args().returns(z137.promise(z137.unknown())).describe("Run the autorouter"),
18610
+ getOutputSimpleRouteJson: z137.function().args().returns(z137.promise(z137.any())).describe("Get the resulting SimpleRouteJson")
18596
18611
  });
18597
- var autorouterDefinition = z136.object({
18598
- createAutorouter: z136.function().args(z136.any(), z136.any().optional()).returns(z136.union([autorouterInstance, z136.promise(autorouterInstance)])).describe("Create an autorouter instance")
18612
+ var autorouterDefinition = z137.object({
18613
+ createAutorouter: z137.function().args(z137.any(), z137.any().optional()).returns(z137.union([autorouterInstance, z137.promise(autorouterInstance)])).describe("Create an autorouter instance")
18599
18614
  });
18600
- var platformFetch = z136.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
18601
- var platformConfig = z136.object({
18615
+ var platformFetch = z137.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
18616
+ var platformConfig = z137.object({
18602
18617
  partsEngine: partsEngine.optional(),
18603
18618
  autorouter: autorouterProp.optional(),
18604
- autorouterMap: z136.record(z136.string(), autorouterDefinition).optional(),
18619
+ autorouterMap: z137.record(z137.string(), autorouterDefinition).optional(),
18605
18620
  registryApiUrl: url.optional(),
18606
18621
  cloudAutorouterUrl: url.optional(),
18607
- projectName: z136.string().optional(),
18622
+ projectName: z137.string().optional(),
18608
18623
  projectBaseUrl: url.optional(),
18609
- version: z136.string().optional(),
18624
+ version: z137.string().optional(),
18610
18625
  url: url.optional(),
18611
- printBoardInformationToSilkscreen: z136.boolean().optional(),
18612
- includeBoardFiles: z136.array(z136.string()).describe(
18626
+ printBoardInformationToSilkscreen: z137.boolean().optional(),
18627
+ includeBoardFiles: z137.array(z137.string()).describe(
18613
18628
  'The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs'
18614
18629
  ).optional(),
18615
- snapshotsDir: z136.string().describe(
18630
+ snapshotsDir: z137.string().describe(
18616
18631
  'The directory where snapshots are stored for "tsci snapshot", defaults to "tests/__snapshots__"'
18617
18632
  ).optional(),
18618
18633
  defaultSpiceEngine: defaultSpiceEngine.optional(),
18619
- unitPreference: z136.enum(["mm", "in", "mil"]).optional(),
18620
- localCacheEngine: z136.any().optional(),
18621
- pcbDisabled: z136.boolean().optional(),
18622
- routingDisabled: z136.boolean().optional(),
18623
- schematicDisabled: z136.boolean().optional(),
18624
- partsEngineDisabled: z136.boolean().optional(),
18625
- drcChecksDisabled: z136.boolean().optional(),
18626
- netlistDrcChecksDisabled: z136.boolean().optional(),
18627
- routingDrcChecksDisabled: z136.boolean().optional(),
18628
- placementDrcChecksDisabled: z136.boolean().optional(),
18629
- pinSpecificationDrcChecksDisabled: z136.boolean().optional(),
18630
- spiceEngineMap: z136.record(z136.string(), spiceEngineZod).optional(),
18631
- footprintLibraryMap: z136.record(
18632
- z136.string(),
18633
- z136.union([
18634
+ unitPreference: z137.enum(["mm", "in", "mil"]).optional(),
18635
+ localCacheEngine: z137.any().optional(),
18636
+ pcbDisabled: z137.boolean().optional(),
18637
+ routingDisabled: z137.boolean().optional(),
18638
+ schematicDisabled: z137.boolean().optional(),
18639
+ partsEngineDisabled: z137.boolean().optional(),
18640
+ drcChecksDisabled: z137.boolean().optional(),
18641
+ netlistDrcChecksDisabled: z137.boolean().optional(),
18642
+ routingDrcChecksDisabled: z137.boolean().optional(),
18643
+ placementDrcChecksDisabled: z137.boolean().optional(),
18644
+ pinSpecificationDrcChecksDisabled: z137.boolean().optional(),
18645
+ spiceEngineMap: z137.record(z137.string(), spiceEngineZod).optional(),
18646
+ footprintLibraryMap: z137.record(
18647
+ z137.string(),
18648
+ z137.union([
18634
18649
  pathToCircuitJsonFn,
18635
- z136.record(
18636
- z136.string(),
18637
- z136.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
18650
+ z137.record(
18651
+ z137.string(),
18652
+ z137.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
18638
18653
  )
18639
18654
  ])
18640
18655
  ).optional(),
18641
- footprintFileParserMap: z136.record(z136.string(), footprintFileParserEntry).optional(),
18642
- resolveProjectStaticFileImportUrl: z136.function().args(z136.string()).returns(z136.promise(z136.string())).describe(
18656
+ footprintFileParserMap: z137.record(z137.string(), footprintFileParserEntry).optional(),
18657
+ resolveProjectStaticFileImportUrl: z137.function().args(z137.string()).returns(z137.promise(z137.string())).describe(
18643
18658
  "A function that returns a string URL for static files for the project"
18644
18659
  ).optional(),
18645
18660
  platformFetch: platformFetch.optional()
@@ -18756,6 +18771,7 @@ export {
18756
18771
  inductorPins,
18757
18772
  inductorProps,
18758
18773
  interconnectProps,
18774
+ internalCircuitProps,
18759
18775
  jumperProps,
18760
18776
  kicadAt,
18761
18777
  kicadEffects,