jscad-electronics 0.0.111 → 0.0.113

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
@@ -101,6 +101,21 @@ declare const Footprinter3d: ({ footprint }: {
101
101
  footprint: string;
102
102
  }) => react_jsx_runtime.JSX.Element | null;
103
103
 
104
+ declare const StampBoard: ({ bodyWidth, boardThickness, leadWidth, leadLength, leadsPitch, leadsLeft, leadsRight, leadsTop, leadsBottom, innerHoles, innerHoleEdgeDistance, innerHoleDiameter, }: {
105
+ bodyWidth?: number;
106
+ boardThickness?: number;
107
+ leadWidth?: number;
108
+ leadLength?: number;
109
+ leadsPitch?: number;
110
+ leadsLeft?: number;
111
+ leadsRight?: number;
112
+ leadsTop?: number;
113
+ leadsBottom?: number;
114
+ innerHoles?: boolean;
115
+ innerHoleEdgeDistance?: number;
116
+ innerHoleDiameter?: number;
117
+ }) => react_jsx_runtime.JSX.Element;
118
+
104
119
  declare const SOT233P: ({ fullWidth, fullLength }: {
105
120
  fullWidth?: number | undefined;
106
121
  fullLength?: number | undefined;
@@ -227,6 +242,11 @@ declare const PinRow: ({ numberOfPins, pitch, longSidePinLength, invert, faceup,
227
242
  rightangle?: boolean;
228
243
  }) => react_jsx_runtime.JSX.Element;
229
244
 
245
+ interface AxialCapacitorProps {
246
+ pitch: number;
247
+ }
248
+ declare const AxialCapacitor: ({ pitch }: AxialCapacitorProps) => react_jsx_runtime.JSX.Element;
249
+
230
250
  declare const SOD523: () => react_jsx_runtime.JSX.Element;
231
251
 
232
252
  declare const SOD882: () => react_jsx_runtime.JSX.Element;
@@ -332,4 +352,4 @@ declare const TO220: () => react_jsx_runtime.JSX.Element;
332
352
 
333
353
  declare const TO92: () => react_jsx_runtime.JSX.Element;
334
354
 
335
- export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, BGA, ChipBody, type ChipBodyProps, DFN, ExtrudedPads, FootprintPad, FootprintPlatedHole, Footprinter3d, HC49, type HC49Props, LQFP, MELF, type MELFProps, MINIMELF, type MINIMELFProps, MS012, MS013, MSOP, MicroMELF, type MicroMELFProps, PinRow, QFN, QFP, SMA, SMB, SMC, SMF, SOD123, SOD123F, SOD123FL, SOD123W, SOD128, SOD323, SOD323F, SOD323FL, SOD523, SOD882, SOD923, SOT223, SOT233P, SOT23W, SOT323, SOT363, SOT457, SOT563, SOT723, SOT886, SOT963, SmdChipLead, type SmdChipLeadProps, TO220, TO92, TQFP, Tssop, VSSOP };
355
+ export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, AxialCapacitor, BGA, ChipBody, type ChipBodyProps, DFN, ExtrudedPads, FootprintPad, FootprintPlatedHole, Footprinter3d, HC49, type HC49Props, LQFP, MELF, type MELFProps, MINIMELF, type MINIMELFProps, MS012, MS013, MSOP, MicroMELF, type MicroMELFProps, PinRow, QFN, QFP, SMA, SMB, SMC, SMF, SOD123, SOD123F, SOD123FL, SOD123W, SOD128, SOD323, SOD323F, SOD323FL, SOD523, SOD882, SOD923, SOT223, SOT233P, SOT23W, SOT323, SOT363, SOT457, SOT563, SOT723, SOT886, SOT963, SmdChipLead, type SmdChipLeadProps, StampBoard, TO220, TO92, TQFP, Tssop, VSSOP };
package/dist/index.js CHANGED
@@ -4159,15 +4159,205 @@ var SOD323FL = () => {
4159
4159
  ] });
4160
4160
  };
4161
4161
 
