jscad-electronics 0.0.75 → 0.0.76

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.d.ts CHANGED
@@ -173,6 +173,14 @@ declare const QFP: ({ pinCount, pitch, leadWidth, padContactLength, bodyWidth, }
173
173
 
174
174
  declare const TQFP: () => react_jsx_runtime.JSX.Element;
175
175
 
176
+ declare const LQFP: ({ pinCount, pitch, leadWidth, padContactLength, bodyWidth, }: {
177
+ pinCount: number;
178
+ pitch?: number;
179
+ leadWidth?: number;
180
+ padContactLength?: number;
181
+ bodyWidth?: number;
182
+ }) => react_jsx_runtime.JSX.Element;
183
+
176
184
  declare const SOD123: ({ fullWidth, fullLength }: {
177
185
  fullWidth?: number | undefined;
178
186
  fullLength?: number | undefined;
@@ -204,4 +212,4 @@ declare const SOT223: () => react_jsx_runtime.JSX.Element;
204
212
 
205
213
  declare const SOT323: () => react_jsx_runtime.JSX.Element;
206
214
 
207
- export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, BGA, ChipBody, type ChipBodyProps, ExtrudedPads, FootprintPad, FootprintPlatedHole, Footprinter3d, PinRow, QFN, QFP, SMA, SMB, SMC, SMF, SOD123, SOD123F, SOD123FL, SOD523, SOD923, SOT223, SOT233P, SOT323, SOT563, SOT723, SmdChipLead, type SmdChipLeadProps, TQFP, Tssop, VSSOP };
215
+ export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, BGA, ChipBody, type ChipBodyProps, ExtrudedPads, FootprintPad, FootprintPlatedHole, Footprinter3d, LQFP, PinRow, QFN, QFP, SMA, SMB, SMC, SMF, SOD123, SOD123F, SOD123FL, SOD523, SOD923, SOT223, SOT233P, SOT323, SOT563, SOT723, SmdChipLead, type SmdChipLeadProps, TQFP, Tssop, VSSOP };
package/dist/index.js CHANGED
@@ -2418,15 +2418,127 @@ var SOT323 = () => {
2418
2418
  ] });
2419
2419
  };
2420
2420
 
