jscad-electronics 0.0.78 → 0.0.79

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
@@ -163,6 +163,21 @@ declare const QFN: ({ num_pins, bodyWidth, bodyLength, bodyThickness, thermalPad
163
163
  thermalPadThickness?: number;
164
164
  }) => react_jsx_runtime.JSX.Element;
165
165
 
166
+ declare const DFN: ({ num_pins, bodyWidth, bodyLength, bodyThickness, thermalPadSize, padWidth, padLength, pitch, thermalPadThickness, }: {
167
+ num_pins: number;
168
+ bodyWidth?: number;
169
+ bodyLength?: number;
170
+ bodyThickness?: number;
171
+ thermalPadSize?: {
172
+ width: number;
173
+ length: number;
174
+ };
175
+ padWidth?: number;
176
+ padLength?: number;
177
+ pitch?: number;
178
+ thermalPadThickness?: number;
179
+ }) => react_jsx_runtime.JSX.Element;
180
+
166
181
  declare const QFP: ({ pinCount, pitch, leadWidth, padContactLength, bodyWidth, }: {
167
182
  pinCount: number;
168
183
  pitch?: number;
@@ -212,4 +227,4 @@ declare const SOT223: () => react_jsx_runtime.JSX.Element;
212
227
 
213
228
  declare const SOT323: () => react_jsx_runtime.JSX.Element;
214
229
 
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 };
230
+ export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, BGA, ChipBody, type ChipBodyProps, DFN, 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
@@ -2525,15 +2525,85 @@ var LQFP = ({
2525
2525
  ] });
2526
2526
  };
2527
2527
 
2528
+ // lib/dfn.tsx
2529
+ import { Cuboid as Cuboid26 } from "jscad-fiber";
2530
+ import { Fragment as Fragment34, jsx as jsx38, jsxs as jsxs36 } from "react/jsx-runtime";
2531
+ var DFN = ({
2532
+ num_pins,
2533
+ bodyWidth = 5.3,
2534
+ bodyLength: bodyLength10 = 5.3,
2535
+ bodyThickness = 1,
2536
+ thermalPadSize,
2537
+ // For a body length of 5 the typical pad width/length are 0.6 and 1.
2538
+ // Scale those values proportionally when `bodyLength` changes.
2539
+ padWidth = bodyLength10 / 5.3 * 0.6,
2540
+ padLength = bodyLength10 / 5.3 * 1,
2541
+ pitch = 0.5,
2542
+ thermalPadThickness = 0.2
2543
+ }) => {
2544
+ const pinPositions = [];
2545
+ const pinsPerSide = Math.floor(num_pins / 2);
2546
+ const pinSpan = pitch * (pinsPerSide - 1);
2547
+ for (let i = 0; i < num_pins; i++) {
2548
+ const side = i < pinsPerSide ? "left" : "right";
2549
+ const indexOnSide = i % pinsPerSide;
2550
+ const y = pinSpan / 2 - indexOnSide * pitch;
2551
+ const padSizeX = padLength;
2552
+ const padSizeY = padWidth;
2553
+ const x = side === "left" ? -bodyWidth / 2 + padSizeX / 2 : bodyWidth / 2 - padSizeX / 2;
2554
+ const pinNumber = i + 1;
2555
+ pinPositions.push({ pinNumber, x, y, padSizeX, padSizeY });
2556
+ }
2557
+ return /* @__PURE__ */ jsxs36(Fragment34, { children: [
2558
+ /* @__PURE__ */ jsx38(
2559
+ ChipBody,
2560
+ {
2561
+ center: { x: 0, y: 0, z: 0 },
2562
+ width: bodyWidth,
2563
+ length: bodyLength10,
2564
+ height: bodyThickness,
2565
+ heightAboveSurface: 0,
2566
+ color: "grey",
2567
+ chamferSize: 0.2,
2568
+ taperRatio: 0,
2569
+ notchPosition: {
2570
+ x: bodyWidth / 2 - padLength,
2571
+ y: bodyLength10 / 2 - padLength,
2572
+ z: bodyThickness
2573
+ }
2574
+ }
2575
+ ),
2576
+ pinPositions.map((p, i) => /* @__PURE__ */ jsx38(
2577
+ Cuboid26,
2578
+ {
2579
+ center: [p.x, p.y, thermalPadThickness / 2],
2580
+ size: [p.padSizeX, p.padSizeY, thermalPadThickness]
2581
+ },
2582
+ i
2583
+ )),
2584
+ thermalPadSize?.length !== void 0 && thermalPadSize?.width !== void 0 && /* @__PURE__ */ jsx38(
2585
+ Cuboid26,
2586
+ {
2587
+ center: [0, 0, thermalPadThickness / 2],
2588
+ size: [
2589
+ thermalPadSize.width,
2590
+ thermalPadSize.length,
2591
+ thermalPadThickness
2592
+ ]
2593
+ }
2594
+ )
2595
+ ] });
2596
+ };
2597
+
2528
2598
  // lib/Footprinter3d.tsx
