forgecad 0.9.4 → 0.9.5
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/assets/{AdminPage-jwoEgwE_.js → AdminPage-uTtcSXtn.js} +1 -1
- package/dist/assets/{BlogPage-Ck7g3ue2.js → BlogPage-DYJMjWx3.js} +1 -1
- package/dist/assets/{DocsPage-9WaRC14b.js → DocsPage-C58f0K5v.js} +1 -6
- package/dist/assets/{EditorApp-Dja2jMmW.js → EditorApp-DNH1TEz1.js} +282 -62
- package/dist/assets/{EmbedViewer-37_PfMwv.js → EmbedViewer-CMXWA2LX.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-CO8WL0CY.js → LandingPageProofDriven-CAu2OZFn.js} +1 -1
- package/dist/assets/{PricingPage-DADKGuOa.js → PricingPage-BIgW7m3X.js} +1 -1
- package/dist/assets/{SettingsPage-DKKI4W49.js → SettingsPage-N1l1tMXO.js} +1 -1
- package/dist/assets/{app-CwI02pTA.js → app-CFy7g5WP.js} +74 -12
- package/dist/assets/cli/{render-Kw5hLEcL.js → render-BrVVdj_T.js} +453 -41
- package/dist/assets/{evalWorker-D6ub3kfS.js → evalWorker-c_SB9gg3.js} +2057 -446
- package/dist/assets/{manifold-lru0jwVw.js → manifold-CRoBhJKH.js} +2 -2
- package/dist/assets/{manifold-CwDdMKyc.js → manifold-Cjk7WhRs.js} +1 -1
- package/dist/assets/{manifold-DTvmxSDf.js → manifold-Dp6pvFr6.js} +1 -1
- package/dist/assets/{renderSceneState-tvtNKNRi.js → renderSceneState-3DfsSASX.js} +1 -1
- package/dist/assets/{reportWorker-DeqktDGt.js → reportWorker-BLkuIoS8.js} +2052 -443
- package/dist/assets/{sectionPlaneMath-C8N0w8o3.js → sectionPlaneMath-CykEnkvQ.js} +2258 -518
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +2 -2
- package/dist/docs-raw/AI/usage.md +0 -1
- package/dist/docs-raw/API/core/concepts.md +11 -1
- package/dist/docs-raw/CLI.md +64 -13
- package/dist/docs-raw/generated/assembly.md +8 -3
- package/dist/docs-raw/generated/concepts.md +44 -41
- package/dist/docs-raw/generated/core.md +97 -47
- package/dist/docs-raw/generated/curves.md +6 -580
- package/dist/docs-raw/generated/lib.md +40 -3
- package/dist/docs-raw/generated/output.md +6 -1
- package/dist/docs-raw/generated/sdf.md +50 -4
- package/dist/docs-raw/generated/viewport.md +1 -9
- package/dist/docs-raw/guides/inspection-bundles.md +31 -6
- package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -0
- package/dist/docs-raw/skills/forgecad-image-replicator.md +3 -1
- package/dist/docs-raw/skills/forgecad-make-a-model.md +48 -4
- package/dist/docs-raw/skills/forgecad-render-inspect.md +3 -1
- package/dist/docs-raw/skills/forgecad-visual-spec.md +2 -0
- package/dist/docs-raw/skills/forgecad.md +2 -1
- package/dist/docs-raw/skills/index.md +0 -1
- package/dist/index.html +1 -1
- package/dist/sitemap.xml +6 -6
- package/dist-cli/blender/render.py +43 -8
- package/dist-cli/forgecad.js +4941 -1758
- package/dist-cli/forgecad.js.map +1 -1
- package/dist-skill/CONTEXT.md +255 -656
- package/dist-skill/SKILL-dev.md +2 -1
- package/dist-skill/SKILL.md +2 -1
- package/dist-skill/docs/API/core/concepts.md +11 -1
- package/dist-skill/docs/CLI.md +64 -13
- package/dist-skill/docs/generated/assembly.md +8 -3
- package/dist-skill/docs/generated/core.md +97 -47
- package/dist-skill/docs/generated/curves.md +6 -580
- package/dist-skill/docs/generated/lib.md +40 -3
- package/dist-skill/docs/generated/output.md +6 -1
- package/dist-skill/docs/generated/sdf.md +50 -4
- package/dist-skill/docs/generated/viewport.md +1 -9
- package/dist-skill/docs/guides/inspection-bundles.md +31 -6
- package/dist-skill/docs-dev/API/core/concepts.md +11 -1
- package/dist-skill/docs-dev/CLI.md +64 -13
- package/dist-skill/docs-dev/generated/assembly.md +8 -3
- package/dist-skill/docs-dev/generated/core.md +97 -47
- package/dist-skill/docs-dev/generated/curves.md +6 -580
- package/dist-skill/docs-dev/generated/lib.md +40 -3
- package/dist-skill/docs-dev/generated/output.md +6 -1
- package/dist-skill/docs-dev/generated/sdf.md +50 -4
- package/dist-skill/docs-dev/generated/viewport.md +1 -9
- package/dist-skill/docs-dev/guides/inspection-bundles.md +31 -6
- package/dist-skill/library/README.md +0 -1
- package/dist-skill/library/forgecad-blockout-model/SKILL.md +1 -0
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +3 -1
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +48 -4
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +3 -1
- package/dist-skill/library/forgecad-visual-spec/SKILL.md +2 -0
- package/examples/api/drive-wheel-regions.forge.js +43 -0
- package/examples/api/sdf-circular-array-knurling.forge.js +19 -0
- package/examples/api/sdf-pattern2d-ceramic-ripple-set.forge.js +83 -0
- package/examples/api/sdf-pattern2d-grip-tread.forge.js +72 -0
- package/examples/api/sdf-pattern2d-orbital-jewelry.forge.js +62 -0
- package/examples/api/sdf-surface-basket-weave.forge.js +67 -0
- package/examples/api/sector-gear-body.forge.js +34 -0
- package/package.json +1 -1
- package/dist/docs-raw/skills/forgecad-api-dogfood.md +0 -130
- package/dist-skill/library/forgecad-api-dogfood/SKILL.md +0 -125
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "./vendor-react-Da3A2QmU.js";
|
|
2
|
-
import { bG as initKernel, bH as initSolverWasm } from "./sectionPlaneMath-
|
|
3
|
-
import { g as useForgeStore, ag as getExternalUrl, ah as getGistId, q as fetchUrlModel, p as fetchGistModel, l as buildShareUrl, B as BrandMark, ai as Viewport } from "./app-
|
|
2
|
+
import { bG as initKernel, bH as initSolverWasm } from "./sectionPlaneMath-CykEnkvQ.js";
|
|
3
|
+
import { g as useForgeStore, ag as getExternalUrl, ah as getGistId, q as fetchUrlModel, p as fetchGistModel, l as buildShareUrl, B as BrandMark, ai as Viewport } from "./app-CFy7g5WP.js";
|
|
4
4
|
function EmbedViewer() {
|
|
5
5
|
const kernelReady = useForgeStore((s) => s.kernelReady);
|
|
6
6
|
const setKernelReady = useForgeStore((s) => s.setKernelReady);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { f as useNavigate, r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-Da3A2QmU.js";
|
|
2
|
-
import { u as useAuthStore, b as authFetch, B as BrandMark } from "./app-
|
|
2
|
+
import { u as useAuthStore, b as authFetch, B as BrandMark } from "./app-CFy7g5WP.js";
|
|
3
3
|
import { C as COMMERCIAL_USE_CASES } from "./copy-CQKQppF-.js";
|
|
4
4
|
/* empty css */
|
|
5
5
|
function checkoutIntentPath(interval) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports, L as Link } from "./vendor-react-Da3A2QmU.js";
|
|
2
|
-
import { u as useAuthStore, b as authFetch, s as storageUsagePercent, f as formatStorageBytes } from "./app-
|
|
2
|
+
import { u as useAuthStore, b as authFetch, s as storageUsagePercent, f as formatStorageBytes } from "./app-CFy7g5WP.js";
|
|
3
3
|
import { P as PRO_STORAGE_UPGRADE_COPY } from "./copy-CQKQppF-.js";
|
|
4
4
|
function timeAgo(dateStr) {
|
|
5
5
|
const ms = Date.now() - new Date(dateStr).getTime();
|
|
@@ -4,7 +4,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
5
|
var _a2;
|
|
6
6
|
import { c as create, r as reactExports, j as jsxRuntimeExports, a as createWithEqualityFn, R as React, T as Tb, s as schedulerExports, b as clientExports, d as reactDomExports, u as useParams, e as useSearchParams, f as useNavigate, L as Link, B as BrowserRouter, g as Routes, h as Route, N as Navigate } from "./vendor-react-Da3A2QmU.js";
|
|
7
|
-
import { _ as __vitePreload, z as zipSync, s as strToU8, W as WebGLRenderer, R as Raycaster, O as OrthographicCamera$1, P as PerspectiveCamera$1, S as Scene, a as PCFSoftShadowMap, V as VSMShadowMap, b as PCFShadowMap, B as BasicShadowMap, C as ColorManagement, L as LinearSRGBColorSpace, c as SRGBColorSpace, N as NoToneMapping, A as ACESFilmicToneMapping, d as Layers, e as Color, f as RGBAFormat, U as UnsignedByteType, g as Vector3, h as Vector2, i as Clock, T as THREE, D as DoubleSide, j as REVISION, M as Mesh, I as IcosahedronGeometry, k as ShaderMaterial, l as Spherical, Q as Quaternion, m as MOUSE, n as TOUCH, o as Ray, p as Plane, q as DataTextureLoader, H as HalfFloatType, F as FloatType, r as DataUtils, t as LinearFilter, u as RedFormat, v as InstancedBufferGeometry, w as Float32BufferAttribute, x as InstancedInterleavedBuffer, y as InterleavedBufferAttribute, E as WireframeGeometry, G as Box3, J as Sphere, K as UniformsUtils, X as UniformsLib, Y as Vector4, Z as Line3, $ as Matrix4, a0 as MathUtils, a1 as Uniform, a2 as WebGLRenderTarget, a3 as DepthTexture, a4 as BackSide, a5 as ClampToEdgeWrapping, a6 as PlaneGeometry, a7 as UVMapping, a8 as DataTexture, a9 as Texture, aa as MeshBasicMaterial, ab as IntType, ac as ShortType, ad as ByteType, ae as UnsignedIntType, af as Loader, ag as LoadingManager, ah as LinearMipMapLinearFilter, ai as FileLoader, aj as NoBlending, ak as CubeReflectionMapping, al as EquirectangularReflectionMapping, am as CubeTextureLoader, an as WebGLCubeRenderTarget, ao as ConstraintSketch, ap as setSketchPlacement3D, aq as Sketch, ar as PROFILE_BACKEND_MARKER, as as FrozenShape, at as setShapeCompilePlan, au as hasAnyPorts, av as setShapePortsInternal, aw as markShapePortsUsed, ax as setParamOverrides, ay as DEFAULT_ACTIVE_BACKEND, az as isConstraintSketch, aA as updateConstraintValue, aB as getShapeCompilePlan, aC as resolveForgeRenderStyle, aD as publishSolverWasmRunDebug, aE as resolveForgeQualityPreset, aF as resolveImportPath, aG as BufferGeometry, aH as LineBasicMaterial, aI as Line$1, aJ as LineDashedMaterial, aK as DepthStencilFormat, aL as UnsignedInt248Type, aM as MeshNormalMaterial, aN as NearestFilter, aO as BasicDepthPacking, aP as EventDispatcher$1, aQ as NoColorSpace, aR as FrontSide, aS as Material, aT as AlwaysDepth, aU as BufferAttribute, aV as CanvasTexture, aW as Object3D, aX as FogExp2, aY as Fog, aZ as AmbientLight, a_ as HemisphereLight, a$ as SpotLight, b0 as PointLight, b1 as DirectionalLight, b2 as buildShapeFromCompilePlan, b3 as shapeToGeometry, b4 as sketchToSvg, b5 as sketchToDxf, b6 as runScript, b7 as MeshPhysicalMaterial, b8 as LineSegments, b9 as getRenderStylePreset, ba as AdditiveBlending, bb as CatmullRomCurve3, bc as TubeGeometry, bd as MeshStandardMaterial, be as compileSdfNode3, bf as buildSdfRaymarchFragmentShader, bg as SDF_RAYMARCH_PROXY_VERTEX_SHADER, bh as Shape, bi as ShapeGeometry, bj as ShaderLib, bk as CylinderGeometry, bl as parseViewportCameraState, bm as createResolvedExplodeConfig, bn as explodeBoundsCenter, bo as explodeMergeBounds, bp as resolveExplodeDirective, bq as computeExplodeMotion, br as getSketchWorldMatrix, bs as explodeAdd, bt as hasExplodeOverride, bu as resolveExplodeLocalFanDirection, bv as explodeMul, bw as explodeLeafFanStage, bx as normalizeCutPlane, by as toClippingPlane, bz as findJointAnimationClip, bA as resolveJointAnimation, bB as resolveJointViewValues, bC as getShapePorts, bD as getShapeUsedPorts, bE as DEFAULT_VIEW_CONFIG, bF as getKernelFaceNameForTriangle, bG as initKernel, bH as initSolverWasm } from "./sectionPlaneMath-
|
|
7
|
+
import { _ as __vitePreload, z as zipSync, s as strToU8, W as WebGLRenderer, R as Raycaster, O as OrthographicCamera$1, P as PerspectiveCamera$1, S as Scene, a as PCFSoftShadowMap, V as VSMShadowMap, b as PCFShadowMap, B as BasicShadowMap, C as ColorManagement, L as LinearSRGBColorSpace, c as SRGBColorSpace, N as NoToneMapping, A as ACESFilmicToneMapping, d as Layers, e as Color, f as RGBAFormat, U as UnsignedByteType, g as Vector3, h as Vector2, i as Clock, T as THREE, D as DoubleSide, j as REVISION, M as Mesh, I as IcosahedronGeometry, k as ShaderMaterial, l as Spherical, Q as Quaternion, m as MOUSE, n as TOUCH, o as Ray, p as Plane, q as DataTextureLoader, H as HalfFloatType, F as FloatType, r as DataUtils, t as LinearFilter, u as RedFormat, v as InstancedBufferGeometry, w as Float32BufferAttribute, x as InstancedInterleavedBuffer, y as InterleavedBufferAttribute, E as WireframeGeometry, G as Box3, J as Sphere, K as UniformsUtils, X as UniformsLib, Y as Vector4, Z as Line3, $ as Matrix4, a0 as MathUtils, a1 as Uniform, a2 as WebGLRenderTarget, a3 as DepthTexture, a4 as BackSide, a5 as ClampToEdgeWrapping, a6 as PlaneGeometry, a7 as UVMapping, a8 as DataTexture, a9 as Texture, aa as MeshBasicMaterial, ab as IntType, ac as ShortType, ad as ByteType, ae as UnsignedIntType, af as Loader, ag as LoadingManager, ah as LinearMipMapLinearFilter, ai as FileLoader, aj as NoBlending, ak as CubeReflectionMapping, al as EquirectangularReflectionMapping, am as CubeTextureLoader, an as WebGLCubeRenderTarget, ao as ConstraintSketch, ap as setSketchPlacement3D, aq as Sketch, ar as PROFILE_BACKEND_MARKER, as as FrozenShape, at as setShapeCompilePlan, au as hasAnyPorts, av as setShapePortsInternal, aw as markShapePortsUsed, ax as setParamOverrides, ay as DEFAULT_ACTIVE_BACKEND, az as isConstraintSketch, aA as updateConstraintValue, aB as getShapeCompilePlan, aC as resolveForgeRenderStyle, aD as publishSolverWasmRunDebug, aE as resolveForgeQualityPreset, aF as resolveImportPath, aG as BufferGeometry, aH as LineBasicMaterial, aI as Line$1, aJ as LineDashedMaterial, aK as DepthStencilFormat, aL as UnsignedInt248Type, aM as MeshNormalMaterial, aN as NearestFilter, aO as BasicDepthPacking, aP as EventDispatcher$1, aQ as NoColorSpace, aR as FrontSide, aS as Material, aT as AlwaysDepth, aU as BufferAttribute, aV as CanvasTexture, aW as Object3D, aX as FogExp2, aY as Fog, aZ as AmbientLight, a_ as HemisphereLight, a$ as SpotLight, b0 as PointLight, b1 as DirectionalLight, b2 as buildShapeFromCompilePlan, b3 as shapeToGeometry, b4 as sketchToSvg, b5 as sketchToDxf, b6 as runScript, b7 as MeshPhysicalMaterial, b8 as LineSegments, b9 as getRenderStylePreset, ba as AdditiveBlending, bb as CatmullRomCurve3, bc as TubeGeometry, bd as MeshStandardMaterial, be as compileSdfNode3, bf as buildSdfRaymarchFragmentShader, bg as SDF_RAYMARCH_PROXY_VERTEX_SHADER, bh as Shape, bi as ShapeGeometry, bj as ShaderLib, bk as CylinderGeometry, bl as parseViewportCameraState, bm as createResolvedExplodeConfig, bn as explodeBoundsCenter, bo as explodeMergeBounds, bp as resolveExplodeDirective, bq as computeExplodeMotion, br as getSketchWorldMatrix, bs as explodeAdd, bt as hasExplodeOverride, bu as resolveExplodeLocalFanDirection, bv as explodeMul, bw as explodeLeafFanStage, bx as normalizeCutPlane, by as toClippingPlane, bz as findJointAnimationClip, bA as resolveJointAnimation, bB as resolveJointViewValues, bC as getShapePorts, bD as getShapeUsedPorts, bE as DEFAULT_VIEW_CONFIG, bF as getKernelFaceNameForTriangle, bG as initKernel, bH as initSolverWasm } from "./sectionPlaneMath-CykEnkvQ.js";
|
|
8
8
|
function getCsrfToken() {
|
|
9
9
|
const match = document.cookie.match(/(?:^|;\s*)fc-csrf-token=([^;]+)/);
|
|
10
10
|
return match == null ? void 0 : match[1];
|
|
@@ -15231,6 +15231,7 @@ function deserializeSceneObject(s) {
|
|
|
15231
15231
|
sketchMeta: s.sketchMeta,
|
|
15232
15232
|
groupName: s.groupName,
|
|
15233
15233
|
treePath: s.treePath,
|
|
15234
|
+
tags: s.tags,
|
|
15234
15235
|
serverShapeRef: s.serverShapeRef,
|
|
15235
15236
|
exactState: s.exactState
|
|
15236
15237
|
};
|
|
@@ -15787,7 +15788,7 @@ const CRASH_COOLDOWN_MS = 2e3;
|
|
|
15787
15788
|
class EvalWorkerClient {
|
|
15788
15789
|
constructor(workerFactory = () => new Worker(new URL(
|
|
15789
15790
|
/* @vite-ignore */
|
|
15790
|
-
"/assets/evalWorker-
|
|
15791
|
+
"/assets/evalWorker-c_SB9gg3.js",
|
|
15791
15792
|
import.meta.url
|
|
15792
15793
|
), { type: "module" })) {
|
|
15793
15794
|
__publicField(this, "worker", null);
|
|
@@ -17198,6 +17199,7 @@ function runMetadataToRunResult(metadata) {
|
|
|
17198
17199
|
sketchMeta: obj.sketchMeta,
|
|
17199
17200
|
groupName: obj.groupName,
|
|
17200
17201
|
treePath: obj.treePath,
|
|
17202
|
+
tags: obj.tags,
|
|
17201
17203
|
mock: obj.mock,
|
|
17202
17204
|
serverShapeRef: obj.serverShapeRef,
|
|
17203
17205
|
exactState: obj.exactState
|
|
@@ -17371,6 +17373,16 @@ const initialObjectSettingsByFile = (() => {
|
|
|
17371
17373
|
}
|
|
17372
17374
|
return {};
|
|
17373
17375
|
})();
|
|
17376
|
+
function hasSceneObjectTag(object, tag) {
|
|
17377
|
+
return (object.tags ?? []).includes(tag);
|
|
17378
|
+
}
|
|
17379
|
+
function defaultSettingsForObject(object) {
|
|
17380
|
+
return {
|
|
17381
|
+
visible: true,
|
|
17382
|
+
opacity: object.mock ? 0.3 : 1,
|
|
17383
|
+
color: object.color || DEFAULT_OBJECT_COLOR
|
|
17384
|
+
};
|
|
17385
|
+
}
|
|
17374
17386
|
const initialParamSnapshotsByFile = sanitizeParamSnapshotsByFile(
|
|
17375
17387
|
initialViewPreferences.paramSnapshotsByFile
|
|
17376
17388
|
);
|
|
@@ -18180,6 +18192,50 @@ Switch to LOCAL mode or wait for the server to recover.`,
|
|
|
18180
18192
|
objectSettingsByFile: nextObjectSettingsByFile
|
|
18181
18193
|
};
|
|
18182
18194
|
}),
|
|
18195
|
+
hideObjectsWithTag: (tag) => set((s) => {
|
|
18196
|
+
var _a3;
|
|
18197
|
+
const objects = ((_a3 = s.lastValidResult) == null ? void 0 : _a3.objects) ?? [];
|
|
18198
|
+
if (!objects.some((object) => hasSceneObjectTag(object, tag))) return {};
|
|
18199
|
+
let changed = false;
|
|
18200
|
+
const nextObjectSettings = { ...s.objectSettings };
|
|
18201
|
+
objects.forEach((object) => {
|
|
18202
|
+
if (!hasSceneObjectTag(object, tag)) return;
|
|
18203
|
+
const current = nextObjectSettings[object.id] ?? defaultSettingsForObject(object);
|
|
18204
|
+
if (!current.visible) return;
|
|
18205
|
+
nextObjectSettings[object.id] = { ...current, visible: false };
|
|
18206
|
+
changed = true;
|
|
18207
|
+
});
|
|
18208
|
+
if (!changed) return {};
|
|
18209
|
+
const nextObjectSettingsByFile = setObjectSettingsForPreviewFile(s.objectSettingsByFile, s.previewFile, nextObjectSettings);
|
|
18210
|
+
writeViewPreferences({ objectSettingsByFile: nextObjectSettingsByFile });
|
|
18211
|
+
return {
|
|
18212
|
+
objectSettings: nextObjectSettings,
|
|
18213
|
+
objectSettingsByFile: nextObjectSettingsByFile
|
|
18214
|
+
};
|
|
18215
|
+
}),
|
|
18216
|
+
showOnlyObjectsWithTag: (tag) => set((s) => {
|
|
18217
|
+
var _a3;
|
|
18218
|
+
const objects = ((_a3 = s.lastValidResult) == null ? void 0 : _a3.objects) ?? [];
|
|
18219
|
+
if (objects.length === 0) return {};
|
|
18220
|
+
const matchingIds = new Set(objects.filter((object) => hasSceneObjectTag(object, tag)).map((object) => object.id));
|
|
18221
|
+
if (matchingIds.size === 0) return {};
|
|
18222
|
+
let changed = false;
|
|
18223
|
+
const nextObjectSettings = { ...s.objectSettings };
|
|
18224
|
+
objects.forEach((object) => {
|
|
18225
|
+
const visible = matchingIds.has(object.id);
|
|
18226
|
+
const current = nextObjectSettings[object.id] ?? defaultSettingsForObject(object);
|
|
18227
|
+
if (current.visible === visible) return;
|
|
18228
|
+
nextObjectSettings[object.id] = { ...current, visible };
|
|
18229
|
+
changed = true;
|
|
18230
|
+
});
|
|
18231
|
+
if (!changed) return {};
|
|
18232
|
+
const nextObjectSettingsByFile = setObjectSettingsForPreviewFile(s.objectSettingsByFile, s.previewFile, nextObjectSettings);
|
|
18233
|
+
writeViewPreferences({ objectSettingsByFile: nextObjectSettingsByFile });
|
|
18234
|
+
return {
|
|
18235
|
+
objectSettings: nextObjectSettings,
|
|
18236
|
+
objectSettingsByFile: nextObjectSettingsByFile
|
|
18237
|
+
};
|
|
18238
|
+
}),
|
|
18183
18239
|
setObjectOpacity: (id, opacity) => set((s) => {
|
|
18184
18240
|
const current = s.objectSettings[id] ?? { visible: true, opacity: 1, color: DEFAULT_OBJECT_COLOR };
|
|
18185
18241
|
const nextObjectSettings = { ...s.objectSettings, [id]: { ...current, opacity } };
|
|
@@ -18385,6 +18441,12 @@ Switch to LOCAL mode or wait for the server to recover.`,
|
|
|
18385
18441
|
}
|
|
18386
18442
|
return { focusedObjectIds: [...state2.focusedObjectIds, id], selectedObjectId: id };
|
|
18387
18443
|
}),
|
|
18444
|
+
focusObjectsWithTag: (tag) => set((state2) => {
|
|
18445
|
+
var _a3;
|
|
18446
|
+
const ids = (((_a3 = state2.lastValidResult) == null ? void 0 : _a3.objects) ?? []).filter((object) => hasSceneObjectTag(object, tag)).map((object) => object.id);
|
|
18447
|
+
if (ids.length === 0) return {};
|
|
18448
|
+
return { focusedObjectIds: ids, selectedObjectId: ids[0] };
|
|
18449
|
+
}),
|
|
18388
18450
|
clearFocusedObject: () => set({ focusedObjectIds: [] }),
|
|
18389
18451
|
hoveredObjectId: null,
|
|
18390
18452
|
setHoveredObjectId: (id) => set((state2) => state2.hoveredObjectId === id ? state2 : { hoveredObjectId: id }),
|
|
@@ -28852,7 +28914,7 @@ function generateReportInWorker(options) {
|
|
|
28852
28914
|
return new Promise((resolve2, reject) => {
|
|
28853
28915
|
const worker = new Worker(new URL(
|
|
28854
28916
|
/* @vite-ignore */
|
|
28855
|
-
"/assets/reportWorker-
|
|
28917
|
+
"/assets/reportWorker-BLkuIoS8.js",
|
|
28856
28918
|
import.meta.url
|
|
28857
28919
|
), { type: "module" });
|
|
28858
28920
|
const cleanup = () => {
|
|
@@ -40622,7 +40684,7 @@ function Viewport() {
|
|
|
40622
40684
|
}
|
|
40623
40685
|
);
|
|
40624
40686
|
}
|
|
40625
|
-
const EditorApp$1 = reactExports.lazy(() => __vitePreload(() => import("./EditorApp-
|
|
40687
|
+
const EditorApp$1 = reactExports.lazy(() => __vitePreload(() => import("./EditorApp-DNH1TEz1.js"), true ? __vite__mapDeps([0]) : void 0).then((m2) => ({ default: m2.EditorApp })));
|
|
40626
40688
|
const PENDING_SHARE_COPY_KEY = "fc-pending-share-copy";
|
|
40627
40689
|
function storePendingShareCopy(shareId) {
|
|
40628
40690
|
sessionStorage.setItem(PENDING_SHARE_COPY_KEY, shareId);
|
|
@@ -40809,15 +40871,15 @@ const PublishedModelPage$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Objec
|
|
|
40809
40871
|
consumePendingShareCopy,
|
|
40810
40872
|
storePendingShareCopy
|
|
40811
40873
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
40812
|
-
reactExports.lazy(() => __vitePreload(() => import("./LandingPageProofDriven-
|
|
40813
|
-
const DocsPage = reactExports.lazy(() => __vitePreload(() => import("./DocsPage-
|
|
40814
|
-
reactExports.lazy(() => __vitePreload(() => import("./BlogPage-
|
|
40815
|
-
reactExports.lazy(() => __vitePreload(() => import("./AdminPage-
|
|
40874
|
+
reactExports.lazy(() => __vitePreload(() => import("./LandingPageProofDriven-CAu2OZFn.js"), true ? __vite__mapDeps([1]) : void 0).then((m2) => ({ default: m2.LandingPageProofDriven })));
|
|
40875
|
+
const DocsPage = reactExports.lazy(() => __vitePreload(() => import("./DocsPage-C58f0K5v.js"), true ? [] : void 0).then((m2) => ({ default: m2.DocsPage })));
|
|
40876
|
+
reactExports.lazy(() => __vitePreload(() => import("./BlogPage-DYJMjWx3.js"), true ? [] : void 0).then((m2) => ({ default: m2.BlogPage })));
|
|
40877
|
+
reactExports.lazy(() => __vitePreload(() => import("./AdminPage-uTtcSXtn.js"), true ? [] : void 0).then((m2) => ({ default: m2.AdminPage })));
|
|
40816
40878
|
reactExports.lazy(() => __vitePreload(() => Promise.resolve().then(() => PublishedModelPage$1), true ? void 0 : void 0).then((m2) => ({ default: m2.PublishedModelPage })));
|
|
40817
|
-
reactExports.lazy(() => __vitePreload(() => import("./SettingsPage-
|
|
40818
|
-
reactExports.lazy(() => __vitePreload(() => import("./PricingPage-
|
|
40819
|
-
const EditorApp = reactExports.lazy(() => __vitePreload(() => import("./EditorApp-
|
|
40820
|
-
const EmbedViewer = reactExports.lazy(() => __vitePreload(() => import("./EmbedViewer-
|
|
40879
|
+
reactExports.lazy(() => __vitePreload(() => import("./SettingsPage-N1l1tMXO.js"), true ? [] : void 0).then((m2) => ({ default: m2.SettingsPage })));
|
|
40880
|
+
reactExports.lazy(() => __vitePreload(() => import("./PricingPage-BIgW7m3X.js"), true ? __vite__mapDeps([2,1]) : void 0).then((m2) => ({ default: m2.PricingPage })));
|
|
40881
|
+
const EditorApp = reactExports.lazy(() => __vitePreload(() => import("./EditorApp-DNH1TEz1.js"), true ? __vite__mapDeps([0]) : void 0).then((m2) => ({ default: m2.EditorApp })));
|
|
40882
|
+
const EmbedViewer = reactExports.lazy(() => __vitePreload(() => import("./EmbedViewer-CMXWA2LX.js"), true ? [] : void 0).then((m2) => ({ default: m2.EmbedViewer })));
|
|
40821
40883
|
const embedMode = isEmbedMode() && !window.location.pathname.startsWith("/m/");
|
|
40822
40884
|
const EDITABLE_CRASH_FILE = /\.(?:forge\.js|[cm]?[jt]sx?|json|md|txt|svg)$/i;
|
|
40823
40885
|
function firstMeaningfulLine(text) {
|