@tscircuit/core 0.0.464 → 0.0.465

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, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, silkscreenLineProps, smtPadProps, traceHintProps, viaProps, cutoutProps, batteryProps, pinHeaderProps, resonatorProps, inductorProps, potentiometerProps, pushButtonProps, crystalProps, transistorProps, mosfetProps, switchProps, schematicTextProps, schematicBoxProps, 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, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, subcircuitProps, breakoutProps, breakoutPointProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, silkscreenLineProps, smtPadProps, traceHintProps, viaProps, cutoutProps, batteryProps, pinHeaderProps, resonatorProps, inductorProps, potentiometerProps, pushButtonProps, crystalProps, transistorProps, mosfetProps, switchProps, testpointProps, schematicTextProps, schematicBoxProps, 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';
@@ -7887,7 +7887,7 @@ declare class SmtPad extends PrimitiveComponent<typeof smtPadProps> {
7887
7887
  isPcbPrimitive: boolean;
7888
7888
  get config(): {
7889
7889
  componentName: string;
7890
- zodProps: zod.ZodUnion<[zod.ZodObject<Omit<{
7890
+ zodProps: zod.ZodDiscriminatedUnion<"shape", [zod.ZodObject<Omit<{
7891
7891
  pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
7892
7892
  pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
7893
7893
  pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
@@ -13550,6 +13550,581 @@ declare class Switch extends NormalComponent<typeof switchProps> {
13550
13550
  doInitialSourceRender(): void;
13551
13551
  }
13552
13552
 
13553
+ declare class TestPoint extends NormalComponent<typeof testpointProps> {
13554
+ get config(): {
13555
+ componentName: string;
13556
+ schematicSymbolName: string;
13557
+ zodProps: zod.ZodEffects<zod.ZodObject<{
13558
+ pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13559
+ pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13560
+ pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13561
+ schX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13562
+ schY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13563
+ schRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13564
+ layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
13565
+ name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13566
+ }, "strip", zod.ZodTypeAny, {
13567
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13568
+ }, {
13569
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13570
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
13571
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13572
+ }>>;
13573
+ footprint: zod.ZodOptional<zod.ZodType<_tscircuit_props.Footprint, zod.ZodTypeDef, _tscircuit_props.Footprint>>;
13574
+ } & {
13575
+ supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
13576
+ } & {
13577
+ key: zod.ZodOptional<zod.ZodAny>;
13578
+ name: zod.ZodString;
13579
+ cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodNull, zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
13580
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
13581
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13582
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13583
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13584
+ }, "strip", zod.ZodTypeAny, {
13585
+ x: string | number;
13586
+ y: string | number;
13587
+ z: string | number;
13588
+ }, {
13589
+ x: string | number;
13590
+ y: string | number;
13591
+ z: string | number;
13592
+ }>]>>;
13593
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
13594
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13595
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13596
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13597
+ }, "strip", zod.ZodTypeAny, {
13598
+ x: number;
13599
+ y: number;
13600
+ z: number;
13601
+ }, {
13602
+ x: string | number;
13603
+ y: string | number;
13604
+ z: string | number;
13605
+ }>>;
13606
+ size: zod.ZodOptional<zod.ZodObject<{
13607
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13608
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13609
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13610
+ }, "strip", zod.ZodTypeAny, {
13611
+ x: number;
13612
+ y: number;
13613
+ z: number;
13614
+ }, {
13615
+ x: string | number;
13616
+ y: string | number;
13617
+ z: string | number;
13618
+ }>>;
13619
+ }, {
13620
+ stlUrl: zod.ZodString;
13621
+ }>, "strip", zod.ZodTypeAny, {
13622
+ stlUrl: string;
13623
+ rotationOffset?: number | {
13624
+ x: string | number;
13625
+ y: string | number;
13626
+ z: string | number;
13627
+ } | undefined;
13628
+ positionOffset?: {
13629
+ x: number;
13630
+ y: number;
13631
+ z: number;
13632
+ } | undefined;
13633
+ size?: {
13634
+ x: number;
13635
+ y: number;
13636
+ z: number;
13637
+ } | undefined;
13638
+ }, {
13639
+ stlUrl: string;
13640
+ rotationOffset?: number | {
13641
+ x: string | number;
13642
+ y: string | number;
13643
+ z: string | number;
13644
+ } | undefined;
13645
+ positionOffset?: {
13646
+ x: string | number;
13647
+ y: string | number;
13648
+ z: string | number;
13649
+ } | undefined;
13650
+ size?: {
13651
+ x: string | number;
13652
+ y: string | number;
13653
+ z: string | number;
13654
+ } | undefined;
13655
+ }>, zod.ZodObject<zod.objectUtil.extendShape<{
13656
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
13657
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13658
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13659
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13660
+ }, "strip", zod.ZodTypeAny, {
13661
+ x: string | number;
13662
+ y: string | number;
13663
+ z: string | number;
13664
+ }, {
13665
+ x: string | number;
13666
+ y: string | number;
13667
+ z: string | number;
13668
+ }>]>>;
13669
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
13670
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13671
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13672
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13673
+ }, "strip", zod.ZodTypeAny, {
13674
+ x: number;
13675
+ y: number;
13676
+ z: number;
13677
+ }, {
13678
+ x: string | number;
13679
+ y: string | number;
13680
+ z: string | number;
13681
+ }>>;
13682
+ size: zod.ZodOptional<zod.ZodObject<{
13683
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13684
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13685
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13686
+ }, "strip", zod.ZodTypeAny, {
13687
+ x: number;
13688
+ y: number;
13689
+ z: number;
13690
+ }, {
13691
+ x: string | number;
13692
+ y: string | number;
13693
+ z: string | number;
13694
+ }>>;
13695
+ }, {
13696
+ objUrl: zod.ZodString;
13697
+ mtlUrl: zod.ZodOptional<zod.ZodString>;
13698
+ }>, "strip", zod.ZodTypeAny, {
13699
+ objUrl: string;
13700
+ rotationOffset?: number | {
13701
+ x: string | number;
13702
+ y: string | number;
13703
+ z: string | number;
13704
+ } | undefined;
13705
+ positionOffset?: {
13706
+ x: number;
13707
+ y: number;
13708
+ z: number;
13709
+ } | undefined;
13710
+ size?: {
13711
+ x: number;
13712
+ y: number;
13713
+ z: number;
13714
+ } | undefined;
13715
+ mtlUrl?: string | undefined;
13716
+ }, {
13717
+ objUrl: string;
13718
+ rotationOffset?: number | {
13719
+ x: string | number;
13720
+ y: string | number;
13721
+ z: string | number;
13722
+ } | undefined;
13723
+ positionOffset?: {
13724
+ x: string | number;
13725
+ y: string | number;
13726
+ z: string | number;
13727
+ } | undefined;
13728
+ size?: {
13729
+ x: string | number;
13730
+ y: string | number;
13731
+ z: string | number;
13732
+ } | undefined;
13733
+ mtlUrl?: string | undefined;
13734
+ }>, zod.ZodObject<zod.objectUtil.extendShape<{
13735
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
13736
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13737
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13738
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
13739
+ }, "strip", zod.ZodTypeAny, {
13740
+ x: string | number;
13741
+ y: string | number;
13742
+ z: string | number;
13743
+ }, {
13744
+ x: string | number;
13745
+ y: string | number;
13746
+ z: string | number;
13747
+ }>]>>;
13748
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
13749
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13750
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13751
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13752
+ }, "strip", zod.ZodTypeAny, {
13753
+ x: number;
13754
+ y: number;
13755
+ z: number;
13756
+ }, {
13757
+ x: string | number;
13758
+ y: string | number;
13759
+ z: string | number;
13760
+ }>>;
13761
+ size: zod.ZodOptional<zod.ZodObject<{
13762
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13763
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13764
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13765
+ }, "strip", zod.ZodTypeAny, {
13766
+ x: number;
13767
+ y: number;
13768
+ z: number;
13769
+ }, {
13770
+ x: string | number;
13771
+ y: string | number;
13772
+ z: string | number;
13773
+ }>>;
13774
+ }, {
13775
+ jscad: zod.ZodRecord<zod.ZodString, zod.ZodAny>;
13776
+ }>, "strip", zod.ZodTypeAny, {
13777
+ jscad: Record<string, any>;
13778
+ rotationOffset?: number | {
13779
+ x: string | number;
13780
+ y: string | number;
13781
+ z: string | number;
13782
+ } | undefined;
13783
+ positionOffset?: {
13784
+ x: number;
13785
+ y: number;
13786
+ z: number;
13787
+ } | undefined;
13788
+ size?: {
13789
+ x: number;
13790
+ y: number;
13791
+ z: number;
13792
+ } | undefined;
13793
+ }, {
13794
+ jscad: Record<string, any>;
13795
+ rotationOffset?: number | {
13796
+ x: string | number;
13797
+ y: string | number;
13798
+ z: string | number;
13799
+ } | undefined;
13800
+ positionOffset?: {
13801
+ x: string | number;
13802
+ y: string | number;
13803
+ z: string | number;
13804
+ } | undefined;
13805
+ size?: {
13806
+ x: string | number;
13807
+ y: string | number;
13808
+ z: string | number;
13809
+ } | undefined;
13810
+ }>]>>;
13811
+ children: zod.ZodOptional<zod.ZodAny>;
13812
+ symbolName: zod.ZodOptional<zod.ZodString>;
13813
+ doNotPlace: zod.ZodOptional<zod.ZodBoolean>;
13814
+ } & {
13815
+ footprintVariant: zod.ZodDefault<zod.ZodOptional<zod.ZodEnum<["pad", "through_hole"]>>>;
13816
+ padShape: zod.ZodDefault<zod.ZodOptional<zod.ZodEnum<["rect", "circle"]>>>;
13817
+ padDiameter: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13818
+ holeDiameter: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13819
+ width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13820
+ height: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13821
+ }, "strip", zod.ZodTypeAny, {
13822
+ name: string;
13823
+ padShape: "circle" | "rect";
13824
+ footprintVariant: "pad" | "through_hole";
13825
+ pcbX?: number | undefined;
13826
+ pcbY?: number | undefined;
13827
+ pcbRotation?: number | undefined;
13828
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
13829
+ schX?: number | undefined;
13830
+ schY?: number | undefined;
13831
+ schRotation?: number | undefined;
13832
+ footprint?: _tscircuit_props.Footprint | undefined;
13833
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
13834
+ key?: any;
13835
+ cadModel?: string | {
13836
+ stlUrl: string;
13837
+ rotationOffset?: number | {
13838
+ x: string | number;
13839
+ y: string | number;
13840
+ z: string | number;
13841
+ } | undefined;
13842
+ positionOffset?: {
13843
+ x: number;
13844
+ y: number;
13845
+ z: number;
13846
+ } | undefined;
13847
+ size?: {
13848
+ x: number;
13849
+ y: number;
13850
+ z: number;
13851
+ } | undefined;
13852
+ } | {
13853
+ objUrl: string;
13854
+ rotationOffset?: number | {
13855
+ x: string | number;
13856
+ y: string | number;
13857
+ z: string | number;
13858
+ } | undefined;
13859
+ positionOffset?: {
13860
+ x: number;
13861
+ y: number;
13862
+ z: number;
13863
+ } | undefined;
13864
+ size?: {
13865
+ x: number;
13866
+ y: number;
13867
+ z: number;
13868
+ } | undefined;
13869
+ mtlUrl?: string | undefined;
13870
+ } | {
13871
+ jscad: Record<string, any>;
13872
+ rotationOffset?: number | {
13873
+ x: string | number;
13874
+ y: string | number;
13875
+ z: string | number;
13876
+ } | undefined;
13877
+ positionOffset?: {
13878
+ x: number;
13879
+ y: number;
13880
+ z: number;
13881
+ } | undefined;
13882
+ size?: {
13883
+ x: number;
13884
+ y: number;
13885
+ z: number;
13886
+ } | undefined;
13887
+ } | null | undefined;
13888
+ children?: any;
13889
+ symbolName?: string | undefined;
13890
+ doNotPlace?: boolean | undefined;
13891
+ width?: number | undefined;
13892
+ height?: number | undefined;
13893
+ holeDiameter?: number | undefined;
13894
+ padDiameter?: number | undefined;
13895
+ }, {
13896
+ name: string;
13897
+ pcbX?: string | number | undefined;
13898
+ pcbY?: string | number | undefined;
13899
+ pcbRotation?: string | number | undefined;
13900
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
13901
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13902
+ } | undefined;
13903
+ schX?: string | number | undefined;
13904
+ schY?: string | number | undefined;
13905
+ schRotation?: string | number | undefined;
13906
+ footprint?: _tscircuit_props.Footprint | undefined;
13907
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
13908
+ key?: any;
13909
+ cadModel?: string | {
13910
+ stlUrl: string;
13911
+ rotationOffset?: number | {
13912
+ x: string | number;
13913
+ y: string | number;
13914
+ z: string | number;
13915
+ } | undefined;
13916
+ positionOffset?: {
13917
+ x: string | number;
13918
+ y: string | number;
13919
+ z: string | number;
13920
+ } | undefined;
13921
+ size?: {
13922
+ x: string | number;
13923
+ y: string | number;
13924
+ z: string | number;
13925
+ } | undefined;
13926
+ } | {
13927
+ objUrl: string;
13928
+ rotationOffset?: number | {
13929
+ x: string | number;
13930
+ y: string | number;
13931
+ z: string | number;
13932
+ } | undefined;
13933
+ positionOffset?: {
13934
+ x: string | number;
13935
+ y: string | number;
13936
+ z: string | number;
13937
+ } | undefined;
13938
+ size?: {
13939
+ x: string | number;
13940
+ y: string | number;
13941
+ z: string | number;
13942
+ } | undefined;
13943
+ mtlUrl?: string | undefined;
13944
+ } | {
13945
+ jscad: Record<string, any>;
13946
+ rotationOffset?: number | {
13947
+ x: string | number;
13948
+ y: string | number;
13949
+ z: string | number;
13950
+ } | undefined;
13951
+ positionOffset?: {
13952
+ x: string | number;
13953
+ y: string | number;
13954
+ z: string | number;
13955
+ } | undefined;
13956
+ size?: {
13957
+ x: string | number;
13958
+ y: string | number;
13959
+ z: string | number;
13960
+ } | undefined;
13961
+ } | null | undefined;
13962
+ children?: any;
13963
+ symbolName?: string | undefined;
13964
+ doNotPlace?: boolean | undefined;
13965
+ width?: string | number | undefined;
13966
+ height?: string | number | undefined;
13967
+ holeDiameter?: string | number | undefined;
13968
+ padShape?: "circle" | "rect" | undefined;
13969
+ footprintVariant?: "pad" | "through_hole" | undefined;
13970
+ padDiameter?: string | number | undefined;
13971
+ }>, {
13972
+ name: string;
13973
+ padShape: "circle" | "rect";
13974
+ footprintVariant: "pad" | "through_hole";
13975
+ pcbX?: number | undefined;
13976
+ pcbY?: number | undefined;
13977
+ pcbRotation?: number | undefined;
13978
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
13979
+ schX?: number | undefined;
13980
+ schY?: number | undefined;
13981
+ schRotation?: number | undefined;
13982
+ footprint?: _tscircuit_props.Footprint | undefined;
13983
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
13984
+ key?: any;
13985
+ cadModel?: string | {
13986
+ stlUrl: string;
13987
+ rotationOffset?: number | {
13988
+ x: string | number;
13989
+ y: string | number;
13990
+ z: string | number;
13991
+ } | undefined;
13992
+ positionOffset?: {
13993
+ x: number;
13994
+ y: number;
13995
+ z: number;
13996
+ } | undefined;
13997
+ size?: {
13998
+ x: number;
13999
+ y: number;
14000
+ z: number;
14001
+ } | undefined;
14002
+ } | {
14003
+ objUrl: string;
14004
+ rotationOffset?: number | {
14005
+ x: string | number;
14006
+ y: string | number;
14007
+ z: string | number;
14008
+ } | undefined;
14009
+ positionOffset?: {
14010
+ x: number;
14011
+ y: number;
14012
+ z: number;
14013
+ } | undefined;
14014
+ size?: {
14015
+ x: number;
14016
+ y: number;
14017
+ z: number;
14018
+ } | undefined;
14019
+ mtlUrl?: string | undefined;
14020
+ } | {
14021
+ jscad: Record<string, any>;
14022
+ rotationOffset?: number | {
14023
+ x: string | number;
14024
+ y: string | number;
14025
+ z: string | number;
14026
+ } | undefined;
14027
+ positionOffset?: {
14028
+ x: number;
14029
+ y: number;
14030
+ z: number;
14031
+ } | undefined;
14032
+ size?: {
14033
+ x: number;
14034
+ y: number;
14035
+ z: number;
14036
+ } | undefined;
14037
+ } | null | undefined;
14038
+ children?: any;
14039
+ symbolName?: string | undefined;
14040
+ doNotPlace?: boolean | undefined;
14041
+ width?: number | undefined;
14042
+ height?: number | undefined;
14043
+ holeDiameter?: number | undefined;
14044
+ padDiameter?: number | undefined;
14045
+ }, {
14046
+ name: string;
14047
+ pcbX?: string | number | undefined;
14048
+ pcbY?: string | number | undefined;
14049
+ pcbRotation?: string | number | undefined;
14050
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
14051
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
14052
+ } | undefined;
14053
+ schX?: string | number | undefined;
14054
+ schY?: string | number | undefined;
14055
+ schRotation?: string | number | undefined;
14056
+ footprint?: _tscircuit_props.Footprint | undefined;
14057
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
14058
+ key?: any;
14059
+ cadModel?: string | {
14060
+ stlUrl: string;
14061
+ rotationOffset?: number | {
14062
+ x: string | number;
14063
+ y: string | number;
14064
+ z: string | number;
14065
+ } | undefined;
14066
+ positionOffset?: {
14067
+ x: string | number;
14068
+ y: string | number;
14069
+ z: string | number;
14070
+ } | undefined;
14071
+ size?: {
14072
+ x: string | number;
14073
+ y: string | number;
14074
+ z: string | number;
14075
+ } | undefined;
14076
+ } | {
14077
+ objUrl: string;
14078
+ rotationOffset?: number | {
14079
+ x: string | number;
14080
+ y: string | number;
14081
+ z: string | number;
14082
+ } | undefined;
14083
+ positionOffset?: {
14084
+ x: string | number;
14085
+ y: string | number;
14086
+ z: string | number;
14087
+ } | undefined;
14088
+ size?: {
14089
+ x: string | number;
14090
+ y: string | number;
14091
+ z: string | number;
14092
+ } | undefined;
14093
+ mtlUrl?: string | undefined;
14094
+ } | {
14095
+ jscad: Record<string, any>;
14096
+ rotationOffset?: number | {
14097
+ x: string | number;
14098
+ y: string | number;
14099
+ z: string | number;
14100
+ } | undefined;
14101
+ positionOffset?: {
14102
+ x: string | number;
14103
+ y: string | number;
14104
+ z: string | number;
14105
+ } | undefined;
14106
+ size?: {
14107
+ x: string | number;
14108
+ y: string | number;
14109
+ z: string | number;
14110
+ } | undefined;
14111
+ } | null | undefined;
14112
+ children?: any;
14113
+ symbolName?: string | undefined;
14114
+ doNotPlace?: boolean | undefined;
14115
+ width?: string | number | undefined;
14116
+ height?: string | number | undefined;
14117
+ holeDiameter?: string | number | undefined;
14118
+ padShape?: "circle" | "rect" | undefined;
14119
+ footprintVariant?: "pad" | "through_hole" | undefined;
14120
+ padDiameter?: string | number | undefined;
14121
+ }>;
14122
+ sourceFtype: "simple_test_point";
14123
+ };
14124
+ _getImpliedFootprintString(): string | null;
14125
+ doInitialSourceRender(): void;
14126
+ }
14127
+
13553
14128
  declare class SchematicText extends PrimitiveComponent<typeof schematicTextProps> {
13554
14129
  isSchematicPrimitive: boolean;
13555
14130
  get config(): {
@@ -14100,6 +14675,7 @@ interface TscircuitElements {
14100
14675
  transistor: _tscircuit_props.TransistorProps;
14101
14676
  switch: _tscircuit_props.SwitchProps;
14102
14677
  mosfet: _tscircuit_props.MosfetProps;
14678
+ testpoint: _tscircuit_props.TestpointProps;
14103
14679
  jscad: any;
14104
14680
  }
14105
14681
  declare module "react" {
@@ -14116,4 +14692,4 @@ declare module "react/jsx-runtime" {
14116
14692
  }
14117
14693
  }
14118
14694
 
14119
- 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, NetAlias, 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, SchematicText, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, SolderJumper, Subcircuit, Switch, Trace, TraceHint, Transistor, Via, applyEditEvents, applyEditEventsToManualEditsFile, applyPcbEditEventsToManualEditsFile, applySchematicEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, normalizePinLabels, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
14695
+ 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, NetAlias, 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, 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 };
package/dist/index.js CHANGED
@@ -53,6 +53,7 @@ __export(components_exports, {
53
53
  SolderJumper: () => SolderJumper,
54
54
  Subcircuit: () => Subcircuit,
55
55
  Switch: () => Switch,
56
+ TestPoint: () => TestPoint,
56
57
  Trace: () => Trace2,
57
58
  TraceHint: () => TraceHint,
58
59
  Transistor: () => Transistor,
@@ -5407,7 +5408,8 @@ var NormalComponent = class extends PrimitiveComponent2 {
5407
5408
  source_component_id: this.source_component_id,
5408
5409
  subcircuit_id: subcircuit.subcircuit_id ?? void 0
5409
5410
  });
5410
- if (!props.footprint && !this.isGroup) {
5411
+ const footprint = props.footprint ?? this._getImpliedFootprintString();
5412
+ if (!footprint && !this.isGroup) {
5411
5413
  const footprint_error = db.pcb_missing_footprint_error.insert({
5412
5414
  message: `No footprint found for component: ${this.getString()}`,
5413
5415
  source_component_id: `${this.source_component_id}`,
@@ -9497,6 +9499,57 @@ var Switch = class extends NormalComponent {
9497
9499
  }
9498
9500
  };
9499
9501
 
9502
+ // lib/components/normal-components/TestPoint.ts
9503
+ import { testpointProps } from "@tscircuit/props";
9504
+ var TestPoint = class extends NormalComponent {
9505
+ get config() {
9506
+ return {
9507
+ componentName: "TestPoint",
9508
+ schematicSymbolName: this.props.symbolName ?? "testpoint",
9509
+ zodProps: testpointProps,
9510
+ sourceFtype: FTYPE.simple_test_point
9511
+ };
9512
+ }
9513
+ _getImpliedFootprintString() {
9514
+ let {
9515
+ padShape,
9516
+ holeDiameter,
9517
+ footprintVariant,
9518
+ // TODO SMTPAD
9519
+ padDiameter,
9520
+ width,
9521
+ height
9522
+ } = this._parsedProps;
9523
+ if (!footprintVariant && holeDiameter) {
9524
+ footprintVariant = "through_hole";
9525
+ }
9526
+ footprintVariant ??= "through_hole";
9527
+ padShape ??= "circle";
9528
+ if (footprintVariant === "through_hole") {
9529
+ holeDiameter ??= 0.5;
9530
+ return `platedhole_d${holeDiameter}`;
9531
+ }
9532
+ throw new Error(`Footprint variant "${footprintVariant}" not implemented`);
9533
+ }
9534
+ doInitialSourceRender() {
9535
+ const { db } = this.root;
9536
+ const { _parsedProps: props } = this;
9537
+ const source_component = db.source_component.insert({
9538
+ ftype: FTYPE.simple_test_point,
9539
+ name: props.name,
9540
+ supplier_part_numbers: props.supplierPartNumbers,
9541
+ footprint_variant: props.footprintVariant,
9542
+ pad_shape: props.padShape,
9543
+ pad_diameter: props.padDiameter,
9544
+ hole_diameter: props.holeDiameter,
9545
+ width: props.width,
9546
+ height: props.height,
9547
+ are_pins_interchangeable: true
9548
+ });
9549
+ this.source_component_id = source_component.source_component_id;
9550
+ }
9551
+ };
9552
+
9500
9553
  // lib/components/primitive-components/SchematicText.ts
9501
9554
  import { schematicTextProps } from "@tscircuit/props";
9502
9555
  var SchematicText = class extends PrimitiveComponent2 {
@@ -9730,7 +9783,7 @@ import { identity as identity4 } from "transformation-matrix";
9730
9783
  var package_default = {
9731
9784
  name: "@tscircuit/core",
9732
9785
  type: "module",
9733
- version: "0.0.463",
9786
+ version: "0.0.464",
9734
9787
  types: "dist/index.d.ts",
9735
9788
  main: "dist/index.js",
9736
9789
  module: "dist/index.js",
@@ -9756,13 +9809,13 @@ var package_default = {
9756
9809
  "@tscircuit/capacity-autorouter": "^0.0.67",
9757
9810
  "@tscircuit/checks": "^0.0.52",
9758
9811
  "@tscircuit/circuit-json-util": "^0.0.47",
9759
- "@tscircuit/footprinter": "^0.0.175",
9812
+ "@tscircuit/footprinter": "^0.0.177",
9760
9813
  "@tscircuit/import-snippet": "^0.0.4",
9761
9814
  "@tscircuit/infgrid-ijump-astar": "^0.0.33",
9762
9815
  "@tscircuit/layout": "^0.0.28",
9763
9816
  "@tscircuit/log-soup": "^1.0.2",
9764
9817
  "@tscircuit/math-utils": "^0.0.18",
9765
- "@tscircuit/props": "^0.0.219",
9818
+ "@tscircuit/props": "^0.0.220",
9766
9819
  "@tscircuit/schematic-autolayout": "^0.0.6",
9767
9820
  "@tscircuit/schematic-match-adapt": "^0.0.16",
9768
9821
  "@tscircuit/simple-3d-svg": "^0.0.6",
@@ -9786,7 +9839,7 @@ var package_default = {
9786
9839
  "pkg-pr-new": "^0.0.37",
9787
9840
  react: "^19.0.0",
9788
9841
  "react-dom": "^19.0.0",
9789
- "schematic-symbols": "^0.0.159",
9842
+ "schematic-symbols": "^0.0.160",
9790
9843
  "ts-expect": "^1.3.0",
9791
9844
  tsup: "^8.2.4"
9792
9845
  },
@@ -10245,6 +10298,7 @@ export {
10245
10298
  SolderJumper,
10246
10299
  Subcircuit,
10247
10300
  Switch,
10301
+ TestPoint,
10248
10302
  Trace2 as Trace,
10249
10303
  TraceHint,
10250
10304
  Transistor,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.464",
4
+ "version": "0.0.465",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -27,13 +27,13 @@
27
27
  "@tscircuit/capacity-autorouter": "^0.0.67",
28
28
  "@tscircuit/checks": "^0.0.52",
29
29
  "@tscircuit/circuit-json-util": "^0.0.47",
30
- "@tscircuit/footprinter": "^0.0.175",
30
+ "@tscircuit/footprinter": "^0.0.177",
31
31
  "@tscircuit/import-snippet": "^0.0.4",
32
32
  "@tscircuit/infgrid-ijump-astar": "^0.0.33",
33
33
  "@tscircuit/layout": "^0.0.28",
34
34
  "@tscircuit/log-soup": "^1.0.2",
35
35
  "@tscircuit/math-utils": "^0.0.18",
36
- "@tscircuit/props": "^0.0.219",
36
+ "@tscircuit/props": "^0.0.220",
37
37
  "@tscircuit/schematic-autolayout": "^0.0.6",
38
38
  "@tscircuit/schematic-match-adapt": "^0.0.16",
39
39
  "@tscircuit/simple-3d-svg": "^0.0.6",
@@ -57,7 +57,7 @@
57
57
  "pkg-pr-new": "^0.0.37",
58
58
  "react": "^19.0.0",
59
59
  "react-dom": "^19.0.0",
60
- "schematic-symbols": "^0.0.159",
60
+ "schematic-symbols": "^0.0.160",
61
61
  "ts-expect": "^1.3.0",
62
62
  "tsup": "^8.2.4"
63
63
  },