@tscircuit/core 0.0.463 → 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,
@@ -3026,7 +3027,8 @@ var getSizeOfSidesFromPortArrangement = (pa) => {
3026
3027
 
3027
3028
  // lib/utils/schematic/getAllDimensionsForSchematicBox.ts
3028
3029
  function isExplicitPinMappingArrangement(arrangement) {
3029
- return arrangement.leftSide !== void 0;
3030
+ const a = arrangement;
3031
+ return a.leftSide !== void 0 || a.rightSide !== void 0;
3030
3032
  }
3031
3033
  var getAllDimensionsForSchematicBox = (params) => {
3032
3034
  const portDistanceFromEdge = params.portDistanceFromEdge ?? 0.4;
@@ -5406,7 +5408,8 @@ var NormalComponent = class extends PrimitiveComponent2 {
5406
5408
  source_component_id: this.source_component_id,
5407
5409
  subcircuit_id: subcircuit.subcircuit_id ?? void 0
5408
5410
  });
5409
- if (!props.footprint && !this.isGroup) {
5411
+ const footprint = props.footprint ?? this._getImpliedFootprintString();
5412
+ if (!footprint && !this.isGroup) {
5410
5413
  const footprint_error = db.pcb_missing_footprint_error.insert({
5411
5414
  message: `No footprint found for component: ${this.getString()}`,
5412
5415
  source_component_id: `${this.source_component_id}`,
@@ -9496,6 +9499,57 @@ var Switch = class extends NormalComponent {
9496
9499
  }
9497
9500
  };
9498
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
+
9499
9553
  // lib/components/primitive-components/SchematicText.ts
9500
9554
  import { schematicTextProps } from "@tscircuit/props";
9501
9555
  var SchematicText = class extends PrimitiveComponent2 {
@@ -9729,7 +9783,7 @@ import { identity as identity4 } from "transformation-matrix";
9729
9783
  var package_default = {
9730
9784
  name: "@tscircuit/core",
9731
9785
  type: "module",
9732
- version: "0.0.462",
9786
+ version: "0.0.464",
9733
9787
  types: "dist/index.d.ts",
9734
9788
  main: "dist/index.js",
9735
9789
  module: "dist/index.js",
@@ -9755,13 +9809,13 @@ var package_default = {
9755
9809
  "@tscircuit/capacity-autorouter": "^0.0.67",
9756
9810
  "@tscircuit/checks": "^0.0.52",
9757
9811
  "@tscircuit/circuit-json-util": "^0.0.47",
9758
- "@tscircuit/footprinter": "^0.0.175",
9812
+ "@tscircuit/footprinter": "^0.0.177",
9759
9813
  "@tscircuit/import-snippet": "^0.0.4",
9760
9814
  "@tscircuit/infgrid-ijump-astar": "^0.0.33",
9761
9815
  "@tscircuit/layout": "^0.0.28",
9762
9816
  "@tscircuit/log-soup": "^1.0.2",
9763
9817
  "@tscircuit/math-utils": "^0.0.18",
9764
- "@tscircuit/props": "^0.0.219",
9818
+ "@tscircuit/props": "^0.0.220",
9765
9819
  "@tscircuit/schematic-autolayout": "^0.0.6",
9766
9820
  "@tscircuit/schematic-match-adapt": "^0.0.16",
9767
9821
  "@tscircuit/simple-3d-svg": "^0.0.6",
@@ -9785,7 +9839,7 @@ var package_default = {
9785
9839
  "pkg-pr-new": "^0.0.37",
9786
9840
  react: "^19.0.0",
9787
9841
  "react-dom": "^19.0.0",
9788
- "schematic-symbols": "^0.0.159",
9842
+ "schematic-symbols": "^0.0.160",
9789
9843
  "ts-expect": "^1.3.0",
9790
9844
  tsup: "^8.2.4"
9791
9845
  },
@@ -10244,6 +10298,7 @@ export {
10244
10298
  SolderJumper,
10245
10299
  Subcircuit,
10246
10300
  Switch,
10301
+ TestPoint,
10247
10302
  Trace2 as Trace,
10248
10303
  TraceHint,
10249
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.463",
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
  },