4162
+ // lib/AxialCapacitor.tsx
4163
+ import { Colorize as Colorize31, Cylinder as Cylinder9, Rotate as Rotate11, Sphere as Sphere2, Translate as Translate27 } from "jscad-fiber";
4164
+ import { Fragment as Fragment55, jsx as jsx60, jsxs as jsxs58 } from "react/jsx-runtime";
4165
+ var AxialCapacitor = ({ pitch = 10 }) => {
4166
+ const heightToCenterOfCapacitor = 0.5 + 4 / 2;
4167
+ return /* @__PURE__ */ jsxs58(Fragment55, { children: [
4168
+ /* @__PURE__ */ jsx60(Cylinder9, { height: 4, radius: 0.5, center: [-pitch / 2, 0, 0.5] }),
4169
+ /* @__PURE__ */ jsx60(
4170
+ Sphere2,
4171
+ {
4172
+ radius: 0.5,
4173
+ center: [-pitch / 2, 0, heightToCenterOfCapacitor]
4174
+ }
4175
+ ),
4176
+ /* @__PURE__ */ jsx60(Translate27, { x: -2.5, y: 0, z: heightToCenterOfCapacitor, children: /* @__PURE__ */ jsxs58(Rotate11, { rotation: [0, Math.PI / 2, 0], children: [
4177
+ /* @__PURE__ */ jsx60(
4178
+ Cylinder9,
4179
+ {
4180
+ height: pitch,
4181
+ radius: 0.5,
4182
+ center: [0, 0, heightToCenterOfCapacitor]
4183
+ }
4184
+ ),
4185
+ /* @__PURE__ */ jsx60(Colorize31, { color: "#d2b48c", children: /* @__PURE__ */ jsx60(
4186
+ Cylinder9,
4187
+ {
4188
+ height: 5,
4189
+ radius: 1.3,
4190
+ center: [0, 0, heightToCenterOfCapacitor]
4191
+ }
4192
+ ) })
4193
+ ] }) }),
4194
+ /* @__PURE__ */ jsx60(Cylinder9, { height: 4, radius: 0.5, center: [pitch / 2, 0, 0.5] }),
4195
+ /* @__PURE__ */ jsx60(Sphere2, { radius: 0.5, center: [pitch / 2, 0, heightToCenterOfCapacitor] })
4196
+ ] });
4197
+ };
4198
+
4199
+ // lib/stampboard.tsx
4200
+ import { Colorize as Colorize32, Cuboid as Cuboid40, Cylinder as Cylinder10, Subtract as Subtract6, Union as Union19 } from "jscad-fiber";
4201
+ import { Fragment as Fragment56, jsx as jsx61, jsxs as jsxs59 } from "react/jsx-runtime";
4202
+ var StampBoard = ({
4203
+ bodyWidth = 21,
4204
+ boardThickness = 0.5,
4205
+ leadWidth = 1.6,
4206
+ leadLength = 2.4,
4207
+ leadsPitch = 2.54,
4208
+ leadsLeft,
4209
+ leadsRight,
4210
+ leadsTop,
4211
+ leadsBottom,
4212
+ innerHoles = true,
4213
+ innerHoleEdgeDistance = 1.61,
4214
+ innerHoleDiameter = 1
4215
+ }) => {
4216
+ const halfBoardWidth = bodyWidth / 2;
4217
+ const boardCenterZ = boardThickness / 2;
4218
+ const boardHeight = boardThickness * 1.05;
4219
+ const holeRadius = innerHoleDiameter / 2;
4220
+ const bodyLength10 = Math.max(leadsLeft || 0, leadsRight || 0, leadsTop || 0, leadsBottom || 0) * leadsPitch || 51;
4221
+ const pads = [];
4222
+ const holes = [];
4223
+ if (leadsRight) {
4224
+ const yOffset = -((leadsRight - 1) / 2) * leadsPitch;
4225
+ for (let i = 0; i < leadsRight; i++) {
4226
+ const y = yOffset + i * leadsPitch;
4227
+ pads.push({
4228
+ x: -halfBoardWidth + leadLength / 2,
4229
+ y: -y,
4230
+ // Flip y
4231
+ pl: leadLength,
4232
+ pw: leadWidth
4233
+ });
4234
+ if (innerHoles) {
4235
+ holes.push(
4236
+ { x: -halfBoardWidth, y: -y },
4237
+ { x: -halfBoardWidth + innerHoleEdgeDistance, y: -y }
4238
+ );
4239
+ }
4240
+ }
4241
+ }
4242
+ if (leadsLeft) {
4243
+ const yOffset = -((leadsLeft - 1) / 2) * leadsPitch;
4244
+ for (let i = 0; i < leadsLeft; i++) {
4245
+ const y = yOffset + i * leadsPitch;
4246
+ pads.push({
4247
+ x: halfBoardWidth - leadLength / 2,
4248
+ y: -y,
4249
+ // Flip y
4250
+ pl: leadLength,
4251
+ pw: leadWidth
4252
+ });
4253
+ if (innerHoles) {
4254
+ holes.push(
4255
+ { x: halfBoardWidth, y: -y },
4256
+ { x: halfBoardWidth - innerHoleEdgeDistance, y: -y }
4257
+ );
4258
+ }
4259
+ }
4260
+ }
4261
+ if (leadsTop) {
4262
+ const xOffset = -((leadsTop - 1) / 2) * leadsPitch;
4263
+ for (let i = 0; i < leadsTop; i++) {
4264
+ const x = xOffset + i * leadsPitch;
4265
+ pads.push({
4266
+ x: -x,
4267
+ // Flip x
4268
+ y: -bodyLength10 / 2 + leadLength / 2,
4269
+ pl: leadWidth,
4270
+ pw: leadLength
4271
+ });
4272
+ if (innerHoles) {
4273
+ holes.push(
4274
+ { x: -x, y: -bodyLength10 / 2 },
4275
+ { x: -x, y: -bodyLength10 / 2 + innerHoleEdgeDistance }
4276
+ );
4277
+ }
4278
+ }
4279
+ }
4280
+ if (leadsBottom) {
4281
+ const xOffset = -((leadsBottom - 1) / 2) * leadsPitch;
4282
+ for (let i = 0; i < leadsBottom; i++) {
4283
+ const x = xOffset + i * leadsPitch;
4284
+ pads.push({
4285
+ x: -x,
4286
+ // Flip x
4287
+ y: bodyLength10 / 2 - leadLength / 2,
4288
+ pl: leadWidth,
4289
+ pw: leadLength
4290
+ });
4291
+ if (innerHoles) {
4292
+ holes.push(
4293
+ { x: -x, y: bodyLength10 / 2 },
4294
+ { x: -x, y: bodyLength10 / 2 - innerHoleEdgeDistance }
4295
+ );
4296
+ }
4297
+ }
4298
+ }
4299
+ const boardBody = /* @__PURE__ */ jsx61(Colorize32, { color: "#008080", children: /* @__PURE__ */ jsxs59(Subtract6, { children: [
4300
+ /* @__PURE__ */ jsx61(
4301
+ Cuboid40,
4302
+ {
4303
+ center: [0, 0, boardCenterZ],
4304
+ size: [bodyWidth, bodyLength10, boardThickness]
4305
+ }
4306
+ ),
4307
+ pads.map((pad, index) => /* @__PURE__ */ jsx61(
4308
+ Cuboid40,
4309
+ {
4310
+ center: [pad.x, pad.y, boardCenterZ],
4311
+ size: [pad.pl + 0.01, pad.pw + 0.01, boardHeight]
4312
+ },
4313
+ index
4314
+ ))
4315
+ ] }) });
4316
+ const holePads = innerHoles && holes.map((hole, index) => /* @__PURE__ */ jsx61(
4317
+ Cylinder10,
4318
+ {
4319
+ color: "black",
4320
+ center: [hole.x, hole.y, boardCenterZ],
4321
+ radius: holeRadius,
4322
+ height: boardThickness * 1.07
4323
+ },
4324
+ index
4325
+ ));
4326
+ const rectPads = pads.map((pad, index) => /* @__PURE__ */ jsx61(
4327
+ Cuboid40,
4328
+ {
4329
+ center: [pad.x, pad.y, boardCenterZ],
4330
+ size: [pad.pl + 0.01, pad.pw + 0.01, boardHeight]
4331
+ },
4332
+ index
4333
+ ));
4334
+ return /* @__PURE__ */ jsxs59(Fragment56, { children: [
4335
+ boardBody,
4336
+ /* @__PURE__ */ jsx61(Colorize32, { color: "#FFD700", children: innerHoles ? /* @__PURE__ */ jsxs59(Subtract6, { children: [
4337
+ /* @__PURE__ */ jsx61(Union19, { children: pads.map((pad, index) => /* @__PURE__ */ jsx61(
4338
+ Cuboid40,
4339
+ {
4340
+ center: [pad.x, pad.y, boardCenterZ],
4341
+ size: [pad.pl + 0.01, pad.pw + 0.01, boardHeight]
4342
+ },
4343
+ index
4344
+ )) }),
4345
+ holePads
4346
+ ] }) : rectPads })
4347
+ ] });
4348
+ };
4349
+
4162
4350
  // lib/Footprinter3d.tsx
