@tscircuit/props 0.0.94 → 0.0.96

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
@@ -69,11 +69,14 @@ __export(lib_exports, {
69
69
  pcbXDistConstraintProps: () => pcbXDistConstraintProps,
70
70
  pcbYDistConstraintProps: () => pcbYDistConstraintProps,
71
71
  pinHeaderProps: () => pinHeaderProps,
72
+ pinLabelsProp: () => pinLabelsProp,
72
73
  platedHoleProps: () => platedHoleProps,
73
74
  point3: () => point3,
74
75
  portHints: () => portHints,
75
76
  portProps: () => portProps,
76
77
  portRef: () => portRef,
78
+ potentiometerPins: () => potentiometerPins,
79
+ potentiometerProps: () => potentiometerProps,
77
80
  powerSourceProps: () => powerSourceProps,
78
81
  pushButtonProps: () => pushButtonProps,
79
82
  rectSmtPadProps: () => rectSmtPadProps,
@@ -103,7 +106,7 @@ __export(lib_exports, {
103
106
  viaProps: () => viaProps
104
107
  });
105
108
  module.exports = __toCommonJS(lib_exports);
106
- var import_circuit_json17 = require("circuit-json");
109
+ var import_circuit_json18 = require("circuit-json");
107
110
  var import_zod30 = require("zod");
108
111
 
109
112
  // lib/typecheck.ts
@@ -112,6 +115,7 @@ var expectTypesMatch = (shouldBe) => {
112
115
  expectTypesMatch("extra props b");
113
116
  expectTypesMatch("missing props b");
114
117
  expectTypesMatch(true);
118
+ expectTypesMatch("property a has mismatched types");
115
119
 
116
120
  // lib/common/direction.ts
117
121
  var import_zod = require("zod");
@@ -227,7 +231,7 @@ var distanceOrMultiplier = import_circuit_json2.distance.or(import_zod6.z.enum([
227
231
  // lib/common/schematicPinDefinitions.ts
228
232
  var import_zod7 = require("zod");
229
233
  var explicitPinSideDefinition = import_zod7.z.object({
230
- pins: import_zod7.z.array(import_zod7.z.number()).or(import_zod7.z.array(import_zod7.z.string())),
234
+ pins: import_zod7.z.array(import_zod7.z.union([import_zod7.z.number(), import_zod7.z.string()])),
231
235
  direction: import_zod7.z.union([
232
236
  import_zod7.z.literal("top-to-bottom"),
233
237
  import_zod7.z.literal("left-to-right"),
@@ -311,6 +315,11 @@ expectTypesMatch(true);
311
315
  // lib/components/chip.ts
312
316
  var import_circuit_json7 = require("circuit-json");
313
317
  var import_zod12 = require("zod");
318
+ var pinLabelsProp = import_zod12.z.record(
319
+ import_zod12.z.number().or(import_zod12.z.string()),
320
+ import_zod12.z.string().or(import_zod12.z.array(import_zod12.z.string()).readonly()).or(import_zod12.z.array(import_zod12.z.string()))
321
+ );
322
+ expectTypesMatch(true);
314
323
  var chipProps = commonComponentProps.extend({
315
324
  manufacturerPartNumber: import_zod12.z.string().optional(),
316
325
  pinLabels: import_zod12.z.record(
@@ -331,7 +340,7 @@ var import_circuit_json8 = require("circuit-json");
331
340
  var import_zod13 = require("zod");
332
341
  var jumperProps = commonComponentProps.extend({
333
342
  manufacturerPartNumber: import_zod13.z.string().optional(),
334
- pinLabels: import_zod13.z.record(import_zod13.z.number().or(import_zod13.z.string()), import_zod13.z.string()).optional(),
343
+ pinLabels: import_zod13.z.record(import_zod13.z.number().or(import_zod13.z.string()), import_zod13.z.string().or(import_zod13.z.array(import_zod13.z.string()))).optional(),
335
344
  schPinStyle: schematicPinStyle.optional(),
336
345
  schPinSpacing: import_circuit_json8.distance.optional(),
337
346
  schWidth: import_circuit_json8.distance.optional(),
@@ -386,11 +395,19 @@ var resistorProps = commonComponentProps.extend({
386
395
  var resistorPins = lrPins;
387
396
  expectTypesMatch(true);
388
397
 
389
- // lib/components/capacitor.ts
398
+ // lib/components/potentiometer.ts
390
399
  var import_circuit_json11 = require("circuit-json");
400
+ var potentiometerProps = commonComponentProps.extend({
401
+ maxResistance: import_circuit_json11.resistance
402
+ });
403
+ var potentiometerPins = lrPins;
404
+ expectTypesMatch(true);
405
+
406
+ // lib/components/capacitor.ts
407
+ var import_circuit_json12 = require("circuit-json");
391
408
  var import_zod16 = require("zod");
392
409
  var capacitorProps = commonComponentProps.extend({
393
- capacitance: import_circuit_json11.capacitance,
410
+ capacitance: import_circuit_json12.capacitance,
394
411
  polarized: import_zod16.z.boolean().optional().default(false),
395
412
  decouplingFor: import_zod16.z.string().optional(),
396
413
  decouplingTo: import_zod16.z.string().optional(),
@@ -418,13 +435,13 @@ expectTypesMatch(true);
418
435
 
419
436
  // lib/common/distance.ts
420
437
  var import_zod19 = require("zod");
421
- var import_circuit_json12 = require("circuit-json");
438
+ var import_circuit_json13 = require("circuit-json");
422
439
 
423
440
  // lib/components/constraint.ts
424
441
  var import_zod20 = require("zod");
425
442
  var pcbXDistConstraintProps = import_zod20.z.object({
426
443
  pcb: import_zod20.z.literal(true).optional(),
427
- xDist: import_circuit_json12.distance,
444
+ xDist: import_circuit_json13.distance,
428
445
  left: import_zod20.z.string(),
429
446
  right: import_zod20.z.string(),
430
447
  edgeToEdge: import_zod20.z.literal(true).optional(),
@@ -435,7 +452,7 @@ expectTypesMatch(
435
452
  );
436
453
  var pcbYDistConstraintProps = import_zod20.z.object({
437
454
  pcb: import_zod20.z.literal(true).optional(),
438
- yDist: import_circuit_json12.distance,
455
+ yDist: import_circuit_json13.distance,
439
456
  top: import_zod20.z.string(),
440
457
  bottom: import_zod20.z.string(),
441
458
  edgeToEdge: import_zod20.z.literal(true).optional(),
@@ -472,14 +489,14 @@ expectTypesMatch(true);
472
489
  var import_zod21 = require("zod");
473
490
  var rectSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
474
491
  shape: import_zod21.z.literal("rect"),
475
- width: import_circuit_json12.distance,
476
- height: import_circuit_json12.distance,
492
+ width: import_circuit_json13.distance,
493
+ height: import_circuit_json13.distance,
477
494
  portHints: portHints.optional()
478
495
  });
479
496
  expectTypesMatch(true);
480
497
  var circleSmtPadProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
481
498
  shape: import_zod21.z.literal("circle"),
482
- radius: import_circuit_json12.distance,
499
+ radius: import_circuit_json13.distance,
483
500
  portHints: portHints.optional()
484
501
  });
485
502
  expectTypesMatch(true);
@@ -490,13 +507,13 @@ expectTypesMatch(true);
490
507
  var import_zod22 = require("zod");
491
508
  var rectSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
492
509
  shape: import_zod22.z.literal("rect"),
493
- width: import_circuit_json12.distance,
494
- height: import_circuit_json12.distance
510
+ width: import_circuit_json13.distance,
511
+ height: import_circuit_json13.distance
495
512
  });
496
513
  expectTypesMatch(true);
497
514
  var circleSolderPasteProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
498
515
  shape: import_zod22.z.literal("circle"),
499
- radius: import_circuit_json12.distance
516
+ radius: import_circuit_json13.distance
500
517
  });
501
518
  expectTypesMatch(true);
502
519
  var solderPasteProps = import_zod22.z.union([
@@ -509,8 +526,8 @@ expectTypesMatch(true);
509
526
  var import_zod23 = require("zod");
510
527
  var holeProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
511
528
  name: import_zod23.z.string().optional(),
512
- diameter: import_circuit_json12.distance.optional(),
513
- radius: import_circuit_json12.distance.optional()
529
+ diameter: import_circuit_json13.distance.optional(),
530
+ radius: import_circuit_json13.distance.optional()
514
531
  }).transform((d) => ({
515
532
  ...d,
516
533
  diameter: d.diameter ?? 2 * d.radius,
@@ -519,7 +536,7 @@ var holeProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
519
536
  expectTypesMatch(true);
520
537
 
521
538
  // lib/components/trace.ts
522
- var import_circuit_json13 = require("circuit-json");
539
+ var import_circuit_json14 = require("circuit-json");
523
540
  var import_zod24 = require("zod");
524
541
  var portRef = import_zod24.z.union([
525
542
  import_zod24.z.string(),
@@ -529,9 +546,9 @@ var portRef = import_zod24.z.union([
529
546
  ]);
530
547
  var baseTraceProps = import_zod24.z.object({
531
548
  key: import_zod24.z.string().optional(),
532
- thickness: import_circuit_json13.distance.optional(),
549
+ thickness: import_circuit_json14.distance.optional(),
533
550
  schematicRouteHints: import_zod24.z.array(point).optional(),
534
- pcbRouteHints: import_zod24.z.array(import_circuit_json13.route_hint_point).optional()
551
+ pcbRouteHints: import_zod24.z.array(import_circuit_json14.route_hint_point).optional()
535
552
  });
536
553
  var traceProps = import_zod24.z.union([
537
554
  baseTraceProps.extend({
@@ -544,10 +561,10 @@ var traceProps = import_zod24.z.union([
544
561
  ]);
545
562
 
546
563
  // lib/components/footprint.ts
547
- var import_circuit_json14 = require("circuit-json");
564
+ var import_circuit_json15 = require("circuit-json");
548
565
  var import_zod25 = require("zod");
549
566
  var footprintProps = import_zod25.z.object({
550
- originalLayer: import_circuit_json14.layer_ref.default("top").optional()
567
+ originalLayer: import_circuit_json15.layer_ref.default("top").optional()
551
568
  });
552
569
  expectTypesMatch(true);
553
570
 
@@ -571,16 +588,16 @@ var batteryPins = lrPolarPins;
571
588
  expectTypesMatch(true);
572
589
 
573
590
  // lib/components/pin-header.ts
574
- var import_circuit_json15 = require("circuit-json");
591
+ var import_circuit_json16 = require("circuit-json");
575
592
  var import_zod27 = require("zod");
576
593
  var pinHeaderProps = commonComponentProps.extend({
577
594
  pinCount: import_zod27.z.number(),
578
- pitch: import_circuit_json15.distance.optional(),
595
+ pitch: import_circuit_json16.distance.optional(),
579
596
  gender: import_zod27.z.enum(["male", "female"]).optional(),
580
597
  showSilkscreenPinLabels: import_zod27.z.boolean().optional(),
581
598
  doubleRow: import_zod27.z.boolean().optional(),
582
- holeDiameter: import_circuit_json15.distance.optional(),
583
- platedDiameter: import_circuit_json15.distance.optional(),
599
+ holeDiameter: import_circuit_json16.distance.optional(),
600
+ platedDiameter: import_circuit_json16.distance.optional(),
584
601
  pinLabels: import_zod27.z.array(import_zod27.z.string()).optional(),
585
602
  facingDirection: import_zod27.z.enum(["left", "right"]).optional()
586
603
  });
@@ -588,12 +605,12 @@ expectTypesMatch(true);
588
605
 
589
606
  // lib/components/netalias.ts
590
607
  var import_zod28 = require("zod");
591
- var import_circuit_json16 = require("circuit-json");
608
+ var import_circuit_json17 = require("circuit-json");
592
609
  var netAliasProps = import_zod28.z.object({
593
610
  net: import_zod28.z.string().optional(),
594
- schX: import_circuit_json12.distance.optional(),
595
- schY: import_circuit_json12.distance.optional(),
596
- schRotation: import_circuit_json16.rotation.optional(),
611
+ schX: import_circuit_json13.distance.optional(),
612
+ schY: import_circuit_json13.distance.optional(),
613
+ schRotation: import_circuit_json17.rotation.optional(),
597
614
  anchorSide: import_zod28.z.enum(["left", "up", "right", "down"]).optional()
598
615
  });
599
616
  expectTypesMatch(true);
@@ -604,7 +621,7 @@ var pushButtonProps = commonComponentProps.extend({});
604
621
 
605
622
  // lib/index.ts
606
623
  var inductorProps = commonComponentProps.extend({
607
- inductance: import_circuit_json17.inductance
624
+ inductance: import_circuit_json18.inductance
608
625
  });
609
626
  var inductorPins = lrPins;
610
627
  var diodeProps = commonComponentProps.extend({});
@@ -618,49 +635,49 @@ var switchProps = commonComponentProps.extend({
618
635
  switchType: import_zod30.z.enum(["spst"]).default("spst"),
619
636
  isNormallyClosed: import_zod30.z.boolean().default(false)
620
637
  });
621
- var distanceOrMultiplier2 = import_circuit_json17.distance.or(import_zod30.z.enum(["2x", "3x", "4x"]));
638
+ var distanceOrMultiplier2 = import_circuit_json18.distance.or(import_zod30.z.enum(["2x", "3x", "4x"]));
622
639
  var viaProps = commonLayoutProps.extend({
623
- fromLayer: import_circuit_json17.layer_ref,
624
- toLayer: import_circuit_json17.layer_ref,
625
- holeDiameter: import_circuit_json17.distance,
626
- outerDiameter: import_circuit_json17.distance
640
+ fromLayer: import_circuit_json18.layer_ref,
641
+ toLayer: import_circuit_json18.layer_ref,
642
+ holeDiameter: import_circuit_json18.distance,
643
+ outerDiameter: import_circuit_json18.distance
627
644
  });
628
645
  var pcbKeepoutProps = import_zod30.z.union([
629
646
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
630
647
  shape: import_zod30.z.literal("circle"),
631
- radius: import_circuit_json17.distance
648
+ radius: import_circuit_json18.distance
632
649
  }),
633
650
  pcbLayoutProps.extend({
634
651
  shape: import_zod30.z.literal("rect"),
635
- width: import_circuit_json17.distance,
636
- height: import_circuit_json17.distance
652
+ width: import_circuit_json18.distance,
653
+ height: import_circuit_json18.distance
637
654
  })
638
655
  ]);
639
656
  var schematicBoxProps = import_zod30.z.object({
640
- schX: import_circuit_json17.distance,
641
- schY: import_circuit_json17.distance,
642
- width: import_circuit_json17.distance,
643
- height: import_circuit_json17.distance
657
+ schX: import_circuit_json18.distance,
658
+ schY: import_circuit_json18.distance,
659
+ width: import_circuit_json18.distance,
660
+ height: import_circuit_json18.distance
644
661
  });
645
662
  var schematicTextProps = import_zod30.z.object({
646
- schX: import_circuit_json17.distance,
647
- schY: import_circuit_json17.distance,
663
+ schX: import_circuit_json18.distance,
664
+ schY: import_circuit_json18.distance,
648
665
  text: import_zod30.z.string()
649
666
  });
650
667
  var schematicLineProps = import_zod30.z.object({
651
- x1: import_circuit_json17.distance,
652
- y1: import_circuit_json17.distance,
653
- x2: import_circuit_json17.distance,
654
- y2: import_circuit_json17.distance
668
+ x1: import_circuit_json18.distance,
669
+ y1: import_circuit_json18.distance,
670
+ x2: import_circuit_json18.distance,
671
+ y2: import_circuit_json18.distance
655
672
  });
656
673
  var schematicPathProps = import_zod30.z.object({
657
- points: import_zod30.z.array(import_circuit_json17.point),
674
+ points: import_zod30.z.array(import_circuit_json18.point),
658
675
  isFilled: import_zod30.z.boolean().optional().default(false),
659
676
  fillColor: import_zod30.z.enum(["red", "blue"]).optional()
660
677
  });
661
678
  var componentProps = commonComponentProps;
662
679
  var powerSourceProps = commonComponentProps.extend({
663
- voltage: import_circuit_json17.voltage
680
+ voltage: import_circuit_json18.voltage
664
681
  });
665
682
  var portProps = commonLayoutProps.extend({
666
683
  name: import_zod30.z.string(),
@@ -672,62 +689,62 @@ var silkscreenTextProps = pcbLayoutProps.extend({
672
689
  text: import_zod30.z.string(),
673
690
  anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
674
691
  font: import_zod30.z.enum(["tscircuit2024"]).optional(),
675
- fontSize: import_circuit_json17.length.optional()
692
+ fontSize: import_circuit_json18.length.optional()
676
693
  });
677
694
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
678
- route: import_zod30.z.array(import_circuit_json17.route_hint_point),
679
- strokeWidth: import_circuit_json17.length.optional()
695
+ route: import_zod30.z.array(import_circuit_json18.route_hint_point),
696
+ strokeWidth: import_circuit_json18.length.optional()
680
697
  });
681
698
  var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
682
- strokeWidth: import_circuit_json17.distance,
683
- x1: import_circuit_json17.distance,
684
- y1: import_circuit_json17.distance,
685
- x2: import_circuit_json17.distance,
686
- y2: import_circuit_json17.distance
699
+ strokeWidth: import_circuit_json18.distance,
700
+ x1: import_circuit_json18.distance,
701
+ y1: import_circuit_json18.distance,
702
+ x2: import_circuit_json18.distance,
703
+ y2: import_circuit_json18.distance
687
704
  });
688
705
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
689
706
  isFilled: import_zod30.z.boolean().optional(),
690
707
  isOutline: import_zod30.z.boolean().optional(),
691
- strokeWidth: import_circuit_json17.distance.optional(),
692
- width: import_circuit_json17.distance,
693
- height: import_circuit_json17.distance
708
+ strokeWidth: import_circuit_json18.distance.optional(),
709
+ width: import_circuit_json18.distance,
710
+ height: import_circuit_json18.distance
694
711
  });
695
712
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
696
713
  isFilled: import_zod30.z.boolean().optional(),
697
714
  isOutline: import_zod30.z.boolean().optional(),
698
- strokeWidth: import_circuit_json17.distance.optional(),
699
- radius: import_circuit_json17.distance
715
+ strokeWidth: import_circuit_json18.distance.optional(),
716
+ radius: import_circuit_json18.distance
700
717
  });
701
718
  var routeHintPointProps = import_zod30.z.object({
702
- x: import_circuit_json17.distance,
703
- y: import_circuit_json17.distance,
719
+ x: import_circuit_json18.distance,
720
+ y: import_circuit_json18.distance,
704
721
  via: import_zod30.z.boolean().optional(),
705
- toLayer: import_circuit_json17.layer_ref.optional()
722
+ toLayer: import_circuit_json18.layer_ref.optional()
706
723
  });
707
724
  var traceHintProps = import_zod30.z.object({
708
725
  for: import_zod30.z.string().optional().describe(
709
726
  "Selector for the port you're targeting, not required if you're inside a trace"
710
727
  ),
711
728
  order: import_zod30.z.number().optional(),
712
- offset: import_circuit_json17.route_hint_point.or(routeHintPointProps).optional(),
713
- offsets: import_zod30.z.array(import_circuit_json17.route_hint_point).or(import_zod30.z.array(routeHintPointProps)).optional(),
729
+ offset: import_circuit_json18.route_hint_point.or(routeHintPointProps).optional(),
730
+ offsets: import_zod30.z.array(import_circuit_json18.route_hint_point).or(import_zod30.z.array(routeHintPointProps)).optional(),
714
731
  traceWidth: import_zod30.z.number().optional()
715
732
  });
716
733
  var pcbTraceProps = import_zod30.z.object({
717
734
  layer: import_zod30.z.string().optional(),
718
- thickness: import_circuit_json17.distance.optional(),
719
- route: import_zod30.z.array(import_circuit_json17.route_hint_point)
735
+ thickness: import_circuit_json18.distance.optional(),
736
+ route: import_zod30.z.array(import_circuit_json18.route_hint_point)
720
737
  });
721
738
  var fabricationNoteTextProps = pcbLayoutProps.extend({
722
739
  text: import_zod30.z.string(),
723
740
  anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
724
741
  font: import_zod30.z.enum(["tscircuit2024"]).optional(),
725
- fontSize: import_circuit_json17.length.optional(),
742
+ fontSize: import_circuit_json18.length.optional(),
726
743
  color: import_zod30.z.string().optional()
727
744
  });
728
745
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
729
- route: import_zod30.z.array(import_circuit_json17.route_hint_point),
730
- strokeWidth: import_circuit_json17.length.optional(),
746
+ route: import_zod30.z.array(import_circuit_json18.route_hint_point),
747
+ strokeWidth: import_circuit_json18.length.optional(),
731
748
  color: import_zod30.z.string().optional()
732
749
  });
733
750
  // Annotate the CommonJS export names for ESM import in node:
@@ -781,11 +798,14 @@ var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcb
781
798
  pcbXDistConstraintProps,
782
799
  pcbYDistConstraintProps,
783
800
  pinHeaderProps,
801
+ pinLabelsProp,
784
802
  platedHoleProps,
785
803
  point3,
786
804
  portHints,
787
805
  portProps,
788
806
  portRef,
807
+ potentiometerPins,
808
+ potentiometerProps,
789
809
  powerSourceProps,
790
810
  pushButtonProps,
791
811
  rectSmtPadProps,