@tscircuit/footprinter 0.0.144 → 0.0.146

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.js CHANGED
@@ -24,6 +24,7 @@ __export(fn_exports, {
24
24
  mlp: () => mlp,
25
25
  ms012: () => ms012,
26
26
  ms013: () => ms013,
27
+ msop: () => msop,
27
28
  pad: () => pad,
28
29
  pinrow: () => pinrow,
29
30
  pushbutton: () => pushbutton,
@@ -38,6 +39,7 @@ __export(fn_exports, {
38
39
  sod110: () => sod110,
39
40
  sod123: () => sod123,
40
41
  sod123f: () => sod123f,
42
+ sod123fl: () => sod123fl,
41
43
  sod123w: () => sod123w,
42
44
  sod128: () => sod128,
43
45
  sod323: () => sod323,
@@ -3361,20 +3363,20 @@ var sodWithoutParsing8 = (parameters) => {
3361
3363
  return pads;
3362
3364
  };
3363
3365
 
3364
- // src/fn/sod723.ts
3366
+ // src/fn/sod123fl.ts
3365
3367
  import { z as z29 } from "zod";
3366
3368
  import { length as length23 } from "circuit-json";
3367
- var sod_def9 = z29.object({
3369
+ var sod123FL_def = z29.object({
3368
3370
  fn: z29.string(),
3369
3371
  num_pins: z29.literal(2).default(2),
3370
- w: z29.string().default("1.80mm"),
3371
- h: z29.string().default("1.00mm"),
3372
- pl: z29.string().default("0.66mm"),
3373
- pw: z29.string().default("0.5mm"),
3374
- p: z29.string().default("0.8mm")
3372
+ w: z29.string().default("4.4mm"),
3373
+ h: z29.string().default("2.1mm"),
3374
+ pl: z29.string().default("0.91mm"),
3375
+ pw: z29.string().default("1.22mm"),
3376
+ p: z29.string().default("3.146mm")
3375
3377
  });
3376
- var sod723 = (raw_params) => {
3377
- const parameters = sod_def9.parse(raw_params);
3378
+ var sod123fl = (raw_params) => {
3379
+ const parameters = sod123FL_def.parse(raw_params);
3378
3380
  const silkscreenRefText = silkscreenRef(
3379
3381
  0,
3380
3382
  length23.parse(parameters.h),
@@ -3390,11 +3392,11 @@ var sod723 = (raw_params) => {
3390
3392
  y: length23.parse(parameters.h) / 2
3391
3393
  },
3392
3394
  {
3393
- x: -length23.parse(parameters.w) / 2 - 0.1,
3395
+ x: -length23.parse(parameters.w) / 2 - 0.2,
3394
3396
  y: length23.parse(parameters.h) / 2
3395
3397
  },
3396
3398
  {
3397
- x: -length23.parse(parameters.w) / 2 - 0.1,
3399
+ x: -length23.parse(parameters.w) / 2 - 0.2,
3398
3400
  y: -length23.parse(parameters.h) / 2
3399
3401
  },
3400
3402
  {
@@ -3441,23 +3443,23 @@ var sodWithoutParsing9 = (parameters) => {
3441
3443
  return pads;
3442
3444
  };
3443
3445
 
3444
- // src/fn/sod128.ts
3446
+ // src/fn/sod723.ts
3445
3447
  import { z as z30 } from "zod";
3446
3448
  import { length as length24 } from "circuit-json";
3447
- var sod_def10 = z30.object({
3449
+ var sod_def9 = z30.object({
3448
3450
  fn: z30.string(),
3449
3451
  num_pins: z30.literal(2).default(2),
3450
- w: z30.string().default("6.2mm"),
3451
- h: z30.string().default("3.4mm"),
3452
- pl: z30.string().default("1.4mm"),
3453
- pw: z30.string().default("2.1mm"),
3454
- p: z30.string().default("4.4mm")
3452
+ w: z30.string().default("1.80mm"),
3453
+ h: z30.string().default("1.00mm"),
3454
+ pl: z30.string().default("0.66mm"),
3455
+ pw: z30.string().default("0.5mm"),
3456
+ p: z30.string().default("0.8mm")
3455
3457
  });
3456
- var sod128 = (raw_params) => {
3457
- const parameters = sod_def10.parse(raw_params);
3458
+ var sod723 = (raw_params) => {
3459
+ const parameters = sod_def9.parse(raw_params);
3458
3460
  const silkscreenRefText = silkscreenRef(
3459
3461
  0,
3460
- length24.parse(parameters.h) / 2 + 0.4,
3462
+ length24.parse(parameters.h),
3461
3463
  0.3
3462
3464
  );
3463
3465
  const silkscreenLine = {
@@ -3470,11 +3472,11 @@ var sod128 = (raw_params) => {
3470
3472
  y: length24.parse(parameters.h) / 2
3471
3473
  },
3472
3474
  {
3473
- x: -length24.parse(parameters.w) / 2 - 0.2,
3475
+ x: -length24.parse(parameters.w) / 2 - 0.1,
3474
3476
  y: length24.parse(parameters.h) / 2
3475
3477
  },
3476
3478
  {
3477
- x: -length24.parse(parameters.w) / 2 - 0.2,
3479
+ x: -length24.parse(parameters.w) / 2 - 0.1,
3478
3480
  y: -length24.parse(parameters.h) / 2
3479
3481
  },
3480
3482
  {
@@ -3521,28 +3523,108 @@ var sodWithoutParsing10 = (parameters) => {
3521
3523
  return pads;
3522
3524
  };
3523
3525
 
3524
- // src/fn/sot89.ts
3526
+ // src/fn/sod128.ts
3525
3527
  import { z as z31 } from "zod";
3526
- var sot89_def = z31.object({
3528
+ import { length as length25 } from "circuit-json";
3529
+ var sod_def10 = z31.object({
3527
3530
  fn: z31.string(),
3528
- num_pins: z31.union([z31.literal(3), z31.literal(5)]).default(3),
3529
- w: z31.string().default("4.80mm"),
3530
- h: z31.string().default("4.80mm"),
3531
- pl: z31.string().default("1.3mm"),
3532
- pw: z31.string().default("0.9mm"),
3533
- p: z31.string().default("1.5mm"),
3534
- string: z31.string().optional()
3531
+ num_pins: z31.literal(2).default(2),
3532
+ w: z31.string().default("6.2mm"),
3533
+ h: z31.string().default("3.4mm"),
3534
+ pl: z31.string().default("1.4mm"),
3535
+ pw: z31.string().default("2.1mm"),
3536
+ p: z31.string().default("4.4mm")
3537
+ });
3538
+ var sod128 = (raw_params) => {
3539
+ const parameters = sod_def10.parse(raw_params);
3540
+ const silkscreenRefText = silkscreenRef(
3541
+ 0,
3542
+ length25.parse(parameters.h) / 2 + 0.4,
3543
+ 0.3
3544
+ );
3545
+ const silkscreenLine = {
3546
+ type: "pcb_silkscreen_path",
3547
+ layer: "top",
3548
+ pcb_component_id: "",
3549
+ route: [
3550
+ {
3551
+ x: length25.parse(parameters.p) / 2,
3552
+ y: length25.parse(parameters.h) / 2
3553
+ },
3554
+ {
3555
+ x: -length25.parse(parameters.w) / 2 - 0.2,
3556
+ y: length25.parse(parameters.h) / 2
3557
+ },
3558
+ {
3559
+ x: -length25.parse(parameters.w) / 2 - 0.2,
3560
+ y: -length25.parse(parameters.h) / 2
3561
+ },
3562
+ {
3563
+ x: length25.parse(parameters.p) / 2,
3564
+ y: -length25.parse(parameters.h) / 2
3565
+ }
3566
+ ],
3567
+ stroke_width: 0.1,
3568
+ pcb_silkscreen_path_id: ""
3569
+ };
3570
+ return {
3571
+ circuitJson: sodWithoutParsing11(parameters).concat(
3572
+ silkscreenLine,
3573
+ silkscreenRefText
3574
+ ),
3575
+ parameters
3576
+ };
3577
+ };
3578
+ var getSodCoords11 = (parameters) => {
3579
+ const { pn, p } = parameters;
3580
+ if (pn === 1) {
3581
+ return { x: -p / 2, y: 0 };
3582
+ } else {
3583
+ return { x: p / 2, y: 0 };
3584
+ }
3585
+ };
3586
+ var sodWithoutParsing11 = (parameters) => {
3587
+ const pads = [];
3588
+ for (let i = 1; i <= parameters.num_pins; i++) {
3589
+ const { x, y } = getSodCoords11({
3590
+ pn: i,
3591
+ p: Number.parseFloat(parameters.p)
3592
+ });
3593
+ pads.push(
3594
+ rectpad(
3595
+ i,
3596
+ x,
3597
+ y,
3598
+ Number.parseFloat(parameters.pl),
3599
+ Number.parseFloat(parameters.pw)
3600
+ )
3601
+ );
3602
+ }
3603
+ return pads;
3604
+ };
3605
+
3606
+ // src/fn/sot89.ts
3607
+ import { z as z32 } from "zod";
3608
+ var sot89_def = z32.object({
3609
+ fn: z32.string(),
3610
+ num_pins: z32.union([z32.literal(3), z32.literal(5)]).default(3),
3611
+ w: z32.string().default("4.80mm"),
3612
+ h: z32.string().default("4.80mm"),
3613
+ pl: z32.string().default("1.3mm"),
3614
+ pw: z32.string().default("0.9mm"),
3615
+ p: z32.string().default("1.5mm"),
3616
+ string: z32.string().optional()
3535
3617
  });
3536
3618
  var sot89_3 = (parameters) => {
3537
3619
  const pads = [];
3538
3620
  const padGap = Number.parseFloat(parameters.p);
3539
3621
  const padWidth = Number.parseFloat(parameters.pw);
3540
- const length37 = Number.parseFloat(parameters.w);
3622
+ const length39 = Number.parseFloat(parameters.w);
3541
3623
  const padHeight = Number.parseFloat(parameters.pl);
3542
3624
  pads.push(
3543
- rectpad(1, -length37 / 2, padGap, padHeight, padWidth),
3544
- rectpad(2, -length37 / 2 + (1.5 - 1.3) / 2, 0, 1.5, padWidth),
3545
- rectpad(3, -length37 / 2, -padGap, padHeight, padWidth)
3625
+ rectpad(1, -length39 / 2, padGap, padHeight, padWidth),
3626
+ rectpad(2, -length39 / 2 + (1.5 - 1.3) / 2, 0, 1.5, padWidth),
3627
+ rectpad(3, -length39 / 2, -padGap, padHeight, padWidth)
3546
3628
  );
3547
3629
  const silkscreenRefText = silkscreenRef(0, 0, 0.3);
3548
3630
  const width = Number.parseFloat(parameters.w) / 2 - 1;
@@ -3582,7 +3664,7 @@ var sot89_5 = (parameters) => {
3582
3664
  const pads = [];
3583
3665
  const padGap = Number.parseFloat(parameters.p);
3584
3666
  const padWidth = Number.parseFloat(parameters.pw);
3585
- const length37 = Number.parseFloat(parameters.w);
3667
+ const length39 = Number.parseFloat(parameters.w);
3586
3668
  pads.push(
3587
3669
  rectpad(1, -1.85, -1.5, 1.5, 0.7),
3588
3670
  rectpad(2, -1.85, 1.5, 1.5, 0.7),
@@ -3650,18 +3732,18 @@ var sot89 = (raw_params) => {
3650
3732
 
3651
3733
  // src/fn/to220.ts
3652
3734
  import {
3653
- length as length25
3735
+ length as length26
3654
3736
  } from "circuit-json";
3655
- import { z as z32 } from "zod";
3656
- var to220_def = z32.object({
3657
- fn: z32.string(),
3658
- p: length25.optional().default("5.0mm"),
3659
- id: length25.optional().default("1.0mm"),
3660
- od: length25.optional().default("1.9mm"),
3661
- w: length25.optional().default("13mm"),
3662
- h: length25.optional().default("7mm"),
3663
- num_pins: z32.number().optional(),
3664
- string: z32.string().optional()
3737
+ import { z as z33 } from "zod";
3738
+ var to220_def = z33.object({
3739
+ fn: z33.string(),
3740
+ p: length26.optional().default("5.0mm"),
3741
+ id: length26.optional().default("1.0mm"),
3742
+ od: length26.optional().default("1.9mm"),
3743
+ w: length26.optional().default("13mm"),
3744
+ h: length26.optional().default("7mm"),
3745
+ num_pins: z33.number().optional(),
3746
+ string: z33.string().optional()
3665
3747
  });
3666
3748
  var to220 = (raw_params) => {
3667
3749
  const parameters = to220_def.parse(raw_params);
@@ -3741,22 +3823,22 @@ var to220 = (raw_params) => {
3741
3823
  };
3742
3824
 
3743
3825
  // src/fn/minimelf.ts
3744
- import { z as z33 } from "zod";
3745
- import { length as length26 } from "circuit-json";
3746
- var minimelf_def = z33.object({
3747
- fn: z33.string(),
3748
- num_pins: z33.literal(2).default(2),
3749
- w: z33.string().default("5.40mm"),
3750
- h: z33.string().default("2.30mm"),
3751
- pl: z33.string().default("1.30mm"),
3752
- pw: z33.string().default("1.70mm"),
3753
- p: z33.string().default("3.5mm")
3826
+ import { z as z34 } from "zod";
3827
+ import { length as length27 } from "circuit-json";
3828
+ var minimelf_def = z34.object({
3829
+ fn: z34.string(),
3830
+ num_pins: z34.literal(2).default(2),
3831
+ w: z34.string().default("5.40mm"),
3832
+ h: z34.string().default("2.30mm"),
3833
+ pl: z34.string().default("1.30mm"),
3834
+ pw: z34.string().default("1.70mm"),
3835
+ p: z34.string().default("3.5mm")
3754
3836
  });
3755
3837
  var minimelf = (raw_params) => {
3756
3838
  const parameters = minimelf_def.parse(raw_params);
3757
3839
  const silkscreenRefText = silkscreenRef(
3758
3840
  0,
3759
- length26.parse(parameters.h) / 2 + 0.4,
3841
+ length27.parse(parameters.h) / 2 + 0.4,
3760
3842
  0.3
3761
3843
  );
3762
3844
  const silkscreenLine = {
@@ -3765,20 +3847,20 @@ var minimelf = (raw_params) => {
3765
3847
  pcb_component_id: "",
3766
3848
  route: [
3767
3849
  {
3768
- x: length26.parse(parameters.p) / 2,
3769
- y: length26.parse(parameters.h) / 2
3850
+ x: length27.parse(parameters.p) / 2,
3851
+ y: length27.parse(parameters.h) / 2
3770
3852
  },
3771
3853
  {
3772
- x: -length26.parse(parameters.w) / 2,
3773
- y: length26.parse(parameters.h) / 2
3854
+ x: -length27.parse(parameters.w) / 2,
3855
+ y: length27.parse(parameters.h) / 2
3774
3856
  },
3775
3857
  {
3776
- x: -length26.parse(parameters.w) / 2,
3777
- y: -length26.parse(parameters.h) / 2
3858
+ x: -length27.parse(parameters.w) / 2,
3859
+ y: -length27.parse(parameters.h) / 2
3778
3860
  },
3779
3861
  {
3780
- x: length26.parse(parameters.p) / 2,
3781
- y: -length26.parse(parameters.h) / 2
3862
+ x: length27.parse(parameters.p) / 2,
3863
+ y: -length27.parse(parameters.h) / 2
3782
3864
  }
3783
3865
  ],
3784
3866
  stroke_width: 0.1,
@@ -3817,22 +3899,22 @@ var miniMelfWithoutParsing = (parameters) => {
3817
3899
  };
3818
3900
 
3819
3901
  // src/fn/sod882d.ts
3820
- import { z as z34 } from "zod";
3821
- import { length as length27 } from "circuit-json";
3822
- var sod_def11 = z34.object({
3823
- fn: z34.string(),
3824
- num_pins: z34.literal(2).default(2),
3825
- w: z34.string().default("1.90mm"),
3826
- h: z34.string().default("1.33mm"),
3827
- pl: z34.string().default("0.5mm"),
3828
- pw: z34.string().default("0.7mm"),
3829
- p: z34.string().default("0.8mm")
3902
+ import { z as z35 } from "zod";
3903
+ import { length as length28 } from "circuit-json";
3904
+ var sod_def11 = z35.object({
3905
+ fn: z35.string(),
3906
+ num_pins: z35.literal(2).default(2),
3907
+ w: z35.string().default("1.90mm"),
3908
+ h: z35.string().default("1.33mm"),
3909
+ pl: z35.string().default("0.5mm"),
3910
+ pw: z35.string().default("0.7mm"),
3911
+ p: z35.string().default("0.8mm")
3830
3912
  });
3831
3913
  var sod882d = (raw_params) => {
3832
3914
  const parameters = sod_def11.parse(raw_params);
3833
3915
  const silkscreenRefText = silkscreenRef(
3834
3916
  0,
3835
- length27.parse(parameters.h) + 0.1,
3917
+ length28.parse(parameters.h) + 0.1,
3836
3918
  0.3
3837
3919
  );
3838
3920
  const silkscreenLine = {
@@ -3841,34 +3923,34 @@ var sod882d = (raw_params) => {
3841
3923
  pcb_component_id: "",
3842
3924
  route: [
3843
3925
  {
3844
- x: length27.parse(parameters.p) / 2 + 0.1,
3845
- y: length27.parse(parameters.h) / 2
3926
+ x: length28.parse(parameters.p) / 2 + 0.1,
3927
+ y: length28.parse(parameters.h) / 2
3846
3928
  },
3847
3929
  {
3848
- x: -length27.parse(parameters.w) / 2,
3849
- y: length27.parse(parameters.h) / 2
3930
+ x: -length28.parse(parameters.w) / 2,
3931
+ y: length28.parse(parameters.h) / 2
3850
3932
  },
3851
3933
  {
3852
- x: -length27.parse(parameters.w) / 2,
3853
- y: -length27.parse(parameters.h) / 2
3934
+ x: -length28.parse(parameters.w) / 2,
3935
+ y: -length28.parse(parameters.h) / 2
3854
3936
  },
3855
3937
  {
3856
- x: length27.parse(parameters.p) / 2 + 0.1,
3857
- y: -length27.parse(parameters.h) / 2
3938
+ x: length28.parse(parameters.p) / 2 + 0.1,
3939
+ y: -length28.parse(parameters.h) / 2
3858
3940
  }
3859
3941
  ],
3860
3942
  stroke_width: 0.1,
3861
3943
  pcb_silkscreen_path_id: ""
3862
3944
  };
3863
3945
  return {
3864
- circuitJson: sodWithoutParsing11(parameters).concat(
3946
+ circuitJson: sodWithoutParsing12(parameters).concat(
3865
3947
  silkscreenLine,
3866
3948
  silkscreenRefText
3867
3949
  ),
3868
3950
  parameters
3869
3951
  };
3870
3952
  };
3871
- var getSodCoords11 = (parameters) => {
3953
+ var getSodCoords12 = (parameters) => {
3872
3954
  const { pn, p } = parameters;
3873
3955
  if (pn === 1) {
3874
3956
  return { x: -p / 2, y: 0 };
@@ -3876,10 +3958,10 @@ var getSodCoords11 = (parameters) => {
3876
3958
  return { x: p / 2, y: 0 };
3877
3959
  }
3878
3960
  };
3879
- var sodWithoutParsing11 = (parameters) => {
3961
+ var sodWithoutParsing12 = (parameters) => {
3880
3962
  const pads = [];
3881
3963
  for (let i = 1; i <= parameters.num_pins; i++) {
3882
- const { x, y } = getSodCoords11({
3964
+ const { x, y } = getSodCoords12({
3883
3965
  pn: i,
3884
3966
  p: Number.parseFloat(parameters.p)
3885
3967
  });
@@ -3897,22 +3979,22 @@ var sodWithoutParsing11 = (parameters) => {
3897
3979
  };
3898
3980
 
3899
3981
  // src/fn/melf.ts
3900
- import { z as z35 } from "zod";
3901
- import { length as length28 } from "circuit-json";
3902
- var melf_def = z35.object({
3903
- fn: z35.string(),
3904
- num_pins: z35.literal(2).default(2),
3905
- w: z35.string().default("7.0mm"),
3906
- h: z35.string().default("3.35mm"),
3907
- pl: z35.string().default("1.50mm"),
3908
- pw: z35.string().default("2.70mm"),
3909
- p: z35.string().default("4.8mm")
3982
+ import { z as z36 } from "zod";
3983
+ import { length as length29 } from "circuit-json";
3984
+ var melf_def = z36.object({
3985
+ fn: z36.string(),
3986
+ num_pins: z36.literal(2).default(2),
3987
+ w: z36.string().default("7.0mm"),
3988
+ h: z36.string().default("3.35mm"),
3989
+ pl: z36.string().default("1.50mm"),
3990
+ pw: z36.string().default("2.70mm"),
3991
+ p: z36.string().default("4.8mm")
3910
3992
  });
3911
3993
  var melf = (raw_params) => {
3912
3994
  const parameters = melf_def.parse(raw_params);
3913
3995
  const silkscreenRefText = silkscreenRef(
3914
3996
  0,
3915
- length28.parse(parameters.h),
3997
+ length29.parse(parameters.h),
3916
3998
  0.3
3917
3999
  );
3918
4000
  const silkscreenLine = {
@@ -3921,20 +4003,20 @@ var melf = (raw_params) => {
3921
4003
  pcb_component_id: "",
3922
4004
  route: [
3923
4005
  {
3924
- x: length28.parse(parameters.p) / 2,
3925
- y: length28.parse(parameters.h) / 2
4006
+ x: length29.parse(parameters.p) / 2,
4007
+ y: length29.parse(parameters.h) / 2
3926
4008
  },
3927
4009
  {
3928
- x: -length28.parse(parameters.w) / 2,
3929
- y: length28.parse(parameters.h) / 2
4010
+ x: -length29.parse(parameters.w) / 2,
4011
+ y: length29.parse(parameters.h) / 2
3930
4012
  },
3931
4013
  {
3932
- x: -length28.parse(parameters.w) / 2,
3933
- y: -length28.parse(parameters.h) / 2
4014
+ x: -length29.parse(parameters.w) / 2,
4015
+ y: -length29.parse(parameters.h) / 2
3934
4016
  },
3935
4017
  {
3936
- x: length28.parse(parameters.p) / 2,
3937
- y: -length28.parse(parameters.h) / 2
4018
+ x: length29.parse(parameters.p) / 2,
4019
+ y: -length29.parse(parameters.h) / 2
3938
4020
  }
3939
4021
  ],
3940
4022
  stroke_width: 0.1,
@@ -3977,22 +4059,22 @@ var melfWithoutParsing = (parameters) => {
3977
4059
  };
3978
4060
 
3979
4061
  // src/fn/micromelf.ts
3980
- import { z as z36 } from "zod";
3981
- import { length as length29 } from "circuit-json";
3982
- var micromelf_def = z36.object({
3983
- fn: z36.string(),
3984
- num_pins: z36.literal(2).default(2),
3985
- w: z36.string().default("3.0mm"),
3986
- h: z36.string().default("1.80mm"),
3987
- pl: z36.string().default("0.80mm"),
3988
- pw: z36.string().default("1.20mm"),
3989
- p: z36.string().default("1.6mm")
4062
+ import { z as z37 } from "zod";
4063
+ import { length as length30 } from "circuit-json";
4064
+ var micromelf_def = z37.object({
4065
+ fn: z37.string(),
4066
+ num_pins: z37.literal(2).default(2),
4067
+ w: z37.string().default("3.0mm"),
4068
+ h: z37.string().default("1.80mm"),
4069
+ pl: z37.string().default("0.80mm"),
4070
+ pw: z37.string().default("1.20mm"),
4071
+ p: z37.string().default("1.6mm")
3990
4072
  });
3991
4073
  var micromelf = (raw_params) => {
3992
4074
  const parameters = micromelf_def.parse(raw_params);
3993
4075
  const silkscreenRefText = silkscreenRef(
3994
4076
  0,
3995
- length29.parse(parameters.h),
4077
+ length30.parse(parameters.h),
3996
4078
  0.3
3997
4079
  );
3998
4080
  const silkscreenLine = {
@@ -4001,20 +4083,20 @@ var micromelf = (raw_params) => {
4001
4083
  pcb_component_id: "",
4002
4084
  route: [
4003
4085
  {
4004
- x: length29.parse(parameters.p) / 2,
4005
- y: length29.parse(parameters.h) / 2
4086
+ x: length30.parse(parameters.p) / 2,
4087
+ y: length30.parse(parameters.h) / 2
4006
4088
  },
4007
4089
  {
4008
- x: -length29.parse(parameters.w) / 2 - 0.1,
4009
- y: length29.parse(parameters.h) / 2
4090
+ x: -length30.parse(parameters.w) / 2 - 0.1,
4091
+ y: length30.parse(parameters.h) / 2
4010
4092
  },
4011
4093
  {
4012
- x: -length29.parse(parameters.w) / 2 - 0.1,
4013
- y: -length29.parse(parameters.h) / 2
4094
+ x: -length30.parse(parameters.w) / 2 - 0.1,
4095
+ y: -length30.parse(parameters.h) / 2
4014
4096
  },
4015
4097
  {
4016
- x: length29.parse(parameters.p) / 2,
4017
- y: -length29.parse(parameters.h) / 2
4098
+ x: length30.parse(parameters.p) / 2,
4099
+ y: -length30.parse(parameters.h) / 2
4018
4100
  }
4019
4101
  ],
4020
4102
  stroke_width: 0.1,
@@ -4057,22 +4139,22 @@ var microMelfWithoutParsing = (parameters) => {
4057
4139
  };
4058
4140
 
4059
4141
  // src/fn/sma.ts
4060
- import { z as z37 } from "zod";
4061
- import { length as length30 } from "circuit-json";
4062
- var sma_def = z37.object({
4063
- fn: z37.string(),
4064
- num_pins: z37.literal(2).default(2),
4065
- w: z37.string().default("7.10mm"),
4066
- h: z37.string().default("3.40mm"),
4067
- pl: z37.string().default("2.45mm"),
4068
- pw: z37.string().default("1.80mm"),
4069
- p: z37.string().default("4.05mm")
4142
+ import { z as z38 } from "zod";
4143
+ import { length as length31 } from "circuit-json";
4144
+ var sma_def = z38.object({
4145
+ fn: z38.string(),
4146
+ num_pins: z38.literal(2).default(2),
4147
+ w: z38.string().default("7.10mm"),
4148
+ h: z38.string().default("3.40mm"),
4149
+ pl: z38.string().default("2.45mm"),
4150
+ pw: z38.string().default("1.80mm"),
4151
+ p: z38.string().default("4.05mm")
4070
4152
  });
4071
4153
  var sma = (raw_params) => {
4072
4154
  const parameters = sma_def.parse(raw_params);
4073
4155
  const silkscreenRefText = silkscreenRef(
4074
4156
  0,
4075
- length30.parse(parameters.h) / 2 + 0.5,
4157
+ length31.parse(parameters.h) / 2 + 0.5,
4076
4158
  0.3
4077
4159
  );
4078
4160
  const silkscreenLine = {
@@ -4081,20 +4163,20 @@ var sma = (raw_params) => {
4081
4163
  pcb_component_id: "",
4082
4164
  route: [
4083
4165
  {
4084
- x: length30.parse(parameters.p) / 2,
4085
- y: length30.parse(parameters.h) / 2
4166
+ x: length31.parse(parameters.p) / 2,
4167
+ y: length31.parse(parameters.h) / 2
4086
4168
  },
4087
4169
  {
4088
- x: -length30.parse(parameters.w) / 2 - 0.5,
4089
- y: length30.parse(parameters.h) / 2
4170
+ x: -length31.parse(parameters.w) / 2 - 0.5,
4171
+ y: length31.parse(parameters.h) / 2
4090
4172
  },
4091
4173
  {
4092
- x: -length30.parse(parameters.w) / 2 - 0.5,
4093
- y: -length30.parse(parameters.h) / 2
4174
+ x: -length31.parse(parameters.w) / 2 - 0.5,
4175
+ y: -length31.parse(parameters.h) / 2
4094
4176
  },
4095
4177
  {
4096
- x: length30.parse(parameters.p) / 2,
4097
- y: -length30.parse(parameters.h) / 2
4178
+ x: length31.parse(parameters.p) / 2,
4179
+ y: -length31.parse(parameters.h) / 2
4098
4180
  }
4099
4181
  ],
4100
4182
  stroke_width: 0.1,
@@ -4136,22 +4218,22 @@ var smaWithoutParsing = (parameters) => {
4136
4218
  };
4137
4219
 
4138
4220
  // src/fn/smf.ts
4139
- import { z as z38 } from "zod";
4140
- import { length as length31 } from "circuit-json";
4141
- var smf_def = z38.object({
4142
- fn: z38.string(),
4143
- num_pins: z38.literal(2).default(2),
4144
- w: z38.string().default("4.80mm"),
4145
- h: z38.string().default("2.10mm"),
4146
- pl: z38.string().default("1.30mm"),
4147
- pw: z38.string().default("1.40mm"),
4148
- p: z38.string().default("2.9mm")
4221
+ import { z as z39 } from "zod";
4222
+ import { length as length32 } from "circuit-json";
4223
+ var smf_def = z39.object({
4224
+ fn: z39.string(),
4225
+ num_pins: z39.literal(2).default(2),
4226
+ w: z39.string().default("4.80mm"),
4227
+ h: z39.string().default("2.10mm"),
4228
+ pl: z39.string().default("1.30mm"),
4229
+ pw: z39.string().default("1.40mm"),
4230
+ p: z39.string().default("2.9mm")
4149
4231
  });
4150
4232
  var smf = (raw_params) => {
4151
4233
  const parameters = smf_def.parse(raw_params);
4152
4234
  const silkscreenRefText = silkscreenRef(
4153
4235
  0,
4154
- length31.parse(parameters.h) - 0.5,
4236
+ length32.parse(parameters.h) - 0.5,
4155
4237
  0.3
4156
4238
  );
4157
4239
  const silkscreenLine = {
@@ -4160,20 +4242,20 @@ var smf = (raw_params) => {
4160
4242
  pcb_component_id: "",
4161
4243
  route: [
4162
4244
  {
4163
- x: length31.parse(parameters.p) / 2,
4164
- y: length31.parse(parameters.h) / 2
4245
+ x: length32.parse(parameters.p) / 2,
4246
+ y: length32.parse(parameters.h) / 2
4165
4247
  },
4166
4248
  {
4167
- x: -length31.parse(parameters.w) / 2,
4168
- y: length31.parse(parameters.h) / 2
4249
+ x: -length32.parse(parameters.w) / 2,
4250
+ y: length32.parse(parameters.h) / 2
4169
4251
  },
4170
4252
  {
4171
- x: -length31.parse(parameters.w) / 2,
4172
- y: -length31.parse(parameters.h) / 2
4253
+ x: -length32.parse(parameters.w) / 2,
4254
+ y: -length32.parse(parameters.h) / 2
4173
4255
  },
4174
4256
  {
4175
- x: length31.parse(parameters.p) / 2,
4176
- y: -length31.parse(parameters.h) / 2
4257
+ x: length32.parse(parameters.p) / 2,
4258
+ y: -length32.parse(parameters.h) / 2
4177
4259
  }
4178
4260
  ],
4179
4261
  stroke_width: 0.1,
@@ -4216,22 +4298,22 @@ var smfWithoutParsing = (parameters) => {
4216
4298
  };
4217
4299
 
4218
4300
  // src/fn/smb.ts
4219
- import { z as z39 } from "zod";
4220
- import { length as length32 } from "circuit-json";
4221
- var smb_def = z39.object({
4222
- fn: z39.string(),
4223
- num_pins: z39.literal(2).default(2),
4224
- w: z39.string().default("7.30mm"),
4225
- h: z39.string().default("4.40mm"),
4226
- pl: z39.string().default("2.50mm"),
4227
- pw: z39.string().default("2.30mm"),
4228
- p: z39.string().default("4.30mm")
4301
+ import { z as z40 } from "zod";
4302
+ import { length as length33 } from "circuit-json";
4303
+ var smb_def = z40.object({
4304
+ fn: z40.string(),
4305
+ num_pins: z40.literal(2).default(2),
4306
+ w: z40.string().default("7.30mm"),
4307
+ h: z40.string().default("4.40mm"),
4308
+ pl: z40.string().default("2.50mm"),
4309
+ pw: z40.string().default("2.30mm"),
4310
+ p: z40.string().default("4.30mm")
4229
4311
  });
4230
4312
  var smb = (raw_params) => {
4231
4313
  const parameters = smb_def.parse(raw_params);
4232
4314
  const silkscreenRefText = silkscreenRef(
4233
4315
  0,
4234
- length32.parse(parameters.h) / 2 + 0.5,
4316
+ length33.parse(parameters.h) / 2 + 0.5,
4235
4317
  0.3
4236
4318
  );
4237
4319
  const silkscreenLine = {
@@ -4240,20 +4322,20 @@ var smb = (raw_params) => {
4240
4322
  pcb_component_id: "",
4241
4323
  route: [
4242
4324
  {
4243
- x: length32.parse(parameters.p) / 2,
4244
- y: length32.parse(parameters.h) / 2
4325
+ x: length33.parse(parameters.p) / 2,
4326
+ y: length33.parse(parameters.h) / 2
4245
4327
  },
4246
4328
  {
4247
- x: -length32.parse(parameters.w) / 2 - 0.1,
4248
- y: length32.parse(parameters.h) / 2
4329
+ x: -length33.parse(parameters.w) / 2 - 0.1,
4330
+ y: length33.parse(parameters.h) / 2
4249
4331
  },
4250
4332
  {
4251
- x: -length32.parse(parameters.w) / 2 - 0.1,
4252
- y: -length32.parse(parameters.h) / 2
4333
+ x: -length33.parse(parameters.w) / 2 - 0.1,
4334
+ y: -length33.parse(parameters.h) / 2
4253
4335
  },
4254
4336
  {
4255
- x: length32.parse(parameters.p) / 2,
4256
- y: -length32.parse(parameters.h) / 2
4337
+ x: length33.parse(parameters.p) / 2,
4338
+ y: -length33.parse(parameters.h) / 2
4257
4339
  }
4258
4340
  ],
4259
4341
  stroke_width: 0.1,
@@ -4296,27 +4378,27 @@ var smbWithoutParsing = (parameters) => {
4296
4378
  };
4297
4379
 
4298
4380
  // src/fn/vssop8.ts
4299
- import { z as z40 } from "zod";
4300
- import { length as length33 } from "circuit-json";
4301
- var vssop8_def = z40.object({
4302
- fn: z40.string(),
4303
- num_pins: z40.literal(8).default(8),
4304
- w: z40.string().default("3.06mm"),
4305
- h: z40.string().default("3.14mm"),
4306
- p: z40.string().default("0.65mm"),
4307
- pl: z40.string().default("1.6mm"),
4308
- pw: z40.string().default("0.5mm")
4381
+ import { z as z41 } from "zod";
4382
+ import { length as length34 } from "circuit-json";
4383
+ var vssop8_def = z41.object({
4384
+ fn: z41.string(),
4385
+ num_pins: z41.literal(8).default(8),
4386
+ w: z41.string().default("3.06mm"),
4387
+ h: z41.string().default("3.14mm"),
4388
+ p: z41.string().default("0.65mm"),
4389
+ pl: z41.string().default("1.6mm"),
4390
+ pw: z41.string().default("0.5mm")
4309
4391
  });
4310
4392
  var vssop8 = (raw_params) => {
4311
4393
  const parameters = vssop8_def.parse(raw_params);
4312
- const pad_spacing = length33.parse(parameters.p);
4394
+ const pad_spacing = length34.parse(parameters.p);
4313
4395
  const silkscreenRefText = silkscreenRef(
4314
4396
  0,
4315
- length33.parse(parameters.h) / 2 + 0.5,
4397
+ length34.parse(parameters.h) / 2 + 0.5,
4316
4398
  0.3
4317
4399
  );
4318
- const silkscreenBoxWidth = length33.parse(parameters.w);
4319
- const silkscreenBoxHeight = length33.parse(parameters.h);
4400
+ const silkscreenBoxWidth = length34.parse(parameters.w);
4401
+ const silkscreenBoxHeight = length34.parse(parameters.h);
4320
4402
  const silkscreenTopLine = {
4321
4403
  type: "pcb_silkscreen_path",
4322
4404
  layer: "top",
@@ -4372,7 +4454,7 @@ var getVssop8PadCoord = (parameters) => {
4372
4454
  const col = pn <= 4 ? -1 : 1;
4373
4455
  const row = 1.5 - (pn - 1) % 4;
4374
4456
  return {
4375
- x: col * length33.parse("1.8mm"),
4457
+ x: col * length34.parse("1.8mm"),
4376
4458
  y: row * pad_spacing
4377
4459
  };
4378
4460
  };
@@ -4397,16 +4479,16 @@ var getVssop8Pads = (parameters, pad_spacing) => {
4397
4479
  };
4398
4480
 
4399
4481
  // src/fn/smc.ts
4400
- import { z as z41 } from "zod";
4401
- import { length as length34 } from "circuit-json";
4402
- var smc_def = z41.object({
4403
- fn: z41.string(),
4404
- num_pins: z41.literal(2).default(2),
4405
- w: z41.string().default("10.70mm"),
4406
- h: z41.string().default("6.60mm"),
4407
- pl: z41.string().default("3.30mm"),
4408
- pw: z41.string().default("2.50mm"),
4409
- p: z41.string().default("6.80mm")
4482
+ import { z as z42 } from "zod";
4483
+ import { length as length35 } from "circuit-json";
4484
+ var smc_def = z42.object({
4485
+ fn: z42.string(),
4486
+ num_pins: z42.literal(2).default(2),
4487
+ w: z42.string().default("10.70mm"),
4488
+ h: z42.string().default("6.60mm"),
4489
+ pl: z42.string().default("3.30mm"),
4490
+ pw: z42.string().default("2.50mm"),
4491
+ p: z42.string().default("6.80mm")
4410
4492
  });
4411
4493
  var smc = (raw_params) => {
4412
4494
  const parameters = smc_def.parse(raw_params);
@@ -4417,20 +4499,20 @@ var smc = (raw_params) => {
4417
4499
  pcb_component_id: "",
4418
4500
  route: [
4419
4501
  {
4420
- x: length34.parse(parameters.p) / 2,
4421
- y: length34.parse(parameters.h) / 2 - 0.8
4502
+ x: length35.parse(parameters.p) / 2,
4503
+ y: length35.parse(parameters.h) / 2 - 0.8
4422
4504
  },
4423
4505
  {
4424
- x: -length34.parse(parameters.w) / 2 - 0.8,
4425
- y: length34.parse(parameters.h) / 2 - 0.8
4506
+ x: -length35.parse(parameters.w) / 2 - 0.8,
4507
+ y: length35.parse(parameters.h) / 2 - 0.8
4426
4508
  },
4427
4509
  {
4428
- x: -length34.parse(parameters.w) / 2 - 0.8,
4429
- y: -length34.parse(parameters.h) / 2 + 0.8
4510
+ x: -length35.parse(parameters.w) / 2 - 0.8,
4511
+ y: -length35.parse(parameters.h) / 2 + 0.8
4430
4512
  },
4431
4513
  {
4432
- x: length34.parse(parameters.p) / 2,
4433
- y: -length34.parse(parameters.h) / 2 + 0.8
4514
+ x: length35.parse(parameters.p) / 2,
4515
+ y: -length35.parse(parameters.h) / 2 + 0.8
4434
4516
  }
4435
4517
  ],
4436
4518
  stroke_width: 0.1,
@@ -4472,16 +4554,16 @@ var smcWithoutParsing = (parameters) => {
4472
4554
  };
4473
4555
 
4474
4556
  // src/fn/sot223.ts
4475
- import { z as z42 } from "zod";
4476
- var sot223_def = z42.object({
4477
- fn: z42.string(),
4478
- num_pins: z42.number().default(4),
4479
- w: z42.string().default("8.50mm"),
4480
- h: z42.string().default("6.90mm"),
4481
- pl: z42.string().default("2mm"),
4482
- pw: z42.string().default("1.5mm"),
4483
- p: z42.string().default("2.30mm"),
4484
- string: z42.string().optional()
4557
+ import { z as z43 } from "zod";
4558
+ var sot223_def = z43.object({
4559
+ fn: z43.string(),
4560
+ num_pins: z43.number().default(4),
4561
+ w: z43.string().default("8.50mm"),
4562
+ h: z43.string().default("6.90mm"),
4563
+ pl: z43.string().default("2mm"),
4564
+ pw: z43.string().default("1.5mm"),
4565
+ p: z43.string().default("2.30mm"),
4566
+ string: z43.string().optional()
4485
4567
  });
4486
4568
  var sot223 = (raw_params) => {
4487
4569
  const match = raw_params.string?.match(/^sot223_(\d+)/);
@@ -4727,16 +4809,16 @@ var sot223_6 = (parameters) => {
4727
4809
  };
4728
4810
 
4729
4811
  // src/fn/sot23w.ts
4730
- import { z as z43 } from "zod";
4731
- var sot23w_def = z43.object({
4732
- fn: z43.string(),
4733
- num_pins: z43.number().default(3),
4734
- w: z43.string().default("3.40mm"),
4735
- h: z43.string().default("3.30mm"),
4736
- pl: z43.string().default("1mm"),
4737
- pw: z43.string().default("0.7mm"),
4738
- p: z43.string().default("1.2mm"),
4739
- string: z43.string().optional()
4812
+ import { z as z44 } from "zod";
4813
+ var sot23w_def = z44.object({
4814
+ fn: z44.string(),
4815
+ num_pins: z44.number().default(3),
4816
+ w: z44.string().default("3.40mm"),
4817
+ h: z44.string().default("3.30mm"),
4818
+ pl: z44.string().default("1mm"),
4819
+ pw: z44.string().default("0.7mm"),
4820
+ p: z44.string().default("1.2mm"),
4821
+ string: z44.string().optional()
4740
4822
  });
4741
4823
  var sot23w = (raw_params) => {
4742
4824
  const match = raw_params.string?.match(/^sot23w_(\d+)/);
@@ -4824,16 +4906,16 @@ var sot23w_3 = (parameters) => {
4824
4906
  };
4825
4907
 
4826
4908
  // src/fn/to92s.ts
4827
- import { z as z44 } from "zod";
4828
- var to92s_def = z44.object({
4829
- fn: z44.string(),
4830
- num_pins: z44.union([z44.literal(3), z44.literal(2)]).default(3),
4831
- p: z44.string().default("1.27mm"),
4832
- id: z44.string().default("0.72mm"),
4833
- od: z44.string().default("0.95mm"),
4834
- w: z44.string().default("2.5mm"),
4835
- h: z44.string().default("4.2mm"),
4836
- string: z44.string().optional()
4909
+ import { z as z45 } from "zod";
4910
+ var to92s_def = z45.object({
4911
+ fn: z45.string(),
4912
+ num_pins: z45.union([z45.literal(3), z45.literal(2)]).default(3),
4913
+ p: z45.string().default("1.27mm"),
4914
+ id: z45.string().default("0.72mm"),
4915
+ od: z45.string().default("0.95mm"),
4916
+ w: z45.string().default("2.5mm"),
4917
+ h: z45.string().default("4.2mm"),
4918
+ string: z45.string().optional()
4837
4919
  });
4838
4920
  var to92s_3 = (parameters) => {
4839
4921
  const { p, id, od, w, h } = parameters;
@@ -4900,9 +4982,9 @@ var to92s = (raw_params) => {
4900
4982
 
4901
4983
  // src/fn/jst.ts
4902
4984
  import {
4903
- length as length35
4985
+ length as length36
4904
4986
  } from "circuit-json";
4905
- import { z as z45 } from "zod";
4987
+ import { z as z46 } from "zod";
4906
4988
 
4907
4989
  // src/helpers/platedHoleWithRectPad.ts
4908
4990
  import { mm as mm4 } from "@tscircuit/mm";
@@ -4925,14 +5007,14 @@ var platedHoleWithRectPad = (pn, x, y, holeDiameter, rectPadWidth, rectPadHeight
4925
5007
  };
4926
5008
 
4927
5009
  // src/fn/jst.ts
4928
- var jst_def = z45.object({
4929
- fn: z45.string(),
4930
- p: length35.optional().default("2.2mm"),
4931
- id: length35.optional().default("0.70mm"),
4932
- pw: length35.optional().default("1.20mm"),
4933
- pl: length35.optional().default("1.20mm"),
4934
- w: length35.optional().default("6mm"),
4935
- h: length35.optional().default("5mm")
5010
+ var jst_def = z46.object({
5011
+ fn: z46.string(),
5012
+ p: length36.optional().default("2.2mm"),
5013
+ id: length36.optional().default("0.70mm"),
5014
+ pw: length36.optional().default("1.20mm"),
5015
+ pl: length36.optional().default("1.20mm"),
5016
+ w: length36.optional().default("6mm"),
5017
+ h: length36.optional().default("5mm")
4936
5018
  });
4937
5019
  var jst = (raw_params) => {
4938
5020
  const parameters = jst_def.parse(raw_params);
@@ -4968,22 +5050,22 @@ var jst = (raw_params) => {
4968
5050
  };
4969
5051
 
4970
5052
  // src/fn/sod110.ts
4971
- import { z as z46 } from "zod";
4972
- import { length as length36 } from "circuit-json";
4973
- var sod_def12 = z46.object({
4974
- fn: z46.string(),
4975
- num_pins: z46.literal(2).default(2),
4976
- w: z46.string().default("3.30mm"),
4977
- h: z46.string().default("1.70mm"),
4978
- pl: z46.string().default("0.80mm"),
4979
- pw: z46.string().default("1mm"),
4980
- p: z46.string().default("1.90mm")
5053
+ import { z as z47 } from "zod";
5054
+ import { length as length37 } from "circuit-json";
5055
+ var sod_def12 = z47.object({
5056
+ fn: z47.string(),
5057
+ num_pins: z47.literal(2).default(2),
5058
+ w: z47.string().default("3.30mm"),
5059
+ h: z47.string().default("1.70mm"),
5060
+ pl: z47.string().default("0.80mm"),
5061
+ pw: z47.string().default("1mm"),
5062
+ p: z47.string().default("1.90mm")
4981
5063
  });
4982
5064
  var sod110 = (raw_params) => {
4983
5065
  const parameters = sod_def12.parse(raw_params);
4984
5066
  const silkscreenRefText = silkscreenRef(
4985
5067
  0,
4986
- length36.parse(parameters.h) / 2 + 0.5,
5068
+ length37.parse(parameters.h) / 2 + 0.5,
4987
5069
  0.3
4988
5070
  );
4989
5071
  const silkscreenLine = {
@@ -4992,44 +5074,44 @@ var sod110 = (raw_params) => {
4992
5074
  pcb_component_id: "",
4993
5075
  route: [
4994
5076
  {
4995
- x: length36.parse(parameters.p) / 2,
4996
- y: length36.parse(parameters.h) / 2
5077
+ x: length37.parse(parameters.p) / 2,
5078
+ y: length37.parse(parameters.h) / 2
4997
5079
  },
4998
5080
  {
4999
- x: -length36.parse(parameters.w) / 2,
5000
- y: length36.parse(parameters.h) / 2
5081
+ x: -length37.parse(parameters.w) / 2,
5082
+ y: length37.parse(parameters.h) / 2
5001
5083
  },
5002
5084
  {
5003
- x: -length36.parse(parameters.w) / 2,
5004
- y: -length36.parse(parameters.h) / 2
5085
+ x: -length37.parse(parameters.w) / 2,
5086
+ y: -length37.parse(parameters.h) / 2
5005
5087
  },
5006
5088
  {
5007
- x: length36.parse(parameters.p) / 2,
5008
- y: -length36.parse(parameters.h) / 2
5089
+ x: length37.parse(parameters.p) / 2,
5090
+ y: -length37.parse(parameters.h) / 2
5009
5091
  }
5010
5092
  ],
5011
5093
  stroke_width: 0.1,
5012
5094
  pcb_silkscreen_path_id: ""
5013
5095
  };
5014
5096
  return {
5015
- circuitJson: sodWithoutParsing12(parameters).concat(
5097
+ circuitJson: sodWithoutParsing13(parameters).concat(
5016
5098
  silkscreenLine,
5017
5099
  silkscreenRefText
5018
5100
  ),
5019
5101
  parameters
5020
5102
  };
5021
5103
  };
5022
- var getSodCoords12 = (parameters) => {
5104
+ var getSodCoords13 = (parameters) => {
5023
5105
  const { pn, p } = parameters;
5024
5106
  if (pn === 1) {
5025
5107
  return { x: -p / 2, y: 0 };
5026
5108
  }
5027
5109
  return { x: p / 2, y: 0 };
5028
5110
  };
5029
- var sodWithoutParsing12 = (parameters) => {
5111
+ var sodWithoutParsing13 = (parameters) => {
5030
5112
  const pads = [];
5031
5113
  for (let i = 1; i <= parameters.num_pins; i++) {
5032
- const { x, y } = getSodCoords12({
5114
+ const { x, y } = getSodCoords13({
5033
5115
  pn: i,
5034
5116
  p: Number.parseFloat(parameters.p)
5035
5117
  });
@@ -5046,6 +5128,142 @@ var sodWithoutParsing12 = (parameters) => {
5046
5128
  return pads;
5047
5129
  };
5048
5130
 
5131
+ // src/fn/msop.ts
5132
+ import { z as z48 } from "zod";
5133
+ import { length as length38 } from "circuit-json";
5134
+ var getDefaultValues = (num_pins) => {
5135
+ switch (num_pins) {
5136
+ case 10:
5137
+ return {
5138
+ w: "3.10mm",
5139
+ h: "3.32mm",
5140
+ p: "0.5mm",
5141
+ pl: "1.63mm",
5142
+ pw: "0.33mm"
5143
+ };
5144
+ case 12:
5145
+ return {
5146
+ w: "3mm",
5147
+ h: "4mm",
5148
+ p: "0.65mm",
5149
+ pl: "0.88mm",
5150
+ pw: "0.4mm"
5151
+ };
5152
+ case 16:
5153
+ return {
5154
+ w: "3.10mm",
5155
+ h: "4mm",
5156
+ p: "0.5mm",
5157
+ pl: "0.88mm",
5158
+ pw: "0.3mm"
5159
+ };
5160
+ default:
5161
+ return {
5162
+ w: "3.10mm",
5163
+ h: "3.32mm",
5164
+ p: "0.65mm",
5165
+ pl: "1.63mm",
5166
+ pw: "0.4mm"
5167
+ };
5168
+ }
5169
+ };
5170
+ var msop_def = z48.object({
5171
+ fn: z48.string(),
5172
+ num_pins: z48.union([z48.literal(8), z48.literal(10), z48.literal(12), z48.literal(16)]).default(8),
5173
+ w: z48.string().optional(),
5174
+ h: z48.string().optional(),
5175
+ p: z48.string().optional(),
5176
+ pl: z48.string().optional(),
5177
+ pw: z48.string().optional(),
5178
+ string: z48.string().optional()
5179
+ });
5180
+ var getMsopCoords = (pinCount, pn, w, p) => {
5181
+ const half = pinCount / 2;
5182
+ const rowIndex = (pn - 1) % half;
5183
+ const col = pn <= half ? -1 : 1;
5184
+ const row = (half - 1) / 2 - rowIndex;
5185
+ return {
5186
+ x: col * length38.parse("2mm"),
5187
+ y: row * p
5188
+ };
5189
+ };
5190
+ var msop = (raw_params) => {
5191
+ const parameters = msop_def.parse(raw_params);
5192
+ const defaults = getDefaultValues(parameters.num_pins);
5193
+ const w = length38.parse(parameters.w || defaults.w);
5194
+ const h = length38.parse(parameters.h || defaults.h);
5195
+ const p = length38.parse(parameters.p || defaults.p);
5196
+ const pl = length38.parse(parameters.pl || defaults.pl);
5197
+ const pw = length38.parse(parameters.pw || defaults.pw);
5198
+ const pads = [];
5199
+ for (let i = 0; i < parameters.num_pins; i++) {
5200
+ const { x, y } = getMsopCoords(parameters.num_pins, i + 1, w, p);
5201
+ pads.push(rectpad(i + 1, x, y, pl, pw));
5202
+ }
5203
+ const silkscreenBoxWidth = w;
5204
+ const silkscreenBoxHeight = h;
5205
+ const silkscreenTopLine = {
5206
+ type: "pcb_silkscreen_path",
5207
+ layer: "top",
5208
+ pcb_component_id: "",
5209
+ route: [
5210
+ { x: -silkscreenBoxWidth / 2, y: silkscreenBoxHeight / 2 },
5211
+ { x: silkscreenBoxWidth / 2, y: silkscreenBoxHeight / 2 }
5212
+ ],
5213
+ stroke_width: 0.05,
5214
+ pcb_silkscreen_path_id: ""
5215
+ };
5216
+ const silkscreenBottomLine = {
5217
+ type: "pcb_silkscreen_path",
5218
+ layer: "top",
5219
+ pcb_component_id: "",
5220
+ route: [
5221
+ { x: -silkscreenBoxWidth / 2, y: -silkscreenBoxHeight / 2 },
5222
+ { x: silkscreenBoxWidth / 2, y: -silkscreenBoxHeight / 2 }
5223
+ ],
5224
+ stroke_width: 0.05,
5225
+ pcb_silkscreen_path_id: ""
5226
+ };
5227
+ const pin1Position = getMsopCoords(
5228
+ parameters.num_pins,
5229
+ 1,
5230
+ silkscreenBoxWidth,
5231
+ p
5232
+ );
5233
+ const pin1MarkerPosition = {
5234
+ x: pin1Position.x - 0.8,
5235
+ y: pin1Position.y
5236
+ };
5237
+ const pin1Marking = {
5238
+ type: "pcb_silkscreen_path",
5239
+ layer: "top",
5240
+ pcb_component_id: "pin_marker_1",
5241
+ route: [
5242
+ { x: pin1MarkerPosition.x - 0.4, y: pin1MarkerPosition.y },
5243
+ { x: pin1MarkerPosition.x - 0.7, y: pin1MarkerPosition.y + 0.3 },
5244
+ { x: pin1MarkerPosition.x - 0.7, y: pin1MarkerPosition.y - 0.3 },
5245
+ { x: pin1MarkerPosition.x - 0.4, y: pin1MarkerPosition.y }
5246
+ ],
5247
+ stroke_width: 0.05,
5248
+ pcb_silkscreen_path_id: "pin_marker_1"
5249
+ };
5250
+ const silkscreenRefText = silkscreenRef(
5251
+ 0,
5252
+ silkscreenBoxHeight / 2 + 0.5,
5253
+ 0.3
5254
+ );
5255
+ return {
5256
+ circuitJson: [
5257
+ ...pads,
5258
+ silkscreenTopLine,
5259
+ silkscreenBottomLine,
5260
+ silkscreenRefText,
5261
+ pin1Marking
5262
+ ],
5263
+ parameters
5264
+ };
5265
+ };
5266
+
5049
5267
  // src/helpers/is-not-null.ts
5050
5268
  function isNotNull(value) {
5051
5269
  return value !== null;