@tscircuit/3d-viewer 0.0.561 → 0.0.562

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.
Files changed (2) hide show
  1. package/dist/index.js +361 -31
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -25547,6 +25547,93 @@ var RoundedCylinder = /* @__PURE__ */ Symbol("RoundedCylinder");
25547
25547
  var Fragment2 = Fragment;
25548
25548
  var jsx2 = (type, props, _key) => h(type, props);
25549
25549
  var jsxs = (type, props, _key) => h(type, props);
25550
+ var FootprintPlatedHole = ({
25551
+ hole,
25552
+ isPin1
25553
+ }) => {
25554
+ const color = isPin1 ? "#00ff00" : "#b87333";
25555
+ if (hole.shape === "circle") {
25556
+ return /* @__PURE__ */ jsx2(Colorize, { color, children: /* @__PURE__ */ jsx2(Translate, { offset: [hole.x, hole.y, -5e-3], children: /* @__PURE__ */ jsxs(Subtract, { children: [
25557
+ /* @__PURE__ */ jsx2(Cylinder, { radius: hole.outer_diameter / 2, height: 0.01 }),
25558
+ /* @__PURE__ */ jsx2(Cylinder, { radius: hole.hole_diameter / 2, height: 0.01 })
25559
+ ] }) }) });
25560
+ }
25561
+ if (hole.shape === "circular_hole_with_rect_pad") {
25562
+ return /* @__PURE__ */ jsx2(Colorize, { color, children: /* @__PURE__ */ jsx2(Translate, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs(Subtract, { children: [
25563
+ /* @__PURE__ */ jsx2(
25564
+ Cuboid,
25565
+ {
25566
+ size: [hole.rect_pad_width, hole.rect_pad_height, 0.01],
25567
+ center: [0, 0, 0]
25568
+ }
25569
+ ),
25570
+ /* @__PURE__ */ jsx2(Cylinder, { radius: hole.hole_diameter / 2, height: 0.01 })
25571
+ ] }) }) });
25572
+ }
25573
+ if (hole.shape === "pill") {
25574
+ const width10 = hole.outer_width;
25575
+ const height10 = hole.outer_height;
25576
+ const radius = Math.min(width10, height10) / 2;
25577
+ const isHorizontal = width10 > height10;
25578
+ const holeWidth = hole.hole_width ?? 0.8;
25579
+ const holeHeight = hole.hole_height ?? 0.8;
25580
+ return /* @__PURE__ */ jsx2(Colorize, { color, children: /* @__PURE__ */ jsx2(Translate, { offset: [hole.x, hole.y, 0], children: /* @__PURE__ */ jsxs(Subtract, { children: [
25581
+ /* @__PURE__ */ jsxs(Hull, { children: [
25582
+ /* @__PURE__ */ jsx2(
25583
+ Cylinder,
25584
+ {
25585
+ radius,
25586
+ height: 0.01,
25587
+ center: [
25588
+ isHorizontal ? -(width10 / 2 - radius) : 0,
25589
+ isHorizontal ? 0 : -(height10 / 2 - radius),
25590
+ 0
25591
+ ]
25592
+ }
25593
+ ),
25594
+ /* @__PURE__ */ jsx2(
25595
+ Cylinder,
25596
+ {
25597
+ radius,
25598
+ height: 0.01,
25599
+ center: [
25600
+ isHorizontal ? width10 / 2 - radius : 0,
25601
+ isHorizontal ? 0 : height10 / 2 - radius,
25602
+ 0
25603
+ ]
25604
+ }
25605
+ )
25606
+ ] }),
25607
+ holeWidth === holeHeight ? /* @__PURE__ */ jsx2(Cylinder, { radius: holeWidth / 2, height: 0.01 }) : /* @__PURE__ */ jsxs(Hull, { children: [
25608
+ /* @__PURE__ */ jsx2(
25609
+ Cylinder,
25610
+ {
25611
+ radius: Math.min(holeWidth, holeHeight) / 2,
25612
+ height: 0.01,
25613
+ center: [
25614
+ holeWidth > holeHeight ? -(holeWidth / 2 - holeHeight / 2) : 0,
25615
+ holeWidth > holeHeight ? 0 : -(holeHeight / 2 - holeWidth / 2),
25616
+ 0
25617
+ ]
25618
+ }
25619
+ ),
25620
+ /* @__PURE__ */ jsx2(
25621
+ Cylinder,
25622
+ {
25623
+ radius: Math.min(holeWidth, holeHeight) / 2,
25624
+ height: 0.01,
25625
+ center: [
25626
+ holeWidth > holeHeight ? holeWidth / 2 - holeHeight / 2 : 0,
25627
+ holeWidth > holeHeight ? 0 : holeHeight / 2 - holeWidth / 2,
25628
+ 0
25629
+ ]
25630
+ }
25631
+ )
25632
+ ] })
25633
+ ] }) }) });
25634
+ }
25635
+ throw new Error("Shape not supported: " + hole.shape);
25636
+ };
25550
25637
  var ChipBody = ({
25551
25638
  center,
25552
25639
  width: width10,
@@ -25803,50 +25890,72 @@ var Tssop = ({
25803
25890
  bodyWidth
25804
25891
  }) => {
25805
25892
  const sidePinCount = Math.ceil(pinCount / 2);
25806
- const fullLength10 = pitch * pinCount / 2 + leadWidth / 2;
25893
+ const isSmallTssop = sidePinCount <= 4;
25807
25894
  const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
25808
- const leadThickness = 0.25;
25895
+ const bodyLength10 = pitch * Math.max(sidePinCount - 1, 0) + (isSmallTssop ? 1.5 : 1.15);
25896
+ const bodyVisualWidth = bodyWidth - (isSmallTssop ? 0.66 : 0.58);
25897
+ const leadThickness = 0.15;
25898
+ const leadHeight = 0.8;
25899
+ const bodyHeight = 1.22;
25900
+ const bodyStandoff = 0.24;
25901
+ const padContactLength = leadLength * 0.5;
25902
+ const leadReach = padContactLength + Math.max(0.22, Math.min(0.4, leadLength * 0.65));
25903
+ const leadStartOffset = bodyWidth / 2 + leadLength / 2;
25904
+ const curveLength = leadReach * 0.1;
25905
+ const notchInset = Math.min(Math.min(bodyVisualWidth, bodyLength10) * 0.18, 1);
25906
+ const notchRadius = Math.min(
25907
+ Math.min(bodyVisualWidth, bodyLength10) * 0.12,
25908
+ 0.45
25909
+ );
25809
25910
  return /* @__PURE__ */ jsxs(Fragment2, { children: [
25810
25911
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx2(
25811
25912
  SmdChipLead,
25812
25913
  {
25813
25914
  position: {
25814
- x: -bodyWidth / 2 - leadLength,
25915
+ x: -leadStartOffset,
25815
25916
  y: i * pitch - pinOffsetToCenter,
25816
25917
  z: leadThickness / 2
25817
25918
  },
25818
25919
  width: leadWidth,
25819
25920
  thickness: leadThickness,
25820
- padContactLength: leadLength,
25821
- bodyDistance: leadLength + 1,
25822
- height: 0.8
25921
+ padContactLength,
25922
+ bodyDistance: leadReach,
25923
+ curveLength,
25924
+ height: leadHeight
25823
25925
  },
25824
- i
25926
+ `left-${i}`
25825
25927
  )),
25826
25928
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx2(
25827
25929
  SmdChipLead,
25828
25930
  {
25829
25931
  rotation: Math.PI,
25830
25932
  position: {
25831
- x: bodyWidth / 2 + leadLength,
25933
+ x: leadStartOffset,
25832
25934
  y: i * pitch - pinOffsetToCenter,
25833
25935
  z: leadThickness / 2
25834
25936
  },
25835
25937
  width: leadWidth,
25836
25938
  thickness: leadThickness,
25837
- padContactLength: leadLength,
25838
- bodyDistance: leadLength + 1,
25839
- height: 0.8
25939
+ padContactLength,
25940
+ bodyDistance: leadReach,
25941
+ curveLength,
25942
+ height: leadHeight
25840
25943
  },
25841
- i
25944
+ `right-${i}`
25842
25945
  )),
25843
25946
  /* @__PURE__ */ jsx2(
25844
25947
  ChipBody,
25845
25948
  {
25846
- center: { x: 0, y: 0, z: leadThickness / 2 },
25847
- width: bodyWidth - leadWidth - 1,
25848
- length: fullLength10,
25849
- height: 1.5
25949
+ center: { x: 0, y: 0, z: 0 },
25950
+ width: bodyVisualWidth,
25951
+ length: bodyLength10,
25952
+ height: bodyHeight,
25953
+ notchPosition: {
25954
+ x: -(bodyVisualWidth / 2 - notchInset - 0.2),
25955
+ y: bodyLength10 / 2 - notchInset - 0.2,
25956
+ z: bodyHeight
25957
+ },
25958
+ notchRadius
25850
25959
  }
25851
25960
  )
25852
25961
  ] });
@@ -26020,26 +26129,31 @@ var QFP = ({
26020
26129
  if (!padContactLength) padContactLength = getPadContactLength(pinCount);
26021
26130
  if (!leadWidth) leadWidth = getLeadWidth(pinCount, bodyWidth);
26022
26131
  if (!bodyWidth) bodyWidth = pitch * (sidePinCount + 4);
26132
+ const footprintPadLength = padContactLength;
26023
26133
  const bodyLength10 = bodyWidth;
26024
26134
  const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
26025
- const fullLength10 = bodyLength10 + 2 * padContactLength;
26135
+ const leadReach = footprintPadLength * 0.5;
26136
+ const fullLength10 = bodyLength10 + 2 * leadReach;
26026
26137
  const fullWidth = fullLength10;
26027
26138
  const leadHeight = 0.8;
26028
26139
  const leadThickness = 0.15;
26029
- const bodyDistance = (fullWidth - bodyWidth) / 2 + 0.5;
26140
+ const bodyDistance = leadReach;
26141
+ const fullPadContactLength = leadReach * 0.5;
26142
+ const curveLength = leadReach * 0.18;
26030
26143
  return /* @__PURE__ */ jsxs(Fragment2, { children: [
26031
26144
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx2(
26032
26145
  SmdChipLead,
26033
26146
  {
26034
26147
  position: {
26035
- x: -fullWidth / 2 - 0.4,
26148
+ x: -fullWidth / 2,
26036
26149
  y: i * pitch - pinOffsetToCenter,
26037
26150
  z: leadThickness / 2
26038
26151
  },
26039
26152
  width: leadWidth,
26040
26153
  thickness: leadThickness,
26041
- padContactLength,
26154
+ padContactLength: fullPadContactLength,
26042
26155
  bodyDistance,
26156
+ curveLength,
26043
26157
  height: leadHeight
26044
26158
  },
26045
26159
  `left-${i}`
@@ -26049,14 +26163,15 @@ var QFP = ({
26049
26163
  {
26050
26164
  rotation: Math.PI,
26051
26165
  position: {
26052
- x: fullWidth / 2 + 0.4,
26166
+ x: fullWidth / 2,
26053
26167
  y: i * pitch - pinOffsetToCenter,
26054
26168
  z: leadThickness / 2
26055
26169
  },
26056
26170
  width: leadWidth,
26057
26171
  thickness: leadThickness,
26058
- padContactLength,
26172
+ padContactLength: fullPadContactLength,
26059
26173
  bodyDistance,
26174
+ curveLength,
26060
26175
  height: leadHeight
26061
26176
  },
26062
26177
  `right-${i}`
@@ -26067,13 +26182,14 @@ var QFP = ({
26067
26182
  rotation: Math.PI / 2,
26068
26183
  position: {
26069
26184
  x: i * pitch - pinOffsetToCenter,
26070
- y: -fullLength10 / 2 - 0.4,
26185
+ y: -fullLength10 / 2,
26071
26186
  z: leadThickness / 2
26072
26187
  },
26073
26188
  width: leadWidth,
26074
26189
  thickness: leadThickness,
26075
- padContactLength,
26190
+ padContactLength: fullPadContactLength,
26076
26191
  bodyDistance,
26192
+ curveLength,
26077
26193
  height: leadHeight
26078
26194
  },
26079
26195
  `bottom-${i}`
@@ -26084,13 +26200,14 @@ var QFP = ({
26084
26200
  rotation: -Math.PI / 2,
26085
26201
  position: {
26086
26202
  x: i * pitch - pinOffsetToCenter,
26087
- y: fullLength10 / 2 + 0.4,
26203
+ y: fullLength10 / 2,
26088
26204
  z: leadThickness / 2
26089
26205
  },
26090
26206
  width: leadWidth,
26091
26207
  thickness: leadThickness,
26092
- padContactLength,
26208
+ padContactLength: fullPadContactLength,
26093
26209
  bodyDistance,
26210
+ curveLength,
26094
26211
  height: leadHeight
26095
26212
  },
26096
26213
  `top-${i}`
@@ -26261,7 +26378,7 @@ var PinRow = ({
26261
26378
  const row = Math.floor(i / pinsPerRow);
26262
26379
  const col = i % pinsPerRow;
26263
26380
  const x = xoff + col * pitch;
26264
- const y = -row * rowSpacing;
26381
+ const y = ((rows - 1) / 2 - row) * rowSpacing;
26265
26382
  return /* @__PURE__ */ jsx2(
26266
26383
  PinHeader,
26267
26384
  {
@@ -29474,7 +29591,7 @@ var StampBoard = ({
29474
29591
  }
29475
29592
  }
29476
29593
  }
29477
- const boardBody = /* @__PURE__ */ jsx2(Colorize, { color: "#008080", children: /* @__PURE__ */ jsxs(Subtract, { children: [
29594
+ const boardBody = /* @__PURE__ */ jsx2(Colorize, { color: "#051a0a", children: /* @__PURE__ */ jsxs(Subtract, { children: [
29478
29595
  /* @__PURE__ */ jsx2(
29479
29596
  Cuboid,
29480
29597
  {
@@ -29770,8 +29887,214 @@ var MountedPcbModule = ({
29770
29887
  )
29771
29888
  ] });
29772
29889
  };
29890
+ var SOD723 = () => {
29891
+ const fullWidth = 1.4;
29892
+ const bodyLength10 = 0.6;
29893
+ const bodyHeight = 0.5;
29894
+ const padWidth = 0.28;
29895
+ const padLength = 0.5;
29896
+ const padThickness = 0.12;
29897
+ const bodyWidth = fullWidth - padLength;
29898
+ const leftPadCenterX = -bodyWidth / 2 + padLength / 2 - 0.15;
29899
+ const rightPadCenterX = bodyWidth / 2 - padLength / 2 + 0.15;
29900
+ const taperOffset = 0.2;
29901
+ const straightHeight = bodyHeight * 0.24;
29902
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
29903
+ /* @__PURE__ */ jsx2(
29904
+ Cuboid,
29905
+ {
29906
+ color: "#ccc",
29907
+ size: [padLength, padWidth, padThickness],
29908
+ center: [leftPadCenterX, 0, padThickness / 2]
29909
+ }
29910
+ ),
29911
+ /* @__PURE__ */ jsx2(
29912
+ Cuboid,
29913
+ {
29914
+ color: "#ccc",
29915
+ size: [padLength, padWidth, padThickness],
29916
+ center: [rightPadCenterX, 0, padThickness / 2]
29917
+ }
29918
+ ),
29919
+ /* @__PURE__ */ jsx2(Colorize, { color: "#222", children: /* @__PURE__ */ jsxs(Union, { children: [
29920
+ /* @__PURE__ */ jsx2(Translate, { z: straightHeight / 2, children: /* @__PURE__ */ jsx2(Cuboid, { size: [bodyWidth, bodyLength10, straightHeight] }) }),
29921
+ /* @__PURE__ */ jsxs(Hull, { children: [
29922
+ /* @__PURE__ */ jsx2(Translate, { z: straightHeight, children: /* @__PURE__ */ jsx2(Cuboid, { size: [bodyWidth, bodyLength10, 0.01] }) }),
29923
+ /* @__PURE__ */ jsx2(Translate, { z: bodyHeight, children: /* @__PURE__ */ jsx2(
29924
+ Cuboid,
29925
+ {
29926
+ size: [bodyWidth - taperOffset, bodyLength10 - taperOffset, 0.01]
29927
+ }
29928
+ ) })
29929
+ ] })
29930
+ ] }) }),
29931
+ /* @__PURE__ */ jsx2(
29932
+ Cuboid,
29933
+ {
29934
+ color: "#777",
29935
+ size: [fullWidth / 6, bodyLength10 - taperOffset, 0.02],
29936
+ center: [-bodyWidth / 4, 0, bodyHeight]
29937
+ }
29938
+ )
29939
+ ] });
29940
+ };
29941
+ var SOD723_default = SOD723;
29942
+ var JSTZH1_5mm = ({
29943
+ numPins = 7,
29944
+ showPins = true,
29945
+ showFootprint = true,
29946
+ bodyColor = "#f5f5f5",
29947
+ pinColor = "#635959"
29948
+ }) => {
29949
+ const pitch = 1.5;
29950
+ const bodyHeight = 6;
29951
+ const bodyDepth = 3.5;
29952
+ const wallThickness = 0.5;
29953
+ const hollowHeight = bodyHeight * 0.6;
29954
+ const pinLength = 6;
29955
+ const bodyWidth = (numPins - 1) * pitch + 4;
29956
+ const startX = -((numPins - 1) * pitch) / 2;
29957
+ return /* @__PURE__ */ jsxs(Fragment2, { children: [
29958
+ /* @__PURE__ */ jsx2(Translate, { offset: [0, 0, bodyHeight], children: /* @__PURE__ */ jsx2(Rotate, { angles: [Math.PI, 0, 0], children: /* @__PURE__ */ jsx2(Colorize, { color: bodyColor, children: /* @__PURE__ */ jsxs(Subtract, { children: [
29959
+ /* @__PURE__ */ jsx2(
29960
+ Cuboid,
29961
+ {
29962
+ size: [bodyWidth, bodyDepth, bodyHeight],
29963
+ center: [0, 0, bodyHeight / 2]
29964
+ }
29965
+ ),
29966
+ /* @__PURE__ */ jsx2(
29967
+ Cuboid,
29968
+ {
29969
+ size: [
29970
+ bodyWidth - wallThickness * 2,
29971
+ bodyDepth - wallThickness * 2,
29972
+ hollowHeight
29973
+ ],
29974
+ center: [0, 0, hollowHeight / 2]
29975
+ }
29976
+ ),
29977
+ /* @__PURE__ */ jsx2(
29978
+ Cuboid,
29979
+ {
29980
+ size: [bodyWidth, bodyDepth / 3, hollowHeight],
29981
+ center: [0, 0, hollowHeight / 6]
29982
+ }
29983
+ ),
29984
+ /* @__PURE__ */ jsx2(
29985
+ Cuboid,
29986
+ {
29987
+ size: [
29988
+ bodyWidth - wallThickness * 2,
29989
+ wallThickness / 2,
29990
+ hollowHeight
29991
+ ],
29992
+ center: [
29993
+ 0,
29994
+ bodyDepth / 2 - wallThickness / 4,
29995
+ hollowHeight / 2
29996
+ ]
29997
+ }
29998
+ ),
29999
+ /* @__PURE__ */ jsx2(
30000
+ Cuboid,
30001
+ {
30002
+ size: [
30003
+ bodyWidth - wallThickness * 2,
30004
+ wallThickness / 2,
30005
+ hollowHeight
30006
+ ],
30007
+ center: [
30008
+ 0,
30009
+ -bodyDepth / 2 + wallThickness / 4,
30010
+ hollowHeight / 2
30011
+ ]
30012
+ }
30013
+ ),
30014
+ /* @__PURE__ */ jsx2(
30015
+ Cuboid,
30016
+ {
30017
+ size: [1, wallThickness + 2, 1],
30018
+ center: [-bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
30019
+ }
30020
+ ),
30021
+ /* @__PURE__ */ jsx2(
30022
+ Cuboid,
30023
+ {
30024
+ size: [1, wallThickness + 3, 1],
30025
+ center: [bodyWidth / 4, bodyDepth / 2, bodyHeight / 2]
30026
+ }
30027
+ ),
30028
+ /* @__PURE__ */ jsx2(
30029
+ Cuboid,
30030
+ {
30031
+ size: [1, wallThickness + 2, 1],
30032
+ center: [-bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
30033
+ }
30034
+ ),
30035
+ /* @__PURE__ */ jsx2(
30036
+ Cuboid,
30037
+ {
30038
+ size: [1, wallThickness + 3, 1],
30039
+ center: [bodyWidth / 4, -bodyDepth / 2, bodyHeight / 2]
30040
+ }
30041
+ )
30042
+ ] }) }) }) }),
30043
+ showPins && Array.from({ length: numPins }).map((_, i) => /* @__PURE__ */ jsx2(Colorize, { color: pinColor, children: /* @__PURE__ */ jsx2(
30044
+ Cylinder,
30045
+ {
30046
+ height: pinLength,
30047
+ radius: 0.35,
30048
+ center: [startX + i * pitch, 0, 2.5]
30049
+ }
30050
+ ) }, i)),
30051
+ showFootprint && Array.from({ length: numPins }).map((_, i) => {
30052
+ const isPin1 = i === 0;
30053
+ const hole = isPin1 ? {
30054
+ type: "pcb_plated_hole",
30055
+ pcb_plated_hole_id: `jstzh_${i}`,
30056
+ shape: "circular_hole_with_rect_pad",
30057
+ x: startX + i * pitch,
30058
+ y: 0,
30059
+ hole_diameter: 0.73,
30060
+ rect_pad_width: 1.03,
30061
+ rect_pad_height: 1.73,
30062
+ hole_shape: "circle",
30063
+ pad_shape: "rect",
30064
+ layers: ["top", "bottom"],
30065
+ port_hints: [`${i + 1}`]
30066
+ } : {
30067
+ type: "pcb_plated_hole",
30068
+ pcb_plated_hole_id: `jstzh_${i}`,
30069
+ shape: "pill",
30070
+ x: startX + i * pitch,
30071
+ y: 0,
30072
+ hole_height: 0.73,
30073
+ hole_width: 0.73,
30074
+ outer_height: 1.73,
30075
+ outer_width: 1.03,
30076
+ layers: ["top", "bottom"],
30077
+ port_hints: [`${i + 1}`]
30078
+ };
30079
+ return /* @__PURE__ */ jsx2(
30080
+ FootprintPlatedHole,
30081
+ {
30082
+ hole,
30083
+ isPin1
30084
+ },
30085
+ `footprint_${i}`
30086
+ );
30087
+ })
30088
+ ] });
30089
+ };
29773
30090
  var Footprinter3d = ({ footprint }) => {
29774
- const fpJson = fp.string(footprint).json();
30091
+ let normalizedFootprint = footprint;
30092
+ if (footprint.startsWith("jstzh1_5mm")) {
30093
+ const pinMatch = footprint.match(/jstzh1_5mm(\d+)?/);
30094
+ const numPins = pinMatch && pinMatch[1] ? pinMatch[1] : "7";
30095
+ normalizedFootprint = `zh${numPins}`;
30096
+ }
30097
+ const fpJson = fp.string(normalizedFootprint).json();
29775
30098
  switch (fpJson.fn) {
29776
30099
  case "dip":
29777
30100
  return /* @__PURE__ */ jsx2(Dip, { numPins: fpJson.num_pins, pitch: fpJson.p, bodyWidth: fpJson.w });
@@ -29939,6 +30262,11 @@ var Footprinter3d = ({ footprint }) => {
29939
30262
  innerDiameter: fpJson.id
29940
30263
  }
29941
30264
  );
30265
+ case "jst":
30266
+ if (fpJson.zh) {
30267
+ return /* @__PURE__ */ jsx2(JSTZH1_5mm, { numPins: fpJson.num_pins });
30268
+ }
30269
+ break;
29942
30270
  case "soic":
29943
30271
  return /* @__PURE__ */ jsx2(
29944
30272
  SOIC,
@@ -29952,6 +30280,8 @@ var Footprinter3d = ({ footprint }) => {
29952
30280
  );
29953
30281
  case "sod523":
29954
30282
  return /* @__PURE__ */ jsx2(SOD523, {});
30283
+ case "sod723":
30284
+ return /* @__PURE__ */ jsx2(SOD723_default, {});
29955
30285
  case "sod882":
29956
30286
  return /* @__PURE__ */ jsx2(SOD882, {});
29957
30287
  case "sma":
@@ -31991,7 +32321,7 @@ import * as THREE20 from "three";
31991
32321
  // package.json
31992
32322
  var package_default = {
31993
32323
  name: "@tscircuit/3d-viewer",
31994
- version: "0.0.560",
32324
+ version: "0.0.561",
31995
32325
  main: "./dist/index.js",
31996
32326
  module: "./dist/index.js",
31997
32327
  type: "module",
@@ -32052,7 +32382,7 @@ var package_default = {
32052
32382
  "bun-match-svg": "^0.0.9",
32053
32383
  "bun-types": "1.2.1",
32054
32384
  debug: "^4.4.0",
32055
- "jscad-electronics": "^0.0.123",
32385
+ "jscad-electronics": "^0.0.132",
32056
32386
  "jscad-planner": "^0.0.13",
32057
32387
  jsdom: "^26.0.0",
32058
32388
  "manifold-3d": "^3.2.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/3d-viewer",
3
- "version": "0.0.561",
3
+ "version": "0.0.562",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",
@@ -61,7 +61,7 @@
61
61
  "bun-match-svg": "^0.0.9",
62
62
  "bun-types": "1.2.1",
63
63
  "debug": "^4.4.0",
64
- "jscad-electronics": "^0.0.123",
64
+ "jscad-electronics": "^0.0.132",
65
65
  "jscad-planner": "^0.0.13",
66
66
  "jsdom": "^26.0.0",
67
67
  "manifold-3d": "^3.2.1",