@tscircuit/core 0.0.174 → 0.0.176

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 { subcircuitGroupProps, traceProps, SupplierPartNumbers, SchematicPortArrangement, groupProps, boardProps, capacitorProps, chipProps, diodeProps, jumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, smtPadProps, traceHintProps, viaProps, batteryProps, pinHeaderProps, inductorProps, CapacitorProps, ChipProps, ResistorProps } from '@tscircuit/props';
2
+ import { subcircuitGroupProps, traceProps, SupplierPartNumbers, SchematicPortArrangement, groupProps, boardProps, capacitorProps, chipProps, diodeProps, jumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, smtPadProps, traceHintProps, viaProps, batteryProps, pinHeaderProps, inductorProps, potentiometerProps, CapacitorProps, ChipProps, ResistorProps } from '@tscircuit/props';
3
3
  import React, { ReactElement } from 'react';
4
4
  import * as zod from 'zod';
5
5
  import { z, ZodType } from 'zod';
@@ -6698,6 +6698,414 @@ declare class Inductor extends NormalComponent<typeof inductorProps, PassivePort
6698
6698
  doInitialSourceRender(): void;
6699
6699
  }
6700
6700
 
6701
+ declare class Potentiometer extends NormalComponent<typeof potentiometerProps, PolarizedPassivePorts> {
6702
+ get config(): {
6703
+ schematicSymbolName: string;
6704
+ componentName: string;
6705
+ zodProps: zod.ZodObject<zod.objectUtil.extendShape<zod.objectUtil.extendShape<zod.objectUtil.extendShape<{
6706
+ pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
6707
+ pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
6708
+ pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
6709
+ schX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
6710
+ schY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
6711
+ schRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
6712
+ layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
6713
+ name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
6714
+ }, "strip", zod.ZodTypeAny, {
6715
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
6716
+ }, {
6717
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
6718
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
6719
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
6720
+ }>>;
6721
+ footprint: zod.ZodOptional<zod.ZodType<_tscircuit_props.Footprint, zod.ZodTypeDef, _tscircuit_props.Footprint>>;
6722
+ }, {
6723
+ supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
6724
+ }>, {
6725
+ key: zod.ZodOptional<zod.ZodAny>;
6726
+ name: zod.ZodString;
6727
+ cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
6728
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
6729
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6730
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6731
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6732
+ }, "strip", zod.ZodTypeAny, {
6733
+ x: string | number;
6734
+ y: string | number;
6735
+ z: string | number;
6736
+ }, {
6737
+ x: string | number;
6738
+ y: string | number;
6739
+ z: string | number;
6740
+ }>]>>;
6741
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
6742
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6743
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6744
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6745
+ }, "strip", zod.ZodTypeAny, {
6746
+ x: number;
6747
+ y: number;
6748
+ z: number;
6749
+ }, {
6750
+ x: string | number;
6751
+ y: string | number;
6752
+ z: string | number;
6753
+ }>>;
6754
+ size: zod.ZodOptional<zod.ZodObject<{
6755
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6756
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6757
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6758
+ }, "strip", zod.ZodTypeAny, {
6759
+ x: number;
6760
+ y: number;
6761
+ z: number;
6762
+ }, {
6763
+ x: string | number;
6764
+ y: string | number;
6765
+ z: string | number;
6766
+ }>>;
6767
+ }, {
6768
+ stlUrl: zod.ZodString;
6769
+ }>, "strip", zod.ZodTypeAny, {
6770
+ stlUrl: string;
6771
+ rotationOffset?: number | {
6772
+ x: string | number;
6773
+ y: string | number;
6774
+ z: string | number;
6775
+ } | undefined;
6776
+ positionOffset?: {
6777
+ x: number;
6778
+ y: number;
6779
+ z: number;
6780
+ } | undefined;
6781
+ size?: {
6782
+ x: number;
6783
+ y: number;
6784
+ z: number;
6785
+ } | undefined;
6786
+ }, {
6787
+ stlUrl: string;
6788
+ rotationOffset?: number | {
6789
+ x: string | number;
6790
+ y: string | number;
6791
+ z: string | number;
6792
+ } | undefined;
6793
+ positionOffset?: {
6794
+ x: string | number;
6795
+ y: string | number;
6796
+ z: string | number;
6797
+ } | undefined;
6798
+ size?: {
6799
+ x: string | number;
6800
+ y: string | number;
6801
+ z: string | number;
6802
+ } | undefined;
6803
+ }>, zod.ZodObject<zod.objectUtil.extendShape<{
6804
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
6805
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6806
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6807
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6808
+ }, "strip", zod.ZodTypeAny, {
6809
+ x: string | number;
6810
+ y: string | number;
6811
+ z: string | number;
6812
+ }, {
6813
+ x: string | number;
6814
+ y: string | number;
6815
+ z: string | number;
6816
+ }>]>>;
6817
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
6818
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6819
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6820
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6821
+ }, "strip", zod.ZodTypeAny, {
6822
+ x: number;
6823
+ y: number;
6824
+ z: number;
6825
+ }, {
6826
+ x: string | number;
6827
+ y: string | number;
6828
+ z: string | number;
6829
+ }>>;
6830
+ size: zod.ZodOptional<zod.ZodObject<{
6831
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6832
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6833
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6834
+ }, "strip", zod.ZodTypeAny, {
6835
+ x: number;
6836
+ y: number;
6837
+ z: number;
6838
+ }, {
6839
+ x: string | number;
6840
+ y: string | number;
6841
+ z: string | number;
6842
+ }>>;
6843
+ }, {
6844
+ objUrl: zod.ZodString;
6845
+ mtlUrl: zod.ZodOptional<zod.ZodString>;
6846
+ }>, "strip", zod.ZodTypeAny, {
6847
+ objUrl: string;
6848
+ rotationOffset?: number | {
6849
+ x: string | number;
6850
+ y: string | number;
6851
+ z: string | number;
6852
+ } | undefined;
6853
+ positionOffset?: {
6854
+ x: number;
6855
+ y: number;
6856
+ z: number;
6857
+ } | undefined;
6858
+ size?: {
6859
+ x: number;
6860
+ y: number;
6861
+ z: number;
6862
+ } | undefined;
6863
+ mtlUrl?: string | undefined;
6864
+ }, {
6865
+ objUrl: string;
6866
+ rotationOffset?: number | {
6867
+ x: string | number;
6868
+ y: string | number;
6869
+ z: string | number;
6870
+ } | undefined;
6871
+ positionOffset?: {
6872
+ x: string | number;
6873
+ y: string | number;
6874
+ z: string | number;
6875
+ } | undefined;
6876
+ size?: {
6877
+ x: string | number;
6878
+ y: string | number;
6879
+ z: string | number;
6880
+ } | undefined;
6881
+ mtlUrl?: string | undefined;
6882
+ }>, zod.ZodObject<zod.objectUtil.extendShape<{
6883
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
6884
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6885
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6886
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
6887
+ }, "strip", zod.ZodTypeAny, {
6888
+ x: string | number;
6889
+ y: string | number;
6890
+ z: string | number;
6891
+ }, {
6892
+ x: string | number;
6893
+ y: string | number;
6894
+ z: string | number;
6895
+ }>]>>;
6896
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
6897
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6898
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6899
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6900
+ }, "strip", zod.ZodTypeAny, {
6901
+ x: number;
6902
+ y: number;
6903
+ z: number;
6904
+ }, {
6905
+ x: string | number;
6906
+ y: string | number;
6907
+ z: string | number;
6908
+ }>>;
6909
+ size: zod.ZodOptional<zod.ZodObject<{
6910
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6911
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6912
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6913
+ }, "strip", zod.ZodTypeAny, {
6914
+ x: number;
6915
+ y: number;
6916
+ z: number;
6917
+ }, {
6918
+ x: string | number;
6919
+ y: string | number;
6920
+ z: string | number;
6921
+ }>>;
6922
+ }, {
6923
+ jscad: zod.ZodRecord<zod.ZodString, zod.ZodAny>;
6924
+ }>, "strip", zod.ZodTypeAny, {
6925
+ jscad: Record<string, any>;
6926
+ rotationOffset?: number | {
6927
+ x: string | number;
6928
+ y: string | number;
6929
+ z: string | number;
6930
+ } | undefined;
6931
+ positionOffset?: {
6932
+ x: number;
6933
+ y: number;
6934
+ z: number;
6935
+ } | undefined;
6936
+ size?: {
6937
+ x: number;
6938
+ y: number;
6939
+ z: number;
6940
+ } | undefined;
6941
+ }, {
6942
+ jscad: Record<string, any>;
6943
+ rotationOffset?: number | {
6944
+ x: string | number;
6945
+ y: string | number;
6946
+ z: string | number;
6947
+ } | undefined;
6948
+ positionOffset?: {
6949
+ x: string | number;
6950
+ y: string | number;
6951
+ z: string | number;
6952
+ } | undefined;
6953
+ size?: {
6954
+ x: string | number;
6955
+ y: string | number;
6956
+ z: string | number;
6957
+ } | undefined;
6958
+ }>]>>;
6959
+ children: zod.ZodOptional<zod.ZodAny>;
6960
+ symbolName: zod.ZodOptional<zod.ZodString>;
6961
+ }>, {
6962
+ maxResistance: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
6963
+ }>, "strip", zod.ZodTypeAny, {
6964
+ name: string;
6965
+ maxResistance: number;
6966
+ pcbX?: number | undefined;
6967
+ pcbY?: number | undefined;
6968
+ pcbRotation?: number | undefined;
6969
+ schX?: number | undefined;
6970
+ schY?: number | undefined;
6971
+ schRotation?: number | undefined;
6972
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
6973
+ footprint?: _tscircuit_props.Footprint | undefined;
6974
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
6975
+ key?: any;
6976
+ cadModel?: string | {
6977
+ stlUrl: string;
6978
+ rotationOffset?: number | {
6979
+ x: string | number;
6980
+ y: string | number;
6981
+ z: string | number;
6982
+ } | undefined;
6983
+ positionOffset?: {
6984
+ x: number;
6985
+ y: number;
6986
+ z: number;
6987
+ } | undefined;
6988
+ size?: {
6989
+ x: number;
6990
+ y: number;
6991
+ z: number;
6992
+ } | undefined;
6993
+ } | {
6994
+ objUrl: string;
6995
+ rotationOffset?: number | {
6996
+ x: string | number;
6997
+ y: string | number;
6998
+ z: string | number;
6999
+ } | undefined;
7000
+ positionOffset?: {
7001
+ x: number;
7002
+ y: number;
7003
+ z: number;
7004
+ } | undefined;
7005
+ size?: {
7006
+ x: number;
7007
+ y: number;
7008
+ z: number;
7009
+ } | undefined;
7010
+ mtlUrl?: string | undefined;
7011
+ } | {
7012
+ jscad: Record<string, any>;
7013
+ rotationOffset?: number | {
7014
+ x: string | number;
7015
+ y: string | number;
7016
+ z: string | number;
7017
+ } | undefined;
7018
+ positionOffset?: {
7019
+ x: number;
7020
+ y: number;
7021
+ z: number;
7022
+ } | undefined;
7023
+ size?: {
7024
+ x: number;
7025
+ y: number;
7026
+ z: number;
7027
+ } | undefined;
7028
+ } | undefined;
7029
+ children?: any;
7030
+ symbolName?: string | undefined;
7031
+ }, {
7032
+ name: string;
7033
+ maxResistance: string | number;
7034
+ pcbX?: string | number | undefined;
7035
+ pcbY?: string | number | undefined;
7036
+ pcbRotation?: string | number | undefined;
7037
+ schX?: string | number | undefined;
7038
+ schY?: string | number | undefined;
7039
+ schRotation?: string | number | undefined;
7040
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
7041
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7042
+ } | undefined;
7043
+ footprint?: _tscircuit_props.Footprint | undefined;
7044
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
7045
+ key?: any;
7046
+ cadModel?: string | {
7047
+ stlUrl: string;
7048
+ rotationOffset?: number | {
7049
+ x: string | number;
7050
+ y: string | number;
7051
+ z: string | number;
7052
+ } | undefined;
7053
+ positionOffset?: {
7054
+ x: string | number;
7055
+ y: string | number;
7056
+ z: string | number;
7057
+ } | undefined;
7058
+ size?: {
7059
+ x: string | number;
7060
+ y: string | number;
7061
+ z: string | number;
7062
+ } | undefined;
7063
+ } | {
7064
+ objUrl: string;
7065
+ rotationOffset?: number | {
7066
+ x: string | number;
7067
+ y: string | number;
7068
+ z: string | number;
7069
+ } | undefined;
7070
+ positionOffset?: {
7071
+ x: string | number;
7072
+ y: string | number;
7073
+ z: string | number;
7074
+ } | undefined;
7075
+ size?: {
7076
+ x: string | number;
7077
+ y: string | number;
7078
+ z: string | number;
7079
+ } | undefined;
7080
+ mtlUrl?: string | undefined;
7081
+ } | {
7082
+ jscad: Record<string, any>;
7083
+ rotationOffset?: number | {
7084
+ x: string | number;
7085
+ y: string | number;
7086
+ z: string | number;
7087
+ } | undefined;
7088
+ positionOffset?: {
7089
+ x: string | number;
7090
+ y: string | number;
7091
+ z: string | number;
7092
+ } | undefined;
7093
+ size?: {
7094
+ x: string | number;
7095
+ y: string | number;
7096
+ z: string | number;
7097
+ } | undefined;
7098
+ } | undefined;
7099
+ children?: any;
7100
+ symbolName?: string | undefined;
7101
+ }>;
7102
+ sourceFtype: Ftype;
7103
+ };
7104
+ initPorts(): void;
7105
+ _getSchematicSymbolDisplayValue(): string | undefined;
7106
+ doInitialSourceRender(): void;
7107
+ }
7108
+
6701
7109
  declare const useRenderedCircuit: (reactElements: React.ReactElement) => {
6702
7110
  isLoading: boolean;
6703
7111
  error?: Error | null;
@@ -7014,6 +7422,7 @@ declare global {
7014
7422
  board: _tscircuit_props.BoardProps;
7015
7423
  jumper: _tscircuit_props.JumperProps;
7016
7424
  bug: _tscircuit_props.ChipProps;
7425
+ potentiometer: _tscircuit_props.PotentiometerProps;
7017
7426
  chip: _tscircuit_props.ChipProps;
7018
7427
  powersource: _tscircuit_props.PowerSourceProps;
7019
7428
  via: _tscircuit_props.ViaProps;
@@ -7051,4 +7460,4 @@ declare global {
7051
7460
  }
7052
7461
  }
7053
7462
 
7054
- export { Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Diode, FabricationNotePath, FabricationNoteText, Footprint, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Net, NetAlias, NormalComponent, PinHeader, type PinLabelSpec, PlatedHole, Port, PowerSource, PrimitiveComponent, Project, Renderable, Resistor, SilkscreenCircle, SilkscreenPath, SilkscreenRect, SilkscreenText, SmtPad, Trace, TraceHint, Via, createUseComponent, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
7463
+ export { Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Diode, FabricationNotePath, FabricationNoteText, Footprint, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Net, NetAlias, NormalComponent, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, Renderable, Resistor, SilkscreenCircle, SilkscreenPath, SilkscreenRect, SilkscreenText, SmtPad, Trace, TraceHint, Via, createUseComponent, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ __export(components_exports, {
28
28
  PinHeader: () => PinHeader,
29
29
  PlatedHole: () => PlatedHole,
30
30
  Port: () => Port,
31
+ Potentiometer: () => Potentiometer,
31
32
  PowerSource: () => PowerSource,
32
33
  PrimitiveComponent: () => PrimitiveComponent,
33
34
  Renderable: () => Renderable,
@@ -673,7 +674,7 @@ var PrimitiveComponent = class extends Renderable {
673
674
  if (symbol_name_horz in symbols) {
674
675
  if (props.schRotation === 0 || props.schRotation === void 0)
675
676
  return symbol_name_horz;
676
- if (props.schRotation === 180) return symbol_name_vert;
677
+ if (props.schRotation === 180) return symbol_name_horz;
677
678
  }
678
679
  if (symbol_name_vert in symbols) {
679
680
  if (props.schRotation === 90) return symbol_name_vert;
@@ -3727,7 +3728,7 @@ var pushEdgesOfSchematicTraceToPreventOverlap = ({
3727
3728
  };
3728
3729
 
3729
3730
  // lib/components/primitive-components/Trace/create-schematic-trace-crossing-segments.ts
3730
- import { doesLineIntersectLine as doesLineIntersectLine2 } from "@tscircuit/math-utils";
3731
+ import { distance as distance2, doesLineIntersectLine as doesLineIntersectLine2 } from "@tscircuit/math-utils";
3731
3732
  import { getUnitVectorFromPointAToB } from "@tscircuit/math-utils";
3732
3733
  var createSchematicTraceCrossingSegments = ({
3733
3734
  edges,
@@ -3741,42 +3742,55 @@ var createSchematicTraceCrossingSegments = ({
3741
3742
  }).flatMap((t) => t.edges);
3742
3743
  for (let i = 0; i < edges.length; i++) {
3743
3744
  const edge = edges[i];
3744
- const edgeOrientation = edge.from.x === edge.to.x ? "vertical" : "horizontal";
3745
+ const edgeOrientation = Math.abs(edge.from.x - edge.to.x) < 0.01 ? "vertical" : "horizontal";
3746
+ const otherEdgesIntersections = [];
3745
3747
  for (const otherEdge of otherEdges) {
3746
3748
  const otherOrientation = otherEdge.from.x === otherEdge.to.x ? "vertical" : "horizontal";
3747
3749
  if (edgeOrientation === otherOrientation) continue;
3748
- const intersection = doesLineIntersectLine2(
3750
+ const hasIntersection = doesLineIntersectLine2(
3749
3751
  [edge.from, edge.to],
3750
3752
  [otherEdge.from, otherEdge.to],
3751
3753
  { lineThickness: 0.01 }
3752
3754
  );
3753
- if (intersection) {
3755
+ if (hasIntersection) {
3754
3756
  const intersectX = edgeOrientation === "vertical" ? edge.from.x : otherEdge.from.x;
3755
3757
  const intersectY = edgeOrientation === "vertical" ? otherEdge.from.y : edge.from.y;
3756
- const crossingSegmentLength = 0.1;
3757
- const lastDrawnPoint = edge.from;
3758
- const crossingPoint = { x: intersectX, y: intersectY };
3759
- const crossingUnitVec = getUnitVectorFromPointAToB(
3760
- lastDrawnPoint,
3761
- crossingPoint
3762
- );
3763
- const beforeCrossing = {
3764
- x: crossingPoint.x - crossingUnitVec.x * crossingSegmentLength / 2,
3765
- y: crossingPoint.y - crossingUnitVec.y * crossingSegmentLength / 2
3766
- };
3767
- const afterCrossing = {
3768
- x: crossingPoint.x + crossingUnitVec.x * crossingSegmentLength / 2,
3769
- y: crossingPoint.y + crossingUnitVec.y * crossingSegmentLength / 2
3770
- };
3771
- const newEdges = [
3772
- { from: edge.from, to: beforeCrossing },
3773
- { from: beforeCrossing, to: afterCrossing, is_crossing: true },
3774
- { from: afterCrossing, to: edge.to }
3775
- ];
3776
- edges.splice(i, 1, ...newEdges);
3777
- i += 2;
3758
+ const crossingPoint2 = { x: intersectX, y: intersectY };
3759
+ otherEdgesIntersections.push({
3760
+ otherEdge,
3761
+ crossingPoint: crossingPoint2,
3762
+ distanceFromEdgeFrom: distance2(edge.from, crossingPoint2)
3763
+ });
3764
+ }
3765
+ }
3766
+ if (otherEdgesIntersections.length === 0) continue;
3767
+ let closestIntersection = otherEdgesIntersections[0];
3768
+ for (const intersection of otherEdgesIntersections) {
3769
+ if (intersection.distanceFromEdgeFrom < closestIntersection.distanceFromEdgeFrom) {
3770
+ closestIntersection = intersection;
3778
3771
  }
3779
3772
  }
3773
+ const crossingPoint = closestIntersection.crossingPoint;
3774
+ const crossingSegmentLength = 0.075;
3775
+ const crossingUnitVec = getUnitVectorFromPointAToB(edge.from, crossingPoint);
3776
+ const beforeCrossing = {
3777
+ x: crossingPoint.x - crossingUnitVec.x * crossingSegmentLength / 2,
3778
+ y: crossingPoint.y - crossingUnitVec.y * crossingSegmentLength / 2
3779
+ };
3780
+ const afterCrossing = {
3781
+ x: crossingPoint.x + crossingUnitVec.x * crossingSegmentLength / 2,
3782
+ y: crossingPoint.y + crossingUnitVec.y * crossingSegmentLength / 2
3783
+ };
3784
+ const newEdges = [
3785
+ { from: edge.from, to: beforeCrossing },
3786
+ { from: beforeCrossing, to: afterCrossing, is_crossing: true },
3787
+ { from: afterCrossing, to: edge.to }
3788
+ ];
3789
+ edges.splice(i, 1, ...newEdges);
3790
+ i += newEdges.length - 2;
3791
+ if (distance2(afterCrossing, edge.to) <= 1) {
3792
+ i++;
3793
+ }
3780
3794
  }
3781
3795
  };
3782
3796
 
@@ -5093,6 +5107,42 @@ var Inductor = class extends NormalComponent {
5093
5107
  }
5094
5108
  };
5095
5109
 
5110
+ // lib/components/normal-components/Potentiometer.ts
5111
+ import { potentiometerProps } from "@tscircuit/props";
5112
+ import { formatSiUnit as formatSiUnit3 } from "format-si-unit";
5113
+ var Potentiometer = class extends NormalComponent {
5114
+ // @ts-ignore
5115
+ get config() {
5116
+ return {
5117
+ schematicSymbolName: this.props.symbolName ?? "potentiometer2",
5118
+ componentName: "Potentiometer",
5119
+ zodProps: potentiometerProps,
5120
+ sourceFtype: "simple_potentiometer"
5121
+ };
5122
+ }
5123
+ initPorts() {
5124
+ super.initPorts({
5125
+ additionalAliases: {
5126
+ pin1: ["pos", "left"],
5127
+ pin2: ["neg", "right"]
5128
+ }
5129
+ });
5130
+ }
5131
+ _getSchematicSymbolDisplayValue() {
5132
+ return `${formatSiUnit3(this._parsedProps.maxResistance)}\u03A9`;
5133
+ }
5134
+ doInitialSourceRender() {
5135
+ const { db } = this.root;
5136
+ const { _parsedProps: props } = this;
5137
+ const source_component = db.source_component.insert({
5138
+ name: props.name,
5139
+ ftype: "simple_potentiometer",
5140
+ max_resistance: props.maxResistance
5141
+ });
5142
+ this.source_component_id = source_component.source_component_id;
5143
+ }
5144
+ };
5145
+
5096
5146
  // lib/Circuit.ts
5097
5147
  import { su } from "@tscircuit/soup-util";
5098
5148
  import { isValidElement as isValidElement2 } from "react";
@@ -5359,6 +5409,7 @@ export {
5359
5409
  PinHeader,
5360
5410
  PlatedHole,
5361
5411
  Port,
5412
+ Potentiometer,
5362
5413
  PowerSource,
5363
5414
  PrimitiveComponent,
5364
5415
  Project,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.174",
4
+ "version": "0.0.176",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -40,10 +40,10 @@
40
40
  "@tscircuit/footprinter": "^0.0.77",
41
41
  "@tscircuit/infgrid-ijump-astar": "^0.0.24",
42
42
  "@tscircuit/math-utils": "^0.0.5",
43
- "@tscircuit/props": "^0.0.94",
43
+ "@tscircuit/props": "^0.0.95",
44
44
  "@tscircuit/schematic-autolayout": "^0.0.6",
45
45
  "@tscircuit/soup-util": "^0.0.40",
46
- "circuit-json": "^0.0.101",
46
+ "circuit-json": "^0.0.104",
47
47
  "circuit-json-to-connectivity-map": "^0.0.17",
48
48
  "circuit-to-svg": "^0.0.74",
49
49
  "format-si-unit": "^0.0.2",