@tscircuit/props 0.0.538 → 0.0.539

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
@@ -16541,6 +16541,9 @@ import { z as z42 } from "zod";
16541
16541
  var connectionTarget2 = z42.string().or(z42.array(z42.string()).readonly()).or(z42.array(z42.string()));
16542
16542
  var noConnectProp = z42.array(schematicPinLabel).readonly().or(z42.array(schematicPinLabel));
16543
16543
  var connectionsProp = z42.custom().pipe(z42.record(z42.string(), connectionTarget2));
16544
+ var spicemodelElement = z42.custom(
16545
+ (v) => !!v && typeof v === "object" && "type" in v && "props" in v
16546
+ );
16544
16547
  var pinLabelsProp = z42.record(
16545
16548
  schematicPinLabel,
16546
16549
  schematicPinLabel.or(z42.array(schematicPinLabel).readonly()).or(z42.array(schematicPinLabel))
@@ -16566,7 +16569,8 @@ var chipProps = commonComponentProps.extend({
16566
16569
  schHeight: distance13.optional(),
16567
16570
  noSchematicRepresentation: z42.boolean().optional(),
16568
16571
  noConnect: noConnectProp.optional(),
16569
- connections: connectionsProp.optional()
16572
+ connections: connectionsProp.optional(),
16573
+ spiceModel: spicemodelElement.optional()
16570
16574
  });
16571
16575
  var bugProps = chipProps;
16572
16576
  expectTypesMatch(true);
@@ -17416,8 +17420,16 @@ var autoroutingPhaseProps = z75.object({
17416
17420
  });
17417
17421
  expectTypesMatch(true);
17418
17422
 
17419
- // lib/components/transistor.ts
17423
+ // lib/components/spicemodel.ts
17420
17424
  import { z as z76 } from "zod";
17425
+ var spicemodelProps = z76.object({
17426
+ source: z76.string(),
17427
+ spicePinMapping: z76.record(z76.string(), z76.string()).optional()
17428
+ });
17429
+ expectTypesMatch(true);
17430
+
17431
+ // lib/components/transistor.ts
17432
+ import { z as z77 } from "zod";
17421
17433
  var transistorPinsLabels = [
17422
17434
  "pin1",
17423
17435
  "pin2",
@@ -17430,7 +17442,7 @@ var transistorPinsLabels = [
17430
17442
  "drain"
17431
17443
  ];
17432
17444
  var transistorProps = commonComponentProps.extend({
17433
- type: z76.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
17445
+ type: z77.enum(["npn", "pnp", "bjt", "jfet", "mosfet", "igbt"]),
17434
17446
  connections: createConnectionsProp(transistorPinsLabels).optional()
17435
17447
  });
17436
17448
  var transistorPins = [
@@ -17444,10 +17456,10 @@ var transistorPins = [
17444
17456
  expectTypesMatch(true);
17445
17457
 
17446
17458
  // lib/components/mosfet.ts
17447
- import { z as z77 } from "zod";
17459
+ import { z as z78 } from "zod";
17448
17460
  var mosfetProps = commonComponentProps.extend({
17449
- channelType: z77.enum(["n", "p"]),
17450
- mosfetMode: z77.enum(["enhancement", "depletion"])
17461
+ channelType: z78.enum(["n", "p"]),
17462
+ mosfetMode: z78.enum(["enhancement", "depletion"])
17451
17463
  });
17452
17464
  var mosfetPins = [
17453
17465
  "pin1",
@@ -17476,19 +17488,19 @@ expectTypesMatch(true);
17476
17488
 
17477
17489
  // lib/components/inductor.ts
17478
17490
  import { inductance } from "circuit-json";
17479
- import { z as z79 } from "zod";
17491
+ import { z as z80 } from "zod";
17480
17492
  var inductorPins = lrPins;
17481
17493
  var inductorProps = commonComponentProps.extend({
17482
17494
  inductance,
17483
- maxCurrentRating: z79.union([z79.string(), z79.number()]).optional(),
17495
+ maxCurrentRating: z80.union([z80.string(), z80.number()]).optional(),
17484
17496
  schOrientation: schematicOrientation.optional(),
17485
17497
  connections: createConnectionsProp(inductorPins).optional()
17486
17498
  });
17487
17499
  expectTypesMatch(true);
17488
17500
 
17489
17501
  // lib/components/diode.ts
17490
- import { z as z80 } from "zod";
17491
- var diodeConnectionKeys = z80.enum([
17502
+ import { z as z81 } from "zod";
17503
+ var diodeConnectionKeys = z81.enum([
17492
17504
  "anode",
17493
17505
  "cathode",
17494
17506
  "pin1",
@@ -17496,9 +17508,9 @@ var diodeConnectionKeys = z80.enum([
17496
17508
  "pos",
17497
17509
  "neg"
17498
17510
  ]);
17499
- var connectionTarget3 = z80.string().or(z80.array(z80.string()).readonly()).or(z80.array(z80.string()));
17500
- var connectionsProp2 = z80.record(diodeConnectionKeys, connectionTarget3);
17501
- var diodeVariant = z80.enum([
17511
+ var connectionTarget3 = z81.string().or(z81.array(z81.string()).readonly()).or(z81.array(z81.string()));
17512
+ var connectionsProp2 = z81.record(diodeConnectionKeys, connectionTarget3);
17513
+ var diodeVariant = z81.enum([
17502
17514
  "standard",
17503
17515
  "schottky",
17504
17516
  "zener",
@@ -17509,12 +17521,12 @@ var diodeVariant = z80.enum([
17509
17521
  var diodeProps = commonComponentProps.extend({
17510
17522
  connections: connectionsProp2.optional(),
17511
17523
  variant: diodeVariant.optional().default("standard"),
17512
- standard: z80.boolean().optional(),
17513
- schottky: z80.boolean().optional(),
17514
- zener: z80.boolean().optional(),
17515
- avalanche: z80.boolean().optional(),
17516
- photo: z80.boolean().optional(),
17517
- tvs: z80.boolean().optional(),
17524
+ standard: z81.boolean().optional(),
17525
+ schottky: z81.boolean().optional(),
17526
+ zener: z81.boolean().optional(),
17527
+ avalanche: z81.boolean().optional(),
17528
+ photo: z81.boolean().optional(),
17529
+ tvs: z81.boolean().optional(),
17518
17530
  schOrientation: schematicOrientation.optional()
17519
17531
  }).superRefine((data, ctx) => {
17520
17532
  const enabledFlags = [
@@ -17527,11 +17539,11 @@ var diodeProps = commonComponentProps.extend({
17527
17539
  ].filter(Boolean).length;
17528
17540
  if (enabledFlags > 1) {
17529
17541
  ctx.addIssue({
17530
- code: z80.ZodIssueCode.custom,
17542
+ code: z81.ZodIssueCode.custom,
17531
17543
  message: "Exactly one diode variant must be enabled",
17532
17544
  path: []
17533
17545
  });
17534
- return z80.INVALID;
17546
+ return z81.INVALID;
17535
17547
  }
17536
17548
  }).transform((data) => {
17537
17549
  const result = {
@@ -17578,33 +17590,33 @@ var diodePins = lrPolarPins;
17578
17590
  expectTypesMatch(true);
17579
17591
 
17580
17592
  // lib/components/led.ts
17581
- import { z as z81 } from "zod";
17593
+ import { z as z82 } from "zod";
17582
17594
  var ledProps = commonComponentProps.extend({
17583
- color: z81.string().optional(),
17584
- wavelength: z81.string().optional(),
17585
- schDisplayValue: z81.string().optional(),
17595
+ color: z82.string().optional(),
17596
+ wavelength: z82.string().optional(),
17597
+ schDisplayValue: z82.string().optional(),
17586
17598
  schOrientation: schematicOrientation.optional(),
17587
17599
  connections: createConnectionsProp(lrPolarPins).optional(),
17588
- laser: z81.boolean().optional()
17600
+ laser: z82.boolean().optional()
17589
17601
  });
17590
17602
  var ledPins = lrPolarPins;
17591
17603
 
17592
17604
  // lib/components/switch.ts
17593
17605
  import { ms as ms2, frequency as frequency3 } from "circuit-json";
17594
- import { z as z82 } from "zod";
17606
+ import { z as z83 } from "zod";
17595
17607
  var switchProps = commonComponentProps.extend({
17596
- type: z82.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
17597
- isNormallyClosed: z82.boolean().optional().default(false),
17598
- spst: z82.boolean().optional(),
17599
- spdt: z82.boolean().optional(),
17600
- dpst: z82.boolean().optional(),
17601
- dpdt: z82.boolean().optional(),
17608
+ type: z83.enum(["spst", "spdt", "dpst", "dpdt"]).optional(),
17609
+ isNormallyClosed: z83.boolean().optional().default(false),
17610
+ spst: z83.boolean().optional(),
17611
+ spdt: z83.boolean().optional(),
17612
+ dpst: z83.boolean().optional(),
17613
+ dpdt: z83.boolean().optional(),
17602
17614
  simSwitchFrequency: frequency3.optional(),
17603
17615
  simCloseAt: ms2.optional(),
17604
17616
  simOpenAt: ms2.optional(),
17605
- simStartClosed: z82.boolean().optional(),
17606
- simStartOpen: z82.boolean().optional(),
17607
- connections: z82.custom().pipe(z82.record(z82.string(), connectionTarget)).optional()
17617
+ simStartClosed: z83.boolean().optional(),
17618
+ simStartOpen: z83.boolean().optional(),
17619
+ connections: z83.custom().pipe(z83.record(z83.string(), connectionTarget)).optional()
17608
17620
  }).transform((props) => {
17609
17621
  const updatedProps = { ...props };
17610
17622
  if (updatedProps.dpdt) {
@@ -17636,33 +17648,33 @@ expectTypesMatch(true);
17636
17648
 
17637
17649
  // lib/components/fabrication-note-text.ts
17638
17650
  import { length as length4 } from "circuit-json";
17639
- import { z as z83 } from "zod";
17651
+ import { z as z84 } from "zod";
17640
17652
  var fabricationNoteTextProps = pcbLayoutProps.extend({
17641
- text: z83.string(),
17642
- anchorAlignment: z83.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
17643
- font: z83.enum(["tscircuit2024"]).optional(),
17653
+ text: z84.string(),
17654
+ anchorAlignment: z84.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
17655
+ font: z84.enum(["tscircuit2024"]).optional(),
17644
17656
  fontSize: length4.optional(),
17645
- color: z83.string().optional()
17657
+ color: z84.string().optional()
17646
17658
  });
17647
17659
  expectTypesMatch(true);
17648
17660
 
17649
17661
  // lib/components/fabrication-note-rect.ts
17650
17662
  import { distance as distance20 } from "circuit-json";
17651
- import { z as z84 } from "zod";
17663
+ import { z as z85 } from "zod";
17652
17664
  var fabricationNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17653
17665
  width: distance20,
17654
17666
  height: distance20,
17655
17667
  strokeWidth: distance20.optional(),
17656
- isFilled: z84.boolean().optional(),
17657
- hasStroke: z84.boolean().optional(),
17658
- isStrokeDashed: z84.boolean().optional(),
17659
- color: z84.string().optional(),
17668
+ isFilled: z85.boolean().optional(),
17669
+ hasStroke: z85.boolean().optional(),
17670
+ isStrokeDashed: z85.boolean().optional(),
17671
+ color: z85.string().optional(),
17660
17672
  cornerRadius: distance20.optional()
17661
17673
  });
17662
17674
 
17663
17675
  // lib/components/fabrication-note-path.ts
17664
17676
  import { length as length5, route_hint_point as route_hint_point3 } from "circuit-json";
17665
- import { z as z85 } from "zod";
17677
+ import { z as z86 } from "zod";
17666
17678
  var fabricationNotePathProps = pcbLayoutProps.omit({
17667
17679
  pcbLeftEdgeX: true,
17668
17680
  pcbRightEdgeX: true,
@@ -17674,15 +17686,15 @@ var fabricationNotePathProps = pcbLayoutProps.omit({
17674
17686
  pcbOffsetY: true,
17675
17687
  pcbRotation: true
17676
17688
  }).extend({
17677
- route: z85.array(route_hint_point3),
17689
+ route: z86.array(route_hint_point3),
17678
17690
  strokeWidth: length5.optional(),
17679
- color: z85.string().optional()
17691
+ color: z86.string().optional()
17680
17692
  });
17681
17693
 
17682
17694
  // lib/components/fabrication-note-dimension.ts
17683
17695
  import { distance as distance21, length as length6 } from "circuit-json";
17684
- import { z as z86 } from "zod";
17685
- var dimensionTarget = z86.union([z86.string(), point]);
17696
+ import { z as z87 } from "zod";
17697
+ var dimensionTarget = z87.union([z87.string(), point]);
17686
17698
  var fabricationNoteDimensionProps = pcbLayoutProps.omit({
17687
17699
  pcbLeftEdgeX: true,
17688
17700
  pcbRightEdgeX: true,
@@ -17696,54 +17708,54 @@ var fabricationNoteDimensionProps = pcbLayoutProps.omit({
17696
17708
  }).extend({
17697
17709
  from: dimensionTarget,
17698
17710
  to: dimensionTarget,
17699
- text: z86.string().optional(),
17711
+ text: z87.string().optional(),
17700
17712
  offset: distance21.optional(),
17701
- font: z86.enum(["tscircuit2024"]).optional(),
17713
+ font: z87.enum(["tscircuit2024"]).optional(),
17702
17714
  fontSize: length6.optional(),
17703
- color: z86.string().optional(),
17715
+ color: z87.string().optional(),
17704
17716
  arrowSize: distance21.optional(),
17705
- units: z86.enum(["in", "mm"]).optional(),
17706
- outerEdgeToEdge: z86.literal(true).optional(),
17707
- centerToCenter: z86.literal(true).optional(),
17708
- innerEdgeToEdge: z86.literal(true).optional()
17717
+ units: z87.enum(["in", "mm"]).optional(),
17718
+ outerEdgeToEdge: z87.literal(true).optional(),
17719
+ centerToCenter: z87.literal(true).optional(),
17720
+ innerEdgeToEdge: z87.literal(true).optional()
17709
17721
  });
17710
17722
  expectTypesMatch(true);
17711
17723
 
17712
17724
  // lib/components/pcb-trace.ts
17713
17725
  import { distance as distance22, route_hint_point as route_hint_point4 } from "circuit-json";
17714
- import { z as z87 } from "zod";
17715
- var pcbTraceProps = z87.object({
17716
- layer: z87.string().optional(),
17726
+ import { z as z88 } from "zod";
17727
+ var pcbTraceProps = z88.object({
17728
+ layer: z88.string().optional(),
17717
17729
  thickness: distance22.optional(),
17718
- route: z87.array(route_hint_point4)
17730
+ route: z88.array(route_hint_point4)
17719
17731
  });
17720
17732
 
17721
17733
  // lib/components/via.ts
17722
17734
  import { distance as distance23, layer_ref as layer_ref6 } from "circuit-json";
17723
- import { z as z88 } from "zod";
17735
+ import { z as z89 } from "zod";
17724
17736
  var viaProps = commonLayoutProps.extend({
17725
- name: z88.string().optional(),
17737
+ name: z89.string().optional(),
17726
17738
  fromLayer: layer_ref6.optional(),
17727
17739
  toLayer: layer_ref6.optional(),
17728
17740
  holeDiameter: distance23.optional(),
17729
17741
  outerDiameter: distance23.optional(),
17730
- layers: z88.array(layer_ref6).optional(),
17731
- connectsTo: z88.string().or(z88.array(z88.string())).optional(),
17732
- netIsAssignable: z88.boolean().optional()
17742
+ layers: z89.array(layer_ref6).optional(),
17743
+ connectsTo: z89.string().or(z89.array(z89.string())).optional(),
17744
+ netIsAssignable: z89.boolean().optional()
17733
17745
  });
17734
17746
  expectTypesMatch(true);
17735
17747
 
17736
17748
  // lib/components/testpoint.ts
17737
17749
  import { distance as distance24 } from "circuit-json";
17738
- import { z as z89 } from "zod";
17750
+ import { z as z90 } from "zod";
17739
17751
  var testpointPins = ["pin1"];
17740
- var testpointConnectionsProp = z89.object({
17752
+ var testpointConnectionsProp = z90.object({
17741
17753
  pin1: connectionTarget
17742
17754
  }).strict();
17743
17755
  var testpointProps = commonComponentProps.extend({
17744
17756
  connections: testpointConnectionsProp.optional(),
17745
- footprintVariant: z89.enum(["pad", "through_hole"]).optional(),
17746
- padShape: z89.enum(["rect", "circle"]).optional().default("circle"),
17757
+ footprintVariant: z90.enum(["pad", "through_hole"]).optional(),
17758
+ padShape: z90.enum(["rect", "circle"]).optional().default("circle"),
17747
17759
  padDiameter: distance24.optional(),
17748
17760
  holeDiameter: distance24.optional(),
17749
17761
  width: distance24.optional(),
@@ -17755,45 +17767,45 @@ var testpointProps = commonComponentProps.extend({
17755
17767
  expectTypesMatch(true);
17756
17768
 
17757
17769
  // lib/components/breakoutpoint.ts
17758
- import { z as z90 } from "zod";
17770
+ import { z as z91 } from "zod";
17759
17771
  var breakoutPointProps = pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
17760
- connection: z90.string()
17772
+ connection: z91.string()
17761
17773
  });
17762
17774
  expectTypesMatch(true);
17763
17775
 
17764
17776
  // lib/components/pcb-keepout.ts
17765
17777
  import { distance as distance25, layer_ref as layer_ref7 } from "circuit-json";
17766
- import { z as z91 } from "zod";
17767
- var pcbKeepoutProps = z91.union([
17778
+ import { z as z92 } from "zod";
17779
+ var pcbKeepoutProps = z92.union([
17768
17780
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
17769
- shape: z91.literal("circle"),
17781
+ shape: z92.literal("circle"),
17770
17782
  radius: distance25,
17771
- layers: z91.array(layer_ref7).optional()
17783
+ layers: z92.array(layer_ref7).optional()
17772
17784
  }),
17773
17785
  pcbLayoutProps.extend({
17774
- shape: z91.literal("rect"),
17786
+ shape: z92.literal("rect"),
17775
17787
  width: distance25,
17776
17788
  height: distance25,
17777
- layers: z91.array(layer_ref7).optional()
17789
+ layers: z92.array(layer_ref7).optional()
17778
17790
  })
17779
17791
  ]);
17780
17792
 
17781
17793
  // lib/components/courtyard-rect.ts
17782
17794
  import { distance as distance26 } from "circuit-json";
17783
- import { z as z92 } from "zod";
17795
+ import { z as z93 } from "zod";
17784
17796
  var courtyardRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17785
17797
  width: distance26,
17786
17798
  height: distance26,
17787
17799
  strokeWidth: distance26.optional(),
17788
- isFilled: z92.boolean().optional(),
17789
- hasStroke: z92.boolean().optional(),
17790
- isStrokeDashed: z92.boolean().optional(),
17791
- color: z92.string().optional()
17800
+ isFilled: z93.boolean().optional(),
17801
+ hasStroke: z93.boolean().optional(),
17802
+ isStrokeDashed: z93.boolean().optional(),
17803
+ color: z93.string().optional()
17792
17804
  });
17793
17805
 
17794
17806
  // lib/components/courtyard-outline.ts
17795
17807
  import { length as length7 } from "circuit-json";
17796
- import { z as z93 } from "zod";
17808
+ import { z as z94 } from "zod";
17797
17809
  var courtyardOutlineProps = pcbLayoutProps.omit({
17798
17810
  pcbLeftEdgeX: true,
17799
17811
  pcbRightEdgeX: true,
@@ -17805,11 +17817,11 @@ var courtyardOutlineProps = pcbLayoutProps.omit({
17805
17817
  pcbOffsetY: true,
17806
17818
  pcbRotation: true
17807
17819
  }).extend({
17808
- outline: z93.array(point),
17820
+ outline: z94.array(point),
17809
17821
  strokeWidth: length7.optional(),
17810
- isClosed: z93.boolean().optional(),
17811
- isStrokeDashed: z93.boolean().optional(),
17812
- color: z93.string().optional()
17822
+ isClosed: z94.boolean().optional(),
17823
+ isStrokeDashed: z94.boolean().optional(),
17824
+ color: z94.string().optional()
17813
17825
  });
17814
17826
 
17815
17827
  // lib/components/courtyard-circle.ts
@@ -17829,35 +17841,35 @@ var courtyardPillProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
17829
17841
  });
17830
17842
 
17831
17843
  // lib/components/copper-pour.ts
17832
- import { z as z96 } from "zod";
17844
+ import { z as z97 } from "zod";
17833
17845
  import { layer_ref as layer_ref8 } from "circuit-json";
17834
- var copperPourProps = z96.object({
17835
- name: z96.string().optional(),
17846
+ var copperPourProps = z97.object({
17847
+ name: z97.string().optional(),
17836
17848
  layer: layer_ref8,
17837
- connectsTo: z96.string(),
17838
- unbroken: z96.boolean().optional(),
17849
+ connectsTo: z97.string(),
17850
+ unbroken: z97.boolean().optional(),
17839
17851
  padMargin: distance.optional(),
17840
17852
  traceMargin: distance.optional(),
17841
17853
  clearance: distance.optional(),
17842
17854
  boardEdgeMargin: distance.optional(),
17843
17855
  cutoutMargin: distance.optional(),
17844
- outline: z96.array(point).optional(),
17845
- coveredWithSolderMask: z96.boolean().optional().default(true)
17856
+ outline: z97.array(point).optional(),
17857
+ coveredWithSolderMask: z97.boolean().optional().default(true)
17846
17858
  });
17847
17859
  expectTypesMatch(true);
17848
17860
 
17849
17861
  // lib/components/cadassembly.ts
17850
17862
  import { layer_ref as layer_ref9 } from "circuit-json";
17851
- import { z as z97 } from "zod";
17852
- var cadassemblyProps = z97.object({
17863
+ import { z as z98 } from "zod";
17864
+ var cadassemblyProps = z98.object({
17853
17865
  originalLayer: layer_ref9.default("top").optional(),
17854
- children: z97.any().optional()
17866
+ children: z98.any().optional()
17855
17867
  });
17856
17868
  expectTypesMatch(true);
17857
17869
 
17858
17870
  // lib/components/cadmodel.ts
17859
- import { z as z98 } from "zod";
17860
- var pcbPosition = z98.object({
17871
+ import { z as z99 } from "zod";
17872
+ var pcbPosition = z99.object({
17861
17873
  pcbX: pcbCoordinate.optional(),
17862
17874
  pcbY: pcbCoordinate.optional(),
17863
17875
  pcbLeftEdgeX: pcbCoordinate.optional(),
@@ -17874,7 +17886,7 @@ var cadModelBaseWithUrl = cadModelBase.extend({
17874
17886
  });
17875
17887
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
17876
17888
  expectTypesMatch(true);
17877
- var cadmodelProps = z98.union([z98.null(), url, cadModelObject]);
17889
+ var cadmodelProps = z99.union([z99.null(), url, cadModelObject]);
17878
17890
 
17879
17891
  // lib/components/power-source.ts
17880
17892
  import { voltage as voltage3 } from "circuit-json";
@@ -17884,9 +17896,9 @@ var powerSourceProps = commonComponentProps.extend({
17884
17896
 
17885
17897
  // lib/components/voltagesource.ts
17886
17898
  import { frequency as frequency4, rotation as rotation5, voltage as voltage4 } from "circuit-json";
17887
- import { z as z99 } from "zod";
17899
+ import { z as z100 } from "zod";
17888
17900
  var voltageSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
17889
- var percentage = z99.union([z99.string(), z99.number()]).transform((val) => {
17901
+ var percentage = z100.union([z100.string(), z100.number()]).transform((val) => {
17890
17902
  if (typeof val === "string") {
17891
17903
  if (val.endsWith("%")) {
17892
17904
  return parseFloat(val.slice(0, -1)) / 100;
@@ -17895,13 +17907,13 @@ var percentage = z99.union([z99.string(), z99.number()]).transform((val) => {
17895
17907
  }
17896
17908
  return val;
17897
17909
  }).pipe(
17898
- z99.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17910
+ z100.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17899
17911
  );
17900
17912
  var voltageSourceProps = commonComponentProps.extend({
17901
17913
  voltage: voltage4.optional(),
17902
17914
  frequency: frequency4.optional(),
17903
17915
  peakToPeakVoltage: voltage4.optional(),
17904
- waveShape: z99.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
17916
+ waveShape: z100.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
17905
17917
  phase: rotation5.optional(),
17906
17918
  dutyCycle: percentage.optional(),
17907
17919
  connections: createConnectionsProp(voltageSourcePinLabels).optional()
@@ -17911,9 +17923,9 @@ expectTypesMatch(true);
17911
17923
 
17912
17924
  // lib/components/currentsource.ts
17913
17925
  import { frequency as frequency5, rotation as rotation6, current } from "circuit-json";
17914
- import { z as z100 } from "zod";
17926
+ import { z as z101 } from "zod";
17915
17927
  var currentSourcePinLabels = ["pin1", "pin2", "pos", "neg"];
17916
- var percentage2 = z100.union([z100.string(), z100.number()]).transform((val) => {
17928
+ var percentage2 = z101.union([z101.string(), z101.number()]).transform((val) => {
17917
17929
  if (typeof val === "string") {
17918
17930
  if (val.endsWith("%")) {
17919
17931
  return parseFloat(val.slice(0, -1)) / 100;
@@ -17922,13 +17934,13 @@ var percentage2 = z100.union([z100.string(), z100.number()]).transform((val) =>
17922
17934
  }
17923
17935
  return val;
17924
17936
  }).pipe(
17925
- z100.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17937
+ z101.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
17926
17938
  );
17927
17939
  var currentSourceProps = commonComponentProps.extend({
17928
17940
  current: current.optional(),
17929
17941
  frequency: frequency5.optional(),
17930
17942
  peakToPeakCurrent: current.optional(),
17931
- waveShape: z100.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
17943
+ waveShape: z101.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
17932
17944
  phase: rotation6.optional(),
17933
17945
  dutyCycle: percentage2.optional(),
17934
17946
  connections: createConnectionsProp(currentSourcePinLabels).optional()
@@ -17937,57 +17949,57 @@ var currentSourcePins = lrPolarPins;
17937
17949
  expectTypesMatch(true);
17938
17950
 
17939
17951
  // lib/components/voltageprobe.ts
17940
- import { z as z101 } from "zod";
17952
+ import { z as z102 } from "zod";
17941
17953
  var voltageProbeProps = commonComponentProps.omit({ name: true }).extend({
17942
- name: z101.string().optional(),
17943
- connectsTo: z101.string(),
17944
- referenceTo: z101.string().optional(),
17945
- color: z101.string().optional()
17954
+ name: z102.string().optional(),
17955
+ connectsTo: z102.string(),
17956
+ referenceTo: z102.string().optional(),
17957
+ color: z102.string().optional()
17946
17958
  });
17947
17959
  expectTypesMatch(true);
17948
17960
 
17949
17961
  // lib/components/schematic-arc.ts
17950
17962
  import { distance as distance29, point as point5, rotation as rotation7 } from "circuit-json";
17951
- import { z as z102 } from "zod";
17952
- var schematicArcProps = z102.object({
17963
+ import { z as z103 } from "zod";
17964
+ var schematicArcProps = z103.object({
17953
17965
  center: point5,
17954
17966
  radius: distance29,
17955
17967
  startAngleDegrees: rotation7,
17956
17968
  endAngleDegrees: rotation7,
17957
- direction: z102.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
17969
+ direction: z103.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
17958
17970
  strokeWidth: distance29.optional(),
17959
- color: z102.string().optional(),
17960
- isDashed: z102.boolean().optional().default(false)
17971
+ color: z103.string().optional(),
17972
+ isDashed: z103.boolean().optional().default(false)
17961
17973
  });
17962
17974
  expectTypesMatch(true);
17963
17975
 
17964
17976
  // lib/components/toolingrail.ts
17965
- import { z as z103 } from "zod";
17966
- var toolingrailProps = z103.object({
17967
- children: z103.any().optional()
17977
+ import { z as z104 } from "zod";
17978
+ var toolingrailProps = z104.object({
17979
+ children: z104.any().optional()
17968
17980
  });
17969
17981
  expectTypesMatch(true);
17970
17982
 
17971
17983
  // lib/components/schematic-box.ts
17972
17984
  import { distance as distance30 } from "circuit-json";
17973
- import { z as z104 } from "zod";
17974
- var schematicBoxProps = z104.object({
17985
+ import { z as z105 } from "zod";
17986
+ var schematicBoxProps = z105.object({
17975
17987
  schX: distance30.optional(),
17976
17988
  schY: distance30.optional(),
17977
17989
  width: distance30.optional(),
17978
17990
  height: distance30.optional(),
17979
- overlay: z104.array(z104.string()).optional(),
17991
+ overlay: z105.array(z105.string()).optional(),
17980
17992
  padding: distance30.optional(),
17981
17993
  paddingLeft: distance30.optional(),
17982
17994
  paddingRight: distance30.optional(),
17983
17995
  paddingTop: distance30.optional(),
17984
17996
  paddingBottom: distance30.optional(),
17985
- title: z104.string().optional(),
17997
+ title: z105.string().optional(),
17986
17998
  titleAlignment: ninePointAnchor.default("top_left"),
17987
- titleColor: z104.string().optional(),
17999
+ titleColor: z105.string().optional(),
17988
18000
  titleFontSize: distance30.optional(),
17989
- titleInside: z104.boolean().default(false),
17990
- strokeStyle: z104.enum(["solid", "dashed"]).default("solid")
18001
+ titleInside: z105.boolean().default(false),
18002
+ strokeStyle: z105.enum(["solid", "dashed"]).default("solid")
17991
18003
  }).refine(
17992
18004
  (elm) => elm.width !== void 0 && elm.height !== void 0 || Array.isArray(elm.overlay) && elm.overlay.length > 0,
17993
18005
  {
@@ -18003,15 +18015,15 @@ expectTypesMatch(true);
18003
18015
 
18004
18016
  // lib/components/schematic-circle.ts
18005
18017
  import { distance as distance31, point as point6 } from "circuit-json";
18006
- import { z as z105 } from "zod";
18007
- var schematicCircleProps = z105.object({
18018
+ import { z as z106 } from "zod";
18019
+ var schematicCircleProps = z106.object({
18008
18020
  center: point6,
18009
18021
  radius: distance31,
18010
18022
  strokeWidth: distance31.optional(),
18011
- color: z105.string().optional(),
18012
- isFilled: z105.boolean().optional().default(false),
18013
- fillColor: z105.string().optional(),
18014
- isDashed: z105.boolean().optional().default(false)
18023
+ color: z106.string().optional(),
18024
+ isFilled: z106.boolean().optional().default(false),
18025
+ fillColor: z106.string().optional(),
18026
+ isDashed: z106.boolean().optional().default(false)
18015
18027
  });
18016
18028
  expectTypesMatch(
18017
18029
  true
@@ -18019,43 +18031,43 @@ expectTypesMatch(
18019
18031
 
18020
18032
  // lib/components/schematic-rect.ts
18021
18033
  import { distance as distance32, rotation as rotation8 } from "circuit-json";
18022
- import { z as z106 } from "zod";
18023
- var schematicRectProps = z106.object({
18034
+ import { z as z107 } from "zod";
18035
+ var schematicRectProps = z107.object({
18024
18036
  schX: distance32.optional(),
18025
18037
  schY: distance32.optional(),
18026
18038
  width: distance32,
18027
18039
  height: distance32,
18028
18040
  rotation: rotation8.default(0),
18029
18041
  strokeWidth: distance32.optional(),
18030
- color: z106.string().optional(),
18031
- isFilled: z106.boolean().optional().default(false),
18032
- fillColor: z106.string().optional(),
18033
- isDashed: z106.boolean().optional().default(false),
18042
+ color: z107.string().optional(),
18043
+ isFilled: z107.boolean().optional().default(false),
18044
+ fillColor: z107.string().optional(),
18045
+ isDashed: z107.boolean().optional().default(false),
18034
18046
  cornerRadius: distance32.optional()
18035
18047
  });
18036
18048
  expectTypesMatch(true);
18037
18049
 
18038
18050
  // lib/components/schematic-line.ts
18039
18051
  import { distance as distance33 } from "circuit-json";
18040
- import { z as z107 } from "zod";
18041
- var schematicLineProps = z107.object({
18052
+ import { z as z108 } from "zod";
18053
+ var schematicLineProps = z108.object({
18042
18054
  x1: distance33,
18043
18055
  y1: distance33,
18044
18056
  x2: distance33,
18045
18057
  y2: distance33,
18046
18058
  strokeWidth: distance33.optional(),
18047
- color: z107.string().optional(),
18048
- isDashed: z107.boolean().optional().default(false)
18059
+ color: z108.string().optional(),
18060
+ isDashed: z108.boolean().optional().default(false)
18049
18061
  });
18050
18062
  expectTypesMatch(true);
18051
18063
 
18052
18064
  // lib/components/schematic-text.ts
18053
18065
  import { distance as distance34, rotation as rotation9 } from "circuit-json";
18054
- import { z as z109 } from "zod";
18066
+ import { z as z110 } from "zod";
18055
18067
 
18056
18068
  // lib/common/fivePointAnchor.ts
18057
- import { z as z108 } from "zod";
18058
- var fivePointAnchor = z108.enum([
18069
+ import { z as z109 } from "zod";
18070
+ var fivePointAnchor = z109.enum([
18059
18071
  "center",
18060
18072
  "left",
18061
18073
  "right",
@@ -18064,37 +18076,37 @@ var fivePointAnchor = z108.enum([
18064
18076
  ]);
18065
18077
 
18066
18078
  // lib/components/schematic-text.ts
18067
- var schematicTextProps = z109.object({
18079
+ var schematicTextProps = z110.object({
18068
18080
  schX: distance34.optional(),
18069
18081
  schY: distance34.optional(),
18070
- text: z109.string(),
18071
- fontSize: z109.number().default(1),
18072
- anchor: z109.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
18073
- color: z109.string().default("#000000"),
18082
+ text: z110.string(),
18083
+ fontSize: z110.number().default(1),
18084
+ anchor: z110.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
18085
+ color: z110.string().default("#000000"),
18074
18086
  schRotation: rotation9.default(0)
18075
18087
  });
18076
18088
  expectTypesMatch(true);
18077
18089
 
18078
18090
  // lib/components/schematic-path.ts
18079
18091
  import { distance as distance35, point as point8 } from "circuit-json";
18080
- import { z as z110 } from "zod";
18081
- var schematicPathProps = z110.object({
18082
- points: z110.array(point8).optional(),
18083
- svgPath: z110.string().optional(),
18092
+ import { z as z111 } from "zod";
18093
+ var schematicPathProps = z111.object({
18094
+ points: z111.array(point8).optional(),
18095
+ svgPath: z111.string().optional(),
18084
18096
  strokeWidth: distance35.optional(),
18085
- strokeColor: z110.string().optional(),
18086
- isFilled: z110.boolean().optional().default(false),
18087
- fillColor: z110.string().optional()
18097
+ strokeColor: z111.string().optional(),
18098
+ isFilled: z111.boolean().optional().default(false),
18099
+ fillColor: z111.string().optional()
18088
18100
  });
18089
18101
  expectTypesMatch(true);
18090
18102
 
18091
18103
  // lib/components/schematic-table.ts
18092
18104
  import { distance as distance36 } from "circuit-json";
18093
- import { z as z111 } from "zod";
18094
- var schematicTableProps = z111.object({
18105
+ import { z as z112 } from "zod";
18106
+ var schematicTableProps = z112.object({
18095
18107
  schX: distance36.optional(),
18096
18108
  schY: distance36.optional(),
18097
- children: z111.any().optional(),
18109
+ children: z112.any().optional(),
18098
18110
  cellPadding: distance36.optional(),
18099
18111
  borderWidth: distance36.optional(),
18100
18112
  anchor: ninePointAnchor.optional(),
@@ -18104,33 +18116,33 @@ expectTypesMatch(true);
18104
18116
 
18105
18117
  // lib/components/schematic-row.ts
18106
18118
  import { distance as distance37 } from "circuit-json";
18107
- import { z as z112 } from "zod";
18108
- var schematicRowProps = z112.object({
18109
- children: z112.any().optional(),
18119
+ import { z as z113 } from "zod";
18120
+ var schematicRowProps = z113.object({
18121
+ children: z113.any().optional(),
18110
18122
  height: distance37.optional()
18111
18123
  });
18112
18124
  expectTypesMatch(true);
18113
18125
 
18114
18126
  // lib/components/schematic-cell.ts
18115
18127
  import { distance as distance38 } from "circuit-json";
18116
- import { z as z113 } from "zod";
18117
- var schematicCellProps = z113.object({
18118
- children: z113.string().optional(),
18119
- horizontalAlign: z113.enum(["left", "center", "right"]).optional(),
18120
- verticalAlign: z113.enum(["top", "middle", "bottom"]).optional(),
18128
+ import { z as z114 } from "zod";
18129
+ var schematicCellProps = z114.object({
18130
+ children: z114.string().optional(),
18131
+ horizontalAlign: z114.enum(["left", "center", "right"]).optional(),
18132
+ verticalAlign: z114.enum(["top", "middle", "bottom"]).optional(),
18121
18133
  fontSize: distance38.optional(),
18122
- rowSpan: z113.number().optional(),
18123
- colSpan: z113.number().optional(),
18134
+ rowSpan: z114.number().optional(),
18135
+ colSpan: z114.number().optional(),
18124
18136
  width: distance38.optional(),
18125
- text: z113.string().optional()
18137
+ text: z114.string().optional()
18126
18138
  });
18127
18139
  expectTypesMatch(true);
18128
18140
 
18129
18141
  // lib/components/schematic-section.ts
18130
- import { z as z114 } from "zod";
18131
- var schematicSectionProps = z114.object({
18132
- displayName: z114.string().optional(),
18133
- name: z114.string()
18142
+ import { z as z115 } from "zod";
18143
+ var schematicSectionProps = z115.object({
18144
+ displayName: z115.string().optional(),
18145
+ name: z115.string()
18134
18146
  });
18135
18147
  expectTypesMatch(
18136
18148
  true
@@ -18138,40 +18150,40 @@ expectTypesMatch(
18138
18150
 
18139
18151
  // lib/components/copper-text.ts
18140
18152
  import { layer_ref as layer_ref10, length as length8 } from "circuit-json";
18141
- import { z as z115 } from "zod";
18153
+ import { z as z116 } from "zod";
18142
18154
  var copperTextProps = pcbLayoutProps.extend({
18143
- text: z115.string(),
18155
+ text: z116.string(),
18144
18156
  anchorAlignment: ninePointAnchor.default("center"),
18145
- font: z115.enum(["tscircuit2024"]).optional(),
18157
+ font: z116.enum(["tscircuit2024"]).optional(),
18146
18158
  fontSize: length8.optional(),
18147
- layers: z115.array(layer_ref10).optional(),
18148
- knockout: z115.boolean().optional(),
18149
- mirrored: z115.boolean().optional()
18159
+ layers: z116.array(layer_ref10).optional(),
18160
+ knockout: z116.boolean().optional(),
18161
+ mirrored: z116.boolean().optional()
18150
18162
  });
18151
18163
 
18152
18164
  // lib/components/silkscreen-text.ts
18153
18165
  import { layer_ref as layer_ref11, length as length9 } from "circuit-json";
18154
- import { z as z116 } from "zod";
18166
+ import { z as z117 } from "zod";
18155
18167
  var silkscreenTextProps = pcbLayoutProps.extend({
18156
- text: z116.string(),
18168
+ text: z117.string(),
18157
18169
  anchorAlignment: ninePointAnchor.default("center"),
18158
- font: z116.enum(["tscircuit2024"]).optional(),
18170
+ font: z117.enum(["tscircuit2024"]).optional(),
18159
18171
  fontSize: length9.optional(),
18160
18172
  /**
18161
18173
  * If true, text will knock out underlying silkscreen
18162
18174
  */
18163
- isKnockout: z116.boolean().optional(),
18175
+ isKnockout: z117.boolean().optional(),
18164
18176
  knockoutPadding: length9.optional(),
18165
18177
  knockoutPaddingLeft: length9.optional(),
18166
18178
  knockoutPaddingRight: length9.optional(),
18167
18179
  knockoutPaddingTop: length9.optional(),
18168
18180
  knockoutPaddingBottom: length9.optional(),
18169
- layers: z116.array(layer_ref11).optional()
18181
+ layers: z117.array(layer_ref11).optional()
18170
18182
  });
18171
18183
 
18172
18184
  // lib/components/silkscreen-path.ts
18173
18185
  import { length as length10, route_hint_point as route_hint_point5 } from "circuit-json";
18174
- import { z as z117 } from "zod";
18186
+ import { z as z118 } from "zod";
18175
18187
  var silkscreenPathProps = pcbLayoutProps.omit({
18176
18188
  pcbLeftEdgeX: true,
18177
18189
  pcbRightEdgeX: true,
@@ -18183,7 +18195,7 @@ var silkscreenPathProps = pcbLayoutProps.omit({
18183
18195
  pcbOffsetY: true,
18184
18196
  pcbRotation: true
18185
18197
  }).extend({
18186
- route: z117.array(route_hint_point5),
18198
+ route: z118.array(route_hint_point5),
18187
18199
  strokeWidth: length10.optional()
18188
18200
  });
18189
18201
 
@@ -18205,10 +18217,10 @@ var silkscreenLineProps = pcbLayoutProps.omit({
18205
18217
 
18206
18218
  // lib/components/silkscreen-rect.ts
18207
18219
  import { distance as distance40 } from "circuit-json";
18208
- import { z as z118 } from "zod";
18220
+ import { z as z119 } from "zod";
18209
18221
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18210
- filled: z118.boolean().default(true).optional(),
18211
- stroke: z118.enum(["dashed", "solid", "none"]).optional(),
18222
+ filled: z119.boolean().default(true).optional(),
18223
+ stroke: z119.enum(["dashed", "solid", "none"]).optional(),
18212
18224
  strokeWidth: distance40.optional(),
18213
18225
  width: distance40,
18214
18226
  height: distance40,
@@ -18217,73 +18229,73 @@ var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18217
18229
 
18218
18230
  // lib/components/silkscreen-circle.ts
18219
18231
  import { distance as distance41 } from "circuit-json";
18220
- import { z as z119 } from "zod";
18232
+ import { z as z120 } from "zod";
18221
18233
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18222
- isFilled: z119.boolean().optional(),
18223
- isOutline: z119.boolean().optional(),
18234
+ isFilled: z120.boolean().optional(),
18235
+ isOutline: z120.boolean().optional(),
18224
18236
  strokeWidth: distance41.optional(),
18225
18237
  radius: distance41
18226
18238
  });
18227
18239
 
18228
18240
  // lib/components/trace-hint.ts
18229
18241
  import { distance as distance42, layer_ref as layer_ref12, route_hint_point as route_hint_point6 } from "circuit-json";
18230
- import { z as z120 } from "zod";
18231
- var routeHintPointProps = z120.object({
18242
+ import { z as z121 } from "zod";
18243
+ var routeHintPointProps = z121.object({
18232
18244
  x: distance42,
18233
18245
  y: distance42,
18234
- via: z120.boolean().optional(),
18246
+ via: z121.boolean().optional(),
18235
18247
  toLayer: layer_ref12.optional()
18236
18248
  });
18237
- var traceHintProps = z120.object({
18238
- for: z120.string().optional().describe(
18249
+ var traceHintProps = z121.object({
18250
+ for: z121.string().optional().describe(
18239
18251
  "Selector for the port you're targeting, not required if you're inside a trace"
18240
18252
  ),
18241
- order: z120.number().optional(),
18253
+ order: z121.number().optional(),
18242
18254
  offset: route_hint_point6.or(routeHintPointProps).optional(),
18243
- offsets: z120.array(route_hint_point6).or(z120.array(routeHintPointProps)).optional(),
18244
- traceWidth: z120.number().optional()
18255
+ offsets: z121.array(route_hint_point6).or(z121.array(routeHintPointProps)).optional(),
18256
+ traceWidth: z121.number().optional()
18245
18257
  });
18246
18258
 
18247
18259
  // lib/components/port.ts
18248
- import { z as z121 } from "zod";
18260
+ import { z as z122 } from "zod";
18249
18261
  var portProps = commonLayoutProps.extend({
18250
- name: z121.string().optional(),
18251
- pinNumber: z121.number().optional(),
18252
- schStemLength: z121.number().optional(),
18253
- aliases: z121.array(z121.string()).optional(),
18254
- layer: z121.string().optional(),
18255
- layers: z121.array(z121.string()).optional(),
18256
- schX: z121.number().optional(),
18257
- schY: z121.number().optional(),
18262
+ name: z122.string().optional(),
18263
+ pinNumber: z122.number().optional(),
18264
+ schStemLength: z122.number().optional(),
18265
+ aliases: z122.array(z122.string()).optional(),
18266
+ layer: z122.string().optional(),
18267
+ layers: z122.array(z122.string()).optional(),
18268
+ schX: z122.number().optional(),
18269
+ schY: z122.number().optional(),
18258
18270
  direction: direction.optional(),
18259
- connectsTo: z121.string().or(z121.array(z121.string())).optional(),
18271
+ connectsTo: z122.string().or(z122.array(z122.string())).optional(),
18260
18272
  kicadPinMetadata: kicadPinMetadata.optional(),
18261
- hasInversionCircle: z121.boolean().optional()
18273
+ hasInversionCircle: z122.boolean().optional()
18262
18274
  });
18263
18275
 
18264
18276
  // lib/components/pcb-note-text.ts
18265
18277
  import { length as length11 } from "circuit-json";
18266
- import { z as z122 } from "zod";
18278
+ import { z as z123 } from "zod";
18267
18279
  var pcbNoteTextProps = pcbLayoutProps.extend({
18268
- text: z122.string(),
18269
- anchorAlignment: z122.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
18270
- font: z122.enum(["tscircuit2024"]).optional(),
18280
+ text: z123.string(),
18281
+ anchorAlignment: z123.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
18282
+ font: z123.enum(["tscircuit2024"]).optional(),
18271
18283
  fontSize: length11.optional(),
18272
- color: z122.string().optional()
18284
+ color: z123.string().optional()
18273
18285
  });
18274
18286
  expectTypesMatch(true);
18275
18287
 
18276
18288
  // lib/components/pcb-note-rect.ts
18277
18289
  import { distance as distance43 } from "circuit-json";
18278
- import { z as z123 } from "zod";
18290
+ import { z as z124 } from "zod";
18279
18291
  var pcbNoteRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
18280
18292
  width: distance43,
18281
18293
  height: distance43,
18282
18294
  strokeWidth: distance43.optional(),
18283
- isFilled: z123.boolean().optional(),
18284
- hasStroke: z123.boolean().optional(),
18285
- isStrokeDashed: z123.boolean().optional(),
18286
- color: z123.string().optional(),
18295
+ isFilled: z124.boolean().optional(),
18296
+ hasStroke: z124.boolean().optional(),
18297
+ isStrokeDashed: z124.boolean().optional(),
18298
+ color: z124.string().optional(),
18287
18299
  cornerRadius: distance43.optional()
18288
18300
  });
18289
18301
  expectTypesMatch(true);
@@ -18293,7 +18305,7 @@ import {
18293
18305
  length as length12,
18294
18306
  route_hint_point as route_hint_point7
18295
18307
  } from "circuit-json";
18296
- import { z as z124 } from "zod";
18308
+ import { z as z125 } from "zod";
18297
18309
  var pcbNotePathProps = pcbLayoutProps.omit({
18298
18310
  pcbLeftEdgeX: true,
18299
18311
  pcbRightEdgeX: true,
@@ -18305,15 +18317,15 @@ var pcbNotePathProps = pcbLayoutProps.omit({
18305
18317
  pcbOffsetY: true,
18306
18318
  pcbRotation: true
18307
18319
  }).extend({
18308
- route: z124.array(route_hint_point7),
18320
+ route: z125.array(route_hint_point7),
18309
18321
  strokeWidth: length12.optional(),
18310
- color: z124.string().optional()
18322
+ color: z125.string().optional()
18311
18323
  });
18312
18324
  expectTypesMatch(true);
18313
18325
 
18314
18326
  // lib/components/pcb-note-line.ts
18315
18327
  import { distance as distance44 } from "circuit-json";
18316
- import { z as z125 } from "zod";
18328
+ import { z as z126 } from "zod";
18317
18329
  var pcbNoteLineProps = pcbLayoutProps.omit({
18318
18330
  pcbLeftEdgeX: true,
18319
18331
  pcbRightEdgeX: true,
@@ -18330,15 +18342,15 @@ var pcbNoteLineProps = pcbLayoutProps.omit({
18330
18342
  x2: distance44,
18331
18343
  y2: distance44,
18332
18344
  strokeWidth: distance44.optional(),
18333
- color: z125.string().optional(),
18334
- isDashed: z125.boolean().optional()
18345
+ color: z126.string().optional(),
18346
+ isDashed: z126.boolean().optional()
18335
18347
  });
18336
18348
  expectTypesMatch(true);
18337
18349
 
18338
18350
  // lib/components/pcb-note-dimension.ts
18339
18351
  import { distance as distance45, length as length13 } from "circuit-json";
18340
- import { z as z126 } from "zod";
18341
- var dimensionTarget2 = z126.union([z126.string(), point]);
18352
+ import { z as z127 } from "zod";
18353
+ var dimensionTarget2 = z127.union([z127.string(), point]);
18342
18354
  var pcbNoteDimensionProps = pcbLayoutProps.omit({
18343
18355
  pcbLeftEdgeX: true,
18344
18356
  pcbRightEdgeX: true,
@@ -18352,101 +18364,101 @@ var pcbNoteDimensionProps = pcbLayoutProps.omit({
18352
18364
  }).extend({
18353
18365
  from: dimensionTarget2,
18354
18366
  to: dimensionTarget2,
18355
- text: z126.string().optional(),
18367
+ text: z127.string().optional(),
18356
18368
  offset: distance45.optional(),
18357
- font: z126.enum(["tscircuit2024"]).optional(),
18369
+ font: z127.enum(["tscircuit2024"]).optional(),
18358
18370
  fontSize: length13.optional(),
18359
- color: z126.string().optional(),
18371
+ color: z127.string().optional(),
18360
18372
  arrowSize: distance45.optional(),
18361
- units: z126.enum(["in", "mm"]).optional(),
18362
- outerEdgeToEdge: z126.literal(true).optional(),
18363
- centerToCenter: z126.literal(true).optional(),
18364
- innerEdgeToEdge: z126.literal(true).optional()
18373
+ units: z127.enum(["in", "mm"]).optional(),
18374
+ outerEdgeToEdge: z127.literal(true).optional(),
18375
+ centerToCenter: z127.literal(true).optional(),
18376
+ innerEdgeToEdge: z127.literal(true).optional()
18365
18377
  });
18366
18378
  expectTypesMatch(
18367
18379
  true
18368
18380
  );
18369
18381
 
18370
18382
  // lib/platformConfig.ts
18371
- import { z as z127 } from "zod";
18372
- var unvalidatedCircuitJson = z127.array(z127.any()).describe("Circuit JSON");
18373
- var footprintLibraryResult = z127.object({
18374
- footprintCircuitJson: z127.array(z127.any()),
18383
+ import { z as z128 } from "zod";
18384
+ var unvalidatedCircuitJson = z128.array(z128.any()).describe("Circuit JSON");
18385
+ var footprintLibraryResult = z128.object({
18386
+ footprintCircuitJson: z128.array(z128.any()),
18375
18387
  cadModel: cadModelProp.optional()
18376
18388
  });
18377
- var pathToCircuitJsonFn = z127.function().args(z127.string()).returns(z127.promise(footprintLibraryResult)).or(
18378
- z127.function().args(
18379
- z127.string(),
18380
- z127.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
18381
- ).returns(z127.promise(footprintLibraryResult))
18389
+ var pathToCircuitJsonFn = z128.function().args(z128.string()).returns(z128.promise(footprintLibraryResult)).or(
18390
+ z128.function().args(
18391
+ z128.string(),
18392
+ z128.object({ resolvedPcbStyle: pcbStyle.optional() }).optional()
18393
+ ).returns(z128.promise(footprintLibraryResult))
18382
18394
  ).describe("A function that takes a path and returns Circuit JSON");
18383
- var footprintFileParserEntry = z127.object({
18384
- loadFromUrl: z127.function().args(z127.string()).returns(z127.promise(footprintLibraryResult)).describe(
18395
+ var footprintFileParserEntry = z128.object({
18396
+ loadFromUrl: z128.function().args(z128.string()).returns(z128.promise(footprintLibraryResult)).describe(
18385
18397
  "A function that takes a footprint file URL and returns Circuit JSON"
18386
18398
  )
18387
18399
  });
18388
- var spiceEngineSimulationResult = z127.object({
18389
- engineVersionString: z127.string().optional(),
18400
+ var spiceEngineSimulationResult = z128.object({
18401
+ engineVersionString: z128.string().optional(),
18390
18402
  simulationResultCircuitJson: unvalidatedCircuitJson
18391
18403
  });
18392
- var spiceEngineZod = z127.object({
18393
- simulate: z127.function().args(z127.string()).returns(z127.promise(spiceEngineSimulationResult)).describe(
18404
+ var spiceEngineZod = z128.object({
18405
+ simulate: z128.function().args(z128.string()).returns(z128.promise(spiceEngineSimulationResult)).describe(
18394
18406
  "A function that takes a SPICE string and returns a simulation result"
18395
18407
  )
18396
18408
  });
18397
- var defaultSpiceEngine = z127.custom(
18409
+ var defaultSpiceEngine = z128.custom(
18398
18410
  (value) => typeof value === "string"
18399
18411
  );
18400
- var autorouterInstance = z127.object({
18401
- run: z127.function().args().returns(z127.promise(z127.unknown())).describe("Run the autorouter"),
18402
- getOutputSimpleRouteJson: z127.function().args().returns(z127.promise(z127.any())).describe("Get the resulting SimpleRouteJson")
18412
+ var autorouterInstance = z128.object({
18413
+ run: z128.function().args().returns(z128.promise(z128.unknown())).describe("Run the autorouter"),
18414
+ getOutputSimpleRouteJson: z128.function().args().returns(z128.promise(z128.any())).describe("Get the resulting SimpleRouteJson")
18403
18415
  });
18404
- var autorouterDefinition = z127.object({
18405
- createAutorouter: z127.function().args(z127.any(), z127.any().optional()).returns(z127.union([autorouterInstance, z127.promise(autorouterInstance)])).describe("Create an autorouter instance")
18416
+ var autorouterDefinition = z128.object({
18417
+ createAutorouter: z128.function().args(z128.any(), z128.any().optional()).returns(z128.union([autorouterInstance, z128.promise(autorouterInstance)])).describe("Create an autorouter instance")
18406
18418
  });
18407
- var platformFetch = z127.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
18408
- var platformConfig = z127.object({
18419
+ var platformFetch = z128.custom((value) => typeof value === "function").describe("A fetch-like function to use for platform requests");
18420
+ var platformConfig = z128.object({
18409
18421
  partsEngine: partsEngine.optional(),
18410
18422
  autorouter: autorouterProp.optional(),
18411
- autorouterMap: z127.record(z127.string(), autorouterDefinition).optional(),
18423
+ autorouterMap: z128.record(z128.string(), autorouterDefinition).optional(),
18412
18424
  registryApiUrl: url.optional(),
18413
18425
  cloudAutorouterUrl: url.optional(),
18414
- projectName: z127.string().optional(),
18426
+ projectName: z128.string().optional(),
18415
18427
  projectBaseUrl: url.optional(),
18416
- version: z127.string().optional(),
18428
+ version: z128.string().optional(),
18417
18429
  url: url.optional(),
18418
- printBoardInformationToSilkscreen: z127.boolean().optional(),
18419
- includeBoardFiles: z127.array(z127.string()).describe(
18430
+ printBoardInformationToSilkscreen: z128.boolean().optional(),
18431
+ includeBoardFiles: z128.array(z128.string()).describe(
18420
18432
  'The board files to automatically build with "tsci build", defaults to ["**/*.circuit.tsx"]. Can be an array of files or globs'
18421
18433
  ).optional(),
18422
- snapshotsDir: z127.string().describe(
18434
+ snapshotsDir: z128.string().describe(
18423
18435
  'The directory where snapshots are stored for "tsci snapshot", defaults to "tests/__snapshots__"'
18424
18436
  ).optional(),
18425
18437
  defaultSpiceEngine: defaultSpiceEngine.optional(),
18426
- unitPreference: z127.enum(["mm", "in", "mil"]).optional(),
18427
- localCacheEngine: z127.any().optional(),
18428
- pcbDisabled: z127.boolean().optional(),
18429
- routingDisabled: z127.boolean().optional(),
18430
- schematicDisabled: z127.boolean().optional(),
18431
- partsEngineDisabled: z127.boolean().optional(),
18432
- drcChecksDisabled: z127.boolean().optional(),
18433
- netlistDrcChecksDisabled: z127.boolean().optional(),
18434
- routingDrcChecksDisabled: z127.boolean().optional(),
18435
- placementDrcChecksDisabled: z127.boolean().optional(),
18436
- pinSpecificationDrcChecksDisabled: z127.boolean().optional(),
18437
- spiceEngineMap: z127.record(z127.string(), spiceEngineZod).optional(),
18438
- footprintLibraryMap: z127.record(
18439
- z127.string(),
18440
- z127.union([
18438
+ unitPreference: z128.enum(["mm", "in", "mil"]).optional(),
18439
+ localCacheEngine: z128.any().optional(),
18440
+ pcbDisabled: z128.boolean().optional(),
18441
+ routingDisabled: z128.boolean().optional(),
18442
+ schematicDisabled: z128.boolean().optional(),
18443
+ partsEngineDisabled: z128.boolean().optional(),
18444
+ drcChecksDisabled: z128.boolean().optional(),
18445
+ netlistDrcChecksDisabled: z128.boolean().optional(),
18446
+ routingDrcChecksDisabled: z128.boolean().optional(),
18447
+ placementDrcChecksDisabled: z128.boolean().optional(),
18448
+ pinSpecificationDrcChecksDisabled: z128.boolean().optional(),
18449
+ spiceEngineMap: z128.record(z128.string(), spiceEngineZod).optional(),
18450
+ footprintLibraryMap: z128.record(
18451
+ z128.string(),
18452
+ z128.union([
18441
18453
  pathToCircuitJsonFn,
18442
- z127.record(
18443
- z127.string(),
18444
- z127.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
18454
+ z128.record(
18455
+ z128.string(),
18456
+ z128.union([unvalidatedCircuitJson, pathToCircuitJsonFn])
18445
18457
  )
18446
18458
  ])
18447
18459
  ).optional(),
18448
- footprintFileParserMap: z127.record(z127.string(), footprintFileParserEntry).optional(),
18449
- resolveProjectStaticFileImportUrl: z127.function().args(z127.string()).returns(z127.promise(z127.string())).describe(
18460
+ footprintFileParserMap: z128.record(z128.string(), footprintFileParserEntry).optional(),
18461
+ resolveProjectStaticFileImportUrl: z128.function().args(z128.string()).returns(z128.promise(z128.string())).describe(
18450
18462
  "A function that returns a string URL for static files for the project"
18451
18463
  ).optional(),
18452
18464
  platformFetch: platformFetch.optional()
@@ -18666,6 +18678,7 @@ export {
18666
18678
  smtPadProps,
18667
18679
  solderPasteProps,
18668
18680
  solderjumperProps,
18681
+ spicemodelProps,
18669
18682
  stampboardProps,
18670
18683
  subcircuitGroupProps,
18671
18684
  subcircuitGroupPropsWithBool,