@tscircuit/core 0.0.392 → 0.0.394
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 +220 -3
- package/dist/index.js +93 -15
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { createElement } from 'react';
|
|
|
5
5
|
import * as zod from 'zod';
|
|
6
6
|
import { z, ZodType } from 'zod';
|
|
7
7
|
import { symbols, SchSymbol, BaseSymbolName } from 'schematic-symbols';
|
|
8
|
-
import { PcbTraceError, PcbPlacementError, PcbManualEditConflictWarning, LayerRef, AnyCircuitElement, AnySourceComponent, PcbTraceRoutePoint, PcbTrace, PcbVia, RouteHintPoint, CircuitJson } from 'circuit-json';
|
|
8
|
+
import { PcbTraceError, PcbPlacementError, PcbManualEditConflictWarning, LayerRef, AnyCircuitElement, AnySourceComponent, PcbTraceRoutePoint, PcbTrace as PcbTrace$1, PcbVia, RouteHintPoint, CircuitJson } from 'circuit-json';
|
|
9
9
|
import { Matrix } from 'transformation-matrix';
|
|
10
10
|
import { CircuitJsonUtilObjects } from '@tscircuit/circuit-json-util';
|
|
11
11
|
import * as _tscircuit_layout from '@tscircuit/layout';
|
|
@@ -1014,7 +1014,7 @@ declare class Group<Props extends z.ZodType<any, any, any> = typeof groupProps>
|
|
|
1014
1014
|
_hasStartedAsyncAutorouting: boolean;
|
|
1015
1015
|
_asyncAutoroutingResult: {
|
|
1016
1016
|
output_simple_route_json?: SimpleRouteJson;
|
|
1017
|
-
output_pcb_traces?: (PcbTrace | PcbVia)[];
|
|
1017
|
+
output_pcb_traces?: (PcbTrace$1 | PcbVia)[];
|
|
1018
1018
|
} | null;
|
|
1019
1019
|
get config(): {
|
|
1020
1020
|
zodProps: Props;
|
|
@@ -6727,6 +6727,223 @@ declare class SmtPad extends PrimitiveComponent<typeof smtPadProps> {
|
|
|
6727
6727
|
}): void;
|
|
6728
6728
|
}
|
|
6729
6729
|
|
|
6730
|
+
declare const pcbTraceProps: z.ZodObject<{
|
|
6731
|
+
route: z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
6732
|
+
route_type: z.ZodLiteral<"wire">;
|
|
6733
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6734
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6735
|
+
width: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6736
|
+
start_pcb_port_id: z.ZodOptional<z.ZodString>;
|
|
6737
|
+
end_pcb_port_id: z.ZodOptional<z.ZodString>;
|
|
6738
|
+
layer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
|
|
6739
|
+
name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
|
|
6740
|
+
}, "strip", z.ZodTypeAny, {
|
|
6741
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6742
|
+
}, {
|
|
6743
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6744
|
+
}>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
6745
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6746
|
+
}>;
|
|
6747
|
+
}, "strip", z.ZodTypeAny, {
|
|
6748
|
+
x: number;
|
|
6749
|
+
y: number;
|
|
6750
|
+
width: number;
|
|
6751
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6752
|
+
route_type: "wire";
|
|
6753
|
+
start_pcb_port_id?: string | undefined;
|
|
6754
|
+
end_pcb_port_id?: string | undefined;
|
|
6755
|
+
}, {
|
|
6756
|
+
x: string | number;
|
|
6757
|
+
y: string | number;
|
|
6758
|
+
width: string | number;
|
|
6759
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
6760
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6761
|
+
};
|
|
6762
|
+
route_type: "wire";
|
|
6763
|
+
start_pcb_port_id?: string | undefined;
|
|
6764
|
+
end_pcb_port_id?: string | undefined;
|
|
6765
|
+
}>, z.ZodObject<{
|
|
6766
|
+
route_type: z.ZodLiteral<"via">;
|
|
6767
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6768
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6769
|
+
hole_diameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
6770
|
+
outer_diameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
6771
|
+
from_layer: z.ZodString;
|
|
6772
|
+
to_layer: z.ZodString;
|
|
6773
|
+
}, "strip", z.ZodTypeAny, {
|
|
6774
|
+
x: number;
|
|
6775
|
+
y: number;
|
|
6776
|
+
to_layer: string;
|
|
6777
|
+
route_type: "via";
|
|
6778
|
+
from_layer: string;
|
|
6779
|
+
hole_diameter?: number | undefined;
|
|
6780
|
+
outer_diameter?: number | undefined;
|
|
6781
|
+
}, {
|
|
6782
|
+
x: string | number;
|
|
6783
|
+
y: string | number;
|
|
6784
|
+
to_layer: string;
|
|
6785
|
+
route_type: "via";
|
|
6786
|
+
from_layer: string;
|
|
6787
|
+
hole_diameter?: string | number | undefined;
|
|
6788
|
+
outer_diameter?: string | number | undefined;
|
|
6789
|
+
}>]>, "many">;
|
|
6790
|
+
source_trace_id: z.ZodOptional<z.ZodString>;
|
|
6791
|
+
}, "strip", z.ZodTypeAny, {
|
|
6792
|
+
route: ({
|
|
6793
|
+
x: number;
|
|
6794
|
+
y: number;
|
|
6795
|
+
width: number;
|
|
6796
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6797
|
+
route_type: "wire";
|
|
6798
|
+
start_pcb_port_id?: string | undefined;
|
|
6799
|
+
end_pcb_port_id?: string | undefined;
|
|
6800
|
+
} | {
|
|
6801
|
+
x: number;
|
|
6802
|
+
y: number;
|
|
6803
|
+
to_layer: string;
|
|
6804
|
+
route_type: "via";
|
|
6805
|
+
from_layer: string;
|
|
6806
|
+
hole_diameter?: number | undefined;
|
|
6807
|
+
outer_diameter?: number | undefined;
|
|
6808
|
+
})[];
|
|
6809
|
+
source_trace_id?: string | undefined;
|
|
6810
|
+
}, {
|
|
6811
|
+
route: ({
|
|
6812
|
+
x: string | number;
|
|
6813
|
+
y: string | number;
|
|
6814
|
+
width: string | number;
|
|
6815
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
6816
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6817
|
+
};
|
|
6818
|
+
route_type: "wire";
|
|
6819
|
+
start_pcb_port_id?: string | undefined;
|
|
6820
|
+
end_pcb_port_id?: string | undefined;
|
|
6821
|
+
} | {
|
|
6822
|
+
x: string | number;
|
|
6823
|
+
y: string | number;
|
|
6824
|
+
to_layer: string;
|
|
6825
|
+
route_type: "via";
|
|
6826
|
+
from_layer: string;
|
|
6827
|
+
hole_diameter?: string | number | undefined;
|
|
6828
|
+
outer_diameter?: string | number | undefined;
|
|
6829
|
+
})[];
|
|
6830
|
+
source_trace_id?: string | undefined;
|
|
6831
|
+
}>;
|
|
6832
|
+
declare class PcbTrace extends PrimitiveComponent<typeof pcbTraceProps> {
|
|
6833
|
+
pcb_trace_id: string | null;
|
|
6834
|
+
isPcbPrimitive: boolean;
|
|
6835
|
+
get config(): {
|
|
6836
|
+
componentName: string;
|
|
6837
|
+
zodProps: z.ZodObject<{
|
|
6838
|
+
route: z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
6839
|
+
route_type: z.ZodLiteral<"wire">;
|
|
6840
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6841
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6842
|
+
width: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6843
|
+
start_pcb_port_id: z.ZodOptional<z.ZodString>;
|
|
6844
|
+
end_pcb_port_id: z.ZodOptional<z.ZodString>;
|
|
6845
|
+
layer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
|
|
6846
|
+
name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
|
|
6847
|
+
}, "strip", z.ZodTypeAny, {
|
|
6848
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6849
|
+
}, {
|
|
6850
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6851
|
+
}>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
6852
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6853
|
+
}>;
|
|
6854
|
+
}, "strip", z.ZodTypeAny, {
|
|
6855
|
+
x: number;
|
|
6856
|
+
y: number;
|
|
6857
|
+
width: number;
|
|
6858
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6859
|
+
route_type: "wire";
|
|
6860
|
+
start_pcb_port_id?: string | undefined;
|
|
6861
|
+
end_pcb_port_id?: string | undefined;
|
|
6862
|
+
}, {
|
|
6863
|
+
x: string | number;
|
|
6864
|
+
y: string | number;
|
|
6865
|
+
width: string | number;
|
|
6866
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
6867
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6868
|
+
};
|
|
6869
|
+
route_type: "wire";
|
|
6870
|
+
start_pcb_port_id?: string | undefined;
|
|
6871
|
+
end_pcb_port_id?: string | undefined;
|
|
6872
|
+
}>, z.ZodObject<{
|
|
6873
|
+
route_type: z.ZodLiteral<"via">;
|
|
6874
|
+
x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6875
|
+
y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
|
|
6876
|
+
hole_diameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
6877
|
+
outer_diameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
6878
|
+
from_layer: z.ZodString;
|
|
6879
|
+
to_layer: z.ZodString;
|
|
6880
|
+
}, "strip", z.ZodTypeAny, {
|
|
6881
|
+
x: number;
|
|
6882
|
+
y: number;
|
|
6883
|
+
to_layer: string;
|
|
6884
|
+
route_type: "via";
|
|
6885
|
+
from_layer: string;
|
|
6886
|
+
hole_diameter?: number | undefined;
|
|
6887
|
+
outer_diameter?: number | undefined;
|
|
6888
|
+
}, {
|
|
6889
|
+
x: string | number;
|
|
6890
|
+
y: string | number;
|
|
6891
|
+
to_layer: string;
|
|
6892
|
+
route_type: "via";
|
|
6893
|
+
from_layer: string;
|
|
6894
|
+
hole_diameter?: string | number | undefined;
|
|
6895
|
+
outer_diameter?: string | number | undefined;
|
|
6896
|
+
}>]>, "many">;
|
|
6897
|
+
source_trace_id: z.ZodOptional<z.ZodString>;
|
|
6898
|
+
}, "strip", z.ZodTypeAny, {
|
|
6899
|
+
route: ({
|
|
6900
|
+
x: number;
|
|
6901
|
+
y: number;
|
|
6902
|
+
width: number;
|
|
6903
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6904
|
+
route_type: "wire";
|
|
6905
|
+
start_pcb_port_id?: string | undefined;
|
|
6906
|
+
end_pcb_port_id?: string | undefined;
|
|
6907
|
+
} | {
|
|
6908
|
+
x: number;
|
|
6909
|
+
y: number;
|
|
6910
|
+
to_layer: string;
|
|
6911
|
+
route_type: "via";
|
|
6912
|
+
from_layer: string;
|
|
6913
|
+
hole_diameter?: number | undefined;
|
|
6914
|
+
outer_diameter?: number | undefined;
|
|
6915
|
+
})[];
|
|
6916
|
+
source_trace_id?: string | undefined;
|
|
6917
|
+
}, {
|
|
6918
|
+
route: ({
|
|
6919
|
+
x: string | number;
|
|
6920
|
+
y: string | number;
|
|
6921
|
+
width: string | number;
|
|
6922
|
+
layer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
|
|
6923
|
+
name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
|
|
6924
|
+
};
|
|
6925
|
+
route_type: "wire";
|
|
6926
|
+
start_pcb_port_id?: string | undefined;
|
|
6927
|
+
end_pcb_port_id?: string | undefined;
|
|
6928
|
+
} | {
|
|
6929
|
+
x: string | number;
|
|
6930
|
+
y: string | number;
|
|
6931
|
+
to_layer: string;
|
|
6932
|
+
route_type: "via";
|
|
6933
|
+
from_layer: string;
|
|
6934
|
+
hole_diameter?: string | number | undefined;
|
|
6935
|
+
outer_diameter?: string | number | undefined;
|
|
6936
|
+
})[];
|
|
6937
|
+
source_trace_id?: string | undefined;
|
|
6938
|
+
}>;
|
|
6939
|
+
};
|
|
6940
|
+
doInitialPcbPrimitiveRender(): void;
|
|
6941
|
+
getPcbSize(): {
|
|
6942
|
+
width: number;
|
|
6943
|
+
height: number;
|
|
6944
|
+
};
|
|
6945
|
+
}
|
|
6946
|
+
|
|
6730
6947
|
declare class TraceHint extends PrimitiveComponent<typeof traceHintProps> {
|
|
6731
6948
|
matchedPort: Port | null;
|
|
6732
6949
|
get config(): {
|
|
@@ -11966,4 +12183,4 @@ declare module "react/jsx-runtime" {
|
|
|
11966
12183
|
}
|
|
11967
12184
|
}
|
|
11968
12185
|
|
|
11969
|
-
export { type AsyncEffect, type AutorouterCompleteEvent, type AutorouterErrorEvent, type AutorouterEvent, type AutorouterProgressEvent, type AutoroutingEndEvent, type AutoroutingErrorEvent, type AutoroutingProgressEvent, type AutoroutingStartEvent, Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Diode, FabricationNotePath, FabricationNoteText, Footprint, type GenericConnectionsAndSelectorsSel, type GenericLocalAutorouter, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, Mosfet, Net, NetAlias, NormalComponent, type Obstacle, 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, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, Subcircuit, Switch, Trace, TraceHint, Transistor, Via, applyEditEvents, applyEditEventsToManualEditsFile, applyPcbEditEventsToManualEditsFile, applySchematicEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
|
|
12186
|
+
export { type AsyncEffect, type AutorouterCompleteEvent, type AutorouterErrorEvent, type AutorouterEvent, type AutorouterProgressEvent, type AutoroutingEndEvent, type AutoroutingErrorEvent, type AutoroutingProgressEvent, type AutoroutingStartEvent, Battery, Board, Capacitor, Chip, Circuit, type ComponentWithPins, Constraint, Crystal, Diode, FabricationNotePath, FabricationNoteText, Footprint, type GenericConnectionsAndSelectorsSel, type GenericLocalAutorouter, Group, Hole, type IRenderable, Inductor, Jumper, Keepout, Led, 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, type Sel, SilkscreenCircle, SilkscreenLine, SilkscreenPath, SilkscreenRect, SilkscreenText, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, SmtPad, Subcircuit, Switch, Trace, TraceHint, Transistor, Via, applyEditEvents, applyEditEventsToManualEditsFile, applyPcbEditEventsToManualEditsFile, applySchematicEditEventsToManualEditsFile, createUseComponent, getPhaseTimingsFromRenderEvents, getSimpleRouteJsonFromCircuitJson, orderedRenderPhases, sel, useCapacitor, useChip, useDiode, useLed, useRenderedCircuit, useResistor };
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ __export(components_exports, {
|
|
|
27
27
|
Net: () => Net,
|
|
28
28
|
NetAlias: () => NetAlias,
|
|
29
29
|
NormalComponent: () => NormalComponent,
|
|
30
|
+
PcbTrace: () => PcbTrace,
|
|
30
31
|
PinHeader: () => PinHeader,
|
|
31
32
|
PlatedHole: () => PlatedHole,
|
|
32
33
|
Port: () => Port,
|
|
@@ -1822,6 +1823,74 @@ var SilkscreenPath = class extends PrimitiveComponent2 {
|
|
|
1822
1823
|
}
|
|
1823
1824
|
};
|
|
1824
1825
|
|
|
1826
|
+
// lib/components/primitive-components/PcbTrace.ts
|
|
1827
|
+
import { z as z4 } from "zod";
|
|
1828
|
+
import { pcb_trace_route_point } from "circuit-json";
|
|
1829
|
+
import { applyToPoint as applyToPoint3 } from "transformation-matrix";
|
|
1830
|
+
var pcbTraceProps = z4.object({
|
|
1831
|
+
route: z4.array(pcb_trace_route_point),
|
|
1832
|
+
// If this primitive PcbTrace needs to be associated with a source_trace_id
|
|
1833
|
+
// it can be added as a prop here. For footprints, it's often not needed.
|
|
1834
|
+
source_trace_id: z4.string().optional()
|
|
1835
|
+
});
|
|
1836
|
+
var PcbTrace = class extends PrimitiveComponent2 {
|
|
1837
|
+
pcb_trace_id = null;
|
|
1838
|
+
isPcbPrimitive = true;
|
|
1839
|
+
get config() {
|
|
1840
|
+
return {
|
|
1841
|
+
componentName: "PcbTrace",
|
|
1842
|
+
zodProps: pcbTraceProps
|
|
1843
|
+
};
|
|
1844
|
+
}
|
|
1845
|
+
doInitialPcbPrimitiveRender() {
|
|
1846
|
+
if (this.root?.pcbDisabled) return;
|
|
1847
|
+
const { db } = this.root;
|
|
1848
|
+
const { _parsedProps: props } = this;
|
|
1849
|
+
const container = this.getPrimitiveContainer();
|
|
1850
|
+
const subcircuit = this.getSubcircuit();
|
|
1851
|
+
const parentTransform = container._computePcbGlobalTransformBeforeLayout();
|
|
1852
|
+
const transformedRoute = props.route.map((point) => {
|
|
1853
|
+
const { x, y, ...restOfPoint } = point;
|
|
1854
|
+
const transformedPoint = applyToPoint3(parentTransform, { x, y });
|
|
1855
|
+
return { ...transformedPoint, ...restOfPoint };
|
|
1856
|
+
});
|
|
1857
|
+
const pcb_trace = db.pcb_trace.insert({
|
|
1858
|
+
pcb_component_id: container.pcb_component_id,
|
|
1859
|
+
source_trace_id: props.source_trace_id,
|
|
1860
|
+
route: transformedRoute,
|
|
1861
|
+
subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
|
|
1862
|
+
pcb_group_id: this.getGroup()?.pcb_group_id ?? void 0
|
|
1863
|
+
});
|
|
1864
|
+
this.pcb_trace_id = pcb_trace.pcb_trace_id;
|
|
1865
|
+
}
|
|
1866
|
+
getPcbSize() {
|
|
1867
|
+
const { _parsedProps: props } = this;
|
|
1868
|
+
if (!props.route || props.route.length === 0) {
|
|
1869
|
+
return { width: 0, height: 0 };
|
|
1870
|
+
}
|
|
1871
|
+
let minX = Infinity, maxX = -Infinity, minY = Infinity, maxY = -Infinity;
|
|
1872
|
+
for (const point of props.route) {
|
|
1873
|
+
minX = Math.min(minX, point.x);
|
|
1874
|
+
maxX = Math.max(maxX, point.x);
|
|
1875
|
+
minY = Math.min(minY, point.y);
|
|
1876
|
+
maxY = Math.max(maxY, point.y);
|
|
1877
|
+
if (point.route_type === "wire") {
|
|
1878
|
+
minX = Math.min(minX, point.x - point.width / 2);
|
|
1879
|
+
maxX = Math.max(maxX, point.x + point.width / 2);
|
|
1880
|
+
minY = Math.min(minY, point.y - point.width / 2);
|
|
1881
|
+
maxY = Math.max(maxY, point.y + point.width / 2);
|
|
1882
|
+
}
|
|
1883
|
+
}
|
|
1884
|
+
if (minX === Infinity || maxX === -Infinity || minY === Infinity || maxY === -Infinity) {
|
|
1885
|
+
return { width: 0, height: 0 };
|
|
1886
|
+
}
|
|
1887
|
+
return {
|
|
1888
|
+
width: maxX - minX,
|
|
1889
|
+
height: maxY - minY
|
|
1890
|
+
};
|
|
1891
|
+
}
|
|
1892
|
+
};
|
|
1893
|
+
|
|
1825
1894
|
// lib/components/primitive-components/PlatedHole.ts
|
|
1826
1895
|
import { platedHoleProps } from "@tscircuit/props";
|
|
1827
1896
|
var PlatedHole = class extends PrimitiveComponent2 {
|
|
@@ -2264,6 +2333,12 @@ var createComponentsFromCircuitJson = ({
|
|
|
2264
2333
|
})
|
|
2265
2334
|
);
|
|
2266
2335
|
}
|
|
2336
|
+
} else if (elm.type === "pcb_trace") {
|
|
2337
|
+
components.push(
|
|
2338
|
+
new PcbTrace({
|
|
2339
|
+
route: elm.route
|
|
2340
|
+
})
|
|
2341
|
+
);
|
|
2267
2342
|
}
|
|
2268
2343
|
}
|
|
2269
2344
|
return components;
|
|
@@ -2317,8 +2392,8 @@ function getRelativeDirection(pointA, pointB) {
|
|
|
2317
2392
|
|
|
2318
2393
|
// lib/components/primitive-components/Port/Port.ts
|
|
2319
2394
|
import "schematic-symbols";
|
|
2320
|
-
import { applyToPoint as
|
|
2321
|
-
import { z as
|
|
2395
|
+
import { applyToPoint as applyToPoint4, compose as compose2, translate as translate2 } from "transformation-matrix";
|
|
2396
|
+
import { z as z5 } from "zod";
|
|
2322
2397
|
|
|
2323
2398
|
// lib/components/primitive-components/Port/areAllPcbPrimitivesOverlapping.ts
|
|
2324
2399
|
var areAllPcbPrimitivesOverlapping = (pcbPrimitives) => {
|
|
@@ -2368,10 +2443,10 @@ var getCenterOfPcbPrimitives = (pcbPrimitives) => {
|
|
|
2368
2443
|
};
|
|
2369
2444
|
|
|
2370
2445
|
// lib/components/primitive-components/Port/Port.ts
|
|
2371
|
-
var portProps =
|
|
2372
|
-
name:
|
|
2373
|
-
pinNumber:
|
|
2374
|
-
aliases:
|
|
2446
|
+
var portProps = z5.object({
|
|
2447
|
+
name: z5.string().optional(),
|
|
2448
|
+
pinNumber: z5.number().optional(),
|
|
2449
|
+
aliases: z5.array(z5.string()).optional()
|
|
2375
2450
|
});
|
|
2376
2451
|
var Port = class extends PrimitiveComponent2 {
|
|
2377
2452
|
source_port_id = null;
|
|
@@ -2490,7 +2565,7 @@ var Port = class extends PrimitiveComponent2 {
|
|
|
2490
2565
|
this.parent.computeSchematicGlobalTransform(),
|
|
2491
2566
|
translate2(-symbol.center.x, -symbol.center.y)
|
|
2492
2567
|
);
|
|
2493
|
-
return
|
|
2568
|
+
return applyToPoint4(transform, schematicSymbolPortDef);
|
|
2494
2569
|
}
|
|
2495
2570
|
const parentBoxDim = this?.parent?._getSchematicBoxDimensions();
|
|
2496
2571
|
if (parentBoxDim && this.props.pinNumber !== void 0) {
|
|
@@ -2502,7 +2577,7 @@ var Port = class extends PrimitiveComponent2 {
|
|
|
2502
2577
|
`Couldn't find position for schematic_port for port ${this.getString()} inside of the schematic box`
|
|
2503
2578
|
);
|
|
2504
2579
|
}
|
|
2505
|
-
return
|
|
2580
|
+
return applyToPoint4(
|
|
2506
2581
|
this.parent.computeSchematicGlobalTransform(),
|
|
2507
2582
|
localPortPosition
|
|
2508
2583
|
);
|
|
@@ -2672,6 +2747,8 @@ var Port = class extends PrimitiveComponent2 {
|
|
|
2672
2747
|
let bestDisplayPinLabel = void 0;
|
|
2673
2748
|
for (const portHint of sourcePort?.port_hints ?? []) {
|
|
2674
2749
|
if (portHint.match(/^(pin)?\d+$/)) continue;
|
|
2750
|
+
if (portHint.match(/^(left|right)/) && !sourcePort?.name.match(/^(left|right)/))
|
|
2751
|
+
continue;
|
|
2675
2752
|
bestDisplayPinLabel = portHint;
|
|
2676
2753
|
}
|
|
2677
2754
|
const schematic_port = db.schematic_port.insert({
|
|
@@ -3017,7 +3094,7 @@ import {
|
|
|
3017
3094
|
isValidElement
|
|
3018
3095
|
} from "react";
|
|
3019
3096
|
import { symbols as symbols2 } from "schematic-symbols";
|
|
3020
|
-
import { z as
|
|
3097
|
+
import { z as z7 } from "zod";
|
|
3021
3098
|
|
|
3022
3099
|
// lib/components/primitive-components/Footprint.ts
|
|
3023
3100
|
import { footprintProps } from "@tscircuit/props";
|
|
@@ -4840,7 +4917,7 @@ searched component ${targetComponent.getString()}, which has ports: ${targetComp
|
|
|
4840
4917
|
|
|
4841
4918
|
// lib/components/base-components/NormalComponent/NormalComponent.ts
|
|
4842
4919
|
var debug3 = Debug4("tscircuit:core");
|
|
4843
|
-
var rotation3 =
|
|
4920
|
+
var rotation3 = z7.object({
|
|
4844
4921
|
x: rotation,
|
|
4845
4922
|
y: rotation,
|
|
4846
4923
|
z: rotation
|
|
@@ -5757,7 +5834,7 @@ import "zod";
|
|
|
5757
5834
|
|
|
5758
5835
|
// lib/components/primitive-components/TraceHint.ts
|
|
5759
5836
|
import { traceHintProps } from "@tscircuit/props";
|
|
5760
|
-
import { applyToPoint as
|
|
5837
|
+
import { applyToPoint as applyToPoint5 } from "transformation-matrix";
|
|
5761
5838
|
var TraceHint = class extends PrimitiveComponent2 {
|
|
5762
5839
|
matchedPort = null;
|
|
5763
5840
|
get config() {
|
|
@@ -5797,7 +5874,7 @@ var TraceHint = class extends PrimitiveComponent2 {
|
|
|
5797
5874
|
const globalTransform = this._computePcbGlobalTransformBeforeLayout();
|
|
5798
5875
|
return offsets.map(
|
|
5799
5876
|
(offset) => ({
|
|
5800
|
-
...
|
|
5877
|
+
...applyToPoint5(globalTransform, offset),
|
|
5801
5878
|
via: offset.via,
|
|
5802
5879
|
to_layer: offset.to_layer,
|
|
5803
5880
|
trace_width: offset.trace_width
|
|
@@ -7300,7 +7377,7 @@ var Constraint2 = class extends PrimitiveComponent2 {
|
|
|
7300
7377
|
|
|
7301
7378
|
// lib/components/primitive-components/FabricationNotePath.ts
|
|
7302
7379
|
import { fabricationNotePathProps } from "@tscircuit/props";
|
|
7303
|
-
import { applyToPoint as
|
|
7380
|
+
import { applyToPoint as applyToPoint6 } from "transformation-matrix";
|
|
7304
7381
|
var FabricationNotePath = class extends PrimitiveComponent2 {
|
|
7305
7382
|
fabrication_note_path_id = null;
|
|
7306
7383
|
get config() {
|
|
@@ -7326,7 +7403,7 @@ var FabricationNotePath = class extends PrimitiveComponent2 {
|
|
|
7326
7403
|
layer,
|
|
7327
7404
|
color: props.color,
|
|
7328
7405
|
route: props.route.map((p) => {
|
|
7329
|
-
const transformedPosition =
|
|
7406
|
+
const transformedPosition = applyToPoint6(transform, {
|
|
7330
7407
|
x: p.x,
|
|
7331
7408
|
y: p.y
|
|
7332
7409
|
});
|
|
@@ -8018,7 +8095,7 @@ import { identity as identity4 } from "transformation-matrix";
|
|
|
8018
8095
|
var package_default = {
|
|
8019
8096
|
name: "@tscircuit/core",
|
|
8020
8097
|
type: "module",
|
|
8021
|
-
version: "0.0.
|
|
8098
|
+
version: "0.0.393",
|
|
8022
8099
|
types: "dist/index.d.ts",
|
|
8023
8100
|
main: "dist/index.js",
|
|
8024
8101
|
module: "dist/index.js",
|
|
@@ -8471,6 +8548,7 @@ export {
|
|
|
8471
8548
|
Net,
|
|
8472
8549
|
NetAlias,
|
|
8473
8550
|
NormalComponent,
|
|
8551
|
+
PcbTrace,
|
|
8474
8552
|
PinHeader,
|
|
8475
8553
|
PlatedHole,
|
|
8476
8554
|
Port,
|