jscad-electronics 0.0.19 → 0.0.21

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
@@ -100,10 +100,19 @@ declare const Tssop: ({ pinCount, leadLength, leadWidth, pitch, bodyWidth, }: {
100
100
  bodyWidth: number;
101
101
  }) => react_jsx_runtime.JSX.Element;
102
102
 
103
- declare const QFN: ({ fullWidth, height, thermalPadSize, }: {
104
- fullWidth?: number;
105
- height?: number;
106
- thermalPadSize?: number;
103
+ declare const QFN: ({ num_pins, bodyWidth, bodyLength, bodyThickness, thermalPadSize, padWidth, padLength, pitch, thermalPadThickness, }: {
104
+ num_pins: number;
105
+ bodyWidth?: number;
106
+ bodyLength?: number;
107
+ bodyThickness?: number;
108
+ thermalPadSize?: {
109
+ width: number;
110
+ length: number;
111
+ };
112
+ padWidth?: number;
113
+ padLength?: number;
114
+ pitch?: number;
115
+ thermalPadThickness?: number;
107
116
  }) => react_jsx_runtime.JSX.Element;
108
117
 
109
118
  declare const QFP: ({ pinCount, pitch, leadWidth, padContactLength, bodyWidth, }: {
package/dist/index.js CHANGED
@@ -79026,15 +79026,179 @@ var PinRow = ({
79026
79026
  ] });
79027
79027
  };
79028
79028
 
79029
- // lib/Footprinter3d.tsx
79029
+ // lib/qfn.tsx
79030
+ var import_jscad_fiber11 = __toESM(require_dist(), 1);
79031
+
79032
+ // lib/utils/getQuadCoords.ts
79033
+ var getQuadCoords = (params) => {
79034
+ const SIDES_CCW = ["left", "bottom", "right", "top"];
79035
+ const { pin_count, pn, w, h, p, pl, legsoutside } = params;
79036
+ const sidePinCount = pin_count / 4;
79037
+ const side = SIDES_CCW[Math.floor((pn - 1) / sidePinCount)];
79038
+ const pos = (pn - 1) % sidePinCount;
79039
+ const ibw = p * (sidePinCount - 1);
79040
+ const ibh = p * (sidePinCount - 1);
79041
+ const pcdfe = legsoutside ? pl / 2 : -pl / 2;
79042
+ switch (side) {
79043
+ case "left":
79044
+ return { x: -w / 2 - pcdfe, y: ibh / 2 - pos * p, o: "vert" };
79045
+ case "bottom":
79046
+ return { x: -ibw / 2 + pos * p, y: -h / 2 - pcdfe, o: "horz" };
79047
+ case "right":
79048
+ return { x: w / 2 + pcdfe, y: -ibh / 2 + pos * p, o: "vert" };
79049
+ case "top":
79050
+ return { x: ibw / 2 - pos * p, y: h / 2 + pcdfe, o: "horz" };
79051
+ default:
79052
+ throw new Error("Invalid pin number");
79053
+ }
79054
+ };
79055
+
79056
+ // lib/utils/getQuadPinMap.ts
79057
+ var getQuadPinMap = ({
79058
+ num_pins,
79059
+ cw,
79060
+ ccw,
79061
+ startingpin
79062
+ }) => {
79063
+ const pin_map = [];
79064
+ const pins_per_side = num_pins / 4;
79065
+ let current_position_ccw_normal = 1;
79066
+ const sfp = {};
79067
+ for (const specifier of startingpin ?? []) {
79068
+ sfp[specifier] = true;
79069
+ }
79070
+ if (!sfp.leftside && !sfp.topside && !sfp.rightside && !sfp.bottomside) {
79071
+ sfp.leftside = true;
79072
+ }
79073
+ if (!sfp.bottompin && !sfp.leftpin && !sfp.rightpin && !sfp.toppin) {
79074
+ if (sfp.leftside) {
79075
+ sfp.toppin = true;
79076
+ } else if (sfp.topside) {
79077
+ sfp.rightpin = true;
79078
+ } else if (sfp.rightside) {
79079
+ sfp.bottompin = true;
79080
+ } else if (sfp.bottomside) {
79081
+ sfp.leftpin = true;
79082
+ }
79083
+ }
79084
+ if (sfp.leftside && sfp.toppin) {
79085
+ current_position_ccw_normal = 1;
79086
+ } else if (sfp.leftside && sfp.bottompin) {
79087
+ current_position_ccw_normal = pins_per_side;
79088
+ } else if (sfp.bottomside && sfp.leftpin) {
79089
+ current_position_ccw_normal = pins_per_side + 1;
79090
+ } else if (sfp.bottomside && sfp.rightpin) {
79091
+ current_position_ccw_normal = pins_per_side * 2;
79092
+ } else if (sfp.rightside && sfp.bottompin) {
79093
+ current_position_ccw_normal = pins_per_side * 2 + 1;
79094
+ } else if (sfp.rightside && sfp.toppin) {
79095
+ current_position_ccw_normal = pins_per_side * 3;
79096
+ } else if (sfp.topside && sfp.rightpin) {
79097
+ current_position_ccw_normal = pins_per_side * 3 + 1;
79098
+ } else if (sfp.topside && sfp.leftpin) {
79099
+ current_position_ccw_normal = pins_per_side * 4;
79100
+ }
79101
+ pin_map.push(-1);
79102
+ for (let i = 0; i < num_pins; i++) {
79103
+ pin_map[current_position_ccw_normal] = i + 1;
79104
+ if (ccw || !cw) {
79105
+ current_position_ccw_normal++;
79106
+ if (current_position_ccw_normal > num_pins) {
79107
+ current_position_ccw_normal = 1;
79108
+ }
79109
+ } else {
79110
+ current_position_ccw_normal--;
79111
+ if (current_position_ccw_normal < 1) {
79112
+ current_position_ccw_normal = num_pins;
79113
+ }
79114
+ }
79115
+ }
79116
+ return pin_map;
79117
+ };
79118
+
79119
+ // lib/qfn.tsx
79030
79120
  var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1);
79121
+ var QFN = ({
79122
+ num_pins = 16,
79123
+ bodyWidth = 9,
79124
+ bodyLength: bodyLength4 = 9,
79125
+ bodyThickness = 0.8,
79126
+ thermalPadSize,
79127
+ padWidth = 0.25,
79128
+ padLength = 0.25,
79129
+ pitch = 0.5,
79130
+ thermalPadThickness = 0.05
79131
+ }) => {
79132
+ const pin_map = getQuadPinMap({
79133
+ num_pins,
79134
+ cw: true,
79135
+ ccw: true
79136
+ });
79137
+ const pinPositions = [];
79138
+ const spc = num_pins / 4;
79139
+ for (let i = 0; i < num_pins; i++) {
79140
+ const {
79141
+ x,
79142
+ y,
79143
+ o: orientation
79144
+ } = getQuadCoords({
79145
+ pin_count: num_pins,
79146
+ pn: i + 1,
79147
+ w: bodyWidth,
79148
+ h: bodyLength4,
79149
+ p: pitch,
79150
+ pl: padLength,
79151
+ legsoutside: false
79152
+ });
79153
+ let pw = padWidth;
79154
+ let pl = padLength;
79155
+ if (orientation === "vert") {
79156
+ ;
79157
+ [pw, pl] = [pl, pw];
79158
+ }
79159
+ const pn = pin_map[i + 1];
79160
+ pinPositions.push({ pn, x, y, pw, pl });
79161
+ }
79162
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
79163
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_jscad_fiber11.Colorize, { color: "grey", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
79164
+ import_jscad_fiber11.Cuboid,
79165
+ {
79166
+ center: { x: 0, y: 0, z: bodyThickness / 2 },
79167
+ size: [bodyWidth, bodyLength4, bodyThickness]
79168
+ }
79169
+ ) }),
79170
+ pinPositions.map((p, i) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
79171
+ import_jscad_fiber11.Cuboid,
79172
+ {
79173
+ center: { x: p.x, y: p.y, z: 0 },
79174
+ size: [p.pw, p.pl, thermalPadThickness]
79175
+ },
79176
+ i
79177
+ )),
79178
+ thermalPadSize?.length !== void 0 && thermalPadSize?.width !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
79179
+ import_jscad_fiber11.Cuboid,
79180
+ {
79181
+ center: { x: 0, y: 0, z: 0 },
79182
+ size: [
79183
+ thermalPadSize.width,
79184
+ thermalPadSize.length,
79185
+ thermalPadThickness
79186
+ ]
79187
+ }
79188
+ )
79189
+ ] });
79190
+ };
79191
+ var qfn_default = QFN;
79192
+
79193
+ // lib/Footprinter3d.tsx
79194
+ var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
79031
79195
  var Footprinter3d = ({ footprint }) => {
79032
79196
  const fpJson = fp3.string(footprint).json();
79033
79197
  switch (fpJson.fn) {
79034
79198
  case "dip":
79035
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
79199
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
79036
79200
  case "tssop":
79037
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
79201
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79038
79202
  Tssop,
79039
79203
  {
79040
79204
  pinCount: fpJson.num_pins,
@@ -79045,7 +79209,7 @@ var Footprinter3d = ({ footprint }) => {
79045
79209
  }
79046
79210
  );
79047
79211
  case "qfp":
79048
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
79212
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79049
79213
  QFP,
79050
79214
  {
79051
79215
  pinCount: fpJson.num_pins,
@@ -79055,20 +79219,36 @@ var Footprinter3d = ({ footprint }) => {
79055
79219
  bodyWidth: fpJson.w
79056
79220
  }
79057
79221
  );
79222
+ case "qfn":
79223
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79224
+ qfn_default,
79225
+ {
79226
+ num_pins: fpJson.num_pins,
79227
+ bodyWidth: fpJson.w,
79228
+ bodyLength: fpJson.h,
79229
+ pitch: fpJson.p,
79230
+ padLength: fpJson.pl,
79231
+ padWidth: fpJson.pw,
79232
+ thermalPadSize: {
79233
+ width: fpJson.thermalpad.x,
79234
+ length: fpJson.thermalpad.y
79235
+ }
79236
+ }
79237
+ );
79058
79238
  case "pinrow":
79059
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
79239
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PinRow, { numberOfPins: fpJson.num_pins, pitch: fpJson.p });
79060
79240
  case "cap": {
79061
79241
  switch (fpJson.imperial) {
79062
79242
  case "0402":
79063
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(A0402, { color: "#856c4d" });
79243
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(A0402, { color: "#856c4d" });
79064
79244
  case "0603":
79065
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(A0603, { color: "#856c4d" });
79245
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(A0603, { color: "#856c4d" });
79066
79246
  case "0805":
79067
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(A0805, { color: "#856c4d" });
79247
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(A0805, { color: "#856c4d" });
79068
79248
  }
79069
79249
  }
