jscad-electronics 0.0.171 → 0.0.172

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
@@ -775,7 +775,7 @@ var ExtrudedPads = ({
775
775
  // lib/Footprinter3d.tsx
776
776
  import { fp as fp10 } from "@tscircuit/footprinter";
777
777
  import { mp } from "@tscircuit/modelprinter";
778
- import { Rotate as Rotate24, Translate as Translate42 } from "jscad-fiber";
778
+ import { Rotate as Rotate24, Translate as Translate43 } from "jscad-fiber";
779
779
 
780
780
  // lib/DualInlinePackage.tsx
781
781
  import { Polygon as Polygon3, ExtrudeLinear as ExtrudeLinear3, Rotate as Rotate4, Translate as Translate6 } from "jscad-fiber";
@@ -940,135 +940,17 @@ var Dip = ({
940
940
  ] });
941
941
  };
942
942
 
943
- // lib/SmdChipLead.tsx
944
- import {
945
- Polygon as Polygon4,
946
- ExtrudeLinear as ExtrudeLinear4,
947
- Translate as Translate7,
948
- Rotate as Rotate5,
949
- Colorize as Colorize6
950
- } from "jscad-fiber";
951
- import { jsx as jsx17 } from "react/jsx-runtime";
952
- function calculateSCurve(x, {
953
- height: height10,
954
- padContactLength,
955
- curveLength,
956
- bodyDistance,
957
- steepness = 10
958
- }) {
959
- if (!curveLength) curveLength = bodyDistance * 0.3;
960
- let flatFromBodySectionLength = bodyDistance - padContactLength - curveLength;
961
- if (flatFromBodySectionLength < 0) {
962
- curveLength += flatFromBodySectionLength;
963
- flatFromBodySectionLength = 0;
964
- }
965
- const curveStart = padContactLength * 0.75;
966
- const curveEnd = padContactLength + curveLength + (bodyDistance - padContactLength - curveLength) * 0.25;
967
- if (x <= curveStart) return 0;
968
- if (x >= curveEnd) return height10;
969
- const t = (x - curveStart) / (curveEnd - curveStart);
970
- return height10 / (1 + Math.exp(-steepness * (t - 0.5)));
971
- }
972
- var SmdChipLead = (props) => {
973
- const { thickness, width: width10, padContactLength, bodyDistance, height: height10, rotation } = props;
974
- const N = 15;
975
- const points = Array.from({ length: N }).map((_, i) => i / (N - 1) * bodyDistance).map((x) => [x, calculateSCurve(x, props)]);
976
- const polygon = getExpandedStroke(points, thickness);
977
- return /* @__PURE__ */ jsx17(Colorize6, { color: "#fff", children: /* @__PURE__ */ jsx17(Translate7, { offset: { z: 0, y: 0, x: 0, ...props.position }, children: /* @__PURE__ */ jsx17(Rotate5, { rotation: ["90deg", 0, rotation ?? 0], children: /* @__PURE__ */ jsx17(Translate7, { offset: { x: 0, y: 0, z: -width10 / 2 }, children: /* @__PURE__ */ jsx17(ExtrudeLinear4, { height: width10, children: /* @__PURE__ */ jsx17(Polygon4, { points: polygon.map((p) => [p.x, p.y]) }) }) }) }) }) });
978
- };
979
-
980
- // lib/Tssop.tsx
981
- import { Fragment as Fragment14, jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
982
- var Tssop = ({
983
- pinCount,
984
- leadLength,
985
- leadWidth,
986
- pitch,
987
- bodyWidth
988
- }) => {
989
- const sidePinCount = Math.ceil(pinCount / 2);
990
- const isSmallTssop = sidePinCount <= 4;
991
- const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
992
- const bodyLength10 = pitch * Math.max(sidePinCount - 1, 0) + (isSmallTssop ? 1.5 : 1.15);
993
- const bodyVisualWidth = bodyWidth - (isSmallTssop ? 0.66 : 0.58);
994
- const leadThickness = 0.15;
995
- const leadHeight = 0.8;
996
- const bodyHeight = 1.22;
997
- const bodyStandoff = 0.24;
998
- const padContactLength = leadLength * 0.5;
999
- const leadReach = padContactLength + Math.max(0.22, Math.min(0.4, leadLength * 0.65));
1000
- const leadStartOffset = bodyWidth / 2 + leadLength / 2;
1001
- const curveLength = leadReach * 0.1;
1002
- const notchInset = Math.min(Math.min(bodyVisualWidth, bodyLength10) * 0.18, 1);
1003
- const notchRadius = Math.min(
1004
- Math.min(bodyVisualWidth, bodyLength10) * 0.12,
1005
- 0.45
1006
- );
1007
- return /* @__PURE__ */ jsxs16(Fragment14, { children: [
1008
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx18(
1009
- SmdChipLead,
1010
- {
1011
- position: {
1012
- x: -leadStartOffset,
1013
- y: i * pitch - pinOffsetToCenter,
1014
- z: leadThickness / 2
1015
- },
1016
- width: leadWidth,
1017
- thickness: leadThickness,
1018
- padContactLength,
1019
- bodyDistance: leadReach,
1020
- curveLength,
1021
- height: leadHeight
1022
- },
1023
- `left-${i}`
1024
- )),
1025
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx18(
1026
- SmdChipLead,
1027
- {
1028
- rotation: Math.PI,
1029
- position: {
1030
- x: leadStartOffset,
1031
- y: i * pitch - pinOffsetToCenter,
1032
- z: leadThickness / 2
1033
- },
1034
- width: leadWidth,
1035
- thickness: leadThickness,
1036
- padContactLength,
1037
- bodyDistance: leadReach,
1038
- curveLength,
1039
- height: leadHeight
1040
- },
1041
- `right-${i}`
1042
- )),
1043
- /* @__PURE__ */ jsx18(
1044
- ChipBody,
1045
- {
1046
- center: { x: 0, y: 0, z: 0 },
1047
- width: bodyVisualWidth,
1048
- length: bodyLength10,
1049
- height: bodyHeight,
1050
- notchPosition: {
1051
- x: -(bodyVisualWidth / 2 - notchInset - 0.2),
1052
- y: bodyLength10 / 2 - notchInset - 0.2,
1053
- z: bodyHeight
1054
- },
1055
- notchRadius
1056
- }
1057
- )
1058
- ] });
1059
- };
1060
-
1061
943
  // lib/utils/DualRowGullWing.tsx
1062
944
  import {
1063
- Colorize as Colorize7,
945
+ Colorize as Colorize6,
1064
946
  Cuboid as Cuboid14,
1065
947
  Cylinder as Cylinder5,
1066
948
  Hull as Hull4,
1067
949
  Subtract as Subtract3,
1068
- Translate as Translate8,
950
+ Translate as Translate7,
1069
951
  Union as Union4
1070
952
  } from "jscad-fiber";
