jscad-electronics 0.0.56 → 0.0.57

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/vanilla.js CHANGED
@@ -1548,6 +1548,76 @@ var SOD523 = () => {
1548
1548
  ] });
1549
1549
  };
1550
1550
 
1551
+ // lib/SMA.tsx
1552
+ var SMA = () => {
1553
+ const bodyWidth = 4.4;
1554
+ const bodyLength10 = 3.4;
1555
+ const bodyHeight = 2.3;
1556
+ const padWidth = 1.45;
1557
+ const padThickness = 0.12;
1558
+ const leadThickness = 0.2;
1559
+ const leadHeight = 1.14;
1560
+ const taperOffset = 0.4;
1561
+ const straightHeight = bodyHeight * 0.5;
1562
+ const Body = /* @__PURE__ */ jsx(Colorize, { color: "#1a1a1a", children: /* @__PURE__ */ jsxs(Union, { children: [
1563
+ /* @__PURE__ */ jsxs(Hull, { children: [
1564
+ /* @__PURE__ */ jsx(Translate, { z: padThickness + 0.01, children: /* @__PURE__ */ jsx(
1565
+ Cuboid,
1566
+ {
1567
+ size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.03]
1568
+ }
1569
+ ) }),
1570
+ /* @__PURE__ */ jsx(Translate, { z: straightHeight, children: /* @__PURE__ */ jsx(Cuboid, { size: [bodyWidth, bodyLength10, 0.01] }) })
1571
+ ] }),
1572
+ /* @__PURE__ */ jsxs(Hull, { children: [
1573
+ /* @__PURE__ */ jsx(Translate, { z: straightHeight, children: /* @__PURE__ */ jsx(Cuboid, { size: [bodyWidth, bodyLength10, 0.01] }) }),
1574
+ /* @__PURE__ */ jsx(Translate, { z: bodyHeight, children: /* @__PURE__ */ jsx(
1575
+ Cuboid,
1576
+ {
1577
+ size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
1578
+ }
1579
+ ) })
1580
+ ] })
1581
+ ] }) });
1582
+ const Lead = ({ xDir }) => {
1583
+ const verticalGap = 1;
1584
+ const lowerPadGap = 1;
1585
+ const lowerPadX = xDir * (bodyLength10 / 2 - bodyHeight * 0.8 / 2 + lowerPadGap);
1586
+ const verticalLeadX = xDir * (bodyLength10 / 2 - leadThickness / 2 + verticalGap);
1587
+ const bodyEdgeX = xDir * (bodyLength10 / 2 - leadThickness / 2);
1588
+ const bridgeLength = Math.abs(bodyEdgeX - verticalLeadX);
1589
+ const bridgeCenterX = (verticalLeadX + bodyEdgeX) / 2;
1590
+ return /* @__PURE__ */ jsx(Colorize, { color: "#c0c0c0", children: /* @__PURE__ */ jsxs(Union, { children: [
1591
+ /* @__PURE__ */ jsx(
1592
+ Cuboid,
1593
+ {
1594
+ size: [bodyHeight * 0.8, padWidth, leadThickness],
1595
+ center: [lowerPadX, 0, leadThickness / 2]
1596
+ }
1597
+ ),
1598
+ /* @__PURE__ */ jsx(
1599
+ Cuboid,
1600
+ {
1601
+ size: [leadThickness, padWidth, leadHeight],
1602
+ center: [verticalLeadX, 0, leadHeight / 2 + leadThickness]
1603
+ }
1604
+ ),
1605
+ /* @__PURE__ */ jsx(
1606
+ Cuboid,
1607
+ {
1608
+ size: [bridgeLength, padWidth, leadThickness],
1609
+ center: [bridgeCenterX, 0, leadThickness / 2 + leadHeight]
1610
+ }
1611
+ )
1612
+ ] }) });
1613
+ };
1614
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
1615
+ /* @__PURE__ */ jsx(Lead, { xDir: 1 }),
1616
+ /* @__PURE__ */ jsx(Lead, { xDir: -1 }),
1617
+ Body
1618
+ ] });
1619
+ };
1620
+
1551
1621
  // lib/Footprinter3d.tsx
1552
1622
  var Footprinter3d = ({ footprint }) => {
1553
1623
  const fpJson = fp.string(footprint).json();
@@ -1656,6 +1726,8 @@ var Footprinter3d = ({ footprint }) => {
1656
1726
  );
1657
1727
  case "sod523":
1658
1728
  return /* @__PURE__ */ jsx(SOD523, {});
1729
+ case "sma":
1730
+ return /* @__PURE__ */ jsx(SMA, {});
1659
1731
  }
1660
1732
  const colorMatch = footprint.match(/_color\(([^)]+)\)/);
1661
1733
  const color = colorMatch ? colorMatch[1] : void 0;
@@ -1760,7 +1832,7 @@ function renderNode(node, colorCtx, renderCtx) {
1760
1832
  else if (type === Subtract)
1761
1833
  geom = booleans.subtract(geoms[0], geoms.slice(1));
1762
1834
  else geom = hulls.hull(geoms);
1763
- return [{ geom }];
1835
+ return [{ geom, color: colorCtx }];
1764
1836
  }
1765
1837
  if (type === Polygon) {
1766
1838
  const points = props?.points ?? [];