@tscircuit/props 0.0.102 → 0.0.104

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
@@ -42,6 +42,8 @@ __export(lib_exports, {
42
42
  componentProps: () => componentProps,
43
43
  constrainedLayoutProps: () => constrainedLayoutProps,
44
44
  constraintProps: () => constraintProps,
45
+ crystalPins: () => crystalPins,
46
+ crystalProps: () => crystalProps,
45
47
  diodePins: () => diodePins,
46
48
  diodeProps: () => diodeProps,
47
49
  direction: () => direction,
@@ -85,6 +87,7 @@ __export(lib_exports, {
85
87
  rectSolderPasteProps: () => rectSolderPasteProps,
86
88
  resistorPins: () => resistorPins,
87
89
  resistorProps: () => resistorProps,
90
+ rotatedRectSmtPadProps: () => rotatedRectSmtPadProps,
88
91
  rotationPoint3: () => rotationPoint3,
89
92
  routeHintPointProps: () => routeHintPointProps,
90
93
  schematicBoxProps: () => schematicBoxProps,
@@ -110,7 +113,7 @@ __export(lib_exports, {
110
113
  viaProps: () => viaProps
111
114
  });
112
115
  module.exports = __toCommonJS(lib_exports);
113
- var import_circuit_json18 = require("circuit-json");
116
+ var import_circuit_json19 = require("circuit-json");
114
117
  var import_zod30 = require("zod");
115
118
 
116
119
  // lib/typecheck.ts
@@ -425,11 +428,20 @@ var potentiometerProps = commonComponentProps.extend({
425
428
  var potentiometerPins = lrPins;
426
429
  expectTypesMatch(true);
427
430
 
428
- // lib/components/capacitor.ts
431
+ // lib/components/crystal.ts
429
432
  var import_circuit_json12 = require("circuit-json");
433
+ var crystalProps = commonComponentProps.extend({
434
+ frequency: import_circuit_json12.frequency,
435
+ loadCapacitance: import_circuit_json12.capacitance
436
+ });
437
+ var crystalPins = lrPins;
438
+ expectTypesMatch(true);
439
+
440
+ // lib/components/capacitor.ts
441
+ var import_circuit_json13 = require("circuit-json");
430
442
  var import_zod16 = require("zod");
431
443
  var capacitorProps = commonComponentProps.extend({
432
- capacitance: import_circuit_json12.capacitance,
444
+ capacitance: import_circuit_json13.capacitance,
433
445
  polarized: import_zod16.z.boolean().optional().default(false),
434
446
  decouplingFor: import_zod16.z.string().optional(),
435
447
  decouplingTo: import_zod16.z.string().optional(),
@@ -457,13 +469,13 @@ expectTypesMatch(true);
457
469
 
458
470
  // lib/common/distance.ts
459
471
  var import_zod19 = require("zod");
460
- var import_circuit_json13 = require("circuit-json");
472
+ var import_circuit_json14 = require("circuit-json");
461
473
 
462
474
  // lib/components/constraint.ts
463
475
  var import_zod20 = require("zod");
464
476
  var pcbXDistConstraintProps = import_zod20.z.object({
465
477
  pcb: import_zod20.z.literal(true).optional(),
466
- xDist: import_circuit_json13.distance,
478
+ xDist: import_circuit_json14.distance,
467
479
  left: import_zod20.z.string(),
468
480
  right: import_zod20.z.string(),
469
481
  edgeToEdge: import_zod20.z.literal(true).optional(),
@@ -474,7 +486,7 @@ expectTypesMatch(
474
486
  );
475
487
  var pcbYDistConstraintProps = import_zod20.z.object({
476
488
  pcb: import_zod20.z.literal(true).optional(),
477
- yDist: import_circuit_json13.distance,
489
+ yDist: import_circuit_json14.distance,
478
490
  top: import_zod20.z.string(),
479
491
  bottom: import_zod20.z.string(),
480
492
  edgeToEdge: import_zod20.z.literal(true).optional(),
@@ -511,31 +523,43 @@ expectTypesMatch(true);
511
523
  var import_zod21 = require("zod");
512
524
  var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
513
525
  shape: import_zod21.z.literal("rect"),
514
- width: import_circuit_json13.distance,
515
- height: import_circuit_json13.distance,
526
+ width: import_circuit_json14.distance,
527
+ height: import_circuit_json14.distance,
528
+ portHints: portHints.optional()
529
+ });
530
+ expectTypesMatch(true);
531
+ var rotatedRectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
532
+ shape: import_zod21.z.literal("rotated_rect"),
533
+ width: import_circuit_json14.distance,
534
+ height: import_circuit_json14.distance,
535
+ ccwRotation: import_zod21.z.number(),
516
536
  portHints: portHints.optional()
517
537
  });
518
538
  expectTypesMatch(true);
519
539
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
520
540
  shape: import_zod21.z.literal("circle"),
521
- radius: import_circuit_json13.distance,
541
+ radius: import_circuit_json14.distance,
522
542
  portHints: portHints.optional()
523
543
  });
524
544
  expectTypesMatch(true);
525
- var smtPadProps = import_zod21.z.union([circleSmtPadProps, rectSmtPadProps]);
545
+ var smtPadProps = import_zod21.z.union([
546
+ circleSmtPadProps,
547
+ rectSmtPadProps,
548
+ rotatedRectSmtPadProps
549
+ ]);
526
550
  expectTypesMatch(true);
527
551
 
528
552
  // lib/components/solderpaste.ts
529
553
  var import_zod22 = require("zod");
530
554
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
531
555
  shape: import_zod22.z.literal("rect"),
532
- width: import_circuit_json13.distance,
533
- height: import_circuit_json13.distance
556
+ width: import_circuit_json14.distance,
557
+ height: import_circuit_json14.distance
534
558
  });
535
559
  expectTypesMatch(true);
536
560
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
537
561
  shape: import_zod22.z.literal("circle"),
538
- radius: import_circuit_json13.distance
562
+ radius: import_circuit_json14.distance
539
563
  });
540
564
  expectTypesMatch(true);
541
565
  var solderPasteProps = import_zod22.z.union([
@@ -548,8 +572,8 @@ expectTypesMatch(true);
548
572
  var import_zod23 = require("zod");
549
573
  var holeProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
550
574
  name: import_zod23.z.string().optional(),
551
- diameter: import_circuit_json13.distance.optional(),
552
- radius: import_circuit_json13.distance.optional()
575
+ diameter: import_circuit_json14.distance.optional(),
576
+ radius: import_circuit_json14.distance.optional()
553
577
  }).transform((d) => ({
554
578
  ...d,
555
579
  diameter: d.diameter ?? 2 * d.radius,
@@ -558,7 +582,7 @@ var holeProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
558
582
  expectTypesMatch(true);
559
583
 
560
584
  // lib/components/trace.ts
561
- var import_circuit_json14 = require("circuit-json");
585
+ var import_circuit_json15 = require("circuit-json");
562
586
  var import_zod24 = require("zod");
563
587
  var portRef = import_zod24.z.union([
564
588
  import_zod24.z.string(),
@@ -568,9 +592,9 @@ var portRef = import_zod24.z.union([
568
592
  ]);
569
593
  var baseTraceProps = import_zod24.z.object({
570
594
  key: import_zod24.z.string().optional(),
571
- thickness: import_circuit_json14.distance.optional(),
595
+ thickness: import_circuit_json15.distance.optional(),
572
596
  schematicRouteHints: import_zod24.z.array(point).optional(),
573
- pcbRouteHints: import_zod24.z.array(import_circuit_json14.route_hint_point).optional()
597
+ pcbRouteHints: import_zod24.z.array(import_circuit_json15.route_hint_point).optional()
574
598
  });
575
599
  var traceProps = import_zod24.z.union([
576
600
  baseTraceProps.extend({
@@ -583,10 +607,10 @@ var traceProps = import_zod24.z.union([
583
607
  ]);
584
608
 
585
609
  // lib/components/footprint.ts
586
- var import_circuit_json15 = require("circuit-json");
610
+ var import_circuit_json16 = require("circuit-json");
587
611
  var import_zod25 = require("zod");
588
612
  var footprintProps = import_zod25.z.object({
589
- originalLayer: import_circuit_json15.layer_ref.default("top").optional()
613
+ originalLayer: import_circuit_json16.layer_ref.default("top").optional()
590
614
  });
591
615
  expectTypesMatch(true);
592
616
 
@@ -610,16 +634,16 @@ var batteryPins = lrPolarPins;
610
634
  expectTypesMatch(true);
611
635
 
612
636
  // lib/components/pin-header.ts
613
- var import_circuit_json16 = require("circuit-json");
637
+ var import_circuit_json17 = require("circuit-json");
614
638
  var import_zod27 = require("zod");
615
639
  var pinHeaderProps = commonComponentProps.extend({
616
640
  pinCount: import_zod27.z.number(),
617
- pitch: import_circuit_json16.distance.optional(),
641
+ pitch: import_circuit_json17.distance.optional(),
618
642
  gender: import_zod27.z.enum(["male", "female"]).optional(),
619
643
  showSilkscreenPinLabels: import_zod27.z.boolean().optional(),
620
644
  doubleRow: import_zod27.z.boolean().optional(),
621
- holeDiameter: import_circuit_json16.distance.optional(),
622
- platedDiameter: import_circuit_json16.distance.optional(),
645
+ holeDiameter: import_circuit_json17.distance.optional(),
646
+ platedDiameter: import_circuit_json17.distance.optional(),
623
647
  pinLabels: import_zod27.z.array(import_zod27.z.string()).optional(),
624
648
  facingDirection: import_zod27.z.enum(["left", "right"]).optional()
625
649
  });
@@ -627,12 +651,12 @@ expectTypesMatch(true);
627
651
 
628
652
  // lib/components/netalias.ts
629
653
  var import_zod28 = require("zod");
630
- var import_circuit_json17 = require("circuit-json");
654
+ var import_circuit_json18 = require("circuit-json");
631
655
  var netAliasProps = import_zod28.z.object({
632
656
  net: import_zod28.z.string().optional(),
633
- schX: import_circuit_json13.distance.optional(),
634
- schY: import_circuit_json13.distance.optional(),
635
- schRotation: import_circuit_json17.rotation.optional(),
657
+ schX: import_circuit_json14.distance.optional(),
658
+ schY: import_circuit_json14.distance.optional(),
659
+ schRotation: import_circuit_json18.rotation.optional(),
636
660
  anchorSide: import_zod28.z.enum(["left", "up", "right", "down"]).optional()
637
661
  });
638
662
  expectTypesMatch(true);
@@ -647,7 +671,7 @@ expectTypesMatch(true);
647
671
 
648
672
  // lib/index.ts
649
673
  var inductorProps = commonComponentProps.extend({
650
- inductance: import_circuit_json18.inductance
674
+ inductance: import_circuit_json19.inductance
651
675
  });
652
676
  var inductorPins = lrPins;
653
677
  var diodeProps = commonComponentProps.extend({});
@@ -661,49 +685,49 @@ var switchProps = commonComponentProps.extend({
661
685
  switchType: import_zod30.z.enum(["spst"]).default("spst"),
662
686
  isNormallyClosed: import_zod30.z.boolean().default(false)
663
687
  });
664
- var distanceOrMultiplier2 = import_circuit_json18.distance.or(import_zod30.z.enum(["2x", "3x", "4x"]));
688
+ var distanceOrMultiplier2 = import_circuit_json19.distance.or(import_zod30.z.enum(["2x", "3x", "4x"]));
665
689
  var viaProps = commonLayoutProps.extend({
666
- fromLayer: import_circuit_json18.layer_ref,
667
- toLayer: import_circuit_json18.layer_ref,
668
- holeDiameter: import_circuit_json18.distance,
669
- outerDiameter: import_circuit_json18.distance
690
+ fromLayer: import_circuit_json19.layer_ref,
691
+ toLayer: import_circuit_json19.layer_ref,
692
+ holeDiameter: import_circuit_json19.distance,
693
+ outerDiameter: import_circuit_json19.distance
670
694
  });
671
695
  var pcbKeepoutProps = import_zod30.z.union([
672
696
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
673
697
  shape: import_zod30.z.literal("circle"),
674
- radius: import_circuit_json18.distance
698
+ radius: import_circuit_json19.distance
675
699
  }),
676
700
  pcbLayoutProps.extend({
677
701
  shape: import_zod30.z.literal("rect"),
678
- width: import_circuit_json18.distance,
679
- height: import_circuit_json18.distance
702
+ width: import_circuit_json19.distance,
703
+ height: import_circuit_json19.distance
680
704
  })
681
705
  ]);
682
706
  var schematicBoxProps = import_zod30.z.object({
683
- schX: import_circuit_json18.distance,
684
- schY: import_circuit_json18.distance,
685
- width: import_circuit_json18.distance,
686
- height: import_circuit_json18.distance
707
+ schX: import_circuit_json19.distance,
708
+ schY: import_circuit_json19.distance,
709
+ width: import_circuit_json19.distance,
710
+ height: import_circuit_json19.distance
687
711
  });
688
712
  var schematicTextProps = import_zod30.z.object({
689
- schX: import_circuit_json18.distance,
690
- schY: import_circuit_json18.distance,
713
+ schX: import_circuit_json19.distance,
714
+ schY: import_circuit_json19.distance,
691
715
  text: import_zod30.z.string()
692
716
  });
693
717
  var schematicLineProps = import_zod30.z.object({
694
- x1: import_circuit_json18.distance,
695
- y1: import_circuit_json18.distance,
696
- x2: import_circuit_json18.distance,
697
- y2: import_circuit_json18.distance
718
+ x1: import_circuit_json19.distance,
719
+ y1: import_circuit_json19.distance,
720
+ x2: import_circuit_json19.distance,
721
+ y2: import_circuit_json19.distance
698
722
  });
699
723
  var schematicPathProps = import_zod30.z.object({
700
- points: import_zod30.z.array(import_circuit_json18.point),
724
+ points: import_zod30.z.array(import_circuit_json19.point),
701
725
  isFilled: import_zod30.z.boolean().optional().default(false),
702
726
  fillColor: import_zod30.z.enum(["red", "blue"]).optional()
703
727
  });
704
728
  var componentProps = commonComponentProps;
705
729
  var powerSourceProps = commonComponentProps.extend({
706
- voltage: import_circuit_json18.voltage
730
+ voltage: import_circuit_json19.voltage
707
731
  });
708
732
  var portProps = commonLayoutProps.extend({
709
733
  name: import_zod30.z.string(),
@@ -715,62 +739,62 @@ var silkscreenTextProps = pcbLayoutProps.extend({
715
739
  text: import_zod30.z.string(),
716
740
  anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
717
741
  font: import_zod30.z.enum(["tscircuit2024"]).optional(),
718
- fontSize: import_circuit_json18.length.optional()
742
+ fontSize: import_circuit_json19.length.optional()
719
743
  });
720
744
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
721
- route: import_zod30.z.array(import_circuit_json18.route_hint_point),
722
- strokeWidth: import_circuit_json18.length.optional()
745
+ route: import_zod30.z.array(import_circuit_json19.route_hint_point),
746
+ strokeWidth: import_circuit_json19.length.optional()
723
747
  });
724
748
  var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
725
- strokeWidth: import_circuit_json18.distance,
726
- x1: import_circuit_json18.distance,
727
- y1: import_circuit_json18.distance,
728
- x2: import_circuit_json18.distance,
729
- y2: import_circuit_json18.distance
749
+ strokeWidth: import_circuit_json19.distance,
750
+ x1: import_circuit_json19.distance,
751
+ y1: import_circuit_json19.distance,
752
+ x2: import_circuit_json19.distance,
753
+ y2: import_circuit_json19.distance
730
754
  });
731
755
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
732
756
  isFilled: import_zod30.z.boolean().optional(),
733
757
  isOutline: import_zod30.z.boolean().optional(),
734
- strokeWidth: import_circuit_json18.distance.optional(),
735
- width: import_circuit_json18.distance,
736
- height: import_circuit_json18.distance
758
+ strokeWidth: import_circuit_json19.distance.optional(),
759
+ width: import_circuit_json19.distance,
760
+ height: import_circuit_json19.distance
737
761
  });
738
762
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
739
763
  isFilled: import_zod30.z.boolean().optional(),
740
764
  isOutline: import_zod30.z.boolean().optional(),
741
- strokeWidth: import_circuit_json18.distance.optional(),
742
- radius: import_circuit_json18.distance
765
+ strokeWidth: import_circuit_json19.distance.optional(),
766
+ radius: import_circuit_json19.distance
743
767
  });
744
768
  var routeHintPointProps = import_zod30.z.object({
745
- x: import_circuit_json18.distance,
746
- y: import_circuit_json18.distance,
769
+ x: import_circuit_json19.distance,
770
+ y: import_circuit_json19.distance,
747
771
  via: import_zod30.z.boolean().optional(),
748
- toLayer: import_circuit_json18.layer_ref.optional()
772
+ toLayer: import_circuit_json19.layer_ref.optional()
749
773
  });
750
774
  var traceHintProps = import_zod30.z.object({
751
775
  for: import_zod30.z.string().optional().describe(
752
776
  "Selector for the port you're targeting, not required if you're inside a trace"
753
777
  ),
754
778
  order: import_zod30.z.number().optional(),
755
- offset: import_circuit_json18.route_hint_point.or(routeHintPointProps).optional(),
756
- offsets: import_zod30.z.array(import_circuit_json18.route_hint_point).or(import_zod30.z.array(routeHintPointProps)).optional(),
779
+ offset: import_circuit_json19.route_hint_point.or(routeHintPointProps).optional(),
780
+ offsets: import_zod30.z.array(import_circuit_json19.route_hint_point).or(import_zod30.z.array(routeHintPointProps)).optional(),
757
781
  traceWidth: import_zod30.z.number().optional()
758
782
  });
759
783
  var pcbTraceProps = import_zod30.z.object({
760
784
  layer: import_zod30.z.string().optional(),
761
- thickness: import_circuit_json18.distance.optional(),
762
- route: import_zod30.z.array(import_circuit_json18.route_hint_point)
785
+ thickness: import_circuit_json19.distance.optional(),
786
+ route: import_zod30.z.array(import_circuit_json19.route_hint_point)
763
787
  });
764
788
  var fabricationNoteTextProps = pcbLayoutProps.extend({
765
789
  text: import_zod30.z.string(),
766
790
  anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
767
791
  font: import_zod30.z.enum(["tscircuit2024"]).optional(),
768
- fontSize: import_circuit_json18.length.optional(),
792
+ fontSize: import_circuit_json19.length.optional(),
769
793
  color: import_zod30.z.string().optional()
770
794
  });
771
795
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
772
- route: import_zod30.z.array(import_circuit_json18.route_hint_point),
773
- strokeWidth: import_circuit_json18.length.optional(),
796
+ route: import_zod30.z.array(import_circuit_json19.route_hint_point),
797
+ strokeWidth: import_circuit_json19.length.optional(),
774
798
  color: import_zod30.z.string().optional()
775
799
  });
776
800
  // Annotate the CommonJS export names for ESM import in node:
@@ -797,6 +821,8 @@ var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcb
797
821
  componentProps,
798
822
  constrainedLayoutProps,
799
823
  constraintProps,
824
+ crystalPins,
825
+ crystalProps,
800
826
  diodePins,
801
827
  diodeProps,
802
828
  direction,
@@ -840,6 +866,7 @@ var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcb
840
866
  rectSolderPasteProps,
841
867
  resistorPins,
842
868
  resistorProps,
869
+ rotatedRectSmtPadProps,
843
870
  rotationPoint3,
844
871
  routeHintPointProps,
845
872
  schematicBoxProps,