jscad-electronics 0.0.97 → 0.0.99

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 },
@@ -3710,15 +3779,87 @@ var SOT363 = () => {
3710
3779
  };
3711
3780
  var SOT_363_default = SOT363;
3712
3781
 
3782
+ // lib/sod-323.tsx
3783
+ import { Colorize as Colorize28, Cuboid as Cuboid35 } from "jscad-fiber";
3784
+ import { Fragment as Fragment50, jsx as jsx55, jsxs as jsxs53 } from "react/jsx-runtime";
3785
+ var SOD323 = () => {
3786
+ const fullWidth = 2.5;
3787
+ const bodyLength10 = 1.25;
3788
+ const bodyWidth = 1.7;
3789
+ const bodyHeight = 0.95;
3790
+ const leadWidth = 0.3;
3791
+ const leadThickness = 0.175;
3792
+ const padContactLength = 0.3;
3793
+ const padCenterX = bodyWidth / 2;
3794
+ const bodyDistance = 0.45;
3795
+ const leadHeight = 0.7;
3796
+ return /* @__PURE__ */ jsxs53(Fragment50, { children: [
3797
+ /* @__PURE__ */ jsx55(
3798
+ SmdChipLead,
3799
+ {
3800
+ position: {
3801
+ x: -fullWidth / 2,
3802
+ y: 0,
3803
+ z: leadThickness / 2
3804
+ },
3805
+ width: leadWidth,
3806
+ thickness: leadThickness,
3807
+ padContactLength,
3808
+ bodyDistance,
3809
+ height: leadHeight
3810
+ },
3811
+ 1
3812
+ ),
3813
+ /* @__PURE__ */ jsx55(
3814
+ SmdChipLead,
3815
+ {
3816
+ rotation: Math.PI,
3817
+ position: {
3818
+ x: fullWidth / 2,
3819
+ y: 0,
3820
+ z: leadThickness / 2
3821
+ },
3822
+ width: leadWidth,
3823
+ thickness: leadThickness,
3824
+ padContactLength,
3825
+ bodyDistance,
3826
+ height: leadHeight
3827
+ },
3828
+ 1
3829
+ ),
3830
+ /* @__PURE__ */ jsx55(Colorize28, { color: "#222", children: /* @__PURE__ */ jsx55(
3831
+ ChipBody,
3832
+ {
3833
+ center: { x: 0, y: 0, z: 0 },
3834
+ width: bodyWidth,
3835
+ length: bodyLength10,
3836
+ height: bodyHeight,
3837
+ includeNotch: false,
3838
+ taperRatio: 0.06,
3839
+ straightHeightRatio: 0.7,
3840
+ heightAboveSurface: 0.05
3841
+ }
3842
+ ) }),
3843
+ /* @__PURE__ */ jsx55(
3844
+ Cuboid35,
3845
+ {
3846
+ color: "#777",
3847
+ size: [bodyWidth / 3, bodyLength10 - 0.075, 0.02],
3848
+ center: [-padCenterX * 2 / 3 + 0.035, 0, bodyHeight + 0.05]
3849
+ }
3850
+ )
3851
+ ] });
3852
+ };
3853
+
3713
3854
  // lib/Footprinter3d.tsx
