@tscircuit/core 0.0.634 → 0.0.636

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
@@ -1,5 +1,5 @@
1
1
  import * as _tscircuit_props from '@tscircuit/props';
2
- import { PlatformConfig, subcircuitGroupProps, AutorouterConfig, traceProps, SupplierPartNumbers, SchematicPortArrangement, groupProps, boardProps, capacitorProps, chipProps, diodeProps, fuseProps, jumperProps, solderjumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, subcircuitProps, breakoutProps, breakoutPointProps, holeProps, pcbKeepoutProps, netLabelProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, silkscreenLineProps, smtPadProps, traceHintProps, viaProps, cutoutProps, batteryProps, pinHeaderProps, resonatorProps, inductorProps, potentiometerProps, pushButtonProps, crystalProps, transistorProps, mosfetProps, switchProps, testpointProps, schematicTextProps, schematicBoxProps, schematicTableProps, schematicRowProps, schematicCellProps, CapacitorProps, ChipProps, DiodeProps, ResistorProps, ManualEditEvent, ManualEditsFile, ChipConnections, manual_edits_file } from '@tscircuit/props';
2
+ import { PlatformConfig, subcircuitGroupProps, AutorouterConfig, traceProps, SupplierPartNumbers, SchematicPortArrangement, groupProps, boardProps, capacitorProps, chipProps, diodeProps, fuseProps, jumperProps, solderjumperProps, ledProps, powerSourceProps, CommonComponentProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, subcircuitProps, breakoutProps, breakoutPointProps, holeProps, pcbKeepoutProps, netLabelProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, silkscreenLineProps, smtPadProps, traceHintProps, viaProps, cutoutProps, batteryProps, pinHeaderProps, resonatorProps, inductorProps, potentiometerProps, pushButtonProps, crystalProps, transistorProps, mosfetProps, switchProps, testpointProps, schematicTextProps, schematicBoxProps, schematicTableProps, schematicRowProps, schematicCellProps, CapacitorProps, ChipProps, DiodeProps, ResistorProps, ManualEditEvent, ManualEditsFile, ChipConnections, manual_edits_file } from '@tscircuit/props';
3
3
  import React, { ReactElement, DetailedHTMLProps, SVGProps } from 'react';
4
4
  export { createElement } from 'react';
5
5
  import * as zod from 'zod';
@@ -7515,6 +7515,947 @@ declare class PowerSource extends NormalComponent<typeof powerSourceProps, Polar
7515
7515
  negative: Port;
7516
7516
  }
7517
7517
 
