jscad-electronics 0.0.97 → 0.0.98

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
@@ -3315,6 +3315,75 @@ var MS012 = ({
3315
3315
  ] });
3316
3316
  };
3317
3317
 
3318
+ // lib/ms013.tsx
3319
+ import { Fragment as Fragment46, jsx as jsx50, jsxs as jsxs48 } from "react/jsx-runtime";
3320
+ var MS013 = ({
3321
+ pinCount = 16,
3322
+ padContactLength = 0.6,
3323
+ leadWidth = 0.41,
3324
+ pitch = 1.27
3325
+ }) => {
3326
+ if (pinCount !== 16) {
3327
+ throw new Error("MS013 only supports 16 pins");
3328
+ }
3329
+ const sidePinCount = pinCount / 2;
3330
+ const bodyWidth = 7.5;
3331
+ const bodyLength10 = 10.3;
3332
+ const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
3333
+ const leadThickness = 0.2;
3334
+ return /* @__PURE__ */ jsxs48(Fragment46, { children: [
3335
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx50(
3336
+ SmdChipLead,
3337
+ {
3338
+ position: {
3339
+ x: -bodyWidth / 2 - padContactLength - 0.3,
3340
+ y: i * pitch - pinOffsetToCenter,
3341
+ z: leadThickness / 2
3342
+ },
3343
+ width: leadWidth,
3344
+ thickness: leadThickness,
3345
+ padContactLength,
3346
+ bodyDistance: padContactLength + 0.4,
3347
+ height: 0.85
3348
+ },
3349
+ i
3350
+ )),
3351
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx50(
3352
+ SmdChipLead,
3353
+ {
3354
+ rotation: Math.PI,
3355
+ position: {
3356
+ x: bodyWidth / 2 + padContactLength + 0.3,
3357
+ y: i * pitch - pinOffsetToCenter,
3358
+ z: leadThickness / 2
3359
+ },
3360
+ width: leadWidth,
3361
+ thickness: leadThickness,
3362
+ padContactLength,
3363
+ bodyDistance: padContactLength + 0.4,
3364
+ height: 0.85
3365
+ },
3366
+ `right-${i}`
3367
+ )),
3368
+ /* @__PURE__ */ jsx50(
3369
+ ChipBody,
3370
+ {
3371
+ center: { x: 0, y: 0, z: leadThickness / 2 },
3372
+ width: bodyWidth,
3373
+ length: bodyLength10,
3374
+ height: 1.1,
3375
+ notchPosition: {
3376
+ x: bodyWidth / 2 - 1.5,
3377
+ y: bodyLength10 / 2 - 1.5,
3378
+ z: 1.1
3379
+ },
3380
+ heightAboveSurface: 0.17,
3381
+ taperRatio: 0.05
3382
+ }
3383
+ )
3384
+ ] });
3385
+ };
3386
+
3318
3387
  // lib/TO220.tsx
