@tscircuit/core 0.0.286 → 0.0.288

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
@@ -2254,16 +2254,28 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2254
2254
  bottomPinCount?: number | undefined;
2255
2255
  }>>;
2256
2256
  schPinStyle: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodObject<{
2257
+ marginLeft: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2258
+ marginRight: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2259
+ marginTop: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2260
+ marginBottom: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2257
2261
  leftMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2258
2262
  rightMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2259
2263
  topMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2260
2264
  bottomMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
2261
2265
  }, "strip", zod.ZodTypeAny, {
2266
+ marginLeft?: number | undefined;
2267
+ marginRight?: number | undefined;
2268
+ marginTop?: number | undefined;
2269
+ marginBottom?: number | undefined;
2262
2270
  leftMargin?: number | undefined;
2263
2271
  rightMargin?: number | undefined;
2264
2272
  topMargin?: number | undefined;
2265
2273
  bottomMargin?: number | undefined;
2266
2274
  }, {
2275
+ marginLeft?: string | number | undefined;
2276
+ marginRight?: string | number | undefined;
2277
+ marginTop?: string | number | undefined;
2278
+ marginBottom?: string | number | undefined;
2267
2279
  leftMargin?: string | number | undefined;
2268
2280
  rightMargin?: string | number | undefined;
2269
2281
  topMargin?: string | number | undefined;
@@ -2397,6 +2409,10 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2397
2409
  bottomPinCount?: number | undefined;
2398
2410
  } | undefined;
2399
2411
  schPinStyle?: Record<string, {
2412
+ marginLeft?: number | undefined;
2413
+ marginRight?: number | undefined;
2414
+ marginTop?: number | undefined;
2415
+ marginBottom?: number | undefined;
2400
2416
  leftMargin?: number | undefined;
2401
2417
  rightMargin?: number | undefined;
2402
2418
  topMargin?: number | undefined;
@@ -2532,6 +2548,10 @@ declare class Chip<PinLabels extends string = never> extends NormalComponent<typ
2532
2548
  bottomPinCount?: number | undefined;
2533
2549
  } | undefined;
2534
2550
  schPinStyle?: Record<string, {
2551
+ marginLeft?: string | number | undefined;
2552
+ marginRight?: string | number | undefined;
2553
+ marginTop?: string | number | undefined;
2554
+ marginBottom?: string | number | undefined;
2535
2555
  leftMargin?: string | number | undefined;
2536
2556
  rightMargin?: string | number | undefined;
2537
2557
  topMargin?: string | number | undefined;
@@ -3219,16 +3239,28 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
3219
3239
  manufacturerPartNumber: zod.ZodOptional<zod.ZodString>;
3220
3240
  pinLabels: zod.ZodOptional<zod.ZodRecord<zod.ZodUnion<[zod.ZodNumber, zod.ZodString]>, zod.ZodUnion<[zod.ZodString, zod.ZodArray<zod.ZodString, "many">]>>>;
3221
3241
  schPinStyle: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodObject<{
3242
+ marginLeft: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3243
+ marginRight: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3244
+ marginTop: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3245
+ marginBottom: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3222
3246
  leftMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3223
3247
  rightMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3224
3248
  topMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3225
3249
  bottomMargin: zod.ZodOptional<zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodNumber]>, number, string | number>>;
3226
3250
  }, "strip", zod.ZodTypeAny, {
3251
+ marginLeft?: number | undefined;
3252
+ marginRight?: number | undefined;
3253
+ marginTop?: number | undefined;
3254
+ marginBottom?: number | undefined;
3227
3255
  leftMargin?: number | undefined;
3228
3256
  rightMargin?: number | undefined;
3229
3257
  topMargin?: number | undefined;
3230
3258
  bottomMargin?: number | undefined;
3231
3259
  }, {
3260
+ marginLeft?: string | number | undefined;
3261
+ marginRight?: string | number | undefined;
3262
+ marginTop?: string | number | undefined;
3263
+ marginBottom?: string | number | undefined;
3232
3264
  leftMargin?: string | number | undefined;
3233
3265
  rightMargin?: string | number | undefined;
3234
3266
  topMargin?: string | number | undefined;
@@ -3434,6 +3466,10 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
3434
3466
  bottomPinCount?: number | undefined;
3435
3467
  } | undefined;
