@tscircuit/core 0.0.314 → 0.0.315

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,6 +1,6 @@
1
1
  import * as _tscircuit_props from '@tscircuit/props';
2
- import { subcircuitGroupProps, traceProps, SupplierPartNumbers, SchematicPortArrangement, groupProps, AutorouterConfig, boardProps, capacitorProps, chipProps, diodeProps, jumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, subcircuitProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, silkscreenLineProps, smtPadProps, traceHintProps, viaProps, batteryProps, pinHeaderProps, resonatorProps, inductorProps, potentiometerProps, pushButtonProps, crystalProps, transistorProps, mosfetProps, CapacitorProps, ChipProps, ResistorProps, ManualEditEvent, manual_edits_file } from '@tscircuit/props';
3
- import React, { ReactElement } from 'react';
2
+ import { subcircuitGroupProps, traceProps, SupplierPartNumbers, SchematicPortArrangement, groupProps, AutorouterConfig, boardProps, capacitorProps, chipProps, diodeProps, jumperProps, ledProps, powerSourceProps, resistorProps, constraintProps, fabricationNotePathProps, fabricationNoteTextProps, footprintProps, subcircuitProps, holeProps, pcbKeepoutProps, netAliasProps, platedHoleProps, silkscreenCircleProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, silkscreenLineProps, smtPadProps, traceHintProps, viaProps, batteryProps, pinHeaderProps, resonatorProps, inductorProps, potentiometerProps, pushButtonProps, crystalProps, transistorProps, mosfetProps, switchProps, CapacitorProps, ChipProps, ResistorProps, ManualEditEvent, manual_edits_file } from '@tscircuit/props';
3
+ import React, { ReactElement, DetailedHTMLProps, SVGProps } from 'react';
4
4
  export { createElement } from 'react';
5
5
  import * as zod from 'zod';
6
6
  import { z, ZodType } from 'zod';
@@ -2303,6 +2303,7 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2303
2303
  schWidth: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2304
2304
  schHeight: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2305
2305
  noSchematicRepresentation: zod.ZodOptional<zod.ZodBoolean>;
2306
+ connections: zod.ZodOptional<zod.ZodRecord<zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>, zod.ZodUnion<[zod.ZodUnion<[zod.ZodString, zod.ZodReadonly<zod.ZodArray<zod.ZodString, "many">>]>, zod.ZodArray<zod.ZodString, "many">]>>>;
2306
2307
  }>, "strip", zod.ZodTypeAny, {
2307
2308
  name: string;
2308
2309
  pcbX?: number | undefined;
@@ -2440,6 +2441,7 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2440
2441
  schWidth?: number | undefined;
2441
2442
  schHeight?: number | undefined;
2442
2443
  noSchematicRepresentation?: boolean | undefined;
2444
+ connections?: Record<string | number, string | readonly string[] | string[]> | undefined;
2443
2445
  }, {
2444
2446
  name: string;
2445
2447
  pcbX?: string | number | undefined;
@@ -2579,6 +2581,7 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2579
2581
  schWidth?: string | number | undefined;
2580
2582
  schHeight?: string | number | undefined;
2581
2583
  noSchematicRepresentation?: boolean | undefined;
2584
+ connections?: Record<string | number, string | readonly string[] | string[]> | undefined;
2582
2585
  }>;
2583
2586
  shouldRenderAsSchematicBox: boolean;
2584
2587
  };
@@ -9889,6 +9892,503 @@ declare class Mosfet extends NormalComponent<typeof mosfetProps> {
9889
9892
  doInitialSourceRender(): void;
9890
9893
  }
9891
9894
 