1071
- import { Fragment as Fragment15, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
953
+ import { Fragment as Fragment14, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
1072
954
  function createDualRowGullWing(p) {
1073
955
  const {
1074
956
  pinCount,
@@ -1116,8 +998,8 @@ function createDualRowGullWing(p) {
1116
998
  throw new Error("Exposed pad must fit inside the bottom mold face");
1117
999
  const midZ = standoff + moldHeight / 2;
1118
1000
  const slice = Math.min(2e-3, moldHeight / 100);
1119
- const body = /* @__PURE__ */ jsxs17(Hull4, { children: [
1120
- /* @__PURE__ */ jsx19(Translate8, { z: standoff + slice / 2, children: /* @__PURE__ */ jsx19(
1001
+ const body = /* @__PURE__ */ jsxs16(Hull4, { children: [
1002
+ /* @__PURE__ */ jsx17(Translate7, { z: standoff + slice / 2, children: /* @__PURE__ */ jsx17(
1121
1003
  Cuboid14,
1122
1004
  {
1123
1005
  size: [
@@ -1127,8 +1009,8 @@ function createDualRowGullWing(p) {
1127
1009
  ]
1128
1010
  }
1129
1011
  ) }),
1130
- /* @__PURE__ */ jsx19(Translate8, { z: midZ, children: /* @__PURE__ */ jsx19(Cuboid14, { size: [bodyWidth, bodyLength10, slice] }) }),
1131
- /* @__PURE__ */ jsx19(Translate8, { z: bodyHeight - slice / 2, children: /* @__PURE__ */ jsx19(
1012
+ /* @__PURE__ */ jsx17(Translate7, { z: midZ, children: /* @__PURE__ */ jsx17(Cuboid14, { size: [bodyWidth, bodyLength10, slice] }) }),
1013
+ /* @__PURE__ */ jsx17(Translate7, { z: bodyHeight - slice / 2, children: /* @__PURE__ */ jsx17(
1132
1014
  Cuboid14,
1133
1015
  {
1134
1016
  size: [
@@ -1158,35 +1040,35 @@ function createDualRowGullWing(p) {
1158
1040
  ]);
1159
1041
  }
1160
1042
  points.push([root, midZ]);
1161
- const section = ([x, z]) => /* @__PURE__ */ jsx19(Translate8, { offset: { x: side * x, y, z }, children: /* @__PURE__ */ jsx19(Cuboid14, { size: [slice, leadWidth, leadThickness] }) });
1162
- return /* @__PURE__ */ jsx19(Union4, { children: points.slice(1).map((point, i) => /* @__PURE__ */ jsxs17(Hull4, { children: [
1043
+ const section = ([x, z]) => /* @__PURE__ */ jsx17(Translate7, { offset: { x: side * x, y, z }, children: /* @__PURE__ */ jsx17(Cuboid14, { size: [slice, leadWidth, leadThickness] }) });
1044
+ return /* @__PURE__ */ jsx17(Union4, { children: points.slice(1).map((point, i) => /* @__PURE__ */ jsxs16(Hull4, { children: [
1163
1045
  section(points[i]),
1164
1046
  section(point)
1165
1047
  ] }, i)) });
1166
1048
  };
1167
- return /* @__PURE__ */ jsxs17(Fragment15, { children: [
1168
- /* @__PURE__ */ jsx19(Colorize7, { color: "#353535", children: /* @__PURE__ */ jsxs17(Subtract3, { children: [
1049
+ return /* @__PURE__ */ jsxs16(Fragment14, { children: [
1050
+ /* @__PURE__ */ jsx17(Colorize6, { color: "#353535", children: /* @__PURE__ */ jsxs16(Subtract3, { children: [
1169
1051
  body,
1170
- /* @__PURE__ */ jsx19(
1171
- Translate8,
1052
+ /* @__PURE__ */ jsx17(
1053
+ Translate7,
1172
1054
  {
1173
1055
  offset: {
1174
1056
  x: -bodyWidth / 2 + taperInset + dimpleRadius * 2,
1175
1057
  y: bodyLength10 / 2 - taperInset - dimpleRadius * 2,
1176
1058
  z: bodyHeight
1177
1059
  },
1178
- children: /* @__PURE__ */ jsx19(Cylinder5, { radius: dimpleRadius, height: dimpleDepth * 2 })
1060
+ children: /* @__PURE__ */ jsx17(Cylinder5, { radius: dimpleRadius, height: dimpleDepth * 2 })
1179
1061
  }
1180
1062
  )
1181
1063
  ] }) }),
1182
- /* @__PURE__ */ jsx19(Colorize7, { color: "#bfc1c4", children: Array.from(
1064
+ /* @__PURE__ */ jsx17(Colorize6, { color: "#bfc1c4", children: Array.from(
1183
1065
  { length: pinCount },
1184
1066
  (_, i) => lead(
1185
1067
  i < pinCount / 2 ? -1 : 1,
1186
1068
  ((pinCount / 2 - 1) / 2 - i % (pinCount / 2)) * pitch
1187
1069
  )
1188
1070
  ) }),
1189
- exposedPadWidth > 0 && /* @__PURE__ */ jsx19(Colorize7, { color: "#bfc1c4", children: /* @__PURE__ */ jsx19(Translate8, { z: (standoff + leadThickness) / 2, children: /* @__PURE__ */ jsx19(
1071
+ exposedPadWidth > 0 && /* @__PURE__ */ jsx17(Colorize6, { color: "#bfc1c4", children: /* @__PURE__ */ jsx17(Translate7, { z: (standoff + leadThickness) / 2, children: /* @__PURE__ */ jsx17(
1190
1072
  Cuboid14,
1191
1073
  {
1192
1074
  size: [
@@ -1199,6 +1081,125 @@ function createDualRowGullWing(p) {
1199
1081
  ] });
1200
1082
  }
1201
1083
 
1084
+ // lib/SmdChipLead.tsx
1085
+ import {
1086
+ Polygon as Polygon4,
1087
+ ExtrudeLinear as ExtrudeLinear4,
1088
+ Translate as Translate8,
1089
+ Rotate as Rotate5,
1090
+ Colorize as Colorize7
1091
+ } from "jscad-fiber";
1092
+ import { jsx as jsx18 } from "react/jsx-runtime";
1093
+ function calculateSCurve(x, {
1094
+ height: height10,
1095
+ padContactLength,
1096
+ curveLength,
1097
+ bodyDistance,
1098
+ steepness = 10
1099
+ }) {
1100
+ if (!curveLength) curveLength = bodyDistance * 0.3;
1101
+ let flatFromBodySectionLength = bodyDistance - padContactLength - curveLength;
1102
+ if (flatFromBodySectionLength < 0) {
1103
+ curveLength += flatFromBodySectionLength;
1104
+ flatFromBodySectionLength = 0;
1105
+ }
1106
+ const curveStart = padContactLength * 0.75;
1107
+ const curveEnd = padContactLength + curveLength + (bodyDistance - padContactLength - curveLength) * 0.25;
1108
+ if (x <= curveStart) return 0;
1109
+ if (x >= curveEnd) return height10;
1110
+ const t = (x - curveStart) / (curveEnd - curveStart);
1111
+ return height10 / (1 + Math.exp(-steepness * (t - 0.5)));
1112
+ }
1113
+ var SmdChipLead = (props) => {
1114
+ const { thickness, width: width10, padContactLength, bodyDistance, height: height10, rotation } = props;
1115
+ const N = 15;
1116
+ const points = Array.from({ length: N }).map((_, i) => i / (N - 1) * bodyDistance).map((x) => [x, calculateSCurve(x, props)]);
1117
+ const polygon = getExpandedStroke(points, thickness);
1118
+ return /* @__PURE__ */ jsx18(Colorize7, { color: "#fff", children: /* @__PURE__ */ jsx18(Translate8, { offset: { z: 0, y: 0, x: 0, ...props.position }, children: /* @__PURE__ */ jsx18(Rotate5, { rotation: ["90deg", 0, rotation ?? 0], children: /* @__PURE__ */ jsx18(Translate8, { offset: { x: 0, y: 0, z: -width10 / 2 }, children: /* @__PURE__ */ jsx18(ExtrudeLinear4, { height: width10, children: /* @__PURE__ */ jsx18(Polygon4, { points: polygon.map((p) => [p.x, p.y]) }) }) }) }) }) });
1119
+ };
1120
+
1121
+ // lib/Tssop.tsx
1122
+ import { Fragment as Fragment15, jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
1123
+ var LegacyTssop = ({
1124
+ pinCount,
1125
+ leadLength,
1126
+ leadWidth,
1127
+ pitch,
1128
+ bodyWidth
1129
+ }) => {
1130
+ const sidePinCount = Math.ceil(pinCount / 2);
1131
+ const isSmallTssop = sidePinCount <= 4;
1132
+ const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
1133
+ const bodyLength10 = pitch * Math.max(sidePinCount - 1, 0) + (isSmallTssop ? 1.5 : 1.15);
1134
+ const bodyVisualWidth = bodyWidth - (isSmallTssop ? 0.66 : 0.58);
1135
+ const leadThickness = 0.15;
1136
+ const leadHeight = 0.8;
1137
+ const bodyHeight = 1.22;
1138
+ const bodyStandoff = 0.24;
1139
+ const padContactLength = leadLength * 0.5;
1140
+ const leadReach = padContactLength + Math.max(0.22, Math.min(0.4, leadLength * 0.65));
1141
+ const leadStartOffset = bodyWidth / 2 + leadLength / 2;
1142
+ const curveLength = leadReach * 0.1;
1143
+ const notchInset = Math.min(Math.min(bodyVisualWidth, bodyLength10) * 0.18, 1);
1144
+ const notchRadius = Math.min(
1145
+ Math.min(bodyVisualWidth, bodyLength10) * 0.12,
1146
+ 0.45
1147
+ );
1148
+ return /* @__PURE__ */ jsxs17(Fragment15, { children: [
1149
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx19(
1150
+ SmdChipLead,
1151
+ {
1152
+ position: {
1153
+ x: -leadStartOffset,
1154
+ y: i * pitch - pinOffsetToCenter,
1155
+ z: leadThickness / 2
1156
+ },
1157
+ width: leadWidth,
1158
+ thickness: leadThickness,
1159
+ padContactLength,
1160
+ bodyDistance: leadReach,
1161
+ curveLength,
1162
+ height: leadHeight
1163
+ },
1164
+ `left-${i}`
1165
+ )),
1166
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx19(
1167
+ SmdChipLead,
1168
+ {
1169
+ rotation: Math.PI,
1170
+ position: {
1171
+ x: leadStartOffset,
1172
+ y: i * pitch - pinOffsetToCenter,
1173
+ z: leadThickness / 2
1174
+ },
1175
+ width: leadWidth,
1176
+ thickness: leadThickness,
1177
+ padContactLength,
1178
+ bodyDistance: leadReach,
1179
+ curveLength,
1180
+ height: leadHeight
1181
+ },
1182
+ `right-${i}`
1183
+ )),
1184
+ /* @__PURE__ */ jsx19(
1185
+ ChipBody,
1186
+ {
1187
+ center: { x: 0, y: 0, z: 0 },
1188
+ width: bodyVisualWidth,
1189
+ length: bodyLength10,
1190
+ height: bodyHeight,
1191
+ notchPosition: {
1192
+ x: -(bodyVisualWidth / 2 - notchInset - 0.2),
1193
+ y: bodyLength10 / 2 - notchInset - 0.2,
1194
+ z: bodyHeight
1195
+ },
1196
+ notchRadius
1197
+ }
1198
+ )
1199
+ ] });
1200
+ };
1201
+ var Tssop = (props) => "leadSpan" in props ? createDualRowGullWing(props) : LegacyTssop(props);
1202
+
1202
1203
  // lib/MSOP.tsx
1203
1204
  import { Fragment as Fragment16, jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
1204
1205
  var LegacyMSOP = ({
@@ -3459,37 +3460,182 @@ var SOT323 = () => {
3459
3460
  ] });
3460
3461
  };
3461
3462
 
3462
- // lib/lqfp.tsx
3463
+ // lib/utils/PhysicalLqfp.tsx
3464
+ import {
3465
+ Colorize as Colorize23,
3466
+ Cuboid as Cuboid31,
3467
+ Cylinder as Cylinder7,
3468
+ Hull as Hull18,
3469
+ Subtract as Subtract5,
3470
+ Translate as Translate22,
3471
+ Union as Union16
3472
+ } from "jscad-fiber";
3463
3473
  import { Fragment as Fragment44, jsx as jsx48, jsxs as jsxs44 } from "react/jsx-runtime";
3464
- var LQFP = ({
3465
- pinCount,
3466
- pitch,
3467
- leadWidth,
3468
- padContactLength,
3469
- bodyWidth
3470
- }) => {
3471
- const sidePinCount = pinCount / 4;
3472
- if (sidePinCount !== Math.floor(sidePinCount)) {
3473
- throw new Error(`LQFP pinCount must be divisible by 4, got ${pinCount}`);
3474
- }
3475
- if (!pitch) pitch = 0.5;
3476
- if (!padContactLength) padContactLength = 0.6;
3477
- if (!leadWidth) leadWidth = 0.22;
3478
- if (!bodyWidth) bodyWidth = pitch * (sidePinCount + 4);
3479
- const bodyLength10 = bodyWidth;
3480
- const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
3481
- const fullLength10 = bodyLength10 + 3.3 * padContactLength;
3482
- const fullWidth = fullLength10;
3483
- const leadHeight = 0.8;
3484
- const leadThickness = 0.2;
3485
- const bodyDistance = (fullWidth - bodyWidth) / 2 + 0.4;
3486
- return /* @__PURE__ */ jsxs44(Fragment44, { children: [
3487
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx48(
3488
- SmdChipLead,
3489
- {
3490
- position: {
3491
- x: -fullWidth / 2 - 0.36,
3492
- y: i * pitch - pinOffsetToCenter,
3474
+ function createPhysicalLqfp(p) {
3475
+ const {
3476
+ pinCount,
3477
+ pitch,
3478
+ bodyWidth,
3479
+ bodyLength: bodyLength10,
3480
+ bodyHeight,
3481
+ standoff,
3482
+ leadSpanX,
3483
+ leadSpanY,
3484
+ leadWidth,
3485
+ leadThickness,
3486
+ contactLength,
3487
+ taperInset
3488
+ } = p;
3489
+ for (const key of [
3490
+ "pitch",
3491
+ "bodyWidth",
3492
+ "bodyLength",
3493
+ "bodyHeight",
3494
+ "leadSpanX",
3495
+ "leadSpanY",
3496
+ "leadWidth",
3497
+ "leadThickness",
3498
+ "contactLength"
3499
+ ])
3500
+ if (!Number.isFinite(p[key]) || p[key] <= 0)
3501
+ throw new Error(`${key} must be finite and positive`);
3502
+ for (const [name, value] of Object.entries({
3503
+ standoff,
3504
+ taperInset
3505
+ }))
3506
+ if (!Number.isFinite(value) || value < 0)
3507
+ throw new Error(`${name} must be finite and nonnegative`);
3508
+ if (!Number.isInteger(pinCount) || pinCount < 8 || pinCount % 4)
3509
+ throw new Error("pinCount must be divisible by four and at least eight");
3510
+ const moldHeight = bodyHeight - standoff;
3511
+ const reach = Math.min(leadSpanX - bodyWidth, leadSpanY - bodyLength10) / 2;
3512
+ const rowLength = (pinCount / 4 - 1) * pitch + leadWidth;
3513
+ if (moldHeight <= leadThickness * 2 || leadWidth >= pitch || rowLength >= Math.min(bodyWidth, bodyLength10) - 2 * taperInset || taperInset * 2 >= Math.min(bodyWidth, bodyLength10) || contactLength >= reach)
3514
+ throw new Error("Invalid mold, lead spacing, or terminal reach");
3515
+ const midZ = standoff + moldHeight / 2;
3516
+ const slice = Math.min(2e-3, moldHeight / 100);
3517
+ const body = /* @__PURE__ */ jsxs44(Hull18, { children: [
3518
+ /* @__PURE__ */ jsx48(Translate22, { z: standoff + slice / 2, children: /* @__PURE__ */ jsx48(
3519
+ Cuboid31,
3520
+ {
3521
+ size: [
3522
+ bodyWidth - 2 * taperInset,
3523
+ bodyLength10 - 2 * taperInset,
3524
+ slice
3525
+ ]
3526
+ }
3527
+ ) }),
3528
+ /* @__PURE__ */ jsx48(Translate22, { z: midZ, children: /* @__PURE__ */ jsx48(Cuboid31, { size: [bodyWidth, bodyLength10, slice] }) }),
3529
+ /* @__PURE__ */ jsx48(Translate22, { z: bodyHeight - slice / 2, children: /* @__PURE__ */ jsx48(
3530
+ Cuboid31,
3531
+ {
3532
+ size: [
3533
+ bodyWidth - 2 * taperInset,
3534
+ bodyLength10 - 2 * taperInset,
3535
+ slice
3536
+ ]
3537
+ }
3538
+ ) })
3539
+ ] });
3540
+ const dimpleRadius = Math.min(bodyWidth, bodyLength10) * 0.045;
3541
+ const dimpleDepth = Math.min(0.04, moldHeight / 10);
3542
+ const lead = (side, along) => {
3543
+ const horizontal = side % 2 === 0;
3544
+ const sign = side < 2 ? -1 : 1;
3545
+ const width10 = horizontal ? bodyWidth : bodyLength10;
3546
+ const outer = (horizontal ? leadSpanX : leadSpanY) / 2;
3547
+ const root = width10 / 2 - Math.min(width10 / 8, 0.15);
3548
+ const bendStart = outer - contactLength;
3549
+ const bendEnd = width10 / 2 + Math.min(0.08, (reach - contactLength) / 4);
3550
+ const points = [
3551
+ [outer - slice / 2, leadThickness / 2],
3552
+ [bendStart, leadThickness / 2]
3553
+ ];
3554
+ for (let i = 1; i <= 12; i++) {
3555
+ const t = i / 12;
3556
+ points.push([
3557
+ bendStart + (bendEnd - bendStart) * t,
3558
+ leadThickness / 2 + (midZ - leadThickness / 2) * t * t * (3 - 2 * t)
3559
+ ]);
3560
+ }
3561
+ points.push([root, midZ]);
3562
+ const section = ([x, z]) => /* @__PURE__ */ jsx48(
3563
+ Translate22,
3564
+ {
3565
+ offset: {
3566
+ x: horizontal ? sign * x : along,
3567
+ y: horizontal ? along : sign * x,
3568
+ z
3569
+ },
3570
+ children: /* @__PURE__ */ jsx48(
3571
+ Cuboid31,
3572
+ {
3573
+ size: horizontal ? [slice, leadWidth, leadThickness] : [leadWidth, slice, leadThickness]
3574
+ }
3575
+ )
3576
+ }
3577
+ );
3578
+ return /* @__PURE__ */ jsx48(Union16, { children: points.slice(1).map((point, i) => /* @__PURE__ */ jsxs44(Hull18, { children: [
3579
+ section(points[i]),
3580
+ section(point)
3581
+ ] }, i)) });
3582
+ };
3583
+ return /* @__PURE__ */ jsxs44(Fragment44, { children: [
3584
+ /* @__PURE__ */ jsx48(Colorize23, { color: "#353535", children: /* @__PURE__ */ jsxs44(Subtract5, { children: [
3585
+ body,
3586
+ /* @__PURE__ */ jsx48(
3587
+ Translate22,
3588
+ {
3589
+ offset: {
3590
+ x: -bodyWidth / 2 + taperInset + dimpleRadius * 2,
3591
+ y: bodyLength10 / 2 - taperInset - dimpleRadius * 2,
3592
+ z: bodyHeight
3593
+ },
3594
+ children: /* @__PURE__ */ jsx48(Cylinder7, { radius: dimpleRadius, height: dimpleDepth * 2 })
3595
+ }
3596
+ )
3597
+ ] }) }),
3598
+ /* @__PURE__ */ jsx48(Colorize23, { color: "#bfc1c4", children: Array.from(
3599
+ { length: pinCount },
3600
+ (_, i) => lead(
3601
+ Math.floor(i / (pinCount / 4)),
3602
+ ((pinCount / 4 - 1) / 2 - i % (pinCount / 4)) * pitch
3603
+ )
3604
+ ) })
3605
+ ] });
3606
+ }
3607
+
3608
+ // lib/lqfp.tsx
3609
+ import { Fragment as Fragment45, jsx as jsx49, jsxs as jsxs45 } from "react/jsx-runtime";
3610
+ var LegacyLQFP = ({
3611
+ pinCount,
3612
+ pitch,
3613
+ leadWidth,
3614
+ padContactLength,
3615
+ bodyWidth
3616
+ }) => {
3617
+ const sidePinCount = pinCount / 4;
3618
+ if (sidePinCount !== Math.floor(sidePinCount)) {
3619
+ throw new Error(`LQFP pinCount must be divisible by 4, got ${pinCount}`);
3620
+ }
3621
+ if (!pitch) pitch = 0.5;
3622
+ if (!padContactLength) padContactLength = 0.6;
3623
+ if (!leadWidth) leadWidth = 0.22;
3624
+ if (!bodyWidth) bodyWidth = pitch * (sidePinCount + 4);
3625
+ const bodyLength10 = bodyWidth;
3626
+ const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
3627
+ const fullLength10 = bodyLength10 + 3.3 * padContactLength;
3628
+ const fullWidth = fullLength10;
3629
+ const leadHeight = 0.8;
3630
+ const leadThickness = 0.2;
3631
+ const bodyDistance = (fullWidth - bodyWidth) / 2 + 0.4;
3632
+ return /* @__PURE__ */ jsxs45(Fragment45, { children: [
3633
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx49(
3634
+ SmdChipLead,
3635
+ {
3636
+ position: {
3637
+ x: -fullWidth / 2 - 0.36,
3638
+ y: i * pitch - pinOffsetToCenter,
3493
3639
  z: leadThickness / 2
3494
3640
  },
3495
3641
  width: leadWidth,
@@ -3500,7 +3646,7 @@ var LQFP = ({
3500
3646
  },
3501
3647
  `left-${i}`
3502
3648
  )),
3503
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx48(
3649
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx49(
3504
3650
  SmdChipLead,
3505
3651
  {
3506
3652
  rotation: Math.PI,
@@ -3517,7 +3663,7 @@ var LQFP = ({
3517
3663
  },
3518
3664
  `right-${i}`
3519
3665
  )),
3520
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx48(
3666
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx49(
3521
3667
  SmdChipLead,
3522
3668
  {
3523
3669
  rotation: Math.PI / 2,
@@ -3534,7 +3680,7 @@ var LQFP = ({
3534
3680
  },
3535
3681
  `bottom-${i}`
3536
3682
  )),
3537
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx48(
3683
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx49(
3538
3684
  SmdChipLead,
3539
3685
  {
3540
3686
  rotation: -Math.PI / 2,
@@ -3551,7 +3697,7 @@ var LQFP = ({
3551
3697
  },
3552
3698
  `top-${i}`
3553
3699
  )),
3554
- /* @__PURE__ */ jsx48(
3700
+ /* @__PURE__ */ jsx49(
3555
3701
  ChipBody,
3556
3702
  {
3557
3703
  center: { x: 0, y: 0, z: 0 },
@@ -3571,10 +3717,11 @@ var LQFP = ({
3571
3717
  )
3572
3718
  ] });
3573
3719
  };
3720
+ var LQFP = (props) => "leadSpanX" in props ? createPhysicalLqfp(props) : LegacyLQFP(props);
3574
3721
 
3575
3722
  // lib/SOT-723.tsx
3576
- import { Cuboid as Cuboid31, Translate as Translate22, Colorize as Colorize23, Hull as Hull18, Union as Union16 } from "jscad-fiber";
3577
- import { Fragment as Fragment45, jsx as jsx49, jsxs as jsxs45 } from "react/jsx-runtime";
3723
+ import { Cuboid as Cuboid32, Translate as Translate23, Colorize as Colorize24, Hull as Hull19, Union as Union17 } from "jscad-fiber";
3724
+ import { Fragment as Fragment46, jsx as jsx50, jsxs as jsxs46 } from "react/jsx-runtime";
3578
3725
  var SOT723 = () => {
3579
3726
  const bodyWidth = 0.85;
3580
3727
  const bodyLength10 = 1.2;
@@ -3591,43 +3738,43 @@ var SOT723 = () => {
3591
3738
  const leftTopPadCenterY = 0.4;
3592
3739
  const leftBottomPadCenterX = -0.55;
3593
3740
  const leftBottomPadCenterY = -0.4;
3594
- return /* @__PURE__ */ jsxs45(Fragment45, { children: [
3595
- /* @__PURE__ */ jsx49(Colorize23, { color: "#222", children: /* @__PURE__ */ jsxs45(Union16, { children: [
3596
- /* @__PURE__ */ jsx49(
3597
- Cuboid31,
3741
+ return /* @__PURE__ */ jsxs46(Fragment46, { children: [
3742
+ /* @__PURE__ */ jsx50(Colorize24, { color: "#222", children: /* @__PURE__ */ jsxs46(Union17, { children: [
3743
+ /* @__PURE__ */ jsx50(
3744
+ Cuboid32,
3598
3745
  {
3599
3746
  size: [bodyWidth, bodyLength10, straightHeight],
3600
3747
  center: [0, 0, straightHeight / 2]
3601
3748
  }
3602
3749
  ),
3603
- /* @__PURE__ */ jsxs45(Hull18, { children: [
3604
- /* @__PURE__ */ jsx49(Translate22, { z: straightHeight, children: /* @__PURE__ */ jsx49(Cuboid31, { size: [bodyWidth, bodyLength10, 0.01] }) }),
3605
- /* @__PURE__ */ jsx49(Translate22, { z: bodyHeight, children: /* @__PURE__ */ jsx49(
3606
- Cuboid31,
3750
+ /* @__PURE__ */ jsxs46(Hull19, { children: [
3751
+ /* @__PURE__ */ jsx50(Translate23, { z: straightHeight, children: /* @__PURE__ */ jsx50(Cuboid32, { size: [bodyWidth, bodyLength10, 0.01] }) }),
3752
+ /* @__PURE__ */ jsx50(Translate23, { z: bodyHeight, children: /* @__PURE__ */ jsx50(
3753
+ Cuboid32,
3607
3754
  {
3608
3755
  size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
3609
3756
  }
3610
3757
  ) })
3611
3758
  ] })
3612
3759
  ] }) }),
3613
- /* @__PURE__ */ jsx49(
3614
- Cuboid31,
3760
+ /* @__PURE__ */ jsx50(
3761
+ Cuboid32,
3615
3762
  {
3616
3763
  color: "#ccc",
3617
3764
  size: [padLength, rightPadWidth, padThickness],
3618
3765
  center: [rightPadCenterX, rightPadCenterY, padThickness / 2]
3619
3766
  }
3620
3767
  ),
3621
- /* @__PURE__ */ jsx49(
3622
- Cuboid31,
3768
+ /* @__PURE__ */ jsx50(
3769
+ Cuboid32,
3623
3770
  {
3624
3771
  color: "#ccc",
3625
3772
  size: [padLength, leftPadWidth, padThickness],
3626
3773
  center: [leftTopPadCenterX, leftTopPadCenterY, padThickness / 2]
3627
3774
  }
3628
3775
  ),
3629
- /* @__PURE__ */ jsx49(
3630
- Cuboid31,
3776
+ /* @__PURE__ */ jsx50(
3777
+ Cuboid32,
3631
3778
  {
3632
3779
  color: "#ccc",
3633
3780
  size: [padLength, leftPadWidth, padThickness],
@@ -3638,8 +3785,8 @@ var SOT723 = () => {
3638
3785
  };
3639
3786
 
3640
3787
  // lib/dfn.tsx
3641
- import { Colorize as Colorize24, Cuboid as Cuboid32, Hull as Hull19, Subtract as Subtract5 } from "jscad-fiber";
3642
- import { Fragment as Fragment46, jsx as jsx50, jsxs as jsxs46 } from "react/jsx-runtime";
3788
+ import { Colorize as Colorize25, Cuboid as Cuboid33, Hull as Hull20, Subtract as Subtract6 } from "jscad-fiber";
3789
+ import { Fragment as Fragment47, jsx as jsx51, jsxs as jsxs47 } from "react/jsx-runtime";
3643
3790
  var DFN = ({
3644
3791
  num_pins,
3645
3792
  bodyWidth = 5.3,
@@ -3702,8 +3849,8 @@ var DFN = ({
3702
3849
  if (bodyStyle === "rectangular") {
3703
3850
  const top = standoff + bodyThickness;
3704
3851
  const inkThickness = Math.min(bodyThickness, bodyLength10) / 100;
3705
- const stripe = /* @__PURE__ */ jsx50(
3706
- Cuboid32,
3852
+ const stripe = /* @__PURE__ */ jsx51(
3853
+ Cuboid33,
3707
3854
  {
3708
3855
  size: [pin1MarkWidth, bodyLength10 * 0.8, inkThickness],
3709
3856
  center: [
@@ -3713,22 +3860,22 @@ var DFN = ({
3713
3860
  ]
3714
3861
  }
3715
3862
  );
3716
- const body = /* @__PURE__ */ jsx50(
3717
- Cuboid32,
3863
+ const body = /* @__PURE__ */ jsx51(
3864
+ Cuboid33,
3718
3865
  {
3719
3866
  size: [bodyWidth, bodyLength10, bodyThickness],
3720
3867
  center: [0, 0, standoff + bodyThickness / 2]
3721
3868
  }
3722
3869
  );
3723
- return /* @__PURE__ */ jsxs46(Fragment46, { children: [
3724
- /* @__PURE__ */ jsx50(Colorize24, { color: "#25272a", children: pin1MarkWidth > 0 ? /* @__PURE__ */ jsxs46(Subtract5, { children: [
3870
+ return /* @__PURE__ */ jsxs47(Fragment47, { children: [
3871
+ /* @__PURE__ */ jsx51(Colorize25, { color: "#25272a", children: pin1MarkWidth > 0 ? /* @__PURE__ */ jsxs47(Subtract6, { children: [
3725
3872
  body,
3726
3873
  stripe
3727
3874
  ] }) : body }),
3728
- /* @__PURE__ */ jsx50(Colorize24, { color: "#c7c9cd", children: pinPositions.map(
3729
- (p) => p.pinNumber === 1 && pin1TerminalChamfer > 0 ? /* @__PURE__ */ jsxs46(Hull19, { children: [
3730
- /* @__PURE__ */ jsx50(
3731
- Cuboid32,
3875
+ /* @__PURE__ */ jsx51(Colorize25, { color: "#c7c9cd", children: pinPositions.map(
3876
+ (p) => p.pinNumber === 1 && pin1TerminalChamfer > 0 ? /* @__PURE__ */ jsxs47(Hull20, { children: [
3877
+ /* @__PURE__ */ jsx51(
3878
+ Cuboid33,
3732
3879
  {
3733
3880
  size: [
3734
3881
  padLength - pin1TerminalChamfer,
@@ -3742,8 +3889,8 @@ var DFN = ({
3742
3889
  ]
3743
3890
  }
3744
3891
  ),
3745
- /* @__PURE__ */ jsx50(
3746
- Cuboid32,
3892
+ /* @__PURE__ */ jsx51(
3893
+ Cuboid33,
3747
3894
  {
3748
3895
  size: [
3749
3896
  padLength,
@@ -3753,8 +3900,8 @@ var DFN = ({
3753
3900
  center: [p.x, p.y, terminalThickness / 2]
3754
3901
  }
3755
3902
  )
3756
- ] }, p.pinNumber) : /* @__PURE__ */ jsx50(
3757
- Cuboid32,
3903
+ ] }, p.pinNumber) : /* @__PURE__ */ jsx51(
3904
+ Cuboid33,
3758
3905
  {
3759
3906
  size: [p.padSizeX, p.padSizeY, terminalThickness],
3760
3907
  center: [p.x, p.y, terminalThickness / 2]
@@ -3762,8 +3909,8 @@ var DFN = ({
3762
3909
  p.pinNumber
3763
3910
  )
3764
3911
  ) }),
3765
- thermalPadSize && /* @__PURE__ */ jsx50(
3766
- Cuboid32,
3912
+ thermalPadSize && /* @__PURE__ */ jsx51(
3913
+ Cuboid33,
3767
3914
  {
3768
3915
  color: "#c7c9cd",
3769
3916
  size: [
@@ -3774,11 +3921,11 @@ var DFN = ({
3774
3921
  center: [0, 0, thermalPadThickness / 2]
3775
3922
  }
3776
3923
  ),
3777
- pin1MarkWidth > 0 && /* @__PURE__ */ jsx50(Colorize24, { color: "#969997", children: stripe })
3924
+ pin1MarkWidth > 0 && /* @__PURE__ */ jsx51(Colorize25, { color: "#969997", children: stripe })
3778
3925
  ] });
3779
3926
  }
3780
- return /* @__PURE__ */ jsxs46(Fragment46, { children: [
3781
- /* @__PURE__ */ jsx50(
3927
+ return /* @__PURE__ */ jsxs47(Fragment47, { children: [
3928
+ /* @__PURE__ */ jsx51(
3782
3929
  ChipBody,
3783
3930
  {
3784
3931
  center: { x: 0, y: 0, z: 0 },
@@ -3796,16 +3943,16 @@ var DFN = ({
3796
3943
  }
3797
3944
  }
3798
3945
  ),
3799
- pinPositions.map((p, i) => /* @__PURE__ */ jsx50(
3800
- Cuboid32,
3946
+ pinPositions.map((p, i) => /* @__PURE__ */ jsx51(
3947
+ Cuboid33,
3801
3948
  {
3802
3949
  center: [p.x, p.y, thermalPadThickness / 2],
3803
3950
  size: [p.padSizeX, p.padSizeY, thermalPadThickness]
3804
3951
  },
3805
3952
  i
3806
3953
  )),
3807
- thermalPadSize?.length !== void 0 && thermalPadSize?.width !== void 0 && /* @__PURE__ */ jsx50(
3808
- Cuboid32,
3954
+ thermalPadSize?.length !== void 0 && thermalPadSize?.width !== void 0 && /* @__PURE__ */ jsx51(
3955
+ Cuboid33,
3809
3956
  {
3810
3957
  center: [0, 0, thermalPadThickness / 2],
3811
3958
  size: [
@@ -3819,8 +3966,8 @@ var DFN = ({
3819
3966
  };
3820
3967
 
3821
3968
  // lib/hc49.tsx
3822
- import { Colorize as Colorize25, Cylinder as Cylinder7, Hull as Hull20, RoundedCylinder } from "jscad-fiber";
3823
- import { Fragment as Fragment47, jsx as jsx51, jsxs as jsxs47 } from "react/jsx-runtime";
3969
+ import { Colorize as Colorize26, Cylinder as Cylinder8, Hull as Hull21, RoundedCylinder } from "jscad-fiber";
3970
+ import { Fragment as Fragment48, jsx as jsx52, jsxs as jsxs48 } from "react/jsx-runtime";
3824
3971
  var HC49 = ({
3825
3972
  bodyLength: bodyLength10 = 10.2,
3826
3973
  bodyWidth = 4.65,
@@ -3836,10 +3983,10 @@ var HC49 = ({
3836
3983
  const endCenterX = halfLength - endRadius;
3837
3984
  const leadCenterX = leadSpacing / 2;
3838
3985
  const baseHeight = 0.85;
3839
- return /* @__PURE__ */ jsxs47(Fragment47, { children: [
3840
- /* @__PURE__ */ jsxs47(Colorize25, { color, children: [
3841
- /* @__PURE__ */ jsxs47(Hull20, { children: [
3842
- /* @__PURE__ */ jsx51(
3986
+ return /* @__PURE__ */ jsxs48(Fragment48, { children: [
3987
+ /* @__PURE__ */ jsxs48(Colorize26, { color, children: [
3988
+ /* @__PURE__ */ jsxs48(Hull21, { children: [
3989
+ /* @__PURE__ */ jsx52(
3843
3990
  RoundedCylinder,
3844
3991
  {
3845
3992
  height: bodyHeight,
@@ -3848,7 +3995,7 @@ var HC49 = ({
3848
3995
  center: [-endCenterX, 0, bodyHeight]
3849
3996
  }
3850
3997
  ),
3851
- /* @__PURE__ */ jsx51(
3998
+ /* @__PURE__ */ jsx52(
3852
3999
  RoundedCylinder,
3853
4000
  {
3854
4001
  height: bodyHeight,
@@ -3858,8 +4005,8 @@ var HC49 = ({
3858
4005
  }
3859
4006
  )
3860
4007
  ] }),
3861
- /* @__PURE__ */ jsxs47(Hull20, { children: [
3862
- /* @__PURE__ */ jsx51(
4008
+ /* @__PURE__ */ jsxs48(Hull21, { children: [
4009
+ /* @__PURE__ */ jsx52(
3863
4010
  RoundedCylinder,
3864
4011
  {
3865
4012
  height: baseHeight,
@@ -3868,7 +4015,7 @@ var HC49 = ({
3868
4015
  center: [-endCenterX, 0, bodyHeight / 2 + baseHeight / 2]
3869
4016
  }
3870
4017
  ),
3871
- /* @__PURE__ */ jsx51(
4018
+ /* @__PURE__ */ jsx52(
3872
4019
  RoundedCylinder,
3873
4020
  {
3874
4021
  height: baseHeight,
@@ -3879,17 +4026,17 @@ var HC49 = ({
3879
4026
  )
3880
4027
  ] })
3881
4028
  ] }),
3882
- /* @__PURE__ */ jsxs47(Colorize25, { color: leadColor, children: [
3883
- /* @__PURE__ */ jsx51(
3884
- Cylinder7,
4029
+ /* @__PURE__ */ jsxs48(Colorize26, { color: leadColor, children: [
4030
+ /* @__PURE__ */ jsx52(
4031
+ Cylinder8,
3885
4032
  {
3886
4033
  height: leadLength + bodyHeight / 2,
3887
4034
  radius: leadDiameter / 2,
3888
4035
  center: [-leadCenterX + 0.06, 0, -(leadLength / 2) + bodyHeight / 2]
3889
4036
  }
3890
4037
  ),
3891
- /* @__PURE__ */ jsx51(
3892
- Cylinder7,
4038
+ /* @__PURE__ */ jsx52(
4039
+ Cylinder8,
3893
4040
  {
3894
4041
  height: leadLength + bodyHeight / 2,
3895
4042
  radius: leadDiameter / 2,
@@ -3902,13 +4049,13 @@ var HC49 = ({
3902
4049
 
3903
4050
  // lib/MicroMELF.tsx
3904
4051
  import {
3905
- Colorize as Colorize26,
3906
- Cylinder as Cylinder8,
4052
+ Colorize as Colorize27,
4053
+ Cylinder as Cylinder9,
3907
4054
  RoundedCylinder as RoundedCylinder2,
3908
4055
  Rotate as Rotate8,
3909
4056
  RoundedCuboid as RoundedCuboid2
3910
4057
  } from "jscad-fiber";
3911
- import { Fragment as Fragment48, jsx as jsx52, jsxs as jsxs48 } from "react/jsx-runtime";
4058
+ import { Fragment as Fragment49, jsx as jsx53, jsxs as jsxs49 } from "react/jsx-runtime";
3912
4059
  var MicroMELF = ({
3913
4060
  bodyLength: bodyLength10 = 1.4,
3914
4061
  bodyDiameter = 1.1,
@@ -3917,9 +4064,9 @@ var MicroMELF = ({
3917
4064
  cathodeIdentification = "#111"
3918
4065
  }) => {
3919
4066
  const padLength = 0.2;
3920
- return /* @__PURE__ */ jsxs48(Fragment48, { children: [
3921
- /* @__PURE__ */ jsx52(Colorize26, { color, children: /* @__PURE__ */ jsxs48(Rotate8, { rotation: [0, "90deg", 0], children: [
3922
- /* @__PURE__ */ jsx52(
4067
+ return /* @__PURE__ */ jsxs49(Fragment49, { children: [
4068
+ /* @__PURE__ */ jsx53(Colorize27, { color, children: /* @__PURE__ */ jsxs49(Rotate8, { rotation: [0, "90deg", 0], children: [
4069
+ /* @__PURE__ */ jsx53(
3923
4070
  RoundedCuboid2,
3924
4071
  {
3925
4072
  size: [bodyDiameter, bodyDiameter, bodyLength10 - padLength],
@@ -3927,8 +4074,8 @@ var MicroMELF = ({
3927
4074
  center: [-bodyDiameter / 2, 0, 0.05]
3928
4075
  }
3929
4076
  ),
3930
- /* @__PURE__ */ jsx52(
3931
- Cylinder8,
4077
+ /* @__PURE__ */ jsx53(
4078
+ Cylinder9,
3932
4079
  {
3933
4080
  height: padLength / 2,
3934
4081
  radius: bodyDiameter / 2 - padLength,
@@ -3936,7 +4083,7 @@ var MicroMELF = ({
3936
4083
  }
3937
4084
  )
3938
4085
  ] }) }),
3939
- /* @__PURE__ */ jsx52(Colorize26, { color: cathodeIdentification, children: /* @__PURE__ */ jsx52(Rotate8, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx52(
4086
+ /* @__PURE__ */ jsx53(Colorize27, { color: cathodeIdentification, children: /* @__PURE__ */ jsx53(Rotate8, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx53(
3940
4087
  RoundedCuboid2,
3941
4088
  {
3942
4089
  size: [bodyDiameter * 1.01, bodyDiameter * 1.01, bodyLength10 / 3],
@@ -3944,7 +4091,7 @@ var MicroMELF = ({
3944
4091
  center: [-bodyDiameter / 2, 0, -bodyLength10 / 4 + 0.1]
3945
4092
  }
3946
4093
  ) }) }),
3947
- /* @__PURE__ */ jsx52(Colorize26, { color: contactColor, children: /* @__PURE__ */ jsx52(Rotate8, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx52(
4094
+ /* @__PURE__ */ jsx53(Colorize27, { color: contactColor, children: /* @__PURE__ */ jsx53(Rotate8, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx53(
3948
4095
  RoundedCylinder2,
3949
4096
  {
3950
4097
  height: padLength,
@@ -3953,7 +4100,7 @@ var MicroMELF = ({
3953
4100
  center: [-bodyDiameter / 2, 0, -bodyLength10 / 2]
3954
4101
  }
3955
4102
  ) }) }),
3956
- /* @__PURE__ */ jsx52(Colorize26, { color: contactColor, children: /* @__PURE__ */ jsx52(Rotate8, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx52(
4103
+ /* @__PURE__ */ jsx53(Colorize27, { color: contactColor, children: /* @__PURE__ */ jsx53(Rotate8, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx53(
3957
4104
  RoundedCylinder2,
3958
4105
  {
3959
4106
  height: padLength,
@@ -3966,8 +4113,8 @@ var MicroMELF = ({
3966
4113
  };
3967
4114
 
3968
4115
  // lib/MINIMELF.tsx
3969
- import { Colorize as Colorize27, RoundedCylinder as RoundedCylinder3, Rotate as Rotate9 } from "jscad-fiber";
3970
- import { Fragment as Fragment49, jsx as jsx53, jsxs as jsxs49 } from "react/jsx-runtime";
4116
+ import { Colorize as Colorize28, RoundedCylinder as RoundedCylinder3, Rotate as Rotate9 } from "jscad-fiber";
4117
+ import { Fragment as Fragment50, jsx as jsx54, jsxs as jsxs50 } from "react/jsx-runtime";
3971
4118
  var MINIMELF = ({
3972
4119
  bodyLength: bodyLength10 = 3.5,
3973
4120
  bodyDiameter = 1.5,
@@ -3975,8 +4122,8 @@ var MINIMELF = ({
3975
4122
  contactColor = "#c6c6c6"
3976
4123
  }) => {
3977
4124
  const padLength = 0.5;
3978
- return /* @__PURE__ */ jsxs49(Fragment49, { children: [
3979
- /* @__PURE__ */ jsx53(Colorize27, { color, children: /* @__PURE__ */ jsx53(Rotate9, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx53(
4125
+ return /* @__PURE__ */ jsxs50(Fragment50, { children: [
4126
+ /* @__PURE__ */ jsx54(Colorize28, { color, children: /* @__PURE__ */ jsx54(Rotate9, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx54(
3980
4127
  RoundedCylinder3,
3981
4128
  {
3982
4129
  height: bodyLength10,
@@ -3985,7 +4132,7 @@ var MINIMELF = ({
3985
4132
  center: [-bodyDiameter / 2, 0, 0]
3986
4133
  }
3987
4134
  ) }) }),
3988
- /* @__PURE__ */ jsx53(Colorize27, { color: contactColor, children: /* @__PURE__ */ jsx53(Rotate9, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx53(
4135
+ /* @__PURE__ */ jsx54(Colorize28, { color: contactColor, children: /* @__PURE__ */ jsx54(Rotate9, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx54(
3989
4136
  RoundedCylinder3,
3990
4137
  {
3991
4138
  height: padLength,
@@ -3994,7 +4141,7 @@ var MINIMELF = ({
3994
4141
  center: [-bodyDiameter / 2, 0, -bodyLength10 / 2]
3995
4142
  }
3996
4143
  ) }) }),
3997
- /* @__PURE__ */ jsx53(Colorize27, { color: contactColor, children: /* @__PURE__ */ jsx53(Rotate9, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx53(
4144
+ /* @__PURE__ */ jsx54(Colorize28, { color: contactColor, children: /* @__PURE__ */ jsx54(Rotate9, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx54(
3998
4145
  RoundedCylinder3,
3999
4146
  {
4000
4147
  height: padLength,
@@ -4007,8 +4154,8 @@ var MINIMELF = ({
4007
4154
  };
4008
4155
 
4009
4156
  // lib/MELF.tsx
4010
- import { Colorize as Colorize28, RoundedCylinder as RoundedCylinder4, Rotate as Rotate10 } from "jscad-fiber";
4011
- import { Fragment as Fragment50, jsx as jsx54, jsxs as jsxs50 } from "react/jsx-runtime";
4157
+ import { Colorize as Colorize29, RoundedCylinder as RoundedCylinder4, Rotate as Rotate10 } from "jscad-fiber";
4158
+ import { Fragment as Fragment51, jsx as jsx55, jsxs as jsxs51 } from "react/jsx-runtime";
4012
4159
  var MELF = ({
4013
4160
  bodyLength: bodyLength10 = 3.9,
4014
4161
  bodyDiameter = 2.5,
@@ -4016,8 +4163,8 @@ var MELF = ({
4016
4163
  contactColor = "#c6c6c6"
4017
4164
  }) => {
4018
4165
  const padLength = 0.55;
4019
- return /* @__PURE__ */ jsxs50(Fragment50, { children: [
4020
- /* @__PURE__ */ jsx54(Colorize28, { color, children: /* @__PURE__ */ jsx54(Rotate10, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx54(
4166
+ return /* @__PURE__ */ jsxs51(Fragment51, { children: [
4167
+ /* @__PURE__ */ jsx55(Colorize29, { color, children: /* @__PURE__ */ jsx55(Rotate10, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx55(
4021
4168
  RoundedCylinder4,
4022
4169
  {
4023
4170
  height: bodyLength10,
@@ -4026,7 +4173,7 @@ var MELF = ({
4026
4173
  center: [-bodyDiameter / 2, 0, 0]
4027
4174
  }
4028
4175
  ) }) }),
4029
- /* @__PURE__ */ jsx54(Colorize28, { color: contactColor, children: /* @__PURE__ */ jsx54(Rotate10, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx54(
4176
+ /* @__PURE__ */ jsx55(Colorize29, { color: contactColor, children: /* @__PURE__ */ jsx55(Rotate10, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx55(
4030
4177
  RoundedCylinder4,
4031
4178
  {
4032
4179
  height: padLength,
@@ -4035,7 +4182,7 @@ var MELF = ({
4035
4182
  center: [-bodyDiameter / 2, 0, -bodyLength10 / 2]
4036
4183
  }
4037
4184
  ) }) }),
4038
- /* @__PURE__ */ jsx54(Colorize28, { color: contactColor, children: /* @__PURE__ */ jsx54(Rotate10, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx54(
4185
+ /* @__PURE__ */ jsx55(Colorize29, { color: contactColor, children: /* @__PURE__ */ jsx55(Rotate10, { rotation: [0, "90deg", 0], children: /* @__PURE__ */ jsx55(
4039
4186
  RoundedCylinder4,
4040
4187
  {
4041
4188
  height: padLength,
@@ -4048,7 +4195,7 @@ var MELF = ({
4048
4195
  };
4049
4196
 
4050
4197
  // lib/ms012.tsx
4051
- import { Fragment as Fragment51, jsx as jsx55, jsxs as jsxs51 } from "react/jsx-runtime";
4198
+ import { Fragment as Fragment52, jsx as jsx56, jsxs as jsxs52 } from "react/jsx-runtime";
4052
4199
  var MS012 = ({
4053
4200
  pinCount,
4054
4201
  padContactLength = 0.6,
@@ -4063,8 +4210,8 @@ var MS012 = ({
4063
4210
  const bodyLength10 = 3.9;
4064
4211
  const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
4065
4212
  const leadThickness = 0.2;
4066
- return /* @__PURE__ */ jsxs51(Fragment51, { children: [
4067
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx55(
4213
+ return /* @__PURE__ */ jsxs52(Fragment52, { children: [
4214
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx56(
4068
4215
  SmdChipLead,
4069
4216
  {
4070
4217
  position: {
@@ -4080,7 +4227,7 @@ var MS012 = ({
4080
4227
  },
4081
4228
  i
4082
4229
  )),
4083
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx55(
4230
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx56(
4084
4231
  SmdChipLead,
4085
4232
  {
4086
4233
  rotation: Math.PI,
@@ -4097,7 +4244,7 @@ var MS012 = ({
4097
4244
  },
4098
4245
  `right-${i}`
4099
4246
  )),
4100
- /* @__PURE__ */ jsx55(
4247
+ /* @__PURE__ */ jsx56(
4101
4248
  ChipBody,
4102
4249
  {
4103
4250
  center: { x: 0, y: 0, z: leadThickness / 2 },
@@ -4117,7 +4264,7 @@ var MS012 = ({
4117
4264
  };
4118
4265
 
4119
4266
  // lib/ms013.tsx
4120
- import { Fragment as Fragment52, jsx as jsx56, jsxs as jsxs52 } from "react/jsx-runtime";
4267
+ import { Fragment as Fragment53, jsx as jsx57, jsxs as jsxs53 } from "react/jsx-runtime";
4121
4268
  var MS013 = ({
4122
4269
  pinCount = 16,
4123
4270
  padContactLength = 0.6,
@@ -4132,8 +4279,8 @@ var MS013 = ({
4132
4279
  const bodyLength10 = 10.3;
4133
4280
  const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
4134
4281
  const leadThickness = 0.2;
4135
- return /* @__PURE__ */ jsxs52(Fragment52, { children: [
4136
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx56(
4282
+ return /* @__PURE__ */ jsxs53(Fragment53, { children: [
4283
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx57(
4137
4284
  SmdChipLead,
4138
4285
  {
4139
4286
  position: {
@@ -4149,7 +4296,7 @@ var MS013 = ({
4149
4296
  },
4150
4297
  i
4151
4298
  )),
4152
- Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx56(
4299
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx57(
4153
4300
  SmdChipLead,
4154
4301
  {
4155
4302
  rotation: Math.PI,
@@ -4166,7 +4313,7 @@ var MS013 = ({
4166
4313
  },
4167
4314
  `right-${i}`
4168
4315
  )),
4169
- /* @__PURE__ */ jsx56(
4316
+ /* @__PURE__ */ jsx57(
4170
4317
  ChipBody,
4171
4318
  {
4172
4319
  center: { x: 0, y: 0, z: leadThickness / 2 },
@@ -4187,14 +4334,14 @@ var MS013 = ({
4187
4334
 
4188
4335
  // lib/TO220.tsx
4189
4336
  import {
4190
- Colorize as Colorize29,
4191
- Cuboid as Cuboid35,
4192
- Cylinder as Cylinder9,
4337
+ Colorize as Colorize30,
4338
+ Cuboid as Cuboid36,
4339
+ Cylinder as Cylinder10,
4193
4340
  Rotate as Rotate11,
4194
- Subtract as Subtract6,
4195
- Translate as Translate23
4341
+ Subtract as Subtract7,
4342
+ Translate as Translate24
4196
4343
  } from "jscad-fiber";
4197
- import { Fragment as Fragment53, jsx as jsx57, jsxs as jsxs53 } from "react/jsx-runtime";
4344
+ import { Fragment as Fragment54, jsx as jsx58, jsxs as jsxs54 } from "react/jsx-runtime";
4198
4345
  var TO220_DEFAULT_LEADS = [
4199
4346
  { x: -2.54, y: -1 },
4200
4347
  { x: 0, y: -1 },
@@ -4224,32 +4371,32 @@ var TO220 = ({
4224
4371
  const holeZ = tabTop - Math.max(mountingHoleDiameter * 0.8, 2.6);
4225
4372
  const leadWidth = 0.8;
4226
4373
  const leadThickness = 0.5;
4227
- return /* @__PURE__ */ jsxs53(Fragment53, { children: [
4228
- /* @__PURE__ */ jsx57(Colorize29, { color: bodyColor, children: /* @__PURE__ */ jsx57(
4229
- Cuboid35,
4374
+ return /* @__PURE__ */ jsxs54(Fragment54, { children: [
4375
+ /* @__PURE__ */ jsx58(Colorize30, { color: bodyColor, children: /* @__PURE__ */ jsx58(
4376
+ Cuboid36,
4230
4377
  {
4231
4378
  size: [bodyWidth, bodyThickness, bodyHeight],
4232
4379
  center: [centerX, centerY, bodyBottom + bodyHeight / 2]
4233
4380
  }
4234
4381
  ) }),
4235
- /* @__PURE__ */ jsx57(Colorize29, { color: mouldedTab ? bodyColor : tabColor, children: /* @__PURE__ */ jsxs53(Subtract6, { children: [
4236
- /* @__PURE__ */ jsx57(
4237
- Cuboid35,
4382
+ /* @__PURE__ */ jsx58(Colorize30, { color: mouldedTab ? bodyColor : tabColor, children: /* @__PURE__ */ jsxs54(Subtract7, { children: [
4383
+ /* @__PURE__ */ jsx58(
4384
+ Cuboid36,
4238
4385
  {
4239
4386
  size: [bodyWidth, tabThickness, tabHeight],
4240
4387
  center: [centerX, tabY, bodyTop + tabHeight / 2]
4241
4388
  }
4242
4389
  ),
4243
- /* @__PURE__ */ jsx57(Rotate11, { rotation: ["90deg", 0, 0], children: /* @__PURE__ */ jsx57(Translate23, { center: [centerX, holeZ, -tabY], children: /* @__PURE__ */ jsx57(
4244
- Cylinder9,
4390
+ /* @__PURE__ */ jsx58(Rotate11, { rotation: ["90deg", 0, 0], children: /* @__PURE__ */ jsx58(Translate24, { center: [centerX, holeZ, -tabY], children: /* @__PURE__ */ jsx58(
4391
+ Cylinder10,
4245
4392
  {
4246
4393
  radius: mountingHoleDiameter / 2,
4247
4394
  height: tabThickness * 3
4248
4395
  }
4249
4396
  ) }) })
4250
4397
  ] }) }),
4251
- leads.map((lead) => /* @__PURE__ */ jsx57(Colorize29, { color: leadColor, children: /* @__PURE__ */ jsx57(
4252
- Cuboid35,
4398
+ leads.map((lead) => /* @__PURE__ */ jsx58(Colorize30, { color: leadColor, children: /* @__PURE__ */ jsx58(
4399
+ Cuboid36,
4253
4400
  {
4254
4401
  size: [leadWidth, leadThickness, standoff + leadLength],
4255
4402
  center: [lead.x, lead.y, (standoff - leadLength) / 2]
@@ -4259,7 +4406,7 @@ var TO220 = ({
4259
4406
  };
4260
4407
 
4261
4408
  // lib/SOT-457.tsx
4262
- import { Fragment as Fragment54, jsx as jsx58, jsxs as jsxs54 } from "react/jsx-runtime";
4409
+ import { Fragment as Fragment55, jsx as jsx59, jsxs as jsxs55 } from "react/jsx-runtime";
4263
4410
  var SOT457 = () => {
4264
4411
  const fullWidth = 2.8;
4265
4412
  const bodyWidth = 1.6;
@@ -4271,8 +4418,8 @@ var SOT457 = () => {
4271
4418
  const padContactLength = 0.5;
4272
4419
  const padPitch = 0.95;
4273
4420
  const extendedBodyDistance = fullWidth - bodyWidth;
4274
- return /* @__PURE__ */ jsxs54(Fragment54, { children: [
4275
- /* @__PURE__ */ jsx58(
4421
+ return /* @__PURE__ */ jsxs55(Fragment55, { children: [
4422
+ /* @__PURE__ */ jsx59(
4276
4423
  SmdChipLead,
4277
4424
  {
4278
4425
  rotation: Math.PI,
@@ -4289,7 +4436,7 @@ var SOT457 = () => {
4289
4436
  },
4290
4437
  1
4291
4438
  ),
4292
- /* @__PURE__ */ jsx58(
4439
+ /* @__PURE__ */ jsx59(
4293
4440
  SmdChipLead,
4294
4441
  {
4295
4442
  rotation: Math.PI,
@@ -4306,7 +4453,7 @@ var SOT457 = () => {
4306
4453
  },
4307
4454
  2
4308
4455
  ),
4309
- /* @__PURE__ */ jsx58(
4456
+ /* @__PURE__ */ jsx59(
4310
4457
  SmdChipLead,
4311
4458
  {
4312
4459
  rotation: Math.PI,
@@ -4323,7 +4470,7 @@ var SOT457 = () => {
4323
4470
  },
4324
4471
  3
4325
4472
  ),
4326
- /* @__PURE__ */ jsx58(
4473
+ /* @__PURE__ */ jsx59(
4327
4474
  SmdChipLead,
4328
4475
  {
4329
4476
  position: {
@@ -4339,7 +4486,7 @@ var SOT457 = () => {
4339
4486
  },
4340
4487
  3
4341
4488
  ),
4342
- /* @__PURE__ */ jsx58(
4489
+ /* @__PURE__ */ jsx59(
4343
4490
  SmdChipLead,
4344
4491
  {
4345
4492
  position: {
@@ -4355,7 +4502,7 @@ var SOT457 = () => {
4355
4502
  },
4356
4503
  1
4357
4504
  ),
4358
- /* @__PURE__ */ jsx58(
4505
+ /* @__PURE__ */ jsx59(
4359
4506
  SmdChipLead,
4360
4507
  {
4361
4508
  position: {
@@ -4371,7 +4518,7 @@ var SOT457 = () => {
4371
4518
  },
4372
4519
  2
4373
4520
  ),
4374
- /* @__PURE__ */ jsx58(
4521
+ /* @__PURE__ */ jsx59(
4375
4522
  ChipBody,
4376
4523
  {
4377
4524
  center: { x: 0, y: 0, z: 0 },
@@ -4391,8 +4538,8 @@ var SOT457 = () => {
4391
4538
  };
4392
4539
 
4393
4540
  // lib/SOT-963.tsx
4394
- import { Cuboid as Cuboid36 } from "jscad-fiber";
4395
- import { Fragment as Fragment55, jsx as jsx59, jsxs as jsxs55 } from "react/jsx-runtime";
4541
+ import { Cuboid as Cuboid37 } from "jscad-fiber";
4542
+ import { Fragment as Fragment56, jsx as jsx60, jsxs as jsxs56 } from "react/jsx-runtime";
4396
4543
  var SOT963 = () => {
4397
4544
  const bodyWidth = 0.8;
4398
4545
  const bodyLength10 = 1;
@@ -4403,8 +4550,8 @@ var SOT963 = () => {
4403
4550
  const pitch = 0.35;
4404
4551
  const pinsPerSide = 3;
4405
4552
  const pinSpan = pitch * (pinsPerSide - 1);
4406
- return /* @__PURE__ */ jsxs55(Fragment55, { children: [
4407
- /* @__PURE__ */ jsx59(
4553
+ return /* @__PURE__ */ jsxs56(Fragment56, { children: [
4554
+ /* @__PURE__ */ jsx60(
4408
4555
  ChipBody,
4409
4556
  {
4410
4557
  center: { x: 0, y: 0, z: 0 },
@@ -4424,8 +4571,8 @@ var SOT963 = () => {
4424
4571
  ),
4425
4572
  [0, 1, 2].map((i) => {
4426
4573
  const y = -pinSpan / 2 + i * pitch;
4427
- return /* @__PURE__ */ jsx59(
4428
- Cuboid36,
4574
+ return /* @__PURE__ */ jsx60(
4575
+ Cuboid37,
4429
4576
  {
4430
4577
  center: [
4431
4578
  -bodyWidth / 2 + terminalLength / 2 - 0.1,
@@ -4439,8 +4586,8 @@ var SOT963 = () => {
4439
4586
  }),
4440
4587
  [0, 1, 2].map((i) => {
4441
4588
  const y = -pinSpan / 2 + i * pitch;
4442
- return /* @__PURE__ */ jsx59(
4443
- Cuboid36,
4589
+ return /* @__PURE__ */ jsx60(
4590
+ Cuboid37,
4444
4591
  {
4445
4592
  center: [
4446
4593
  bodyWidth / 2 - terminalLength / 2 + 0.1,
@@ -4457,14 +4604,14 @@ var SOT963 = () => {
4457
4604
 
4458
4605
  // lib/TO92.tsx
4459
4606
  import {
4460
- Colorize as Colorize30,
4461
- Cuboid as Cuboid37,
4462
- Hull as Hull21,
4463
- Translate as Translate24,
4464
- Cylinder as Cylinder10,
4465
- Subtract as Subtract7
4607
+ Colorize as Colorize31,
4608
+ Cuboid as Cuboid38,
4609
+ Hull as Hull22,
4610
+ Translate as Translate25,
4611
+ Cylinder as Cylinder11,
4612
+ Subtract as Subtract8
4466
4613
  } from "jscad-fiber";
4467
- import { Fragment as Fragment56, jsx as jsx60, jsxs as jsxs56 } from "react/jsx-runtime";
4614
+ import { Fragment as Fragment57, jsx as jsx61, jsxs as jsxs57 } from "react/jsx-runtime";
4468
4615
  var TO92_DEFAULT_LEADS = [
4469
4616
  { x: -1.27, y: 0.98 },
4470
4617
  { x: 0, y: 2.25 },
@@ -4523,42 +4670,42 @@ var TO92 = ({
4523
4670
  legWidth,
4524
4671
  legThickness
4525
4672
  ];
4526
- return /* @__PURE__ */ jsxs56(Fragment56, { children: [
4527
- /* @__PURE__ */ jsx60(Colorize30, { color: bodyColor, children: /* @__PURE__ */ jsxs56(Subtract7, { children: [
4528
- /* @__PURE__ */ jsx60(
4529
- Translate24,
4673
+ return /* @__PURE__ */ jsxs57(Fragment57, { children: [
4674
+ /* @__PURE__ */ jsx61(Colorize31, { color: bodyColor, children: /* @__PURE__ */ jsxs57(Subtract8, { children: [
4675
+ /* @__PURE__ */ jsx61(
4676
+ Translate25,
4530
4677
  {
4531
4678
  center: [bodyCenter.x, bodyCenter.y, standoff + bodyHeight / 2],
4532
- children: /* @__PURE__ */ jsx60(Cylinder10, { radius: bodyRadius, height: bodyHeight })
4679
+ children: /* @__PURE__ */ jsx61(Cylinder11, { radius: bodyRadius, height: bodyHeight })
4533
4680
  }
4534
4681
  ),
4535
- /* @__PURE__ */ jsx60(
4536
- Translate24,
4682
+ /* @__PURE__ */ jsx61(
4683
+ Translate25,
4537
4684
  {
4538
4685
  center: [
4539
4686
  bodyCenter.x,
4540
4687
  bodyCenter.y - (bodyRadius - flatCut / 2),
4541
4688
  standoff + bodyHeight / 2
4542
4689
  ],
4543
- children: /* @__PURE__ */ jsx60(Cuboid37, { size: [bodyRadius * 2, flatCut, bodyHeight + 0.2] })
4690
+ children: /* @__PURE__ */ jsx61(Cuboid38, { size: [bodyRadius * 2, flatCut, bodyHeight + 0.2] })
4544
4691
  }
4545
4692
  )
4546
4693
  ] }) }),
4547
4694
  leads.map((lead, index) => {
4548
4695
  const exit = exitFor(index);
4549
- return /* @__PURE__ */ jsxs56(Translate24, { center: [0, 0, 0], children: [
4550
- /* @__PURE__ */ jsxs56(Hull21, { children: [
4551
- /* @__PURE__ */ jsx60(Translate24, { center: [lead.x, lead.y, 0], children: /* @__PURE__ */ jsx60(Cuboid37, { size: leadSize }) }),
4552
- /* @__PURE__ */ jsx60(Translate24, { center: [exit.x, exit.y, standoff], children: /* @__PURE__ */ jsx60(Cuboid37, { size: leadSize }) })
4696
+ return /* @__PURE__ */ jsxs57(Translate25, { center: [0, 0, 0], children: [
4697
+ /* @__PURE__ */ jsxs57(Hull22, { children: [
4698
+ /* @__PURE__ */ jsx61(Translate25, { center: [lead.x, lead.y, 0], children: /* @__PURE__ */ jsx61(Cuboid38, { size: leadSize }) }),
4699
+ /* @__PURE__ */ jsx61(Translate25, { center: [exit.x, exit.y, standoff], children: /* @__PURE__ */ jsx61(Cuboid38, { size: leadSize }) })
4553
4700
  ] }),
4554
- /* @__PURE__ */ jsx60(Translate24, { center: [lead.x, lead.y, -leadLength / 2], children: /* @__PURE__ */ jsx60(Cuboid37, { size: [legThickness, legWidth, leadLength] }) })
4701
+ /* @__PURE__ */ jsx61(Translate25, { center: [lead.x, lead.y, -leadLength / 2], children: /* @__PURE__ */ jsx61(Cuboid38, { size: [legThickness, legWidth, leadLength] }) })
4555
4702
  ] }, `lead-${lead.x}-${lead.y}`);
4556
4703
  })
4557
4704
  ] });
4558
4705
  };
4559
4706
 
4560
4707
  // lib/SOT-363.tsx
4561
- import { Fragment as Fragment57, jsx as jsx61, jsxs as jsxs57 } from "react/jsx-runtime";
4708
+ import { Fragment as Fragment58, jsx as jsx62, jsxs as jsxs58 } from "react/jsx-runtime";
4562
4709
  var SOT363 = () => {
4563
4710
  const fullWidth = 2;
4564
4711
  const bodyWidth = 1.25;
@@ -4569,8 +4716,8 @@ var SOT363 = () => {
4569
4716
  const leadHeight = 0.85;
4570
4717
  const padContactLength = 0.3;
4571
4718
  const extendedBodyDistance = fullWidth - bodyWidth;
4572
- return /* @__PURE__ */ jsxs57(Fragment57, { children: [
4573
- /* @__PURE__ */ jsx61(
4719
+ return /* @__PURE__ */ jsxs58(Fragment58, { children: [
4720
+ /* @__PURE__ */ jsx62(
4574
4721
  SmdChipLead,
4575
4722
  {
4576
4723
  rotation: Math.PI,
@@ -4587,7 +4734,7 @@ var SOT363 = () => {
4587
4734
  },
4588
4735
  1
4589
4736
  ),
4590
- /* @__PURE__ */ jsx61(
4737
+ /* @__PURE__ */ jsx62(
4591
4738
  SmdChipLead,
4592
4739
  {
4593
4740
  rotation: Math.PI,
@@ -4604,7 +4751,7 @@ var SOT363 = () => {
4604
4751
  },
4605
4752
  2
4606
4753
  ),
4607
- /* @__PURE__ */ jsx61(
4754
+ /* @__PURE__ */ jsx62(
4608
4755
  SmdChipLead,
4609
4756
  {
4610
4757
  rotation: Math.PI,
@@ -4621,7 +4768,7 @@ var SOT363 = () => {
4621
4768
  },
4622
4769
  3
4623
4770
  ),
4624
- /* @__PURE__ */ jsx61(
4771
+ /* @__PURE__ */ jsx62(
4625
4772
  SmdChipLead,
4626
4773
  {
4627
4774
  position: {
@@ -4637,7 +4784,7 @@ var SOT363 = () => {
4637
4784
  },
4638
4785
  3
4639
4786
  ),
4640
- /* @__PURE__ */ jsx61(
4787
+ /* @__PURE__ */ jsx62(
4641
4788
  SmdChipLead,
4642
4789
  {
4643
4790
  position: {
@@ -4653,7 +4800,7 @@ var SOT363 = () => {
4653
4800
  },
4654
4801
  1
4655
4802
  ),
4656
- /* @__PURE__ */ jsx61(
4803
+ /* @__PURE__ */ jsx62(
4657
4804
  SmdChipLead,
4658
4805
  {
4659
4806
  position: {
@@ -4669,7 +4816,7 @@ var SOT363 = () => {
4669
4816
  },
4670
4817
  2
4671
4818
  ),
4672
- /* @__PURE__ */ jsx61(
4819
+ /* @__PURE__ */ jsx62(
4673
4820
  ChipBody,
4674
4821
  {
4675
4822
  center: { x: 0, y: 0, z: 0 },
@@ -4690,8 +4837,8 @@ var SOT363 = () => {
4690
4837
  var SOT_363_default = SOT363;
4691
4838
 
4692
4839
  // lib/SOT-886.tsx
4693
- import { Cuboid as Cuboid38 } from "jscad-fiber";
4694
- import { Fragment as Fragment58, jsx as jsx62, jsxs as jsxs58 } from "react/jsx-runtime";
4840
+ import { Cuboid as Cuboid39 } from "jscad-fiber";
4841
+ import { Fragment as Fragment59, jsx as jsx63, jsxs as jsxs59 } from "react/jsx-runtime";
4695
4842
  var SOT886 = () => {
4696
4843
  const bodyWidth = 1;
4697
4844
  const bodyLength10 = 1.45;
@@ -4702,8 +4849,8 @@ var SOT886 = () => {
4702
4849
  const pitch = 0.5;
4703
4850
  const pinsPerSide = 3;
4704
4851
  const pinSpan = pitch * (pinsPerSide - 1);
4705
- return /* @__PURE__ */ jsxs58(Fragment58, { children: [
4706
- /* @__PURE__ */ jsx62(
4852
+ return /* @__PURE__ */ jsxs59(Fragment59, { children: [
4853
+ /* @__PURE__ */ jsx63(
4707
4854
  ChipBody,
4708
4855
  {
4709
4856
  center: { x: 0, y: 0, z: terminalThickness },
@@ -4718,8 +4865,8 @@ var SOT886 = () => {
4718
4865
  ),
4719
4866
  [0, 1, 2].map((i) => {
4720
4867
  const y = -pinSpan / 2 + i * pitch;
4721
- return /* @__PURE__ */ jsx62(
4722
- Cuboid38,
4868
+ return /* @__PURE__ */ jsx63(
4869
+ Cuboid39,
4723
4870
  {
4724
4871
  center: [
4725
4872
  -bodyWidth / 2 + terminalLength / 2,
@@ -4733,8 +4880,8 @@ var SOT886 = () => {
4733
4880
  }),
4734
4881
  [0, 1, 2].map((i) => {
4735
4882
  const y = -pinSpan / 2 + i * pitch;
4736
- return /* @__PURE__ */ jsx62(
4737
- Cuboid38,
4883
+ return /* @__PURE__ */ jsx63(
4884
+ Cuboid39,
4738
4885
  {
4739
4886
  center: [
4740
4887
  bodyWidth / 2 - terminalLength / 2,
@@ -4750,8 +4897,8 @@ var SOT886 = () => {
4750
4897
  };
4751
4898
 
4752
4899
  // lib/sod-323.tsx
4753
- import { Colorize as Colorize31, Cuboid as Cuboid39 } from "jscad-fiber";
4754
- import { Fragment as Fragment59, jsx as jsx63, jsxs as jsxs59 } from "react/jsx-runtime";
4900
+ import { Colorize as Colorize32, Cuboid as Cuboid40 } from "jscad-fiber";
4901
+ import { Fragment as Fragment60, jsx as jsx64, jsxs as jsxs60 } from "react/jsx-runtime";
4755
4902
  var SOD323 = () => {
4756
4903
  const fullWidth = 2.5;
4757
4904
  const bodyLength10 = 1.4;
@@ -4763,8 +4910,8 @@ var SOD323 = () => {
4763
4910
  const padCenterX = bodyWidth / 2;
4764
4911
  const bodyDistance = 0.45;
4765
4912
  const leadHeight = 0.7;
4766
- return /* @__PURE__ */ jsxs59(Fragment59, { children: [
4767
- /* @__PURE__ */ jsx63(
4913
+ return /* @__PURE__ */ jsxs60(Fragment60, { children: [
4914
+ /* @__PURE__ */ jsx64(
4768
4915
  SmdChipLead,
4769
4916
  {
4770
4917
  position: {
@@ -4780,7 +4927,7 @@ var SOD323 = () => {
4780
4927
  },
4781
4928
  1
4782
4929
  ),
4783
- /* @__PURE__ */ jsx63(
4930
+ /* @__PURE__ */ jsx64(
4784
4931
  SmdChipLead,
4785
4932
  {
4786
4933
  rotation: Math.PI,
@@ -4797,7 +4944,7 @@ var SOD323 = () => {
4797
4944
  },
4798
4945
  1
4799
4946
  ),
4800
- /* @__PURE__ */ jsx63(Colorize31, { color: "#222", children: /* @__PURE__ */ jsx63(
4947
+ /* @__PURE__ */ jsx64(Colorize32, { color: "#222", children: /* @__PURE__ */ jsx64(
4801
4948
  ChipBody,
4802
4949
  {
4803
4950
  center: { x: 0, y: 0, z: 0 },
@@ -4810,8 +4957,8 @@ var SOD323 = () => {
4810
4957
  heightAboveSurface: 0.05
4811
4958
  }
4812
4959
  ) }),
4813
- /* @__PURE__ */ jsx63(
4814
- Cuboid39,
4960
+ /* @__PURE__ */ jsx64(
4961
+ Cuboid40,
4815
4962
  {
4816
4963
  color: "#777",
4817
4964
  size: [bodyWidth / 3, bodyLength10 - 0.075, 0.02],
@@ -4822,8 +4969,8 @@ var SOD323 = () => {
4822
4969
  };
4823
4970
 
4824
4971
  // lib/sod-323F.tsx
4825
- import { Colorize as Colorize32, Cuboid as Cuboid40, Hull as Hull23, Translate as Translate26, Union as Union18 } from "jscad-fiber";
4826
- import { Fragment as Fragment60, jsx as jsx64, jsxs as jsxs60 } from "react/jsx-runtime";
4972
+ import { Colorize as Colorize33, Cuboid as Cuboid41, Hull as Hull24, Translate as Translate27, Union as Union19 } from "jscad-fiber";
4973
+ import { Fragment as Fragment61, jsx as jsx65, jsxs as jsxs61 } from "react/jsx-runtime";
4827
4974
  var SOD323F = () => {
4828
4975
  const fullWidth = 1.7;
4829
4976
  const bodyLength10 = 1.25;
@@ -4835,37 +4982,37 @@ var SOD323F = () => {
4835
4982
  const rightPadCenterX = fullWidth / 2 + padLength / 2;
4836
4983
  const taperOffset = 0.2;
4837
4984
  const straightHeight = padThickness;
4838
- return /* @__PURE__ */ jsxs60(Fragment60, { children: [
4839
- /* @__PURE__ */ jsx64(
4840
- Cuboid40,
4985
+ return /* @__PURE__ */ jsxs61(Fragment61, { children: [
4986
+ /* @__PURE__ */ jsx65(
4987
+ Cuboid41,
4841
4988
  {
4842
4989
  color: "#ccc",
4843
4990
  size: [padLength, padWidth, padThickness],
4844
4991
  center: [leftPadCenterX, 0, padThickness / 2]
4845
4992
  }
4846
4993
  ),
4847
- /* @__PURE__ */ jsx64(
4848
- Cuboid40,
4994
+ /* @__PURE__ */ jsx65(
4995
+ Cuboid41,
4849
4996
  {
4850
4997
  color: "#ccc",
4851
4998
  size: [padLength, padWidth, padThickness],
4852
4999
  center: [rightPadCenterX, 0, padThickness / 2]
4853
5000
  }
4854
5001
  ),
4855
- /* @__PURE__ */ jsx64(Colorize32, { color: "#222", children: /* @__PURE__ */ jsxs60(Union18, { children: [
4856
- /* @__PURE__ */ jsx64(Translate26, { z: straightHeight / 2, children: /* @__PURE__ */ jsx64(Cuboid40, { size: [fullWidth, bodyLength10, straightHeight] }) }),
4857
- /* @__PURE__ */ jsxs60(Hull23, { children: [
4858
- /* @__PURE__ */ jsx64(Translate26, { z: straightHeight, children: /* @__PURE__ */ jsx64(Cuboid40, { size: [fullWidth, bodyLength10, 0.01] }) }),
4859
- /* @__PURE__ */ jsx64(Translate26, { z: bodyHeight, children: /* @__PURE__ */ jsx64(
4860
- Cuboid40,
5002
+ /* @__PURE__ */ jsx65(Colorize33, { color: "#222", children: /* @__PURE__ */ jsxs61(Union19, { children: [
5003
+ /* @__PURE__ */ jsx65(Translate27, { z: straightHeight / 2, children: /* @__PURE__ */ jsx65(Cuboid41, { size: [fullWidth, bodyLength10, straightHeight] }) }),
5004
+ /* @__PURE__ */ jsxs61(Hull24, { children: [
5005
+ /* @__PURE__ */ jsx65(Translate27, { z: straightHeight, children: /* @__PURE__ */ jsx65(Cuboid41, { size: [fullWidth, bodyLength10, 0.01] }) }),
5006
+ /* @__PURE__ */ jsx65(Translate27, { z: bodyHeight, children: /* @__PURE__ */ jsx65(
5007
+ Cuboid41,
4861
5008
  {
4862
5009
  size: [fullWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
4863
5010
  }
4864
5011
  ) })
4865
5012
  ] })
4866
5013
  ] }) }),
4867
- /* @__PURE__ */ jsx64(
4868
- Cuboid40,
5014
+ /* @__PURE__ */ jsx65(
5015
+ Cuboid41,
4869
5016
  {
4870
5017
  color: "#777",
4871
5018
  size: [fullWidth / 3, bodyLength10 - taperOffset, 0.02],
@@ -4876,8 +5023,8 @@ var SOD323F = () => {
4876
5023
  };
4877
5024
 
4878
5025
  // lib/sod-323FL.tsx
4879
- import { Colorize as Colorize33, Cuboid as Cuboid41 } from "jscad-fiber";
4880
- import { Fragment as Fragment61, jsx as jsx65, jsxs as jsxs61 } from "react/jsx-runtime";
5026
+ import { Colorize as Colorize34, Cuboid as Cuboid42 } from "jscad-fiber";
5027
+ import { Fragment as Fragment62, jsx as jsx66, jsxs as jsxs62 } from "react/jsx-runtime";
4881
5028
  var SOD323FL = () => {
4882
5029
  const fullWidth = 1.775;
4883
5030
  const bodyLength10 = 1.25;
@@ -4888,24 +5035,24 @@ var SOD323FL = () => {
4888
5035
  const leftPadCenterX = -fullWidth / 2 - padLength / 2 + 0.04;
4889
5036
  const rightPadCenterX = fullWidth / 2 + padLength / 2 - 0.04;
4890
5037
  const taperOffset = 0.2;
4891
- return /* @__PURE__ */ jsxs61(Fragment61, { children: [
4892
- /* @__PURE__ */ jsx65(
4893
- Cuboid41,
5038
+ return /* @__PURE__ */ jsxs62(Fragment62, { children: [
5039
+ /* @__PURE__ */ jsx66(
5040
+ Cuboid42,
4894
5041
  {
4895
5042
  color: "#ccc",
4896
5043
  size: [padLength, padWidth, padThickness],
4897
5044
  center: [leftPadCenterX, 0, padThickness / 2]
4898
5045
  }
4899
5046
  ),
4900
- /* @__PURE__ */ jsx65(
4901
- Cuboid41,
5047
+ /* @__PURE__ */ jsx66(
5048
+ Cuboid42,
4902
5049
  {
4903
5050
  color: "#ccc",
4904
5051
  size: [padLength, padWidth, padThickness],
4905
5052
  center: [rightPadCenterX, 0, padThickness / 2]
4906
5053
  }
4907
5054
  ),
4908
- /* @__PURE__ */ jsx65(Colorize33, { color: "#222", children: /* @__PURE__ */ jsx65(
5055
+ /* @__PURE__ */ jsx66(Colorize34, { color: "#222", children: /* @__PURE__ */ jsx66(
4909
5056
  ChipBody,
4910
5057
  {
4911
5058
  width: fullWidth,
@@ -4918,8 +5065,8 @@ var SOD323FL = () => {
4918
5065
  includeNotch: false
4919
5066
  }
4920
5067
  ) }),
4921
- /* @__PURE__ */ jsx65(
4922
- Cuboid41,
5068
+ /* @__PURE__ */ jsx66(
5069
+ Cuboid42,
4923
5070
  {
4924
5071
  color: "#777",
4925
5072
  size: [fullWidth / 3, bodyLength10 - 0.05, 0.02],
@@ -4930,30 +5077,30 @@ var SOD323FL = () => {
4930
5077
  };
4931
5078
 
4932
5079
  // lib/AxialCapacitor.tsx
4933
- import { Colorize as Colorize34, Cylinder as Cylinder11, Rotate as Rotate12, Sphere as Sphere2, Translate as Translate28 } from "jscad-fiber";
4934
- import { Fragment as Fragment62, jsx as jsx66, jsxs as jsxs62 } from "react/jsx-runtime";
5080
+ import { Colorize as Colorize35, Cylinder as Cylinder12, Rotate as Rotate12, Sphere as Sphere2, Translate as Translate29 } from "jscad-fiber";
5081
+ import { Fragment as Fragment63, jsx as jsx67, jsxs as jsxs63 } from "react/jsx-runtime";
4935
5082
  var AxialCapacitor = ({ pitch = 10 }) => {
4936
5083
  const heightToCenterOfCapacitor = 0.5 + 4 / 2;
4937
- return /* @__PURE__ */ jsxs62(Fragment62, { children: [
4938
- /* @__PURE__ */ jsx66(Cylinder11, { height: 4, radius: 0.5, center: [-pitch / 2, 0, 0.5] }),
4939
- /* @__PURE__ */ jsx66(
5084
+ return /* @__PURE__ */ jsxs63(Fragment63, { children: [
5085
+ /* @__PURE__ */ jsx67(Cylinder12, { height: 4, radius: 0.5, center: [-pitch / 2, 0, 0.5] }),
5086
+ /* @__PURE__ */ jsx67(
4940
5087
  Sphere2,
4941
5088
  {
4942
5089
  radius: 0.5,
4943
5090
  center: [-pitch / 2, 0, heightToCenterOfCapacitor]
4944
5091
  }
4945
5092
  ),
4946
- /* @__PURE__ */ jsx66(Translate28, { x: -2.5, y: 0, z: heightToCenterOfCapacitor, children: /* @__PURE__ */ jsxs62(Rotate12, { rotation: [0, Math.PI / 2, 0], children: [
4947
- /* @__PURE__ */ jsx66(
4948
- Cylinder11,
5093
+ /* @__PURE__ */ jsx67(Translate29, { x: -2.5, y: 0, z: heightToCenterOfCapacitor, children: /* @__PURE__ */ jsxs63(Rotate12, { rotation: [0, Math.PI / 2, 0], children: [
5094
+ /* @__PURE__ */ jsx67(
5095
+ Cylinder12,
4949
5096
  {
4950
5097
  height: pitch,
4951
5098
  radius: 0.5,
4952
5099
  center: [0, 0, heightToCenterOfCapacitor]
4953
5100
  }
4954
5101
  ),
4955
- /* @__PURE__ */ jsx66(Colorize34, { color: "#d2b48c", children: /* @__PURE__ */ jsx66(
4956
- Cylinder11,
5102
+ /* @__PURE__ */ jsx67(Colorize35, { color: "#d2b48c", children: /* @__PURE__ */ jsx67(
5103
+ Cylinder12,
4957
5104
  {
4958
5105
  height: 5,
4959
5106
  radius: 1.3,
@@ -4961,14 +5108,14 @@ var AxialCapacitor = ({ pitch = 10 }) => {
4961
5108
  }
4962
5109
  ) })
4963
5110
  ] }) }),
4964
- /* @__PURE__ */ jsx66(Cylinder11, { height: 4, radius: 0.5, center: [pitch / 2, 0, 0.5] }),
4965
- /* @__PURE__ */ jsx66(Sphere2, { radius: 0.5, center: [pitch / 2, 0, heightToCenterOfCapacitor] })
5111
+ /* @__PURE__ */ jsx67(Cylinder12, { height: 4, radius: 0.5, center: [pitch / 2, 0, 0.5] }),
5112
+ /* @__PURE__ */ jsx67(Sphere2, { radius: 0.5, center: [pitch / 2, 0, heightToCenterOfCapacitor] })
4966
5113
  ] });
4967
5114
  };
4968
5115
 
4969
5116
  // lib/stampboard.tsx
4970
- import { Colorize as Colorize35, Cuboid as Cuboid42, Cylinder as Cylinder12, Subtract as Subtract8, Union as Union20 } from "jscad-fiber";
4971
- import { Fragment as Fragment63, jsx as jsx67, jsxs as jsxs63 } from "react/jsx-runtime";
5117
+ import { Colorize as Colorize36, Cuboid as Cuboid43, Cylinder as Cylinder13, Subtract as Subtract9, Union as Union21 } from "jscad-fiber";
5118
+ import { Fragment as Fragment64, jsx as jsx68, jsxs as jsxs64 } from "react/jsx-runtime";
4972
5119
  var StampBoard = ({
4973
5120
  bodyWidth = 21,
4974
5121
  boardThickness = 0.5,
@@ -5066,16 +5213,16 @@ var StampBoard = ({
5066
5213
  }
5067
5214
  }
5068
5215
  }
5069
- const boardBody = /* @__PURE__ */ jsx67(Colorize35, { color: "#051a0a", children: /* @__PURE__ */ jsxs63(Subtract8, { children: [
5070
- /* @__PURE__ */ jsx67(
5071
- Cuboid42,
5216
+ const boardBody = /* @__PURE__ */ jsx68(Colorize36, { color: "#051a0a", children: /* @__PURE__ */ jsxs64(Subtract9, { children: [
5217
+ /* @__PURE__ */ jsx68(
5218
+ Cuboid43,
5072
5219
  {
5073
5220
  center: [0, 0, boardCenterZ],
5074
5221
  size: [bodyWidth, bodyLength10, boardThickness]
5075
5222
  }
5076
5223
  ),
5077
- pads.map((pad, index) => /* @__PURE__ */ jsx67(
5078
- Cuboid42,
5224
+ pads.map((pad, index) => /* @__PURE__ */ jsx68(
5225
+ Cuboid43,
5079
5226
  {
5080
5227
  center: [pad.x, pad.y, boardCenterZ],
5081
5228
  size: [pad.pl + 0.01, pad.pw + 0.01, boardHeight]
@@ -5083,8 +5230,8 @@ var StampBoard = ({
5083
5230
  index
5084
5231
  ))
5085
5232
  ] }) });
5086
- const holePads = innerHoles && holes.map((hole, index) => /* @__PURE__ */ jsx67(
5087
- Cylinder12,
5233
+ const holePads = innerHoles && holes.map((hole, index) => /* @__PURE__ */ jsx68(
5234
+ Cylinder13,
5088
5235
  {
5089
5236
  color: "black",
5090
5237
  center: [hole.x, hole.y, boardCenterZ],
@@ -5093,19 +5240,19 @@ var StampBoard = ({
5093
5240
  },
5094
5241
  index
5095
5242
  ));
5096
- const rectPads = pads.map((pad, index) => /* @__PURE__ */ jsx67(
5097
- Cuboid42,
5243
+ const rectPads = pads.map((pad, index) => /* @__PURE__ */ jsx68(
5244
+ Cuboid43,
5098
5245
  {
5099
5246
  center: [pad.x, pad.y, boardCenterZ],
5100
5247
  size: [pad.pl + 0.01, pad.pw + 0.01, boardHeight]
5101
5248
  },
5102
5249
  index
5103
5250
  ));
5104
- return /* @__PURE__ */ jsxs63(Fragment63, { children: [
5251
+ return /* @__PURE__ */ jsxs64(Fragment64, { children: [
5105
5252
  boardBody,
5106
- /* @__PURE__ */ jsx67(Colorize35, { color: "#FFD700", children: innerHoles ? /* @__PURE__ */ jsxs63(Subtract8, { children: [
5107
- /* @__PURE__ */ jsx67(Union20, { children: pads.map((pad, index) => /* @__PURE__ */ jsx67(
5108
- Cuboid42,
5253
+ /* @__PURE__ */ jsx68(Colorize36, { color: "#FFD700", children: innerHoles ? /* @__PURE__ */ jsxs64(Subtract9, { children: [
5254
+ /* @__PURE__ */ jsx68(Union21, { children: pads.map((pad, index) => /* @__PURE__ */ jsx68(
5255
+ Cuboid43,
5109
5256
  {
5110
5257
  center: [pad.x, pad.y, boardCenterZ],
5111
5258
  size: [pad.pl + 0.01, pad.pw + 0.01, boardHeight]
@@ -5118,11 +5265,11 @@ var StampBoard = ({
5118
5265
  };
5119
5266
 
5120
5267
  // lib/MountedPcbModule.tsx
5121
- import { Colorize as Colorize37, Cuboid as Cuboid44, Cylinder as Cylinder13, Subtract as Subtract10 } from "jscad-fiber";
5268
+ import { Colorize as Colorize38, Cuboid as Cuboid45, Cylinder as Cylinder14, Subtract as Subtract11 } from "jscad-fiber";
5122
5269
 
5123
5270
  // lib/Screen.tsx
5124
- import { Colorize as Colorize36, Cuboid as Cuboid43, Subtract as Subtract9, Translate as Translate29 } from "jscad-fiber";
5125
- import { jsx as jsx68, jsxs as jsxs64 } from "react/jsx-runtime";
5271
+ import { Colorize as Colorize37, Cuboid as Cuboid44, Subtract as Subtract10, Translate as Translate30 } from "jscad-fiber";
5272
+ import { jsx as jsx69, jsxs as jsxs65 } from "react/jsx-runtime";
5126
5273
  var Screen = ({
5127
5274
  width: width10 = 30,
5128
5275
  height: height10 = 22,
@@ -5150,32 +5297,32 @@ var Screen = ({
5150
5297
  const offsetX = offset?.x ?? 0;
5151
5298
  const offsetY = offset?.y ?? 0;
5152
5299
  const offsetZ = offset?.z ?? 0;
5153
- return /* @__PURE__ */ jsxs64(Translate29, { offset: { x: offsetX, y: offsetY, z: offsetZ }, children: [
5154
- backBlockHeight > 0 && /* @__PURE__ */ jsx68(Colorize36, { color: bezelColor, children: /* @__PURE__ */ jsx68(
5155
- Cuboid43,
5300
+ return /* @__PURE__ */ jsxs65(Translate30, { offset: { x: offsetX, y: offsetY, z: offsetZ }, children: [
5301
+ backBlockHeight > 0 && /* @__PURE__ */ jsx69(Colorize37, { color: bezelColor, children: /* @__PURE__ */ jsx69(
5302
+ Cuboid44,
5156
5303
  {
5157
5304
  size: [w, h, backBlockHeight],
5158
5305
  offset: [0, 0, backBlockHeight / 2]
5159
5306
  }
5160
5307
  ) }),
5161
- /* @__PURE__ */ jsx68(Colorize36, { color: bezelColor, children: /* @__PURE__ */ jsxs64(Subtract9, { children: [
5162
- /* @__PURE__ */ jsx68(
5163
- Cuboid43,
5308
+ /* @__PURE__ */ jsx69(Colorize37, { color: bezelColor, children: /* @__PURE__ */ jsxs65(Subtract10, { children: [
5309
+ /* @__PURE__ */ jsx69(
5310
+ Cuboid44,
5164
5311
  {
5165
5312
  size: [w, h, clampedBezelDepth],
5166
5313
  offset: [0, 0, backBlockHeight + clampedBezelDepth / 2]
5167
5314
  }
5168
5315
  ),
5169
- /* @__PURE__ */ jsx68(
5170
- Cuboid43,
5316
+ /* @__PURE__ */ jsx69(
5317
+ Cuboid44,
5171
5318
  {
5172
5319
  size: [innerWidth, innerHeight, clampedBezelDepth + 0.02],
5173
5320
  offset: [0, 0, backBlockHeight + clampedBezelDepth / 2]
5174
5321
  }
5175
5322
  )
5176
5323
  ] }) }),
5177
- /* @__PURE__ */ jsx68(Colorize36, { color: screenColor, children: /* @__PURE__ */ jsx68(
5178
- Cuboid43,
5324
+ /* @__PURE__ */ jsx69(Colorize37, { color: screenColor, children: /* @__PURE__ */ jsx69(
5325
+ Cuboid44,
5179
5326
  {
5180
5327
  size: [innerWidth, innerHeight, screenThickness],
5181
5328
  offset: [0, 0, backBlockHeight + screenThickness / 2]
@@ -5186,7 +5333,7 @@ var Screen = ({
5186
5333
  var Display = Screen;
5187
5334
 
5188
5335
  // lib/MountedPcbModule.tsx
5189
- import { Fragment as Fragment64, jsx as jsx69, jsxs as jsxs65 } from "react/jsx-runtime";
5336
+ import { Fragment as Fragment65, jsx as jsx70, jsxs as jsxs66 } from "react/jsx-runtime";
5190
5337
  var MountedPcbModule = ({
5191
5338
  numPins = 5,
5192
5339
  rows = 1,
@@ -5287,16 +5434,16 @@ var MountedPcbModule = ({
5287
5434
  const shortSidePinLength = 3;
5288
5435
  const boardOffsetZ = nopin || female ? 0 : pinBodyHeight;
5289
5436
  const boardTopZ = boardOffsetZ + boardThickness;
5290
- const boardBody = /* @__PURE__ */ jsx69(Colorize37, { color: "#008080", children: /* @__PURE__ */ jsxs65(Subtract10, { children: [
5291
- /* @__PURE__ */ jsx69(
5292
- Cuboid44,
5437
+ const boardBody = /* @__PURE__ */ jsx70(Colorize38, { color: "#008080", children: /* @__PURE__ */ jsxs66(Subtract11, { children: [
5438
+ /* @__PURE__ */ jsx70(
5439
+ Cuboid45,
5293
5440
  {
5294
5441
  center: [0, 0, boardCenterZ + boardOffsetZ],
5295
5442
  size: [finalWidth, finalHeight, boardThickness]
5296
5443
  }
5297
5444
  ),
5298
- holePositions.map((hole, index) => /* @__PURE__ */ jsx69(
5299
- Cylinder13,
5445
+ holePositions.map((hole, index) => /* @__PURE__ */ jsx70(
5446
+ Cylinder14,
5300
5447
  {
5301
5448
  center: [hole.x, hole.y, boardCenterZ + boardOffsetZ],
5302
5449
  radius: od / 2,
@@ -5304,8 +5451,8 @@ var MountedPcbModule = ({
5304
5451
  },
5305
5452
  `hole-${index}`
5306
5453
  )),
5307
- pins.map((pin, index) => /* @__PURE__ */ jsx69(
5308
- Cylinder13,
5454
+ pins.map((pin, index) => /* @__PURE__ */ jsx70(
5455
+ Cylinder14,
5309
5456
  {
5310
5457
  center: [pin.x, pin.y, boardCenterZ + boardOffsetZ],
5311
5458
  radius: od / 2,
@@ -5314,17 +5461,17 @@ var MountedPcbModule = ({
5314
5461
  `pin-hole-${index}`
5315
5462
  ))
5316
5463
  ] }) });
5317
- const platedHoles = pins.map((pin, index) => /* @__PURE__ */ jsx69(Colorize37, { color: "#FFD700", children: /* @__PURE__ */ jsxs65(Subtract10, { children: [
5318
- /* @__PURE__ */ jsx69(
5319
- Cylinder13,
5464
+ const platedHoles = pins.map((pin, index) => /* @__PURE__ */ jsx70(Colorize38, { color: "#FFD700", children: /* @__PURE__ */ jsxs66(Subtract11, { children: [
5465
+ /* @__PURE__ */ jsx70(
5466
+ Cylinder14,
5320
5467
  {
5321
5468
  center: [pin.x, pin.y, boardThickness / 2 + boardOffsetZ],
5322
5469
  radius: od / 2,
5323
5470
  height: boardThickness
5324
5471
  }
5325
5472
  ),
5326
- /* @__PURE__ */ jsx69(
5327
- Cylinder13,
5473
+ /* @__PURE__ */ jsx70(
5474
+ Cylinder14,
5328
5475
  {
5329
5476
  center: [pin.x, pin.y, boardThickness / 2 + boardOffsetZ],
5330
5477
  radius: id / 2,
@@ -5332,7 +5479,7 @@ var MountedPcbModule = ({
5332
5479
  }
5333
5480
  )
5334
5481
  ] }) }, `pin-${index}`));
5335
- const headerPins = pins.map((pin, index) => /* @__PURE__ */ jsx69(
5482
+ const headerPins = pins.map((pin, index) => /* @__PURE__ */ jsx70(
5336
5483
  PinHeader,
5337
5484
  {
5338
5485
  x: pin.x,
@@ -5345,7 +5492,7 @@ var MountedPcbModule = ({
5345
5492
  },
5346
5493
  `pin-3d-${index}`
5347
5494
  ));
5348
- const femaleHeaderRow = pins.map((pin, index) => /* @__PURE__ */ jsx69(
5495
+ const femaleHeaderRow = pins.map((pin, index) => /* @__PURE__ */ jsx70(
5349
5496
  FemaleHeader,
5350
5497
  {
5351
5498
  x: pin.x,
@@ -5354,12 +5501,12 @@ var MountedPcbModule = ({
5354
5501
  },
5355
5502
  `female-pin-3d-${index}`
5356
5503
  ));
5357
- return /* @__PURE__ */ jsxs65(Fragment64, { children: [
5504
+ return /* @__PURE__ */ jsxs66(Fragment65, { children: [
5358
5505
  boardBody,
5359
5506
  platedHoles,
5360
5507
  !female && !nopin && headerPins,
5361
5508
  female && femaleHeaderRow,
5362
- showScreen && /* @__PURE__ */ jsx69(
5509
+ showScreen && /* @__PURE__ */ jsx70(
5363
5510
  Screen,
5364
5511
  {
5365
5512
  width: screenWidth ?? finalWidth * 0.8,
@@ -5375,8 +5522,8 @@ var MountedPcbModule = ({
5375
5522
  };
5376
5523
 
5377
5524
  // lib/SOD723.tsx
5378
- import { Colorize as Colorize38, Cuboid as Cuboid45, Hull as Hull25, Translate as Translate30, Union as Union21 } from "jscad-fiber";
5379
- import { Fragment as Fragment65, jsx as jsx70, jsxs as jsxs66 } from "react/jsx-runtime";
5525
+ import { Colorize as Colorize39, Cuboid as Cuboid46, Hull as Hull26, Translate as Translate31, Union as Union22 } from "jscad-fiber";
5526
+ import { Fragment as Fragment66, jsx as jsx71, jsxs as jsxs67 } from "react/jsx-runtime";
5380
5527
  var SOD723 = () => {
5381
5528
  const fullWidth = 1.4;
5382
5529
  const bodyLength10 = 0.6;
@@ -5389,37 +5536,37 @@ var SOD723 = () => {
5389
5536
  const rightPadCenterX = bodyWidth / 2 - padLength / 2 + 0.15;
5390
5537
  const taperOffset = 0.2;
5391
5538
  const straightHeight = bodyHeight * 0.24;
5392
- return /* @__PURE__ */ jsxs66(Fragment65, { children: [
5393
- /* @__PURE__ */ jsx70(
5394
- Cuboid45,
5539
+ return /* @__PURE__ */ jsxs67(Fragment66, { children: [
5540
+ /* @__PURE__ */ jsx71(
5541
+ Cuboid46,
5395
5542
  {
5396
5543
  color: "#ccc",
5397
5544
  size: [padLength, padWidth, padThickness],
5398
5545
  center: [leftPadCenterX, 0, padThickness / 2]
5399
5546
  }
5400
5547
  ),
5401
- /* @__PURE__ */ jsx70(
5402
- Cuboid45,
5548
+ /* @__PURE__ */ jsx71(
5549
+ Cuboid46,
5403
5550
  {
5404
5551
  color: "#ccc",
5405
5552
  size: [padLength, padWidth, padThickness],
5406
5553
  center: [rightPadCenterX, 0, padThickness / 2]
5407
5554
  }
5408
5555
  ),
5409
- /* @__PURE__ */ jsx70(Colorize38, { color: "#222", children: /* @__PURE__ */ jsxs66(Union21, { children: [
5410
- /* @__PURE__ */ jsx70(Translate30, { z: straightHeight / 2, children: /* @__PURE__ */ jsx70(Cuboid45, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
5411
- /* @__PURE__ */ jsxs66(Hull25, { children: [
5412
- /* @__PURE__ */ jsx70(Translate30, { z: straightHeight, children: /* @__PURE__ */ jsx70(Cuboid45, { size: [bodyWidth, bodyLength10, 0.01] }) }),
5413
- /* @__PURE__ */ jsx70(Translate30, { z: bodyHeight, children: /* @__PURE__ */ jsx70(
5414
- Cuboid45,
5556
+ /* @__PURE__ */ jsx71(Colorize39, { color: "#222", children: /* @__PURE__ */ jsxs67(Union22, { children: [
5557
+ /* @__PURE__ */ jsx71(Translate31, { z: straightHeight / 2, children: /* @__PURE__ */ jsx71(Cuboid46, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
5558
+ /* @__PURE__ */ jsxs67(Hull26, { children: [
5559
+ /* @__PURE__ */ jsx71(Translate31, { z: straightHeight, children: /* @__PURE__ */ jsx71(Cuboid46, { size: [bodyWidth, bodyLength10, 0.01] }) }),
5560
+ /* @__PURE__ */ jsx71(Translate31, { z: bodyHeight, children: /* @__PURE__ */ jsx71(
5561
+ Cuboid46,
5415
5562
  {
5416
5563
  size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
5417
5564
  }
5418
5565
  ) })
5419
5566
  ] })
5420
- ] }) }),
5421
- /* @__PURE__ */ jsx70(
5422
- Cuboid45,
5567
+ ] }) }),
5568
+ /* @__PURE__ */ jsx71(
5569
+ Cuboid46,
5423
5570
  {
5424
5571
  color: "#777",
5425
5572
  size: [fullWidth / 6, bodyLength10 - taperOffset, 0.02],
@@ -5432,14 +5579,14 @@ var SOD723_default = SOD723;
5432
5579
 
5433
5580
  // lib/JSTZH1_5mm.tsx
5434
5581
  import {
5435
- Colorize as Colorize39,
5436
- Cuboid as Cuboid46,
5437
- Cylinder as Cylinder14,
5582
+ Colorize as Colorize40,
5583
+ Cuboid as Cuboid47,
5584
+ Cylinder as Cylinder15,
5438
5585
  Rotate as Rotate13,
5439
- Subtract as Subtract11,
5440
- Translate as Translate31
5586
+ Subtract as Subtract12,
5587
+ Translate as Translate32
5441
5588
  } from "jscad-fiber";
5442
- import { Fragment as Fragment66, jsx as jsx71, jsxs as jsxs67 } from "react/jsx-runtime";
5589
+ import { Fragment as Fragment67, jsx as jsx72, jsxs as jsxs68 } from "react/jsx-runtime";
5443
5590
  var JSTZH1_5mm = ({
5444
5591
  numPins = 7,
5445
5592
  showPins = true,
@@ -5455,17 +5602,17 @@ var JSTZH1_5mm = ({
5455
5602
  const pinLength = 6;
5456
5603
  const bodyWidth = (numPins - 1) * pitch + 4;
5457
5604
  const startX = -((numPins - 1) * pitch) / 2;
5458
- return /* @__PURE__ */ jsxs67(Fragment66, { children: [
5459
- /* @__PURE__ */ jsx71(Translate31, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx71(Rotate13, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx71(Colorize39, { color: bodyColor, children: /* @__PURE__ */ jsxs67(Subtract11, { children: [
5460
- /* @__PURE__ */ jsx71(
5461
- Cuboid46,
5605
+ return /* @__PURE__ */ jsxs68(Fragment67, { children: [
5606
+ /* @__PURE__ */ jsx72(Translate32, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx72(Rotate13, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx72(Colorize40, { color: bodyColor, children: /* @__PURE__ */ jsxs68(Subtract12, { children: [
5607
+ /* @__PURE__ */ jsx72(
5608
+ Cuboid47,
5462
5609
  {
5463
5610
  size: [bodyWidth, bodyDepth, bodyHeight],
5464
5611
  center: [0, 0, bodyHeight / 2]
5465
5612
  }
5466
5613
  ),
5467
- /* @__PURE__ */ jsx71(
5468
- Cuboid46,
5614
+ /* @__PURE__ */ jsx72(
5615
+ Cuboid47,
5469
5616
  {
5470
5617
  size: [
5471
5618
  bodyWidth - wallThickness * 2,
@@ -5475,15 +5622,15 @@ var JSTZH1_5mm = ({
5475
5622
  center: [0, 0, hollowHeight / 2]
5476
5623
  }
5477
5624
  ),
5478
- /* @__PURE__ */ jsx71(
5479
- Cuboid46,
5625
+ /* @__PURE__ */ jsx72(
5626
+ Cuboid47,
5480
5627
  {
5481
5628
  size: [bodyWidth, bodyDepth / 3, hollowHeight],
5482
5629
  center: [0, 0, hollowHeight / 6]
5483
5630
  }
5484
5631
  ),
5485
- /* @__PURE__ */ jsx71(
5486
- Cuboid46,
5632
+ /* @__PURE__ */ jsx72(
5633
+ Cuboid47,
5487
5634
  {
5488
5635
  size: [
5489
5636
  bodyWidth - wallThickness * 2,
@@ -5497,8 +5644,8 @@ var JSTZH1_5mm = ({
5497
5644
  ]
5498
5645
  }
5499
5646
  ),
5500
- /* @__PURE__ */ jsx71(
5501
- Cuboid46,
5647
+ /* @__PURE__ */ jsx72(
5648
+ Cuboid47,
5502
5649
  {
5503
5650
  size: [
5504
5651
  bodyWidth - wallThickness * 2,
@@ -5512,37 +5659,37 @@ var JSTZH1_5mm = ({
5512
5659
  ]
5513
5660
  }
5514
5661
  ),
5515
- /* @__PURE__ */ jsx71(
5516
- Cuboid46,
5662
+ /* @__PURE__ */ jsx72(
5663
+ Cuboid47,
5517
5664
  {
5518
5665
  size: [1, wallThickness + 2, 1],
5519
5666
  center: [-bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
5520
5667
  }
5521
5668
  ),
5522
- /* @__PURE__ */ jsx71(
5523
- Cuboid46,
5669
+ /* @__PURE__ */ jsx72(
5670
+ Cuboid47,
5524
5671
  {
5525
5672
  size: [1, wallThickness + 3, 1],
5526
5673
  center: [bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
5527
5674
  }
5528
5675
  ),
5529
- /* @__PURE__ */ jsx71(
5530
- Cuboid46,
5676
+ /* @__PURE__ */ jsx72(
5677
+ Cuboid47,
5531
5678
  {
5532
5679
  size: [1, wallThickness + 2, 1],
5533
5680
  center: [-bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
5534
5681
  }
5535
5682
  ),
5536
- /* @__PURE__ */ jsx71(
5537
- Cuboid46,
5683
+ /* @__PURE__ */ jsx72(
5684
+ Cuboid47,
5538
5685
  {
5539
5686
  size: [1, wallThickness + 3, 1],
5540
5687
  center: [bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
5541
5688
  }
5542
5689
  )
5543
5690
  ] }) }) }) }),
5544
- showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx71(Colorize39, { color: pinColor, children: /* @__PURE__ */ jsx71(
5545
- Cylinder14,
5691
+ showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx72(Colorize40, { color: pinColor, children: /* @__PURE__ */ jsx72(
5692
+ Cylinder15,
5546
5693
  {
5547
5694
  height: pinLength,
5548
5695
  radius: 0.35,
@@ -5577,7 +5724,7 @@ var JSTZH1_5mm = ({
5577
5724
  layers: ["top", "bottom"],
5578
5725
  port_hints: [`${i + 1}`]
5579
5726
  };
5580
- return /* @__PURE__ */ jsx71(
5727
+ return /* @__PURE__ */ jsx72(
5581
5728
  FootprintPlatedHole,
5582
5729
  {
5583
5730
  hole,
@@ -5591,14 +5738,14 @@ var JSTZH1_5mm = ({
5591
5738
 
5592
5739
  // lib/JSTPH2_0mm.tsx
5593
5740
  import {
5594
- Colorize as Colorize40,
5595
- Cuboid as Cuboid47,
5596
- Cylinder as Cylinder15,
5741
+ Colorize as Colorize41,
5742
+ Cuboid as Cuboid48,
5743
+ Cylinder as Cylinder16,
5597
5744
  Rotate as Rotate14,
5598
- Subtract as Subtract12,
5599
- Translate as Translate32
5745
+ Subtract as Subtract13,
5746
+ Translate as Translate33
5600
5747
  } from "jscad-fiber";
5601
- import { Fragment as Fragment67, jsx as jsx72, jsxs as jsxs68 } from "react/jsx-runtime";
5748
+ import { Fragment as Fragment68, jsx as jsx73, jsxs as jsxs69 } from "react/jsx-runtime";
5602
5749
  var JSTPH2_0mm = ({
5603
5750
  numPins = 2,
5604
5751
  showPins = true,
@@ -5622,17 +5769,17 @@ var JSTPH2_0mm = ({
5622
5769
  const latchWindowInset = 0.7;
5623
5770
  const topReliefWidth = 0.8;
5624
5771
  const topReliefDepth = 0.65;
5625
- return /* @__PURE__ */ jsxs68(Fragment67, { children: [
5626
- /* @__PURE__ */ jsx72(Translate32, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx72(Rotate14, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx72(Colorize40, { color: bodyColor, children: /* @__PURE__ */ jsxs68(Subtract12, { children: [
5627
- /* @__PURE__ */ jsx72(
5628
- Cuboid47,
5772
+ return /* @__PURE__ */ jsxs69(Fragment68, { children: [
5773
+ /* @__PURE__ */ jsx73(Translate33, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx73(Rotate14, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx73(Colorize41, { color: bodyColor, children: /* @__PURE__ */ jsxs69(Subtract13, { children: [
5774
+ /* @__PURE__ */ jsx73(
5775
+ Cuboid48,
5629
5776
  {
5630
5777
  size: [bodyWidth, bodyDepth, bodyHeight],
5631
5778
  center: [0, 0, bodyHeight / 2]
5632
5779
  }
5633
5780
  ),
5634
- /* @__PURE__ */ jsx72(
5635
- Cuboid47,
5781
+ /* @__PURE__ */ jsx73(
5782
+ Cuboid48,
5636
5783
  {
5637
5784
  size: [
5638
5785
  bodyWidth - wallThickness * 2,
@@ -5642,15 +5789,15 @@ var JSTPH2_0mm = ({
5642
5789
  center: [0, 0, hollowHeight / 2]
5643
5790
  }
5644
5791
  ),
5645
- /* @__PURE__ */ jsx72(
5646
- Cuboid47,
5792
+ /* @__PURE__ */ jsx73(
5793
+ Cuboid48,
5647
5794
  {
5648
5795
  size: [bodyWidth, bodyDepth / 3, hollowHeight],
5649
5796
  center: [0, 0, hollowHeight / 6]
5650
5797
  }
5651
5798
  ),
5652
- /* @__PURE__ */ jsx72(
5653
- Cuboid47,
5799
+ /* @__PURE__ */ jsx73(
5800
+ Cuboid48,
5654
5801
  {
5655
5802
  size: [
5656
5803
  bodyWidth - wallThickness * 2,
@@ -5664,8 +5811,8 @@ var JSTPH2_0mm = ({
5664
5811
  ]
5665
5812
  }
5666
5813
  ),
5667
- /* @__PURE__ */ jsx72(
5668
- Cuboid47,
5814
+ /* @__PURE__ */ jsx73(
5815
+ Cuboid48,
5669
5816
  {
5670
5817
  size: [
5671
5818
  bodyWidth - wallThickness * 2,
@@ -5679,8 +5826,8 @@ var JSTPH2_0mm = ({
5679
5826
  ]
5680
5827
  }
5681
5828
  ),
5682
- /* @__PURE__ */ jsx72(
5683
- Cuboid47,
5829
+ /* @__PURE__ */ jsx73(
5830
+ Cuboid48,
5684
5831
  {
5685
5832
  size: [
5686
5833
  latchWindowWidth,
@@ -5690,8 +5837,8 @@ var JSTPH2_0mm = ({
5690
5837
  center: [-bodyWidth / 2 + latchWindowInset, 0, bodyHeight / 2]
5691
5838
  }
5692
5839
  ),
5693
- /* @__PURE__ */ jsx72(
5694
- Cuboid47,
5840
+ /* @__PURE__ */ jsx73(
5841
+ Cuboid48,
5695
5842
  {
5696
5843
  size: [
5697
5844
  latchWindowWidth,
@@ -5701,37 +5848,37 @@ var JSTPH2_0mm = ({
5701
5848
  center: [bodyWidth / 2 - latchWindowInset, 0, bodyHeight / 2]
5702
5849
  }
5703
5850
  ),
5704
- /* @__PURE__ */ jsx72(
5705
- Cuboid47,
5851
+ /* @__PURE__ */ jsx73(
5852
+ Cuboid48,
5706
5853
  {
5707
5854
  size: [wallThickness * 3, topReliefWidth, topReliefDepth],
5708
5855
  center: [-bodyWidth / 2, 0, topReliefDepth / 2]
5709
5856
  }
5710
5857
  ),
5711
- /* @__PURE__ */ jsx72(Translate32, { offset: [-bodyWidth / 2, 0, topReliefDepth], children: /* @__PURE__ */ jsx72(Rotate14, { angles: [0, Math.PI / 2, 0], children: /* @__PURE__ */ jsx72(
5712
- Cylinder15,
5858
+ /* @__PURE__ */ jsx73(Translate33, { offset: [-bodyWidth / 2, 0, topReliefDepth], children: /* @__PURE__ */ jsx73(Rotate14, { angles: [0, Math.PI / 2, 0], children: /* @__PURE__ */ jsx73(
5859
+ Cylinder16,
5713
5860
  {
5714
5861
  height: wallThickness * 3,
5715
5862
  radius: topReliefWidth / 2
5716
5863
  }
5717
5864
  ) }) }),
5718
- /* @__PURE__ */ jsx72(
5719
- Cuboid47,
5865
+ /* @__PURE__ */ jsx73(
5866
+ Cuboid48,
5720
5867
  {
5721
5868
  size: [wallThickness * 3, topReliefWidth, topReliefDepth],
5722
5869
  center: [bodyWidth / 2, 0, topReliefDepth / 2]
5723
5870
  }
5724
5871
  ),
5725
- /* @__PURE__ */ jsx72(Translate32, { offset: [bodyWidth / 2, 0, topReliefDepth], children: /* @__PURE__ */ jsx72(Rotate14, { angles: [0, Math.PI / 2, 0], children: /* @__PURE__ */ jsx72(
5726
- Cylinder15,
5872
+ /* @__PURE__ */ jsx73(Translate33, { offset: [bodyWidth / 2, 0, topReliefDepth], children: /* @__PURE__ */ jsx73(Rotate14, { angles: [0, Math.PI / 2, 0], children: /* @__PURE__ */ jsx73(
5873
+ Cylinder16,
5727
5874
  {
5728
5875
  height: wallThickness * 3,
5729
5876
  radius: topReliefWidth / 2
5730
5877
  }
5731
5878
  ) }) })
5732
5879
  ] }) }) }) }),
5733
- showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx72(Colorize40, { color: pinColor, children: /* @__PURE__ */ jsx72(
5734
- Cuboid47,
5880
+ showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx73(Colorize41, { color: pinColor, children: /* @__PURE__ */ jsx73(
5881
+ Cuboid48,
5735
5882
  {
5736
5883
  size: [pinThickness, pinThickness, pinLength],
5737
5884
  center: [startX + i * pitch, 0, (pinTop - pinTailLength) / 2]
@@ -5765,7 +5912,7 @@ var JSTPH2_0mm = ({
5765
5912
  layers: ["top", "bottom"],
5766
5913
  port_hints: [`${i + 1}`]
5767
5914
  };
5768
- return /* @__PURE__ */ jsx72(
5915
+ return /* @__PURE__ */ jsx73(
5769
5916
  FootprintPlatedHole,
5770
5917
  {
5771
5918
  hole,
@@ -5778,9 +5925,9 @@ var JSTPH2_0mm = ({
5778
5925
  };
5779
5926
 
5780
5927
  // lib/JSTXH2_5mm.tsx
5781
- import { Colorize as Colorize41, Cuboid as Cuboid48, Subtract as Subtract13, Translate as Translate33 } from "jscad-fiber";
5928
+ import { Colorize as Colorize42, Cuboid as Cuboid49, Subtract as Subtract14, Translate as Translate34 } from "jscad-fiber";
5782
5929
  import { fp as fp3 } from "@tscircuit/footprinter";
5783
- import { Fragment as Fragment68, jsx as jsx73, jsxs as jsxs69 } from "react/jsx-runtime";
5930
+ import { Fragment as Fragment69, jsx as jsx74, jsxs as jsxs70 } from "react/jsx-runtime";
5784
5931
  var JSTXH2_5mm = ({
5785
5932
  numPins = 4,
5786
5933
  showPins = true,
@@ -5808,11 +5955,11 @@ var JSTXH2_5mm = ({
5808
5955
  Math.max(3, (numPins - 1) * pitch * 0.4 + 2.2)
5809
5956
  );
5810
5957
  const lockNotchHeight = 2.4;
5811
- return /* @__PURE__ */ jsxs69(Fragment68, { children: [
5812
- /* @__PURE__ */ jsx73(Translate33, { offset: [0, 0, bodyHeight / 2], children: /* @__PURE__ */ jsx73(Colorize41, { color: bodyColor, children: /* @__PURE__ */ jsxs69(Subtract13, { children: [
5813
- /* @__PURE__ */ jsx73(Cuboid48, { size: [bodyWidth, bodyDepth, bodyHeight] }),
5814
- /* @__PURE__ */ jsx73(Translate33, { offset: [0, 0, (bodyHeight - hollowHeight) / 2 + 0.1], children: /* @__PURE__ */ jsx73(
5815
- Cuboid48,
5958
+ return /* @__PURE__ */ jsxs70(Fragment69, { children: [
5959
+ /* @__PURE__ */ jsx74(Translate34, { offset: [0, 0, bodyHeight / 2], children: /* @__PURE__ */ jsx74(Colorize42, { color: bodyColor, children: /* @__PURE__ */ jsxs70(Subtract14, { children: [
5960
+ /* @__PURE__ */ jsx74(Cuboid49, { size: [bodyWidth, bodyDepth, bodyHeight] }),
5961
+ /* @__PURE__ */ jsx74(Translate34, { offset: [0, 0, (bodyHeight - hollowHeight) / 2 + 0.1], children: /* @__PURE__ */ jsx74(
5962
+ Cuboid49,
5816
5963
  {
5817
5964
  size: [
5818
5965
  bodyWidth - wallThickness * 2,
@@ -5821,16 +5968,16 @@ var JSTXH2_5mm = ({
5821
5968
  ]
5822
5969
  }
5823
5970
  ) }),
5824
- /* @__PURE__ */ jsx73(
5825
- Translate33,
5971
+ /* @__PURE__ */ jsx74(
5972
+ Translate34,
5826
5973
  {
5827
5974
  offset: [
5828
5975
  0,
5829
5976
  -bodyDepth / 2 + wallThickness / 2,
5830
5977
  bodyHeight / 2 - lockNotchHeight / 2 + 0.1
5831
5978
  ],
5832
- children: /* @__PURE__ */ jsx73(
5833
- Cuboid48,
5979
+ children: /* @__PURE__ */ jsx74(
5980
+ Cuboid49,
5834
5981
  {
5835
5982
  size: [
5836
5983
  lockNotchWidth,
@@ -5841,59 +5988,59 @@ var JSTXH2_5mm = ({
5841
5988
  )
5842
5989
  }
5843
5990
  ),
5844
- /* @__PURE__ */ jsx73(
5845
- Translate33,
5991
+ /* @__PURE__ */ jsx74(
5992
+ Translate34,
5846
5993
  {
5847
5994
  offset: [
5848
5995
  -keySlotX,
5849
5996
  -bodyDepth / 2 + wallThickness / 2,
5850
5997
  bodyHeight / 2 - keySlotHeight / 2 + 0.1
5851
5998
  ],
5852
- children: /* @__PURE__ */ jsx73(
5853
- Cuboid48,
5999
+ children: /* @__PURE__ */ jsx74(
6000
+ Cuboid49,
5854
6001
  {
5855
6002
  size: [keySlotWidth, keySlotDepth, keySlotHeight + 0.2]
5856
6003
  }
5857
6004
  )
5858
6005
  }
5859
6006
  ),
5860
- /* @__PURE__ */ jsx73(
5861
- Translate33,
6007
+ /* @__PURE__ */ jsx74(
6008
+ Translate34,
5862
6009
  {
5863
6010
  offset: [
5864
6011
  keySlotX,
5865
6012
  -bodyDepth / 2 + wallThickness / 2,
5866
6013
  bodyHeight / 2 - keySlotHeight / 2 + 0.1
5867
6014
  ],
5868
- children: /* @__PURE__ */ jsx73(
5869
- Cuboid48,
6015
+ children: /* @__PURE__ */ jsx74(
6016
+ Cuboid49,
5870
6017
  {
5871
6018
  size: [keySlotWidth, keySlotDepth, keySlotHeight + 0.2]
5872
6019
  }
5873
6020
  )
5874
6021
  }
5875
6022
  ),
5876
- Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx73(
5877
- Translate33,
6023
+ Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx74(
6024
+ Translate34,
5878
6025
  {
5879
6026
  offset: [
5880
6027
  startX + i * pitch,
5881
6028
  -bodyDepth / 2 + 0.3,
5882
6029
  -bodyHeight / 2 + 0.25
5883
6030
  ],
5884
- children: /* @__PURE__ */ jsx73(Cuboid48, { size: [1, 0.8, 0.5] })
6031
+ children: /* @__PURE__ */ jsx74(Cuboid49, { size: [1, 0.8, 0.5] })
5885
6032
  },
5886
6033
  `vent_${i}`
5887
6034
  ))
5888
6035
  ] }) }) }),
5889
- showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx73(Colorize41, { color: pinColor, children: /* @__PURE__ */ jsx73(Translate33, { offset: [startX + i * pitch, 0, pinLength / 2 - 3.4], children: /* @__PURE__ */ jsx73(Cuboid48, { size: [0.64, 0.64, pinLength] }) }) }, i)),
6036
+ showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx74(Colorize42, { color: pinColor, children: /* @__PURE__ */ jsx74(Translate34, { offset: [startX + i * pitch, 0, pinLength / 2 - 3.4], children: /* @__PURE__ */ jsx74(Cuboid49, { size: [0.64, 0.64, pinLength] }) }) }, i)),
5890
6037
  showFootprint && (() => {
5891
6038
  try {
5892
6039
  const circuitJson = fp3.string(`jst${numPins}_xh`).circuitJson();
5893
6040
  const platedHoles = circuitJson.filter(
5894
6041
  (e) => e.type === "pcb_plated_hole"
5895
6042
  );
5896
- return platedHoles.map((hole, i) => /* @__PURE__ */ jsx73(
6043
+ return platedHoles.map((hole, i) => /* @__PURE__ */ jsx74(
5897
6044
  FootprintPlatedHole,
5898
6045
  {
5899
6046
  hole,
@@ -5911,8 +6058,8 @@ var JSTXH2_5mm = ({
5911
6058
  // lib/JstSh.tsx
5912
6059
  import { fp as fp4 } from "@tscircuit/footprinter";
5913
6060
  import { mm } from "@tscircuit/mm";
5914
- import { Colorize as Colorize42, Cuboid as Cuboid49, Rotate as Rotate15, Subtract as Subtract14, Union as Union22 } from "jscad-fiber";
5915
- import { jsx as jsx74, jsxs as jsxs70 } from "react/jsx-runtime";
6061
+ import { Colorize as Colorize43, Cuboid as Cuboid50, Rotate as Rotate15, Subtract as Subtract15, Union as Union23 } from "jscad-fiber";
6062
+ import { jsx as jsx75, jsxs as jsxs71 } from "react/jsx-runtime";
5916
6063
  function isJstShFootprint(footprint) {
5917
6064
  const p = fp4.string(footprint).json();
5918
6065
  if (p.fn !== "jst") return false;
@@ -5940,32 +6087,32 @@ var JstSh = ({ footprint = "jst6_sh" }) => {
5940
6087
  const direction = mounts[0].y > rowY ? 1 : -1;
5941
6088
  const y = rowY + direction * 1.8, width10 = n + 2, depth = 2.9, height10 = 4.2;
5942
6089
  const pinY = y - direction * 0.25;
5943
- return /* @__PURE__ */ jsxs70(Rotate15, { rotation: [0, 0, angle], children: [
5944
- /* @__PURE__ */ jsx74(Colorize42, { color: "#e4e1d6", children: /* @__PURE__ */ jsxs70(Subtract14, { children: [
5945
- /* @__PURE__ */ jsx74(
5946
- Cuboid49,
6090
+ return /* @__PURE__ */ jsxs71(Rotate15, { rotation: [0, 0, angle], children: [
6091
+ /* @__PURE__ */ jsx75(Colorize43, { color: "#e4e1d6", children: /* @__PURE__ */ jsxs71(Subtract15, { children: [
6092
+ /* @__PURE__ */ jsx75(
6093
+ Cuboid50,
5947
6094
  {
5948
6095
  size: [width10, depth, height10],
5949
6096
  center: [x, y, height10 / 2 + 0.05]
5950
6097
  }
5951
6098
  ),
5952
- /* @__PURE__ */ jsx74(
5953
- Cuboid49,
6099
+ /* @__PURE__ */ jsx75(
6100
+ Cuboid50,
5954
6101
  {
5955
6102
  size: [width10 - 1.3, 1.8, height10],
5956
6103
  center: [x, y, height10 / 2 + 0.8]
5957
6104
  }
5958
6105
  ),
5959
- mounts.map((pad, i) => /* @__PURE__ */ jsx74(
5960
- Cuboid49,
6106
+ mounts.map((pad, i) => /* @__PURE__ */ jsx75(
6107
+ Cuboid50,
5961
6108
  {
5962
6109
  size: [0.7, pad.height * 0.8, 1.5],
5963
6110
  center: [pad.x, pad.y, 0.75]
5964
6111
  },
5965
6112
  `recess-${i}`
5966
6113
  )),
5967
- [-1, 1].map((side) => /* @__PURE__ */ jsx74(
5968
- Cuboid49,
6114
+ [-1, 1].map((side) => /* @__PURE__ */ jsx75(
6115
+ Cuboid50,
5969
6116
  {
5970
6117
  size: [0.55, 0.6, 1],
5971
6118
  center: [
@@ -5977,30 +6124,30 @@ var JstSh = ({ footprint = "jst6_sh" }) => {
5977
6124
  side
5978
6125
  ))
5979
6126
  ] }) }),
5980
- /* @__PURE__ */ jsxs70(Colorize42, { color: "#c6c7c9", children: [
6127
+ /* @__PURE__ */ jsxs71(Colorize43, { color: "#c6c7c9", children: [
5981
6128
  signals.map((pad, i) => {
5982
6129
  const tailY = pad.y - direction * pad.height * 0.4;
5983
- return /* @__PURE__ */ jsxs70(Union22, { children: [
5984
- /* @__PURE__ */ jsx74(
5985
- Cuboid49,
6130
+ return /* @__PURE__ */ jsxs71(Union23, { children: [
6131
+ /* @__PURE__ */ jsx75(
6132
+ Cuboid50,
5986
6133
  {
5987
6134
  size: [0.2, Math.abs(pinY - tailY) + 0.1, 0.2],
5988
6135
  center: [pad.x, (pinY + tailY) / 2, 0.1]
5989
6136
  }
5990
6137
  ),
5991
- /* @__PURE__ */ jsx74(Cuboid49, { size: [0.2, 0.2, 3.45], center: [pad.x, pinY, 1.725] })
6138
+ /* @__PURE__ */ jsx75(Cuboid50, { size: [0.2, 0.2, 3.45], center: [pad.x, pinY, 1.725] })
5992
6139
  ] }, i);
5993
6140
  }),
5994
- mounts.map((pad, i) => /* @__PURE__ */ jsxs70(Union22, { children: [
5995
- /* @__PURE__ */ jsx74(
5996
- Cuboid49,
6141
+ mounts.map((pad, i) => /* @__PURE__ */ jsxs71(Union23, { children: [
6142
+ /* @__PURE__ */ jsx75(
6143
+ Cuboid50,
5997
6144
  {
5998
6145
  size: [0.7, pad.height * 0.75, 0.2],
5999
6146
  center: [pad.x, pad.y, 0.1]
6000
6147
  }
6001
6148
  ),
6002
- /* @__PURE__ */ jsx74(
6003
- Cuboid49,
6149
+ /* @__PURE__ */ jsx75(
6150
+ Cuboid50,
6004
6151
  {
6005
6152
  size: [0.2, pad.height * 0.6, 1.35],
6006
6153
  center: [pad.x, pad.y, 0.675]
@@ -6013,15 +6160,15 @@ var JstSh = ({ footprint = "jst6_sh" }) => {
6013
6160
 
6014
6161
  // lib/FPC.tsx
6015
6162
  import {
6016
- Colorize as Colorize43,
6017
- Cuboid as Cuboid50,
6018
- Cylinder as Cylinder16,
6163
+ Colorize as Colorize44,
6164
+ Cuboid as Cuboid51,
6165
+ Cylinder as Cylinder17,
6019
6166
  Rotate as Rotate16,
6020
6167
  RoundedCuboid as RoundedCuboid3,
6021
- Subtract as Subtract15,
6022
- Translate as Translate34
6168
+ Subtract as Subtract16,
6169
+ Translate as Translate35
6023
6170
  } from "jscad-fiber";
6024
- import { Fragment as Fragment69, jsx as jsx75, jsxs as jsxs71 } from "react/jsx-runtime";
6171
+ import { Fragment as Fragment70, jsx as jsx76, jsxs as jsxs72 } from "react/jsx-runtime";
6025
6172
  var HOUSING_COLOR = "#303339";
6026
6173
  var HOUSING_SHADOW = "#1f2227";
6027
6174
  var ACTUATOR_COLOR = "#eee8d8";
@@ -6108,9 +6255,9 @@ var FPC = ({
6108
6255
  const clipCapX = bodyWidth / 2 - 0.23;
6109
6256
  const sideBossX = bodyWidth / 2 - 0.32;
6110
6257
  const sideBossWidth = 0.68;
6111
- return /* @__PURE__ */ jsxs71(Fragment69, { children: [
6112
- [-1, 1].map((direction) => /* @__PURE__ */ jsx75(
6113
- Cuboid50,
6258
+ return /* @__PURE__ */ jsxs72(Fragment70, { children: [
6259
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx76(
6260
+ Cuboid51,
6114
6261
  {
6115
6262
  color: TIN_COLOR,
6116
6263
  center: [direction * endClipX, mountY, 0.07],
@@ -6118,8 +6265,8 @@ var FPC = ({
6118
6265
  },
6119
6266
  `mount-pad:${direction}`
6120
6267
  )),
6121
- contactRows.map((contact) => /* @__PURE__ */ jsx75(
6122
- Cuboid50,
6268
+ contactRows.map((contact) => /* @__PURE__ */ jsx76(
6269
+ Cuboid51,
6123
6270
  {
6124
6271
  color: TIN_COLOR,
6125
6272
  center: [contact.x, terminalCenterY, 0.065],
@@ -6127,7 +6274,7 @@ var FPC = ({
6127
6274
  },
6128
6275
  `terminal:${contact.index}`
6129
6276
  )),
6130
- /* @__PURE__ */ jsx75(
6277
+ /* @__PURE__ */ jsx76(
6131
6278
  RoundedCuboid3,
6132
6279
  {
6133
6280
  color: HOUSING_SHADOW,
@@ -6136,8 +6283,8 @@ var FPC = ({
6136
6283
  roundRadius: 0.1
6137
6284
  }
6138
6285
  ),
6139
- /* @__PURE__ */ jsx75(Colorize43, { color: HOUSING_COLOR, children: /* @__PURE__ */ jsxs71(Subtract15, { children: [
6140
- /* @__PURE__ */ jsx75(
6286
+ /* @__PURE__ */ jsx76(Colorize44, { color: HOUSING_COLOR, children: /* @__PURE__ */ jsxs72(Subtract16, { children: [
6287
+ /* @__PURE__ */ jsx76(
6141
6288
  RoundedCuboid3,
6142
6289
  {
6143
6290
  center: [0, housingCenterY, housingBaseHeight + housingHeight / 2],
@@ -6145,22 +6292,22 @@ var FPC = ({
6145
6292
  roundRadius: 0.14
6146
6293
  }
6147
6294
  ),
6148
- /* @__PURE__ */ jsx75(
6149
- Cuboid50,
6295
+ /* @__PURE__ */ jsx76(
6296
+ Cuboid51,
6150
6297
  {
6151
6298
  center: [0, throatCenterY, throatCenterZ],
6152
6299
  size: [openingWidth, throatDepth, throatHeight]
6153
6300
  }
6154
6301
  ),
6155
- /* @__PURE__ */ jsx75(
6156
- Cuboid50,
6302
+ /* @__PURE__ */ jsx76(
6303
+ Cuboid51,
6157
6304
  {
6158
6305
  center: [0, actuatorCenterY, overallHeight - actuatorHeight * 0.72],
6159
6306
  size: [actuatorWidth - 0.32, actuatorDepth - 0.16, actuatorHeight]
6160
6307
  }
6161
6308
  )
6162
6309
  ] }) }),
6163
- contactRows.map((contact) => /* @__PURE__ */ jsx75(
6310
+ contactRows.map((contact) => /* @__PURE__ */ jsx76(
6164
6311
  RoundedCuboid3,
6165
6312
  {
6166
6313
  color: TIN_HIGHLIGHT,
@@ -6170,8 +6317,8 @@ var FPC = ({
6170
6317
  },
6171
6318
  `spring:${contact.index}`
6172
6319
  )),
6173
- contactRows.map((contact) => /* @__PURE__ */ jsx75(
6174
- Cuboid50,
6320
+ contactRows.map((contact) => /* @__PURE__ */ jsx76(
6321
+ Cuboid51,
6175
6322
  {
6176
6323
  color: TIN_COLOR,
6177
6324
  center: [
@@ -6183,8 +6330,8 @@ var FPC = ({
6183
6330
  },
6184
6331
  `terminal-rise:${contact.index}`
6185
6332
  )),
6186
- /* @__PURE__ */ jsx75(
6187
- Cuboid50,
6333
+ /* @__PURE__ */ jsx76(
6334
+ Cuboid51,
6188
6335
  {
6189
6336
  color: HOUSING_SHADOW,
6190
6337
  center: [
@@ -6195,7 +6342,7 @@ var FPC = ({
6195
6342
  size: [openingWidth + 0.18, 0.16, 0.8]
6196
6343
  }
6197
6344
  ),
6198
- /* @__PURE__ */ jsx75(
6345
+ /* @__PURE__ */ jsx76(
6199
6346
  RoundedCuboid3,
6200
6347
  {
6201
6348
  color: ACTUATOR_COLOR,
@@ -6204,8 +6351,8 @@ var FPC = ({
6204
6351
  roundRadius: 0.11
6205
6352
  }
6206
6353
  ),
6207
- /* @__PURE__ */ jsx75(
6208
- Cuboid50,
6354
+ /* @__PURE__ */ jsx76(
6355
+ Cuboid51,
6209
6356
  {
6210
6357
  color: ACTUATOR_HIGHLIGHT,
6211
6358
  center: [
@@ -6216,7 +6363,7 @@ var FPC = ({
6216
6363
  size: [actuatorWidth - 0.36, 0.24, 0.07]
6217
6364
  }
6218
6365
  ),
6219
- [-1, 1].map((direction) => /* @__PURE__ */ jsx75(
6366
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx76(
6220
6367
  RoundedCuboid3,
6221
6368
  {
6222
6369
  color: ACTUATOR_COLOR,
@@ -6226,14 +6373,14 @@ var FPC = ({
6226
6373
  },
6227
6374
  `actuator-ear:${direction}`
6228
6375
  )),
6229
- [-1, 1].map((direction) => /* @__PURE__ */ jsx75(
6230
- Translate34,
6376
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx76(
6377
+ Translate35,
6231
6378
  {
6232
6379
  x: direction * sideBossX,
6233
6380
  y: hingeY,
6234
6381
  z: hingeZ,
6235
- children: /* @__PURE__ */ jsx75(Rotate16, { rotation: [0, Math.PI / 2, 0], children: /* @__PURE__ */ jsx75(
6236
- Cylinder16,
6382
+ children: /* @__PURE__ */ jsx76(Rotate16, { rotation: [0, Math.PI / 2, 0], children: /* @__PURE__ */ jsx76(
6383
+ Cylinder17,
6237
6384
  {
6238
6385
  color: ACTUATOR_HIGHLIGHT,
6239
6386
  height: sideBossWidth + 0.12,
@@ -6243,7 +6390,7 @@ var FPC = ({
6243
6390
  },
6244
6391
  `hinge:${direction}`
6245
6392
  )),
6246
- [-1, 1].map((direction) => /* @__PURE__ */ jsx75(
6393
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx76(
6247
6394
  RoundedCuboid3,
6248
6395
  {
6249
6396
  color: HOLD_DOWN_COLOR,
@@ -6253,7 +6400,7 @@ var FPC = ({
6253
6400
  },
6254
6401
  `hold-down-wall:${direction}`
6255
6402
  )),
6256
- [-1, 1].map((direction) => /* @__PURE__ */ jsx75(
6403
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx76(
6257
6404
  RoundedCuboid3,
6258
6405
  {
6259
6406
  color: HOLD_DOWN_HIGHLIGHT,
@@ -6263,16 +6410,16 @@ var FPC = ({
6263
6410
  },
6264
6411
  `hold-down-cap:${direction}`
6265
6412
  )),
6266
- /* @__PURE__ */ jsx75(
6267
- Cuboid50,
6413
+ /* @__PURE__ */ jsx76(
6414
+ Cuboid51,
6268
6415
  {
6269
6416
  color: HOUSING_SHADOW,
6270
6417
  center: [0, housingCenterY, 0.025],
6271
6418
  size: [openingWidth + 0.7, housingDepth * 0.58, 0.05]
6272
6419
  }
6273
6420
  ),
6274
- /* @__PURE__ */ jsx75(
6275
- Cuboid50,
6421
+ /* @__PURE__ */ jsx76(
6422
+ Cuboid51,
6276
6423
  {
6277
6424
  color: HOUSING_SHADOW,
6278
6425
  center: [
@@ -6287,8 +6434,8 @@ var FPC = ({
6287
6434
  };
6288
6435
 
6289
6436
  // lib/SmdPinHeader.tsx
6290
- import { Colorize as Colorize44, Cuboid as Cuboid51, Hull as Hull26, Translate as Translate35 } from "jscad-fiber";
6291
- import { Fragment as Fragment70, jsx as jsx76, jsxs as jsxs72 } from "react/jsx-runtime";
6437
+ import { Colorize as Colorize45, Cuboid as Cuboid52, Hull as Hull27, Translate as Translate36 } from "jscad-fiber";
6438
+ import { Fragment as Fragment71, jsx as jsx77, jsxs as jsxs73 } from "react/jsx-runtime";
6292
6439
  var SmdPinHeader = ({
6293
6440
  numberOfPins,
6294
6441
  pitch = 2.54,
@@ -6303,52 +6450,52 @@ var SmdPinHeader = ({
6303
6450
  const bodyTop = standoffHeight + bodyHeight;
6304
6451
  const tailLength = tailSpan / 2;
6305
6452
  const tipChamferHeight = pinThickness * 0.35;
6306
- return /* @__PURE__ */ jsx76(Fragment70, { children: Array.from({ length: numberOfPins }, (_, index) => {
6453
+ return /* @__PURE__ */ jsx77(Fragment71, { children: Array.from({ length: numberOfPins }, (_, index) => {
6307
6454
  const x = xStart + index * pitch;
6308
6455
  const tailDirection = index % 2 === 0 ? 1 : -1;
6309
6456
  const postBodyLength = matingPinLength - tipChamferHeight;
6310
6457
  const verticalTailLength = standoffHeight - pinThickness / 2;
6311
- return /* @__PURE__ */ jsxs72(Translate35, { x, children: [
6312
- /* @__PURE__ */ jsx76(
6313
- Cuboid51,
6458
+ return /* @__PURE__ */ jsxs73(Translate36, { x, children: [
6459
+ /* @__PURE__ */ jsx77(
6460
+ Cuboid52,
6314
6461
  {
6315
6462
  color: "#222",
6316
6463
  size: [pitch, bodyWidth, bodyHeight],
6317
6464
  center: [0, 0, standoffHeight + bodyHeight / 2]
6318
6465
  }
6319
6466
  ),
6320
- /* @__PURE__ */ jsxs72(Colorize44, { color: "#d4af37", children: [
6321
- /* @__PURE__ */ jsx76(
6322
- Cuboid51,
6467
+ /* @__PURE__ */ jsxs73(Colorize45, { color: "#d4af37", children: [
6468
+ /* @__PURE__ */ jsx77(
6469
+ Cuboid52,
6323
6470
  {
6324
6471
  size: [pinThickness, tailLength, pinThickness],
6325
6472
  center: [0, tailDirection * (tailLength / 2), pinThickness / 2]
6326
6473
  }
6327
6474
  ),
6328
- /* @__PURE__ */ jsx76(
6329
- Cuboid51,
6475
+ /* @__PURE__ */ jsx77(
6476
+ Cuboid52,
6330
6477
  {
6331
6478
  size: [pinThickness, pinThickness, verticalTailLength],
6332
6479
  center: [0, 0, pinThickness / 2 + verticalTailLength / 2]
6333
6480
  }
6334
6481
  ),
6335
- /* @__PURE__ */ jsx76(
6336
- Cuboid51,
6482
+ /* @__PURE__ */ jsx77(
6483
+ Cuboid52,
6337
6484
  {
6338
6485
  size: [pinThickness, pinThickness, postBodyLength],
6339
6486
  center: [0, 0, bodyTop + postBodyLength / 2]
6340
6487
  }
6341
6488
  ),
6342
- /* @__PURE__ */ jsxs72(Hull26, { children: [
6343
- /* @__PURE__ */ jsx76(
6344
- Cuboid51,
6489
+ /* @__PURE__ */ jsxs73(Hull27, { children: [
6490
+ /* @__PURE__ */ jsx77(
6491
+ Cuboid52,
6345
6492
  {
6346
6493
  size: [pinThickness, pinThickness, 0.01],
6347
6494
  center: [0, 0, bodyTop + postBodyLength]
6348
6495
  }
6349
6496
  ),
6350
- /* @__PURE__ */ jsx76(
6351
- Cuboid51,
6497
+ /* @__PURE__ */ jsx77(
6498
+ Cuboid52,
6352
6499
  {
6353
6500
  size: [pinThickness * 0.65, pinThickness * 0.65, 0.01],
6354
6501
  center: [0, 0, bodyTop + matingPinLength]
@@ -6392,7 +6539,7 @@ var getSmtPadRects = (footprint) => {
6392
6539
  };
6393
6540
 
6394
6541
  // lib/GullWingBody.tsx
6395
- import { Fragment as Fragment71, jsx as jsx77, jsxs as jsxs73 } from "react/jsx-runtime";
6542
+ import { Fragment as Fragment72, jsx as jsx78, jsxs as jsxs74 } from "react/jsx-runtime";
6396
6543
  var GullWingBody = ({
6397
6544
  bodyWidth,
6398
6545
  bodyLength: bodyLength10,
@@ -6404,8 +6551,8 @@ var GullWingBody = ({
6404
6551
  const centerX = pads.reduce((sum, pad) => sum + pad.x, 0) / (pads.length || 1);
6405
6552
  const centerY = pads.reduce((sum, pad) => sum + pad.y, 0) / (pads.length || 1);
6406
6553
  const leadHeight = bodyHeight * leadHeightRatio;
6407
- return /* @__PURE__ */ jsxs73(Fragment71, { children: [
6408
- /* @__PURE__ */ jsx77(
6554
+ return /* @__PURE__ */ jsxs74(Fragment72, { children: [
6555
+ /* @__PURE__ */ jsx78(
6409
6556
  ChipBody,
6410
6557
  {
6411
6558
  center: { x: centerX, y: centerY, z: 0 },
@@ -6421,7 +6568,7 @@ var GullWingBody = ({
6421
6568
  const outerX = pad.x + side * padWidth / 2;
6422
6569
  const run = Math.max(Math.abs(outerX - centerX) - bodyWidth / 2, 0.1);
6423
6570
  const overlap = Math.min(0.15, bodyWidth * 0.15);
6424
- return /* @__PURE__ */ jsx77(
6571
+ return /* @__PURE__ */ jsx78(
6425
6572
  SmdChipLead,
6426
6573
  {
6427
6574
  rotation: side > 0 ? Math.PI : 0,
@@ -6443,8 +6590,8 @@ var GullWingBody = ({
6443
6590
  };
6444
6591
 
6445
6592
  // lib/ParametricChip.tsx
6446
- import { Cuboid as Cuboid52 } from "jscad-fiber";
6447
- import { Fragment as Fragment72, jsx as jsx78, jsxs as jsxs74 } from "react/jsx-runtime";
6593
+ import { Cuboid as Cuboid53 } from "jscad-fiber";
6594
+ import { Fragment as Fragment73, jsx as jsx79, jsxs as jsxs75 } from "react/jsx-runtime";
6448
6595
  var ParametricChip = ({
6449
6596
  padPitch,
6450
6597
  padHeight,
@@ -6455,25 +6602,25 @@ var ParametricChip = ({
6455
6602
  const height10 = width10;
6456
6603
  const terminatorWidth9 = fullLength10 * 0.2;
6457
6604
  const bodyLength10 = fullLength10 - terminatorWidth9 * 2;
6458
- return /* @__PURE__ */ jsxs74(Fragment72, { children: [
6459
- /* @__PURE__ */ jsx78(
6460
- Cuboid52,
6605
+ return /* @__PURE__ */ jsxs75(Fragment73, { children: [
6606
+ /* @__PURE__ */ jsx79(
6607
+ Cuboid53,
6461
6608
  {
6462
6609
  size: [bodyLength10, width10, height10],
6463
6610
  offset: [0, 0, height10 / 2],
6464
6611
  color
6465
6612
  }
6466
6613
  ),
6467
- /* @__PURE__ */ jsx78(
6468
- Cuboid52,
6614
+ /* @__PURE__ */ jsx79(
6615
+ Cuboid53,
6469
6616
  {
6470
6617
  size: [terminatorWidth9, height10, width10],
6471
6618
  offset: [fullLength10 / 2 - terminatorWidth9 / 2, 0, height10 / 2],
6472
6619
  color: "#ccc"
6473
6620
  }
6474
6621
  ),
6475
- /* @__PURE__ */ jsx78(
6476
- Cuboid52,
6622
+ /* @__PURE__ */ jsx79(
6623
+ Cuboid53,
6477
6624
  {
6478
6625
  size: [terminatorWidth9, height10, width10],
6479
6626
  offset: [-fullLength10 / 2 + terminatorWidth9 / 2, 0, height10 / 2],
@@ -6485,14 +6632,14 @@ var ParametricChip = ({
6485
6632
 
6486
6633
  // lib/Led5050.tsx
6487
6634
  import {
6488
- Colorize as Colorize45,
6489
- Cuboid as Cuboid53,
6490
- Cylinder as Cylinder17,
6635
+ Colorize as Colorize46,
6636
+ Cuboid as Cuboid54,
6637
+ Cylinder as Cylinder18,
6491
6638
  Rotate as Rotate17,
6492
- Subtract as Subtract16,
6493
- Translate as Translate36
6639
+ Subtract as Subtract17,
6640
+ Translate as Translate37
6494
6641
  } from "jscad-fiber";
6495
- import { Fragment as Fragment73, jsx as jsx79, jsxs as jsxs75 } from "react/jsx-runtime";
6642
+ import { Fragment as Fragment74, jsx as jsx80, jsxs as jsxs76 } from "react/jsx-runtime";
6496
6643
  var Led5050 = ({
6497
6644
  color = "#ffff00",
6498
6645
  bodyColor = "#ffffff",
@@ -6513,10 +6660,10 @@ var Led5050 = ({
6513
6660
  const cornerCutDepth = 0.3;
6514
6661
  const leadYPositions = [-1.7, 0, 1.7];
6515
6662
  const leadSides = [-1, 1];
6516
- return /* @__PURE__ */ jsxs75(Fragment73, { children: [
6663
+ return /* @__PURE__ */ jsxs76(Fragment74, { children: [
6517
6664
  leadYPositions.flatMap(
6518
- (y) => leadSides.map((side) => /* @__PURE__ */ jsx79(
6519
- Cuboid53,
6665
+ (y) => leadSides.map((side) => /* @__PURE__ */ jsx80(
6666
+ Cuboid54,
6520
6667
  {
6521
6668
  color: leadColor,
6522
6669
  size: [leadLength, leadWidth, leadThickness],
@@ -6525,8 +6672,8 @@ var Led5050 = ({
6525
6672
  `${side}-${y}`
6526
6673
  ))
6527
6674
  ),
6528
- /* @__PURE__ */ jsx79(Colorize45, { color: bodyColor, children: /* @__PURE__ */ jsxs75(Subtract16, { children: [
6529
- /* @__PURE__ */ jsx79(
6675
+ /* @__PURE__ */ jsx80(Colorize46, { color: bodyColor, children: /* @__PURE__ */ jsxs76(Subtract17, { children: [
6676
+ /* @__PURE__ */ jsx80(
6530
6677
  ChipBody,
6531
6678
  {
6532
6679
  width: bodySize,
@@ -6540,28 +6687,28 @@ var Led5050 = ({
6540
6687
  includeNotch: false
6541
6688
  }
6542
6689
  ),
6543
- /* @__PURE__ */ jsx79(
6544
- Cylinder17,
6690
+ /* @__PURE__ */ jsx80(
6691
+ Cylinder18,
6545
6692
  {
6546
6693
  radius: lensRadius,
6547
6694
  height: lensHeight,
6548
6695
  center: [0, 0, bodyTop - lensHeight / 2]
6549
6696
  }
6550
6697
  ),
6551
- /* @__PURE__ */ jsx79(
6552
- Translate36,
6698
+ /* @__PURE__ */ jsx80(
6699
+ Translate37,
6553
6700
  {
6554
6701
  offset: [
6555
6702
  -bodySize / 2,
6556
6703
  bodySize / 2,
6557
6704
  bodyTop - cornerCutDepth / 2 + 5e-3
6558
6705
  ],
6559
- children: /* @__PURE__ */ jsx79(Rotate17, { rotation: [0, 0, Math.PI / 4], children: /* @__PURE__ */ jsx79(Cuboid53, { size: [0.9, 0.9, cornerCutDepth + 0.01] }) })
6706
+ children: /* @__PURE__ */ jsx80(Rotate17, { rotation: [0, 0, Math.PI / 4], children: /* @__PURE__ */ jsx80(Cuboid54, { size: [0.9, 0.9, cornerCutDepth + 0.01] }) })
6560
6707
  }
6561
6708
  )
6562
6709
  ] }) }),
6563
- /* @__PURE__ */ jsx79(
6564
- Cylinder17,
6710
+ /* @__PURE__ */ jsx80(
6711
+ Cylinder18,
6565
6712
  {
6566
6713
  color,
6567
6714
  radius: lensRadius,
@@ -6573,8 +6720,8 @@ var Led5050 = ({
6573
6720
  };
6574
6721
 
6575
6722
  // lib/Led2835.tsx
6576
- import { Colorize as Colorize46, Cuboid as Cuboid54 } from "jscad-fiber";
6577
- import { Fragment as Fragment74, jsx as jsx80, jsxs as jsxs76 } from "react/jsx-runtime";
6723
+ import { Colorize as Colorize47, Cuboid as Cuboid55 } from "jscad-fiber";
6724
+ import { Fragment as Fragment75, jsx as jsx81, jsxs as jsxs77 } from "react/jsx-runtime";
6578
6725
  var Led2835 = ({
6579
6726
  bodyWidth = 3.5,
6580
6727
  bodyLength: bodyLength10 = 2.8,
@@ -6593,26 +6740,26 @@ var Led2835 = ({
6593
6740
  const bodyCenterX = (pad1X + pad2X) / 2;
6594
6741
  const lensWidth = bodyWidth * 0.55;
6595
6742
  const lensLength = bodyLength10 * 0.55;
6596
- return /* @__PURE__ */ jsxs76(Fragment74, { children: [
6743
+ return /* @__PURE__ */ jsxs77(Fragment75, { children: [
6597
6744
  [
6598
6745
  { x: pad1X, w: pad1Width, key: "pad-1" },
6599
6746
  { x: pad2X, w: pad2Width, key: "pad-2" }
6600
- ].map(({ x, w, key }) => /* @__PURE__ */ jsx80(Colorize46, { color: padColor, children: /* @__PURE__ */ jsx80(
6601
- Cuboid54,
6747
+ ].map(({ x, w, key }) => /* @__PURE__ */ jsx81(Colorize47, { color: padColor, children: /* @__PURE__ */ jsx81(
6748
+ Cuboid55,
6602
6749
  {
6603
6750
  size: [w, padLength, padThickness],
6604
6751
  center: [x, 0, padThickness / 2]
6605
6752
  }
6606
6753
  ) }, key)),
6607
- /* @__PURE__ */ jsx80(Colorize46, { color: bodyColor, children: /* @__PURE__ */ jsx80(
6608
- Cuboid54,
6754
+ /* @__PURE__ */ jsx81(Colorize47, { color: bodyColor, children: /* @__PURE__ */ jsx81(
6755
+ Cuboid55,
6609
6756
  {
6610
6757
  size: [bodyWidth, bodyLength10, bodyHeight],
6611
6758
  center: [bodyCenterX, 0, padThickness + bodyHeight / 2]
6612
6759
  }
6613
6760
  ) }),
6614
- /* @__PURE__ */ jsx80(Colorize46, { color, children: /* @__PURE__ */ jsx80(
6615
- Cuboid54,
6761
+ /* @__PURE__ */ jsx81(Colorize47, { color, children: /* @__PURE__ */ jsx81(
6762
+ Cuboid55,
6616
6763
  {
6617
6764
  size: [lensWidth, lensLength, lensHeight],
6618
6765
  center: [
@@ -6627,15 +6774,15 @@ var Led2835 = ({
6627
6774
 
6628
6775
  // lib/RJ45.tsx
6629
6776
  import {
6630
- Colorize as Colorize47,
6631
- Cuboid as Cuboid55,
6632
- Cylinder as Cylinder18,
6777
+ Colorize as Colorize48,
6778
+ Cuboid as Cuboid56,
6779
+ Cylinder as Cylinder19,
6633
6780
  Rotate as Rotate18,
6634
6781
  RoundedCuboid as RoundedCuboid4,
6635
- Subtract as Subtract17,
6636
- Translate as Translate37
6782
+ Subtract as Subtract18,
6783
+ Translate as Translate38
6637
6784
  } from "jscad-fiber";
6638
- import { Fragment as Fragment75, jsx as jsx81, jsxs as jsxs77 } from "react/jsx-runtime";
6785
+ import { Fragment as Fragment76, jsx as jsx82, jsxs as jsxs78 } from "react/jsx-runtime";
6639
6786
  var range2 = (length) => Array.from({ length }, (_, index) => index);
6640
6787
  var RJ45 = ({
6641
6788
  bodyWidth = 16.26,
@@ -6693,18 +6840,18 @@ var RJ45 = ({
6693
6840
  const contactY = frontY - frontDirection * Math.max(cavityDepth * 0.48, 1.2);
6694
6841
  const contactZ = openingCenterZ + openingHeight * 0.18;
6695
6842
  const frontLipY = frontY + frontDirection * shellThickness * 0.2;
6696
- return /* @__PURE__ */ jsxs77(Fragment75, { children: [
6697
- /* @__PURE__ */ jsxs77(Colorize47, { color: shellColor, children: [
6698
- /* @__PURE__ */ jsxs77(Subtract17, { children: [
6699
- /* @__PURE__ */ jsx81(
6700
- Cuboid55,
6843
+ return /* @__PURE__ */ jsxs78(Fragment76, { children: [
6844
+ /* @__PURE__ */ jsxs78(Colorize48, { color: shellColor, children: [
6845
+ /* @__PURE__ */ jsxs78(Subtract18, { children: [
6846
+ /* @__PURE__ */ jsx82(
6847
+ Cuboid56,
6701
6848
  {
6702
6849
  center: [0, bodyCenterY, bodyHeight / 2],
6703
6850
  size: [bodyWidth, bodyDepth, bodyHeight]
6704
6851
  }
6705
6852
  ),
6706
- /* @__PURE__ */ jsx81(
6707
- Cuboid55,
6853
+ /* @__PURE__ */ jsx82(
6854
+ Cuboid56,
6708
6855
  {
6709
6856
  center: [0, cavityCenterY, openingCenterZ],
6710
6857
  size: [
@@ -6715,15 +6862,15 @@ var RJ45 = ({
6715
6862
  }
6716
6863
  )
6717
6864
  ] }),
6718
- /* @__PURE__ */ jsx81(
6719
- Cuboid55,
6865
+ /* @__PURE__ */ jsx82(
6866
+ Cuboid56,
6720
6867
  {
6721
6868
  center: [0, frontLipY, 0.72],
6722
6869
  size: [openingWidth + 0.5, shellThickness * 1.25, 1.05]
6723
6870
  }
6724
6871
  ),
6725
- [-1, 1].map((direction) => /* @__PURE__ */ jsx81(
6726
- Cuboid55,
6872
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx82(
6873
+ Cuboid56,
6727
6874
  {
6728
6875
  center: [direction * shieldPinX, shieldPinY, 0.25],
6729
6876
  size: [
@@ -6734,8 +6881,8 @@ var RJ45 = ({
6734
6881
  },
6735
6882
  `shield-tab:${direction}`
6736
6883
  )),
6737
- [-1, 1].map((direction) => /* @__PURE__ */ jsx81(
6738
- Cuboid55,
6884
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx82(
6885
+ Cuboid56,
6739
6886
  {
6740
6887
  center: [
6741
6888
  direction * bodyWidth * 0.24,
@@ -6747,9 +6894,9 @@ var RJ45 = ({
6747
6894
  `top-seam:${direction}`
6748
6895
  ))
6749
6896
  ] }),
6750
- /* @__PURE__ */ jsxs77(Colorize47, { color: housingColor, children: [
6751
- /* @__PURE__ */ jsxs77(Subtract17, { children: [
6752
- /* @__PURE__ */ jsx81(
6897
+ /* @__PURE__ */ jsxs78(Colorize48, { color: housingColor, children: [
6898
+ /* @__PURE__ */ jsxs78(Subtract18, { children: [
6899
+ /* @__PURE__ */ jsx82(
6753
6900
  RoundedCuboid4,
6754
6901
  {
6755
6902
  center: [0, cavityCenterY, openingCenterZ],
@@ -6761,8 +6908,8 @@ var RJ45 = ({
6761
6908
  roundRadius: 0.22
6762
6909
  }
6763
6910
  ),
6764
- /* @__PURE__ */ jsx81(
6765
- Cuboid55,
6911
+ /* @__PURE__ */ jsx82(
6912
+ Cuboid56,
6766
6913
  {
6767
6914
  center: [
6768
6915
  0,
@@ -6777,14 +6924,14 @@ var RJ45 = ({
6777
6924
  }
6778
6925
  )
6779
6926
  ] }),
6780
- /* @__PURE__ */ jsx81(
6781
- Cuboid55,
6927
+ /* @__PURE__ */ jsx82(
6928
+ Cuboid56,
6782
6929
  {
6783
6930
  center: [0, backWallY, openingCenterZ],
6784
6931
  size: [openingWidth - 1.15, shellThickness, openingHeight - 1.25]
6785
6932
  }
6786
6933
  ),
6787
- /* @__PURE__ */ jsx81(
6934
+ /* @__PURE__ */ jsx82(
6788
6935
  RoundedCuboid4,
6789
6936
  {
6790
6937
  center: [0, frontY - frontDirection * cavityDepth * 0.28, 1.55],
@@ -6792,8 +6939,8 @@ var RJ45 = ({
6792
6939
  roundRadius: 0.16
6793
6940
  }
6794
6941
  ),
6795
- [-1, 1].map((direction) => /* @__PURE__ */ jsx81(
6796
- Cylinder18,
6942
+ [-1, 1].map((direction) => /* @__PURE__ */ jsx82(
6943
+ Cylinder19,
6797
6944
  {
6798
6945
  center: [direction * locatorHoleX, locatorHoleY, -0.25],
6799
6946
  radius: Math.max(locatorHoleDiameter * 0.41, 0.65),
@@ -6802,9 +6949,9 @@ var RJ45 = ({
6802
6949
  `locator:${direction}`
6803
6950
  ))
6804
6951
  ] }),
6805
- /* @__PURE__ */ jsxs77(Colorize47, { color: contactColor, children: [
6806
- signalPinPositions.map(({ x, y }, index) => /* @__PURE__ */ jsx81(
6807
- Cylinder18,
6952
+ /* @__PURE__ */ jsxs78(Colorize48, { color: contactColor, children: [
6953
+ signalPinPositions.map(({ x, y }, index) => /* @__PURE__ */ jsx82(
6954
+ Cylinder19,
6808
6955
  {
6809
6956
  center: [x, y, 0.15],
6810
6957
  radius: signalLeadRadius,
@@ -6812,15 +6959,15 @@ var RJ45 = ({
6812
6959
  },
6813
6960
  `signal-lead:${index}`
6814
6961
  )),
6815
- range2(8).map((index) => /* @__PURE__ */ jsx81(
6816
- Translate37,
6962
+ range2(8).map((index) => /* @__PURE__ */ jsx82(
6963
+ Translate38,
6817
6964
  {
6818
6965
  offset: [
6819
6966
  (index - 3.5) * contactPitch,
6820
6967
  contactY,
6821
6968
  contactZ + (index % 2 === 0 ? 0.03 : -0.03)
6822
6969
  ],
6823
- children: /* @__PURE__ */ jsx81(Rotate18, { rotation: [frontDirection * 0.2, 0, 0], children: /* @__PURE__ */ jsx81(
6970
+ children: /* @__PURE__ */ jsx82(Rotate18, { rotation: [frontDirection * 0.2, 0, 0], children: /* @__PURE__ */ jsx82(
6824
6971
  RoundedCuboid4,
6825
6972
  {
6826
6973
  size: [Math.max(contactPitch * 0.28, 0.28), 3.25, 0.16],
@@ -6830,8 +6977,8 @@ var RJ45 = ({
6830
6977
  },
6831
6978
  `socket-contact:${index}`
6832
6979
  )),
6833
- ledPins && ledPinPositions.map((x, index) => /* @__PURE__ */ jsx81(
6834
- Cylinder18,
6980
+ ledPins && ledPinPositions.map((x, index) => /* @__PURE__ */ jsx82(
6981
+ Cylinder19,
6835
6982
  {
6836
6983
  center: [x, ledPinY, 0.15],
6837
6984
  radius: signalLeadRadius,
@@ -6840,8 +6987,8 @@ var RJ45 = ({
6840
6987
  `led-lead:${index}`
6841
6988
  ))
6842
6989
  ] }),
6843
- ledPins && /* @__PURE__ */ jsxs77(Fragment75, { children: [
6844
- /* @__PURE__ */ jsx81(
6990
+ ledPins && /* @__PURE__ */ jsxs78(Fragment76, { children: [
6991
+ /* @__PURE__ */ jsx82(
6845
6992
  RoundedCuboid4,
6846
6993
  {
6847
6994
  color: "#73b744",
@@ -6854,7 +7001,7 @@ var RJ45 = ({
6854
7001
  roundRadius: 0.18
6855
7002
  }
6856
7003
  ),
6857
- /* @__PURE__ */ jsx81(
7004
+ /* @__PURE__ */ jsx82(
6858
7005
  RoundedCuboid4,
6859
7006
  {
6860
7007
  color: "#e0aa35",
@@ -6872,8 +7019,8 @@ var RJ45 = ({
6872
7019
  };
6873
7020
 
6874
7021
  // lib/DPAK.tsx
6875
- import { Colorize as Colorize48, Cuboid as Cuboid56, Hull as Hull27 } from "jscad-fiber";
6876
- import { Fragment as Fragment76, jsx as jsx82, jsxs as jsxs78 } from "react/jsx-runtime";
7022
+ import { Colorize as Colorize49, Cuboid as Cuboid57, Hull as Hull28 } from "jscad-fiber";
7023
+ import { Fragment as Fragment77, jsx as jsx83, jsxs as jsxs79 } from "react/jsx-runtime";
6877
7024
  var DPAK = ({
6878
7025
  bodyWidth = 6.1,
6879
7026
  bodyLength: bodyLength10 = 6.5,
@@ -6895,25 +7042,25 @@ var DPAK = ({
6895
7042
  const bodyFrontX = bodyCenterX - bodyWidth / 2;
6896
7043
  const leadZ = tabThickness / 2;
6897
7044
  const leadThickness = 0.4;
6898
- return /* @__PURE__ */ jsxs78(Fragment76, { children: [
6899
- /* @__PURE__ */ jsx82(Colorize48, { color: tabColor, children: /* @__PURE__ */ jsx82(
6900
- Cuboid56,
7045
+ return /* @__PURE__ */ jsxs79(Fragment77, { children: [
7046
+ /* @__PURE__ */ jsx83(Colorize49, { color: tabColor, children: /* @__PURE__ */ jsx83(
7047
+ Cuboid57,
6901
7048
  {
6902
7049
  size: [tabWidth, tabLength, tabThickness],
6903
7050
  center: [tabCenterX, 0, tabThickness / 2]
6904
7051
  }
6905
7052
  ) }),
6906
- /* @__PURE__ */ jsx82(Colorize48, { color, children: /* @__PURE__ */ jsx82(
6907
- Cuboid56,
7053
+ /* @__PURE__ */ jsx83(Colorize49, { color, children: /* @__PURE__ */ jsx83(
7054
+ Cuboid57,
6908
7055
  {
6909
7056
  size: [bodyWidth, bodyLength10, bodyHeight],
6910
7057
  center: [bodyCenterX, 0, tabThickness + bodyHeight / 2]
6911
7058
  }
6912
7059
  ) }),
6913
7060
  [-1, 1].map((side) => {
6914
- return /* @__PURE__ */ jsxs78(Colorize48, { color: leadColor, children: [
6915
- /* @__PURE__ */ jsx82(
6916
- Cuboid56,
7061
+ return /* @__PURE__ */ jsxs79(Colorize49, { color: leadColor, children: [
7062
+ /* @__PURE__ */ jsx83(
7063
+ Cuboid57,
6917
7064
  {
6918
7065
  size: [leadContactLength, leadWidth, leadThickness],
6919
7066
  center: [
@@ -6923,9 +7070,9 @@ var DPAK = ({
6923
7070
  ]
6924
7071
  }
6925
7072
  ),
6926
- /* @__PURE__ */ jsxs78(Hull27, { children: [
6927
- /* @__PURE__ */ jsx82(
6928
- Cuboid56,
7073
+ /* @__PURE__ */ jsxs79(Hull28, { children: [
7074
+ /* @__PURE__ */ jsx83(
7075
+ Cuboid57,
6929
7076
  {
6930
7077
  size: [0.1, leadWidth, leadThickness],
6931
7078
  center: [
@@ -6935,8 +7082,8 @@ var DPAK = ({
6935
7082
  ]
6936
7083
  }
6937
7084
  ),
6938
- /* @__PURE__ */ jsx82(
6939
- Cuboid56,
7085
+ /* @__PURE__ */ jsx83(
7086
+ Cuboid57,
6940
7087
  {
6941
7088
  size: [0.1, leadWidth, leadThickness],
6942
7089
  center: [bodyFrontX, side * pitch, leadZ + tabThickness / 2]
@@ -6950,13 +7097,13 @@ var DPAK = ({
6950
7097
 
6951
7098
  // lib/ElectrolyticCapacitor.tsx
6952
7099
  import {
6953
- Colorize as Colorize49,
6954
- Cuboid as Cuboid57,
6955
- Cylinder as Cylinder19,
7100
+ Colorize as Colorize50,
7101
+ Cuboid as Cuboid58,
7102
+ Cylinder as Cylinder20,
6956
7103
  RoundedCylinder as RoundedCylinder5,
6957
- Subtract as Subtract18
7104
+ Subtract as Subtract19
6958
7105
  } from "jscad-fiber";
6959
- import { Fragment as Fragment77, jsx as jsx83, jsxs as jsxs79 } from "react/jsx-runtime";
7106
+ import { Fragment as Fragment78, jsx as jsx84, jsxs as jsxs80 } from "react/jsx-runtime";
6960
7107
  var ElectrolyticCapacitor = ({
6961
7108
  diameter = 6.3,
6962
7109
  heightToDiameterRatio = 1.4,
@@ -6974,17 +7121,17 @@ var ElectrolyticCapacitor = ({
6974
7121
  const canTop = canBottom + canHeight;
6975
7122
  const grooveWidth = Math.max(diameter * 0.06, 0.2);
6976
7123
  const grooveDepth = 0.3;
6977
- return /* @__PURE__ */ jsxs79(Fragment77, { children: [
6978
- /* @__PURE__ */ jsx83(Colorize49, { color: baseColor, children: /* @__PURE__ */ jsx83(
6979
- Cylinder19,
7124
+ return /* @__PURE__ */ jsxs80(Fragment78, { children: [
7125
+ /* @__PURE__ */ jsx84(Colorize50, { color: baseColor, children: /* @__PURE__ */ jsx84(
7126
+ Cylinder20,
6980
7127
  {
6981
7128
  radius: radius - 0.05,
6982
7129
  height: baseHeight,
6983
7130
  center: [0, 0, baseHeight / 2]
6984
7131
  }
6985
7132
  ) }),
6986
- /* @__PURE__ */ jsx83(Colorize49, { color: sleeveColor, children: /* @__PURE__ */ jsxs79(Subtract18, { children: [
6987
- /* @__PURE__ */ jsx83(
7133
+ /* @__PURE__ */ jsx84(Colorize50, { color: sleeveColor, children: /* @__PURE__ */ jsxs80(Subtract19, { children: [
7134
+ /* @__PURE__ */ jsx84(
6988
7135
  RoundedCylinder5,
6989
7136
  {
6990
7137
  radius,
@@ -6993,23 +7140,23 @@ var ElectrolyticCapacitor = ({
6993
7140
  center: [0, 0, canBottom + canHeight / 2]
6994
7141
  }
6995
7142
  ),
6996
- /* @__PURE__ */ jsx83(
6997
- Cuboid57,
7143
+ /* @__PURE__ */ jsx84(
7144
+ Cuboid58,
6998
7145
  {
6999
7146
  size: [diameter, grooveWidth, grooveDepth * 2],
7000
7147
  center: [0, 0, canTop]
7001
7148
  }
7002
7149
  ),
7003
- /* @__PURE__ */ jsx83(
7004
- Cuboid57,
7150
+ /* @__PURE__ */ jsx84(
7151
+ Cuboid58,
7005
7152
  {
7006
7153
  size: [grooveWidth, diameter, grooveDepth * 2],
7007
7154
  center: [0, 0, canTop]
7008
7155
  }
7009
7156
  )
7010
7157
  ] }) }),
7011
- [-1, 1].map((side) => /* @__PURE__ */ jsx83(Colorize49, { color: "#c0c0c0", children: /* @__PURE__ */ jsx83(
7012
- Cylinder19,
7158
+ [-1, 1].map((side) => /* @__PURE__ */ jsx84(Colorize50, { color: "#c0c0c0", children: /* @__PURE__ */ jsx84(
7159
+ Cylinder20,
7013
7160
  {
7014
7161
  radius: leadDiameter / 2,
7015
7162
  height: leadLength + baseHeight,
@@ -7020,8 +7167,8 @@ var ElectrolyticCapacitor = ({
7020
7167
  };
7021
7168
 
7022
7169
  // lib/Potentiometer.tsx
7023
- import { Colorize as Colorize50, Cuboid as Cuboid58, Cylinder as Cylinder20, Subtract as Subtract19 } from "jscad-fiber";
7024
- import { Fragment as Fragment78, jsx as jsx84, jsxs as jsxs80 } from "react/jsx-runtime";
7170
+ import { Colorize as Colorize51, Cuboid as Cuboid59, Cylinder as Cylinder21, Subtract as Subtract20 } from "jscad-fiber";
7171
+ import { Fragment as Fragment79, jsx as jsx85, jsxs as jsxs81 } from "react/jsx-runtime";
7025
7172
  var Potentiometer = ({
7026
7173
  bodyWidth = 5.35,
7027
7174
  bodyLength: bodyLength10 = 14,
@@ -7039,41 +7186,41 @@ var Potentiometer = ({
7039
7186
  const adjusterHeight = 0.8;
7040
7187
  const adjusterZ = bodyHeight + adjusterHeight / 2;
7041
7188
  const slotWidth = Math.max(adjusterDiameter * 0.16, 0.3);
7042
- return /* @__PURE__ */ jsxs80(Fragment78, { children: [
7043
- /* @__PURE__ */ jsx84(Colorize50, { color: bodyColor, children: /* @__PURE__ */ jsx84(
7044
- Cuboid58,
7189
+ return /* @__PURE__ */ jsxs81(Fragment79, { children: [
7190
+ /* @__PURE__ */ jsx85(Colorize51, { color: bodyColor, children: /* @__PURE__ */ jsx85(
7191
+ Cuboid59,
7045
7192
  {
7046
7193
  size: [bodyWidth, bodyLength10, bodyHeight],
7047
7194
  center: [bodyCenterX, 0, bodyHeight / 2]
7048
7195
  }
7049
7196
  ) }),
7050
- /* @__PURE__ */ jsx84(Colorize50, { color: adjusterColor, children: /* @__PURE__ */ jsxs80(Subtract19, { children: [
7051
- /* @__PURE__ */ jsx84(
7052
- Cylinder20,
7197
+ /* @__PURE__ */ jsx85(Colorize51, { color: adjusterColor, children: /* @__PURE__ */ jsxs81(Subtract20, { children: [
7198
+ /* @__PURE__ */ jsx85(
7199
+ Cylinder21,
7053
7200
  {
7054
7201
  radius: adjusterDiameter / 2,
7055
7202
  height: adjusterHeight,
7056
7203
  center: [bodyCenterX, 0, adjusterZ]
7057
7204
  }
7058
7205
  ),
7059
- /* @__PURE__ */ jsx84(
7060
- Cuboid58,
7206
+ /* @__PURE__ */ jsx85(
7207
+ Cuboid59,
7061
7208
  {
7062
7209
  size: [adjusterDiameter, slotWidth, adjusterHeight * 0.6],
7063
7210
  center: [bodyCenterX, 0, adjusterZ + adjusterHeight / 2]
7064
7211
  }
7065
7212
  )
7066
7213
  ] }) }),
7067
- shaftHeight > 0 && shaftDiameter > 0 ? /* @__PURE__ */ jsx84(Colorize50, { color: adjusterColor, children: /* @__PURE__ */ jsx84(
7068
- Cylinder20,
7214
+ shaftHeight > 0 && shaftDiameter > 0 ? /* @__PURE__ */ jsx85(Colorize51, { color: adjusterColor, children: /* @__PURE__ */ jsx85(
7215
+ Cylinder21,
7069
7216
  {
7070
7217
  radius: shaftDiameter / 2,
7071
7218
  height: shaftHeight,
7072
7219
  center: [bodyCenterX, 0, bodyHeight + shaftHeight / 2]
7073
7220
  }
7074
7221
  ) }) : null,
7075
- leads.map((lead) => /* @__PURE__ */ jsx84(Colorize50, { color: "#c0c0c0", children: /* @__PURE__ */ jsx84(
7076
- Cylinder20,
7222
+ leads.map((lead) => /* @__PURE__ */ jsx85(Colorize51, { color: "#c0c0c0", children: /* @__PURE__ */ jsx85(
7223
+ Cylinder21,
7077
7224
  {
7078
7225
  radius: leadDiameter / 2,
7079
7226
  height: bodyHeight / 2 + leadLength,
@@ -7084,8 +7231,8 @@ var Potentiometer = ({
7084
7231
  };
7085
7232
 
7086
7233
  // lib/SmdPushButton.tsx
7087
- import { Colorize as Colorize51, Cuboid as Cuboid59, Cylinder as Cylinder21 } from "jscad-fiber";
7088
- import { Fragment as Fragment79, jsx as jsx85, jsxs as jsxs81 } from "react/jsx-runtime";
7234
+ import { Colorize as Colorize52, Cuboid as Cuboid60, Cylinder as Cylinder22 } from "jscad-fiber";
7235
+ import { Fragment as Fragment80, jsx as jsx86, jsxs as jsxs82 } from "react/jsx-runtime";
7089
7236
  var SmdPushButton = ({
7090
7237
  bodyWidth = 2.9,
7091
7238
  bodyLength: bodyLength10 = 3,
@@ -7101,16 +7248,16 @@ var SmdPushButton = ({
7101
7248
  leadColor = "#cccccc"
7102
7249
  }) => {
7103
7250
  const leadThickness = 0.15;
7104
- return /* @__PURE__ */ jsxs81(Fragment79, { children: [
7105
- /* @__PURE__ */ jsx85(Colorize51, { color: bodyColor, children: /* @__PURE__ */ jsx85(
7106
- Cuboid59,
7251
+ return /* @__PURE__ */ jsxs82(Fragment80, { children: [
7252
+ /* @__PURE__ */ jsx86(Colorize52, { color: bodyColor, children: /* @__PURE__ */ jsx86(
7253
+ Cuboid60,
7107
7254
  {
7108
7255
  size: [bodyWidth, bodyLength10, bodyHeight],
7109
7256
  center: [0, 0, bodyHeight / 2]
7110
7257
  }
7111
7258
  ) }),
7112
- /* @__PURE__ */ jsx85(Colorize51, { color: actuatorColor, children: /* @__PURE__ */ jsx85(
7113
- Cylinder21,
7259
+ /* @__PURE__ */ jsx86(Colorize52, { color: actuatorColor, children: /* @__PURE__ */ jsx86(
7260
+ Cylinder22,
7114
7261
  {
7115
7262
  radius: actuatorDiameter / 2,
7116
7263
  height: actuatorHeight,
@@ -7118,8 +7265,8 @@ var SmdPushButton = ({
7118
7265
  }
7119
7266
  ) }),
7120
7267
  [-1, 1].flatMap(
7121
- (sx) => [-1, 1].map((sy) => /* @__PURE__ */ jsx85(Colorize51, { color: leadColor, children: /* @__PURE__ */ jsx85(
7122
- Cuboid59,
7268
+ (sx) => [-1, 1].map((sy) => /* @__PURE__ */ jsx86(Colorize52, { color: leadColor, children: /* @__PURE__ */ jsx86(
7269
+ Cuboid60,
7123
7270
  {
7124
7271
  size: [padWidth, padLength, leadThickness],
7125
7272
  center: [
@@ -7135,8 +7282,8 @@ var SmdPushButton = ({
7135
7282
 
7136
7283
  // lib/SmdSlideSwitch.tsx
7137
7284
  import { fp as fp7 } from "@tscircuit/footprinter";
7138
- import { Colorize as Colorize52, Cuboid as Cuboid60, Cylinder as Cylinder22, Rotate as Rotate19, Subtract as Subtract20 } from "jscad-fiber";
7139
- import { jsx as jsx86, jsxs as jsxs82 } from "react/jsx-runtime";
7285
+ import { Colorize as Colorize53, Cuboid as Cuboid61, Cylinder as Cylinder23, Rotate as Rotate19, Subtract as Subtract21 } from "jscad-fiber";
7286
+ import { jsx as jsx87, jsxs as jsxs83 } from "react/jsx-runtime";
7140
7287
  var SmdSlideSwitch = ({
7141
7288
  footprint = "smdslideswitch7",
7142
7289
  position = 0
@@ -7154,36 +7301,36 @@ var SmdSlideSwitch = ({
7154
7301
  throw new Error("SmdSlideSwitch needs signal pads and four mounting pads");
7155
7302
  const angle = Math.atan2(target[1].y - target[0].y, target[1].x - target[0].x) - Math.atan2(pads[1].y - pads[0].y, pads[1].x - pads[0].x);
7156
7303
  const width10 = params.mpx - 0.5, depth = 2.7, height10 = params.mpx > 6 ? 1.5 : 1.4, y = params.mounty;
7157
- return /* @__PURE__ */ jsxs82(Rotate19, { rotation: [0, 0, angle], children: [
7158
- /* @__PURE__ */ jsx86(Colorize52, { color: "#aeb4ba", children: /* @__PURE__ */ jsxs82(Subtract20, { children: [
7159
- /* @__PURE__ */ jsx86(Cuboid60, { size: [width10, depth, height10], center: [0, y, height10 / 2] }),
7160
- /* @__PURE__ */ jsx86(
7161
- Cuboid60,
7304
+ return /* @__PURE__ */ jsxs83(Rotate19, { rotation: [0, 0, angle], children: [
7305
+ /* @__PURE__ */ jsx87(Colorize53, { color: "#aeb4ba", children: /* @__PURE__ */ jsxs83(Subtract21, { children: [
7306
+ /* @__PURE__ */ jsx87(Cuboid61, { size: [width10, depth, height10], center: [0, y, height10 / 2] }),
7307
+ /* @__PURE__ */ jsx87(
7308
+ Cuboid61,
7162
7309
  {
7163
7310
  size: [width10 - 0.3, depth - 0.3, height10],
7164
7311
  center: [0, y, height10 / 2 - 0.15]
7165
7312
  }
7166
7313
  ),
7167
- /* @__PURE__ */ jsx86(Cuboid60, { size: [2.7, 0.5, 0.9], center: [0, y - depth / 2, 0.65] })
7314
+ /* @__PURE__ */ jsx87(Cuboid61, { size: [2.7, 0.5, 0.9], center: [0, y - depth / 2, 0.65] })
7168
7315
  ] }) }),
7169
- /* @__PURE__ */ jsxs82(Colorize52, { color: "#28292c", children: [
7170
- /* @__PURE__ */ jsx86(
7171
- Cuboid60,
7316
+ /* @__PURE__ */ jsxs83(Colorize53, { color: "#28292c", children: [
7317
+ /* @__PURE__ */ jsx87(
7318
+ Cuboid61,
7172
7319
  {
7173
7320
  size: [width10 - 0.32, depth - 0.32, 0.35],
7174
7321
  center: [0, y, 0.175]
7175
7322
  }
7176
7323
  ),
7177
- /* @__PURE__ */ jsx86(
7178
- Cuboid60,
7324
+ /* @__PURE__ */ jsx87(
7325
+ Cuboid61,
7179
7326
  {
7180
7327
  size: [1, 2.25, 0.65],
7181
7328
  center: [position === 0 ? -0.5 : 0.5, y - 1.5, 0.65]
7182
7329
  }
7183
7330
  ),
7184
7331
  elements.filter((e) => e.type === "pcb_hole").map(
7185
- (hole, i) => "hole_diameter" in hole && "x" in hole ? /* @__PURE__ */ jsx86(
7186
- Cylinder22,
7332
+ (hole, i) => "hole_diameter" in hole && "x" in hole ? /* @__PURE__ */ jsx87(
7333
+ Cylinder23,
7187
7334
  {
7188
7335
  radius: hole.hole_diameter * 0.42,
7189
7336
  height: 0.6,
@@ -7193,12 +7340,12 @@ var SmdSlideSwitch = ({
7193
7340
  ) : null
7194
7341
  )
7195
7342
  ] }),
7196
- /* @__PURE__ */ jsx86(Colorize52, { color: "#c6c7c9", children: pads.map((pad, i) => {
7343
+ /* @__PURE__ */ jsx87(Colorize53, { color: "#c6c7c9", children: pads.map((pad, i) => {
7197
7344
  const signal = i < pads.length - 4;
7198
7345
  const outerY = pad.y + pad.height * 0.4;
7199
7346
  const innerY = Math.min(pad.y - pad.height * 0.4, y + depth / 2 - 0.2);
7200
- return /* @__PURE__ */ jsx86(
7201
- Cuboid60,
7347
+ return /* @__PURE__ */ jsx87(
7348
+ Cuboid61,
7202
7349
  {
7203
7350
  size: [
7204
7351
  pad.width * 0.8,
@@ -7214,8 +7361,8 @@ var SmdSlideSwitch = ({
7214
7361
  };
7215
7362
 
7216
7363
  // lib/SOT-563.tsx
7217
- import { Cuboid as Cuboid61, Translate as Translate39, Rotate as Rotate20, Colorize as Colorize53 } from "jscad-fiber";
7218
- import { Fragment as Fragment80, jsx as jsx87, jsxs as jsxs83 } from "react/jsx-runtime";
7364
+ import { Cuboid as Cuboid62, Translate as Translate40, Rotate as Rotate20, Colorize as Colorize54 } from "jscad-fiber";
7365
+ import { Fragment as Fragment81, jsx as jsx88, jsxs as jsxs84 } from "react/jsx-runtime";
7219
7366
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
7220
7367
  const bodyWidth = 1.2;
7221
7368
  const bodyLength10 = 1.6;
@@ -7225,28 +7372,28 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
7225
7372
  const leadHeight = 0.13;
7226
7373
  const leadSpacing = 0.5;
7227
7374
  const bodyZOffset = -0.4;
7228
- return /* @__PURE__ */ jsxs83(Fragment80, { children: [
7229
- /* @__PURE__ */ jsx87(Rotate20, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx87(Translate39, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx87(Colorize53, { color: "grey", children: /* @__PURE__ */ jsx87(Cuboid61, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
7375
+ return /* @__PURE__ */ jsxs84(Fragment81, { children: [
7376
+ /* @__PURE__ */ jsx88(Rotate20, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx88(Translate40, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx88(Colorize54, { color: "grey", children: /* @__PURE__ */ jsx88(Cuboid62, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
7230
7377
  [-1, 0, 1].flatMap((yOffset, index) => [
7231
7378
  // Left lead
7232
- /* @__PURE__ */ jsx87(
7233
- Translate39,
7379
+ /* @__PURE__ */ jsx88(
7380
+ Translate40,
7234
7381
  {
7235
7382
  center: [
7236
7383
  -bodyWidth / 2 - 0.03,
7237
7384
  yOffset * leadSpacing,
7238
7385
  leadHeight / 2
7239
7386
  ],
7240
- children: /* @__PURE__ */ jsx87(Cuboid61, { size: [leadLength, leadWidth, leadHeight] })
7387
+ children: /* @__PURE__ */ jsx88(Cuboid62, { size: [leadLength, leadWidth, leadHeight] })
7241
7388
  },
7242
7389
  `left-${index}`
7243
7390
  ),
7244
7391
  // Right lead
7245
- /* @__PURE__ */ jsx87(
7246
- Translate39,
7392
+ /* @__PURE__ */ jsx88(
7393
+ Translate40,
7247
7394
  {
7248
7395
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
7249
- children: /* @__PURE__ */ jsx87(Cuboid61, { size: [leadLength, leadWidth, leadHeight] })
7396
+ children: /* @__PURE__ */ jsx88(Cuboid62, { size: [leadLength, leadWidth, leadHeight] })
7250
7397
  },
7251
7398
  `right-${index}`
7252
7399
  )
@@ -7257,20 +7404,20 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
7257
7404
  // lib/UsbCMidmount.tsx
7258
7405
  import { fp as fp8 } from "@tscircuit/footprinter";
7259
7406
  import {
7260
- Colorize as Colorize54,
7261
- Cuboid as Cuboid62,
7262
- Cylinder as Cylinder23,
7263
- Hull as Hull28,
7407
+ Colorize as Colorize55,
7408
+ Cuboid as Cuboid63,
7409
+ Cylinder as Cylinder24,
7410
+ Hull as Hull29,
7264
7411
  Rotate as Rotate21,
7265
- Subtract as Subtract21,
7266
- Translate as Translate40
7412
+ Subtract as Subtract22,
7413
+ Translate as Translate41
7267
7414
  } from "jscad-fiber";
7268
- import { jsx as jsx88, jsxs as jsxs84 } from "react/jsx-runtime";
7415
+ import { jsx as jsx89, jsxs as jsxs85 } from "react/jsx-runtime";
7269
7416
  var Capsule = ({
7270
7417
  width: width10,
7271
7418
  height: height10,
7272
7419
  depth
7273
- }) => /* @__PURE__ */ jsx88(Hull28, { children: [-1, 1].map((side) => /* @__PURE__ */ jsx88(Translate40, { offset: [side * (width10 - height10) / 2, 0, 0], children: /* @__PURE__ */ jsx88(Rotate21, { rotation: [Math.PI / 2, 0, 0], children: /* @__PURE__ */ jsx88(Cylinder23, { radius: height10 / 2, height: depth }) }) }, side)) });
7420
+ }) => /* @__PURE__ */ jsx89(Hull29, { children: [-1, 1].map((side) => /* @__PURE__ */ jsx89(Translate41, { offset: [side * (width10 - height10) / 2, 0, 0], children: /* @__PURE__ */ jsx89(Rotate21, { rotation: [Math.PI / 2, 0, 0], children: /* @__PURE__ */ jsx89(Cylinder24, { radius: height10 / 2, height: depth }) }) }, side)) });
7274
7421
  var UsbCMidmount = ({
7275
7422
  footprint = "usbcmidmount16"
7276
7423
  }) => {
@@ -7293,10 +7440,10 @@ var UsbCMidmount = ({
7293
7440
  "UsbCMidmount requires four mounting slots and a positive body depth"
7294
7441
  );
7295
7442
  const tabBottom = -0.9, tabTop = centerZ + 0.1;
7296
- return /* @__PURE__ */ jsxs84(Rotate21, { rotation: [0, 0, angle], children: [
7297
- /* @__PURE__ */ jsx88(Colorize54, { color: "#b8bdc4", children: /* @__PURE__ */ jsx88(Translate40, { offset: [0, centerY, centerZ], children: /* @__PURE__ */ jsxs84(Subtract21, { children: [
7298
- /* @__PURE__ */ jsx88(Capsule, { width: width10, height: height10, depth }),
7299
- /* @__PURE__ */ jsx88(
7443
+ return /* @__PURE__ */ jsxs85(Rotate21, { rotation: [0, 0, angle], children: [
7444
+ /* @__PURE__ */ jsx89(Colorize55, { color: "#b8bdc4", children: /* @__PURE__ */ jsx89(Translate41, { offset: [0, centerY, centerZ], children: /* @__PURE__ */ jsxs85(Subtract22, { children: [
7445
+ /* @__PURE__ */ jsx89(Capsule, { width: width10, height: height10, depth }),
7446
+ /* @__PURE__ */ jsx89(
7300
7447
  Capsule,
7301
7448
  {
7302
7449
  width: width10 - wall * 2,
@@ -7305,18 +7452,18 @@ var UsbCMidmount = ({
7305
7452
  }
7306
7453
  )
7307
7454
  ] }) }) }),
7308
- /* @__PURE__ */ jsxs84(Colorize54, { color: "#242529", children: [
7309
- /* @__PURE__ */ jsx88(
7310
- Cuboid62,
7455
+ /* @__PURE__ */ jsxs85(Colorize55, { color: "#242529", children: [
7456
+ /* @__PURE__ */ jsx89(
7457
+ Cuboid63,
7311
7458
  {
7312
7459
  size: [6.65, depth - 1.1, 0.7],
7313
7460
  center: [0, centerY + 0.3, centerZ]
7314
7461
  }
7315
7462
  ),
7316
- /* @__PURE__ */ jsx88(Cuboid62, { size: [7.6, 1, 2.45], center: [0, back - 0.65, centerZ] }),
7463
+ /* @__PURE__ */ jsx89(Cuboid63, { size: [7.6, 1, 2.45], center: [0, back - 0.65, centerZ] }),
7317
7464
  holes.map(
7318
- (hole, i) => "x" in hole && "hole_diameter" in hole ? /* @__PURE__ */ jsx88(
7319
- Cylinder23,
7465
+ (hole, i) => "x" in hole && "hole_diameter" in hole ? /* @__PURE__ */ jsx89(
7466
+ Cylinder24,
7320
7467
  {
7321
7468
  radius: hole.hole_diameter * 0.42,
7322
7469
  height: 0.8,
@@ -7326,10 +7473,10 @@ var UsbCMidmount = ({
7326
7473
  ) : null
7327
7474
  )
7328
7475
  ] }),
7329
- /* @__PURE__ */ jsxs84(Colorize54, { color: "#d3ad57", children: [
7476
+ /* @__PURE__ */ jsxs85(Colorize55, { color: "#d3ad57", children: [
7330
7477
  [-1, 1].flatMap(
7331
- (side) => [-2.75, -2.25, -1.25, -0.25, 0.25, 1.25, 2.25, 2.75].map((x) => /* @__PURE__ */ jsx88(
7332
- Cuboid62,
7478
+ (side) => [-2.75, -2.25, -1.25, -0.25, 0.25, 1.25, 2.25, 2.75].map((x) => /* @__PURE__ */ jsx89(
7479
+ Cuboid63,
7333
7480
  {
7334
7481
  size: [0.24, depth - 2, 0.04],
7335
7482
  center: [x, centerY + 0.1, centerZ + side * 0.365]
@@ -7337,8 +7484,8 @@ var UsbCMidmount = ({
7337
7484
  `${side}-${x}`
7338
7485
  ))
7339
7486
  ),
7340
- pads.map((pad, i) => /* @__PURE__ */ jsx88(
7341
- Cuboid62,
7487
+ pads.map((pad, i) => /* @__PURE__ */ jsx89(
7488
+ Cuboid63,
7342
7489
  {
7343
7490
  size: [
7344
7491
  Math.min(pad.width * 0.7, 0.35),
@@ -7350,8 +7497,8 @@ var UsbCMidmount = ({
7350
7497
  i
7351
7498
  ))
7352
7499
  ] }),
7353
- /* @__PURE__ */ jsx88(Colorize54, { color: "#b8bdc4", children: slots.map((slot, i) => /* @__PURE__ */ jsx88(
7354
- Cuboid62,
7500
+ /* @__PURE__ */ jsx89(Colorize55, { color: "#b8bdc4", children: slots.map((slot, i) => /* @__PURE__ */ jsx89(
7501
+ Cuboid63,
7355
7502
  {
7356
7503
  size: [
7357
7504
  0.4,
@@ -7368,7 +7515,7 @@ var UsbCMidmount = ({
7368
7515
  // lib/SOT143.tsx
7369
7516
  import { fp as fp9 } from "@tscircuit/footprinter";
7370
7517
  import { Rotate as Rotate22 } from "jscad-fiber";
7371
- import { jsx as jsx89, jsxs as jsxs85 } from "react/jsx-runtime";
7518
+ import { jsx as jsx90, jsxs as jsxs86 } from "react/jsx-runtime";
7372
7519
  var getPads = (footprint) => fp9.string(footprint).circuitJson().filter(
7373
7520
  (element) => element.type === "pcb_smtpad" && (element.shape === "rect" || element.shape === "rotated_rect")
7374
7521
  ).map((pad) => ({ x: pad.x, y: pad.y, pin: pad.port_hints?.[0] }));
@@ -7387,8 +7534,8 @@ var SOT143 = ({ footprint = "sot143" }) => {
7387
7534
  x: pad.x * Math.cos(angle) + pad.y * Math.sin(angle),
7388
7535
  y: -pad.x * Math.sin(angle) + pad.y * Math.cos(angle)
7389
7536
  }));
7390
- return /* @__PURE__ */ jsxs85(Rotate22, { rotation: [0, 0, angle], children: [
7391
- /* @__PURE__ */ jsx89(
7537
+ return /* @__PURE__ */ jsxs86(Rotate22, { rotation: [0, 0, angle], children: [
7538
+ /* @__PURE__ */ jsx90(
7392
7539
  ChipBody,
7393
7540
  {
7394
7541
  width: 2.9,
@@ -7403,7 +7550,7 @@ var SOT143 = ({ footprint = "sot143" }) => {
7403
7550
  local.map((pad) => {
7404
7551
  const side = pad.y < 0 ? -1 : 1;
7405
7552
  const leadWidth = pad.pin === "1" ? 0.83 : 0.43;
7406
- return /* @__PURE__ */ jsx89(
7553
+ return /* @__PURE__ */ jsx90(
7407
7554
  SmdChipLead,
7408
7555
  {
7409
7556
  width: leadWidth,
@@ -7421,9 +7568,9 @@ var SOT143 = ({ footprint = "sot143" }) => {
7421
7568
  };
7422
7569
 
7423
7570
  // lib/FlexScreen.tsx
7424
- import { Colorize as Colorize55, Rotate as Rotate23, RoundedCuboid as RoundedCuboid5, Translate as Translate41 } from "jscad-fiber";
7425
- import { Fragment as Fragment81 } from "react";
7426
- import { Fragment as Fragment82, jsx as jsx90, jsxs as jsxs86 } from "react/jsx-runtime";
7571
+ import { Colorize as Colorize56, Rotate as Rotate23, RoundedCuboid as RoundedCuboid5, Translate as Translate42 } from "jscad-fiber";
7572
+ import { Fragment as Fragment82 } from "react";
7573
+ import { Fragment as Fragment83, jsx as jsx91, jsxs as jsxs87 } from "react/jsx-runtime";
7427
7574
  var DEFAULT_ASPECT_RATIO = 16 / 9;
7428
7575
  var DEFAULT_DIAGONAL = 40;
7429
7576
  var EPSILON = 1e-6;
@@ -7653,7 +7800,7 @@ var CableStrip = ({
7653
7800
  acrossOffset = 0,
7654
7801
  normalOffset = 0,
7655
7802
  overlap = 0.03
7656
- }) => /* @__PURE__ */ jsx90(Colorize55, { color, children: points.slice(1).map((point, index) => {
7803
+ }) => /* @__PURE__ */ jsx91(Colorize56, { color, children: points.slice(1).map((point, index) => {
7657
7804
  const previous = points[index];
7658
7805
  const dx = point[0] - previous[0];
7659
7806
  const dy = point[1] - previous[1];
@@ -7671,7 +7818,7 @@ var CableStrip = ({
7671
7818
  1e-3,
7672
7819
  Math.min(width10, thickness, segmentLength) / 2 - 1e-3
7673
7820
  );
7674
- return /* @__PURE__ */ jsx90(Translate41, { offset: midpoint, children: /* @__PURE__ */ jsx90(Rotate23, { rotation: [pitch, 0, yaw], children: /* @__PURE__ */ jsx90(
7821
+ return /* @__PURE__ */ jsx91(Translate42, { offset: midpoint, children: /* @__PURE__ */ jsx91(Rotate23, { rotation: [pitch, 0, yaw], children: /* @__PURE__ */ jsx91(
7675
7822
  RoundedCuboid5,
7676
7823
  {
7677
7824
  size: [width10, segmentLength + overlap, thickness],
@@ -7880,8 +8027,8 @@ var FlexScreen = (props) => {
7880
8027
  );
7881
8028
  const conductorNormalOffset = (flexCableThickness + conductorThickness) / 2;
7882
8029
  const stiffenerNormalOffset = -(flexCableThickness + stiffenerThickness) / 2;
7883
- const assembly = /* @__PURE__ */ jsxs86(Fragment82, { children: [
7884
- showFlexCable && /* @__PURE__ */ jsx90(
8030
+ const assembly = /* @__PURE__ */ jsxs87(Fragment83, { children: [
8031
+ showFlexCable && /* @__PURE__ */ jsx91(
7885
8032
  CableStrip,
7886
8033
  {
7887
8034
  points: path,
@@ -7890,8 +8037,8 @@ var FlexScreen = (props) => {
7890
8037
  color: flexCableColor
7891
8038
  }
7892
8039
  ),
7893
- showFlexCable && showStiffeners && resolvedStiffenerLength > EPSILON && /* @__PURE__ */ jsxs86(Fragment82, { children: [
7894
- /* @__PURE__ */ jsx90(
8040
+ showFlexCable && showStiffeners && resolvedStiffenerLength > EPSILON && /* @__PURE__ */ jsxs87(Fragment83, { children: [
8041
+ /* @__PURE__ */ jsx91(
7895
8042
  CableStrip,
7896
8043
  {
7897
8044
  points: startStiffener,
@@ -7901,7 +8048,7 @@ var FlexScreen = (props) => {
7901
8048
  normalOffset: stiffenerNormalOffset
7902
8049
  }
7903
8050
  ),
7904
- /* @__PURE__ */ jsx90(
8051
+ /* @__PURE__ */ jsx91(
7905
8052
  CableStrip,
7906
8053
  {
7907
8054
  points: endStiffener,
@@ -7912,8 +8059,8 @@ var FlexScreen = (props) => {
7912
8059
  }
7913
8060
  )
7914
8061
  ] }),
7915
- showFlexCable && showConductors && contactLength > EPSILON && conductorOffsets.map((acrossOffset, index) => /* @__PURE__ */ jsxs86(Fragment81, { children: [
7916
- /* @__PURE__ */ jsx90(
8062
+ showFlexCable && showConductors && contactLength > EPSILON && conductorOffsets.map((acrossOffset, index) => /* @__PURE__ */ jsxs87(Fragment82, { children: [
8063
+ /* @__PURE__ */ jsx91(
7917
8064
  CableStrip,
7918
8065
  {
7919
8066
  points: startContacts,
@@ -7924,7 +8071,7 @@ var FlexScreen = (props) => {
7924
8071
  normalOffset: conductorNormalOffset
7925
8072
  }
7926
8073
  ),
7927
- /* @__PURE__ */ jsx90(
8074
+ /* @__PURE__ */ jsx91(
7928
8075
  CableStrip,
7929
8076
  {
7930
8077
  points: endContacts,
@@ -7936,7 +8083,7 @@ var FlexScreen = (props) => {
7936
8083
  }
7937
8084
  )
7938
8085
  ] }, `conductor:${index}`)),
7939
- showScreen && /* @__PURE__ */ jsx90(Translate41, { offset: screenCenter, children: /* @__PURE__ */ jsx90(Rotate23, { rotation: screenRotation ?? presetScreenRotation, children: /* @__PURE__ */ jsx90(
8086
+ showScreen && /* @__PURE__ */ jsx91(Translate42, { offset: screenCenter, children: /* @__PURE__ */ jsx91(Rotate23, { rotation: screenRotation ?? presetScreenRotation, children: /* @__PURE__ */ jsx91(
7940
8087
  Screen,
7941
8088
  {
7942
8089
  width: size.width,
@@ -7951,21 +8098,21 @@ var FlexScreen = (props) => {
7951
8098
  }
7952
8099
  ) }) })
7953
8100
  ] });
7954
- return /* @__PURE__ */ jsx90(
7955
- Translate41,
8101
+ return /* @__PURE__ */ jsx91(
8102
+ Translate42,
7956
8103
  {
7957
8104
  offset: {
7958
8105
  x: offset?.x ?? 0,
7959
8106
  y: offset?.y ?? 0,
7960
8107
  z: offset?.z ?? 0
7961
8108
  },
7962
- children: /* @__PURE__ */ jsx90(Translate41, { offset: start, children: /* @__PURE__ */ jsx90(Rotate23, { rotation, children: /* @__PURE__ */ jsx90(Translate41, { offset: [-start[0], -start[1], -start[2]], children: assembly }) }) })
8109
+ children: /* @__PURE__ */ jsx91(Translate42, { offset: start, children: /* @__PURE__ */ jsx91(Rotate23, { rotation, children: /* @__PURE__ */ jsx91(Translate42, { offset: [-start[0], -start[1], -start[2]], children: assembly }) }) })
7963
8110
  }
7964
8111
  );
7965
8112
  };
7966
8113
 
7967
8114
  // lib/Footprinter3d.tsx
7968
- import { Fragment as Fragment83, jsx as jsx91 } from "react/jsx-runtime";
8115
+ import { Fragment as Fragment84, jsx as jsx92 } from "react/jsx-runtime";
7969
8116
  var Footprinter3d = ({ footprint }) => {
7970
8117
  const modelFn = mp.string(footprint.split("_", 1)[0]).params().fn;
7971
8118
  if (mp.getModelNames().includes(modelFn)) {
@@ -7973,7 +8120,7 @@ var Footprinter3d = ({ footprint }) => {
7973
8120
  switch (model.fn) {
7974
8121
  case "flexscreen": {
7975
8122
  const { fn: _, ...flexScreenProps } = model;
7976
- return /* @__PURE__ */ jsx91(FlexScreen, { ...flexScreenProps });
8123
+ return /* @__PURE__ */ jsx92(FlexScreen, { ...flexScreenProps });
7977
8124
  }
7978
8125
  }
7979
8126
  }
@@ -8001,7 +8148,7 @@ var Footprinter3d = ({ footprint }) => {
8001
8148
  };
8002
8149
  switch (fpJson.fn) {
8003
8150
  case "crystal":
8004
- return /* @__PURE__ */ jsx91(
8151
+ return /* @__PURE__ */ jsx92(
8005
8152
  Crystal,
8006
8153
  {
8007
8154
  horizontalPadPitch: fpJson.px,
@@ -8011,11 +8158,11 @@ var Footprinter3d = ({ footprint }) => {
8011
8158
  }
8012
8159
  );
8013
8160
  case "dip":
8014
- return /* @__PURE__ */ jsx91(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
8161
+ return /* @__PURE__ */ jsx92(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
8015
8162
  case "axial":
8016
- return /* @__PURE__ */ jsx91(AxialCapacitor, { pitch: fpJson.p });
8163
+ return /* @__PURE__ */ jsx92(AxialCapacitor, { pitch: fpJson.p });
8017
8164
  case "tssop":
8018
- return /* @__PURE__ */ jsx91(
8165
+ return /* @__PURE__ */ jsx92(
8019
8166
  Tssop,
8020
8167
  {
8021
8168
  pinCount: fpJson.num_pins,
@@ -8026,7 +8173,7 @@ var Footprinter3d = ({ footprint }) => {
8026
8173
  }
8027
8174
  );
8028
8175
  case "msop":
8029
- return /* @__PURE__ */ jsx91(
8176
+ return /* @__PURE__ */ jsx92(
8030
8177
  MSOP,
8031
8178
  {
8032
8179
  pinCount: fpJson.num_pins,
@@ -8037,7 +8184,7 @@ var Footprinter3d = ({ footprint }) => {
8037
8184
  }
8038
8185
  );
8039
8186
  case "vssop":
8040
- return /* @__PURE__ */ jsx91(
8187
+ return /* @__PURE__ */ jsx92(
8041
8188
  VSSOP,
8042
8189
  {
8043
8190
  pinCount: fpJson.num_pins,
@@ -8049,7 +8196,7 @@ var Footprinter3d = ({ footprint }) => {
8049
8196
  }
8050
8197
  );
8051
8198
  case "qfp":
8052
- return /* @__PURE__ */ jsx91(
8199
+ return /* @__PURE__ */ jsx92(
8053
8200
  QFP,
8054
8201
  {
8055
8202
  pinCount: fpJson.num_pins,
@@ -8060,12 +8207,12 @@ var Footprinter3d = ({ footprint }) => {
8060
8207
  }
8061
8208
  );
8062
8209
  case "tqfp":
8063
- return /* @__PURE__ */ jsx91(tqfp_default, {});
8210
+ return /* @__PURE__ */ jsx92(tqfp_default, {});
8064
8211
  case "lqfp":
8065
- return /* @__PURE__ */ jsx91(LQFP, { pinCount: fpJson.num_pins });
8212
+ return /* @__PURE__ */ jsx92(LQFP, { pinCount: fpJson.num_pins });
8066
8213
  case "qfn": {
8067
8214
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
8068
- return /* @__PURE__ */ jsx91(
8215
+ return /* @__PURE__ */ jsx92(
8069
8216
  qfn_default,
8070
8217
  {
8071
8218
  num_pins: fpJson.num_pins,
@@ -8083,7 +8230,7 @@ var Footprinter3d = ({ footprint }) => {
8083
8230
  }
8084
8231
  case "dfn": {
8085
8232
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
8086
- return /* @__PURE__ */ jsx91(
8233
+ return /* @__PURE__ */ jsx92(
8087
8234
  DFN,
8088
8235
  {
8089
8236
  num_pins: fpJson.num_pins,
@@ -8103,7 +8250,7 @@ var Footprinter3d = ({ footprint }) => {
8103
8250
  const rowsMatch = footprint.match(/_rows(\d+)/);
8104
8251
  const rows = rowsMatch && rowsMatch[1] ? parseInt(rowsMatch[1], 10) : 1;
8105
8252
  if (fpJson.male)
8106
- return /* @__PURE__ */ jsx91(
8253
+ return /* @__PURE__ */ jsx92(
8107
8254
  PinRow,
8108
8255
  {
8109
8256
  numberOfPins: fpJson.num_pins,
@@ -8115,7 +8262,7 @@ var Footprinter3d = ({ footprint }) => {
8115
8262
  }
8116
8263
  );
8117
8264
  if (fpJson.female)
8118
- return /* @__PURE__ */ jsx91(
8265
+ return /* @__PURE__ */ jsx92(
8119
8266
  FemaleHeaderRow,
8120
8267
  {
8121
8268
  numberOfPins: fpJson.num_pins,
@@ -8125,7 +8272,7 @@ var Footprinter3d = ({ footprint }) => {
8125
8272
  );
8126
8273
  }
8127
8274
  case "smdpinheader":
8128
- return /* @__PURE__ */ jsx91(
8275
+ return /* @__PURE__ */ jsx92(
8129
8276
  SmdPinHeader,
8130
8277
  {
8131
8278
  numberOfPins: fpJson.num_pins,
@@ -8134,44 +8281,44 @@ var Footprinter3d = ({ footprint }) => {
8134
8281
  }
8135
8282
  );
8136
8283
  case "led5050":
8137
- return /* @__PURE__ */ jsx91(Led5050, { color });
8284
+ return /* @__PURE__ */ jsx92(Led5050, { color });
8138
8285
  case "cap": {
8139
8286
  switch (fpJson.imperial) {
8140
8287
  case "0402":
8141
- return /* @__PURE__ */ jsx91(A0402, { color: "#856c4d" });
8288
+ return /* @__PURE__ */ jsx92(A0402, { color: "#856c4d" });
8142
8289
  case "0603":
8143
- return /* @__PURE__ */ jsx91(A0603, { color: "#856c4d" });
8290
+ return /* @__PURE__ */ jsx92(A0603, { color: "#856c4d" });
8144
8291
  case "0805":
8145
- return /* @__PURE__ */ jsx91(A0805, { color: "#856c4d" });
8292
+ return /* @__PURE__ */ jsx92(A0805, { color: "#856c4d" });
8146
8293
  case "0201":
8147
- return /* @__PURE__ */ jsx91(A0201, { color: "#856c4d" });
8294
+ return /* @__PURE__ */ jsx92(A0201, { color: "#856c4d" });
8148
8295
  case "01005":
8149
- return /* @__PURE__ */ jsx91(A01005, { color: "#856c4d" });
8296
+ return /* @__PURE__ */ jsx92(A01005, { color: "#856c4d" });
8150
8297
  case "1206":
8151
- return /* @__PURE__ */ jsx91(A1206, { color: "#856c4d" });
8298
+ return /* @__PURE__ */ jsx92(A1206, { color: "#856c4d" });
8152
8299
  case "1210":
8153
- return /* @__PURE__ */ jsx91(A1210, { color: "#856c4d" });
8300
+ return /* @__PURE__ */ jsx92(A1210, { color: "#856c4d" });
8154
8301
  case "2010":
8155
- return /* @__PURE__ */ jsx91(A2010, { color: "#856c4d" });
8302
+ return /* @__PURE__ */ jsx92(A2010, { color: "#856c4d" });
8156
8303
  case "2512":
8157
- return /* @__PURE__ */ jsx91(A2512, { color: "#856c4d" });
8304
+ return /* @__PURE__ */ jsx92(A2512, { color: "#856c4d" });
8158
8305
  }
8159
8306
  break;
8160
8307
  }
8161
8308
  case "sot23":
8162
8309
  switch (fpJson.num_pins) {
8163
8310
  case 3:
8164
- return /* @__PURE__ */ jsx91(SOT233P, { color });
8311
+ return /* @__PURE__ */ jsx92(SOT233P, { color });
8165
8312
  case 5:
8166
- return /* @__PURE__ */ jsx91(SOT_235_default, {});
8313
+ return /* @__PURE__ */ jsx92(SOT_235_default, {});
8167
8314
  }
8168
8315
  break;
8169
8316
  case "sot25":
8170
- return /* @__PURE__ */ jsx91(SOT_235_default, {});
8317
+ return /* @__PURE__ */ jsx92(SOT_235_default, {});
8171
8318
  case "sot":
8172
8319
  case "sot343": {
8173
8320
  const isSc70 = fpJson.fn === "sot343";
8174
- return /* @__PURE__ */ jsx91(
8321
+ return /* @__PURE__ */ jsx92(
8175
8322
  GullWingBody,
8176
8323
  {
8177
8324
  pads: getSmtPadRects(normalizedFootprint),
@@ -8182,10 +8329,10 @@ var Footprinter3d = ({ footprint }) => {
8182
8329
  );
8183
8330
  }
8184
8331
  case "sot563":
8185
- return /* @__PURE__ */ jsx91(SOT563, {});
8332
+ return /* @__PURE__ */ jsx92(SOT563, {});
8186
8333
  case "sot89": {
8187
8334
  const padSpan = dim(fpJson.w, 4.2);
8188
- return /* @__PURE__ */ jsx91(
8335
+ return /* @__PURE__ */ jsx92(
8189
8336
  SOT223,
8190
8337
  {
8191
8338
  fullWidth: padSpan,
@@ -8200,31 +8347,31 @@ var Footprinter3d = ({ footprint }) => {
8200
8347
  );
8201
8348
  }
8202
8349
  case "sot457":
8203
- return /* @__PURE__ */ jsx91(SOT457, {});
8350
+ return /* @__PURE__ */ jsx92(SOT457, {});
8204
8351
  case "smdslideswitch":
8205
- return /* @__PURE__ */ jsx91(SmdSlideSwitch, { footprint: normalizedFootprint });
8352
+ return /* @__PURE__ */ jsx92(SmdSlideSwitch, { footprint: normalizedFootprint });
8206
8353
  case "usbcmidmount":
8207
- return /* @__PURE__ */ jsx91(UsbCMidmount, { footprint: normalizedFootprint });
8354
+ return /* @__PURE__ */ jsx92(UsbCMidmount, { footprint: normalizedFootprint });
8208
8355
  case "sot143":
8209
- return /* @__PURE__ */ jsx91(SOT143, { footprint: normalizedFootprint });
8356
+ return /* @__PURE__ */ jsx92(SOT143, { footprint: normalizedFootprint });
8210
8357
  case "sot223":
8211
- return /* @__PURE__ */ jsx91(SOT223, {});
8358
+ return /* @__PURE__ */ jsx92(SOT223, {});
8212
8359
  case "sot23w":
8213
- return /* @__PURE__ */ jsx91(SOT23W, {});
8360
+ return /* @__PURE__ */ jsx92(SOT23W, {});
8214
8361
  case "sot323":
8215
- return /* @__PURE__ */ jsx91(SOT323, {});
8362
+ return /* @__PURE__ */ jsx92(SOT323, {});
8216
8363
  case "sod323f":
8217
- return /* @__PURE__ */ jsx91(SOD323F, {});
8364
+ return /* @__PURE__ */ jsx92(SOD323F, {});
8218
8365
  case "sod323fl":
8219
- return /* @__PURE__ */ jsx91(SOD323FL, {});
8366
+ return /* @__PURE__ */ jsx92(SOD323FL, {});
8220
8367
  case "sot363":
8221
- return /* @__PURE__ */ jsx91(SOT_363_default, {});
8368
+ return /* @__PURE__ */ jsx92(SOT_363_default, {});
8222
8369
  case "sot886":
8223
- return /* @__PURE__ */ jsx91(SOT886, {});
8370
+ return /* @__PURE__ */ jsx92(SOT886, {});
8224
8371
  case "sot963":
8225
- return /* @__PURE__ */ jsx91(SOT963, {});
8372
+ return /* @__PURE__ */ jsx92(SOT963, {});
8226
8373
  case "pushbutton":
8227
- return /* @__PURE__ */ jsx91(
8374
+ return /* @__PURE__ */ jsx92(
8228
8375
  PushButton,
8229
8376
  {
8230
8377
  width: fpJson.w,
@@ -8234,20 +8381,20 @@ var Footprinter3d = ({ footprint }) => {
8234
8381
  );
8235
8382
  case "jst":
8236
8383
  if (isJstShFootprint(normalizedFootprint)) {
8237
- return /* @__PURE__ */ jsx91(JstSh, { footprint: normalizedFootprint });
8384
+ return /* @__PURE__ */ jsx92(JstSh, { footprint: normalizedFootprint });
8238
8385
  }
8239
8386
  if (fpJson.zh) {
8240
- return /* @__PURE__ */ jsx91(JSTZH1_5mm, { numPins: fpJson.num_pins });
8387
+ return /* @__PURE__ */ jsx92(JSTZH1_5mm, { numPins: fpJson.num_pins });
8241
8388
  }
8242
8389
  if (fpJson.ph) {
8243
- return /* @__PURE__ */ jsx91(JSTPH2_0mm, { numPins: fpJson.num_pins });
8390
+ return /* @__PURE__ */ jsx92(JSTPH2_0mm, { numPins: fpJson.num_pins });
8244
8391
  }
8245
8392
  if (fpJson.xh) {
8246
- return /* @__PURE__ */ jsx91(JSTXH2_5mm, { numPins: fpJson.num_pins });
8393
+ return /* @__PURE__ */ jsx92(JSTXH2_5mm, { numPins: fpJson.num_pins });
8247
8394
  }
8248
8395
  break;
8249
8396
  case "fpc":
8250
- return /* @__PURE__ */ jsx91(
8397
+ return /* @__PURE__ */ jsx92(
8251
8398
  FPC,
8252
8399
  {
8253
8400
  pinCount: fpJson.num_pins,
@@ -8267,7 +8414,7 @@ var Footprinter3d = ({ footprint }) => {
8267
8414
  }
8268
8415
  );
8269
8416
  case "rj45":
8270
- return /* @__PURE__ */ jsx91(
8417
+ return /* @__PURE__ */ jsx92(
8271
8418
  RJ45,
8272
8419
  {
8273
8420
  bodyWidth: fpJson.w,
@@ -8293,7 +8440,7 @@ var Footprinter3d = ({ footprint }) => {
8293
8440
  case "soic":
8294
8441
  case "sop8":
8295
8442
  case "ssop":
8296
- return /* @__PURE__ */ jsx91(
8443
+ return /* @__PURE__ */ jsx92(
8297
8444
  SOIC,
8298
8445
  {
8299
8446
  pinCount: fpJson.num_pins,
@@ -8317,7 +8464,7 @@ var Footprinter3d = ({ footprint }) => {
8317
8464
  );
8318
8465
  const distinct = (values) => new Set(values.map((value) => value.toFixed(3))).size;
8319
8466
  const rowsAlongY = signalPads.length > 2 && distinct(signalPads.map((pad) => pad.y)) === 2 && distinct(signalPads.map((pad) => pad.x)) > 2;
8320
- const dfn = /* @__PURE__ */ jsx91(
8467
+ const dfn = /* @__PURE__ */ jsx92(
8321
8468
  DFN,
8322
8469
  {
8323
8470
  num_pins: fpJson.num_pins,
@@ -8332,13 +8479,13 @@ var Footprinter3d = ({ footprint }) => {
8332
8479
  } : void 0
8333
8480
  }
8334
8481
  );
8335
- return rowsAlongY ? /* @__PURE__ */ jsx91(Rotate24, { rotation: [0, 0, "90deg"], children: dfn }) : dfn;
8482
+ return rowsAlongY ? /* @__PURE__ */ jsx92(Rotate24, { rotation: [0, 0, "90deg"], children: dfn }) : dfn;
8336
8483
  }
8337
8484
  case "mlp":
8338
8485
  case "lga":
8339
8486
  case "quad": {
8340
8487
  if (fpJson.legsoutside) {
8341
- return /* @__PURE__ */ jsx91(
8488
+ return /* @__PURE__ */ jsx92(
8342
8489
  QFP,
8343
8490
  {
8344
8491
  pinCount: fpJson.num_pins,
@@ -8349,7 +8496,7 @@ var Footprinter3d = ({ footprint }) => {
8349
8496
  }
8350
8497
  );
8351
8498
  }
8352
- return /* @__PURE__ */ jsx91(
8499
+ return /* @__PURE__ */ jsx92(
8353
8500
  qfn_default,
8354
8501
  {
8355
8502
  num_pins: fpJson.num_pins,
@@ -8365,7 +8512,7 @@ var Footprinter3d = ({ footprint }) => {
8365
8512
  const pitch = dim(fpJson.p, 0.8);
8366
8513
  const columns = fpJson.grid?.x ?? 8;
8367
8514
  const rows = fpJson.grid?.y ?? 8;
8368
- return /* @__PURE__ */ jsx91(
8515
+ return /* @__PURE__ */ jsx92(
8369
8516
  BGA,
8370
8517
  {
8371
8518
  ballPitch: pitch,
@@ -8378,43 +8525,43 @@ var Footprinter3d = ({ footprint }) => {
8378
8525
  );
8379
8526
  }
8380
8527
  case "sod523":
8381
- return /* @__PURE__ */ jsx91(SOD523, {});
8528
+ return /* @__PURE__ */ jsx92(SOD523, {});
8382
8529
  case "sod723":
8383
- return /* @__PURE__ */ jsx91(SOD723_default, {});
8530
+ return /* @__PURE__ */ jsx92(SOD723_default, {});
8384
8531
  case "sod882":
8385
- return /* @__PURE__ */ jsx91(SOD882, {});
8532
+ return /* @__PURE__ */ jsx92(SOD882, {});
8386
8533
  case "sma":
8387
- return /* @__PURE__ */ jsx91(SMA, {});
8534
+ return /* @__PURE__ */ jsx92(SMA, {});
8388
8535
  case "smb":
8389
- return /* @__PURE__ */ jsx91(SMB, {});
8536
+ return /* @__PURE__ */ jsx92(SMB, {});
8390
8537
  case "smc":
8391
- return /* @__PURE__ */ jsx91(SMC, {});
8538
+ return /* @__PURE__ */ jsx92(SMC, {});
8392
8539
  case "smf":
8393
- return /* @__PURE__ */ jsx91(SMF, {});
8540
+ return /* @__PURE__ */ jsx92(SMF, {});
8394
8541
  case "sod123":
8395
- return /* @__PURE__ */ jsx91(SOD123, {});
8542
+ return /* @__PURE__ */ jsx92(SOD123, {});
8396
8543
  case "sod123f":
8397
- return /* @__PURE__ */ jsx91(SOD123F, {});
8544
+ return /* @__PURE__ */ jsx92(SOD123F, {});
8398
8545
  case "sod123fl":
8399
- return /* @__PURE__ */ jsx91(SOD123FL, {});
8546
+ return /* @__PURE__ */ jsx92(SOD123FL, {});
8400
8547
  case "sod123w":
8401
- return /* @__PURE__ */ jsx91(SOD123W, {});
8548
+ return /* @__PURE__ */ jsx92(SOD123W, {});
8402
8549
  case "sod110":
8403
- return /* @__PURE__ */ jsx91(SOD123W, { bodyWidth: 2.1, bodyLength: 1.4 });
8550
+ return /* @__PURE__ */ jsx92(SOD123W, { bodyWidth: 2.1, bodyLength: 1.4 });
8404
8551
  case "sod128":
8405
- return /* @__PURE__ */ jsx91(SOD128, {});
8552
+ return /* @__PURE__ */ jsx92(SOD128, {});
8406
8553
  case "sod323":
8407
- return /* @__PURE__ */ jsx91(SOD323, {});
8554
+ return /* @__PURE__ */ jsx92(SOD323, {});
8408
8555
  case "sod323w":
8409
- return /* @__PURE__ */ jsx91(SOD323, {});
8556
+ return /* @__PURE__ */ jsx92(SOD323, {});
8410
8557
  case "sod80":
8411
- return /* @__PURE__ */ jsx91(MINIMELF, {});
8558
+ return /* @__PURE__ */ jsx92(MINIMELF, {});
8412
8559
  case "sod882d":
8413
- return /* @__PURE__ */ jsx91(SOD882, {});
8560
+ return /* @__PURE__ */ jsx92(SOD882, {});
8414
8561
  case "smbf":
8415
- return /* @__PURE__ */ jsx91(SMB, {});
8562
+ return /* @__PURE__ */ jsx92(SMB, {});
8416
8563
  case "led2835":
8417
- return /* @__PURE__ */ jsx91(
8564
+ return /* @__PURE__ */ jsx92(
8418
8565
  Led2835,
8419
8566
  {
8420
8567
  color,
@@ -8432,10 +8579,10 @@ var Footprinter3d = ({ footprint }) => {
8432
8579
  const pitch = dim(fpJson.p, 2.5);
8433
8580
  const namedDiameter = footprint.match(/_d([\d.]+)/);
8434
8581
  const diameter = fpJson.d !== void 0 ? dim(fpJson.d, pitch * 2) : namedDiameter ? Number(namedDiameter[1]) : pitch * 2;
8435
- return /* @__PURE__ */ jsx91(ElectrolyticCapacitor, { diameter, leadPitch: pitch });
8582
+ return /* @__PURE__ */ jsx92(ElectrolyticCapacitor, { diameter, leadPitch: pitch });
8436
8583
  }
8437
8584
  case "potentiometer":
8438
- return /* @__PURE__ */ jsx91(
8585
+ return /* @__PURE__ */ jsx92(
8439
8586
  Potentiometer,
8440
8587
  {
8441
8588
  bodyWidth: dim(fpJson.w, 5.35),
@@ -8445,7 +8592,7 @@ var Footprinter3d = ({ footprint }) => {
8445
8592
  }
8446
8593
  );
8447
8594
  case "smdpushbutton":
8448
- return /* @__PURE__ */ jsx91(
8595
+ return /* @__PURE__ */ jsx92(
8449
8596
  SmdPushButton,
8450
8597
  {
8451
8598
  padSpanX: dim(fpJson.px, 4.2),
@@ -8461,20 +8608,20 @@ var Footprinter3d = ({ footprint }) => {
8461
8608
  { x: -halfWidth, pins: fpJson.left ?? 0, key: "left" },
8462
8609
  { x: halfWidth, pins: fpJson.right ?? 0, key: "right" }
8463
8610
  ];
8464
- return /* @__PURE__ */ jsx91(Fragment83, { children: sides.filter(({ pins }) => pins > 0).map(({ x, pins, key }) => /* @__PURE__ */ jsx91(Translate42, { center: [x, 0, 0], children: /* @__PURE__ */ jsx91(Rotate24, { rotation: [0, 0, "90deg"], children: /* @__PURE__ */ jsx91(PinRow, { numberOfPins: pins, pitch }) }) }, key)) });
8611
+ return /* @__PURE__ */ jsx92(Fragment84, { children: sides.filter(({ pins }) => pins > 0).map(({ x, pins, key }) => /* @__PURE__ */ jsx92(Translate43, { center: [x, 0, 0], children: /* @__PURE__ */ jsx92(Rotate24, { rotation: [0, 0, "90deg"], children: /* @__PURE__ */ jsx92(PinRow, { numberOfPins: pins, pitch }) }) }, key)) });
8465
8612
  }
8466
8613
  case "sod923":
8467
- return /* @__PURE__ */ jsx91(SOD923, {});
8614
+ return /* @__PURE__ */ jsx92(SOD923, {});
8468
8615
  case "hc49":
8469
- return /* @__PURE__ */ jsx91(HC49, {});
8616
+ return /* @__PURE__ */ jsx92(HC49, {});
8470
8617
  case "micromelf":
8471
- return /* @__PURE__ */ jsx91(MicroMELF, {});
8618
+ return /* @__PURE__ */ jsx92(MicroMELF, {});
8472
8619
  case "minimelf":
8473
- return /* @__PURE__ */ jsx91(MINIMELF, {});
8620
+ return /* @__PURE__ */ jsx92(MINIMELF, {});
8474
8621
  case "melf":
8475
- return /* @__PURE__ */ jsx91(MELF, {});
8622
+ return /* @__PURE__ */ jsx92(MELF, {});
8476
8623
  case "ms012":
8477
- return /* @__PURE__ */ jsx91(
8624
+ return /* @__PURE__ */ jsx92(
8478
8625
  MS012,
8479
8626
  {
8480
8627
  pinCount: fpJson.num_pins,
@@ -8484,7 +8631,7 @@ var Footprinter3d = ({ footprint }) => {
8484
8631
  }
8485
8632
  );
8486
8633
  case "ms013":
8487
- return /* @__PURE__ */ jsx91(
8634
+ return /* @__PURE__ */ jsx92(
8488
8635
  MS013,
8489
8636
  {
8490
8637
  pinCount: fpJson.num_pins,
@@ -8494,19 +8641,19 @@ var Footprinter3d = ({ footprint }) => {
8494
8641
  }
8495
8642
  );
8496
8643
  case "sot723":
8497
- return /* @__PURE__ */ jsx91(SOT723, {});
8644
+ return /* @__PURE__ */ jsx92(SOT723, {});
8498
8645
  case "to220":
8499
- return /* @__PURE__ */ jsx91(TO220, { leads: getPlatedHoleCenters(normalizedFootprint) });
8646
+ return /* @__PURE__ */ jsx92(TO220, { leads: getPlatedHoleCenters(normalizedFootprint) });
8500
8647
  case "to220f":
8501
- return /* @__PURE__ */ jsx91(TO220, { mouldedTab: true, leads: getPlatedHoleCenters(normalizedFootprint) });
8648
+ return /* @__PURE__ */ jsx92(TO220, { mouldedTab: true, leads: getPlatedHoleCenters(normalizedFootprint) });
8502
8649
  case "to92":
8503
- return /* @__PURE__ */ jsx91(TO92, { leads: getPlatedHoleCenters(normalizedFootprint) });
8650
+ return /* @__PURE__ */ jsx92(TO92, { leads: getPlatedHoleCenters(normalizedFootprint) });
8504
8651
  case "to92l":
8505
8652
  case "to92s": {
8506
8653
  const across = dim(fpJson.w, 4.8);
8507
8654
  const along = dim(fpJson.h, 4);
8508
8655
  const diameter = Math.max(across, along);
8509
- return /* @__PURE__ */ jsx91(
8656
+ return /* @__PURE__ */ jsx92(
8510
8657
  TO92,
8511
8658
  {
8512
8659
  bodyDiameter: diameter,
@@ -8525,7 +8672,7 @@ var Footprinter3d = ({ footprint }) => {
8525
8672
  dim(fpJson.tabh, isD2Pak ? 10 : 5.8),
8526
8673
  isD2Pak ? 10 : 6.5
8527
8674
  );
8528
- return /* @__PURE__ */ jsx91(
8675
+ return /* @__PURE__ */ jsx92(
8529
8676
  DPAK,
8530
8677
  {
8531
8678
  bodyWidth: tabWidth,
@@ -8542,7 +8689,7 @@ var Footprinter3d = ({ footprint }) => {
8542
8689
  }
8543
8690
  case "stampboard":
8544
8691
  case "stampreceiver":
8545
- return /* @__PURE__ */ jsx91(
8692
+ return /* @__PURE__ */ jsx92(
8546
8693
  StampBoard,
8547
8694
  {
8548
8695
  bodyWidth: fpJson.w,
@@ -8566,7 +8713,7 @@ var Footprinter3d = ({ footprint }) => {
8566
8713
  const pinRow = fpJson.pinrow;
8567
8714
  const pinRowHoleEdgeToEdgeDist = fpJson.pinRowHoleEdgeToEdgeDist;
8568
8715
  const holes = Array.isArray(fpJson.holes) ? fpJson.holes : [];
8569
- return /* @__PURE__ */ jsx91(
8716
+ return /* @__PURE__ */ jsx92(
8570
8717
  MountedPcbModule,
8571
8718
  {
8572
8719
  numPins: pinRow,
@@ -8593,29 +8740,29 @@ var Footprinter3d = ({ footprint }) => {
8593
8740
  }
8594
8741
  switch (fpJson.imperial) {
8595
8742
  case "0402":
8596
- return /* @__PURE__ */ jsx91(A0402, { color });
8743
+ return /* @__PURE__ */ jsx92(A0402, { color });
8597
8744
  case "0603":
8598
- return /* @__PURE__ */ jsx91(A0603, { color });
8745
+ return /* @__PURE__ */ jsx92(A0603, { color });
8599
8746
  case "0805":
8600
- return /* @__PURE__ */ jsx91(A0805, { color });
8747
+ return /* @__PURE__ */ jsx92(A0805, { color });
8601
8748
  case "0201":
8602
- return /* @__PURE__ */ jsx91(A0201, { color });
8749
+ return /* @__PURE__ */ jsx92(A0201, { color });
8603
8750
  case "01005":
8604
- return /* @__PURE__ */ jsx91(A01005, { color });
8751
+ return /* @__PURE__ */ jsx92(A01005, { color });
8605
8752
  case "1206":
8606
- return /* @__PURE__ */ jsx91(A1206, { color });
8753
+ return /* @__PURE__ */ jsx92(A1206, { color });
8607
8754
  case "1210":
8608
- return /* @__PURE__ */ jsx91(A1210, { color });
8755
+ return /* @__PURE__ */ jsx92(A1210, { color });
8609
8756
  case "2010":
8610
- return /* @__PURE__ */ jsx91(A2010, { color });
8757
+ return /* @__PURE__ */ jsx92(A2010, { color });
8611
8758
  case "2512":
8612
- return /* @__PURE__ */ jsx91(A2512, { color });
8759
+ return /* @__PURE__ */ jsx92(A2512, { color });
8613
8760
  }
8614
8761
  if ((fpJson.fn === "res" || fpJson.fn === "cap") && fpJson.p !== void 0 && fpJson.ph !== void 0) {
8615
8762
  const padPitch = mm2(fpJson.p);
8616
8763
  const padHeight = mm2(fpJson.ph);
8617
8764
  if (Number.isFinite(padPitch) && Number.isFinite(padHeight)) {
8618
- return /* @__PURE__ */ jsx91(
8765
+ return /* @__PURE__ */ jsx92(
8619
8766
  ParametricChip,
8620
8767
  {
8621
8768
  padPitch,
@@ -8629,8 +8776,8 @@ var Footprinter3d = ({ footprint }) => {
8629
8776
  };
8630
8777
 
8631
8778
  // lib/utils/FlatLeadDiode.tsx
8632
- import { Colorize as Colorize56, Cuboid as Cuboid64, Hull as Hull29, Subtract as Subtract22 } from "jscad-fiber";
8633
- import { Fragment as Fragment84, jsx as jsx92, jsxs as jsxs87 } from "react/jsx-runtime";
8779
+ import { Colorize as Colorize57, Cuboid as Cuboid65, Hull as Hull30, Subtract as Subtract23 } from "jscad-fiber";
8780
+ import { Fragment as Fragment85, jsx as jsx93, jsxs as jsxs88 } from "react/jsx-runtime";
8634
8781
  function createFlatLeadDiode(p) {
8635
8782
  const dimensions = [
8636
8783
  "bodyLength",
@@ -8658,16 +8805,16 @@ function createFlatLeadDiode(p) {
8658
8805
  "Diode dimensions leave disconnected terminals or an invalid mold"
8659
8806
  );
8660
8807
  const slice = Math.min(p.bodyHeight - p.standoff, p.bodyWidth) / 100;
8661
- const body = /* @__PURE__ */ jsxs87(Hull29, { children: [
8662
- /* @__PURE__ */ jsx92(
8663
- Cuboid64,
8808
+ const body = /* @__PURE__ */ jsxs88(Hull30, { children: [
8809
+ /* @__PURE__ */ jsx93(
8810
+ Cuboid65,
8664
8811
  {
8665
8812
  size: [p.bodyLength, p.bodyWidth, slice],
8666
8813
  center: [0, 0, p.standoff + slice / 2]
8667
8814
  }
8668
8815
  ),
8669
- /* @__PURE__ */ jsx92(
8670
- Cuboid64,
8816
+ /* @__PURE__ */ jsx93(
8817
+ Cuboid65,
8671
8818
  {
8672
8819
  size: [
8673
8820
  p.bodyLength - p.taperInset * 2,
@@ -8678,8 +8825,8 @@ function createFlatLeadDiode(p) {
8678
8825
  }
8679
8826
  )
8680
8827
  ] });
8681
- const stripe = /* @__PURE__ */ jsx92(
8682
- Cuboid64,
8828
+ const stripe = /* @__PURE__ */ jsx93(
8829
+ Cuboid65,
8683
8830
  {
8684
8831
  size: [p.markingWidth, (p.bodyWidth - p.taperInset * 2) * 0.9, slice],
8685
8832
  center: [
@@ -8689,14 +8836,14 @@ function createFlatLeadDiode(p) {
8689
8836
  ]
8690
8837
  }
8691
8838
  );
8692
- return /* @__PURE__ */ jsxs87(Fragment84, { children: [
8693
- /* @__PURE__ */ jsx92(Colorize56, { color: "#25272a", children: p.markingWidth > 0 ? /* @__PURE__ */ jsxs87(Subtract22, { children: [
8839
+ return /* @__PURE__ */ jsxs88(Fragment85, { children: [
8840
+ /* @__PURE__ */ jsx93(Colorize57, { color: "#25272a", children: p.markingWidth > 0 ? /* @__PURE__ */ jsxs88(Subtract23, { children: [
8694
8841
  body,
8695
8842
  stripe
8696
8843
  ] }) : body }),
8697
- /* @__PURE__ */ jsxs87(Colorize56, { color: "#c7c9cd", children: [
8698
- /* @__PURE__ */ jsx92(
8699
- Cuboid64,
8844
+ /* @__PURE__ */ jsxs88(Colorize57, { color: "#c7c9cd", children: [
8845
+ /* @__PURE__ */ jsx93(
8846
+ Cuboid65,
8700
8847
  {
8701
8848
  size: [p.cathodeLength, p.cathodeWidth, p.terminalThickness],
8702
8849
  center: [
@@ -8706,8 +8853,8 @@ function createFlatLeadDiode(p) {
8706
8853
  ]
8707
8854
  }
8708
8855
  ),
8709
- /* @__PURE__ */ jsx92(
8710
- Cuboid64,
8856
+ /* @__PURE__ */ jsx93(
8857
+ Cuboid65,
8711
8858
  {
8712
8859
  size: [p.anodeLength, p.anodeWidth, p.terminalThickness],
8713
8860
  center: [
@@ -8718,7 +8865,7 @@ function createFlatLeadDiode(p) {
8718
8865
  }
8719
8866
  )
8720
8867
  ] }),
8721
- p.markingWidth > 0 && /* @__PURE__ */ jsx92(Colorize56, { color: "#aaaaa8", children: stripe })
8868
+ p.markingWidth > 0 && /* @__PURE__ */ jsx93(Colorize57, { color: "#aaaaa8", children: stripe })
8722
8869
  ] });
8723
8870
  }
8724
8871
 
@@ -8758,8 +8905,8 @@ var SOD323HE = (props) => createFlatLeadDiode({
8758
8905
 
8759
8906
  // lib/TantalumCapacitor.tsx
8760
8907
  import { fp as fp11 } from "@tscircuit/footprinter";
8761
- import { Colorize as Colorize57, Cuboid as Cuboid65, Hull as Hull30, Rotate as Rotate25, Translate as Translate43, Union as Union23 } from "jscad-fiber";
8762
- import { jsx as jsx93, jsxs as jsxs88 } from "react/jsx-runtime";
8908
+ import { Colorize as Colorize58, Cuboid as Cuboid66, Hull as Hull31, Rotate as Rotate25, Translate as Translate44, Union as Union24 } from "jscad-fiber";
8909
+ import { jsx as jsx94, jsxs as jsxs89 } from "react/jsx-runtime";
8763
8910
  var tantalumCases = {
8764
8911
  A: [3.2, 1.6, 1.6, 1.2, 0.8],
8765
8912
  B: [3.5, 2.8, 1.9, 2.2, 0.8],
@@ -8779,35 +8926,35 @@ var TantalumCapacitor = ({
8779
8926
  if (pads.length !== 2) throw new Error("TantalumCapacitor requires two pads");
8780
8927
  const [a, b] = pads;
8781
8928
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8782
- return /* @__PURE__ */ jsx93(Translate43, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs88(Rotate25, { rotation: [0, 0, angle], children: [
8783
- /* @__PURE__ */ jsx93(Colorize57, { color: "#d5a64e", children: /* @__PURE__ */ jsxs88(Hull30, { children: [
8784
- /* @__PURE__ */ jsx93(Cuboid65, { size: [length - 0.1, width10, 0.02], center: [0, 0, 0.21] }),
8785
- /* @__PURE__ */ jsx93(
8786
- Cuboid65,
8929
+ return /* @__PURE__ */ jsx94(Translate44, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs89(Rotate25, { rotation: [0, 0, angle], children: [
8930
+ /* @__PURE__ */ jsx94(Colorize58, { color: "#d5a64e", children: /* @__PURE__ */ jsxs89(Hull31, { children: [
8931
+ /* @__PURE__ */ jsx94(Cuboid66, { size: [length - 0.1, width10, 0.02], center: [0, 0, 0.21] }),
8932
+ /* @__PURE__ */ jsx94(
8933
+ Cuboid66,
8787
8934
  {
8788
8935
  size: [length - 0.25, width10 - 0.15, 0.02],
8789
8936
  center: [0, 0, height10 - 0.01]
8790
8937
  }
8791
8938
  )
8792
8939
  ] }) }),
8793
- /* @__PURE__ */ jsx93(Colorize57, { color: "#c5c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsxs88(Union23, { children: [
8794
- /* @__PURE__ */ jsx93(
8795
- Cuboid65,
8940
+ /* @__PURE__ */ jsx94(Colorize58, { color: "#c5c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsxs89(Union24, { children: [
8941
+ /* @__PURE__ */ jsx94(
8942
+ Cuboid66,
8796
8943
  {
8797
8944
  size: [leadLength, leadWidth, 0.25],
8798
8945
  center: [side * (length - leadLength) / 2, 0, 0.125]
8799
8946
  }
8800
8947
  ),
8801
- /* @__PURE__ */ jsx93(
8802
- Cuboid65,
8948
+ /* @__PURE__ */ jsx94(
8949
+ Cuboid66,
8803
8950
  {
8804
8951
  size: [0.15, leadWidth, height10 * 0.45],
8805
8952
  center: [side * (length - 0.15) / 2, 0, height10 * 0.225]
8806
8953
  }
8807
8954
  )
8808
8955
  ] }, side)) }),
8809
- /* @__PURE__ */ jsx93(
8810
- Cuboid65,
8956
+ /* @__PURE__ */ jsx94(
8957
+ Cuboid66,
8811
8958
  {
8812
8959
  size: [0.25, width10 - 0.25, 0.01],
8813
8960
  center: [-length / 2 + 0.5, 0, height10],
@@ -8819,8 +8966,8 @@ var TantalumCapacitor = ({
8819
8966
 
8820
8967
  // lib/TwoPadCrystal.tsx
8821
8968
  import { fp as fp12 } from "@tscircuit/footprinter";
8822
- import { Colorize as Colorize58, Cuboid as Cuboid66, RoundedCuboid as RoundedCuboid6, Rotate as Rotate26, Translate as Translate44 } from "jscad-fiber";
8823
- import { jsx as jsx94, jsxs as jsxs89 } from "react/jsx-runtime";
8969
+ import { Colorize as Colorize59, Cuboid as Cuboid67, RoundedCuboid as RoundedCuboid6, Rotate as Rotate26, Translate as Translate45 } from "jscad-fiber";
8970
+ import { jsx as jsx95, jsxs as jsxs90 } from "react/jsx-runtime";
8824
8971
  var twoPadCrystalPackages = {
8825
8972
  FC135: [3.2, 1.5, 0.9, 0.7],
8826
8973
  FC12M: [2.05, 1.2, 0.6, 0.5],
@@ -8840,9 +8987,9 @@ var TwoPadCrystal = ({
8840
8987
  if (pads.length !== 2) throw new Error("TwoPadCrystal requires two pads");
8841
8988
  const [a, b] = pads;
8842
8989
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8843
- return /* @__PURE__ */ jsx94(Translate44, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs89(Rotate26, { rotation: [0, 0, angle], children: [
8844
- /* @__PURE__ */ jsx94(Colorize58, { color: "#e0dcca", children: /* @__PURE__ */ jsx94(Cuboid66, { size: [length, width10, 0.2], center: [0, 0, 0.13] }) }),
8845
- /* @__PURE__ */ jsx94(Colorize58, { color: "#acb1b8", children: /* @__PURE__ */ jsx94(
8990
+ return /* @__PURE__ */ jsx95(Translate45, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs90(Rotate26, { rotation: [0, 0, angle], children: [
8991
+ /* @__PURE__ */ jsx95(Colorize59, { color: "#e0dcca", children: /* @__PURE__ */ jsx95(Cuboid67, { size: [length, width10, 0.2], center: [0, 0, 0.13] }) }),
8992
+ /* @__PURE__ */ jsx95(Colorize59, { color: "#acb1b8", children: /* @__PURE__ */ jsx95(
8846
8993
  RoundedCuboid6,
8847
8994
  {
8848
8995
  size: [length - 0.04, width10 - 0.04, height10 - 0.18],
@@ -8850,8 +8997,8 @@ var TwoPadCrystal = ({
8850
8997
  center: [0, 0, (height10 + 0.18) / 2]
8851
8998
  }
8852
8999
  ) }),
8853
- /* @__PURE__ */ jsx94(Colorize58, { color: "#c6af65", children: [-1, 1].map((side) => /* @__PURE__ */ jsx94(
8854
- Cuboid66,
9000
+ /* @__PURE__ */ jsx95(Colorize59, { color: "#c6af65", children: [-1, 1].map((side) => /* @__PURE__ */ jsx95(
9001
+ Cuboid67,
8855
9002
  {
8856
9003
  size: [terminalLength, width10 - 0.12, 0.06],
8857
9004
  center: [side * (length - terminalLength) / 2, 0, 0.03]
@@ -8863,8 +9010,8 @@ var TwoPadCrystal = ({
8863
9010
 
8864
9011
  // lib/CeramicChipAntenna.tsx
8865
9012
  import { fp as fp13 } from "@tscircuit/footprinter";
8866
- import { Colorize as Colorize59, Cuboid as Cuboid67, Rotate as Rotate27, Translate as Translate45 } from "jscad-fiber";
8867
- import { jsx as jsx95, jsxs as jsxs90 } from "react/jsx-runtime";
9013
+ import { Colorize as Colorize60, Cuboid as Cuboid68, Rotate as Rotate27, Translate as Translate46 } from "jscad-fiber";
9014
+ import { jsx as jsx96, jsxs as jsxs91 } from "react/jsx-runtime";
8868
9015
  var CeramicChipAntenna = ({
8869
9016
  footprint = "smdpads2_p5.4mm_pw1mm_ph2mm"
8870
9017
  }) => {
@@ -8874,17 +9021,17 @@ var CeramicChipAntenna = ({
8874
9021
  if (pads.length !== 2) throw new Error("CeramicChipAntenna requires two pads");
8875
9022
  const [a, b] = pads;
8876
9023
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8877
- return /* @__PURE__ */ jsx95(Translate45, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs90(Rotate27, { rotation: [0, 0, angle], children: [
8878
- /* @__PURE__ */ jsx95(
8879
- Cuboid67,
9024
+ return /* @__PURE__ */ jsx96(Translate46, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs91(Rotate27, { rotation: [0, 0, angle], children: [
9025
+ /* @__PURE__ */ jsx96(
9026
+ Cuboid68,
8880
9027
  {
8881
9028
  size: [4.44, 1.99, 1.14],
8882
9029
  center: [0, 0, 0.575],
8883
9030
  color: "#4053a3"
8884
9031
  }
8885
9032
  ),
8886
- /* @__PURE__ */ jsx95(Colorize59, { color: "#c2c4c7", children: [-1, 1].map((side) => /* @__PURE__ */ jsx95(
8887
- Cuboid67,
9033
+ /* @__PURE__ */ jsx96(Colorize60, { color: "#c2c4c7", children: [-1, 1].map((side) => /* @__PURE__ */ jsx96(
9034
+ Cuboid68,
8888
9035
  {
8889
9036
  size: [0.4, 2, 1.15],
8890
9037
  center: [side * 2.4, 0, 0.575],
@@ -8892,8 +9039,8 @@ var CeramicChipAntenna = ({
8892
9039
  },
8893
9040
  side
8894
9041
  )) }),
8895
- /* @__PURE__ */ jsx95(
8896
- Cuboid67,
9042
+ /* @__PURE__ */ jsx96(
9043
+ Cuboid68,
8897
9044
  {
8898
9045
  size: [0.9, 2, 0.01],
8899
9046
  center: [-1.75, 0, 1.145],
@@ -8905,8 +9052,8 @@ var CeramicChipAntenna = ({
8905
9052
 
8906
9053
  // lib/MelfResistor.tsx
8907
9054
  import { fp as fp14 } from "@tscircuit/footprinter";
8908
- import { Colorize as Colorize60, Cylinder as Cylinder24, Rotate as Rotate28, Translate as Translate46 } from "jscad-fiber";
8909
- import { jsx as jsx96, jsxs as jsxs91 } from "react/jsx-runtime";
9055
+ import { Colorize as Colorize61, Cylinder as Cylinder25, Rotate as Rotate28, Translate as Translate47 } from "jscad-fiber";
9056
+ import { jsx as jsx97, jsxs as jsxs92 } from "react/jsx-runtime";
8910
9057
  var melfResistorSizes = {
8911
9058
  "0102": [2.2, 1.1, 0.4],
8912
9059
  "0204": [3.6, 1.4, 0.75],
@@ -8925,16 +9072,16 @@ var MelfResistor = ({
8925
9072
  if (pads.length !== 2) throw new Error("MelfResistor requires two pads");
8926
9073
  const [a, b] = pads;
8927
9074
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8928
- return /* @__PURE__ */ jsx96(Translate46, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, diameter / 2], children: /* @__PURE__ */ jsx96(Rotate28, { rotation: [0, 0, angle], children: /* @__PURE__ */ jsxs91(Rotate28, { rotation: [0, Math.PI / 2, 0], children: [
8929
- /* @__PURE__ */ jsx96(Colorize60, { color: "#426d63", children: /* @__PURE__ */ jsx96(
8930
- Cylinder24,
9075
+ return /* @__PURE__ */ jsx97(Translate47, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, diameter / 2], children: /* @__PURE__ */ jsx97(Rotate28, { rotation: [0, 0, angle], children: /* @__PURE__ */ jsxs92(Rotate28, { rotation: [0, Math.PI / 2, 0], children: [
9076
+ /* @__PURE__ */ jsx97(Colorize61, { color: "#426d63", children: /* @__PURE__ */ jsx97(
9077
+ Cylinder25,
8931
9078
  {
8932
9079
  radius: (diameter - 0.08) / 2,
8933
9080
  height: length - 2 * capLength + 0.04
8934
9081
  }
8935
9082
  ) }),
8936
- /* @__PURE__ */ jsx96(Colorize60, { color: "#c6c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsx96(
8937
- Cylinder24,
9083
+ /* @__PURE__ */ jsx97(Colorize61, { color: "#c6c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsx97(
9084
+ Cylinder25,
8938
9085
  {
8939
9086
  radius: diameter / 2,
8940
9087
  height: capLength,