@tscircuit/core 0.0.164 → 0.0.166

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,15 +1,15 @@
1
1
  import * as _tscircuit_props from '@tscircuit/props';
2
- import { traceProps, 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, CapacitorProps, ChipProps, ResistorProps } from '@tscircuit/props';
3
3
  import React, { ReactElement } from 'react';
4
4
  import * as zod from 'zod';
5
- import { ZodType, z } from 'zod';
5
+ import { z, ZodType } from 'zod';
6
6
  import { symbols, SchSymbol, BaseSymbolName } from 'schematic-symbols';
7
7
  import { PcbTraceError, PcbPlacementError, LayerRef, AnyCircuitElement, AnySourceComponent, RouteHintPoint } from 'circuit-json';
8
8
  import { Matrix } from 'transformation-matrix';
9
9
  import { SoupUtilObjects } from '@tscircuit/soup-util';
10
10
  import * as _tscircuit_layout from '@tscircuit/layout';
11
11
 
12
- declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "InitializePortsFromChildren", "CreateNetsFromProps", "CreateTracesFromProps", "CreateTraceHintsFromProps", "SourceRender", "SourceParentAttachment", "PortDiscovery", "PortMatching", "SourceTraceRender", "SourceAddConnectivityMapKey", "SchematicComponentRender", "SchematicPortRender", "SchematicLayout", "SchematicTraceRender", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbLayout", "PcbTraceRender", "PcbTraceHintRender", "PcbRouteNetIslands", "PcbComponentSizeCalculation", "CadModelRender"];
12
+ declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "InitializePortsFromChildren", "CreateNetsFromProps", "CreateTracesFromProps", "CreateTraceHintsFromProps", "SourceRender", "SourceParentAttachment", "PortDiscovery", "PortMatching", "SourceTraceRender", "SourceAddConnectivityMapKey", "SchematicComponentRender", "SchematicPortRender", "SchematicLayout", "SchematicTraceRender", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbLayout", "PcbTraceRender", "PcbTraceHintRender", "PcbRouteNetIslands", "PcbComponentSizeCalculation", "CadModelRender", "PartsEngineRender"];
13
13
  type RenderPhase = (typeof orderedRenderPhases)[number];
14
14
  type RenderPhaseFn<K extends RenderPhase = RenderPhase> = `doInitial${K}` | `update${K}` | `remove${K}`;