2421
+ // lib/lqfp.tsx
2422
+ import { Fragment as Fragment33, jsx as jsx37, jsxs as jsxs35 } from "react/jsx-runtime";
2423
+ var LQFP = ({
2424
+ pinCount,
2425
+ pitch,
2426
+ leadWidth,
2427
+ padContactLength,
2428
+ bodyWidth
2429
+ }) => {
2430
+ const sidePinCount = pinCount / 4;
2431
+ if (sidePinCount !== Math.floor(sidePinCount)) {
2432
+ throw new Error(`LQFP pinCount must be divisible by 4, got ${pinCount}`);
2433
+ }
2434
+ if (!pitch) pitch = 0.5;
2435
+ if (!padContactLength) padContactLength = 0.6;
2436
+ if (!leadWidth) leadWidth = 0.22;
2437
+ if (!bodyWidth) bodyWidth = pitch * (sidePinCount + 4);
2438
+ const bodyLength10 = bodyWidth;
2439
+ const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
2440
+ const fullLength10 = bodyLength10 + 3.3 * padContactLength;
2441
+ const fullWidth = fullLength10;
2442
+ const leadHeight = 0.8;
2443
+ const leadThickness = 0.2;
2444
+ const bodyDistance = (fullWidth - bodyWidth) / 2 + 0.2;
2445
+ return /* @__PURE__ */ jsxs35(Fragment33, { children: [
2446
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx37(
2447
+ SmdChipLead,
2448
+ {
2449
+ position: {
2450
+ x: -fullWidth / 1.98,
2451
+ y: i * pitch - pinOffsetToCenter,
2452
+ z: leadThickness / 2
2453
+ },
2454
+ width: leadWidth,
2455
+ thickness: leadThickness,
2456
+ padContactLength,
2457
+ bodyDistance,
2458
+ height: leadHeight
2459
+ },
2460
+ `left-${i}`
2461
+ )),
2462
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx37(
2463
+ SmdChipLead,
2464
+ {
2465
+ rotation: Math.PI,
2466
+ position: {
2467
+ x: fullWidth / 1.98,
2468
+ y: i * pitch - pinOffsetToCenter,
2469
+ z: leadThickness / 2
2470
+ },
2471
+ width: leadWidth,
2472
+ thickness: leadThickness,
2473
+ padContactLength,
2474
+ bodyDistance,
2475
+ height: leadHeight
2476
+ },
2477
+ `right-${i}`
2478
+ )),
2479
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx37(
2480
+ SmdChipLead,
2481
+ {
2482
+ rotation: Math.PI / 2,
2483
+ position: {
2484
+ x: i * pitch - pinOffsetToCenter,
2485
+ y: -fullLength10 / 1.98,
2486
+ z: leadThickness / 2
2487
+ },
2488
+ width: leadWidth,
2489
+ thickness: leadThickness,
2490
+ padContactLength,
2491
+ bodyDistance,
2492
+ height: leadHeight
2493
+ },
2494
+ `bottom-${i}`
2495
+ )),
2496
+ Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx37(
2497
+ SmdChipLead,
2498
+ {
2499
+ rotation: -Math.PI / 2,
2500
+ position: {
2501
+ x: i * pitch - pinOffsetToCenter,
2502
+ y: fullLength10 / 1.98,
2503
+ z: leadThickness / 2
2504
+ },
2505
+ width: leadWidth,
2506
+ thickness: leadThickness,
2507
+ padContactLength,
2508
+ bodyDistance,
2509
+ height: leadHeight
2510
+ },
2511
+ `top-${i}`
2512
+ )),
2513
+ /* @__PURE__ */ jsx37(
2514
+ ChipBody,
2515
+ {
2516
+ center: { x: 0, y: 0, z: leadThickness / 2 },
2517
+ width: bodyWidth,
2518
+ length: bodyLength10,
2519
+ height: 1.5,
2520
+ heightAboveSurface: 0.1,
2521
+ taperRatio: 0.04,
2522
+ chamferSize: 0.7,
2523
+ notchPosition: {
2524
+ x: bodyLength10 / 2 - 1.5,
2525
+ y: bodyLength10 / 2 - 1.5,
2526
+ z: 1.5
2527
+ }
2528
+ }
2529
+ )
2530
+ ] });
2531
+ };
2532
+
2421
2533
  // lib/Footprinter3d.tsx
