jscad-electronics 0.0.167 → 0.0.169

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
@@ -340,6 +340,36 @@ declare const SMC: () => react_jsx_runtime.JSX.Element;
340
340
 
341
341
  declare const SMF: () => react_jsx_runtime.JSX.Element;
342
342
 
343
+ /** Physical outline dimensions in mm, independent of a PCB land pattern. */
344
+ interface FlatLeadDiodeDimensions {
345
+ bodyLength: number;
346
+ bodyWidth: number;
347
+ /** Overall height from the seating plane, including standoff. */
348
+ bodyHeight: number;
349
+ /** Outer tip-to-tip span of the two terminals. */
350
+ leadSpan: number;
351
+ cathodeLength: number;
352
+ cathodeWidth: number;
353
+ anodeLength: number;
354
+ anodeWidth: number;
355
+ terminalThickness: number;
356
+ standoff: number;
357
+ /** Inset of each top edge relative to the mold base. */
358
+ taperInset: number;
359
+ /** Top cathode band width; zero omits the band. */
360
+ markingWidth: number;
361
+ }
362
+
363
+ /** DO-219AD flat-lead outline, with independently sized cathode/anode contacts.
364
+ * Body and terminal dimensions use midpoints of the outline ranges on page 3.
365
+ * Mold standoff, taper and marking dimensions are visual approximations, exposed as props.
366
+ * https://www.vishay.com/doc/?89019=
367
+ * Dimension overrides represent variants of this standard outline. They are
368
+ * geometry parameters, not new Footprinter tokens or manufacturer selectors.
369
+ */
370
+ type DO219ADProps = Partial<FlatLeadDiodeDimensions>;
371
+ declare const DO219AD: (props: DO219ADProps) => react_jsx_runtime.JSX.Element;
372
+
343
373
  declare const SOD123F: () => react_jsx_runtime.JSX.Element;
344
374
 
345
375
  declare const SOD123FL: () => react_jsx_runtime.JSX.Element;
@@ -373,6 +403,17 @@ declare const SOD323F: () => react_jsx_runtime.JSX.Element;
373
403
 
374
404
  declare const SOD323FL: () => react_jsx_runtime.JSX.Element;
375
405
 
406
+ /** SOD-323HE flat-lead outline with symmetric contacts by default.
407
+ * Dimensional reference: https://www.es.co.th/Schemetic/PDF/RFU02VSM6S.PDF
408
+ * Defaults use nominal 2.0 x 1.4 mm mold, 2.5 mm lead span and 0.6 mm height.
409
+ * Buried terminal length, taper and marking dimensions are visual approximations.
410
+ * https://www.rohm.de/products/diodes/fast-recovery-diodes/standard/rfu02vsm6s-product
411
+ * Dimension overrides represent variants of this standard outline. They are
412
+ * geometry parameters, not new Footprinter tokens or manufacturer selectors.
413
+ */
414
+ type SOD323HEProps = Partial<FlatLeadDiodeDimensions>;
415
+ declare const SOD323HE: (props: SOD323HEProps) => react_jsx_runtime.JSX.Element;
416
+
376
417
  declare const SOD923: () => react_jsx_runtime.JSX.Element;
377
418
 