3319
3388
  import {
3320
3389
  Colorize as Colorize26,
@@ -3325,7 +3394,7 @@ import {
3325
3394
  Cylinder as Cylinder8,
3326
3395
  Subtract as Subtract4
3327
3396
  } from "jscad-fiber";
3328
- import { Fragment as Fragment46, jsx as jsx50, jsxs as jsxs48 } from "react/jsx-runtime";
3397
+ import { Fragment as Fragment47, jsx as jsx51, jsxs as jsxs49 } from "react/jsx-runtime";
3329
3398
  var TO220 = () => {
3330
3399
  const fullLength10 = 20;
3331
3400
  const bodyLength10 = 9.9;
@@ -3344,10 +3413,10 @@ var TO220 = () => {
3344
3413
  const bodyBackX = fullLength10 + bodyLength10 / 2;
3345
3414
  const prongCenterX = bodyFrontX - prongLength / 2;
3346
3415
  const padCenterX = bodyBackX + padLength / 2;
3347
- return /* @__PURE__ */ jsx50(Translate21, { center: [0, 0, zOffset], children: /* @__PURE__ */ jsxs48(Fragment46, { children: [
3348
- /* @__PURE__ */ jsxs48(Rotate9, { rotation: [0, 55, -55], children: [
3349
- /* @__PURE__ */ jsxs48(Subtract4, { children: [
3350
- /* @__PURE__ */ jsx50(
3416
+ return /* @__PURE__ */ jsx51(Translate21, { center: [0, 0, zOffset], children: /* @__PURE__ */ jsxs49(Fragment47, { children: [
3417
+ /* @__PURE__ */ jsxs49(Rotate9, { rotation: [0, 55, -55], children: [
3418
+ /* @__PURE__ */ jsxs49(Subtract4, { children: [
3419
+ /* @__PURE__ */ jsx51(
3351
3420
  Cuboid33,
3352
3421
  {
3353
3422
  color: "#ccc",
@@ -3355,7 +3424,7 @@ var TO220 = () => {
3355
3424
  center: [padCenterX, 0, padThickness - 2]
3356
3425
  }
3357
3426
  ),
3358
- /* @__PURE__ */ jsx50(
3427
+ /* @__PURE__ */ jsx51(
3359
3428
  Cylinder8,
3360
3429
  {
3361
3430
  color: "black",
@@ -3365,7 +3434,7 @@ var TO220 = () => {
3365
3434
  }
3366
3435
  )
3367
3436
  ] }),
3368
- /* @__PURE__ */ jsx50(Colorize26, { color: "#222", children: /* @__PURE__ */ jsx50(
3437
+ /* @__PURE__ */ jsx51(Colorize26, { color: "#222", children: /* @__PURE__ */ jsx51(
3369
3438
  ChipBody,
3370
3439
  {
3371
3440
  width: bodyWidth,
@@ -3379,29 +3448,29 @@ var TO220 = () => {
3379
3448
  }
3380
3449
  ) })
3381
3450
  ] }),
3382
- /* @__PURE__ */ jsx50(Rotate9, { rotation: [0, 55, 55], children: Array.from({ length: 3 }).map((_, i) => {
3451
+ /* @__PURE__ */ jsx51(Rotate9, { rotation: [0, 55, 55], children: Array.from({ length: 3 }).map((_, i) => {
3383
3452
  const x = prongCenterX;
3384
3453
  const y = (i - 1) * prongPitch;
3385
3454
  const z = -prongHeight - 0.6;
3386
- return /* @__PURE__ */ jsxs48(Colorize26, { color: "gold", children: [
3387
- /* @__PURE__ */ jsxs48(Hull17, { children: [
3388
- /* @__PURE__ */ jsx50(Translate21, { center: [bodyFrontX - bodyHeight / 2 + 0.1, y, z], children: /* @__PURE__ */ jsx50(Cuboid33, { size: [bodyHeight, prongWidth + 1, prongHeight] }) }),
3389
- /* @__PURE__ */ jsx50(
3455
+ return /* @__PURE__ */ jsxs49(Colorize26, { color: "gold", children: [
3456
+ /* @__PURE__ */ jsxs49(Hull17, { children: [
3457
+ /* @__PURE__ */ jsx51(Translate21, { center: [bodyFrontX - bodyHeight / 2 + 0.1, y, z], children: /* @__PURE__ */ jsx51(Cuboid33, { size: [bodyHeight, prongWidth + 1, prongHeight] }) }),
3458
+ /* @__PURE__ */ jsx51(
3390
3459
  Translate21,
3391
3460
  {
3392
3461
  center: [bodyFrontX - bodyHeight / 2 - 1 + 0.1, y, z],
3393
- children: /* @__PURE__ */ jsx50(Cuboid33, { size: [bodyHeight, prongWidth, prongHeight] })
3462
+ children: /* @__PURE__ */ jsx51(Cuboid33, { size: [bodyHeight, prongWidth, prongHeight] })
3394
3463
  }
3395
3464
  )
3396
3465
  ] }),
3397
- /* @__PURE__ */ jsx50(Translate21, { center: [x, y, z], children: /* @__PURE__ */ jsx50(Cuboid33, { size: [prongLength + 0.1, prongWidth, prongHeight] }) })
3466
+ /* @__PURE__ */ jsx51(Translate21, { center: [x, y, z], children: /* @__PURE__ */ jsx51(Cuboid33, { size: [prongLength + 0.1, prongWidth, prongHeight] }) })
3398
3467
  ] }, `prong-${i}`);
3399
3468
  }) })
3400
3469
  ] }) });
3401
3470
  };
3402
3471
 
3403
3472
  // lib/SOT-457.tsx
3404
- import { Fragment as Fragment47, jsx as jsx51, jsxs as jsxs49 } from "react/jsx-runtime";
3473
+ import { Fragment as Fragment48, jsx as jsx52, jsxs as jsxs50 } from "react/jsx-runtime";
3405
3474
  var SOT457 = () => {
3406
3475
  const fullWidth = 2.8;
3407
3476
  const bodyWidth = 1.6;
@@ -3413,8 +3482,8 @@ var SOT457 = () => {
3413
3482
  const padContactLength = 0.5;
3414
3483
  const padPitch = 0.95;
3415
3484
  const extendedBodyDistance = fullWidth - bodyWidth;
3416
- return /* @__PURE__ */ jsxs49(Fragment47, { children: [
3417
- /* @__PURE__ */ jsx51(
3485
+ return /* @__PURE__ */ jsxs50(Fragment48, { children: [
3486
+ /* @__PURE__ */ jsx52(
3418
3487
  SmdChipLead,
3419
3488
  {
3420
3489
  rotation: Math.PI,
@@ -3431,7 +3500,7 @@ var SOT457 = () => {
3431
3500
  },
3432
3501
  1
3433
3502
  ),
3434
- /* @__PURE__ */ jsx51(
3503
+ /* @__PURE__ */ jsx52(
3435
3504
  SmdChipLead,
3436
3505
  {
3437
3506
  rotation: Math.PI,
@@ -3448,7 +3517,7 @@ var SOT457 = () => {
3448
3517
  },
3449
3518
  2
3450
3519
  ),
3451
- /* @__PURE__ */ jsx51(
3520
+ /* @__PURE__ */ jsx52(
3452
3521
  SmdChipLead,
3453
3522
  {
3454
3523
  rotation: Math.PI,
@@ -3465,7 +3534,7 @@ var SOT457 = () => {
3465
3534
  },
3466
3535
  3
3467
3536
  ),
3468
- /* @__PURE__ */ jsx51(
3537
+ /* @__PURE__ */ jsx52(
3469
3538
  SmdChipLead,
3470
3539
  {
3471
3540
  position: {
@@ -3481,7 +3550,7 @@ var SOT457 = () => {
3481
3550
  },
3482
3551
  3
3483
3552
  ),
3484
- /* @__PURE__ */ jsx51(
3553
+ /* @__PURE__ */ jsx52(
3485
3554
  SmdChipLead,
3486
3555
  {
3487
3556
  position: {
@@ -3497,7 +3566,7 @@ var SOT457 = () => {
3497
3566
  },
3498
3567
  1
3499
3568
  ),
3500
- /* @__PURE__ */ jsx51(
3569
+ /* @__PURE__ */ jsx52(
3501
3570
  SmdChipLead,
3502
3571
  {
3503
3572
  position: {
@@ -3513,7 +3582,7 @@ var SOT457 = () => {
3513
3582
  },
3514
3583
  2
3515
3584
  ),
3516
- /* @__PURE__ */ jsx51(
3585
+ /* @__PURE__ */ jsx52(
3517
3586
  ChipBody,
3518
3587
  {
3519
3588
  center: { x: 0, y: 0, z: 0 },
@@ -3541,7 +3610,7 @@ import {
3541
3610
  Cylinder as Cylinder9,
3542
3611
  Subtract as Subtract5
3543
3612
  } from "jscad-fiber";
3544
- import { jsx as jsx52, jsxs as jsxs50 } from "react/jsx-runtime";
3613
+ import { jsx as jsx53, jsxs as jsxs51 } from "react/jsx-runtime";
3545
3614
  var TO92 = () => {
3546
3615
  const bodyRadius = 2.4;
3547
3616
  const bodyHeight = 4.5;
@@ -3562,24 +3631,24 @@ var TO92 = () => {
3562
3631
  const leadMidPosB = [0, 1.28, -2.72];
3563
3632
  const leadTipPos2 = [0, 1.28, -8.9];
3564
3633
  const sideLeadZ = -7.5;
3565
- return /* @__PURE__ */ jsxs50(Translate22, { center: [0, 1, 10.5], children: [
3566
- /* @__PURE__ */ jsx52(Colorize27, { color: bodyColor, children: /* @__PURE__ */ jsxs50(Subtract5, { children: [
3567
- /* @__PURE__ */ jsx52(Translate22, { center: [0, 0, bodyZ], children: /* @__PURE__ */ jsx52(Cylinder9, { radius: bodyRadius, height: bodyHeight }) }),
3568
- /* @__PURE__ */ jsx52(Translate22, { center: [0, -(bodyRadius - flatCut / 2), bodyZ], children: /* @__PURE__ */ jsx52(Cuboid34, { size: [bodyRadius * 2, flatCut, bodyHeight + 0.2] }) })
3634
+ return /* @__PURE__ */ jsxs51(Translate22, { center: [0, 1, 10.5], children: [
3635
+ /* @__PURE__ */ jsx53(Colorize27, { color: bodyColor, children: /* @__PURE__ */ jsxs51(Subtract5, { children: [
3636
+ /* @__PURE__ */ jsx53(Translate22, { center: [0, 0, bodyZ], children: /* @__PURE__ */ jsx53(Cylinder9, { radius: bodyRadius, height: bodyHeight }) }),
3637
+ /* @__PURE__ */ jsx53(Translate22, { center: [0, -(bodyRadius - flatCut / 2), bodyZ], children: /* @__PURE__ */ jsx53(Cuboid34, { size: [bodyRadius * 2, flatCut, bodyHeight + 0.2] }) })
3569
3638
  ] }) }),
3570
- /* @__PURE__ */ jsx52(Translate22, { center: leadTipPos1, children: /* @__PURE__ */ jsx52(Cuboid34, { size: leadTipSize }) }),
3571
- /* @__PURE__ */ jsxs50(Hull18, { children: [
3572
- /* @__PURE__ */ jsx52(Translate22, { center: leadMidPosA, children: /* @__PURE__ */ jsx52(Cuboid34, { size: leadSmallSize }) }),
3573
- /* @__PURE__ */ jsx52(Translate22, { center: leadMidPosB, children: /* @__PURE__ */ jsx52(Cuboid34, { size: leadSmallSize }) })
3639
+ /* @__PURE__ */ jsx53(Translate22, { center: leadTipPos1, children: /* @__PURE__ */ jsx53(Cuboid34, { size: leadTipSize }) }),
3640
+ /* @__PURE__ */ jsxs51(Hull18, { children: [
3641
+ /* @__PURE__ */ jsx53(Translate22, { center: leadMidPosA, children: /* @__PURE__ */ jsx53(Cuboid34, { size: leadSmallSize }) }),
3642
+ /* @__PURE__ */ jsx53(Translate22, { center: leadMidPosB, children: /* @__PURE__ */ jsx53(Cuboid34, { size: leadSmallSize }) })
3574
3643
  ] }),
3575
- /* @__PURE__ */ jsx52(Translate22, { center: leadTipPos2, children: /* @__PURE__ */ jsx52(Cuboid34, { size: [leadLength, legWidth, 12.2] }) }),
3576
- /* @__PURE__ */ jsx52(Translate22, { center: [1.3, 0, sideLeadZ], children: /* @__PURE__ */ jsx52(Cuboid34, { size: [leadLength, legWidth, 15] }) }),
3577
- /* @__PURE__ */ jsx52(Translate22, { center: [-1.3, 0, sideLeadZ], children: /* @__PURE__ */ jsx52(Cuboid34, { size: [leadLength, legWidth, 15] }) })
3644
+ /* @__PURE__ */ jsx53(Translate22, { center: leadTipPos2, children: /* @__PURE__ */ jsx53(Cuboid34, { size: [leadLength, legWidth, 12.2] }) }),
3645
+ /* @__PURE__ */ jsx53(Translate22, { center: [1.3, 0, sideLeadZ], children: /* @__PURE__ */ jsx53(Cuboid34, { size: [leadLength, legWidth, 15] }) }),
3646
+ /* @__PURE__ */ jsx53(Translate22, { center: [-1.3, 0, sideLeadZ], children: /* @__PURE__ */ jsx53(Cuboid34, { size: [leadLength, legWidth, 15] }) })
3578
3647
  ] });
3579
3648
  };
3580
3649
 
3581
3650
  // lib/SOT-363.tsx
3582
- import { Fragment as Fragment48, jsx as jsx53, jsxs as jsxs51 } from "react/jsx-runtime";
3651
+ import { Fragment as Fragment49, jsx as jsx54, jsxs as jsxs52 } from "react/jsx-runtime";
3583
3652
  var SOT363 = () => {
3584
3653
  const fullWidth = 2;
3585
3654
  const bodyWidth = 1.25;
@@ -3590,8 +3659,8 @@ var SOT363 = () => {
3590
3659
  const leadHeight = 0.85;
3591
3660
  const padContactLength = 0.3;
3592
3661
  const extendedBodyDistance = fullWidth - bodyWidth;
3593
- return /* @__PURE__ */ jsxs51(Fragment48, { children: [
3594
- /* @__PURE__ */ jsx53(
3662
+ return /* @__PURE__ */ jsxs52(Fragment49, { children: [
3663
+ /* @__PURE__ */ jsx54(
3595
3664
  SmdChipLead,
3596
3665
  {
3597
3666
  rotation: Math.PI,
@@ -3608,7 +3677,7 @@ var SOT363 = () => {
3608
3677
  },
3609
3678
  1
3610
3679
  ),
3611
- /* @__PURE__ */ jsx53(
3680
+ /* @__PURE__ */ jsx54(
3612
3681
  SmdChipLead,
3613
3682
  {
3614
3683
  rotation: Math.PI,
@@ -3625,7 +3694,7 @@ var SOT363 = () => {
3625
3694
  },
3626
3695
  2
3627
3696
  ),
3628
- /* @__PURE__ */ jsx53(
3697
+ /* @__PURE__ */ jsx54(
3629
3698
  SmdChipLead,
3630
3699
  {
3631
3700
  rotation: Math.PI,
@@ -3642,7 +3711,7 @@ var SOT363 = () => {
3642
3711
  },
3643
3712
  3
3644
3713
  ),
3645
- /* @__PURE__ */ jsx53(
3714
+ /* @__PURE__ */ jsx54(
3646
3715
  SmdChipLead,
3647
3716
  {
3648
3717
  position: {
@@ -3658,7 +3727,7 @@ var SOT363 = () => {
3658
3727
  },
3659
3728
  3
3660
3729
  ),
3661
- /* @__PURE__ */ jsx53(
3730
+ /* @__PURE__ */ jsx54(
3662
3731
  SmdChipLead,
3663
3732
  {
3664
3733
  position: {
@@ -3674,7 +3743,7 @@ var SOT363 = () => {
3674
3743
  },
3675
3744
  1
3676
3745
  ),
3677
- /* @__PURE__ */ jsx53(
3746
+ /* @__PURE__ */ jsx54(
3678
3747
  SmdChipLead,
3679
3748
  {
3680
3749
  position: {
@@ -3690,7 +3759,7 @@ var SOT363 = () => {
3690
3759
  },
3691
3760
  2
3692
3761
  ),
3693
- /* @__PURE__ */ jsx53(
3762
+ /* @__PURE__ */ jsx54(
3694
3763
  ChipBody,
3695
3764
  {
3696
3765
  center: { x: 0, y: 0, z: 0 },
@@ -3711,14 +3780,14 @@ var SOT363 = () => {
3711
3780
  var SOT_363_default = SOT363;
3712
3781
 
3713
3782
  // lib/Footprinter3d.tsx
3714
- import { jsx as jsx54 } from "react/jsx-runtime";
3783
+ import { jsx as jsx55 } from "react/jsx-runtime";
3715
3784
  var Footprinter3d = ({ footprint }) => {
3716
3785
  const fpJson = fp3.string(footprint).json();
3717
3786
  switch (fpJson.fn) {
3718
3787
  case "dip":
3719
- return /* @__PURE__ */ jsx54(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
3788
+ return /* @__PURE__ */ jsx55(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
3720
3789
  case "tssop":
3721
- return /* @__PURE__ */ jsx54(
3790
+ return /* @__PURE__ */ jsx55(
3722
3791
  Tssop,
3723
3792
  {
3724
3793
  pinCount: fpJson.num_pins,
@@ -3729,7 +3798,7 @@ var Footprinter3d = ({ footprint }) => {
3729
3798
  }
3730
3799
  );
3731
3800
  case "msop":
3732
- return /* @__PURE__ */ jsx54(
3801
+ return /* @__PURE__ */ jsx55(
3733
3802
  MSOP,
3734
3803
  {
3735
3804
  pinCount: fpJson.num_pins,
@@ -3740,7 +3809,7 @@ var Footprinter3d = ({ footprint }) => {
3740
3809
  }
3741
3810
  );
3742
3811
  case "vssop":
3743
- return /* @__PURE__ */ jsx54(
3812
+ return /* @__PURE__ */ jsx55(
3744
3813
  VSSOP,
3745
3814
  {
3746
3815
  pinCount: fpJson.num_pins,
@@ -3752,7 +3821,7 @@ var Footprinter3d = ({ footprint }) => {
3752
3821
  }
3753
3822
  );
3754
3823
  case "qfp":
3755
- return /* @__PURE__ */ jsx54(
3824
+ return /* @__PURE__ */ jsx55(
3756
3825
  QFP,
3757
3826
  {
3758
3827
  pinCount: fpJson.num_pins,
@@ -3763,12 +3832,12 @@ var Footprinter3d = ({ footprint }) => {
3763
3832
  }
3764
3833
  );
3765
3834
  case "tqfp":
3766
- return /* @__PURE__ */ jsx54(tqfp_default, {});
3835
+ return /* @__PURE__ */ jsx55(tqfp_default, {});
3767
3836
  case "lqfp":
3768
- return /* @__PURE__ */ jsx54(LQFP, { pinCount: fpJson.num_pins });
3837
+ return /* @__PURE__ */ jsx55(LQFP, { pinCount: fpJson.num_pins });
3769
3838
  case "qfn": {
3770
3839
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
3771
- return /* @__PURE__ */ jsx54(
3840
+ return /* @__PURE__ */ jsx55(
3772
3841
  qfn_default,
3773
3842
  {
3774
3843
  num_pins: fpJson.num_pins,
@@ -3786,7 +3855,7 @@ var Footprinter3d = ({ footprint }) => {
3786
3855
  }
3787
3856
  case "dfn": {
3788
3857
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
3789
- return /* @__PURE__ */ jsx54(
3858
+ return /* @__PURE__ */ jsx55(
3790
3859
  DFN,
3791
3860
  {
3792
3861
  num_pins: fpJson.num_pins,
@@ -3804,45 +3873,45 @@ var Footprinter3d = ({ footprint }) => {
3804
3873
  }
3805
3874
  case "pinrow":
3806
3875
  if (fpJson.male)
3807
- return /* @__PURE__ */ jsx54(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3876
+ return /* @__PURE__ */ jsx55(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3808
3877
  if (fpJson.female)
3809
- return /* @__PURE__ */ jsx54(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3878
+ return /* @__PURE__ */ jsx55(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3810
3879
  case "cap": {
3811
3880
  switch (fpJson.imperial) {
3812
3881
  case "0402":
3813
- return /* @__PURE__ */ jsx54(A0402, { color: "#856c4d" });
3882
+ return /* @__PURE__ */ jsx55(A0402, { color: "#856c4d" });
3814
3883
  case "0603":
3815
- return /* @__PURE__ */ jsx54(A0603, { color: "#856c4d" });
3884
+ return /* @__PURE__ */ jsx55(A0603, { color: "#856c4d" });
3816
3885
  case "0805":
3817
- return /* @__PURE__ */ jsx54(A0805, { color: "#856c4d" });
3886
+ return /* @__PURE__ */ jsx55(A0805, { color: "#856c4d" });
3818
3887
  case "0201":
3819
- return /* @__PURE__ */ jsx54(A0201, { color: "#856c4d" });
3888
+ return /* @__PURE__ */ jsx55(A0201, { color: "#856c4d" });
3820
3889
  case "01005":
3821
- return /* @__PURE__ */ jsx54(A01005, { color: "#856c4d" });
3890
+ return /* @__PURE__ */ jsx55(A01005, { color: "#856c4d" });
3822
3891
  case "1206":
3823
- return /* @__PURE__ */ jsx54(A1206, { color: "#856c4d" });
3892
+ return /* @__PURE__ */ jsx55(A1206, { color: "#856c4d" });
3824
3893
  case "1210":
3825
- return /* @__PURE__ */ jsx54(A1210, { color: "#856c4d" });
3894
+ return /* @__PURE__ */ jsx55(A1210, { color: "#856c4d" });
3826
3895
  case "2010":
3827
- return /* @__PURE__ */ jsx54(A2010, { color: "#856c4d" });
3896
+ return /* @__PURE__ */ jsx55(A2010, { color: "#856c4d" });
3828
3897
  case "2512":
3829
- return /* @__PURE__ */ jsx54(A2512, { color: "#856c4d" });
3898
+ return /* @__PURE__ */ jsx55(A2512, { color: "#856c4d" });
3830
3899
  }
3831
3900
  }
3832
3901
  case "sot235":
3833
- return /* @__PURE__ */ jsx54(SOT_235_default, {});
3902
+ return /* @__PURE__ */ jsx55(SOT_235_default, {});
3834
3903
  case "sot457":
3835
- return /* @__PURE__ */ jsx54(SOT457, {});
3904
+ return /* @__PURE__ */ jsx55(SOT457, {});
3836
3905
  case "sot223":
3837
- return /* @__PURE__ */ jsx54(SOT223, {});
3906
+ return /* @__PURE__ */ jsx55(SOT223, {});
3838
3907
  case "sot23w":
3839
- return /* @__PURE__ */ jsx54(SOT23W, {});
3908
+ return /* @__PURE__ */ jsx55(SOT23W, {});
3840
3909
  case "sot323":
3841
- return /* @__PURE__ */ jsx54(SOT323, {});
3910
+ return /* @__PURE__ */ jsx55(SOT323, {});
3842
3911
  case "sot363":
3843
- return /* @__PURE__ */ jsx54(SOT_363_default, {});
3912
+ return /* @__PURE__ */ jsx55(SOT_363_default, {});
3844
3913
  case "pushbutton":
3845
- return /* @__PURE__ */ jsx54(
3914
+ return /* @__PURE__ */ jsx55(
3846
3915
  PushButton,
3847
3916
  {
3848
3917
  width: fpJson.w,
@@ -3851,7 +3920,7 @@ var Footprinter3d = ({ footprint }) => {
3851
3920
  }
3852
3921
  );
3853
3922
  case "soic":
3854
- return /* @__PURE__ */ jsx54(
3923
+ return /* @__PURE__ */ jsx55(
3855
3924
  SOIC,
3856
3925
  {
3857
3926
  pinCount: fpJson.num_pins,
@@ -3862,37 +3931,37 @@ var Footprinter3d = ({ footprint }) => {
3862
3931
  }
3863
3932
  );
3864
3933
  case "sod523":
3865
- return /* @__PURE__ */ jsx54(SOD523, {});
3934
+ return /* @__PURE__ */ jsx55(SOD523, {});
3866
3935
  case "sod882":
3867
- return /* @__PURE__ */ jsx54(SOD882, {});
3936
+ return /* @__PURE__ */ jsx55(SOD882, {});
3868
3937
  case "sma":
3869
- return /* @__PURE__ */ jsx54(SMA, {});
3938
+ return /* @__PURE__ */ jsx55(SMA, {});
3870
3939
  case "smb":
3871
- return /* @__PURE__ */ jsx54(SMB, {});
3940
+ return /* @__PURE__ */ jsx55(SMB, {});
3872
3941
  case "smc":
3873
- return /* @__PURE__ */ jsx54(SMC, {});
3942
+ return /* @__PURE__ */ jsx55(SMC, {});
3874
3943
  case "smf":
3875
- return /* @__PURE__ */ jsx54(SMF, {});
3944
+ return /* @__PURE__ */ jsx55(SMF, {});
3876
3945
  case "sod123f":
3877
- return /* @__PURE__ */ jsx54(SOD123F, {});
3946
+ return /* @__PURE__ */ jsx55(SOD123F, {});
3878
3947
  case "sod123fl":
3879
- return /* @__PURE__ */ jsx54(SOD123FL, {});
3948
+ return /* @__PURE__ */ jsx55(SOD123FL, {});
3880
3949
  case "sod123w":
3881
- return /* @__PURE__ */ jsx54(SOD123W, {});
3950
+ return /* @__PURE__ */ jsx55(SOD123W, {});
3882
3951
  case "sod128":
3883
- return /* @__PURE__ */ jsx54(SOD128, {});
3952
+ return /* @__PURE__ */ jsx55(SOD128, {});
3884
3953
  case "sod923":
3885
- return /* @__PURE__ */ jsx54(SOD923, {});
3954
+ return /* @__PURE__ */ jsx55(SOD923, {});
3886
3955
  case "hc49":
3887
- return /* @__PURE__ */ jsx54(HC49, {});
3956
+ return /* @__PURE__ */ jsx55(HC49, {});
3888
3957
  case "micromelf":
3889
- return /* @__PURE__ */ jsx54(MicroMELF, {});
3958
+ return /* @__PURE__ */ jsx55(MicroMELF, {});
3890
3959
  case "minimelf":
3891
- return /* @__PURE__ */ jsx54(MINIMELF, {});
3960
+ return /* @__PURE__ */ jsx55(MINIMELF, {});
3892
3961
  case "melf":
3893
- return /* @__PURE__ */ jsx54(MELF, {});
3962
+ return /* @__PURE__ */ jsx55(MELF, {});
3894
3963
  case "ms012":
3895
- return /* @__PURE__ */ jsx54(
3964
+ return /* @__PURE__ */ jsx55(
3896
3965
  MS012,
3897
3966
  {
3898
3967
  pinCount: fpJson.num_pins,
@@ -3901,40 +3970,50 @@ var Footprinter3d = ({ footprint }) => {
3901
3970
  pitch: fpJson.p
3902
3971
  }
3903
3972
  );
3973
+ case "ms013":
3974
+ return /* @__PURE__ */ jsx55(
3975
+ MS013,
3976
+ {
3977
+ pinCount: fpJson.num_pins,
3978
+ padContactLength: fpJson.pl,
3979
+ leadWidth: fpJson.pw,
3980
+ pitch: fpJson.p
3981
+ }
3982
+ );
3904
3983
  case "sot723":
3905
- return /* @__PURE__ */ jsx54(SOT723, {});
3984
+ return /* @__PURE__ */ jsx55(SOT723, {});
3906
3985
  case "to220":
3907
- return /* @__PURE__ */ jsx54(TO220, {});
3986
+ return /* @__PURE__ */ jsx55(TO220, {});
3908
3987
  case "to92":
3909
- return /* @__PURE__ */ jsx54(TO92, {});
3988
+ return /* @__PURE__ */ jsx55(TO92, {});
3910
3989
  }
3911
3990
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
3912
3991
  const color = colorMatch ? colorMatch[1] : void 0;
3913
3992
  switch (fpJson.imperial) {
3914
3993
  case "0402":
3915
- return /* @__PURE__ */ jsx54(A0402, { color });
3994
+ return /* @__PURE__ */ jsx55(A0402, { color });
3916
3995
  case "0603":
3917
- return /* @__PURE__ */ jsx54(A0603, { color });
3996
+ return /* @__PURE__ */ jsx55(A0603, { color });
3918
3997
  case "0805":
3919
- return /* @__PURE__ */ jsx54(A0805, { color });
3998
+ return /* @__PURE__ */ jsx55(A0805, { color });
3920
3999
  case "0201":
3921
- return /* @__PURE__ */ jsx54(A0201, { color });
4000
+ return /* @__PURE__ */ jsx55(A0201, { color });
3922
4001
  case "01005":
3923
- return /* @__PURE__ */ jsx54(A01005, { color });
4002
+ return /* @__PURE__ */ jsx55(A01005, { color });
3924
4003
  case "1206":
3925
- return /* @__PURE__ */ jsx54(A1206, { color });
4004
+ return /* @__PURE__ */ jsx55(A1206, { color });
3926
4005
  case "1210":
3927
- return /* @__PURE__ */ jsx54(A1210, { color });
4006
+ return /* @__PURE__ */ jsx55(A1210, { color });
3928
4007
  case "2010":
3929
- return /* @__PURE__ */ jsx54(A2010, { color });
4008
+ return /* @__PURE__ */ jsx55(A2010, { color });
3930
4009
  case "2512":
3931
- return /* @__PURE__ */ jsx54(A2512, { color });
4010
+ return /* @__PURE__ */ jsx55(A2512, { color });
3932
4011
  }
3933
4012
  return null;
3934
4013
  };
3935
4014
 
3936
4015
  // lib/SOT-23-3P.tsx
3937
- import { Fragment as Fragment49, jsx as jsx55, jsxs as jsxs52 } from "react/jsx-runtime";
4016
+ import { Fragment as Fragment50, jsx as jsx56, jsxs as jsxs53 } from "react/jsx-runtime";
3938
4017
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3939
4018
  const bodyWidth = 1.3;
3940
4019
  const bodyLength10 = 2.9;
@@ -3945,8 +4024,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3945
4024
  const padContactLength = 0.4;
3946
4025
  const padThickness = leadThickness / 2;
3947
4026
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
3948
- return /* @__PURE__ */ jsxs52(Fragment49, { children: [
3949
- /* @__PURE__ */ jsx55(
4027
+ return /* @__PURE__ */ jsxs53(Fragment50, { children: [
4028
+ /* @__PURE__ */ jsx56(
3950
4029
  SmdChipLead,
3951
4030
  {
3952
4031
  rotation: Math.PI,
@@ -3963,7 +4042,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3963
4042
  },
3964
4043
  1
3965
4044
  ),
3966
- /* @__PURE__ */ jsx55(
4045
+ /* @__PURE__ */ jsx56(
3967
4046
  SmdChipLead,
3968
4047
  {
3969
4048
  rotation: Math.PI,
@@ -3980,7 +4059,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3980
4059
  },
3981
4060
  2
3982
4061
  ),
3983
- /* @__PURE__ */ jsx55(
4062
+ /* @__PURE__ */ jsx56(
3984
4063
  SmdChipLead,
3985
4064
  {
3986
4065
  position: {
@@ -3996,7 +4075,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3996
4075
  },
3997
4076
  3
3998
4077
  ),
3999
- /* @__PURE__ */ jsx55(
4078
+ /* @__PURE__ */ jsx56(
4000
4079
  ChipBody,
4001
4080
  {
4002
4081
  center: { x: 0, y: 0, z: 0 },
@@ -4010,7 +4089,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4010
4089
 
4011
4090
  // lib/SOT-563.tsx
4012
4091
  import { Cuboid as Cuboid35, Translate as Translate23, Rotate as Rotate10, Colorize as Colorize28 } from "jscad-fiber";
4013
- import { Fragment as Fragment50, jsx as jsx56, jsxs as jsxs53 } from "react/jsx-runtime";
4092
+ import { Fragment as Fragment51, jsx as jsx57, jsxs as jsxs54 } from "react/jsx-runtime";
4014
4093
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4015
4094
  const bodyWidth = 1.2;
4016
4095
  const bodyLength10 = 1.6;
@@ -4020,11 +4099,11 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4020
4099
  const leadHeight = 0.13;
4021
4100
  const leadSpacing = 0.5;
4022
4101
  const bodyZOffset = -0.4;
4023
- return /* @__PURE__ */ jsxs53(Fragment50, { children: [
4024
- /* @__PURE__ */ jsx56(Rotate10, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx56(Translate23, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx56(Colorize28, { color: "grey", children: /* @__PURE__ */ jsx56(Cuboid35, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
4102
+ return /* @__PURE__ */ jsxs54(Fragment51, { children: [
4103
+ /* @__PURE__ */ jsx57(Rotate10, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx57(Translate23, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx57(Colorize28, { color: "grey", children: /* @__PURE__ */ jsx57(Cuboid35, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
4025
4104
  [-1, 0, 1].flatMap((yOffset, index) => [
4026
4105
  // Left lead
4027
- /* @__PURE__ */ jsx56(
4106
+ /* @__PURE__ */ jsx57(
4028
4107
  Translate23,
4029
4108
  {
4030
4109
  center: [
@@ -4032,16 +4111,16 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4032
4111
  yOffset * leadSpacing,
4033
4112
  leadHeight / 2
4034
4113
  ],
4035
- children: /* @__PURE__ */ jsx56(Cuboid35, { size: [leadLength, leadWidth, leadHeight] })
4114
+ children: /* @__PURE__ */ jsx57(Cuboid35, { size: [leadLength, leadWidth, leadHeight] })
4036
4115
  },
4037
4116
  `left-${index}`
4038
4117
  ),
4039
4118
  // Right lead
4040
- /* @__PURE__ */ jsx56(
4119
+ /* @__PURE__ */ jsx57(
4041
4120
  Translate23,
4042
4121
  {
4043
4122
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
4044
- children: /* @__PURE__ */ jsx56(Cuboid35, { size: [leadLength, leadWidth, leadHeight] })
4123
+ children: /* @__PURE__ */ jsx57(Cuboid35, { size: [leadLength, leadWidth, leadHeight] })
4045
4124
  },
4046
4125
  `right-${index}`
4047
4126
  )
@@ -4050,7 +4129,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4050
4129
  };
4051
4130
 
4052
4131
  // lib/sod-123.tsx
4053
- import { Fragment as Fragment51, jsx as jsx57, jsxs as jsxs54 } from "react/jsx-runtime";
4132
+ import { Fragment as Fragment52, jsx as jsx58, jsxs as jsxs55 } from "react/jsx-runtime";
4054
4133
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4055
4134
  const bodyWidth = 2.9;
4056
4135
  const bodyLength10 = 1.3;
@@ -4061,8 +4140,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4061
4140
  const padContactLength = 0.4;
4062
4141
  const padThickness = leadThickness / 2;
4063
4142
  const bodyDistance = (fullWidth - bodyWidth) / 2;
4064
- return /* @__PURE__ */ jsxs54(Fragment51, { children: [
4065
- /* @__PURE__ */ jsx57(
4143
+ return /* @__PURE__ */ jsxs55(Fragment52, { children: [
4144
+ /* @__PURE__ */ jsx58(
4066
4145
  SmdChipLead,
4067
4146
  {
4068
4147
  position: {
@@ -4078,7 +4157,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4078
4157
  },
4079
4158
  1
4080
4159
  ),
4081
- /* @__PURE__ */ jsx57(
4160
+ /* @__PURE__ */ jsx58(
4082
4161
  SmdChipLead,
4083
4162
  {
4084
4163
  rotation: Math.PI,
@@ -4095,7 +4174,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4095
4174
  },
4096
4175
  2
4097
4176
  ),
4098
- /* @__PURE__ */ jsx57(
4177
+ /* @__PURE__ */ jsx58(
4099
4178
  ChipBody,
4100
4179
  {
4101
4180
  center: { x: 0, y: 0, z: 0 },
@@ -4128,6 +4207,7 @@ export {
4128
4207
  MELF,
4129
4208
  MINIMELF,
4130
4209
  MS012,
4210
+ MS013,
4131
4211
  MSOP,
4132
4212
  MicroMELF,
4133
4213
  PinRow,