@tscircuit/core 0.0.120 → 0.0.122

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.d.ts CHANGED
@@ -6,7 +6,7 @@ import { PcbTraceError, PcbPlacementError, LayerRef, AnyCircuitElement, AnySourc
6
6
  import { SoupUtilObjects } from '@tscircuit/soup-util';
7
7
  import { Matrix } from 'transformation-matrix';
8
8
  import * as _tscircuit_props from '@tscircuit/props';
9
- import { traceProps, groupProps, boardProps, capacitorProps, chipProps, diodeProps, jumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, smtPadProps, traceHintProps, viaProps } from '@tscircuit/props';
9
+ import { traceProps, groupProps, boardProps, capacitorProps, chipProps, diodeProps, jumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, smtPadProps, traceHintProps, viaProps, batteryProps } from '@tscircuit/props';
10
10
 
11
11
  declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "InitializePortsFromChildren", "CreateNetsFromProps", "CreateTracesFromProps", "CreateTraceHintsFromProps", "SourceRender", "SourceParentAttachment", "PortDiscovery", "PortMatching", "SourceTraceRender", "SchematicComponentRender", "SchematicLayout", "SchematicPortRender", "SchematicTraceRender", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbLayout", "PcbTraceRender", "PcbTraceHintRender", "PcbRouteNetIslands", "PcbComponentSizeCalculation", "CadModelRender"];
12
12
  type RenderPhase = (typeof orderedRenderPhases)[number];
@@ -1049,8 +1049,6 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PassivePo
1049
1049
  }>]>>;
1050
1050
  children: zod.ZodOptional<zod.ZodAny>;
1051
1051
  symbolName: zod.ZodOptional<zod.ZodString>;
1052
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1053
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1054
1052
  }>, {
1055
1053
  capacitance: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1056
1054
  decouplingFor: zod.ZodOptional<zod.ZodString>;
@@ -1125,8 +1123,6 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PassivePo
1125
1123
  } | undefined;
1126
1124
  children?: any;
1127
1125
  symbolName?: string | undefined;
1128
- width?: number | undefined;
1129
- height?: number | undefined;
1130
1126
  decouplingFor?: string | undefined;
1131
1127
  decouplingTo?: string | undefined;
1132
1128
  bypassFor?: string | undefined;
@@ -1201,8 +1197,6 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PassivePo
1201
1197
  } | undefined;
1202
1198
  children?: any;
1203
1199
  symbolName?: string | undefined;
1204
- width?: string | number | undefined;
1205
- height?: string | number | undefined;
1206
1200
  decouplingFor?: string | undefined;
1207
1201
  decouplingTo?: string | undefined;
1208
1202
  bypassFor?: string | undefined;
@@ -1502,8 +1496,6 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
1502
1496
  }>]>>;
1503
1497
  children: zod.ZodOptional<zod.ZodAny>;
1504
1498
  symbolName: zod.ZodOptional<zod.ZodString>;
1505
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1506
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1507
1499
  }>, {
1508
1500
  manufacturerPartNumber: zod.ZodOptional<zod.ZodString>;
1509
1501
  pinLabels: zod.ZodOptional<zod.ZodRecord<zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>, zod.ZodUnion<[zod.ZodString, zod.ZodArray<zod.ZodString, "many">]>>>;
@@ -1693,8 +1685,6 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
1693
1685
  } | undefined;
1694
1686
  children?: any;
1695
1687
  symbolName?: string | undefined;
1696
- width?: number | undefined;
1697
- height?: number | undefined;
1698
1688
  manufacturerPartNumber?: string | undefined;
1699
1689
  pinLabels?: Record<string | number, string | string[]> | undefined;
1700
1690
  schPortArrangement?: {
@@ -1801,8 +1791,6 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
1801
1791
  } | undefined;
1802
1792
  children?: any;
1803
1793
  symbolName?: string | undefined;
1804
- width?: string | number | undefined;
1805
- height?: string | number | undefined;
1806
1794
  manufacturerPartNumber?: string | undefined;
1807
1795
  pinLabels?: Record<string | number, string | string[]> | undefined;
