jscad-electronics 0.0.125 → 0.0.127

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
@@ -479,7 +479,14 @@ var FootprintPad = ({
479
479
  };
480
480
 
481
481
  // lib/FootprintPlatedHole.tsx
482
- import { Colorize as Colorize4, Cuboid as Cuboid13, Translate as Translate5, Cylinder as Cylinder2, Subtract as Subtract2 } from "jscad-fiber";
482
+ import {
483
+ Colorize as Colorize4,
484
+ Cuboid as Cuboid13,
485
+ Translate as Translate5,
486
+ Cylinder as Cylinder2,
487
+ Subtract as Subtract2,
488
+ Hull as Hull2
489
+ } from "jscad-fiber";
483
490
  import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
484
491
  var FootprintPlatedHole = ({
485
492
  hole,
@@ -497,13 +504,75 @@ var FootprintPlatedHole = ({
497
504
  /* @__PURE__ */ jsx13(
498
505
  Cuboid13,
499
506
  {
500
- size: [hole.rect_pad_width, hole.rect_pad_width, 0.01],
507
+ size: [hole.rect_pad_width, hole.rect_pad_height, 0.01],
501
508
  center: [0, 0, 0]
502
509
  }
503
510
  ),
504
511
  /* @__PURE__ */ jsx13(Cylinder2, { radius: hole.hole_diameter / 2, height: 0.01 })
505
512
  ] }) }) });
506
513
  }
514
+ if (hole.shape === "pill") {
515
+ const width10 = hole.outer_width;
516
+ const height10 = hole.outer_height;
517
+ const radius = Math.min(width10, height10) / 2;
518
+ const isHorizontal = width10 > height10;
519
+ const holeWidth = hole.hole_width ?? 0.8;
520
+ const holeHeight = hole.hole_height ?? 0.8;
521
+ return /* @__PURE__ */ jsx13(Colorize4, { color, children: /* @__PURE__ */ jsx13(Translate5, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs12(Subtract2, { children: [
522
+ /* @__PURE__ */ jsxs12(Hull2, { children: [
523
+ /* @__PURE__ */ jsx13(
524
+ Cylinder2,
525
+ {
526
+ radius,
527
+ height: 0.01,
528
+ center: [
529
+ isHorizontal ? -(width10 / 2 - radius) : 0,
530
+ isHorizontal ? 0 : -(height10 / 2 - radius),
531
+ 0
532
+ ]
533
+ }
534
+ ),
535
+ /* @__PURE__ */ jsx13(
536
+ Cylinder2,
537
+ {
538
+ radius,
539
+ height: 0.01,
540
+ center: [
541
+ isHorizontal ? width10 / 2 - radius : 0,
542
+ isHorizontal ? 0 : height10 / 2 - radius,
543
+ 0
544
+ ]
545
+ }
546
+ )
547
+ ] }),
548
+ holeWidth === holeHeight ? /* @__PURE__ */ jsx13(Cylinder2, { radius: holeWidth / 2, height: 0.01 }) : /* @__PURE__ */ jsxs12(Hull2, { children: [
549
+ /* @__PURE__ */ jsx13(
550
+ Cylinder2,
551
+ {
552
+ radius: Math.min(holeWidth, holeHeight) / 2,
553
+ height: 0.01,
554
+ center: [
555
+ holeWidth > holeHeight ? -(holeWidth / 2 - holeHeight / 2) : 0,
556
+ holeWidth > holeHeight ? 0 : -(holeHeight / 2 - holeWidth / 2),
557
+ 0
558
+ ]
559
+ }
560
+ ),
561
+ /* @__PURE__ */ jsx13(
562
+ Cylinder2,
563
+ {
564
+ radius: Math.min(holeWidth, holeHeight) / 2,
565
+ height: 0.01,
566
+ center: [
567
+ holeWidth > holeHeight ? holeWidth / 2 - holeHeight / 2 : 0,
568
+ holeWidth > holeHeight ? 0 : holeHeight / 2 - holeWidth / 2,
569
+ 0
570
+ ]
571
+ }
572
+ )
573
+ ] })
574
+ ] }) }) });
575
+ }
507
576
  throw new Error("Shape not supported: " + hole.shape);
508
577
  };
509
578
 
@@ -1010,7 +1079,7 @@ var getLeadWidth = (pinCount, width10) => {
1010
1079
  };
1011
1080
 
1012
1081
  // lib/PinHeader.tsx