378
419
  interface SOT223Props {
@@ -1079,4 +1120,4 @@ declare const MelfResistor: ({ size, footprint, }: {
1079
1120
  footprint?: string;
1080
1121
  }) => react_jsx_runtime.JSX.Element;
1081
1122
 
1082
- export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, AxialCapacitor, BGA, CeramicChipAntenna, ChipBody, type ChipBodyProps, Crystal, type CrystalProps, DFN, DPAK, type DPAKProps, Display, ElectrolyticCapacitor, type ElectrolyticCapacitorProps, ExtrudedPads, FPC, type FPCProps, FemaleHeader, FemaleHeaderRow, FlexScreen, type FlexScreenAspectRatio, type FlexScreenOrientation, type FlexScreenProps, FootprintPad, FootprintPlatedHole, Footprinter3d, GullWingBody, type GullWingBodyProps, HC49, type HC49Props, JSTPH2_0mm, JSTXH2_5mm, type JSTXH2_5mmProps, JSTZH1_5mm, JstSh, LQFP, Led2835, type Led2835Props, Led5050, type Led5050Props, MELF, type MELFProps, MINIMELF, type MINIMELFProps, MS012, MS013, MSOP, MelfResistor, type MelfResistorSize, MicroMELF, type MicroMELFProps, MountedPcbModule, PinHeader, PinRow, Potentiometer, type PotentiometerLead, type PotentiometerProps, QFN, QFP, RJ45, type RJ45Props, type ResolvedFlexScreenSize, SMA, SMB, SMC, SMF, SOD123, SOD123F, SOD123FL, type SOD123Props, SOD123W, type SOD123WProps, SOD128, SOD323, SOD323F, SOD323FL, SOD523, SOD723, SOD882, SOD923, SOT143, SOT223, type SOT223Props, SOT233P, SOT23W, SOT323, SOT363, SOT457, SOT563, SOT723, SOT886, SOT963, Screen, type ScreenProps, SmdChipLead, type SmdChipLeadProps, type SmdLeadPad, SmdPinHeader, type SmdPinHeaderProps, SmdPushButton, type SmdPushButtonProps, SmdSlideSwitch, StampBoard, TO220, type TO220Lead, type TO220Props, TO92, type TO92Lead, type TO92Props, TQFP, TantalumCapacitor, type TantalumCase, Tssop, TwoPadCrystal, type TwoPadCrystalPackage, UsbCMidmount, VSSOP, isJstShFootprint, melfResistorSizes, resolveFlexScreenSize, tantalumCases, twoPadCrystalPackages };
1123
+ export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, AxialCapacitor, BGA, CeramicChipAntenna, ChipBody, type ChipBodyProps, Crystal, type CrystalProps, DFN, DO219AD, type DO219ADProps, DPAK, type DPAKProps, Display, ElectrolyticCapacitor, type ElectrolyticCapacitorProps, ExtrudedPads, FPC, type FPCProps, FemaleHeader, FemaleHeaderRow, FlexScreen, type FlexScreenAspectRatio, type FlexScreenOrientation, type FlexScreenProps, FootprintPad, FootprintPlatedHole, Footprinter3d, GullWingBody, type GullWingBodyProps, HC49, type HC49Props, JSTPH2_0mm, JSTXH2_5mm, type JSTXH2_5mmProps, JSTZH1_5mm, JstSh, LQFP, Led2835, type Led2835Props, Led5050, type Led5050Props, MELF, type MELFProps, MINIMELF, type MINIMELFProps, MS012, MS013, MSOP, MelfResistor, type MelfResistorSize, MicroMELF, type MicroMELFProps, MountedPcbModule, PinHeader, PinRow, Potentiometer, type PotentiometerLead, type PotentiometerProps, QFN, QFP, RJ45, type RJ45Props, type ResolvedFlexScreenSize, SMA, SMB, SMC, SMF, SOD123, SOD123F, SOD123FL, type SOD123Props, SOD123W, type SOD123WProps, SOD128, SOD323, SOD323F, SOD323FL, SOD323HE, type SOD323HEProps, SOD523, SOD723, SOD882, SOD923, SOT143, SOT223, type SOT223Props, SOT233P, SOT23W, SOT323, SOT363, SOT457, SOT563, SOT723, SOT886, SOT963, Screen, type ScreenProps, SmdChipLead, type SmdChipLeadProps, type SmdLeadPad, SmdPinHeader, type SmdPinHeaderProps, SmdPushButton, type SmdPushButtonProps, SmdSlideSwitch, StampBoard, TO220, type TO220Lead, type TO220Props, TO92, type TO92Lead, type TO92Props, TQFP, TantalumCapacitor, type TantalumCase, Tssop, TwoPadCrystal, type TwoPadCrystalPackage, UsbCMidmount, VSSOP, isJstShFootprint, melfResistorSizes, resolveFlexScreenSize, tantalumCases, twoPadCrystalPackages };
package/dist/index.js CHANGED
@@ -8485,10 +8485,138 @@ var Footprinter3d = ({ footprint }) => {
8485
8485
  return null;
8486
8486
  };