79070
79250
  case "soic":
79071
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
79251
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79072
79252
  Tssop,
79073
79253
  {
79074
79254
  pinCount: fpJson.num_pins,
@@ -79081,17 +79261,17 @@ var Footprinter3d = ({ footprint }) => {
79081
79261
  }
79082
79262
  switch (fpJson.imperial) {
79083
79263
  case "0402":
79084
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(A0402, {});
79264
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(A0402, {});
79085
79265
  case "0603":
79086
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(A0603, {});
79266
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(A0603, {});
79087
79267
  case "0805":
79088
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(A0805, {});
79268
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(A0805, {});
79089
79269
  }
79090
79270
  return null;
79091
79271
  };
79092
79272
 
79093
79273
  // lib/SOT-23-3P.tsx
79094
- var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1);
79274
+ var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
79095
79275
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength4 = 2.8 }) => {
79096
79276
  const bodyWidth = 1.3;
79097
79277
  const bodyLength4 = 2.9;
@@ -79101,8 +79281,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength4 = 2.8 }) => {
79101
79281
  const leadHeight = 0.95;
79102
79282
  const padContactLength = 0.4;
79103
79283
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
79104
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
79105
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79284
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
79285
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
79106
79286
  SmdChipLead,
79107
79287
  {
79108
79288
  rotation: Math.PI,
@@ -79119,7 +79299,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength4 = 2.8 }) => {
79119
79299
  },