4163
- import { jsx as jsx60 } from "react/jsx-runtime";
4351
+ import { jsx as jsx62 } from "react/jsx-runtime";
4164
4352
  var Footprinter3d = ({ footprint }) => {
4165
4353
  const fpJson = fp3.string(footprint).json();
4166
4354
  switch (fpJson.fn) {
4167
4355
  case "dip":
4168
- return /* @__PURE__ */ jsx60(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
4356
+ return /* @__PURE__ */ jsx62(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
4357
+ case "axial":
4358
+ return /* @__PURE__ */ jsx62(AxialCapacitor, { pitch: fpJson.p });
4169
4359
  case "tssop":
4170
- return /* @__PURE__ */ jsx60(
4360
+ return /* @__PURE__ */ jsx62(
4171
4361
  Tssop,
4172
4362
  {
4173
4363
  pinCount: fpJson.num_pins,
@@ -4178,7 +4368,7 @@ var Footprinter3d = ({ footprint }) => {
4178
4368
  }
4179
4369
  );
4180
4370
  case "msop":
4181
- return /* @__PURE__ */ jsx60(
4371
+ return /* @__PURE__ */ jsx62(
4182
4372
  MSOP,
4183
4373
  {
4184
4374
  pinCount: fpJson.num_pins,
@@ -4189,7 +4379,7 @@ var Footprinter3d = ({ footprint }) => {
4189
4379
  }
4190
4380
  );
4191
4381
  case "vssop":
4192
- return /* @__PURE__ */ jsx60(
4382
+ return /* @__PURE__ */ jsx62(
4193
4383
  VSSOP,
4194
4384
  {
4195
4385
  pinCount: fpJson.num_pins,
@@ -4201,7 +4391,7 @@ var Footprinter3d = ({ footprint }) => {
4201
4391
  }
4202
4392
  );
4203
4393
  case "qfp":
4204
- return /* @__PURE__ */ jsx60(
4394
+ return /* @__PURE__ */ jsx62(
4205
4395
  QFP,
4206
4396
  {
4207
4397
  pinCount: fpJson.num_pins,
@@ -4212,12 +4402,12 @@ var Footprinter3d = ({ footprint }) => {
4212
4402
  }
4213
4403
  );
4214
4404
  case "tqfp":
4215
- return /* @__PURE__ */ jsx60(tqfp_default, {});
4405
+ return /* @__PURE__ */ jsx62(tqfp_default, {});
4216
4406
  case "lqfp":
4217
- return /* @__PURE__ */ jsx60(LQFP, { pinCount: fpJson.num_pins });
4407
+ return /* @__PURE__ */ jsx62(LQFP, { pinCount: fpJson.num_pins });
4218
4408
  case "qfn": {
4219
4409
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4220
- return /* @__PURE__ */ jsx60(
4410
+ return /* @__PURE__ */ jsx62(
4221
4411
  qfn_default,
4222
4412
  {
4223
4413
  num_pins: fpJson.num_pins,
@@ -4235,7 +4425,7 @@ var Footprinter3d = ({ footprint }) => {
4235
4425
  }
4236
4426
  case "dfn": {
4237
4427
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4238
- return /* @__PURE__ */ jsx60(
4428
+ return /* @__PURE__ */ jsx62(
4239
4429
  DFN,
4240
4430
  {
4241
4431
  num_pins: fpJson.num_pins,
@@ -4255,7 +4445,7 @@ var Footprinter3d = ({ footprint }) => {
4255
4445
  const rowsMatch = footprint.match(/_rows(\d+)/);
4256
4446
  const rows = rowsMatch && rowsMatch[1] ? parseInt(rowsMatch[1], 10) : 1;
4257
4447
  if (fpJson.male)
4258
- return /* @__PURE__ */ jsx60(
4448
+ return /* @__PURE__ */ jsx62(
4259
4449
  PinRow,
4260
4450
  {
4261
4451
  numberOfPins: fpJson.num_pins,
@@ -4268,7 +4458,7 @@ var Footprinter3d = ({ footprint }) => {
4268
4458
  }
4269
4459
  );
4270
4460
  if (fpJson.female)
4271
- return /* @__PURE__ */ jsx60(
4461
+ return /* @__PURE__ */ jsx62(
4272
4462
  FemaleHeader,
4273
4463
  {
4274
4464
  numberOfPins: fpJson.num_pins,
@@ -4280,47 +4470,47 @@ var Footprinter3d = ({ footprint }) => {
4280
4470
  case "cap": {
4281
4471
  switch (fpJson.imperial) {
4282
4472
  case "0402":
4283
- return /* @__PURE__ */ jsx60(A0402, { color: "#856c4d" });
4473
+ return /* @__PURE__ */ jsx62(A0402, { color: "#856c4d" });
4284
4474
  case "0603":
4285
- return /* @__PURE__ */ jsx60(A0603, { color: "#856c4d" });
4475
+ return /* @__PURE__ */ jsx62(A0603, { color: "#856c4d" });
4286
4476
  case "0805":
4287
- return /* @__PURE__ */ jsx60(A0805, { color: "#856c4d" });
4477
+ return /* @__PURE__ */ jsx62(A0805, { color: "#856c4d" });
4288
4478
  case "0201":
4289
- return /* @__PURE__ */ jsx60(A0201, { color: "#856c4d" });
4479
+ return /* @__PURE__ */ jsx62(A0201, { color: "#856c4d" });
4290
4480
  case "01005":
4291
- return /* @__PURE__ */ jsx60(A01005, { color: "#856c4d" });
4481
+ return /* @__PURE__ */ jsx62(A01005, { color: "#856c4d" });
4292
4482
  case "1206":
4293
- return /* @__PURE__ */ jsx60(A1206, { color: "#856c4d" });
4483
+ return /* @__PURE__ */ jsx62(A1206, { color: "#856c4d" });
4294
4484
  case "1210":
4295
- return /* @__PURE__ */ jsx60(A1210, { color: "#856c4d" });
4485
+ return /* @__PURE__ */ jsx62(A1210, { color: "#856c4d" });
4296
4486
  case "2010":
4297
- return /* @__PURE__ */ jsx60(A2010, { color: "#856c4d" });
4487
+ return /* @__PURE__ */ jsx62(A2010, { color: "#856c4d" });
4298
4488
  case "2512":
4299
- return /* @__PURE__ */ jsx60(A2512, { color: "#856c4d" });
4489
+ return /* @__PURE__ */ jsx62(A2512, { color: "#856c4d" });
4300
4490
  }
4301
4491
  }
4302
4492
  case "sot235":
4303
- return /* @__PURE__ */ jsx60(SOT_235_default, {});
4493
+ return /* @__PURE__ */ jsx62(SOT_235_default, {});
4304
4494
  case "sot457":
4305
- return /* @__PURE__ */ jsx60(SOT457, {});
4495
+ return /* @__PURE__ */ jsx62(SOT457, {});
4306
4496
  case "sot223":
4307
- return /* @__PURE__ */ jsx60(SOT223, {});
4497
+ return /* @__PURE__ */ jsx62(SOT223, {});
4308
4498
  case "sot23w":
4309
- return /* @__PURE__ */ jsx60(SOT23W, {});
4499
+ return /* @__PURE__ */ jsx62(SOT23W, {});
4310
4500
  case "sot323":
4311
- return /* @__PURE__ */ jsx60(SOT323, {});
4501
+ return /* @__PURE__ */ jsx62(SOT323, {});
4312
4502
  case "sod323f":
4313
- return /* @__PURE__ */ jsx60(SOD323F, {});
4503
+ return /* @__PURE__ */ jsx62(SOD323F, {});
4314
4504
  case "sod323fl":
4315
- return /* @__PURE__ */ jsx60(SOD323FL, {});
4505
+ return /* @__PURE__ */ jsx62(SOD323FL, {});
4316
4506
  case "sot363":
4317
- return /* @__PURE__ */ jsx60(SOT_363_default, {});
4507
+ return /* @__PURE__ */ jsx62(SOT_363_default, {});
4318
4508
  case "sot886":
4319
- return /* @__PURE__ */ jsx60(SOT886, {});
4509
+ return /* @__PURE__ */ jsx62(SOT886, {});
4320
4510
  case "sot963":
4321
- return /* @__PURE__ */ jsx60(SOT963, {});
4511
+ return /* @__PURE__ */ jsx62(SOT963, {});
4322
4512
  case "pushbutton":
4323
- return /* @__PURE__ */ jsx60(
4513
+ return /* @__PURE__ */ jsx62(
4324
4514
  PushButton,
4325
4515
  {
4326
4516
  width: fpJson.w,
@@ -4329,7 +4519,7 @@ var Footprinter3d = ({ footprint }) => {
4329
4519
  }
4330
4520
  );
4331
4521
  case "soic":
4332
- return /* @__PURE__ */ jsx60(
4522
+ return /* @__PURE__ */ jsx62(
4333
4523
  SOIC,
4334
4524
  {
4335
4525
  pinCount: fpJson.num_pins,
@@ -4340,39 +4530,39 @@ var Footprinter3d = ({ footprint }) => {
4340
4530
  }
4341
4531
  );
4342
4532
  case "sod523":
4343
- return /* @__PURE__ */ jsx60(SOD523, {});
4533
+ return /* @__PURE__ */ jsx62(SOD523, {});
4344
4534
  case "sod882":
4345
- return /* @__PURE__ */ jsx60(SOD882, {});
4535
+ return /* @__PURE__ */ jsx62(SOD882, {});
4346
4536
  case "sma":
4347
- return /* @__PURE__ */ jsx60(SMA, {});
4537
+ return /* @__PURE__ */ jsx62(SMA, {});
4348
4538
  case "smb":
4349
- return /* @__PURE__ */ jsx60(SMB, {});
4539
+ return /* @__PURE__ */ jsx62(SMB, {});
4350
4540
  case "smc":
4351
- return /* @__PURE__ */ jsx60(SMC, {});
4541
+ return /* @__PURE__ */ jsx62(SMC, {});
4352
4542
  case "smf":
4353
- return /* @__PURE__ */ jsx60(SMF, {});
4543
+ return /* @__PURE__ */ jsx62(SMF, {});
4354
4544
  case "sod123f":
4355
- return /* @__PURE__ */ jsx60(SOD123F, {});
4545
+ return /* @__PURE__ */ jsx62(SOD123F, {});
4356
4546
  case "sod123fl":
4357
- return /* @__PURE__ */ jsx60(SOD123FL, {});
4547
+ return /* @__PURE__ */ jsx62(SOD123FL, {});
4358
4548
  case "sod123w":
4359
- return /* @__PURE__ */ jsx60(SOD123W, {});
4549
+ return /* @__PURE__ */ jsx62(SOD123W, {});
4360
4550
  case "sod128":
4361
- return /* @__PURE__ */ jsx60(SOD128, {});
4551
+ return /* @__PURE__ */ jsx62(SOD128, {});
4362
4552
  case "sod323":
4363
- return /* @__PURE__ */ jsx60(SOD323, {});
4553
+ return /* @__PURE__ */ jsx62(SOD323, {});
4364
4554
  case "sod923":
4365
- return /* @__PURE__ */ jsx60(SOD923, {});
4555
+ return /* @__PURE__ */ jsx62(SOD923, {});
4366
4556
  case "hc49":
4367
- return /* @__PURE__ */ jsx60(HC49, {});
4557
+ return /* @__PURE__ */ jsx62(HC49, {});
4368
4558
  case "micromelf":
4369
- return /* @__PURE__ */ jsx60(MicroMELF, {});
4559
+ return /* @__PURE__ */ jsx62(MicroMELF, {});
4370
4560
  case "minimelf":
4371
- return /* @__PURE__ */ jsx60(MINIMELF, {});
4561
+ return /* @__PURE__ */ jsx62(MINIMELF, {});
4372
4562
  case "melf":
4373
- return /* @__PURE__ */ jsx60(MELF, {});
4563
+ return /* @__PURE__ */ jsx62(MELF, {});
4374
4564
  case "ms012":
4375
- return /* @__PURE__ */ jsx60(
4565
+ return /* @__PURE__ */ jsx62(
4376
4566
  MS012,
4377
4567
  {
4378
4568
  pinCount: fpJson.num_pins,
@@ -4382,7 +4572,7 @@ var Footprinter3d = ({ footprint }) => {
4382
4572
  }
4383
4573
  );
4384
4574
  case "ms013":
4385
- return /* @__PURE__ */ jsx60(
4575
+ return /* @__PURE__ */ jsx62(
4386
4576
  MS013,
4387
4577
  {
4388
4578
  pinCount: fpJson.num_pins,
@@ -4392,39 +4582,56 @@ var Footprinter3d = ({ footprint }) => {
4392
4582
  }
4393
4583
  );
4394
4584
  case "sot723":
4395
- return /* @__PURE__ */ jsx60(SOT723, {});
4585
+ return /* @__PURE__ */ jsx62(SOT723, {});
4396
4586
  case "to220":
4397
- return /* @__PURE__ */ jsx60(TO220, {});
4587
+ return /* @__PURE__ */ jsx62(TO220, {});
4398
4588
  case "to92":
4399
- return /* @__PURE__ */ jsx60(TO92, {});
4589
+ return /* @__PURE__ */ jsx62(TO92, {});
4590
+ case "stampboard":
4591
+ case "stampreceiver":
4592
+ return /* @__PURE__ */ jsx62(
4593
+ StampBoard,
4594
+ {
4595
+ bodyWidth: fpJson.w,
4596
+ leadsLeft: fpJson.left,
4597
+ leadsRight: fpJson.right,
4598
+ leadsTop: fpJson.top,
4599
+ leadsBottom: fpJson.bottom,
4600
+ leadsPitch: fpJson.p,
4601
+ leadWidth: fpJson.pw,
4602
+ leadLength: fpJson.pl,
4603
+ innerHoles: fpJson.innerhole,
4604
+ innerHoleEdgeDistance: fpJson.innerholeedgedistance
4605
+ }
4606
+ );
4400
4607
  }
4401
4608
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
4402
4609
  const color = colorMatch ? colorMatch[1] : void 0;
4403
4610
  switch (fpJson.imperial) {
4404
4611
  case "0402":
4405
- return /* @__PURE__ */ jsx60(A0402, { color });
4612
+ return /* @__PURE__ */ jsx62(A0402, { color });
4406
4613
  case "0603":
4407
- return /* @__PURE__ */ jsx60(A0603, { color });
4614
+ return /* @__PURE__ */ jsx62(A0603, { color });
4408
4615
  case "0805":
4409
- return /* @__PURE__ */ jsx60(A0805, { color });
4616
+ return /* @__PURE__ */ jsx62(A0805, { color });
4410
4617
  case "0201":
4411
- return /* @__PURE__ */ jsx60(A0201, { color });
4618
+ return /* @__PURE__ */ jsx62(A0201, { color });
4412
4619
  case "01005":
4413
- return /* @__PURE__ */ jsx60(A01005, { color });
4620
+ return /* @__PURE__ */ jsx62(A01005, { color });
4414
4621
  case "1206":
4415
- return /* @__PURE__ */ jsx60(A1206, { color });
4622
+ return /* @__PURE__ */ jsx62(A1206, { color });
4416
4623
  case "1210":
4417
- return /* @__PURE__ */ jsx60(A1210, { color });
4624
+ return /* @__PURE__ */ jsx62(A1210, { color });
4418
4625
  case "2010":
4419
- return /* @__PURE__ */ jsx60(A2010, { color });
4626
+ return /* @__PURE__ */ jsx62(A2010, { color });
4420
4627
  case "2512":
4421
- return /* @__PURE__ */ jsx60(A2512, { color });
4628
+ return /* @__PURE__ */ jsx62(A2512, { color });
4422
4629
  }
4423
4630
  return null;
4424
4631
  };
4425
4632
 
4426
4633
  // lib/SOT-23-3P.tsx
4427
- import { Fragment as Fragment55, jsx as jsx61, jsxs as jsxs58 } from "react/jsx-runtime";
4634
+ import { Fragment as Fragment57, jsx as jsx63, jsxs as jsxs60 } from "react/jsx-runtime";
4428
4635
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4429
4636
  const bodyWidth = 1.3;
4430
4637
  const bodyLength10 = 2.9;
@@ -4435,8 +4642,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4435
4642
  const padContactLength = 0.4;
4436
4643
  const padThickness = leadThickness / 2;
4437
4644
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
4438
- return /* @__PURE__ */ jsxs58(Fragment55, { children: [
4439
- /* @__PURE__ */ jsx61(
4645
+ return /* @__PURE__ */ jsxs60(Fragment57, { children: [
4646
+ /* @__PURE__ */ jsx63(
4440
4647
  SmdChipLead,
4441
4648
  {
4442
4649
  rotation: Math.PI,
@@ -4453,7 +4660,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4453
4660
  },
4454
4661
  1
4455
4662
  ),
4456
- /* @__PURE__ */ jsx61(
4663
+ /* @__PURE__ */ jsx63(
4457
4664
  SmdChipLead,
4458
4665
  {
4459
4666
  rotation: Math.PI,
@@ -4470,7 +4677,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4470
4677
  },
4471
4678
  2
4472
4679
  ),
4473
- /* @__PURE__ */ jsx61(
4680
+ /* @__PURE__ */ jsx63(
4474
4681
  SmdChipLead,
4475
4682
  {
4476
4683
  position: {
@@ -4486,7 +4693,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4486
4693
  },
4487
4694
  3
4488
4695
  ),
4489
- /* @__PURE__ */ jsx61(
4696
+ /* @__PURE__ */ jsx63(
4490
4697
  ChipBody,
4491
4698
  {
4492
4699
  center: { x: 0, y: 0, z: 0 },
@@ -4499,8 +4706,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4499
4706
  };
4500
4707
 
4501
4708
  // lib/SOT-563.tsx
4502
- import { Cuboid as Cuboid40, Translate as Translate27, Rotate as Rotate11, Colorize as Colorize31 } from "jscad-fiber";
4503
- import { Fragment as Fragment56, jsx as jsx62, jsxs as jsxs59 } from "react/jsx-runtime";
4709
+ import { Cuboid as Cuboid41, Translate as Translate28, Rotate as Rotate12, Colorize as Colorize33 } from "jscad-fiber";
4710
+ import { Fragment as Fragment58, jsx as jsx64, jsxs as jsxs61 } from "react/jsx-runtime";
4504
4711
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4505
4712
  const bodyWidth = 1.2;
4506
4713
  const bodyLength10 = 1.6;
@@ -4510,28 +4717,28 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4510
4717
  const leadHeight = 0.13;
4511
4718
  const leadSpacing = 0.5;
4512
4719
  const bodyZOffset = -0.4;
4513
- return /* @__PURE__ */ jsxs59(Fragment56, { children: [
4514
- /* @__PURE__ */ jsx62(Rotate11, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx62(Translate27, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx62(Colorize31, { color: "grey", children: /* @__PURE__ */ jsx62(Cuboid40, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
4720
+ return /* @__PURE__ */ jsxs61(Fragment58, { children: [
4721
+ /* @__PURE__ */ jsx64(Rotate12, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx64(Translate28, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx64(Colorize33, { color: "grey", children: /* @__PURE__ */ jsx64(Cuboid41, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
4515
4722
  [-1, 0, 1].flatMap((yOffset, index) => [
4516
4723
  // Left lead
4517
- /* @__PURE__ */ jsx62(
4518
- Translate27,
4724
+ /* @__PURE__ */ jsx64(
4725
+ Translate28,
4519
4726
  {
4520
4727
  center: [
4521
4728
  -bodyWidth / 2 - 0.03,
4522
4729
  yOffset * leadSpacing,
4523
4730
  leadHeight / 2
4524
4731
  ],
4525
- children: /* @__PURE__ */ jsx62(Cuboid40, { size: [leadLength, leadWidth, leadHeight] })
4732
+ children: /* @__PURE__ */ jsx64(Cuboid41, { size: [leadLength, leadWidth, leadHeight] })
4526
4733
  },
4527
4734
  `left-${index}`
4528
4735
  ),
4529
4736
  // Right lead
4530
- /* @__PURE__ */ jsx62(
4531
- Translate27,
4737
+ /* @__PURE__ */ jsx64(
4738
+ Translate28,
4532
4739
  {
4533
4740
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
4534
- children: /* @__PURE__ */ jsx62(Cuboid40, { size: [leadLength, leadWidth, leadHeight] })
4741
+ children: /* @__PURE__ */ jsx64(Cuboid41, { size: [leadLength, leadWidth, leadHeight] })
4535
4742
  },
4536
4743
  `right-${index}`
4537
4744
  )
@@ -4540,7 +4747,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4540
4747
  };
4541
4748
 
4542
4749
  // lib/sod-123.tsx
4543
- import { Fragment as Fragment57, jsx as jsx63, jsxs as jsxs60 } from "react/jsx-runtime";
4750
+ import { Fragment as Fragment59, jsx as jsx65, jsxs as jsxs62 } from "react/jsx-runtime";
4544
4751
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4545
4752
  const bodyWidth = 2.9;
4546
4753
  const bodyLength10 = 1.3;
@@ -4551,8 +4758,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4551
4758
  const padContactLength = 0.4;
4552
4759
  const padThickness = leadThickness / 2;
4553
4760
  const bodyDistance = (fullWidth - bodyWidth) / 2;
4554
- return /* @__PURE__ */ jsxs60(Fragment57, { children: [
4555
- /* @__PURE__ */ jsx63(
4761
+ return /* @__PURE__ */ jsxs62(Fragment59, { children: [
4762
+ /* @__PURE__ */ jsx65(
4556
4763
  SmdChipLead,
4557
4764
  {
4558
4765
  position: {
@@ -4568,7 +4775,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4568
4775
  },
4569
4776
  1
4570
4777
  ),
4571
- /* @__PURE__ */ jsx63(
4778
+ /* @__PURE__ */ jsx65(
4572
4779
  SmdChipLead,
4573
4780
  {
4574
4781
  rotation: Math.PI,
@@ -4585,7 +4792,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4585
4792
  },
4586
4793
  2
4587
4794
  ),
4588
- /* @__PURE__ */ jsx63(
4795
+ /* @__PURE__ */ jsx65(
4589
4796
  ChipBody,
4590
4797
  {
4591
4798
  center: { x: 0, y: 0, z: 0 },
@@ -4606,6 +4813,7 @@ export {
4606
4813
  A1210,
4607
4814
  A2010,
4608
4815
  A2512,
4816
+ AxialCapacitor,
4609
4817
  BGA,
4610
4818
  ChipBody,
4611
4819
  DFN,
@@ -4650,6 +4858,7 @@ export {
4650
4858
  SOT886,
4651
4859
  SOT963,
4652
4860
  SmdChipLead,
4861
+ StampBoard,
4653
4862
  TO220,
4654
4863
  TO92,
4655
4864
  TQFP,