@tscircuit/core 0.0.853 → 0.0.854

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
@@ -21148,6 +21148,124 @@ declare class Hole extends PrimitiveComponent<typeof holeProps> {
21148
21148
  pcbRelative?: boolean | undefined;
21149
21149
  relative?: boolean | undefined;
21150
21150
  name?: string | undefined;
21151
+ }>, zod.ZodObject<{
21152
+ pcbX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21153
+ pcbY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21154
+ pcbOffsetX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21155
+ pcbOffsetY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21156
+ pcbRotation: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21157
+ pcbPositionAnchor: zod.ZodOptional<zod.ZodString>;
21158
+ pcbPositionMode: zod.ZodOptional<zod.ZodEnum<["relative_to_group_anchor", "auto", "relative_to_board_anchor", "relative_to_component_anchor"]>>;
21159
+ layer: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>, zod.ZodObject<{
21160
+ name: zod.ZodEnum<["top", "bottom", "inner1", "inner2", "inner3", "inner4", "inner5", "inner6"]>;
21161
+ }, "strip", zod.ZodTypeAny, {
21162
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
21163
+ }, {
21164
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
21165
+ }>]>, "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6", "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
21166
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
21167
+ }>>;
21168
+ pcbMarginTop: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21169
+ pcbMarginRight: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21170
+ pcbMarginBottom: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21171
+ pcbMarginLeft: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21172
+ pcbMarginX: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21173
+ pcbMarginY: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21174
+ pcbStyle: zod.ZodOptional<zod.ZodObject<{
21175
+ silkscreenFontSize: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
21176
+ silkscreenTextPosition: zod.ZodOptional<zod.ZodUnion<[zod.ZodEnum<["centered", "outside", "none"]>, zod.ZodObject<{
21177
+ offsetX: zod.ZodNumber;
21178
+ offsetY: zod.ZodNumber;
21179
+ }, "strip", zod.ZodTypeAny, {
21180
+ offsetX: number;
21181
+ offsetY: number;
21182
+ }, {
21183
+ offsetX: number;
21184
+ offsetY: number;
21185
+ }>]>>;
21186
+ silkscreenTextVisibility: zod.ZodOptional<zod.ZodEnum<["hidden", "visible", "inherit"]>>;
21187
+ }, "strip", zod.ZodTypeAny, {
21188
+ silkscreenFontSize?: number | undefined;
21189
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
21190
+ offsetX: number;
21191
+ offsetY: number;
21192
+ } | undefined;
21193
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
21194
+ }, {
21195
+ silkscreenFontSize?: string | number | undefined;
21196
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
21197
+ offsetX: number;
21198
+ offsetY: number;
21199
+ } | undefined;
21200
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
21201
+ }>>;
21202
+ pcbRelative: zod.ZodOptional<zod.ZodBoolean>;
21203
+ relative: zod.ZodOptional<zod.ZodBoolean>;
21204
+ } & {
21205
+ name: zod.ZodOptional<zod.ZodString>;
21206
+ shape: zod.ZodLiteral<"rect">;
21207
+ width: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
21208
+ height: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>;
21209
+ }, "strip", zod.ZodTypeAny, {
21210
+ shape: "rect";
21211
+ width: number;
21212
+ height: number;
21213
+ pcbX?: number | undefined;
21214
+ pcbY?: number | undefined;
21215
+ pcbOffsetX?: number | undefined;
21216
+ pcbOffsetY?: number | undefined;
21217
+ pcbRotation?: number | undefined;
21218
+ pcbPositionAnchor?: string | undefined;
21219
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
21220
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
21221
+ pcbMarginTop?: number | undefined;
21222
+ pcbMarginRight?: number | undefined;
21223
+ pcbMarginBottom?: number | undefined;
21224
+ pcbMarginLeft?: number | undefined;
21225
+ pcbMarginX?: number | undefined;
21226
+ pcbMarginY?: number | undefined;
21227
+ pcbStyle?: {
21228
+ silkscreenFontSize?: number | undefined;
21229
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
21230
+ offsetX: number;
21231
+ offsetY: number;
21232
+ } | undefined;
21233
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
21234
+ } | undefined;
21235
+ pcbRelative?: boolean | undefined;
21236
+ relative?: boolean | undefined;
21237
+ name?: string | undefined;
21238
+ }, {
21239
+ shape: "rect";
21240
+ width: string | number;
21241
+ height: string | number;
21242
+ pcbX?: string | number | undefined;
21243
+ pcbY?: string | number | undefined;
21244
+ pcbOffsetX?: string | number | undefined;
21245
+ pcbOffsetY?: string | number | undefined;
21246
+ pcbRotation?: string | number | undefined;
21247
+ pcbPositionAnchor?: string | undefined;
21248
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
21249
+ layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
21250
+ name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
21251
+ } | undefined;
21252
+ pcbMarginTop?: string | number | undefined;
21253
+ pcbMarginRight?: string | number | undefined;
21254
+ pcbMarginBottom?: string | number | undefined;
21255
+ pcbMarginLeft?: string | number | undefined;
21256
+ pcbMarginX?: string | number | undefined;
21257
+ pcbMarginY?: string | number | undefined;
21258
+ pcbStyle?: {
21259
+ silkscreenFontSize?: string | number | undefined;
21260
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
21261
+ offsetX: number;
21262
+ offsetY: number;
21263
+ } | undefined;
21264
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
21265
+ } | undefined;
21266
+ pcbRelative?: boolean | undefined;
21267
+ relative?: boolean | undefined;
21268
+ name?: string | undefined;
21151
21269
  }>]>;
