@tscircuit/3d-viewer 0.0.631 → 0.0.633
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 +1 -0
- package/dist/index.js +39 -13
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -19385,7 +19385,8 @@ var defaultVisibility = {
|
|
|
19385
19385
|
pcbNotes: false,
|
|
19386
19386
|
backgroundStart: true,
|
|
19387
19387
|
backgroundEnd: true,
|
|
19388
|
-
enclosure: "translucent"
|
|
19388
|
+
enclosure: "translucent",
|
|
19389
|
+
assembly: true
|
|
19389
19390
|
};
|
|
19390
19391
|
var LayerVisibilityContext = createContext4(void 0);
|
|
19391
19392
|
var LayerVisibilityProvider = ({ children }) => {
|
|
@@ -21226,6 +21227,7 @@ var AnyCadComponent = ({
|
|
|
21226
21227
|
}
|
|
21227
21228
|
);
|
|
21228
21229
|
}
|
|
21230
|
+
if (!cad_component.pcb_component_id && !visibility.assembly) return null;
|
|
21229
21231
|
if (isEnclosure) {
|
|
21230
21232
|
if (visibility.enclosure === "hidden") return null;
|
|
21231
21233
|
} else if (cad_component.show_as_translucent_model) {
|
|
@@ -22049,7 +22051,7 @@ import * as THREE30 from "three";
|
|
|
22049
22051
|
// package.json
|
|
22050
22052
|
var package_default = {
|
|
22051
22053
|
name: "@tscircuit/3d-viewer",
|
|
22052
|
-
version: "0.0.
|
|
22054
|
+
version: "0.0.632",
|
|
22053
22055
|
repository: {
|
|
22054
22056
|
type: "git",
|
|
22055
22057
|
url: "https://github.com/tscircuit/3d-viewer"
|
|
@@ -22090,7 +22092,7 @@ var package_default = {
|
|
|
22090
22092
|
"@jscad/stl-serializer": "^2.1.20",
|
|
22091
22093
|
"@tscircuit/cableprinter": "^0.0.6",
|
|
22092
22094
|
"circuit-json": "^0.0.525",
|
|
22093
|
-
"circuit-to-canvas": "^0.0.
|
|
22095
|
+
"circuit-to-canvas": "^0.0.139",
|
|
22094
22096
|
"jscad-electronics": "^0.0.213",
|
|
22095
22097
|
"react-hot-toast": "^2.6.0",
|
|
22096
22098
|
three: "^0.165.0",
|
|
@@ -25931,7 +25933,6 @@ var toRgb = (colorArr) => {
|
|
|
25931
25933
|
b * 255
|
|
25932
25934
|
)})`;
|
|
25933
25935
|
};
|
|
25934
|
-
var COPPER_POUR_OPACITY_COMPENSATION_PASSES = 8;
|
|
25935
25936
|
function createCopperPourTextureForLayer({
|
|
25936
25937
|
layer,
|
|
25937
25938
|
circuitJson,
|
|
@@ -26025,18 +26026,11 @@ function createCopperPourTextureForLayer({
|
|
|
26025
26026
|
});
|
|
26026
26027
|
drawer.drawElements(elementsToDraw, {
|
|
26027
26028
|
layers: [pcbRenderLayer],
|
|
26029
|
+
copperPourOpacity: 1,
|
|
26028
26030
|
drawSoldermask: false,
|
|
26029
26031
|
drawSoldermaskTop: false,
|
|
26030
26032
|
drawSoldermaskBottom: false
|
|
26031
26033
|
});
|
|
26032
|
-
for (let i = 1; i < COPPER_POUR_OPACITY_COMPENSATION_PASSES; i += 1) {
|
|
26033
|
-
drawer.drawElements(elementsToDraw, {
|
|
26034
|
-
layers: [pcbRenderLayer],
|
|
26035
|
-
drawSoldermask: false,
|
|
26036
|
-
drawSoldermaskTop: false,
|
|
26037
|
-
drawSoldermaskBottom: false
|
|
26038
|
-
});
|
|
26039
|
-
}
|
|
26040
26034
|
};
|
|
26041
26035
|
const coveredPours = poursOnLayer.filter(
|
|
26042
26036
|
(p) => p.covered_with_solder_mask !== false
|
|
@@ -38369,6 +38363,7 @@ var iconContainerStyles = {
|
|
|
38369
38363
|
flexShrink: 0
|
|
38370
38364
|
};
|
|
38371
38365
|
var AppearanceMenu = ({
|
|
38366
|
+
hasAssembly = false,
|
|
38372
38367
|
showLayerControls = true
|
|
38373
38368
|
}) => {
|
|
38374
38369
|
const { visibility, setLayerVisibility } = useLayerVisibility();
|
|
@@ -38380,6 +38375,8 @@ var AppearanceMenu = ({
|
|
|
38380
38375
|
} = useAppearance();
|
|
38381
38376
|
const [appearanceSubOpen, setAppearanceSubOpen] = useState40(false);
|
|
38382
38377
|
const [hoveredItem, setHoveredItem] = useState40(null);
|
|
38378
|
+
const assemblyStyles = { ...itemStyles };
|
|
38379
|
+
if (hoveredItem === "assembly") assemblyStyles.backgroundColor = "#404040";
|
|
38383
38380
|
return /* @__PURE__ */ jsxs8(Fragment9, { children: [
|
|
38384
38381
|
/* @__PURE__ */ jsx37(DropdownMenuSeparator, { style: separatorStyles }),
|
|
38385
38382
|
/* @__PURE__ */ jsxs8(DropdownMenuSub, { onOpenChange: setAppearanceSubOpen, children: [
|
|
@@ -38730,6 +38727,24 @@ var AppearanceMenu = ({
|
|
|
38730
38727
|
/* @__PURE__ */ jsx37("span", { style: { display: "flex", alignItems: "center" }, children: "Enclosure" })
|
|
38731
38728
|
]
|
|
38732
38729
|
}
|
|
38730
|
+
),
|
|
38731
|
+
hasAssembly && /* @__PURE__ */ jsxs8(
|
|
38732
|
+
DropdownMenuItem,
|
|
38733
|
+
{
|
|
38734
|
+
style: assemblyStyles,
|
|
38735
|
+
onSelect: (e) => e.preventDefault(),
|
|
38736
|
+
onPointerDown: (e) => {
|
|
38737
|
+
e.preventDefault();
|
|
38738
|
+
setLayerVisibility("assembly", !visibility.assembly);
|
|
38739
|
+
},
|
|
38740
|
+
onMouseEnter: () => setHoveredItem("assembly"),
|
|
38741
|
+
onMouseLeave: () => setHoveredItem(null),
|
|
38742
|
+
onTouchStart: () => setHoveredItem("assembly"),
|
|
38743
|
+
children: [
|
|
38744
|
+
/* @__PURE__ */ jsx37("span", { style: iconContainerStyles, children: visibility.assembly && /* @__PURE__ */ jsx37(CheckIcon, {}) }),
|
|
38745
|
+
/* @__PURE__ */ jsx37("span", { style: { display: "flex", alignItems: "center" }, children: "Assembly" })
|
|
38746
|
+
]
|
|
38747
|
+
}
|
|
38733
38748
|
)
|
|
38734
38749
|
] })
|
|
38735
38750
|
]
|
|
@@ -38810,6 +38825,7 @@ var badgeStyles = {
|
|
|
38810
38825
|
letterSpacing: "0.3px"
|
|
38811
38826
|
};
|
|
38812
38827
|
var ContextMenu = ({
|
|
38828
|
+
hasAssembly = false,
|
|
38813
38829
|
menuRef,
|
|
38814
38830
|
menuPos,
|
|
38815
38831
|
engine,
|
|
@@ -39118,7 +39134,13 @@ var ContextMenu = ({
|
|
|
39118
39134
|
]
|
|
39119
39135
|
}
|
|
39120
39136
|
),
|
|
39121
|
-
/* @__PURE__ */ jsx38(
|
|
39137
|
+
/* @__PURE__ */ jsx38(
|
|
39138
|
+
AppearanceMenu,
|
|
39139
|
+
{
|
|
39140
|
+
hasAssembly,
|
|
39141
|
+
showLayerControls: !preRendered
|
|
39142
|
+
}
|
|
39143
|
+
),
|
|
39122
39144
|
/* @__PURE__ */ jsx38(DropdownMenuSeparator, { style: separatorStyles2 }),
|
|
39123
39145
|
/* @__PURE__ */ jsx38(
|
|
39124
39146
|
DropdownMenuItem,
|
|
@@ -39991,6 +40013,9 @@ var CadViewerInner = (props) => {
|
|
|
39991
40013
|
props.circuitJson || glbSource !== void 0 ? void 0 : props.children
|
|
39992
40014
|
);
|
|
39993
40015
|
const circuitJson = props.circuitJson ?? childrenCircuitJson;
|
|
40016
|
+
const hasAssembly = circuitJson.some(
|
|
40017
|
+
(element) => element.type === "cad_component" && !element.pcb_component_id
|
|
40018
|
+
);
|
|
39994
40019
|
const hasBends = circuitJson.some((element) => element.type === "pcb_bend");
|
|
39995
40020
|
const hasFlexGeometry = hasBends || circuitJson.some((element) => element.type === "pcb_stiffener");
|
|
39996
40021
|
const [foldPcbsOverride, setFoldPcbs] = useState45(
|
|
@@ -40230,6 +40255,7 @@ var CadViewerInner = (props) => {
|
|
|
40230
40255
|
menuVisible && /* @__PURE__ */ jsx41(
|
|
40231
40256
|
ContextMenu,
|
|
40232
40257
|
{
|
|
40258
|
+
hasAssembly,
|
|
40233
40259
|
componentName: selectedCadComponent?.componentName,
|
|
40234
40260
|
onHideComponent: selectedCadComponent ? () => {
|
|
40235
40261
|
hideComponent(selectedCadComponent.cad_component_id);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/3d-viewer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.633",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/tscircuit/3d-viewer"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@jscad/stl-serializer": "^2.1.20",
|
|
42
42
|
"@tscircuit/cableprinter": "^0.0.6",
|
|
43
43
|
"circuit-json": "^0.0.525",
|
|
44
|
-
"circuit-to-canvas": "^0.0.
|
|
44
|
+
"circuit-to-canvas": "^0.0.139",
|
|
45
45
|
"jscad-electronics": "^0.0.213",
|
|
46
46
|
"react-hot-toast": "^2.6.0",
|
|
47
47
|
"three": "^0.165.0",
|