2529
- import { jsx as jsx38 } from "react/jsx-runtime";
2599
+ import { jsx as jsx39 } from "react/jsx-runtime";
2530
2600
  var Footprinter3d = ({ footprint }) => {
2531
2601
  const fpJson = fp3.string(footprint).json();
2532
2602
  switch (fpJson.fn) {
2533
2603
  case "dip":
2534
- return /* @__PURE__ */ jsx38(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
2604
+ return /* @__PURE__ */ jsx39(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
2535
2605
  case "tssop":
2536
- return /* @__PURE__ */ jsx38(
2606
+ return /* @__PURE__ */ jsx39(
2537
2607
  Tssop,
2538
2608
  {
2539
2609
  pinCount: fpJson.num_pins,
@@ -2544,7 +2614,7 @@ var Footprinter3d = ({ footprint }) => {
2544
2614
  }
2545
2615
  );
2546
2616
  case "vssop":
2547
- return /* @__PURE__ */ jsx38(
2617
+ return /* @__PURE__ */ jsx39(
2548
2618
  VSSOP,
2549
2619
  {
2550
2620
  pinCount: fpJson.num_pins,
@@ -2556,7 +2626,7 @@ var Footprinter3d = ({ footprint }) => {
2556
2626
  }
2557
2627
  );
2558
2628
  case "qfp":
2559
- return /* @__PURE__ */ jsx38(
2629
+ return /* @__PURE__ */ jsx39(
2560
2630
  QFP,
2561
2631
  {
2562
2632
  pinCount: fpJson.num_pins,
@@ -2567,12 +2637,12 @@ var Footprinter3d = ({ footprint }) => {
2567
2637
  }
2568
2638
  );
2569
2639
  case "tqfp":
2570
- return /* @__PURE__ */ jsx38(tqfp_default, {});
2640
+ return /* @__PURE__ */ jsx39(tqfp_default, {});
2571
2641
  case "lqfp":
2572
- return /* @__PURE__ */ jsx38(LQFP, { pinCount: fpJson.num_pins });
2573
- case "qfn":
2642
+ return /* @__PURE__ */ jsx39(LQFP, { pinCount: fpJson.num_pins });
2643
+ case "qfn": {
2574
2644
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
2575
- return /* @__PURE__ */ jsx38(
2645
+ return /* @__PURE__ */ jsx39(
2576
2646
  qfn_default,
2577
2647
  {
2578
2648
  num_pins: fpJson.num_pins,
@@ -2587,41 +2657,60 @@ var Footprinter3d = ({ footprint }) => {
2587
2657
  } : void 0
2588
2658
  }
2589
2659
  );
2660
+ }
2661
+ case "dfn": {
2662
+ const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
2663
+ return /* @__PURE__ */ jsx39(
2664
+ DFN,
2665
+ {
2666
+ num_pins: fpJson.num_pins,
2667
+ bodyWidth: fpJson.w,
2668
+ bodyLength: fpJson.h,
2669
+ pitch: fpJson.p,
2670
+ padLength: fpJson.pl,
2671
+ padWidth: fpJson.pw,
2672
+ thermalPadSize: hasThermalPad ? {
2673
+ width: fpJson.thermalpad.x,
2674
+ length: fpJson.thermalpad.y
2675
+ } : void 0
2676
+ }
2677
+ );
2678
+ }
2590
2679
  case "pinrow":
2591
2680
  if (fpJson.male)
2592
- return /* @__PURE__ */ jsx38(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2681
+ return /* @__PURE__ */ jsx39(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2593
2682
  if (fpJson.female)
2594
- return /* @__PURE__ */ jsx38(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2683
+ return /* @__PURE__ */ jsx39(FemaleHeader, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
2595
2684
  case "cap": {
2596
2685
  switch (fpJson.imperial) {
2597
2686
  case "0402":
2598
- return /* @__PURE__ */ jsx38(A0402, { color: "#856c4d" });
2687
+ return /* @__PURE__ */ jsx39(A0402, { color: "#856c4d" });
2599
2688
  case "0603":
2600
- return /* @__PURE__ */ jsx38(A0603, { color: "#856c4d" });
2689
+ return /* @__PURE__ */ jsx39(A0603, { color: "#856c4d" });
2601
2690
  case "0805":
2602
- return /* @__PURE__ */ jsx38(A0805, { color: "#856c4d" });
2691
+ return /* @__PURE__ */ jsx39(A0805, { color: "#856c4d" });
2603
2692
  case "0201":
2604
- return /* @__PURE__ */ jsx38(A0201, { color: "#856c4d" });
2693
+ return /* @__PURE__ */ jsx39(A0201, { color: "#856c4d" });
2605
2694
  case "01005":
2606
- return /* @__PURE__ */ jsx38(A01005, { color: "#856c4d" });
2695
+ return /* @__PURE__ */ jsx39(A01005, { color: "#856c4d" });
2607
2696
  case "1206":
2608
- return /* @__PURE__ */ jsx38(A1206, { color: "#856c4d" });
2697
+ return /* @__PURE__ */ jsx39(A1206, { color: "#856c4d" });
2609
2698
  case "1210":
2610
- return /* @__PURE__ */ jsx38(A1210, { color: "#856c4d" });
2699
+ return /* @__PURE__ */ jsx39(A1210, { color: "#856c4d" });
2611
2700
  case "2010":
2612
- return /* @__PURE__ */ jsx38(A2010, { color: "#856c4d" });
2701
+ return /* @__PURE__ */ jsx39(A2010, { color: "#856c4d" });
2613
2702
  case "2512":
2614
- return /* @__PURE__ */ jsx38(A2512, { color: "#856c4d" });
2703
+ return /* @__PURE__ */ jsx39(A2512, { color: "#856c4d" });
2615
2704
  }
2616
2705
  }
2617
2706
  case "sot235":
2618
- return /* @__PURE__ */ jsx38(SOT_235_default, {});
2707
+ return /* @__PURE__ */ jsx39(SOT_235_default, {});
2619
2708
  case "sot223":
2620
- return /* @__PURE__ */ jsx38(SOT223, {});
2709
+ return /* @__PURE__ */ jsx39(SOT223, {});
2621
2710
  case "sot323":
2622
- return /* @__PURE__ */ jsx38(SOT323, {});
2711
+ return /* @__PURE__ */ jsx39(SOT323, {});
2623
2712
  case "pushbutton":
2624
- return /* @__PURE__ */ jsx38(
2713
+ return /* @__PURE__ */ jsx39(
2625
2714
  PushButton,
2626
2715
  {
2627
2716
  width: fpJson.w,
@@ -2630,7 +2719,7 @@ var Footprinter3d = ({ footprint }) => {
2630
2719
  }
2631
2720
  );
2632
2721
  case "soic":
2633
- return /* @__PURE__ */ jsx38(
2722
+ return /* @__PURE__ */ jsx39(
2634
2723
  SOIC,
2635
2724
  {
2636
2725
  pinCount: fpJson.num_pins,
@@ -2641,49 +2730,49 @@ var Footprinter3d = ({ footprint }) => {
2641
2730
  }
2642
2731
  );
2643
2732
  case "sod523":
2644
- return /* @__PURE__ */ jsx38(SOD523, {});
2733
+ return /* @__PURE__ */ jsx39(SOD523, {});
2645
2734
  case "sma":
2646
- return /* @__PURE__ */ jsx38(SMA, {});
2735
+ return /* @__PURE__ */ jsx39(SMA, {});
2647
2736
  case "smb":
2648
- return /* @__PURE__ */ jsx38(SMB, {});
2737
+ return /* @__PURE__ */ jsx39(SMB, {});
2649
2738
  case "smc":
2650
- return /* @__PURE__ */ jsx38(SMC, {});
2739
+ return /* @__PURE__ */ jsx39(SMC, {});
2651
2740
  case "smf":
2652
- return /* @__PURE__ */ jsx38(SMF, {});
2741
+ return /* @__PURE__ */ jsx39(SMF, {});
2653
2742
  case "sod123f":
2654
- return /* @__PURE__ */ jsx38(SOD123F, {});
2743
+ return /* @__PURE__ */ jsx39(SOD123F, {});
2655
2744
  case "sod123fl":
2656
- return /* @__PURE__ */ jsx38(SOD123FL, {});
2745
+ return /* @__PURE__ */ jsx39(SOD123FL, {});
2657
2746
  case "sod923":
2658
- return /* @__PURE__ */ jsx38(SOD923, {});
2747
+ return /* @__PURE__ */ jsx39(SOD923, {});
2659
2748
  }
2660
2749
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
2661
2750
  const color = colorMatch ? colorMatch[1] : void 0;
2662
2751
  switch (fpJson.imperial) {
2663
2752
  case "0402":
2664
- return /* @__PURE__ */ jsx38(A0402, { color });
2753
+ return /* @__PURE__ */ jsx39(A0402, { color });
2665
2754
  case "0603":
2666
- return /* @__PURE__ */ jsx38(A0603, { color });
2755
+ return /* @__PURE__ */ jsx39(A0603, { color });
2667
2756
  case "0805":
2668
- return /* @__PURE__ */ jsx38(A0805, { color });
2757
+ return /* @__PURE__ */ jsx39(A0805, { color });
2669
2758
  case "0201":
2670
- return /* @__PURE__ */ jsx38(A0201, { color });
2759
+ return /* @__PURE__ */ jsx39(A0201, { color });
2671
2760
  case "01005":
2672
- return /* @__PURE__ */ jsx38(A01005, { color });
2761
+ return /* @__PURE__ */ jsx39(A01005, { color });
2673
2762
  case "1206":
2674
- return /* @__PURE__ */ jsx38(A1206, { color });
2763
+ return /* @__PURE__ */ jsx39(A1206, { color });
2675
2764
  case "1210":
2676
- return /* @__PURE__ */ jsx38(A1210, { color });
2765
+ return /* @__PURE__ */ jsx39(A1210, { color });
2677
2766
  case "2010":
2678
- return /* @__PURE__ */ jsx38(A2010, { color });
2767
+ return /* @__PURE__ */ jsx39(A2010, { color });
2679
2768
  case "2512":
2680
- return /* @__PURE__ */ jsx38(A2512, { color });
2769
+ return /* @__PURE__ */ jsx39(A2512, { color });
2681
2770
  }
2682
2771
  return null;
2683
2772
  };
2684
2773
 
2685
2774
  // lib/SOT-23-3P.tsx
2686
- import { Fragment as Fragment34, jsx as jsx39, jsxs as jsxs36 } from "react/jsx-runtime";
2775
+ import { Fragment as Fragment35, jsx as jsx40, jsxs as jsxs37 } from "react/jsx-runtime";
2687
2776
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2688
2777
  const bodyWidth = 1.3;
2689
2778
  const bodyLength10 = 2.9;
@@ -2694,8 +2783,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2694
2783
  const padContactLength = 0.4;
2695
2784
  const padThickness = leadThickness / 2;
2696
2785
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
2697
- return /* @__PURE__ */ jsxs36(Fragment34, { children: [
2698
- /* @__PURE__ */ jsx39(
2786
+ return /* @__PURE__ */ jsxs37(Fragment35, { children: [
2787
+ /* @__PURE__ */ jsx40(
2699
2788
  SmdChipLead,
2700
2789
  {
2701
2790
  rotation: Math.PI,
@@ -2712,7 +2801,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2712
2801
  },
2713
2802
  1
2714
2803
  ),
2715
- /* @__PURE__ */ jsx39(
2804
+ /* @__PURE__ */ jsx40(
2716
2805
  SmdChipLead,
2717
2806
  {
2718
2807
  rotation: Math.PI,
@@ -2729,7 +2818,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2729
2818
  },
2730
2819
  2
2731
2820
  ),
2732
- /* @__PURE__ */ jsx39(
2821
+ /* @__PURE__ */ jsx40(
2733
2822
  SmdChipLead,
2734
2823
  {
2735
2824
  position: {
@@ -2745,7 +2834,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2745
2834
  },
2746
2835
  3
2747
2836
  ),
2748
- /* @__PURE__ */ jsx39(
2837
+ /* @__PURE__ */ jsx40(
2749
2838
  ChipBody,
2750
2839
  {
2751
2840
  center: { x: 0, y: 0, z: 0 },
@@ -2758,8 +2847,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
2758
2847
  };
2759
2848
 
2760
2849
  // lib/SOT-563.tsx
2761
- import { Cuboid as Cuboid26, Translate as Translate17, Rotate as Rotate6, Colorize as Colorize18 } from "jscad-fiber";
2762
- import { Fragment as Fragment35, jsx as jsx40, jsxs as jsxs37 } from "react/jsx-runtime";
2850
+ import { Cuboid as Cuboid27, Translate as Translate17, Rotate as Rotate6, Colorize as Colorize18 } from "jscad-fiber";
2851
+ import { Fragment as Fragment36, jsx as jsx41, jsxs as jsxs38 } from "react/jsx-runtime";
2763
2852
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2764
2853
  const bodyWidth = 1.2;
2765
2854
  const bodyLength10 = 1.6;
@@ -2769,11 +2858,11 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2769
2858
  const leadHeight = 0.13;
2770
2859
  const leadSpacing = 0.5;
2771
2860
  const bodyZOffset = -0.4;
2772
- return /* @__PURE__ */ jsxs37(Fragment35, { children: [
2773
- /* @__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] }) }) }) }),
2861
+ return /* @__PURE__ */ jsxs38(Fragment36, { children: [
2862
+ /* @__PURE__ */ jsx41(Rotate6, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx41(Translate17, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx41(Colorize18, { color: "grey", children: /* @__PURE__ */ jsx41(Cuboid27, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
2774
2863
  [-1, 0, 1].flatMap((yOffset, index) => [
2775
2864
  // Left lead
2776
- /* @__PURE__ */ jsx40(
2865
+ /* @__PURE__ */ jsx41(
2777
2866
  Translate17,
2778
2867
  {
2779
2868
  center: [
@@ -2781,16 +2870,16 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2781
2870
  yOffset * leadSpacing,
2782
2871
  leadHeight / 2
2783
2872
  ],
2784
- children: /* @__PURE__ */ jsx40(Cuboid26, { size: [leadLength, leadWidth, leadHeight] })
2873
+ children: /* @__PURE__ */ jsx41(Cuboid27, { size: [leadLength, leadWidth, leadHeight] })
2785
2874
  },
2786
2875
  `left-${index}`
2787
2876
  ),
2788
2877
  // Right lead
2789
- /* @__PURE__ */ jsx40(
2878
+ /* @__PURE__ */ jsx41(
2790
2879
  Translate17,
2791
2880
  {
2792
2881
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
2793
- children: /* @__PURE__ */ jsx40(Cuboid26, { size: [leadLength, leadWidth, leadHeight] })
2882
+ children: /* @__PURE__ */ jsx41(Cuboid27, { size: [leadLength, leadWidth, leadHeight] })
2794
2883
  },
2795
2884
  `right-${index}`
2796
2885
  )
@@ -2799,8 +2888,8 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
2799
2888
  };
2800
2889
 
2801
2890
  // lib/SOT-723.tsx
2802
- import { Cuboid as Cuboid27, Translate as Translate18, Rotate as Rotate7, Colorize as Colorize19 } from "jscad-fiber";
2803
- import { Fragment as Fragment36, jsx as jsx41, jsxs as jsxs38 } from "react/jsx-runtime";
2891
+ import { Cuboid as Cuboid28, Translate as Translate18, Rotate as Rotate7, Colorize as Colorize19 } from "jscad-fiber";
2892
+ import { Fragment as Fragment37, jsx as jsx42, jsxs as jsxs39 } from "react/jsx-runtime";
2804
2893
  var getCcwSot723Coords = (pn) => {
2805
2894
  if (pn === 1) {
2806
2895
  return { x: 0, y: 0 };
@@ -2818,12 +2907,12 @@ var SOT723 = () => {
2818
2907
  const leadLength = 0.3;
2819
2908
  const leadHeight = 0.1;
2820
2909
  const centerLeadWidth = 0.42;
2821
- return /* @__PURE__ */ jsxs38(Fragment36, { children: [
2822
- /* @__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] }) }) }) }),
2910
+ return /* @__PURE__ */ jsxs39(Fragment37, { children: [
2911
+ /* @__PURE__ */ jsx42(Rotate7, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx42(Translate18, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ jsx42(Colorize19, { color: "grey", children: /* @__PURE__ */ jsx42(Cuboid28, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
2823
2912
  [1, 2, 3].map((pn) => {
2824
2913
  const { x, y } = getCcwSot723Coords(pn);
2825
- return /* @__PURE__ */ jsx41(Translate18, { center: [x, y, 0.05], children: /* @__PURE__ */ jsx41(
2826
- Cuboid27,
2914
+ return /* @__PURE__ */ jsx42(Translate18, { center: [x, y, 0.05], children: /* @__PURE__ */ jsx42(
2915
+ Cuboid28,
2827
2916
  {
2828
2917
  size: [
2829
2918
  leadLength,
@@ -2837,7 +2926,7 @@ var SOT723 = () => {
2837
2926
  };
2838
2927
 
2839
2928
  // lib/sod-123.tsx
2840
- import { Fragment as Fragment37, jsx as jsx42, jsxs as jsxs39 } from "react/jsx-runtime";
2929
+ import { Fragment as Fragment38, jsx as jsx43, jsxs as jsxs40 } from "react/jsx-runtime";
2841
2930
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2842
2931
  const bodyWidth = 2.9;
2843
2932
  const bodyLength10 = 1.3;
@@ -2848,8 +2937,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2848
2937
  const padContactLength = 0.4;
2849
2938
  const padThickness = leadThickness / 2;
2850
2939
  const bodyDistance = (fullWidth - bodyWidth) / 2;
2851
- return /* @__PURE__ */ jsxs39(Fragment37, { children: [
2852
- /* @__PURE__ */ jsx42(
2940
+ return /* @__PURE__ */ jsxs40(Fragment38, { children: [
2941
+ /* @__PURE__ */ jsx43(
2853
2942
  SmdChipLead,
2854
2943
  {
2855
2944
  position: {
@@ -2865,7 +2954,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2865
2954
  },
2866
2955
  1
2867
2956
  ),
2868
- /* @__PURE__ */ jsx42(
2957
+ /* @__PURE__ */ jsx43(
2869
2958
  SmdChipLead,
2870
2959
  {
2871
2960
  rotation: Math.PI,
@@ -2882,7 +2971,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
2882
2971
  },
2883
2972
  2
2884
2973
  ),
2885
- /* @__PURE__ */ jsx42(
2974
+ /* @__PURE__ */ jsx43(
2886
2975
  ChipBody,
2887
2976
  {
2888
2977
  center: { x: 0, y: 0, z: 0 },
@@ -2905,6 +2994,7 @@ export {
2905
2994
  A2512,
2906
2995
  BGA,
2907
2996
  ChipBody,
2997
+ DFN,
2908
2998
  ExtrudedPads,
2909
2999
  FootprintPad,
2910
3000
  FootprintPlatedHole,