@tscircuit/core 0.0.22 → 0.0.24

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
@@ -6,8 +6,7 @@ import { ReactElement } from 'react';
6
6
  import { Matrix } from 'transformation-matrix';
7
7
  import { SchSymbol, BaseSymbolName } from 'schematic-symbols';
8
8
  import * as Props from '@tscircuit/props';
9
- import { boardProps, footprintProps, smtPadProps, resistorProps, ledProps, capacitorProps, traceProps, traceHintProps, groupProps, chipProps, jumperProps, silkscreenPathProps, platedHoleProps } from '@tscircuit/props';
10
- import * as _tscircuit_layout from '@tscircuit/layout';
9
+ import { traceProps, groupProps, boardProps, footprintProps, smtPadProps, resistorProps, ledProps, capacitorProps, traceHintProps, chipProps, jumperProps, silkscreenPathProps, platedHoleProps } from '@tscircuit/props';
11
10
 
12
11
  declare class Circuit {
13
12
  rootComponent: PrimitiveComponent | null;
@@ -31,13 +30,13 @@ declare class Circuit {
31
30
  computeGlobalSchematicTransform(): Matrix;
32
31
  computeGlobalPcbTransform(): Matrix;
33
32
  selectAll(selector: string): PrimitiveComponent[];
34
- selectOne(selector: string, opts: {
33
+ selectOne(selector: string, opts?: {
35
34
  type?: "component" | "port";
36
35
  }): PrimitiveComponent | null;
37
36
  }
38
37
  declare const Project: typeof Circuit;
39
38
 
40
- declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "CreateTracesFromProps", "SourceRender", "SourceParentAttachment", "PortDiscovery", "PortMatching", "SourceTraceRender", "SchematicComponentRender", "SchematicLayout", "SchematicPortRender", "SchematicTraceRender", "PcbComponentRender", "PcbPortRender", "PcbPrimitiveRender", "PcbParentAttachment", "PcbLayout", "PcbTraceRender", "CadModelRender", "PcbAnalysis"];
39
+ declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "CreateNetsFromProps", "CreateTracesFromProps", "SourceRender", "SourceParentAttachment", "PortDiscovery", "PortMatching", "SourceTraceRender", "SchematicComponentRender", "SchematicLayout", "SchematicPortRender", "SchematicTraceRender", "PcbComponentRender", "PcbPortRender", "PcbPrimitiveRender", "PcbParentAttachment", "PcbLayout", "PcbTraceRender", "PcbRouteNetIslands", "CadModelRender", "PcbAnalysis"];
41
40
  type RenderPhase = (typeof orderedRenderPhases)[number];
42
41
  type RenderPhaseFn<K extends RenderPhase = RenderPhase> = `doInitial${K}` | `update${K}` | `remove${K}`;
43
42
  type RenderPhaseStates = Record<RenderPhase, {
@@ -99,12 +98,12 @@ declare abstract class PrimitiveComponent<ZodProps extends ZodType = any> extend
99
98
  lowercaseComponentName: string;
100
99
  externallyAddedAliases: string[];
101
100
  /**
102
- * An opaque group is a self-contained subcircuit. All the selectors inside
103
- * an opaque group are relative to the group. You can have multiple opaque
104
- * groups and their selectors will not interact with each other (even if the
101
+ * An subcircuit is self-contained. All the selectors inside
102
+ * a subcircuit are relative to the subcircuit group. You can have multiple
103
+ * subcircuits and their selectors will not interact with each other (even if the
105
104
  * components share the same names) unless you explicitly break out some ports
106
105
  */
107
- get isOpaqueGroup(): boolean;
106
+ get isSubcircuit(): boolean;
108
107
  source_group_id: string | null;
109
108
  source_component_id: string | null;
110
109
  schematic_component_id: string | null;
@@ -155,13 +154,13 @@ declare abstract class PrimitiveComponent<ZodProps extends ZodType = any> extend
155
154
  add(component: PrimitiveComponent): void;
156
155
  addAll(components: PrimitiveComponent[]): void;
157
156
  remove(component: PrimitiveComponent): void;
158
- getOpaqueGroupSelector(): string;
157
+ getSubcircuitSelector(): string;
159
158
  getFullPathSelector(): string;
160
159
  getNameAndAliases(): string[];
161
160
  isMatchingNameOrAlias(name: string): boolean;
162
161
  isMatchingAnyOf(aliases: Array<string | number>): boolean;
163
162
  doesSelectorMatch(selector: string): boolean;
164
- getOpaqueGroup(): PrimitiveComponent;
163
+ getSubcircuit(): PrimitiveComponent;
165
164
  selectAll(selector: string): PrimitiveComponent[];
166
165
  selectOne(selector: string, options?: {
167
166
  type?: string;
@@ -175,6 +174,250 @@ declare abstract class PrimitiveComponent<ZodProps extends ZodType = any> extend
175
174
  get [Symbol.toStringTag](): string;
176
175
  }
177
176
 
177
+ declare const netProps: z.ZodObject<{
178
+ name: z.ZodString;
179
+ }, "strip", z.ZodTypeAny, {
180
+ name: string;
181
+ }, {
182
+ name: string;
183
+ }>;
184
+ declare class Net extends PrimitiveComponent<typeof netProps> {
185
+ source_net_id?: string;
186
+ getPortSelector(): string;
187
+ doInitialSourceComponentRender(): void;
188
+ /**
189
+ * Get all ports connected to this net.
190
+ *
191
+ * TODO currently we're not checking for indirect connections (traces that are
192
+ * connected to other traces that are in turn connected to the net)
193
+ */
194
+ getAllConnectedPorts(): Port[];
195
+ /**
196
+ * Get all traces that are directly connected to this net, i.e. they list
197
+ * this net in their path, from, or to props
198
+ */
199
+ _getAllDirectlyConnectedTraces(): Trace[];
200
+ /**
201
+ * Add PCB Traces to connect net islands together. A net island is a set of
202
+ * ports that are connected to each other. If a there are multiple net islands
203
+ * that means that the net is not fully connected and we need to add traces
204
+ * such that the nets are fully connected
205
+ */
206
+ doInitialPcbRouteNetIslands(): void;
207
+ }
208
+
209
+ declare class Trace extends PrimitiveComponent<typeof traceProps> {
210
+ source_trace_id: string | null;
211
+ pcb_trace_id: string | null;
212
+ schematic_trace_id: string | null;
213
+ _portsRoutedOnPcb: Port[];
214
+ constructor(props: z.input<typeof traceProps>);
215
+ get config(): {
216
+ zodProps: z.ZodUnion<[z.ZodObject<{
217
+ path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<{
218
+ getPortSelector: () => string;
219
+ }, z.ZodTypeDef, {
220
+ getPortSelector: () => string;
221
+ }>]>, "many">;
222
+ thickness: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
223
+ schematicRouteHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
224
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
225
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
226
+ }, "strip", z.ZodTypeAny, {
227
+ x: number;
228
+ y: number;
229
+ }, {
230
+ x: string | number;
231
+ y: string | number;
232
+ }>, "many">>;
233
+ pcbRouteHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
234
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
235
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
236
+ via: z.ZodOptional<z.ZodBoolean>;
237
+ to_layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
238
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
239
+ }, "strip", z.ZodTypeAny, {
240
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
241
+ }, {
242
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
243
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
244
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
245
+ }>>;
246
+ trace_width: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
247
+ }, "strip", z.ZodTypeAny, {
248
+ x: number;
249
+ y: number;
250
+ trace_width?: number | undefined;
251
+ via?: boolean | undefined;
252
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
253
+ }, {
254
+ x: string | number;
255
+ y: string | number;
256
+ trace_width?: string | number | undefined;
257
+ via?: boolean | undefined;
258
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
259
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
260
+ } | undefined;
261
+ }>, "many">>;
262
+ }, "strip", z.ZodTypeAny, {
263
+ path: (string | {
264
+ getPortSelector: () => string;
265
+ })[];
266
+ thickness?: number | undefined;
267
+ schematicRouteHints?: {
268
+ x: number;
269
+ y: number;
270
+ }[] | undefined;
271
+ pcbRouteHints?: {
272
+ x: number;
273
+ y: number;
274
+ trace_width?: number | undefined;
275
+ via?: boolean | undefined;
276
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
277
+ }[] | undefined;
278
+ }, {
279
+ path: (string | {
280
+ getPortSelector: () => string;
281
+ })[];
282
+ thickness?: string | number | undefined;
283
+ schematicRouteHints?: {
284
+ x: string | number;
285
+ y: string | number;
286
+ }[] | undefined;
287
+ pcbRouteHints?: {
288
+ x: string | number;
289
+ y: string | number;
290
+ trace_width?: string | number | undefined;
291
+ via?: boolean | undefined;
292
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
293
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
294
+ } | undefined;
295
+ }[] | undefined;
296
+ }>, z.ZodObject<{
297
+ from: z.ZodUnion<[z.ZodString, z.ZodType<{
298
+ getPortSelector: () => string;
299
+ }, z.ZodTypeDef, {
300
+ getPortSelector: () => string;
301
+ }>]>;
302
+ to: z.ZodUnion<[z.ZodString, z.ZodType<{
303
+ getPortSelector: () => string;
304
+ }, z.ZodTypeDef, {
305
+ getPortSelector: () => string;
306
+ }>]>;
307
+ thickness: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
308
+ schematicRouteHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
309
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
310
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ x: number;
313
+ y: number;
314
+ }, {
315
+ x: string | number;
316
+ y: string | number;
317
+ }>, "many">>;
318
+ pcbRouteHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
319
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
320
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
321
+ via: z.ZodOptional<z.ZodBoolean>;
322
+ to_layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
323
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
324
+ }, "strip", z.ZodTypeAny, {
325
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
326
+ }, {
327
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
328
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
329
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
330
+ }>>;
331
+ trace_width: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
332
+ }, "strip", z.ZodTypeAny, {
333
+ x: number;
334
+ y: number;
335
+ trace_width?: number | undefined;
336
+ via?: boolean | undefined;
337
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
338
+ }, {
339
+ x: string | number;
340
+ y: string | number;
341
+ trace_width?: string | number | undefined;
342
+ via?: boolean | undefined;
343
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
344
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
345
+ } | undefined;
346
+ }>, "many">>;
347
+ }, "strip", z.ZodTypeAny, {
348
+ from: string | {
349
+ getPortSelector: () => string;
350
+ };
351
+ to: string | {
352
+ getPortSelector: () => string;
353
+ };
354
+ thickness?: number | undefined;
355
+ schematicRouteHints?: {
356
+ x: number;
357
+ y: number;
358
+ }[] | undefined;
359
+ pcbRouteHints?: {
360
+ x: number;
361
+ y: number;
362
+ trace_width?: number | undefined;
363
+ via?: boolean | undefined;
364
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
365
+ }[] | undefined;
366
+ }, {
367
+ from: string | {
368
+ getPortSelector: () => string;
369
+ };
370
+ to: string | {
371
+ getPortSelector: () => string;
372
+ };
373
+ thickness?: string | number | undefined;
374
+ schematicRouteHints?: {
375
+ x: string | number;
376
+ y: string | number;
377
+ }[] | undefined;
378
+ pcbRouteHints?: {
379
+ x: string | number;
380
+ y: string | number;
381
+ trace_width?: string | number | undefined;
382
+ via?: boolean | undefined;
383
+ to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
384
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
385
+ } | undefined;
386
+ }[] | undefined;
387
+ }>]>;
388
+ };
389
+ _getTracePortOrNetSelectorListFromProps(): string[];
390
+ getTracePortPathSelectors(): string[];
391
+ getTracePathNetSelectors(): string[];
392
+ _findConnectedPorts(): {
393
+ allPortsFound: true;
394
+ ports: Port[];
395
+ portsWithSelectors: Array<{
396
+ selector: string;
397
+ port: Port;
398
+ }>;
399
+ } | {
400
+ allPortsFound: false;
401
+ ports?: undefined;
402
+ portsWithSelectors?: undefined;
403
+ };
404
+ _findConnectedNets(): Array<{
405
+ selector: string;
406
+ net: Net;
407
+ }>;
408
+ /**
409
+ * Determine if a trace is explicitly connected to a port (not via a net)
410
+ */
411
+ _isExplicitlyConnectedToPort(port: Port): boolean;
412
+ /**
413
+ * Determine if a trace is explicitly connected to a net (not via a port)
414
+ */
415
+ _isExplicitlyConnectedToNet(net: Net): boolean;
416
+ doInitialSourceTraceRender(): void;
417
+ doInitialPcbTraceRender(): void;
418
+ doInitialSchematicTraceRender(): void;
419
+ }
420
+
178
421
  declare const portProps: z.ZodObject<{
179
422
  name: z.ZodOptional<z.ZodString>;
180
423
  pinNumber: z.ZodOptional<z.ZodNumber>;
@@ -214,6 +457,10 @@ declare class Port extends PrimitiveComponent<typeof portProps> {
214
457
  isMatchingPort(port: Port): boolean;
215
458
  getPortSelector(): string;
216
459
  getAvailablePcbLayers(): string[];
460
+ /**
461
+ * Return traces that are explicitly connected to this port (not via a net)
462
+ */
463
+ _getDirectlyConnectedTraces(): Trace[];
217
464
  doInitialSourceRender(): void;
218
465
  doInitialSourceParentAttachment(): void;
219
466
  /**
@@ -286,6 +533,7 @@ declare class NormalComponent<ZodProps extends ZodType = any, PortNames extends
286
533
  add(componentOrElm: PrimitiveComponent | ReactElement): void;
287
534
  getPortsFromFootprint(): Port[];
288
535
  getPortsFromSchematicSymbol(): Port[];
536
+ _createNetsFromProps(propsWithConnections: (string | undefined | null)[]): void;
289
537
  /**
290
538
  * Use data from our props to create ports for this component.
291
539
  *
@@ -298,9 +546,15 @@ declare class NormalComponent<ZodProps extends ZodType = any, PortNames extends
298
546
  doInitialPortDiscovery(): void;
299
547
  }
300
548
 
301
- declare class Board extends NormalComponent<typeof boardProps> {
549
+ declare class Group<Props extends z.ZodType<any, any, any> = typeof groupProps> extends NormalComponent<Props> {
550
+ get config(): {
551
+ zodProps: Props;
552
+ };
553
+ }
554
+
555
+ declare class Board extends Group<typeof boardProps> {
302
556
  pcb_board_id: string | null;
303
- get isOpaqueGroup(): boolean;
557
+ get isSubcircuit(): boolean;
304
558
  get config(): {
305
559
  zodProps: z.ZodObject<{
306
560
  width: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
@@ -326,24 +580,24 @@ declare class Board extends NormalComponent<typeof boardProps> {
326
580
  children?: any;
327
581
  width?: number | undefined;
328
582
  height?: number | undefined;
329
- layout?: any;
330
- routingDisabled?: boolean | undefined;
331
583
  outline?: {
332
584
  x: number;
333
585
  y: number;
334
586
  }[] | undefined;
587
+ layout?: any;
588
+ routingDisabled?: boolean | undefined;
335
589
  }, {
336
590
  pcbX?: string | number | undefined;
337
591
  pcbY?: string | number | undefined;
338
592
  children?: any;
339
593
  width?: string | number | undefined;
340
594
  height?: string | number | undefined;
341
- layout?: any;
342
- routingDisabled?: boolean | undefined;
343
595
  outline?: {
344
596
  x: string | number;
345
597
  y: string | number;
346
598
  }[] | undefined;
599
+ layout?: any;
600
+ routingDisabled?: boolean | undefined;
347
601
  }>;
348
602
  };
349
603
  doInitialPcbComponentRender(): void;
@@ -852,6 +1106,7 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
852
1106
  };
853
1107
  pin1: Port;
854
1108
  pin2: Port;
1109
+ doInitialCreateNetsFromProps(): void;
855
1110
  doInitialCreateTracesFromProps(): void;
856
1111
  doInitialSourceRender(): void;
857
1112
  }
@@ -1664,277 +1919,17 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PortNames
1664
1919
  };
1665
1920
  pin1: Port;
1666
1921
  pin2: Port;
1922
+ doInitialCreateNetsFromProps(): void;
1667
1923
  doInitialCreateTracesFromProps(): void;
1668
1924
  doInitialSourceRender(): void;
1669
1925
  }
1670
1926
 
1671
- declare const netProps: z.ZodObject<{
1672
- name: z.ZodString;
1673
- }, "strip", z.ZodTypeAny, {
1674
- name: string;
1675
- }, {
1676
- name: string;
1677
- }>;
1678
- declare class Net extends PrimitiveComponent<typeof netProps> {
1679
- getPortSelector(): string;
1680
- }
1681
-
1682
- declare class Trace extends PrimitiveComponent<typeof traceProps> {
1683
- source_trace_id: string | null;
1684
- pcb_trace_id: string | null;
1685
- schematic_trace_id: string | null;
1686
- get config(): {
1687
- zodProps: zod.ZodUnion<[zod.ZodObject<{
1688
- path: zod.ZodArray<zod.ZodUnion<[zod.ZodString, zod.ZodType<{
1689
- getPortSelector: () => string;
1690
- }, zod.ZodTypeDef, {
1691
- getPortSelector: () => string;
1692
- }>]>, "many">;
1693
- thickness: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1694
- schematicRouteHints: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
1695
- x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1696
- y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1697
- }, "strip", zod.ZodTypeAny, {
1698
- x: number;
1699
- y: number;
1700
- }, {
1701
- x: string | number;
1702
- y: string | number;
1703
- }>, "many">>;
1704
- pcbRouteHints: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
1705
- x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1706
- y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1707
- via: zod.ZodOptional<zod.ZodBoolean>;
1708
- to_layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
1709
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
1710
- }, "strip", zod.ZodTypeAny, {
1711
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1712
- }, {
1713
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1714
- }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1715
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1716
- }>>;
1717
- trace_width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1718
- }, "strip", zod.ZodTypeAny, {
1719
- x: number;
1720
- y: number;
1721
- trace_width?: number | undefined;
1722
- via?: boolean | undefined;
1723
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1724
- }, {
1725
- x: string | number;
1726
- y: string | number;
1727
- trace_width?: string | number | undefined;
1728
- via?: boolean | undefined;
1729
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1730
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1731
- } | undefined;
1732
- }>, "many">>;
1733
- }, "strip", zod.ZodTypeAny, {
1734
- path: (string | {
1735
- getPortSelector: () => string;
1736
- })[];
1737
- thickness?: number | undefined;
1738
- schematicRouteHints?: {
1739
- x: number;
1740
- y: number;
1741
- }[] | undefined;
1742
- pcbRouteHints?: {
1743
- x: number;
1744
- y: number;
1745
- trace_width?: number | undefined;
1746
- via?: boolean | undefined;
1747
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1748
- }[] | undefined;
1749
- }, {
1750
- path: (string | {
1751
- getPortSelector: () => string;
1752
- })[];
1753
- thickness?: string | number | undefined;
1754
- schematicRouteHints?: {
1755
- x: string | number;
1756
- y: string | number;
1757
- }[] | undefined;
1758
- pcbRouteHints?: {
1759
- x: string | number;
1760
- y: string | number;
1761
- trace_width?: string | number | undefined;
1762
- via?: boolean | undefined;
1763
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1764
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1765
- } | undefined;
1766
- }[] | undefined;
1767
- }>, zod.ZodObject<{
1768
- from: zod.ZodUnion<[zod.ZodString, zod.ZodType<{
1769
- getPortSelector: () => string;
1770
- }, zod.ZodTypeDef, {
1771
- getPortSelector: () => string;
1772
- }>]>;
1773
- to: zod.ZodUnion<[zod.ZodString, zod.ZodType<{
1774
- getPortSelector: () => string;
1775
- }, zod.ZodTypeDef, {
1776
- getPortSelector: () => string;
1777
- }>]>;
1778
- thickness: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1779
- schematicRouteHints: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
1780
- x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1781
- y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1782
- }, "strip", zod.ZodTypeAny, {
1783
- x: number;
1784
- y: number;
1785
- }, {
1786
- x: string | number;
1787
- y: string | number;
1788
- }>, "many">>;
1789
- pcbRouteHints: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
1790
- x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1791
- y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
1792
- via: zod.ZodOptional<zod.ZodBoolean>;
1793
- to_layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
1794
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
1795
- }, "strip", zod.ZodTypeAny, {
1796
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1797
- }, {
1798
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1799
- }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1800
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1801
- }>>;
1802
- trace_width: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1803
- }, "strip", zod.ZodTypeAny, {
1804
- x: number;
1805
- y: number;
1806
- trace_width?: number | undefined;
1807
- via?: boolean | undefined;
1808
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1809
- }, {
1810
- x: string | number;
1811
- y: string | number;
1812
- trace_width?: string | number | undefined;
1813
- via?: boolean | undefined;
1814
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1815
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1816
- } | undefined;
1817
- }>, "many">>;
1818
- }, "strip", zod.ZodTypeAny, {
1819
- from: string | {
1820
- getPortSelector: () => string;
1821
- };
1822
- to: string | {
1823
- getPortSelector: () => string;
1824
- };
1825
- thickness?: number | undefined;
1826
- schematicRouteHints?: {
1827
- x: number;
1828
- y: number;
1829
- }[] | undefined;
1830
- pcbRouteHints?: {
1831
- x: number;
1832
- y: number;
1833
- trace_width?: number | undefined;
1834
- via?: boolean | undefined;
1835
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1836
- }[] | undefined;
1837
- }, {
1838
- from: string | {
1839
- getPortSelector: () => string;
1840
- };
1841
- to: string | {
1842
- getPortSelector: () => string;
1843
- };
1844
- thickness?: string | number | undefined;
1845
- schematicRouteHints?: {
1846
- x: string | number;
1847
- y: string | number;
1848
- }[] | undefined;
1849
- pcbRouteHints?: {
1850
- x: string | number;
1851
- y: string | number;
1852
- trace_width?: string | number | undefined;
1853
- via?: boolean | undefined;
1854
- to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1855
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1856
- } | undefined;
1857
- }[] | undefined;
1858
- }>]>;
1859
- };
1860
- getTracePortPathSelectors(): string[];
1861
- _findConnectedPorts(): {
1862
- allPortsFound: true;
1863
- ports: Array<{
1864
- selector: string;
1865
- port: Port;
1866
- }>;
1867
- } | {
1868
- allPortsFound: false;
1869
- ports?: undefined;
1870
- };
1871
- doInitialSourceTraceRender(): void;
1872
- doInitialPcbTraceRender(): void;
1873
- doInitialSchematicTraceRender(): void;
1874
- }
1875
-
1876
1927
  declare class TraceHint extends PrimitiveComponent<typeof traceHintProps> {
1877
1928
  matchedPort: Port | null;
1878
1929
  doInitialPortMatching(): void;
1879
1930
  getPcbRouteHints(): Array<RouteHintPoint>;
1880
1931
  }
1881
1932
 
1882
- declare class Group extends PrimitiveComponent<typeof groupProps> {
1883
- get config(): {
1884
- zodProps: zod.ZodObject<zod.objectUtil.extendShape<{
1885
- pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1886
- pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1887
- pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1888
- schX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1889
- schY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1890
- schRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
1891
- layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
1892
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
1893
- }, "strip", zod.ZodTypeAny, {
1894
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1895
- }, {
1896
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1897
- }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1898
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1899
- }>>;
1900
- footprint: zod.ZodOptional<zod.ZodType<Props.Footprint, zod.ZodTypeDef, Props.Footprint>>;
1901
- }, {
1902
- name: zod.ZodOptional<zod.ZodString>;
1903
- layout: zod.ZodOptional<zod.ZodType<_tscircuit_layout.LayoutBuilder, zod.ZodTypeDef, _tscircuit_layout.LayoutBuilder>>;
1904
- children: zod.ZodOptional<zod.ZodAny>;
1905
- routingDisabled: zod.ZodOptional<zod.ZodBoolean>;
1906
- }>, "strip", zod.ZodTypeAny, {
1907
- pcbX?: number | undefined;
1908
- pcbY?: number | undefined;
1909
- pcbRotation?: number | undefined;
1910
- schX?: number | undefined;
1911
- schY?: number | undefined;
1912
- schRotation?: number | undefined;
1913
- layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1914
- footprint?: Props.Footprint | undefined;
1915
- name?: string | undefined;
1916
- children?: any;
1917
- layout?: _tscircuit_layout.LayoutBuilder | undefined;
1918
- routingDisabled?: boolean | undefined;
1919
- }, {
1920
- pcbX?: string | number | undefined;
1921
- pcbY?: string | number | undefined;
1922
- pcbRotation?: string | number | undefined;
1923
- schX?: string | number | undefined;
1924
- schY?: string | number | undefined;
1925
- schRotation?: string | number | undefined;
1926
- layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
1927
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
1928
- } | undefined;
1929
- footprint?: Props.Footprint | undefined;
1930
- name?: string | undefined;
1931
- children?: any;
1932
- layout?: _tscircuit_layout.LayoutBuilder | undefined;
1933
- routingDisabled?: boolean | undefined;
1934
- }>;
1935
- };
1936
- }
1937
-
1938
1933
  interface SchematicBoxDimensions {
1939
1934
  pinCount: number;
1940
1935
  getPortPositionByPinNumber(pinNumber: number): {
@@ -3341,6 +3336,7 @@ declare global {
3341
3336
  port: Props.PortProps;
3342
3337
  group: Props.GroupProps;
3343
3338
  netalias: Props.NetAliasProps;
3339
+ net: Props.NetProps;
3344
3340
  trace: Props.TraceProps;
3345
3341
  custom: any;
3346
3342
  component: Props.ComponentProps;