8487
8487
 
8488
+ // lib/utils/FlatLeadDiode.tsx
8489
+ import { Colorize as Colorize55, Cuboid as Cuboid63, Hull as Hull28, Subtract as Subtract21 } from "jscad-fiber";
8490
+ import { Fragment as Fragment83, jsx as jsx91, jsxs as jsxs86 } from "react/jsx-runtime";
8491
+ function createFlatLeadDiode(p) {
8492
+ const dimensions = [
8493
+ "bodyLength",
8494
+ "bodyWidth",
8495
+ "bodyHeight",
8496
+ "leadSpan",
8497
+ "cathodeLength",
8498
+ "cathodeWidth",
8499
+ "anodeLength",
8500
+ "anodeWidth",
8501
+ "terminalThickness",
8502
+ "standoff",
8503
+ "taperInset",
8504
+ "markingWidth"
8505
+ ];
8506
+ for (const name of dimensions) {
8507
+ const value = p[name];
8508
+ const allowZero = ["standoff", "taperInset", "markingWidth"].includes(name);
8509
+ if (!Number.isFinite(value) || (allowZero ? value < 0 : value <= 0))
8510
+ throw new Error(`Invalid diode dimension: ${name}`);
8511
+ }
8512
+ const overhang = (p.leadSpan - p.bodyLength) / 2;
8513
+ if (overhang < 0 || p.cathodeLength <= overhang || p.anodeLength <= overhang || p.cathodeLength + p.anodeLength >= p.leadSpan || p.cathodeWidth > p.bodyWidth || p.anodeWidth > p.bodyWidth || p.standoff >= p.terminalThickness || p.terminalThickness >= p.bodyHeight || p.taperInset * 2 >= Math.min(p.bodyLength, p.bodyWidth) || p.markingWidth * 2 >= p.bodyLength - p.taperInset * 2)
8514
+ throw new Error(
8515
+ "Diode dimensions leave disconnected terminals or an invalid mold"
8516
+ );
8517
+ const slice = Math.min(p.bodyHeight - p.standoff, p.bodyWidth) / 100;
8518
+ const body = /* @__PURE__ */ jsxs86(Hull28, { children: [
8519
+ /* @__PURE__ */ jsx91(
8520
+ Cuboid63,
8521
+ {
8522
+ size: [p.bodyLength, p.bodyWidth, slice],
8523
+ center: [0, 0, p.standoff + slice / 2]
8524
+ }
8525
+ ),
8526
+ /* @__PURE__ */ jsx91(
8527
+ Cuboid63,
8528
+ {
8529
+ size: [
8530
+ p.bodyLength - p.taperInset * 2,
8531
+ p.bodyWidth - p.taperInset * 2,
8532
+ slice
8533
+ ],
8534
+ center: [0, 0, p.bodyHeight - slice / 2]
8535
+ }
8536
+ )
8537
+ ] });
8538
+ const stripe = /* @__PURE__ */ jsx91(
8539
+ Cuboid63,
8540
+ {
8541
+ size: [p.markingWidth, (p.bodyWidth - p.taperInset * 2) * 0.9, slice],
8542
+ center: [
8543
+ -p.bodyLength / 2 + p.taperInset + p.markingWidth,
8544
+ 0,
8545
+ p.bodyHeight - slice / 2
8546
+ ]
8547
+ }
8548
+ );
8549
+ return /* @__PURE__ */ jsxs86(Fragment83, { children: [
8550
+ /* @__PURE__ */ jsx91(Colorize55, { color: "#25272a", children: p.markingWidth > 0 ? /* @__PURE__ */ jsxs86(Subtract21, { children: [
8551
+ body,
8552
+ stripe
8553
+ ] }) : body }),
8554
+ /* @__PURE__ */ jsxs86(Colorize55, { color: "#c7c9cd", children: [
8555
+ /* @__PURE__ */ jsx91(
8556
+ Cuboid63,
8557
+ {
8558
+ size: [p.cathodeLength, p.cathodeWidth, p.terminalThickness],
8559
+ center: [
8560
+ -p.leadSpan / 2 + p.cathodeLength / 2,
8561
+ 0,
8562
+ p.terminalThickness / 2
8563
+ ]
8564
+ }
8565
+ ),
8566
+ /* @__PURE__ */ jsx91(
8567
+ Cuboid63,
8568
+ {
8569
+ size: [p.anodeLength, p.anodeWidth, p.terminalThickness],
8570
+ center: [
8571
+ p.leadSpan / 2 - p.anodeLength / 2,
8572
+ 0,
8573
+ p.terminalThickness / 2
8574
+ ]
8575
+ }
8576
+ )
8577
+ ] }),
8578
+ p.markingWidth > 0 && /* @__PURE__ */ jsx91(Colorize55, { color: "#aaaaa8", children: stripe })
8579
+ ] });
8580
+ }
8581
+
8582
+ // lib/DO219AD.tsx
8583
+ var DO219AD = (props) => createFlatLeadDiode({
8584
+ bodyLength: 2.2,
8585
+ bodyWidth: 1.3,
8586
+ bodyHeight: 0.68,
8587
+ leadSpan: 2.5,
8588
+ cathodeLength: 1.3,
8589
+ cathodeWidth: 0.88,
8590
+ anodeLength: 0.65,
8591
+ anodeWidth: 0.65,
8592
+ terminalThickness: 0.195,
8593
+ standoff: 0.11,
8594
+ taperInset: 0.05,
8595
+ markingWidth: 0.23,
8596
+ ...props
8597
+ });
8598
+
8599
+ // lib/SOD323HE.tsx
8600
+ var SOD323HE = (props) => createFlatLeadDiode({
8601
+ bodyLength: 2,
8602
+ bodyWidth: 1.4,
8603
+ bodyHeight: 0.6,
8604
+ leadSpan: 2.5,
8605
+ cathodeLength: 0.55,
8606
+ cathodeWidth: 0.8,
8607
+ anodeLength: 0.55,
8608
+ anodeWidth: 0.8,
8609
+ terminalThickness: 0.17,
8610
+ standoff: 0.05,
8611
+ taperInset: 0.15,
8612
+ markingWidth: 0.2,
8613
+ ...props
8614
+ });
8615
+
8488
8616
  // lib/TantalumCapacitor.tsx
