@tscircuit/props 0.0.87 → 0.0.89

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
@@ -75,6 +75,7 @@ __export(lib_exports, {
75
75
  portProps: () => portProps,
76
76
  portRef: () => portRef,
77
77
  powerSourceProps: () => powerSourceProps,
78
+ pushButtonProps: () => pushButtonProps,
78
79
  rectSmtPadProps: () => rectSmtPadProps,
79
80
  rectSolderPasteProps: () => rectSolderPasteProps,
80
81
  resistorPins: () => resistorPins,
@@ -103,11 +104,14 @@ __export(lib_exports, {
103
104
  });
104
105
  module.exports = __toCommonJS(lib_exports);
105
106
  var import_circuit_json16 = require("circuit-json");
106
- var import_zod29 = require("zod");
107
+ var import_zod30 = require("zod");
107
108
 
108
109
  // lib/typecheck.ts
109
110
  var expectTypesMatch = (shouldBe) => {
110
111
  };
112
+ expectTypesMatch("extra props b");
113
+ expectTypesMatch("missing props b");
114
+ expectTypesMatch(true);
111
115
 
112
116
  // lib/common/direction.ts
113
117
  var import_zod = require("zod");
@@ -261,7 +265,7 @@ var schematicPinStyle = import_zod8.z.record(
261
265
  expectTypesMatch(true);
262
266
 
263
267
  // lib/components/board.ts
264
- var import_circuit_json5 = require("circuit-json");
268
+ var import_circuit_json6 = require("circuit-json");
265
269
 
266
270
  // lib/common/point.ts
267
271
  var import_circuit_json4 = require("circuit-json");
@@ -272,131 +276,126 @@ var point = import_zod9.z.object({
272
276
  });
273
277
 
274
278
  // lib/components/board.ts
279
+ var import_zod11 = require("zod");
280
+
281
+ // lib/components/group.ts
282
+ var import_circuit_json5 = require("circuit-json");
275
283
  var import_zod10 = require("zod");
276
- var boardProps = import_zod10.z.object({
277
- width: import_circuit_json5.distance.optional(),
278
- height: import_circuit_json5.distance.optional(),
279
- outline: import_zod10.z.array(point).optional(),
280
- pcbX: import_circuit_json5.distance.optional().default(0),
281
- pcbY: import_circuit_json5.distance.optional().default(0),
284
+ var baseGroupProps = commonLayoutProps.extend({
285
+ name: import_zod10.z.string().optional(),
286
+ children: import_zod10.z.any().optional()
287
+ });
288
+ var subcircuitGroupProps = baseGroupProps.extend({
289
+ subcircuit: import_zod10.z.literal(true),
282
290
  layout: import_zod10.z.custom((v) => true).optional(),
283
291
  manualEdits: import_zod10.z.custom((v) => true).optional(),
292
+ schAutoLayoutEnabled: import_zod10.z.boolean().optional(),
284
293
  routingDisabled: import_zod10.z.boolean().optional(),
285
- children: import_zod10.z.any(),
286
- defaultTraceWidth: import_circuit_json5.distance.optional(),
287
- schAutoLayoutEnabled: import_zod10.z.boolean().optional()
294
+ defaultTraceWidth: import_circuit_json5.length.optional(),
295
+ partsEngine: import_zod10.z.custom((v) => "findPart" in v).optional()
296
+ });
297
+ var groupProps = import_zod10.z.union([baseGroupProps, subcircuitGroupProps]);
298
+ expectTypesMatch(true);
299
+ expectTypesMatch(true);
300
+ expectTypesMatch(true);
301
+
302
+ // lib/components/board.ts
303
+ var boardProps = subcircuitGroupProps.omit({ subcircuit: true }).extend({
304
+ width: import_circuit_json6.distance.optional(),
305
+ height: import_circuit_json6.distance.optional(),
306
+ outline: import_zod11.z.array(point).optional()
288
307
  });
289
308
  expectTypesMatch(true);
290
309
 
291
310
  // lib/components/chip.ts
292
- var import_circuit_json6 = require("circuit-json");
293
- var import_zod11 = require("zod");
311
+ var import_circuit_json7 = require("circuit-json");
312
+ var import_zod12 = require("zod");
294
313
  var chipProps = commonComponentProps.extend({
295
- manufacturerPartNumber: import_zod11.z.string().optional(),
296
- pinLabels: import_zod11.z.record(
297
- import_zod11.z.number().or(import_zod11.z.string()),
298
- import_zod11.z.string().or(import_zod11.z.array(import_zod11.z.string()).readonly())
314
+ manufacturerPartNumber: import_zod12.z.string().optional(),
315
+ pinLabels: import_zod12.z.record(
316
+ import_zod12.z.number().or(import_zod12.z.string()),
317
+ import_zod12.z.string().or(import_zod12.z.array(import_zod12.z.string()).readonly())
299
318
  ).optional(),
300
319
  schPortArrangement: schematicPortArrangement.optional(),
301
320
  schPinStyle: schematicPinStyle.optional(),
302
- schPinSpacing: import_circuit_json6.distance.optional(),
303
- schWidth: import_circuit_json6.distance.optional(),
304
- schHeight: import_circuit_json6.distance.optional()
321
+ schPinSpacing: import_circuit_json7.distance.optional(),
322
+ schWidth: import_circuit_json7.distance.optional(),
323
+ schHeight: import_circuit_json7.distance.optional()
305
324
  });
306
325
  var bugProps = chipProps;
307
326
  expectTypesMatch(true);
308
327
 
309
328
  // lib/components/jumper.ts
310
- var import_circuit_json7 = require("circuit-json");
311
- var import_zod12 = require("zod");
329
+ var import_circuit_json8 = require("circuit-json");
330
+ var import_zod13 = require("zod");
312
331
  var jumperProps = commonComponentProps.extend({
313
- manufacturerPartNumber: import_zod12.z.string().optional(),
314
- pinLabels: import_zod12.z.record(import_zod12.z.number().or(import_zod12.z.string()), import_zod12.z.string()).optional(),
332
+ manufacturerPartNumber: import_zod13.z.string().optional(),
333
+ pinLabels: import_zod13.z.record(import_zod13.z.number().or(import_zod13.z.string()), import_zod13.z.string()).optional(),
315
334
  schPinStyle: schematicPinStyle.optional(),
316
- schPinSpacing: import_circuit_json7.distance.optional(),
317
- schWidth: import_circuit_json7.distance.optional(),
318
- schHeight: import_circuit_json7.distance.optional(),
319
- schDirection: import_zod12.z.enum(["left", "right"]).optional(),
335
+ schPinSpacing: import_circuit_json8.distance.optional(),
336
+ schWidth: import_circuit_json8.distance.optional(),
337
+ schHeight: import_circuit_json8.distance.optional(),
338
+ schDirection: import_zod13.z.enum(["left", "right"]).optional(),
320
339
  schPortArrangement: schematicPortArrangement.optional()
321
340
  });
322
341
  expectTypesMatch(true);
323
342
 
324
343
  // lib/components/platedhole.ts
325
- var import_circuit_json8 = require("circuit-json");
326
- var import_zod13 = require("zod");
327
- var platedHoleProps = import_zod13.z.discriminatedUnion("shape", [
344
+ var import_circuit_json9 = require("circuit-json");
345
+ var import_zod14 = require("zod");
346
+ var platedHoleProps = import_zod14.z.discriminatedUnion("shape", [
328
347
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
329
- name: import_zod13.z.string().optional(),
330
- shape: import_zod13.z.literal("circle"),
331
- holeDiameter: import_circuit_json8.distance,
332
- outerDiameter: import_circuit_json8.distance,
348
+ name: import_zod14.z.string().optional(),
349
+ shape: import_zod14.z.literal("circle"),
350
+ holeDiameter: import_circuit_json9.distance,
351
+ outerDiameter: import_circuit_json9.distance,
333
352
  portHints: portHints.optional()
334
353
  }),
335
354
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
336
- name: import_zod13.z.string().optional(),
337
- shape: import_zod13.z.literal("oval"),
338
- outerWidth: import_circuit_json8.distance,
339
- outerHeight: import_circuit_json8.distance,
340
- innerWidth: import_circuit_json8.distance,
341
- innerHeight: import_circuit_json8.distance,
355
+ name: import_zod14.z.string().optional(),
356
+ shape: import_zod14.z.literal("oval"),
357
+ outerWidth: import_circuit_json9.distance,
358
+ outerHeight: import_circuit_json9.distance,
359
+ innerWidth: import_circuit_json9.distance,
360
+ innerHeight: import_circuit_json9.distance,
342
361
  portHints: portHints.optional()
343
362
  }),
344
363
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
345
- name: import_zod13.z.string().optional(),
346
- shape: import_zod13.z.literal("pill"),
347
- outerWidth: import_circuit_json8.distance,
348
- outerHeight: import_circuit_json8.distance,
349
- innerWidth: import_circuit_json8.distance,
350
- innerHeight: import_circuit_json8.distance,
364
+ name: import_zod14.z.string().optional(),
365
+ shape: import_zod14.z.literal("pill"),
366
+ outerWidth: import_circuit_json9.distance,
367
+ outerHeight: import_circuit_json9.distance,
368
+ innerWidth: import_circuit_json9.distance,
369
+ innerHeight: import_circuit_json9.distance,
351
370
  portHints: portHints.optional()
352
371
  })
353
372
  ]);
354
373
  expectTypesMatch(true);
355
374
 
356
375
  // lib/components/resistor.ts
357
- var import_circuit_json9 = require("circuit-json");
358
- var import_zod14 = require("zod");
376
+ var import_circuit_json10 = require("circuit-json");
377
+ var import_zod15 = require("zod");
359
378
  var resistorProps = commonComponentProps.extend({
360
- resistance: import_circuit_json9.resistance,
361
- pullupFor: import_zod14.z.string().optional(),
362
- pullupTo: import_zod14.z.string().optional(),
363
- pulldownFor: import_zod14.z.string().optional(),
364
- pulldownTo: import_zod14.z.string().optional()
379
+ resistance: import_circuit_json10.resistance,
380
+ pullupFor: import_zod15.z.string().optional(),
381
+ pullupTo: import_zod15.z.string().optional(),
382
+ pulldownFor: import_zod15.z.string().optional(),
383
+ pulldownTo: import_zod15.z.string().optional()
365
384
  });
366
385
  var resistorPins = lrPins;
367
386
  expectTypesMatch(true);
368
387
 
369
388
  // lib/components/capacitor.ts
370
- var import_circuit_json10 = require("circuit-json");
371
- var import_zod15 = require("zod");
372
- var capacitorProps = commonComponentProps.extend({
373
- capacitance: import_circuit_json10.capacitance,
374
- decouplingFor: import_zod15.z.string().optional(),
375
- decouplingTo: import_zod15.z.string().optional(),
376
- bypassFor: import_zod15.z.string().optional(),
377
- bypassTo: import_zod15.z.string().optional()
378
- });
379
- var capacitorPins = lrPolarPins;
380
- expectTypesMatch(true);
381
-
382
- // lib/components/group.ts
383
389
  var import_circuit_json11 = require("circuit-json");
384
390
  var import_zod16 = require("zod");
385
- var baseGroupProps = commonLayoutProps.extend({
386
- name: import_zod16.z.string().optional(),
387
- children: import_zod16.z.any().optional()
388
- });
389
- var subcircuitGroupProps = baseGroupProps.extend({
390
- subcircuit: import_zod16.z.literal(true),
391
- layout: import_zod16.z.custom((v) => true).optional(),
392
- manualEdits: import_zod16.z.custom((v) => true).optional(),
393
- schAutoLayoutEnabled: import_zod16.z.boolean().optional(),
394
- routingDisabled: import_zod16.z.boolean().optional(),
395
- defaultTraceWidth: import_circuit_json11.length.optional()
391
+ var capacitorProps = commonComponentProps.extend({
392
+ capacitance: import_circuit_json11.capacitance,
393
+ decouplingFor: import_zod16.z.string().optional(),
394
+ decouplingTo: import_zod16.z.string().optional(),
395
+ bypassFor: import_zod16.z.string().optional(),
396
+ bypassTo: import_zod16.z.string().optional()
396
397
  });
397
- var groupProps = import_zod16.z.union([baseGroupProps, subcircuitGroupProps]);
398
- expectTypesMatch(true);
399
- expectTypesMatch(true);
398
+ var capacitorPins = lrPolarPins;
400
399
  expectTypesMatch(true);
401
400
 
402
401
  // lib/components/net.ts
@@ -594,6 +593,10 @@ var netAliasProps = import_zod28.z.object({
594
593
  });
595
594
  expectTypesMatch(true);
596
595
 
596
+ // lib/components/push-button.ts
597
+ var import_zod29 = require("zod");
598
+ var pushButtonProps = commonComponentProps.extend({});
599
+
597
600
  // lib/index.ts
598
601
  var inductorProps = commonComponentProps.extend({
599
602
  inductance: import_circuit_json16.inductance
@@ -602,72 +605,72 @@ var inductorPins = lrPins;
602
605
  var diodeProps = commonComponentProps.extend({});
603
606
  var diodePins = lrPolarPins;
604
607
  var ledProps = commonComponentProps.extend({
605
- color: import_zod29.z.string().optional()
608
+ color: import_zod30.z.string().optional()
606
609
  });
607
610
  var ledPins = lrPolarPins;
608
611
  var switchProps = commonComponentProps.extend({
609
- ftype: import_zod29.z.literal("switch"),
610
- switchType: import_zod29.z.enum(["spst"]).default("spst"),
611
- isNormallyClosed: import_zod29.z.boolean().default(false)
612
+ ftype: import_zod30.z.literal("switch"),
613
+ switchType: import_zod30.z.enum(["spst"]).default("spst"),
614
+ isNormallyClosed: import_zod30.z.boolean().default(false)
612
615
  });
613
- var distanceOrMultiplier2 = import_circuit_json16.distance.or(import_zod29.z.enum(["2x", "3x", "4x"]));
616
+ var distanceOrMultiplier2 = import_circuit_json16.distance.or(import_zod30.z.enum(["2x", "3x", "4x"]));
614
617
  var viaProps = commonLayoutProps.extend({
615
618
  fromLayer: import_circuit_json16.layer_ref,
616
619
  toLayer: import_circuit_json16.layer_ref,
617
620
  holeDiameter: import_circuit_json16.distance,
618
621
  outerDiameter: import_circuit_json16.distance
619
622
  });
620
- var pcbKeepoutProps = import_zod29.z.union([
623
+ var pcbKeepoutProps = import_zod30.z.union([
621
624
  pcbLayoutProps.omit({ pcbRotation: true }).extend({
622
- shape: import_zod29.z.literal("circle"),
625
+ shape: import_zod30.z.literal("circle"),
623
626
  radius: import_circuit_json16.distance
624
627
  }),
625
628
  pcbLayoutProps.extend({
626
- shape: import_zod29.z.literal("rect"),
629
+ shape: import_zod30.z.literal("rect"),
627
630
  width: import_circuit_json16.distance,
628
631
  height: import_circuit_json16.distance
629
632
  })
630
633
  ]);
631
- var schematicBoxProps = import_zod29.z.object({
634
+ var schematicBoxProps = import_zod30.z.object({
632
635
  schX: import_circuit_json16.distance,
633
636
  schY: import_circuit_json16.distance,
634
637
  width: import_circuit_json16.distance,
635
638
  height: import_circuit_json16.distance
636
639
  });
637
- var schematicTextProps = import_zod29.z.object({
640
+ var schematicTextProps = import_zod30.z.object({
638
641
  schX: import_circuit_json16.distance,
639
642
  schY: import_circuit_json16.distance,
640
- text: import_zod29.z.string()
643
+ text: import_zod30.z.string()
641
644
  });
642
- var schematicLineProps = import_zod29.z.object({
645
+ var schematicLineProps = import_zod30.z.object({
643
646
  x1: import_circuit_json16.distance,
644
647
  y1: import_circuit_json16.distance,
645
648
  x2: import_circuit_json16.distance,
646
649
  y2: import_circuit_json16.distance
647
650
  });
648
- var schematicPathProps = import_zod29.z.object({
649
- points: import_zod29.z.array(import_circuit_json16.point),
650
- isFilled: import_zod29.z.boolean().optional().default(false),
651
- fillColor: import_zod29.z.enum(["red", "blue"]).optional()
651
+ var schematicPathProps = import_zod30.z.object({
652
+ points: import_zod30.z.array(import_circuit_json16.point),
653
+ isFilled: import_zod30.z.boolean().optional().default(false),
654
+ fillColor: import_zod30.z.enum(["red", "blue"]).optional()
652
655
  });
653
656
  var componentProps = commonComponentProps;
654
657
  var powerSourceProps = commonComponentProps.extend({
655
658
  voltage: import_circuit_json16.voltage
656
659
  });
657
660
  var portProps = commonLayoutProps.extend({
658
- name: import_zod29.z.string(),
659
- pinNumber: import_zod29.z.number().optional(),
660
- aliases: import_zod29.z.array(import_zod29.z.string()).optional(),
661
+ name: import_zod30.z.string(),
662
+ pinNumber: import_zod30.z.number().optional(),
663
+ aliases: import_zod30.z.array(import_zod30.z.string()).optional(),
661
664
  direction
662
665
  });
663
666
  var silkscreenTextProps = pcbLayoutProps.extend({
664
- text: import_zod29.z.string(),
665
- anchorAlignment: import_zod29.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
666
- font: import_zod29.z.enum(["tscircuit2024"]).optional(),
667
+ text: import_zod30.z.string(),
668
+ anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
669
+ font: import_zod30.z.enum(["tscircuit2024"]).optional(),
667
670
  fontSize: import_circuit_json16.length.optional()
668
671
  });
669
672
  var silkscreenPathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
670
- route: import_zod29.z.array(import_circuit_json16.route_hint_point),
673
+ route: import_zod30.z.array(import_circuit_json16.route_hint_point),
671
674
  strokeWidth: import_circuit_json16.length.optional()
672
675
  });
673
676
  var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
@@ -678,49 +681,49 @@ var silkscreenLineProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotat
678
681
  y2: import_circuit_json16.distance
679
682
  });
680
683
  var silkscreenRectProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
681
- isFilled: import_zod29.z.boolean().optional(),
682
- isOutline: import_zod29.z.boolean().optional(),
684
+ isFilled: import_zod30.z.boolean().optional(),
685
+ isOutline: import_zod30.z.boolean().optional(),
683
686
  strokeWidth: import_circuit_json16.distance.optional(),
684
687
  width: import_circuit_json16.distance,
685
688
  height: import_circuit_json16.distance
686
689
  });
687
690
  var silkscreenCircleProps = pcbLayoutProps.omit({ pcbRotation: true }).extend({
688
- isFilled: import_zod29.z.boolean().optional(),
689
- isOutline: import_zod29.z.boolean().optional(),
691
+ isFilled: import_zod30.z.boolean().optional(),
692
+ isOutline: import_zod30.z.boolean().optional(),
690
693
  strokeWidth: import_circuit_json16.distance.optional(),
691
694
  radius: import_circuit_json16.distance
692
695
  });
693
- var routeHintPointProps = import_zod29.z.object({
696
+ var routeHintPointProps = import_zod30.z.object({
694
697
  x: import_circuit_json16.distance,
695
698
  y: import_circuit_json16.distance,
696
- via: import_zod29.z.boolean().optional(),
699
+ via: import_zod30.z.boolean().optional(),
697
700
  toLayer: import_circuit_json16.layer_ref.optional()
698
701
  });
699
- var traceHintProps = import_zod29.z.object({
700
- for: import_zod29.z.string().optional().describe(
702
+ var traceHintProps = import_zod30.z.object({
703
+ for: import_zod30.z.string().optional().describe(
701
704
  "Selector for the port you're targeting, not required if you're inside a trace"
702
705
  ),
703
- order: import_zod29.z.number().optional(),
706
+ order: import_zod30.z.number().optional(),
704
707
  offset: import_circuit_json16.route_hint_point.or(routeHintPointProps).optional(),
705
- offsets: import_zod29.z.array(import_circuit_json16.route_hint_point).or(import_zod29.z.array(routeHintPointProps)).optional(),
706
- traceWidth: import_zod29.z.number().optional()
708
+ offsets: import_zod30.z.array(import_circuit_json16.route_hint_point).or(import_zod30.z.array(routeHintPointProps)).optional(),
709
+ traceWidth: import_zod30.z.number().optional()
707
710
  });
708
- var pcbTraceProps = import_zod29.z.object({
709
- layer: import_zod29.z.string().optional(),
711
+ var pcbTraceProps = import_zod30.z.object({
712
+ layer: import_zod30.z.string().optional(),
710
713
  thickness: import_circuit_json16.distance.optional(),
711
- route: import_zod29.z.array(import_circuit_json16.route_hint_point)
714
+ route: import_zod30.z.array(import_circuit_json16.route_hint_point)
712
715
  });
713
716
  var fabricationNoteTextProps = pcbLayoutProps.extend({
714
- text: import_zod29.z.string(),
715
- anchorAlignment: import_zod29.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
716
- font: import_zod29.z.enum(["tscircuit2024"]).optional(),
717
+ text: import_zod30.z.string(),
718
+ anchorAlignment: import_zod30.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
719
+ font: import_zod30.z.enum(["tscircuit2024"]).optional(),
717
720
  fontSize: import_circuit_json16.length.optional(),
718
- color: import_zod29.z.string().optional()
721
+ color: import_zod30.z.string().optional()
719
722
  });
720
723
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
721
- route: import_zod29.z.array(import_circuit_json16.route_hint_point),
724
+ route: import_zod30.z.array(import_circuit_json16.route_hint_point),
722
725
  strokeWidth: import_circuit_json16.length.optional(),
723
- color: import_zod29.z.string().optional()
726
+ color: import_zod30.z.string().optional()
724
727
  });
725
728
  // Annotate the CommonJS export names for ESM import in node:
726
729
  0 && (module.exports = {
@@ -779,6 +782,7 @@ var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcb
779
782
  portProps,
780
783
  portRef,
781
784
  powerSourceProps,
785
+ pushButtonProps,
782
786
  rectSmtPadProps,
783
787
  rectSolderPasteProps,
784
788
  resistorPins,