1808
1796
  schPortArrangement?: {
@@ -2107,8 +2095,6 @@ declare class Diode extends NormalComponent<typeof diodeProps, PolarizedPassiveP
2107
2095
  }>]>>;
2108
2096
  children: zod.ZodOptional<zod.ZodAny>;
2109
2097
  symbolName: zod.ZodOptional<zod.ZodString>;
2110
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2111
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2112
2098
  }>, {}>, "strip", zod.ZodTypeAny, {
2113
2099
  name: string;
2114
2100
  pcbX?: number | undefined;
@@ -2176,8 +2162,6 @@ declare class Diode extends NormalComponent<typeof diodeProps, PolarizedPassiveP
2176
2162
  } | undefined;
2177
2163
  children?: any;
2178
2164
  symbolName?: string | undefined;
2179
- width?: number | undefined;
2180
- height?: number | undefined;
2181
2165
  }, {
2182
2166
  name: string;
2183
2167
  pcbX?: string | number | undefined;
@@ -2247,8 +2231,6 @@ declare class Diode extends NormalComponent<typeof diodeProps, PolarizedPassiveP
2247
2231
  } | undefined;
2248
2232
  children?: any;
2249
2233
  symbolName?: string | undefined;
2250
- width?: string | number | undefined;
2251
- height?: string | number | undefined;
2252
2234
  }>;
2253
2235
  sourceFtype: Ftype;
2254
2236
  };
@@ -2519,8 +2501,6 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
2519
2501
  }>]>>;
2520
2502
  children: zod.ZodOptional<zod.ZodAny>;
2521
2503
  symbolName: zod.ZodOptional<zod.ZodString>;
2522
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2523
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2524
2504
  }>, {
2525
2505
  manufacturerPartNumber: zod.ZodOptional<zod.ZodString>;
2526
2506
  pinLabels: zod.ZodOptional<zod.ZodRecord<zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>, zod.ZodString>>;
@@ -2711,8 +2691,6 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
2711
2691
  } | undefined;
2712
2692
  children?: any;
2713
2693
  symbolName?: string | undefined;
2714
- width?: number | undefined;
2715
- height?: number | undefined;
2716
2694
  manufacturerPartNumber?: string | undefined;
2717
2695
  pinLabels?: Record<string | number, string> | undefined;
2718
2696
  schPortArrangement?: {
@@ -2820,8 +2798,6 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
2820
2798
  } | undefined;
2821
2799
  children?: any;
2822
2800
  symbolName?: string | undefined;
2823
- width?: string | number | undefined;
2824
- height?: string | number | undefined;
2825
2801
  manufacturerPartNumber?: string | undefined;
2826
2802
  pinLabels?: Record<string | number, string> | undefined;
2827
2803
  schPortArrangement?: {
@@ -3127,8 +3103,6 @@ declare class Led extends NormalComponent<typeof ledProps, PolarizedPassivePorts
3127
3103
  }>]>>;
3128
3104
  children: zod.ZodOptional<zod.ZodAny>;
3129
3105
  symbolName: zod.ZodOptional<zod.ZodString>;
3130
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3131
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3132
3106
  }>, {
3133
3107
  color: zod.ZodOptional<zod.ZodString>;
3134
3108
  }>, "strip", zod.ZodTypeAny, {
@@ -3198,8 +3172,6 @@ declare class Led extends NormalComponent<typeof ledProps, PolarizedPassivePorts
3198
3172
  } | undefined;
3199
3173
  children?: any;
3200
3174
  symbolName?: string | undefined;
3201
- width?: number | undefined;
3202
- height?: number | undefined;
3203
3175
  color?: string | undefined;
3204
3176
  }, {
3205
3177
  name: string;
@@ -3270,8 +3242,6 @@ declare class Led extends NormalComponent<typeof ledProps, PolarizedPassivePorts
3270
3242
  } | undefined;
3271
3243
  children?: any;
3272
3244
  symbolName?: string | undefined;
3273
- width?: string | number | undefined;
3274
- height?: string | number | undefined;
3275
3245
  color?: string | undefined;
3276
3246
  }>;
3277
3247
  sourceFtype: Ftype;
@@ -3543,8 +3513,6 @@ declare class PowerSource extends NormalComponent<typeof powerSourceProps, Polar
3543
3513
  }>]>>;
