jscad-electronics 0.0.44 → 0.0.45

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
@@ -385,8 +385,17 @@ var BGA = ({
385
385
  };
386
386
 
387
387
  // lib/ChipBody.tsx
388
- import { Colorize as Colorize2, RoundedCuboid, Translate as Translate3 } from "jscad-fiber";
389
- import { jsx as jsx11 } from "react/jsx-runtime";
388
+ import {
389
+ Colorize as Colorize2,
390
+ Cuboid as Cuboid11,
391
+ Cylinder,
392
+ Hull,
393
+ Rotate as Rotate2,
394
+ Subtract,
395
+ Translate as Translate3,
396
+ Union as Union2
397
+ } from "jscad-fiber";
398
+ import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
390
399
  var ChipBody = ({
391
400
  center,
392
401
  width: width10,
@@ -394,38 +403,60 @@ var ChipBody = ({
394
403
  height: height10,
395
404
  heightAboveSurface: heightAboveSurface2 = 0.15
396
405
  }) => {
397
- return /* @__PURE__ */ jsx11(Colorize2, { color: "#555", children: /* @__PURE__ */ jsx11(Translate3, { offset: center, children: /* @__PURE__ */ jsx11(Translate3, { offset: { x: 0, y: 0, z: height10 / 2 + heightAboveSurface2 }, children: /* @__PURE__ */ jsx11(RoundedCuboid, { roundRadius: 0.2, size: [width10, length, height10] }) }) }) });
406
+ const straightHeight = height10 * 0.5;
407
+ const taperHeight = height10 - straightHeight;
408
+ const taperInset = Math.min(width10, length) * 0.12;
409
+ const faceWidth = Math.max(width10 - taperInset, width10 * 0.75);
410
+ const faceLength = Math.max(length - taperInset, length * 0.75);
411
+ const notchRadius = Math.min(width10, length) * 0.12;
412
+ const notchCenterZ = height10 - notchRadius * 0.6;
413
+ const notchCenterY = length / 2 - notchRadius * 0.25;
414
+ const notchLength = faceLength / 8;
415
+ const notchWidth = height10 / 4;
416
+ return /* @__PURE__ */ jsx11(Colorize2, { color: "#555", children: /* @__PURE__ */ jsx11(Translate3, { offset: center, children: /* @__PURE__ */ jsx11(Translate3, { offset: { x: 0, y: 0, z: heightAboveSurface2 }, children: /* @__PURE__ */ jsxs11(Subtract, { children: [
417
+ /* @__PURE__ */ jsxs11(Union2, { children: [
418
+ /* @__PURE__ */ jsxs11(Hull, { children: [
419
+ /* @__PURE__ */ jsx11(Translate3, { z: 5e-3, children: /* @__PURE__ */ jsx11(Cuboid11, { size: [faceWidth, faceLength, 0.01] }) }),
420
+ /* @__PURE__ */ jsx11(Translate3, { z: straightHeight, children: /* @__PURE__ */ jsx11(Cuboid11, { size: [width10, length, 0.01] }) })
421
+ ] }),
422
+ /* @__PURE__ */ jsxs11(Hull, { children: [
423
+ /* @__PURE__ */ jsx11(Translate3, { z: straightHeight, children: /* @__PURE__ */ jsx11(Cuboid11, { size: [width10, length, 0.01] }) }),
424
+ /* @__PURE__ */ jsx11(Translate3, { z: straightHeight + taperHeight, children: /* @__PURE__ */ jsx11(Cuboid11, { size: [faceWidth, faceLength, 0.01] }) })
425
+ ] })
426
+ ] }),
427
+ /* @__PURE__ */ jsx11(Translate3, { offset: { x: 0, y: notchCenterY, z: height10 }, children: /* @__PURE__ */ jsx11(Rotate2, { rotation: [0, 0, 0], children: /* @__PURE__ */ jsx11(Cylinder, { radius: notchLength, height: notchWidth }) }) })
428
+ ] }) }) }) });
398
429
  };
399
430
 
400
431
  // lib/ExtrudedPads.tsx
401
432
  import { fp as fp2 } from "@tscircuit/footprinter";
402
433
 
403
434
  // lib/FootprintPad.tsx
404
- import { Colorize as Colorize3, Cuboid as Cuboid11, Translate as Translate4 } from "jscad-fiber";
435
+ import { Colorize as Colorize3, Cuboid as Cuboid12, Translate as Translate4 } from "jscad-fiber";
405
436
  import { jsx as jsx12 } from "react/jsx-runtime";
406
437
  var FootprintPad = ({ pad }) => {
407
438
  if (pad.shape === "rect") {
408
- return /* @__PURE__ */ jsx12(Colorize3, { color: [255, 0, 0], children: /* @__PURE__ */ jsx12(Translate4, { offset: [pad.x, pad.y, 0], children: /* @__PURE__ */ jsx12(Cuboid11, { size: [pad.width, pad.height, 0.01] }) }) });
439
+ return /* @__PURE__ */ jsx12(Colorize3, { color: [255, 0, 0], children: /* @__PURE__ */ jsx12(Translate4, { offset: [pad.x, pad.y, 0], children: /* @__PURE__ */ jsx12(Cuboid12, { size: [pad.width, pad.height, 0.01] }) }) });
409
440
  } else {
410
441
  throw new Error("Shape not supported: " + pad.shape);
411
442
  }
412
443
  };
413
444
 
414
445
  // lib/FootprintPlatedHole.tsx
415
- import { Colorize as Colorize4, Translate as Translate5, Cylinder, Subtract } from "jscad-fiber";
416
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
446
+ import { Colorize as Colorize4, Translate as Translate5, Cylinder as Cylinder2, Subtract as Subtract2 } from "jscad-fiber";
447
+ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
417
448
  var FootprintPlatedHole = ({ hole }) => {
418
449
  if (hole.shape === "circle") {
419
- return /* @__PURE__ */ jsx13(Colorize4, { color: "#b87333", children: /* @__PURE__ */ jsx13(Translate5, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs11(Subtract, { children: [
420
- /* @__PURE__ */ jsx13(Cylinder, { radius: hole.outer_diameter / 2, height: 0.01 }),
421
- /* @__PURE__ */ jsx13(Cylinder, { radius: hole.hole_diameter / 2, height: 0.01 })
450
+ return /* @__PURE__ */ jsx13(Colorize4, { color: "#b87333", children: /* @__PURE__ */ jsx13(Translate5, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs12(Subtract2, { children: [
451
+ /* @__PURE__ */ jsx13(Cylinder2, { radius: hole.outer_diameter / 2, height: 0.01 }),
452
+ /* @__PURE__ */ jsx13(Cylinder2, { radius: hole.hole_diameter / 2, height: 0.01 })
422
453
  ] }) }) });
423
454
  }
424
455
  throw new Error("Shape not supported: " + hole.shape);
425
456
  };
426
457
 
427
458
  // lib/ExtrudedPads.tsx
428
- import { Fragment as Fragment11, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
459
+ import { Fragment as Fragment11, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
429
460
  var ExtrudedPads = ({
430
461
  circuitJson,
431
462
  footprint
@@ -435,7 +466,7 @@ var ExtrudedPads = ({
435
466
  }
436
467
  if (!circuitJson)
437
468
  throw new Error("No circuit json or footprint provided to ExtrudedPads");
438
- return /* @__PURE__ */ jsxs12(Fragment11, { children: [
469
+ return /* @__PURE__ */ jsxs13(Fragment11, { children: [
439
470
  circuitJson.filter((s) => s.type === "pcb_smtpad").map((pad, i) => (
440
471
  // biome-ignore lint/suspicious/noArrayIndexKey:
441
472
  /* @__PURE__ */ jsx14(FootprintPad, { pad }, i)
@@ -453,7 +484,7 @@ var ExtrudedPads = ({
453
484
  import { fp as fp3 } from "@tscircuit/footprinter";
454
485
 
455
486
  // lib/DualInlinePackage.tsx
456
- import { Polygon, ExtrudeLinear, Rotate as Rotate2, Translate as Translate6 } from "jscad-fiber";
487
+ import { Polygon, ExtrudeLinear, Rotate as Rotate3, Translate as Translate6 } from "jscad-fiber";
457
488
 
458
489
  // lib/utils/range.ts
459
490
  var range = (end) => Array.from({ length: end }, (_, i) => i);
@@ -518,7 +549,7 @@ function getExpandedStroke(strokeInput, width10) {
518
549
  }
519
550
 
520
551
  // lib/DualInlinePackage.tsx
521
- import { Fragment as Fragment12, jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
552
+ import { Fragment as Fragment12, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
522
553
  var normalizeOnY = (points) => {
523
554
  const minX = Math.min(...points.map((p) => p.x));
524
555
  const maxX = Math.max(...points.map((p) => p.x));
@@ -547,8 +578,8 @@ var DIP_PIN_HEIGHT = 5.47;
547
578
  var heightAboveSurface = 0.5;
548
579
  var DipPinLeg = ({ x, y, z }) => {
549
580
  const isRotated = x > 0;
550
- return /* @__PURE__ */ jsxs13(Fragment12, { children: [
551
- /* @__PURE__ */ jsx15(Translate6, { offset: { x: x + 0.25 / 2, y, z }, children: /* @__PURE__ */ jsx15(Rotate2, { rotation: ["-90deg", 0, "90deg"], children: /* @__PURE__ */ jsx15(ExtrudeLinear, { height: 0.25, children: /* @__PURE__ */ jsx15(Polygon, { points: svgPathPoints.map((p) => [p.x, p.y]) }) }) }) }),
581
+ return /* @__PURE__ */ jsxs14(Fragment12, { children: [
582
+ /* @__PURE__ */ jsx15(Translate6, { offset: { x: x + 0.25 / 2, y, z }, children: /* @__PURE__ */ jsx15(Rotate3, { rotation: ["-90deg", 0, "90deg"], children: /* @__PURE__ */ jsx15(ExtrudeLinear, { height: 0.25, children: /* @__PURE__ */ jsx15(Polygon, { points: svgPathPoints.map((p) => [p.x, p.y]) }) }) }) }),
552
583
  /* @__PURE__ */ jsx15(
553
584
  Translate6,
554
585
  {
@@ -557,7 +588,7 @@ var DipPinLeg = ({ x, y, z }) => {
557
588
  y: y + (isRotated ? 1 : -1),
558
589
  z
559
590
  },
560
- children: /* @__PURE__ */ jsx15(Rotate2, { rotation: ["-90deg", "90deg", isRotated ? "180deg" : "0deg"], children: /* @__PURE__ */ jsx15(ExtrudeLinear, { height: 2, children: /* @__PURE__ */ jsx15(
591
+ children: /* @__PURE__ */ jsx15(Rotate3, { rotation: ["-90deg", "90deg", isRotated ? "180deg" : "0deg"], children: /* @__PURE__ */ jsx15(ExtrudeLinear, { height: 2, children: /* @__PURE__ */ jsx15(
561
592
  Polygon,
562
593
  {
563
594
  points: getExpandedStroke(
@@ -581,7 +612,7 @@ var Dip = ({
581
612
  }) => {
582
613
  const numPinsOnEachSide = Math.floor(numPins / 2);
583
614
  const crossBodyPinWidth = bodyWidth + 1;
584
- return /* @__PURE__ */ jsxs13(Fragment12, { children: [
615
+ return /* @__PURE__ */ jsxs14(Fragment12, { children: [
585
616
  range(numPins).map((i) => {
586
617
  const yRow = i % numPinsOnEachSide;
587
618
  const xRow = (Math.floor(i / numPinsOnEachSide) - 0.5) * 2;
@@ -613,7 +644,7 @@ import {
613
644
  Polygon as Polygon2,
614
645
  ExtrudeLinear as ExtrudeLinear2,
615
646
  Translate as Translate7,
616
- Rotate as Rotate3,
647
+ Rotate as Rotate4,
617
648
  Colorize as Colorize5
618
649
  } from "jscad-fiber";
619
650
  import { jsx as jsx16 } from "react/jsx-runtime";
@@ -642,11 +673,11 @@ var SmdChipLead = (props) => {
642
673
  const N = 15;
643
674
  const points = Array.from({ length: N }).map((_, i) => i / (N - 1) * bodyDistance).map((x) => [x, calculateSCurve(x, props)]);
644
675
  const polygon = getExpandedStroke(points, thickness);
645
- return /* @__PURE__ */ jsx16(Colorize5, { color: "#fff", children: /* @__PURE__ */ jsx16(Translate7, { offset: { z: 0, y: 0, x: 0, ...props.position }, children: /* @__PURE__ */ jsx16(Rotate3, { rotation: ["90deg", 0, rotation ?? 0], children: /* @__PURE__ */ jsx16(Translate7, { offset: { x: 0, y: 0, z: -width10 / 2 }, children: /* @__PURE__ */ jsx16(ExtrudeLinear2, { height: width10, children: /* @__PURE__ */ jsx16(Polygon2, { points: polygon.map((p) => [p.x, p.y]) }) }) }) }) }) });
676
+ return /* @__PURE__ */ jsx16(Colorize5, { color: "#fff", children: /* @__PURE__ */ jsx16(Translate7, { offset: { z: 0, y: 0, x: 0, ...props.position }, children: /* @__PURE__ */ jsx16(Rotate4, { rotation: ["90deg", 0, rotation ?? 0], children: /* @__PURE__ */ jsx16(Translate7, { offset: { x: 0, y: 0, z: -width10 / 2 }, children: /* @__PURE__ */ jsx16(ExtrudeLinear2, { height: width10, children: /* @__PURE__ */ jsx16(Polygon2, { points: polygon.map((p) => [p.x, p.y]) }) }) }) }) }) });
646
677
  };
647
678
 
648
679
  // lib/Tssop.tsx
649
- import { Fragment as Fragment13, jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
680
+ import { Fragment as Fragment13, jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
650
681
  var Tssop = ({
651
682
  pinCount,
652
683
  leadLength,
@@ -658,7 +689,7 @@ var Tssop = ({
658
689
  const fullLength10 = pitch * pinCount / 2 + leadWidth / 2;
659
690
  const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
660
691
  const leadThickness = 0.25;
661
- return /* @__PURE__ */ jsxs14(Fragment13, { children: [
692
+ return /* @__PURE__ */ jsxs15(Fragment13, { children: [
662
693
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx17(
663
694
  SmdChipLead,
664
695
  {
@@ -705,7 +736,7 @@ var Tssop = ({
705
736
  };
706
737
 
707
738
  // lib/qfp.tsx
708
- import { Fragment as Fragment14, jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
739
+ import { Fragment as Fragment14, jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
709
740
  var QFP = ({
710
741
  pinCount,
711
742
  pitch,
@@ -725,7 +756,7 @@ var QFP = ({
725
756
  const leadHeight = 0.8;
726
757
  const leadThickness = 0.15;
727
758
  const bodyDistance = (fullWidth - bodyWidth) / 2;
728
- return /* @__PURE__ */ jsxs15(Fragment14, { children: [
759
+ return /* @__PURE__ */ jsxs16(Fragment14, { children: [
729
760
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx18(
730
761
  SmdChipLead,
731
762
  {
@@ -844,8 +875,8 @@ var getLeadWidth = (pinCount, width10) => {
844
875
  };
845
876
 
846
877
  // lib/PinRow.tsx
847
- import { Cuboid as Cuboid13, Colorize as Colorize6, Hull } from "jscad-fiber";
848
- import { Fragment as Fragment15, jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
878
+ import { Cuboid as Cuboid14, Colorize as Colorize6, Hull as Hull2 } from "jscad-fiber";
879
+ import { Fragment as Fragment15, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
849
880
  var PinRow = ({
850
881
  numberOfPins,
851
882
  pitch = 2.54,
@@ -856,19 +887,19 @@ var PinRow = ({
856
887
  const bodyWidth = numberOfPins * pitch;
857
888
  const shortSidePinLength = 3;
858
889
  const xoff = -((numberOfPins - 1) / 2) * pitch;
859
- return /* @__PURE__ */ jsxs16(Fragment15, { children: [
890
+ return /* @__PURE__ */ jsxs17(Fragment15, { children: [
860
891
  /* @__PURE__ */ jsx19(
861
- Cuboid13,
892
+ Cuboid14,
862
893
  {
863
894
  color: "#222",
864
895
  size: [bodyWidth, pinThickness * 3, bodyHeight],
865
896
  center: [0, 0, bodyHeight / 2]
866
897
  }
867
898
  ),
868
- Array.from({ length: numberOfPins }, (_, i) => /* @__PURE__ */ jsxs16(Fragment15, { children: [
869
- /* @__PURE__ */ jsx19(Colorize6, { color: "gold", children: /* @__PURE__ */ jsxs16(Hull, { children: [
899
+ Array.from({ length: numberOfPins }, (_, i) => /* @__PURE__ */ jsxs17(Fragment15, { children: [
900
+ /* @__PURE__ */ jsx19(Colorize6, { color: "gold", children: /* @__PURE__ */ jsxs17(Hull2, { children: [
870
901
  /* @__PURE__ */ jsx19(
871
- Cuboid13,
902
+ Cuboid14,
872
903
  {
873
904
  color: "gold",
874
905
  size: [pinThickness, pinThickness, shortSidePinLength * 0.9],
@@ -880,7 +911,7 @@ var PinRow = ({
880
911
  }
881
912
  ),
882
913
  /* @__PURE__ */ jsx19(
883
- Cuboid13,
914
+ Cuboid14,
884
915
  {
885
916
  color: "gold",
886
917
  size: [
@@ -892,9 +923,9 @@ var PinRow = ({
892
923
  }
893
924
  )
894
925
  ] }) }),
895
- /* @__PURE__ */ jsx19(Colorize6, { color: "gold", children: /* @__PURE__ */ jsxs16(Hull, { children: [
926
+ /* @__PURE__ */ jsx19(Colorize6, { color: "gold", children: /* @__PURE__ */ jsxs17(Hull2, { children: [
896
927
  /* @__PURE__ */ jsx19(
897
- Cuboid13,
928
+ Cuboid14,
898
929
  {
899
930
  color: "gold",
900
931
  size: [pinThickness, pinThickness, longSidePinLength * 0.9],
@@ -902,7 +933,7 @@ var PinRow = ({
902
933
  }
903
934
  ),
904
935
  /* @__PURE__ */ jsx19(
905
- Cuboid13,
936
+ Cuboid14,
906
937
  {
907
938
  color: "gold",
908
939
  size: [
@@ -919,7 +950,7 @@ var PinRow = ({
919
950
  };
920
951
 
921
952
  // lib/qfn.tsx
922
- import { Cuboid as Cuboid14, Colorize as Colorize7 } from "jscad-fiber";
953
+ import { Cuboid as Cuboid15, Colorize as Colorize7 } from "jscad-fiber";
923
954
 
924
955
  // lib/utils/getQuadCoords.ts
925
956
  var getQuadCoords = (params) => {
@@ -1009,7 +1040,7 @@ var getQuadPinMap = ({
1009
1040
  };
1010
1041
 
1011
1042
  // lib/qfn.tsx
1012
- import { Fragment as Fragment16, jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
1043
+ import { Fragment as Fragment16, jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
1013
1044
  var QFN = ({
1014
1045
  num_pins = 16,
1015
1046
  bodyWidth = 9,
@@ -1051,16 +1082,16 @@ var QFN = ({
1051
1082
  const pn = pin_map[i + 1];
1052
1083
  pinPositions.push({ pn, x, y, pw, pl });
1053
1084
  }
1054
- return /* @__PURE__ */ jsxs17(Fragment16, { children: [
1085
+ return /* @__PURE__ */ jsxs18(Fragment16, { children: [
1055
1086
  /* @__PURE__ */ jsx20(Colorize7, { color: "grey", children: /* @__PURE__ */ jsx20(
1056
- Cuboid14,
1087
+ Cuboid15,
1057
1088
  {
1058
1089
  center: { x: 0, y: 0, z: bodyThickness / 2 },
1059
1090
  size: [bodyWidth, bodyLength10, bodyThickness]
1060
1091
  }
1061
1092
  ) }),
1062
1093
  pinPositions.map((p, i) => /* @__PURE__ */ jsx20(
1063
- Cuboid14,
1094
+ Cuboid15,
1064
1095
  {
1065
1096
  center: { x: p.x, y: p.y, z: thermalPadThickness / 2 },
1066
1097
  size: [p.pw, p.pl, thermalPadThickness]
@@ -1068,7 +1099,7 @@ var QFN = ({
1068
1099
  i
1069
1100
  )),
1070
1101
  thermalPadSize?.length !== void 0 && thermalPadSize?.width !== void 0 && /* @__PURE__ */ jsx20(
1071
- Cuboid14,
1102
+ Cuboid15,
1072
1103
  {
1073
1104
  center: { x: 0, y: 0, z: thermalPadThickness / 2 },
1074
1105
  size: [
@@ -1083,7 +1114,7 @@ var QFN = ({
1083
1114
  var qfn_default = QFN;
1084
1115
 
1085
1116
  // lib/SOT-235.tsx
1086
- import { Fragment as Fragment17, jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
1117
+ import { Fragment as Fragment17, jsx as jsx21, jsxs as jsxs19 } from "react/jsx-runtime";
1087
1118
  var SOT235 = () => {
1088
1119
  const fullWidth = 2.8;
1089
1120
  const bodyWidth = 1.6;
@@ -1095,7 +1126,7 @@ var SOT235 = () => {
1095
1126
  const padContactLength = 0.5;
1096
1127
  const padPitch = 0.95;
1097
1128
  const extendedBodyDistance = fullWidth - bodyWidth;
1098
- return /* @__PURE__ */ jsxs18(Fragment17, { children: [
1129
+ return /* @__PURE__ */ jsxs19(Fragment17, { children: [
1099
1130
  /* @__PURE__ */ jsx21(
1100
1131
  SmdChipLead,
1101
1132
  {
@@ -1192,8 +1223,8 @@ var SOT235 = () => {
1192
1223
  var SOT_235_default = SOT235;
1193
1224
 
1194
1225
  // lib/FemaleHeader.tsx
1195
- import { Cuboid as Cuboid15, Colorize as Colorize8, Hull as Hull2, Subtract as Subtract2, Cylinder as Cylinder3 } from "jscad-fiber";
1196
- import { Fragment as Fragment18, jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
1226
+ import { Cuboid as Cuboid16, Colorize as Colorize8, Hull as Hull3, Subtract as Subtract3, Cylinder as Cylinder4 } from "jscad-fiber";
1227
+ import { Fragment as Fragment18, jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
1197
1228
  var FemaleHeader = ({
1198
1229
  numberOfPins,
1199
1230
  pitch = 2.54,
@@ -1207,9 +1238,9 @@ var FemaleHeader = ({
1207
1238
  const bodyWidth = (numberOfPins - 1) * pitch + outerDiameter + pitch / 2;
1208
1239
  const gapWidth = pinThickness * 1.6;
1209
1240
  const xoff = -((numberOfPins - 1) / 2) * pitch;
1210
- const Body = /* @__PURE__ */ jsx22(Colorize8, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs19(Subtract2, { children: [
1241
+ const Body = /* @__PURE__ */ jsx22(Colorize8, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs20(Subtract3, { children: [
1211
1242
  /* @__PURE__ */ jsx22(
1212
- Cuboid15,
1243
+ Cuboid16,
1213
1244
  {
1214
1245
  color: "#000",
1215
1246
  size: [bodyWidth, bodyDepth, bodyHeight],
@@ -1219,7 +1250,7 @@ var FemaleHeader = ({
1219
1250
  Array.from(
1220
1251
  { length: numberOfPins },
1221
1252
  (_, i) => innerDiameter ? /* @__PURE__ */ jsx22(
1222
- Cylinder3,
1253
+ Cylinder4,
1223
1254
  {
1224
1255
  height: bodyHeight + 0.1,
1225
1256
  radius: innerDiameter / 2,
@@ -1228,7 +1259,7 @@ var FemaleHeader = ({
1228
1259
  },
1229
1260
  i
1230
1261
  ) : /* @__PURE__ */ jsx22(
1231
- Cuboid15,
1262
+ Cuboid16,
1232
1263
  {
1233
1264
  size: [gapWidth, gapWidth, bodyHeight],
1234
1265
  center: [xoff + i * pitch, 0, bodyHeight / 2]
@@ -1237,12 +1268,12 @@ var FemaleHeader = ({
1237
1268
  )
1238
1269
  )
1239
1270
  ] }) });
1240
- return /* @__PURE__ */ jsxs19(Fragment18, { children: [
1271
+ return /* @__PURE__ */ jsxs20(Fragment18, { children: [
1241
1272
  Body,
1242
- Array.from({ length: numberOfPins }, (_, i) => /* @__PURE__ */ jsxs19(Colorize8, { color: "silver", children: [
1243
- /* @__PURE__ */ jsxs19(Hull2, { children: [
1273
+ Array.from({ length: numberOfPins }, (_, i) => /* @__PURE__ */ jsxs20(Colorize8, { color: "silver", children: [
1274
+ /* @__PURE__ */ jsxs20(Hull3, { children: [
1244
1275
  /* @__PURE__ */ jsx22(
1245
- Cuboid15,
1276
+ Cuboid16,
1246
1277
  {
1247
1278
  color: "silver",
1248
1279
  size: [pinThickness, pinThickness, legsLength * 0.9],
@@ -1250,7 +1281,7 @@ var FemaleHeader = ({
1250
1281
  }
1251
1282
  ),
1252
1283
  /* @__PURE__ */ jsx22(
1253
- Cuboid15,
1284
+ Cuboid16,
1254
1285
  {
1255
1286
  color: "silver",
1256
1287
  size: [pinThickness / 1.8, pinThickness / 1.8, legsLength],
@@ -1259,7 +1290,7 @@ var FemaleHeader = ({
1259
1290
  )
1260
1291
  ] }),
1261
1292
  /* @__PURE__ */ jsx22(
1262
- Cuboid15,
1293
+ Cuboid16,
1263
1294
  {
1264
1295
  color: "silver",
1265
1296
  size: [gapWidth, gapWidth, gapWidth * 0.5],
@@ -1273,14 +1304,14 @@ var FemaleHeader = ({
1273
1304
  // lib/PushButton.tsx
1274
1305
  import {
1275
1306
  Colorize as Colorize9,
1276
- Cylinder as Cylinder4,
1307
+ Cylinder as Cylinder5,
1277
1308
  ExtrudeLinear as ExtrudeLinear3,
1278
1309
  Polygon as Polygon3,
1279
- Rotate as Rotate4,
1280
- RoundedCuboid as RoundedCuboid2,
1310
+ Rotate as Rotate5,
1311
+ RoundedCuboid,
1281
1312
  Translate as Translate8
1282
1313
  } from "jscad-fiber";
1283
- import { Fragment as Fragment19, jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
1314
+ import { Fragment as Fragment19, jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
1284
1315
  var PushButton = ({
1285
1316
  width: width10,
1286
1317
  length,
@@ -1290,9 +1321,9 @@ var PushButton = ({
1290
1321
  const bodyLength10 = length;
1291
1322
  const bodyHeight = width10 * 0.7;
1292
1323
  const legWidth = innerDiameter / 2.5;
1293
- return /* @__PURE__ */ jsxs20(Fragment19, { children: [
1324
+ return /* @__PURE__ */ jsxs21(Fragment19, { children: [
1294
1325
  /* @__PURE__ */ jsx23(
1295
- RoundedCuboid2,
1326
+ RoundedCuboid,
1296
1327
  {
1297
1328
  color: "#1a1a1f",
1298
1329
  center: [0, 0, bodyHeight / 2],
@@ -1301,7 +1332,7 @@ var PushButton = ({
1301
1332
  }
1302
1333
  ),
1303
1334
  /* @__PURE__ */ jsx23(
1304
- RoundedCuboid2,
1335
+ RoundedCuboid,
1305
1336
  {
1306
1337
  color: "#f2f2f2",
1307
1338
  center: [0, 0, bodyHeight + bodyHeight * 0.1 / 2.5],
@@ -1310,7 +1341,7 @@ var PushButton = ({
1310
1341
  }
1311
1342
  ),
1312
1343
  /* @__PURE__ */ jsx23(
1313
- Cylinder4,
1344
+ Cylinder5,
1314
1345
  {
1315
1346
  color: "#1a1a1f",
1316
1347
  height: bodyHeight * 0.8,
@@ -1319,7 +1350,7 @@ var PushButton = ({
1319
1350
  }
1320
1351
  ),
1321
1352
  /* @__PURE__ */ jsx23(
1322
- Cylinder4,
1353
+ Cylinder5,
1323
1354
  {
1324
1355
  color: "#1a1a1f",
1325
1356
  height: bodyHeight * 0.2,
@@ -1332,7 +1363,7 @@ var PushButton = ({
1332
1363
  }
1333
1364
  ),
1334
1365
  /* @__PURE__ */ jsx23(
1335
- Cylinder4,
1366
+ Cylinder5,
1336
1367
  {
1337
1368
  color: "#1a1a1f",
1338
1369
  height: bodyHeight * 0.2,
@@ -1345,7 +1376,7 @@ var PushButton = ({
1345
1376
  }
1346
1377
  ),
1347
1378
  /* @__PURE__ */ jsx23(
1348
- Cylinder4,
1379
+ Cylinder5,
1349
1380
  {
1350
1381
  color: "#1a1a1f",
1351
1382
  height: bodyHeight * 0.2,
@@ -1358,7 +1389,7 @@ var PushButton = ({
1358
1389
  }
1359
1390
  ),
1360
1391
  /* @__PURE__ */ jsx23(
1361
- Cylinder4,
1392
+ Cylinder5,
1362
1393
  {
1363
1394
  color: "#1a1a1f",
1364
1395
  height: bodyHeight * 0.2,
@@ -1450,13 +1481,13 @@ var PushButtonLeg = (props) => {
1450
1481
  y: position?.y || 0,
1451
1482
  z: position?.z || 0
1452
1483
  },
1453
- children: /* @__PURE__ */ jsx23(Rotate4, { rotation: [0, 55, rotation], children: /* @__PURE__ */ jsx23(ExtrudeLinear3, { height: width10, children: /* @__PURE__ */ jsx23(Polygon3, { points: polygon.map((p) => [p.y, p.x]) }) }) })
1484
+ children: /* @__PURE__ */ jsx23(Rotate5, { rotation: [0, 55, rotation], children: /* @__PURE__ */ jsx23(ExtrudeLinear3, { height: width10, children: /* @__PURE__ */ jsx23(Polygon3, { points: polygon.map((p) => [p.y, p.x]) }) }) })
1454
1485
  }
1455
1486
  ) });
1456
1487
  };
1457
1488
 
1458
1489
  // lib/SOIC.tsx
1459
- import { Fragment as Fragment20, jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
1490
+ import { Fragment as Fragment20, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
1460
1491
  var SOIC = ({
1461
1492
  pinCount,
1462
1493
  leadLength,
@@ -1472,7 +1503,7 @@ var SOIC = ({
1472
1503
  const leadBodyOffset = leadLength * 0;
1473
1504
  const fullLength10 = pitch * (sidePinCount - 1) + leadWidth + 0.2;
1474
1505
  const bodyWidthAdjusted = bodyWidth * 0.55;
1475
- return /* @__PURE__ */ jsxs21(Fragment20, { children: [
1506
+ return /* @__PURE__ */ jsxs22(Fragment20, { children: [
1476
1507
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx24(
1477
1508
  SmdChipLead,
1478
1509
  {
@@ -1519,7 +1550,7 @@ var SOIC = ({
1519
1550
  };
1520
1551
 
1521
1552
  // lib/VSSOP.tsx
1522
- import { Fragment as Fragment21, jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
1553
+ import { Fragment as Fragment21, jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
1523
1554
  var VSSOP = ({
1524
1555
  pinCount,
1525
1556
  pitch,
@@ -1549,7 +1580,7 @@ var VSSOP = ({
1549
1580
  const componentFullWidth = 4.5;
1550
1581
  const leadBodyDistance = (componentFullWidth - _bodyWidth) / 2;
1551
1582
  const padContactLength = leadBodyDistance * 0.5;
1552
- return /* @__PURE__ */ jsxs22(Fragment21, { children: [
1583
+ return /* @__PURE__ */ jsxs23(Fragment21, { children: [
1553
1584
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx25(
1554
1585
  SmdChipLead,
1555
1586
  {
@@ -1596,8 +1627,8 @@ var VSSOP = ({
1596
1627
  };
1597
1628
 
1598
1629
  // lib/SOD523.tsx
1599
- import { Colorize as Colorize10, Cuboid as Cuboid17, Hull as Hull3, Translate as Translate9, Union as Union4 } from "jscad-fiber";
1600
- import { Fragment as Fragment22, jsx as jsx26, jsxs as jsxs23 } from "react/jsx-runtime";
1630
+ import { Colorize as Colorize10, Cuboid as Cuboid18, Hull as Hull4, Translate as Translate9, Union as Union5 } from "jscad-fiber";
1631
+ import { Fragment as Fragment22, jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
1601
1632
  var SOD523 = () => {
1602
1633
  const fullWidth = 2.15;
1603
1634
  const bodyLength10 = 0.8;
@@ -1610,21 +1641,21 @@ var SOD523 = () => {
1610
1641
  const rightPadCenterX = bodyWidth / 2 - padLength / 2 + 0.15;
1611
1642
  const taperOffset = 0.2;
1612
1643
  const straightHeight = bodyHeight * 0.5;
1613
- const Body = /* @__PURE__ */ jsx26(Colorize10, { color: "#222", children: /* @__PURE__ */ jsxs23(Union4, { children: [
1614
- /* @__PURE__ */ jsx26(Translate9, { z: straightHeight / 2, children: /* @__PURE__ */ jsx26(Cuboid17, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
1615
- /* @__PURE__ */ jsxs23(Hull3, { children: [
1616
- /* @__PURE__ */ jsx26(Translate9, { z: straightHeight, children: /* @__PURE__ */ jsx26(Cuboid17, { size: [bodyWidth, bodyLength10, 0.01] }) }),
1644
+ const Body = /* @__PURE__ */ jsx26(Colorize10, { color: "#222", children: /* @__PURE__ */ jsxs24(Union5, { children: [
1645
+ /* @__PURE__ */ jsx26(Translate9, { z: straightHeight / 2, children: /* @__PURE__ */ jsx26(Cuboid18, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
1646
+ /* @__PURE__ */ jsxs24(Hull4, { children: [
1647
+ /* @__PURE__ */ jsx26(Translate9, { z: straightHeight, children: /* @__PURE__ */ jsx26(Cuboid18, { size: [bodyWidth, bodyLength10, 0.01] }) }),
1617
1648
  /* @__PURE__ */ jsx26(Translate9, { z: bodyHeight, children: /* @__PURE__ */ jsx26(
1618
- Cuboid17,
1649
+ Cuboid18,
1619
1650
  {
1620
1651
  size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
1621
1652
  }
1622
1653
  ) })
1623
1654
  ] })
1624
1655
  ] }) });
1625
- return /* @__PURE__ */ jsxs23(Fragment22, { children: [
1656
+ return /* @__PURE__ */ jsxs24(Fragment22, { children: [
1626
1657
  /* @__PURE__ */ jsx26(
1627
- Cuboid17,
1658
+ Cuboid18,
1628
1659
  {
1629
1660
  color: "#ccc",
1630
1661
  size: [padLength, padWidth, padThickness],
@@ -1632,7 +1663,7 @@ var SOD523 = () => {
1632
1663
  }
1633
1664
  ),
1634
1665
  /* @__PURE__ */ jsx26(
1635
- Cuboid17,
1666
+ Cuboid18,
1636
1667
  {
1637
1668
  color: "#ccc",
1638
1669
  size: [padLength, padWidth, padThickness],
@@ -1776,7 +1807,7 @@ var Footprinter3d = ({ footprint }) => {
1776
1807
  };
1777
1808
 
1778
1809
  // lib/SOT-23-3P.tsx
1779
- import { Fragment as Fragment23, jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
1810
+ import { Fragment as Fragment23, jsx as jsx28, jsxs as jsxs25 } from "react/jsx-runtime";
1780
1811
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
1781
1812
  const bodyWidth = 1.3;
1782
1813
  const bodyLength10 = 2.9;
@@ -1787,7 +1818,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
1787
1818
  const padContactLength = 0.4;
1788
1819
  const padThickness = leadThickness / 2;
1789
1820
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
1790
- return /* @__PURE__ */ jsxs24(Fragment23, { children: [
1821
+ return /* @__PURE__ */ jsxs25(Fragment23, { children: [
1791
1822
  /* @__PURE__ */ jsx28(
1792
1823
  SmdChipLead,
1793
1824
  {
@@ -1851,8 +1882,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
1851
1882
  };
1852
1883
 
1853
1884
  // lib/SOT-563.tsx
1854
- import { Cuboid as Cuboid18, Translate as Translate10, Rotate as Rotate5, Colorize as Colorize11 } from "jscad-fiber";
1855
- import { Fragment as Fragment24, jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
1885
+ import { Cuboid as Cuboid19, Translate as Translate10, Rotate as Rotate6, Colorize as Colorize11 } from "jscad-fiber";
1886
+ import { Fragment as Fragment24, jsx as jsx29, jsxs as jsxs26 } from "react/jsx-runtime";
1856
1887
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
1857
1888
  const bodyWidth = 1.2;
1858
1889
  const bodyLength10 = 1.6;
@@ -1862,15 +1893,15 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
1862
1893
  const leadHeight = 0.13;
1863
1894
  const leadSpacing = 0.5;
1864
1895
  const bodyZOffset = -0.3;
1865
- return /* @__PURE__ */ jsxs25(Fragment24, { children: [
1866
- /* @__PURE__ */ jsx29(Rotate5, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx29(Translate10, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx29(Colorize11, { color: "grey", children: /* @__PURE__ */ jsx29(Cuboid18, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
1896
+ return /* @__PURE__ */ jsxs26(Fragment24, { children: [
1897
+ /* @__PURE__ */ jsx29(Rotate6, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx29(Translate10, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx29(Colorize11, { color: "grey", children: /* @__PURE__ */ jsx29(Cuboid19, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
1867
1898
  [-1, 0, 1].flatMap((yOffset, index) => [
1868
1899
  // Left lead
1869
1900
  /* @__PURE__ */ jsx29(
1870
1901
  Translate10,
1871
1902
  {
1872
1903
  center: [-bodyWidth / 2 - 0.03, yOffset * leadSpacing, 0],
1873
- children: /* @__PURE__ */ jsx29(Cuboid18, { size: [leadLength, leadWidth, leadHeight] })
1904
+ children: /* @__PURE__ */ jsx29(Cuboid19, { size: [leadLength, leadWidth, leadHeight] })
1874
1905
  },
1875
1906
  `left-${index}`
1876
1907
  ),
@@ -1879,7 +1910,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
1879
1910
  Translate10,
1880
1911
  {
1881
1912
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, 0],
1882
- children: /* @__PURE__ */ jsx29(Cuboid18, { size: [leadLength, leadWidth, leadHeight] })
1913
+ children: /* @__PURE__ */ jsx29(Cuboid19, { size: [leadLength, leadWidth, leadHeight] })
1883
1914
  },
1884
1915
  `right-${index}`
1885
1916
  )
@@ -1888,8 +1919,8 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
1888
1919
  };
1889
1920
 
1890
1921
  // lib/SOT-723.tsx
1891
- import { Cuboid as Cuboid19, Translate as Translate11, Rotate as Rotate6, Colorize as Colorize12 } from "jscad-fiber";
1892
- import { Fragment as Fragment25, jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
1922
+ import { Cuboid as Cuboid20, Translate as Translate11, Rotate as Rotate7, Colorize as Colorize12 } from "jscad-fiber";
1923
+ import { Fragment as Fragment25, jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
1893
1924
  var getCcwSot723Coords = (pn) => {
1894
1925
  if (pn === 1) {
1895
1926
  return { x: 0, y: 0 };
@@ -1907,12 +1938,12 @@ var SOT723 = () => {
1907
1938
  const leadLength = 0.3;
1908
1939
  const leadHeight = 0.1;
1909
1940
  const centerLeadWidth = 0.42;
1910
- return /* @__PURE__ */ jsxs26(Fragment25, { children: [
1911
- /* @__PURE__ */ jsx30(Rotate6, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx30(Translate11, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ jsx30(Colorize12, { color: "grey", children: /* @__PURE__ */ jsx30(Cuboid19, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
1941
+ return /* @__PURE__ */ jsxs27(Fragment25, { children: [
1942
+ /* @__PURE__ */ jsx30(Rotate7, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx30(Translate11, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ jsx30(Colorize12, { color: "grey", children: /* @__PURE__ */ jsx30(Cuboid20, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
1912
1943
  [1, 2, 3].map((pn) => {
1913
1944
  const { x, y } = getCcwSot723Coords(pn);
1914
1945
  return /* @__PURE__ */ jsx30(Translate11, { center: [x, y, 0], children: /* @__PURE__ */ jsx30(
1915
- Cuboid19,
1946
+ Cuboid20,
1916
1947
  {
1917
1948
  size: [
1918
1949
  leadLength,
@@ -1926,7 +1957,7 @@ var SOT723 = () => {
1926
1957
  };
1927
1958
 
1928
1959
  // lib/sod-123.tsx
1929
- import { Fragment as Fragment26, jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
1960
+ import { Fragment as Fragment26, jsx as jsx31, jsxs as jsxs28 } from "react/jsx-runtime";
1930
1961
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
1931
1962
  const bodyWidth = 2.9;
1932
1963
  const bodyLength10 = 1.3;
@@ -1937,7 +1968,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
1937
1968
  const padContactLength = 0.4;
1938
1969
  const padThickness = leadThickness / 2;
1939
1970
  const bodyDistance = (fullWidth - bodyWidth) / 2;
1940
- return /* @__PURE__ */ jsxs27(Fragment26, { children: [
1971
+ return /* @__PURE__ */ jsxs28(Fragment26, { children: [
1941
1972
  /* @__PURE__ */ jsx31(
1942
1973
  SmdChipLead,
1943
1974
  {