@tscircuit/core 0.0.1300 → 0.0.1302

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
@@ -73862,6 +73862,158 @@ declare class Hole extends PrimitiveComponent<typeof holeProps> {
73862
73862
  pcbSx: zod.ZodOptional<zod.ZodType<_tscircuit_props.PcbSx, zod.ZodTypeDef, _tscircuit_props.PcbSx>>;
73863
73863
  pcbRelative: zod.ZodOptional<zod.ZodBoolean>;
73864
73864
  relative: zod.ZodOptional<zod.ZodBoolean>;
73865
+ } & {
73866
+ name: zod.ZodOptional<zod.ZodString>;
73867
+ shape: zod.ZodLiteral<"oval">;
73868
+ width: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
73869
+ height: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
73870
+ solderMaskMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73871
+ coveredWithSolderMask: zod.ZodOptional<zod.ZodBoolean>;
73872
+ }, "strip", zod.ZodTypeAny, {
73873
+ shape: "oval";
73874
+ width: number;
73875
+ height: number;
73876
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
73877
+ name?: string | undefined;
73878
+ pcbX?: string | number | undefined;
73879
+ pcbY?: string | number | undefined;
73880
+ pcbLeftEdgeX?: string | number | undefined;
73881
+ pcbRightEdgeX?: string | number | undefined;
73882
+ pcbTopEdgeY?: string | number | undefined;
73883
+ pcbBottomEdgeY?: string | number | undefined;
73884
+ pcbOffsetX?: number | undefined;
73885
+ pcbOffsetY?: number | undefined;
73886
+ pcbRotation?: number | undefined;
73887
+ pcbPositionAnchor?: string | undefined;
73888
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
73889
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
73890
+ pcbMarginTop?: number | undefined;
73891
+ pcbMarginRight?: number | undefined;
73892
+ pcbMarginBottom?: number | undefined;
73893
+ pcbMarginLeft?: number | undefined;
73894
+ pcbMarginX?: number | undefined;
73895
+ pcbMarginY?: number | undefined;
73896
+ pcbStyle?: {
73897
+ silkscreenFontSize?: number | undefined;
73898
+ viaPadDiameter?: number | undefined;
73899
+ viaHoleDiameter?: number | undefined;
73900
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
73901
+ offsetX: number;
73902
+ offsetY: number;
73903
+ } | undefined;
73904
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
73905
+ } | undefined;
73906
+ pcbSx?: _tscircuit_props.PcbSx | undefined;
73907
+ pcbRelative?: boolean | undefined;
73908
+ relative?: boolean | undefined;
73909
+ solderMaskMargin?: number | undefined;
73910
+ coveredWithSolderMask?: boolean | undefined;
73911
+ }, {
73912
+ shape: "oval";
73913
+ width: string | number;
73914
+ height: string | number;
73915
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
73916
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
73917
+ } | undefined;
73918
+ name?: string | undefined;
73919
+ pcbX?: string | number | undefined;
73920
+ pcbY?: string | number | undefined;
73921
+ pcbLeftEdgeX?: string | number | undefined;
73922
+ pcbRightEdgeX?: string | number | undefined;
73923
+ pcbTopEdgeY?: string | number | undefined;
73924
+ pcbBottomEdgeY?: string | number | undefined;
73925
+ pcbOffsetX?: string | number | undefined;
73926
+ pcbOffsetY?: string | number | undefined;
73927
+ pcbRotation?: string | number | undefined;
73928
+ pcbPositionAnchor?: string | undefined;
73929
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
73930
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
73931
+ pcbMarginTop?: string | number | undefined;
73932
+ pcbMarginRight?: string | number | undefined;
73933
+ pcbMarginBottom?: string | number | undefined;
73934
+ pcbMarginLeft?: string | number | undefined;
73935
+ pcbMarginX?: string | number | undefined;
73936
+ pcbMarginY?: string | number | undefined;
73937
+ pcbStyle?: {
73938
+ silkscreenFontSize?: string | number | undefined;
73939
+ viaPadDiameter?: string | number | undefined;
73940
+ viaHoleDiameter?: string | number | undefined;
73941
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
73942
+ offsetX: number;
73943
+ offsetY: number;
73944
+ } | undefined;
73945
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
73946
+ } | undefined;
73947
+ pcbSx?: _tscircuit_props.PcbSx | undefined;
73948
+ pcbRelative?: boolean | undefined;
73949
+ relative?: boolean | undefined;
73950
+ solderMaskMargin?: string | number | undefined;
73951
+ coveredWithSolderMask?: boolean | undefined;
73952
+ }>, zod.ZodObject<{
73953
+ pcbX: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
73954
+ pcbY: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
73955
+ pcbLeftEdgeX: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
73956
+ pcbRightEdgeX: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
73957
+ pcbTopEdgeY: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
73958
+ pcbBottomEdgeY: zod.ZodOptional<zod.ZodUnion<[zod.ZodString, zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>]>>;
73959
+ pcbOffsetX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73960
+ pcbOffsetY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73961
+ pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73962
+ pcbPositionAnchor: zod.ZodOptional<zod.ZodString>;
73963
+ pcbPositionMode: zod.ZodOptional<zod.ZodEnum<["relative_to_group_anchor", "auto", "relative_to_board_anchor", "relative_to_component_anchor"]>>;
73964
+ shouldBeOnEdgeOfBoard: zod.ZodOptional<zod.ZodBoolean>;
73965
+ layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
73966
+ name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
73967
+ }, "strip", zod.ZodTypeAny, {
73968
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
73969
+ }, {
73970
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
73971
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
73972
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
73973
+ }>>;
73974
+ pcbMarginTop: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73975
+ pcbMarginRight: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73976
+ pcbMarginBottom: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73977
+ pcbMarginLeft: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73978
+ pcbMarginX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73979
+ pcbMarginY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73980
+ pcbStyle: zod.ZodOptional<zod.ZodObject<{
73981
+ silkscreenFontSize: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73982
+ viaPadDiameter: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73983
+ viaHoleDiameter: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
73984
+ silkscreenTextPosition: zod.ZodOptional<zod.ZodUnion<[zod.ZodEnum<["centered", "outside", "none"]>, zod.ZodObject<{
73985
+ offsetX: zod.ZodNumber;
73986
+ offsetY: zod.ZodNumber;
73987
+ }, "strip", zod.ZodTypeAny, {
73988
+ offsetX: number;
73989
+ offsetY: number;
73990
+ }, {
73991
+ offsetX: number;
73992
+ offsetY: number;
73993
+ }>]>>;
73994
+ silkscreenTextVisibility: zod.ZodOptional<zod.ZodEnum<["hidden", "visible", "inherit"]>>;
73995
+ }, "strip", zod.ZodTypeAny, {
73996
+ silkscreenFontSize?: number | undefined;
73997
+ viaPadDiameter?: number | undefined;
73998
+ viaHoleDiameter?: number | undefined;
73999
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
74000
+ offsetX: number;
74001
+ offsetY: number;
74002
+ } | undefined;
74003
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
74004
+ }, {
74005
+ silkscreenFontSize?: string | number | undefined;
74006
+ viaPadDiameter?: string | number | undefined;
74007
+ viaHoleDiameter?: string | number | undefined;
74008
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
74009
+ offsetX: number;
74010
+ offsetY: number;
74011
+ } | undefined;
74012
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
74013
+ }>>;
74014
+ pcbSx: zod.ZodOptional<zod.ZodType<_tscircuit_props.PcbSx, zod.ZodTypeDef, _tscircuit_props.PcbSx>>;
74015
+ pcbRelative: zod.ZodOptional<zod.ZodBoolean>;
74016
+ relative: zod.ZodOptional<zod.ZodBoolean>;
73865
74017
  } & {
73866
74018
  name: zod.ZodOptional<zod.ZodString>;
73867
74019
  shape: zod.ZodLiteral<"rect">;
@@ -147466,7 +147618,6 @@ declare class SchematicRect extends PrimitiveComponent<typeof schematicRectProps
147466
147618
  isFilled: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
147467
147619
  fillColor: zod.ZodOptional<zod.ZodString>;
147468
147620
  isDashed: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
147469
- cornerRadius: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
147470
147621
  }, "strip", zod.ZodTypeAny, {
147471
147622
  rotation: number;
147472
147623
  width: number;
@@ -147476,7 +147627,6 @@ declare class SchematicRect extends PrimitiveComponent<typeof schematicRectProps
147476
147627
  schX?: number | undefined;
147477
147628
  schY?: number | undefined;
147478
147629
  strokeWidth?: number | undefined;
147479
- cornerRadius?: number | undefined;
147480
147630
  color?: string | undefined;
147481
147631
  fillColor?: string | undefined;
147482
147632
  }, {
@@ -147486,7 +147636,6 @@ declare class SchematicRect extends PrimitiveComponent<typeof schematicRectProps
147486
147636
  schX?: string | number | undefined;
147487
147637
  schY?: string | number | undefined;
147488
147638
  strokeWidth?: string | number | undefined;
147489
- cornerRadius?: string | number | undefined;
147490
147639
  color?: string | undefined;
147491
147640
  isFilled?: boolean | undefined;
147492
147641
  isDashed?: boolean | undefined;
package/dist/index.js CHANGED
@@ -6590,8 +6590,9 @@ var Hole = class extends PrimitiveComponent2 {
6590
6590
  getPcbSize() {
6591
6591
  const { _parsedProps: props } = this;
6592
6592
  const isPill = props.shape === "pill";
6593
+ const isOval = props.shape === "oval";
6593
6594
  const isRect = props.shape === "rect";
6594
- if (isPill) {
6595
+ if (isPill || isOval) {
6595
6596
  return {
6596
6597
  width: props.width,
6597
6598
  height: props.height
@@ -6651,6 +6652,21 @@ var Hole = class extends PrimitiveComponent2 {
6651
6652
  });
6652
6653
  this.pcb_hole_id = inserted_hole.pcb_hole_id;
6653
6654
  }
6655
+ } else if (props.shape === "oval") {
6656
+ const inserted_hole = db.pcb_hole.insert({
6657
+ pcb_component_id,
6658
+ type: "pcb_hole",
6659
+ hole_shape: "oval",
6660
+ hole_width: props.width,
6661
+ hole_height: props.height,
6662
+ x: position.x,
6663
+ y: position.y,
6664
+ soldermask_margin: soldermaskMargin,
6665
+ is_covered_with_solder_mask: isCoveredWithSolderMask,
6666
+ subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
6667
+ pcb_group_id: subcircuit?.getGroup()?.pcb_group_id ?? void 0
6668
+ });
6669
+ this.pcb_hole_id = inserted_hole.pcb_hole_id;
6654
6670
  } else if (props.shape === "rect") {
6655
6671
  const inserted_hole = db.pcb_hole.insert({
6656
6672
  pcb_component_id,
@@ -7851,7 +7867,9 @@ var SchematicLine = class extends PrimitiveComponent2 {
7851
7867
  y2: props.y2 + globalPos.y,
7852
7868
  stroke_width: props.strokeWidth ?? SCHEMATIC_COMPONENT_OUTLINE_STROKE_WIDTH,
7853
7869
  color: props.color ?? SCHEMATIC_COMPONENT_OUTLINE_COLOR,
7854
- is_dashed: false,
7870
+ is_dashed: props.isDashed || props.dashLength !== void 0 || props.dashGap !== void 0,
7871
+ dash_length: props.dashLength,
7872
+ dash_gap: props.dashGap,
7855
7873
  subcircuit_id: this.getSubcircuit().subcircuit_id ?? void 0
7856
7874
  });
7857
7875
  this.schematic_line_id = schematic_line.schematic_line_id;
@@ -8039,9 +8057,12 @@ var SchematicPath = class extends PrimitiveComponent2 {
8039
8057
  y: point6.y + globalPos.y
8040
8058
  })),
8041
8059
  is_filled: props.isFilled,
8060
+ is_dashed: props.dashLength !== void 0 || props.dashGap !== void 0,
8042
8061
  fill_color: props.fillColor,
8043
8062
  stroke_color: props.strokeColor,
8044
8063
  stroke_width: props.strokeWidth,
8064
+ dash_length: props.dashLength,
8065
+ dash_gap: props.dashGap,
8045
8066
  subcircuit_id
8046
8067
  });
8047
8068
  this.schematic_path_ids.push(schematic_path.schematic_path_id);
@@ -8055,9 +8076,12 @@ var SchematicPath = class extends PrimitiveComponent2 {
8055
8076
  y: point6.y + globalPos.y
8056
8077
  })),