15
15
  type RenderPhaseStates = Record<RenderPhase, {
@@ -126,6 +126,7 @@ declare const Project: typeof Circuit;
126
126
 
127
127
  interface ISubcircuit extends PrimitiveComponent {
128
128
  _shouldUseTraceByTraceRouting(): boolean;
129
+ _parsedProps: z.infer<typeof subcircuitGroupProps>;
129
130
  }
130
131
 
131
132
  interface BaseComponentConfig {
@@ -709,6 +710,7 @@ declare class NormalComponent<ZodProps extends ZodType = any, PortNames extends
709
710
  reactSubtrees: Array<ReactSubtree>;
710
711
  _impliedFootprint?: string | undefined;
711
712
  isPrimitiveContainer: boolean;
713
+ _asyncSupplierPartNumbers?: SupplierPartNumbers;
712
714
  constructor(props: z.input<ZodProps>);
713
715
  /**
714
716
  * Override this method for better control over the auto-discovery of ports.
@@ -789,6 +791,8 @@ declare class NormalComponent<ZodProps extends ZodType = any, PortNames extends
789
791
  _getSchematicPortArrangement(): SchematicPortArrangement | null;
790
792
  _getSchematicBoxDimensions(): SchematicBoxDimensions | null;
791
793
  doInitialCadModelRender(): void;
794
+ doInitialPartsEngineRender(): void;
795
+ updatePartsEngineRender(): void;
792
796
  }
793
797
 
794
798
  type SimplifiedPcbTrace = {
@@ -871,7 +875,36 @@ declare class Board extends Group<typeof boardProps> {
871
875
  get isSubcircuit(): boolean;
872
876
  get config(): {
873
877
  componentName: string;
874
- zodProps: z.ZodObject<{
878
+ zodProps: z.ZodObject<z.objectUtil.extendShape<Omit<z.objectUtil.extendShape<z.objectUtil.extendShape<{
879
+ pcbX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
880
+ pcbY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
881
+ pcbRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
882
+ schX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
883
+ schY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
884
+ schRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
885
+ layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
886
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
887
+ }, "strip", z.ZodTypeAny, {
888
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
889
+ }, {
890
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
891
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
892
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
893
+ }>>;
894
+ footprint: z.ZodOptional<z.ZodType<_tscircuit_props.Footprint, z.ZodTypeDef, _tscircuit_props.Footprint>>;
895
+ }, {
896
+ name: z.ZodOptional<z.ZodString>;
897
+ children: z.ZodOptional<z.ZodAny>;
898
+ }>, {
899
+ subcircuit: z.ZodLiteral<true>;
900
+ layout: z.ZodOptional<z.ZodType<_tscircuit_layout.LayoutBuilder, z.ZodTypeDef, _tscircuit_layout.LayoutBuilder>>;
901
+ manualEdits: z.ZodOptional<z.ZodType<_tscircuit_layout.ManualEditFile, z.ZodTypeDef, _tscircuit_layout.ManualEditFile>>;
902
+ schAutoLayoutEnabled: z.ZodOptional<z.ZodBoolean>;
903
+ routingDisabled: z.ZodOptional<z.ZodBoolean>;
904
+ defaultTraceWidth: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
905
+ minTraceWidth: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
906
+ partsEngine: z.ZodOptional<z.ZodType<_tscircuit_props.PartsEngine, z.ZodTypeDef, _tscircuit_props.PartsEngine>>;
907
+ }>, "subcircuit">, {
875
908
  width: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
876
909
  height: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
877
910
  outline: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -884,44 +917,56 @@ declare class Board extends Group<typeof boardProps> {
884
917
  x: string | number;
885
918
  y: string | number;
886
919
  }>, "many">>;
887
- pcbX: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>>;
888
- pcbY: z.ZodDefault<z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>>;
889
- layout: z.ZodOptional<z.ZodType<_tscircuit_layout.LayoutBuilder, z.ZodTypeDef, _tscircuit_layout.LayoutBuilder>>;
890
- manualEdits: z.ZodOptional<z.ZodType<_tscircuit_layout.ManualEditFile, z.ZodTypeDef, _tscircuit_layout.ManualEditFile>>;
891
- routingDisabled: z.ZodOptional<z.ZodBoolean>;
892
- children: z.ZodAny;
893
- defaultTraceWidth: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
894
- schAutoLayoutEnabled: z.ZodOptional<z.ZodBoolean>;
895
- }, "strip", z.ZodTypeAny, {
896
- pcbX: number;
897
- pcbY: number;
920
+ }>, "strip", z.ZodTypeAny, {
921
+ pcbX?: number | undefined;
922
+ pcbY?: number | undefined;
923
+ pcbRotation?: number | undefined;
924
+ schX?: number | undefined;
925
+ schY?: number | undefined;
926
+ schRotation?: number | undefined;
927
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
928
+ footprint?: _tscircuit_props.Footprint | undefined;
929
+ name?: string | undefined;
898
930
  children?: any;
899
931
  width?: number | undefined;
900
932
  height?: number | undefined;
901
- outline?: {
902
- x: number;
903
- y: number;
904
- }[] | undefined;
905
933
  layout?: _tscircuit_layout.LayoutBuilder | undefined;
906
934
  manualEdits?: _tscircuit_layout.ManualEditFile | undefined;
907
935
  routingDisabled?: boolean | undefined;
908
936
  defaultTraceWidth?: number | undefined;
937
+ minTraceWidth?: number | undefined;
909
938
  schAutoLayoutEnabled?: boolean | undefined;
939
+ partsEngine?: _tscircuit_props.PartsEngine | undefined;
940
+ outline?: {
941
+ x: number;
942
+ y: number;
943
+ }[] | undefined;
910
944
  }, {
911
945
  pcbX?: string | number | undefined;
912
946
  pcbY?: string | number | undefined;
947
+ pcbRotation?: string | number | undefined;
948
+ schX?: string | number | undefined;
949
+ schY?: string | number | undefined;
950
+ schRotation?: string | number | undefined;
951
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
952
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
953
+ } | undefined;
954
+ footprint?: _tscircuit_props.Footprint | undefined;
955
+ name?: string | undefined;
913
956
  children?: any;
914
957
  width?: string | number | undefined;
915
958
  height?: string | number | undefined;
916
- outline?: {
917
- x: string | number;
918
- y: string | number;
919
- }[] | undefined;
920
959
  layout?: _tscircuit_layout.LayoutBuilder | undefined;
921
960
  manualEdits?: _tscircuit_layout.ManualEditFile | undefined;
922
961
  routingDisabled?: boolean | undefined;
923
962
  defaultTraceWidth?: string | number | undefined;
963
+ minTraceWidth?: string | number | undefined;
924
964
  schAutoLayoutEnabled?: boolean | undefined;
965
+ partsEngine?: _tscircuit_props.PartsEngine | undefined;
966
+ outline?: {
967
+ x: string | number;
968
+ y: string | number;
969
+ }[] | undefined;
925
970
  }>;
926
971
  };
927
972
  get boardThickness(): number;
@@ -4311,7 +4356,7 @@ declare class FabricationNotePath extends PrimitiveComponent<typeof fabricationN
4311
4356
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4312
4357
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4313
4358
  }>>;
4314
- }, "pcbRotation" | "pcbX" | "pcbY">, {
4359
+ }, "pcbX" | "pcbY" | "pcbRotation">, {
4315
4360
  route: zod.ZodArray<zod.ZodObject<{
4316
4361
  x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
4317
4362
  y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
@@ -4611,47 +4656,24 @@ declare class NetAlias extends PrimitiveComponent<typeof netAliasProps> {
4611
4656
  source_net_alias_id?: string;
4612
4657
  get config(): {
4613
4658
  componentName: string;
4614
- zodProps: zod.ZodObject<zod.objectUtil.extendShape<{
4615
- pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
4616
- pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
4617
- pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
4659
+ zodProps: zod.ZodObject<{
4660
+ net: zod.ZodOptional<zod.ZodString>;
4618
4661
  schX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
4619
4662
  schY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
4620
4663
  schRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
4621
- layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
4622
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
4623
- }, "strip", zod.ZodTypeAny, {
4624
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4625
- }, {
4626
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4627
- }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4628
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4629
- }>>;
4630
- footprint: zod.ZodOptional<zod.ZodType<_tscircuit_props.Footprint, zod.ZodTypeDef, _tscircuit_props.Footprint>>;
4631
- }, {
4632
- net: zod.ZodOptional<zod.ZodString>;
4633
- }>, "strip", zod.ZodTypeAny, {
4634
- pcbX?: number | undefined;
4635
- pcbY?: number | undefined;
4636
- pcbRotation?: number | undefined;
4664
+ anchorSide: zod.ZodOptional<zod.ZodEnum<["left", "up", "right", "down"]>>;
4665
+ }, "strip", zod.ZodTypeAny, {
4637
4666
  schX?: number | undefined;
4638
4667
  schY?: number | undefined;
4639
4668
  schRotation?: number | undefined;
4640
- layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
4641
- footprint?: _tscircuit_props.Footprint | undefined;
4642
4669
  net?: string | undefined;
4670
+ anchorSide?: "left" | "right" | "up" | "down" | undefined;
4643
4671
  }, {
4644
- pcbX?: string | number | undefined;
4645
- pcbY?: string | number | undefined;
4646
- pcbRotation?: string | number | undefined;
4647
4672
  schX?: string | number | undefined;
4648
4673
  schY?: string | number | undefined;
4649
4674
  schRotation?: string | number | undefined;
4650
- layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4651
- name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4652
- } | undefined;
4653
- footprint?: _tscircuit_props.Footprint | undefined;
4654
4675
  net?: string | undefined;
4676
+ anchorSide?: "left" | "right" | "up" | "down" | undefined;
4655
4677
  }>;
4656
4678
  };
4657
4679
  doInitialSchematicComponentRender(): void;
@@ -4676,7 +4698,7 @@ declare class PlatedHole extends PrimitiveComponent<typeof platedHoleProps> {
4676
4698
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4677
4699
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4678
4700
  }>>;
4679
- }, "layer" | "pcbRotation">, {
4701
+ }, "pcbRotation" | "layer">, {
4680
4702
  name: zod.ZodOptional<zod.ZodString>;
4681
4703
  shape: zod.ZodLiteral<"circle">;
4682
4704
  holeDiameter: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
@@ -4711,7 +4733,7 @@ declare class PlatedHole extends PrimitiveComponent<typeof platedHoleProps> {
4711
4733
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4712
4734
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4713
4735
  }>>;
4714
- }, "layer" | "pcbRotation">, {
4736
+ }, "pcbRotation" | "layer">, {
4715
4737
  name: zod.ZodOptional<zod.ZodString>;
4716
4738
  shape: zod.ZodLiteral<"oval">;
4717
4739
  outerWidth: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
@@ -4752,7 +4774,7 @@ declare class PlatedHole extends PrimitiveComponent<typeof platedHoleProps> {
4752
4774
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4753
4775
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4754
4776
  }>>;
4755
- }, "layer" | "pcbRotation">, {
4777
+ }, "pcbRotation" | "layer">, {
4756
4778
  name: zod.ZodOptional<zod.ZodString>;
4757
4779
  shape: zod.ZodLiteral<"pill">;
4758
4780
  outerWidth: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
@@ -4872,7 +4894,7 @@ declare class SilkscreenPath extends PrimitiveComponent<typeof silkscreenPathPro
4872
4894
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
4873
4895
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
4874
4896
  }>>;
4875
- }, "pcbRotation" | "pcbX" | "pcbY">, {
4897
+ }, "pcbX" | "pcbY" | "pcbRotation">, {
4876
4898
  route: zod.ZodArray<zod.ZodObject<{
4877
4899
  x: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
4878
4900
  y: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
package/dist/index.js CHANGED
@@ -77,7 +77,8 @@ var orderedRenderPhases = [
77
77
  "PcbTraceHintRender",
78
78
  "PcbRouteNetIslands",
79
79
  "PcbComponentSizeCalculation",
80
- "CadModelRender"
80
+ "CadModelRender",
81
+ "PartsEngineRender"
81
82
  ];
82
83
  var globalRenderCounter = 0;
83
84
  var Renderable = class {
@@ -2387,6 +2388,7 @@ var NormalComponent = class extends PrimitiveComponent {
2387
2388
  reactSubtrees = [];
2388
2389
  _impliedFootprint;
2389
2390
  isPrimitiveContainer = true;
2391
+ _asyncSupplierPartNumbers;
2390
2392
  constructor(props) {
2391
2393
  super(props);
2392
2394
  this._addChildrenFromStringFootprint();
@@ -2902,6 +2904,39 @@ var NormalComponent = class extends PrimitiveComponent {
2902
2904
  footprinter_string: typeof this.props.footprint === "string" && !cadModel ? this.props.footprint : void 0
2903
2905
  });
2904
2906
  }
2907
+ doInitialPartsEngineRender() {
2908
+ console.log("doInitialPartsEngineRender", this);
2909
+ const { partsEngine } = this.getSubcircuit()._parsedProps;
2910
+ if (!partsEngine) return;
2911
+ const { db } = this.root;
2912
+ const source_component = db.source_component.get(this.source_component_id);
2913
+ if (!source_component) return;
2914
+ if (source_component.supplier_part_numbers) return;
2915
+ const supplierPartNumbersMaybePromise = partsEngine.findPart(source_component);
2916
+ if (!(supplierPartNumbersMaybePromise instanceof Promise)) {
2917
+ db.source_component.update(this.source_component_id, {
2918
+ supplier_part_numbers: supplierPartNumbersMaybePromise
2919
+ });
2920
+ return;
2921
+ }
2922
+ this._queueAsyncEffect(async () => {
2923
+ this._asyncSupplierPartNumbers = await supplierPartNumbersMaybePromise;
2924
+ this._markDirty("PartsEngineRender");
2925
+ });
2926
+ }
2927
+ updatePartsEngineRender() {
2928
+ const { db } = this.root;
2929
+ console.log("updatePartsEngineRender", this);
2930
+ const source_component = db.source_component.get(this.source_component_id);
2931
+ if (!source_component) return;
2932
+ if (source_component.supplier_part_numbers) return;
2933
+ if (this._asyncSupplierPartNumbers) {
2934
+ db.source_component.update(this.source_component_id, {
2935
+ supplier_part_numbers: this._asyncSupplierPartNumbers
2936
+ });
2937
+ return;
2938
+ }
2939
+ }
2905
2940
  };
2906
2941
 
2907
2942
  // lib/components/normal-components/Board.ts
@@ -3182,7 +3217,7 @@ var Board = class extends Group {
3182
3217
  throw new Error("Board width and height or an outline are required");
3183
3218
  }
3184
3219
  const pcb_board = db.pcb_board.insert({
3185
- center: { x: props.pcbX, y: props.pcbY },
3220
+ center: { x: props.pcbX ?? 0, y: props.pcbY ?? 0 },
3186
3221
  thickness: this.boardThickness,
3187
3222
  num_layers: this.allLayers.length,
3188
3223
  width: props.width,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.164",
4
+ "version": "0.0.166",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -40,9 +40,9 @@
40
40
  "@tscircuit/footprinter": "^0.0.77",
41
41
  "@tscircuit/infgrid-ijump-astar": "^0.0.24",
42
42
  "@tscircuit/math-utils": "^0.0.4",
43
- "@tscircuit/props": "^0.0.86",
44
- "@tscircuit/schematic-autolayout": "^0.0.5",
45
- "@tscircuit/soup-util": "^0.0.33",
43
+ "@tscircuit/props": "^0.0.91",
44
+ "@tscircuit/soup-util": "^0.0.40",
45
+ "@tscircuit/schematic-autolayout": "^0.0.6",
46
46
  "circuit-json": "^0.0.99",
47
47
  "circuit-json-to-connectivity-map": "^0.0.17",
48
48
  "circuit-to-svg": "^0.0.71",