3544
3514
  children: zod.ZodOptional<zod.ZodAny>;
3545
3515
  symbolName: zod.ZodOptional<zod.ZodString>;
3546
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3547
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3548
3516
  }>, {
3549
3517
  voltage: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
3550
3518
  }>, "strip", zod.ZodTypeAny, {
@@ -3615,8 +3583,6 @@ declare class PowerSource extends NormalComponent<typeof powerSourceProps, Polar
3615
3583
  } | undefined;
3616
3584
  children?: any;
3617
3585
  symbolName?: string | undefined;
3618
- width?: number | undefined;
3619
- height?: number | undefined;
3620
3586
  }, {
3621
3587
  name: string;
3622
3588
  voltage: string | number;
@@ -3687,8 +3653,6 @@ declare class PowerSource extends NormalComponent<typeof powerSourceProps, Polar
3687
3653
  } | undefined;
3688
3654
  children?: any;
3689
3655
  symbolName?: string | undefined;
3690
- width?: string | number | undefined;
3691
- height?: string | number | undefined;
3692
3656
  }>;
3693
3657
  sourceFtype: Ftype;
3694
3658
  };
@@ -3702,7 +3666,7 @@ declare class PowerSource extends NormalComponent<typeof powerSourceProps, Polar
3702
3666
  declare class Resistor extends NormalComponent<typeof resistorProps, PassivePorts> {
3703
3667
  get config(): {
3704
3668
  componentName: string;
3705
- schematicSymbolName: string;
3669
+ schematicSymbolName: BaseSymbolName;
3706
3670
  zodProps: zod.ZodObject<zod.objectUtil.extendShape<zod.objectUtil.extendShape<zod.objectUtil.extendShape<{
3707
3671
  pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3708
3672
  pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
@@ -3959,8 +3923,6 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
3959
3923
  }>]>>;
3960
3924
  children: zod.ZodOptional<zod.ZodAny>;
3961
3925
  symbolName: zod.ZodOptional<zod.ZodString>;
3962
- width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3963
- height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3964
3926
  }>, {
3965
3927
  resistance: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
3966
3928
  pullupFor: zod.ZodOptional<zod.ZodString>;
@@ -4035,8 +3997,6 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
4035
3997
  } | undefined;
4036
3998
  children?: any;
4037
3999
  symbolName?: string | undefined;
4038
- width?: number | undefined;
4039
- height?: number | undefined;
4040
4000
  pullupFor?: string | undefined;
4041
4001
  pullupTo?: string | undefined;
4042
4002
  pulldownFor?: string | undefined;
@@ -4111,8 +4071,6 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
4111
4071
  } | undefined;
4112
4072
  children?: any;
4113
4073
  symbolName?: string | undefined;
4114
- width?: string | number | undefined;
4115
- height?: string | number | undefined;
4116
4074
  pullupFor?: string | undefined;
4117
4075
  pullupTo?: string | undefined;
4118
4076
  pulldownFor?: string | undefined;
@@ -5302,6 +5260,413 @@ declare class Via extends PrimitiveComponent<typeof viaProps> {
5302
5260
  doInitialPcbPrimitiveRender(): void;
5303
5261
  }
5304
5262
 
