@tscircuit/core 0.0.697 → 0.0.698

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
@@ -868,12 +868,18 @@ declare const portProps: z.ZodObject<{
868
868
  name: z.ZodOptional<z.ZodString>;
869
869
  pinNumber: z.ZodOptional<z.ZodNumber>;
870
870
  aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
871
+ layer: z.ZodOptional<z.ZodString>;
872
+ layers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
871
873
  }, "strip", z.ZodTypeAny, {
872
874
  name?: string | undefined;
875
+ layer?: string | undefined;
876
+ layers?: string[] | undefined;
873
877
  pinNumber?: number | undefined;
874
878
  aliases?: string[] | undefined;
875
879
  }, {
876
880
  name?: string | undefined;
881
+ layer?: string | undefined;
882
+ layers?: string[] | undefined;
877
883
  pinNumber?: number | undefined;
878
884
  aliases?: string[] | undefined;
879
885
  }>;
@@ -891,12 +897,18 @@ declare class Port extends PrimitiveComponent<typeof portProps> {
891
897
  name: z.ZodOptional<z.ZodString>;
892
898
  pinNumber: z.ZodOptional<z.ZodNumber>;
893
899
  aliases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
900
+ layer: z.ZodOptional<z.ZodString>;
901
+ layers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
894
902
  }, "strip", z.ZodTypeAny, {
895
903
  name?: string | undefined;
904
+ layer?: string | undefined;
905
+ layers?: string[] | undefined;
896
906
  pinNumber?: number | undefined;
897
907
  aliases?: string[] | undefined;
898
908
  }, {
899
909
  name?: string | undefined;
910
+ layer?: string | undefined;
911
+ layers?: string[] | undefined;
900
912
  pinNumber?: number | undefined;
901
913
  aliases?: string[] | undefined;
902
914
  }>;
@@ -13325,52 +13337,54 @@ declare class Via extends PrimitiveComponent<typeof viaProps> {
13325
13337
  pcb_via_id: string | null;
13326
13338
  matchedPort: Port | null;
13327
13339
  isPcbPrimitive: boolean;
13340
+ source_manually_placed_via_id: string | null;
13341
+ constructor(props: z.input<typeof viaProps>);
13328
13342
  get config(): {
13329
13343
  componentName: string;
13330
- zodProps: zod.ZodObject<{
13331
- pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13332
- pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13333
- pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13334
- schX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13335
- schY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13336
- schRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
13337
- layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
13338
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13339
- }, "strip", zod.ZodTypeAny, {
13344
+ zodProps: z.ZodObject<{
13345
+ pcbX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
13346
+ pcbY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
13347
+ pcbRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
13348
+ schX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
13349
+ schY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
13350
+ schRotation: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
13351
+ layer: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
13352
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13353
+ }, "strip", z.ZodTypeAny, {
13340
13354
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13341
13355
  }, {
13342
13356
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13343
13357
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
13344
13358
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13345
13359
  }>>;
13346
- footprint: zod.ZodOptional<zod.ZodType<_tscircuit_props.FootprintProp, zod.ZodTypeDef, _tscircuit_props.FootprintProp>>;
13347
- relative: zod.ZodOptional<zod.ZodBoolean>;
13348
- schRelative: zod.ZodOptional<zod.ZodBoolean>;
13349
- pcbRelative: zod.ZodOptional<zod.ZodBoolean>;
13360
+ footprint: z.ZodOptional<z.ZodType<_tscircuit_props.FootprintProp, z.ZodTypeDef, _tscircuit_props.FootprintProp>>;
13361
+ relative: z.ZodOptional<z.ZodBoolean>;
13362
+ schRelative: z.ZodOptional<z.ZodBoolean>;
13363
+ pcbRelative: z.ZodOptional<z.ZodBoolean>;
13350
13364
  } & {
13351
- name: zod.ZodOptional<zod.ZodString>;
13352
- fromLayer: zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
13353
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13354
- }, "strip", zod.ZodTypeAny, {
13365
+ name: z.ZodOptional<z.ZodString>;
13366
+ fromLayer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
13367
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13368
+ }, "strip", z.ZodTypeAny, {
13355
13369
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13356
13370
  }, {
13357
13371
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13358
13372
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
13359
13373
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13360
13374
  }>;
13361
- toLayer: zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
13362
- name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13363
- }, "strip", zod.ZodTypeAny, {
13375
+ toLayer: z.ZodEffects<z.ZodUnion<[z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, z.ZodObject<{
13376
+ name: z.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
13377
+ }, "strip", z.ZodTypeAny, {
13364
13378
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13365
13379
  }, {
13366
13380
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13367
13381
  }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
13368
13382
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
13369
13383
  }>;
13370
- holeDiameter: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13371
- outerDiameter: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
13372
- connectsTo: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodArray<zod.ZodString, "many">]>>;
13373
- }, "strip", zod.ZodTypeAny, {
13384
+ holeDiameter: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
13385
+ outerDiameter: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
13386
+ connectsTo: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
13387
+ }, "strip", z.ZodTypeAny, {
13374
13388
  holeDiameter: number;
13375
13389
  outerDiameter: number;
13376
13390
  fromLayer: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
@@ -13437,6 +13451,10 @@ declare class Via extends PrimitiveComponent<typeof viaProps> {
13437
13451
  x: number;
13438
13452
  y: number;
13439
13453
  }): void;