21152
21270
  };
21153
21271
  getPcbSize(): {
package/dist/index.js CHANGED
@@ -2701,10 +2701,23 @@ var Hole = class extends PrimitiveComponent2 {
2701
2701
  getPcbSize() {
2702
2702
  const { _parsedProps: props } = this;
2703
2703
  const isPill = props.shape === "pill";
2704
- return {
2705
- width: isPill ? props.width : props.diameter,
2706
- height: isPill ? props.height : props.diameter
2707
- };
2704
+ const isRect = props.shape === "rect";
2705
+ if (isPill) {
2706
+ return {
2707
+ width: props.width,
2708
+ height: props.height
2709
+ };
2710
+ } else if (isRect) {
2711
+ return {
2712
+ width: props.width,
2713
+ height: props.height
2714
+ };
2715
+ } else {
2716
+ return {
2717
+ width: props.diameter,
2718
+ height: props.diameter
2719
+ };
2720
+ }
2708
2721
  }
2709
2722
  doInitialPcbPrimitiveRender() {
2710
2723
  if (this.root?.pcbDisabled) return;
@@ -2739,10 +2752,22 @@ var Hole = class extends PrimitiveComponent2 {
2739
2752
  });
2740
2753
  this.pcb_hole_id = inserted_hole.pcb_hole_id;
2741
2754
  }
2755
+ } else if (props.shape === "rect") {
2756
+ const inserted_hole = db.pcb_hole.insert({
2757
+ type: "pcb_hole",
2758
+ hole_shape: "rect",
2759
+ hole_width: props.width,
2760
+ hole_height: props.height,
2761
+ x: position.x,
2762
+ y: position.y,
2763
+ subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
2764
+ pcb_group_id: subcircuit?.getGroup()?.pcb_group_id ?? void 0
2765
+ });
2766
+ this.pcb_hole_id = inserted_hole.pcb_hole_id;
2742
2767
  } else {
2743
2768
  const inserted_hole = db.pcb_hole.insert({
2769
+ type: "pcb_hole",
2744
2770
  hole_shape: "circle",
2745
- // @ts-ignore
2746
2771
  hole_diameter: props.diameter,
2747
2772
  x: position.x,
2748
2773
  y: position.y,
@@ -3172,6 +3197,16 @@ var createComponentsFromCircuitJson = ({
3172
3197
  diameter: elm.hole_diameter
3173
3198
  })
3174
3199
  );
3200
+ } else if (elm.type === "pcb_hole" && elm.hole_shape === "rect") {
3201
+ components.push(
3202
+ new Hole({
3203
+ pcbX: elm.x,
3204
+ pcbY: elm.y,
3205
+ shape: "rect",
3206
+ width: elm.hole_width,
3207
+ height: elm.hole_height
3208
+ })
3209
+ );
3175
3210
  } else if (elm.type === "pcb_hole" && elm.hole_shape === "pill") {
3176
3211
  components.push(
3177
3212
  new Hole({
@@ -5384,6 +5419,18 @@ var getObstaclesFromCircuitJson = (soup, connMap) => {
5384
5419
  height: element.hole_height,
5385
5420
  connectedTo: []
5386
5421
  });
5422
+ } else if (element.hole_shape === "rect") {
5423
+ obstacles.push({
5424
+ type: "rect",
5425
+ layers: EVERY_LAYER,
5426
+ center: {
5427
+ x: element.x,
5428
+ y: element.y
5429
+ },
5430
+ width: element.hole_width,
5431
+ height: element.hole_height,
5432
+ connectedTo: []
5433
+ });
5387
5434
  } else if (element.hole_shape === "square") {
5388
5435
  obstacles.push({
5389
5436
  type: "rect",
@@ -17627,7 +17674,7 @@ import { identity as identity6 } from "transformation-matrix";
17627
17674
  var package_default = {
17628
17675
  name: "@tscircuit/core",
17629
17676
  type: "module",
17630
- version: "0.0.852",
17677
+ version: "0.0.853",
17631
17678
  types: "dist/index.d.ts",
17632
17679
  main: "dist/index.js",
17633
17680
  module: "dist/index.js",
@@ -17671,7 +17718,7 @@ var package_default = {
17671
17718
  "@tscircuit/math-utils": "^0.0.29",
17672
17719
  "@tscircuit/miniflex": "^0.0.4",
17673
17720
  "@tscircuit/ngspice-spice-engine": "^0.0.2",
17674
- "@tscircuit/props": "^0.0.396",
17721
+ "@tscircuit/props": "^0.0.397",
17675
17722
  "@tscircuit/schematic-autolayout": "^0.0.6",
17676
17723
  "@tscircuit/schematic-match-adapt": "^0.0.16",
17677
17724
  "@tscircuit/schematic-trace-solver": "^v0.0.45",
@@ -17685,13 +17732,13 @@ var package_default = {
17685
17732
  "bun-match-svg": "0.0.12",
17686
17733
  "calculate-elbow": "^0.0.12",
17687
17734
  "chokidar-cli": "^3.0.0",
17688
- "circuit-json": "^0.0.302",
17735
+ "circuit-json": "^0.0.304",
17689
17736
  "circuit-json-to-bpc": "^0.0.13",
17690
17737
  "circuit-json-to-connectivity-map": "^0.0.22",
17691
17738
  "circuit-json-to-gltf": "^0.0.31",
17692
17739
  "circuit-json-to-simple-3d": "^0.0.9",
17693
17740
  "circuit-json-to-spice": "^0.0.16",
17694
- "circuit-to-svg": "^0.0.260",
17741
+ "circuit-to-svg": "^0.0.265",
17695
17742
  concurrently: "^9.1.2",
17696
17743
  "connectivity-map": "^1.0.0",
17697
17744
  debug: "^4.3.6",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.853",
4
+ "version": "0.0.854",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -45,7 +45,7 @@
45
45
  "@tscircuit/math-utils": "^0.0.29",
46
46
  "@tscircuit/miniflex": "^0.0.4",
47
47
  "@tscircuit/ngspice-spice-engine": "^0.0.2",
48
- "@tscircuit/props": "^0.0.396",
48
+ "@tscircuit/props": "^0.0.397",
49
49
  "@tscircuit/schematic-autolayout": "^0.0.6",
50
50
  "@tscircuit/schematic-match-adapt": "^0.0.16",
51
51
  "@tscircuit/schematic-trace-solver": "^v0.0.45",
@@ -59,13 +59,13 @@
59
59
  "bun-match-svg": "0.0.12",
60
60
  "calculate-elbow": "^0.0.12",
61
61
  "chokidar-cli": "^3.0.0",
62
- "circuit-json": "^0.0.302",
62
+ "circuit-json": "^0.0.304",
63
63
  "circuit-json-to-bpc": "^0.0.13",
64
64
  "circuit-json-to-connectivity-map": "^0.0.22",
65
65
  "circuit-json-to-gltf": "^0.0.31",
66
66
  "circuit-json-to-simple-3d": "^0.0.9",
67
67
  "circuit-json-to-spice": "^0.0.16",
68
- "circuit-to-svg": "^0.0.260",
68
+ "circuit-to-svg": "^0.0.265",
69
69
  "concurrently": "^9.1.2",
70
70
  "connectivity-map": "^1.0.0",
71
71
  "debug": "^4.3.6",