8057
8078
  is_filled: props.isFilled,
8079
+ is_dashed: props.dashLength !== void 0 || props.dashGap !== void 0,
8058
8080
  fill_color: props.fillColor,
8059
8081
  stroke_color: props.strokeColor,
8060
8082
  stroke_width: props.strokeWidth,
8083
+ dash_length: props.dashLength,
8084
+ dash_gap: props.dashGap,
8061
8085
  subcircuit_id
8062
8086
  });
8063
8087
  this.schematic_path_ids.push(schematic_path.schematic_path_id);
@@ -9540,6 +9564,16 @@ var createComponentsFromCircuitJson = ({
9540
9564
  height: elm.hole_height
9541
9565
  })
9542
9566
  );
9567
+ } else if (elm.type === "pcb_hole" && elm.hole_shape === "oval") {
9568
+ components.push(
9569
+ new Hole({
9570
+ pcbX: elm.x,
9571
+ pcbY: elm.y,
9572
+ shape: "oval",
9573
+ width: elm.hole_width,
9574
+ height: elm.hole_height
9575
+ })
9576
+ );
9543
9577
  } else if (elm.type === "pcb_hole" && elm.hole_shape === "rotated_pill") {
9544
9578
  components.push(
9545
9579
  new Hole({
@@ -23347,7 +23381,7 @@ import { identity as identity5 } from "transformation-matrix";
23347
23381
  var package_default = {
23348
23382
  name: "@tscircuit/core",
23349
23383
  type: "module",
23350
- version: "0.0.1299",
23384
+ version: "0.0.1301",
23351
23385
  types: "dist/index.d.ts",
23352
23386
  main: "dist/index.js",
23353
23387
  module: "dist/index.js",
@@ -23395,7 +23429,7 @@ var package_default = {
23395
23429
  "@tscircuit/math-utils": "^0.0.36",
23396
23430
  "@tscircuit/miniflex": "^0.0.4",
23397
23431
  "@tscircuit/ngspice-spice-engine": "^0.0.8",
23398
- "@tscircuit/props": "^0.0.542",
23432
+ "@tscircuit/props": "^0.0.545",
23399
23433
  "@tscircuit/schematic-match-adapt": "^0.0.18",
23400
23434
  "@tscircuit/schematic-trace-solver": "^0.0.60",
23401
23435
  "@tscircuit/solver-utils": "^0.0.3",
@@ -23409,13 +23443,13 @@ var package_default = {
23409
23443
  "bun-match-svg": "0.0.12",
23410
23444
  "calculate-elbow": "^0.0.12",
23411
23445
  "chokidar-cli": "^3.0.0",
23412
- "circuit-json": "^0.0.431",
23446
+ "circuit-json": "^0.0.433",
23413
23447
  "circuit-json-to-bpc": "^0.0.13",
23414
23448
  "circuit-json-to-connectivity-map": "^0.0.23",
23415
23449
  "circuit-json-to-gltf": "^0.0.102",
23416
23450
  "circuit-json-to-simple-3d": "^0.0.9",
23417
23451
  "circuit-json-to-spice": "^0.0.36",
23418
- "circuit-to-svg": "^0.0.350",
23452
+ "circuit-to-svg": "^0.0.353",
23419
23453
  concurrently: "^9.1.2",
23420
23454
  "connectivity-map": "^1.0.0",
23421
23455
  debug: "^4.3.6",
@@ -28255,6 +28289,7 @@ function insertInnerSymbolInSchematicBox(connector, symbol) {
28255
28289
  schematic_component_id: connector.schematic_component_id,
28256
28290
  points,
28257
28291
  is_filled: primitive.fill ?? false,
28292
+ is_dashed: false,
28258
28293
  fill_color: primitive.fill ? SCHEMATIC_COMPONENT_OUTLINE_COLOR : void 0,
28259
28294
  stroke_width: 0.02,
28260
28295
  subcircuit_id
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.1300",
4
+ "version": "0.0.1302",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -49,7 +49,7 @@
49
49
  "@tscircuit/math-utils": "^0.0.36",
50
50
  "@tscircuit/miniflex": "^0.0.4",
51
51
  "@tscircuit/ngspice-spice-engine": "^0.0.8",
52
- "@tscircuit/props": "^0.0.542",
52
+ "@tscircuit/props": "^0.0.545",
53
53
  "@tscircuit/schematic-match-adapt": "^0.0.18",
54
54
  "@tscircuit/schematic-trace-solver": "^0.0.60",
55
55
  "@tscircuit/solver-utils": "^0.0.3",
@@ -63,13 +63,13 @@
63
63
  "bun-match-svg": "0.0.12",
64
64
  "calculate-elbow": "^0.0.12",
65
65
  "chokidar-cli": "^3.0.0",
66
- "circuit-json": "^0.0.431",
66
+ "circuit-json": "^0.0.433",
67
67
  "circuit-json-to-bpc": "^0.0.13",
68
68
  "circuit-json-to-connectivity-map": "^0.0.23",
69
69
  "circuit-json-to-gltf": "^0.0.102",
70
70
  "circuit-json-to-simple-3d": "^0.0.9",
71
71
  "circuit-json-to-spice": "^0.0.36",
72
- "circuit-to-svg": "^0.0.350",
72
+ "circuit-to-svg": "^0.0.353",
73
73
  "concurrently": "^9.1.2",
74
74
  "connectivity-map": "^1.0.0",
75
75
  "debug": "^4.3.6",