@volter/game-editor 0.5.81 → 0.5.82
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/BUNDLED_NOTICES +22 -22
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/dist/.vite/manifest.json +2138 -2137
- package/dist/assets/{AssetBudgetPanel-CfVYW4ED.js → AssetBudgetPanel-Iip49rxI.js} +3 -3
- package/dist/assets/{AudioViewer-J10BXrtm.js → AudioViewer-DmkOvskF.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-BgIbuOQF.js → CanvasBoardDocument-DCS8uzQo.js} +1 -1
- package/dist/assets/CanvasSceneViewport-CfOuQiQ0.js +1 -0
- package/dist/assets/{ColorInput-fX1V5l8_.js → ColorInput-7CPpl8MI.js} +1 -1
- package/dist/assets/EntityModelDocument-CplmAib0.js +1 -0
- package/dist/assets/{EnvironmentAssetDocument-QuLkCom9.js → EnvironmentAssetDocument-DlS6KFJu.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-D0z5Mc0R.js → GameplaySessionTimeline-C3zH6edi.js} +1 -1
- package/dist/assets/{ImageViewer-DWUPPWRf.js → ImageViewer-C0lQ6YO0.js} +1 -1
- package/dist/assets/InspectorObjectPreview-Bjc1Tn-I.js +1 -0
- package/dist/assets/{JsonAssetDocument-C0Lr6RwY.js → JsonAssetDocument-DjmH9CQH.js} +1 -1
- package/dist/assets/{LiveModuleDocument-CaGmr0EA.js → LiveModuleDocument-Hiot8Q5L.js} +1 -1
- package/dist/assets/{LutAssetDocument-B6GmsOYd.js → LutAssetDocument-6bBwNMOn.js} +1 -1
- package/dist/assets/{ModelAssetDocument-BBDnXTQm.js → ModelAssetDocument-G6ajiV51.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-byKqf1kp.js → NonThreeAuthoringBootstrap-DpieYAMC.js} +1 -1
- package/dist/assets/Object3DDocumentToolbar-BtZkDxKa.js +1 -0
- package/dist/assets/Object3DDocumentViewport-BhH8afDi.js +2 -0
- package/dist/assets/{Object3DPreview-pn9i3vwZ.js → Object3DPreview-DdrYVJUZ.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-PDCDAcqz.js → OnlineAssetDetail-D06eTe3y.js} +1 -1
- package/dist/assets/{PlayBar-DEnkv3v6.js → PlayBar-BbzjgLFJ.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-2x66XymD.js → QuarksAssetDocument-wGHNt4ov.js} +1 -1
- package/dist/assets/{ReactCanvasControls-rFwp2CeP.js → ReactCanvasControls-BL2tOUj6.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-B9rf-SSV.js → RootSelectionOverlay-C6Wu8nIs.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-ImI6jbzB.js → ShaderAssetDocument-BDi8iNLA.js} +4 -4
- package/dist/assets/{ShadowEditor-DXxVxTzk.js → ShadowEditor-C3L0UWSH.js} +1 -1
- package/dist/assets/{SourceAssetViewer-CMbp_o7v.js → SourceAssetViewer-D832bARo.js} +1 -1
- package/dist/assets/StageHost-Bor1eHEO.js +2 -0
- package/dist/assets/{StoryPreviewMount-D2zLWzWy.js → StoryPreviewMount-CmOEFzZY.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-nX3UiY3u.js → ThreeBoardDocument-BtBMGtiQ.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-CGHM0vsg.js → ThreeIsolationSceneContent-BEHNSEsi.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-BfNcqtFv.js → ToolObject3DPreview-76LMkfin.js} +1 -1
- package/dist/assets/{Toolbar-BJRJsbHG.js → Toolbar-BEBQdxRz.js} +1 -1
- package/dist/assets/{TransientHint-CDvYgnzu.js → TransientHint-CzsdY8W6.js} +1 -1
- package/dist/assets/{VideoViewer-B6Dv2zeQ.js → VideoViewer-Ckrawyuq.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-CrTY7tnk.js → ViewportShadingMenu-BofQt6_4.js} +1 -1
- package/dist/assets/{active-ingest-lrfMBhf9.js → active-ingest-D_ryI_R4.js} +2 -2
- package/dist/assets/{animation-clock-DktVGV5-.js → animation-clock-QjtJDIsR.js} +1 -1
- package/dist/assets/{animation-mixers.service-fkojNtor.js → animation-mixers.service-BInUs1US.js} +1 -1
- package/dist/assets/{animation-timeline.utility-DDrUZKe8.js → animation-timeline.utility-DUrfNSwn.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-CDlgKSO9.js → asset-budget-asset.menu-DVQEksFp.js} +1 -1
- package/dist/assets/{asset-budget.action-D6n-wIR3.js → asset-budget.action-C-ENAa52.js} +1 -1
- package/dist/assets/{asset-budget.document-DFByoagB.js → asset-budget.document-Bb1PyL3H.js} +1 -1
- package/dist/assets/{asset-budget.menu-B2u_1dWR.js → asset-budget.menu-CPi2yjBA.js} +1 -1
- package/dist/assets/{asset-editor-persistence-e6bYhVnm.js → asset-editor-persistence-Duoq7o22.js} +1 -1
- package/dist/assets/{asset-loaders-Bsq-3hNt.js → asset-loaders-BftJ2m7-.js} +1 -1
- package/dist/assets/{asset-preview-B7j9QV6N.js → asset-preview-BS71mXsZ.js} +1 -1
- package/dist/assets/{audio-unlock.service-7oO4YVIj.js → audio-unlock.service-C3ygvDjU.js} +1 -1
- package/dist/assets/{audio.utility-9fcsT3YY.js → audio.utility-DF55sgHW.js} +1 -1
- package/dist/assets/autoplay.service-DaonKf7O.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-BJfYxqDM.js → babylon-authoring-adapter-CmeehOBt.js} +1 -1
- package/dist/assets/{binding-resolver-CBXePHiR.js → binding-resolver-DUz8C8Fs.js} +2 -2
- package/dist/assets/{blender-node-editor.document-xA7eGv3-.js → blender-node-editor.document-B8S2TVMM.js} +1 -1
- package/dist/assets/{blender-properties-tab-nY8UOQUL.js → blender-properties-tab-y-_BeZDx.js} +1 -1
- package/dist/assets/blender-runtime-host-CUH6peXj.js +4 -0
- package/dist/assets/{blender-runtime-skin-D3Arti9-.js → blender-runtime-skin-B1tYITn2.js} +36 -36
- package/dist/assets/blender-runtime.document-DnSl0twI.js +12 -0
- package/dist/assets/{blender-timeline.document-DXoQ7y8E.js → blender-timeline.document-CeCylyXB.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CMOyob1N.js → blender-uv-editor.document-DEllMw3a.js} +1 -1
- package/dist/assets/{blender-version.status-16xnuezC.js → blender-version.status-CrT9NqK-.js} +1 -1
- package/dist/assets/{blender.command-Br2EUk6Q.js → blender.command-GIjMG1-m.js} +1 -1
- package/dist/assets/{board-guides-whelE-Dr.js → board-guides-B6TEPOPi.js} +1 -1
- package/dist/assets/{bridge.command-T93eURWq.js → bridge.command-D6qTcgje.js} +3 -3
- package/dist/assets/{browserAll-BfZu7-UJ.js → browserAll-k35XRFil.js} +1 -1
- package/dist/assets/build-player.document-CHxj4P8q.js +1 -0
- package/dist/assets/{build-profiles.document-DNncGOL3.js → build-profiles.document-CZCk1HYA.js} +2 -2
- package/dist/assets/{build-progress.status-DnJetNft.js → build-progress.status-BNwBxP2a.js} +1 -1
- package/dist/assets/{build-session-BaEmzCkm.js → build-session-CW2UyYFF.js} +1 -1
- package/dist/assets/{build.action-exbllMgM.js → build.action-EmCcMu47.js} +1 -1
- package/dist/assets/{build.command-Imykh8LN.js → build.command-CzEckGcR.js} +1 -1
- package/dist/assets/{build.header-9RzLy3UQ.js → build.header-CsYLpZbh.js} +1 -1
- package/dist/assets/{build.menu-CRhA3yID.js → build.menu-CaDkDQuy.js} +1 -1
- package/dist/assets/{build.service-CxIdSEPw.js → build.service-BcKtbU0-.js} +1 -1
- package/dist/assets/{camera-BiBGeQQ4.js → camera-BwWZUyKt.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-DmRFynxC.js → camera-runtime.inspector-CJyi3zmp.js} +1 -1
- package/dist/assets/{canvas-design-mount-DJ6zQJKG.js → canvas-design-mount-B_uwZkEU.js} +6 -6
- package/dist/assets/{canvas-entry-runtime-Cjga4XYp.js → canvas-entry-runtime-DskaohHK.js} +2 -2
- package/dist/assets/{canvas-preview-frames-EoYgD6W4.js → canvas-preview-frames-BzLeTumX.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-D5UntNCd.js → canvas-story-capture.service-C80CsS8r.js} +2 -2
- package/dist/assets/{capability-coverage-9qm5WVwt.js → capability-coverage-wd6bAhv3.js} +2 -2
- package/dist/assets/{collaboration-presence-Q6zcL5v0.js → collaboration-presence-DcPhahtF.js} +1 -1
- package/dist/assets/{collider-CTHtUvnl.js → collider-Dw2iWV3F.js} +1 -1
- package/dist/assets/{component-board.service-Bf-ETQF0.js → component-board.service-CH99sgj0.js} +2 -2
- package/dist/assets/component-board.service-Cd1c9oSN.js +2 -0
- package/dist/assets/{component-board.service-foqmr9Ii.js → component-board.service-XAxyLCnM.js} +2 -2
- package/dist/assets/{component-contracts.service-Do9hADdW.js → component-contracts.service-DerT0BP-.js} +1 -1
- package/dist/assets/{component-instance-root-MBgAuUpp.js → component-instance-root-Cw_-ajBX.js} +1 -1
- package/dist/assets/{component-verbs.command-DtMdPuyO.js → component-verbs.command-BHK9M2Rk.js} +1 -1
- package/dist/assets/component-verbs.service-DsxhVcvk.js +1 -0
- package/dist/assets/{config-B6tt9xy3.js → config-1rCvm02z.js} +3 -3
- package/dist/assets/configurations-CRTYw0r9.js +1 -0
- package/dist/assets/{connection.status-BNPvWdJD.js → connection.status-D4fjnH24.js} +1 -1
- package/dist/assets/{constraints.inspector-DoOn25Lk.js → constraints.inspector-BgnafOLf.js} +1 -1
- package/dist/assets/{content-bounds-BFpR_e--.js → content-bounds-D5pXeHJN.js} +1 -1
- package/dist/assets/{contract-system-adapters-BRHtWOi_.js → contract-system-adapters-rVGdworX.js} +1 -1
- package/dist/assets/{coverage.service-BB1XhwsL.js → coverage.service-BNme5Agb.js} +1 -1
- package/dist/assets/{create-runtime-B6u6x5eK.js → create-runtime-CcuQTSfy.js} +2 -2
- package/dist/assets/{curve-D11mIGoN.js → curve-DorFv33R.js} +1 -1
- package/dist/assets/{data-asset-DejEwzXj.js → data-asset-CAE35Emh.js} +1 -1
- package/dist/assets/{data-ref-DJNVzksb.js → data-ref-DXqRnZsJ.js} +1 -1
- package/dist/assets/{debug-bridge-DlGIEyTc.js → debug-bridge-DdCJSEni.js} +1 -1
- package/dist/assets/{debug-registry-Dagj3b6J.js → debug-registry-xQJcVubm.js} +1 -1
- package/dist/assets/deferred-ingest-play-CEnsC3uN.js +2 -0
- package/dist/assets/{design-time-canvas-mount-Cpb_jITI.js → design-time-canvas-mount-CPRrCPFA.js} +2 -2
- package/dist/assets/design-time-layers-hmGqBp06.js +1 -0
- package/dist/assets/{design-time-mount.service-Ck5Hjxtn.js → design-time-mount.service-CEmJjRIJ.js} +2 -2
- package/dist/assets/{design-time-mount.service-DEa-41ij.js → design-time-mount.service-CLL-1Za4.js} +2 -2
- package/dist/assets/{design-time-react-mount-DCTpYS51.js → design-time-react-mount-DmXi3GBy.js} +1 -1
- package/dist/assets/{document-preview-three-TjlxMDBR.js → document-preview-three-B4j_zNef.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-C3ZsI41l.js → dom-authoring-adapter-BklRbjZB.js} +1 -1
- package/dist/assets/{draco3d-Ddr7J1sS.js → draco3d-CFWI1XDT.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-D047aZ6I.js → edit-mode-audio.service-SUzv0nHs.js} +1 -1
- package/dist/assets/{edit-mode-authoring-DubxVdEM.js → edit-mode-authoring-CSt3zzmS.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-DitjC2ZL.js → edit-mode-networking.service-D6UohrCr.js} +1 -1
- package/dist/assets/editor-api-WeHVNlEo.js +1 -0
- package/dist/assets/{editor-layers-BK3fNRb7.js → editor-layers-CjeYrUlm.js} +1 -1
- package/dist/assets/{editor-shell-store-Bro0arjr.js → editor-shell-store-DckLm6m8.js} +1 -1
- package/dist/assets/{entity-object-BFppZ54X.js → entity-object-V13bGmay.js} +1 -1
- package/dist/assets/{extend-MkXq6t1H.js → extend-BQeRA-aV.js} +1 -1
- package/dist/assets/{fork-menu-DzoCyQvA.js → fork-menu-Bthg9viY.js} +1 -1
- package/dist/assets/{frame-debugger-store-xbOH83D0.js → frame-debugger-store-DDxWlDPK.js} +1 -1
- package/dist/assets/{game-contract-seams-5IUqvr7b.js → game-contract-seams-DrYyE5PX.js} +1 -1
- package/dist/assets/{game-css-scope-transform-DDAoTvZQ.js → game-css-scope-transform-D5hQWaci.js} +1 -1
- package/dist/assets/game-document.service-cJ1yKc2V.js +1 -0
- package/dist/assets/{game-eval.command-DcFoKUe7.js → game-eval.command-CKo-W17_.js} +1 -1
- package/dist/assets/{game-module-access-ABBzTWg7.js → game-module-access-DuptGLGx.js} +1 -1
- package/dist/assets/game-network-CAH_Jsh6.js +22 -0
- package/dist/assets/gameplay-export-B-JE4uSD.js +1 -0
- package/dist/assets/gameplay-replay-WyopKGyB.js +1 -0
- package/dist/assets/{gameplay.command-qdQLKC3A.js → gameplay.command-D4cY3nOq.js} +1 -1
- package/dist/assets/generation-jobs-CcCrhKLM.js +1 -0
- package/dist/assets/{generation.service-CdwRWoIV.js → generation.service-CQwmLAOQ.js} +1 -1
- package/dist/assets/{generations-nW4LG5qG.js → generations-qfhCRH8C.js} +1 -1
- package/dist/assets/{generations.status-DgjVrgGL.js → generations.status-CcbR2OfF.js} +1 -1
- package/dist/assets/{hierarchy-marks-Pb6wnNcu.js → hierarchy-marks-B1jSqxSv.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-BCnTLunr.js → hosted-asset-materialization-BZf-8JA1.js} +1 -1
- package/dist/assets/{index-Bz4YDJ7o.js → index-CHa43s2p.js} +1 -1
- package/dist/assets/{index-BYoN6-Qw.js → index-Cj_b0Ygc.js} +1 -1
- package/dist/assets/{index-Db2ixdvK.js → index-D-RMHSzb.js} +1 -1
- package/dist/assets/{index-D7q1gYjq.js → index-DXtfej3G.js} +1 -1
- package/dist/assets/{index-BlWeDGvp.js → index-D_ViOFCz.js} +2 -2
- package/dist/assets/{index-Ds9fZyOU.js → index-DrEVdQvN.js} +1 -1
- package/dist/assets/{index-CvGsVzTo.js → index-V4J7xfRg.js} +7 -7
- package/dist/assets/{index-CaZZDx3x.js → index-aREcGExk.js} +1 -1
- package/dist/assets/index-yXSK_qPW.js +1 -0
- package/dist/assets/{inference-diagnostics-BCwXk-CS.js → inference-diagnostics-DoZQ1mpg.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BPER30gQ.js → ingest-boot-viewport-DWdOtGGE.js} +1 -1
- package/dist/assets/ingest-siblings-DyvasVDH.js +1 -0
- package/dist/assets/{ingest-source-persistence-CPlDA2D8.js → ingest-source-persistence-CQOJeGhj.js} +1 -1
- package/dist/assets/{ingest.service-BhwFGlqY.js → ingest.service-CqIcydem.js} +1 -1
- package/dist/assets/{inspect-DxfAFkho.js → inspect-DiSjB-N1.js} +1 -1
- package/dist/assets/instances.command-COw2QpbN.js +1 -0
- package/dist/assets/{json-history-resource-CckDydoO.js → json-history-resource-CH2nzMZh.js} +1 -1
- package/dist/assets/{layered-pick-BaxBYi7u.js → layered-pick-BUr1U8lU.js} +1 -1
- package/dist/assets/{light-DF4nTzTq.js → light-CxiGIJma.js} +1 -1
- package/dist/assets/live-project-verbs-CnknlUlT.js +1 -0
- package/dist/assets/{machine.document-DaPLAXaa.js → machine.document-D7jMrzXt.js} +1 -1
- package/dist/assets/{machines.finder-C9s8SFtp.js → machines.finder-Dor3O0uf.js} +1 -1
- package/dist/assets/{material-rGFsBrD0.js → material-B6cH1Oqw.js} +1 -1
- package/dist/assets/{material-factory-CCcnlv8E.js → material-factory-BN3Lax5C.js} +1 -1
- package/dist/assets/{mesh-CVBvSsCX.js → mesh-Cj-CYroI.js} +1 -1
- package/dist/assets/{model-asset-sections.service-vVRv6iOD.js → model-asset-sections.service-mC4WJFTA.js} +1 -1
- package/dist/assets/{model-inspection-Dd-hn5v2.js → model-inspection-8o57YSZW.js} +1 -1
- package/dist/assets/{model-thumbnail-BDU_QU37.js → model-thumbnail-chePRlH7.js} +1 -1
- package/dist/assets/{models.finder-CQMZz5xX.js → models.finder-CKkT5ZdU.js} +1 -1
- package/dist/assets/{module-mode-DcBz3aI7.js → module-mode-BMiMhHI3.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-DMWeT_c3.js → mount-canvas-ingest-root-B1swVIUJ.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-Bx1TmleJ.js → mount-dom-ingest-root-B8hO5mht.js} +2 -2
- package/dist/assets/{mount-ingest-root-BDP8atUq.js → mount-ingest-root-Cbnh-mSw.js} +2 -2
- package/dist/assets/{mount-manifest-C5QVCZlS.js → mount-manifest-B7oL1Abg.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-DSmhgOJn.js → mount-three-ingest-root-BdUJx6ix.js} +1 -1
- package/dist/assets/{mounted-authoring-D-tXkNKH.js → mounted-authoring-C47L5H5t.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-Snu9yn1n.js → mounted-story-viewport-source-CyEK_vaq.js} +1 -1
- package/dist/assets/{native-debug-module-XfhvyMrK.js → native-debug-module-JJOFtIVz.js} +1 -1
- package/dist/assets/{navigation-CTTcWe0R.js → navigation-ROJM2w84.js} +1 -1
- package/dist/assets/{navmesh.menu-mFjQ30B0.js → navmesh.menu-DjefqtkI.js} +1 -1
- package/dist/assets/{navmesh.service-BJPp7ZXu.js → navmesh.service-BPqjEQiq.js} +1 -1
- package/dist/assets/network-observer.service-GFzXuBMb.js +1 -0
- package/dist/assets/{network.utility-C-_7MTIV.js → network.utility-6Y5u53n8.js} +1 -1
- package/dist/assets/object3d-document-session-registry-DNCOGA3i.js +2 -0
- package/dist/assets/{oid-transform-Bgdv7kST.js → oid-transform-DQzN_Gl_.js} +1 -1
- package/dist/assets/{particles-CHXYb9Jd.js → particles-DGdUmqOr.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-lj5CidSR.js → pixi-authoring-adapter-BRktdcIz.js} +1 -1
- package/dist/assets/{pixi-live-write-target-BEL9GCCr.js → pixi-live-write-target-Dg0mdLaa.js} +1 -1
- package/dist/assets/play.command-4IDAqR5W.js +2 -0
- package/dist/assets/{presentation-CmK-bEDi.js → presentation-8m-RDKIS.js} +1 -1
- package/dist/assets/{product-gjrRHe-K.js → product-t6tauO7R.js} +1 -1
- package/dist/assets/{profiler.action-CZ6UQi9A.js → profiler.action-CXA4IkQB.js} +1 -1
- package/dist/assets/{profiler.menu-DxbnC3d6.js → profiler.menu-BgIBv4-I.js} +1 -1
- package/dist/assets/{profiler.utility-BvARl7sM.js → profiler.utility-BYoRbfIK.js} +1 -1
- package/dist/assets/{project-authoring-session-CBKXzBlD.js → project-authoring-session-DkekCxNv.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-Co8UpbhC.js → properties-bone-constraints.inspector-DXpiCtf9.js} +1 -1
- package/dist/assets/{properties-bone.inspector-CFXh2lQH.js → properties-bone.inspector-wIDsP4c5.js} +1 -1
- package/dist/assets/{properties-collection.inspector-Jq9X8fEq.js → properties-collection.inspector-5SRPbqfM.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-CMcKD_Jc.js → properties-constraints.inspector-DIjKz692.js} +1 -1
- package/dist/assets/{properties-data.inspector-cP3izSat.js → properties-data.inspector-DE6i8biZ.js} +1 -1
- package/dist/assets/{properties-material.inspector-CrZIovv9.js → properties-material.inspector-Cu1UCPY4.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-DqQMxoiL.js → properties-modifiers.inspector-DsQzA638.js} +1 -1
- package/dist/assets/{properties-object.inspector-DM63eANJ.js → properties-object.inspector-C57X0GJq.js} +1 -1
- package/dist/assets/{properties-output.inspector-B475IBEd.js → properties-output.inspector-DzrcFuRM.js} +1 -1
- package/dist/assets/{properties-particles.inspector-vGXQ4kWx.js → properties-particles.inspector-DGqSnelN.js} +1 -1
- package/dist/assets/{properties-physics.inspector-CfwqpVGS.js → properties-physics.inspector-DIjhtiLe.js} +1 -1
- package/dist/assets/{properties-render.inspector-BYLknsM7.js → properties-render.inspector-CX0orwn9.js} +1 -1
- package/dist/assets/{properties-scene.inspector-BcIZBfGk.js → properties-scene.inspector-DaHNL_sq.js} +1 -1
- package/dist/assets/{properties-texture.inspector-p3Owurhl.js → properties-texture.inspector-B5hmxPRy.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-CN-5jzB9.js → properties-view-layer.inspector-C7hdJgei.js} +1 -1
- package/dist/assets/{properties-world.inspector-DVp8fYWx.js → properties-world.inspector-EWTC6jNw.js} +1 -1
- package/dist/assets/r3f-design-session-CXlGV9hp.js +2 -0
- package/dist/assets/{r3f-physics-binding-BcTFD1ZS.js → r3f-physics-binding-DZSIB0d_.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-DVnhzoxp.js → r3f-source-authoring-adapter-GR97EmII.js} +1 -1
- package/dist/assets/{react-canvas-navigation-CBorZtWB.js → react-canvas-navigation-L_mOnybL.js} +1 -1
- package/dist/assets/{react-inspector.service-Dc99kogU.js → react-inspector.service-B4P3UnSY.js} +1 -1
- package/dist/assets/{react-story-board-6-BjI32N.js → react-story-board-CT1_3sk_.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-BO2XPUEM.js → react-three-rapier.esm-DyMNYoA_.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-B6BiehHR.js → react-world-authoring-adapter-OR1SW2jI.js} +1 -1
- package/dist/assets/{realm-services-DCnaxwIb.js → realm-services-u0mnjXU9.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-CWneVfEe.js → reflection-probe-capture.inspector-CTNlSaGW.js} +1 -1
- package/dist/assets/{registry-BQ9YcFZF.js → registry-wqakYaDW.js} +1 -1
- package/dist/assets/{relative-import-specifier-BvzqkvYS.js → relative-import-specifier-DXWVQf0o.js} +1 -1
- package/dist/assets/{render-env-F320_iHT.js → render-env-CN09NtDf.js} +1 -1
- package/dist/assets/{render-features-DFwHsGxu.js → render-features-HCEupUJ6.js} +1 -1
- package/dist/assets/{render-settings-BPcHd4LA.js → render-settings-Clt6d05o.js} +1 -1
- package/dist/assets/{resolve-three-CnxafYrg.js → resolve-three-CLzKVMx2.js} +13 -13
- package/dist/assets/{root-seam-contract-CueaHgB9.js → root-seam-contract-D2uQHWF9.js} +1 -1
- package/dist/assets/{run-selection-BMQWV9Fn.js → run-selection-AyelFc9T.js} +1 -1
- package/dist/assets/{scene-capture-DcMYbX9_.js → scene-capture-WbPcLfJl.js} +1 -1
- package/dist/assets/{scene-document.service-CZpLI3b6.js → scene-document.service-4U6rDhCp.js} +2 -2
- package/dist/assets/{scene-framing-nVyYC4Y-.js → scene-framing-DzSL2Cld.js} +1 -1
- package/dist/assets/{seeded-random-D0QPgfm6.js → seeded-random-tpdJjdqy.js} +1 -1
- package/dist/assets/{setup-renderer-ji8Qt-PP.js → setup-renderer-B5vZmCyu.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-owosRx07.js → source-object3d-authoring-adapter-BQnQ3Qzg.js} +1 -1
- package/dist/assets/{source-persistence-backend-Djuk0m-7.js → source-persistence-backend-uyd6NiWD.js} +1 -1
- package/dist/assets/stage-keyboard-B2yrk2zu.js +1 -0
- package/dist/assets/stage-overlay-set-Cqtz3s06.js +1 -0
- package/dist/assets/{stage-presence-markers-CQlXR9fX.js → stage-presence-markers-BgLs0Aj5.js} +1 -1
- package/dist/assets/stage-transform-tools-BHcz53td.js +1 -0
- package/dist/assets/{standard-viewport-dressing-e4mnLmI6.js → standard-viewport-dressing-uhv_3JvQ.js} +2 -2
- package/dist/assets/{state-watch.action-Cv3W67Kr.js → state-watch.action-BJ08HgcO.js} +1 -1
- package/dist/assets/{state-watch.menu-Cuziz9RM.js → state-watch.menu-rAULwijr.js} +1 -1
- package/dist/assets/{state-watch.utility-B1zkFd_6.js → state-watch.utility-eEbQcj8t.js} +1 -1
- package/dist/assets/{story-capture-Drqhmo7i.js → story-capture-B8wfSf5s.js} +1 -1
- package/dist/assets/{story-documents-Cjoy-ydN.js → story-documents-Cm4jCkW5.js} +2 -2
- package/dist/assets/{story-documents.service-gVxcUtso.js → story-documents.service-BDvQCslK.js} +1 -1
- package/dist/assets/{story-documents.service-Csto-LsX.js → story-documents.service-Cgtg6rXn.js} +1 -1
- package/dist/assets/story-media-presence-SGlp_afL.js +1 -0
- package/dist/assets/{story-pixi-preview-uA6AevDw.js → story-pixi-preview-D62Q_vIW.js} +1 -1
- package/dist/assets/{story-presentation-DgAoj9Qt.js → story-presentation-CofUdEU7.js} +1 -1
- package/dist/assets/{story-three-preview-CQYi1rZ_.js → story-three-preview-B9O1wapP.js} +2 -2
- package/dist/assets/{studio-environment-DK0ke0m0.js → studio-environment-BIhqrtFc.js} +1 -1
- package/dist/assets/{surface-state-DlUcJe84.js → surface-state-DrM3wsrr.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-92aOVqyZ.js → syntactic-prop-specs-BGz0N7Dg.js} +1 -1
- package/dist/assets/{team-playtest.service-CGBismiY.js → team-playtest.service-CiE8UJAe.js} +1 -1
- package/dist/assets/{three-bdxPiUPb.js → three-BQfhEwUz.js} +1 -1
- package/dist/assets/{three-authoring-adapter-BuqO9MDt.js → three-authoring-adapter-COBwREQO.js} +1 -1
- package/dist/assets/three-authoring.service-C0azvoq8.js +2 -0
- package/dist/assets/{three-ingest-runtime-CwRnwvb0.js → three-ingest-runtime-BnRF_nJN.js} +1 -1
- package/dist/assets/three-integration-DeWYFf1x.js +2 -0
- package/dist/assets/three-integration.service-CoWCBTmg.js +1 -0
- package/dist/assets/{three-projection-core-BO23VKAP.js → three-projection-core-PQm-CO61.js} +1 -1
- package/dist/assets/{three-state-BhQOBgKC.js → three-state-C7khRIQE.js} +1 -1
- package/dist/assets/{three-story-capture.service-BAtrzxHq.js → three-story-capture.service-B0oiGIfp.js} +2 -2
- package/dist/assets/three-story-model-D7g2pqfJ.js +1 -0
- package/dist/assets/{three-viewport-presentation-CWanX03c.js → three-viewport-presentation-B_tBudM-.js} +5 -5
- package/dist/assets/transform-mode-request-DWM6BdRA.js +1 -0
- package/dist/assets/{transport-strip-CFLRAIQd.js → transport-strip-vgXGDgkI.js} +1 -1
- package/dist/assets/transport.header-CfVHXjrT.js +1 -0
- package/dist/assets/{tuples-BKzzn3tK.js → tuples-BnYrlQqS.js} +1 -1
- package/dist/assets/ui-board-document-B_-K9luq.js +2 -0
- package/dist/assets/{user-data-DfBtZvxw.js → user-data-CifDDvSr.js} +1 -1
- package/dist/assets/{utility-view-state-CL4NJh3n.js → utility-view-state-BPl8Asup.js} +1 -1
- package/dist/assets/{viewport-door-CuJjGYTz.js → viewport-door-BCXEYmon.js} +1 -1
- package/dist/assets/{viewport-root-presentation-CkSAEMH-.js → viewport-root-presentation-DJLpUuf0.js} +1 -1
- package/dist/assets/{viewport-surface-status-D3t-0oLs.js → viewport-surface-status-jwLhIK_M.js} +1 -1
- package/dist/assets/{webworkerAll-DCmB9rsA.js → webworkerAll-P6jePa6X.js} +1 -1
- package/dist/assets/{workspace-arrangement-C9uemwSK.js → workspace-arrangement-B_OcbQbj.js} +1 -1
- package/dist/assets/{world-documents-Dvn8e5I0.js → world-documents-Bx3j867R.js} +1 -1
- package/dist/assets/{world-root-stage-binding-BB7acZV_.js → world-root-stage-binding-LEhjWDkn.js} +1 -1
- package/dist/assets/{xstate-animation-binding-DctwT981.js → xstate-animation-binding-Dionc_fC.js} +1 -1
- package/dist/assets/{xstate-animation-meta-s4Vc8Wu3.js → xstate-animation-meta-XEmD_qc_.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/CanvasSceneViewport-Z8OReqpB.js +0 -1
- package/dist/assets/EntityModelDocument-BltE1A7W.js +0 -1
- package/dist/assets/InspectorObjectPreview-BpttBw3o.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-BHuuMZnS.js +0 -1
- package/dist/assets/Object3DDocumentViewport-ByDDwGJD.js +0 -2
- package/dist/assets/StageHost-D1Sz5aud.js +0 -2
- package/dist/assets/autoplay.service-DncOrn-K.js +0 -1
- package/dist/assets/blender-runtime-host-CcqXT39s.js +0 -4
- package/dist/assets/blender-runtime.document-DDW5jIJe.js +0 -12
- package/dist/assets/build-player.document-DJQLP4xM.js +0 -1
- package/dist/assets/component-board.service-yIS2UB-T.js +0 -2
- package/dist/assets/component-verbs.service-CJYq28Zw.js +0 -1
- package/dist/assets/configurations-BcYOQ7i-.js +0 -1
- package/dist/assets/deferred-ingest-play-DZiOEH9a.js +0 -2
- package/dist/assets/design-time-layers-DT4X-pJp.js +0 -1
- package/dist/assets/editor-api-CPh65aBN.js +0 -1
- package/dist/assets/game-document.service-CxfiFnxt.js +0 -1
- package/dist/assets/game-network-BPTyOFqA.js +0 -22
- package/dist/assets/gameplay-export-CRnHCUBb.js +0 -1
- package/dist/assets/gameplay-replay-yPaMxi2o.js +0 -1
- package/dist/assets/generation-jobs-Cy1oE-Ff.js +0 -1
- package/dist/assets/index-BPuw4yre.js +0 -1
- package/dist/assets/ingest-siblings-2QHhcCgA.js +0 -1
- package/dist/assets/instances.command-BJ-I9vtW.js +0 -1
- package/dist/assets/live-project-verbs-B7S-wGjC.js +0 -1
- package/dist/assets/network-observer.service-CjeDB1Id.js +0 -1
- package/dist/assets/object3d-document-session-registry-CWaOPDYg.js +0 -2
- package/dist/assets/play.command-C9QyYFgv.js +0 -2
- package/dist/assets/r3f-design-session-Cyy1sDGH.js +0 -2
- package/dist/assets/stage-keyboard-G6HMStmP.js +0 -1
- package/dist/assets/stage-overlay-set-ChHqsFiR.js +0 -1
- package/dist/assets/stage-transform-tools-BM9u9Awe.js +0 -1
- package/dist/assets/story-media-presence-CYc2fP4y.js +0 -1
- package/dist/assets/three-authoring.service-CMym8IbB.js +0 -2
- package/dist/assets/three-integration-BHoulbny.js +0 -2
- package/dist/assets/three-integration.service-BlgF9hV3.js +0 -1
- package/dist/assets/three-story-model-D_bo7Gl-.js +0 -1
- package/dist/assets/transform-mode-request-Bg6T_rOC.js +0 -1
- package/dist/assets/transport.header-B3dK1KaC.js +0 -1
- package/dist/assets/ui-board-document-DMxgQ-9n.js +0 -2
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StageHost-D1Sz5aud.js","assets/index-CvGsVzTo.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/three-state-BhQOBgKC.js","assets/editor-shell-store-Bro0arjr.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-BK3fNRb7.js","assets/workspace-arrangement-C9uemwSK.js","assets/user-data-DfBtZvxw.js","assets/entity-object-BFppZ54X.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-e4mnLmI6.js","assets/content-bounds-BFpR_e--.js","assets/hierarchy-marks-Pb6wnNcu.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/model-inspection-Dd-hn5v2.js","assets/three-viewport-presentation-CWanX03c.js","assets/clip-planes-CnAI6DZn.js","assets/three-bdxPiUPb.js","assets/component-instance-root-MBgAuUpp.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/model-thumbnail-BDU_QU37.js","assets/studio-environment-DK0ke0m0.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/three-integration-BHoulbny.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-BaxBYi7u.js","assets/root-stacking-BEd9ZvxC.js","assets/object3d-document-session-registry-CWaOPDYg.js","assets/viewport-door-CuJjGYTz.js","assets/asset-preview-B7j9QV6N.js","assets/bitmap-label-Ct4k6ehY.js","assets/scene-framing-nVyYC4Y-.js","assets/source-object3d-authoring-adapter-owosRx07.js","assets/three-projection-core-BO23VKAP.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-CFLRAIQd.js","assets/viewport-surface-status-D3t-0oLs.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ae as r,_ as a}from"./index-CvGsVzTo.js";import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as n}from"./index-nmcBqr7Y.js";import{V as c,O as u}from"./viewport-surface-status-D3t-0oLs.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-D1Sz5aud.js").then(e=>e.S),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60]))).Object3DDocumentViewport}));function l(t){return i(t.documentId,t.chromeless),o.jsx(n.Suspense,{fallback:o.jsx(c,{testId:"object3d-document-loading",children:u}),children:o.jsx(s,{...t})})}function i(t,e=!1){n.useEffect(()=>{if(!e)return r(t)},[t,e])}export{l as O};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DHhMOs_s.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/stage-transform-tools-BM9u9Awe.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-CvGsVzTo.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/editor-shell-store-Bro0arjr.js","assets/output-pass-HurwNl0G.js","assets/Pass-D1MRT672.js","assets/editor-layers-BK3fNRb7.js","assets/workspace-arrangement-C9uemwSK.js","assets/user-data-DfBtZvxw.js","assets/entity-object-BFppZ54X.js","assets/three-contract-Dkt6PmWY.js","assets/Toolbar-BJRJsbHG.js","assets/transform-mode-request-Bg6T_rOC.js","assets/three-state-BhQOBgKC.js","assets/standard-viewport-dressing-e4mnLmI6.js","assets/content-bounds-BFpR_e--.js","assets/hierarchy-marks-Pb6wnNcu.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/model-inspection-Dd-hn5v2.js","assets/three-viewport-presentation-CWanX03c.js","assets/clip-planes-CnAI6DZn.js","assets/three-bdxPiUPb.js","assets/component-instance-root-MBgAuUpp.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/model-thumbnail-BDU_QU37.js","assets/studio-environment-DK0ke0m0.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/three-integration-BHoulbny.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-BaxBYi7u.js","assets/root-stacking-BEd9ZvxC.js","assets/object3d-document-session-registry-CWaOPDYg.js","assets/viewport-door-CuJjGYTz.js","assets/asset-preview-B7j9QV6N.js","assets/bitmap-label-Ct4k6ehY.js","assets/scene-framing-nVyYC4Y-.js","assets/source-object3d-authoring-adapter-owosRx07.js","assets/three-projection-core-BO23VKAP.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-CFLRAIQd.js","assets/viewport-surface-status-D3t-0oLs.js","assets/stage-overlay-set-ChHqsFiR.js","assets/TransientHint-CDvYgnzu.js","assets/ViewportShadingMenu-CrTY7tnk.js","assets/stage-keyboard-G6HMStmP.js","assets/camera-authoring-DYjhU5Zp.js","assets/stage-presence-markers-CQlXR9fX.js","assets/collaboration-presence-Q6zcL5v0.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{kH as Cr,lg as ur,kO as Ie,O as us,eU as zn,lD as In,_ as Ke,aJ as Nn,lE as $n,j0 as Ks,cE as Ue,aL as Te,a1 as we,cJ as Gn,dT as Un,a0 as Ne,lF as qn,cK as Kn,cL as Yn,aK as hs,cM as ds,lG as Ys,lH as Xn,iW as Zn,dG as vr,dH as ps,dI as ct,af as qe,en as Jn,lI as Qn,lJ as ei,a2 as ve,ae as ti,lK as ri,lL as si,lM as ni,lN as ii,lO as oi,hi as ai,lP as ci,b4 as li,lQ as Xs,aP as ui,gJ as hi,lR as fs,lS as ms,lT as gs,b0 as vs,kG as ws,fw as bs,lU as di,aI as pi,dK as fi,dJ as ys,lV as mi,dQ as gi,lW as vi,gg as Ss,lX as wi,lY as bi,lZ as yi,hd as Si,dk as xi,kP as Pi,kF as Ci,fR as ki,ga as Mi,l_ as xs,aG as Ei,l$ as Oi,dW as Ri}from"./index-CvGsVzTo.js";import{a as d}from"./jsx-runtime-DPjLkJKQ.js";import{t as wr,a as ji}from"./three-state-BhQOBgKC.js";import{i as N,b as Ti,a as Vi,w as Ai,c as Li,s as Ps}from"./standard-viewport-dressing-e4mnLmI6.js";import{r as f}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as br}from"./content-bounds-BFpR_e--.js";import{EDITOR_LAYER as Zs,isInEditorOwnedSubtree as Fi}from"./editor-layers-BK3fNRb7.js";import{createStandardEnvironment as Di}from"./environment-Dg-YaLsA.js";import{a as _i}from"./preview-renderer-BrYNFV1p.js";import{s as Js}from"./user-data-DfBtZvxw.js";import{s as Hi,a as Bi}from"./live-mixers-B-bwLZ7c.js";import{n as Wi,T as Qs,ej as kr,c1 as Cs,cu as zi,cp as Vt,aI as Ii,d as Ni,ct as $i,cx as Gi,_ as pe,bh as Lt,N as en,M as tn,dg as rn,df as sn,fo as z,d5 as yr,d9 as Ui,L as ks,I as Sr,ez as qi,dp as Ms,cj as xr,em as Ki,c0 as Yi,aO as Xi,bX as Zi,fx as Es,bi as Ji,eu as Qi,cg as me,el as nn,A as eo,d7 as to,eW as Os,fd as Tt,e6 as Rs,cm as js}from"./three.core-3arARmh6.js";import{l as ro,w as so}from"./live-gesture-lock-DJbrjOqf.js";import{v as no}from"./output-pass-HurwNl0G.js";import{a as Ve}from"./three-contract-Dkt6PmWY.js";import{d as Ft,f as io}from"./model-inspection-Dd-hn5v2.js";import{c as oo,p as At,d as Ts,i as Vs,r as ao,b as co,a as lo,t as As,s as Ls,C as uo,e as ho,f as po,E as fo}from"./three-viewport-presentation-CWanX03c.js";import{s as Pr}from"./workspace-arrangement-C9uemwSK.js";import{a as mo,b as go,L as vo}from"./LineSegments2-DN9pUfWA.js";import{s as wo,o as bo,a as yo,c as So}from"./object3d-document-session-registry-CWaOPDYg.js";import{S as xo}from"./source-object3d-authoring-adapter-owosRx07.js";import{s as Po,i as hr}from"./editor-presentation-activity-CqJH4G9t.js";import{a as Co}from"./three-integration-BHoulbny.js";import{r as Fs,d as Ds}from"./viewport-door-CuJjGYTz.js";import{T as ko}from"./transport-strip-CFLRAIQd.js";import{V as Mo,O as Eo}from"./viewport-surface-status-D3t-0oLs.js";import{t as on}from"./editor-shell-store-Bro0arjr.js";const an=30;function cn(n,e,t){return n<e?e:n>t?t:n}function Oo(n,e){const t=n.animations;if(t.length===0)return null;const r=new Wi(n);let i=t[0];if(!i)return null;const a=o=>{r.stopAllAction();const l=r.clipAction(o);l.paused=!1,l.play(),i=o};a(i);const c=e.attach({id:n.uuid,label:n.name||i.name||"Clip",range:()=>({start:0,end:i?.duration??0,fps:an}),seek:o=>{r.setTime(cn(o,0,i?.duration??0))},clips:()=>t.map(o=>({id:o.name,label:o.name})),setClip:o=>{const l=t.find(p=>p.name===o);l&&a(l)}});return()=>{c(),r.stopAllAction(),r.uncacheRoot(n)}}function Ro(n,e){const t=Bi(n);if(!t)return null;let r=t.clips.values().next().value;if(!r)return null;const i=c=>{t.mixer.stopAllAction();const o=t.mixer.clipAction(c);o.paused=!1,o.play(),r=c};return e.attach({id:n.uuid,label:n.name||r.name||"Animation",range:()=>({start:0,end:r?.duration??0,fps:an}),seek:c=>{t.mixer.setTime(cn(c,0,r?.duration??0))},clips:()=>[...t.clips.entries()].map(([c,o])=>({id:c,label:o.name||c})),setClip:c=>{const o=t.clips.get(c);o&&i(o)}})}function _s(n,e,t={}){const r=new Map,i=()=>{const o=new Set;(typeof n=="function"?n():n)?.traverse(p=>{if(r.has(p.uuid)){o.add(p.uuid);return}const x=Ro(p,e)??Oo(p,e);x&&(r.set(p.uuid,x),o.add(p.uuid))});for(const[p,x]of[...r])o.has(p)||(x(),r.delete(p))};i();const a=t.rescanOnLiveMixers,c=a?Hi(()=>{a()&&i()}):()=>{};return{refresh:i,dispose:()=>{c();for(const o of r.values())o();r.clear()}}}const ke=()=>globalThis.performance?.now()??Date.now();function jo(n,e){return n.length===0?0:n[Math.min(n.length-1,Math.floor((n.length-1)*e))]??0}function To(n=!1){const e=new Set,t=[],r=new Map,i=new Map,a=new Map;let c=[],o=[],l=n,p=!1,x=!1,v=0,P=0,w=0;const L=[];let F=0,M=0,C={gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null},D={enabled:l,recording:x,fps:0,cpuMs:0,p95Ms:0,p99Ms:0,frames:[],phases:[],systems:[],components:[],render:C};function X(){const b=t.at(-1),I=t.slice();let _;const U=j=>(_??=I.map(H=>H.intervalMs).filter(H=>H>0).sort((H,T)=>H-T),jo(_,j));D={enabled:l,recording:x,fps:b?.intervalMs?1e3/b.intervalMs:0,cpuMs:b?.cpuMs??0,get p95Ms(){return U(.95)},get p99Ms(){return U(.99)},frames:I,phases:b?.phases??[],systems:[...i].map(([j,H])=>({name:j,ms:H})).sort((j,H)=>H.ms-j.ms),components:[...a].map(([j,H])=>({name:j,ms:H})).sort((j,H)=>H.ms-j.ms),render:C};for(const j of e)j()}return{get enabled(){return l},set enabled(b){l!==b&&(l=b,b&&!p&&(w=0),X())},get telemetryEnabled(){return p},set telemetryEnabled(b){if(p===b)return;const I=!l&&!p;p=b,b&&I&&(w=0),X()},get recording(){return x},startRecording(){const b=!l&&!p;l=!0,b&&(w=0),x=!0,t.length=0,X()},stopRecording(){x=!1,X()},clear(){t.length=0,X()},beginFrame(){!l&&!p||(r.clear(),i.clear(),a.clear(),c=[],o=[],L.length=0,C={gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null},P=ke())},beginPhase(){l&&L.push(ke())},endPhase(b){if(!l)return;const I=L.pop()??P,_=ke()-I,U=r.get(b);r.set(b,{ms:(U?.ms??0)+_,startMs:U?.startMs??I-P}),x&&performance.measure(`volter.phase.${b}`,{start:I,duration:_})},systemObserver:{beginSystem(){l&&(F=ke())},endSystem(b,I,_){if(!l)return;const U=ke(),j=`${b} / ${I} / ${_}`;i.set(j,(i.get(j)??0)+U-F),c.push({name:j,phase:I,startMs:F-P,ms:U-F})}},beginComponent(){x&&(M=ke())},endComponent(b,I=""){if(!x)return;const _=ke();a.set(b,(a.get(b)??0)+_-M),o.push({name:b,phase:I,startMs:M-P,ms:_-M})},reportRender(b){l&&(C={gpuMs:b.gpuMs??C.gpuMs,drawCalls:C.drawCalls+b.drawCalls,triangles:C.triangles+b.triangles,geometries:C.geometries+b.geometries,textures:C.textures+b.textures,renderPasses:b.renderPasses===void 0?C.renderPasses:(C.renderPasses??0)+b.renderPasses})},endFrame(){if(!l&&!p)return;const b=ke(),I=w===0?0:P-w;w=P;const _={id:++v,timestamp:b,intervalMs:I,cpuMs:b-P,phases:[...r].map(([U,{ms:j,startMs:H}])=>({name:U,ms:j,startMs:H})).sort((U,j)=>j.ms-U.ms),systems:c.slice(),components:o.slice(),render:{...C}};t.push(_),t.length>600&&t.splice(0,t.length-600),x&&performance.measure("volter.frame",{start:P,duration:_.cpuMs}),X()},subscribe(b){return e.add(b),()=>{e.delete(b)}},getSnapshot(){return D},exportJSON(){return JSON.stringify({version:2,capturedAt:new Date().toISOString(),frames:t},null,2)}}}const ln=256;function Vo(n){const e=Math.min(1,Math.max(0,n));return e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055}function dr(n,e,t){const r=Math.hypot(n,e,t)||1;return[n/r,e/r,t/r]}function Ao(n=ln){const e=document.createElement("canvas");e.width=n,e.height=n;const t=e.getContext("2d");if(!t)return e;const r=t.createImageData(n,n),i=dr(-.45,.62,.64),a=dr(.65,-.35,.5),c=dr(i[0],i[1],i[2]+1),o=[.7,.69,.68],l=[.34,.4,.52],p=[.85,.88,1];for(let x=0;x<n;x++)for(let v=0;v<n;v++){const P=(v+.5)/n/.5-1,w=1-(x+.5)/n/.5,L=P*P+w*w,F=L>1,M=F?1/Math.sqrt(L):1,C=P*M,D=w*M,X=F?0:Math.sqrt(Math.max(0,1-L)),b=Math.max(0,C*i[0]+D*i[1]+X*i[2]),I=Math.max(0,C*a[0]+D*a[1]+X*a[2]),_=Math.max(0,C*c[0]+D*c[1]+X*c[2])**42*.5,U=(1-X)**3.2*.4,j=(x*n+v)*4;for(let H=0;H<3;H++){const T=o[H]*(.16+.8*b)+l[H]*.3*I+p[H]*U+_;r.data[j+H]=Math.round(Vo(T)*255)}r.data[j+3]=255}return t.putImageData(r,0,0),e}function Lo(n=ln){const e=new Qs(Ao(n));return e.colorSpace=kr,e.minFilter=Cs,e.magFilter=Cs,e.generateMipmaps=!1,e.needsUpdate=!0,e}function Fo(n){return n.color?.clone()??new pe(12502993)}function pr(n,e){return n[e]??null}class Do{_derived=new Map;_normals=new zi;_matcap=null;_matcapTexture=null;_overdraw=new Vt({color:16777215,transparent:!0,opacity:.08,depthTest:!1,depthWrite:!1,blending:Ni,side:Ii,toneMapped:!1});render(e,t,r,i=()=>!0){if(t==="solid"||t==="preview"||t==="rendered"){r();return}const a=[];e.traverse(c=>{const o=c;!o.isMesh||!o.material||!i(o)||(a.push({mesh:o,material:o.material}),o.material=Array.isArray(o.material)?o.material.map(l=>this._materialFor(l,t)):this._materialFor(o.material,t))});try{r()}finally{for(const{mesh:c,material:o}of a)c.material=o}}dispose(){for(const e of this._derived.values())e.clay.dispose(),e.unlit.dispose(),e.wireframe.dispose();this._derived.clear(),this._normals.dispose(),this._overdraw.dispose(),this._matcap?.dispose(),this._matcapTexture?.dispose(),this._matcap=null,this._matcapTexture=null}_materialFor(e,t){if(t==="normals")return this._normals;if(t==="overdraw")return this._overdraw;if(t==="matcap")return this._matcap||(this._matcapTexture=Lo(),this._matcap=new $i({matcap:this._matcapTexture,toneMapped:!1})),this._matcap;let r=this._derived.get(e);if(!r){const i={color:Fo(e),map:pr(e,"map"),alphaMap:pr(e,"alphaMap"),alphaTest:e.alphaTest,opacity:e.opacity,transparent:e.transparent,side:e.side,depthTest:e.depthTest,depthWrite:e.depthWrite,vertexColors:!!e.vertexColors,fog:e.fog??!0};r={clay:new Gi({color:11450048,roughness:.82,metalness:0,flatShading:!0,alphaMap:pr(e,"alphaMap"),alphaTest:e.alphaTest,opacity:e.opacity,transparent:e.transparent,side:e.side,depthTest:e.depthTest,depthWrite:e.depthWrite}),unlit:new Vt(i),wireframe:new Vt({...i,wireframe:!0})},this._derived.set(e,r)}return r[t]}}class _o extends Lt{constructor(e,t){super(),this.bones=e;const r=new Set;for(const o of e){const l=o.parent;l?.isBone&&this.addSegment(l,o,r);for(const p of o.children)p.isBone&&this.addSegment(o,p,r)}this.linePositions=new Float32Array(Math.max(this.segments.length*6,6));const i=new mo;i.setPositions(this.linePositions),this.lineMaterial=new go({color:t,linewidth:5,worldUnits:!1,depthTest:!1,depthWrite:!1,toneMapped:!1,alphaToCoverage:!0}),this.lines=new vo(i,this.lineMaterial),this.lines.onBeforeRender=o=>{o.getSize(this.lineMaterial.resolution)},this.lines.frustumCulled=!1,this.lines.renderOrder=1001,this.add(this.lines),this.pointPositions=new Float32Array(Math.max(e.length*3,3));const a=new en;a.setAttribute("position",new tn(this.pointPositions,3));const c=new rn({color:t,size:11,sizeAttenuation:!1,depthTest:!1,depthWrite:!1,toneMapped:!1});this.points=new sn(a,c),this.points.frustumCulled=!1,this.points.renderOrder=1002,this.add(this.points),this.name="__object3d_document_bone_selection",Pr(this,"editorHelper",!0),this.traverse(o=>o.layers.set(Zs)),this.update()}segments=[];linePositions;pointPositions;lines;lineMaterial;points;worldPosition=new z;setColor(e){this.lineMaterial.color.setHex(e),this.points.material.color.setHex(e)}update(){let e=0;for(const[i,a]of this.segments)i.getWorldPosition(this.worldPosition),this.linePositions.set(this.worldPosition.toArray(),e),a.getWorldPosition(this.worldPosition),this.linePositions.set(this.worldPosition.toArray(),e+3),e+=6;const t=this.lines.geometry.getAttribute("instanceStart");t&&(t.data.needsUpdate=!0),e=0;for(const i of this.bones)i.getWorldPosition(this.worldPosition),this.pointPositions.set(this.worldPosition.toArray(),e),e+=3;const r=this.points.geometry.getAttribute("position");r&&(r.needsUpdate=!0)}dispose(){this.lines.geometry.dispose(),this.lineMaterial.dispose(),this.points.geometry.dispose(),this.points.material.dispose()}addSegment(e,t,r){const i=`${e.uuid}:${t.uuid}`;r.has(i)||(r.add(i),this.segments.push([e,t]))}}const Ho="skeletons",fr=new pe(58879),mr=new pe(16756736);function Bo(n){const e=n.geometry.getAttribute("color");for(let r=0;r<e.count;r+=2)e.setXYZ(r,fr.r,fr.g,fr.b),r+1<e.count&&e.setXYZ(r+1,mr.r,mr.g,mr.b);e.needsUpdate=!0,n.renderOrder=999;const t=n.material;t.depthTest=!1,t.depthWrite=!1,t.toneMapped=!1,Pr(n,"editorHelper",!0),Pr(n,"editorHelperType",Ho),n.traverse(r=>r.layers.set(Zs))}const Wo=1,zo=700,Io=.001,No=Math.PI-.001,$o=n=>n<.5?4*n*n*n:1-(-2*n+2)**3/2,Go=n=>n;function $e(n,e){return typeof n=="number"&&Number.isFinite(n)?n:e}const Hs={mode:"solid",background:"neutral",projection:"perspective",skeleton:!1,bounds:!1},Bs=1119773;class Uo{constructor(e,t,r,i,a,c,o=new pe(2106410),l=null){this.documentId=e,this.root=t,this.scene=r,this.renderer=i,this.viewport=a,this.authoring=c,this.neutralBackground=o,this.frameBox=l,this.unsubscribeSelectionTheme=Cr(i.domElement,this.syncSelectionTheme),a.orbitControls.addEventListener("start",this.cancelLookForHuman),this.unsubscribeRotateStart=a.onRotateStart(this.autoPerspective),this.unsubscribeAxisView=a.onAxisView(this.axisView)}profiler=To();shading=new Do;helpers=[];skeletonHelper=null;boundsHelper=null;boneSelectionHighlight=null;boneSelectionSignature="";composer=null;composerLoading=!1;disposed=!1;sceneRenderPass=null;selectionOutline=null;selectionOutlinePass=null;selectedObjects=[];selectionOrigins=null;renderWidth=1;renderHeight=1;orthographicCamera=new yr;captureAspect=null;cameraOverride=null;cameraViewSource=null;through=null;leaving=!1;viewMemo=null;throughPerspective=new Ui;throughOrthographic=new yr;beforeRender=null;state=Hs;version=0;listeners=new Set;unsubscribeSelectionTheme=()=>{};flight=null;flightPose=new z;topologyOverlay=null;topologyFollowers=[];unsubscribeRotateStart;unsubscribeAxisView;axisView=()=>(this.leaveCameraView(!1),this.settleFlight("superseded"),ur().autoPerspective&&this.setProjection("orthographic"),!0);autoPerspective=()=>{if(!ur().autoPerspective||this.cameraView()!==null||this.state.projection!=="orthographic")return;const e=this.viewport.camera,t=e.position.clone().sub(this.viewport.orbitControls.target),r=new z(0,1,0).applyQuaternion(e.quaternion);Ft(t,r)!==null&&this.setProjection("perspective")};replaceContent(e,t){N(),this.selectionOutline?.selection.clear(),this.selectedObjects=[],this.boneSelectionSignature="",this.clearBoneSelectionHighlight(),this.clearSkeletonHelper(),this.clearBoundsHelper(),this.clearTopologyOverlay(),this.root=e,this.authoring=t,this.state.mode==="wireframe"&&this.buildTopologyOverlay(),this.state.bounds&&(this.boundsHelper=new ks(e,16757844),this.addHelper(this.boundsHelper,"bounds")),this.syncSelectionPresentation(),this.refreshSkeletonHelper(),this.notify()}cancelLookForHuman=()=>{this.settleFlight("human")};selectionColors=null;syncSelectionTheme=()=>{this.selectionColors=Ie(this.renderer.domElement);const e=this.selectionColors.visible;this.selectionOutline&&oo(this.selectionOutline,Ie(this.renderer.domElement)),this.boneSelectionHighlight?.setColor(e)};subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));getSnapshot=()=>this.version;presentation(){return this.state}resolveFrameBounds(e="selection"){const t=e==="all"?[]:this.authoring?.selection?.get()??[];if(t.length>0){const r=new Sr;let i=!1;for(const a of t){const c=this.authoring?Ve(this.authoring.hierarchy,a):null;if(!c)continue;const o=br(c);o.isEmpty()||(r.union(o),i=!0)}if(i)return r}return this.frameBox&&!this.frameBox.isEmpty()?this.frameBox:br(this.root)}frame(e=1,t="selection"){this.leaveCameraView(!1);const r=this.resolveFrameBounds(t);if(r.isEmpty()){let l=0,p=0;return this.root.traverse(x=>{const v=x.geometry;v&&(l+=1,p+=v.getAttribute("position")?.count??0)}),us.warn(`frame: nothing to frame — root "${this.root.name}" (${this.root.children.length} children, ${l} meshes, ${p} positions), selection ${JSON.stringify(this.authoring?.selection?.get()??[])}, frameBox ${this.frameBox?this.frameBox.isEmpty()?"empty":"set":"none"}`,"document"),!1}this.settleFlight("superseded");const i=r.getCenter(new z),a=this.viewport.camera.position.clone().sub(this.viewport.orbitControls.target).normalize();a.lengthSq()===0&&a.set(.8,.5,-1).normalize();const c=Math.min(10,Math.max(.1,$e(e,1))),o=At(r,this.viewport.camera,a)*c;return this.viewport.setPose(i.clone().addScaledVector(a,o),i),!0}orbit(e){return this.launchFlight($e(e.azimuth,0),$e(e.elevation,0),Math.min(60,Math.max(0,$e(e.duration,.6))),$o)}turntable(e){const t=$e(e.revolutions,1);return this.launchFlight(t*Math.PI*2,0,Math.min(60,Math.max(0,$e(e.seconds,6))),Go)}looking(){return this.flight!==null}launchFlight(e,t,r,i){this.settleFlight("superseded");const a=this.viewport.camera,c=this.viewport.orbitControls.target.clone(),o=new qi().setFromVector3(a.position.clone().sub(c)),l=o.radius>1e-4?o.radius:Math.max(this.resolveFrameBounds().getSize(new z).length(),1),p={pivot:c,radius:l,startTheta:o.theta,startPhi:o.phi,deltaTheta:e,deltaPhi:-t,duration:r,ease:i,elapsed:0,theta:o.theta,phi:o.phi,settle:null};this.flight=p;const x=new Promise(v=>{p.settle=v});return this.applyFlightPose(p,0),r<=0&&this.settleFlight(null),x}applyFlightPose(e,t){const r=e.ease(t);e.theta=e.startTheta+e.deltaTheta*r,e.phi=Math.min(No,Math.max(Io,e.startPhi+e.deltaPhi*r));const i=this.viewport.camera;i.position.setFromSphericalCoords(e.radius,e.phi,e.theta).add(e.pivot),this.viewport.orbitControls.target.copy(e.pivot),i.lookAt(e.pivot),i.updateMatrixWorld(),this.flightPose.copy(i.position)}advanceLook(e){const t=this.flight;if(!t)return;const r=Math.max(1e-4,t.radius*.001);if(this.viewport.camera.position.distanceToSquared(this.flightPose)>r*r){this.settleFlight("human");return}e>0&&Number.isFinite(e)&&(t.elapsed+=e);const i=t.duration<=0?1:Math.min(1,t.elapsed/t.duration);this.applyFlightPose(t,i),i>=1&&this.settleFlight(null)}settleFlight(e){const t=this.flight;if(!t)return;this.flight=null;const r={completed:e===null,azimuth:t.theta,elevation:Math.PI/2-t.phi,seconds:Math.min(t.elapsed,t.duration)};t.settle?.(e===null?r:{...r,cancelledBy:e})}select(e){N(),this.authoring&&zn(this.authoring,[...e])}selection(){return[...this.authoring?.selection?.get()??[]]}idForObject(e){return this.authoring?.hierarchy.idForObject3D?.(e)??null}syncSelectionPresentation(){N();const e=(this.authoring?.selection?.get()??[]).map(i=>this.authoring?Ve(this.authoring.hierarchy,i):null).filter(i=>i!==null);if(this.selectedObjects=e,this.selectionOutline&&(Ts(this.selectionOutline,this.selectionOutlineWanted?e:[]),this.syncComposerOutput()),this.selectionOrigins){const i=Ie(this.renderer.domElement);this.selectionOrigins.update(e,{visible:i.visible,...i.active?{active:i.active.visible}:{}})}const t=e.filter(i=>!!i.isBone),r=t.map(i=>i.uuid).join("\0");r!==this.boneSelectionSignature&&(this.boneSelectionSignature=r,this.clearBoneSelectionHighlight(),t.length>0&&(this.boneSelectionHighlight=new _o(t,Ie(this.renderer.domElement).visible),this.scene.add(this.boneSelectionHighlight)),this.refreshSkeletonHelper())}frameSelection(){return this.frameIds(this.authoring?.selection?.get()??[])}frameIds(e){this.leaveCameraView(!1),this.settleFlight("superseded");const t=e.map(r=>this.authoring?Ve(this.authoring.hierarchy,r):null).filter(r=>r!==null);return t.length===0?!1:t.every(r=>r.isBone)?(this.frameBones(t),!0):(this.viewport.focusOnMultiple(t),!0)}setViewPreset(e,t="bounds"){N(),this.leaveCameraView(!1),this.settleFlight("superseded");const r=io(e);let i,a;if(t==="view")i=this.viewport.orbitControls.target.clone(),a=this.viewport.camera.position.distanceTo(i);else{const l=this.resolveFrameBounds();if(l.isEmpty())return;i=l.getCenter(new z),a=At(l,this.viewport.camera,r)}const c=i.clone().addScaledVector(r,a),o=e==="top"?{x:0,y:0,z:-1}:e==="bottom"?{x:0,y:0,z:1}:{x:0,y:1,z:0};this.viewport.setPose(c,i,void 0,o),this.setProjection(e==="isometric"?"perspective":"orthographic")}setCameraPose(e,t,r){N(),this.leaveCameraView(!1),this.settleFlight("superseded"),this.viewport.setPose(e,t,r)}cameraPose(){return{position:this.viewport.camera.position.toArray(),target:this.viewport.orbitControls.target.toArray(),fov:this.viewport.camera.fov}}camera(){if(this.cameraOverride)return this.cameraOverride;const e=this.drawnCamera();return this.viewport.setGizmoCamera(e===this.viewport.camera?null:e),e}drawnCamera(){const e=this.through?this.cameraView():null;return e?this.throughCamera(e):(this.through&&!this.leaving&&(this.leaving=!0,queueMicrotask(()=>{this.leaving=!1,this.through&&!this.cameraView()&&this.leaveCameraView(!1)})),this.state.projection==="perspective"?this.viewport.camera:(this.syncOrthographicCamera(),this.orthographicCamera))}setCameraViewSource(e){this.cameraViewSource!==e&&(this.cameraViewSource=e,e||this.leaveCameraView(!1),this.notify())}hasCameraView(){return this.cameraViewSource!==null}cameraView(){const e=this.through,t=this.cameraViewSource;if(!e||!t)return null;const r=this.renderer.domElement,i=this.captureAspect?{width:this.captureAspect,height:1}:{width:r.clientWidth,height:r.clientHeight},a=this.viewport.camera,c=e.locked?`${a.position.toArray().join(",")}|${a.quaternion.toArray().join(",")}`:"",o=`${e.camera}|${i.width}|${i.height}|${e.zoom}|${e.offset.join(",")}|${c}`;if(this.viewMemo?.key===o)return this.viewMemo.view;const l=t.view(e.camera,i,e.zoom,e.offset),p=l&&e.locked?{...l,position:a.position.toArray(),quaternion:a.quaternion.toArray()}:l;return this.viewMemo={key:o,view:p},queueMicrotask(()=>{this.viewMemo=null}),p}toggleCameraView(){if(this.through)return this.leaveCameraView(!0),!0;const e=this.cameraViewSource,t=e?.camera()??null;if(!e)return!1;if(t===null)return us.warn("camera view: No active camera — the scene has no camera to look through","document"),!1;N(),this.settleFlight("superseded");const r=this.viewport,i=r.orbitControls,a=i.enableDamping;return i.enableDamping=!1,i.update(),i.enableDamping=a,this.through={camera:t,zoom:e.zoom.opening,offset:[0,0],left:{position:r.camera.position.clone(),target:r.orbitControls.target.clone(),up:r.camera.up.clone(),projection:this.state.projection},release:this.captureCameraViewInput(),locked:!1},e.showing?.(t),this.notify(),!0}cameraViewLocked(){return!this.through||!this.cameraViewSource?.setPose?null:this.through.locked}toggleCameraViewLock(){const e=this.through,t=this.cameraViewSource;if(!(!e||!t?.setPose)){if(e.release(),e.locked=!e.locked,!e.locked)e.release=this.captureCameraViewInput();else{const r=this.cameraView(),i=this.viewport.orbitControls,a=this.viewport.camera;if(r){const M=new z(...r.position),C=new Ms(...r.quaternion),D=e.left.position.distanceTo(e.left.target);a.up.set(0,1,0).applyQuaternion(C),a.position.copy(M),a.quaternion.copy(C),i.target.copy(M).addScaledVector(new z(0,0,-1).applyQuaternion(C),D),i.update()}const c=i.enabled;i.enabled=!0;const o=i.enableDamping;i.enableDamping=!1;const l=e.camera,p=M=>({position:a.position.toArray(),quaternion:a.quaternion.toArray(),final:M});let x=!1,v=null,P=!1;const w=M=>{if(x){v={...M,final:M.final||(v?.final??!1)};return}x=!0,v=null,Promise.resolve(t.setPose(l,M.position,M.quaternion,M.final)).catch(()=>{}).finally(()=>{x=!1,v&&w(v)})},L=()=>{P=!0,N(),this.notify(),w(p(!1))},F=()=>{P&&(P=!1,w(p(!0)))};i.addEventListener("change",L),i.addEventListener("end",F),e.release=()=>{F(),i.removeEventListener("change",L),i.removeEventListener("end",F),i.enabled=c,i.enableDamping=o}}this.viewMemo=null,N(),this.notify()}}cameraViewZoom(){return this.through?.zoom??null}setCameraViewZoom(e){const t=this.through,r=this.cameraViewSource;!t||!r||!Number.isFinite(e)||e<=0||(t.zoom=Math.min(r.zoom.max,Math.max(r.zoom.min,e)),N(),this.notify())}zoomCameraView(e){this.through&&this.setCameraViewZoom(this.through.zoom*e)}panCameraView(e,t){const r=this.through,i=this.cameraViewSource;if(!r||!i)return;const[a,c]=i.pan(r.offset,r.zoom,e,t);r.offset=[a,c],N(),this.notify()}leaveCameraView(e){const t=this.through;if(!t)return;const r=this.cameraView();t.release(),this.through=null,this.viewMemo=null,this.cameraViewSource?.showing?.(null),this.viewport.setGizmoCamera(null);const i=this.viewport;if(e)i.camera.position.copy(t.left.position),i.camera.up.copy(t.left.up),i.orbitControls.target.copy(t.left.target),this.state={...this.state,projection:t.left.projection};else if(r){const a=t.left.position.distanceTo(t.left.target),c=new z(...r.position),o=new Ms(...r.quaternion),l=new z(0,0,-1).applyQuaternion(o);i.camera.up.set(0,1,0).applyQuaternion(o),i.camera.position.copy(c),i.orbitControls.target.copy(c).addScaledVector(l,a);const p=Ft(t.left.position.clone().sub(t.left.target),t.left.up)!==null,x=ur().autoPerspective&&p?"perspective":t.left.projection;this.state={...this.state,projection:x}}i.camera.lookAt(i.orbitControls.target),i.orbitControls.update(),N(),this.notify()}throughCamera(e){const{left:t,right:r,top:i,bottom:a}=e.window,c=this.viewport.camera.layers.mask;if(e.projection==="orthographic"){const l=this.throughOrthographic;return Object.assign(l,{left:t,right:r,top:i,bottom:a,near:e.near,far:e.far,zoom:1}),l.position.set(...e.position),l.quaternion.set(...e.quaternion),l.layers.mask=c,l.updateProjectionMatrix(),l.updateMatrixWorld(!0),l}const o=this.throughPerspective;return o.near=e.near,o.far=e.far,o.fov=xr.radToDeg(2*Math.atan((i-a)/2)),o.aspect=(r-t)/(i-a),o.zoom=1,o.position.set(...e.position),o.quaternion.set(...e.quaternion),o.layers.mask=c,o.projectionMatrix.makePerspective(t*e.near,r*e.near,i*e.near,a*e.near,e.near,e.far),o.projectionMatrixInverse.copy(o.projectionMatrix).invert(),o.updateMatrixWorld(!0),o}captureCameraViewInput(){const e=this.viewport.orbitControls,t=this.renderer.domElement,r=t.parentElement??t,i=e.enabled;e.enabled=!1;const a=o=>{o.target!==t||o.deltaY===0||(o.preventDefault(),this.zoomCameraView(o.deltaY<0?1.2:1/1.2))},c=o=>{if(o.target!==t)return;const l=e.mouseButtons;let p=[l.LEFT,l.MIDDLE,l.RIGHT][o.button]??null;const x=o.ctrlKey||o.metaKey||o.shiftKey;if(o.button===1&&(o.ctrlKey||o.metaKey)&&p===me.ROTATE?p=me.DOLLY:x&&p===me.ROTATE?p=me.PAN:x&&p===me.PAN&&(p=me.ROTATE),p===me.ROTATE){this.leaveCameraView(!1);return}if(p!==me.PAN&&p!==me.DOLLY)return;o.preventDefault();const v=t.getBoundingClientRect();let P=o.clientX,w=o.clientY;const L=this.through?.zoom??1,F=Math.max(5+o.clientY-v.top,1),M=D=>{if(p===me.PAN){this.panCameraView((D.clientX-P)/Math.max(v.width,1),(D.clientY-w)/Math.max(v.height,1)),P=D.clientX,w=D.clientY;return}const X=Math.max(.01,2*((5+D.clientY-v.top)/F-1)+1);this.setCameraViewZoom(L/X)},C=()=>{window.removeEventListener("pointermove",M),window.removeEventListener("pointerup",C),window.removeEventListener("pointercancel",C)};window.addEventListener("pointermove",M),window.addEventListener("pointerup",C),window.addEventListener("pointercancel",C)};return r.addEventListener("wheel",a,{capture:!0,passive:!1}),r.addEventListener("pointerdown",c,{capture:!0}),()=>{r.removeEventListener("wheel",a,{capture:!0}),r.removeEventListener("pointerdown",c,{capture:!0}),e.enabled=i}}projection(){return this.state.projection}setProjection(e){N(),this.state.projection!==e&&(this.state={...this.state,projection:e},this.notify())}setMode(e){N(),this.state.mode!==e&&(this.clearDiagnosticPresentation(),this.state={...this.state,mode:e},e==="uv"?this.scene.overrideMaterial=new Ki({vertexShader:"varying vec2 vUv; void main(){ vUv=uv; gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0); }",fragmentShader:"varying vec2 vUv; void main(){ gl_FragColor=vec4(vUv,0.0,1.0); }"}):e==="vertex-colors"?this.scene.overrideMaterial=new Vt({vertexColors:!0}):e==="wireframe"&&this.buildTopologyOverlay(),this.notify())}buildTopologyOverlay(){const e=new Lt,t=[];this.root.updateMatrixWorld(!0),this.root.traverse(r=>{const i=r;if(!i.isMesh||!i.geometry)return;const a=new Yi(new Xi(i.geometry,Wo),new Zi({color:Bs,toneMapped:!1,transparent:!0,opacity:.85,depthTest:!1,depthWrite:!1}));a.matrixAutoUpdate=!1,a.matrixWorldAutoUpdate=!1,a.matrixWorld.copy(i.matrixWorld),a.frustumCulled=!1,a.renderOrder=2,e.add(a),t.push({line:a,source:i})}),t.length!==0&&(this.topologyOverlay=e,this.topologyFollowers=t,this.addHelper(e,"topology"))}syncTopologyOverlay(){this.topologyFollowers.some(({source:i})=>i.parent===null)&&(this.clearTopologyOverlay(),this.buildTopologyOverlay()),this.selectionColors??=Ie(this.renderer.domElement);const e=this.selectionColors,t=this.selectedObjects.at(-1)??null,r=(i,a)=>{for(let c=i;c;c=c.parent)if(c===a)return!0;return!1};for(const{line:i,source:a}of this.topologyFollowers){i.matrixWorld.copy(a.matrixWorld),i.visible=a.visible;const c=i.material,o=t!==null&&r(a,t),l=o||this.selectedObjects.some(x=>r(a,x)),p=o?e.active?.visible??e.visible:l?e.visible:null;c.color.setHex(p??Bs)}}clearTopologyOverlay(){for(const{line:r}of this.topologyFollowers.splice(0))r.geometry.dispose(),r.material.dispose();const e=this.topologyOverlay;if(this.topologyOverlay=null,!e)return;e.removeFromParent();const t=this.helpers.indexOf(e);t>=0&&this.helpers.splice(t,1)}setBounds(e){N(),this.state.bounds!==e&&(this.state={...this.state,bounds:e},e?(this.boundsHelper=new ks(this.root,16757844),this.addHelper(this.boundsHelper,"bounds")):this.clearBoundsHelper(),this.notify())}setSkeleton(e){N(),this.state.skeleton!==e&&(this.state={...this.state,skeleton:e},this.refreshSkeletonHelper(),this.notify())}neutralBackgroundTexture(){return this.neutralBackground}setNeutralBackground(e){N();const t=this.scene.background,r=this.neutralBackground,i=t===r||t instanceof pe&&r instanceof pe&&t.equals(r);this.neutralBackground=e,i&&(this.scene.background=e)}setBackground(e){N(),this.state.background!==e&&(this.scene.background=e==="transparent"?null:this.neutralBackground,this.state={...this.state,background:e},this.notify())}resetPresentation(){N(),In(this.documentId),this.clearDiagnosticPresentation(),this.state=Hs,this.refreshSkeletonHelper(),this.clearBoundsHelper(),this.scene.background=this.neutralBackground,this.viewport.camera.up.set(0,1,0),this.frame(),this.notify()}setBeforeRender(e){this.beforeRender=e}presentedFrameWaiters=[];presentsFrames=!1;setPresentsFrames(e){this.presentsFrames=e,e||this.resolvePresentedFrame(null)}requestPresentedFrame(){return this.presentsFrames?new Promise(e=>{let t=!1;const r=i=>{t||(t=!0,e(i))};this.presentedFrameWaiters.push(r),N(),setTimeout(()=>r(null),zo)}):Promise.resolve(null)}needsFrame(){return this.flight!==null||this.presentedFrameWaiters.length>0}servePresentedFrame(){if(this.presentedFrameWaiters.length===0)return;const e=this.renderer.domElement,t=document.createElement("canvas");t.width=Math.max(1,e.width),t.height=Math.max(1,e.height);const r=t.getContext("2d");if(!r){this.resolvePresentedFrame(null);return}r.drawImage(e,0,0),this.resolvePresentedFrame(t)}resolvePresentedFrame(e){const t=this.presentedFrameWaiters;this.presentedFrameWaiters=[];for(const r of t)r(e)}render(e){this.beforeRender?.(),this.boneSelectionHighlight?.update();const t=this.camera(),r=this.state.mode;if(this.boundsHelper?.update(),this.selectionOrigins?.place(),r==="uv"||r==="vertex-colors"){e(t);return}if(r==="wireframe"&&this.topologyOverlay){if(this.syncTopologyOverlay(),this.xray.enabled&&this.xray.alpha<=0){const i=new Set;this.root.traverse(a=>{const c=a;if(c.isMesh)for(const o of Array.isArray(c.material)?c.material:[c.material])o?.visible&&(o.visible=!1,i.add(o))});try{e(t)}finally{for(const a of i)a.visible=!0}return}this.shading.render(this.scene,"clay",()=>e(t),Vs);return}this.shading.render(this.scene,r,()=>e(t),Vs)}renderViewport(e=0){this.advanceLook(e),this.ensureComposer(),this.render(t=>{const r=this.composer;if(!r){this.renderer.render(this.scene,t);return}r.setMainScene(this.scene),r.setMainCamera(t),r.render(e)})}resize(e,t){N(),this.renderWidth=Math.max(1,e),this.renderHeight=Math.max(1,t),this.composer?.setSize(this.renderWidth,this.renderHeight)}renderCapture(e,t){this.render(r=>{if(!t){e(r);return}const i=this.scene.background,a=this.renderer.getClearColor(new pe),c=this.renderer.getClearAlpha();try{this.scene.background=null,this.renderer.setClearColor(0,0),e(r)}finally{this.scene.background=i,this.renderer.setClearColor(a,c)}})}captureImage(e=512){const t=typeof e=="number"?e:e.width,r=typeof e=="number"?e:e.height;if(!Number.isFinite(t)||t<1||!Number.isFinite(r)||r<1)return null;const i=Math.min(2048,Math.round(t)),a=Math.min(2048,Math.round(r)),c=i*2,o=a*2,l=new Es(c,o,{type:Ji}),p=new Es(c,o),x=this.renderer.getRenderTarget(),v=this.renderer.getPixelRatio(),P=this.viewport.camera,w=P.aspect;try{this.captureAspect=i/a;const L=typeof e=="number"?void 0:e.camera;L?this.cameraOverride=L:(P.aspect=i/a,P.updateProjectionMatrix()),this.renderer.setPixelRatio(1),this.renderer.setRenderTarget(l),this.renderCapture(_=>this.renderSolidForCapture(_,l,c,o),typeof e!="number"&&e.transparent===!0),no(typeof e!="number"&&e.transparent===!0).render(this.renderer,p,l,0,!1);const F=c*4,M=new Uint8Array(F*o);this.renderer.readRenderTargetPixels(p,0,0,c,o,M);const C=document.createElement("canvas");C.width=c,C.height=o;const D=C.getContext("2d");if(!D)return null;const X=D.createImageData(c,o);for(let _=0;_<o;_++){const U=(o-1-_)*F,j=_*F;X.data.set(M.subarray(U,U+F),j)}D.putImageData(X,0,0);const b=document.createElement("canvas");b.width=i,b.height=a;const I=b.getContext("2d");return I?(I.drawImage(C,0,0,i,a),b.toDataURL("image/png")):null}finally{this.captureAspect=null,this.cameraOverride=null,P.aspect=w,P.updateProjectionMatrix(),this.renderer.setRenderTarget(x),this.renderer.setPixelRatio(v),this.composer?.setSize(this.renderWidth,this.renderHeight,!1),p.dispose(),l.dispose()}}dispose(){this.disposed=!0,this.leaveCameraView(!1),this.selectionOrigins?.dispose(),this.selectionOrigins=null,this.settleFlight("closed"),this.viewport.orbitControls.removeEventListener("start",this.cancelLookForHuman),this.unsubscribeRotateStart(),this.unsubscribeAxisView(),this.unsubscribeSelectionTheme(),this.clearDiagnosticPresentation(),this.clearBoneSelectionHighlight(),this.clearBoundsHelper(),this.clearSkeletonHelper(),this.selectionOutline&&ao(this.renderer,this.selectionOutline,this.selectionOutlinePass),this.composer?.dispose(),this.sceneRenderPass=null,this.selectionOutline=null,this.selectionOutlinePass=null,this.composer=null,this.shading.dispose(),this.listeners.clear()}addHelper(e,t){e.name=`__object3d_document_${t}`,Js(e,"editorHelper",!0),this.scene.add(e),this.helpers.push(e)}get selectionOutlineEnabled(){return this.selectionOutlineWanted}set selectionOutlineEnabled(e){e!==this.selectionOutlineWanted&&(this.selectionOutlineWanted=e,e?this.syncSelectionPresentation():(this.selectionOutline?.selection.clear(),this.syncComposerOutput()))}selectionOutlineWanted=!0;xray={enabled:!1,alpha:1};setXray(e){this.xray.enabled===e.enabled&&this.xray.alpha===e.alpha||(this.xray=e,N())}set selectionOriginsEnabled(e){e!==(this.selectionOrigins!==null)&&(e?(this.selectionOrigins=new Yo,this.scene.add(this.selectionOrigins),this.syncSelectionPresentation()):(this.selectionOrigins?.dispose(),this.selectionOrigins=null,N()))}ensureComposer(){this.selectionOutlineWanted&&(this.composer||this.composerLoading||this.disposed||(this.composerLoading=!0,Ke(()=>import("./index-DHhMOs_s.js"),__vite__mapDeps([0,1,2])).then(e=>{if(this.composerLoading=!1,this.disposed||this.composer)return;const t=this.camera(),r=new e.EffectComposer(this.renderer);this.sceneRenderPass=new e.RenderPass(this.scene,t),r.addPass(this.sceneRenderPass),this.selectionOutline=co(e,this.renderer,this.scene,t,Ie(this.renderer.domElement)),this.syncSelectionTheme(),Ts(this.selectionOutline,this.selectedObjects),this.selectionOutlinePass=new e.EffectPass(t,this.selectionOutline),r.addPass(this.selectionOutlinePass),this.composer=r,this.syncComposerOutput(),r.setSize(this.renderWidth,this.renderHeight),N()}).catch(()=>{this.composerLoading=!1})))}renderSolidForCapture(e,t,r,i){const a=this.composer,c=(this.selectionOutline?.selection.size??0)>0;if(!a||!c||!this.sceneRenderPass||!this.selectionOutlinePass){this.renderer.render(this.scene,e);return}const o=this.renderWidth,l=this.renderHeight;try{this.sceneRenderPass.renderToScreen=!1,this.selectionOutlinePass.renderToScreen=!1,a.setSize(r,i,!1),this.sceneRenderPass.render(this.renderer,a.inputBuffer,a.outputBuffer,0),this.selectionOutlinePass.render(this.renderer,a.inputBuffer,t,0)}finally{a.setSize(o,l,!1),this.syncComposerOutput(),this.renderer.setRenderTarget(t)}}syncComposerOutput(){const e=(this.selectionOutline?.selection.size??0)>0;this.sceneRenderPass&&(this.sceneRenderPass.renderToScreen=!e),this.selectionOutlinePass&&(this.selectionOutlinePass.enabled=e,this.selectionOutlinePass.renderToScreen=e)}refreshSkeletonHelper(){const e=this.state.skeleton||this.boneSelectionHighlight!==null;e&&!this.skeletonHelper?(this.skeletonHelper=new Qi(this.root),Bo(this.skeletonHelper),this.scene.add(this.skeletonHelper)):e||this.clearSkeletonHelper()}clearSkeletonHelper(){this.skeletonHelper&&(this.skeletonHelper.removeFromParent(),this.skeletonHelper.dispose(),this.skeletonHelper=null)}clearBoneSelectionHighlight(){this.boneSelectionHighlight&&(this.boneSelectionHighlight.removeFromParent(),this.boneSelectionHighlight.dispose(),this.boneSelectionHighlight=null)}clearBoundsHelper(){if(!this.boundsHelper)return;const e=this.boundsHelper;this.boundsHelper=null;const t=this.helpers.indexOf(e);t>=0&&this.helpers.splice(t,1),e.removeFromParent(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach(r=>{r.dispose()}):e.material.dispose()}frameBones(e){const t=new Sr,r=new z;for(const l of e){t.expandByPoint(l.getWorldPosition(r)),l.parent?.isBone&&t.expandByPoint(l.parent.getWorldPosition(r));for(const p of l.children)p.isBone&&t.expandByPoint(p.getWorldPosition(r))}const i=t.getCenter(new z),a=Math.max(t.getSize(new z).length(),.2);t.expandByScalar(a*.35);const c=this.viewport.camera.position.clone().sub(this.viewport.orbitControls.target).normalize(),o=At(t,this.viewport.camera,c);this.viewport.setPose(i.clone().addScaledVector(c,o),i)}syncOrthographicCamera(){const e=this.viewport.camera,t=this.viewport.orbitControls.target,r=Math.max(e.position.distanceTo(t),.001),i=Math.max(r*Math.tan(xr.degToRad(e.fov)/2),.001),a=Math.max(this.renderer.domElement.clientWidth,1),c=Math.max(this.renderer.domElement.clientHeight,1),o=this.captureAspect??a/c;this.orthographicCamera.left=-i*o,this.orthographicCamera.right=i*o,this.orthographicCamera.top=i,this.orthographicCamera.bottom=-i,this.orthographicCamera.near=e.near,this.orthographicCamera.far=e.far,this.orthographicCamera.position.copy(e.position),this.orthographicCamera.quaternion.copy(e.quaternion),this.orthographicCamera.up.copy(e.up),this.orthographicCamera.layers.mask=e.layers.mask,this.orthographicCamera.updateProjectionMatrix(),this.orthographicCamera.updateMatrixWorld(!0)}clearDiagnosticPresentation(){this.clearTopologyOverlay(),this.scene.overrideMaterial?.dispose(),this.scene.overrideMaterial=null;for(const e of this.helpers.splice(0)){e.removeFromParent();const t=e;t.geometry?.dispose();const r=t.material;Array.isArray(r)?r.forEach(i=>{i.dispose()}):r?.dispose()}}notify(){this.version++;for(const e of this.listeners)e()}}const qo=7;let at=null;function Ko(){if(at)return at;const n=64,e=document.createElement("canvas");e.width=n,e.height=n;const t=e.getContext("2d");return t.beginPath(),t.arc(n/2,n/2,n/2-1,0,Math.PI*2),t.fillStyle="rgba(0, 0, 0, 0.75)",t.fill(),t.beginPath(),t.arc(n/2,n/2,n/2-8,0,Math.PI*2),t.fillStyle="#ffffff",t.fill(),at=new Qs(e),at.colorSpace=kr,at}class Yo extends sn{objects=[];origin=new z;constructor(){super(new en,new rn({map:Ko(),size:qo,sizeAttenuation:!1,transparent:!0,alphaTest:.05,depthTest:!1,depthWrite:!1,toneMapped:!1})),this.name="volter:selection-origins",this.userData.editorHelper=!0,this.renderOrder=1e3,this.frustumCulled=!1,this.raycast=()=>{}}update(e,t){this.objects=e,this.material.color.setHex(e.length===1&&t.active!==void 0?t.active:t.visible),this.visible=e.length>0}place(){const e=this.objects.length;let t=this.geometry.getAttribute("position");(t===void 0||t.count<e)&&(this.geometry.dispose(),t=new tn(new Float32Array(Math.max(e,8)*3),3),this.geometry.setAttribute("position",t)),this.geometry.setDrawRange(0,e),this.objects.forEach((r,i)=>{r.getWorldPosition(this.origin),t.setXYZ(i,this.origin.x,this.origin.y,this.origin.z)}),t.needsUpdate=!0}dispose(){this.removeFromParent(),this.geometry.dispose(),this.material.dispose()}}class Xo{constructor(e){this.options=e}active=null;settling=!1;idleWaiters=new Set;begin(e){if(this.active||this.settling)return!1;try{const t=this.options.begin(e);return t?(this.active={pointerId:e.pointerId,gesture:t},!0):!1}catch(t){return this.options.reportError(t),!1}}update(e){if(!(!this.active||this.active.pointerId!==e.pointerId))try{this.active.gesture.update(e)}catch(t){this.cancelWithError(t)}}async commit(e){const t=this.take(e.pointerId);if(!t)return!1;this.settling=!0;try{return await t.commit(e),await this.options.persist(t.label),!0}catch(r){try{await t.cancel()}catch(i){return this.options.reportError({operationError:r,rollbackError:i}),!1}return this.options.reportError(r),!1}finally{this.settling=!1;for(const r of this.idleWaiters)r();this.idleWaiters.clear()}}async cancel(e){const t=this.take(e);if(!t)return!1;this.settling=!0;try{return await t.cancel(),!0}catch(r){return this.options.reportError(r),!1}finally{this.settling=!1;for(const r of this.idleWaiters)r();this.idleWaiters.clear()}}async settle(){this.active&&await this.cancel(),this.settling&&await new Promise(e=>this.idleWaiters.add(e))}hasActiveGesture(){return this.active!==null}take(e){if(!this.active||e!==void 0&&this.active.pointerId!==e)return null;const t=this.active.gesture;return this.active=null,t}async cancelWithError(e){const t=this.take();if(t){this.settling=!0;try{await t.cancel(),this.options.reportError(e)}catch(r){this.options.reportError({operationError:e,rollbackError:r})}finally{this.settling=!1;for(const r of this.idleWaiters)r();this.idleWaiters.clear()}}}}class Zo{constructor(e,t){this.frame=e,this.releaseRenderer=t,this.unsubscribeActivity=Po(()=>this.syncActivity())}rafId=0;running=!1;disposed=!1;active=!1;unsubscribeActivity;get isDisposed(){return this.disposed}get isRunning(){return this.running}setActive(e){this.disposed||(this.active=e,this.syncActivity())}syncActivity(){this.active&&hr()?this.start():this.stop()}redraw(){this.running&&!this.disposed&&hr()&&this.guardedFrame(performance.now())}dispose(){this.stop(),!this.disposed&&(this.disposed=!0,this.unsubscribeActivity(),this.releaseRenderer())}start(){this.disposed||this.running||(this.running=!0,this.guardedFrame(performance.now(),!0),!(!this.running||this.disposed)&&(this.rafId=requestAnimationFrame(this.tick)))}lastFrameFailure=null;guardedFrame(e,t=!1){try{this.frame(e,t),this.lastFrameFailure=null}catch(r){const i=r instanceof Error?r.message:String(r);i!==this.lastFrameFailure&&(this.lastFrameFailure=i,console.error("[document renderer] a frame threw; the loop continues:",r))}}stop(){this.running=!1,this.rafId!==0&&(cancelAnimationFrame(this.rafId),this.rafId=0)}tick=e=>{if(!(!this.running||this.disposed)){if(!hr()){this.stop();return}this.guardedFrame(e),!(!this.running||this.disposed)&&(this.rafId=requestAnimationFrame(this.tick))}}}const Jo=new Set(["solid","clay","unlit","wireframe","normals","overdraw"]);function Qo(n,e){return{read:()=>{const t=n.cameraPose;if(!t)return null;const{position:r,target:i}=t;return{camera:{position:{x:r.x,y:r.y,z:r.z},target:{x:i.x,y:i.y,z:i.z},...t.fov?{fov:t.fov}:{}},diagnostic:n.shadingMode,grid:Nn(e)}},setDiagnostic:t=>Jo.has(t)?(n.setShadingMode(t),!0):!1,setCamera:t=>typeof t!="string"?(n.shell.setCameraPose(t.position,t.target,t.fov),!0):t==="isometric"?!1:(n.shell.setViewPreset(t),!0),frame:t=>t==="document"?!1:(n.shell.focusOnSelection(),!0)}}function ea(n){const e=wr();return e?$n(Ks(e.shell,n)):"none"}const ta=f.lazy(()=>Ke(()=>import("./stage-transform-tools-BM9u9Awe.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])).then(n=>({default:n.ThreeStageTransformTools}))),ra=f.lazy(()=>Ke(()=>import("./stage-transform-tools-BM9u9Awe.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])).then(n=>({default:n.ThreeStageTransformControls})));function Ws(n){return{transformTools:()=>ea(n),TransformTools:ta,TransformControls:ra}}class sa{constructor(e,t,r){this.create=e,this.isOpen=t,this.subscribe=r}states=new Map;generations=new WeakMap;unsubscribe=null;claim(e){const t=this.states.get(e)??[];let r=t.find(i=>!i.inUse);return r||(r=this.create(e),t.push(r),this.states.set(e,t)),r.inUse=!0,this.generations.set(r,this.generation(r)+1),this.unsubscribe??=this.subscribe(()=>this.discardClosed()),r}generation(e){return this.generations.get(e)??0}release(e,t=this.generation(e)){this.generation(e)===t&&(e.inUse=!1,queueMicrotask(()=>this.discardClosed()))}retain(e,t,r){if(!this.isOpen(e.documentId)||!this.states.get(e.documentId)?.includes(e)||this.generation(e)!==r){t.dispose();return}const i=e.source;e.source=t,i!==t&&i?.dispose()}discardClosed(){const e=[];for(const[r,i]of this.states){if(this.isOpen(r))continue;const a=i.filter(c=>c.inUse);e.push(...i.filter(c=>!c.inUse)),a.length?this.states.set(r,a):this.states.delete(r)}this.states.size===0&&(this.unsubscribe?.(),this.unsubscribe=null);const t=[];for(const r of e){const i=r.source;r.source=null;try{i?.dispose()}catch(a){t.push(a)}}if(t.length)throw new AggregateError(t,"Retained document cleanup failed")}}const na=f.lazy(async()=>({default:(await Ke(()=>import("./stage-overlay-set-ChHqsFiR.js"),__vite__mapDeps([64,4,5,7,8,6,9,10,11,12,13,54,65,66,24,14,15,1,2,16,17,18,19,20,21,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,55,56,57,58,59,60,61,62,63]))).StageOverlaySet}));function ia(n){return d.jsx(f.Suspense,{fallback:null,children:d.jsx(na,{...n})})}function zs(n,e,t){if(e==="orthographic"){const r=Ft(n.camera.position.clone().sub(n.orbitControls.target),new z(0,1,0).applyQuaternion(n.camera.quaternion));return r!==null?r:t==="short"?"Iso":"Orthographic"}return t==="short"?"Persp":"Perspective"}const oa=()=>()=>{},Is=()=>0;function aa({shell:n,documentId:e,label:t,kebab:r=!1}){const i=f.useSyncExternalStore(lo,As,As);f.useSyncExternalStore(wo,bo);const a=e?yo(e):null;f.useSyncExternalStore(a?.subscribe??oa,a?.getSnapshot??Is,a?.getSnapshot??Is);const c=a?a.projection():i.projection,o=P=>{a?a.setProjection(P):Ls(P)},[l,p]=f.useState(!1),x=f.useRef(null);f.useEffect(()=>{if(!l)return;const P=w=>{x.current?.contains(w.target)||p(!1)};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[l]);const v=P=>{if(a){a.setViewPreset(P,"view");return}Ls("orthographic"),n.setViewPreset(P)};return d.jsxs("div",{ref:x,className:"volter-viewport-popover-anchor",children:[t===void 0?d.jsx(Ue,{text:c==="perspective"?"Perspective":"Orthographic",children:d.jsx(Te,{"aria-label":"Viewport views","aria-expanded":l,size:"comfortable",onClick:()=>p(P=>!P),children:d.jsx(we,{icon:l?Gn:Un,size:"md"})})}):d.jsxs(Ne,{size:"comfortable",variant:"ghost","aria-label":"Viewport views","aria-expanded":l,"data-testid":"viewport-view-name",onClick:()=>p(P=>!P),children:[r?d.jsx(we,{icon:qn,size:"sm"}):null,t]}),l?d.jsx(Kn,{style:{minWidth:230},children:d.jsxs(Yn,{gap:3,children:[d.jsx(hs,{variant:"caption",tone:"muted",children:"Projection"}),d.jsxs(ds,{gap:1,children:[d.jsx(Ne,{size:"compact",variant:c==="perspective"?"primary":"ghost",onClick:()=>o("perspective"),children:"Perspective"}),d.jsx(Ne,{size:"compact",variant:c==="orthographic"?"primary":"ghost",onClick:()=>o("orthographic"),children:"Orthographic"})]}),d.jsx(hs,{variant:"caption",tone:"muted",children:"Axis View"}),d.jsxs(ds,{gap:1,children:[d.jsx(Ne,{size:"compact",variant:"ghost",onClick:()=>v("top"),children:"Top"}),d.jsx(Ne,{size:"compact",variant:"ghost",onClick:()=>v("front"),children:"Front"}),d.jsx(Ne,{size:"compact",variant:"ghost",onClick:()=>v("right"),children:"Right"})]})]})}):null]})}const ca=po;function Ns(n){return Cr(null,n)}const la=()=>()=>{},$s=()=>0,ua=5,ha=58;function da(n,e){const t=e?.camera()??n.renderCamera,r=n.camera.position,i=n.orbitControls.target,a=t.isOrthographicCamera?un(t,n,e):0;return[r.x,r.y,r.z,i.x,i.y,i.z,a].map(c=>c.toPrecision(6)).join(",")}function un(n,e,t){const r=e.orbitControls.domElement,i=Math.max(1,t?.renderer.domElement.height??(r?.clientHeight??1)*(r?.ownerDocument.defaultView?.devicePixelRatio??1));return(n.top-n.bottom)/n.zoom/i}function pa({viewport:n,documentId:e,session:t,store:r,projection:i,displayName:a,objectName:c,statistics:o,subject:l,gridScale:p}){f.useSyncExternalStore(r.subscribe,r.getShellSnapshot??r.getSnapshot),f.useSyncExternalStore(f.useCallback(T=>{const W=n?.orbitControls;return W?.addEventListener("change",T),()=>W?.removeEventListener("change",T)},[n]),()=>n?da(n,t):""),f.useSyncExternalStore(t?.subscribe??la,t?.getSnapshot??$s,t?.getSnapshot??$s);const x=f.useSyncExternalStore(Ns,Ys),v=f.useSyncExternalStore(Ns,Xn),P=x&&!v?qe.content.onAccent:qe.content.primary,w=Zn();f.useSyncExternalStore(vr,ps,ps);const L=ct(e).overlays.navigationControls;if(!n)return null;const F=Ft(n.camera.position.clone().sub(n.orbitControls.target),new z(0,1,0).applyQuaternion(n.camera.quaternion))??"User",M=t?.projection()??i,C=t?.cameraView()??null,D=C?`Camera ${C.projection==="perspective"?"Perspective":"Orthographic"}`:`${F} ${M==="perspective"?"Perspective":"Orthographic"}`,X=r.selectedEntityId,b=(X===null?null:c(X))||null,I=l??(b===null||b===a?a:`${a} | ${b}`),_=t?.camera()??n.renderCamera,U=p&&!C&&F!=="User"&&_.isOrthographicCamera?p(un(_,n,t)):null,j=T=>{T.preventDefault();const W=T.currentTarget;W.setPointerCapture(T.pointerId);const be=n.orbitControls.domElement?.getBoundingClientRect().top??0,Me=Math.max(5+T.clientY-be,1),oe=n.camera,le=n.orbitControls.target,ae=oe.position.clone().sub(le),te=!t&&n.renderCamera instanceof yr?n.renderCamera:null,se=te?.zoom??1,Ee=t?.cameraViewZoom()??null,ue=he=>{const Ae=5+he.clientY-be,ye=Math.max(.01,2*(Ae/Me-1)+1);Ee!==null&&t?.cameraView()?t.setCameraViewZoom(Ee/ye):te?(te.zoom=se/ye,te.updateProjectionMatrix()):oe.position.copy(le).addScaledVector(ae,ye),n.orbitControls.update()},Q=()=>{W.removeEventListener("pointermove",ue),W.removeEventListener("pointerup",Q),W.removeEventListener("pointercancel",Q),W.removeEventListener("lostpointercapture",Q)};W.addEventListener("pointermove",ue),W.addEventListener("pointerup",Q),W.addEventListener("pointercancel",Q),W.addEventListener("lostpointercapture",Q)},H=T=>{T.preventDefault();const W=T.currentTarget;W.setPointerCapture(T.pointerId);let be=T.clientX,Me=T.clientY;const oe=new z,le=new z,ae=se=>{const Ee=se.clientX-be,ue=se.clientY-Me;if(be=se.clientX,Me=se.clientY,t?.cameraView()){const Xe=t.renderer.domElement;t.panCameraView(Ee/Math.max(Xe.clientWidth,1),ue/Math.max(Xe.clientHeight,1));return}const Q=n.camera,he=n.orbitControls.target,Ae=Q.position.distanceTo(he),ye=Math.max(1,W.ownerDocument.defaultView?.innerHeight??1),Ye=2*Ae*Math.tan(xr.degToRad(Q.fov/2))/ye;oe.setFromMatrixColumn(Q.matrixWorld,0).multiplyScalar(-Ee*Ye),le.setFromMatrixColumn(Q.matrixWorld,1).multiplyScalar(ue*Ye),Q.position.add(oe).add(le),he.add(oe).add(le),n.orbitControls.update()},te=()=>{W.removeEventListener("pointermove",ae),W.removeEventListener("pointerup",te),W.removeEventListener("pointercancel",te),W.removeEventListener("lostpointercapture",te)};W.addEventListener("pointermove",ae),W.addEventListener("pointerup",te),W.addEventListener("pointercancel",te),W.addEventListener("lostpointercapture",te)};return d.jsxs(d.Fragment,{children:[w.viewName==="text"?d.jsxs("div",{"data-testid":"viewport-view-text","aria-hidden":"true",style:{position:"absolute",top:"var(--volter-space-3)",left:"calc(var(--volter-space-4) + var(--volter-control-comfortable-height) * 2 + var(--volter-space-4))",display:"flex",flexDirection:"column",gap:"var(--volter-space-1)",fontSize:"var(--volter-font-sm)",color:P,textShadow:"var(--volter-content-text-shadow, none)",pointerEvents:"none",userSelect:"none"},children:[d.jsx("span",{children:D}),d.jsx("span",{children:I}),U?d.jsx("span",{"data-testid":"viewport-grid-scale",children:U}):null,o&&o.length>0?d.jsx("div",{"data-testid":"viewport-statistics",style:{display:"grid",gridTemplateColumns:`${ha}px auto`,rowGap:"var(--volter-space-1)",marginTop:Jn[ua]},children:o.map(T=>d.jsxs(f.Fragment,{children:[d.jsx("span",{children:T.label}),d.jsx("span",{children:T.value})]},T.id))}):null]}):null,w.viewName==="menu"?d.jsx("div",{className:"volter-viewport-view-pill",style:{position:"absolute",top:"var(--volter-viewport-overlay-top, var(--volter-space-4))",left:"var(--volter-stage-name-left, calc(var(--volter-space-4) + var(--volter-control-comfortable-height) * 2 + var(--volter-space-4)))",zIndex:"calc(var(--volter-z-dropdown, 1000) - 1)",pointerEvents:"auto"},children:d.jsx(aa,{shell:r,documentId:e,label:zs(n,M,"long"),kebab:!0})}):null,w.viewName==="gizmo"?d.jsxs("button",{type:"button","data-testid":"viewport-view-name",className:"volter-viewport-gizmo-label","aria-label":M==="perspective"?"Switch to orthographic":"Switch to perspective",onClick:()=>{const T=M==="perspective"?"orthographic":"perspective";t?t.setProjection(T):n.setProjection(T)},style:{position:"absolute",top:ho+4,right:uo,transform:"translateX(50%)",display:"inline-flex",alignItems:"center",gap:"var(--volter-space-1)",padding:0,border:0,background:"none",fontSize:"var(--volter-font-sm)",color:P,textShadow:"var(--volter-content-text-shadow, none)",cursor:"pointer",pointerEvents:"auto"},children:[d.jsx(we,{size:"xs",icon:M==="perspective"?Qn:ei}),zs(n,M,"short")]}):null,L?d.jsxs("div",{"data-testid":"viewport-navigation",role:"toolbar","aria-label":"Navigation","aria-orientation":"vertical",className:"volter-chrome-island volter-viewport-navigation",style:{position:"absolute",top:ca,right:"var(--volter-space-6)",display:"flex",flexDirection:"column",gap:"var(--volter-space-1)",padding:"var(--volter-space-1) 0",borderRadius:"var(--volter-radius-full)",background:"var(--volter-island-surface, var(--volter-surface-overlay))",pointerEvents:"auto"},children:[d.jsx(Ue,{text:"Zoom (drag)",children:d.jsx(Te,{size:"comfortable","aria-label":"Zoom the view",onPointerDown:j,children:d.jsx(we,{size:"2xl",icon:ve.viewport.zoomIn})})}),d.jsx(Ue,{text:"Pan (drag)",children:d.jsx(Te,{size:"comfortable","aria-label":"Pan the view",onPointerDown:H,children:d.jsx(we,{size:"2xl",icon:ve.viewport.pan})})}),t?.hasCameraView()?d.jsx(Ue,{text:C?"Leave the camera view":"Look through the camera",children:d.jsx(Te,{size:"comfortable","aria-label":"Toggle the camera view",onClick:()=>t.toggleCameraView(),children:d.jsx(we,{size:"2xl",icon:C?ve.viewport.cameraView:ve.viewport.camera})})}):null,C&&t?.cameraViewLocked()!==null?d.jsx(Ue,{text:t?.cameraViewLocked()?"Unlock the camera from the view":"Lock the camera to the view",children:d.jsx(Te,{size:"comfortable","aria-label":"Lock the camera to the view",onClick:()=>t?.toggleCameraViewLock(),children:d.jsx(we,{size:"2xl",icon:t?.cameraViewLocked()?ve.viewport.cameraLocked:ve.viewport.cameraUnlocked})})}):null,C||w.viewName==="gizmo"?null:d.jsx(Ue,{text:M==="perspective"?"Orthographic":"Perspective",children:d.jsx(Te,{size:"comfortable","aria-label":"Toggle perspective and orthographic",onClick:()=>{const T=M==="perspective"?"orthographic":"perspective";t?t.setProjection(T):n.setProjection(T)},children:d.jsx(we,{size:"2xl",icon:M==="orthographic"?ve.viewport.projectionOrthographic:ve.viewport.projection})})})]}):null,C&&t?d.jsx(fa,{view:C,canvas:t.renderer.domElement,locked:t.cameraViewLocked()===!0}):null]})}function fa({view:n,canvas:e,locked:t}){const[r,i]=f.useState(null),[,a]=f.useState(0);f.useEffect(()=>{const M=new ResizeObserver(()=>a(C=>C+1));return M.observe(e),()=>M.disconnect()},[e]);const c=e.clientWidth,o=e.clientHeight,l=e.ownerDocument.defaultView?.devicePixelRatio??1,p=e.getBoundingClientRect(),x=r?.getBoundingClientRect(),v=1/l,P=n.frame.left*c-v,w=n.frame.top*o-v,L=n.frame.width*c+2*v,F=n.frame.height*o+2*v;return d.jsx("div",{ref:i,"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none"},children:x?d.jsxs("svg",{"data-testid":"viewport-camera-frame",width:c,height:o,style:{position:"absolute",left:p.left-x.left,top:p.top-x.top},children:[n.passepartout.opacity>0?d.jsx("path",{d:`M0 0H${c}V${o}H0Z M${P} ${w}V${w+F}H${P+L}V${w}Z`,fill:n.passepartout.color,fillOpacity:n.passepartout.opacity,fillRule:"evenodd"}):null,n.passepartout.opacity>0?d.jsx("rect",{x:P,y:w,width:L,height:F,fill:"none",stroke:n.border.solid,strokeWidth:v,shapeRendering:"crispEdges"}):null,d.jsx("rect",{x:P,y:w,width:L,height:F,fill:"none",stroke:n.border.dashed,strokeWidth:v,strokeDasharray:`${3*v} ${3*v}`,shapeRendering:"crispEdges"}),t?d.jsx("rect",{x:P-v,y:w-v,width:L+2*v,height:F+2*v,fill:"none",stroke:n.border.locked,strokeWidth:v,strokeDasharray:`${3*v} ${3*v}`,shapeRendering:"crispEdges"}):null]}):null})}const ma=f.lazy(async()=>({default:(await Ke(()=>import("./stage-keyboard-G6HMStmP.js"),__vite__mapDeps([67,7,5,8,68,6,4,9,10,11,12,13,54,23]))).StageKeyboardBinding})),ga=n=>{const e=n.split(":");return(e[0]==="document"?e[1]:e[0])??n},Gs=()=>Ri(),gr=12;function Us(n){if(!n)return null;const e=new Sr(new z(n.min[0],n.min[1],n.min[2]),new z(n.max[0],n.max[1],n.max[2]));return e.isEmpty()?null:e}const va=500;function wa(n){return Cr(null,n)}const ba=["solid","preview","rendered","clay","unlit","wireframe","matcap","normals","overdraw"];let ya=0;const Ge=new sa(n=>({documentId:n,store:on(new Xs),inUse:!1,source:null,camera:null,presentation:null,transport:null,contentSeconds:0,transportAdvances:0}),n=>ui().some(e=>e.descriptor.id===n),hi);function Sa({canvasHostRef:n}){return d.jsx("div",{ref:n,style:{position:"absolute",inset:0}})}function xa(n,e,t,r,i){if(e==="inspector-preview"){const l=_i();return l.canvas.setAttribute("aria-label",`${t} authoring viewport`),n.appendChild(l.canvas),{canvas:l.canvas,renderer:l.renderer,lease:l}}const a=Co(r.width,r.height,i),{canvas:c,renderer:o}=a;return c.setAttribute("aria-label",`${t} authoring viewport`),n.appendChild(c),{canvas:c,renderer:o,lease:a}}class qs{constructor(e,t,r){this.lane=e,this.surface=t,this.store=r??on(new Xs),this.transport=new Oi(this.store.shell)}scene=new nn;store;cleanups=[];rendererSession=new Zo((e,t)=>this.frame?.(e,t),()=>{});viewport=null;session=null;dressing=null;presentationRig=null;applyPresentation=null;backdropOverridden=!1;documentStudio=null;contentLights=[];contentHas={light:!1,"directional-light":!1};darkened=[];darkenContentLights(){for(const t of this.contentLights)t.visible&&(t.visible=!1,this.darkened.push(t));if(this.darkened.length===0)return 0;const e=this.darkened.length;return this.scene.onAfterRender=()=>{for(const t of this.darkened)t.visible=!0;this.darkened=[],this.scene.onAfterRender=()=>{}},e}defaultEnvironment=null;defaultBackground=null;adapter=null;presentationAdapter=null;content=null;frame=null;syncHostScene=null;presence=null;initialized=!1;contentSeconds=0;transportAdvances=0;users=0;closed=!1;released=!1;get isClosed(){return this.closed}transport;borrow(){this.users++;let e=!1;return()=>{e||(e=!0,this.users--,this.releaseIfClosed())}}close(){this.closed=!0,this.frame=null,this.syncHostScene=null,this.session?.setBeforeRender(null),this.session?.setPresentsFrames(!1),this.rendererSession.setActive(!1),this.content?.dispose(),this.transport.dispose(),this.releaseIfClosed()}releaseIfClosed(){if(!this.closed||this.users!==0||this.released)return;this.released=!0;const{lease:e,renderer:t,canvas:r}=this.surface;for(const i of[...this.cleanups.splice(0),()=>this.session?.dispose(),()=>this.viewport?.dispose(),()=>this.rendererSession.dispose(),()=>this.dressing?.dispose(),...e?[()=>e.release()]:[()=>t.dispose(),()=>t.forceContextLoss(),()=>r.remove()]])try{i()}catch(a){console.error("Object3D document cleanup failed.",a)}}}function hn({documentId:n,sourcePath:e,build:t,displayName:r="Source Object3D",background:i,cameraDirection:a,persistence:c,documentSource:o,authoring:l,interaction:p,selectionOutline:x=!0,active:v=!0,audit:P=!0,chromeless:w=!1,modelSource:L,assetType:F,sourceAuthoring:M,dressing:C,rendererLane:D="own",onOpenNode:X,frameBounds:b,openingFrameBounds:I,openingFit:_,openingView:U,presentation:j,cameraView:H,stageKind:T,statistics:W,subject:be,gridScale:Me,content:oe}){const le=T??ga(n);f.useEffect(()=>{if(!w)return ti(n)},[n,w]);const ae=ji(ri()),te=ae??wr(),se=te?Ks(te.shell,n,w?"embedded":"document"):null,Ee=f.useSyncExternalStore(wa,Ys),ue=se!==null&&si(se,Ee),Q=f.useRef(ue);Q.current=ue;const he=se!==null&&ni(se),Ae=f.useRef(he);Ae.current=he;const ye=se!==null&&ii(se),Ye=f.useRef(ye);Ye.current=ye;const Xe=oi(),Dt=f.useRef(Xe);Dt.current=Xe;const _t=f.useRef(null),Ht=f.useRef(null),q=f.useRef(null),Oe=f.useRef(null);(!Oe.current||Oe.current.documentId!==n)&&(Oe.current&&Ge.release(Oe.current),Oe.current=Ge.claim(n)),f.useEffect(()=>{const O=Oe.current,de=Ge.generation(O);return()=>Ge.release(O,de)},[n]);const $=Oe.current,Le=oe?.kind==="world-root",Bt=v||Le,Mr=f.useRef(oe?.kind==="world-root"?oe.load:null);Mr.current=oe?.kind==="world-root"?oe.load:null;const[Fe,Wt]=f.useState(Bt);f.useEffect(()=>Wt(Bt),[Bt]);const zt=f.useRef(x);f.useEffect(()=>{zt.current=x;const O=q.current?.session;O&&(O.selectionOutlineEnabled=D!=="inspector-preview"&&x),q.current?.applyPresentation?.()},[x,D]);const Er=f.useRef(Promise.resolve()),It=f.useRef(!1);f.useEffect(()=>{if(Fe)return Ze.current=!1,Ut("building"),()=>{const O=q.current;if(O&&!Le){It.current=!lt.current;const de=O.store.cameraPose;$.camera=de&&O.viewport?{...de,up:O.viewport.camera.up.clone()}:null,$.presentation=O.session?.presentation()??null,$.transport=O.transport.snapshot(),$.contentSeconds=O.contentSeconds,$.transportAdvances=O.transportAdvances}dt.current=null,pt.current=null,ht.current=null,ut.current=null,O?.close(),q.current=null}},[n,D,$,Fe,Le]);const Or=f.useRef(X);Or.current=X;const Rr=f.useRef(b);Rr.current=b;const jr=f.useRef(I);jr.current=I;const Nt=f.useRef(U);Nt.current=U;const Tr=f.useRef(j);Tr.current=j;const Vr=f.useRef(H);Vr.current=H;const lt=f.useRef(v);lt.current=v;const Ar=f.useRef(v),Lr=f.useRef({build:t,sourcePath:e});f.useEffect(()=>{const O=Lr.current;Lr.current={build:t,sourcePath:e},!(O.build===t&&O.sourcePath===e)&&!Fe&&$.source&&($.source.dispose(),$.source=null)},[t,$,e,Fe]);const ut=f.useRef(null),Ze=f.useRef(!1),ht=f.useRef(null),dt=f.useRef(null),pt=f.useRef(null),[$t,ne]=f.useState(null),[Gt,Ut]=f.useState("building"),[Fr,dn]=f.useState(null),[pn,fn]=f.useState("mounting"),[mn,gn]=f.useState([]),Dr=f.useRef(null),[_r,vn]=f.useState("perspective"),[wn,Hr]=f.useState(null),ft=f.useRef(null);ft.current=wn;const qt=a?.[0],Kt=a?.[1],Yt=a?.[2],Je=L?.kind,Xt=L?.kind==="project-file"?L.path:void 0,mt=L?.kind==="entity"?L.entityId:void 0,Br=C?.environment,Wr=C?.background,zr=C?.keyLight,Zt=C?.grid,Qe=C?.viewLocked,Jt=C?.toneMapping;v&&ai(n),f.useEffect(()=>{let O=!1;if(!Fe)return;const de=async Se=>{const G=_t.current,et=Ht.current;if(!G||!et||q.current)return;const E=Dt.current;if(!E){ne("The world root needs the editor shell above it; this host has none.");return}const tt=await Se();if(O||q.current)return;dn(()=>tt),fs();const s=new qs("own",tt.mountWorldRootSurface(et,G,r),wr()??void 0);q.current=s,s.cleanups.push(ms(n,s.store.shell)),s.cleanups.push(gs(n,s.transport)),s.cleanups.push(Ei(n,{...Qo(s.store,n),...Ws(n)}));const ie=tt.installWorldRootStage({store:s.store,documentId:n,container:G,canvas:s.surface.canvas,renderer:s.surface.renderer,stats:E,cameraPreview:()=>Dr.current,onMountStatus:fn,onRootIds:gn,runFrame:xe=>Fs(n,xe)});s.viewport=ie.viewport,s.frame=ie.frame,s.content={scene:ie.scene,settle:()=>Promise.resolve(),dispose:async()=>ie.dispose()};const V=_s(()=>s.store.scene??ie.scene,s.transport,{rescanOnLiveMixers:()=>s.store.shell.playState==="stopped"});let re=0;s.cleanups.push(()=>V.dispose()),s.cleanups.push(s.store.shell.subscribe(()=>{if(s.store.shell.playState!=="stopped")return;const xe=performance.now();xe-re<va||(re=xe,V.refresh())})),s.cleanups.push(Ds({camera:ie.viewport.camera,drawCamera:()=>ie.viewport.renderCamera,orbit:ie.viewport.orbitControls,scene:ie.scene},ie.present,ie.setHelper,{documentId:n})),ut.current=s.rendererSession,s.initialized=!0,xs(),Ut("ready"),s.rendererSession.setActive(!0)},yn=async()=>{for(await q.current?.content?.settle();ro();)await so();if(O)return;const Se=Mr.current;if(Se)return de(Se);const G=_t.current,et=Ht.current;if(!G||!et)return;if(!t||e===void 0){ne("This stage shows `build` content and was given no `build()`/`sourcePath`.");return}let E;const tt=Ge.generation($);try{E=$.source??t(),$.source=null}catch(ee){ne(ee instanceof Error?ee.message:String(ee));return}try{q.current||(fs(),q.current=new qs(D,xa(et,D,r,{width:Math.max(1,G.clientWidth),height:Math.max(1,G.clientHeight)},()=>{Wt(!1),window.setTimeout(()=>{lt.current&&Wt(!0)},0)}),$.store),q.current.contentSeconds=$.contentSeconds,q.current.transportAdvances=$.transportAdvances)}catch(ee){throw E.dispose(),ee}const s=q.current,ie=s.borrow(),{renderer:V,canvas:re,lease:xe}=s.surface,A=s.store;w||(s.cleanups.push(ms(n,A.shell)),s.cleanups.push(gs(n,s.transport)));const vt=vs();vt&&A.shell.attachHistory(vt);const er=D==="inspector-preview",De=Q.current,Nr=Ae.current,$r=Ye.current,B=new nn,wt=E.root.parent;B.add(E.root),E.animations&&(E.root.animations=[...E.animations]);const tr={root:E.root,animations:E.root.animations};let _e=null,He=null,Be=null,Pe=null,ce=null,bt=null,yt=null,St=null,xt=null,Pt=null,rr=null,Gr=null,Ur=null,qr=!1,Ct=!1,kt=null;const sr={scene:B,settle:()=>ce?.settle()??Promise.resolve(),dispose:()=>{if(kt)return kt;Ct=!0;const ee=It.current;return It.current=!1,bt&&G.removeEventListener("pointerdown",bt,!0),yt&&G.removeEventListener("pointermove",yt,!0),St&&G.removeEventListener("pointerup",St,!0),xt&&G.removeEventListener("pointercancel",xt,!0),Pt&&window.removeEventListener("keydown",Pt),rr?.(),rr=null,kt=(async()=>{await ce?.settle();const rt=[];for(const Mt of[()=>Pe?.dispose(),()=>He?.dispose?.(),()=>_e?.dispose(),()=>B.removeFromParent(),()=>{ee?Ge.retain($,E,tt):E.dispose()},ie])try{Mt()}catch(fe){rt.push(fe)}rt.length&&console.error("Object3D source cleanup failed.",...rt)})(),kt}};try{const ee=async u=>{try{const g=tr;if(o&&!c){if(!g)throw new Error("Project history is unavailable; the edit was not saved.");const h=vs();if(!h)throw new Error("Project history is unavailable; the edit was not saved.");const m=o.serialize(g);if(m===null)return ne(null),!1;const y=await Gs().replaceSource(h,{file:o.path,source:m,label:u??o.label??`Edit ${r}`});return ne(null),y}if(!c)throw new Error("This Asset Lab document has no persistence binding.");if(!Be||!g)throw new Error("Project history is unavailable; the edit was not saved.");const{persisted:k}=await(await Be).commit(g,u);return ne(null),k}catch(g){throw ne(g instanceof Error?g.message:JSON.stringify(g)),g}};_e=new xo(A,B,{documentId:n,title:r,sourcePath:e,documentKind:$r?"asset":"source",audit:P,...E.hierarchyRoots?{hierarchyRoots:E.hierarchyRoots}:{},...Je==="project-file"&&Xt?{modelSource:{kind:Je,path:Xt}}:Je==="entity"&&mt?{modelSource:{kind:Je,entityId:mt}}:{}});const rt={documentId:n,sourcePath:e,root:E.root,animations:E.root.animations,scene:B,defaultAdapter:_e,commit:ee};He=l?.(rt)??null;const Mt=He?_e:null;!He&&M&&(He=M({store:A,scene:B,...E.hierarchyRoots?{hierarchyRoots:E.hierarchyRoots}:{}}),_e.dispose()),Be=c&&vt?Gs().openPersistence({binding:c,document:tr,history:vt}):null,Be&&Be.catch(u=>{!Ct&&q.current?.content===sr&&ne(u instanceof Error?u.message:JSON.stringify(u))});const fe=He?.adapter??_e;if(!s.dressing){V.outputColorSpace=kr,V.toneMapping=Jt??eo,V.shadowMap.enabled=!0,V.shadowMap.type=to,V.info.autoReset=!1,V.setPixelRatio(Math.min(window.devicePixelRatio,2)),De&&V.setClearColor(0,0);const u=Br===!1?null:xe&&"environment"in xe?xe.environment():Di(V),g=ws(re);s.dressing=Ti(s.scene,{environment:u,background:!De&&i===void 0&&Wr!==!1,keyLight:!1,grid:Zt===!0,content:E.root}),!De&&i!==void 0?s.scene.background=new pe(i):!De&&g.background!==null&&(s.scene.background=new pe(g.background)),s.defaultEnvironment=s.scene.environment,s.defaultBackground=s.scene.background;{const k=new Vi(s.scene,N);s.presentationRig=k,bs(n,le);const h=()=>{const m=ct(n);if(k.apply(m,V,Jt),s.viewport?.setStageFunction(m.world,m.interaction),s.viewport?.setFieldOfView(m.camera.fov),s.viewport?.setSelectionMarks(m.overlays.selection),s.viewport?.setGridMajorEvery(m.overlays.grid.majorEvery),s.viewport?.setAxisLines(m.overlays.axes),s.viewport?.setNavigation(m.overlays.navigation),s.viewport?.setGridVisible(m.overlays.grid.visible),s.session){const y=s.session.presentation().mode==="wireframe"&&m.xray.enabled&&m.xray.alpha<=0;s.session.selectionOutlineEnabled=!er&&zt.current&&m.overlays.selection.outline&&!y,s.session.selectionOriginsEnabled=!er&&m.overlays.selection.origins,s.session.setXray(m.xray)}N()};s.applyPresentation=h,h(),s.cleanups.push(vr(h)),s.cleanups.push(di(()=>{k.forgetFailedImages(),h()})),s.cleanups.push(()=>{k.dispose(),s.presentationRig===k&&(s.presentationRig=null)})}s.cleanups.push(()=>{s.defaultBackground instanceof Os&&s.defaultBackground!==s.dressing?.backgroundTexture&&s.defaultBackground.dispose()})}const Kr=(u,g)=>{const k=s.adapter,h=s.viewport;if(!k||!h)return null;const m=re.getBoundingClientRect(),y=new Tt((u-m.left)/Math.max(m.width,1)*2-1,-((g-m.top)/Math.max(m.height,1))*2+1),R=new Rs;R.layers.enableAll(),R.params.Line2={threshold:4},R.setFromCamera(y,s.session?.camera()??h.camera);const J=s.presentationAdapter,ge=Y=>{for(let Z=Y;Z;Z=Z.parent){const it=J?.hierarchy.idForObject3D?.(Z)??k.hierarchy.idForObject3D?.(Z);if(it)return it}return null};let je=null;for(const Y of R.intersectObjects([...A.objectMap.values()],!0)){if(Fi(Y.object))continue;const Z=ge(Y.object);if(Z){je={distance:Y.distance,id:Z};break}}const jt=h.visibleHelpers().filter(Y=>Y.userData.volterPickable===!0);for(const Y of R.intersectObjects(jt,!0)){let Z=null,it=!0;for(let ot=Y.object;ot;ot=ot.parent)ot.visible||(it=!1),Z??=ot.userData.volterPicksAs??null;if(!it)continue;const ls=Z?ge(Z):null;if(ls){(!je||Y.distance<je.distance)&&(je={distance:Y.distance,id:ls});break}}return je?.id??null};if(!s.viewport){s.viewport=new fo(re,s.scene,A,G,{renderer:V,authoring:()=>s.adapter??fe,pick:Kr,drawCamera:()=>s.session?.camera()??s.viewport.camera,publishPickContext:!1,onProjectionChange:vn,chromeInsetPx:w||Nr?0:gr,lightRig:!1}),Zt===!0&&s.viewport.grid.removeFromParent();const u=g=>{const k=Kr(g.clientX,g.clientY),h=k&&s.adapter?Ve(s.adapter.hierarchy,k):null;h&&Or.current?.(h)};G.addEventListener("dblclick",u),s.cleanups.push(()=>G.removeEventListener("dblclick",u))}const S=s.viewport;if(Qe){const u=S.camera;s.scene.add(u);const g=new Lt;g.name="volter:document-studio",g.add(Qe),u.add(g),s.documentStudio=g,s.cleanups.push(()=>{Qe.removeFromParent(),g.removeFromParent(),s.documentStudio===g&&(s.documentStudio=null),u.removeFromParent()})}if(p){const u=new Lt;u.name="__object3d_document_overlay",Js(u,"editorHelper",!0),B.add(u),Pe=p.setup({root:E.root,scene:B,renderer:V,overlay:u,camera:()=>s.session?.camera()??S.camera,writable:c!==void 0||o!==void 0});const g=h=>{const m=re.getBoundingClientRect(),y=new Tt((h.clientX-m.left)/Math.max(m.width,1)*2-1,-((h.clientY-m.top)/Math.max(m.height,1))*2+1),R=new Rs;return R.layers.enableAll(),R.setFromCamera(y,s.session?.camera()??S.camera),{pointerId:h.pointerId,button:h.button,buttons:h.buttons,clientX:h.clientX,clientY:h.clientY,altKey:h.altKey,ctrlKey:h.ctrlKey,metaKey:h.metaKey,shiftKey:h.shiftKey,ray:R.ray.clone(),hits:R.intersectObjects([E.root,u],!0)}};ce=new Xo({begin:h=>{if(!c&&!o)throw new Error("This Asset Lab document has no persistence binding; project gestures are read-only.");return Pe.begin(h)},persist:async h=>{await ee(h)},reportError:h=>ne(h instanceof Error?h.message:JSON.stringify(h))});const k=h=>{h.preventDefault(),h.stopPropagation()};bt=h=>{h.target instanceof Element&&h.target.closest('[role="alert"], [role="toolbar"]')!==null||ce?.begin(g(h))&&(k(h),h.isTrusted&&re.setPointerCapture?.(h.pointerId))},yt=h=>{ce?.hasActiveGesture()&&(k(h),ce.update(g(h)))},St=h=>{ce?.hasActiveGesture()&&(k(h),re.hasPointerCapture?.(h.pointerId)&&re.releasePointerCapture?.(h.pointerId),ce.commit(g(h)))},xt=h=>{ce?.hasActiveGesture()&&(k(h),ce.cancel(h.pointerId))},Pt=h=>{h.key!=="Escape"||!ce?.hasActiveGesture()||(h.preventDefault(),ce.cancel())},Gr=()=>{G.addEventListener("pointerdown",bt,!0),G.addEventListener("pointermove",yt,!0),G.addEventListener("pointerup",St,!0),G.addEventListener("pointercancel",xt,!0),window.addEventListener("keydown",Pt)}}const Re=s.content,Yr=[...A.shell.selectedEntityIds],st=s.adapter,xn=s.presentationAdapter,Pn=new Map(A.objectMap),We=s.session?.root,Cn=s.frame,kn=s.syncHostScene,Mn=dt.current,En=pt.current,On=ht.current,Xr=s.session?.neutralBackgroundTexture(),Rn=s.dressing.lights.map(u=>u.visible),jn=s.cleanups.length,Tn=s.initialized;if(Ur=()=>{B.removeFromParent(),wt&&wt.add(E.root),Re&&s.scene.add(Re.scene),s.adapter=st,s.presentationAdapter=xn,s.content=Re,s.frame=Cn,s.syncHostScene=kn,s.initialized=Tn;for(const u of s.cleanups.splice(jn))u();!We&&s.session&&(s.session.dispose(),s.session=null),A.objectMap.clear();for(const[u,g]of Pn)A.objectMap.set(u,g);Re&&A.bindScene(Re.scene,V,S.batchedRenderer,S.camera),We&&st&&s.session?.replaceContent(We,st),dt.current=Mn,pt.current=En,ht.current=On,ft.current=st,Hr(st),Xr!==void 0&&s.session?.setNeutralBackground(Xr),s.dressing?.lights.forEach((u,g)=>{u.visible=Rn[g]??!0}),We&&(s.dressing?.frameContent(We),s.presentationRig?.placeFloor(We)),A.shell.selectMultiple(Yr),A.notifyIngestObjectMapEdit()},Re?.scene.removeFromParent(),s.scene.add(B),s.adapter=fe,s.presentationAdapter=Mt,s.content=sr,A.bindScene(B,V,S.batchedRenderer,S.camera),A.setOrbitTarget(S.orbitControls.target),A.objectMap.clear(),B.traverse(u=>{const g=Mt?.hierarchy.idForObject3D?.(u)??fe.hierarchy.idForObject3D?.(u);g&&A.objectMap.set(g,u)}),s.session)s.session.replaceContent(E.root,fe);else{const u=Us(Rr.current),g=Us(jr.current)??u,k=ct(n).camera;S.setFieldOfView(k.fov);const h=Nt.current,m=qt!==void 0&&Kt!==void 0&&Yt!==void 0;if(!h&&!m){const y=S.orbitControls.target,R=S.camera.position.distanceTo(y);S.camera.position.copy(y).addScaledVector(new z(...k.opening).normalize(),R)}if(g||S.focusOn(E.root),h){const y=new z(...h.target),R=new z(...h.direction).normalize();S.camera.position.copy(y).addScaledVector(R,h.distance),S.camera.up.set(0,1,0),h.up&&S.camera.up.set(...h.up),S.orbitControls.target.copy(y)}else if(m){const y=g??br(E.root),R=y.getCenter(new z),J=new z(qt,Kt,Yt).normalize(),ge=At(y,S.camera,J)*Math.min(10,Math.max(.1,_??1));S.camera.position.copy(R).add(J.multiplyScalar(ge)),S.orbitControls.target.copy(R)}if(s.session=new Uo(n,E.root,s.scene,V,S,fe,De?null:i===void 0?s.dressing.backgroundTexture:new pe(i),u),s.session.selectionOutlineEnabled=!er&&zt.current,s.session.setCameraViewSource(Vr.current??null),s.applyPresentation?.(),Nt.current?.projection==="orthographic"&&s.session.setProjection("orthographic"),!De&&i===void 0&&s.dressing.backgroundTexture){const y=s.session;s.cleanups.push(Ai(()=>{const R=ws(re).background,J=s.defaultBackground;s.defaultBackground=R!==null?new pe(R):Li(),y.neutralBackgroundTexture()===J&&y.setNeutralBackground(s.defaultBackground),J instanceof Os&&J!==s.dressing?.backgroundTexture&&J.dispose()}))}}const nt=$.camera;nt&&(S.setPose(nt.position,nt.target,nt.fov||void 0,nt.up),S.setProjection(_r),$.camera=null);const K=s.session;dt.current=tr,pt.current=Be,ht.current=Pe,ft.current=fe,Hr(fe);const nr=pi(le)?.all?.lighting!==void 0||fi(le)?null:Qe?{all:{lighting:{source:"studio",studioPreset:ys.id,auto:null}}}:zr===!1?{all:{lighting:{source:"scene"}}}:null,ir=Tr.current??null;bs(n,le,nr&&ir?mi(nr,ir):ir??nr);const or=new Set(ba);let Zr;const Jr=()=>{const u=s.session?.presentation().mode;u!==Zr&&(Zr=u,s.applyPresentation?.()),!(u===void 0||!or.has(u))&&ct(n).drawMode!==u&&gi(n,{drawMode:u})},ar=vi(n).drawMode;ar!==void 0&&or.has(ar)&&s.session?s.session.setMode(ar):Jr();const Vn=s.session?.subscribe(Jr),An=vr(()=>{const u=s.session,g=ct(n).drawMode;u&&u.presentation().mode!==g&&or.has(u.presentation().mode)&&u.setMode(g)});s.cleanups.push(()=>{Vn?.(),An()});const Et=[];E.root.traverse(u=>{u.isLight&&Et.push(u)});const Ln={light:Et.length>0,"directional-light":Et.some(u=>u.isDirectionalLight)};s.contentLights=Et,s.contentHas=Ln,s.dressing.frameContent(E.root),s.presentationRig?.placeFloor(E.root),s.cleanups.push(A.shell.subscribe(()=>s.presentationRig?.placeFloor(E.root)));const Qr=new Set;A.shell.selectMultiple(Yr.filter(u=>{const g=A.objectMap.get(u)??Ve(fe.hierarchy,u);if(g===null&&!A.objectMap.has(u))return!1;const k=g??u;return Qr.has(k)?!1:(Qr.add(k),!0)})),A.notifyIngestObjectMapEdit(),K.syncSelectionPresentation(),Gr?.(),ne(null),w||Ss(n);let Ot=B.background;K.setNeutralBackground(Ot??s.defaultBackground);const ze=$.presentation;ze&&(K.setMode(ze.mode),K.setBackground(ze.background),K.setProjection(ze.projection),K.setSkeleton(ze.skeleton),K.setBounds(ze.bounds),$.presentation=null);const Fn=()=>{s.viewport?.alignGridToView(K.camera(),V.domElement.width),s.scene.environment=B.environment??s.defaultEnvironment,s.scene.fog=B.fog,s.scene.environmentIntensity=B.environmentIntensity,s.scene.environmentRotation.copy(B.environmentRotation),s.scene.backgroundIntensity=B.backgroundIntensity,s.scene.backgroundBlurriness=B.backgroundBlurriness,s.scene.backgroundRotation.copy(B.backgroundRotation);const u=s.presentationRig;if(u){const g=u.resolveSource({...s.contentHas,environment:B.environment!==null}),k=u.environment();k&&(s.scene.environment=k.texture??s.defaultEnvironment,s.scene.environmentIntensity=k.intensity,s.scene.environmentRotation.set(0,k.rotation,0));const h=u.backdrop();h!=="keep"?(s.scene.background=h.value,s.scene.backgroundBlurriness=h.blur,s.scene.backgroundIntensity=h.intensity,s.scene.backgroundRotation.set(0,h.rotation,0),s.backdropOverridden=!0):s.backdropOverridden&&(s.scene.background=K.neutralBackgroundTexture(),s.scene.backgroundBlurriness=B.backgroundBlurriness,s.scene.backgroundIntensity=B.backgroundIntensity,s.backdropOverridden=!1);const m=g==="studio"&&u.presetId()===ys.id;s.documentStudio&&(s.documentStudio.visible=m);const y=g==="studio"&&!m||g==="preview"&&!u.sceneLightsShown()?s.darkenContentLights():0;u.update(K.camera()),wi(n,{source:g,presetId:u.presetId(),presetLights:u.lightsVisible(),documentStudio:s.documentStudio?s.documentStudio.visible:null,contentLights:s.contentLights.length,contentLightsDarkened:y,environmentIntensity:s.scene.environmentIntensity,environmentImage:u.imageReport().shown,environmentImagePending:u.imageReport().pending,toneMapping:String(V.toneMapping)})}Ot!==B.background&&(Ot=B.background,K.setNeutralBackground(Ot??s.defaultBackground))};s.syncHostScene=Fn,K.setBeforeRender(()=>s.syncHostScene?.()),K.setPresentsFrames(!0);const Dn=u=>{Ct||!(u>0)||!Number.isFinite(u)||(s.contentSeconds+=u,s.transportAdvances++,E.update?.(u))},_n=_s(E.root,s.transport);s.cleanups.push(()=>_n.dispose());const Ce=$.transport;Ce&&(Ce.activeSubject&&s.transport.setActiveSubject(Ce.activeSubject),s.transport.setLoop(Ce.range.loop),s.transport.setTimeScale(Ce.timeScale),s.transport.seek(Ce.time),Ce.playbackState==="playing"?s.transport.play():Ce.playbackState==="paused"&&s.transport.pause(),$.transport=null);let cr=performance.now();const es=typeof E.onChange=="function";let lr=!0;const Rt=()=>{lr=!0};if(es){const u=E.onChange(Rt),g=A.shell.subscribe(Rt),k=["pointerdown","pointermove","pointerup","pointerleave","wheel","keydown","keyup"];for(const h of k)G.addEventListener(h,Rt,{capture:!0,passive:!0});rr=()=>{u(),g();for(const h of k)G.removeEventListener(h,Rt,{capture:!0})}}let ts=-1;const rs=new js,ss=new js,ns=new Tt,is=new Tt;let os,as=null,cs=Number.NaN;const Hn=u=>{if(!es||lr||u>0||Ps()!==ts||K.needsFrame()||s.presence?.live()||Pe?.prepareFrame||Pe?.update||(S.batchedRenderer.batches?.length??0)>0)return!0;const g=K.camera();return g.updateMatrixWorld(),V.getDrawingBufferSize(is),!g.matrixWorld.equals(rs)||!g.projectionMatrix.equals(ss)||!is.equals(ns)||s.scene.background!==os||V.toneMapping!==as||V.toneMappingExposure!==cs},Bn=()=>{lr=!1,ts=Ps();const u=K.camera();rs.copy(u.matrixWorld),ss.copy(u.projectionMatrix),V.getDrawingBufferSize(ns),os=s.scene.background,as=V.toneMapping,cs=V.toneMappingExposure},Wn=(u,g)=>{if(Ct||!V||!S)return;const k=V,h=S,m=K?.profiler;m?.beginFrame(),g&&(cr=u);const y=Math.min((u-cr)/1e3,.1);cr=u,m?.beginPhase();const R=s.transport.tick(y);if(R>0&&Dn(R),Pe?.prepareFrame?.(y),Pe?.update?.(y),m?.endPhase("animation"),m?.beginPhase(),s.presence?.syncMarkers(y),S.update(y),w||Fs(n,y),S.batchedRenderer.update(y),m?.endPhase("editor"),!g&&!Hn(R)){m?.endFrame();return}m?.beginPhase(),k.info.reset();const J=!Ze.current&&bi()===n;J&&yi(n);const ge=J?Date.now():0,je=s.scene.overrideMaterial,jt=K.presentation().mode;jt!=="uv"&&jt!=="vertex-colors"&&(s.scene.overrideMaterial=B.overrideMaterial);try{h.renderWithInfrastructure(()=>{K.renderViewport(y),h.renderViewCube(k)})}finally{s.scene.overrideMaterial=je}K.servePresentedFrame(),Bn(),Ze.current||(Ze.current=!0,J&&Si("first-render",Date.now()-ge),xi(n),Ut("ready")),m?.reportRender({gpuMs:null,drawCalls:k.info.render.calls,triangles:k.info.render.triangles,geometries:k.info.memory.geometries,textures:k.info.memory.textures}),m?.endPhase("render"),m?.endFrame();const Y=Dt.current;if(Y&&ae&&Pi(ae.shell)===A.shell){const Z=K.cameraPose();Y.frameTime=y*1e3,Y.fps=y>0?1/y:0,Y.drawCalls=k.info.render.calls,Y.triangles=k.info.render.triangles,Y.cameraPosition.x=Z.position[0],Y.cameraPosition.y=Z.position[1],Y.cameraPosition.z=Z.position[2],Y.cameraTarget.x=Z.target[0],Y.cameraTarget.y=Z.target[1],Y.cameraTarget.z=Z.target[2]}};if(s.frame=Wn,ut.current=s.rendererSession,!s.initialized){w||(s.cleanups.push(Ds({camera:S.camera,drawCamera:()=>s.session?.camera()??S.camera,orbit:S.orbitControls,scene:s.scene},()=>null,(m,y)=>S.setHelper(m,y),{documentId:n})),Ke(()=>import("./stage-presence-markers-CQlXR9fX.js"),__vite__mapDeps([69,4,5,7,8,9,10,6,11,12,13,26,27,18,2,70])).then(m=>{if(s.isClosed||q.current!==s||s.presence)return;const y=m.bindStagePresenceMarkers({scene:s.scene,store:A,documentId:n,container:G,canvas:re,viewport:S,readVisibleCameraPose:()=>{const R=s.session?.camera()??S.renderCamera,J=R.getWorldPosition(new z),ge=R.fov;return{position:J,target:S.orbitControls.target,fov:typeof ge=="number"?ge:0}}});s.presence=y,s.cleanups.push(()=>y.dispose())}),s.cleanups.push(So(K,Ws(n))),s.cleanups.push(Ci({id:n,label:r,kind:$r?"asset":"source",profiler:K.profiler}))),!w&&!Nr&&s.cleanups.push(ki(n,()=>({adapter:s.adapter,nodeId:s.adapter?.selection?.get()[0]??null})));const u=w?`${n}#chromeless-${++ya}`:n;s.cleanups.push(Mi({id:u,label:r,contentClock:()=>s.contentSeconds,transportAdvances:()=>s.transportAdvances})),s.cleanups.push(A.shell.onViewportAction(m=>{switch(m.type){case"focus-selection":case"focus-scene":!s.session?.frame()&&s.session?.root&&S.focusOn(s.session.root);break;case"focus-entity":{const y=s.adapter?Ve(s.adapter.hierarchy,m.id):null;y&&S.focusOn(y);break}case"snap-selection-to-floor":S.snapSelectionToFloor();break;case"set-view-preset":s.session?s.session.setViewPreset(m.preset==="perspective"?"isometric":m.preset,"view"):S.setViewPreset(m.preset);break;case"toggle-camera-view":s.session?.toggleCameraView();break;case"frame-all":!s.session?.frame(1,"all")&&s.session?.root?S.focusOn(s.session.root):s.session||S.focusOnScene();break;case"zoom-view":s.session?.cameraView()&&!s.session.cameraViewLocked()?s.session.zoomCameraView(m.direction>0?1.2:1/1.2):S.zoomStep(m.direction);break;case"step-view":if(s.session?.cameraView()&&!s.session.cameraViewLocked())break;S.stepView(m.step);break;case"toggle-projection":{const y=s.session;if(y?.cameraView())break;const J=(y?y.projection():S.projection)==="perspective"?"orthographic":"perspective";y?y.setProjection(J):S.setProjection(J);break}case"set-camera-pose":S.setPose(m.position,m.target,m.fov);break}}));let g="";s.cleanups.push(A.shell.subscribe(()=>{S.objectMap=A.objectMap,S.syncFromStore(),s.session?.syncSelectionPresentation();const m=(s.adapter?.selection?.get()??[]).join("\0");m!==g&&(g=m,w||Ss(n))}));const k=()=>{const m=Math.max(1,G.clientWidth),y=Math.max(1,G.clientHeight),R=V.getPixelRatio();(re.width!==Math.floor(m*R)||re.height!==Math.floor(y*R))&&V.setSize(m,y,!1),S.resize(m,y),s.session?.resize(m,y),s.rendererSession.redraw()},h=new ResizeObserver(k);h.observe(G),s.cleanups.push(()=>h.disconnect()),k(),s.initialized=!0,xs()}S.objectMap=A.objectMap,S.syncFromStore(),s.rendererSession.setActive(lt.current),s.rendererSession.redraw(),qr=!0,Re?.dispose()}catch(ee){if(!qr)try{Ur?.()}finally{wt&&E.root.parent===B&&wt.add(E.root),sr.dispose()}console.error(`[object3d document] ${r}: source update failed`,ee),ne(ee instanceof Error?ee.message:String(ee))}},Sn=Er.current.then(yn);return Er.current=Sn.catch(Se=>{O||ne(Se instanceof Error?Se.message:String(Se))}),()=>{O=!0}},[l,i,t,qt,Kt,Yt,r,n,ue,Wr,Br,Zt,zr,Qe,Jt,w,mt,Je,Xt,p,c,o,D,$,Fe,M,e,Le]),f.useEffect(()=>{const O=ut.current,de=v&&!Ar.current;Ar.current=v,O&&(de&&(Ze.current=!1,ci(n)),O.setActive(v||Le))},[v,n,Le]);const gt=q.current,Qt=Gt==="ready"&>?.viewport?{store:gt.store,viewport:gt.viewport,canvas:gt.surface.canvas}:null,bn=f.useCallback(()=>{const O=ft.current;return O?{adapter:O,nodeId:O.selection?.get()[0]??O.hierarchy.roots()[0]?.id??null}:null},[]),Ir=d.jsx("div",{"data-testid":"tool-object3d-authoring","data-volter-chromeless":w||void 0,className:ue?"volter-object3d-studio-stage":void 0,style:{position:w||he?"relative":"absolute",...w?{width:"100%",height:"100%"}:he?{flex:1,minHeight:0}:{inset:-gr},overflow:"hidden",background:ue?void 0:qe.surface.raised,pointerEvents:"auto"},children:d.jsxs("div",{ref:_t,style:{position:"absolute",inset:0,minHeight:0,overflow:"hidden"},children:[d.jsx(Sa,{canvasHostRef:Ht}),v&&Qt&&!w?d.jsx(f.Suspense,{fallback:null,children:d.jsx(ma,{stage:Qt})}):null,ae&&!w?d.jsx(ia,{store:ae,documentId:n,stage:Qt,active:v,chrome:"document"}):null,ae&&Fr?d.jsx(Fr.Overlays,{store:ae,documentId:n,cameraPreviewRef:Dr,mountStatus:pn,rootIds:mn}):null,$t&&d.jsx("div",{role:"alert",style:{position:"absolute",insetInline:0,top:0,display:"flex",justifyContent:"center",padding:"var(--volter-space-3)",pointerEvents:"none"},children:d.jsxs("div",{className:"volter-chrome-island",style:{display:"flex",alignItems:"center",gap:"var(--volter-space-3)",maxWidth:"80%",padding:"var(--volter-space-2) var(--volter-space-3)",borderRadius:"var(--volter-radius-md)",border:`var(--volter-stroke-resting) solid ${qe.semantic.danger}`,background:qe.surface.raised,color:qe.semantic.danger,pointerEvents:"auto"},children:[d.jsx("span",{children:$t}),d.jsx(Te,{size:"compact","aria-label":"Dismiss",onClick:()=>ne(null),"data-testid":"object3d-document-error-dismiss",children:d.jsx(we,{icon:ve.action.close})})]})}),!$t&&Gt==="building"&&d.jsx(Mo,{testId:"object3d-document-status",children:Eo}),d.jsx("div",{style:{position:"absolute",inset:w||he?0:gr,pointerEvents:"none"},children:!w&&Gt==="ready"&&q.current&&d.jsx(pa,{viewport:q.current.viewport,documentId:n,session:q.current.session,store:q.current.store.shell,projection:_r,displayName:r,...W?{statistics:W}:{},...be!==void 0?{subject:be}:{},...Me?{gridScale:Me}:{},objectName:O=>(de=>de?Ve(de.hierarchy,O)?.name:void 0)(q.current?.adapter)??q.current?.store.objectMap.get(O)?.name??null})})]})});return he?d.jsx(li,{documentId:n,active:v,type:F??(mt?"entity":"model"),title:r,status:e,selection:bn,fill:!0,children:d.jsxs("div",{className:"volter-object3d-asset-workspace",children:[Ir,d.jsx(ko,{transport:q.current?.transport??null})]})}):Ir}function Pa(n){return d.jsx(hn,{...n})}const Qa=Object.freeze(Object.defineProperty({__proto__:null,Object3DDocumentViewport:hn,ToolObject3DAuthoring:Pa},Symbol.toStringTag,{value:"Module"}));export{hn as O,Qa as S,aa as V,zs as s,ea as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J as i,r as m}from"./index-CvGsVzTo.js";import{e as p}from"./game-network-BPTyOFqA.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-XfhvyMrK.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-Dagj3b6J.js";import"./contract-system-adapters-BRHtWOi_.js";import"./game-contract-seams-5IUqvr7b.js";import"./seeded-random-D0QPgfm6.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-B7S-wGjC.js";import"./capability-coverage-9qm5WVwt.js";import"./edit-mode-authoring-DubxVdEM.js";import"./json-history-resource-CckDydoO.js";import"./binding-resolver-CBXePHiR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-DCnaxwIb.js";import"./canvas-entry-runtime-Cjga4XYp.js";import"./three-ingest-runtime-CwRnwvb0.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-lrfMBhf9.js";import"./ingest-source-persistence-CPlDA2D8.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-CkSAEMH-.js";import"./mounted-authoring-D-tXkNKH.js";import"./entity-object-BFppZ54X.js";import"./user-data-DfBtZvxw.js";import"./workspace-arrangement-C9uemwSK.js";import"./three-contract-Dkt6PmWY.js";import"./three-bdxPiUPb.js";import"./editor-layers-BK3fNRb7.js";import"./component-instance-root-MBgAuUpp.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BuqO9MDt.js";import"./source-persistence-backend-Djuk0m-7.js";import"./three-projection-core-BO23VKAP.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BcTFD1ZS.js";import"./deferred-ingest-play-DZiOEH9a.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-B6BiehHR.js";import"./board-guides-whelE-Dr.js";import"./relative-import-specifier-BvzqkvYS.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DxfAFkho.js";import"./inference-diagnostics-BCwXk-CS.js";import"./writer-tw6EcuVO.js";import"./three-state-BhQOBgKC.js";import"./editor-shell-store-Bro0arjr.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-CuJjGYTz.js";import"./game-surface-defaults-D8S4cRxi.js";const Rt="workspace.service";function e(o){p().catch(t=>{m().console.error(`${o}: ${t instanceof Error?t.message:String(t)}`,"play")})}function Ut(){let o,t=!1;const r=i(()=>{t||new URLSearchParams(window.location.search).get("play")==="1"&&(t=!0,o=window.setTimeout(()=>e("Could not enter requested Play mode"),0))});return()=>{o!==void 0&&window.clearTimeout(o),r()}}export{Rt as point,Ut as start};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as B,la as xt}from"./index-CvGsVzTo.js";import{a as kt}from"./preview-renderer-BrYNFV1p.js";import{v as Et}from"./output-pass-HurwNl0G.js";import{_ as St,fx as Pe,bi as Ve,aC as Bt,d7 as Ct,ej as jt,cP as ve,el as Ye,cm as At,cl as Ue,fo as ie,ex as Je,d5 as Qe,d9 as et,cJ as It,e as We,cj as Tt}from"./three.core-3arARmh6.js";import{f as tt}from"./clip-planes-CnAI6DZn.js";import{a as nt}from"./content-bounds-BFpR_e--.js";class _t{#r;#s;#n=new Map;#k=0;#c=null;#a=null;#u=!1;#y=!1;#b=t=>{!this.#y&&this.#n.size===0||(t.preventDefault(),t.returnValue="")};#d=new Map;#f=new Map;#h=null;#w=0;#M=0;#v=0;#i=null;#x=null;#g=null;constructor(t){this.#s=t,this.#r=new Worker(new URL("/assets/worker-CJIsrsP6.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#b),this.#r.onmessage=n=>void this.#E(n.data),this.#r.onerror=n=>{const r=n.error,a=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",o=r?.stack??r?.message??n.message,s=new Error(`Blender worker failed: ${o||"the worker script did not load"}${a}`);console.error(s.message);for(const i of[...this.#n.keys()])this.#p(i);for(const i of this.#n.values())i.reject(s);this.#n.clear()}}#o=null;#l=null;get project(){return this.#o}get document(){return this.#l}start(t,n){return this.#o!==null&&this.#o!==t?Promise.reject(new Error(`The Blender session is bound to ${this.#o}, not ${t}`)):n!==void 0&&this.#l!==null&&this.#l!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#l}; cannot open ${n}`)):(this.#o=t,this.#l??=n??"models/model.blend",this.#c??=this.#e({op:"start",project:t,...n===void 0?{}:{document:n}}),this.#c)}#t(){return this.#o===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#o)}async execute(t,n=!0,r="Blender Python"){return await this.#t(),await this.#e({op:"execute",code:t,history:n,label:r})}async historyGesture(t){await this.#t(),await this.#e({op:t})}async historyStep(t,n){return await this.#t(),(await this.#e({op:"history-step",token:t,direction:n})).moved}async sceneInfo(){return await this.#t(),await this.#e({op:"scene-info"})}async objectInfo(t){return await this.#t(),await this.#e({op:"object-info",name:t})}async rna(t,n){return await this.#t(),await this.#e({op:"rna",path:t,...n===void 0?{}:{names:n}})}async rnaContext(t,n){return await this.#t(),await this.#e({op:"rna-context",...t===void 0?{}:{object:t},...n===void 0?{}:{collection:n}})}async rnaSet(t,n,r,a,o=!0){return await this.#t(),await this.#e({op:"rna-set",history:o,path:t,property:n,value:r,...a===void 0?{}:{index:a}})}async outliner(t){return await this.#t(),await this.#e({op:"outliner",...t===void 0?{}:{selected:t}})}async nodeTree(t){return await this.#t(),await this.#e({op:"node-tree",...t?.path===void 0?{}:{path:t.path},...t?.material===void 0?{}:{material:t.material}})}async uvLayout(t){return await this.#t(),await this.#e({op:"uv-layout",...t?.object===void 0?{}:{object:t.object},...t?.uvLayer===void 0?{}:{uvLayer:t.uvLayer}})}async rig(t){return await this.#t(),await this.#e({op:"rig",...t?.object===void 0?{}:{object:t.object}})}async actionClip(t){return await this.#t(),await this.#e({op:"action-clip",...t?.object===void 0?{}:{object:t.object},...t?.bake===void 0?{}:{bake:t.bake}})}async outlinerSet(t,n,r){return await this.#t(),await this.#e({op:"outliner-set",path:t,column:n,value:r})}async present(){await this.#t(),await this.#e({op:"present"})}async screenshotView(t){return await this.#t(),await this.#e({op:"screenshot-view",maxSize:t})}async readFile(t){return await this.#t(),await this.#e({op:"read-file",path:t})}async writeFile(t,n){await this.#t(),await this.#e({op:"write-file",path:t,bytes:n})}async listFiles(t){return await this.#t(),await this.#e({op:"list-files",path:t})}get presented(){return this.#x}stop(){return this.#u?Promise.resolve():this.#a?this.#a:(this.#a=(async()=>{(this.#c?await this.#c.then(()=>!0,()=>!1):!1)&&await this.#e({op:"flush-document"},!0),this.terminate()})().catch(t=>{throw this.#a=null,t}),this.#a)}terminate(){if(this.#u)return;this.#u=!0,globalThis.removeEventListener?.("beforeunload",this.#b);const t=this.#m("terminating worker");try{this.#r.terminate()}finally{t()}const n=new Error("The Blender session was terminated");for(const r of[...this.#n.keys()])this.#p(r);for(const r of this.#n.values())r.reject(n);this.#n.clear()}metrics(t=performance.now()){let n=null,r=this.#w,a=this.#M,o=this.#v;for(const s of this.#d.values()){const i=t-s;(n===null||i>n)&&(n=i),i>r&&(r=i),i>=5e3&&(a+=1),i>=3e4&&(o+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#h===null?null:Math.round(this.#h),maxCallMs:this.#h===null&&n===null?null:Math.round(r),callsOver5s:a,callsOver30s:o,lastCallWindow:this.#i,wasmMemoryMB:this.#g===null?null:Math.round(this.#g/1048576)}}#p(t){this.#f.get(t)?.(),this.#f.delete(t);const n=this.#d.get(t);if(n===void 0)return;this.#d.delete(t);const r=performance.now()-n;this.#h=r,r>this.#w&&(this.#w=r),r>=5e3&&(this.#M+=1),r>=3e4&&(this.#v+=1),this.#i!==null&&this.#i.start===n&&(this.#i={start:n,end:n+r})}#e(t,n=!1){if(this.#u||this.#a&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const r=++this.#k;return new Promise((a,o)=>{this.#n.set(r,{resolve:a,reject:o});const s=performance.now();this.#d.set(r,s),this.#i={start:s,end:null},this.#f.set(r,this.#m(`waiting for worker ${t.op}`));try{this.#r.postMessage({...t,id:r})}catch(i){this.#n.delete(r),this.#p(r),o(i instanceof Error?i:new Error(String(i)))}})}#m(t){try{const n=this.#s.work?.(t);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}async#E(t){if("op"in t){if(t.op==="document-dirty"){this.#y=t.dirty;return}if(t.op==="history"){this.#s.history?.(t.entries);return}if(t.op==="log"){this.#s.log?.(t.level,t.text);return}if(t.op==="memory"){this.#g=t.bytes;return}const r=t.frame;typeof r?.session=="string"&&typeof r.revision=="number"&&(this.#x={session:r.session,revision:r.revision});const a=this.#m("presenting worker frame");try{const o=await this.#s.present(t.frame,t.description,t.capture);this.#r.postMessage({op:"present-result",id:t.id,...o?.capture===void 0?{}:{capture:o.capture},...o!=null&&"held"in o?{held:o.held}:{}})}catch(o){this.#r.postMessage({op:"present-result",id:t.id,error:o instanceof Error?o.message:String(o)})}finally{a()}return}const n=this.#n.get(t.id);n&&(this.#n.delete(t.id),this.#p(t.id),"error"in t?n.reject(new Error(t.error)):n.resolve(t.result))}}const Ft="/assets/agx-base-srgb-BjWZJgrZ.lut",Rt="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",$t="/assets/agx-look-punchy-dxsnycNs.lut",Lt="/assets/filmic-srgb-Ct35FIH6.lut",R=new Float64Array(12),Ge=[0,0,0],W=new Float64Array(3),ee=new Float64Array(3),$=new Int8Array([1,0,0,1,1,0,0,1,2,1,0,0,1,0,1,0,2,1,0,0,1,1,0,1,2,0,1,0,0,1,0,1,1,2,1,0,0,1,0,0,1,1,1,2,0,0,1,0,1,1,0,1,0,2]);function Nt(e,t,n){return e>t?t>n?0:e>n?1:2:n>t?3:n>e?4:5}function rt(e,t,n,r,a){const o=t*t,s=Math.min(1,Math.max(0,n))*(t-1),i=Math.min(1,Math.max(0,r))*(t-1),c=Math.min(1,Math.max(0,a))*(t-1),h=Math.min(Math.floor(s),t-2),l=Math.min(Math.floor(i),t-2),u=Math.min(Math.floor(c),t-2),M=s-h,v=i-l,E=c-u,g=(d,f,b,x)=>{const w=(h+f+(l+b)*t+(u+x)*o)*3;R[d]=e[w]/65535,R[d+1]=e[w+1]/65535,R[d+2]=e[w+2]/65535};g(0,0,0,0),g(9,1,1,1),W[0]=M,W[1]=v,W[2]=E;const m=Nt(M,v,E)*9;g(3,$[m],$[m+1],$[m+2]),g(6,$[m+3],$[m+4],$[m+5]);const k=W[$[m+6]],p=W[$[m+7]],y=W[$[m+8]];for(let d=0;d<3;d++){const f=R[d];Ge[d]=f+k*(R[3+d]-f)+p*(R[6+d]-R[3+d])+y*(R[9+d]-R[6+d])}return Ge}function te(e){const t=e&32768?-1:1,n=e>>10&31,r=e&1023;return n===0?t*2**-24*r:n===31?r?Number.NaN:t*Number.POSITIVE_INFINITY:t*2**(n-15)*(1+r/1024)}function Fe(e,t,n,r){const a=new Uint8ClampedArray(t*4);for(let o=0;o<t;o++){const s=o*4,i=te(e[s+3]),c=i===0?n:n/i;ee[0]=te(e[s])*c,ee[1]=te(e[s+1])*c,ee[2]=te(e[s+2])*c;const h=r(ee);a[s]=Math.round(h[0]*255),a[s+1]=Math.round(h[1]*255),a[s+2]=Math.round(h[2]*255),a[s+3]=Math.round(Math.min(1,Math.max(0,i))*255)}return a}function Ot(e){return new URL(Object.assign({"./agx-base-srgb.lut":Ft,"./agx-look-medium-high-contrast.lut":Rt,"./agx-look-punchy.lut":$t,"./filmic-srgb.lut":Lt})[`./${e.replace(/\.lut$/,"")}.lut`],import.meta.url)}const Dt=57,N=-12.47393,ot=12.5260688117,Pt=[[.4123908,.3575843,.1804808],[.212639,.7151687,.0721923],[.0193308,.1191948,.9505322]],Vt=[[1.5250528,-.3159135,-.1226583],[-.5091526,1.3333274,.1382844],[.0957153,.0508974,.7879558]];function qe(e,t,n){const r=t[0],a=t[1],o=t[2];n[0]=e[0][0]*r+e[0][1]*a+e[0][2]*o,n[1]=e[1][0]*r+e[1][1]*a+e[1][2]*o,n[2]=e[2][0]*r+e[2][1]*a+e[2][2]*o}const ne=new Float64Array(3),ze=new Float64Array(3),re=[0,0,0];function pe(e){const t=Math.min(1,Math.max(0,e));return t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055}function at(e,t,n,r){return rt(e,Dt,t,n,r)}function Ut(e,t){qe(Pt,t,ze),qe(Vt,ze,ne);const n=ot-N,r=at(e,(Math.log2(Math.max(ne[0],1e-10))-N)/n,(Math.log2(Math.max(ne[1],1e-10))-N)/n,(Math.log2(Math.max(ne[2],1e-10))-N)/n);return re[0]=pe(Math.max(0,r[0])**2.4),re[1]=pe(Math.max(0,r[1])**2.4),re[2]=pe(Math.max(0,r[2])**2.4),re}const Wt={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Gt(e,t){const n=ot-N;return at(e,(Math.log2(Math.max(t[0],1e-10))-N)/n,(Math.log2(Math.max(t[1],1e-10))-N)/n,(Math.log2(Math.max(t[2],1e-10))-N)/n)}function qt(e,t,n,r={}){const a=r.exposure??1,o=r.composedLook===!0?Gt:Ut;return Fe(t,n,a,s=>o(e,s))}const st=33,xe=st**3*3,ke=4096,fe=-12.473931188,we=25;function ge(e,t){const n=Math.min(1,Math.max(0,t))*(ke-1),r=Math.min(Math.floor(n),ke-2),a=n-r;return((1-a)*e[xe+r]+a*e[xe+r+1])/65535}const oe=[0,0,0];function zt(e,t){const n=rt(e,st,(Math.log2(Math.max(t[0],1e-10))-fe)/we,(Math.log2(Math.max(t[1],1e-10))-fe)/we,(Math.log2(Math.max(t[2],1e-10))-fe)/we);return oe[0]=ge(e,n[0]/.66),oe[1]=ge(e,n[1]/.66),oe[2]=ge(e,n[2]/.66),oe}function Xt(e,t,n,r){if(e.length!==xe+ke)throw new Error("Invalid Blender Filmic display table");return Fe(t,n,r,a=>zt(e,a))}const J=2.4,O=.055,it=O/(J-1),Ht=1/(J/(1+O)*((it+O)/(1+O))**(J-1)),Zt=((it+O)/(1+O))**J;function me(e){return e>0?e<Zt?e*Ht:(1+O)*e**(1/J)-O:0}const ae=[0,0,0];function Kt(e){return ae[0]=me(e[0]),ae[1]=me(e[1]),ae[2]=me(e[2]),ae}function Yt(e,t,n){return Fe(e,t,n,Kt)}function lt(e,t,n,r){if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<1||n.height<1)throw new Error("Scene capture requires finite positive dimensions");const a=Math.min(2048,Math.round(n.width)),o=Math.min(2048,Math.round(n.height)),s=r?1:2,i=a*s,c=o*s,h=kt(),l=h.renderer,u={target:l.getRenderTarget(),toneMapping:l.toneMapping,exposure:l.toneMappingExposure,colorSpace:l.outputColorSpace,shadows:l.shadowMap.enabled,shadowType:l.shadowMap.type,clearColor:l.getClearColor(new St),clearAlpha:l.getClearAlpha(),background:e.background};let M,v,E=!1;try{M=new Pe(i,c,{type:Ve}),n.effect&&(M.depthTexture=new Bt(i,c)),l.shadowMap.enabled=!0,l.shadowMap.type=Ct,l.outputColorSpace=jt,l.toneMapping=n.toneMapping??ve,l.toneMappingExposure=n.exposure??1,l.setClearColor(0,n.transparent?0:1),n.transparent&&(e.background=null),l.setRenderTarget(M),l.clear(),l.render(e,t);const g=n.effect?.render(l,M,e,t)??M;if(g.texture.type!==Ve||g.width!==i||g.height!==c)throw new Error("Scene capture effect must return a same-size half-float target");if(r){const w=new Uint16Array(i*c*4);return l.readRenderTargetPixels(g,0,0,i,c,w),E=!0,{pixels:w,width:a,height:o}}v=new Pe(i,c),Et(n.transparent===!0).render(l,v,g,0,!1);const m=new Uint8Array(i*c*4);l.readRenderTargetPixels(v,0,0,i,c,m);const k=document.createElement("canvas");k.width=i,k.height=c;const p=k.getContext("2d");if(!p)throw new Error("Scene capture could not create an image canvas");const y=p.createImageData(i,c),d=i*4;for(let w=0;w<c;w++)y.data.set(m.subarray((c-1-w)*d,(c-w)*d),w*d);p.putImageData(y,0,0);const f=document.createElement("canvas");f.width=a,f.height=o;const b=f.getContext("2d");if(!b)throw new Error("Scene capture could not create an output canvas");b.drawImage(k,0,0,a,o);const x=f.toDataURL("image/png");return E=!0,x}finally{e.background=u.background,l.setRenderTarget(u.target),l.toneMapping=u.toneMapping,l.toneMappingExposure=u.exposure,l.outputColorSpace=u.colorSpace,l.shadowMap.enabled=u.shadows,l.shadowMap.type=u.shadowType,l.setClearColor(u.clearColor,u.clearAlpha),v?.dispose(),M?.dispose(),h.release({discard:!E})}}function Jt(e,t,n){return lt(e,t,n,!0)}function Qt(e,t,n){return lt(e,t,n,!1)}const en=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.objectForBlenderName=="function"&&typeof e.blenderObjectName=="function"&&typeof e.blenderSelection=="function"&&typeof e.setStageMode=="function";function Re(){const e=B().documents.context(wt());return en(e)?e:null}function tn(){return Re()?.blenderSelection()??{selected:[],active:null}}const nn={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let Ee=nn,ct=0;const Se=new Set;let Z=null,he=null,$e="",K=null;function rn(e){const t=new Map,n=new Map,r=(a,o)=>{t.set(a.id,a),n.set(a.id,o);for(const s of a.children)r(s,a.id)};for(const a of e?.rows??[])r(a,null);return{byId:t,parentOf:n}}function le(e){Ee={...Ee,...e},ct+=1;for(const t of[...Se])t()}function Tn(e){return Se.add(e),()=>{Se.delete(e)}}function _n(){return ct}function Fn(){return Ee}function Le(e){K!==e&&(K=e,setTimeout(()=>{K===e&&(K=null,ut(e===""?[]:e.split("\0")))},0))}let ye=0,Be=Promise.resolve();function ut(e){const t=on(e);return Be=t,t}async function on(e){const t=e.join("\0"),n=++ye;he=t,$e=t,le({loading:!0});try{const r=await yn(e);if(n!==ye)return;Re()?.setStageMode(r?.mode??null),le({tree:r,...rn(r),loading:!1,error:null})}catch(r){if(n!==ye)return;le({loading:!1,error:dt(r)})}}function an(){he=null,Le($e);for(const e of[...Ce])e()}const Ce=new Set;function Rn(e){return Ne(),Ce.add(e),()=>{Ce.delete(e)}}let se=!1,be=null;function Ne(){const e=Re();if(Z!==null&&be===e)return;Z!==null&&(Z(),Z=null,be=null);const t=e;if(t!==null){Z=t.subscribeFrames(an),be=t;return}se||(se=!0,B().documents.waitForContext(wt()).then(()=>{se=!1,Ne()}).catch(()=>{se=!1}))}function $n(e){if(!T())return;Ne();const t=[...e].sort().join("\0");he!==t&&Le(t)}async function sn(e){if(!T())return;K=null;let t=ut([...e].sort());for(;;){if(await t,Be===t)return;t=Be}}async function Ln(e,t,n){try{return await mt(e,t,n),he=null,Le($e),!0}catch(r){return le({error:dt(r)}),!1}}function dt(e){return e instanceof Error?e.message:String(e)}const ln={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let je=ln,Oe=0;const de=new Set;let ht=0;function Me(){return je}function Nn(){return Oe}function On(e){return de.add(e),()=>{de.delete(e)}}function Y(e){je={...je,...e},Oe+=1;for(const t of[...de])t()}function cn(){ht+=1,Oe+=1;for(const e of[...de])e()}function Dn(){return ht}function G(e){Y({refusal:e})}const Xe=new Map;function un(e){let t=Xe.get(e);return t||(t=fetch(Ot(e)).then(async n=>{if(!n.ok)throw new Error(`Blender display table ${e}: ${n.status} ${n.statusText}`);return new Uint16Array(await n.arrayBuffer())}),Xe.set(e,t)),t}function dn(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function pt(e,t){const n=t.look??"None",r=t.toneMapping==="filmic",a=t.toneMapping==="none";if(!a&&t.toneMapping!=="agx"&&!r)throw new Error("Blender's Khronos PBR Neutral view transform has no scene-linear implementation in the browser, so it cannot resolve a composited or scene-referred frame (implemented: Standard, AgX, Filmic)");const o=a?null:r?"filmic-srgb.lut":n==="None"?"agx-base-srgb.lut":Wt[n];if(o===void 0)throw new Error(`Blender display transform has no table for look ${n}`);const s=o?await un(o):null,i=t.linearInput,c=i?{pixels:dn(i.base64),width:i.width,height:i.height}:e;if(!c)throw new Error("Blender display transform requires a linear capture");const{pixels:h,width:l,height:u}=c,M=a?Yt(h,l*u,t.exposure):r?Xt(s,h,l*u,t.exposure):qt(s,h,l*u,{exposure:t.exposure,composedLook:n!=="None"}),v=document.createElement("canvas");v.width=l,v.height=u;const E=v.getContext("2d");if(!E)throw new Error("Blender display transform could not create its image canvas");const g=E.createImageData(l,u),m=l*4;for(let y=0;y<u;y++){const d=(u-1-y)*m;g.data.set(M.subarray(d,d+m),y*m)}E.putImageData(g,0,0);const k=v.toDataURL("image/png"),p={base64:k.slice(k.indexOf(",")+1),mimeType:"image/png"};if(t.linear===!0){const y=new Uint8Array(h.buffer,h.byteOffset,h.byteLength);let d="";for(let f=0;f<y.length;f+=32768)d+=String.fromCharCode(...y.subarray(f,f+32768));p.linearBase64=btoa(d),p.linearWidth=l,p.linearHeight=u}return p}async function ft(e,t,n,r,a=()=>{}){const o={none:ve,agx:We,neutral:It,filmic:ve};await n.prepare(t),a();const s={effect:n.effect,width:r.width,height:r.height,transparent:r.transparent===!0,toneMapping:o[r.toneMapping]??We,exposure:r.exposure},i=r.toneMapping==="agx"||r.toneMapping==="filmic"||r.linear===!0?await pt(Jt(e,t,s),r):null;if(a(),i)return i;const c=Qt(e,t,s);if(!c)throw new Error("Blender render could not capture its image");return{base64:c.slice(c.indexOf(",")+1),mimeType:"image/png"}}const hn={Standard:"none",AgX:"agx",Filmic:"filmic","Khronos PBR Neutral":"neutral"},pn=1600;async function Pn(e,t){const n=b=>({kind:"refused",reason:b}),r=e.cameraViewCamera(),a="The scene has no camera, so there is nothing to render";if(r===null)return n(a);const o=e.cameraView(r,{width:1e3,height:1e3},1,[0,0]);if(o===null)return n(a);const s=o.frame.width/o.frame.height,i=Math.min(1,pn/Math.max(t.width,t.height)),c=Math.min(t.width,t.height*s)*i,h=Math.max(1,Math.round(c)),l=Math.max(1,Math.round(c/s)),u=e.cameraView(r,{width:h,height:l},1,[0,0]);if(u===null)return n(a);const M=await wn();if(M===null)return n("Blender is starting");const[v,E]=await Promise.all([Ze(`${M.scene}.view_settings`),Ze(`${M.scene}.render`)]),g=(b,x)=>b?.kind==="struct"?b.groups.flatMap(w=>w.rows).find(w=>w.identifier===x)?.value:void 0,m=String(g(v,"view_transform")),k=hn[m];if(k===void 0)return n(`Blender view transform ${m} has no curve in the renderer`);const p=String(g(v,"look")??"None"),y=Number(g(v,"exposure")??0),d={width:h,height:l,fov:0,toneMapping:k,exposure:2**(Number.isFinite(y)?y:0),orthographic:u.projection==="orthographic",transparent:g(E,"film_transparent")===!0,...p==="None"||p==="AgX - Base Contrast"?{}:{look:p}},f=e.captureSnapshot();try{const b=new Ye;b.add(f.root),b.updateMatrixWorld(!0);const x=new ie(...u.position),w=nt(f.root).getBoundingSphere(new Je),{near:I,far:z}=tt(x.distanceTo(w.center),w.radius),{left:X,right:D,top:P,bottom:V}=u.window;let _;if(u.projection==="orthographic")_=new Qe(X,D,P,V,I,z);else{const F=new et(Tt.radToDeg(2*Math.atan((P-V)/2)),(D-X)/(P-V),I,z);F.projectionMatrix.makePerspective(X*I,D*I,P*I,V*I,I,z),F.projectionMatrixInverse.copy(F.projectionMatrix).invert(),_=F}_.position.copy(x),_.quaternion.set(...u.quaternion),_.updateMatrixWorld(!0);const H=await ft(b,_,f,d);return{kind:"image",url:`data:${H.mimeType};base64,${H.base64}`,width:h,height:l,projection:u.projection}}finally{f.dispose()}}const fn="document:blender:runtime";let A=null,He=0;function Vn(e){const t=++He;return A=e,q(),()=>{He===t&&(A=null,q())}}function Ae(){const e=S?.document,t=B().documents.activeId(),n=t?.startsWith("document:model:")?t.slice(15):A?.blend;return!n||!e||n===e?null:`Blender is editing ${e}; ${n} is not open. Return to ${e} before editing.`}function L(){return A?.documentId??fn}function wt(){return L()}async function Un(e,t){const n=B();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const r=n.projectLocalState.projectRootPath();if(r===null)throw new Error("Opening a model requires a project path.");if(A!==e||n.documents.activeId()!==e.documentId)return!1;const a=C(),o=a.start(r,e.blend);return t(),await o,A!==e?!1:(await a.present(),A===e)}function T(){return S?.project!=null&&Ae()===null}let gt=0;const Ie=new Set;function Wn(){return gt}function Gn(e){return Ie.add(e),()=>{Ie.delete(e)}}function q(){gt+=1;for(const e of[...Ie])e()}async function Ze(e,t){return T()?C().rna(e,t):null}async function wn(e,t){return T()?C().rnaContext(e,t):null}async function gn(e,t,n,r,a=!0){if(!T())return null;const o=await C().rnaSet(e,t,n,r,a);return q(),o}async function mn(e,t=!0,n="Blender Python"){const r=await C().execute(e,t,n);q();const a=/^Error executing code:/.exec(r);return{text:r,executed:a===null,result:a===null?r.replace(/^Code executed successfully: ?/,""):"",error:a===null?null:r.replace(/^Error executing code: ?/,"")}}function qn(){C().historyGesture("history-begin").catch(e=>B().console.error(`Could not begin Blender undo gesture: ${String(e)}`,"blender-history"))}async function zn(){await C().historyGesture("history-end")}async function yn(e){return T()?C().outliner(e):null}async function Xn(e){return T()?C().nodeTree(e):null}async function Hn(e){return T()?C().uvLayout(e):null}async function Zn(e){return T()?C().rig(e):null}async function Kn(e){return T()?C().actionClip(e):null}async function mt(e,t,n){if(!T())return null;const r=await C().outlinerSet(e,t,n);return q(),r}const bn={view:"blender-node-view",title:"Node Editor",verbs:[["state",void 0],["look",void 0],["view-all","Node Editor: Frame All"],["zoom",void 0],["pan",void 0],["move",void 0],["link",void 0],["set-value",void 0],["use-nodes",void 0],["collapse-panel",void 0]].map(([e,t])=>({id:e,...t?{title:t}:{},run:n=>yt({...n,action:e})}))};function yt(e){const t=typeof e.action=="string"?e.action:"state";switch(t){case"state":break;case"look":Y({looked:typeof e.node=="string"?e.node:null,refusal:null});break;case"view-all":cn(),Y({refusal:null});break;case"zoom":{const n=typeof e.zoom=="number"?e.zoom:1;Y({transform:{...Me().transform,zoom:n},refusal:null});break}case"pan":{const n=Me().transform;Y({transform:{...n,cx:typeof e.cx=="number"?e.cx:n.cx,cy:typeof e.cy=="number"?e.cy:n.cy},refusal:null});break}case"move":G(`Moving "${String(e.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":G("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":G(`Changing "${String(e.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":G("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":G(`Collapsing "${String(e.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:G(`blender-node-view: no action "${t}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return Me()}let S=null;const ce=new Set;function bt(){ce.size&&B().history.invalidate([...ce]),ce.clear()}let Te=null,Ke=!1;function ue(e){try{const t=B().session.beginWork(`Blender: ${e}`);return()=>{try{t()}catch{}}}catch{return()=>{}}}function _e(){const e=ue("invalidating history and releasing runtime");try{bt(),Te?.abort(),Te=null,S?.terminate(),S=null,Mt=null}finally{e()}}function Mn(){Ke||(Ke=!0,B().session.onBeforeClose(async()=>{await S?.stop(),_e()}),B().session.onEnded(_e))}let Mt=null;const vn=e=>typeof e=="object"&&e!==null&&typeof e.applyFrame=="function"&&typeof e.snapshot=="function"&&typeof e.captureSnapshot=="function"&&typeof e.recordPresentation=="function"&&typeof e.recordPhotograph=="function";async function xn(){const{documents:e}=B(),t=Date.now()+15e3;let n=L();for(;;){n=L();const r=await e.waitForContext(n,Math.max(0,Math.min(250,t-Date.now())));if(vn(r))return r;if(Date.now()>=t)break}throw new Error(`The Blender Model document is not open, or the open one is not a Model this engine can present to (it must answer applyFrame, captureSnapshot, recordPresentation and recordPhotograph): nothing published a presentable view as ${n} within 15 s (bound model: ${A?.documentId??"none"}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function C(){const e=Ae();if(e)throw new Error(e);if(S!==null)return S;Mn();const t=new AbortController;Te=t;let n=!1;S=new _t({work:ue,history:a=>{const o=S;if(!o)throw new Error("Blender history arrived before its runtime");for(const s of a){if("reset"in s){bt();continue}if(!s.resource)throw new Error("A Blender edit has no document resource");ce.add(s.resource);const i=async c=>{if(S!==o)throw new Error("This Blender history belongs to a closed worker");const h=await o.historyStep(s.id,c);return q(),await sn(tn().selected),h};B().history.record({id:s.id,label:s.label,resources:[s.resource],document:L(),undo:()=>i("undo"),redo:()=>i("redo")})}},present:async(a,o,s)=>{const i=Ae();if(i)throw new Error(i);if(A===null){if(s?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const c=L(),h=ue("waiting for Model presenter");let l;try{l=await xn()}finally{h()}if(t.signal.throwIfAborted(),L()!==c)throw new Error("Blender document changed before its frame could be presented");const u=ue("applying frame to Model"),M=(()=>{try{return l.applyFrame(a)}finally{u()}})(),v=typeof M=="object"&&M!==null&&"held"in M,E=v?M.held:null,g=x=>({...x===void 0?{}:{capture:x},...v?{held:E}:{}});if(l.recordPresentation(o),!s||(Mt=s,!s.render))return g(void 0);const m=l.snapshot(),k=()=>{if(t.signal.throwIfAborted(),L()!==c||l.snapshot()!==m)throw new Error("Blender capture document or source revision changed before completion")};if(s.render.linearInput){const x=await pt(null,s.render);return k(),g(x)}const{render:p,position:y,target:d,up:f}=s;if(!y||!d||!f)throw new Error("A Blender render capture must carry the scene camera position, target and up");if(n)throw new Error("A Blender render capture is already in progress");const b=l.captureSnapshot();n=!0,t.signal.addEventListener("abort",b.dispose,{once:!0});try{k();const x=new Ye;x.add(b.root),x.updateMatrixWorld(!0);const w=b.root.matrixWorld,I=new At().copy(w).invert(),z=new Ue().setFromMatrix4(w),X=new Ue().setFromMatrix4(I),D=new ie(y[0],y[1],y[2]).applyMatrix4(w),P=new ie(d[0],d[1],d[2]).applyMatrix4(w),V=new ie(f[0],f[1],f[2]).applyMatrix3(z),_=Math.min(2048,Math.round(p.width))/Math.min(2048,Math.round(p.height)),H=nt(b.root).getBoundingSphere(new Je),F=tt(D.distanceTo(H.center),H.radius);let U;if(p.orthographic){const Q=p.fov/2;U=new Qe(-Q*_,Q*_,Q,-Q,F.near,F.far)}else U=new et(p.fov,_,F.near,F.far);U.up.copy(V),U.position.copy(D),U.lookAt(P),U.updateMatrixWorld(!0);const De={position:D.clone().applyMatrix4(I).toArray(),target:P.clone().applyMatrix4(I).toArray(),up:V.clone().applyMatrix3(X).toArray()};l.recordPhotograph({sent:{position:y,target:d,up:f},photographed:De,render:{width:p.width,height:p.height,fov:p.fov,orthographic:p.orthographic}});const vt=await ft(x,U,b,p,k);return g({...vt,camera:De})}finally{n=!1,t.signal.removeEventListener("abort",b.dispose),b.dispose()}},log:(a,o)=>(a==="error"?console.error:console.log)(`[blender] ${o}`)});const r=S;return B().session.reportWorkerCallMeter("Blender",()=>r.metrics()),S}const kn="models/model.blend",j=(e,t)=>{const n=e[t];if(typeof n!="string")throw new Error(`${String(e.type)} requires a string "${t}"`);return n};async function En(e){const t=B().projectLocalState.projectRootPath();if(t===null)return{};let n;try{n=await e.execute(`import bpy
|
|
2
|
-
print(bpy.data.filepath)
|
|
3
|
-
`,!1)}catch{return{}}if(/^Error executing code:/m.test(n))return{};const r=n.replace(/^Code executed successfully:/,"").split(`
|
|
4
|
-
`).map(o=>o.trim()).filter(o=>o.startsWith("/")).pop()??"";if(r==="")return{};const a=t.endsWith("/")?t:`${t}/`;return r.startsWith(a)?{document:r.slice(a.length)}:{}}async function Yn(e){const t=B();if(e.type==="blender-status")return{ok:!0,data:{started:S?.project!=null,document:t.documents.context(L())!==void 0}};if(!t.session.open())return{ok:!1,error:`${e.type} needs an open project session; this editor page has none.`};try{const n=e.type==="blender-start"?j(e,"project"):null;let r=typeof e.document=="string"?e.document:void 0;if((e.type==="blender-stop"||e.type==="blender-start"&&e.fresh===!0)&&(await S?.stop(),_e(),e.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(e.type==="blender-start"&&!t.documents.context(L())){const o=await t.project.documentTable(),s=o.entries.filter(l=>l.kind==="model"),i=r!==void 0?s.find(l=>l.source?.path===r):s.find(l=>l.id===(A?.entryId??o.default))??(s.length===1?s[0]:void 0);if(!i)return{ok:!1,error:r!==void 0?`No declared Model document names ${r}.`:`Choose a Model document before starting Blender. Available: ${s.map(l=>l.id).join(", ")||"(none)"}.`};const c=i.id;if(r=i.source?.path,!await t.workspace.open({kind:"document",id:c}))return{ok:!1,error:`blender-start could not open the Blender Model document ${c}: nothing in this editor opens that document (the Model document ships with @volter/editor-blender).`}}const a=C();switch(e.type){case"blender-start":{const o=r!==void 0?r:A?.blend??kn;return{ok:!0,data:{...await a.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await mn(j(e,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await a.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await a.objectInfo(j(e,"name"))}};case"blender-rna":{const o=typeof e.names=="number"?e.names:void 0;return{ok:!0,data:{result:await a.rna(j(e,"path"),o)}}}case"blender-rna-context":{const o=typeof e.object=="string"?e.object:void 0,s=typeof e.collection=="string"?e.collection:void 0;return{ok:!0,data:{result:await a.rnaContext(o,s)}}}case"blender-rna-set":{const o=typeof e.index=="number"?e.index:void 0;return{ok:!0,data:{result:await gn(j(e,"path"),j(e,"property"),e.value,o)}}}case"blender-outliner":{const o=Array.isArray(e.selected)?e.selected.filter(s=>typeof s=="string"):void 0;return{ok:!0,data:{result:await a.outliner(o)}}}case"blender-node-tree":return{ok:!0,data:{result:await a.nodeTree({...typeof e.path=="string"?{path:e.path}:{},...typeof e.material=="string"?{material:e.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await a.uvLayout({...typeof e.object=="string"?{object:e.object}:{},...typeof e.uvLayer=="string"?{uvLayer:e.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await a.rig({...typeof e.object=="string"?{object:e.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await a.actionClip({...typeof e.object=="string"?{object:e.object}:{},...typeof e.bake=="boolean"?{bake:e.bake}:{}})}};case"blender-node-view":{const o=typeof e.action=="string"?e.action:"state";return{ok:!0,data:{result:bn.verbs.some(i=>i.id===o)?xt("blender-node-view",o,e):yt(e)}}}case"blender-outliner-set":return{ok:!0,data:{result:await mt(j(e,"path"),j(e,"column"),e.value!==!1)}};case"blender-screenshot-view":{const o=typeof e.maxSize=="number"?e.maxSize:1e3,s={kind:"document",id:A?.entryId??"blender:runtime"};return{ok:!0,data:{...await a.screenshotView(o),document:s}}}case"blender-read-file":{const o=await a.readFile(j(e,"path")),s=j(e,"transferId"),i=await fetch(`/__editor/blender-file?id=${encodeURIComponent(s)}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o])});return i.ok?{ok:!0,data:{bytes:o.length}}:{ok:!1,error:`Transfer ${s} was refused: ${i.status}`}}case"blender-write-file":{const o=atob(j(e,"base64")),s=Uint8Array.from(o,i=>i.charCodeAt(0));return await a.writeFile(j(e,"path"),s),{ok:!0,data:{written:s.length}}}case"blender-list-files":{const o=await a.listFiles(j(e,"path")),s=a.presented;return{ok:!0,data:{entries:o,...s?{session:s.session,revision:s.revision}:{},...await En(a)}}}}return{ok:!1,error:`Unknown Blender command ${e.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{zn as A,qn as B,Ln as C,$n as D,mn as E,Pn as F,Vn as G,Un as H,bn as N,On as a,Wn as b,Y as c,Me as d,Xn as e,Dn as f,Kn as g,Yn as h,Zn as i,Hn as j,Fn as k,wt as l,T as m,Nn as n,q as o,wn as p,Ze as q,G as r,Gn as s,gn as t,Rn as u,Tn as v,sn as w,tn as x,_n as y,Re as z};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./jsx-runtime-DPjLkJKQ.js";import{jC as ke,dJ as he,r as $,cO as Se,fH as V,cS as M,dj as H,hQ as xe,cR as Ee,dG as Oe,dI as Ce}from"./index-CvGsVzTo.js";import{c as ye,a as X}from"./blender-runtime-skin-D3Arti9-.js";import{r as y}from"./index-nmcBqr7Y.js";import{u as Re,v as Y,w as J,x as Fe,y as ne,z as ee,t as de,A as Ne,B as Le,C as ue,D as Te,k as q,E as Z,F as Me,G as Ae,H as Ie}from"./blender-runtime-host-CcqXT39s.js";import"./index-CtzuWnCS.js";import{a as Be}from"./three-contract-Dkt6PmWY.js";import{o as te,b as U}from"./viewport-door-CuJjGYTz.js";import{d9 as Pe}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./LineSegments2-DN9pUfWA.js";import"./three.module-BLhyNg0e.js";import"./preview-renderer-BrYNFV1p.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-BFpR_e--.js";import"./hierarchy-marks-Pb6wnNcu.js";import"./workspace-arrangement-C9uemwSK.js";function je(t){const a=Number.isFinite(t)&&t>0?t:50;return{degrees:2*Math.atan(72/(2*a))*180/Math.PI,axis:"larger"}}ke("model",{camera:{fov:je(50),opening:[.8187,.4458,.3617]},interaction:{bootTool:"select",boxSelect:"touch"},all:{lighting:{source:"studio",studioPreset:he.id,auto:null,tone:{mapper:"none",exposure:1}},xray:{enabled:!1,alpha:.5}},modes:{wireframe:{xray:{enabled:!0,alpha:0}},preview:{lighting:{source:"preview",auto:null,preview:{sceneLights:!1,sun:{enabled:!1},environment:{enabled:!0,image:"blender:forest",energy:1,rotation:0}},tone:{mapper:"agx",exposure:1}},backdrop:{source:"fill"}},rendered:{lighting:{source:"scene",auto:null,tone:{mapper:"agx",exposure:1}},backdrop:{source:"scene"}}},overlays:{selection:{origins:!0}},world:{upAxis:"z"}});function $e(t){return`blender-${t.toLowerCase().replace(/_/g,"-")}`}function B(t){return t?.type==="TSE_SOME_ID"&&t.struct==="Object"&&t.object!==void 0}function pe(t){if(t.struct)return t.struct}function be(t,a){return{id:t.id,label:t.name,role:"entity",kind:$e(t.icon),...pe(t)?{typeLabel:pe(t)}:{},parentId:a,childIds:t.children.map(l=>l.id),defaultExpanded:t.expanded}}const De={transform:!0,inspectorFields:!1,persist:!0},W=new Set;function Ve(t){for(const a of W)if(a.documentId===t)return a;return W.size===1?[...W][0]:null}const Ge=()=>({position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]});function We(t,a){t.updateWorldMatrix(!0,!1);const l=a.matrixWorld.clone().invert().multiply(t.matrixWorld).elements;return[[l[0],l[1],l[2],l[3]],[l[4],l[5],l[6],l[7]],[l[8],l[9],l[10],l[11]],[l[12],l[13],l[14],l[15]]]}function z(t,a){return`${t} needs a file, and this editor has no door to ask for one: the host's file door (\`EditorHost.files\`, \`@volter/editor-sdk/host\`) reads and writes project-relative paths and has no file-picker member, so there is nothing to open the workbench's own dialog through. Blender's row opens a file browser; run without one, the engine answers "${a}".`}const He=[{kind:"mesh.plane",label:"Plane",group:"Mesh",call:"mesh.primitive_plane_add"},{kind:"mesh.cube",label:"Cube",group:"Mesh",call:"mesh.primitive_cube_add"},{kind:"mesh.circle",label:"Circle",group:"Mesh",call:"mesh.primitive_circle_add"},{kind:"mesh.uv-sphere",label:"UV Sphere",group:"Mesh",call:"mesh.primitive_uv_sphere_add"},{kind:"mesh.ico-sphere",label:"Ico Sphere",group:"Mesh",call:"mesh.primitive_ico_sphere_add"},{kind:"mesh.cylinder",label:"Cylinder",group:"Mesh",call:"mesh.primitive_cylinder_add"},{kind:"mesh.cone",label:"Cone",group:"Mesh",call:"mesh.primitive_cone_add"},{kind:"mesh.torus",label:"Torus",group:"Mesh",call:"mesh.primitive_torus_add"},{kind:"mesh.grid",label:"Grid",group:"Mesh",call:"mesh.primitive_grid_add",separatorBefore:!0},{kind:"mesh.monkey",label:"Monkey",group:"Mesh",call:"mesh.primitive_monkey_add"},{kind:"curve.bezier",label:"Bézier",group:"Curve",call:"curve.primitive_bezier_curve_add"},{kind:"curve.bezier-circle",label:"Circle",group:"Curve",call:"curve.primitive_bezier_circle_add"},{kind:"curve.nurbs-curve",label:"Nurbs Curve",group:"Curve",call:"curve.primitive_nurbs_curve_add",separatorBefore:!0},{kind:"curve.nurbs-circle",label:"Nurbs Circle",group:"Curve",call:"curve.primitive_nurbs_circle_add"},{kind:"curve.path",label:"Path",group:"Curve",call:"curve.primitive_nurbs_path_add"},{kind:"curve.empty-hair",label:"Empty Hair",group:"Curve",call:"object.curves_empty_hair_add",separatorBefore:!0},{kind:"curve.fur",label:"Fur",group:"Curve",call:"object.quick_fur"},{kind:"surface.nurbs-curve",label:"Nurbs Curve",group:"Surface",call:"surface.primitive_nurbs_surface_curve_add"},{kind:"surface.nurbs-circle",label:"Nurbs Circle",group:"Surface",call:"surface.primitive_nurbs_surface_circle_add"},{kind:"surface.nurbs-surface",label:"Nurbs Surface",group:"Surface",call:"surface.primitive_nurbs_surface_surface_add"},{kind:"surface.nurbs-cylinder",label:"Nurbs Cylinder",group:"Surface",call:"surface.primitive_nurbs_surface_cylinder_add"},{kind:"surface.nurbs-sphere",label:"Nurbs Sphere",group:"Surface",call:"surface.primitive_nurbs_surface_sphere_add"},{kind:"surface.nurbs-torus",label:"Nurbs Torus",group:"Surface",call:"surface.primitive_nurbs_surface_torus_add"},{kind:"metaball.ball",label:"Ball",group:"Metaball",call:"object.metaball_add, type='BALL'"},{kind:"metaball.capsule",label:"Capsule",group:"Metaball",call:"object.metaball_add, type='CAPSULE'"},{kind:"metaball.plane",label:"Plane",group:"Metaball",call:"object.metaball_add, type='PLANE'"},{kind:"metaball.ellipsoid",label:"Ellipsoid",group:"Metaball",call:"object.metaball_add, type='ELLIPSOID'"},{kind:"metaball.cube",label:"Cube",group:"Metaball",call:"object.metaball_add, type='CUBE'"},{kind:"text",label:"Text",group:null,call:"object.text_add"},{kind:"point-cloud",label:"Point Cloud",group:null,call:"object.pointcloud_random_add"},{kind:"volume.import",label:"Import OpenVDB...",group:"Volume",call:"object.volume_import",refusal:`${z("Importing an OpenVDB volume","CANCELLED, with nothing created")} This build also has no OpenVDB at all (\`bpy.app.build_options.openvdb\` is False), so a file would not be read even with a picker.`},{kind:"volume.empty",label:"Empty",group:"Volume",call:"object.volume_add"},{kind:"grease-pencil.blank",label:"Blank",group:"Grease Pencil",call:"object.grease_pencil_add, type='EMPTY'"},{kind:"grease-pencil.stroke",label:"Stroke",group:"Grease Pencil",call:"object.grease_pencil_add, type='STROKE'"},{kind:"grease-pencil.monkey",label:"Monkey",group:"Grease Pencil",call:"object.grease_pencil_add, type='MONKEY'"},{kind:"grease-pencil.lineart-scene",label:"Scene Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_SCENE'",separatorBefore:!0},{kind:"grease-pencil.lineart-collection",label:"Collection Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_COLLECTION'"},{kind:"grease-pencil.lineart-object",label:"Object Line Art",group:"Grease Pencil",call:"object.grease_pencil_add, type='LINEART_OBJECT'"},{kind:"armature",label:"Armature",group:null,call:"object.armature_add"},{kind:"lattice.lattice",label:"Lattice",group:"Lattice",call:"object.add, type='LATTICE'"},{kind:"lattice.deform-selected",label:"Lattice Deform Selected",group:"Lattice",call:"object.lattice_add_to_selected"},{kind:"empty.plain-axes",label:"Plain Axes",group:"Empty",call:"object.empty_add, type='PLAIN_AXES'"},{kind:"empty.arrows",label:"Arrows",group:"Empty",call:"object.empty_add, type='ARROWS'"},{kind:"empty.single-arrow",label:"Single Arrow",group:"Empty",call:"object.empty_add, type='SINGLE_ARROW'"},{kind:"empty.circle",label:"Circle",group:"Empty",call:"object.empty_add, type='CIRCLE'"},{kind:"empty.cube",label:"Cube",group:"Empty",call:"object.empty_add, type='CUBE'"},{kind:"empty.sphere",label:"Sphere",group:"Empty",call:"object.empty_add, type='SPHERE'"},{kind:"empty.cone",label:"Cone",group:"Empty",call:"object.empty_add, type='CONE'"},{kind:"image.reference",label:"Reference...",group:"Image",call:"object.empty_image_add, background=False",refusal:z("A reference image","poll() failed, context is incorrect / Please select at least one image")},{kind:"image.background",label:"Background...",group:"Image",call:"object.empty_image_add, background=True",refusal:z("A background image","poll() failed, context is incorrect / Please select at least one image")},{kind:"image.mesh-plane",label:"Mesh Plane...",group:"Image",call:"image.import_as_mesh_planes",refusal:z("An image as a mesh plane","CANCELLED, with nothing created")},{kind:"image.empty-image",label:"Empty Image",group:"Image",call:"object.empty_add, type='IMAGE'"},{kind:"light.point",label:"Point",group:"Light",call:"object.light_add, type='POINT'"},{kind:"light.sun",label:"Sun",group:"Light",call:"object.light_add, type='SUN'"},{kind:"light.spot",label:"Spot",group:"Light",call:"object.light_add, type='SPOT'"},{kind:"light.area",label:"Area",group:"Light",call:"object.light_add, type='AREA'"},{kind:"light-probe.sphere",label:"Sphere",group:"Light Probe",call:"object.lightprobe_add, type='SPHERE'"},{kind:"light-probe.plane",label:"Plane",group:"Light Probe",call:"object.lightprobe_add, type='PLANE'"},{kind:"light-probe.volume",label:"Volume",group:"Light Probe",call:"object.lightprobe_add, type='VOLUME'"},{kind:"camera",label:"Camera",group:null,call:"object.camera_add"},{kind:"speaker",label:"Speaker",group:null,call:"object.speaker_add"},{kind:"force-field.force",label:"Force",group:"Force Field",call:"object.effector_add, type='FORCE'"},{kind:"force-field.wind",label:"Wind",group:"Force Field",call:"object.effector_add, type='WIND'"},{kind:"force-field.vortex",label:"Vortex",group:"Force Field",call:"object.effector_add, type='VORTEX'"},{kind:"force-field.magnetic",label:"Magnetic",group:"Force Field",call:"object.effector_add, type='MAGNET'"},{kind:"force-field.harmonic",label:"Harmonic",group:"Force Field",call:"object.effector_add, type='HARMONIC'"},{kind:"force-field.charge",label:"Charge",group:"Force Field",call:"object.effector_add, type='CHARGE'"},{kind:"force-field.lennard-jones",label:"Lennard-Jones",group:"Force Field",call:"object.effector_add, type='LENNARDJ'"},{kind:"force-field.texture",label:"Texture",group:"Force Field",call:"object.effector_add, type='TEXTURE'"},{kind:"force-field.curve-guide",label:"Curve Guide",group:"Force Field",call:"object.effector_add, type='GUIDE'"},{kind:"force-field.boid",label:"Boid",group:"Force Field",call:"object.effector_add, type='BOID'"},{kind:"force-field.turbulence",label:"Turbulence",group:"Force Field",call:"object.effector_add, type='TURBULENCE'"},{kind:"force-field.drag",label:"Drag",group:"Force Field",call:"object.effector_add, type='DRAG'"},{kind:"force-field.fluid-flow",label:"Fluid Flow",group:"Force Field",call:"object.effector_add, type='FLUID'"}],Ue="collection-instance:";function ze(){const t=new Map;for(const a of q().byId.values()){if(a.type!=="TSE_LAYER_COLLECTION")continue;const l=a.data;l===void 0||!l.startsWith("bpy.data.collections[")||t.has(a.name)||t.set(a.name,{kind:`${Ue}${a.name}`,label:a.name,group:"Collection Instance",call:`object.collection_instance_add, collection=${D(a.name)}`})}return[...t.values()]}function Q(){return[...He,...ze()]}function Ke(t){const[a,...l]=t.call.split(", ");return`bpy.ops.${a}(${l.join(", ")})`}function D(t){return JSON.stringify(t)}async function G(t,a="Blender Python"){const l=["before = {o.name for o in bpy.data.objects}",t,"made = [o.name for o in bpy.data.objects if o.name not in before]",'print("\\n".join(made))'].join(`
|
|
2
|
-
`),d=await Z(l,!0,a);return d.error!==null?{made:[],error:d.error}:{made:d.result.split(`
|
|
3
|
-
`).map(_=>_.trim()).filter(_=>_.length>0),error:null}}async function Xe(t,a){const l=[`_sel = {${t.map(D).join(", ")}}`,"_vl = bpy.context.view_layer","for _o in _vl.objects:"," _o.select_set(_o.name in _sel)",a===null?"_vl.objects.active = None":`_vl.objects.active = bpy.data.objects.get(${D(a)})`].join(`
|
|
4
|
-
`),d=await Z(l,!1);d.error!==null&&$().console.error(`Blender refused the selection write: ${d.error}`,"blender-outliner")}async function re(t,a){if(t.length===0)return{destination:"Nothing is selected, so there was nothing to run it on.",persisted:!1};const l=[`targets = [bpy.data.objects[n] for n in [${t.map(D).join(", ")}]]`,"with bpy.context.temp_override(selected_objects=targets, selected_editable_objects=targets, active_object=targets[0], object=targets[0]):",` ${a}`].join(`
|
|
5
|
-
`),{error:d}=await G(l);return d!==null?{destination:d,persisted:!1}:(await J(t),{destination:`Blender — ${a}; the session saves the .blend`,persisted:!0})}const Ye={source:"document",label:"blender",detail:"These rows are Blender's own View Layer tree, read from the engine through RNA. Editing the model is a bpy call; the eye and render columns write the engine directly."},Je="This collection is excluded from the view layer (LayerCollection.exclude), so its viewport visibility is not what is hiding it. Clear the Exclude checkbox on this row first.",qe=({defaultAdapter:t})=>{const a=new Set;let l=[],d=null;const S=new Map,_=new Map,w=()=>{for(const r of[...a])r()},p=()=>q().byId,O=r=>{const e=p().get(r),n=ee();return e===void 0||n===null?null:e.type==="TSE_VIEW_COLLECTION_BASE"?n.root:e.object===void 0?null:n.objectForBlenderName(e.object)},x=r=>{const e=ee();if(e===null)return null;for(const n of p().values())if(B(n)&&e.objectForBlenderName(n.object)===r)return n.id;return null},k=r=>{for(const e of p().values())if(B(e)&&e.object===r)return e.id;return null},g=r=>{if(p().has(r))return r;const e=Be(t.hierarchy,r);return e===null?null:x(e)},h=r=>{const e=g(r);return e===null?null:O(e)},F=r=>{const e=h(r);return e===null?null:t.hierarchy.idForObject3D?.(e)??null},R={roots:()=>(Te(N()),(q().tree?.rows??[]).map(e=>be(e,null))),node:r=>{const e=q(),n=e.byId.has(r)?r:g(r),s=n===null?void 0:e.byId.get(n);return s===void 0?null:be(s,e.parentOf.get(s.id)??null)},object3D:r=>h(r),idForObject3D:r=>x(r)};function N(){const r=p(),e=new Set;for(const n of l){const s=r.get(n)?.object;s!==void 0&&e.add(s)}return[...e]}const i=()=>{const r=[];for(const e of l){const n=h(e),s=n===null?null:t.hierarchy.idForObject3D?.(n);s&&r.push(s)}t.selection?.set(r,{intent:"exact"}),w()},b=()=>{const r=Fe(),e=`${ne()}\0${r.active??""}\0${[...r.selected].sort().join("")}`;if(e===d)return;d=e;const n=r.selected.filter(f=>f!==r.active);r.active!==null&&n.push(r.active);const s=n.map(k).filter(f=>f!==null);s.length===l.length&&s.every((f,E)=>f===l[E])||(l=s,i())},m={get:()=>[...l],set:r=>{l=r.map(g).filter(f=>f!==null),i();const e=p(),n=[],s=[];for(const f of l){const E=e.get(f),T=E?.object;T===void 0?s.push(E?.name??f):n.includes(T)||n.push(T)}s.length>0&&$().console.warn(`${s.join(", ")} ${s.length===1?"is":"are"} not an object, so Blender's object selection does not carry ${s.length===1?"it":"them"}. Selecting a collection sets the ACTIVE COLLECTION in Blender, which is its own gesture and not in this editor yet.`,"blender-outliner"),Xe(n,n.length===0?null:n[n.length-1])}},o=r=>p().get(r)?.restrict,c={properties:r=>{const e=o(r);if(e===void 0)return[];const n=p().get(r),s=[{path:"name",label:"Name",type:"string",readonly:!B(n)}];return e.hide!==void 0&&s.push({path:"visible",label:"Show in Viewport",type:"boolean"}),e.render!==void 0&&s.push({path:"renderVisible",label:"Show in Renders",type:"boolean"}),e.exclude!==void 0&&s.push({path:"exclude",label:"Exclude from View Layer",type:"boolean"}),s},get:(r,e)=>{const n=p().get(r);if(n!==void 0){if(e==="name")return n.name;if(e==="visible")return n.restrict?.hide===void 0?void 0:!n.restrict.hide;if(e==="renderVisible")return n.restrict?.render===void 0?void 0:!n.restrict.render;if(e==="exclude")return n.restrict?.exclude}},editability:(r,e)=>{const n=p().get(r);return n===void 0?{writable:!1}:e==="name"?B(n)?{writable:!0}:{writable:!1,reason:`Renaming a ${n.struct??n.type} is not in this Outliner yet — only an object row renames here. Rename it with bpy.`}:n.notInCollection?{writable:!1,reason:"This row is a child drawn under its parent although it is not in that collection, and Blender's Outliner draws it no restriction columns."}:e==="visible"&&n.restrict?.exclude===!0?{writable:!1,reason:Je}:{writable:!0}},set:async(r,e,n)=>{const s=p().get(r);if(s===void 0)return;if(e==="name"){if(!B(s))return;const E=String(n);if(E===s.name||E.length===0)return;await de(`bpy.data.objects[${D(s.object)}]`,"name",E),await J([E]);const T=k(E);T!==null&&m.set([T]);return}if(e==="exclude"){await ue(s.path,"exclude",n===!0);return}const f=e==="visible"?"hide":e==="renderVisible"?"render":null;f!==null&&await ue(s.path,f,n===!1)}},j={get:r=>{const e=F(r);return(e===null?void 0:t.transforms?.get(e))??Ge()},editability:r=>{const e=g(r),n=e===null?void 0:p().get(e);return B(n)&&O(n.id)!==null?{writable:!0}:{writable:!1,reason:`Only an object has a transform; this row is a ${n?.struct??n?.type??"row"}.`}},beginEdit:r=>{const e=h(r);e!==null&&!S.has(e)&&(S.set(e,e.matrixWorld.clone()),_.set(r,e),Le())},apply:(r,e)=>{const n=h(r);n!==null&&(n.position.fromArray(e.position),n.quaternion.fromArray(e.rotation),n.scale.fromArray(e.scale),n.updateMatrix(),n.updateMatrixWorld(!0))},endEdit:async r=>{const e=_.get(r)??h(r);_.delete(r);const n=ee();if(e===null)return;const s=S.get(e);S.delete(e);try{if(n===null||(e.updateWorldMatrix(!0,!1),s?.equals(e.matrixWorld)===!0))return;const f=n.blenderObjectName(e);if(f===null)return;const E=`bpy.data.objects[${JSON.stringify(f)}]`;try{return await de(E,"matrix_world",We(e,n.root)),{destination:`Blender — ${E}.matrix_world; the session saves the .blend`,persisted:!0}}catch(T){return{destination:T instanceof Error?T.message:String(T),persisted:!1}}}finally{s&&await Ne()}}},A=r=>{const e=g(r),n=e===null?void 0:p().get(e);return B(n)?n.object:null},C=r=>({destination:r,persisted:!1}),L=async r=>{await J(r);const e=r.map(k).filter(n=>n!==null);return e.length>0&&m.set(e),e[0]??""},I={creatableKinds:()=>Q().map(({kind:r,label:e})=>({kind:r,label:e})),create:r=>{const e=Q().find(s=>s.kind===r);if(e===void 0)return{id:"",ack:C(`${r} is not a row of Blender's Add menu that this editor adds. Its rows are: ${Q().map(s=>s.label).join(", ")}.`)};if(e.refusal!==void 0)return{id:"",ack:C(e.refusal)};const n=Ke(e);return{id:"",ack:(async()=>{const{made:s,error:f}=await G(n);return f!==null?C(f):s.length===0?C(`Blender ran ${n} and created nothing. The operator reported no error, so it cancelled — most often because it wanted a file browser or a context this headless engine has no window for.`):(await L(s),{destination:`Blender — ${n}; the session saves the .blend`,persisted:!0})})()}},remove:r=>I.removeMany?.([r])??void 0,removeMany:async r=>{const e=[];for(const E of r){const T=A(E);if(T===null){const ce=g(E)===null?void 0:p().get(g(E));return C(`Only an object can be deleted here; this row is a ${ce?.struct??ce?.type??"row"}. Deleting a collection, a modifier or a vertex group is that datablock’s own bpy call.`)}e.push(T)}if(e.length===0)return C("Nothing selected to delete.");const s=[`targets = ${`[bpy.data.objects[n] for n in [${e.map(D).join(", ")}]]`}`,"with bpy.context.temp_override(selected_objects=targets, active_object=targets[0]):"," result = bpy.ops.object.delete(use_global=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled deleting the selected objects")'].join(`
|
|
6
|
-
`),{error:f}=await G(s,"Delete Objects");return f!==null?C(f):(m.set([]),await J([]),{destination:"Blender — bpy.ops.object.delete(use_global=False); the session saves the .blend",persisted:!0})},duplicate:r=>{const e=A(r);if(e===null)return{id:r,ack:C("Only an object can be duplicated here. Duplicating a collection is `bpy.ops.object.collection_instance_add`, its own gesture.")};const n=[`source = bpy.data.objects[${D(e)}]`,"with bpy.context.temp_override(selected_objects=[source], active_object=source):"," result = bpy.ops.object.duplicate(linked=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled duplicating the selected object")'].join(`
|
|
7
|
-
`);return{id:r,ack:(async()=>{const{made:s,error:f}=await G(n,"Duplicate Object");return f!==null?C(f):(await L(s),{destination:`Blender — bpy.ops.object.duplicate(linked=False) on ${e}; the session saves the .blend`,persisted:!0})})()}},duplicateMany:async r=>{const e=[...new Set(r.map(A))];if(e.length===0||e.some(E=>E===null))return C("Select objects to duplicate; collections and data rows cannot be duplicated here.");const n=[`sources = [bpy.data.objects[name] for name in ${JSON.stringify(e)}]`,"with bpy.context.temp_override(selected_objects=sources, active_object=sources[0]):"," result = bpy.ops.object.duplicate(linked=False)",'if "FINISHED" not in result: raise RuntimeError("Blender cancelled duplicating the selected objects")'].join(`
|
|
8
|
-
`),{made:s,error:f}=await G(n,"Duplicate Objects");return f!==null?C(f):(await L(s),{destination:"Blender — duplicate selected objects as one native operation; the session saves the .blend",persisted:!0})},reparent:()=>C("Reparenting is Blender's `bpy.ops.object.parent_set`, which needs a parent TYPE (Object, Object Keep Transform, Armature Deform, …) that a drag does not say. Set the parent on the object’s Relations panel, or with bpy.")},P={get documentId(){return t.documentId},get documentRootObject(){return t.documentRootObject},capabilities:De,provenance:Ye,hierarchy:R,selection:m,inspector:c,transforms:j,structure:I,subscribe:r=>{a.add(r);const e=Y(r),n=t.subscribe?.(r)??(()=>{});return()=>{a.delete(r),e(),n()}}},se={get documentId(){return P.documentId},selectedObjectNames:()=>N(),allObjectNames:()=>{const r=[];for(const e of p().values())B(e)&&r.push(e.object);return r},selectObjects:r=>{const e=r.map(k).filter(n=>n!==null);m.set(e)},rowIdForObject:r=>k(r),structure:I,subscribe:r=>{a.add(r);const e=Y(r);return()=>{a.delete(r),e()}}};W.add(se);const _e=Re(b),we=Y(b);return b(),{adapter:P,dispose:()=>{_e(),we(),W.delete(se),a.clear()}}},le="volter.blender.render-view-split:",oe=new Set,ae=new Map;function Qe(t){try{return globalThis.localStorage?.getItem(le+t)==="1"}catch{return!1}}function ie(t){let a=ae.get(t);return a===void 0&&(a=Qe(t),ae.set(t,a)),a}function fe(t,a){if(ie(t)!==a){ae.set(t,a);try{a?globalThis.localStorage?.setItem(le+t,"1"):globalThis.localStorage?.removeItem(le+t)}catch{}for(const l of[...oe])l()}}function ve(t){return oe.add(t),()=>{oe.delete(t)}}const Ze=[{label:"Location",call:"location=True, rotation=False, scale=False"},{label:"Rotation",call:"location=False, rotation=True, scale=False"},{label:"Scale",call:"location=False, rotation=False, scale=True"},{label:"All Transforms",call:"location=True, rotation=True, scale=True"}],et=[{label:"Location",call:"bpy.ops.object.location_clear(clear_delta=False)"},{label:"Rotation",call:"bpy.ops.object.rotation_clear(clear_delta=False)"},{label:"Scale",call:"bpy.ops.object.scale_clear(clear_delta=False)"}],tt=[{label:"Geometry to Origin",type:"GEOMETRY_ORIGIN"},{label:"Origin to Geometry",type:"ORIGIN_GEOMETRY"},{label:"Origin to 3D Cursor",type:"ORIGIN_CURSOR"}],rt=[{submenu:"Mesh",at:"2699"},{submenu:"Curve",at:"2702"},{submenu:"Surface",at:"2704"},{submenu:"Metaball",at:"2705"},{kind:"text",at:"2706"},{kind:"point-cloud",at:"2707"},{submenu:"Volume",at:"2708"},{submenu:"Grease Pencil",at:"2709"},{separatorAt:"2711"},{kind:"armature",at:"2716"},{submenu:"Lattice",at:"2718"},{separatorAt:"2720"},{submenu:"Empty",at:"2722"},{submenu:"Image",at:"2723"},{separatorAt:"2725"},{submenu:"Light",at:"2727"},{submenu:"Light Probe",at:"2728"},{separatorAt:"2730"},{kind:"camera",at:"2735"},{separatorAt:"2737"},{kind:"speaker",at:"2739"},{separatorAt:"2741"},{submenu:"Force Field",at:"2743"},{separatorAt:"2745"},{submenu:"Collection Instance",at:"2759"}],nt="No Collections to Instance";function K({id:t,open:a,setOpen:l,anchorRef:d,children:S}){return u.jsxs("div",{ref:d,style:{position:"relative"},children:[u.jsx(xe,{"data-testid":`blender-menu-${t}`,"aria-expanded":a===t,onClick:()=>l(a===t?null:t),onPointerEnter:()=>{a&&l(t)},style:{textTransform:"capitalize"},children:t}),a===t&&u.jsx(Ee,{anchorRef:d,dismissBoundaryRef:d,align:"start",gap:0,clamp:!0,"aria-label":t,onDismiss:()=>l(null),children:S})]})}function lt(t,a,l){(async()=>{const d=await l;d===void 0||typeof d.destination!="string"||d.persisted!==!0&&t?.({tone:"error",title:`${a} was refused`,detail:d.destination})})()}function ot({documentId:t,notify:a}){y.useSyncExternalStore(Y,ne,ne);const[l,d]=y.useState(null),S=y.useRef(null),_=y.useRef(null),w=y.useRef(null),p=y.useRef(null),O=y.useRef(null),x=y.useSyncExternalStore(ve,()=>t===void 0?!1:ie(t),()=>!1),k=Ve(t);if(k===null)return null;const g=(o,c)=>()=>{d(null),lt(a,o,c(k))},h=k.selectedObjectNames(),F=k.allObjectNames(),R=h.length===0?"Nothing is selected.":void 0,N=Q(),i=o=>u.jsx(M,{"data-testid":`blender-add-${o.kind}`,disabled:o.refusal!==void 0,title:o.refusal,onSelect:g(`Add ${o.label}`,c=>c.structure.create(o.kind).ack),children:o.label},o.kind),b=o=>N.filter(c=>c.group===o).flatMap(c=>c.separatorBefore===!0?[u.jsx(H,{},`${c.kind}-separator`),i(c)]:[i(c)]),m=o=>{if("separatorAt"in o)return u.jsx(H,{},`separator-${o.separatorAt}`);if("kind"in o){const j=N.find(A=>A.kind===o.kind);return j===void 0?null:i(j)}const c=b(o.submenu);return c.length===0?u.jsx(M,{"data-testid":"blender-add-collection-instance",disabled:!0,children:nt},o.submenu):u.jsx(V,{label:o.submenu,"data-testid":`blender-add-${o.submenu.toLowerCase().replaceAll(" ","-")}`,children:c},o.submenu)};return u.jsxs(Se,{compact:!0,label:"Blender Object Mode menus","data-testid":"blender-object-mode-menus",ref:S,children:[u.jsx(K,{id:"view",open:l,setOpen:d,anchorRef:_,children:u.jsxs(V,{label:"Area","data-testid":"blender-view-area",children:[u.jsx(M,{"data-testid":"blender-area-vertical-split",disabled:x||t===void 0,title:x?"The Render view is already beside this area.":void 0,onSelect:()=>{d(null),t!==void 0&&fe(t,!0)},children:"Vertical Split"}),u.jsx(H,{}),u.jsx(M,{"data-testid":"blender-area-close",disabled:!x,title:x?void 0:"There is no second area to close.",onSelect:()=>{d(null),t!==void 0&&fe(t,!1)},children:"Close Area"})]})}),u.jsxs(K,{id:"select",open:l,setOpen:d,anchorRef:w,children:[u.jsx(M,{"data-testid":"blender-select-all",onSelect:g("Select All",o=>o.selectObjects(F)),children:"All"}),u.jsx(M,{"data-testid":"blender-select-none",onSelect:g("Select None",o=>o.selectObjects([])),children:"None"}),u.jsx(M,{"data-testid":"blender-select-invert",onSelect:g("Select Invert",o=>o.selectObjects(F.filter(c=>!h.includes(c)))),children:"Invert"})]}),u.jsx(K,{id:"add",open:l,setOpen:d,anchorRef:p,children:rt.map(o=>m(o))}),u.jsxs(K,{id:"object",open:l,setOpen:d,anchorRef:O,children:[u.jsx(V,{label:"Set Origin","data-testid":"blender-object-origin",children:tt.map(o=>u.jsx(M,{"data-testid":`blender-origin-${o.type}`,disabled:o.refusal!==void 0||h.length===0,title:o.refusal??R,onSelect:g(`Set Origin ▸ ${o.label}`,c=>re(c.selectedObjectNames(),`bpy.ops.object.origin_set(type='${o.type}')`)),children:o.label},o.type))}),u.jsx(V,{label:"Clear","data-testid":"blender-object-clear",children:et.map(o=>u.jsx(M,{"data-testid":`blender-clear-${o.label.toLowerCase()}`,disabled:h.length===0,title:R,onSelect:g(`Clear ▸ ${o.label}`,c=>re(c.selectedObjectNames(),o.call)),children:o.label},o.label))}),u.jsx(V,{label:"Apply","data-testid":"blender-object-apply",children:Ze.map(o=>u.jsx(M,{"data-testid":`blender-apply-${o.label.toLowerCase().replace(/ /g,"-")}`,disabled:h.length===0,title:R,onSelect:g(`Apply ▸ ${o.label}`,c=>re(c.selectedObjectNames(),`bpy.ops.object.transform_apply(${o.call})`)),children:o.label},o.label))}),u.jsx(H,{}),u.jsx(M,{"data-testid":"blender-object-duplicate",disabled:h.length===0,title:R,onSelect:g("Duplicate Objects",async o=>{const c=o.selectedObjectNames().map(j=>o.rowIdForObject(j)).filter(j=>j!==null);return o.structure.duplicateMany?.(c)}),children:"Duplicate Objects"}),u.jsx(M,{"data-testid":"blender-object-delete",disabled:h.length===0,title:R,onSelect:g("Delete",o=>{const c=o.selectedObjectNames().map(j=>o.rowIdForObject(j)).filter(j=>j!==null);return o.structure.removeMany?.(c)}),children:"Delete"})]})]})}const me=ye,at="#3d3d3d",ge="#ffffff";function it(){const t=y.useRef(null),[a,l]=y.useState(null),[d,S]=y.useState(!1);return y.useEffect(()=>{const _=t.current;if(!_)return;let w=!1,p=!1,O=!1;const x=async()=>{if(!O){O=!0,S(!0);try{for(;p&&!w;){p=!1;const F=globalThis.devicePixelRatio||1,R={width:Math.max(1,Math.round(_.clientWidth*F)),height:Math.max(1,Math.round(_.clientHeight*F))};let N;try{N=await Me(me,R)}catch(i){N={kind:"refused",reason:i instanceof Error?i.message:String(i)}}w||l(N)}}finally{O=!1,w||S(!1)}}},k=()=>{p=!0,x()},g=me.subscribeFrames(k),h=new ResizeObserver(k);return h.observe(_),k(),()=>{w=!0,g(),h.disconnect()}},[]),u.jsxs("div",{ref:t,"data-testid":"blender-render-view","aria-label":"Render view",style:{position:"relative",flex:"1 1 0",minWidth:0,marginTop:12,background:at,overflow:"hidden"},children:[a?.kind==="image"&&u.jsx("img",{src:a.url,alt:"The scene camera's render","data-testid":"blender-render-view-image",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"contain"}}),a?.kind==="refused"&&u.jsx("div",{role:"status","data-testid":"blender-render-view-refusal",style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",padding:16,textAlign:"center",color:ge,opacity:.8,fontSize:12},children:a.reason}),u.jsxs("div",{style:{position:"absolute",top:6,left:8,color:ge,fontSize:11,lineHeight:"14px",textShadow:"0 0 2px #000, 0 0 2px #000",pointerEvents:"none"},children:[a?.kind==="image"&&u.jsx("div",{children:a.projection==="orthographic"?"Camera Orthographic":"Camera Perspective"}),d&&u.jsx("div",{"data-testid":"blender-render-view-rendering",children:"Rendering…"})]})]})}const Vt="workspace.document",Gt="Blender Model",Wt=({documentId:t,notify:a})=>u.jsx(ot,{documentId:t,notify:a}),st="model",Ht="owned",Ut=[],v=ye,ct=()=>{const t=X.playhead();return v.subjectLine(t===null?null:Math.floor(t))},dt=t=>v.gridUnitName(t),ut={camera:()=>v.cameraViewCamera(),zoom:v.cameraViewZoom,pan:v.cameraViewPan,showing:t=>v.setCameraViewShowing(t),setPose:(t,a,l,d)=>{const{location:S,rotation:_}=v.blenderPose(a,l);return Z(`from mathutils import Matrix, Quaternion, Vector
|
|
9
|
-
import bpy
|
|
10
|
-
object = bpy.data.objects[${JSON.stringify(t)}]
|
|
11
|
-
object.matrix_world = Matrix.LocRotScale(Vector((${S.join(", ")})), Quaternion((${_.join(", ")})), object.matrix_world.to_scale())`,d,"Lock Camera to View").then(w=>{w.error!==null&&$().console.error(`Blender refused the camera's pose: ${w.error}`,"blender-camera")},w=>$().console.error(`The camera's pose was not written to Blender: ${String(w)}`,"blender-camera"))},view:(t,a,l,d)=>v.cameraView(t,a,l,d)};function zt(t){const{active:a,document:l,documentId:d,notify:S,publishContext:_}=t,w=l?.source?.path,p=l?.id,O=JSON.stringify([d,p,w]),[x,k]=y.useState(null),g=y.useRef({notify:S,publishContext:_});return g.current={notify:S,publishContext:_},y.useEffect(()=>{if(a===!1||!d)return;let h=!1,F;const R=w===void 0?null:{documentId:d,entryId:p,blend:w},N=Ae(R),i=()=>{F=g.current.publishContext?.(v)};return k(null),(async()=>{try{if(R){if(!await Ie(R,i))return}else i();h||k({key:O,error:null})}catch(b){if(h)return;F?.(),F=void 0;const m=b instanceof Error?b.message:String(b);k({key:O,error:m}),g.current.notify?.({tone:"error",title:`Blender could not open ${w??"the model"}`,detail:m})}})(),()=>{h=!0,F?.(),N()}},[a,w,d,p,O]),a===!1||!d?null:x?.key!==O?u.jsx("div",{role:"status",children:"Opening model…"}):x.error?u.jsx("div",{role:"alert",children:x.error}):u.jsx(pt,{...t})}function pt({active:t,document:a,documentId:l,surfaces:d}){const S=y.useCallback(()=>({root:v.root,onChange(i){const b=v.onChange(i),m=X.subscribe(i);return()=>{b(),m()}},dispose(){}}),[]),_=a?.source?.path,w=y.useCallback(i=>{const b=v.onChange(i),m=X.subscribe(i);let o=null;const c=()=>{o?.(),o=U().find(A=>A.documentId===l)?.onFrame(i)??null};c();const j=te(c);return()=>{b(),m(),j(),o?.()}},[l]),p=y.useSyncExternalStore(w,ct),O=y.useSyncExternalStore(ve,()=>l?ie(l):!1,()=>!1);y.useEffect(()=>{if(!l)return;const i=v.overlayGroups(),b=()=>{const o=U().find(c=>c.documentId===l);if(o)for(const{kind:c,object:j}of i)o.setHelper(c,j)};b();const m=te(b);return()=>{m();const o=U().find(c=>c.documentId===l);for(const{kind:c}of i)o?.setHelper(c,null)}},[l]),y.useEffect(()=>{if(!l)return;const{transport:i}=$();let b=null;const m=()=>{if(b)return;const c=i.for(l);c&&(b=X.attachTo(c))};m();const o=i.subscribe(m);return()=>{o(),b?.()}},[l]),y.useEffect(()=>{if(!l)return;const i=()=>U().find(L=>L.documentId===l);let b,m=null;const o=new Pe,c=()=>i()?.rig().drawCamera()??o,j=()=>{const L=i();L!==b&&(m?.(),m=L?L.onFrame(()=>v.refreshRendered()):null,b=L);const{lighting:I}=Ce(l);v.holdRendered(I.source==="scene"&&L?c:null),v.setWorkbench(I.source==="studio"&&I.studioPreset===he.id)};j();const A=Oe(j),C=te(j);return()=>{A(),C(),m?.(),v.holdRendered(null),v.setWorkbench(!1)}},[l]);const x=y.useRef(null),k=i=>i.button===2&&i.shiftKey&&i.target instanceof HTMLCanvasElement,g=i=>{if(!k(i)){x.current=null;return}i.preventDefault(),i.stopPropagation(),x.current={id:i.pointerId,x:i.clientX,y:i.clientY},i.isTrusted&&i.target.setPointerCapture(i.pointerId)},h=()=>{x.current=null},F=i=>{const b=x.current;if(b===null||i.pointerId!==b.id||i.button!==2||(x.current=null,i.preventDefault(),i.stopPropagation(),Math.hypot(i.clientX-b.x,i.clientY-b.y)>3))return;const m=v.placeCursor(i.clientX,i.clientY,i.target);if(m===null)return;const[o,c,j]=m.location,[A,C,L,I]=m.rotation;Z(`from mathutils import Matrix, Quaternion, Vector
|
|
12
|
-
bpy.context.scene.cursor.matrix = Matrix.LocRotScale(Vector((${o}, ${c}, ${j})), Quaternion((${A}, ${C}, ${L}, ${I})), None)`,!1,"Set 3D Cursor").then(P=>{P.error!==null&&$().console.error(`Blender refused the 3D cursor: ${P.error}`,"blender-cursor")},P=>$().console.error(`The 3D cursor was not written to Blender: ${String(P)}`,"blender-cursor"))},R=i=>{k(i)&&i.preventDefault()};if(!l)return null;const N=d.Object3DAuthoring;return u.jsxs("div",{style:O?{position:"absolute",inset:-12,display:"flex",gap:2}:{display:"contents"},children:[u.jsx("div",{style:O?{position:"relative",flex:"1 1 0",minWidth:0,margin:12}:{display:"contents"},onPointerDownCapture:g,onPointerUpCapture:F,onPointerCancelCapture:h,onLostPointerCaptureCapture:h,onContextMenuCapture:R,children:u.jsx(N,{active:t??!0,documentId:l,sourcePath:_??"blender:runtime",displayName:a?.label??"Model",...p===null?{}:{subject:p},gridScale:dt,cameraView:ut,build:S,audit:!1,authoring:qe,cameraDirection:[.8187,.4458,.3617],openingFit:3,openingView:v.savedView(),presentation:(()=>{const i=v.savedView();return i?{camera:{fov:je(i.lens)}}:null})(),stageKind:st,dressing:{environment:!1,keyLight:!1,viewLocked:v.studioLights()}})}),O&&u.jsx(it,{})]})}export{Wt as Toolbar,zt as default,st as documentKind,Ut as inspectorBuiltins,Ht as inspectorRail,Vt as point,Gt as title};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./jsx-runtime-DPjLkJKQ.js";import{$ as s}from"./index-CvGsVzTo.js";import{r as a}from"./index-nmcBqr7Y.js";import{s as d,b as l,B as i}from"./build-session-BaEmzCkm.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./configurations-BcYOQ7i-.js";const F="workspace.document",U="Build Player",m=["log","info","warn","error"],c=Symbol("build-player-output");function p(e){if(!e)return;const t=()=>{if(!e.isConnected)return;const o=e.contentWindow;o?.location.pathname===new URL(i,location.href).pathname&&(o[c]||(h(o),s(e,{container:()=>o.document.getElementById("game-canvas")??o.document.body,canvasFrame:n=>f(o,n)})),o.document.readyState==="complete")||setTimeout(t,0)};t()}function f(e,t){return new Promise(o=>{e.requestAnimationFrame(()=>{const n=e.document.createElement("canvas");n.width=t.width,n.height=t.height;const r=n.getContext("2d");if(!r)return o(null);r.drawImage(t,0,0),o(n)})})}function h(e){e[c]=!0;for(const t of m){const o=e.console[t].bind(e.console);e.console[t]=(...n)=>{o(...n),console[t]("[Build Player]",...n)}}e.addEventListener("error",t=>{console.error("[Build Player] Uncaught",t.error??t.message)}),e.addEventListener("unhandledrejection",t=>{console.error("[Build Player] Unhandled rejection",t.reason)}),console.info(`[Build Player] Running ${e.document.title||"the build"}`)}function j(e){const t=a.useSyncExternalStore(d,l);return u.jsx("iframe",{title:"Build Player","data-build-player":t,src:`${i}?run=${t}`,ref:p,style:{width:"100%",height:"100%",border:0,display:"block",background:"#000"}},t)}export{j as default,F as point,U as title};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ui-board-document-DMxgQ-9n.js","assets/index-CvGsVzTo.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/design-time-layers-DT4X-pJp.js","assets/root-stacking-BEd9ZvxC.js","assets/edit-mode-authoring-DubxVdEM.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/react-story-board-6-BjI32N.js","assets/game-surface-defaults-D8S4cRxi.js","assets/world-documents-Dvn8e5I0.js","assets/react-canvas-navigation-CBorZtWB.js","assets/component-board-registry-DrIa2csL.js","assets/surface-state-DlUcJe84.js","assets/board-guides-whelE-Dr.js","assets/CanvasSceneViewport-Z8OReqpB.js","assets/RootSelectionOverlay-B9rf-SSV.js","assets/eyedropper-session-bjPXnfeX.js","assets/layered-pick-BaxBYi7u.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/inspect-DxfAFkho.js","assets/inference-diagnostics-BCwXk-CS.js","assets/Toolbar-BJRJsbHG.js","assets/transform-mode-request-Bg6T_rOC.js","assets/TransientHint-CDvYgnzu.js","assets/ReactCanvasControls-rFwp2CeP.js","assets/story-media-presence-CYc2fP4y.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as a}from"./component-board-registry-DrIa2csL.js";import{dn as s,B as n,_ as i,O as c,am as d,eH as l}from"./index-CvGsVzTo.js";import{s as m,g as p}from"./story-media-presence-CYc2fP4y.js";const r="UI",u={medium:"dom",owner:"@volter/editor-game/react/ui-board",documentId:s,title:r,presence:()=>l()?p().dom?"present":"absent":null,subscribe:o=>{const e=m(o),t=d(o);return()=>{e(),t()}},install:async o=>{try{const{installUiBoard:e}=await i(async()=>{const{installUiBoard:t}=await import("./ui-board-document-DMxgQ-9n.js");return{installUiBoard:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]));e(o)}catch(e){throw c.error(`Failed to load the ${r} board: ${String(e)}`,"scene"),e}},absentReason:()=>`This project has no ${r} board (${s}): board presence keys on STORIES, not on roots, and none of this project's stories declares the "dom" medium. Declare it — a manifest root entry naming the story's module, or a \`volter.adapter.ts\` regionInclude that covers it — and the board appears. ${n("console")} names every story it could not place.`},_="workspace.service";function b(){return a(u)}const h=Object.freeze(Object.defineProperty({__proto__:null,point:_,start:b},Symbol.toStringTag,{value:"Module"}));export{r as U,h as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as o,b as a,u as l,c as u}from"./fork-menu-DzoCyQvA.js";import{ff as c,ax as i,fg as p,fh as m,fi as g,fj as f}from"./index-CvGsVzTo.js";import"./instance-fork-actions-D3sRzS3K.js";import"./editor-shell-store-Bro0arjr.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-BK3fNRb7.js";import"./workspace-arrangement-C9uemwSK.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-DfBtZvxw.js";import"./entity-object-BFppZ54X.js";import"./three-contract-Dkt6PmWY.js";const I="Reveal Internals",E="Hide Internals";function s(n,e){const t=n;return typeof t.hasInternals!="function"||!t.hasInternals(e)||p(t,m()).isInternal(e)?null:{label:f(e)?E:I,toggle:()=>{g(e)}}}let r=null;function R(){r||(r=c(({nodeId:n,store:e})=>s(i(e),n)!==null,({nodeId:n,store:e})=>{const t=s(i(e),n);return t?[{label:t.label,action:()=>{t.toggle(),e.notifyIngestEdit()}}]:[]}))}function A(){r?.(),r=null}const q="workspace.service";function z(){return o(),a(),R(),()=>{l(),u(),A()}}export{q as point,z as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as t,Y as i,Z as r}from"./index-CvGsVzTo.js";async function e(){const o=await fetch(`${t}/configurations`);return(await i(o,"Could not list run configurations")).configurations}async function c(o){const n=await fetch(`${t}/configurations/${encodeURIComponent(o)}/start`,{method:"POST"});return i(n,`Could not start run configuration "${o}"`)}async function u(o,n){const s={method:"POST"};return n&&(s.signal=n),fetch(`${t}/configurations/${encodeURIComponent(o)}/build`,s)}async function f(o){const n=await fetch(`${t}/configurations/${encodeURIComponent(o)}/stop`,{method:"POST"});r(n,`Could not stop run configuration "${o}"`)}export{c as a,u as b,e as l,f as s};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/canvas-entry-runtime-Cjga4XYp.js","assets/index-CvGsVzTo.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/debug-registry-Dagj3b6J.js","assets/mount-ingest-root-BDP8atUq.js","assets/active-ingest-lrfMBhf9.js","assets/game-contract-seams-5IUqvr7b.js","assets/capability-coverage-9qm5WVwt.js","assets/ingest-source-persistence-CPlDA2D8.js","assets/contract-system-adapters-BRHtWOi_.js","assets/three-state-BhQOBgKC.js","assets/editor-shell-store-Bro0arjr.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-BK3fNRb7.js","assets/workspace-arrangement-C9uemwSK.js","assets/user-data-DfBtZvxw.js","assets/entity-object-BFppZ54X.js","assets/three-contract-Dkt6PmWY.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{y as u,z as f,_ as i,B as d,E as n,F as m,G as p,I as g}from"./index-CvGsVzTo.js";import{q as v}from"./edit-mode-authoring-DubxVdEM.js";import{d as P,a as c,b as y,g as w,e as I,c as _}from"./active-ingest-lrfMBhf9.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./game-contract-seams-5IUqvr7b.js";import"./capability-coverage-9qm5WVwt.js";import"./ingest-source-persistence-CPlDA2D8.js";import"./contract-system-adapters-BRHtWOi_.js";async function h(){const e=await u().catch(()=>null);if(!e)return!1;const t=f(e);if(t.length!==1)return!1;if(t[0].world!==void 0)return!0;const a=await E();return R(a)}const D=4e3;function E(){const e=n();return e?Promise.resolve(e):new Promise(t=>{const a=setTimeout(()=>{s(),t(n())},D),s=m(()=>{const r=n();r&&(clearTimeout(a),s(),t(r))})})}function R(e){return e?p(e.scenes).some(t=>t.plan.kind==="isolation-document"):!1}async function k(e){if(!await h())return!1;const t=await u().catch(()=>null);if((t?f(t).some(r=>r.adapter.surface==="canvas"):!1)&&!c()){const{resolveCanvasPixiForEditor:r}=await i(async()=>{const{resolveCanvasPixiForEditor:l}=await import("./canvas-entry-runtime-Cjga4XYp.js");return{resolveCanvasPixiForEditor:l}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]));(await r()).Assets.reset()}const{launchIngestRoutes:s}=await i(async()=>{const{launchIngestRoutes:r}=await import("./mount-ingest-root-BDP8atUq.js").then(o=>o.m);return{launchIngestRoutes:r}},__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]));if(await s(e),!c())throw new Error(`Play could not start: this project's ingest root failed to mount — see the mount failure reported above (and in ${d("status")}).`);return y(),g(),w()?.play(),!0}function z(e){return P()?(I(),_(),e.shell.setPlayState("stopped"),v(),!0):!1}export{P as deferredIngestPlayActive,z as exitDeferredIngestPlay,h as ingestMountIsDeferredToPlay,k as mountDeferredIngestForPlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{stackOrder as se}from"./root-stacking-BEd9ZvxC.js";import{dp as ie,dq as de,dr as le,da as ae,aw as ue,ds as L,bq as fe,O as P,bp as pe,aB as ce,dt as we,dd as he,db as ye}from"./index-CvGsVzTo.js";import{B as S,q as N}from"./edit-mode-authoring-DubxVdEM.js";import{s as me,d as I,a as ge}from"./design-time-mount-registry-DUpXCg1U.js";import{d as Ie,s as be,g as ve,e as Se}from"./react-story-board-6-BjI32N.js";import{m as ke}from"./game-surface-defaults-D8S4cRxi.js";const H=new Map;function G(n,r){return`${n}\0${r}`}function De(n,r){return H.get(G(n,r))}function Ve(n,r,t){H.set(G(n,r),t)}const Ce=1;function J(n){const r=[];for(const{worldId:t,adapter:d}of n.childAdapters()){if(!(d instanceof S))continue;const a=d.inspector.get(t,"kind");if(a!=="dom"&&a!=="canvas"||d.inspector.get(t,"reason")!==void 0)continue;const b=d.inspector.get(t,"adapter");b?.startsWith("ingest")||b?.startsWith("module")||r.push({worldId:t,kind:a,path:d.inspector.get(t,"path"),zOrder:Number(d.inspector.get(t,"zOrder")??0),pausable:d.inspector.get(t,"pausable")!==!1})}return r}function xe(n){return J(n)}const Oe="ui-components-board";function j(n,r){return n.childAdapters().some(t=>t.worldId===r)}function We(){return{worldId:Oe,kind:"dom",path:void 0,zOrder:0,pausable:!0}}function K(n,r,t="dom"){const d=ce(r)?"none":"block";n.style.display=d,n.style.pointerEvents=I(t)?.alwaysInteractive||we(r)?"auto":"none";for(const a of Array.from(n.parentElement?.children??[]))a instanceof HTMLElement&&a.dataset.volterStoryBoardChromeFor===r&&(a.style.display=d)}function Re(n,r,t,d){const{worldId:a}=r,s=document.createElement("div");return s.dataset.worldId=a,s.dataset.volterRootSurface="true",d&&(s.dataset.volterCanvasScene="true"),s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.width="100%",s.style.height="100%",s.style.zIndex=String(t),s.style.contain="layout paint",ke(s),K(s,a,r.kind),D(s),n.appendChild(s),s}function D(n){if(n.dataset.volterCanvasScene==="true"){n.style.transform="",n.style.width="100%",n.style.height="100%";return}if(n.style.transform=he(ye())??"",n.style.transformOrigin="0 0",n.dataset.volterReactStoryBoard==="true")return;const r=ve();n.style.width=r.width===null?"100%":`${r.width}px`,n.style.height=r.height===null?"100%":`${r.height}px`}const E=new Map;function qe(n,r,t,d,a,s,b){s?s.canvasSceneView.reset():ie(),Se();const k=ue();if(!s&&k?.config.resolution&&Ie(k.config.resolution.width,k.config.resolution.height),t.playState!=="stopped"){let e=!1,o=!1;const i=t.subscribe(()=>{e||o||t.playState!=="stopped"||(o=!0,e||N())});return()=>{e=!0,i()}}const V=k?.rootPath,z=d?[...d]:J(r);if(z.length===0||!V)return()=>{};const U=V,y=se(z.map(e=>({id:e.worldId,zOrder:e.zOrder}))).map(e=>z.find(o=>o.worldId===e.id)),x=new Map(y.map(e=>[e.worldId,e])),u=new Map,m=new Map,C=new Map,O=new Set,R=new Set,T=new Set;let h=!1,p=!1,W=!1;function q(){for(const e of m.values())try{e()}catch(o){P.error(`[design-time-layers] dispose failed: ${o}`,"authoring")}m.clear();for(const e of u.values())e.remove();u.clear();for(const e of y)a?.(e.worldId,null)}function X(){q();for(const e of O){const o=x.get(e);if(!o)continue;const i={id:o.worldId,kind:o.kind,entryOrScenePath:o.path,zOrder:o.zOrder,pausable:o.pausable};r.replaceChild(e,new S(t,i,"Design-time layer suspended by play mode — Stop restores it."))}O.clear(),t.notifyIngestEdit()}function M(e,o,i){const l=I(e.kind);if(!l){R.add(e.worldId);return}R.delete(e.worldId);const f=(C.get(e.worldId)??0)+1;C.set(e.worldId,f);const c=Re(n,e,Ce+o,!!s);u.set(e.worldId,c);const B={projectRootPath:U,store:t,...s?{view:s.canvasSceneView}:{},...b?{activationDocumentId:b}:{}},_=E.get(e.worldId),$=(async()=>(_&&await _,l.mount(e,c,B)))().then(w=>{if(h||p||C.get(e.worldId)!==f){w.dispose();return}if(w.adapter)j(r,e.worldId)&&(r.replaceChild(e.worldId,w.adapter),O.add(e.worldId)),a?.(e.worldId,w.adapter);else if(w.pick){const v={id:e.worldId,kind:e.kind,entryOrScenePath:e.path,zOrder:e.zOrder,pausable:e.pausable};r.replaceChild(e.worldId,new S(t,v,void 0,w.pick)),O.add(e.worldId)}m.set(e.worldId,w.dispose),L(e.worldId),t.notifyIngestEdit(),i?.()}).catch(w=>{if(C.get(e.worldId)!==f||(i?.(),c.remove(),u.get(e.worldId)===c&&u.delete(e.worldId),h||p))return;const v=fe(w);P.error(`[design-time-layers] world "${e.worldId}" (${e.kind}) failed to mount: ${v}`,"authoring");const ne={id:e.worldId,kind:e.kind,entryOrScenePath:e.path,zOrder:e.zOrder,pausable:e.pausable};a?.(e.worldId,null),j(r,e.worldId)&&r.replaceChild(e.worldId,new S(t,ne,v)),pe({worldId:e.worldId,kind:e.kind,identity:l.identity,message:v}),t.notifyIngestEdit()});E.set(e.worldId,$),$.then(()=>{E.get(e.worldId)===$&&E.delete(e.worldId)})}y.forEach((e,o)=>{M(e,o)});function Y(e,o){const i=m.get(e.worldId);m.delete(e.worldId);const l=u.get(e.worldId);u.delete(e.worldId),M(e,o,()=>{const c=u.get(e.worldId);if(c&&(c.style.visibility=""),i)try{i()}catch(B){P.error(`[design-time-layers] re-projection dispose failed: ${B}`,"authoring")}l?.remove()});const f=u.get(e.worldId);f&&f!==l&&(f.style.visibility="hidden")}function Z(e,o){const i=m.get(e.worldId);if(m.delete(e.worldId),i)try{i()}catch(f){P.error(`[design-time-layers] remount dispose failed: ${f}`,"authoring")}const l=u.get(e.worldId);l&&(l.remove(),u.delete(e.worldId)),M(e,o)}const g=new Map;function A(){for(const[e,o]of g)I(e.kind)!==e&&(o(),g.delete(e));for(const e of ge()){if(g.has(e)||I(e.kind)!==e||!y.some(l=>l.kind===e.kind))continue;const o=[],i=l=>()=>{h||p||t.playState!=="stopped"||y.forEach((f,c)=>{f.kind===e.kind&&l(f,c)})};e.remountWhen&&o.push(e.remountWhen(i(Z))),e.reprojectWhen&&o.push(e.reprojectWhen(i(Y))),g.set(e,()=>{for(const l of o)l()})}}A();const Q=me(()=>{h||p||t.playState!=="stopped"||(y.forEach((e,o)=>{R.has(e.worldId)&&I(e.kind)&&(T.delete(e.worldId),L(e.worldId),M(e,o))}),A())}),F=()=>{if(h||p)return;let e=!1;for(const o of y){if(!R.has(o.worldId)||T.has(o.worldId)||I(o.kind)||(T.add(o.worldId),!j(r,o.worldId)))continue;const i={id:o.worldId,kind:o.kind,entryOrScenePath:o.path,zOrder:o.zOrder,pausable:o.pausable};r.replaceChild(o.worldId,new S(t,i,`No package in this editor registered a design-time mount for a "${o.kind}" world, so there is nothing here to author it with.`)),e=!0}e&&t.notifyIngestEdit()},ee=de(F);le()&&F();const oe=ae(()=>{for(const e of u.values())D(e)}),te=be(()=>{for(const e of u.values())D(e)}),re=t.subscribe(()=>{if(!p&&t.playState!=="stopped"){p=!0,X();return}if(p&&!W&&t.playState==="stopped"&&!h){W=!0,h||N();return}if(!p)for(const[e,o]of u)K(o,e,x.get(e)?.kind??"dom")});return()=>{h=!0;for(const e of g.values())e();g.clear(),Q(),ee(),re(),oe(),te(),q()}}export{Ve as a,xe as d,qe as m,We as p,De as r};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as e,Y as r,bB as i,bC as a,bD as p,bE as m}from"./index-CvGsVzTo.js";import{bF as Ot,bG as Ht,bH as Ut,bI as qt,bJ as Bt,bK as Jt,bL as Mt,b1 as Qt,bM as Vt,bN as Yt,bO as _t,bP as Kt,bQ as Nt,a_ as Xt,bR as Zt,bS as zt,bT as te,bU as ee,bV as re,bW as oe,bX as se,bY as ie,bZ as ae,b_ as pe,b$ as me,c0 as ne,c1 as ce,c2 as le,c3 as de,c4 as be,c5 as ge,c6 as ue,c7 as Ee,c8 as Se,c9 as ye,ca as Pe,cb as je,cc as ve,cd as fe,ce as he,cf as Ae,cg as ke,ch as we,ci as Ce,cj as Re,ck as Fe,cl as Te,cm as xe,cn as Le,co as De,cp as Ge,a$ as We,cq as $e,cr as Ie,cs as Oe,ct as He,cu as Ue,cv as qe,cw as Be}from"./index-CvGsVzTo.js";import{o as Me,q as Qe,t as Ve}from"./game-network-BPTyOFqA.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-XfhvyMrK.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-Dagj3b6J.js";import"./contract-system-adapters-BRHtWOi_.js";import"./game-contract-seams-5IUqvr7b.js";import"./seeded-random-D0QPgfm6.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-B7S-wGjC.js";import"./capability-coverage-9qm5WVwt.js";import"./edit-mode-authoring-DubxVdEM.js";import"./json-history-resource-CckDydoO.js";import"./binding-resolver-CBXePHiR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-DCnaxwIb.js";import"./canvas-entry-runtime-Cjga4XYp.js";import"./three-ingest-runtime-CwRnwvb0.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-lrfMBhf9.js";import"./ingest-source-persistence-CPlDA2D8.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-CkSAEMH-.js";import"./mounted-authoring-D-tXkNKH.js";import"./entity-object-BFppZ54X.js";import"./user-data-DfBtZvxw.js";import"./workspace-arrangement-C9uemwSK.js";import"./three-contract-Dkt6PmWY.js";import"./three-bdxPiUPb.js";import"./editor-layers-BK3fNRb7.js";import"./component-instance-root-MBgAuUpp.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BuqO9MDt.js";import"./source-persistence-backend-Djuk0m-7.js";import"./three-projection-core-BO23VKAP.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BcTFD1ZS.js";import"./deferred-ingest-play-DZiOEH9a.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-B6BiehHR.js";import"./board-guides-whelE-Dr.js";import"./relative-import-specifier-BvzqkvYS.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DxfAFkho.js";import"./inference-diagnostics-BCwXk-CS.js";import"./writer-tw6EcuVO.js";import"./three-state-BhQOBgKC.js";import"./editor-shell-store-Bro0arjr.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-CuJjGYTz.js";import"./game-surface-defaults-D8S4cRxi.js";async function Dt(){try{const t=await fetch(`${e}/examples`);return(await r(t,`GET ${e}/examples failed`)).examples}catch{return[]}}function Gt(t){return t.startsWith("/")?t:`${e}/learn-thumbnail?file=${encodeURIComponent(t)}`}async function Wt(){const t=await fetch(`${e}/templates`);return(await r(t,`GET ${e}/templates failed`)).templates}export{Ot as AssetDeliveryError,m as abortGameplayRecordingSink,Ht as adaptProjectFolder,Ut as appendGameplayRecordingAsset,a as appendGameplayRecordingChunk,qt as appendGameplayRecordingDomEvents,Bt as archiveEditorWorktree,Jt as assetDeliveryIssueMessage,i as beginGameplayRecordingSink,Mt as browseFolder,Qt as captureProjectAssetHistory,Vt as connectEvents,Yt as connectTabPresence,_t as createEditorWorktree,Kt as createProject,Nt as delegateEditorTask,Xt as downloadOnlineAsset,Me as endLogSession,p as finishGameplayRecordingSink,Qe as flushLogEntries,Zt as getAssetLibraryCategories,zt as getCurrentServerProject,te as getDownloadUrl,ee as getDownloadedAssetPath,re as getEditorCompatibility,oe as getEditorRepositoryPresence,se as getEditorSessionWorktreeIdentity,ie as getLauncherSettings,ae as getOnlineAssetFiles,pe as getOnlineAssetPreview,me as getServerValidationLog,ne as inspectProjectFolder,Gt as learnThumbnailUrl,ce as listAssets,le as listDelegateHarnesses,de as listEditorWorktrees,Dt as listExamples,be as listProjectComponents,ge as listProjectSourceFiles,ue as listRecentProjects,Wt as listTemplates,Ee as loadDownloadedAssets,Se as loadEditorState,ye as onAssetDownloaded,Pe as openEditorWorktree,je as openProjectOnServer,ve as pollEditorLeaseIdentity,fe as probeCurrentServerProject,he as probeProjectFile,Ae as projectFileExists,ke as readProjectSourceText,we as readProjectTextFile,Ce as removeRecentProject,Re as reportCommandListener,Fe as reportCommandReceived,Te as reportCommandResult,xe as reportEditorState,Le as reportPlayBootPhase,De as reportTabRoute,Ge as requireEditorCompatibility,We as restoreProjectAssetHistory,$e as revealInFinder,Ie as saveEditorState,Oe as saveFile,He as saveThumbnail,Ue as searchOnlineAssets,Ve as startLogSession,qe as stopEditorWorktreeSession,Be as updateLauncherSettings};
|