@tscircuit/core 0.0.937 → 0.0.939

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
@@ -2852,7 +2852,7 @@ declare class Board extends Group<typeof boardProps> implements BoardI, Subcircu
2852
2852
  /**
2853
2853
  * Get all available layers for the board
2854
2854
  */
2855
- get allLayers(): readonly ["top", "bottom", "inner1", "inner2"] | readonly ["top", "bottom"];
2855
+ get allLayers(): readonly ["top"] | readonly ["top", "bottom", "inner1", "inner2"] | readonly ["top", "bottom"];
2856
2856
  _getSubcircuitLayerCount(): number;
2857
2857
  _getBoardCalcVariables(): Record<string, number>;
2858
2858
  doInitialPcbBoardAutoSize(): void;
@@ -24622,6 +24622,10 @@ declare class SilkscreenCircle extends PrimitiveComponent<typeof silkscreenCircl
24622
24622
  width: number;
24623
24623
  height: number;
24624
24624
  };
24625
+ _repositionOnPcb({ deltaX, deltaY }: {
24626
+ deltaX: number;
24627
+ deltaY: number;
24628
+ }): void;
24625
24629
  }
24626
24630
 
24627
24631
  declare class SilkscreenPath extends PrimitiveComponent<typeof silkscreenPathProps> {
@@ -24794,6 +24798,10 @@ declare class SilkscreenPath extends PrimitiveComponent<typeof silkscreenPathPro
24794
24798
  x: number;
24795
24799
  y: number;
24796
24800
  }): void;
24801
+ _repositionOnPcb({ deltaX, deltaY }: {
24802
+ deltaX: number;
24803
+ deltaY: number;
24804
+ }): void;
24797
24805
  getPcbSize(): {
24798
24806
  width: number;
24799
24807
  height: number;
@@ -24956,9 +24964,14 @@ declare class SilkscreenRect extends PrimitiveComponent<typeof silkscreenRectPro
24956
24964
  width: number;
24957
24965
  height: number;
24958
24966
  };
24967
+ _repositionOnPcb({ deltaX, deltaY }: {
24968
+ deltaX: number;
24969
+ deltaY: number;
24970
+ }): void;
24959
24971
  }
24960
24972
 
24961
24973
  declare class SilkscreenText extends PrimitiveComponent<typeof silkscreenTextProps> {
24974
+ pcb_silkscreen_text_ids: string[];
24962
24975
  isPcbPrimitive: boolean;
24963
24976
  get config(): {
24964
24977
  componentName: string;
@@ -25140,6 +25153,10 @@ declare class SilkscreenText extends PrimitiveComponent<typeof silkscreenTextPro
25140
25153
  width: number;
25141
25154
  height: number;
25142
25155
  };
25156
+ _repositionOnPcb({ deltaX, deltaY }: {
25157
+ deltaX: number;
25158
+ deltaY: number;
25159
+ }): void;
25143
25160
  }
25144
25161
 
25145
25162
  declare class SilkscreenLine extends PrimitiveComponent<typeof silkscreenLineProps> {
@@ -25287,6 +25304,10 @@ declare class SilkscreenLine extends PrimitiveComponent<typeof silkscreenLinePro
25287
25304
  width: number;
25288
25305
  height: number;
25289
25306
  };
25307
+ _repositionOnPcb({ deltaX, deltaY }: {
25308
+ deltaX: number;
25309
+ deltaY: number;
25310
+ }): void;
25290
25311
  }
25291
25312
 
25292
25313
  declare class SmtPad extends PrimitiveComponent<typeof smtPadProps> {
package/dist/index.js CHANGED
@@ -2562,6 +2562,21 @@ var SilkscreenPath = class extends PrimitiveComponent2 {
2562
2562
  route: newRoute
2563
2563
  });
2564
2564
  }