79120
79300
  1
79121
79301
  ),
79122
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79302
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
79123
79303
  SmdChipLead,
79124
79304
  {
79125
79305
  rotation: Math.PI,
@@ -79136,7 +79316,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength4 = 2.8 }) => {
79136
79316
  },
79137
79317
  2
79138
79318
  ),
79139
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79319
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
79140
79320
  SmdChipLead,
79141
79321
  {
79142
79322
  position: {
@@ -79152,7 +79332,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength4 = 2.8 }) => {
79152
79332
  },
79153
79333
  3
79154
79334
  ),
79155
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
79335
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
79156
79336
  ChipBody,
79157
79337
  {
79158
79338
  center: { x: 0, y: 0, z: 0 },
@@ -79165,8 +79345,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength4 = 2.8 }) => {
79165
79345
  };
79166
79346
 
79167
79347
  // lib/SOT-563.tsx
79168
- var import_jscad_fiber11 = __toESM(require_dist(), 1);
79169
- var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1);
79348
+ var import_jscad_fiber12 = __toESM(require_dist(), 1);
79349
+ var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
79170
79350
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength4 = 1.6 }) => {
79171
79351
  const bodyWidth = 1.2;
79172
79352
  const bodyLength4 = 1.6;
@@ -79176,24 +79356,24 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength4 = 1.6 }) => {
79176
79356
  const leadHeight = 0.13;
79177
79357
  const leadSpacing = 0.5;
79178
79358
  const bodyZOffset = -0.3;
79179
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
79180
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jscad_fiber11.Rotate, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jscad_fiber11.Translate, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jscad_fiber11.Colorize, { color: "grey", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jscad_fiber11.Cuboid, { size: [bodyWidth, bodyLength4, bodyHeight] }) }) }) }),
79359
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
79360
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Rotate, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Translate, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Colorize, { color: "grey", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Cuboid, { size: [bodyWidth, bodyLength4, bodyHeight] }) }) }) }),
79181
79361
  [-1, 0, 1].flatMap((yOffset, index) => [
79182
79362
  // Left lead
79183
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
79184
- import_jscad_fiber11.Translate,
79363
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
79364
+ import_jscad_fiber12.Translate,
79185
79365
  {
79186
79366
  center: [-bodyWidth / 2 - 0.03, yOffset * leadSpacing, 0],
79187
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jscad_fiber11.Cuboid, { size: [leadLength, leadWidth, leadHeight] })
79367
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Cuboid, { size: [leadLength, leadWidth, leadHeight] })
79188
79368
  },
