jscad-electronics 0.0.120 → 0.0.122

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
@@ -390,7 +390,7 @@ declare const TO220: () => react_jsx_runtime.JSX.Element;
390
390
 
391
391
  declare const TO92: () => react_jsx_runtime.JSX.Element;
392
392
 
393
- declare const MountedPcbModule: ({ numPins, rows, p, id, od, boardThickness, width, height, pinRowSide, holes, holeInset, pinRowHoleEdgeToEdgeDist, female, nopin, }: {
393
+ declare const MountedPcbModule: ({ numPins, rows, p, id, od, boardThickness, width, height, pinRowSide, holes, holeInset, pinRowHoleEdgeToEdgeDist, female, nopin, screen, }: {
394
394
  numPins?: number;
395
395
  rows?: number;
396
396
  p?: number;
@@ -405,6 +405,26 @@ declare const MountedPcbModule: ({ numPins, rows, p, id, od, boardThickness, wid
405
405
  pinRowHoleEdgeToEdgeDist?: number;
406
406
  female?: boolean;
407
407
  nopin?: boolean;
408
+ screen?: boolean;
408
409
  }) => react_jsx_runtime.JSX.Element;
409
410
 
410
- export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, AxialCapacitor, BGA, ChipBody, type ChipBodyProps, DFN, ExtrudedPads, FemaleHeader, FemaleHeaderRow, FootprintPad, FootprintPlatedHole, Footprinter3d, HC49, type HC49Props, LQFP, MELF, type MELFProps, MINIMELF, type MINIMELFProps, MS012, MS013, MSOP, MicroMELF, type MicroMELFProps, MountedPcbModule, PinHeader, 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 };
411
+ interface ScreenProps {
412
+ width?: number;
413
+ height?: number;
414
+ thickness?: number;
415
+ bezelInset?: number;
416
+ bezelDepth?: number;
417
+ screenColor?: string;
418
+ bezelColor?: string;
419
+ screenWidth?: number;
420
+ screenHeight?: number;
421
+ offset?: {
422
+ x?: number;
423
+ y?: number;
424
+ z?: number;
425
+ };
426
+ }
427
+ declare const Screen: ({ width, height, thickness, bezelInset, bezelDepth, screenColor, bezelColor, screenWidth, screenHeight, offset, }: ScreenProps) => react_jsx_runtime.JSX.Element;
428
+ declare const Display: ({ width, height, thickness, bezelInset, bezelDepth, screenColor, bezelColor, screenWidth, screenHeight, offset, }: ScreenProps) => react_jsx_runtime.JSX.Element;
429
+
430
+ export { A01005, A0201, A0402, A0603, A0805, A1206, A1210, A2010, A2512, AxialCapacitor, BGA, ChipBody, type ChipBodyProps, DFN, Display, ExtrudedPads, FemaleHeader, FemaleHeaderRow, FootprintPad, FootprintPlatedHole, Footprinter3d, HC49, type HC49Props, LQFP, MELF, type MELFProps, MINIMELF, type MINIMELFProps, MS012, MS013, MSOP, MicroMELF, type MicroMELFProps, MountedPcbModule, PinHeader, 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, Screen, type ScreenProps, SmdChipLead, type SmdChipLeadProps, StampBoard, TO220, TO92, TQFP, Tssop, VSSOP };
package/dist/index.js CHANGED
@@ -4378,8 +4378,75 @@ var StampBoard = ({
4378
4378
  };
4379
4379
 
4380
4380
  // lib/MountedPcbModule.tsx
4381
- import { Colorize as Colorize33, Cuboid as Cuboid41, Cylinder as Cylinder11, Subtract as Subtract7 } from "jscad-fiber";
4382
- import { Fragment as Fragment59, jsx as jsx64, jsxs as jsxs60 } from "react/jsx-runtime";
4381
+ import { Colorize as Colorize34, Cuboid as Cuboid42, Cylinder as Cylinder11, Subtract as Subtract8 } from "jscad-fiber";
4382
+
4383
+ // lib/Screen.tsx
4384
+ import { Colorize as Colorize33, Cuboid as Cuboid41, Subtract as Subtract7, Translate as Translate28 } from "jscad-fiber";
4385
+ import { jsx as jsx64, jsxs as jsxs60 } from "react/jsx-runtime";
4386
+ var Screen = ({
4387
+ width: width10 = 30,
4388
+ height: height10 = 22,
4389
+ thickness = 1,
4390
+ bezelInset = 2,
4391
+ bezelDepth = 1,
4392
+ screenColor = "#001414",
4393
+ bezelColor = "#0f1116",
4394
+ screenWidth,
4395
+ screenHeight,
4396
+ offset
4397
+ }) => {
4398
+ const w = width10;
4399
+ const h = height10;
4400
+ const stackHeight = Math.max(thickness, 0.4);
4401
+ const clampedBezelDepth = Math.max(Math.min(bezelDepth, stackHeight), 0.2);
4402
+ const backBlockHeight = Math.max(stackHeight - clampedBezelDepth, 0);
4403
+ const inset = Math.max(bezelInset, 0);
4404
+ const innerWidth = Math.max(screenWidth ?? w - inset * 2, 2);
4405
+ const innerHeight = Math.max(screenHeight ?? h - inset * 2, 2);
4406
+ const screenThickness = Math.min(
4407
+ Math.max(clampedBezelDepth * 0.6, 0.2),
4408
+ clampedBezelDepth
4409
+ );
4410
+ const offsetX = offset?.x ?? 0;
4411
+ const offsetY = offset?.y ?? 0;
4412
+ const offsetZ = offset?.z ?? 0;
4413
+ return /* @__PURE__ */ jsxs60(Translate28, { offset: { x: offsetX, y: offsetY, z: offsetZ }, children: [
4414
+ backBlockHeight > 0 && /* @__PURE__ */ jsx64(Colorize33, { color: bezelColor, children: /* @__PURE__ */ jsx64(
4415
+ Cuboid41,
4416
+ {
4417
+ size: [w, h, backBlockHeight],
4418
+ offset: [0, 0, backBlockHeight / 2]
4419
+ }
4420
+ ) }),
4421
+ /* @__PURE__ */ jsx64(Colorize33, { color: bezelColor, children: /* @__PURE__ */ jsxs60(Subtract7, { children: [
4422
+ /* @__PURE__ */ jsx64(
4423
+ Cuboid41,
4424
+ {
4425
+ size: [w, h, clampedBezelDepth],
4426
+ offset: [0, 0, backBlockHeight + clampedBezelDepth / 2]
4427
+ }
4428
+ ),
4429
+ /* @__PURE__ */ jsx64(
4430
+ Cuboid41,
4431
+ {
4432
+ size: [innerWidth, innerHeight, clampedBezelDepth + 0.02],
4433
+ offset: [0, 0, backBlockHeight + clampedBezelDepth / 2]
4434
+ }
4435
+ )
4436
+ ] }) }),
4437
+ /* @__PURE__ */ jsx64(Colorize33, { color: screenColor, children: /* @__PURE__ */ jsx64(
4438
+ Cuboid41,
4439
+ {
4440
+ size: [innerWidth, innerHeight, screenThickness],
4441
+ offset: [0, 0, backBlockHeight + screenThickness / 2]
4442
+ }
4443
+ ) })
4444
+ ] });
4445
+ };
4446
+ var Display = Screen;
4447
+
4448
+ // lib/MountedPcbModule.tsx
4449
+ import { Fragment as Fragment59, jsx as jsx65, jsxs as jsxs61 } from "react/jsx-runtime";
4383
4450
  var MountedPcbModule = ({
4384
4451
  numPins = 5,
4385
4452
  rows = 1,
@@ -4394,8 +4461,10 @@ var MountedPcbModule = ({
4394
4461
  holeInset = 1,
4395
4462
  pinRowHoleEdgeToEdgeDist = 2,
4396
4463
  female,
4397
- nopin
4464
+ nopin,
4465
+ screen
4398
4466
  }) => {
4467
+ const showScreen = screen ?? false;
4399
4468
  const boardCenterZ = boardThickness / 2;
4400
4469
  const numPinsPerRow = Math.ceil(numPins / rows);
4401
4470
  let calculatedWidth;
@@ -4473,15 +4542,16 @@ var MountedPcbModule = ({
4473
4542
  const longSidePinLength = 6;
4474
4543
  const shortSidePinLength = 3;
4475
4544
  const boardOffsetZ = nopin || female ? 0 : pinBodyHeight;
4476
- const boardBody = /* @__PURE__ */ jsx64(Colorize33, { color: "#008080", children: /* @__PURE__ */ jsxs60(Subtract7, { children: [
4477
- /* @__PURE__ */ jsx64(
4478
- Cuboid41,
4545
+ const boardTopZ = boardOffsetZ + boardThickness;
4546
+ const boardBody = /* @__PURE__ */ jsx65(Colorize34, { color: "#008080", children: /* @__PURE__ */ jsxs61(Subtract8, { children: [
4547
+ /* @__PURE__ */ jsx65(
4548
+ Cuboid42,
4479
4549
  {
4480
4550
  center: [0, 0, boardCenterZ + boardOffsetZ],
4481
4551
  size: [finalWidth, finalHeight, boardThickness]
4482
4552
  }
4483
4553
  ),
4484
- holePositions.map((hole, index) => /* @__PURE__ */ jsx64(
4554
+ holePositions.map((hole, index) => /* @__PURE__ */ jsx65(
4485
4555
  Cylinder11,
4486
4556
  {
4487
4557
  center: [hole.x, hole.y, boardCenterZ + boardOffsetZ],
@@ -4490,7 +4560,7 @@ var MountedPcbModule = ({
4490
4560
  },
4491
4561
  `hole-${index}`
4492
4562
  )),
4493
- pins.map((pin, index) => /* @__PURE__ */ jsx64(
4563
+ pins.map((pin, index) => /* @__PURE__ */ jsx65(
4494
4564
  Cylinder11,
4495
4565
  {
4496
4566
  center: [pin.x, pin.y, boardCenterZ + boardOffsetZ],
@@ -4500,8 +4570,8 @@ var MountedPcbModule = ({
4500
4570
  `pin-hole-${index}`
4501
4571
  ))
4502
4572
  ] }) });
4503
- const platedHoles = pins.map((pin, index) => /* @__PURE__ */ jsx64(Colorize33, { color: "#FFD700", children: /* @__PURE__ */ jsxs60(Subtract7, { children: [
4504
- /* @__PURE__ */ jsx64(
4573
+ const platedHoles = pins.map((pin, index) => /* @__PURE__ */ jsx65(Colorize34, { color: "#FFD700", children: /* @__PURE__ */ jsxs61(Subtract8, { children: [
4574
+ /* @__PURE__ */ jsx65(
4505
4575
  Cylinder11,
4506
4576
  {
4507
4577
  center: [pin.x, pin.y, boardThickness / 2 + boardOffsetZ],
@@ -4509,7 +4579,7 @@ var MountedPcbModule = ({
4509
4579
  height: boardThickness
4510
4580
  }
4511
4581
  ),
4512
- /* @__PURE__ */ jsx64(
4582
+ /* @__PURE__ */ jsx65(
4513
4583
  Cylinder11,
4514
4584
  {
4515
4585
  center: [pin.x, pin.y, boardThickness / 2 + boardOffsetZ],
@@ -4518,7 +4588,7 @@ var MountedPcbModule = ({
4518
4588
  }
4519
4589
  )
4520
4590
  ] }) }, `pin-${index}`));
4521
- const headerPins = pins.map((pin, index) => /* @__PURE__ */ jsx64(
4591
+ const headerPins = pins.map((pin, index) => /* @__PURE__ */ jsx65(
4522
4592
  PinHeader,
4523
4593
  {
4524
4594
  x: pin.x,
@@ -4531,7 +4601,7 @@ var MountedPcbModule = ({
4531
4601
  },
4532
4602
  `pin-3d-${index}`
4533
4603
  ));
4534
- const femaleHeaderRow = pins.map((pin, index) => /* @__PURE__ */ jsx64(
4604
+ const femaleHeaderRow = pins.map((pin, index) => /* @__PURE__ */ jsx65(
4535
4605
  FemaleHeader,
4536
4606
  {
4537
4607
  x: pin.x,
@@ -4540,25 +4610,33 @@ var MountedPcbModule = ({
4540
4610
  },
4541
4611
  `female-pin-3d-${index}`
4542
4612
  ));
4543
- return /* @__PURE__ */ jsxs60(Fragment59, { children: [
4613
+ return /* @__PURE__ */ jsxs61(Fragment59, { children: [
4544
4614
  boardBody,
4545
4615
  platedHoles,
4546
4616
  !female && !nopin && headerPins,
4547
- female && femaleHeaderRow
4617
+ female && femaleHeaderRow,
4618
+ showScreen && /* @__PURE__ */ jsx65(
4619
+ Screen,
4620
+ {
4621
+ width: finalWidth * 0.8,
4622
+ height: finalHeight * 0.6,
4623
+ offset: { x: 0, y: 0, z: boardTopZ }
4624
+ }
4625
+ )
4548
4626
  ] });
4549
4627
  };
4550
4628
 
4551
4629
  // lib/Footprinter3d.tsx
4552
- import { jsx as jsx65 } from "react/jsx-runtime";
4630
+ import { jsx as jsx66 } from "react/jsx-runtime";
4553
4631
  var Footprinter3d = ({ footprint }) => {
4554
4632
  const fpJson = fp3.string(footprint).json();
4555
4633
  switch (fpJson.fn) {
4556
4634
  case "dip":
4557
- return /* @__PURE__ */ jsx65(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
4635
+ return /* @__PURE__ */ jsx66(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
4558
4636
  case "axial":
4559
- return /* @__PURE__ */ jsx65(AxialCapacitor, { pitch: fpJson.p });
4637
+ return /* @__PURE__ */ jsx66(AxialCapacitor, { pitch: fpJson.p });
4560
4638
  case "tssop":
4561
- return /* @__PURE__ */ jsx65(
4639
+ return /* @__PURE__ */ jsx66(
4562
4640
  Tssop,
4563
4641
  {
4564
4642
  pinCount: fpJson.num_pins,
@@ -4569,7 +4647,7 @@ var Footprinter3d = ({ footprint }) => {
4569
4647
  }
4570
4648
  );
4571
4649
  case "msop":
4572
- return /* @__PURE__ */ jsx65(
4650
+ return /* @__PURE__ */ jsx66(
4573
4651
  MSOP,
4574
4652
  {
4575
4653
  pinCount: fpJson.num_pins,
@@ -4580,7 +4658,7 @@ var Footprinter3d = ({ footprint }) => {
4580
4658
  }
4581
4659
  );
4582
4660
  case "vssop":
4583
- return /* @__PURE__ */ jsx65(
4661
+ return /* @__PURE__ */ jsx66(
4584
4662
  VSSOP,
4585
4663
  {
4586
4664
  pinCount: fpJson.num_pins,
@@ -4592,7 +4670,7 @@ var Footprinter3d = ({ footprint }) => {
4592
4670
  }
4593
4671
  );
4594
4672
  case "qfp":
4595
- return /* @__PURE__ */ jsx65(
4673
+ return /* @__PURE__ */ jsx66(
4596
4674
  QFP,
4597
4675
  {
4598
4676
  pinCount: fpJson.num_pins,
@@ -4603,12 +4681,12 @@ var Footprinter3d = ({ footprint }) => {
4603
4681
  }
4604
4682
  );
4605
4683
  case "tqfp":
4606
- return /* @__PURE__ */ jsx65(tqfp_default, {});
4684
+ return /* @__PURE__ */ jsx66(tqfp_default, {});
4607
4685
  case "lqfp":
4608
- return /* @__PURE__ */ jsx65(LQFP, { pinCount: fpJson.num_pins });
4686
+ return /* @__PURE__ */ jsx66(LQFP, { pinCount: fpJson.num_pins });
4609
4687
  case "qfn": {
4610
4688
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4611
- return /* @__PURE__ */ jsx65(
4689
+ return /* @__PURE__ */ jsx66(
4612
4690
  qfn_default,
4613
4691
  {
4614
4692
  num_pins: fpJson.num_pins,
@@ -4626,7 +4704,7 @@ var Footprinter3d = ({ footprint }) => {
4626
4704
  }
4627
4705
  case "dfn": {
4628
4706
  const hasThermalPad = typeof fpJson.thermalpad?.x === "number" && typeof fpJson.thermalpad?.y === "number";
4629
- return /* @__PURE__ */ jsx65(
4707
+ return /* @__PURE__ */ jsx66(
4630
4708
  DFN,
4631
4709
  {
4632
4710
  num_pins: fpJson.num_pins,
@@ -4646,7 +4724,7 @@ var Footprinter3d = ({ footprint }) => {
4646
4724
  const rowsMatch = footprint.match(/_rows(\d+)/);
4647
4725
  const rows = rowsMatch && rowsMatch[1] ? parseInt(rowsMatch[1], 10) : 1;
4648
4726
  if (fpJson.male)
4649
- return /* @__PURE__ */ jsx65(
4727
+ return /* @__PURE__ */ jsx66(
4650
4728
  PinRow,
4651
4729
  {
4652
4730
  numberOfPins: fpJson.num_pins,
@@ -4659,7 +4737,7 @@ var Footprinter3d = ({ footprint }) => {
4659
4737
  }
4660
4738
  );
4661
4739
  if (fpJson.female)
4662
- return /* @__PURE__ */ jsx65(
4740
+ return /* @__PURE__ */ jsx66(
4663
4741
  FemaleHeaderRow,
4664
4742
  {
4665
4743
  numberOfPins: fpJson.num_pins,
@@ -4671,47 +4749,47 @@ var Footprinter3d = ({ footprint }) => {
4671
4749
  case "cap": {
4672
4750
  switch (fpJson.imperial) {
4673
4751
  case "0402":
4674
- return /* @__PURE__ */ jsx65(A0402, { color: "#856c4d" });
4752
+ return /* @__PURE__ */ jsx66(A0402, { color: "#856c4d" });
4675
4753
  case "0603":
4676
- return /* @__PURE__ */ jsx65(A0603, { color: "#856c4d" });
4754
+ return /* @__PURE__ */ jsx66(A0603, { color: "#856c4d" });
4677
4755
  case "0805":
4678
- return /* @__PURE__ */ jsx65(A0805, { color: "#856c4d" });
4756
+ return /* @__PURE__ */ jsx66(A0805, { color: "#856c4d" });
4679
4757
  case "0201":
4680
- return /* @__PURE__ */ jsx65(A0201, { color: "#856c4d" });
4758
+ return /* @__PURE__ */ jsx66(A0201, { color: "#856c4d" });
4681
4759
  case "01005":
4682
- return /* @__PURE__ */ jsx65(A01005, { color: "#856c4d" });
4760
+ return /* @__PURE__ */ jsx66(A01005, { color: "#856c4d" });
4683
4761
  case "1206":
4684
- return /* @__PURE__ */ jsx65(A1206, { color: "#856c4d" });
4762
+ return /* @__PURE__ */ jsx66(A1206, { color: "#856c4d" });
4685
4763
  case "1210":
4686
- return /* @__PURE__ */ jsx65(A1210, { color: "#856c4d" });
4764
+ return /* @__PURE__ */ jsx66(A1210, { color: "#856c4d" });
4687
4765
  case "2010":
4688
- return /* @__PURE__ */ jsx65(A2010, { color: "#856c4d" });
4766
+ return /* @__PURE__ */ jsx66(A2010, { color: "#856c4d" });
4689
4767
  case "2512":
4690
- return /* @__PURE__ */ jsx65(A2512, { color: "#856c4d" });
4768
+ return /* @__PURE__ */ jsx66(A2512, { color: "#856c4d" });
4691
4769
  }
4692
4770
  }
4693
4771
  case "sot235":
4694
- return /* @__PURE__ */ jsx65(SOT_235_default, {});
4772
+ return /* @__PURE__ */ jsx66(SOT_235_default, {});
4695
4773
  case "sot457":
4696
- return /* @__PURE__ */ jsx65(SOT457, {});
4774
+ return /* @__PURE__ */ jsx66(SOT457, {});
4697
4775
  case "sot223":
4698
- return /* @__PURE__ */ jsx65(SOT223, {});
4776
+ return /* @__PURE__ */ jsx66(SOT223, {});
4699
4777
  case "sot23w":
4700
- return /* @__PURE__ */ jsx65(SOT23W, {});
4778
+ return /* @__PURE__ */ jsx66(SOT23W, {});
4701
4779
  case "sot323":
4702
- return /* @__PURE__ */ jsx65(SOT323, {});
4780
+ return /* @__PURE__ */ jsx66(SOT323, {});
4703
4781
  case "sod323f":
4704
- return /* @__PURE__ */ jsx65(SOD323F, {});
4782
+ return /* @__PURE__ */ jsx66(SOD323F, {});
4705
4783
  case "sod323fl":
4706
- return /* @__PURE__ */ jsx65(SOD323FL, {});
4784
+ return /* @__PURE__ */ jsx66(SOD323FL, {});
4707
4785
  case "sot363":
4708
- return /* @__PURE__ */ jsx65(SOT_363_default, {});
4786
+ return /* @__PURE__ */ jsx66(SOT_363_default, {});
4709
4787
  case "sot886":
4710
- return /* @__PURE__ */ jsx65(SOT886, {});
4788
+ return /* @__PURE__ */ jsx66(SOT886, {});
4711
4789
  case "sot963":
4712
- return /* @__PURE__ */ jsx65(SOT963, {});
4790
+ return /* @__PURE__ */ jsx66(SOT963, {});
4713
4791
  case "pushbutton":
4714
- return /* @__PURE__ */ jsx65(
4792
+ return /* @__PURE__ */ jsx66(
4715
4793
  PushButton,
4716
4794
  {
4717
4795
  width: fpJson.w,
@@ -4720,7 +4798,7 @@ var Footprinter3d = ({ footprint }) => {
4720
4798
  }
4721
4799
  );
4722
4800
  case "soic":
4723
- return /* @__PURE__ */ jsx65(
4801
+ return /* @__PURE__ */ jsx66(
4724
4802
  SOIC,
4725
4803
  {
4726
4804
  pinCount: fpJson.num_pins,
@@ -4731,39 +4809,39 @@ var Footprinter3d = ({ footprint }) => {
4731
4809
  }
4732
4810
  );
4733
4811
  case "sod523":
4734
- return /* @__PURE__ */ jsx65(SOD523, {});
4812
+ return /* @__PURE__ */ jsx66(SOD523, {});
4735
4813
  case "sod882":
4736
- return /* @__PURE__ */ jsx65(SOD882, {});
4814
+ return /* @__PURE__ */ jsx66(SOD882, {});
4737
4815
  case "sma":
4738
- return /* @__PURE__ */ jsx65(SMA, {});
4816
+ return /* @__PURE__ */ jsx66(SMA, {});
4739
4817
  case "smb":
4740
- return /* @__PURE__ */ jsx65(SMB, {});
4818
+ return /* @__PURE__ */ jsx66(SMB, {});
4741
4819
  case "smc":
4742
- return /* @__PURE__ */ jsx65(SMC, {});
4820
+ return /* @__PURE__ */ jsx66(SMC, {});
4743
4821
  case "smf":
4744
- return /* @__PURE__ */ jsx65(SMF, {});
4822
+ return /* @__PURE__ */ jsx66(SMF, {});
4745
4823
  case "sod123f":
4746
- return /* @__PURE__ */ jsx65(SOD123F, {});
4824
+ return /* @__PURE__ */ jsx66(SOD123F, {});
4747
4825
  case "sod123fl":
4748
- return /* @__PURE__ */ jsx65(SOD123FL, {});
4826
+ return /* @__PURE__ */ jsx66(SOD123FL, {});
4749
4827
  case "sod123w":
4750
- return /* @__PURE__ */ jsx65(SOD123W, {});
4828
+ return /* @__PURE__ */ jsx66(SOD123W, {});
4751
4829
  case "sod128":
4752
- return /* @__PURE__ */ jsx65(SOD128, {});
4830
+ return /* @__PURE__ */ jsx66(SOD128, {});
4753
4831
  case "sod323":
4754
- return /* @__PURE__ */ jsx65(SOD323, {});
4832
+ return /* @__PURE__ */ jsx66(SOD323, {});
4755
4833
  case "sod923":
4756
- return /* @__PURE__ */ jsx65(SOD923, {});
4834
+ return /* @__PURE__ */ jsx66(SOD923, {});
4757
4835
  case "hc49":
4758
- return /* @__PURE__ */ jsx65(HC49, {});
4836
+ return /* @__PURE__ */ jsx66(HC49, {});
4759
4837
  case "micromelf":
4760
- return /* @__PURE__ */ jsx65(MicroMELF, {});
4838
+ return /* @__PURE__ */ jsx66(MicroMELF, {});
4761
4839
  case "minimelf":
4762
- return /* @__PURE__ */ jsx65(MINIMELF, {});
4840
+ return /* @__PURE__ */ jsx66(MINIMELF, {});
4763
4841
  case "melf":
4764
- return /* @__PURE__ */ jsx65(MELF, {});
4842
+ return /* @__PURE__ */ jsx66(MELF, {});
4765
4843
  case "ms012":
4766
- return /* @__PURE__ */ jsx65(
4844
+ return /* @__PURE__ */ jsx66(
4767
4845
  MS012,
4768
4846
  {
4769
4847
  pinCount: fpJson.num_pins,
@@ -4773,7 +4851,7 @@ var Footprinter3d = ({ footprint }) => {
4773
4851
  }
4774
4852
  );
4775
4853
  case "ms013":
4776
- return /* @__PURE__ */ jsx65(
4854
+ return /* @__PURE__ */ jsx66(
4777
4855
  MS013,
4778
4856
  {
4779
4857
  pinCount: fpJson.num_pins,
@@ -4783,14 +4861,14 @@ var Footprinter3d = ({ footprint }) => {
4783
4861
  }
4784
4862
  );
4785
4863
  case "sot723":
4786
- return /* @__PURE__ */ jsx65(SOT723, {});
4864
+ return /* @__PURE__ */ jsx66(SOT723, {});
4787
4865
  case "to220":
4788
- return /* @__PURE__ */ jsx65(TO220, {});
4866
+ return /* @__PURE__ */ jsx66(TO220, {});
4789
4867
  case "to92":
4790
- return /* @__PURE__ */ jsx65(TO92, {});
4868
+ return /* @__PURE__ */ jsx66(TO92, {});
4791
4869
  case "stampboard":
4792
4870
  case "stampreceiver":
4793
- return /* @__PURE__ */ jsx65(
4871
+ return /* @__PURE__ */ jsx66(
4794
4872
  StampBoard,
4795
4873
  {
4796
4874
  bodyWidth: fpJson.w,
@@ -4814,7 +4892,7 @@ var Footprinter3d = ({ footprint }) => {
4814
4892
  const pinRow = fpJson.pinrow;
4815
4893
  const pinRowHoleEdgeToEdgeDist = fpJson.pinRowHoleEdgeToEdgeDist;
4816
4894
  const holes = Array.isArray(fpJson.holes) ? fpJson.holes : [];
4817
- return /* @__PURE__ */ jsx65(
4895
+ return /* @__PURE__ */ jsx66(
4818
4896
  MountedPcbModule,
4819
4897
  {
4820
4898
  numPins: pinRow,
@@ -4829,7 +4907,8 @@ var Footprinter3d = ({ footprint }) => {
4829
4907
  holeInset,
4830
4908
  pinRowHoleEdgeToEdgeDist,
4831
4909
  nopin: fpJson.nopin,
4832
- female: fpJson.female
4910
+ female: fpJson.female,
4911
+ screen: fpJson.screen
4833
4912
  }
4834
4913
  );
4835
4914
  }
@@ -4838,29 +4917,29 @@ var Footprinter3d = ({ footprint }) => {
4838
4917
  const color = colorMatch ? colorMatch[1] : void 0;
4839
4918
  switch (fpJson.imperial) {
4840
4919
  case "0402":
4841
- return /* @__PURE__ */ jsx65(A0402, { color });
4920
+ return /* @__PURE__ */ jsx66(A0402, { color });
4842
4921
  case "0603":
4843
- return /* @__PURE__ */ jsx65(A0603, { color });
4922
+ return /* @__PURE__ */ jsx66(A0603, { color });
4844
4923
  case "0805":
4845
- return /* @__PURE__ */ jsx65(A0805, { color });
4924
+ return /* @__PURE__ */ jsx66(A0805, { color });
4846
4925
  case "0201":
4847
- return /* @__PURE__ */ jsx65(A0201, { color });
4926
+ return /* @__PURE__ */ jsx66(A0201, { color });
4848
4927
  case "01005":
4849
- return /* @__PURE__ */ jsx65(A01005, { color });
4928
+ return /* @__PURE__ */ jsx66(A01005, { color });
4850
4929
  case "1206":
4851
- return /* @__PURE__ */ jsx65(A1206, { color });
4930
+ return /* @__PURE__ */ jsx66(A1206, { color });
4852
4931
  case "1210":
4853
- return /* @__PURE__ */ jsx65(A1210, { color });
4932
+ return /* @__PURE__ */ jsx66(A1210, { color });
4854
4933
  case "2010":
4855
- return /* @__PURE__ */ jsx65(A2010, { color });
4934
+ return /* @__PURE__ */ jsx66(A2010, { color });
4856
4935
  case "2512":
4857
- return /* @__PURE__ */ jsx65(A2512, { color });
4936
+ return /* @__PURE__ */ jsx66(A2512, { color });
4858
4937
  }
4859
4938
  return null;
4860
4939
  };
4861
4940
 
4862
4941
  // lib/SOT-23-3P.tsx
4863
- import { Fragment as Fragment60, jsx as jsx66, jsxs as jsxs61 } from "react/jsx-runtime";
4942
+ import { Fragment as Fragment60, jsx as jsx67, jsxs as jsxs62 } from "react/jsx-runtime";
4864
4943
  var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4865
4944
  const bodyWidth = 1.3;
4866
4945
  const bodyLength10 = 2.9;
@@ -4871,8 +4950,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4871
4950
  const padContactLength = 0.4;
4872
4951
  const padThickness = leadThickness / 2;
4873
4952
  const extendedBodyDistance = (fullWidth - bodyWidth) / 2 + 0.3;
4874
- return /* @__PURE__ */ jsxs61(Fragment60, { children: [
4875
- /* @__PURE__ */ jsx66(
4953
+ return /* @__PURE__ */ jsxs62(Fragment60, { children: [
4954
+ /* @__PURE__ */ jsx67(
4876
4955
  SmdChipLead,
4877
4956
  {
4878
4957
  rotation: Math.PI,
@@ -4889,7 +4968,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4889
4968
  },
4890
4969
  1
4891
4970
  ),
4892
- /* @__PURE__ */ jsx66(
4971
+ /* @__PURE__ */ jsx67(
4893
4972
  SmdChipLead,
4894
4973
  {
4895
4974
  rotation: Math.PI,
@@ -4906,7 +4985,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4906
4985
  },
4907
4986
  2
4908
4987
  ),
4909
- /* @__PURE__ */ jsx66(
4988
+ /* @__PURE__ */ jsx67(
4910
4989
  SmdChipLead,
4911
4990
  {
4912
4991
  position: {
@@ -4922,7 +5001,7 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4922
5001
  },
4923
5002
  3
4924
5003
  ),
4925
- /* @__PURE__ */ jsx66(
5004
+ /* @__PURE__ */ jsx67(
4926
5005
  ChipBody,
4927
5006
  {
4928
5007
  center: { x: 0, y: 0, z: 0 },
@@ -4935,8 +5014,8 @@ var SOT233P = ({ fullWidth = 2.9, fullLength: fullLength10 = 2.8 }) => {
4935
5014
  };
4936
5015
 
4937
5016
  // lib/SOT-563.tsx
4938
- import { Cuboid as Cuboid42, Translate as Translate28, Rotate as Rotate12, Colorize as Colorize34 } from "jscad-fiber";
4939
- import { Fragment as Fragment61, jsx as jsx67, jsxs as jsxs62 } from "react/jsx-runtime";
5017
+ import { Cuboid as Cuboid43, Translate as Translate29, Rotate as Rotate12, Colorize as Colorize35 } from "jscad-fiber";
5018
+ import { Fragment as Fragment61, jsx as jsx68, jsxs as jsxs63 } from "react/jsx-runtime";
4940
5019
  var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4941
5020
  const bodyWidth = 1.2;
4942
5021
  const bodyLength10 = 1.6;
@@ -4946,28 +5025,28 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4946
5025
  const leadHeight = 0.13;
4947
5026
  const leadSpacing = 0.5;
4948
5027
  const bodyZOffset = -0.4;
4949
- return /* @__PURE__ */ jsxs62(Fragment61, { children: [
4950
- /* @__PURE__ */ jsx67(Rotate12, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx67(Translate28, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx67(Colorize34, { color: "grey", children: /* @__PURE__ */ jsx67(Cuboid42, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
5028
+ return /* @__PURE__ */ jsxs63(Fragment61, { children: [
5029
+ /* @__PURE__ */ jsx68(Rotate12, { rotation: [45 * Math.PI, 0, 0], children: /* @__PURE__ */ jsx68(Translate29, { center: [0, 0, bodyZOffset], children: /* @__PURE__ */ jsx68(Colorize35, { color: "grey", children: /* @__PURE__ */ jsx68(Cuboid43, { size: [bodyWidth, bodyLength10, bodyHeight] }) }) }) }),
4951
5030
  [-1, 0, 1].flatMap((yOffset, index) => [
4952
5031
  // Left lead
4953
- /* @__PURE__ */ jsx67(
4954
- Translate28,
5032
+ /* @__PURE__ */ jsx68(
5033
+ Translate29,
4955
5034
  {
4956
5035
  center: [
4957
5036
  -bodyWidth / 2 - 0.03,
4958
5037
  yOffset * leadSpacing,
4959
5038
  leadHeight / 2
4960
5039
  ],
4961
- children: /* @__PURE__ */ jsx67(Cuboid42, { size: [leadLength, leadWidth, leadHeight] })
5040
+ children: /* @__PURE__ */ jsx68(Cuboid43, { size: [leadLength, leadWidth, leadHeight] })
4962
5041
  },
4963
5042
  `left-${index}`
4964
5043
  ),
4965
5044
  // Right lead
4966
- /* @__PURE__ */ jsx67(
4967
- Translate28,
5045
+ /* @__PURE__ */ jsx68(
5046
+ Translate29,
4968
5047
  {
4969
5048
  center: [bodyWidth / 2 + 0.03, yOffset * leadSpacing, leadHeight / 2],
4970
- children: /* @__PURE__ */ jsx67(Cuboid42, { size: [leadLength, leadWidth, leadHeight] })
5049
+ children: /* @__PURE__ */ jsx68(Cuboid43, { size: [leadLength, leadWidth, leadHeight] })
4971
5050
  },
4972
5051
  `right-${index}`
4973
5052
  )
@@ -4976,7 +5055,7 @@ var SOT563 = ({ fullWidth = 1.94, fullLength: fullLength10 = 1.6 }) => {
4976
5055
  };
4977
5056
 
4978
5057
  // lib/sod-123.tsx
4979
- import { Fragment as Fragment62, jsx as jsx68, jsxs as jsxs63 } from "react/jsx-runtime";
5058
+ import { Fragment as Fragment62, jsx as jsx69, jsxs as jsxs64 } from "react/jsx-runtime";
4980
5059
  var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4981
5060
  const bodyWidth = 2.9;
4982
5061
  const bodyLength10 = 1.3;
@@ -4987,8 +5066,8 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
4987
5066
  const padContactLength = 0.4;
4988
5067
  const padThickness = leadThickness / 2;
4989
5068
  const bodyDistance = (fullWidth - bodyWidth) / 2;
4990
- return /* @__PURE__ */ jsxs63(Fragment62, { children: [
4991
- /* @__PURE__ */ jsx68(
5069
+ return /* @__PURE__ */ jsxs64(Fragment62, { children: [
5070
+ /* @__PURE__ */ jsx69(
4992
5071
  SmdChipLead,
4993
5072
  {
4994
5073
  position: {
@@ -5004,7 +5083,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
5004
5083
  },
5005
5084
  1
5006
5085
  ),
5007
- /* @__PURE__ */ jsx68(
5086
+ /* @__PURE__ */ jsx69(
5008
5087
  SmdChipLead,
5009
5088
  {
5010
5089
  rotation: Math.PI,
@@ -5021,7 +5100,7 @@ var SOD123 = ({ fullWidth = 3.8, fullLength: fullLength10 = 1.6 }) => {
5021
5100
  },
5022
5101
  2
5023
5102
  ),
5024
- /* @__PURE__ */ jsx68(
5103
+ /* @__PURE__ */ jsx69(
5025
5104
  ChipBody,
5026
5105
  {
5027
5106
  center: { x: 0, y: 0, z: 0 },
@@ -5046,6 +5125,7 @@ export {
5046
5125
  BGA,
5047
5126
  ChipBody,
5048
5127
  DFN,
5128
+ Display,
5049
5129
  ExtrudedPads,
5050
5130
  FemaleHeader,
5051
5131
  FemaleHeaderRow,
@@ -5090,6 +5170,7 @@ export {
5090
5170
  SOT723,
5091
5171
  SOT886,
5092
5172
  SOT963,
5173
+ Screen,
5093
5174
  SmdChipLead,
5094
5175
  StampBoard,
5095
5176
  TO220,