1013
- import { Colorize as Colorize6, Cuboid as Cuboid14, Hull as Hull2, Rotate as Rotate5, Translate as Translate8 } from "jscad-fiber";
1082
+ import { Colorize as Colorize6, Cuboid as Cuboid14, Hull as Hull3, Rotate as Rotate5, Translate as Translate8 } from "jscad-fiber";
1014
1083
  import { Fragment as Fragment16, jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
1015
1084
  var PinHeader = ({
1016
1085
  x,
@@ -1050,7 +1119,7 @@ var PinHeader = ({
1050
1119
  padContactLength: 2,
1051
1120
  bodyDistance: 3
1052
1121
  }
1053
- ) : /* @__PURE__ */ jsxs18(Hull2, { children: [
1122
+ ) : /* @__PURE__ */ jsxs18(Hull3, { children: [
1054
1123
  /* @__PURE__ */ jsx20(
1055
1124
  Cuboid14,
1056
1125
  {
@@ -1072,7 +1141,7 @@ var PinHeader = ({
1072
1141
  }
1073
1142
  )
1074
1143
  ] }) }),
1075
- /* @__PURE__ */ jsx20(Colorize6, { color: "gold", children: /* @__PURE__ */ jsx20(Translate8, { y: rightangle ? -3.9 : 0, z: rightangle ? 1 : 0, children: /* @__PURE__ */ jsx20(Rotate5, { rotation: rightangle ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: /* @__PURE__ */ jsxs18(Hull2, { children: [
1144
+ /* @__PURE__ */ jsx20(Colorize6, { color: "gold", children: /* @__PURE__ */ jsx20(Translate8, { y: rightangle ? -3.9 : 0, z: rightangle ? 1 : 0, children: /* @__PURE__ */ jsx20(Rotate5, { rotation: rightangle ? [-Math.PI / 2, 0, 0] : [0, 0, 0], children: /* @__PURE__ */ jsxs18(Hull3, { children: [
1076
1145
  /* @__PURE__ */ jsx20(
1077
1146
  Cuboid14,
1078
1147
  {
@@ -1491,7 +1560,7 @@ var SOT23W = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
1491
1560
  };
1492
1561
 
1493
1562
  // lib/FemaleHeader.tsx
1494
- import { Colorize as Colorize8, Cuboid as Cuboid16, Cylinder as Cylinder3, Hull as Hull3, Subtract as Subtract3 } from "jscad-fiber";
1563
+ import { Colorize as Colorize8, Cuboid as Cuboid16, Cylinder as Cylinder3, Hull as Hull4, Subtract as Subtract3 } from "jscad-fiber";
1495
1564
  import { Fragment as Fragment21, jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
1496
1565
  var FemaleHeader = ({
1497
1566
  x,
@@ -1534,7 +1603,7 @@ var FemaleHeader = ({
1534
1603
  )
1535
1604
  ] }) }),
1536
1605
  /* @__PURE__ */ jsxs22(Colorize8, { color: "silver", children: [
1537
- /* @__PURE__ */ jsxs22(Hull3, { children: [
1606
+ /* @__PURE__ */ jsxs22(Hull4, { children: [
1538
1607
  /* @__PURE__ */ jsx25(
1539
1608
  Cuboid16,
1540
1609
  {
@@ -1925,7 +1994,7 @@ var VSSOP = ({
1925
1994
  };
1926
1995
 
1927
1996
  // lib/SOD523.tsx
1928
- import { Colorize as Colorize10, Cuboid as Cuboid18, Hull as Hull4, Translate as Translate10, Union as Union4 } from "jscad-fiber";
1997
+ import { Colorize as Colorize10, Cuboid as Cuboid18, Hull as Hull5, Translate as Translate10, Union as Union4 } from "jscad-fiber";
1929
1998
  import { Fragment as Fragment26, jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
1930
1999
  var SOD523 = () => {
1931
2000
  const fullWidth = 2.15;
@@ -1958,7 +2027,7 @@ var SOD523 = () => {
1958
2027
  ),
1959
2028
  /* @__PURE__ */ jsx30(Colorize10, { color: "#222", children: /* @__PURE__ */ jsxs26(Union4, { children: [
1960
2029
  /* @__PURE__ */ jsx30(Translate10, { z: straightHeight / 2, children: /* @__PURE__ */ jsx30(Cuboid18, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
1961
- /* @__PURE__ */ jsxs26(Hull4, { children: [
2030
+ /* @__PURE__ */ jsxs26(Hull5, { children: [
1962
2031
  /* @__PURE__ */ jsx30(Translate10, { z: straightHeight, children: /* @__PURE__ */ jsx30(Cuboid18, { size: [bodyWidth, bodyLength10, 0.01] }) }),
1963
2032
  /* @__PURE__ */ jsx30(Translate10, { z: bodyHeight, children: /* @__PURE__ */ jsx30(
1964
2033
  Cuboid18,
@@ -2038,7 +2107,7 @@ var SOD882 = () => {
2038
2107
  };
2039
2108
 
2040
2109
  // lib/SMA.tsx
2041
- import { Cuboid as Cuboid20, Colorize as Colorize12, Union as Union6, Hull as Hull6, Translate as Translate12 } from "jscad-fiber";
2110
+ import { Cuboid as Cuboid20, Colorize as Colorize12, Union as Union6, Hull as Hull7, Translate as Translate12 } from "jscad-fiber";
2042
2111
  import { Fragment as Fragment28, jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
2043
2112
  var SMA = () => {
2044
2113
  const bodyWidth = 4.4;
@@ -2051,7 +2120,7 @@ var SMA = () => {
2051
2120
  const taperOffset = 0.4;
2052
2121
  const straightHeight = bodyHeight * 0.5;
2053
2122
  const Body = /* @__PURE__ */ jsx32(Colorize12, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs28(Union6, { children: [
2054
- /* @__PURE__ */ jsxs28(Hull6, { children: [
2123
+ /* @__PURE__ */ jsxs28(Hull7, { children: [
2055
2124
  /* @__PURE__ */ jsx32(Translate12, { z: padThickness + 0.01, children: /* @__PURE__ */ jsx32(
2056
2125
  Cuboid20,
2057
2126
  {
@@ -2060,7 +2129,7 @@ var SMA = () => {
2060
2129
  ) }),
2061
2130
  /* @__PURE__ */ jsx32(Translate12, { z: straightHeight, children: /* @__PURE__ */ jsx32(Cuboid20, { size: [bodyWidth, bodyLength10, 0.01] }) })
2062
2131
  ] }),
2063
- /* @__PURE__ */ jsxs28(Hull6, { children: [
2132
+ /* @__PURE__ */ jsxs28(Hull7, { children: [
2064
2133
  /* @__PURE__ */ jsx32(Translate12, { z: straightHeight, children: /* @__PURE__ */ jsx32(Cuboid20, { size: [bodyWidth, bodyLength10, 0.01] }) }),
2065
2134
  /* @__PURE__ */ jsx32(Translate12, { z: bodyHeight, children: /* @__PURE__ */ jsx32(
2066
2135
  Cuboid20,
@@ -2110,7 +2179,7 @@ var SMA = () => {
2110
2179
  };
2111
2180
 
2112
2181
  // lib/SMB.tsx
2113
- import { Cuboid as Cuboid21, Colorize as Colorize13, Union as Union7, Hull as Hull7, Translate as Translate13 } from "jscad-fiber";
2182
+ import { Cuboid as Cuboid21, Colorize as Colorize13, Union as Union7, Hull as Hull8, Translate as Translate13 } from "jscad-fiber";
2114
2183
  import { Fragment as Fragment29, jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
2115
2184
  var SMB = () => {
2116
2185
  const bodyWidth = 4.4;
@@ -2123,7 +2192,7 @@ var SMB = () => {
2123
2192
  const taperOffset = 0.4;
2124
2193
  const straightHeight = bodyHeight * 0.5;
2125
2194
  const Body = /* @__PURE__ */ jsx33(Colorize13, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs29(Union7, { children: [
2126
- /* @__PURE__ */ jsxs29(Hull7, { children: [
2195
+ /* @__PURE__ */ jsxs29(Hull8, { children: [
2127
2196
  /* @__PURE__ */ jsx33(Translate13, { z: padThickness + 0.01, children: /* @__PURE__ */ jsx33(
2128
2197
  Cuboid21,
2129
2198
  {
@@ -2132,7 +2201,7 @@ var SMB = () => {
2132
2201
  ) }),
2133
2202
  /* @__PURE__ */ jsx33(Translate13, { z: straightHeight, children: /* @__PURE__ */ jsx33(Cuboid21, { size: [bodyWidth, bodyLength10, 0.01] }) })
2134
2203
  ] }),
2135
- /* @__PURE__ */ jsxs29(Hull7, { children: [
2204
+ /* @__PURE__ */ jsxs29(Hull8, { children: [
2136
2205
  /* @__PURE__ */ jsx33(Translate13, { z: straightHeight, children: /* @__PURE__ */ jsx33(Cuboid21, { size: [bodyWidth, bodyLength10, 0.01] }) }),
2137
2206
  /* @__PURE__ */ jsx33(Translate13, { z: bodyHeight, children: /* @__PURE__ */ jsx33(
2138
2207
  Cuboid21,
@@ -2182,7 +2251,7 @@ var SMB = () => {
2182
2251
  };
2183
2252
 
2184
2253
  // lib/SMC.tsx
2185
- import { Cuboid as Cuboid22, Colorize as Colorize14, Union as Union8, Hull as Hull8, Translate as Translate14 } from "jscad-fiber";
2254
+ import { Cuboid as Cuboid22, Colorize as Colorize14, Union as Union8, Hull as Hull9, Translate as Translate14 } from "jscad-fiber";
2186
2255
  import { Fragment as Fragment30, jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
2187
2256
  var SMC = () => {
2188
2257
  const bodyWidth = 6.8;
@@ -2195,7 +2264,7 @@ var SMC = () => {
2195
2264
  const taperOffset = 0.4;
2196
2265
  const straightHeight = bodyHeight * 0.5;
2197
2266
  const Body = /* @__PURE__ */ jsx34(Colorize14, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs30(Union8, { children: [
2198
- /* @__PURE__ */ jsxs30(Hull8, { children: [
2267
+ /* @__PURE__ */ jsxs30(Hull9, { children: [
2199
2268
  /* @__PURE__ */ jsx34(Translate14, { z: padThickness + 0.01, children: /* @__PURE__ */ jsx34(
2200
2269
  Cuboid22,
2201
2270
  {
@@ -2204,7 +2273,7 @@ var SMC = () => {
2204
2273
  ) }),
2205
2274
  /* @__PURE__ */ jsx34(Translate14, { z: straightHeight, children: /* @__PURE__ */ jsx34(Cuboid22, { size: [bodyWidth, bodyLength10, 0.01] }) })
2206
2275
  ] }),
2207
- /* @__PURE__ */ jsxs30(Hull8, { children: [
2276
+ /* @__PURE__ */ jsxs30(Hull9, { children: [
2208
2277
  /* @__PURE__ */ jsx34(Translate14, { z: straightHeight, children: /* @__PURE__ */ jsx34(Cuboid22, { size: [bodyWidth, bodyLength10, 0.01] }) }),
2209
2278
  /* @__PURE__ */ jsx34(Translate14, { z: bodyHeight, children: /* @__PURE__ */ jsx34(
2210
2279
  Cuboid22,
@@ -2254,7 +2323,7 @@ var SMC = () => {
2254
2323
  };
2255
2324
 
2256
2325
  // lib/SMF.tsx
2257
- import { Colorize as Colorize15, Cuboid as Cuboid23, Hull as Hull9, Translate as Translate15, Union as Union9 } from "jscad-fiber";
2326
+ import { Colorize as Colorize15, Cuboid as Cuboid23, Hull as Hull10, Translate as Translate15, Union as Union9 } from "jscad-fiber";
2258
2327
  import { Fragment as Fragment31, jsx as jsx35, jsxs as jsxs31 } from "react/jsx-runtime";
2259
2328
  var SMF = () => {
2260
2329
  const fullWidth = 2.9;
@@ -2270,7 +2339,7 @@ var SMF = () => {
2270
2339
  const straightHeight = bodyHeight * 0.5;
2271
2340
  const Body = /* @__PURE__ */ jsx35(Colorize15, { color: "#222", children: /* @__PURE__ */ jsxs31(Union9, { children: [
2272
2341
  /* @__PURE__ */ jsx35(Translate15, { z: straightHeight / 2, children: /* @__PURE__ */ jsx35(Cuboid23, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
2273
- /* @__PURE__ */ jsxs31(Hull9, { children: [
2342
+ /* @__PURE__ */ jsxs31(Hull10, { children: [
2274
2343
  /* @__PURE__ */ jsx35(Translate15, { z: straightHeight, children: /* @__PURE__ */ jsx35(Cuboid23, { size: [bodyWidth, bodyLength10, 0.01] }) }),
2275
2344
  /* @__PURE__ */ jsx35(Translate15, { z: bodyHeight, children: /* @__PURE__ */ jsx35(
2276
2345
  Cuboid23,
@@ -2302,7 +2371,7 @@ var SMF = () => {
2302
2371
  };
2303
2372
 
2304
2373
  // lib/sod-123F.tsx
2305
- import { Colorize as Colorize16, Cuboid as Cuboid24, Hull as Hull10, Translate as Translate16, Union as Union10 } from "jscad-fiber";
2374
+ import { Colorize as Colorize16, Cuboid as Cuboid24, Hull as Hull11, Translate as Translate16, Union as Union10 } from "jscad-fiber";
2306
2375
  import { Fragment as Fragment32, jsx as jsx36, jsxs as jsxs32 } from "react/jsx-runtime";
2307
2376
  var SOD123F = () => {
2308
2377
  const fullWidth = 2.7;
@@ -2334,7 +2403,7 @@ var SOD123F = () => {
2334
2403
  ),
2335
2404
  /* @__PURE__ */ jsx36(Colorize16, { color: "#222", children: /* @__PURE__ */ jsxs32(Union10, { children: [
2336
2405
  /* @__PURE__ */ jsx36(Translate16, { z: straightHeight / 2, children: /* @__PURE__ */ jsx36(Cuboid24, { size: [fullWidth, bodyLength10, straightHeight] }) }),
2337
- /* @__PURE__ */ jsxs32(Hull10, { children: [
2406
+ /* @__PURE__ */ jsxs32(Hull11, { children: [
2338
2407
  /* @__PURE__ */ jsx36(Translate16, { z: straightHeight, children: /* @__PURE__ */ jsx36(Cuboid24, { size: [fullWidth, bodyLength10, 0.01] }) }),
2339
2408
  /* @__PURE__ */ jsx36(Translate16, { z: bodyHeight, children: /* @__PURE__ */ jsx36(
2340
2409
  Cuboid24,
@@ -2348,7 +2417,7 @@ var SOD123F = () => {
2348
2417
  };
2349
2418
 
2350
2419
  // lib/sod-123FL.tsx
2351
- import { Colorize as Colorize17, Cuboid as Cuboid25, Hull as Hull11, Translate as Translate17, Union as Union11 } from "jscad-fiber";
2420
+ import { Colorize as Colorize17, Cuboid as Cuboid25, Hull as Hull12, Translate as Translate17, Union as Union11 } from "jscad-fiber";
2352
2421
  import { Fragment as Fragment33, jsx as jsx37, jsxs as jsxs33 } from "react/jsx-runtime";
2353
2422
  var SOD123FL = () => {
2354
2423
  const fullWidth = 2.75;
@@ -2380,7 +2449,7 @@ var SOD123FL = () => {
2380
2449
  ),
2381
2450
  /* @__PURE__ */ jsx37(Colorize17, { color: "#222", children: /* @__PURE__ */ jsxs33(Union11, { children: [
2382
2451
  /* @__PURE__ */ jsx37(Translate17, { z: straightHeight / 2, children: /* @__PURE__ */ jsx37(Cuboid25, { size: [fullWidth, bodyLength10, straightHeight] }) }),
2383
- /* @__PURE__ */ jsxs33(Hull11, { children: [
2452
+ /* @__PURE__ */ jsxs33(Hull12, { children: [
2384
2453
  /* @__PURE__ */ jsx37(Translate17, { z: straightHeight, children: /* @__PURE__ */ jsx37(Cuboid25, { size: [fullWidth, bodyLength10, 0.01] }) }),
2385
2454
  /* @__PURE__ */ jsx37(Translate17, { z: bodyHeight, children: /* @__PURE__ */ jsx37(
2386
2455
  Cuboid25,
@@ -2402,7 +2471,7 @@ var SOD123FL = () => {
2402
2471
  };
2403
2472
 
2404
2473
  // lib/sod-123W.tsx
2405
- import { Colorize as Colorize18, Cuboid as Cuboid26, Hull as Hull12, Translate as Translate18, Union as Union12 } from "jscad-fiber";
2474
+ import { Colorize as Colorize18, Cuboid as Cuboid26, Hull as Hull13, Translate as Translate18, Union as Union12 } from "jscad-fiber";
2406
2475
  import { Fragment as Fragment34, jsx as jsx38, jsxs as jsxs34 } from "react/jsx-runtime";
2407
2476
  var SOD123W = () => {
2408
2477
  const fullWidth = 2.6;
@@ -2434,7 +2503,7 @@ var SOD123W = () => {
2434
2503
  }
2435
2504
  ),
2436
2505
  /* @__PURE__ */ jsx38(Colorize18, { color: "#222", children: /* @__PURE__ */ jsxs34(Union12, { children: [
2437
- /* @__PURE__ */ jsxs34(Hull12, { children: [
2506
+ /* @__PURE__ */ jsxs34(Hull13, { children: [
2438
2507
  /* @__PURE__ */ jsx38(Translate18, { z: straightHeight, children: /* @__PURE__ */ jsx38(
2439
2508
  Cuboid26,
2440
2509
  {
@@ -2456,7 +2525,7 @@ var SOD123W = () => {
2456
2525
  }
2457
2526
  ) })
2458
2527
  ] }),
2459
- /* @__PURE__ */ jsxs34(Hull12, { children: [
2528
+ /* @__PURE__ */ jsxs34(Hull13, { children: [
2460
2529
  /* @__PURE__ */ jsx38(Translate18, { z: straightHeight, children: /* @__PURE__ */ jsx38(Cuboid26, { size: [fullWidth, bodyLength10, 0.01] }) }),
2461
2530
  /* @__PURE__ */ jsx38(Translate18, { z: bodyHeight, children: /* @__PURE__ */ jsx38(
2462
2531
  Cuboid26,
@@ -2478,7 +2547,7 @@ var SOD123W = () => {
2478
2547
  };
2479
2548
 
2480
2549
  // lib/sod-128.tsx
2481
- import { Colorize as Colorize19, Cuboid as Cuboid27, Hull as Hull13, Translate as Translate19, Union as Union13 } from "jscad-fiber";
2550
+ import { Colorize as Colorize19, Cuboid as Cuboid27, Hull as Hull14, Translate as Translate19, Union as Union13 } from "jscad-fiber";
2482
2551
  import { Fragment as Fragment35, jsx as jsx39, jsxs as jsxs35 } from "react/jsx-runtime";
2483
2552
  var SOD128 = () => {
2484
2553
  const fullWidth = 3.8;
@@ -2510,7 +2579,7 @@ var SOD128 = () => {
2510
2579
  }
2511
2580
  ),
2512
2581
  /* @__PURE__ */ jsx39(Colorize19, { color: "#222", children: /* @__PURE__ */ jsxs35(Union13, { children: [
2513
- /* @__PURE__ */ jsxs35(Hull13, { children: [
2582
+ /* @__PURE__ */ jsxs35(Hull14, { children: [
2514
2583
  /* @__PURE__ */ jsx39(Translate19, { z: straightHeight, children: /* @__PURE__ */ jsx39(
2515
2584
  Cuboid27,
2516
2585
  {
@@ -2532,7 +2601,7 @@ var SOD128 = () => {
2532
2601
  }
2533
2602
  ) })
2534
2603
  ] }),
2535
- /* @__PURE__ */ jsxs35(Hull13, { children: [
2604
+ /* @__PURE__ */ jsxs35(Hull14, { children: [
2536
2605
  /* @__PURE__ */ jsx39(Translate19, { z: straightHeight, children: /* @__PURE__ */ jsx39(Cuboid27, { size: [fullWidth, bodyLength10, 0.01] }) }),
2537
2606
  /* @__PURE__ */ jsx39(Translate19, { z: bodyHeight, children: /* @__PURE__ */ jsx39(
2538
2607
  Cuboid27,
@@ -2554,7 +2623,7 @@ var SOD128 = () => {
2554
2623
  };
2555
2624
 
2556
2625
  // lib/SOD-923.tsx
2557
- import { Colorize as Colorize20, Cuboid as Cuboid28, Hull as Hull14, Translate as Translate20, Union as Union14 } from "jscad-fiber";
2626
+ import { Colorize as Colorize20, Cuboid as Cuboid28, Hull as Hull15, Translate as Translate20, Union as Union14 } from "jscad-fiber";
2558
2627
  import { Fragment as Fragment36, jsx as jsx40, jsxs as jsxs36 } from "react/jsx-runtime";
2559
2628
  var SOD923 = () => {
2560
2629
  const fullWidth = 0.8;
@@ -2586,7 +2655,7 @@ var SOD923 = () => {
2586
2655
  ),
2587
2656
  /* @__PURE__ */ jsx40(Colorize20, { color: "#222", children: /* @__PURE__ */ jsxs36(Union14, { children: [
2588
2657
  /* @__PURE__ */ jsx40(Translate20, { z: straightHeight / 2, children: /* @__PURE__ */ jsx40(Cuboid28, { size: [fullWidth, bodyLength10, straightHeight] }) }),
2589
- /* @__PURE__ */ jsxs36(Hull14, { children: [
2658
+ /* @__PURE__ */ jsxs36(Hull15, { children: [
2590
2659
  /* @__PURE__ */ jsx40(Translate20, { z: straightHeight, children: /* @__PURE__ */ jsx40(Cuboid28, { size: [fullWidth, bodyLength10, 0.01] }) }),
2591
2660
  /* @__PURE__ */ jsx40(Translate20, { z: bodyHeight, children: /* @__PURE__ */ jsx40(
2592
2661
  Cuboid28,
@@ -2988,7 +3057,7 @@ var LQFP = ({
2988
3057
  };
2989
3058
 
2990
3059
  // lib/SOT-723.tsx
2991
- import { Cuboid as Cuboid29, Translate as Translate21, Colorize as Colorize21, Hull as Hull15, Union as Union15 } from "jscad-fiber";
3060
+ import { Cuboid as Cuboid29, Translate as Translate21, Colorize as Colorize21, Hull as Hull16, Union as Union15 } from "jscad-fiber";
2992
3061
  import { Fragment as Fragment41, jsx as jsx45, jsxs as jsxs41 } from "react/jsx-runtime";
2993
3062
  var SOT723 = () => {
2994
3063
  const bodyWidth = 0.85;
@@ -3015,7 +3084,7 @@ var SOT723 = () => {
3015
3084
  center: [0, 0, straightHeight / 2]
3016
3085
  }
3017
3086
  ),
3018
- /* @__PURE__ */ jsxs41(Hull15, { children: [
3087
+ /* @__PURE__ */ jsxs41(Hull16, { children: [
3019
3088
  /* @__PURE__ */ jsx45(Translate21, { z: straightHeight, children: /* @__PURE__ */ jsx45(Cuboid29, { size: [bodyWidth, bodyLength10, 0.01] }) }),
3020
3089
  /* @__PURE__ */ jsx45(Translate21, { z: bodyHeight, children: /* @__PURE__ */ jsx45(
3021
3090
  Cuboid29,
@@ -3123,7 +3192,7 @@ var DFN = ({
3123
3192
  };
3124
3193
 
3125
3194
  // lib/hc49.tsx
3126
- import { Colorize as Colorize22, Cylinder as Cylinder5, Hull as Hull16, RoundedCylinder } from "jscad-fiber";
3195
+ import { Colorize as Colorize22, Cylinder as Cylinder5, Hull as Hull17, RoundedCylinder } from "jscad-fiber";
3127
3196
  import { Fragment as Fragment43, jsx as jsx47, jsxs as jsxs43 } from "react/jsx-runtime";
3128
3197
  var HC49 = ({
3129
3198
  bodyLength: bodyLength10 = 10.2,
@@ -3142,7 +3211,7 @@ var HC49 = ({
3142
3211
  const baseHeight = 0.85;
3143
3212
  return /* @__PURE__ */ jsxs43(Fragment43, { children: [
3144
3213
  /* @__PURE__ */ jsxs43(Colorize22, { color, children: [
3145
- /* @__PURE__ */ jsxs43(Hull16, { children: [
3214
+ /* @__PURE__ */ jsxs43(Hull17, { children: [
3146
3215
  /* @__PURE__ */ jsx47(
3147
3216
  RoundedCylinder,
3148
3217
  {
@@ -3162,7 +3231,7 @@ var HC49 = ({
3162
3231
  }
3163
3232
  )
3164
3233
  ] }),
3165
- /* @__PURE__ */ jsxs43(Hull16, { children: [
3234
+ /* @__PURE__ */ jsxs43(Hull17, { children: [
3166
3235
  /* @__PURE__ */ jsx47(
3167
3236
  RoundedCylinder,
3168
3237
  {
@@ -3493,7 +3562,7 @@ var MS013 = ({
3493
3562
  import {
3494
3563
  Colorize as Colorize26,
3495
3564
  Cuboid as Cuboid33,
3496
- Hull as Hull17,
3565
+ Hull as Hull18,
3497
3566
  Rotate as Rotate10,
3498
3567
  Translate as Translate22,
3499
3568
  Cylinder as Cylinder7,
@@ -3558,7 +3627,7 @@ var TO220 = () => {
3558
3627
  const y = (i - 1) * prongPitch;
3559
3628
  const z = -prongHeight - 0.6;
3560
3629
  return /* @__PURE__ */ jsxs49(Colorize26, { color: "gold", children: [
3561
- /* @__PURE__ */ jsxs49(Hull17, { children: [
3630
+ /* @__PURE__ */ jsxs49(Hull18, { children: [
3562
3631
  /* @__PURE__ */ jsx53(Translate22, { center: [bodyFrontX - bodyHeight / 2 + 0.1, y, z], children: /* @__PURE__ */ jsx53(Cuboid33, { size: [bodyHeight, prongWidth + 1, prongHeight] }) }),
3563
3632
  /* @__PURE__ */ jsx53(
3564
3633
  Translate22,
@@ -3775,7 +3844,7 @@ var SOT963 = () => {
3775
3844
  import {
3776
3845
  Colorize as Colorize27,
3777
3846
  Cuboid as Cuboid35,
3778
- Hull as Hull18,
3847
+ Hull as Hull19,
3779
3848
  Translate as Translate23,
3780
3849
  Cylinder as Cylinder8,
3781
3850
  Subtract as Subtract5
@@ -3807,7 +3876,7 @@ var TO92 = () => {
3807
3876
  /* @__PURE__ */ jsx56(Translate23, { center: [0, -(bodyRadius - flatCut / 2), bodyZ], children: /* @__PURE__ */ jsx56(Cuboid35, { size: [bodyRadius * 2, flatCut, bodyHeight + 0.2] }) })
3808
3877
  ] }) }),
3809
3878
  /* @__PURE__ */ jsx56(Translate23, { center: leadTipPos1, children: /* @__PURE__ */ jsx56(Cuboid35, { size: leadTipSize }) }),
3810
- /* @__PURE__ */ jsxs52(Hull18, { children: [
3879
+ /* @__PURE__ */ jsxs52(Hull19, { children: [
3811
3880
  /* @__PURE__ */ jsx56(Translate23, { center: leadMidPosA, children: /* @__PURE__ */ jsx56(Cuboid35, { size: leadSmallSize }) }),
3812
3881
  /* @__PURE__ */ jsx56(Translate23, { center: leadMidPosB, children: /* @__PURE__ */ jsx56(Cuboid35, { size: leadSmallSize }) })
3813
3882
  ] }),
@@ -4082,7 +4151,7 @@ var SOD323 = () => {
4082
4151
  };
4083
4152
 
4084
4153
  // lib/sod-323F.tsx
4085
- import { Colorize as Colorize29, Cuboid as Cuboid38, Hull as Hull20, Translate as Translate25, Union as Union17 } from "jscad-fiber";
4154
+ import { Colorize as Colorize29, Cuboid as Cuboid38, Hull as Hull21, Translate as Translate25, Union as Union17 } from "jscad-fiber";
4086
4155
  import { Fragment as Fragment55, jsx as jsx60, jsxs as jsxs56 } from "react/jsx-runtime";
4087
4156
  var SOD323F = () => {
4088
4157
  const fullWidth = 1.7;
@@ -4114,7 +4183,7 @@ var SOD323F = () => {
4114
4183
  ),
4115
4184
  /* @__PURE__ */ jsx60(Colorize29, { color: "#222", children: /* @__PURE__ */ jsxs56(Union17, { children: [
4116
4185
  /* @__PURE__ */ jsx60(Translate25, { z: straightHeight / 2, children: /* @__PURE__ */ jsx60(Cuboid38, { size: [fullWidth, bodyLength10, straightHeight] }) }),
4117
- /* @__PURE__ */ jsxs56(Hull20, { children: [
4186
+ /* @__PURE__ */ jsxs56(Hull21, { children: [
4118
4187
  /* @__PURE__ */ jsx60(Translate25, { z: straightHeight, children: /* @__PURE__ */ jsx60(Cuboid38, { size: [fullWidth, bodyLength10, 0.01] }) }),
4119
4188
  /* @__PURE__ */ jsx60(Translate25, { z: bodyHeight, children: /* @__PURE__ */ jsx60(
4120
4189
  Cuboid38,
@@ -4635,7 +4704,7 @@ var MountedPcbModule = ({
4635
4704
  };
4636
4705
 
4637
4706
  // lib/SOD723.tsx
4638
- import { Colorize as Colorize35, Cuboid as Cuboid43, Hull as Hull22, Translate as Translate29, Union as Union20 } from "jscad-fiber";
4707
+ import { Colorize as Colorize35, Cuboid as Cuboid43, Hull as Hull23, Translate as Translate29, Union as Union20 } from "jscad-fiber";
4639
4708
  import { Fragment as Fragment60, jsx as jsx66, jsxs as jsxs62 } from "react/jsx-runtime";
4640
4709
  var SOD723 = () => {
4641
4710
  const fullWidth = 1.4;
@@ -4668,7 +4737,7 @@ var SOD723 = () => {
4668
4737
  ),
4669
4738
  /* @__PURE__ */ jsx66(Colorize35, { color: "#222", children: /* @__PURE__ */ jsxs62(Union20, { children: [
4670
4739
  /* @__PURE__ */ jsx66(Translate29, { z: straightHeight / 2, children: /* @__PURE__ */ jsx66(Cuboid43, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
4671
- /* @__PURE__ */ jsxs62(Hull22, { children: [
4740
+ /* @__PURE__ */ jsxs62(Hull23, { children: [
4672
4741
  /* @__PURE__ */ jsx66(Translate29, { z: straightHeight, children: /* @__PURE__ */ jsx66(Cuboid43, { size: [bodyWidth, bodyLength10, 0.01] }) }),
4673
4742
  /* @__PURE__ */ jsx66(Translate29, { z: bodyHeight, children: /* @__PURE__ */ jsx66(
4674
4743
  Cuboid43,
@@ -4690,17 +4759,182 @@ var SOD723 = () => {
4690
4759
  };
4691
4760
  var SOD723_default = SOD723;
4692
4761
 
4762
+ // lib/JSTZH1_5mm.tsx
4763
+ import {
4764
+ Colorize as Colorize36,
4765
+ Cuboid as Cuboid44,
4766
+ Cylinder as Cylinder12,
4767
+ Rotate as Rotate12,
4768
+ Subtract as Subtract9,
4769
+ Translate as Translate30
4770
+ } from "jscad-fiber";
4771
+ import { Fragment as Fragment61, jsx as jsx67, jsxs as jsxs63 } from "react/jsx-runtime";
4772
+ var JSTZH1_5mm = ({
4773
+ numPins = 7,
4774
+ showPins = true,
4775
+ showFootprint = true,
4776
+ bodyColor = "#f5f5f5",
4777
+ pinColor = "#635959"
4778
+ }) => {
4779
+ const pitch = 1.5;
4780
+ const bodyHeight = 6;
4781
+ const bodyDepth = 3.5;
4782
+ const wallThickness = 0.5;
4783
+ const hollowHeight = bodyHeight * 0.6;
4784
+ const pinLength = 6;
4785
+ const bodyWidth = (numPins - 1) * pitch + 4;
4786
+ const startX = -((numPins - 1) * pitch) / 2;
4787
+ return /* @__PURE__ */ jsxs63(Fragment61, { children: [
4788
+ /* @__PURE__ */ jsx67(Translate30, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx67(Rotate12, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx67(Colorize36, { color: bodyColor, children: /* @__PURE__ */ jsxs63(Subtract9, { children: [
4789
+ /* @__PURE__ */ jsx67(
4790
+ Cuboid44,
4791
+ {
4792
+ size: [bodyWidth, bodyDepth, bodyHeight],
4793
+ center: [0, 0, bodyHeight / 2]
4794
+ }
4795
+ ),
4796
+ /* @__PURE__ */ jsx67(
4797
+ Cuboid44,
4798
+ {
4799
+ size: [
4800
+ bodyWidth - wallThickness * 2,
4801
+ bodyDepth - wallThickness * 2,
4802
+ hollowHeight
4803
+ ],
4804
+ center: [0, 0, hollowHeight / 2]
4805
+ }
4806
+ ),
4807
+ /* @__PURE__ */ jsx67(
4808
+ Cuboid44,
4809
+ {
4810
+ size: [bodyWidth, bodyDepth / 3, hollowHeight],
4811
+ center: [0, 0, hollowHeight / 6]
4812
+ }
4813
+ ),
4814
+ /* @__PURE__ */ jsx67(
4815
+ Cuboid44,
4816
+ {
4817
+ size: [
4818
+ bodyWidth - wallThickness * 2,
4819
+ wallThickness / 2,
4820
+ hollowHeight
4821
+ ],
4822
+ center: [
4823
+ 0,
4824
+ bodyDepth / 2 - wallThickness / 4,
4825
+ hollowHeight / 2
4826
+ ]
4827
+ }
4828
+ ),
4829
+ /* @__PURE__ */ jsx67(
4830
+ Cuboid44,
4831
+ {
4832
+ size: [
4833
+ bodyWidth - wallThickness * 2,
4834
+ wallThickness / 2,
4835
+ hollowHeight
4836
+ ],
4837
+ center: [
4838
+ 0,
4839
+ -bodyDepth / 2 + wallThickness / 4,
4840
+ hollowHeight / 2
4841
+ ]
4842
+ }
4843
+ ),
4844
+ /* @__PURE__ */ jsx67(
4845
+ Cuboid44,
4846
+ {
4847
+ size: [1, wallThickness + 2, 1],
4848
+ center: [-bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
4849
+ }
4850
+ ),
4851
+ /* @__PURE__ */ jsx67(
4852
+ Cuboid44,
4853
+ {
4854
+ size: [1, wallThickness + 3, 1],
4855
+ center: [bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
4856
+ }
4857
+ ),
4858
+ /* @__PURE__ */ jsx67(
4859
+ Cuboid44,
4860
+ {
4861
+ size: [1, wallThickness + 2, 1],
4862
+ center: [-bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
4863
+ }
4864
+ ),
4865
+ /* @__PURE__ */ jsx67(
4866
+ Cuboid44,
4867
+ {
4868
+ size: [1, wallThickness + 3, 1],
4869
+ center: [bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
4870
+ }
4871
+ )
4872
+ ] }) }) }) }),
4873
+ showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx67(Colorize36, { color: pinColor, children: /* @__PURE__ */ jsx67(
4874
+ Cylinder12,
4875
+ {
4876
+ height: pinLength,
4877
+ radius: 0.35,
4878
+ center: [startX + i * pitch, 0, 2.5]
4879
+ }
4880
+ ) }, i)),
4881
+ showFootprint && Array.from({ length: numPins }).map((_, i) => {
4882
+ const isPin1 = i === 0;
4883
+ const hole = isPin1 ? {
4884
+ type: "pcb_plated_hole",
4885
+ pcb_plated_hole_id: `jstzh_${i}`,
4886
+ shape: "circular_hole_with_rect_pad",
4887
+ x: startX + i * pitch,
4888
+ y: 0,
4889
+ hole_diameter: 0.73,
4890
+ rect_pad_width: 1.03,
4891
+ rect_pad_height: 1.73,
4892
+ hole_shape: "circle",
4893
+ pad_shape: "rect",
4894
+ layers: ["top", "bottom"],
4895
+ port_hints: [`${i + 1}`]
4896
+ } : {
4897
+ type: "pcb_plated_hole",
4898
+ pcb_plated_hole_id: `jstzh_${i}`,
4899
+ shape: "pill",
4900
+ x: startX + i * pitch,
4901
+ y: 0,
4902
+ hole_height: 0.73,
4903
+ hole_width: 0.73,
4904
+ outer_height: 1.73,
4905
+ outer_width: 1.03,
4906
+ layers: ["top", "bottom"],
4907
+ port_hints: [`${i + 1}`]
4908
+ };
4909
+ return /* @__PURE__ */ jsx67(
4910
+ FootprintPlatedHole,
4911
+ {
4912
+ hole,
4913
+ isPin1
4914
+ },
4915
+ `footprint_${i}`
4916
+ );
4917
+ })
4918
+ ] });
4919
+ };
4920
+
4693
4921
  // lib/Footprinter3d.tsx
4694
- import { jsx as jsx67 } from "react/jsx-runtime";
4922
+ import { jsx as jsx68 } from "react/jsx-runtime";
4695
4923
  var Footprinter3d = ({ footprint }) => {
4696
- const fpJson = fp3.string(footprint).json();
4924
+ let normalizedFootprint = footprint;
4925
+ if (footprint.startsWith("jstzh1_5mm")) {
4926
+ const pinMatch = footprint.match(/jstzh1_5mm(\d+)?/);
4927
+ const numPins = pinMatch && pinMatch[1] ? pinMatch[1] : "7";
4928
+ normalizedFootprint = `zh${numPins}`;
4929
+ }
4930
+ const fpJson = fp3.string(normalizedFootprint).json();
4697
4931
  switch (fpJson.fn) {
4698
4932
  case "dip":
4699
- return /* @__PURE__ */ jsx67(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
4933
+ return /* @__PURE__ */ jsx68(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
4700
4934
  case "axial":
4701
- return /* @__PURE__ */ jsx67(AxialCapacitor, { pitch: fpJson.p });
4935
+ return /* @__PURE__ */ jsx68(AxialCapacitor, { pitch: fpJson.p });
4702
4936
  case "tssop":
4703
- return /* @__PURE__ */ jsx67(
4937
+ return /* @__PURE__ */ jsx68(
4704
4938
  Tssop,
4705
4939
  {
4706
4940
  pinCount: fpJson.num_pins,
@@ -4711,7 +4945,7 @@ var Footprinter3d = ({ footprint }) => {
4711
4945
  }
4712
4946
  );
4713
4947
  case "msop":
4714
- return /* @__PURE__ */ jsx67(
4948
+ return /* @__PURE__ */ jsx68(
4715
4949
  MSOP,
4716
4950
  {
4717
4951
  pinCount: fpJson.num_pins,
@@ -4722,7 +4956,7 @@ var Footprinter3d = ({ footprint }) => {
4722
4956
  }
4723
4957
  );
4724
4958
  case "vssop":
4725
- return /* @__PURE__ */ jsx67(
4959
+ return /* @__PURE__ */ jsx68(
4726
4960
  VSSOP,
4727
4961
  {
4728
4962
  pinCount: fpJson.num_pins,
@@ -4734,7 +4968,7 @@ var Footprinter3d = ({ footprint }) => {
4734
4968
  }
4735
4969
  );
4736
4970
  case "qfp":
4737
- return /* @__PURE__ */ jsx67(
4971
+ return /* @__PURE__ */ jsx68(
4738
4972
  QFP,
4739
4973
  {
4740
4974
  pinCount: fpJson.num_pins,
@@ -4745,12 +4979,12 @@ var Footprinter3d = ({ footprint }) => {
4745
4979
  }
4746
4980
  );
4747
4981
  case "tqfp":
4748
- return /* @__PURE__ */ jsx67(tqfp_default, {});
4982
+ return /* @__PURE__ */ jsx68(tqfp_default, {});
4749
4983
  case "lqfp":
4750
- return /* @__PURE__ */ jsx67(LQFP, { pinCount: fpJson.num_pins });
4984
+ return /* @__PURE__ */ jsx68(LQFP, { pinCount: fpJson.num_pins });
4751
4985
  case "qfn": {
4752
4986
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4753
- return /* @__PURE__ */ jsx67(
4987
+ return /* @__PURE__ */ jsx68(
4754
4988
  qfn_default,
4755
4989
  {
4756
4990
  num_pins: fpJson.num_pins,
@@ -4768,7 +5002,7 @@ var Footprinter3d = ({ footprint }) => {
4768
5002
  }
4769
5003
  case "dfn": {
4770
5004
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4771
- return /* @__PURE__ */ jsx67(
5005
+ return /* @__PURE__ */ jsx68(
4772
5006
  DFN,
4773
5007
  {
4774
5008
  num_pins: fpJson.num_pins,
@@ -4788,7 +5022,7 @@ var Footprinter3d = ({ footprint }) => {
4788
5022
  const rowsMatch = footprint.match(/_rows(\d+)/);
4789
5023
  const rows = rowsMatch && rowsMatch[1] ? parseInt(rowsMatch[1], 10) : 1;
4790
5024
  if (fpJson.male)
4791
- return /* @__PURE__ */ jsx67(
5025
+ return /* @__PURE__ */ jsx68(
4792
5026
  PinRow,
4793
5027
  {
4794
5028
  numberOfPins: fpJson.num_pins,
@@ -4801,7 +5035,7 @@ var Footprinter3d = ({ footprint }) => {
4801
5035
  }
4802
5036
  );
4803
5037
  if (fpJson.female)
4804
- return /* @__PURE__ */ jsx67(
5038
+ return /* @__PURE__ */ jsx68(
4805
5039
  FemaleHeaderRow,
4806
5040
  {
4807
5041
  numberOfPins: fpJson.num_pins,
@@ -4813,47 +5047,47 @@ var Footprinter3d = ({ footprint }) => {
4813
5047
  case "cap": {
4814
5048
  switch (fpJson.imperial) {
4815
5049
  case "0402":
4816
- return /* @__PURE__ */ jsx67(A0402, { color: "#856c4d" });
5050
+ return /* @__PURE__ */ jsx68(A0402, { color: "#856c4d" });
4817
5051
  case "0603":
4818
- return /* @__PURE__ */ jsx67(A0603, { color: "#856c4d" });
5052
+ return /* @__PURE__ */ jsx68(A0603, { color: "#856c4d" });
4819
5053
  case "0805":
4820
- return /* @__PURE__ */ jsx67(A0805, { color: "#856c4d" });
5054
+ return /* @__PURE__ */ jsx68(A0805, { color: "#856c4d" });
4821
5055
  case "0201":
4822
- return /* @__PURE__ */ jsx67(A0201, { color: "#856c4d" });
5056
+ return /* @__PURE__ */ jsx68(A0201, { color: "#856c4d" });
4823
5057
  case "01005":
4824
- return /* @__PURE__ */ jsx67(A01005, { color: "#856c4d" });
5058
+ return /* @__PURE__ */ jsx68(A01005, { color: "#856c4d" });
4825
5059
  case "1206":
4826
- return /* @__PURE__ */ jsx67(A1206, { color: "#856c4d" });
5060
+ return /* @__PURE__ */ jsx68(A1206, { color: "#856c4d" });
4827
5061
  case "1210":
4828
- return /* @__PURE__ */ jsx67(A1210, { color: "#856c4d" });
5062
+ return /* @__PURE__ */ jsx68(A1210, { color: "#856c4d" });
4829
5063
  case "2010":
4830
- return /* @__PURE__ */ jsx67(A2010, { color: "#856c4d" });
5064
+ return /* @__PURE__ */ jsx68(A2010, { color: "#856c4d" });
4831
5065
  case "2512":
4832
- return /* @__PURE__ */ jsx67(A2512, { color: "#856c4d" });
5066
+ return /* @__PURE__ */ jsx68(A2512, { color: "#856c4d" });
4833
5067
  }
4834
5068
  }
4835
5069
  case "sot235":
4836
- return /* @__PURE__ */ jsx67(SOT_235_default, {});
5070
+ return /* @__PURE__ */ jsx68(SOT_235_default, {});
4837
5071
  case "sot457":
4838
- return /* @__PURE__ */ jsx67(SOT457, {});
5072
+ return /* @__PURE__ */ jsx68(SOT457, {});
4839
5073
  case "sot223":
4840
- return /* @__PURE__ */ jsx67(SOT223, {});
5074
+ return /* @__PURE__ */ jsx68(SOT223, {});
4841
5075
  case "sot23w":
4842
- return /* @__PURE__ */ jsx67(SOT23W, {});
5076
+ return /* @__PURE__ */ jsx68(SOT23W, {});
4843
5077
  case "sot323":
4844
- return /* @__PURE__ */ jsx67(SOT323, {});
5078
+ return /* @__PURE__ */ jsx68(SOT323, {});
4845
5079
  case "sod323f":
4846
- return /* @__PURE__ */ jsx67(SOD323F, {});
5080
+ return /* @__PURE__ */ jsx68(SOD323F, {});
4847
5081
  case "sod323fl":
4848
- return /* @__PURE__ */ jsx67(SOD323FL, {});
5082
+ return /* @__PURE__ */ jsx68(SOD323FL, {});
4849
5083
  case "sot363":
4850
- return /* @__PURE__ */ jsx67(SOT_363_default, {});
5084
+ return /* @__PURE__ */ jsx68(SOT_363_default, {});
4851
5085
  case "sot886":
4852
- return /* @__PURE__ */ jsx67(SOT886, {});
5086
+ return /* @__PURE__ */ jsx68(SOT886, {});
4853
5087
  case "sot963":
4854
- return /* @__PURE__ */ jsx67(SOT963, {});
5088
+ return /* @__PURE__ */ jsx68(SOT963, {});
4855
5089
  case "pushbutton":
4856
- return /* @__PURE__ */ jsx67(
5090
+ return /* @__PURE__ */ jsx68(
4857
5091
  PushButton,
4858
5092
  {
4859
5093
  width: fpJson.w,
@@ -4861,8 +5095,13 @@ var Footprinter3d = ({ footprint }) => {
4861
5095
  innerDiameter: fpJson.id
4862
5096
  }
4863
5097
  );
5098
+ case "jst":
5099
+ if (fpJson.zh) {
5100
+ return /* @__PURE__ */ jsx68(JSTZH1_5mm, { numPins: fpJson.num_pins });
5101
+ }
5102
+ break;
4864
5103
  case "soic":
4865
- return /* @__PURE__ */ jsx67(
5104
+ return /* @__PURE__ */ jsx68(
4866
5105
  SOIC,
4867
5106
  {
4868
5107
  pinCount: fpJson.num_pins,
@@ -4873,41 +5112,41 @@ var Footprinter3d = ({ footprint }) => {
4873
5112
  }
4874
5113
  );
4875
5114
  case "sod523":
4876
- return /* @__PURE__ */ jsx67(SOD523, {});
5115
+ return /* @__PURE__ */ jsx68(SOD523, {});
4877
5116
  case "sod723":
4878
- return /* @__PURE__ */ jsx67(SOD723_default, {});
5117
+ return /* @__PURE__ */ jsx68(SOD723_default, {});
4879
5118
  case "sod882":
4880
- return /* @__PURE__ */ jsx67(SOD882, {});
5119
+ return /* @__PURE__ */ jsx68(SOD882, {});
4881
5120
  case "sma":
4882
- return /* @__PURE__ */ jsx67(SMA, {});
5121
+ return /* @__PURE__ */ jsx68(SMA, {});
4883
5122
  case "smb":
4884
- return /* @__PURE__ */ jsx67(SMB, {});
5123
+ return /* @__PURE__ */ jsx68(SMB, {});
4885
5124
  case "smc":
4886
- return /* @__PURE__ */ jsx67(SMC, {});
5125
+ return /* @__PURE__ */ jsx68(SMC, {});
4887
5126
  case "smf":
4888
- return /* @__PURE__ */ jsx67(SMF, {});
5127
+ return /* @__PURE__ */ jsx68(SMF, {});
4889
5128
  case "sod123f":
4890
- return /* @__PURE__ */ jsx67(SOD123F, {});
5129
+ return /* @__PURE__ */ jsx68(SOD123F, {});
4891
5130
  case "sod123fl":
4892
- return /* @__PURE__ */ jsx67(SOD123FL, {});
5131
+ return /* @__PURE__ */ jsx68(SOD123FL, {});
4893
5132
  case "sod123w":
4894
- return /* @__PURE__ */ jsx67(SOD123W, {});
5133
+ return /* @__PURE__ */ jsx68(SOD123W, {});
4895
5134
  case "sod128":
4896
- return /* @__PURE__ */ jsx67(SOD128, {});
5135
+ return /* @__PURE__ */ jsx68(SOD128, {});
4897
5136
  case "sod323":
4898
- return /* @__PURE__ */ jsx67(SOD323, {});
5137
+ return /* @__PURE__ */ jsx68(SOD323, {});
4899
5138
  case "sod923":
4900
- return /* @__PURE__ */ jsx67(SOD923, {});
5139
+ return /* @__PURE__ */ jsx68(SOD923, {});
4901
5140
  case "hc49":
4902
- return /* @__PURE__ */ jsx67(HC49, {});
5141
+ return /* @__PURE__ */ jsx68(HC49, {});
4903
5142
  case "micromelf":
4904
- return /* @__PURE__ */ jsx67(MicroMELF, {});
5143
+ return /* @__PURE__ */ jsx68(MicroMELF, {});
4905
5144
  case "minimelf":
4906
- return /* @__PURE__ */ jsx67(MINIMELF, {});
5145
+ return /* @__PURE__ */ jsx68(MINIMELF, {});
4907
5146
  case "melf":
4908
- return /* @__PURE__ */ jsx67(MELF, {});
5147
+ return /* @__PURE__ */ jsx68(MELF, {});
4909
5148
  case "ms012":
4910
- return /* @__PURE__ */ jsx67(
5149
+ return /* @__PURE__ */ jsx68(
4911
5150
  MS012,
4912
5151
  {
4913
5152
  pinCount: fpJson.num_pins,
@@ -4917,7 +5156,7 @@ var Footprinter3d = ({ footprint }) => {
4917
5156
  }
4918
5157
  );
4919
5158
  case "ms013":
4920
- return /* @__PURE__ */ jsx67(
5159
+ return /* @__PURE__ */ jsx68(
4921
5160
  MS013,
4922
5161
  {
4923
5162
  pinCount: fpJson.num_pins,
@@ -4927,14 +5166,14 @@ var Footprinter3d = ({ footprint }) => {
4927
5166
  }
4928
5167
  );
4929
5168
  case "sot723":
4930
- return /* @__PURE__ */ jsx67(SOT723, {});
5169
+ return /* @__PURE__ */ jsx68(SOT723, {});
4931
5170
  case "to220":
4932
- return /* @__PURE__ */ jsx67(TO220, {});
5171
+ return /* @__PURE__ */ jsx68(TO220, {});
4933
5172
  case "to92":
4934
- return /* @__PURE__ */ jsx67(TO92, {});
5173
+ return /* @__PURE__ */ jsx68(TO92, {});
4935
5174
  case "stampboard":
4936
5175
  case "stampreceiver":
4937
- return /* @__PURE__ */ jsx67(
5176
+ return /* @__PURE__ */ jsx68(
4938
5177
  StampBoard,
4939
5178
  {
4940
5179
  bodyWidth: fpJson.w,
@@ -4958,7 +5197,7 @@ var Footprinter3d = ({ footprint }) => {
4958
5197
  const pinRow = fpJson.pinrow;
4959
5198
  const pinRowHoleEdgeToEdgeDist = fpJson.pinRowHoleEdgeToEdgeDist;
4960
5199
  const holes = Array.isArray(fpJson.holes) ? fpJson.holes : [];
4961
- return /* @__PURE__ */ jsx67(
5200
+ return /* @__PURE__ */ jsx68(
4962
5201
  MountedPcbModule,
4963
5202
  {
4964
5203
  numPins: pinRow,
@@ -4987,29 +5226,29 @@ var Footprinter3d = ({ footprint }) => {
4987
5226
  const color = colorMatch ? colorMatch[1] : void 0;
4988
5227
  switch (fpJson.imperial) {
4989
5228
  case "0402":
4990
- return /* @__PURE__ */ jsx67(A0402, { color });
5229
+ return /* @__PURE__ */ jsx68(A0402, { color });
4991
5230
  case "0603":
4992
- return /* @__PURE__ */ jsx67(A0603, { color });
5231
+ return /* @__PURE__ */ jsx68(A0603, { color });
4993
5232
  case "0805":
4994
- return /* @__PURE__ */ jsx67(A0805, { color });
5233
+ return /* @__PURE__ */ jsx68(A0805, { color });
4995
5234
  case "0201":
4996
- return /* @__PURE__ */ jsx67(A0201, { color });
5235
+ return /* @__PURE__ */ jsx68(A0201, { color });
4997
5236
  case "01005":
4998
- return /* @__PURE__ */ jsx67(A01005, { color });
5237
+ return /* @__PURE__ */ jsx68(A01005, { color });
4999
5238
  case "1206":
5000
- return /* @__PURE__ */ jsx67(A1206, { color });
5239
+ return /* @__PURE__ */ jsx68(A1206, { color });
5001
5240
  case "1210":
5002
- return /* @__PURE__ */ jsx67(A1210, { color });
5241
+ return /* @__PURE__ */ jsx68(A1210, { color });
5003
5242
  case "2010":
5004
- return /* @__PURE__ */ jsx67(A2010, { color });
5243
+ return /* @__PURE__ */ jsx68(A2010, { color });
5005
5244
  case "2512":
5006
- return /* @__PURE__ */ jsx67(A2512, { color });
5245
+ return /* @__PURE__ */ jsx68(A2512, { color });
5007
5246
  }
5008
5247
  return null;
5009
5248
  };
5010
5249
 
5011
5250
  // lib/SOT-23-3P.tsx
5012
- import { Fragment as Fragment61, jsx as jsx68, jsxs as jsxs63 } from "react/jsx-runtime";
5251
+ import { Fragment as Fragment62, jsx as jsx69, jsxs as jsxs64 } from "react/jsx-runtime";
5013
5252
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
5014
5253
  const bodyWidth = 1.3;
5015
5254
  const bodyLength10 = 2.9;
@@ -5020,8 +5259,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
5020
5259
  const padContactLength = 0.4;
5021
5260
  const padThickness = leadThickness / 2;
5022
5261
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
5023
- return /* @__PURE__ */ jsxs63(Fragment61, { children: [
5024
- /* @__PURE__ */ jsx68(
5262
+ return /* @__PURE__ */ jsxs64(Fragment62, { children: [
5263
+ /* @__PURE__ */ jsx69(
5025
5264
  SmdChipLead,
5026
5265
  {
5027
5266
  rotation: Math.PI,
@@ -5038,7 +5277,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
5038
5277
  },
5039
5278
  1
5040
5279
  ),
5041
- /* @__PURE__ */ jsx68(
5280
+ /* @__PURE__ */ jsx69(
5042
5281
  SmdChipLead,
5043
5282
  {
5044
5283
  rotation: Math.PI,
@@ -5055,7 +5294,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
5055
5294
  },
5056
5295
  2
5057
5296
  ),
5058
- /* @__PURE__ */ jsx68(
5297
+ /* @__PURE__ */ jsx69(
5059
5298
  SmdChipLead,
5060
5299
  {
5061
5300
  position: {
@@ -5071,7 +5310,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
5071
5310
  },
5072
5311
  3
5073
5312
  ),
5074
- /* @__PURE__ */ jsx68(
5313
+ /* @__PURE__ */ jsx69(
5075
5314
  ChipBody,
5076
5315
  {
5077
5316
  center: { x: 0, y: 0, z: 0 },
@@ -5084,8 +5323,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
5084
5323
  };
5085
5324
 
5086
5325
  // lib/SOT-563.tsx
5087
- import { Cuboid as Cuboid44, Translate as Translate30, Rotate as Rotate12, Colorize as Colorize36 } from "jscad-fiber";
5088
- import { Fragment as Fragment62, jsx as jsx69, jsxs as jsxs64 } from "react/jsx-runtime";
5326
+ import { Cuboid as Cuboid45, Translate as Translate31, Rotate as Rotate13, Colorize as Colorize37 } from "jscad-fiber";
5327
+ import { Fragment as Fragment63, jsx as jsx70, jsxs as jsxs65 } from "react/jsx-runtime";
5089
5328
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
5090
5329
  const bodyWidth = 1.2;
5091
5330
  const bodyLength10 = 1.6;
@@ -5095,28 +5334,28 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
5095
5334
  const leadHeight = 0.13;
5096
5335
  const leadSpacing = 0.5;
5097
5336
  const bodyZOffset = -0.4;
5098
- return /* @__PURE__ */ jsxs64(Fragment62, { children: [
5099
- /* @__PURE__ */ jsx69(Rotate12, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx69(Translate30, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx69(Colorize36, { color: "grey", children: /* @__PURE__ */ jsx69(Cuboid44, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
5337
+ return /* @__PURE__ */ jsxs65(Fragment63, { children: [
5338
+ /* @__PURE__ */ jsx70(Rotate13, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx70(Translate31, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx70(Colorize37, { color: "grey", children: /* @__PURE__ */ jsx70(Cuboid45, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
5100
5339
  [-1, 0, 1].flatMap((yOffset, index) => [
5101
5340
  // Left lead
5102
- /* @__PURE__ */ jsx69(
5103
- Translate30,
5341
+ /* @__PURE__ */ jsx70(
5342
+ Translate31,
5104
5343
  {
5105
5344
  center: [
5106
5345
  -bodyWidth / 2 - 0.03,
5107
5346
  yOffset * leadSpacing,
5108
5347
  leadHeight / 2
5109
5348
  ],
5110
- children: /* @__PURE__ */ jsx69(Cuboid44, { size: [leadLength, leadWidth, leadHeight] })
5349
+ children: /* @__PURE__ */ jsx70(Cuboid45, { size: [leadLength, leadWidth, leadHeight] })
5111
5350
  },
5112
5351
  `left-${index}`
5113
5352
  ),
5114
5353
  // Right lead
5115
- /* @__PURE__ */ jsx69(
5116
- Translate30,
5354
+ /* @__PURE__ */ jsx70(
5355
+ Translate31,
5117
5356
  {
5118
5357
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
5119
- children: /* @__PURE__ */ jsx69(Cuboid44, { size: [leadLength, leadWidth, leadHeight] })
5358
+ children: /* @__PURE__ */ jsx70(Cuboid45, { size: [leadLength, leadWidth, leadHeight] })
5120
5359
  },
5121
5360
  `right-${index}`
5122
5361
  )
@@ -5125,7 +5364,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
5125
5364
  };
5126
5365
 
5127
5366
  // lib/sod-123.tsx
5128
- import { Fragment as Fragment63, jsx as jsx70, jsxs as jsxs65 } from "react/jsx-runtime";
5367
+ import { Fragment as Fragment64, jsx as jsx71, jsxs as jsxs66 } from "react/jsx-runtime";
5129
5368
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
5130
5369
  const bodyWidth = 2.9;
5131
5370
  const bodyLength10 = 1.3;
@@ -5136,8 +5375,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
5136
5375
  const padContactLength = 0.4;
5137
5376
  const padThickness = leadThickness / 2;
5138
5377
  const bodyDistance = (fullWidth - bodyWidth) / 2;
5139
- return /* @__PURE__ */ jsxs65(Fragment63, { children: [
5140
- /* @__PURE__ */ jsx70(
5378
+ return /* @__PURE__ */ jsxs66(Fragment64, { children: [
5379
+ /* @__PURE__ */ jsx71(
5141
5380
  SmdChipLead,
5142
5381
  {
5143
5382
  position: {
@@ -5153,7 +5392,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
5153
5392
  },
5154
5393
  1
5155
5394
  ),
5156
- /* @__PURE__ */ jsx70(
5395
+ /* @__PURE__ */ jsx71(
5157
5396
  SmdChipLead,
5158
5397
  {
5159
5398
  rotation: Math.PI,
@@ -5170,7 +5409,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
5170
5409
  },
5171
5410
  2
5172
5411
  ),
5173
- /* @__PURE__ */ jsx70(
5412
+ /* @__PURE__ */ jsx71(
5174
5413
  ChipBody,
5175
5414
  {
5176
5415
  center: { x: 0, y: 0, z: 0 },
@@ -5203,6 +5442,7 @@ export {
5203
5442
  FootprintPlatedHole,
5204
5443
  Footprinter3d,
5205
5444
  HC49,
5445
+ JSTZH1_5mm,
5206
5446
  LQFP,
5207
5447
  MELF,
5208
5448
  MINIMELF,