2422
- import { jsx as jsx37 } from "react/jsx-runtime";
2534
+ import { jsx as jsx38 } from "react/jsx-runtime";
2423
2535
  var Footprinter3d = ({ footprint }) => {
2424
2536
  const fpJson = fp3.string(footprint).json();
2425
2537
  switch (fpJson.fn) {
2426
2538
  case "dip":
2427
- return /* @__PURE__ */ jsx37(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
2539
+ return /* @__PURE__ */ jsx38(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
2428
2540
  case "tssop":
2429
- return /* @__PURE__ */ jsx37(
2541
+ return /* @__PURE__ */ jsx38(
2430
2542
  Tssop,
2431
2543
  {
2432
2544
  pinCount: fpJson.num_pins,
@@ -2437,7 +2549,7 @@ var Footprinter3d = ({ footprint }) => {
2437
2549
  }
2438
2550
  );
2439
2551
  case "vssop":
2440
- return /* @__PURE__ */ jsx37(
2552
+ return /* @__PURE__ */ jsx38(
2441
2553
  VSSOP,
2442
2554
  {
2443
2555
  pinCount: fpJson.num_pins,
@@ -2449,7 +2561,7 @@ var Footprinter3d = ({ footprint }) => {
2449
2561
  }
2450
2562
  );
2451
2563
  case "qfp":
2452
- return /* @__PURE__ */ jsx37(
2564
+ return /* @__PURE__ */ jsx38(
2453
2565
  QFP,
2454
2566
  {
2455
2567
  pinCount: fpJson.num_pins,
@@ -2460,10 +2572,12 @@ var Footprinter3d = ({ footprint }) => {
2460
2572
  }
2461
2573
  );
2462
2574
  case "tqfp":
2463
- return /* @__PURE__ */ jsx37(tqfp_default, {});
2575
+ return /* @__PURE__ */ jsx38(tqfp_default, {});
2576
+ case "lqfp":
2577
+ return /* @__PURE__ */ jsx38(LQFP, { pinCount: fpJson.num_pins });
2464
2578
  case "qfn":
2465
2579
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
2466
- return /* @__PURE__ */ jsx37(
2580
+ return /* @__PURE__ */ jsx38(
2467
2581
  qfn_default,
2468
2582
  {
2469
2583
  num_pins: fpJson.num_pins,
@@ -2480,39 +2594,39 @@ var Footprinter3d = ({ footprint }) => {
2480
2594
  );
2481
2595
  case "pinrow":
2482
2596
  if (fpJson.male)
2483
- return /* @__PURE__ */ jsx37(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2597
+ return /* @__PURE__ */ jsx38(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2484
2598
  if (fpJson.female)
2485
- return /* @__PURE__ */ jsx37(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2599
+ return /* @__PURE__ */ jsx38(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2486
2600
  case "cap": {
2487
2601
  switch (fpJson.imperial) {
2488
2602
  case "0402":
2489
- return /* @__PURE__ */ jsx37(A0402, { color: "#856c4d" });
2603
+ return /* @__PURE__ */ jsx38(A0402, { color: "#856c4d" });
2490
2604
  case "0603":
2491
- return /* @__PURE__ */ jsx37(A0603, { color: "#856c4d" });
2605
+ return /* @__PURE__ */ jsx38(A0603, { color: "#856c4d" });
2492
2606
  case "0805":
2493
- return /* @__PURE__ */ jsx37(A0805, { color: "#856c4d" });
2607
+ return /* @__PURE__ */ jsx38(A0805, { color: "#856c4d" });
2494
2608
  case "0201":
2495
- return /* @__PURE__ */ jsx37(A0201, { color: "#856c4d" });
2609
+ return /* @__PURE__ */ jsx38(A0201, { color: "#856c4d" });
2496
2610
  case "01005":
2497
- return /* @__PURE__ */ jsx37(A01005, { color: "#856c4d" });
2611
+ return /* @__PURE__ */ jsx38(A01005, { color: "#856c4d" });
2498
2612
  case "1206":
2499
- return /* @__PURE__ */ jsx37(A1206, { color: "#856c4d" });
2613
+ return /* @__PURE__ */ jsx38(A1206, { color: "#856c4d" });
2500
2614
  case "1210":
2501
- return /* @__PURE__ */ jsx37(A1210, { color: "#856c4d" });
2615
+ return /* @__PURE__ */ jsx38(A1210, { color: "#856c4d" });
2502
2616
  case "2010":
2503
- return /* @__PURE__ */ jsx37(A2010, { color: "#856c4d" });
2617
+ return /* @__PURE__ */ jsx38(A2010, { color: "#856c4d" });
2504
2618
  case "2512":
2505
- return /* @__PURE__ */ jsx37(A2512, { color: "#856c4d" });
2619
+ return /* @__PURE__ */ jsx38(A2512, { color: "#856c4d" });
2506
2620
  }
2507
2621
  }
2508
2622
  case "sot235":
2509
- return /* @__PURE__ */ jsx37(SOT_235_default, {});
2623
+ return /* @__PURE__ */ jsx38(SOT_235_default, {});
2510
2624
  case "sot223":
2511
- return /* @__PURE__ */ jsx37(SOT223, {});
2625
+ return /* @__PURE__ */ jsx38(SOT223, {});
2512
2626
  case "sot323":
2513
- return /* @__PURE__ */ jsx37(SOT323, {});
2627
+ return /* @__PURE__ */ jsx38(SOT323, {});
2514
2628
  case "pushbutton":
2515
- return /* @__PURE__ */ jsx37(
2629
+ return /* @__PURE__ */ jsx38(
2516
2630
  PushButton,
2517
2631
  {
2518
2632
  width: fpJson.w,
@@ -2521,7 +2635,7 @@ var Footprinter3d = ({ footprint }) => {
2521
2635
  }
2522
2636
  );
2523
2637
  case "soic":
2524
- return /* @__PURE__ */ jsx37(
2638
+ return /* @__PURE__ */ jsx38(
2525
2639
  SOIC,
2526
2640
  {
2527
2641
  pinCount: fpJson.num_pins,
@@ -2532,49 +2646,49 @@ var Footprinter3d = ({ footprint }) => {
2532
2646
  }
2533
2647
  );
2534
2648
  case "sod523":
2535
- return /* @__PURE__ */ jsx37(SOD523, {});
2649
+ return /* @__PURE__ */ jsx38(SOD523, {});
2536
2650
  case "sma":
2537
- return /* @__PURE__ */ jsx37(SMA, {});
2651
+ return /* @__PURE__ */ jsx38(SMA, {});
2538
2652
  case "smb":
2539
- return /* @__PURE__ */ jsx37(SMB, {});
2653
+ return /* @__PURE__ */ jsx38(SMB, {});
2540
2654
  case "smc":
2541
- return /* @__PURE__ */ jsx37(SMC, {});
2655
+ return /* @__PURE__ */ jsx38(SMC, {});
2542
2656
  case "smf":
2543
- return /* @__PURE__ */ jsx37(SMF, {});
2657
+ return /* @__PURE__ */ jsx38(SMF, {});
2544
2658
  case "sod123f":
2545
- return /* @__PURE__ */ jsx37(SOD123F, {});
2659
+ return /* @__PURE__ */ jsx38(SOD123F, {});
2546
2660
  case "sod123fl":
2547
- return /* @__PURE__ */ jsx37(SOD123FL, {});
2661
+ return /* @__PURE__ */ jsx38(SOD123FL, {});
2548
2662
  case "sod923":
2549
- return /* @__PURE__ */ jsx37(SOD923, {});
2663
+ return /* @__PURE__ */ jsx38(SOD923, {});
2550
2664
  }
2551
2665
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
2552
2666
  const color = colorMatch ? colorMatch[1] : void 0;
2553
2667
  switch (fpJson.imperial) {
2554
2668
  case "0402":
2555
- return /* @__PURE__ */ jsx37(A0402, { color });
2669
+ return /* @__PURE__ */ jsx38(A0402, { color });
2556
2670
  case "0603":
2557
- return /* @__PURE__ */ jsx37(A0603, { color });
2671
+ return /* @__PURE__ */ jsx38(A0603, { color });
2558
2672
  case "0805":
2559
- return /* @__PURE__ */ jsx37(A0805, { color });
2673
+ return /* @__PURE__ */ jsx38(A0805, { color });
2560
2674
  case "0201":
2561
- return /* @__PURE__ */ jsx37(A0201, { color });
2675
+ return /* @__PURE__ */ jsx38(A0201, { color });
2562
2676
  case "01005":
2563
- return /* @__PURE__ */ jsx37(A01005, { color });
2677
+ return /* @__PURE__ */ jsx38(A01005, { color });
2564
2678
  case "1206":
2565
- return /* @__PURE__ */ jsx37(A1206, { color });
2679
+ return /* @__PURE__ */ jsx38(A1206, { color });
2566
2680
  case "1210":
2567
- return /* @__PURE__ */ jsx37(A1210, { color });
2681
+ return /* @__PURE__ */ jsx38(A1210, { color });
2568
2682
  case "2010":
2569
- return /* @__PURE__ */ jsx37(A2010, { color });
2683
+ return /* @__PURE__ */ jsx38(A2010, { color });
2570
2684
  case "2512":
2571
- return /* @__PURE__ */ jsx37(A2512, { color });
2685
+ return /* @__PURE__ */ jsx38(A2512, { color });
2572
2686
  }
2573
2687
  return null;
2574
2688
  };
2575
2689
 
2576
2690
  // lib/SOT-23-3P.tsx
2577
- import { Fragment as Fragment33, jsx as jsx38, jsxs as jsxs35 } from "react/jsx-runtime";
2691
+ import { Fragment as Fragment34, jsx as jsx39, jsxs as jsxs36 } from "react/jsx-runtime";
2578
2692
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2579
2693
  const bodyWidth = 1.3;
2580
2694
  const bodyLength10 = 2.9;
@@ -2585,8 +2699,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2585
2699
  const padContactLength = 0.4;
2586
2700
  const padThickness = leadThickness / 2;
2587
2701
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
2588
- return /* @__PURE__ */ jsxs35(Fragment33, { children: [
2589
- /* @__PURE__ */ jsx38(
2702
+ return /* @__PURE__ */ jsxs36(Fragment34, { children: [
2703
+ /* @__PURE__ */ jsx39(
2590
2704
  SmdChipLead,
2591
2705
  {
2592
2706
  rotation: Math.PI,
@@ -2603,7 +2717,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2603
2717
  },
2604
2718
  1
2605
2719
  ),
2606
- /* @__PURE__ */ jsx38(
2720
+ /* @__PURE__ */ jsx39(
2607
2721
  SmdChipLead,
2608
2722
  {
2609
2723
  rotation: Math.PI,
@@ -2620,7 +2734,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2620
2734
  },
2621
2735
  2
2622
2736
  ),
2623
- /* @__PURE__ */ jsx38(
2737
+ /* @__PURE__ */ jsx39(
2624
2738
  SmdChipLead,
2625
2739
  {
2626
2740
  position: {
@@ -2636,7 +2750,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2636
2750
  },
2637
2751
  3
2638
2752
  ),
2639
- /* @__PURE__ */ jsx38(
2753
+ /* @__PURE__ */ jsx39(
2640
2754
  ChipBody,
2641
2755
  {
2642
2756
  center: { x: 0, y: 0, z: 0 },
@@ -2650,7 +2764,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2650
2764
 
2651
2765
  // lib/SOT-563.tsx
2652
2766
  import { Cuboid as Cuboid26, Translate as Translate17, Rotate as Rotate6, Colorize as Colorize18 } from "jscad-fiber";
2653
- import { Fragment as Fragment34, jsx as jsx39, jsxs as jsxs36 } from "react/jsx-runtime";
2767
+ import { Fragment as Fragment35, jsx as jsx40, jsxs as jsxs37 } from "react/jsx-runtime";
2654
2768
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2655
2769
  const bodyWidth = 1.2;
2656
2770
  const bodyLength10 = 1.6;
@@ -2660,11 +2774,11 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2660
2774
  const leadHeight = 0.13;
2661
2775
  const leadSpacing = 0.5;
2662
2776
  const bodyZOffset = -0.4;
2663
- return /* @__PURE__ */ jsxs36(Fragment34, { children: [
2664
- /* @__PURE__ */ jsx39(Rotate6, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx39(Translate17, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx39(Colorize18, { color: "grey", children: /* @__PURE__ */ jsx39(Cuboid26, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
2777
+ return /* @__PURE__ */ jsxs37(Fragment35, { children: [
2778
+ /* @__PURE__ */ jsx40(Rotate6, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx40(Translate17, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx40(Colorize18, { color: "grey", children: /* @__PURE__ */ jsx40(Cuboid26, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
2665
2779
  [-1, 0, 1].flatMap((yOffset, index) => [
2666
2780
  // Left lead
2667
- /* @__PURE__ */ jsx39(
2781
+ /* @__PURE__ */ jsx40(
2668
2782
  Translate17,
2669
2783
  {
2670
2784
  center: [
@@ -2672,16 +2786,16 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2672
2786
  yOffset * leadSpacing,
2673
2787
  leadHeight / 2
2674
2788
  ],
2675
- children: /* @__PURE__ */ jsx39(Cuboid26, { size: [leadLength, leadWidth, leadHeight] })
2789
+ children: /* @__PURE__ */ jsx40(Cuboid26, { size: [leadLength, leadWidth, leadHeight] })
2676
2790
  },
2677
2791
  `left-${index}`
2678
2792
  ),
2679
2793
  // Right lead
2680
- /* @__PURE__ */ jsx39(
2794
+ /* @__PURE__ */ jsx40(
2681
2795
  Translate17,
2682
2796
  {
2683
2797
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
2684
- children: /* @__PURE__ */ jsx39(Cuboid26, { size: [leadLength, leadWidth, leadHeight] })
2798
+ children: /* @__PURE__ */ jsx40(Cuboid26, { size: [leadLength, leadWidth, leadHeight] })
2685
2799
  },
2686
2800
  `right-${index}`
2687
2801
  )
@@ -2691,7 +2805,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2691
2805
 
2692
2806
  // lib/SOT-723.tsx
2693
2807
  import { Cuboid as Cuboid27, Translate as Translate18, Rotate as Rotate7, Colorize as Colorize19 } from "jscad-fiber";
2694
- import { Fragment as Fragment35, jsx as jsx40, jsxs as jsxs37 } from "react/jsx-runtime";
2808
+ import { Fragment as Fragment36, jsx as jsx41, jsxs as jsxs38 } from "react/jsx-runtime";
2695
2809
  var getCcwSot723Coords = (pn) => {
2696
2810
  if (pn === 1) {
2697
2811
  return { x: 0, y: 0 };
@@ -2709,11 +2823,11 @@ var SOT723 = () => {
2709
2823
  const leadLength = 0.3;
2710
2824
  const leadHeight = 0.1;
2711
2825
  const centerLeadWidth = 0.42;
2712
- return /* @__PURE__ */ jsxs37(Fragment35, { children: [
2713
- /* @__PURE__ */ jsx40(Rotate7, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx40(Translate18, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ jsx40(Colorize19, { color: "grey", children: /* @__PURE__ */ jsx40(Cuboid27, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
2826
+ return /* @__PURE__ */ jsxs38(Fragment36, { children: [
2827
+ /* @__PURE__ */ jsx41(Rotate7, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx41(Translate18, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ jsx41(Colorize19, { color: "grey", children: /* @__PURE__ */ jsx41(Cuboid27, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
2714
2828
  [1, 2, 3].map((pn) => {
2715
2829
  const { x, y } = getCcwSot723Coords(pn);
2716
- return /* @__PURE__ */ jsx40(Translate18, { center: [x, y, 0.05], children: /* @__PURE__ */ jsx40(
2830
+ return /* @__PURE__ */ jsx41(Translate18, { center: [x, y, 0.05], children: /* @__PURE__ */ jsx41(
2717
2831
  Cuboid27,
2718
2832
  {
2719
2833
  size: [
@@ -2728,7 +2842,7 @@ var SOT723 = () => {
2728
2842
  };
2729
2843
 
2730
2844
  // lib/sod-123.tsx
2731
- import { Fragment as Fragment36, jsx as jsx41, jsxs as jsxs38 } from "react/jsx-runtime";
2845
+ import { Fragment as Fragment37, jsx as jsx42, jsxs as jsxs39 } from "react/jsx-runtime";
2732
2846
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2733
2847
  const bodyWidth = 2.9;
2734
2848
  const bodyLength10 = 1.3;
@@ -2739,8 +2853,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2739
2853
  const padContactLength = 0.4;
2740
2854
  const padThickness = leadThickness / 2;
2741
2855
  const bodyDistance = (fullWidth - bodyWidth) / 2;
2742
- return /* @__PURE__ */ jsxs38(Fragment36, { children: [
2743
- /* @__PURE__ */ jsx41(
2856
+ return /* @__PURE__ */ jsxs39(Fragment37, { children: [
2857
+ /* @__PURE__ */ jsx42(
2744
2858
  SmdChipLead,
2745
2859
  {
2746
2860
  position: {
@@ -2756,7 +2870,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2756
2870
  },
2757
2871
  1
2758
2872
  ),
2759
- /* @__PURE__ */ jsx41(
2873
+ /* @__PURE__ */ jsx42(
2760
2874
  SmdChipLead,
2761
2875
  {
2762
2876
  rotation: Math.PI,
@@ -2773,7 +2887,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2773
2887
  },
2774
2888
  2
2775
2889
  ),
2776
- /* @__PURE__ */ jsx41(
2890
+ /* @__PURE__ */ jsx42(
2777
2891
  ChipBody,
2778
2892
  {
2779
2893
  center: { x: 0, y: 0, z: 0 },
@@ -2800,6 +2914,7 @@ export {
2800
2914
  FootprintPad,
2801
2915
  FootprintPlatedHole,
2802
2916
  Footprinter3d,
2917
+ LQFP,
2803
2918
  PinRow,
2804
2919
  QFN,
2805
2920
  QFP,