2565
+ _repositionOnPcb({ deltaX, deltaY }) {
2566
+ if (this.root?.pcbDisabled) return;
2567
+ const { db } = this.root;
2568
+ if (!this.pcb_silkscreen_path_id) return;
2569
+ const path = db.pcb_silkscreen_path.get(this.pcb_silkscreen_path_id);
2570
+ if (path) {
2571
+ db.pcb_silkscreen_path.update(this.pcb_silkscreen_path_id, {
2572
+ route: path.route.map((p) => ({
2573
+ ...p,
2574
+ x: p.x + deltaX,
2575
+ y: p.y + deltaY
2576
+ }))
2577
+ });
2578
+ }
2579
+ }
2565
2580
  getPcbSize() {
2566
2581
  const { _parsedProps: props } = this;
2567
2582
  if (!props.route || props.route.length === 0) {
@@ -3148,6 +3163,7 @@ function normalizeTextForCircuitJson(text) {
3148
3163
 
3149
3164
  // lib/components/primitive-components/SilkscreenText.ts
3150
3165
  var SilkscreenText = class extends PrimitiveComponent2 {
3166
+ pcb_silkscreen_text_ids = [];
3151
3167
  isPcbPrimitive = true;
3152
3168
  get config() {
3153
3169
  return {
@@ -3179,7 +3195,7 @@ var SilkscreenText = class extends PrimitiveComponent2 {
3179
3195
  const targetLayers = uniqueLayers.size > 0 ? Array.from(uniqueLayers) : ["top"];
3180
3196
  const fontSize = props.fontSize ?? this.getInheritedProperty("pcbStyle")?.silkscreenFontSize ?? 1;
3181
3197
  for (const layer of targetLayers) {
3182
- db.pcb_silkscreen_text.insert({
3198
+ const pcb_silkscreen_text = db.pcb_silkscreen_text.insert({
3183
3199
  anchor_alignment: props.anchorAlignment,
3184
3200
  anchor_position: {
3185
3201
  x: position.x,
@@ -3194,6 +3210,9 @@ var SilkscreenText = class extends PrimitiveComponent2 {
3194
3210
  subcircuit_id: subcircuit?.subcircuit_id ?? void 0,
3195
3211
  pcb_group_id: this.getGroup()?.pcb_group_id ?? void 0
3196
3212
  });
3213
+ this.pcb_silkscreen_text_ids.push(
3214
+ pcb_silkscreen_text.pcb_silkscreen_text_id
3215
+ );
3197
3216
  }
3198
3217
  }
3199
3218
  getPcbSize() {
@@ -3204,6 +3223,21 @@ var SilkscreenText = class extends PrimitiveComponent2 {
3204
3223
  const textHeight = fontSize;
3205
3224
  return { width: textWidth * fontSize, height: textHeight * fontSize };
3206
3225
  }
3226
+ _repositionOnPcb({ deltaX, deltaY }) {
3227
+ if (this.root?.pcbDisabled) return;
3228
+ const { db } = this.root;
3229
+ for (const id of this.pcb_silkscreen_text_ids) {
3230
+ const text = db.pcb_silkscreen_text.get(id);
3231
+ if (text) {
3232
+ db.pcb_silkscreen_text.update(id, {
3233
+ anchor_position: {
3234
+ x: text.anchor_position.x + deltaX,
3235
+ y: text.anchor_position.y + deltaY
3236
+ }
3237
+ });
3238
+ }
3239
+ }
3240
+ }
3207
3241
  };
3208
3242
 
3209
3243
  // lib/components/primitive-components/Cutout.ts
@@ -15643,6 +15677,9 @@ var Board = class extends Group6 {
15643
15677
  */
15644
15678
  get allLayers() {
15645
15679
  const layerCount = this._parsedProps.layers ?? 2;
15680
+ if (layerCount === 1) {
15681
+ return ["top"];
15682
+ }
15646
15683
  if (layerCount === 4) {
15647
15684
  return ["top", "bottom", "inner1", "inner2"];
15648
15685
  }
@@ -15969,6 +16006,8 @@ var Board = class extends Group6 {
15969
16006
  y: childOldCenter.y + deltaY
15970
16007
  });
15971
16008
  }
16009
+ } else if (child.isPcbPrimitive && "_repositionOnPcb" in child && typeof child._repositionOnPcb === "function") {
16010
+ child._repositionOnPcb({ deltaX, deltaY });
15972
16011
  }
15973
16012
  }
15974
16013
  if (this.pcb_board_id) {
@@ -17917,6 +17956,20 @@ var SilkscreenCircle = class extends PrimitiveComponent2 {
17917
17956
  const diameter = props.radius * 2;
17918
17957
  return { width: diameter, height: diameter };
17919
17958
  }
17959
+ _repositionOnPcb({ deltaX, deltaY }) {
17960
+ if (this.root?.pcbDisabled) return;
17961
+ const { db } = this.root;
17962
+ if (!this.pcb_silkscreen_circle_id) return;
17963
+ const circle = db.pcb_silkscreen_circle.get(this.pcb_silkscreen_circle_id);
17964
+ if (circle) {
17965
+ db.pcb_silkscreen_circle.update(this.pcb_silkscreen_circle_id, {
17966
+ center: {
17967
+ x: circle.center.x + deltaX,
17968
+ y: circle.center.y + deltaY
17969
+ }
17970
+ });
17971
+ }
17972
+ }
17920
17973
  };
17921
17974
 
17922
17975
  // lib/components/primitive-components/SilkscreenRect.ts
@@ -17965,6 +18018,20 @@ var SilkscreenRect = class extends PrimitiveComponent2 {
17965
18018
  const { _parsedProps: props } = this;
17966
18019
  return { width: props.width, height: props.height };
17967
18020
  }
18021
+ _repositionOnPcb({ deltaX, deltaY }) {
18022
+ if (this.root?.pcbDisabled) return;
18023
+ const { db } = this.root;
18024
+ if (!this.pcb_silkscreen_rect_id) return;
18025
+ const rect = db.pcb_silkscreen_rect.get(this.pcb_silkscreen_rect_id);
18026
+ if (rect) {
18027
+ db.pcb_silkscreen_rect.update(this.pcb_silkscreen_rect_id, {
18028
+ center: {
18029
+ x: rect.center.x + deltaX,
18030
+ y: rect.center.y + deltaY
18031
+ }
18032
+ });
18033
+ }
18034
+ }
17968
18035
  };
17969
18036
 
17970
18037
  // lib/components/primitive-components/SilkscreenLine.ts
@@ -18010,6 +18077,20 @@ var SilkscreenLine = class extends PrimitiveComponent2 {
18010
18077
  const height = Math.abs(props.y2 - props.y1);
18011
18078
  return { width, height };
18012
18079
  }
18080
+ _repositionOnPcb({ deltaX, deltaY }) {
18081
+ if (this.root?.pcbDisabled) return;
18082
+ const { db } = this.root;
18083
+ if (!this.pcb_silkscreen_line_id) return;
18084
+ const line = db.pcb_silkscreen_line.get(this.pcb_silkscreen_line_id);
18085
+ if (line) {
18086
+ db.pcb_silkscreen_line.update(this.pcb_silkscreen_line_id, {
18087
+ x1: line.x1 + deltaX,
18088
+ y1: line.y1 + deltaY,
18089
+ x2: line.x2 + deltaX,
18090
+ y2: line.y2 + deltaY
18091
+ });
18092
+ }
18093
+ }
18013
18094
  };
18014
18095
 
18015
18096
  // lib/components/primitive-components/Fiducial.ts
@@ -19690,7 +19771,7 @@ import { identity as identity5 } from "transformation-matrix";
19690
19771
  var package_default = {
19691
19772
  name: "@tscircuit/core",
19692
19773
  type: "module",
19693
- version: "0.0.936",
19774
+ version: "0.0.938",
19694
19775
  types: "dist/index.d.ts",
19695
19776
  main: "dist/index.js",
19696
19777
  module: "dist/index.js",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.937",
4
+ "version": "0.0.939",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",