3714
- import { jsx as jsx54 } from "react/jsx-runtime";
3855
+ import { jsx as jsx56 } from "react/jsx-runtime";
3715
3856
  var Footprinter3d = ({ footprint }) => {
3716
3857
  const fpJson = fp3.string(footprint).json();
3717
3858
  switch (fpJson.fn) {
3718
3859
  case "dip":
3719
- return /* @__PURE__ */ jsx54(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
3860
+ return /* @__PURE__ */ jsx56(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
3720
3861
  case "tssop":
3721
- return /* @__PURE__ */ jsx54(
3862
+ return /* @__PURE__ */ jsx56(
3722
3863
  Tssop,
3723
3864
  {
3724
3865
  pinCount: fpJson.num_pins,
@@ -3729,7 +3870,7 @@ var Footprinter3d = ({ footprint }) => {
3729
3870
  }
3730
3871
  );
3731
3872
  case "msop":
3732
- return /* @__PURE__ */ jsx54(
3873
+ return /* @__PURE__ */ jsx56(
3733
3874
  MSOP,
3734
3875
  {
3735
3876
  pinCount: fpJson.num_pins,
@@ -3740,7 +3881,7 @@ var Footprinter3d = ({ footprint }) => {
3740
3881
  }
3741
3882
  );
3742
3883
  case "vssop":
3743
- return /* @__PURE__ */ jsx54(
3884
+ return /* @__PURE__ */ jsx56(
3744
3885
  VSSOP,
3745
3886
  {
3746
3887
  pinCount: fpJson.num_pins,
@@ -3752,7 +3893,7 @@ var Footprinter3d = ({ footprint }) => {
3752
3893
  }
3753
3894
  );
3754
3895
  case "qfp":
3755
- return /* @__PURE__ */ jsx54(
3896
+ return /* @__PURE__ */ jsx56(
3756
3897
  QFP,
3757
3898
  {
3758
3899
  pinCount: fpJson.num_pins,
@@ -3763,12 +3904,12 @@ var Footprinter3d = ({ footprint }) => {
3763
3904
  }
3764
3905
  );
3765
3906
  case "tqfp":
3766
- return /* @__PURE__ */ jsx54(tqfp_default, {});
3907
+ return /* @__PURE__ */ jsx56(tqfp_default, {});
3767
3908
  case "lqfp":
3768
- return /* @__PURE__ */ jsx54(LQFP, { pinCount: fpJson.num_pins });
3909
+ return /* @__PURE__ */ jsx56(LQFP, { pinCount: fpJson.num_pins });
3769
3910
  case "qfn": {
3770
3911
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
3771
- return /* @__PURE__ */ jsx54(
3912
+ return /* @__PURE__ */ jsx56(
3772
3913
  qfn_default,
3773
3914
  {
3774
3915
  num_pins: fpJson.num_pins,
@@ -3786,7 +3927,7 @@ var Footprinter3d = ({ footprint }) => {
3786
3927
  }
3787
3928
  case "dfn": {
3788
3929
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
3789
- return /* @__PURE__ */ jsx54(
3930
+ return /* @__PURE__ */ jsx56(
3790
3931
  DFN,
3791
3932
  {
3792
3933
  num_pins: fpJson.num_pins,
@@ -3804,45 +3945,45 @@ var Footprinter3d = ({ footprint }) => {
3804
3945
  }
3805
3946
  case "pinrow":
3806
3947
  if (fpJson.male)
3807
- return /* @__PURE__ */ jsx54(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3948
+ return /* @__PURE__ */ jsx56(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3808
3949
  if (fpJson.female)
3809
- return /* @__PURE__ */ jsx54(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3950
+ return /* @__PURE__ */ jsx56(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
3810
3951
  case "cap": {
3811
3952
  switch (fpJson.imperial) {
3812
3953
  case "0402":
3813
- return /* @__PURE__ */ jsx54(A0402, { color: "#856c4d" });
3954
+ return /* @__PURE__ */ jsx56(A0402, { color: "#856c4d" });
3814
3955
  case "0603":
3815
- return /* @__PURE__ */ jsx54(A0603, { color: "#856c4d" });
3956
+ return /* @__PURE__ */ jsx56(A0603, { color: "#856c4d" });
3816
3957
  case "0805":
3817
- return /* @__PURE__ */ jsx54(A0805, { color: "#856c4d" });
3958
+ return /* @__PURE__ */ jsx56(A0805, { color: "#856c4d" });
3818
3959
  case "0201":
3819
- return /* @__PURE__ */ jsx54(A0201, { color: "#856c4d" });
3960
+ return /* @__PURE__ */ jsx56(A0201, { color: "#856c4d" });
3820
3961
  case "01005":
3821
- return /* @__PURE__ */ jsx54(A01005, { color: "#856c4d" });
3962
+ return /* @__PURE__ */ jsx56(A01005, { color: "#856c4d" });
3822
3963
  case "1206":
3823
- return /* @__PURE__ */ jsx54(A1206, { color: "#856c4d" });
3964
+ return /* @__PURE__ */ jsx56(A1206, { color: "#856c4d" });
3824
3965
  case "1210":
3825
- return /* @__PURE__ */ jsx54(A1210, { color: "#856c4d" });
3966
+ return /* @__PURE__ */ jsx56(A1210, { color: "#856c4d" });
3826
3967
  case "2010":
3827
- return /* @__PURE__ */ jsx54(A2010, { color: "#856c4d" });
3968
+ return /* @__PURE__ */ jsx56(A2010, { color: "#856c4d" });
3828
3969
  case "2512":
3829
- return /* @__PURE__ */ jsx54(A2512, { color: "#856c4d" });
3970
+ return /* @__PURE__ */ jsx56(A2512, { color: "#856c4d" });
3830
3971
  }
3831
3972
  }
3832
3973
  case "sot235":
3833
- return /* @__PURE__ */ jsx54(SOT_235_default, {});
3974
+ return /* @__PURE__ */ jsx56(SOT_235_default, {});
3834
3975
  case "sot457":
3835
- return /* @__PURE__ */ jsx54(SOT457, {});
3976
+ return /* @__PURE__ */ jsx56(SOT457, {});
3836
3977
  case "sot223":
3837
- return /* @__PURE__ */ jsx54(SOT223, {});
3978
+ return /* @__PURE__ */ jsx56(SOT223, {});
3838
3979
  case "sot23w":
3839
- return /* @__PURE__ */ jsx54(SOT23W, {});
3980
+ return /* @__PURE__ */ jsx56(SOT23W, {});
3840
3981
  case "sot323":
3841
- return /* @__PURE__ */ jsx54(SOT323, {});
3982
+ return /* @__PURE__ */ jsx56(SOT323, {});
3842
3983
  case "sot363":
3843
- return /* @__PURE__ */ jsx54(SOT_363_default, {});
3984
+ return /* @__PURE__ */ jsx56(SOT_363_default, {});
3844
3985
  case "pushbutton":
3845
- return /* @__PURE__ */ jsx54(
3986
+ return /* @__PURE__ */ jsx56(
3846
3987
  PushButton,
3847
3988
  {
3848
3989
  width: fpJson.w,
@@ -3851,7 +3992,7 @@ var Footprinter3d = ({ footprint }) => {
3851
3992
  }
3852
3993
  );
3853
3994
  case "soic":
3854
- return /* @__PURE__ */ jsx54(
3995
+ return /* @__PURE__ */ jsx56(
3855
3996
  SOIC,
3856
3997
  {
3857
3998
  pinCount: fpJson.num_pins,
@@ -3862,37 +4003,39 @@ var Footprinter3d = ({ footprint }) => {
3862
4003
  }
3863
4004
  );
3864
4005
  case "sod523":
3865
- return /* @__PURE__ */ jsx54(SOD523, {});
4006
+ return /* @__PURE__ */ jsx56(SOD523, {});
3866
4007
  case "sod882":
3867
- return /* @__PURE__ */ jsx54(SOD882, {});
4008
+ return /* @__PURE__ */ jsx56(SOD882, {});
3868
4009
  case "sma":
3869
- return /* @__PURE__ */ jsx54(SMA, {});
4010
+ return /* @__PURE__ */ jsx56(SMA, {});
3870
4011
  case "smb":
3871
- return /* @__PURE__ */ jsx54(SMB, {});
4012
+ return /* @__PURE__ */ jsx56(SMB, {});
3872
4013
  case "smc":
3873
- return /* @__PURE__ */ jsx54(SMC, {});
4014
+ return /* @__PURE__ */ jsx56(SMC, {});
3874
4015
  case "smf":
3875
- return /* @__PURE__ */ jsx54(SMF, {});
4016
+ return /* @__PURE__ */ jsx56(SMF, {});
3876
4017
  case "sod123f":
3877
- return /* @__PURE__ */ jsx54(SOD123F, {});
4018
+ return /* @__PURE__ */ jsx56(SOD123F, {});
3878
4019
  case "sod123fl":
3879
- return /* @__PURE__ */ jsx54(SOD123FL, {});
4020
+ return /* @__PURE__ */ jsx56(SOD123FL, {});
3880
4021
  case "sod123w":
3881
- return /* @__PURE__ */ jsx54(SOD123W, {});
4022
+ return /* @__PURE__ */ jsx56(SOD123W, {});
3882
4023
  case "sod128":
3883
- return /* @__PURE__ */ jsx54(SOD128, {});
4024
+ return /* @__PURE__ */ jsx56(SOD128, {});
4025
+ case "sod323":
4026
+ return /* @__PURE__ */ jsx56(SOD323, {});
3884
4027
  case "sod923":
3885
- return /* @__PURE__ */ jsx54(SOD923, {});
4028
+ return /* @__PURE__ */ jsx56(SOD923, {});
3886
4029
  case "hc49":
3887
- return /* @__PURE__ */ jsx54(HC49, {});
4030
+ return /* @__PURE__ */ jsx56(HC49, {});
3888
4031
  case "micromelf":
3889
- return /* @__PURE__ */ jsx54(MicroMELF, {});
4032
+ return /* @__PURE__ */ jsx56(MicroMELF, {});
3890
4033
  case "minimelf":
3891
- return /* @__PURE__ */ jsx54(MINIMELF, {});
4034
+ return /* @__PURE__ */ jsx56(MINIMELF, {});
3892
4035
  case "melf":
3893
- return /* @__PURE__ */ jsx54(MELF, {});
4036
+ return /* @__PURE__ */ jsx56(MELF, {});
3894
4037
  case "ms012":
3895
- return /* @__PURE__ */ jsx54(
4038
+ return /* @__PURE__ */ jsx56(
3896
4039
  MS012,
3897
4040
  {
3898
4041
  pinCount: fpJson.num_pins,
@@ -3901,40 +4044,50 @@ var Footprinter3d = ({ footprint }) => {
3901
4044
  pitch: fpJson.p
3902
4045
  }
3903
4046
  );
4047
+ case "ms013":
4048
+ return /* @__PURE__ */ jsx56(
4049
+ MS013,
4050
+ {
4051
+ pinCount: fpJson.num_pins,
4052
+ padContactLength: fpJson.pl,
4053
+ leadWidth: fpJson.pw,
4054
+ pitch: fpJson.p
4055
+ }
4056
+ );
3904
4057
  case "sot723":
3905
- return /* @__PURE__ */ jsx54(SOT723, {});
4058
+ return /* @__PURE__ */ jsx56(SOT723, {});
3906
4059
  case "to220":
3907
- return /* @__PURE__ */ jsx54(TO220, {});
4060
+ return /* @__PURE__ */ jsx56(TO220, {});
3908
4061
  case "to92":
3909
- return /* @__PURE__ */ jsx54(TO92, {});
4062
+ return /* @__PURE__ */ jsx56(TO92, {});
3910
4063
  }
3911
4064
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
3912
4065
  const color = colorMatch ? colorMatch[1] : void 0;
3913
4066
  switch (fpJson.imperial) {
3914
4067
  case "0402":
3915
- return /* @__PURE__ */ jsx54(A0402, { color });
4068
+ return /* @__PURE__ */ jsx56(A0402, { color });
3916
4069
  case "0603":
3917
- return /* @__PURE__ */ jsx54(A0603, { color });
4070
+ return /* @__PURE__ */ jsx56(A0603, { color });
3918
4071
  case "0805":
3919
- return /* @__PURE__ */ jsx54(A0805, { color });
4072
+ return /* @__PURE__ */ jsx56(A0805, { color });
3920
4073
  case "0201":
3921
- return /* @__PURE__ */ jsx54(A0201, { color });
4074
+ return /* @__PURE__ */ jsx56(A0201, { color });
3922
4075
  case "01005":
3923
- return /* @__PURE__ */ jsx54(A01005, { color });
4076
+ return /* @__PURE__ */ jsx56(A01005, { color });
3924
4077
  case "1206":
3925
- return /* @__PURE__ */ jsx54(A1206, { color });
4078
+ return /* @__PURE__ */ jsx56(A1206, { color });
3926
4079
  case "1210":
3927
- return /* @__PURE__ */ jsx54(A1210, { color });
4080
+ return /* @__PURE__ */ jsx56(A1210, { color });
3928
4081
  case "2010":
3929
- return /* @__PURE__ */ jsx54(A2010, { color });
4082
+ return /* @__PURE__ */ jsx56(A2010, { color });
3930
4083
  case "2512":
3931
- return /* @__PURE__ */ jsx54(A2512, { color });
4084
+ return /* @__PURE__ */ jsx56(A2512, { color });
3932
4085
  }
3933
4086
  return null;
3934
4087
  };
3935
4088
 
3936
4089
  // lib/SOT-23-3P.tsx
3937
- import { Fragment as Fragment49, jsx as jsx55, jsxs as jsxs52 } from "react/jsx-runtime";
4090
+ import { Fragment as Fragment51, jsx as jsx57, jsxs as jsxs54 } from "react/jsx-runtime";
3938
4091
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3939
4092
  const bodyWidth = 1.3;
3940
4093
  const bodyLength10 = 2.9;
@@ -3945,8 +4098,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3945
4098
  const padContactLength = 0.4;
3946
4099
  const padThickness = leadThickness / 2;
3947
4100
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
3948
- return /* @__PURE__ */ jsxs52(Fragment49, { children: [
3949
- /* @__PURE__ */ jsx55(
4101
+ return /* @__PURE__ */ jsxs54(Fragment51, { children: [
4102
+ /* @__PURE__ */ jsx57(
3950
4103
  SmdChipLead,
3951
4104
  {
3952
4105
  rotation: Math.PI,
@@ -3963,7 +4116,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3963
4116
  },
3964
4117
  1
3965
4118
  ),
3966
- /* @__PURE__ */ jsx55(
4119
+ /* @__PURE__ */ jsx57(
3967
4120
  SmdChipLead,
3968
4121
  {
3969
4122
  rotation: Math.PI,
@@ -3980,7 +4133,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3980
4133
  },
3981
4134
  2
3982
4135
  ),
3983
- /* @__PURE__ */ jsx55(
4136
+ /* @__PURE__ */ jsx57(
3984
4137
  SmdChipLead,
3985
4138
  {
3986
4139
  position: {
@@ -3996,7 +4149,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
3996
4149
  },
3997
4150
  3
3998
4151
  ),
3999
- /* @__PURE__ */ jsx55(
4152
+ /* @__PURE__ */ jsx57(
4000
4153
  ChipBody,
4001
4154
  {
4002
4155
  center: { x: 0, y: 0, z: 0 },
@@ -4009,8 +4162,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4009
4162
  };
4010
4163
 
4011
4164
  // lib/SOT-563.tsx
4012
- 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";
4165
+ import { Cuboid as Cuboid36, Translate as Translate24, Rotate as Rotate10, Colorize as Colorize29 } from "jscad-fiber";
4166
+ import { Fragment as Fragment52, jsx as jsx58, jsxs as jsxs55 } from "react/jsx-runtime";
4014
4167
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4015
4168
  const bodyWidth = 1.2;
4016
4169
  const bodyLength10 = 1.6;
@@ -4020,28 +4173,28 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4020
4173
  const leadHeight = 0.13;
4021
4174
  const leadSpacing = 0.5;
4022
4175
  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] }) }) }) }),
4176
+ return /* @__PURE__ */ jsxs55(Fragment52, { children: [
4177
+ /* @__PURE__ */ jsx58(Rotate10, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx58(Translate24, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx58(Colorize29, { color: "grey", children: /* @__PURE__ */ jsx58(Cuboid36, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
4025
4178
  [-1, 0, 1].flatMap((yOffset, index) => [
4026
4179
  // Left lead
4027
- /* @__PURE__ */ jsx56(
4028
- Translate23,
4180
+ /* @__PURE__ */ jsx58(
4181
+ Translate24,
4029
4182
  {
4030
4183
  center: [
4031
4184
  -bodyWidth / 2 - 0.03,
4032
4185
  yOffset * leadSpacing,
4033
4186
  leadHeight / 2
4034
4187
  ],
4035
- children: /* @__PURE__ */ jsx56(Cuboid35, { size: [leadLength, leadWidth, leadHeight] })
4188
+ children: /* @__PURE__ */ jsx58(Cuboid36, { size: [leadLength, leadWidth, leadHeight] })
4036
4189
  },
4037
4190
  `left-${index}`
4038
4191
  ),
4039
4192
  // Right lead
4040
- /* @__PURE__ */ jsx56(
4041
- Translate23,
4193
+ /* @__PURE__ */ jsx58(
4194
+ Translate24,
4042
4195
  {
4043
4196
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
4044
- children: /* @__PURE__ */ jsx56(Cuboid35, { size: [leadLength, leadWidth, leadHeight] })
4197
+ children: /* @__PURE__ */ jsx58(Cuboid36, { size: [leadLength, leadWidth, leadHeight] })
4045
4198
  },
4046
4199
  `right-${index}`
4047
4200
  )
@@ -4050,7 +4203,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4050
4203
  };
4051
4204
 
4052
4205
  // lib/sod-123.tsx
4053
- import { Fragment as Fragment51, jsx as jsx57, jsxs as jsxs54 } from "react/jsx-runtime";
4206
+ import { Fragment as Fragment53, jsx as jsx59, jsxs as jsxs56 } from "react/jsx-runtime";
4054
4207
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4055
4208
  const bodyWidth = 2.9;
4056
4209
  const bodyLength10 = 1.3;
@@ -4061,8 +4214,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4061
4214
  const padContactLength = 0.4;
4062
4215
  const padThickness = leadThickness / 2;
4063
4216
  const bodyDistance = (fullWidth - bodyWidth) / 2;
4064
- return /* @__PURE__ */ jsxs54(Fragment51, { children: [
4065
- /* @__PURE__ */ jsx57(
4217
+ return /* @__PURE__ */ jsxs56(Fragment53, { children: [
4218
+ /* @__PURE__ */ jsx59(
4066
4219
  SmdChipLead,
4067
4220
  {
4068
4221
  position: {
@@ -4078,7 +4231,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4078
4231
  },
4079
4232
  1
4080
4233
  ),
4081
- /* @__PURE__ */ jsx57(
4234
+ /* @__PURE__ */ jsx59(
4082
4235
  SmdChipLead,
4083
4236
  {
4084
4237
  rotation: Math.PI,
@@ -4095,7 +4248,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4095
4248
  },
4096
4249
  2
4097
4250
  ),
4098
- /* @__PURE__ */ jsx57(
4251
+ /* @__PURE__ */ jsx59(
4099
4252
  ChipBody,
4100
4253
  {
4101
4254
  center: { x: 0, y: 0, z: 0 },
@@ -4128,6 +4281,7 @@ export {
4128
4281
  MELF,
4129
4282
  MINIMELF,
4130
4283
  MS012,
4284
+ MS013,
4131
4285
  MSOP,
4132
4286
  MicroMELF,
4133
4287
  PinRow,
@@ -4142,6 +4296,7 @@ export {
4142
4296
  SOD123FL,
4143
4297
  SOD123W,
4144
4298
  SOD128,
4299
+ SOD323,
4145
4300
  SOD523,
4146
4301
  SOD882,
4147
4302
  SOD923,