5263
+ declare class Battery extends NormalComponent<typeof batteryProps, PassivePorts> {
5264
+ get config(): {
5265
+ componentName: string;
5266
+ schematicSymbolName: BaseSymbolName;
5267
+ zodProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
5268
+ pcbX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
5269
+ pcbY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
5270
+ pcbRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
5271
+ schX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
5272
+ schY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
5273
+ schRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
5274
+ layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
5275
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
5276
+ }, "strip", z.ZodTypeAny, {
5277
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
5278
+ }, {
5279
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
5280
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
5281
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
5282
+ }>>;
5283
+ footprint: z.ZodOptional<z.ZodType<_tscircuit_props.Footprint, z.ZodTypeDef, _tscircuit_props.Footprint>>;
5284
+ }, {
5285
+ supplierPartNumbers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, z.ZodArray<z.ZodString, "many">>>;
5286
+ }>, {
5287
+ key: z.ZodOptional<z.ZodAny>;
5288
+ name: z.ZodString;
5289
+ cadModel: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<z.objectUtil.extendShape<{
5290
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
5291
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5292
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5293
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5294
+ }, "strip", z.ZodTypeAny, {
5295
+ x: string | number;
5296
+ y: string | number;
5297
+ z: string | number;
5298
+ }, {
5299
+ x: string | number;
5300
+ y: string | number;
5301
+ z: string | number;
5302
+ }>]>>;
5303
+ positionOffset: z.ZodOptional<z.ZodObject<{
5304
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5305
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5306
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5307
+ }, "strip", z.ZodTypeAny, {
5308
+ x: number;
5309
+ y: number;
5310
+ z: number;
5311
+ }, {
5312
+ x: string | number;
5313
+ y: string | number;
5314
+ z: string | number;
5315
+ }>>;
5316
+ size: z.ZodOptional<z.ZodObject<{
5317
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5318
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5319
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5320
+ }, "strip", z.ZodTypeAny, {
5321
+ x: number;
5322
+ y: number;
5323
+ z: number;
5324
+ }, {
5325
+ x: string | number;
5326
+ y: string | number;
5327
+ z: string | number;
5328
+ }>>;
5329
+ }, {
5330
+ stlUrl: z.ZodString;
5331
+ }>, "strip", z.ZodTypeAny, {
5332
+ stlUrl: string;
5333
+ rotationOffset?: number | {
5334
+ x: string | number;
5335
+ y: string | number;
5336
+ z: string | number;
5337
+ } | undefined;
5338
+ positionOffset?: {
5339
+ x: number;
5340
+ y: number;
5341
+ z: number;
5342
+ } | undefined;
5343
+ size?: {
5344
+ x: number;
5345
+ y: number;
5346
+ z: number;
5347
+ } | undefined;
5348
+ }, {
5349
+ stlUrl: string;
5350
+ rotationOffset?: number | {
5351
+ x: string | number;
5352
+ y: string | number;
5353
+ z: string | number;
5354
+ } | undefined;
5355
+ positionOffset?: {
5356
+ x: string | number;
5357
+ y: string | number;
5358
+ z: string | number;
5359
+ } | undefined;
5360
+ size?: {
5361
+ x: string | number;
5362
+ y: string | number;
5363
+ z: string | number;
5364
+ } | undefined;
5365
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5366
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
5367
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5368
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5369
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5370
+ }, "strip", z.ZodTypeAny, {
5371
+ x: string | number;
5372
+ y: string | number;
5373
+ z: string | number;
5374
+ }, {
5375
+ x: string | number;
5376
+ y: string | number;
5377
+ z: string | number;
5378
+ }>]>>;
5379
+ positionOffset: z.ZodOptional<z.ZodObject<{
5380
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5381
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5382
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5383
+ }, "strip", z.ZodTypeAny, {
5384
+ x: number;
5385
+ y: number;
5386
+ z: number;
5387
+ }, {
5388
+ x: string | number;
5389
+ y: string | number;
5390
+ z: string | number;
5391
+ }>>;
5392
+ size: z.ZodOptional<z.ZodObject<{
5393
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5394
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5395
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5396
+ }, "strip", z.ZodTypeAny, {
5397
+ x: number;
5398
+ y: number;
5399
+ z: number;
5400
+ }, {
5401
+ x: string | number;
5402
+ y: string | number;
5403
+ z: string | number;
5404
+ }>>;
5405
+ }, {
5406
+ objUrl: z.ZodString;
5407
+ mtlUrl: z.ZodOptional<z.ZodString>;
5408
+ }>, "strip", z.ZodTypeAny, {
5409
+ objUrl: string;
5410
+ rotationOffset?: number | {
5411
+ x: string | number;
5412
+ y: string | number;
5413
+ z: string | number;
5414
+ } | undefined;
5415
+ positionOffset?: {
5416
+ x: number;
5417
+ y: number;
5418
+ z: number;
5419
+ } | undefined;
5420
+ size?: {
5421
+ x: number;
5422
+ y: number;
5423
+ z: number;
5424
+ } | undefined;
5425
+ mtlUrl?: string | undefined;
5426
+ }, {
5427
+ objUrl: string;
5428
+ rotationOffset?: number | {
5429
+ x: string | number;
5430
+ y: string | number;
5431
+ z: string | number;
5432
+ } | undefined;
5433
+ positionOffset?: {
5434
+ x: string | number;
5435
+ y: string | number;
5436
+ z: string | number;
5437
+ } | undefined;
5438
+ size?: {
5439
+ x: string | number;
5440
+ y: string | number;
5441
+ z: string | number;
5442
+ } | undefined;
5443
+ mtlUrl?: string | undefined;
5444
+ }>, z.ZodObject<z.objectUtil.extendShape<{
5445
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
5446
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5447
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5448
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
5449
+ }, "strip", z.ZodTypeAny, {
5450
+ x: string | number;
5451
+ y: string | number;
5452
+ z: string | number;
5453
+ }, {
5454
+ x: string | number;
5455
+ y: string | number;
5456
+ z: string | number;
5457
+ }>]>>;
5458
+ positionOffset: z.ZodOptional<z.ZodObject<{
5459
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5460
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5461
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5462
+ }, "strip", z.ZodTypeAny, {
5463
+ x: number;
5464
+ y: number;
5465
+ z: number;
5466
+ }, {
5467
+ x: string | number;
5468
+ y: string | number;
5469
+ z: string | number;
5470
+ }>>;
5471
+ size: z.ZodOptional<z.ZodObject<{
5472
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5473
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5474
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
5475
+ }, "strip", z.ZodTypeAny, {
5476
+ x: number;
5477
+ y: number;
5478
+ z: number;
5479
+ }, {
5480
+ x: string | number;
5481
+ y: string | number;
5482
+ z: string | number;
5483
+ }>>;
5484
+ }, {
5485
+ jscad: z.ZodRecord<z.ZodString, z.ZodAny>;
5486
+ }>, "strip", z.ZodTypeAny, {
5487
+ jscad: Record<string, any>;
5488
+ rotationOffset?: number | {
5489
+ x: string | number;
5490
+ y: string | number;
5491
+ z: string | number;
5492
+ } | undefined;
5493
+ positionOffset?: {
5494
+ x: number;
5495
+ y: number;
5496
+ z: number;
5497
+ } | undefined;
5498
+ size?: {
5499
+ x: number;
5500
+ y: number;
5501
+ z: number;
5502
+ } | undefined;
5503
+ }, {
5504
+ jscad: Record<string, any>;
5505
+ rotationOffset?: number | {
5506
+ x: string | number;
5507
+ y: string | number;
5508
+ z: string | number;
5509
+ } | undefined;
5510
+ positionOffset?: {
5511
+ x: string | number;
5512
+ y: string | number;
5513
+ z: string | number;
5514
+ } | undefined;
5515
+ size?: {
5516
+ x: string | number;
5517
+ y: string | number;
5518
+ z: string | number;
5519
+ } | undefined;
5520
+ }>]>>;
5521
+ children: z.ZodOptional<z.ZodAny>;
5522
+ symbolName: z.ZodOptional<z.ZodString>;
5523
+ }>, {
5524
+ capacity: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>>;
5525
+ }>, "strip", z.ZodTypeAny, {
5526
+ name: string;
5527
+ pcbX?: number | undefined;
5528
+ pcbY?: number | undefined;
5529
+ pcbRotation?: number | undefined;
5530
+ schX?: number | undefined;
5531
+ schY?: number | undefined;
5532
+ schRotation?: number | undefined;
5533
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
5534
+ footprint?: _tscircuit_props.Footprint | undefined;
5535
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
5536
+ key?: any;
5537
+ cadModel?: string | {
5538
+ stlUrl: string;
5539
+ rotationOffset?: number | {
5540
+ x: string | number;
5541
+ y: string | number;
5542
+ z: string | number;
5543
+ } | undefined;
5544
+ positionOffset?: {
5545
+ x: number;
5546
+ y: number;
5547
+ z: number;
5548
+ } | undefined;
5549
+ size?: {
5550
+ x: number;
5551
+ y: number;
5552
+ z: number;
5553
+ } | undefined;
5554
+ } | {
5555
+ objUrl: string;
5556
+ rotationOffset?: number | {
5557
+ x: string | number;
5558
+ y: string | number;
5559
+ z: string | number;
5560
+ } | undefined;
5561
+ positionOffset?: {
5562
+ x: number;
5563
+ y: number;
5564
+ z: number;
5565
+ } | undefined;
5566
+ size?: {
5567
+ x: number;
5568
+ y: number;
5569
+ z: number;
5570
+ } | undefined;
5571
+ mtlUrl?: string | undefined;
5572
+ } | {
5573
+ jscad: Record<string, any>;
5574
+ rotationOffset?: number | {
5575
+ x: string | number;
5576
+ y: string | number;
5577
+ z: string | number;
5578
+ } | undefined;
5579
+ positionOffset?: {
5580
+ x: number;
5581
+ y: number;
5582
+ z: number;
5583
+ } | undefined;
5584
+ size?: {
5585
+ x: number;
5586
+ y: number;
5587
+ z: number;
5588
+ } | undefined;
5589
+ } | undefined;
5590
+ children?: any;
5591
+ symbolName?: string | undefined;
5592
+ capacity?: number | undefined;
5593
+ }, {
5594
+ name: string;
5595
+ pcbX?: string | number | undefined;
5596
+ pcbY?: string | number | undefined;
5597
+ pcbRotation?: string | number | undefined;
5598
+ schX?: string | number | undefined;
5599
+ schY?: string | number | undefined;
5600
+ schRotation?: string | number | undefined;
5601
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
5602
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
5603
+ } | undefined;
5604
+ footprint?: _tscircuit_props.Footprint | undefined;
5605
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
5606
+ key?: any;
5607
+ cadModel?: string | {
5608
+ stlUrl: string;
5609
+ rotationOffset?: number | {
5610
+ x: string | number;
5611
+ y: string | number;
5612
+ z: string | number;
5613
+ } | undefined;
5614
+ positionOffset?: {
5615
+ x: string | number;
5616
+ y: string | number;
5617
+ z: string | number;
5618
+ } | undefined;
5619
+ size?: {
5620
+ x: string | number;
5621
+ y: string | number;
5622
+ z: string | number;
5623
+ } | undefined;
5624
+ } | {
5625
+ objUrl: string;
5626
+ rotationOffset?: number | {
5627
+ x: string | number;
5628
+ y: string | number;
5629
+ z: string | number;
5630
+ } | undefined;
5631
+ positionOffset?: {
5632
+ x: string | number;
5633
+ y: string | number;
5634
+ z: string | number;
5635
+ } | undefined;
5636
+ size?: {
5637
+ x: string | number;
5638
+ y: string | number;
5639
+ z: string | number;
5640
+ } | undefined;
5641
+ mtlUrl?: string | undefined;
5642
+ } | {
5643
+ jscad: Record<string, any>;
5644
+ rotationOffset?: number | {
5645
+ x: string | number;
5646
+ y: string | number;
5647
+ z: string | number;
5648
+ } | undefined;
5649
+ positionOffset?: {
5650
+ x: string | number;
5651
+ y: string | number;
5652
+ z: string | number;
5653
+ } | undefined;
5654
+ size?: {
5655
+ x: string | number;
5656
+ y: string | number;
5657
+ z: string | number;
5658
+ } | undefined;
5659
+ } | undefined;
5660
+ children?: any;
5661
+ symbolName?: string | undefined;
5662
+ capacity?: string | number | undefined;
5663
+ }>;
5664
+ sourceFtype: Ftype;
5665
+ };
5666
+ initPorts(): void;
5667
+ doInitialSourceRender(): void;
5668
+ }
5669
+
5305
5670
  declare const useRenderedCircuit: (reactElements: React.ReactElement) => {
5306
5671
  isLoading: boolean;
5307
5672
  error?: Error | null;
@@ -5352,9 +5717,10 @@ declare global {
5352
5717
  fabricationnotepath: _tscircuit_props.FabricationNotePathProps;
5353
5718
  constraint: _tscircuit_props.ConstraintProps;
5354
5719
  constrainedlayout: _tscircuit_props.ConstrainedLayoutProps;
5720
+ battery: _tscircuit_props.BatteryProps;
5355
5721
  jscad: any;
5356
5722
  }
5357
5723
  }