8489
8617
  import { fp as fp11 } from "@tscircuit/footprinter";
8490
- import { Colorize as Colorize55, Cuboid as Cuboid63, Hull as Hull28, Rotate as Rotate25, Translate as Translate42, Union as Union22 } from "jscad-fiber";
8491
- import { jsx as jsx91, jsxs as jsxs86 } from "react/jsx-runtime";
8618
+ import { Colorize as Colorize56, Cuboid as Cuboid64, Hull as Hull29, Rotate as Rotate25, Translate as Translate42, Union as Union22 } from "jscad-fiber";
8619
+ import { jsx as jsx92, jsxs as jsxs87 } from "react/jsx-runtime";
8492
8620
  var tantalumCases = {
8493
8621
  A: [3.2, 1.6, 1.6, 1.2, 0.8],
8494
8622
  B: [3.5, 2.8, 1.9, 2.2, 0.8],
@@ -8508,35 +8636,35 @@ var TantalumCapacitor = ({
8508
8636
  if (pads.length !== 2) throw new Error("TantalumCapacitor requires two pads");
8509
8637
  const [a, b] = pads;
8510
8638
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8511
- return /* @__PURE__ */ jsx91(Translate42, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs86(Rotate25, { rotation: [0, 0, angle], children: [
8512
- /* @__PURE__ */ jsx91(Colorize55, { color: "#d5a64e", children: /* @__PURE__ */ jsxs86(Hull28, { children: [
8513
- /* @__PURE__ */ jsx91(Cuboid63, { size: [length - 0.1, width10, 0.02], center: [0, 0, 0.21] }),
8514
- /* @__PURE__ */ jsx91(
8515
- Cuboid63,
8639
+ return /* @__PURE__ */ jsx92(Translate42, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs87(Rotate25, { rotation: [0, 0, angle], children: [
8640
+ /* @__PURE__ */ jsx92(Colorize56, { color: "#d5a64e", children: /* @__PURE__ */ jsxs87(Hull29, { children: [
8641
+ /* @__PURE__ */ jsx92(Cuboid64, { size: [length - 0.1, width10, 0.02], center: [0, 0, 0.21] }),
8642
+ /* @__PURE__ */ jsx92(
8643
+ Cuboid64,
8516
8644
  {
8517
8645
  size: [length - 0.25, width10 - 0.15, 0.02],
8518
8646
  center: [0, 0, height10 - 0.01]
8519
8647
  }
8520
8648
  )
8521
8649
  ] }) }),
8522
- /* @__PURE__ */ jsx91(Colorize55, { color: "#c5c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsxs86(Union22, { children: [
8523
- /* @__PURE__ */ jsx91(
8524
- Cuboid63,
8650
+ /* @__PURE__ */ jsx92(Colorize56, { color: "#c5c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsxs87(Union22, { children: [
8651
+ /* @__PURE__ */ jsx92(
8652
+ Cuboid64,
8525
8653
  {
8526
8654
  size: [leadLength, leadWidth, 0.25],
8527
8655
  center: [side * (length - leadLength) / 2, 0, 0.125]
8528
8656
  }
8529
8657
  ),
8530
- /* @__PURE__ */ jsx91(
8531
- Cuboid63,
8658
+ /* @__PURE__ */ jsx92(
8659
+ Cuboid64,
8532
8660
  {
8533
8661
  size: [0.15, leadWidth, height10 * 0.45],
8534
8662
  center: [side * (length - 0.15) / 2, 0, height10 * 0.225]
8535
8663
  }
8536
8664
  )
8537
8665
  ] }, side)) }),
8538
- /* @__PURE__ */ jsx91(
8539
- Cuboid63,
8666
+ /* @__PURE__ */ jsx92(
8667
+ Cuboid64,
8540
8668
  {
8541
8669
  size: [0.25, width10 - 0.25, 0.01],
8542
8670
  center: [-length / 2 + 0.5, 0, height10],
@@ -8548,8 +8676,8 @@ var TantalumCapacitor = ({
8548
8676
 
8549
8677
  // lib/TwoPadCrystal.tsx
8550
8678
  import { fp as fp12 } from "@tscircuit/footprinter";
8551
- import { Colorize as Colorize56, Cuboid as Cuboid64, RoundedCuboid as RoundedCuboid6, Rotate as Rotate26, Translate as Translate43 } from "jscad-fiber";
8552
- import { jsx as jsx92, jsxs as jsxs87 } from "react/jsx-runtime";
8679
+ import { Colorize as Colorize57, Cuboid as Cuboid65, RoundedCuboid as RoundedCuboid6, Rotate as Rotate26, Translate as Translate43 } from "jscad-fiber";
8680
+ import { jsx as jsx93, jsxs as jsxs88 } from "react/jsx-runtime";
8553
8681
  var twoPadCrystalPackages = {
8554
8682
  FC135: [3.2, 1.5, 0.9, 0.7],
8555
8683
  FC12M: [2.05, 1.2, 0.6, 0.5],
@@ -8569,9 +8697,9 @@ var TwoPadCrystal = ({
8569
8697
  if (pads.length !== 2) throw new Error("TwoPadCrystal requires two pads");
8570
8698
  const [a, b] = pads;
8571
8699
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8572
- return /* @__PURE__ */ jsx92(Translate43, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs87(Rotate26, { rotation: [0, 0, angle], children: [
8573
- /* @__PURE__ */ jsx92(Colorize56, { color: "#e0dcca", children: /* @__PURE__ */ jsx92(Cuboid64, { size: [length, width10, 0.2], center: [0, 0, 0.13] }) }),
8574
- /* @__PURE__ */ jsx92(Colorize56, { color: "#acb1b8", children: /* @__PURE__ */ jsx92(
8700
+ return /* @__PURE__ */ jsx93(Translate43, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs88(Rotate26, { rotation: [0, 0, angle], children: [
8701
+ /* @__PURE__ */ jsx93(Colorize57, { color: "#e0dcca", children: /* @__PURE__ */ jsx93(Cuboid65, { size: [length, width10, 0.2], center: [0, 0, 0.13] }) }),
8702
+ /* @__PURE__ */ jsx93(Colorize57, { color: "#acb1b8", children: /* @__PURE__ */ jsx93(
8575
8703
  RoundedCuboid6,
8576
8704
  {
8577
8705
  size: [length - 0.04, width10 - 0.04, height10 - 0.18],
@@ -8579,8 +8707,8 @@ var TwoPadCrystal = ({
8579
8707
  center: [0, 0, (height10 + 0.18) / 2]
8580
8708
  }
8581
8709
  ) }),
8582
- /* @__PURE__ */ jsx92(Colorize56, { color: "#c6af65", children: [-1, 1].map((side) => /* @__PURE__ */ jsx92(
8583
- Cuboid64,
8710
+ /* @__PURE__ */ jsx93(Colorize57, { color: "#c6af65", children: [-1, 1].map((side) => /* @__PURE__ */ jsx93(
8711
+ Cuboid65,
8584
8712
  {
8585
8713
  size: [terminalLength, width10 - 0.12, 0.06],
8586
8714
  center: [side * (length - terminalLength) / 2, 0, 0.03]
@@ -8592,8 +8720,8 @@ var TwoPadCrystal = ({
8592
8720
 
8593
8721
  // lib/CeramicChipAntenna.tsx
8594
8722
  import { fp as fp13 } from "@tscircuit/footprinter";
8595
- import { Colorize as Colorize57, Cuboid as Cuboid65, Rotate as Rotate27, Translate as Translate44 } from "jscad-fiber";
8596
- import { jsx as jsx93, jsxs as jsxs88 } from "react/jsx-runtime";
8723
+ import { Colorize as Colorize58, Cuboid as Cuboid66, Rotate as Rotate27, Translate as Translate44 } from "jscad-fiber";
8724
+ import { jsx as jsx94, jsxs as jsxs89 } from "react/jsx-runtime";
8597
8725
  var CeramicChipAntenna = ({
8598
8726
  footprint = "smdpads2_p5.4mm_pw1mm_ph2mm"
8599
8727
  }) => {
@@ -8603,17 +8731,17 @@ var CeramicChipAntenna = ({
8603
8731
  if (pads.length !== 2) throw new Error("CeramicChipAntenna requires two pads");
8604
8732
  const [a, b] = pads;
8605
8733
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8606
- return /* @__PURE__ */ jsx93(Translate44, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs88(Rotate27, { rotation: [0, 0, angle], children: [
8607
- /* @__PURE__ */ jsx93(
8608
- Cuboid65,
8734
+ return /* @__PURE__ */ jsx94(Translate44, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, 0], children: /* @__PURE__ */ jsxs89(Rotate27, { rotation: [0, 0, angle], children: [
8735
+ /* @__PURE__ */ jsx94(
8736
+ Cuboid66,
8609
8737
  {
8610
8738
  size: [4.44, 1.99, 1.14],
8611
8739
  center: [0, 0, 0.575],
8612
8740
  color: "#4053a3"
8613
8741
  }
8614
8742
  ),
8615
- /* @__PURE__ */ jsx93(Colorize57, { color: "#c2c4c7", children: [-1, 1].map((side) => /* @__PURE__ */ jsx93(
8616
- Cuboid65,
8743
+ /* @__PURE__ */ jsx94(Colorize58, { color: "#c2c4c7", children: [-1, 1].map((side) => /* @__PURE__ */ jsx94(
8744
+ Cuboid66,
8617
8745
  {
8618
8746
  size: [0.4, 2, 1.15],
8619
8747
  center: [side * 2.4, 0, 0.575],
@@ -8621,8 +8749,8 @@ var CeramicChipAntenna = ({
8621
8749
  },
8622
8750
  side
8623
8751
  )) }),
8624
- /* @__PURE__ */ jsx93(
8625
- Cuboid65,
8752
+ /* @__PURE__ */ jsx94(
8753
+ Cuboid66,
8626
8754
  {
8627
8755
  size: [0.9, 2, 0.01],
8628
8756
  center: [-1.75, 0, 1.145],
@@ -8634,8 +8762,8 @@ var CeramicChipAntenna = ({
8634
8762
 
8635
8763
  // lib/MelfResistor.tsx
8636
8764
  import { fp as fp14 } from "@tscircuit/footprinter";
8637
- import { Colorize as Colorize58, Cylinder as Cylinder23, Rotate as Rotate28, Translate as Translate45 } from "jscad-fiber";
8638
- import { jsx as jsx94, jsxs as jsxs89 } from "react/jsx-runtime";
8765
+ import { Colorize as Colorize59, Cylinder as Cylinder23, Rotate as Rotate28, Translate as Translate45 } from "jscad-fiber";
8766
+ import { jsx as jsx95, jsxs as jsxs90 } from "react/jsx-runtime";
8639
8767
  var melfResistorSizes = {
8640
8768
  "0102": [2.2, 1.1, 0.4],
8641
8769
  "0204": [3.6, 1.4, 0.75],
@@ -8654,15 +8782,15 @@ var MelfResistor = ({
8654
8782
  if (pads.length !== 2) throw new Error("MelfResistor requires two pads");
8655
8783
  const [a, b] = pads;
8656
8784
  const angle = Math.atan2(b.y - a.y, b.x - a.x);
8657
- return /* @__PURE__ */ jsx94(Translate45, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, diameter / 2], children: /* @__PURE__ */ jsx94(Rotate28, { rotation: [0, 0, angle], children: /* @__PURE__ */ jsxs89(Rotate28, { rotation: [0, Math.PI / 2, 0], children: [
8658
- /* @__PURE__ */ jsx94(Colorize58, { color: "#426d63", children: /* @__PURE__ */ jsx94(
8785
+ return /* @__PURE__ */ jsx95(Translate45, { offset: [(a.x + b.x) / 2, (a.y + b.y) / 2, diameter / 2], children: /* @__PURE__ */ jsx95(Rotate28, { rotation: [0, 0, angle], children: /* @__PURE__ */ jsxs90(Rotate28, { rotation: [0, Math.PI / 2, 0], children: [
8786
+ /* @__PURE__ */ jsx95(Colorize59, { color: "#426d63", children: /* @__PURE__ */ jsx95(
8659
8787
  Cylinder23,
8660
8788
  {
8661
8789
  radius: (diameter - 0.08) / 2,
8662
8790
  height: length - 2 * capLength + 0.04
8663
8791
  }
8664
8792
  ) }),
8665
- /* @__PURE__ */ jsx94(Colorize58, { color: "#c6c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsx94(
8793
+ /* @__PURE__ */ jsx95(Colorize59, { color: "#c6c8cb", children: [-1, 1].map((side) => /* @__PURE__ */ jsx95(
8666
8794
  Cylinder23,
8667
8795
  {
8668
8796
  radius: diameter / 2,
@@ -8689,6 +8817,7 @@ export {
8689
8817
  ChipBody,
8690
8818
  Crystal,
8691
8819
  DFN,
8820
+ DO219AD,
8692
8821
  DPAK,
8693
8822
  Display,
8694
8823
  ElectrolyticCapacitor,
@@ -8735,6 +8864,7 @@ export {
8735
8864
  SOD323,
8736
8865
  SOD323F,
8737
8866
  SOD323FL,
8867
+ SOD323HE,
8738
8868
  SOD523,
8739
8869
  SOD723,
8740
8870
  SOD882,