jscad-electronics 0.0.112 → 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;
@@ -337,4 +352,4 @@ declare const TO220: () => react_jsx_runtime.JSX.Element;
337
352
 
338
353
  declare const TO92: () => react_jsx_runtime.JSX.Element;
339
354
 
340
- 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, 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
@@ -4196,17 +4196,168 @@ var AxialCapacitor = ({ pitch = 10 }) => {
4196
4196
  ] });
4197
4197
  };
4198
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
+
4199
4350
  // lib/Footprinter3d.tsx
4200
- import { jsx as jsx61 } from "react/jsx-runtime";
4351
+ import { jsx as jsx62 } from "react/jsx-runtime";
4201
4352
  var Footprinter3d = ({ footprint }) => {
4202
4353
  const fpJson = fp3.string(footprint).json();
4203
4354
  switch (fpJson.fn) {
4204
4355
  case "dip":
4205
- return /* @__PURE__ */ jsx61(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 });
4206
4357
  case "axial":
4207
- return /* @__PURE__ */ jsx61(AxialCapacitor, { pitch: fpJson.p });
4358
+ return /* @__PURE__ */ jsx62(AxialCapacitor, { pitch: fpJson.p });
4208
4359
  case "tssop":
4209
- return /* @__PURE__ */ jsx61(
4360
+ return /* @__PURE__ */ jsx62(
4210
4361
  Tssop,
4211
4362
  {
4212
4363
  pinCount: fpJson.num_pins,
@@ -4217,7 +4368,7 @@ var Footprinter3d = ({ footprint }) => {
4217
4368
  }
4218
4369
  );
4219
4370
  case "msop":
4220
- return /* @__PURE__ */ jsx61(
4371
+ return /* @__PURE__ */ jsx62(
4221
4372
  MSOP,
4222
4373
  {
4223
4374
  pinCount: fpJson.num_pins,
@@ -4228,7 +4379,7 @@ var Footprinter3d = ({ footprint }) => {
4228
4379
  }
4229
4380
  );
4230
4381
  case "vssop":
4231
- return /* @__PURE__ */ jsx61(
4382
+ return /* @__PURE__ */ jsx62(
4232
4383
  VSSOP,
4233
4384
  {
4234
4385
  pinCount: fpJson.num_pins,
@@ -4240,7 +4391,7 @@ var Footprinter3d = ({ footprint }) => {
4240
4391
  }
4241
4392
  );
4242
4393
  case "qfp":
4243
- return /* @__PURE__ */ jsx61(
4394
+ return /* @__PURE__ */ jsx62(
4244
4395
  QFP,
4245
4396
  {
4246
4397
  pinCount: fpJson.num_pins,
@@ -4251,12 +4402,12 @@ var Footprinter3d = ({ footprint }) => {
4251
4402
  }
4252
4403
  );
4253
4404
  case "tqfp":
4254
- return /* @__PURE__ */ jsx61(tqfp_default, {});
4405
+ return /* @__PURE__ */ jsx62(tqfp_default, {});
4255
4406
  case "lqfp":
4256
- return /* @__PURE__ */ jsx61(LQFP, { pinCount: fpJson.num_pins });
4407
+ return /* @__PURE__ */ jsx62(LQFP, { pinCount: fpJson.num_pins });
4257
4408
  case "qfn": {
4258
4409
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4259
- return /* @__PURE__ */ jsx61(
4410
+ return /* @__PURE__ */ jsx62(
4260
4411
  qfn_default,
4261
4412
  {
4262
4413
  num_pins: fpJson.num_pins,
@@ -4274,7 +4425,7 @@ var Footprinter3d = ({ footprint }) => {
4274
4425
  }
4275
4426
  case "dfn": {
4276
4427
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4277
- return /* @__PURE__ */ jsx61(
4428
+ return /* @__PURE__ */ jsx62(
4278
4429
  DFN,
4279
4430
  {
4280
4431
  num_pins: fpJson.num_pins,
@@ -4294,7 +4445,7 @@ var Footprinter3d = ({ footprint }) => {
4294
4445
  const rowsMatch = footprint.match(/_rows(\d+)/);
4295
4446
  const rows = rowsMatch && rowsMatch[1] ? parseInt(rowsMatch[1], 10) : 1;
4296
4447
  if (fpJson.male)
4297
- return /* @__PURE__ */ jsx61(
4448
+ return /* @__PURE__ */ jsx62(
4298
4449
  PinRow,
4299
4450
  {
4300
4451
  numberOfPins: fpJson.num_pins,
@@ -4307,7 +4458,7 @@ var Footprinter3d = ({ footprint }) => {
4307
4458
  }
4308
4459
  );
4309
4460
  if (fpJson.female)
4310
- return /* @__PURE__ */ jsx61(
4461
+ return /* @__PURE__ */ jsx62(
4311
4462
  FemaleHeader,
4312
4463
  {
4313
4464
  numberOfPins: fpJson.num_pins,
@@ -4319,47 +4470,47 @@ var Footprinter3d = ({ footprint }) => {
4319
4470
  case "cap": {
4320
4471
  switch (fpJson.imperial) {
4321
4472
  case "0402":
4322
- return /* @__PURE__ */ jsx61(A0402, { color: "#856c4d" });
4473
+ return /* @__PURE__ */ jsx62(A0402, { color: "#856c4d" });
4323
4474
  case "0603":
4324
- return /* @__PURE__ */ jsx61(A0603, { color: "#856c4d" });
4475
+ return /* @__PURE__ */ jsx62(A0603, { color: "#856c4d" });
4325
4476
  case "0805":
4326
- return /* @__PURE__ */ jsx61(A0805, { color: "#856c4d" });
4477
+ return /* @__PURE__ */ jsx62(A0805, { color: "#856c4d" });
4327
4478
  case "0201":
4328
- return /* @__PURE__ */ jsx61(A0201, { color: "#856c4d" });
4479
+ return /* @__PURE__ */ jsx62(A0201, { color: "#856c4d" });
4329
4480
  case "01005":
4330
- return /* @__PURE__ */ jsx61(A01005, { color: "#856c4d" });
4481
+ return /* @__PURE__ */ jsx62(A01005, { color: "#856c4d" });
4331
4482
  case "1206":
4332
- return /* @__PURE__ */ jsx61(A1206, { color: "#856c4d" });
4483
+ return /* @__PURE__ */ jsx62(A1206, { color: "#856c4d" });
4333
4484
  case "1210":
4334
- return /* @__PURE__ */ jsx61(A1210, { color: "#856c4d" });
4485
+ return /* @__PURE__ */ jsx62(A1210, { color: "#856c4d" });
4335
4486
  case "2010":
4336
- return /* @__PURE__ */ jsx61(A2010, { color: "#856c4d" });
4487
+ return /* @__PURE__ */ jsx62(A2010, { color: "#856c4d" });
4337
4488
  case "2512":
4338
- return /* @__PURE__ */ jsx61(A2512, { color: "#856c4d" });
4489
+ return /* @__PURE__ */ jsx62(A2512, { color: "#856c4d" });
4339
4490
  }
4340
4491
  }
4341
4492
  case "sot235":
4342
- return /* @__PURE__ */ jsx61(SOT_235_default, {});
4493
+ return /* @__PURE__ */ jsx62(SOT_235_default, {});
4343
4494
  case "sot457":
4344
- return /* @__PURE__ */ jsx61(SOT457, {});
4495
+ return /* @__PURE__ */ jsx62(SOT457, {});
4345
4496
  case "sot223":
4346
- return /* @__PURE__ */ jsx61(SOT223, {});
4497
+ return /* @__PURE__ */ jsx62(SOT223, {});
4347
4498
  case "sot23w":
4348
- return /* @__PURE__ */ jsx61(SOT23W, {});
4499
+ return /* @__PURE__ */ jsx62(SOT23W, {});
4349
4500
  case "sot323":
4350
- return /* @__PURE__ */ jsx61(SOT323, {});
4501
+ return /* @__PURE__ */ jsx62(SOT323, {});
4351
4502
  case "sod323f":
4352
- return /* @__PURE__ */ jsx61(SOD323F, {});
4503
+ return /* @__PURE__ */ jsx62(SOD323F, {});
4353
4504
  case "sod323fl":
4354
- return /* @__PURE__ */ jsx61(SOD323FL, {});
4505
+ return /* @__PURE__ */ jsx62(SOD323FL, {});
4355
4506
  case "sot363":
4356
- return /* @__PURE__ */ jsx61(SOT_363_default, {});
4507
+ return /* @__PURE__ */ jsx62(SOT_363_default, {});
4357
4508
  case "sot886":
4358
- return /* @__PURE__ */ jsx61(SOT886, {});
4509
+ return /* @__PURE__ */ jsx62(SOT886, {});
4359
4510
  case "sot963":
4360
- return /* @__PURE__ */ jsx61(SOT963, {});
4511
+ return /* @__PURE__ */ jsx62(SOT963, {});
4361
4512
  case "pushbutton":
4362
- return /* @__PURE__ */ jsx61(
4513
+ return /* @__PURE__ */ jsx62(
4363
4514
  PushButton,
4364
4515
  {
4365
4516
  width: fpJson.w,
@@ -4368,7 +4519,7 @@ var Footprinter3d = ({ footprint }) => {
4368
4519
  }
4369
4520
  );
4370
4521
  case "soic":
4371
- return /* @__PURE__ */ jsx61(
4522
+ return /* @__PURE__ */ jsx62(
4372
4523
  SOIC,
4373
4524
  {
4374
4525
  pinCount: fpJson.num_pins,
@@ -4379,39 +4530,39 @@ var Footprinter3d = ({ footprint }) => {
4379
4530
  }
4380
4531
  );
4381
4532
  case "sod523":
4382
- return /* @__PURE__ */ jsx61(SOD523, {});
4533
+ return /* @__PURE__ */ jsx62(SOD523, {});
4383
4534
  case "sod882":
4384
- return /* @__PURE__ */ jsx61(SOD882, {});
4535
+ return /* @__PURE__ */ jsx62(SOD882, {});
4385
4536
  case "sma":
4386
- return /* @__PURE__ */ jsx61(SMA, {});
4537
+ return /* @__PURE__ */ jsx62(SMA, {});
4387
4538
  case "smb":
4388
- return /* @__PURE__ */ jsx61(SMB, {});
4539
+ return /* @__PURE__ */ jsx62(SMB, {});
4389
4540
  case "smc":
4390
- return /* @__PURE__ */ jsx61(SMC, {});
4541
+ return /* @__PURE__ */ jsx62(SMC, {});
4391
4542
  case "smf":
4392
- return /* @__PURE__ */ jsx61(SMF, {});
4543
+ return /* @__PURE__ */ jsx62(SMF, {});
4393
4544
  case "sod123f":
4394
- return /* @__PURE__ */ jsx61(SOD123F, {});
4545
+ return /* @__PURE__ */ jsx62(SOD123F, {});
4395
4546
  case "sod123fl":
4396
- return /* @__PURE__ */ jsx61(SOD123FL, {});
4547
+ return /* @__PURE__ */ jsx62(SOD123FL, {});
4397
4548
  case "sod123w":
4398
- return /* @__PURE__ */ jsx61(SOD123W, {});
4549
+ return /* @__PURE__ */ jsx62(SOD123W, {});
4399
4550
  case "sod128":
4400
- return /* @__PURE__ */ jsx61(SOD128, {});
4551
+ return /* @__PURE__ */ jsx62(SOD128, {});
4401
4552
  case "sod323":
4402
- return /* @__PURE__ */ jsx61(SOD323, {});
4553
+ return /* @__PURE__ */ jsx62(SOD323, {});
4403
4554
  case "sod923":
4404
- return /* @__PURE__ */ jsx61(SOD923, {});
4555
+ return /* @__PURE__ */ jsx62(SOD923, {});
4405
4556
  case "hc49":
4406
- return /* @__PURE__ */ jsx61(HC49, {});
4557
+ return /* @__PURE__ */ jsx62(HC49, {});
4407
4558
  case "micromelf":
4408
- return /* @__PURE__ */ jsx61(MicroMELF, {});
4559
+ return /* @__PURE__ */ jsx62(MicroMELF, {});
4409
4560
  case "minimelf":
4410
- return /* @__PURE__ */ jsx61(MINIMELF, {});
4561
+ return /* @__PURE__ */ jsx62(MINIMELF, {});
4411
4562
  case "melf":
4412
- return /* @__PURE__ */ jsx61(MELF, {});
4563
+ return /* @__PURE__ */ jsx62(MELF, {});
4413
4564
  case "ms012":
4414
- return /* @__PURE__ */ jsx61(
4565
+ return /* @__PURE__ */ jsx62(
4415
4566
  MS012,
4416
4567
  {
4417
4568
  pinCount: fpJson.num_pins,
@@ -4421,7 +4572,7 @@ var Footprinter3d = ({ footprint }) => {
4421
4572
  }
4422
4573
  );
4423
4574
  case "ms013":
4424
- return /* @__PURE__ */ jsx61(
4575
+ return /* @__PURE__ */ jsx62(
4425
4576
  MS013,
4426
4577
  {
4427
4578
  pinCount: fpJson.num_pins,
@@ -4431,39 +4582,56 @@ var Footprinter3d = ({ footprint }) => {
4431
4582
  }
4432
4583
  );
4433
4584
  case "sot723":
4434
- return /* @__PURE__ */ jsx61(SOT723, {});
4585
+ return /* @__PURE__ */ jsx62(SOT723, {});
4435
4586
  case "to220":
4436
- return /* @__PURE__ */ jsx61(TO220, {});
4587
+ return /* @__PURE__ */ jsx62(TO220, {});
4437
4588
  case "to92":
4438
- return /* @__PURE__ */ jsx61(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
+ );
4439
4607
  }
4440
4608
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
4441
4609
  const color = colorMatch ? colorMatch[1] : void 0;
4442
4610
  switch (fpJson.imperial) {
4443
4611
  case "0402":
4444
- return /* @__PURE__ */ jsx61(A0402, { color });
4612
+ return /* @__PURE__ */ jsx62(A0402, { color });
4445
4613
  case "0603":
4446
- return /* @__PURE__ */ jsx61(A0603, { color });
4614
+ return /* @__PURE__ */ jsx62(A0603, { color });
4447
4615
  case "0805":
4448
- return /* @__PURE__ */ jsx61(A0805, { color });
4616
+ return /* @__PURE__ */ jsx62(A0805, { color });
4449
4617
  case "0201":
4450
- return /* @__PURE__ */ jsx61(A0201, { color });
4618
+ return /* @__PURE__ */ jsx62(A0201, { color });
4451
4619
  case "01005":
4452
- return /* @__PURE__ */ jsx61(A01005, { color });
4620
+ return /* @__PURE__ */ jsx62(A01005, { color });
4453
4621
  case "1206":
4454
- return /* @__PURE__ */ jsx61(A1206, { color });
4622
+ return /* @__PURE__ */ jsx62(A1206, { color });
4455
4623
  case "1210":
4456
- return /* @__PURE__ */ jsx61(A1210, { color });
4624
+ return /* @__PURE__ */ jsx62(A1210, { color });
4457
4625
  case "2010":
4458
- return /* @__PURE__ */ jsx61(A2010, { color });
4626
+ return /* @__PURE__ */ jsx62(A2010, { color });
4459
4627
  case "2512":
4460
- return /* @__PURE__ */ jsx61(A2512, { color });
4628
+ return /* @__PURE__ */ jsx62(A2512, { color });
4461
4629
  }
4462
4630
  return null;
4463
4631
  };
4464
4632
 
4465
4633
  // lib/SOT-23-3P.tsx
4466
- import { Fragment as Fragment56, jsx as jsx62, jsxs as jsxs59 } from "react/jsx-runtime";
4634
+ import { Fragment as Fragment57, jsx as jsx63, jsxs as jsxs60 } from "react/jsx-runtime";
4467
4635
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4468
4636
  const bodyWidth = 1.3;
4469
4637
  const bodyLength10 = 2.9;
@@ -4474,8 +4642,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4474
4642
  const padContactLength = 0.4;
4475
4643
  const padThickness = leadThickness / 2;
4476
4644
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
4477
- return /* @__PURE__ */ jsxs59(Fragment56, { children: [
4478
- /* @__PURE__ */ jsx62(
4645
+ return /* @__PURE__ */ jsxs60(Fragment57, { children: [
4646
+ /* @__PURE__ */ jsx63(
4479
4647
  SmdChipLead,
4480
4648
  {
4481
4649
  rotation: Math.PI,
@@ -4492,7 +4660,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4492
4660
  },
4493
4661
  1
4494
4662
  ),
4495
- /* @__PURE__ */ jsx62(
4663
+ /* @__PURE__ */ jsx63(
4496
4664
  SmdChipLead,
4497
4665
  {
4498
4666
  rotation: Math.PI,
@@ -4509,7 +4677,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4509
4677
  },
4510
4678
  2
4511
4679
  ),
4512
- /* @__PURE__ */ jsx62(
4680
+ /* @__PURE__ */ jsx63(
4513
4681
  SmdChipLead,
4514
4682
  {
4515
4683
  position: {
@@ -4525,7 +4693,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4525
4693
  },
4526
4694
  3
4527
4695
  ),
4528
- /* @__PURE__ */ jsx62(
4696
+ /* @__PURE__ */ jsx63(
4529
4697
  ChipBody,
4530
4698
  {
4531
4699
  center: { x: 0, y: 0, z: 0 },
@@ -4538,8 +4706,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4538
4706
  };
4539
4707
 
4540
4708
  // lib/SOT-563.tsx
4541
- import { Cuboid as Cuboid40, Translate as Translate28, Rotate as Rotate12, Colorize as Colorize32 } from "jscad-fiber";
4542
- import { Fragment as Fragment57, jsx as jsx63, jsxs as jsxs60 } 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";
4543
4711
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4544
4712
  const bodyWidth = 1.2;
4545
4713
  const bodyLength10 = 1.6;
@@ -4549,11 +4717,11 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4549
4717
  const leadHeight = 0.13;
4550
4718
  const leadSpacing = 0.5;
4551
4719
  const bodyZOffset = -0.4;
4552
- return /* @__PURE__ */ jsxs60(Fragment57, { children: [
4553
- /* @__PURE__ */ jsx63(Rotate12, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx63(Translate28, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx63(Colorize32, { color: "grey", children: /* @__PURE__ */ jsx63(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] }) }) }) }),
4554
4722
  [-1, 0, 1].flatMap((yOffset, index) => [
4555
4723
  // Left lead
4556
- /* @__PURE__ */ jsx63(
4724
+ /* @__PURE__ */ jsx64(
4557
4725
  Translate28,
4558
4726
  {
4559
4727
  center: [
@@ -4561,16 +4729,16 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4561
4729
  yOffset * leadSpacing,
4562
4730
  leadHeight / 2
4563
4731
  ],
4564
- children: /* @__PURE__ */ jsx63(Cuboid40, { size: [leadLength, leadWidth, leadHeight] })
4732
+ children: /* @__PURE__ */ jsx64(Cuboid41, { size: [leadLength, leadWidth, leadHeight] })
4565
4733
  },
4566
4734
  `left-${index}`
4567
4735
  ),
4568
4736
  // Right lead
4569
- /* @__PURE__ */ jsx63(
4737
+ /* @__PURE__ */ jsx64(
4570
4738
  Translate28,
4571
4739
  {
4572
4740
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
4573
- children: /* @__PURE__ */ jsx63(Cuboid40, { size: [leadLength, leadWidth, leadHeight] })
4741
+ children: /* @__PURE__ */ jsx64(Cuboid41, { size: [leadLength, leadWidth, leadHeight] })
4574
4742
  },
4575
4743
  `right-${index}`
4576
4744
  )
@@ -4579,7 +4747,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4579
4747
  };
4580
4748
 
4581
4749
  // lib/sod-123.tsx
4582
- import { Fragment as Fragment58, jsx as jsx64, jsxs as jsxs61 } from "react/jsx-runtime";
4750
+ import { Fragment as Fragment59, jsx as jsx65, jsxs as jsxs62 } from "react/jsx-runtime";
4583
4751
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4584
4752
  const bodyWidth = 2.9;
4585
4753
  const bodyLength10 = 1.3;
@@ -4590,8 +4758,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4590
4758
  const padContactLength = 0.4;
4591
4759
  const padThickness = leadThickness / 2;
4592
4760
  const bodyDistance = (fullWidth - bodyWidth) / 2;
4593
- return /* @__PURE__ */ jsxs61(Fragment58, { children: [
4594
- /* @__PURE__ */ jsx64(
4761
+ return /* @__PURE__ */ jsxs62(Fragment59, { children: [
4762
+ /* @__PURE__ */ jsx65(
4595
4763
  SmdChipLead,
4596
4764
  {
4597
4765
  position: {
@@ -4607,7 +4775,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4607
4775
  },
4608
4776
  1
4609
4777
  ),
4610
- /* @__PURE__ */ jsx64(
4778
+ /* @__PURE__ */ jsx65(
4611
4779
  SmdChipLead,
4612
4780
  {
4613
4781
  rotation: Math.PI,
@@ -4624,7 +4792,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4624
4792
  },
4625
4793
  2
4626
4794
  ),
4627
- /* @__PURE__ */ jsx64(
4795
+ /* @__PURE__ */ jsx65(
4628
4796
  ChipBody,
4629
4797
  {
4630
4798
  center: { x: 0, y: 0, z: 0 },
@@ -4690,6 +4858,7 @@ export {
4690
4858
  SOT886,
4691
4859
  SOT963,
4692
4860
  SmdChipLead,
4861
+ StampBoard,
4693
4862
  TO220,
4694
4863
  TO92,
4695
4864
  TQFP,