5358
5724
  }
5359
5725
 
5360
- export { Board, Capacitor, Chip, Circuit, Constraint, Diode, FabricationNotePath, FabricationNoteText, Footprint, Group, Hole, type IRenderable, Jumper, Keepout, Led, Net, NetAlias, NormalComponent, PlatedHole, Port, PowerSource, PrimitiveComponent, Project, Renderable, Resistor, SilkscreenCircle, SilkscreenPath, SilkscreenRect, SilkscreenText, SmtPad, Trace, TraceHint, Via, createUseComponent, useRenderedCircuit };
5726
+ export { Battery, Board, Capacitor, Chip, Circuit, Constraint, Diode, FabricationNotePath, FabricationNoteText, Footprint, Group, Hole, type IRenderable, Jumper, Keepout, Led, Net, NetAlias, NormalComponent, PlatedHole, Port, PowerSource, PrimitiveComponent, Project, Renderable, Resistor, SilkscreenCircle, SilkscreenPath, SilkscreenRect, SilkscreenText, SmtPad, Trace, TraceHint, Via, createUseComponent, useRenderedCircuit };
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ var __export = (target, all) => {
7
7
  // lib/components/index.ts
8
8
  var components_exports = {};
9
9
  __export(components_exports, {
10
+ Battery: () => Battery,
10
11
  Board: () => Board,
11
12
  Capacitor: () => Capacitor,
12
13
  Chip: () => Chip,
@@ -2045,7 +2046,21 @@ var NormalComponent = class extends PrimitiveComponent {
2045
2046
  const { db } = this.root;
2046
2047
  const { schematicSymbolName } = this.config;
2047
2048
  if (!schematicSymbolName) return;
2048
- const symbol_name = `${this.config.schematicSymbolName}`;
2049
+ const base_symbol_name = this.config.schematicSymbolName;
2050
+ const symbol_name_horz = `${base_symbol_name}_horz`;
2051
+ let symbol_name;
2052
+ if (!base_symbol_name) {
2053
+ throw new Error(
2054
+ "No schematic symbol defined (schematicSymbolName not provided)"
2055
+ );
2056
+ }
2057
+ if (base_symbol_name in symbols2) {
2058
+ symbol_name = base_symbol_name;
2059
+ } else if (symbol_name_horz in symbols2) {
2060
+ symbol_name = symbol_name_horz;
2061
+ } else {
2062
+ throw new Error(`Could not find schematic-symbol: "${base_symbol_name}"`);
2063
+ }
2049
2064
  const symbol = symbols2[symbol_name];
2050
2065
  if (!symbol) {
2051
2066
  throw new Error(`Could not find schematic-symbol "${symbol_name}"`);
@@ -2055,7 +2070,6 @@ var NormalComponent = class extends PrimitiveComponent {
2055
2070
  rotation: this.props.schRotation ?? 0,
2056
2071
  size: symbol.size,
2057
2072
  source_component_id: this.source_component_id,
2058
- // @ts-ignore
2059
2073
  symbol_name
2060
2074
  });
2061
2075
  this.schematic_component_id = schematic_component2.schematic_component_id;
@@ -3654,7 +3668,6 @@ var PowerSource = class extends NormalComponent {
3654
3668
  // lib/components/normal-components/Resistor.ts
3655
3669
  import { resistorProps } from "@tscircuit/props";
3656
3670
  var Resistor = class extends NormalComponent {
3657
- // @ts-ignore (cause the symbolName is string and not fixed)
3658
3671
  get config() {
3659
3672
  return {
3660
3673
  componentName: "Resistor",
@@ -3664,8 +3677,20 @@ var Resistor = class extends NormalComponent {
3664
3677
  };
3665
3678
  }
3666
3679
  initPorts() {
3667
- this.add(new Port({ name: "pin1", pinNumber: 1, aliases: ["anode", "pos", "left"] }));
3668
- this.add(new Port({ name: "pin2", pinNumber: 2, aliases: ["cathode", "neg", "right"] }));
3680
+ this.add(
3681
+ new Port({
3682
+ name: "pin1",
3683
+ pinNumber: 1,
3684
+ aliases: ["anode", "pos", "left"]
3685
+ })
3686
+ );
3687
+ this.add(
3688
+ new Port({
3689
+ name: "pin2",
3690
+ pinNumber: 2,
3691
+ aliases: ["cathode", "neg", "right"]
3692
+ })
3693
+ );
3669
3694
  }
3670
3695
  doInitialCreateNetsFromProps() {
3671
3696
  this._createNetsFromProps([this.props.pullupFor, this.props.pullupTo]);
@@ -4031,6 +4056,47 @@ var Via = class extends PrimitiveComponent {
4031
4056
  }
4032
4057
  };
4033
4058
 
4059
+ // lib/components/normal-components/Battery.ts
4060
+ import { batteryProps } from "@tscircuit/props";
4061
+ import "zod";
4062
+ var Battery = class extends NormalComponent {
4063
+ get config() {
4064
+ return {
4065
+ componentName: "Battery",
4066
+ schematicSymbolName: this.props.symbolName ?? "battery",
4067
+ zodProps: batteryProps,
4068
+ sourceFtype: "simple_power_source"
4069
+ };
4070
+ }
4071
+ initPorts() {
4072
+ this.add(
4073
+ new Port({
4074
+ name: "pin1",
4075
+ pinNumber: 1,
4076
+ aliases: ["anode", "pos", "left"]
4077
+ })
4078
+ );
4079
+ this.add(
4080
+ new Port({
4081
+ name: "pin2",
4082
+ pinNumber: 2,
4083
+ aliases: ["cathode", "neg", "right"]
4084
+ })
4085
+ );
4086
+ }
4087
+ doInitialSourceRender() {
4088
+ const { db } = this.root;
4089
+ const { _parsedProps: props } = this;
4090
+ const source_component = db.source_component.insert({
4091
+ name: props.name,
4092
+ ftype: "simple_power_source",
4093
+ capacity: props.capacity,
4094
+ supplier_part_numbers: props.supplierPartNumbers
4095
+ });
4096
+ this.source_component_id = source_component.source_component_id;
4097
+ }
4098
+ };
4099
+
4034
4100
  // lib/Circuit.ts
4035
4101
  import { su } from "@tscircuit/soup-util";
4036
4102
  import { isValidElement as isValidElement2 } from "react";
@@ -4201,6 +4267,7 @@ extendCatalogue({
4201
4267
  Bug: Chip
4202
4268
  });
4203
4269
  export {
4270
+ Battery,
4204
4271
  Board,
4205
4272
  Capacitor,
4206
4273
  Chip,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.120",
4
+ "version": "0.0.122",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -25,7 +25,6 @@
25
25
  "@types/react": "^18.3.3",
26
26
  "@types/react-reconciler": "^0.28.8",
27
27
  "bun-match-svg": "0.0.2",
28
- "circuit-to-svg": "^0.0.39",
29
28
  "debug": "^4.3.6",
30
29
  "howfat": "^0.3.8",
31
30
  "looks-same": "^9.0.1",
@@ -39,15 +38,16 @@
39
38
  "@tscircuit/footprinter": "^0.0.71",
40
39
  "@tscircuit/infgrid-ijump-astar": "^0.0.21",
41
40
  "@tscircuit/math-utils": "^0.0.4",
42
- "@tscircuit/props": "^0.0.70",
41
+ "@tscircuit/props": "^0.0.74",
43
42
  "@tscircuit/soup-util": "^0.0.33",
44
- "circuit-json": "^0.0.85",
43
+ "circuit-json": "^0.0.86",
45
44
  "circuit-json-to-connectivity-map": "^0.0.17",
45
+ "circuit-to-svg": "0.0.41",
46
46
  "nanoid": "^5.0.7",
47
47
  "performance-now": "^2.1.0",
48
48
  "react": "^18.3.1",
49
49
  "react-reconciler": "^0.29.2",
50
- "schematic-symbols": "0.0.77",
50
+ "schematic-symbols": "0.0.79",
51
51
  "transformation-matrix": "^2.16.1",
52
52
  "zod": "^3.23.8"
53
53
  }