@tscircuit/core 0.0.76 → 0.0.78

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
@@ -273,12 +273,8 @@ declare class Trace extends PrimitiveComponent<typeof traceProps> {
273
273
  _portsRoutedOnPcb: Port[];
274
274
  constructor(props: z.input<typeof traceProps>);
275
275
  get config(): {
276
- zodProps: z.ZodUnion<[z.ZodObject<{
277
- path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<{
278
- getPortSelector: () => string;
279
- }, z.ZodTypeDef, {
280
- getPortSelector: () => string;
281
- }>]>, "many">;
276
+ zodProps: z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
277
+ key: z.ZodOptional<z.ZodString>;
282
278
  thickness: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
283
279
  schematicRouteHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
284
280
  x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
@@ -319,10 +315,17 @@ declare class Trace extends PrimitiveComponent<typeof traceProps> {
319
315
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
320
316
  } | undefined;
321
317
  }>, "many">>;
322
- }, "strip", z.ZodTypeAny, {
318
+ }, {
319
+ path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<{
320
+ getPortSelector: () => string;
321
+ }, z.ZodTypeDef, {
322
+ getPortSelector: () => string;
323
+ }>]>, "many">;
324
+ }>, "strip", z.ZodTypeAny, {
323
325
  path: (string | {
324
326
  getPortSelector: () => string;
325
327
  })[];
328
+ key?: string | undefined;
326
329
  thickness?: number | undefined;
327
330
  schematicRouteHints?: {
328
331
  x: number;
@@ -339,6 +342,7 @@ declare class Trace extends PrimitiveComponent<typeof traceProps> {
339
342
  path: (string | {
340
343
  getPortSelector: () => string;
341
344
  })[];
345
+ key?: string | undefined;
342
346
  thickness?: string | number | undefined;
343
347
  schematicRouteHints?: {
344
348
  x: string | number;
@@ -353,17 +357,8 @@ declare class Trace extends PrimitiveComponent<typeof traceProps> {
353
357
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
354
358
  } | undefined;
355
359
  }[] | undefined;
356
- }>, z.ZodObject<{
357
- from: z.ZodUnion<[z.ZodString, z.ZodType<{
358
- getPortSelector: () => string;
359
- }, z.ZodTypeDef, {
360
- getPortSelector: () => string;
361
- }>]>;
362
- to: z.ZodUnion<[z.ZodString, z.ZodType<{
363
- getPortSelector: () => string;
364
- }, z.ZodTypeDef, {
365
- getPortSelector: () => string;
366
- }>]>;
360
+ }>, z.ZodObject<z.objectUtil.extendShape<{
361
+ key: z.ZodOptional<z.ZodString>;
367
362
  thickness: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
368
363
  schematicRouteHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
369
364
  x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
@@ -404,13 +399,25 @@ declare class Trace extends PrimitiveComponent<typeof traceProps> {
404
399
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
405
400
  } | undefined;
406
401
  }>, "many">>;
407
- }, "strip", z.ZodTypeAny, {
402
+ }, {
403
+ from: z.ZodUnion<[z.ZodString, z.ZodType<{
404
+ getPortSelector: () => string;
405
+ }, z.ZodTypeDef, {
406
+ getPortSelector: () => string;
407
+ }>]>;
408
+ to: z.ZodUnion<[z.ZodString, z.ZodType<{
409
+ getPortSelector: () => string;
410
+ }, z.ZodTypeDef, {
411
+ getPortSelector: () => string;
412
+ }>]>;
413
+ }>, "strip", z.ZodTypeAny, {
408
414
  from: string | {
409
415
  getPortSelector: () => string;
410
416
  };
411
417
  to: string | {
412
418
  getPortSelector: () => string;
413
419
  };
420
+ key?: string | undefined;
414
421
  thickness?: number | undefined;
415
422
  schematicRouteHints?: {
416
423
  x: number;
@@ -430,6 +437,7 @@ declare class Trace extends PrimitiveComponent<typeof traceProps> {
430
437
  to: string | {
431
438
  getPortSelector: () => string;
432
439
  };
440
+ key?: string | undefined;
433
441
  thickness?: string | number | undefined;
434
442
  schematicRouteHints?: {
435
443
  x: string | number;
@@ -638,6 +646,7 @@ declare class NormalComponent<ZodProps extends ZodType = any, PortNames extends
638
646
  *
639
647
  */
640
648
  doInitialPortDiscovery(): void;
649
+ doInitialCadModelRender(): void;
641
650
  }
642
651
 
643
652
  declare class Group<Props extends z.ZodType<any, any, any> = typeof groupProps> extends NormalComponent<Props> {
@@ -669,30 +678,33 @@ declare class Board extends Group<typeof boardProps> {
669
678
  layout: z.ZodOptional<z.ZodAny>;
670
679
  routingDisabled: z.ZodOptional<z.ZodBoolean>;
671
680
  children: z.ZodAny;
681
+ defaultTraceWidth: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
672
682
  }, "strip", z.ZodTypeAny, {
673
683
  pcbX: number;
674
684
  pcbY: number;
675
685
  children?: any;
676
686
  width?: number | undefined;
677
687
  height?: number | undefined;
688
+ layout?: any;
689
+ routingDisabled?: boolean | undefined;
690
+ defaultTraceWidth?: number | undefined;
678
691
  outline?: {
679
692
  x: number;
680
693
  y: number;
681
694
  }[] | undefined;
682
- layout?: any;
683
- routingDisabled?: boolean | undefined;
684
695
  }, {
685
696
  pcbX?: string | number | undefined;
686
697
  pcbY?: string | number | undefined;
687
698
  children?: any;
688
699
  width?: string | number | undefined;
689
700
  height?: string | number | undefined;
701
+ layout?: any;
702
+ routingDisabled?: boolean | undefined;
703
+ defaultTraceWidth?: string | number | undefined;
690
704
  outline?: {
691
705
  x: string | number;
692
706
  y: string | number;
693
707
  }[] | undefined;
694
- layout?: any;
695
- routingDisabled?: boolean | undefined;
696
708
  }>;
697
709
  };
698
710
  doInitialPcbComponentRender(): void;
@@ -840,6 +852,7 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
840
852
  }, {
841
853
  supplierPartNumbers: z.ZodOptional<z.ZodRecord<z.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, z.ZodArray<z.ZodString, "many">>>;
842
854
  }>, {
855
+ key: z.ZodOptional<z.ZodAny>;
843
856
  name: z.ZodString;
844
857
  cadModel: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<z.objectUtil.extendShape<{
845
858
  rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
@@ -1093,6 +1106,7 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
1093
1106
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1094
1107
  footprint?: Props.Footprint | undefined;
1095
1108
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
1109
+ key?: any;
1096
1110
  cadModel?: string | {
1097
1111
  stlUrl: string;
1098
1112
  rotationOffset?: number | {
@@ -1166,6 +1180,7 @@ declare class Resistor extends NormalComponent<typeof resistorProps, PassivePort
1166
1180
  } | undefined;
1167
1181
  footprint?: Props.Footprint | undefined;
1168
1182
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
1183
+ key?: any;
1169
1184
  cadModel?: string | {
1170
1185
  stlUrl: string;
1171
1186
  rotationOffset?: number | {
@@ -1258,6 +1273,7 @@ declare class Led extends NormalComponent<typeof ledProps, PolarizedPassivePorts
1258
1273
  }, {
1259
1274
  supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
1260
1275
  }>, {
1276
+ key: zod.ZodOptional<zod.ZodAny>;
1261
1277
  name: zod.ZodString;
1262
1278
  cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
1263
1279
  rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
@@ -1506,6 +1522,7 @@ declare class Led extends NormalComponent<typeof ledProps, PolarizedPassivePorts
1506
1522
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1507
1523
  footprint?: Props.Footprint | undefined;
1508
1524
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
1525
+ key?: any;
1509
1526
  cadModel?: string | {
1510
1527
  stlUrl: string;
1511
1528
  rotationOffset?: number | {
@@ -1575,6 +1592,7 @@ declare class Led extends NormalComponent<typeof ledProps, PolarizedPassivePorts
1575
1592
  } | undefined;
1576
1593
  footprint?: Props.Footprint | undefined;
1577
1594
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
1595
+ key?: any;
1578
1596
  cadModel?: string | {
1579
1597
  stlUrl: string;
1580
1598
  rotationOffset?: number | {
@@ -1666,6 +1684,7 @@ declare class Diode extends NormalComponent<typeof diodeProps, TwoPinPorts> {
1666
1684
  }, {
1667
1685
  supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
1668
1686
  }>, {
1687
+ key: zod.ZodOptional<zod.ZodAny>;
1669
1688
  name: zod.ZodString;
1670
1689
  cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
1671
1690
  rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
@@ -1912,6 +1931,7 @@ declare class Diode extends NormalComponent<typeof diodeProps, TwoPinPorts> {
1912
1931
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
1913
1932
  footprint?: Props.Footprint | undefined;
1914
1933
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
1934
+ key?: any;
1915
1935
  cadModel?: string | {
1916
1936
  stlUrl: string;
1917
1937
  rotationOffset?: number | {
@@ -1980,6 +2000,7 @@ declare class Diode extends NormalComponent<typeof diodeProps, TwoPinPorts> {
1980
2000
  } | undefined;
1981
2001
  footprint?: Props.Footprint | undefined;
1982
2002
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
2003
+ key?: any;
1983
2004
  cadModel?: string | {
1984
2005
  stlUrl: string;
1985
2006
  rotationOffset?: number | {
@@ -2064,6 +2085,7 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PortNames
2064
2085
  }, {
2065
2086
  supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
2066
2087
  }>, {
2088
+ key: zod.ZodOptional<zod.ZodAny>;
2067
2089
  name: zod.ZodString;
2068
2090
  cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
2069
2091
  rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
@@ -2312,6 +2334,7 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PortNames
2312
2334
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
2313
2335
  footprint?: Props.Footprint | undefined;
2314
2336
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
2337
+ key?: any;
2315
2338
  cadModel?: string | {
2316
2339
  stlUrl: string;
2317
2340
  rotationOffset?: number | {
@@ -2381,6 +2404,7 @@ declare class Capacitor extends NormalComponent<typeof capacitorProps, PortNames
2381
2404
  } | undefined;
2382
2405
  footprint?: Props.Footprint | undefined;
2383
2406
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
2407
+ key?: any;
2384
2408
  cadModel?: string | {
2385
2409
  stlUrl: string;
2386
2410
  rotationOffset?: number | {
@@ -2489,6 +2513,7 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2489
2513
  }, {
2490
2514
  supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
2491
2515
  }>, {
2516
+ key: zod.ZodOptional<zod.ZodAny>;
2492
2517
  name: zod.ZodString;
2493
2518
  cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
2494
2519
  rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
@@ -2863,6 +2888,7 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2863
2888
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
2864
2889
  footprint?: Props.Footprint | undefined;
2865
2890
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
2891
+ key?: any;
2866
2892
  cadModel?: string | {
2867
2893
  stlUrl: string;
2868
2894
  rotationOffset?: number | {
@@ -2970,6 +2996,7 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2970
2996
  } | undefined;
2971
2997
  footprint?: Props.Footprint | undefined;
2972
2998
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
2999
+ key?: any;
2973
3000
  cadModel?: string | {
2974
3001
  stlUrl: string;
2975
3002
  rotationOffset?: number | {
@@ -3069,6 +3096,20 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
3069
3096
  doInitialSourceRender(): void;
3070
3097
  doInitialSchematicComponentRender(): void;
3071
3098
  doInitialPcbComponentRender(): void;
3099
+ _getPcbCircuitJsonBounds(): {
3100
+ center: {
3101
+ x: number;
3102
+ y: number;
3103
+ };
3104
+ bounds: {
3105
+ left: number;
3106
+ top: number;
3107
+ right: number;
3108
+ bottom: number;
3109
+ };
3110
+ width: number;
3111
+ height: number;
3112
+ };
3072
3113
  }
3073
3114
 
3074
3115
  declare class Jumper<PinLabels extends string = never> extends NormalComponent<typeof jumperProps, PinLabels> {
@@ -3094,6 +3135,7 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
3094
3135
  }, {
3095
3136
  supplierPartNumbers: zod.ZodOptional<zod.ZodRecord<zod.ZodEnum<["jlcpcb", "macrofab", "pcbway", "digikey", "mouser", "lcsc"]>, zod.ZodArray<zod.ZodString, "many">>>;
3096
3137
  }>, {
3138
+ key: zod.ZodOptional<zod.ZodAny>;
3097
3139
  name: zod.ZodString;
3098
3140
  cadModel: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodObject<zod.objectUtil.extendShape<{
3099
3141
  rotationOffset: zod.ZodOptional<zod.ZodUnion<[zod.ZodNumber, zod.ZodObject<{
@@ -3469,6 +3511,7 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
3469
3511
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
3470
3512
  footprint?: Props.Footprint | undefined;
3471
3513
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
3514
+ key?: any;
3472
3515
  cadModel?: string | {
3473
3516
  stlUrl: string;
3474
3517
  rotationOffset?: number | {
@@ -3577,6 +3620,7 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
3577
3620
  } | undefined;
3578
3621
  footprint?: Props.Footprint | undefined;
3579
3622
  supplierPartNumbers?: Partial<Record<"jlcpcb" | "macrofab" | "pcbway" | "digikey" | "mouser" | "lcsc", string[]>> | undefined;
3623
+ key?: any;
3580
3624
  cadModel?: string | {
3581
3625
  stlUrl: string;
3582
3626
  rotationOffset?: number | {
package/dist/index.js CHANGED
@@ -1982,6 +1982,28 @@ var NormalComponent = class extends PrimitiveComponent {
1982
1982
  this.add(newPort);
1983
1983
  }
1984
1984
  }
1985
+ doInitialCadModelRender() {
1986
+ const { db } = this.root;
1987
+ const { _parsedProps: props } = this;
1988
+ if (props.cadModel) {
1989
+ const bounds = this._getPcbCircuitJsonBounds();
1990
+ const cadModel = props.cadModel;
1991
+ if (typeof cadModel === "string") {
1992
+ throw new Error("String cadModel not yet implemented");
1993
+ }
1994
+ const cad_model = db.cad_component.insert({
1995
+ // TODO z maybe depends on layer
1996
+ position: { x: bounds.center.x, y: bounds.center.y, z: 0 },
1997
+ pcb_component_id: this.pcb_component_id,
1998
+ source_component_id: this.source_component_id,
1999
+ model_stl_url: "stlUrl" in cadModel ? cadModel.stlUrl : void 0,
2000
+ model_obj_url: "objUrl" in cadModel ? cadModel.objUrl : void 0,
2001
+ model_jscad: "jscad" in cadModel ? cadModel.jscad : void 0
2002
+ // TODO
2003
+ // footprinter_string:
2004
+ });
2005
+ }
2006
+ }
1985
2007
  };
1986
2008
 
1987
2009
  // lib/components/normal-components/Board.ts
@@ -3206,6 +3228,22 @@ var Chip = class extends NormalComponent {
3206
3228
  });
3207
3229
  this.pcb_component_id = pcb_component.pcb_component_id;
3208
3230
  }
3231
+ _getPcbCircuitJsonBounds() {
3232
+ const { db } = this.root;
3233
+ if (!this.pcb_component_id) return super._getPcbCircuitJsonBounds();
3234
+ const pcb_component = db.pcb_component.get(this.pcb_component_id);
3235
+ return {
3236
+ center: { x: pcb_component.center.x, y: pcb_component.center.y },
3237
+ bounds: {
3238
+ left: pcb_component.center.x - pcb_component.width / 2,
3239
+ top: pcb_component.center.y - pcb_component.height / 2,
3240
+ right: pcb_component.center.x + pcb_component.width / 2,
3241
+ bottom: pcb_component.center.y + pcb_component.height / 2
3242
+ },
3243
+ width: pcb_component.width,
3244
+ height: pcb_component.height
3245
+ };
3246
+ }
3209
3247
  };
3210
3248
 
3211
3249
  // lib/components/normal-components/Jumper.ts
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.76",
4
+ "version": "0.0.78",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "@lume/kiwi": "^0.4.3",
35
35
  "@tscircuit/infgrid-ijump-astar": "^0.0.21",
36
36
  "@tscircuit/math-utils": "^0.0.4",
37
- "@tscircuit/props": "^0.0.63",
37
+ "@tscircuit/props": "^0.0.65",
38
38
  "@tscircuit/soup": "^0.0.73",
39
39
  "@tscircuit/soup-util": "^0.0.28",
40
40
  "circuit-json": "^0.0.77",