7518
+ type WaveShape = "sinewave" | "square" | "triangle" | "sawtooth";
7519
+ interface VoltageSourceProps extends CommonComponentProps {
7520
+ voltage?: number | string;
7521
+ frequency?: number | string;
7522
+ peakToPeakVoltage?: number | string;
7523
+ waveShape?: WaveShape;
7524
+ phase?: number | string;
7525
+ }
7526
+ declare const voltageSourceProps: z.ZodObject<{
7527
+ pcbX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7528
+ pcbY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7529
+ pcbRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7530
+ schX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7531
+ schY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7532
+ schRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7533
+ layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
7534
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
7535
+ }, "strip", z.ZodTypeAny, {
7536
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7537
+ }, {
7538
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7539
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
7540
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7541
+ }>>;
7542
+ footprint: z.ZodOptional<z.ZodType<_tscircuit_props.FootprintProp, z.ZodTypeDef, _tscircuit_props.FootprintProp>>;
7543
+ relative: z.ZodOptional<z.ZodBoolean>;
7544
+ schRelative: z.ZodOptional<z.ZodBoolean>;
7545
+ pcbRelative: z.ZodOptional<z.ZodBoolean>;
7546
+ } & {
7547
+ supplierPartNumbers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, z.ZodArray<z.ZodString, "many">>>;
7548
+ } & {
7549
+ key: z.ZodOptional<z.ZodAny>;
7550
+ name: z.ZodString;
7551
+ cadModel: z.ZodOptional<z.ZodUnion<[z.ZodNull, z.ZodString, z.ZodObject<{
7552
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
7553
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7554
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7555
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7556
+ }, "strip", z.ZodTypeAny, {
7557
+ x: string | number;
7558
+ y: string | number;
7559
+ z: string | number;
7560
+ }, {
7561
+ x: string | number;
7562
+ y: string | number;
7563
+ z: string | number;
7564
+ }>]>>;
7565
+ positionOffset: z.ZodOptional<z.ZodObject<{
7566
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7567
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7568
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7569
+ }, "strip", z.ZodTypeAny, {
7570
+ x: number;
7571
+ y: number;
7572
+ z: number;
7573
+ }, {
7574
+ x: string | number;
7575
+ y: string | number;
7576
+ z: string | number;
7577
+ }>>;
7578
+ size: z.ZodOptional<z.ZodObject<{
7579
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7580
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7581
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7582
+ }, "strip", z.ZodTypeAny, {
7583
+ x: number;
7584
+ y: number;
7585
+ z: number;
7586
+ }, {
7587
+ x: string | number;
7588
+ y: string | number;
7589
+ z: string | number;
7590
+ }>>;
7591
+ } & {
7592
+ stlUrl: z.ZodString;
7593
+ }, "strip", z.ZodTypeAny, {
7594
+ stlUrl: string;
7595
+ rotationOffset?: number | {
7596
+ x: string | number;
7597
+ y: string | number;
7598
+ z: string | number;
7599
+ } | undefined;
7600
+ positionOffset?: {
7601
+ x: number;
7602
+ y: number;
7603
+ z: number;
7604
+ } | undefined;
7605
+ size?: {
7606
+ x: number;
7607
+ y: number;
7608
+ z: number;
7609
+ } | undefined;
7610
+ }, {
7611
+ stlUrl: string;
7612
+ rotationOffset?: number | {
7613
+ x: string | number;
7614
+ y: string | number;
7615
+ z: string | number;
7616
+ } | undefined;
7617
+ positionOffset?: {
7618
+ x: string | number;
7619
+ y: string | number;
7620
+ z: string | number;
7621
+ } | undefined;
7622
+ size?: {
7623
+ x: string | number;
7624
+ y: string | number;
7625
+ z: string | number;
7626
+ } | undefined;
7627
+ }>, z.ZodObject<{
7628
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
7629
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7630
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7631
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7632
+ }, "strip", z.ZodTypeAny, {
7633
+ x: string | number;
7634
+ y: string | number;
7635
+ z: string | number;
7636
+ }, {
7637
+ x: string | number;
7638
+ y: string | number;
7639
+ z: string | number;
7640
+ }>]>>;
7641
+ positionOffset: z.ZodOptional<z.ZodObject<{
7642
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7643
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7644
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7645
+ }, "strip", z.ZodTypeAny, {
7646
+ x: number;
7647
+ y: number;
7648
+ z: number;
7649
+ }, {
7650
+ x: string | number;
7651
+ y: string | number;
7652
+ z: string | number;
7653
+ }>>;
7654
+ size: z.ZodOptional<z.ZodObject<{
7655
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7656
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7657
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7658
+ }, "strip", z.ZodTypeAny, {
7659
+ x: number;
7660
+ y: number;
7661
+ z: number;
7662
+ }, {
7663
+ x: string | number;
7664
+ y: string | number;
7665
+ z: string | number;
7666
+ }>>;
7667
+ } & {
7668
+ objUrl: z.ZodString;
7669
+ mtlUrl: z.ZodOptional<z.ZodString>;
7670
+ }, "strip", z.ZodTypeAny, {
7671
+ objUrl: string;
7672
+ rotationOffset?: number | {
7673
+ x: string | number;
7674
+ y: string | number;
7675
+ z: string | number;
7676
+ } | undefined;
7677
+ positionOffset?: {
7678
+ x: number;
7679
+ y: number;
7680
+ z: number;
7681
+ } | undefined;
7682
+ size?: {
7683
+ x: number;
7684
+ y: number;
7685
+ z: number;
7686
+ } | undefined;
7687
+ mtlUrl?: string | undefined;
7688
+ }, {
7689
+ objUrl: string;
7690
+ rotationOffset?: number | {
7691
+ x: string | number;
7692
+ y: string | number;
7693
+ z: string | number;
7694
+ } | undefined;
7695
+ positionOffset?: {
7696
+ x: string | number;
7697
+ y: string | number;
7698
+ z: string | number;
7699
+ } | undefined;
7700
+ size?: {
7701
+ x: string | number;
7702
+ y: string | number;
7703
+ z: string | number;
7704
+ } | undefined;
7705
+ mtlUrl?: string | undefined;
7706
+ }>, z.ZodObject<{
7707
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
7708
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7709
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7710
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7711
+ }, "strip", z.ZodTypeAny, {
7712
+ x: string | number;
7713
+ y: string | number;
7714
+ z: string | number;
7715
+ }, {
7716
+ x: string | number;
7717
+ y: string | number;
7718
+ z: string | number;
7719
+ }>]>>;
7720
+ positionOffset: z.ZodOptional<z.ZodObject<{
7721
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7722
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7723
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7724
+ }, "strip", z.ZodTypeAny, {
7725
+ x: number;
7726
+ y: number;
7727
+ z: number;
7728
+ }, {
7729
+ x: string | number;
7730
+ y: string | number;
7731
+ z: string | number;
7732
+ }>>;
7733
+ size: z.ZodOptional<z.ZodObject<{
7734
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7735
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7736
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
7737
+ }, "strip", z.ZodTypeAny, {
7738
+ x: number;
7739
+ y: number;
7740
+ z: number;
7741
+ }, {
7742
+ x: string | number;
7743
+ y: string | number;
7744
+ z: string | number;
7745
+ }>>;
7746
+ } & {
7747
+ jscad: z.ZodRecord<z.ZodString, z.ZodAny>;
7748
+ }, "strip", z.ZodTypeAny, {
7749
+ jscad: Record<string, any>;
7750
+ rotationOffset?: number | {
7751
+ x: string | number;
7752
+ y: string | number;
7753
+ z: string | number;
7754
+ } | undefined;
7755
+ positionOffset?: {
7756
+ x: number;
7757
+ y: number;
7758
+ z: number;
7759
+ } | undefined;
7760
+ size?: {
7761
+ x: number;
7762
+ y: number;
7763
+ z: number;
7764
+ } | undefined;
7765
+ }, {
7766
+ jscad: Record<string, any>;
7767
+ rotationOffset?: number | {
7768
+ x: string | number;
7769
+ y: string | number;
7770
+ z: string | number;
7771
+ } | undefined;
7772
+ positionOffset?: {
7773
+ x: string | number;
7774
+ y: string | number;
7775
+ z: string | number;
7776
+ } | undefined;
7777
+ size?: {
7778
+ x: string | number;
7779
+ y: string | number;
7780
+ z: string | number;
7781
+ } | undefined;
7782
+ }>]>>;
7783
+ children: z.ZodOptional<z.ZodAny>;
7784
+ symbolName: z.ZodOptional<z.ZodString>;
7785
+ doNotPlace: z.ZodOptional<z.ZodBoolean>;
7786
+ pinAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
7787
+ providesPower: z.ZodOptional<z.ZodBoolean>;
7788
+ requiresPower: z.ZodOptional<z.ZodBoolean>;
7789
+ providesGround: z.ZodOptional<z.ZodBoolean>;
7790
+ requiresGround: z.ZodOptional<z.ZodBoolean>;
7791
+ providesVoltage: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
7792
+ requiresVoltage: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
7793
+ }, "strip", z.ZodTypeAny, {
7794
+ providesPower?: boolean | undefined;
7795
+ requiresPower?: boolean | undefined;
7796
+ providesGround?: boolean | undefined;
7797
+ requiresGround?: boolean | undefined;
7798
+ providesVoltage?: string | number | undefined;
7799
+ requiresVoltage?: string | number | undefined;
7800
+ }, {
7801
+ providesPower?: boolean | undefined;
7802
+ requiresPower?: boolean | undefined;
7803
+ providesGround?: boolean | undefined;
7804
+ requiresGround?: boolean | undefined;
7805
+ providesVoltage?: string | number | undefined;
7806
+ requiresVoltage?: string | number | undefined;
7807
+ }>>>;
7808
+ } & {
7809
+ voltage: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7810
+ frequency: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7811
+ peakToPeakVoltage: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7812
+ waveShape: z.ZodOptional<z.ZodEnum<["sinewave", "square", "triangle", "sawtooth"]>>;
7813
+ phase: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7814
+ }, "strip", z.ZodTypeAny, {
7815
+ name: string;
7816
+ children?: any;
7817
+ key?: any;
7818
+ footprint?: _tscircuit_props.FootprintProp | undefined;
7819
+ relative?: boolean | undefined;
7820
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
7821
+ phase?: number | undefined;
7822
+ voltage?: number | undefined;
7823
+ pcbX?: number | undefined;
7824
+ pcbY?: number | undefined;
7825
+ frequency?: number | undefined;
7826
+ pcbRotation?: number | undefined;
7827
+ schX?: number | undefined;
7828
+ schY?: number | undefined;
7829
+ schRotation?: number | undefined;
7830
+ schRelative?: boolean | undefined;
7831
+ pcbRelative?: boolean | undefined;
7832
+ pinAttributes?: Record<string, {
7833
+ providesPower?: boolean | undefined;
7834
+ requiresPower?: boolean | undefined;
7835
+ providesGround?: boolean | undefined;
7836
+ requiresGround?: boolean | undefined;
7837
+ providesVoltage?: string | number | undefined;
7838
+ requiresVoltage?: string | number | undefined;
7839
+ }> | undefined;
7840
+ peakToPeakVoltage?: number | undefined;
7841
+ waveShape?: "square" | "sinewave" | "triangle" | "sawtooth" | undefined;
7842
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
7843
+ cadModel?: string | {
7844
+ stlUrl: string;
7845
+ rotationOffset?: number | {
7846
+ x: string | number;
7847
+ y: string | number;
7848
+ z: string | number;
7849
+ } | undefined;
7850
+ positionOffset?: {
7851
+ x: number;
7852
+ y: number;
7853
+ z: number;
7854
+ } | undefined;
7855
+ size?: {
7856
+ x: number;
7857
+ y: number;
7858
+ z: number;
7859
+ } | undefined;
7860
+ } | {
7861
+ objUrl: string;
7862
+ rotationOffset?: number | {
7863
+ x: string | number;
7864
+ y: string | number;
7865
+ z: string | number;
7866
+ } | undefined;
7867
+ positionOffset?: {
7868
+ x: number;
7869
+ y: number;
7870
+ z: number;
7871
+ } | undefined;
7872
+ size?: {
7873
+ x: number;
7874
+ y: number;
7875
+ z: number;
7876
+ } | undefined;
7877
+ mtlUrl?: string | undefined;
7878
+ } | {
7879
+ jscad: Record<string, any>;
7880
+ rotationOffset?: number | {
7881
+ x: string | number;
7882
+ y: string | number;
7883
+ z: string | number;
7884
+ } | undefined;
7885
+ positionOffset?: {
7886
+ x: number;
7887
+ y: number;
7888
+ z: number;
7889
+ } | undefined;
7890
+ size?: {
7891
+ x: number;
7892
+ y: number;
7893
+ z: number;
7894
+ } | undefined;
7895
+ } | null | undefined;
7896
+ symbolName?: string | undefined;
7897
+ doNotPlace?: boolean | undefined;
7898
+ }, {
7899
+ name: string;
7900
+ children?: any;
7901
+ key?: any;
7902
+ footprint?: _tscircuit_props.FootprintProp | undefined;
7903
+ relative?: boolean | undefined;
7904
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
7905
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7906
+ } | undefined;
7907
+ phase?: string | number | undefined;
7908
+ voltage?: string | number | undefined;
7909
+ pcbX?: string | number | undefined;
7910
+ pcbY?: string | number | undefined;
7911
+ frequency?: string | number | undefined;
7912
+ pcbRotation?: string | number | undefined;
7913
+ schX?: string | number | undefined;
7914
+ schY?: string | number | undefined;
7915
+ schRotation?: string | number | undefined;
7916
+ schRelative?: boolean | undefined;
7917
+ pcbRelative?: boolean | undefined;
7918
+ pinAttributes?: Record<string, {
7919
+ providesPower?: boolean | undefined;
7920
+ requiresPower?: boolean | undefined;
7921
+ providesGround?: boolean | undefined;
7922
+ requiresGround?: boolean | undefined;
7923
+ providesVoltage?: string | number | undefined;
7924
+ requiresVoltage?: string | number | undefined;
7925
+ }> | undefined;
7926
+ peakToPeakVoltage?: string | number | undefined;
7927
+ waveShape?: "square" | "sinewave" | "triangle" | "sawtooth" | undefined;
7928
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
7929
+ cadModel?: string | {
7930
+ stlUrl: string;
7931
+ rotationOffset?: number | {
7932
+ x: string | number;
7933
+ y: string | number;
7934
+ z: string | number;
7935
+ } | undefined;
7936
+ positionOffset?: {
7937
+ x: string | number;
7938
+ y: string | number;
7939
+ z: string | number;
7940
+ } | undefined;
7941
+ size?: {
7942
+ x: string | number;
7943
+ y: string | number;
7944
+ z: string | number;
7945
+ } | undefined;
7946
+ } | {
7947
+ objUrl: string;
7948
+ rotationOffset?: number | {
7949
+ x: string | number;
7950
+ y: string | number;
7951
+ z: string | number;
7952
+ } | undefined;
7953
+ positionOffset?: {
7954
+ x: string | number;
7955
+ y: string | number;
7956
+ z: string | number;
7957
+ } | undefined;
7958
+ size?: {
7959
+ x: string | number;
7960
+ y: string | number;
7961
+ z: string | number;
7962
+ } | undefined;
7963
+ mtlUrl?: string | undefined;
7964
+ } | {
7965
+ jscad: Record<string, any>;
7966
+ rotationOffset?: number | {
7967
+ x: string | number;
7968
+ y: string | number;
7969
+ z: string | number;
7970
+ } | undefined;
7971
+ positionOffset?: {
7972
+ x: string | number;
7973
+ y: string | number;
7974
+ z: string | number;
7975
+ } | undefined;
7976
+ size?: {
7977
+ x: string | number;
7978
+ y: string | number;
7979
+ z: string | number;
7980
+ } | undefined;
7981
+ } | null | undefined;
7982
+ symbolName?: string | undefined;
7983
+ doNotPlace?: boolean | undefined;
7984
+ }>;
7985
+ declare class VoltageSource extends NormalComponent<typeof voltageSourceProps, "terminal1" | "terminal2"> {
7986
+ get config(): {
7987
+ componentName: string;
7988
+ schematicSymbolName: BaseSymbolName;
7989
+ zodProps: z.ZodObject<{
7990
+ pcbX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7991
+ pcbY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7992
+ pcbRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7993
+ schX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7994
+ schY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7995
+ schRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7996
+ layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
7997
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
7998
+ }, "strip", z.ZodTypeAny, {
7999
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
8000
+ }, {
8001
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
8002
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
8003
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
8004
+ }>>;
8005
+ footprint: z.ZodOptional<z.ZodType<_tscircuit_props.FootprintProp, z.ZodTypeDef, _tscircuit_props.FootprintProp>>;
8006
+ relative: z.ZodOptional<z.ZodBoolean>;
8007
+ schRelative: z.ZodOptional<z.ZodBoolean>;
8008
+ pcbRelative: z.ZodOptional<z.ZodBoolean>;
8009
+ } & {
8010
+ supplierPartNumbers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, z.ZodArray<z.ZodString, "many">>>;
8011
+ } & {
8012
+ key: z.ZodOptional<z.ZodAny>;
8013
+ name: z.ZodString;
8014
+ cadModel: z.ZodOptional<z.ZodUnion<[z.ZodNull, z.ZodString, z.ZodObject<{
8015
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
8016
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8017
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8018
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8019
+ }, "strip", z.ZodTypeAny, {
8020
+ x: string | number;
8021
+ y: string | number;
8022
+ z: string | number;
8023
+ }, {
8024
+ x: string | number;
8025
+ y: string | number;
8026
+ z: string | number;
8027
+ }>]>>;
8028
+ positionOffset: z.ZodOptional<z.ZodObject<{
8029
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8030
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8031
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8032
+ }, "strip", z.ZodTypeAny, {
8033
+ x: number;
8034
+ y: number;
8035
+ z: number;
8036
+ }, {
8037
+ x: string | number;
8038
+ y: string | number;
8039
+ z: string | number;
8040
+ }>>;
8041
+ size: z.ZodOptional<z.ZodObject<{
8042
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8043
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8044
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8045
+ }, "strip", z.ZodTypeAny, {
8046
+ x: number;
8047
+ y: number;
8048
+ z: number;
8049
+ }, {
8050
+ x: string | number;
8051
+ y: string | number;
8052
+ z: string | number;
8053
+ }>>;
8054
+ } & {
8055
+ stlUrl: z.ZodString;
8056
+ }, "strip", z.ZodTypeAny, {
8057
+ stlUrl: string;
8058
+ rotationOffset?: number | {
8059
+ x: string | number;
8060
+ y: string | number;
8061
+ z: string | number;
8062
+ } | undefined;
8063
+ positionOffset?: {
8064
+ x: number;
8065
+ y: number;
8066
+ z: number;
8067
+ } | undefined;
8068
+ size?: {
8069
+ x: number;
8070
+ y: number;
8071
+ z: number;
8072
+ } | undefined;
8073
+ }, {
8074
+ stlUrl: string;
8075
+ rotationOffset?: number | {
8076
+ x: string | number;
8077
+ y: string | number;
8078
+ z: string | number;
8079
+ } | undefined;
8080
+ positionOffset?: {
8081
+ x: string | number;
8082
+ y: string | number;
8083
+ z: string | number;
8084
+ } | undefined;
8085
+ size?: {
8086
+ x: string | number;
8087
+ y: string | number;
8088
+ z: string | number;
8089
+ } | undefined;
8090
+ }>, z.ZodObject<{
8091
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
8092
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8093
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8094
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8095
+ }, "strip", z.ZodTypeAny, {
8096
+ x: string | number;
8097
+ y: string | number;
8098
+ z: string | number;
8099
+ }, {
8100
+ x: string | number;
8101
+ y: string | number;
8102
+ z: string | number;
8103
+ }>]>>;
8104
+ positionOffset: z.ZodOptional<z.ZodObject<{
8105
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8106
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8107
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8108
+ }, "strip", z.ZodTypeAny, {
8109
+ x: number;
8110
+ y: number;
8111
+ z: number;
8112
+ }, {
8113
+ x: string | number;
8114
+ y: string | number;
8115
+ z: string | number;
8116
+ }>>;
8117
+ size: z.ZodOptional<z.ZodObject<{
8118
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8119
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8120
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8121
+ }, "strip", z.ZodTypeAny, {
8122
+ x: number;
8123
+ y: number;
8124
+ z: number;
8125
+ }, {
8126
+ x: string | number;
8127
+ y: string | number;
8128
+ z: string | number;
8129
+ }>>;
8130
+ } & {
8131
+ objUrl: z.ZodString;
8132
+ mtlUrl: z.ZodOptional<z.ZodString>;
8133
+ }, "strip", z.ZodTypeAny, {
8134
+ objUrl: string;
8135
+ rotationOffset?: number | {
8136
+ x: string | number;
8137
+ y: string | number;
8138
+ z: string | number;
8139
+ } | undefined;
8140
+ positionOffset?: {
8141
+ x: number;
8142
+ y: number;
8143
+ z: number;
8144
+ } | undefined;
8145
+ size?: {
8146
+ x: number;
8147
+ y: number;
8148
+ z: number;
8149
+ } | undefined;
8150
+ mtlUrl?: string | undefined;
8151
+ }, {
8152
+ objUrl: string;
8153
+ rotationOffset?: number | {
8154
+ x: string | number;
8155
+ y: string | number;
8156
+ z: string | number;
8157
+ } | undefined;
8158
+ positionOffset?: {
8159
+ x: string | number;
8160
+ y: string | number;
8161
+ z: string | number;
8162
+ } | undefined;
8163
+ size?: {
8164
+ x: string | number;
8165
+ y: string | number;
8166
+ z: string | number;
8167
+ } | undefined;
8168
+ mtlUrl?: string | undefined;
8169
+ }>, z.ZodObject<{
8170
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
8171
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8172
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8173
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
8174
+ }, "strip", z.ZodTypeAny, {
8175
+ x: string | number;
8176
+ y: string | number;
8177
+ z: string | number;
8178
+ }, {
8179
+ x: string | number;
8180
+ y: string | number;
8181
+ z: string | number;
8182
+ }>]>>;
8183
+ positionOffset: z.ZodOptional<z.ZodObject<{
8184
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8185
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8186
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8187
+ }, "strip", z.ZodTypeAny, {
8188
+ x: number;
8189
+ y: number;
8190
+ z: number;
8191
+ }, {
8192
+ x: string | number;
8193
+ y: string | number;
8194
+ z: string | number;
8195
+ }>>;
8196
+ size: z.ZodOptional<z.ZodObject<{
8197
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8198
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8199
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
8200
+ }, "strip", z.ZodTypeAny, {
8201
+ x: number;
8202
+ y: number;
8203
+ z: number;
8204
+ }, {
8205
+ x: string | number;
8206
+ y: string | number;
8207
+ z: string | number;
8208
+ }>>;
8209
+ } & {
8210
+ jscad: z.ZodRecord<z.ZodString, z.ZodAny>;
8211
+ }, "strip", z.ZodTypeAny, {
8212
+ jscad: Record<string, any>;
8213
+ rotationOffset?: number | {
8214
+ x: string | number;
8215
+ y: string | number;
8216
+ z: string | number;
8217
+ } | undefined;
8218
+ positionOffset?: {
8219
+ x: number;
8220
+ y: number;
8221
+ z: number;
8222
+ } | undefined;
8223
+ size?: {
8224
+ x: number;
8225
+ y: number;
8226
+ z: number;
8227
+ } | undefined;
8228
+ }, {
8229
+ jscad: Record<string, any>;
8230
+ rotationOffset?: number | {
8231
+ x: string | number;
8232
+ y: string | number;
8233
+ z: string | number;
8234
+ } | undefined;
8235
+ positionOffset?: {
8236
+ x: string | number;
8237
+ y: string | number;
8238
+ z: string | number;
8239
+ } | undefined;
8240
+ size?: {
8241
+ x: string | number;
8242
+ y: string | number;
8243
+ z: string | number;
8244
+ } | undefined;
8245
+ }>]>>;
8246
+ children: z.ZodOptional<z.ZodAny>;
8247
+ symbolName: z.ZodOptional<z.ZodString>;
8248
+ doNotPlace: z.ZodOptional<z.ZodBoolean>;
8249
+ pinAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
8250
+ providesPower: z.ZodOptional<z.ZodBoolean>;
8251
+ requiresPower: z.ZodOptional<z.ZodBoolean>;
8252
+ providesGround: z.ZodOptional<z.ZodBoolean>;
8253
+ requiresGround: z.ZodOptional<z.ZodBoolean>;
8254
+ providesVoltage: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8255
+ requiresVoltage: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8256
+ }, "strip", z.ZodTypeAny, {
8257
+ providesPower?: boolean | undefined;
8258
+ requiresPower?: boolean | undefined;
8259
+ providesGround?: boolean | undefined;
8260
+ requiresGround?: boolean | undefined;
8261
+ providesVoltage?: string | number | undefined;
8262
+ requiresVoltage?: string | number | undefined;
8263
+ }, {
8264
+ providesPower?: boolean | undefined;
8265
+ requiresPower?: boolean | undefined;
8266
+ providesGround?: boolean | undefined;
8267
+ requiresGround?: boolean | undefined;
8268
+ providesVoltage?: string | number | undefined;
8269
+ requiresVoltage?: string | number | undefined;
8270
+ }>>>;
8271
+ } & {
8272
+ voltage: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
8273
+ frequency: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
8274
+ peakToPeakVoltage: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
8275
+ waveShape: z.ZodOptional<z.ZodEnum<["sinewave", "square", "triangle", "sawtooth"]>>;
8276
+ phase: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
8277
+ }, "strip", z.ZodTypeAny, {
8278
+ name: string;
8279
+ children?: any;
8280
+ key?: any;
8281
+ footprint?: _tscircuit_props.FootprintProp | undefined;
8282
+ relative?: boolean | undefined;
8283
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
8284
+ phase?: number | undefined;
8285
+ voltage?: number | undefined;
8286
+ pcbX?: number | undefined;
8287
+ pcbY?: number | undefined;
8288
+ frequency?: number | undefined;
8289
+ pcbRotation?: number | undefined;
8290
+ schX?: number | undefined;
8291
+ schY?: number | undefined;
8292
+ schRotation?: number | undefined;
8293
+ schRelative?: boolean | undefined;
8294
+ pcbRelative?: boolean | undefined;
8295
+ pinAttributes?: Record<string, {
8296
+ providesPower?: boolean | undefined;
8297
+ requiresPower?: boolean | undefined;
8298
+ providesGround?: boolean | undefined;
8299
+ requiresGround?: boolean | undefined;
8300
+ providesVoltage?: string | number | undefined;
8301
+ requiresVoltage?: string | number | undefined;
8302
+ }> | undefined;
8303
+ peakToPeakVoltage?: number | undefined;
8304
+ waveShape?: "square" | "sinewave" | "triangle" | "sawtooth" | undefined;
8305
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
8306
+ cadModel?: string | {
8307
+ stlUrl: string;
8308
+ rotationOffset?: number | {
8309
+ x: string | number;
8310
+ y: string | number;
8311
+ z: string | number;
8312
+ } | undefined;
8313
+ positionOffset?: {
8314
+ x: number;
8315
+ y: number;
8316
+ z: number;
8317
+ } | undefined;
8318
+ size?: {
8319
+ x: number;
8320
+ y: number;
8321
+ z: number;
8322
+ } | undefined;
8323
+ } | {
8324
+ objUrl: string;
8325
+ rotationOffset?: number | {
8326
+ x: string | number;
8327
+ y: string | number;
8328
+ z: string | number;
8329
+ } | undefined;
8330
+ positionOffset?: {
8331
+ x: number;
8332
+ y: number;
8333
+ z: number;
8334
+ } | undefined;
8335
+ size?: {
8336
+ x: number;
8337
+ y: number;
8338
+ z: number;
8339
+ } | undefined;
8340
+ mtlUrl?: string | undefined;
8341
+ } | {
8342
+ jscad: Record<string, any>;
8343
+ rotationOffset?: number | {
8344
+ x: string | number;
8345
+ y: string | number;
8346
+ z: string | number;
8347
+ } | undefined;
8348
+ positionOffset?: {
8349
+ x: number;
8350
+ y: number;
8351
+ z: number;
8352
+ } | undefined;
8353
+ size?: {
8354
+ x: number;
8355
+ y: number;
8356
+ z: number;
8357
+ } | undefined;
8358
+ } | null | undefined;
8359
+ symbolName?: string | undefined;
8360
+ doNotPlace?: boolean | undefined;
8361
+ }, {
8362
+ name: string;
8363
+ children?: any;
8364
+ key?: any;
8365
+ footprint?: _tscircuit_props.FootprintProp | undefined;
8366
+ relative?: boolean | undefined;
8367
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
8368
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
8369
+ } | undefined;
8370
+ phase?: string | number | undefined;
8371
+ voltage?: string | number | undefined;
8372
+ pcbX?: string | number | undefined;
8373
+ pcbY?: string | number | undefined;
8374
+ frequency?: string | number | undefined;
8375
+ pcbRotation?: string | number | undefined;
8376
+ schX?: string | number | undefined;
8377
+ schY?: string | number | undefined;
8378
+ schRotation?: string | number | undefined;
8379
+ schRelative?: boolean | undefined;
8380
+ pcbRelative?: boolean | undefined;
8381
+ pinAttributes?: Record<string, {
8382
+ providesPower?: boolean | undefined;
8383
+ requiresPower?: boolean | undefined;
8384
+ providesGround?: boolean | undefined;
8385
+ requiresGround?: boolean | undefined;
8386
+ providesVoltage?: string | number | undefined;
8387
+ requiresVoltage?: string | number | undefined;
8388
+ }> | undefined;
8389
+ peakToPeakVoltage?: string | number | undefined;
8390
+ waveShape?: "square" | "sinewave" | "triangle" | "sawtooth" | undefined;
8391
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
8392
+ cadModel?: string | {
8393
+ stlUrl: string;
8394
+ rotationOffset?: number | {
8395
+ x: string | number;
8396
+ y: string | number;
8397
+ z: string | number;
8398
+ } | undefined;
8399
+ positionOffset?: {
8400
+ x: string | number;
8401
+ y: string | number;
8402
+ z: string | number;
8403
+ } | undefined;
8404
+ size?: {
8405
+ x: string | number;
8406
+ y: string | number;
8407
+ z: string | number;
8408
+ } | undefined;
8409
+ } | {
8410
+ objUrl: string;
8411
+ rotationOffset?: number | {
8412
+ x: string | number;
8413
+ y: string | number;
8414
+ z: string | number;
8415
+ } | undefined;
8416
+ positionOffset?: {
8417
+ x: string | number;
8418
+ y: string | number;
8419
+ z: string | number;
8420
+ } | undefined;
8421
+ size?: {
8422
+ x: string | number;
8423
+ y: string | number;
8424
+ z: string | number;
8425
+ } | undefined;
8426
+ mtlUrl?: string | undefined;
8427
+ } | {
8428
+ jscad: Record<string, any>;
8429
+ rotationOffset?: number | {
8430
+ x: string | number;
8431
+ y: string | number;
8432
+ z: string | number;
8433
+ } | undefined;
8434
+ positionOffset?: {
8435
+ x: string | number;
8436
+ y: string | number;
8437
+ z: string | number;
8438
+ } | undefined;
8439
+ size?: {
8440
+ x: string | number;
8441
+ y: string | number;
8442
+ z: string | number;
8443
+ } | undefined;
8444
+ } | null | undefined;
8445
+ symbolName?: string | undefined;
8446
+ doNotPlace?: boolean | undefined;
8447
+ }>;
8448
+ sourceFtype: Ftype;
8449
+ };
8450
+ runRenderPhaseForChildren(phase: RenderPhase): void;
8451
+ doInitialPcbComponentRender(): void;
8452
+ initPorts(): void;
8453
+ doInitialSourceRender(): void;
8454
+ doInitialSimulationRender(): void;
8455
+ terminal1: Port;
8456
+ terminal2: Port;
8457
+ }
8458
+
7518
8459
  declare class Resistor extends NormalComponent<typeof resistorProps, PassivePorts> {
7519
8460
  get config(): {
7520
8461
  componentName: string;
@@ -16965,6 +17906,7 @@ interface TscircuitElements {
16965
17906
  switch: _tscircuit_props.SwitchProps;
16966
17907
  mosfet: _tscircuit_props.MosfetProps;
16967
17908
  testpoint: _tscircuit_props.TestpointProps;
17909
+ voltagesource: VoltageSourceProps;
16968
17910
  jscad: any;
16969
17911
  }
16970
17912
  declare module "react" {
@@ -16981,4 +17923,4 @@ declare module "react/jsx-runtime" {
16981
17923
  }
16982
17924
  }
16983
17925
 
16984
- export { type AsyncEffect, type AutorouterCompleteEvent, type AutorouterErrorEvent, type AutorouterEvent, type AutorouterProgressEvent, type AutoroutingEndEvent, type AutoroutingErrorEvent, type AutoroutingProgressEvent, type AutoroutingStartEvent, Battery, Board, Breakout, BreakoutPoint, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Cutout, Diode, FabricationNotePath, FabricationNoteText, Footprint, Fuse, type GenericConnectionsAndSelectorsSel, type GenericLocalAutorouter, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, type LocalCacheEngine, Mosfet, Net, NetLabel, NormalComponent, type Obstacle, PcbTrace, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, PushButton, type RenderPhase, type RenderPhaseFn, type RenderPhaseFunctions, type RenderPhaseStates, Renderable, Resistor, Resonator, RootCircuit, type RootCircuitEventName, SchematicBox, SchematicCell, SchematicRow, SchematicTable, SchematicText, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, SolderJumper, Subcircuit, Switch, TestPoint, Trace, TraceHint, Transistor, Via, applyEditEvents, applyEditEventsToManualEditsFile, applyPcbEditEventsToManualEditsFile, applySchematicEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, normalizePinLabels, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
17926
+ export { type AsyncEffect, type AutorouterCompleteEvent, type AutorouterErrorEvent, type AutorouterEvent, type AutorouterProgressEvent, type AutoroutingEndEvent, type AutoroutingErrorEvent, type AutoroutingProgressEvent, type AutoroutingStartEvent, Battery, Board, Breakout, BreakoutPoint, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Cutout, Diode, FabricationNotePath, FabricationNoteText, Footprint, Fuse, type GenericConnectionsAndSelectorsSel, type GenericLocalAutorouter, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, type LocalCacheEngine, Mosfet, Net, NetLabel, NormalComponent, type Obstacle, PcbTrace, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, PushButton, type RenderPhase, type RenderPhaseFn, type RenderPhaseFunctions, type RenderPhaseStates, Renderable, Resistor, Resonator, RootCircuit, type RootCircuitEventName, SchematicBox, SchematicCell, SchematicRow, SchematicTable, SchematicText, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, SolderJumper, Subcircuit, Switch, TestPoint, Trace, TraceHint, Transistor, Via, VoltageSource, applyEditEvents, applyEditEventsToManualEditsFile, applyPcbEditEventsToManualEditsFile, applySchematicEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, normalizePinLabels, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
package/dist/index.js CHANGED
@@ -60,7 +60,8 @@ __export(components_exports, {
60
60
  Trace: () => Trace3,
61
61
  TraceHint: () => TraceHint,
62
62
  Transistor: () => Transistor,
63
- Via: () => Via
63
+ Via: () => Via,
64
+ VoltageSource: () => VoltageSource
64
65
  });
65
66
 
66
67
  // lib/components/base-components/NormalComponent/NormalComponent.ts
@@ -4272,12 +4273,12 @@ var getObstaclesFromRoute = (route, source_trace_id, { viaDiameter = 0.5 } = {})
4272
4273
 
4273
4274
  // lib/utils/obstacles/generateApproximatingRects.ts
4274
4275
  function generateApproximatingRects(rotatedRect, numRects = 4) {
4275
- const { center, width, height, rotation: rotation2 } = rotatedRect;
4276
+ const { center, width, height, rotation: rotation4 } = rotatedRect;
4276
4277
  const rects = [];
4277
- const angleRad = rotation2 * Math.PI / 180;
4278
+ const angleRad = rotation4 * Math.PI / 180;
4278
4279
  const cosAngle = Math.cos(angleRad);
4279
4280
  const sinAngle = Math.sin(angleRad);
4280
- const normalizedRotation = (rotation2 % 360 + 360) % 360;
4281
+ const normalizedRotation = (rotation4 % 360 + 360) % 360;
4281
4282
  const sliceAlongWidth = height <= width ? normalizedRotation >= 45 && normalizedRotation < 135 || normalizedRotation >= 225 && normalizedRotation < 315 : normalizedRotation >= 135 && normalizedRotation < 225 || normalizedRotation >= 315 || normalizedRotation < 45;
4282
4283
  if (sliceAlongWidth) {
4283
4284
  const sliceWidth = width / numRects;
@@ -9094,7 +9095,7 @@ function getPresetAutoroutingConfig(autorouterConfig) {
9094
9095
  }
9095
9096
 
9096
9097
  // lib/components/primitive-components/Group/Group_doInitialPcbLayoutPack.ts
9097
- import { buildSubtree as buildSubtree2 } from "@tscircuit/circuit-json-util";
9098
+ import "@tscircuit/circuit-json-util";
9098
9099
  import {
9099
9100
  pack,
9100
9101
  convertCircuitJsonToPackOutput,
@@ -9108,6 +9109,12 @@ import {
9108
9109
  import { translate as translate6, rotate as rotate2, compose as compose4 } from "transformation-matrix";
9109
9110
  import Debug7 from "debug";
9110
9111
  var debug6 = Debug7("Group_doInitialPcbLayoutPack");
9112
+ var isDescendantGroup = (db, groupId, ancestorId) => {
9113
+ if (groupId === ancestorId) return true;
9114
+ const group = db.source_group.get(groupId);
9115
+ if (!group || !group.parent_source_group_id) return false;
9116
+ return isDescendantGroup(db, group.parent_source_group_id, ancestorId);
9117
+ };
9111
9118
  var Group_doInitialPcbLayoutPack = (group) => {
9112
9119
  const { db } = group.root;
9113
9120
  const { _parsedProps: props } = group;
@@ -9142,6 +9149,14 @@ var Group_doInitialPcbLayoutPack = (group) => {
9142
9149
  const { center, componentId, ccwRotationOffset, ccwRotationDegrees } = packedComponent;
9143
9150
  const pcbComponent = db.pcb_component.get(componentId);
9144
9151
  if (pcbComponent) {
9152
+ const currentGroupId = group.source_group_id;
9153
+ const sourceComponent = db.source_component.get(
9154
+ pcbComponent.source_component_id
9155
+ );
9156
+ const componentGroupId = sourceComponent?.source_group_id;
9157
+ if (componentGroupId !== void 0 && !isDescendantGroup(db, componentGroupId, currentGroupId)) {
9158
+ continue;
9159
+ }
9145
9160
  const originalCenter2 = pcbComponent.center;
9146
9161
  const rotationDegrees2 = ccwRotationDegrees ?? ccwRotationOffset ?? 0;
9147
9162
  const transformMatrix2 = compose4(
@@ -9166,8 +9181,49 @@ var Group_doInitialPcbLayoutPack = (group) => {
9166
9181
  rotate2(rotationDegrees * Math.PI / 180),
9167
9182
  translate6(-originalCenter.x, -originalCenter.y)
9168
9183
  );
9169
- const subtree = buildSubtree2(db.toArray(), { source_group_id: componentId });
9170
- transformPCBElements2(subtree, transformMatrix);
9184
+ const relatedElements = db.toArray().filter((elm) => {
9185
+ if ("source_group_id" in elm && elm.source_group_id) {
9186
+ if (elm.source_group_id === componentId) {
9187
+ return true;
9188
+ }
9189
+ if (isDescendantGroup(db, elm.source_group_id, componentId)) {
9190
+ return true;
9191
+ }
9192
+ }
9193
+ if ("source_component_id" in elm && elm.source_component_id) {
9194
+ const sourceComponent = db.source_component.get(elm.source_component_id);
9195
+ if (sourceComponent?.source_group_id) {
9196
+ if (sourceComponent.source_group_id === componentId) {
9197
+ return true;
9198
+ }
9199
+ if (isDescendantGroup(db, sourceComponent.source_group_id, componentId)) {
9200
+ return true;
9201
+ }
9202
+ }
9203
+ }
9204
+ if ("pcb_component_id" in elm && elm.pcb_component_id) {
9205
+ const pcbComponent2 = db.pcb_component.get(elm.pcb_component_id);
9206
+ if (pcbComponent2?.source_component_id) {
9207
+ const sourceComponent = db.source_component.get(
9208
+ pcbComponent2.source_component_id
9209
+ );
9210
+ if (sourceComponent?.source_group_id) {
9211
+ if (sourceComponent.source_group_id === componentId) {
9212
+ return true;
9213
+ }
9214
+ if (isDescendantGroup(
9215
+ db,
9216
+ sourceComponent.source_group_id,
9217
+ componentId
9218
+ )) {
9219
+ return true;
9220
+ }
9221
+ }
9222
+ }
9223
+ }
9224
+ return false;
9225
+ });
9226
+ transformPCBElements2(relatedElements, transformMatrix);
9171
9227
  db.pcb_group.update(pcbGroup.pcb_group_id, { center });
9172
9228
  }
9173
9229
  };
@@ -9432,13 +9488,15 @@ var Group = class extends NormalComponent {
9432
9488
  centerX += (padRight - padLeft) / 2;
9433
9489
  centerY += (padTop - padBottom) / 2;
9434
9490
  }
9491
+ const hasExplicitPositioning = this._parsedProps.pcbX !== void 0 || this._parsedProps.pcbY !== void 0;
9492
+ const center = hasExplicitPositioning ? db.pcb_group.get(this.pcb_group_id)?.center ?? {
9493
+ x: centerX,
9494
+ y: centerY
9495
+ } : { x: centerX, y: centerY };
9435
9496
  db.pcb_group.update(this.pcb_group_id, {
9436
9497
  width: Number(props.width ?? width),
9437
9498
  height: Number(props.height ?? height),
9438
- center: {
9439
- x: centerX,
9440
- y: centerY
9441
- }
9499
+ center
9442
9500
  });
9443
9501
  }
9444
9502
  }
@@ -10452,7 +10510,7 @@ var Chip = class extends NormalComponent {
10452
10510
  if (!pinAttributes) return;
10453
10511
  let powerPort = null;
10454
10512
  let groundPort = null;
10455
- let voltage;
10513
+ let voltage2;
10456
10514
  const ports = this.selectAll("port");
10457
10515
  for (const port of ports) {
10458
10516
  for (const alias of port.getNameAndAliases()) {
@@ -10460,7 +10518,7 @@ var Chip = class extends NormalComponent {
10460
10518
  const attributes = pinAttributes[alias];
10461
10519
  if (attributes.providesPower) {
10462
10520
  powerPort = port;
10463
- voltage = attributes.providesVoltage;
10521
+ voltage2 = attributes.providesVoltage;
10464
10522
  }
10465
10523
  if (attributes.providesGround) {
10466
10524
  groundPort = port;
@@ -10468,7 +10526,7 @@ var Chip = class extends NormalComponent {
10468
10526
  }
10469
10527
  }
10470
10528
  }
10471
- if (!powerPort || !groundPort || voltage === void 0) {
10529
+ if (!powerPort || !groundPort || voltage2 === void 0) {
10472
10530
  return;
10473
10531
  }
10474
10532
  const powerSourcePort = db.source_port.get(powerPort.source_port_id);
@@ -10491,7 +10549,7 @@ var Chip = class extends NormalComponent {
10491
10549
  positive_source_net_id: powerNet.source_net_id,
10492
10550
  negative_source_port_id: groundPort.source_port_id,
10493
10551
  negative_source_net_id: groundNet.source_net_id,
10494
- voltage
10552
+ voltage: voltage2
10495
10553
  });
10496
10554
  }
10497
10555
  };
@@ -10558,8 +10616,8 @@ var Fuse = class extends NormalComponent {
10558
10616
  const rawCurrent = this._parsedProps.currentRating;
10559
10617
  const rawVoltage = this._parsedProps.voltageRating;
10560
10618
  const current = typeof rawCurrent === "string" ? parseFloat(rawCurrent) : rawCurrent;
10561
- const voltage = typeof rawVoltage === "string" ? parseFloat(rawVoltage) : rawVoltage;
10562
- return `${formatSiUnit2(current)}A / ${formatSiUnit2(voltage)}V`;
10619
+ const voltage2 = typeof rawVoltage === "string" ? parseFloat(rawVoltage) : rawVoltage;
10620
+ return `${formatSiUnit2(current)}A / ${formatSiUnit2(voltage2)}V`;
10563
10621
  }
10564
10622
  doInitialSourceRender() {
10565
10623
  const { db } = this.root;
@@ -10918,6 +10976,84 @@ var PowerSource = class extends NormalComponent {
10918
10976
  negative = this.portMap.pin2;
10919
10977
  };
10920
10978
 
10979
+ // lib/components/normal-components/VoltageSource.ts
10980
+ import { frequency, rotation as rotation2, voltage } from "circuit-json";
10981
+ import {
10982
+ commonComponentProps
10983
+ } from "@tscircuit/props";
10984
+ import { z as z12 } from "zod";
10985
+ var voltageSourceProps = commonComponentProps.extend({
10986
+ voltage: voltage.optional(),
10987
+ frequency: frequency.optional(),
10988
+ peakToPeakVoltage: voltage.optional(),
10989
+ waveShape: z12.enum(["sinewave", "square", "triangle", "sawtooth"]).optional(),
10990
+ phase: rotation2.optional()
10991
+ });
10992
+ var VoltageSource = class extends NormalComponent {
10993
+ get config() {
10994
+ return {
10995
+ componentName: "VoltageSource",
10996
+ schematicSymbolName: "ac_voltmeter",
10997
+ zodProps: voltageSourceProps,
10998
+ sourceFtype: "simple_voltage_source"
10999
+ };
11000
+ }
11001
+ runRenderPhaseForChildren(phase) {
11002
+ if (phase.startsWith("Pcb")) {
11003
+ return;
11004
+ }
11005
+ for (const child of this.children) {
11006
+ child.runRenderPhaseForChildren(phase);
11007
+ child.runRenderPhase(phase);
11008
+ }
11009
+ }
11010
+ doInitialPcbComponentRender() {
11011
+ }
11012
+ initPorts() {
11013
+ super.initPorts({
11014
+ additionalAliases: {
11015
+ pin1: ["terminal1"],
11016
+ pin2: ["terminal2"]
11017
+ }
11018
+ });
11019
+ }
11020
+ doInitialSourceRender() {
11021
+ const { db } = this.root;
11022
+ const { _parsedProps: props } = this;
11023
+ const source_component = db.source_component.insert({
11024
+ ftype: "simple_voltage_source",
11025
+ name: this.name,
11026
+ voltage: props.voltage,
11027
+ frequency: props.frequency,
11028
+ peak_to_peak_voltage: props.peakToPeakVoltage,
11029
+ wave_shape: props.waveShape,
11030
+ phase: props.phase,
11031
+ supplier_part_numbers: props.supplierPartNumbers,
11032
+ are_pins_interchangeable: true
11033
+ });
11034
+ this.source_component_id = source_component.source_component_id;
11035
+ }
11036
+ doInitialSimulationRender() {
11037
+ const { db } = this.root;
11038
+ const { _parsedProps: props } = this;
11039
+ const terminal1Port = this.portMap.terminal1;
11040
+ const terminal2Port = this.portMap.terminal2;
11041
+ db.simulation_voltage_source.insert({
11042
+ type: "simulation_voltage_source",
11043
+ is_dc_source: false,
11044
+ terminal1_source_port_id: terminal1Port.source_port_id,
11045
+ terminal2_source_port_id: terminal2Port.source_port_id,
11046
+ voltage: props.voltage,
11047
+ frequency: props.frequency,
11048
+ peak_to_peak_voltage: props.peakToPeakVoltage,
11049
+ wave_shape: props.waveShape,
11050
+ phase: props.phase
11051
+ });
11052
+ }
11053
+ terminal1 = this.portMap.terminal1;
11054
+ terminal2 = this.portMap.terminal2;
11055
+ };
11056
+
10921
11057
  // lib/components/normal-components/Resistor.ts
10922
11058
  import { resistorProps } from "@tscircuit/props";
10923
11059
  import { formatSiUnit as formatSiUnit3 } from "format-si-unit";
@@ -12548,7 +12684,7 @@ import { identity as identity5 } from "transformation-matrix";
12548
12684
  var package_default = {
12549
12685
  name: "@tscircuit/core",
12550
12686
  type: "module",
12551
- version: "0.0.633",
12687
+ version: "0.0.635",
12552
12688
  types: "dist/index.d.ts",
12553
12689
  main: "dist/index.js",
12554
12690
  module: "dist/index.js",
@@ -12581,7 +12717,7 @@ var package_default = {
12581
12717
  "@tscircuit/matchpack": "^0.0.4",
12582
12718
  "@tscircuit/math-utils": "^0.0.18",
12583
12719
  "@tscircuit/miniflex": "^0.0.4",
12584
- "@tscircuit/props": "^0.0.286",
12720
+ "@tscircuit/props": "^0.0.287",
12585
12721
  "@tscircuit/schematic-autolayout": "^0.0.6",
12586
12722
  "@tscircuit/schematic-corpus": "^0.0.110",
12587
12723
  "@tscircuit/schematic-match-adapt": "^0.0.16",
@@ -12595,7 +12731,7 @@ var package_default = {
12595
12731
  "bun-match-svg": "0.0.12",
12596
12732
  "calculate-elbow": "^0.0.9",
12597
12733
  "chokidar-cli": "^3.0.0",
12598
- "circuit-json": "^0.0.230",
12734
+ "circuit-json": "^0.0.232",
12599
12735
  "circuit-json-to-bpc": "^0.0.13",
12600
12736
  "circuit-json-to-connectivity-map": "^0.0.22",
12601
12737
  "circuit-json-to-simple-3d": "^0.0.6",
@@ -13093,6 +13229,7 @@ export {
13093
13229
  TraceHint,
13094
13230
  Transistor,
13095
13231
  Via,
13232
+ VoltageSource,
13096
13233
  applyEditEvents,
13097
13234
  applyEditEventsToManualEditsFile,
13098
13235
  applyPcbEditEventsToManualEditsFile,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.634",
4
+ "version": "0.0.636",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "@tscircuit/matchpack": "^0.0.4",
35
35
  "@tscircuit/math-utils": "^0.0.18",
36
36
  "@tscircuit/miniflex": "^0.0.4",
37
- "@tscircuit/props": "^0.0.286",
37
+ "@tscircuit/props": "^0.0.287",
38
38
  "@tscircuit/schematic-autolayout": "^0.0.6",
39
39
  "@tscircuit/schematic-corpus": "^0.0.110",
40
40
  "@tscircuit/schematic-match-adapt": "^0.0.16",
@@ -48,7 +48,7 @@
48
48
  "bun-match-svg": "0.0.12",
49
49
  "calculate-elbow": "^0.0.9",
50
50
  "chokidar-cli": "^3.0.0",
51
- "circuit-json": "^0.0.230",
51
+ "circuit-json": "^0.0.232",
52
52
  "circuit-json-to-bpc": "^0.0.13",
53
53
  "circuit-json-to-connectivity-map": "^0.0.22",
54
54
  "circuit-json-to-simple-3d": "^0.0.6",