9895
+ declare class Switch extends NormalComponent<typeof switchProps> {
9896
+ private _getSwitchType;
9897
+ get config(): {
9898
+ componentName: string;
9899
+ schematicSymbolName: BaseSymbolName;
9900
+ zodProps: zod.ZodEffects<zod.ZodObject<zod.objectUtil.extendShape<zod.objectUtil.extendShape<zod.objectUtil.extendShape<{
9901
+ pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
9902
+ pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
9903
+ pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
9904
+ schX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
9905
+ schY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
9906
+ schRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
9907
+ layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
9908
+ name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
9909
+ }, "strip", zod.ZodTypeAny, {
9910
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
9911
+ }, {
9912
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
9913
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
9914
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
9915
+ }>>;
9916
+ footprint: zod.ZodOptional<zod.ZodType<_tscircuit_props.Footprint, zod.ZodTypeDef, _tscircuit_props.Footprint>>;
9917
+ }, {
9918
+ supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
9919
+ }>, {
9920
+ key: zod.ZodOptional<zod.ZodAny>;
9921
+ name: zod.ZodString;
9922
+ cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
9923
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
9924
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
9925
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
9926
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
9927
+ }, "strip", zod.ZodTypeAny, {
9928
+ x: string | number;
9929
+ y: string | number;
9930
+ z: string | number;
9931
+ }, {
9932
+ x: string | number;
9933
+ y: string | number;
9934
+ z: string | number;
9935
+ }>]>>;
9936
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
9937
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
9938
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
9939
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
9940
+ }, "strip", zod.ZodTypeAny, {
9941
+ x: number;
9942
+ y: number;
9943
+ z: number;
9944
+ }, {
9945
+ x: string | number;
9946
+ y: string | number;
9947
+ z: string | number;
9948
+ }>>;
9949
+ size: zod.ZodOptional<zod.ZodObject<{
9950
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
9951
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
9952
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
9953
+ }, "strip", zod.ZodTypeAny, {
9954
+ x: number;
9955
+ y: number;
9956
+ z: number;
9957
+ }, {
9958
+ x: string | number;
9959
+ y: string | number;
9960
+ z: string | number;
9961
+ }>>;
9962
+ }, {
9963
+ stlUrl: zod.ZodString;
9964
+ }>, "strip", zod.ZodTypeAny, {
9965
+ stlUrl: string;
9966
+ rotationOffset?: number | {
9967
+ x: string | number;
9968
+ y: string | number;
9969
+ z: string | number;
9970
+ } | undefined;
9971
+ positionOffset?: {
9972
+ x: number;
9973
+ y: number;
9974
+ z: number;
9975
+ } | undefined;
9976
+ size?: {
9977
+ x: number;
9978
+ y: number;
9979
+ z: number;
9980
+ } | undefined;
9981
+ }, {
9982
+ stlUrl: string;
9983
+ rotationOffset?: number | {
9984
+ x: string | number;
9985
+ y: string | number;
9986
+ z: string | number;
9987
+ } | undefined;
9988
+ positionOffset?: {
9989
+ x: string | number;
9990
+ y: string | number;
9991
+ z: string | number;
9992
+ } | undefined;
9993
+ size?: {
9994
+ x: string | number;
9995
+ y: string | number;
9996
+ z: string | number;
9997
+ } | undefined;
9998
+ }>, zod.ZodObject<zod.objectUtil.extendShape<{
9999
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
10000
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
10001
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
10002
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
10003
+ }, "strip", zod.ZodTypeAny, {
10004
+ x: string | number;
10005
+ y: string | number;
10006
+ z: string | number;
10007
+ }, {
10008
+ x: string | number;
10009
+ y: string | number;
10010
+ z: string | number;
10011
+ }>]>>;
10012
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
10013
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10014
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10015
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10016
+ }, "strip", zod.ZodTypeAny, {
10017
+ x: number;
10018
+ y: number;
10019
+ z: number;
10020
+ }, {
10021
+ x: string | number;
10022
+ y: string | number;
10023
+ z: string | number;
10024
+ }>>;
10025
+ size: zod.ZodOptional<zod.ZodObject<{
10026
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10027
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10028
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10029
+ }, "strip", zod.ZodTypeAny, {
10030
+ x: number;
10031
+ y: number;
10032
+ z: number;
10033
+ }, {
10034
+ x: string | number;
10035
+ y: string | number;
10036
+ z: string | number;
10037
+ }>>;
10038
+ }, {
10039
+ objUrl: zod.ZodString;
10040
+ mtlUrl: zod.ZodOptional<zod.ZodString>;
10041
+ }>, "strip", zod.ZodTypeAny, {
10042
+ objUrl: string;
10043
+ rotationOffset?: number | {
10044
+ x: string | number;
10045
+ y: string | number;
10046
+ z: string | number;
10047
+ } | undefined;
10048
+ positionOffset?: {
10049
+ x: number;
10050
+ y: number;
10051
+ z: number;
10052
+ } | undefined;
10053
+ size?: {
10054
+ x: number;
10055
+ y: number;
10056
+ z: number;
10057
+ } | undefined;
10058
+ mtlUrl?: string | undefined;
10059
+ }, {
10060
+ objUrl: string;
10061
+ rotationOffset?: number | {
10062
+ x: string | number;
10063
+ y: string | number;
10064
+ z: string | number;
10065
+ } | undefined;
10066
+ positionOffset?: {
10067
+ x: string | number;
10068
+ y: string | number;
10069
+ z: string | number;
10070
+ } | undefined;
10071
+ size?: {
10072
+ x: string | number;
10073
+ y: string | number;
10074
+ z: string | number;
10075
+ } | undefined;
10076
+ mtlUrl?: string | undefined;
10077
+ }>, zod.ZodObject<zod.objectUtil.extendShape<{
10078
+ rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
10079
+ x: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
10080
+ y: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
10081
+ z: zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>;
10082
+ }, "strip", zod.ZodTypeAny, {
10083
+ x: string | number;
10084
+ y: string | number;
10085
+ z: string | number;
10086
+ }, {
10087
+ x: string | number;
10088
+ y: string | number;
10089
+ z: string | number;
10090
+ }>]>>;
10091
+ positionOffset: zod.ZodOptional<zod.ZodObject<{
10092
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10093
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10094
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10095
+ }, "strip", zod.ZodTypeAny, {
10096
+ x: number;
10097
+ y: number;
10098
+ z: number;
10099
+ }, {
10100
+ x: string | number;
10101
+ y: string | number;
10102
+ z: string | number;
10103
+ }>>;
10104
+ size: zod.ZodOptional<zod.ZodObject<{
10105
+ x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10106
+ y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10107
+ z: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
10108
+ }, "strip", zod.ZodTypeAny, {
10109
+ x: number;
10110
+ y: number;
10111
+ z: number;
10112
+ }, {
10113
+ x: string | number;
10114
+ y: string | number;
10115
+ z: string | number;
10116
+ }>>;
10117
+ }, {
10118
+ jscad: zod.ZodRecord<zod.ZodString, zod.ZodAny>;
10119
+ }>, "strip", zod.ZodTypeAny, {
10120
+ jscad: Record<string, any>;
10121
+ rotationOffset?: number | {
10122
+ x: string | number;
10123
+ y: string | number;
10124
+ z: string | number;
10125
+ } | undefined;
10126
+ positionOffset?: {
10127
+ x: number;
10128
+ y: number;
10129
+ z: number;
10130
+ } | undefined;
10131
+ size?: {
10132
+ x: number;
10133
+ y: number;
10134
+ z: number;
10135
+ } | undefined;
10136
+ }, {
10137
+ jscad: Record<string, any>;
10138
+ rotationOffset?: number | {
10139
+ x: string | number;
10140
+ y: string | number;
10141
+ z: string | number;
10142
+ } | undefined;
10143
+ positionOffset?: {
10144
+ x: string | number;
10145
+ y: string | number;
10146
+ z: string | number;
10147
+ } | undefined;
10148
+ size?: {
10149
+ x: string | number;
10150
+ y: string | number;
10151
+ z: string | number;
10152
+ } | undefined;
10153
+ }>]>>;
10154
+ children: zod.ZodOptional<zod.ZodAny>;
10155
+ symbolName: zod.ZodOptional<zod.ZodString>;
10156
+ }>, {
10157
+ type: zod.ZodOptional<zod.ZodEnum<["spst", "spdt", "dpst", "dpdt"]>>;
10158
+ isNormallyClosed: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
10159
+ spst: zod.ZodOptional<zod.ZodBoolean>;
10160
+ spdt: zod.ZodOptional<zod.ZodBoolean>;
10161
+ dpst: zod.ZodOptional<zod.ZodBoolean>;
10162
+ dpdt: zod.ZodOptional<zod.ZodBoolean>;
10163
+ }>, "strip", zod.ZodTypeAny, {
10164
+ name: string;
10165
+ isNormallyClosed: boolean;
10166
+ type?: "spst" | "spdt" | "dpst" | "dpdt" | undefined;
10167
+ pcbX?: number | undefined;
10168
+ pcbY?: number | undefined;
10169
+ pcbRotation?: number | undefined;
10170
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
10171
+ schX?: number | undefined;
10172
+ schY?: number | undefined;
10173
+ schRotation?: number | undefined;
10174
+ footprint?: _tscircuit_props.Footprint | undefined;
10175
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
10176
+ key?: any;
10177
+ cadModel?: string | {
10178
+ stlUrl: string;
10179
+ rotationOffset?: number | {
10180
+ x: string | number;
10181
+ y: string | number;
10182
+ z: string | number;
10183
+ } | undefined;
10184
+ positionOffset?: {
10185
+ x: number;
10186
+ y: number;
10187
+ z: number;
10188
+ } | undefined;
10189
+ size?: {
10190
+ x: number;
10191
+ y: number;
10192
+ z: number;
10193
+ } | undefined;
10194
+ } | {
10195
+ objUrl: string;
10196
+ rotationOffset?: number | {
10197
+ x: string | number;
10198
+ y: string | number;
10199
+ z: string | number;
10200
+ } | undefined;
10201
+ positionOffset?: {
10202
+ x: number;
10203
+ y: number;
10204
+ z: number;
10205
+ } | undefined;
10206
+ size?: {
10207
+ x: number;
10208
+ y: number;
10209
+ z: number;
10210
+ } | undefined;
10211
+ mtlUrl?: string | undefined;
10212
+ } | {
10213
+ jscad: Record<string, any>;
10214
+ rotationOffset?: number | {
10215
+ x: string | number;
10216
+ y: string | number;
10217
+ z: string | number;
10218
+ } | undefined;
10219
+ positionOffset?: {
10220
+ x: number;
10221
+ y: number;
10222
+ z: number;
10223
+ } | undefined;
10224
+ size?: {
10225
+ x: number;
10226
+ y: number;
10227
+ z: number;
10228
+ } | undefined;
10229
+ } | undefined;
10230
+ children?: any;
10231
+ symbolName?: string | undefined;
10232
+ spst?: boolean | undefined;
10233
+ spdt?: boolean | undefined;
10234
+ dpst?: boolean | undefined;
10235
+ dpdt?: boolean | undefined;
10236
+ }, {
10237
+ name: string;
10238
+ type?: "spst" | "spdt" | "dpst" | "dpdt" | undefined;
10239
+ pcbX?: string | number | undefined;
10240
+ pcbY?: string | number | undefined;
10241
+ pcbRotation?: string | number | undefined;
10242
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
10243
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
10244
+ } | undefined;
10245
+ schX?: string | number | undefined;
10246
+ schY?: string | number | undefined;
10247
+ schRotation?: string | number | undefined;
10248
+ footprint?: _tscircuit_props.Footprint | undefined;
10249
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
10250
+ key?: any;
10251
+ cadModel?: string | {
10252
+ stlUrl: string;
10253
+ rotationOffset?: number | {
10254
+ x: string | number;
10255
+ y: string | number;
10256
+ z: string | number;
10257
+ } | undefined;
10258
+ positionOffset?: {
10259
+ x: string | number;
10260
+ y: string | number;
10261
+ z: string | number;
10262
+ } | undefined;
10263
+ size?: {
10264
+ x: string | number;
10265
+ y: string | number;
10266
+ z: string | number;
10267
+ } | undefined;
10268
+ } | {
10269
+ objUrl: string;
10270
+ rotationOffset?: number | {
10271
+ x: string | number;
10272
+ y: string | number;
10273
+ z: string | number;
10274
+ } | undefined;
10275
+ positionOffset?: {
10276
+ x: string | number;
10277
+ y: string | number;
10278
+ z: string | number;
10279
+ } | undefined;
10280
+ size?: {
10281
+ x: string | number;
10282
+ y: string | number;
10283
+ z: string | number;
10284
+ } | undefined;
10285
+ mtlUrl?: string | undefined;
10286
+ } | {
10287
+ jscad: Record<string, any>;
10288
+ rotationOffset?: number | {
10289
+ x: string | number;
10290
+ y: string | number;
10291
+ z: string | number;
10292
+ } | undefined;
10293
+ positionOffset?: {
10294
+ x: string | number;
10295
+ y: string | number;
10296
+ z: string | number;
10297
+ } | undefined;
10298
+ size?: {
10299
+ x: string | number;
10300
+ y: string | number;
10301
+ z: string | number;
10302
+ } | undefined;
10303
+ } | undefined;
10304
+ children?: any;
10305
+ symbolName?: string | undefined;
10306
+ spst?: boolean | undefined;
10307
+ spdt?: boolean | undefined;
10308
+ dpst?: boolean | undefined;
10309
+ dpdt?: boolean | undefined;
10310
+ isNormallyClosed?: boolean | undefined;
10311
+ }>, _tscircuit_props.SwitchProps, {
10312
+ name: string;
10313
+ type?: "spst" | "spdt" | "dpst" | "dpdt" | undefined;
10314
+ pcbX?: string | number | undefined;
10315
+ pcbY?: string | number | undefined;
10316
+ pcbRotation?: string | number | undefined;
10317
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
10318
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
10319
+ } | undefined;
10320
+ schX?: string | number | undefined;
10321
+ schY?: string | number | undefined;
10322
+ schRotation?: string | number | undefined;
10323
+ footprint?: _tscircuit_props.Footprint | undefined;
10324
+ supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
10325
+ key?: any;
10326
+ cadModel?: string | {
10327
+ stlUrl: string;
10328
+ rotationOffset?: number | {
10329
+ x: string | number;
10330
+ y: string | number;
10331
+ z: string | number;
10332
+ } | undefined;
10333
+ positionOffset?: {
10334
+ x: string | number;
10335
+ y: string | number;
10336
+ z: string | number;
10337
+ } | undefined;
10338
+ size?: {
10339
+ x: string | number;
10340
+ y: string | number;
10341
+ z: string | number;
10342
+ } | undefined;
10343
+ } | {
10344
+ objUrl: string;
10345
+ rotationOffset?: number | {
10346
+ x: string | number;
10347
+ y: string | number;
10348
+ z: string | number;
10349
+ } | undefined;
10350
+ positionOffset?: {
10351
+ x: string | number;
10352
+ y: string | number;
10353
+ z: string | number;
10354
+ } | undefined;
10355
+ size?: {
10356
+ x: string | number;
10357
+ y: string | number;
10358
+ z: string | number;
10359
+ } | undefined;
10360
+ mtlUrl?: string | undefined;
10361
+ } | {
10362
+ jscad: Record<string, any>;
10363
+ rotationOffset?: number | {
10364
+ x: string | number;
10365
+ y: string | number;
10366
+ z: string | number;
10367
+ } | undefined;
10368
+ positionOffset?: {
10369
+ x: string | number;
10370
+ y: string | number;
10371
+ z: string | number;
10372
+ } | undefined;
10373
+ size?: {
10374
+ x: string | number;
10375
+ y: string | number;
10376
+ z: string | number;
10377
+ } | undefined;
10378
+ } | undefined;
10379
+ children?: any;
10380
+ symbolName?: string | undefined;
10381
+ spst?: boolean | undefined;
10382
+ spdt?: boolean | undefined;
10383
+ dpst?: boolean | undefined;
10384
+ dpdt?: boolean | undefined;
10385
+ isNormallyClosed?: boolean | undefined;
10386
+ }>;
10387
+ shouldRenderAsSchematicBox: boolean;
10388
+ };
10389
+ doInitialSourceRender(): void;
10390
+ }
10391
+
9892
10392
  declare const useRenderedCircuit: (reactElements: React.ReactElement) => {
9893
10393
  isLoading: boolean;
9894
10394
  error?: Error | null;
@@ -10304,6 +10804,7 @@ interface TscircuitElements {
10304
10804
  resonator: _tscircuit_props.ResonatorProps;
10305
10805
  subcircuit: _tscircuit_props.SubcircuitGroupProps;
10306
10806
  transistor: _tscircuit_props.TransistorProps;
10807
+ switch: _tscircuit_props.SwitchProps;
10307
10808
  mosfet: _tscircuit_props.MosfetProps;
10308
10809
  jscad: any;
10309
10810
  }
@@ -10316,8 +10817,9 @@ declare module "react" {
10316
10817
  declare module "react/jsx-runtime" {
10317
10818
  namespace JSX {
10318
10819
  interface IntrinsicElements extends TscircuitElements {
10820
+ switch: DetailedHTMLProps<SVGProps<SVGSwitchElement>, SVGSwitchElement> | TscircuitElements["switch"];
10319
10821
  }
10320
10822
  }
10321
10823
  }
10322
10824
 
10323
- export { type AsyncEffect, Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Diode, FabricationNotePath, FabricationNoteText, Footprint, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Mosfet, Net, NetAlias, NormalComponent, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, PushButton, type RenderPhase, type RenderPhaseFn, type RenderPhaseFunctions, type RenderPhaseStates, Renderable, Resistor, Resonator, RootCircuit, type RootCircuitEventName, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, SmtPad, Subcircuit, Trace, TraceHint, Transistor, Via, applyEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
10825
+ export { type AsyncEffect, Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Diode, FabricationNotePath, FabricationNoteText, Footprint, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Mosfet, Net, NetAlias, NormalComponent, PinHeader, type PinLabelSpec, PlatedHole, Port, Potentiometer, PowerSource, PrimitiveComponent, Project, PushButton, type RenderPhase, type RenderPhaseFn, type RenderPhaseFunctions, type RenderPhaseStates, Renderable, Resistor, Resonator, RootCircuit, type RootCircuitEventName, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, SmtPad, Subcircuit, Switch, Trace, TraceHint, Transistor, Via, applyEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
package/dist/index.js CHANGED
@@ -44,6 +44,7 @@ __export(components_exports, {
44
44
  SilkscreenText: () => SilkscreenText,
45
45
  SmtPad: () => SmtPad,
46
46
  Subcircuit: () => Subcircuit,
47
+ Switch: () => Switch,
47
48
  Trace: () => Trace2,
48
49
  TraceHint: () => TraceHint,
49
50
  Transistor: () => Transistor,
@@ -6596,6 +6597,46 @@ var Mosfet = class extends NormalComponent {
6596
6597
  }
6597
6598
  };
6598
6599
 
6600
+ // lib/components/normal-components/Switch.ts
6601
+ import { switchProps } from "@tscircuit/props";
6602
+ var Switch = class extends NormalComponent {
6603
+ _getSwitchType() {
6604
+ const { spst, spdt, dpst, dpdt, type } = this._parsedProps ?? {};
6605
+ if (dpdt) return "dpdt";
6606
+ if (spst) return "spst";
6607
+ if (spdt) return "spdt";
6608
+ if (dpst) return "dpst";
6609
+ return type ?? "spst";
6610
+ }
6611
+ get config() {
6612
+ const switchType = this._getSwitchType();
6613
+ const baseSymbolNameMap = {
6614
+ spst: "SPST_switch",
6615
+ spdt: "SPDT_switch",
6616
+ dpst: "dpst_switch",
6617
+ dpdt: "dpdt_switch"
6618
+ };
6619
+ const symbolName = baseSymbolNameMap[switchType] ?? "SPST_switch";
6620
+ return {
6621
+ componentName: "Switch",
6622
+ schematicSymbolName: symbolName,
6623
+ zodProps: switchProps,
6624
+ shouldRenderAsSchematicBox: false
6625
+ };
6626
+ }
6627
+ doInitialSourceRender() {
6628
+ const { db } = this.root;
6629
+ const { _parsedProps: props } = this;
6630
+ const source_component = db.source_component.insert({
6631
+ ftype: "simple_switch",
6632
+ name: props.name,
6633
+ switch_type: props.type,
6634
+ is_normally_closed: props.isNormallyClosed ?? false
6635
+ });
6636
+ this.source_component_id = source_component.source_component_id;
6637
+ }
6638
+ };
6639
+
6599
6640
  // lib/RootCircuit.ts
6600
6641
  import { su } from "@tscircuit/soup-util";
6601
6642
  import { isValidElement as isValidElement2 } from "react";
@@ -7062,6 +7103,7 @@ export {
7062
7103
  SilkscreenText,
7063
7104
  SmtPad,
7064
7105
  Subcircuit,
7106
+ Switch,
7065
7107
  Trace2 as Trace,
7066
7108
  TraceHint,
7067
7109
  Transistor,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.314",
4
+ "version": "0.0.315",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -54,7 +54,7 @@
54
54
  "@tscircuit/footprinter": "^0.0.97",
55
55
  "@tscircuit/infgrid-ijump-astar": "^0.0.33",
56
56
  "@tscircuit/math-utils": "^0.0.9",
57
- "@tscircuit/props": "^0.0.147",
57
+ "@tscircuit/props": "^0.0.150",
58
58
  "@tscircuit/schematic-autolayout": "^0.0.6",
59
59
  "@tscircuit/soup-util": "^0.0.41",
60
60
  "circuit-json": "^0.0.136",