79189
79369
  `left-${index}`
79190
79370
  ),
79191
79371
  // Right lead
79192
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
79193
- import_jscad_fiber11.Translate,
79372
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
79373
+ import_jscad_fiber12.Translate,
79194
79374
  {
79195
79375
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, 0],
79196
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jscad_fiber11.Cuboid, { size: [leadLength, leadWidth, leadHeight] })
79376
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Cuboid, { size: [leadLength, leadWidth, leadHeight] })
79197
79377
  },
79198
79378
  `right-${index}`
79199
79379
  )
@@ -79202,8 +79382,8 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength4 = 1.6 }) => {
79202
79382
  };
79203
79383
 
79204
79384
  // lib/SOT-723.tsx
79205
- var import_jscad_fiber12 = __toESM(require_dist(), 1);
79206
- var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
79385
+ var import_jscad_fiber13 = __toESM(require_dist(), 1);
79386
+ var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
79207
79387
  var getCcwSot723Coords = (pn) => {
79208
79388
  if (pn === 1) {
79209
79389
  return { x: 0, y: 0 };
@@ -79221,12 +79401,12 @@ var SOT723 = () => {
79221
79401
  const leadLength = 0.3;
79222
79402
  const leadHeight = 0.1;
79223
79403
  const centerLeadWidth = 0.42;
79224
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
79225
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Rotate, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Translate, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Colorize, { color: "grey", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Cuboid, { size: [bodyWidth, bodyLength4, bodyHeight] }) }) }) }),
79404
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
79405
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jscad_fiber13.Rotate, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jscad_fiber13.Translate, { center: [0.475, leadHeight / 2, -0.25], children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jscad_fiber13.Colorize, { color: "grey", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jscad_fiber13.Cuboid, { size: [bodyWidth, bodyLength4, bodyHeight] }) }) }) }),
79226
79406
  [1, 2, 3].map((pn) => {
79227
79407
  const { x, y } = getCcwSot723Coords(pn);
79228
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jscad_fiber12.Translate, { center: [x, y, 0], children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
79229
- import_jscad_fiber12.Cuboid,
79408
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jscad_fiber13.Translate, { center: [x, y, 0], children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
79409
+ import_jscad_fiber13.Cuboid,
79230
79410
  {
79231
79411
  size: [
79232
79412
  leadLength,
@@ -79239,35 +79419,6 @@ var SOT723 = () => {
79239
79419
  ] });
79240
79420
  };
79241
79421
 
79242
- // lib/qfn.tsx
79243
- var import_jscad_fiber13 = __toESM(require_dist(), 1);
79244
- var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1);
79245
- var QFN = ({
79246
- fullWidth = 5,
79247
- height: height4 = 0.8,
79248
- thermalPadSize = 2
79249
- }) => {
79250
- const bodyWidth = fullWidth;
79251
- const bodyLength4 = fullWidth;
79252
- const thermalPadHeight = 0.1;
79253
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
79254
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jscad_fiber13.Colorize, { color: "grey", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
79255
- import_jscad_fiber13.Cuboid,
79256
- {
79257
- center: { x: 0, y: 0, z: height4 / 2 },
79258
- size: [bodyWidth, bodyLength4, height4]
79259
- }
79260
- ) }),
79261
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
79262
- import_jscad_fiber13.Cuboid,
79263
- {
79264
- center: { x: 0, y: 0, z: -thermalPadHeight / 2 },
79265
- size: [thermalPadSize, thermalPadSize, thermalPadHeight]
79266
- }
79267
- )
79268
- ] });
79269
- };
79270
-
79271
79422
  // lib/sod-123.tsx
79272
79423
  var import_jsx_runtime19 = __toESM(require_jsx_runtime(), 1);
79273
79424
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength4 = 1.6 }) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jscad-electronics",
3
3
  "type": "module",
4
- "version": "0.0.19",
4
+ "version": "0.0.21",
5
5
  "main": "./dist/index.js",
6
6
  "repository": {
7
7
  "type": "git",