3436
3468
  schPinStyle?: Record<string, {
3469
+ marginLeft?: number | undefined;
3470
+ marginRight?: number | undefined;
3471
+ marginTop?: number | undefined;
3472
+ marginBottom?: number | undefined;
3437
3473
  leftMargin?: number | undefined;
3438
3474
  rightMargin?: number | undefined;
3439
3475
  topMargin?: number | undefined;
@@ -3541,6 +3577,10 @@ declare class Jumper<PinLabels extends string = never> extends NormalComponent<t
3541
3577
  bottomPinCount?: number | undefined;
3542
3578
  } | undefined;
3543
3579
  schPinStyle?: Record<string, {
3580
+ marginLeft?: string | number | undefined;
3581
+ marginRight?: string | number | undefined;
3582
+ marginTop?: string | number | undefined;
3583
+ marginBottom?: string | number | undefined;
3544
3584
  leftMargin?: string | number | undefined;
3545
3585
  rightMargin?: string | number | undefined;
3546
3586
  topMargin?: string | number | undefined;
package/dist/index.js CHANGED
@@ -2853,9 +2853,15 @@ var getNumericSchPinStyle = (pinStyles, pinLabels) => {
2853
2853
  const numericPinStyles = {};
2854
2854
  for (const [pinNameOrLabel, pinStyle] of Object.entries(pinStyles)) {
2855
2855
  const pinNumber = parsePinNumberFromLabelsOrThrow(pinNameOrLabel, pinLabels);
2856
+ const pinStyleWithSideFirst = {
2857
+ leftMargin: pinStyle.marginLeft ?? pinStyle.leftMargin,
2858
+ rightMargin: pinStyle.marginRight ?? pinStyle.rightMargin,
2859
+ topMargin: pinStyle.marginTop ?? pinStyle.topMargin,
2860
+ bottomMargin: pinStyle.marginBottom ?? pinStyle.bottomMargin
2861
+ };
2856
2862
  numericPinStyles[`pin${pinNumber}`] = {
2857
2863
  ...numericPinStyles[`pin${pinNumber}`],
2858
- ...pinStyle
2864
+ ...pinStyleWithSideFirst
2859
2865
  };
2860
2866
  }
2861
2867
  return numericPinStyles;
@@ -4023,9 +4029,21 @@ var Board = class extends Group {
4023
4029
  if (this.root?.pcbDisabled) return;
4024
4030
  const { db } = this.root;
4025
4031
  const { _parsedProps: props } = this;
4026
- if (!props.width || !props.height) {
4032
+ if (!props.outline && (!props.width || !props.height)) {
4027
4033
  throw new Error("Board width and height or an outline are required");
4028
4034
  }
4035
+ let computedWidth = props.width;
4036
+ let computedHeight = props.height;
4037
+ if (props.outline) {
4038
+ const xValues = props.outline.map((point) => point.x);
4039
+ const yValues = props.outline.map((point) => point.y);
4040
+ const minX = Math.min(...xValues);
4041
+ const maxX = Math.max(...xValues);
4042
+ const minY = Math.min(...yValues);
4043
+ const maxY = Math.max(...yValues);
4044
+ computedWidth = maxX - minX;
4045
+ computedHeight = maxY - minY;
4046
+ }
4029
4047
  const pcb_board = db.pcb_board.insert({
4030
4048
  center: {
4031
4049
  x: (props.pcbX ?? 0) + (props.outlineOffsetX ?? 0),
@@ -4033,8 +4051,8 @@ var Board = class extends Group {
4033
4051
  },
4034
4052
  thickness: this.boardThickness,
4035
4053
  num_layers: this.allLayers.length,
4036
- width: props.width,
4037
- height: props.height,
4054
+ width: computedWidth,
4055
+ height: computedHeight,
4038
4056
  outline: props.outline?.map((point) => ({
4039
4057
  x: point.x + (props.outlineOffsetX ?? 0),
4040
4058
  y: point.y + (props.outlineOffsetY ?? 0)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.286",
4
+ "version": "0.0.288",
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
  "@tscircuit/footprinter": "^0.0.97",
55
55
  "@tscircuit/infgrid-ijump-astar": "^0.0.33",
56
56
  "@tscircuit/math-utils": "^0.0.9",
57
- "@tscircuit/props": "^0.0.136",
57
+ "@tscircuit/props": "^0.0.137",
58
58
  "@tscircuit/schematic-autolayout": "^0.0.6",
59
59
  "@tscircuit/soup-util": "^0.0.41",
60
60
  "circuit-json": "^0.0.134",