@tscircuit/props 0.0.88 → 0.0.90

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