13454
+ _getLayers(): LayerRef[];
13455
+ initPorts(): void;
13456
+ doInitialPcbComponentRender(): void;
13457
+ doInitialSourceRender(): void;
13440
13458
  doInitialPcbPrimitiveRender(): void;
13441
13459
  }
13442
13460
 
package/dist/index.js CHANGED
@@ -3037,7 +3037,9 @@ var getCenterOfPcbPrimitives = (pcbPrimitives) => {
3037
3037
  var portProps = z6.object({
3038
3038
  name: z6.string().optional(),
3039
3039
  pinNumber: z6.number().optional(),
3040
- aliases: z6.array(z6.string()).optional()
3040
+ aliases: z6.array(z6.string()).optional(),
3041
+ layer: z6.string().optional(),
3042
+ layers: z6.array(z6.string()).optional()
3041
3043
  });
3042
3044
  var Port = class extends PrimitiveComponent2 {
3043
3045
  source_port_id = null;
@@ -3217,6 +3219,9 @@ var Port = class extends PrimitiveComponent2 {
3217
3219
  return `.${this.parent?.props.name} > port.${this.props.name}`;
3218
3220
  }
3219
3221
  getAvailablePcbLayers() {
3222
+ const { layer, layers } = this._parsedProps;
3223
+ if (layers) return layers;
3224
+ if (layer) return [layer];
3220
3225
  return Array.from(
3221
3226
  new Set(this.matchedComponents.flatMap((c) => c.getAvailablePcbLayers()))
3222
3227
  );
@@ -13261,10 +13266,18 @@ var SilkscreenLine = class extends PrimitiveComponent2 {
13261
13266
 
13262
13267
  // lib/components/primitive-components/Via.ts
13263
13268
  import { viaProps } from "@tscircuit/props";
13269
+ import "zod";
13264
13270
  var Via = class extends PrimitiveComponent2 {
13265
13271
  pcb_via_id = null;
13266
13272
  matchedPort = null;
13267
13273
  isPcbPrimitive = true;
13274
+ source_manually_placed_via_id = null;
13275
+ constructor(props) {
13276
+ super(props);
13277
+ const layers = this._getLayers();
13278
+ this._parsedProps.layers = layers;
13279
+ this.initPorts();
13280
+ }
13268
13281
  get config() {
13269
13282
  return {
13270
13283
  componentName: "Via",
@@ -13301,6 +13314,51 @@ var Via = class extends PrimitiveComponent2 {
13301
13314
  y: newCenter.y
13302
13315
  });
13303
13316
  }
13317
+ _getLayers() {
13318
+ const { fromLayer = "top", toLayer = "bottom" } = this._parsedProps;
13319
+ if (fromLayer === toLayer) return [fromLayer];
13320
+ return [fromLayer, toLayer];
13321
+ }
13322
+ initPorts() {
13323
+ const layers = this._parsedProps.layers;
13324
+ for (const layer of layers) {
13325
+ const port2 = new Port({ name: layer, layer });
13326
+ port2.registerMatch(this);
13327
+ this.add(port2);
13328
+ }
13329
+ const port = new Port({ name: "pin1" });
13330
+ port.registerMatch(this);
13331
+ this.add(port);
13332
+ }
13333
+ doInitialPcbComponentRender() {
13334
+ if (this.root?.pcbDisabled) return;
13335
+ const { db } = this.root;
13336
+ const { _parsedProps: props } = this;
13337
+ const position = this._getGlobalPcbPositionBeforeLayout();
13338
+ const subcircuit = this.getSubcircuit();
13339
+ const pcb_component = db.pcb_component.insert({
13340
+ center: position,
13341
+ width: props.outerDiameter,
13342
+ height: props.outerDiameter,
13343
+ layer: props.fromLayer ?? "top",
13344
+ rotation: 0,
13345
+ source_component_id: this.source_component_id,
13346
+ subcircuit_id: subcircuit?.subcircuit_id ?? void 0
13347
+ });
13348
+ this.pcb_component_id = pcb_component.pcb_component_id;
13349
+ }
13350
+ doInitialSourceRender() {
13351
+ const { db } = this.root;
13352
+ const { _parsedProps: props } = this;
13353
+ const group = this.getGroup();
13354
+ const subcircuit = this.getSubcircuit();
13355
+ const source_via = db.source_manually_placed_via.insert({
13356
+ source_group_id: group?.source_group_id,
13357
+ source_net_id: props.net ?? "",
13358
+ subcircuit_id: subcircuit?.subcircuit_id ?? void 0
13359
+ });
13360
+ this.source_component_id = source_via.source_manually_placed_via_id;
13361
+ }
13304
13362
  doInitialPcbPrimitiveRender() {
13305
13363
  if (this.root?.pcbDisabled) return;
13306
13364
  const { db } = this.root;
@@ -14296,7 +14354,7 @@ import { identity as identity6 } from "transformation-matrix";
14296
14354
  var package_default = {
14297
14355
  name: "@tscircuit/core",
14298
14356
  type: "module",
14299
- version: "0.0.696",
14357
+ version: "0.0.697",
14300
14358
  types: "dist/index.d.ts",
14301
14359
  main: "dist/index.js",
14302
14360
  module: "dist/index.js",
@@ -14349,7 +14407,7 @@ var package_default = {
14349
14407
  "bun-match-svg": "0.0.12",
14350
14408
  "calculate-elbow": "^0.0.11",
14351
14409
  "chokidar-cli": "^3.0.0",
14352
- "circuit-json": "^0.0.242",
14410
+ "circuit-json": "^0.0.245",
14353
14411
  "circuit-json-to-bpc": "^0.0.13",
14354
14412
  "circuit-json-to-connectivity-map": "^0.0.22",
14355
14413
  "circuit-json-to-simple-3d": "^0.0.6",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.697",
4
+ "version": "0.0.698",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -54,7 +54,7 @@
54
54
  "bun-match-svg": "0.0.12",
55
55
  "calculate-elbow": "^0.0.11",
56
56
  "chokidar-cli": "^3.0.0",
57
- "circuit-json": "^0.0.242",
57
+ "circuit-json": "^0.0.245",
58
58
  "circuit-json-to-bpc": "^0.0.13",
59
59
  "circuit-json-to-connectivity-map": "^0.0.22",
60
60
  "circuit-json-to-simple-3d": "^0.0.6",