@volter/game-editor 0.5.108 → 0.5.110
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 +2173 -2173
- package/dist/assets/{AssetBudgetPanel-QorQ6jVY.js → AssetBudgetPanel-CA5WnTKY.js} +3 -3
- package/dist/assets/{AudioViewer-Bg1U_na-.js → AudioViewer-D9bHbFfE.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-DdK4TlZF.js → CanvasBoardDocument-C-Rmqno1.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-PImZsSzn.js → CanvasSceneViewport-GPeqRbJF.js} +1 -1
- package/dist/assets/{ColorInput-DlZ-RUhX.js → ColorInput-LOPjrHkP.js} +1 -1
- package/dist/assets/{ColorPicker-DDjV94Br.js → ColorPicker-CshnU6f7.js} +1 -1
- package/dist/assets/{EntityModelDocument-BXWWtzBN.js → EntityModelDocument-Dlp-8g7D.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-C8X9deOy.js → EnvironmentAssetDocument-CgRbt4Jo.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-CcDf30gB.js → GameplaySessionTimeline-E-BE0EU7.js} +1 -1
- package/dist/assets/{ImageViewer-DQkqjiV8.js → ImageViewer-DLZttZzB.js} +1 -1
- package/dist/assets/InspectorObjectPreview-bpSm22I-.js +1 -0
- package/dist/assets/{JsonAssetDocument-DGbEShUJ.js → JsonAssetDocument-DIecsd7l.js} +1 -1
- package/dist/assets/{LiveModuleDocument-CSQEuhox.js → LiveModuleDocument-BOR_N7Na.js} +1 -1
- package/dist/assets/{LutAssetDocument-BXW8a6qT.js → LutAssetDocument-Rvj1GVIa.js} +1 -1
- package/dist/assets/{ModelAssetDocument-CHYL9aG2.js → ModelAssetDocument-l9npox50.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-Bcr-edIN.js → NonThreeAuthoringBootstrap-BSPTW9LM.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-DNxMGImP.js → Object3DDocumentToolbar-DY8a0Occ.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-C7LPv0rT.js +2 -0
- package/dist/assets/{Object3DPreview-DnfvoJIJ.js → Object3DPreview-F5H47D4e.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-DuZPhT-L.js → OnlineAssetDetail-DHbh9BHq.js} +1 -1
- package/dist/assets/{PlayBar-DCrB4B1r.js → PlayBar-Cp3N-KCf.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-DVun-iiS.js → QuarksAssetDocument-CJ55waf3.js} +1 -1
- package/dist/assets/{ReactCanvasControls-C6miAF3y.js → ReactCanvasControls-BZIKnBe_.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-Cj_42uH4.js → RootSelectionOverlay-DbREUgIb.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-CLNw98jZ.js → ShaderAssetDocument-C0I3j_bn.js} +1 -1
- package/dist/assets/{ShadowEditor-9nnKpjO2.js → ShadowEditor-DQJHrmnw.js} +1 -1
- package/dist/assets/{SourceAssetViewer-L-bCy9Ex.js → SourceAssetViewer-GaiKwcan.js} +1 -1
- package/dist/assets/{StageHost-BStYoTUX.js → StageHost-DooxiRtf.js} +2 -2
- package/dist/assets/{StoryPreviewMount-BtSW2Lb5.js → StoryPreviewMount-Dn5LTh6d.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-DVZufDXd.js → ThreeBoardDocument-BSveW9kd.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-CA1FHe5l.js → ThreeIsolationSceneContent-VRHOzKbZ.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-BIKclI4p.js → ToolObject3DPreview-bl5ZiSTf.js} +1 -1
- package/dist/assets/{Toolbar-BOhrx3BY.js → Toolbar-BthqVrvk.js} +1 -1
- package/dist/assets/{TransientHint-BzXrECrw.js → TransientHint-BfLO2bn2.js} +1 -1
- package/dist/assets/{VideoViewer-BePNvCo8.js → VideoViewer-CfMklFgO.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-DieQf7SR.js → ViewportShadingMenu-BwML2aq7.js} +1 -1
- package/dist/assets/{active-ingest-P-9N-lwD.js → active-ingest-CjTOfvPo.js} +2 -2
- package/dist/assets/{animation-clock-DdHfE1_8.js → animation-clock-dqOcJ1jx.js} +1 -1
- package/dist/assets/{animation-mixers.service-ChGxps0c.js → animation-mixers.service-Cyr-o0Ys.js} +1 -1
- package/dist/assets/{animation-timeline.utility-CXN1efiJ.js → animation-timeline.utility-BVVP_uKf.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-LVDzBtTs.js → asset-budget-asset.menu-BBvMPohD.js} +1 -1
- package/dist/assets/{asset-budget.action-ChAMAMG2.js → asset-budget.action-C_vm5rI8.js} +1 -1
- package/dist/assets/{asset-budget.document-DtKHPjSg.js → asset-budget.document-O0KxG1Xs.js} +1 -1
- package/dist/assets/{asset-budget.menu-BVJarp8S.js → asset-budget.menu-DoTOigvn.js} +1 -1
- package/dist/assets/{asset-editor-persistence-CF8bStFQ.js → asset-editor-persistence-BDtXtYHv.js} +1 -1
- package/dist/assets/{asset-loaders-ByDJsV0c.js → asset-loaders-oyqCjokK.js} +1 -1
- package/dist/assets/{asset-preview-D_mr_kfU.js → asset-preview-DeoFAm2V.js} +1 -1
- package/dist/assets/{audio-unlock.service-CkM-XBlF.js → audio-unlock.service-p06da4Yi.js} +1 -1
- package/dist/assets/{audio.utility-YcoHxrkp.js → audio.utility-ChNs1GrX.js} +1 -1
- package/dist/assets/autoplay.service-CaAzAiui.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-s9kkPTGQ.js → babylon-authoring-adapter-DitAm5jy.js} +1 -1
- package/dist/assets/{binding-resolver-DWeB_XxW.js → binding-resolver-DmISbZ_C.js} +2 -2
- package/dist/assets/{blender-emscripten-engine-RAyyfT0y.js → blender-emscripten-engine-DrQ7iKAw.js} +1 -1
- package/dist/assets/{blender-node-editor.document-9XIWHDtH.js → blender-node-editor.document-CjFrwIsm.js} +1 -1
- package/dist/assets/{blender-properties-tab-B0_Lk021.js → blender-properties-tab-DPfPDJEM.js} +1 -1
- package/dist/assets/{blender-runtime-host-DqdHNsyo.js → blender-runtime-host-ujsU3CHo.js} +3 -3
- package/dist/assets/{blender-runtime-skin-DKFIhKDc.js → blender-runtime-skin-CwUNCSeX.js} +32 -32
- package/dist/assets/{blender-runtime.document-BF7bxi3H.js → blender-runtime.document-DSE6A3hU.js} +1 -1
- package/dist/assets/{blender-screenshot.menu-BmIsjB0h.js → blender-screenshot.menu-CGpBxeEq.js} +1 -1
- package/dist/assets/{blender-timeline.document-C1kk6l2T.js → blender-timeline.document-BW8pAn48.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-P3S825_B.js → blender-uv-editor.document-AVdfD3lL.js} +1 -1
- package/dist/assets/{blender-version.status-UlsMYg5E.js → blender-version.status-5pbhDXPd.js} +1 -1
- package/dist/assets/{blender-wali-engine-NtBfKpqX.js → blender-wali-engine-DRlkIoxZ.js} +1 -1
- package/dist/assets/{blender.command-mif4R2hu.js → blender.command-Tiwc3_Hq.js} +1 -1
- package/dist/assets/{board-guides-D-8XTzQj.js → board-guides-siB7DLLo.js} +1 -1
- package/dist/assets/{bridge.command-BvcgwKBU.js → bridge.command-Bwvk9KTP.js} +3 -3
- package/dist/assets/{browserAll-BJifDlVb.js → browserAll-DatQc6Hg.js} +1 -1
- package/dist/assets/{build-player.document-WVBd9FAb.js → build-player.document-5galC35i.js} +1 -1
- package/dist/assets/{build-profiles.document-DZq1dZAc.js → build-profiles.document-BtgtKY3e.js} +1 -1
- package/dist/assets/{build-progress.status-Cb3NQY_h.js → build-progress.status-CELO9Hk6.js} +1 -1
- package/dist/assets/{build-session-ZAJtZEPd.js → build-session-CmSSnwbl.js} +1 -1
- package/dist/assets/{build.action-Dkd49KI3.js → build.action-DtWKh5ZO.js} +1 -1
- package/dist/assets/{build.command-DcyjEAeB.js → build.command-CPSdPV-6.js} +1 -1
- package/dist/assets/{build.header-BBi3L1EG.js → build.header-B_esAQuh.js} +1 -1
- package/dist/assets/{build.menu-CrFuKfdU.js → build.menu-Bl9QiO1i.js} +1 -1
- package/dist/assets/{build.service-B1DOzaYx.js → build.service-3C_qeoGz.js} +1 -1
- package/dist/assets/{camera-ClX7A1rz.js → camera-CvN4e2Zz.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-DadF_6Y0.js → camera-runtime.inspector-DSvOIBHY.js} +1 -1
- package/dist/assets/{canvas-design-mount-B3NGn7ab.js → canvas-design-mount-DBtUNmrt.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-DRbpmRh6.js → canvas-entry-runtime-C2mS5iAy.js} +2 -2
- package/dist/assets/{canvas-preview-frames-CbvLKzk1.js → canvas-preview-frames-ciVf8XNo.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-DDdCj7eB.js → canvas-story-capture.service-Be2yHqJ5.js} +2 -2
- package/dist/assets/{capability-coverage-D9QD-rt7.js → capability-coverage-C4P-DBKm.js} +1 -1
- package/dist/assets/{collaboration-presence-DFgm-wIj.js → collaboration-presence-3cLXKw77.js} +1 -1
- package/dist/assets/{collider-CV5alY5b.js → collider-DRQ_g1zi.js} +1 -1
- package/dist/assets/{component-board.service-DiRsyVPA.js → component-board.service-BuJB7tbp.js} +2 -2
- package/dist/assets/{component-board.service-BhGHT7LO.js → component-board.service-D6bAXKxC.js} +2 -2
- package/dist/assets/{component-board.service-L78fhiMe.js → component-board.service-DGzNpMjz.js} +2 -2
- package/dist/assets/{component-contracts.service-dOZUydlV.js → component-contracts.service-DdihP393.js} +1 -1
- package/dist/assets/{component-instance-root-BNDWrUkC.js → component-instance-root-z47Ib-DX.js} +1 -1
- package/dist/assets/{component-verbs.command-yidei2PQ.js → component-verbs.command-DE37VF0z.js} +1 -1
- package/dist/assets/{component-verbs.service-BWJS8Kyo.js → component-verbs.service-p8nz1DC6.js} +1 -1
- package/dist/assets/{config-rJ9cCMiJ.js → config-CdxEVH0n.js} +2 -2
- package/dist/assets/{configurations-cHt-z2BW.js → configurations-3ggfkdh8.js} +1 -1
- package/dist/assets/{connection.status-D40TvPgq.js → connection.status-L7HOKlna.js} +1 -1
- package/dist/assets/{constraints.inspector-BxnP4zez.js → constraints.inspector-BccsKc10.js} +1 -1
- package/dist/assets/{content-bounds-CaZcBNYF.js → content-bounds-BzOnMMA9.js} +1 -1
- package/dist/assets/{contract-system-adapters-BeyBY6uU.js → contract-system-adapters-DEkFby0m.js} +1 -1
- package/dist/assets/{coverage.service-Bkh7Jqi9.js → coverage.service-Dh3aFjA4.js} +1 -1
- package/dist/assets/{create-runtime-DEL8IBsg.js → create-runtime-CIgubwcC.js} +1 -1
- package/dist/assets/{curve-BQz9RIaA.js → curve-PXFWOu1h.js} +1 -1
- package/dist/assets/{data-asset-BoykURl_.js → data-asset-JCTDHYos.js} +1 -1
- package/dist/assets/{data-ref-orpnwauu.js → data-ref-D8GloBWb.js} +1 -1
- package/dist/assets/{debug-bridge-DpAIxpxr.js → debug-bridge-Bn0fBpNA.js} +1 -1
- package/dist/assets/{debug-registry-DKNGAsE6.js → debug-registry-b9SNCcVT.js} +1 -1
- package/dist/assets/{deferred-ingest-play-BYWgrVZN.js → deferred-ingest-play-EBHoQATQ.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-B-mtCXNZ.js → design-time-canvas-mount-DOnlywHv.js} +2 -2
- package/dist/assets/{design-time-layers-BYVCDUHn.js → design-time-layers-Cqjx6T_b.js} +1 -1
- package/dist/assets/{design-time-mount.service-3gMHaUOK.js → design-time-mount.service-51cvhzrM.js} +2 -2
- package/dist/assets/{design-time-mount.service-Cp4u6NGI.js → design-time-mount.service-CjHEWF1r.js} +2 -2
- package/dist/assets/{design-time-react-mount-Dt5hEtwi.js → design-time-react-mount-C4_WfKCT.js} +1 -1
- package/dist/assets/{document-preview-three-C86kLB3l.js → document-preview-three-Dph0qWUe.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DdKF8aGL.js → dom-authoring-adapter-CMXOivlg.js} +1 -1
- package/dist/assets/{draco3d-CqrYtM39.js → draco3d-wRpcYGCF.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-DastYEVQ.js → edit-mode-audio.service-BON9_pwC.js} +1 -1
- package/dist/assets/{edit-mode-authoring-BfHszfD3.js → edit-mode-authoring-DsZ-2V4q.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-BZ1cEawB.js → edit-mode-networking.service-B1jvzsUe.js} +1 -1
- package/dist/assets/{editor-api-CNRvYvra.js → editor-api-BBBw0rAh.js} +1 -1
- package/dist/assets/{editor-layers-D-sKmDua.js → editor-layers-wmPhuj0X.js} +1 -1
- package/dist/assets/{editor-shell-store-BMZxpcut.js → editor-shell-store-LRVyeXM-.js} +1 -1
- package/dist/assets/{entity-object-Ai-uXVow.js → entity-object-DWKBk3rf.js} +1 -1
- package/dist/assets/{extend-BUAqlHkG.js → extend-Hb3YZk-l.js} +1 -1
- package/dist/assets/{fork-menu-OuLP7Lau.js → fork-menu-Bz8tnAZP.js} +1 -1
- package/dist/assets/{frame-debugger-store-B7kEPPwE.js → frame-debugger-store-XDqmRybm.js} +1 -1
- package/dist/assets/{game-contract-seams-DOVpGKKj.js → game-contract-seams-Dq1vGRC1.js} +1 -1
- package/dist/assets/{game-css-scope-transform-BKtVEQ73.js → game-css-scope-transform-CE-77RAD.js} +1 -1
- package/dist/assets/{game-document.service-BVYI1WcU.js → game-document.service-C4GqAnuP.js} +1 -1
- package/dist/assets/{game-eval.command-BcF5uF72.js → game-eval.command-S1AUTAe6.js} +1 -1
- package/dist/assets/{game-module-access-D4VyMdFg.js → game-module-access-Cpd1pqcr.js} +1 -1
- package/dist/assets/{game-network--h-FxD5b.js → game-network-DcXic1hU.js} +3 -3
- package/dist/assets/{gameplay-export-CyvkC-oL.js → gameplay-export-CXYuIXwM.js} +1 -1
- package/dist/assets/{gameplay-replay-Cple4DnH.js → gameplay-replay-Bn9Tff0H.js} +1 -1
- package/dist/assets/{gameplay.command-B-MHvpFd.js → gameplay.command-B9QmrfQx.js} +1 -1
- package/dist/assets/{generation-jobs-YJG2Y7kw.js → generation-jobs-DbXxsaSZ.js} +1 -1
- package/dist/assets/{generation.service-CeIwfVH5.js → generation.service-CVz0jrH8.js} +1 -1
- package/dist/assets/{generations-BpEvY421.js → generations-BuSgXNmm.js} +1 -1
- package/dist/assets/{generations.status-FLkppvzr.js → generations.status-DUr_PjwO.js} +1 -1
- package/dist/assets/{hierarchy-marks-CyrGt6dv.js → hierarchy-marks-BjIT-DOf.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-BBfrvEh8.js → hosted-asset-materialization-rUtmDeMy.js} +1 -1
- package/dist/assets/{index-CG_0jl_O.js → index-BB2JZnar.js} +1 -1
- package/dist/assets/{index-DbdVWXvM.js → index-BTzFwm1R.js} +2 -2
- package/dist/assets/{index-FuK_gLVP.js → index-BYdQuKKk.js} +7 -7
- package/dist/assets/{index-BvlsL2ds.js → index-BsyTLFdL.js} +1 -1
- package/dist/assets/{index-NJ73w2W0.js → index-C0gUuD--.js} +1 -1
- package/dist/assets/{index-IJBqVun0.js → index-CwHA-Zn2.js} +1 -1
- package/dist/assets/{index-D6AmWXbZ.js → index-DPXH0DLI.js} +1 -1
- package/dist/assets/{index-CzfiOQG9.js → index-Dv6KjGDu.js} +1 -1
- package/dist/assets/{index-DqaGRnl8.js → index-yUo6ZJ1K.js} +1 -1
- package/dist/assets/{inference-diagnostics-D771II31.js → inference-diagnostics-DylK1Zco.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-DrWIqiaT.js → ingest-boot-viewport-CWPpaeQX.js} +1 -1
- package/dist/assets/{ingest-siblings-CJcw40b3.js → ingest-siblings-ChSVCnmP.js} +1 -1
- package/dist/assets/{ingest-source-persistence-DWpLWVYc.js → ingest-source-persistence-G4DRJGE8.js} +1 -1
- package/dist/assets/{ingest.service-CfI2uUJk.js → ingest.service-0fE22SDc.js} +1 -1
- package/dist/assets/{inspect-G9yzBKkf.js → inspect-CazPcKcv.js} +1 -1
- package/dist/assets/instances.command-Cff8g0Qu.js +1 -0
- package/dist/assets/{json-history-resource-Lm6Gsl0p.js → json-history-resource-D-FoaxLT.js} +1 -1
- package/dist/assets/{layered-pick-CmpZSo8j.js → layered-pick-C73ZQGcv.js} +1 -1
- package/dist/assets/{light-BsEXvLKm.js → light-xGJK3Wlj.js} +1 -1
- package/dist/assets/{live-project-verbs-BPAULlyy.js → live-project-verbs-DYPJ4HjP.js} +1 -1
- package/dist/assets/{machine.document-BqYyC7-_.js → machine.document-D3px2bzJ.js} +1 -1
- package/dist/assets/{machines.finder-iE0GRJmX.js → machines.finder-BebmWb2J.js} +1 -1
- package/dist/assets/{material-CmZk61au.js → material-P9SjD3Ot.js} +1 -1
- package/dist/assets/{material-factory-CgKRNyTJ.js → material-factory-DZpGzP1J.js} +1 -1
- package/dist/assets/{mesh-CFQNtglF.js → mesh-NhmM6AvO.js} +1 -1
- package/dist/assets/{model-asset-sections.service-C9aBbNhg.js → model-asset-sections.service-XoDCR7K7.js} +1 -1
- package/dist/assets/{model-inspection-CRXVM5Wz.js → model-inspection-CRQL0kkD.js} +1 -1
- package/dist/assets/{model-thumbnail-n5yOZ3A6.js → model-thumbnail-BSBXqm11.js} +1 -1
- package/dist/assets/{models.finder-Cv0yUUsA.js → models.finder-CyqMFbNG.js} +1 -1
- package/dist/assets/{module-mode-D9wou5Sv.js → module-mode-CrdDk1MO.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-BQBEy7uJ.js → mount-canvas-ingest-root-CNhapYXw.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-B7TIeWwv.js → mount-dom-ingest-root-fz_nUR-I.js} +2 -2
- package/dist/assets/{mount-ingest-root-DLk-bjRI.js → mount-ingest-root-CnOI0tzn.js} +2 -2
- package/dist/assets/{mount-manifest-BSC4x0OM.js → mount-manifest-DtOieSVW.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-IXJdEORK.js → mount-three-ingest-root-B11KDTlC.js} +1 -1
- package/dist/assets/{mounted-authoring-BRUN-BOo.js → mounted-authoring-CqEcYmBB.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-CJ9v75Cz.js → mounted-story-viewport-source-ClFcc8ZE.js} +1 -1
- package/dist/assets/{native-debug-module-DCjfoqQ_.js → native-debug-module-xmmPMHBo.js} +1 -1
- package/dist/assets/{navigation-B4ScoRYf.js → navigation-B5MSEPQo.js} +1 -1
- package/dist/assets/{navmesh.menu-DWzhh3-1.js → navmesh.menu-CjCV-1Zk.js} +1 -1
- package/dist/assets/{navmesh.service-DfXqZNTC.js → navmesh.service-DJaVLPIT.js} +1 -1
- package/dist/assets/network-observer.service-DX1ZcyzF.js +1 -0
- package/dist/assets/{network.utility-BbPILdSn.js → network.utility-CHVTUNSl.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-yyskXT42.js → object3d-document-session-registry-RFHXjepL.js} +2 -2
- package/dist/assets/{oid-transform-B9wsHs5H.js → oid-transform-DOVsETju.js} +1 -1
- package/dist/assets/{particles-DGKxyAuH.js → particles-CcUkRyUm.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-DS-A0P3M.js → pixi-authoring-adapter-CDcz5ySv.js} +1 -1
- package/dist/assets/{pixi-live-write-target-BjARuRSW.js → pixi-live-write-target-BjlNk1ws.js} +1 -1
- package/dist/assets/{play.command-DCc8asMJ.js → play.command-MX_nXHxk.js} +2 -2
- package/dist/assets/{presentation-FoTcsbFF.js → presentation-Dy8F-23e.js} +1 -1
- package/dist/assets/{product-CxzQQY-2.js → product-DKcPhhH3.js} +1 -1
- package/dist/assets/{profiler.action-smxgfcL_.js → profiler.action-CrVcze1d.js} +1 -1
- package/dist/assets/{profiler.menu-CPgp7nBA.js → profiler.menu-BT8Gbk-H.js} +1 -1
- package/dist/assets/{profiler.utility-BlJIqjBl.js → profiler.utility-BK7-JszO.js} +1 -1
- package/dist/assets/{project-authoring-session-D5Hx87VG.js → project-authoring-session-C7hSaUoI.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-Dfagnx_P.js → properties-bone-constraints.inspector-DojLcDWI.js} +1 -1
- package/dist/assets/{properties-bone.inspector-CcZ9t3x_.js → properties-bone.inspector-BKtnxYej.js} +1 -1
- package/dist/assets/{properties-collection.inspector-XJfAy2LF.js → properties-collection.inspector-CJwK055D.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-Duy4wn7B.js → properties-constraints.inspector-BMr_2fNW.js} +1 -1
- package/dist/assets/{properties-data.inspector-Dtcc2RcP.js → properties-data.inspector-eP5kPx_x.js} +1 -1
- package/dist/assets/{properties-material.inspector-BsmleciZ.js → properties-material.inspector-DzcTJXqu.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-BG6NJU2U.js → properties-modifiers.inspector-BPnJY0K9.js} +1 -1
- package/dist/assets/{properties-object.inspector-lIRXMKBd.js → properties-object.inspector-CiU_g5eW.js} +1 -1
- package/dist/assets/{properties-output.inspector-DFzeIW2j.js → properties-output.inspector-B7-0cxFB.js} +1 -1
- package/dist/assets/{properties-particles.inspector-ClVqIBAW.js → properties-particles.inspector-B_dIFFES.js} +1 -1
- package/dist/assets/{properties-physics.inspector-JJK-q6VU.js → properties-physics.inspector-BrZZssu5.js} +1 -1
- package/dist/assets/{properties-render.inspector-K0TdbYo2.js → properties-render.inspector-Cr3ILbCE.js} +1 -1
- package/dist/assets/{properties-scene.inspector-7LMlqHIJ.js → properties-scene.inspector-CCT-Wwlq.js} +1 -1
- package/dist/assets/{properties-texture.inspector-DRcLLne7.js → properties-texture.inspector-BbDSLSIf.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-BLbQJdxQ.js → properties-view-layer.inspector-CMFsWlWn.js} +1 -1
- package/dist/assets/{properties-world.inspector-pbOvsUWM.js → properties-world.inspector-QOI3frGi.js} +1 -1
- package/dist/assets/{r3f-design-session-DtYg0f6U.js → r3f-design-session-DYcgEMWW.js} +2 -2
- package/dist/assets/{r3f-physics-binding-Cy9jQdnd.js → r3f-physics-binding-CmlqQXpO.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-CGBlpkG7.js → r3f-source-authoring-adapter-DlK-JsAS.js} +1 -1
- package/dist/assets/{react-canvas-navigation-CKXOs-Wq.js → react-canvas-navigation-CcPcwMkG.js} +1 -1
- package/dist/assets/{react-inspector.service-CsTte-N1.js → react-inspector.service-CXeQPCph.js} +1 -1
- package/dist/assets/{react-story-board-DP8miK58.js → react-story-board-JyxJfFaY.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-DNUgm9WI.js → react-three-rapier.esm-CUxniyd-.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-DDSKeNtx.js → react-world-authoring-adapter-D9avM44a.js} +1 -1
- package/dist/assets/{realm-services-CIoOWxZe.js → realm-services-D8d7aUSw.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-YbluVpTC.js → reflection-probe-capture.inspector-BU0Ixoxz.js} +1 -1
- package/dist/assets/{registry-D3NMBnZ_.js → registry-BDw0X1Ht.js} +1 -1
- package/dist/assets/{relative-import-specifier-BHYY_mHM.js → relative-import-specifier-BGUMwtft.js} +1 -1
- package/dist/assets/{render-env-ufPT6kcg.js → render-env-COdmMCld.js} +1 -1
- package/dist/assets/{render-features-Dt3ItOxf.js → render-features-B9DvCMxj.js} +1 -1
- package/dist/assets/{render-settings-y6lgf9KB.js → render-settings-BZQKFQ-S.js} +1 -1
- package/dist/assets/{resolve-three-DPJIomXU.js → resolve-three-CBuaRQ3h.js} +3 -3
- package/dist/assets/{root-seam-contract-DjLE5lpJ.js → root-seam-contract-CnveH2Nm.js} +1 -1
- package/dist/assets/{run-selection-DkkDSK2k.js → run-selection-CIf2tl8R.js} +1 -1
- package/dist/assets/{scene-capture-B9TCnOqE.js → scene-capture-C58hCZOG.js} +1 -1
- package/dist/assets/{scene-document.service-BQ4YJ85A.js → scene-document.service-2jk9EV45.js} +2 -2
- package/dist/assets/{scene-framing-Rs5Y89nN.js → scene-framing-C0vuzmLH.js} +1 -1
- package/dist/assets/{seeded-random-DMenDilU.js → seeded-random-C4zhXjCn.js} +1 -1
- package/dist/assets/{session-D32o2Hbx.js → session-BfHWkUIf.js} +81 -1
- package/dist/assets/{setup-renderer-FNGzSUCJ.js → setup-renderer-B5wilQJH.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-Ckfk03in.js → source-object3d-authoring-adapter-PbUdA5Q2.js} +1 -1
- package/dist/assets/{source-persistence-backend-D2wE734G.js → source-persistence-backend-Sj6uuBrM.js} +1 -1
- package/dist/assets/{stage-keyboard-BnGgOfba.js → stage-keyboard-9ZzYQNd5.js} +1 -1
- package/dist/assets/{stage-overlay-set-Cy_kPcLc.js → stage-overlay-set-CguBU7J4.js} +1 -1
- package/dist/assets/{stage-presence-markers-DkQfTXSi.js → stage-presence-markers-DXjy7DL7.js} +1 -1
- package/dist/assets/{stage-transform-tools-Z4MP8ho5.js → stage-transform-tools-DiblXG_Z.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-wQb-yfhP.js → standard-viewport-dressing-DpCqZowy.js} +1 -1
- package/dist/assets/{state-watch.action-C1Sr4Sig.js → state-watch.action-Ct5Wy0zu.js} +1 -1
- package/dist/assets/{state-watch.menu-izjaH3rb.js → state-watch.menu-Bf6HJvqy.js} +1 -1
- package/dist/assets/{state-watch.utility-DkKZOOWC.js → state-watch.utility-efli4QQe.js} +1 -1
- package/dist/assets/{story-capture-DoBmQaJy.js → story-capture-DAzlViX7.js} +1 -1
- package/dist/assets/{story-documents-BzadiI5m.js → story-documents-BYIxqRcJ.js} +1 -1
- package/dist/assets/{story-documents.service-ClHoqS_S.js → story-documents.service-B7jaECxU.js} +1 -1
- package/dist/assets/{story-documents.service-B2XyP9fa.js → story-documents.service-BAoQMTa4.js} +1 -1
- package/dist/assets/{story-media-presence-BQezZJvw.js → story-media-presence-B0ccG2oZ.js} +1 -1
- package/dist/assets/{story-pixi-preview-CvSUXb1O.js → story-pixi-preview-qNGRD1RG.js} +1 -1
- package/dist/assets/{story-presentation-BFgjqHVE.js → story-presentation-B85RFwXM.js} +1 -1
- package/dist/assets/{story-three-preview-EJG3Ki2M.js → story-three-preview-C-kpIz3s.js} +2 -2
- package/dist/assets/{studio-environment-Bj3Hi-UK.js → studio-environment-BXrrTMN4.js} +1 -1
- package/dist/assets/{surface-state-BfErS6v0.js → surface-state-D9U0kgz0.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-BD-AJdiW.js → syntactic-prop-specs-Ca4XG7zz.js} +1 -1
- package/dist/assets/{team-playtest.service-BHn-MVSU.js → team-playtest.service-BVasG50-.js} +1 -1
- package/dist/assets/{three-CQVC3sHg.js → three-D4bun8tv.js} +1 -1
- package/dist/assets/{three-authoring-adapter-C5QXFs1Q.js → three-authoring-adapter-VpfMe64G.js} +1 -1
- package/dist/assets/three-authoring.service-Dgj0R5Mm.js +2 -0
- package/dist/assets/{three-ingest-runtime-ClA0ZFjY.js → three-ingest-runtime-DI_J7mdv.js} +1 -1
- package/dist/assets/{three-integration-UeCSuDl8.js → three-integration-BzTWd5jX.js} +2 -2
- package/dist/assets/three-integration.service-CHDRTJ4I.js +1 -0
- package/dist/assets/{three-projection-core-Ckpx-u5r.js → three-projection-core-DTAhpWX4.js} +1 -1
- package/dist/assets/{three-state-DNgFvLbw.js → three-state-ctKrzvps.js} +1 -1
- package/dist/assets/{three-story-capture.service-Bh4T4UDu.js → three-story-capture.service-9OfuwiWo.js} +2 -2
- package/dist/assets/{three-story-model-z5ueli9r.js → three-story-model-UEeiGz1i.js} +1 -1
- package/dist/assets/{three-viewport-presentation-5KZ0zq__.js → three-viewport-presentation-Zf87KDhY.js} +1 -1
- package/dist/assets/{transform-mode-request-B6ZoHm8Z.js → transform-mode-request-D9k3BUHW.js} +1 -1
- package/dist/assets/{transport-strip-B6uA0CS2.js → transport-strip-CwOW82Og.js} +1 -1
- package/dist/assets/transport.header-B4EdCaSb.js +1 -0
- package/dist/assets/{tuples-9hzaeddD.js → tuples-B8Z8h1FP.js} +1 -1
- package/dist/assets/{ui-board-document-CZR37-MH.js → ui-board-document-B7_C_NlR.js} +2 -2
- package/dist/assets/{user-data-thHakLdm.js → user-data-CJW19F-2.js} +1 -1
- package/dist/assets/{utility-view-state-mgk7IW1_.js → utility-view-state-D_vE7sm3.js} +1 -1
- package/dist/assets/{viewport-door-BfcEF1aj.js → viewport-door-BW0xEXr5.js} +1 -1
- package/dist/assets/{viewport-root-presentation-BPc-lH1E.js → viewport-root-presentation-Cy219iw-.js} +1 -1
- package/dist/assets/{viewport-surface-status-B-dxhyXW.js → viewport-surface-status-CO8m-4fj.js} +1 -1
- package/dist/assets/{webworkerAll-M6nIvbjt.js → webworkerAll-DXnaOz71.js} +1 -1
- package/dist/assets/worker-CIByxsbl.js +2 -0
- package/dist/assets/{workspace-arrangement-avVz3tND.js → workspace-arrangement-DwFkSdlq.js} +1 -1
- package/dist/assets/{world-documents-tYDBGv-F.js → world-documents-DXzZtfR9.js} +1 -1
- package/dist/assets/{world-root-stage-binding-5pbD7Ije.js → world-root-stage-binding-C7HH_DuY.js} +1 -1
- package/dist/assets/{xstate-animation-binding-Cvl5K9w5.js → xstate-animation-binding-DMnWdBYa.js} +1 -1
- package/dist/assets/{xstate-animation-meta-y4vMVZGC.js → xstate-animation-meta-DzRq8jno.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-DaEwQeSD.js +0 -1
- package/dist/assets/Object3DDocumentViewport-DBReT61I.js +0 -2
- package/dist/assets/autoplay.service-D4JLEyog.js +0 -1
- package/dist/assets/instances.command-aJdpUuvP.js +0 -1
- package/dist/assets/network-observer.service-HeuDmPJy.js +0 -1
- package/dist/assets/three-authoring.service-Cns4jd_9.js +0 -2
- package/dist/assets/three-integration.service-CLAsbasx.js +0 -1
- package/dist/assets/transport.header-CHCQGfOl.js +0 -1
- package/dist/assets/worker-Gb6BRf7P.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const w="/work/.volter-session",ke=`${w}/session.py`,Ae=[`${w}/in`,`${w}/reply`],D="/__editor/blender-wasm";function Oe(e){return e.startsWith("@@VOLTER-ERROR")?"error":e.startsWith("@@VOLTER-WARN")?"warn":"log"}function Q(e){return new URL(`${D}/${e}`,import.meta.url).href}async function Y(){const e=await fetch(Q("status"));return e.ok?await e.json():{available:!1,skew:null,dir:null,sizes:{},encoded:{},missing:[`${D}/status answered ${e.status}`]}}async function Z(e){const t=await Y();if(!t.available)throw new Error(`The headless Blender WebAssembly build is not served by this editor: ${t.missing.join("; ")}`);if(t.skew==="wali"){const{startWaliBlenderEngine:r}=await import("./blender-wali-engine-DRlkIoxZ.js");return r(e,t)}const{startEmscriptenBlenderEngine:n}=await import("./blender-emscripten-engine-DrQ7iKAw.js");return n(e,t)}function q(e){return e<200?1:e<5e3?5:25}const ee=e=>new Promise(t=>setTimeout(t,e)),M=new TextDecoder;function ve(e,t,n){let r=0,s=0;const o=new Set;async function a(d){for(const l of o)d.has(`${l}.done`)||(await e.unlink(`${w}/reply/${l}.json`),await e.unlink(`${w}/reply/${l}.done`),o.delete(l))}async function i(){let d;try{d=await e.readdir(`${w}/ask`)}catch{return}const l=new Set(d.filter(h=>h.endsWith(".done")));await a(l);for(const h of l){const f=h.slice(0,-5);if(Number(f)<=s)continue;s=Number(f);const p=JSON.parse(M.decode(await e.readFile(`${w}/ask/${f}.json`)));let u;try{u=await t.ask(p)}catch(y){u={error:y instanceof Error?y.message:String(y)}}await Promise.all([e.writeFile(`${w}/reply/${f}.json`,JSON.stringify(u??null)),e.writeFile(`${w}/reply/${f}.done`,"1")]),o.add(f)}}async function c(d){const l=String(++r);await Promise.all([e.writeFile(`${w}/in/${l}.json`,JSON.stringify(d)),e.writeFile(`${w}/in/${l}.done`,"1")]);const h=performance.now();for(;;){if(await i(),await e.stat(`${w}/out/${l}.done`)){const u=JSON.parse(M.decode(await e.readFile(`${w}/out/${l}.json`)));if(await e.unlink(`${w}/in/${l}.json`),await e.unlink(`${w}/in/${l}.done`),u.error)throw new Error(u.error);return u.result}const f=n?.();if(f)throw new Error(`Blender is gone, so this call will never be answered: ${f}. The session keeps its directory and its cached banner, so every later call would wait on the same missing answer; start a new program with \`blender-start {fresh: true}\` (\`VOLTER_BLENDER_FRESH_SESSION=1\` for the battery harness).`);const p=q(performance.now()-h);await(e.changed?e.changed(p):ee(p))}}return{request:c}}const te=256*1024,ne=4*1024*1024,re=(1<<20)-1,oe=(()=>{const e=new Uint32Array(256);let t=2654435769;for(let n=0;n<256;n+=1)t^=t<<13,t^=t>>>17,t^=t<<5,e[n]=t>>>0;return e})();function se(e){const t=[];let n=0;for(;n<e.length;){const r=Math.min(e.length,n+ne);let s=r,o=0;for(let a=n+Math.min(te,r-n);a<r;a+=1)if(o=(o<<1)+oe[e[a]]>>>0,(o&re)===0){s=a+1;break}t.push(s),n=s}return t}async function ae(e){const t=[];let n=0;for(const r of se(e)){const s=new Uint8Array(await crypto.subtle.digest("SHA-256",e.slice(n,r)));t.push({hash:Array.from(s,o=>o.toString(16).padStart(2,"0")).join(""),start:n,end:r}),n=r}return t}const O=e=>typeof e=="object"&&e!==null&&typeof e.offset=="number"&&typeof e.length=="number"&&typeof e.dtype=="string"&&typeof e.count=="number"&&typeof e.stride=="number",ie={f32:e=>new Float32Array(e.buffer,e.byteOffset,e.byteLength>>2),f64:e=>new Float64Array(e.buffer,e.byteOffset,e.byteLength>>3),u32:e=>new Uint32Array(e.buffer,e.byteOffset,e.byteLength>>2),i32:e=>new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),u16:e=>new Uint16Array(e.buffer,e.byteOffset,e.byteLength>>1),i16:e=>new Int16Array(e.buffer,e.byteOffset,e.byteLength>>1),u8:e=>e,i8:e=>new Int8Array(e.buffer,e.byteOffset,e.byteLength)};function ce(e,t,n){const r=ie[n.dtype];if(!r)throw new Error(`Blender frame column ${t}: unknown dtype ${n.dtype}`);const{offset:s,length:o}=n;if(s<0||o<0||s+o>e.byteLength)throw new Error(`Blender frame column ${t}: bytes ${s}..${s+o} lie outside the ${e.byteLength}-byte export arena`);const a=e.subarray(s,s+o).slice(),i=r(a),c=n.count*n.stride;if(i.length!==c)throw new Error(`Blender frame column ${t}: ${i.length} values, ${c} declared (${n.count} x ${n.stride})`);return i}function T(e,t){const n=(r,s)=>{if(O(r)){const o=ce(e,s,r);return s==="co"?Float64Array.from(o):o}if(Array.isArray(r))return r.map(o=>n(o,s));if(typeof r=="object"&&r!==null){const o={};for(const[a,i]of Object.entries(r))o[a]=n(i,a);return o}return r};return n(t,"")}async function B(e,t){const n=async(r,s)=>{if(O(r)){const{offset:o,length:a,dtype:i}=r;if(o<0||a<0||o+a>e.byteLength)throw new Error(`Blender frame column ${s}: bytes ${o}..${o+a} lie outside the ${e.byteLength}-byte export arena`);const c=e.subarray(o,o+a).slice(),d=await crypto.subtle.digest("SHA-256",c),l=[...new Uint8Array(d)].map(h=>h.toString(16).padStart(2,"0")).join("");return{dtype:i,length:a,sha256:l}}if(Array.isArray(r))return Promise.all(r.map(o=>n(o,s)));if(typeof r=="object"&&r!==null){const o={};for(const[a,i]of Object.entries(r))o[a]=await n(i,a);return o}return r};return n(t,"")}const E=e=>self.postMessage(e),N=(e,t)=>E({op:"log",level:e,text:t});let $=null,P=null,le=0;const x=new Map;function de(e,t,n){const r=++le,s=[],o=e;for(const a of[o?.meshes??{},o?.images??{}])for(const i of Object.values(a))for(const c of Object.values(i))ArrayBuffer.isView(c)&&c.buffer instanceof ArrayBuffer&&!s.includes(c.buffer)&&s.push(c.buffer);return new Promise((a,i)=>{x.set(r,{resolve:a,reject:i}),self.postMessage({op:"present",id:r,frame:e,description:t,...n?{capture:n}:{}},s)})}let m=null,A=null,_=!1,F=Promise.resolve();function fe(e){const t=F.then(e);return F=t.catch(()=>{}),t}let g=null;async function ue(e,t){const n=new Map,r=async(s,o)=>{if(O(s)){n.set(s.offset,{typed:T(e,{[o]:s})[o],description:await B(e,s)});return}if(Array.isArray(s))for(const a of s)await r(a,o);else if(typeof s=="object"&&s!==null)for(const[a,i]of Object.entries(s))await r(i,a)};return await r(t,""),n}function he(e,t){const n=r=>{const s=(o,a)=>{if(O(o)){const c=e.columns.get(o.offset);if(!c)throw new Error(`Blender frame column ${a.join(".")}: not in the held frame`);return c[r]}if(Array.isArray(o))return o.map(c=>s(c,a));if(typeof o!="object"||o===null)return o;if(o.deferred===!0){const[c,d]=a.slice(-2),l=(c==="meshes"?e.meshes:e.images).get(d);if(!l)throw new Error(`Blender frame ${c} ${d}: deferred and never pulled`);return l[r]}const i={};for(const[c,d]of Object.entries(o))i[c]=s(d,[...a,c]);return i};return s(t,[])};return{typed:n("typed"),description:n("description")}}function J(e){_=e,E({op:"document-dirty",dirty:e})}async function W(){if(!m||A===null)return;const e=A,t={};let n=performance.now();const r=i=>{const c=performance.now();t[i]=Math.round(c-n),n=c};let s;try{s=await m.request({op:"save-document"}),r("save")}catch(i){throw new Error(`The Blender document ${e} could not be saved: ${j(i)}`)}if(!s?.saved||typeof s.path!="string")throw new Error(`Blender did not save the document ${e}`);let o;try{o=await m.files.readFile(s.path),r("read")}catch(i){throw new Error(`The Blender document ${e} could not be read back out of the engine: ${j(i)}`)}b.delete(s.path);let a=0;try{const i=await ae(o);r("chunk");const c=`path=${encodeURIComponent(e)}`,d=JSON.stringify({chunks:i.map(({hash:l,start:h,end:f})=>[l,f-h])});for(let l=0;;l+=1){const h=await fetch(`/__editor/blender-document?${c}`,{method:"POST",headers:{"content-type":"application/json"},body:d}),f=await h.json().catch(()=>null);if(r(`manifest${l}`),!h.ok)throw new Error(`HTTP ${h.status} ${f?.error??""}`);if(f?.ok){for(const[u,y]of Object.entries(f.ms??{}))t[`server.${u}`]=y;break}if(l===2||!Array.isArray(f?.missing))throw new Error(`the server still lacks ${f?.missing?.length??"?"} chunks`);const p=new Set(f.missing);for(const u of i){if(!p.delete(u.hash))continue;const y=await fetch(`/__editor/blender-document-chunk?${c}&hash=${u.hash}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o.subarray(u.start,u.end)])});if(!y.ok)throw new Error(`HTTP ${y.status} ${await y.text().catch(()=>"")}`);a+=u.end-u.start}r(`send${l}`)}}catch(i){throw new Error(`The Blender document ${e} was not written to the project: ${j(i)}`)}J(!1),N("log",`@@VOLTER-DOCUMENT ${JSON.stringify({path:e,bytes:o.length,sent:a,ms:t})}`)}async function we(e,t){const n={engine:null},r=await Z({project:e,log:N,ask:async({frame:o,hold:a,mesh:i,image:c,piece:d,present:l,capture:h,saveDue:f})=>{if(!n.engine)throw new Error("The Blender session presented before it started");f&&A!==null&&J(!0);const p=await n.engine.readArena();if(a!==void 0)return g={columns:await ue(p,a),meshes:new Map,images:new Map},{};if(i!==void 0||c!==void 0){if(!g)throw new Error(`The Blender session sent ${i??c} before its frame`);const L=d?.encodedPath;let k;if(c!==void 0&&typeof L=="string"){const{encodedPath:je,...I}=d,v=(await n.engine.files.readFile(L)).slice(),K=new Uint8Array(await crypto.subtle.digest("SHA-256",v)),G=Array.from(K,X=>X.toString(16).padStart(2,"0")).join("");k={typed:{...I,encoded:v},description:{...I,encoded:{dtype:"u8",length:v.length,sha256:G}}}}else k={typed:T(p,d),description:await B(p,d)};return i!==void 0?g.meshes.set(i,k):g.images.set(c,k),{}}let u,y;if(l){if(!g)throw new Error("The Blender session presented a frame it never sent");({typed:u,description:y}=he(g,o)),g=null}else u=T(p,o),y=await B(p,o);const S=await de(u,y,h);return{...typeof S.capture=="object"&&S.capture!==null?S.capture:{},..."held"in S?{held:S.held}:{}}}});n.engine=r,m=r,t&&await H(r.files,e);const s=await r.request({op:"start",project:e,...t?{document:t}:{}});return t&&(A=t),$={start:async()=>s,execute:async o=>{const a=await r.request({op:"execute",code:o});return a.error?`Error executing code: ${a.error}`:`Code executed successfully: ${a.result}`},sceneInfo:async()=>JSON.stringify(await r.request({op:"scene-info"}),null,2),objectInfo:async o=>JSON.stringify(await r.request({op:"object-info",name:o}),null,2),screenshotView:async o=>(await r.request({op:"present",capture:{size:o}}),JSON.stringify({view:{size:o}}))},{...s,engine:"blender-wasm",skew:r.skew,bootMs:Math.round(r.bootMs),releasedPayloadMB:r.releasedPayloadBytes===null?null:Math.round(r.releasedPayloadBytes/1048576)}}async function ye(){try{const e=await fetch("/__editor/blender-wasm/status");return e.ok?await e.json():{available:!1,missing:[`status answered ${e.status}`]}}catch(e){return{available:!1,missing:[String(e)]}}}async function pe(e,t){if($)throw new Error("The Blender session is already started");if(!e.startsWith("/"))throw new Error("The Blender session needs the project's absolute path");if(t!==void 0&&!me(t))throw new Error(`The Blender document must be a project-relative .blend path with no traversal (models/model.blend); got ${JSON.stringify(t)}`);const n=await ye();if(!n.available)throw new Error(`Headless Blender is not served by this editor, so there is no modeling engine: ${n.missing.join("; ")}. The engine is Blender compiled to WebAssembly (packages/blender-engine/wasm, or the directory VOLTER_BLENDER_WASM_DIR names); nothing stands in for it.`);return P=e,we(e,t)}function me(e){return!e.endsWith(".blend")||e.startsWith("/")||e.includes("\\")?!1:e.split("/").every(n=>n!==""&&n!=="."&&n!=="..")}const U=new Set;function R(e){U.has(e)||(U.add(e),N("error",e))}async function be(e){const t=a=>(R(`The project's files are not readable from Python: ${a}`),null);let n;try{n=await fetch("/__editor/blender-project-index")}catch(a){return t(String(a))}if(!n.ok)return t(`/__editor/blender-project-index answered ${n.status}`);let r;try{if(r=await n.json(),typeof r?.root!="string"||!Array.isArray(r.files))return t("invalid project index")}catch(a){return t(String(a))}const{root:s,files:o}=r;return s!==e&&R(`The editor serving this tab has ${s} open, not ${e}; its files are mounted at ${e}, which is where Python is looking.`),o}const b=new Map;async function ge(e,t){const n=await e.stat(t);return n?`${n.size}:${n.mtimeMs}`:""}async function H(e,t){const n=await be(t);if(!n)return;const r=new Set(n.map(s=>`${t}/${s.path}`));for(const s of[...b.keys()])if(!r.has(s)){try{await e.unlink(s)}catch{}b.delete(s)}for(const s of n){const o=`${t}/${s.path}`,a=`${s.size}:${s.mtime}`;if(b.get(o)?.host===a||!b.has(o)&&await e.stat(o)!==null)continue;const i=await fetch(`/__editor/blender-project-file?path=${encodeURIComponent(s.path)}`);if(!i.ok){R(`${s.path}: HTTP ${i.status}`);continue}const c=o.slice(0,o.lastIndexOf("/"));c&&await e.mkdirTree(c),await e.writeFile(o,new Uint8Array(await i.arrayBuffer())),b.set(o,{host:a,engine:await ge(e,o)})}}async function $e(e,t){const n=[],r=async s=>{let o;try{o=await e.readdir(s)}catch{return}for(const a of o){if(a==="."||a==="..")continue;const i=`${s.replace(/\/$/,"")}/${a}`,c=await e.stat(i);if(c){if((c.mode&61440)===16384){await r(i);continue}b.get(i)?.engine!==`${c.size}:${c.mtimeMs}`&&n.push({path:i,size:c.size,mtime:c.mtimeMs})}}};return await r(t),n}async function z(e){switch(e.op){case"start":return pe(e.project,e.document);case"present-result":{const r=x.get(e.id);x.delete(e.id),r&&(e.error?r.reject(new Error(e.error)):r.resolve({...e.capture===void 0?{}:{capture:e.capture},..."held"in e?{held:e.held}:{}}));return}}if(!$||!P||!m)throw new Error("The Blender session has not started");const t=m.files,n=m.request.bind(m);switch(e.op){case"flush-document":return _?(await W(),{saved:!0}):{saved:!1};case"history-begin":case"history-end":return n({op:e.op});case"history-step":return n({op:"history-step",token:e.token,direction:e.direction});case"execute":await H(t,P);{const r=await n({op:"execute",code:e.code,history:e.history??!0,label:e.label??"Blender Python"});return r.error?`Error executing code: ${r.error}`:`Code executed successfully: ${r.result}`}case"present":return n({op:"present"});case"scene-info":return $.sceneInfo();case"object-info":return $.objectInfo(e.name);case"rna":return n({op:"rna",path:e.path,...e.names===void 0?{}:{names:e.names}});case"rna-context":return n({op:"rna-context",...e.object===void 0?{}:{object:e.object},...e.collection===void 0?{}:{collection:e.collection}});case"view-shading":return n({op:"view-shading",shading:e.shading});case"rna-set":return n({op:"rna-set",history:e.history!==!1,path:e.path,property:e.property,value:e.value,...e.index===void 0?{}:{index:e.index}});case"outliner":return n({op:"outliner",...e.selected===void 0?{}:{selected:[...e.selected]}});case"node-tree":return n({op:"node-tree",...e.path===void 0?{}:{path:e.path},...e.material===void 0?{}:{material:e.material}});case"uv-layout":return n({op:"uv-layout",...e.object===void 0?{}:{object:e.object},...e.uvLayer===void 0?{}:{uvLayer:e.uvLayer}});case"rig":return n({op:"rig",...e.object===void 0?{}:{object:e.object}});case"action-clip":return n({op:"action-clip",...e.object===void 0?{}:{object:e.object},...e.bake===void 0?{}:{bake:e.bake}});case"outliner-set":return n({op:"outliner-set",path:e.path,column:e.column,value:e.value});case"screenshot-view":return JSON.parse(await $.screenshotView(e.maxSize));case"read-file":return t.readFile(e.path);case"write-file":{const r=e.path.slice(0,e.path.lastIndexOf("/"));r&&await t.mkdirTree(r),await t.writeFile(e.path,e.bytes),b.delete(e.path);return}case"list-files":return $e(t,e.path)}throw new Error(`Unknown Blender worker request ${e.op}`)}function j(e){if(e instanceof Error)return e.stack??`${e.name}: ${e.message}`;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return typeof t.name=="string"?`${t.name}: ${t.message}`:t.message;try{return JSON.stringify(e)??Object.prototype.toString.call(e)}catch{return Object.prototype.toString.call(e)}}return String(e)}function V(){if(!m)return;const e=m.memoryBytes();e!==null&&E({op:"memory",bytes:e})}self.addEventListener("error",V);self.onmessage=e=>{const t=e.data;if(t.op==="present-result"){z(t);return}fe(()=>Ee(t))};async function Ee(e){try{const t=await z(e);_&&await W(),await C(),E({id:e.id,result:t})}catch(t){let n=j(t);try{await C()}catch(r){n+=`
|
|
2
|
+
Unable to deliver Blender history: ${j(r)}`}E({id:e.id,error:n})}V()}async function C(){if(!m||!$)return;const e=await m.request({op:"history-events"});e.length&&E({op:"history",entries:e})}export{D as A,Ae as P,w as S,Q as a,ke as b,Oe as c,ve as o,ee as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ty as n,tz as l,tA as a,tB as _,tC as i,tD as s,tE as d,tF as u,tG as c,tH as b,tI as p}from"./index-
|
|
1
|
+
import{ty as n,tz as l,tA as a,tB as _,tC as i,tD as s,tE as d,tF as u,tG as c,tH as b,tI as p}from"./index-BYdQuKKk.js";const f=Object.freeze(Object.defineProperty({__proto__:null,EDITOR_VIEW_BUILT_IN_UTILITY_IDS:n,EDITOR_VIEW_DOCUMENT_KINDS:l,EDITOR_VIEW_KEYS:a,EDITOR_VIEW_TOOL_UTILITY_PREFIX:_,EDITOR_VIEW_WORKSPACE_DOCUMENT_IDS:i,EditorClient:s,EditorCommandError:d,editorViewFromUrl:u,editorViewUrl:c,isEditorViewDocumentKind:b,isEditorViewUtility:p},Symbol.toStringTag,{value:"Module"})),o={editorHelperType:"editorHelperType",skeletonVisible:"skeletonVisible",skeletonEnabled:"skeletonEnabled",engineInternal:"engineInternal",editorHelper:"editorHelper",volterComponentRoot:"volterComponentRoot",volterBuiltInternal:"volterBuiltInternal"};function y(e,t){return e?e.userData[o[t]]:void 0}function g(e,t,r){e.userData[o[t]]=r}const S=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),j=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),T=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),m=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),I=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),E=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),M=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),v=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),P=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),z=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),D=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),R=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),C=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));export{o as O,m as a,P as b,E as c,S as d,j as e,T as f,y as g,I as h,f as i,z as j,D as k,M as p,v as r,g as s,R as t,C as w};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as c}from"./jsx-runtime-DPjLkJKQ.js";import{dB as W,dC as K,e4 as j,fo as H,aK as E,f_ as $,f$ as Y,d3 as A,g0 as q,d4 as M,eF as N,dK as Q,y as J,g1 as Z,aQ as ee,g2 as te,g3 as oe,g4 as ne,g5 as re,g6 as se,g7 as ae,fX as ie,d6 as ce,g8 as le,aD as de,g9 as P,ga as ue,dI as pe}from"./index-FuK_gLVP.js";import{r as p}from"./index-nmcBqr7Y.js";import{d as fe,m as me}from"./design-time-layers-BYVCDUHn.js";import{I as be,B as xe}from"./edit-mode-authoring-BfHszfD3.js";import{b as he,i as ge}from"./react-canvas-navigation-CKXOs-Wq.js";import{R as z,i as ve}from"./react-story-board-DP8miK58.js";import{s as ye,c as we,a as Se,b as ke}from"./component-board-registry-DrIa2csL.js";import{e as Re,S as Ie}from"./surface-state-BfErS6v0.js";import"./index-CtzuWnCS.js";import{c as Ce,d as Ee,r as F,e as G,f as Ae,m as O,b as De,a as je,s as Be}from"./board-guides-D-8XTzQj.js";import{C as V,a as $e,b as Me}from"./CanvasSceneViewport-PImZsSzn.js";import{R as _e}from"./ReactCanvasControls-C6miAF3y.js";import{R as ze}from"./RootSelectionOverlay-Cj_42uH4.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"./root-stacking-BEd9ZvxC.js";import"./design-time-mount-registry-DUpXCg1U.js";import"./game-surface-defaults-D8S4cRxi.js";import"./Toolbar-BOhrx3BY.js";import"./transform-mode-request-B6ZoHm8Z.js";import"./TransientHint-BzXrECrw.js";import"./layered-pick-CmpZSo8j.js";import"./eyedropper-session-bjPXnfeX.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./inspect-G9yzBKkf.js";import"./inference-diagnostics-D771II31.js";const y=16,_="rgba(255, 82, 82, 0.9)",U="rgba(18, 22, 26, 0.92)",D="rgba(255, 255, 255, 0.28)";function Te(s){return[10,25,50,100,250,500,1e3,2500,5e3].find(n=>n*s>=60)??1e4}function L(s){return Math.abs(s)>=1e3?`${s/1e3}k`:String(s)}function Ne({docId:s,containerRef:l}){const n=p.useSyncExternalStore(W,K),x=p.useSyncExternalStore(Ce,()=>Ee(s)),[r,d]=p.useState(null),v=p.useRef(null);p.useEffect(()=>{const t=l.current;if(!t)return;const o=t.getBoundingClientRect();return F(s,{originX:o.left,originY:o.top,panX:n.x,panY:n.y,zoom:n.zoom}),()=>F(s,null)},[s,l,n.x,n.y,n.zoom]);const f=(t,o)=>Math.round((t-(o==="x"?n.x:n.y))/n.zoom),u=(t,o)=>(o==="x"?n.x:n.y)+t*n.zoom,m=t=>{const o=l.current?.getBoundingClientRect();return o?{x:t.clientX-o.left,y:t.clientY-o.top}:{x:0,y:0}},k=t=>o=>{o.preventDefault(),o.currentTarget.setPointerCapture(o.pointerId);const e=m(o);d({kind:"place",axis:t,id:null,at:t==="x"?e.x:e.y})},S=t=>o=>{o.preventDefault(),o.stopPropagation(),o.currentTarget.setPointerCapture(o.pointerId);const e=m(o);d({kind:"move",axis:t.axis,id:t.id,at:t.axis==="x"?e.x:e.y})},R=t=>{if(!r)return;const o=m(t),e=r.axis==="x"?o.x:o.y;d({...r,at:e}),r.kind==="move"&&r.id&&O(s,r.id,f(e,r.axis))},I=t=>{if(!r)return;const o=m(t),e=r.axis==="x"?o.x:o.y,i=e<=y;r.kind==="place"?i||Ae(s,r.axis,f(e,r.axis)):r.id&&(i?G(s,r.id):O(s,r.id,f(e,r.axis))),d(null)},a=t=>{const o=l.current,e=o?t==="x"?o.clientWidth:o.clientHeight:0,i=Te(n.zoom),g=Math.ceil(f(y,t)/i)*i,w=f(e,t),b=[];for(let C=g;C<=w&&b.length<200;C+=i)b.push(C);return b},h={position:"absolute",background:U,zIndex:61,userSelect:"none",touchAction:"none",overflow:"hidden"};return c.jsxs("div",{ref:v,"data-testid":"board-rulers",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:60},onPointerMove:R,onPointerUp:I,children:[x.map(t=>{const o=u(t.value,t.axis),e=t.axis==="x";return c.jsx("div",{"data-testid":`board-guide-${t.axis}-${t.value}`,title:`${t.axis} = ${t.value} — drag to move, drop on the ruler or double-click to remove`,onPointerDown:S(t),onPointerMove:R,onPointerUp:I,onDoubleClick:()=>G(s,t.id),style:{position:"absolute",pointerEvents:"auto",cursor:e?"col-resize":"row-resize",zIndex:60,...e?{left:o-2,top:0,bottom:0,width:5}:{top:o-2,left:0,right:0,height:5}},children:c.jsx("div",{style:{position:"absolute",background:_,...e?{left:2,top:0,bottom:0,width:1}:{top:2,left:0,right:0,height:1}}})},t.id)}),r&&c.jsx("div",{style:{position:"absolute",background:_,zIndex:62,...r.axis==="x"?{left:r.at,top:0,bottom:0,width:1}:{top:r.at,left:0,right:0,height:1}},children:c.jsx("span",{style:{position:"absolute",...r.axis==="x"?{top:y+4,left:4}:{left:y+4,top:4},fontSize:9,fontFamily:"ui-monospace, monospace",color:_,background:U,padding:"1px 3px",borderRadius:3,whiteSpace:"nowrap"},children:f(r.at,r.axis)})}),c.jsx("div",{"data-testid":"board-ruler-top",onPointerDown:k("y"),style:{...h,top:0,left:y,right:0,height:y,cursor:"row-resize",pointerEvents:"auto"},children:a("x").map(t=>c.jsx("span",{style:{position:"absolute",left:u(t,"x"),bottom:0,borderLeft:`1px solid ${D}`,height:5},children:c.jsx("span",{style:{position:"absolute",left:2,bottom:3,fontSize:8,color:D,fontFamily:"ui-monospace, monospace"},children:L(t)})},t))}),c.jsx("div",{"data-testid":"board-ruler-left",onPointerDown:k("x"),style:{...h,top:y,left:0,bottom:0,width:y,cursor:"col-resize",pointerEvents:"auto"},children:a("y").map(t=>c.jsx("span",{style:{position:"absolute",top:u(t,"y"),right:0,borderTop:`1px solid ${D}`,width:5},children:c.jsx("span",{style:{position:"absolute",top:1,right:3,fontSize:8,color:D,fontFamily:"ui-monospace, monospace",writingMode:"vertical-rl"},children:L(t)})},t))}),c.jsx(Pe,{}),c.jsx("div",{style:{...h,top:0,left:0,width:y,height:y,borderRight:`1px solid ${j.border}`,borderBottom:`1px solid ${j.border}`}})]})}function Pe(){const s=p.useSyncExternalStore(De,je);return s?c.jsxs("button",{type:"button","data-testid":"board-breakpoint-pill",title:"Style edits are scoped to this breakpoint — click to return to Base",onClick:()=>Be(null),style:{position:"absolute",top:y+8,right:12,zIndex:62,pointerEvents:"auto",background:"rgba(18, 22, 26, 0.92)",color:j.accent,border:`1px solid ${j.accent}`,borderRadius:999,fontSize:10,padding:"3px 10px",cursor:"pointer"},children:["@ ",s," · editing this breakpoint — click to clear"]}):null}const Fe="Scene";function Ge({active:s,composite:l,descriptor:n,documentId:x,store:r}){const d=p.useRef(null),v=p.useRef(null),[f]=p.useState(oe),u=n.kind==="canvas",m=u?f:ce;p.useSyncExternalStore(r.subscribe,r.getSnapshot);const k=p.useSyncExternalStore(ne,re),S=p.useSyncExternalStore(se,ae),[R,I]=p.useState(null),a=l.childAdapters().find(b=>b.worldId===n.worldId)?.adapter??R??void 0,h=u&&a?.provenance?.label==="babylon",t=a?.hierarchy.roots()??[],o=new Set(a?.rects?.emptyContainers?.().map(b=>b.id)??[]),e=t.some(b=>!o.has(b.id)),i=Re({surface:u?"Scene":n.kind==="dom"?"UI":"World",rootIds:[n.worldId],playSuspended:r.playState!=="stopped"&&(!a||a.provenance?.source==="boundary"),phase:!a||a.provenance?.source==="boundary"?"loading":"ready",content:!a||a.provenance?.source==="boundary"?"unknown":e?"present":"empty",readiness:k,failures:S,disclosure:a instanceof xe?a.disclosure:null});p.useEffect(()=>{if(a)return ie(x,()=>({adapter:a,nodeId:[...r.selectedEntityIds].find(b=>a.hierarchy.node(b))??null}))},[l,a,x,r]),p.useEffect(()=>{const b=d.current;if(b&&!h)return u?he(b,m):ge(b,m)},[m,h,u]),p.useEffect(()=>{if(!s)return;if(!!!v.current&&d.current){v.current=me(d.current,l,r,[n],(Ve,X)=>I(X),u?{canvasSceneView:f}:void 0,x);return}let C=0,B=0;const T=()=>{if(C+=1,C<2){B=requestAnimationFrame(T);return}pe(x)};return B=requestAnimationFrame(T),()=>cancelAnimationFrame(B)},[s,f,l,n,x,u,r]),p.useEffect(()=>()=>{v.current?.(),v.current=null},[]);const g=le(de(r),r.selectedEntityIds),w=g?.worldId===n.worldId?g:a?.rects?{worldId:n.worldId,kind:"dom",adapter:a}:null;return c.jsxs("div",{ref:d,"data-testid":`world-document:${n.worldId}`,"data-volter-backdrop-color":s?h?"#111827":u?V:z:void 0,"data-volter-backdrop-policy":s?"dark-frost":void 0,onPointerDown:()=>ue("viewport"),style:{position:"absolute",inset:0,overflow:"hidden",pointerEvents:"auto",backgroundColor:h?"#111827":u?V:z,touchAction:"none"},children:[h?null:u?c.jsx($e,{view:f,documentId:x}):c.jsx(Oe,{}),c.jsx(ze,{...a?{adapter:a}:{},...u&&!h?{view:f,transformModeAware:!0,presentationId:x}:{}},`selection:${P(a)}`),c.jsx(Ie,{explanation:i,testId:`world-surface-status:${n.worldId}`,style:{zIndex:20}}),h?null:u?c.jsx(Me,{active:s,...a?{adapter:a}:{},containerRef:d,view:f,documentId:x},`controls:${P(a)}`):c.jsxs(c.Fragment,{children:[c.jsx(Ne,{docId:n.worldId,containerRef:d}),c.jsx(_e,{containerRef:d,context:w})]})]})}function Oe(){const s=p.useSyncExternalStore(W,K),l=Math.max(8,24*s.zoom),n=Math.max(.7,Math.min(1.4,s.zoom));return c.jsx("div",{"data-testid":"react-design-canvas-backdrop","aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundColor:z,backgroundImage:`radial-gradient(circle, ${ve} ${n}px, transparent ${n}px)`,backgroundPosition:`${s.x}px ${s.y}px`,backgroundSize:`${l}px ${l}px`}})}function vt(s,l){const n=J(),x=l.childAdapters().some(e=>e.role==="world"&&e.kind==="three"),r=l.childAdapters().some(e=>e.kind===be);!x&&!r&&H(E,{discardDirty:!0});const d=new Set,v=[];let f=!1;for(const e of l.childAdapters())e.role==="world"&&e.kind==="three"&&v.push($(e.worldId,E));const u=fe(l),m=u.find(e=>e.kind==="canvas");m&&v.push($(m.worldId,A));const k=new Set([...l.childAdapters().filter(e=>e.role==="world"&&e.kind==="three"),...m?[m]:[]].map(e=>e.worldId)),S=new Map;function R(){for(const e of u){if(k.has(e.worldId)||S.has(e.worldId))continue;const i=Se(e.kind);if(!i)continue;const g=$(e.worldId,i.documentId),w=Z(e.worldId,()=>i.presence()==="absent"?`Root "${e.worldId}" has no document of its own: its design surface is the project's ${i.title} board (${i.documentId}). ${i.absentReason()}`:null);S.set(e.worldId,()=>{w(),g()})}}v.push(Y(e=>{const i=ee();if(i.some(w=>w.descriptor.id===e))return null;const g=ke(e);return g?g.presence()==="absent"?g.absentReason():null:`No workspace document is named "${e}". Open in this session: ${i.map(w=>w.descriptor.id).join(", ")||"(none)"}. A component board is present only when the package that owns its medium says this project has one, so a board id can be absent for this project and present for another.`}));function I(e){const i=g=>c.jsx(Ge,{...g,composite:l,descriptor:e,store:s});Q({id:A,title:Fe,kind:"world",workspaceRole:"authored-subject",provenance:{rootId:e.worldId,...e.path?{sourcePath:e.path}:{}},Content:i,presentation:()=>({kind:"world",id:e.worldId})},{category:"scene",default:!x,rootId:e.worldId})}function a(e){d.add(e.documentId);const i=()=>{d.delete(e.documentId)};try{Promise.resolve(e.install({store:s,composite:l})).catch(i)}catch{i()}}function h(){if(!f){R();for(const e of we()){const i=e.presence();if(i===null)continue;const g=d.has(e.documentId);i==="present"!==g&&(i==="present"?a(e):(N(e.documentId),d.delete(e.documentId)))}}}m&&(I(m),d.add(A)),h();const t=ye(h),o=m?A:[...d][0];return te()||(!x&&o!==void 0&&(n===null||n===E||n===q)?M(o):n?M(n):x&&M(E)),()=>{f=!0,t();for(const e of v)e();for(const e of S.values())e();S.clear();for(const e of d)N(e)}}export{Ge as RootDocumentContent,vt as installRootDocuments};
|
|
1
|
+
import{a as c}from"./jsx-runtime-DPjLkJKQ.js";import{dB as W,dC as K,e4 as j,fo as H,aK as E,f_ as $,f$ as Y,d3 as A,g0 as q,d4 as M,eF as N,dK as Q,y as J,g1 as Z,aQ as ee,g2 as te,g3 as oe,g4 as ne,g5 as re,g6 as se,g7 as ae,fX as ie,d6 as ce,g8 as le,aD as de,g9 as P,ga as ue,dI as pe}from"./index-BYdQuKKk.js";import{r as p}from"./index-nmcBqr7Y.js";import{d as fe,m as me}from"./design-time-layers-Cqjx6T_b.js";import{I as be,B as xe}from"./edit-mode-authoring-DsZ-2V4q.js";import{b as he,i as ge}from"./react-canvas-navigation-CcPcwMkG.js";import{R as z,i as ve}from"./react-story-board-JyxJfFaY.js";import{s as ye,c as we,a as Se,b as ke}from"./component-board-registry-DrIa2csL.js";import{e as Re,S as Ie}from"./surface-state-D9U0kgz0.js";import"./index-CtzuWnCS.js";import{c as Ce,d as Ee,r as F,e as G,f as Ae,m as O,b as De,a as je,s as Be}from"./board-guides-siB7DLLo.js";import{C as V,a as $e,b as Me}from"./CanvasSceneViewport-GPeqRbJF.js";import{R as _e}from"./ReactCanvasControls-BZIKnBe_.js";import{R as ze}from"./RootSelectionOverlay-DbREUgIb.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"./root-stacking-BEd9ZvxC.js";import"./design-time-mount-registry-DUpXCg1U.js";import"./game-surface-defaults-D8S4cRxi.js";import"./Toolbar-BthqVrvk.js";import"./transform-mode-request-D9k3BUHW.js";import"./TransientHint-BfLO2bn2.js";import"./layered-pick-C73ZQGcv.js";import"./eyedropper-session-bjPXnfeX.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./inspect-CazPcKcv.js";import"./inference-diagnostics-DylK1Zco.js";const y=16,_="rgba(255, 82, 82, 0.9)",U="rgba(18, 22, 26, 0.92)",D="rgba(255, 255, 255, 0.28)";function Te(s){return[10,25,50,100,250,500,1e3,2500,5e3].find(n=>n*s>=60)??1e4}function L(s){return Math.abs(s)>=1e3?`${s/1e3}k`:String(s)}function Ne({docId:s,containerRef:l}){const n=p.useSyncExternalStore(W,K),x=p.useSyncExternalStore(Ce,()=>Ee(s)),[r,d]=p.useState(null),v=p.useRef(null);p.useEffect(()=>{const t=l.current;if(!t)return;const o=t.getBoundingClientRect();return F(s,{originX:o.left,originY:o.top,panX:n.x,panY:n.y,zoom:n.zoom}),()=>F(s,null)},[s,l,n.x,n.y,n.zoom]);const f=(t,o)=>Math.round((t-(o==="x"?n.x:n.y))/n.zoom),u=(t,o)=>(o==="x"?n.x:n.y)+t*n.zoom,m=t=>{const o=l.current?.getBoundingClientRect();return o?{x:t.clientX-o.left,y:t.clientY-o.top}:{x:0,y:0}},k=t=>o=>{o.preventDefault(),o.currentTarget.setPointerCapture(o.pointerId);const e=m(o);d({kind:"place",axis:t,id:null,at:t==="x"?e.x:e.y})},S=t=>o=>{o.preventDefault(),o.stopPropagation(),o.currentTarget.setPointerCapture(o.pointerId);const e=m(o);d({kind:"move",axis:t.axis,id:t.id,at:t.axis==="x"?e.x:e.y})},R=t=>{if(!r)return;const o=m(t),e=r.axis==="x"?o.x:o.y;d({...r,at:e}),r.kind==="move"&&r.id&&O(s,r.id,f(e,r.axis))},I=t=>{if(!r)return;const o=m(t),e=r.axis==="x"?o.x:o.y,i=e<=y;r.kind==="place"?i||Ae(s,r.axis,f(e,r.axis)):r.id&&(i?G(s,r.id):O(s,r.id,f(e,r.axis))),d(null)},a=t=>{const o=l.current,e=o?t==="x"?o.clientWidth:o.clientHeight:0,i=Te(n.zoom),g=Math.ceil(f(y,t)/i)*i,w=f(e,t),b=[];for(let C=g;C<=w&&b.length<200;C+=i)b.push(C);return b},h={position:"absolute",background:U,zIndex:61,userSelect:"none",touchAction:"none",overflow:"hidden"};return c.jsxs("div",{ref:v,"data-testid":"board-rulers",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:60},onPointerMove:R,onPointerUp:I,children:[x.map(t=>{const o=u(t.value,t.axis),e=t.axis==="x";return c.jsx("div",{"data-testid":`board-guide-${t.axis}-${t.value}`,title:`${t.axis} = ${t.value} — drag to move, drop on the ruler or double-click to remove`,onPointerDown:S(t),onPointerMove:R,onPointerUp:I,onDoubleClick:()=>G(s,t.id),style:{position:"absolute",pointerEvents:"auto",cursor:e?"col-resize":"row-resize",zIndex:60,...e?{left:o-2,top:0,bottom:0,width:5}:{top:o-2,left:0,right:0,height:5}},children:c.jsx("div",{style:{position:"absolute",background:_,...e?{left:2,top:0,bottom:0,width:1}:{top:2,left:0,right:0,height:1}}})},t.id)}),r&&c.jsx("div",{style:{position:"absolute",background:_,zIndex:62,...r.axis==="x"?{left:r.at,top:0,bottom:0,width:1}:{top:r.at,left:0,right:0,height:1}},children:c.jsx("span",{style:{position:"absolute",...r.axis==="x"?{top:y+4,left:4}:{left:y+4,top:4},fontSize:9,fontFamily:"ui-monospace, monospace",color:_,background:U,padding:"1px 3px",borderRadius:3,whiteSpace:"nowrap"},children:f(r.at,r.axis)})}),c.jsx("div",{"data-testid":"board-ruler-top",onPointerDown:k("y"),style:{...h,top:0,left:y,right:0,height:y,cursor:"row-resize",pointerEvents:"auto"},children:a("x").map(t=>c.jsx("span",{style:{position:"absolute",left:u(t,"x"),bottom:0,borderLeft:`1px solid ${D}`,height:5},children:c.jsx("span",{style:{position:"absolute",left:2,bottom:3,fontSize:8,color:D,fontFamily:"ui-monospace, monospace"},children:L(t)})},t))}),c.jsx("div",{"data-testid":"board-ruler-left",onPointerDown:k("x"),style:{...h,top:y,left:0,bottom:0,width:y,cursor:"col-resize",pointerEvents:"auto"},children:a("y").map(t=>c.jsx("span",{style:{position:"absolute",top:u(t,"y"),right:0,borderTop:`1px solid ${D}`,width:5},children:c.jsx("span",{style:{position:"absolute",top:1,right:3,fontSize:8,color:D,fontFamily:"ui-monospace, monospace",writingMode:"vertical-rl"},children:L(t)})},t))}),c.jsx(Pe,{}),c.jsx("div",{style:{...h,top:0,left:0,width:y,height:y,borderRight:`1px solid ${j.border}`,borderBottom:`1px solid ${j.border}`}})]})}function Pe(){const s=p.useSyncExternalStore(De,je);return s?c.jsxs("button",{type:"button","data-testid":"board-breakpoint-pill",title:"Style edits are scoped to this breakpoint — click to return to Base",onClick:()=>Be(null),style:{position:"absolute",top:y+8,right:12,zIndex:62,pointerEvents:"auto",background:"rgba(18, 22, 26, 0.92)",color:j.accent,border:`1px solid ${j.accent}`,borderRadius:999,fontSize:10,padding:"3px 10px",cursor:"pointer"},children:["@ ",s," · editing this breakpoint — click to clear"]}):null}const Fe="Scene";function Ge({active:s,composite:l,descriptor:n,documentId:x,store:r}){const d=p.useRef(null),v=p.useRef(null),[f]=p.useState(oe),u=n.kind==="canvas",m=u?f:ce;p.useSyncExternalStore(r.subscribe,r.getSnapshot);const k=p.useSyncExternalStore(ne,re),S=p.useSyncExternalStore(se,ae),[R,I]=p.useState(null),a=l.childAdapters().find(b=>b.worldId===n.worldId)?.adapter??R??void 0,h=u&&a?.provenance?.label==="babylon",t=a?.hierarchy.roots()??[],o=new Set(a?.rects?.emptyContainers?.().map(b=>b.id)??[]),e=t.some(b=>!o.has(b.id)),i=Re({surface:u?"Scene":n.kind==="dom"?"UI":"World",rootIds:[n.worldId],playSuspended:r.playState!=="stopped"&&(!a||a.provenance?.source==="boundary"),phase:!a||a.provenance?.source==="boundary"?"loading":"ready",content:!a||a.provenance?.source==="boundary"?"unknown":e?"present":"empty",readiness:k,failures:S,disclosure:a instanceof xe?a.disclosure:null});p.useEffect(()=>{if(a)return ie(x,()=>({adapter:a,nodeId:[...r.selectedEntityIds].find(b=>a.hierarchy.node(b))??null}))},[l,a,x,r]),p.useEffect(()=>{const b=d.current;if(b&&!h)return u?he(b,m):ge(b,m)},[m,h,u]),p.useEffect(()=>{if(!s)return;if(!!!v.current&&d.current){v.current=me(d.current,l,r,[n],(Ve,X)=>I(X),u?{canvasSceneView:f}:void 0,x);return}let C=0,B=0;const T=()=>{if(C+=1,C<2){B=requestAnimationFrame(T);return}pe(x)};return B=requestAnimationFrame(T),()=>cancelAnimationFrame(B)},[s,f,l,n,x,u,r]),p.useEffect(()=>()=>{v.current?.(),v.current=null},[]);const g=le(de(r),r.selectedEntityIds),w=g?.worldId===n.worldId?g:a?.rects?{worldId:n.worldId,kind:"dom",adapter:a}:null;return c.jsxs("div",{ref:d,"data-testid":`world-document:${n.worldId}`,"data-volter-backdrop-color":s?h?"#111827":u?V:z:void 0,"data-volter-backdrop-policy":s?"dark-frost":void 0,onPointerDown:()=>ue("viewport"),style:{position:"absolute",inset:0,overflow:"hidden",pointerEvents:"auto",backgroundColor:h?"#111827":u?V:z,touchAction:"none"},children:[h?null:u?c.jsx($e,{view:f,documentId:x}):c.jsx(Oe,{}),c.jsx(ze,{...a?{adapter:a}:{},...u&&!h?{view:f,transformModeAware:!0,presentationId:x}:{}},`selection:${P(a)}`),c.jsx(Ie,{explanation:i,testId:`world-surface-status:${n.worldId}`,style:{zIndex:20}}),h?null:u?c.jsx(Me,{active:s,...a?{adapter:a}:{},containerRef:d,view:f,documentId:x},`controls:${P(a)}`):c.jsxs(c.Fragment,{children:[c.jsx(Ne,{docId:n.worldId,containerRef:d}),c.jsx(_e,{containerRef:d,context:w})]})]})}function Oe(){const s=p.useSyncExternalStore(W,K),l=Math.max(8,24*s.zoom),n=Math.max(.7,Math.min(1.4,s.zoom));return c.jsx("div",{"data-testid":"react-design-canvas-backdrop","aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundColor:z,backgroundImage:`radial-gradient(circle, ${ve} ${n}px, transparent ${n}px)`,backgroundPosition:`${s.x}px ${s.y}px`,backgroundSize:`${l}px ${l}px`}})}function vt(s,l){const n=J(),x=l.childAdapters().some(e=>e.role==="world"&&e.kind==="three"),r=l.childAdapters().some(e=>e.kind===be);!x&&!r&&H(E,{discardDirty:!0});const d=new Set,v=[];let f=!1;for(const e of l.childAdapters())e.role==="world"&&e.kind==="three"&&v.push($(e.worldId,E));const u=fe(l),m=u.find(e=>e.kind==="canvas");m&&v.push($(m.worldId,A));const k=new Set([...l.childAdapters().filter(e=>e.role==="world"&&e.kind==="three"),...m?[m]:[]].map(e=>e.worldId)),S=new Map;function R(){for(const e of u){if(k.has(e.worldId)||S.has(e.worldId))continue;const i=Se(e.kind);if(!i)continue;const g=$(e.worldId,i.documentId),w=Z(e.worldId,()=>i.presence()==="absent"?`Root "${e.worldId}" has no document of its own: its design surface is the project's ${i.title} board (${i.documentId}). ${i.absentReason()}`:null);S.set(e.worldId,()=>{w(),g()})}}v.push(Y(e=>{const i=ee();if(i.some(w=>w.descriptor.id===e))return null;const g=ke(e);return g?g.presence()==="absent"?g.absentReason():null:`No workspace document is named "${e}". Open in this session: ${i.map(w=>w.descriptor.id).join(", ")||"(none)"}. A component board is present only when the package that owns its medium says this project has one, so a board id can be absent for this project and present for another.`}));function I(e){const i=g=>c.jsx(Ge,{...g,composite:l,descriptor:e,store:s});Q({id:A,title:Fe,kind:"world",workspaceRole:"authored-subject",provenance:{rootId:e.worldId,...e.path?{sourcePath:e.path}:{}},Content:i,presentation:()=>({kind:"world",id:e.worldId})},{category:"scene",default:!x,rootId:e.worldId})}function a(e){d.add(e.documentId);const i=()=>{d.delete(e.documentId)};try{Promise.resolve(e.install({store:s,composite:l})).catch(i)}catch{i()}}function h(){if(!f){R();for(const e of we()){const i=e.presence();if(i===null)continue;const g=d.has(e.documentId);i==="present"!==g&&(i==="present"?a(e):(N(e.documentId),d.delete(e.documentId)))}}}m&&(I(m),d.add(A)),h();const t=ye(h),o=m?A:[...d][0];return te()||(!x&&o!==void 0&&(n===null||n===E||n===q)?M(o):n?M(n):x&&M(E)),()=>{f=!0,t();for(const e of v)e();for(const e of S.values())e();S.clear();for(const e of d)N(e)}}export{Ge as RootDocumentContent,vt as installRootDocuments};
|
package/dist/assets/{world-root-stage-binding-5pbD7Ije.js → world-root-stage-binding-C7HH_DuY.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{EDITOR_LAYER as Ke}from"./editor-layers-D-sKmDua.js";import{df as Oe,a7 as V,bN as Ye,aL as te,bw as $,aM as G,kJ as Je,bM as Ze,bP as et,a6 as Q,h1 as tt,hF as rt,j_ as nt,kK as ot,Z as j,K as st,ci as at,kL as Se,cx as it,kM as ct,kN as lt,kO as ut,kP as Ce,kQ as xe,aD as x,cU as dt,kR as mt,cq as pt,cv as ft,kS as Pe,kT as Ee,kU as je,kV as ht,al as gt,kW as bt,kX as ke,dI as vt,kY as wt,kZ as yt,j3 as St,iV as Ct,iW as xt,gM as Pt,gN as Et,j1 as jt,g4 as kt,g5 as Tt,g6 as At,g7 as Rt}from"./index-FuK_gLVP.js";import{s as Mt,o as Vt}from"./object3d-document-session-registry-yyskXT42.js";import{R as Ot}from"./RootSelectionOverlay-Cj_42uH4.js";import{e as Lt,S as Ft}from"./surface-state-BfErS6v0.js";import{r as f}from"./index-nmcBqr7Y.js";import{t as It}from"./surface-content-Dg9Kkazf.js";import"./index-CtzuWnCS.js";import{s as zt,d as Te,c as U,t as Wt,p as Le,v as Ae,b as Nt,e as _t,l as Dt,i as Qt}from"./camera-authoring-DYjhU5Zp.js";import{c as $t}from"./performance-profiler-CMbwGBuk.js";import{m as Gt}from"./renderer-ownership-BovSEcLv.js";import{applyWorldRendererConfig as Ut}from"./renderer-config-CaPR4dB_.js";import{getUserData as Fe}from"./user-data-CODoGZqA.js";import{detectKtx2Support as Bt}from"./loader-BTUKnX5Q.js";import{resolveRenderSettings as Ht}from"./render-settings-y6lgf9KB.js";import{createSoftParticleDepthPass as qt}from"./soft-particle-depth-DNGwWJ8c.js";import{ViewportShadingRenderer as Xt}from"./viewport-shading-D9BMDb1N.js";import{applyRendererSettings as Kt,applySceneRenderPipeline as Yt}from"./setup-renderer-FNGzSUCJ.js";import{EffectComposer as Jt,EffectPass as Zt,BlendFunction as er,KernelSize as tr,OutlineEffect as rr}from"./index-DHhMOs_s.js";import{W as nr,T as or}from"./three.module-BLhyNg0e.js";import{d as sr}from"./design-time-mount-registry-DUpXCg1U.js";import{a as ar}from"./project-authoring-session-D5Hx87VG.js";import"./three-integration-UeCSuDl8.js";import{registerPresentedCanvasFrame as ir}from"./canvas-preview-frames-CbvLKzk1.js";import{i as cr}from"./editor-presentation-activity-CqJH4G9t.js";import{E as lr,s as ur,a as dr,t as mr,b as pr,c as fr,d as hr,r as gr,i as br}from"./three-viewport-presentation-5KZ0zq__.js";import{a as Z}from"./entity-object-Ai-uXVow.js";import{w as vr}from"./editor-shell-store-BMZxpcut.js";import{p as wr}from"./viewport-root-presentation-BPc-lH1E.js";import{d as yr}from"./asset-editor-persistence-CF8bStFQ.js";import{bindStagePresenceMarkers as Sr}from"./stage-presence-markers-DkQfTXSi.js";import{el as Cr,_ as ee,fo as D,d7 as xr,dp as Re}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./workspace-arrangement-avVz3tND.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./eyedropper-session-bjPXnfeX.js";import"./layered-pick-CmpZSo8j.js";import"./root-stacking-BEd9ZvxC.js";import"./react-story-board-DP8miK58.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./inspect-G9yzBKkf.js";import"./inference-diagnostics-D771II31.js";import"./object-marks-BnvSuCTt.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./render-features-Dt3ItOxf.js";import"./matcap-texture-Dm2c-VQa.js";import"./defaults-DKiBJCPN.js";import"./edit-mode-authoring-BfHszfD3.js";import"./host-hierarchy-objects-BV3WqU2w.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"./user-data-thHakLdm.js";import"./model-thumbnail-n5yOZ3A6.js";import"./studio-environment-Bj3Hi-UK.js";import"./three-state-DNgFvLbw.js";import"./hierarchy-marks-CyrGt6dv.js";import"./component-instance-root-BNDWrUkC.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-door-BfcEF1aj.js";import"./content-bounds-CaZcBNYF.js";import"./asset-preview-D_mr_kfU.js";import"./bitmap-label-Ct4k6ehY.js";import"./index-DbdVWXvM.js";import"./standard-viewport-dressing-wQb-yfhP.js";import"./clip-planes-CnAI6DZn.js";import"./three-CQVC3sHg.js";import"./model-inspection-CRXVM5Wz.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./live-gesture-lock-DJbrjOqf.js";import"./scene-framing-Rs5Y89nN.js";import"./live-mixers-B-bwLZ7c.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./mounted-authoring-BRUN-BOo.js";import"./collaboration-presence-DFgm-wIj.js";function Pr({previewRef:r}){const{preview:e,previewPinned:s}=U(),[o,c]=f.useState(!1),a=f.useRef(null);if(f.useEffect(()=>{if(!o)return;const u=E=>{a.current?.contains(E.target)||c(!1)};return document.addEventListener("pointerdown",u),()=>document.removeEventListener("pointerdown",u)},[o]),!e)return null;const m=e.camera.isPerspectiveCamera&&Number.isFinite(e.camera.aspect)?e.camera.aspect:16/9;return i.jsxs("div",{className:"volter-camera-preview","data-testid":"camera-preview",children:[i.jsxs(Oe,{className:"volter-camera-preview-header",gap:4,align:"center",children:[i.jsx(V,{icon:Ye,size:"sm"}),i.jsx(te,{variant:"label",truncate:!0,className:"volter-camera-preview-title",title:`${e.name} · ${e.lens}`,children:e.name}),i.jsx($,{text:s?"Unpin camera preview":"Pin camera preview",children:i.jsx(G,{"aria-label":s?"Unpin camera preview":"Pin camera preview","aria-pressed":s,size:"compact",onClick:Wt,children:i.jsx(V,{icon:Je,size:"sm"})})}),i.jsxs("div",{ref:a,className:"volter-camera-preview-menu-anchor",children:[i.jsx($,{text:"Camera actions",children:i.jsx(G,{"aria-label":"Camera actions","aria-expanded":o,size:"compact",onClick:()=>c(u=>!u),children:i.jsx(V,{icon:Ze,size:"sm"})})}),o?i.jsxs(et,{className:"volter-camera-preview-menu",children:[i.jsx(Q,{variant:"ghost",size:"compact",disabled:!e.canAuthorPose,title:e.poseRefusal,onClick:()=>{c(!1),Le(e)},children:"Pilot Camera"}),i.jsx(Q,{variant:"ghost",size:"compact",onClick:()=>{c(!1),Ae(e)},children:"View Through Camera"}),i.jsx(Q,{variant:"ghost",size:"compact",disabled:!e.canAuthorPose,title:e.poseRefusal,onClick:()=>{c(!1),Nt(e)},children:"Align Camera to Current View"})]}):null]})]}),i.jsx("div",{ref:r,className:"volter-camera-preview-image",style:{aspectRatio:String(Math.max(.5,Math.min(3,m)))},role:"img","aria-label":`Live view through ${e.name}`,onDoubleClick:()=>Ae(e)})]})}function Er(){return i.jsxs("div",{className:"volter-camera-guides","aria-hidden":"true",children:[i.jsx("div",{className:"volter-camera-guide volter-camera-guide-v1"}),i.jsx("div",{className:"volter-camera-guide volter-camera-guide-v2"}),i.jsx("div",{className:"volter-camera-guide volter-camera-guide-h1"}),i.jsx("div",{className:"volter-camera-guide volter-camera-guide-h2"}),i.jsx("div",{className:"volter-camera-safe-frame"}),i.jsx("div",{className:"volter-camera-center-mark"})]})}function jr(){const{view:r,guidesVisible:e}=U();if(!r)return null;const s=r.mode==="pilot";return i.jsxs(i.Fragment,{children:[e?i.jsx(Er,{}):null,i.jsx(tt,{variant:"overlay",border:!0,className:"volter-camera-view-banner volter-chrome-island volter-glass-island","data-testid":"camera-view-banner",children:i.jsxs(Oe,{gap:6,align:"center",children:[i.jsx(rt,{children:s?"PILOTING":"CAMERA VIEW"}),i.jsx(te,{variant:"label",children:r.subject.name}),i.jsx(te,{variant:"caption",tone:"muted",children:"Exact camera view"}),i.jsx($,{text:e?"Hide composition guides":"Show composition guides",children:i.jsx(G,{"aria-label":e?"Hide composition guides":"Show composition guides","aria-pressed":e,size:"compact",onClick:_t,children:i.jsx(V,{icon:nt,size:"sm"})})}),s?null:i.jsx(Q,{size:"compact",variant:"primary",disabled:!r.subject.canAuthorPose,title:r.subject.poseRefusal,onClick:()=>Le(r.subject),children:"Pilot"}),i.jsx($,{text:"Exit camera view",children:i.jsx(G,{"aria-label":"Exit camera view",size:"compact",onClick:Dt,children:i.jsx(V,{icon:ot,size:"sm"})})})]})})]})}function kr({previewRef:r}){return f.useSyncExternalStore(zt,Te,Te),i.jsxs(i.Fragment,{children:[i.jsx(Pr,{previewRef:r}),i.jsx(jr,{})]})}function Tr(r){const e=r,s=e.getExtension("EXT_disjoint_timer_query_webgl2"),o=s!==null&&typeof e.createQuery=="function",c=[];let a=null,m=null;return{begin(){!o||a||(a=e.createQuery(),a&&e.beginQuery(s.TIME_ELAPSED_EXT,a))},end(){!o||!a||(e.endQuery(s.TIME_ELAPSED_EXT),c.push(a),a=null)},poll(){if(!o)return null;if(e.getParameter(s.GPU_DISJOINT_EXT)){for(const u of c.splice(0))e.deleteQuery(u);return null}for(;c.length>0;){const u=c[0];if(!e.getQueryParameter(u,e.QUERY_RESULT_AVAILABLE))break;c.shift(),m=e.getQueryParameter(u,e.QUERY_RESULT)/1e6,e.deleteQuery(u)}return m},dispose(){a&&(e.endQuery(s.TIME_ELAPSED_EXT),e.deleteQuery(a),a=null);for(const u of c.splice(0))e.deleteQuery(u)}}}const Ar=2e4,Rr=250,Mr=5e3;class Vr{#e=0;#t=0;#r=0;#n;constructor(e){this.#n=e}get pending(){return this.#e>0||this.#t>0}begin(e,s){this.#e=e+Ar,this.#t=s?e+Mr:0,this.#r=0,this.tick(e)}tick(e){if(!(!this.pending||e<this.#r)){if(this.#r=e+Rr,this.#t>0&&this.#n.seedFromGameCamera()){this.cancel();return}this.#e>0&&this.#n.frameContent()&&(this.#e=0),e>=this.#e&&(this.#e=0),e>=this.#t&&(this.#t=0)}}cancel(){this.#e=0,this.#t=0}}const Me=new WeakMap;function Or(r,e){if(!r)return e(),!0;if(Me.has(r))return!1;try{return e(),!0}catch(s){const o=s instanceof Error?s.message:String(s);return Me.set(r,o),j.warn(`The Scene view cannot draw this world with the editor's own renderer, and has stopped trying: ${o}. This world was built by a copy of three the editor did not make (a vendored bundle pins its own revision), and the editor draws it with ITS three — across a wide enough revision gap the two disagree about the renderer/material contract. The game itself is unaffected and still drawing: its own canvas is what the Game tab and ${st("screenshot")} show, and hierarchy, selection and inspection all still read the live world. It closes when the game resolves \`three\` to the host's instance — a bare, un-rewritten \`import 'three'\` in its own source.`,"ingest"),!1}}function Lr(){const r=at();r.addEventListener("server-log",s=>{try{Se(JSON.parse(s.data))}catch{}});let e=!1;return(async()=>{try{const s=await it();if(e)return;for(const o of s)Se(o)}catch{}})(),()=>{e=!0,r.close()}}const Ie="viewportPose";function Fr(){const r=ct(Ie);return r&&Array.isArray(r.position)&&r.position.length===3&&r.position.every(Number.isFinite)&&Array.isArray(r.target)&&r.target.length===3&&r.target.every(Number.isFinite)?r:null}function Ir(r,e){lt(Ie,{position:[r.position.x,r.position.y,r.position.z],target:[e.x,e.y,e.z]})}const Ve={id:"world",title:"World",lights:[{color:"#ffffff",intensity:1,direction:[-10,-20,-10],space:"world"}],ambient:{color:"#ffffff",intensity:.5},environmentIntensity:0};yt(Ve),St("world",{all:{lighting:{source:"studio",studioPreset:Ve.id,auto:{takeover:["light"],overridable:!0}}}});function zr(r,e,s){const o=document.createElement("canvas");o.setAttribute("aria-label",`${s} authoring viewport`),o.setAttribute("data-testid","editor-canvas"),o.setAttribute("aria-hidden","true"),o.tabIndex=-1,o.style.width="100%",o.style.height="100%",o.style.display="block",o.style.pointerEvents="auto",r.appendChild(o);const c=Math.max(1,e.clientWidth),a=Math.max(1,e.clientHeight),m=Math.min(window.devicePixelRatio||1,2);o.width=Math.ceil(c*m),o.height=Math.ceil(a*m);const u=Gt(new nr({canvas:o,antialias:!!Ht(void 0).antialias,powerPreference:"high-performance"}));return Kt(u,void 0,m),u.setSize(c,a),u.shadowMap.type=xr,u.info.autoReset=!1,Bt(u),{canvas:o,renderer:u,lease:null}}async function Wr(r){const e=pt(r.source,r.id);if(e)return e;let s=r.url,o=r.format??"gltf",c=r.includes;if(!s){const u=(await ft(r.source,r.id))[0];if(!u)return j.error(`No downloadable files for ${r.name}.`,"asset"),null;s=u.url,o=u.format,c=u.includes}const a={source:r.source,id:r.id,name:r.name,url:s,format:o};c&&(a.includes=c);const m=await yr(a);return m.ok&&m.path?`/${m.path}`:(j.error(`Could not download ${r.name}.`,"asset"),null)}function Nr(r){if(r.isCamera)return r;const e=Fe(r,"_camera");return e?.isCamera?e:null}function _r(r){const e=r;if(e.isPerspectiveCamera)return`${e.fov.toFixed(0)}° perspective`;const s=r;return s.isOrthographicCamera?`Orthographic · ${s.zoom.toFixed(2)}×`:r.type}function Dr(r,e){const s=r.transforms;if(!s)return{canAuthorPose:!1,poseRefusal:"This camera has no transform authoring path."};const o=s.editability?.(e,"position")??{writable:!0},c=s.editability?.(e,"rotation")??{writable:!0};return o.writable&&c.writable?{canAuthorPose:!0}:{canAuthorPose:!1,poseRefusal:o.reason??c.reason??"This camera pose is read-only."}}function Qr(r,e,s){const o=e.get(s)??null;if(!o)return null;const c=Nr(o);return c?{id:s,name:o.name||c.name||"Camera",camera:c,lens:_r(c),...Dr(r,s)}:null}function $r(r){const e=new Map;for(const[s,o]of r.objectMap){const c=Fe(o,"tags");Array.isArray(c)&&c.length>0&&e.set(s,c)}return e}function Gr(r){const{store:e,documentId:s,container:o,canvas:c,renderer:a,stats:m}=r,u=new Jt(a),E=qt(),O=new Xt,g=$t(),L=Tr(a.getContext()),ze=t=>{g.enabled&&L.begin();try{t()}finally{L.end()}},We=()=>g.enabled?L.poll():null,Ne=ut({id:s,label:"Scene viewport",kind:"scene",profiler:g}),b=new Cr,re=11184810;let B=Ce(c).background??re;b.background=new ee(B);const _e=xe(c,()=>{const t=Ce(c).background??re,l=b.background;l instanceof ee&&l.getHex()===B&&(b.background=new ee(t)),B=t});e.bindScene(b,a);const n=new lr(c,b,e,o,{renderer:a,onlineAssetResolver:Wr,onProjectionChange:ur}),De=n.bindPresentation(s,"world");e.bindScene(b,a,n.batchedRenderer,n.camera),e.setOrbitTarget(n.orbitControls.target);const H=new D,F=new D,ne=new D,oe=()=>{const t=n.renderCamera;t.getWorldPosition(H),n.cameraViewMode==="pilot"?F.copy(n.orbitControls.target):n.cameraViewMode?(t.getWorldDirection(ne),F.copy(H).add(ne.multiplyScalar(10))):F.copy(n.orbitControls.target);const l=t.fov;return{position:H,target:F,fov:typeof l=="number"?l:0}},k=Sr({scene:b,store:e,documentId:s,container:o,canvas:c,viewport:n,readVisibleCameraPose:oe});let se="",q=null,h=null,S=null,I=null;const ae=()=>{h&&fr(h,ke(a.domElement))},Qe=xe(a.domElement,ae),ie=()=>{if(!h)return;const t=x(e.shell),l=[...e.shell.selectedEntityIds].filter(d=>t.hierarchy.node(d)!==null).map(d=>Z(t,e.objectMap,d)).filter(d=>d!==null);hr(h,l);const p=h.selection.size>0;S&&(S.enabled=p,S.renderToScreen=p),I&&(I.renderToScreen=!p)};function T(){bt(e.shell),q?.(),q=null,h&&gr(a,h,S),h=null,S=null,I=null,Yt(u,a,e.scene??b,n.renderCamera,void 0,{basePixelRatio:Math.min(window.devicePixelRatio||1,2),objectMap:e.objectMap,entityTags:$r(e)}),h=pr({BlendFunction:er,KernelSize:tr,OutlineEffect:rr},a,e.scene??b,n.renderCamera,ke(a.domElement)),ae(),I=u.passes.at(-1)??null,S=new Zt(n.renderCamera,h),S.enabled=!1,u.addPass(S),ie();const t=e.adoptedImageConfig;t&&(q=Ut(or,a,t))}const ce=()=>{n.setProjection(mr().projection),e.setViewportCamera(n.freeCamera),T()},$e=dr(ce);ce();const X=t=>Qr(x(e.shell),e.objectMap,t);let v=null;const A=()=>{v&&(je(x(e.shell),v),v=null)},le=()=>{const t=U().view;t?.mode!=="pilot"||!t.subject.canAuthorPose||(v=t.subject.id,Pe(x(e.shell),v))},ue=()=>{if(!v||n.cameraViewMode!=="pilot")return;const t=X(v),l=x(e.shell),p=l.transforms;if(!t||!p)return;let d;try{d=p.get(v)}catch(w){j.error(w instanceof Error?w.message:String(w),"camera-authoring"),A();return}Ee(l,v,{position:t.camera.position.toArray(),rotation:t.camera.quaternion.toArray(),scale:d.scale}),e.shell.notifyIngestEdit()};n.orbitControls.addEventListener("start",le),n.orbitControls.addEventListener("change",ue),n.orbitControls.addEventListener("end",A);const Ge=Qt({active:()=>e.shell.playState==="stopped"&&e.shell.activeViewportTab==="edit",selected:()=>{const t=e.shell.selectedEntityId;return t?X(t):null},resolve:X,showView:(t,l)=>{A(),n.setCameraView(t.camera,l),T(),k.reportCamera()},leaveView:()=>{A(),n.clearCameraView(),T(),k.reportCamera()},alignToViewport:t=>{const l=x(e.shell),p=l.transforms;if(!p||!t.canAuthorPose)return;const d=e.objectMap.get(t.id)??null;if(!d)return;const w=n.camera.getWorldPosition(new D),C=n.camera.getWorldQuaternion(new Re),y=w.clone(),R=C.clone();if(d.parent){d.parent.updateWorldMatrix(!0,!1),d.parent.worldToLocal(y);const M=d.parent.getWorldQuaternion(new Re);R.premultiply(M.invert())}let ye;try{ye=p.get(t.id)}catch(M){j.error(M instanceof Error?M.message:String(M),"camera-authoring");return}Pe(l,t.id),Ee(l,t.id,{position:y.toArray(),rotation:R.toArray(),scale:ye.scale}),e.shell.notifyIngestEdit(),je(l,t.id)},subscribe:e.shell.subscribe});let de=null;const me=()=>{const t=ht(e.shell);t!==de&&(de=t,c.style.opacity=t?"1":"0",o.style.backgroundColor=t?"":gt.surface.raised,o.style.backgroundImage=t?"":"linear-gradient(45deg, #444649 25%, transparent 25%, transparent 75%, #444649 75%), linear-gradient(45deg, #444649 25%, transparent 25%, transparent 75%, #444649 75%)",o.style.backgroundPosition=t?"":"0 0, 8px 8px",o.style.backgroundSize=t?"":"16px 16px")};me();let pe=e.composerVersion;const Ue=e.shell.subscribe(()=>{me();const t=e.scene;t&&t!==n.currentScene&&n.setScene(t),n.objectMap=e.objectMap,n.syncFromStore(),e.composerVersion!==pe?(pe=e.composerVersion,T()):ie()});let z=null;const K=new Vr({seedFromGameCamera:()=>{const t=z?.()??null;return!!t&&n.seedFromGameCamera(t)},frameContent:()=>n.focusOnScene()}),fe=()=>{K.cancel(),z=null};n.orbitControls.addEventListener("start",fe);const he=()=>Ir(n.camera,n.orbitControls.target);n.orbitControls.addEventListener("end",he);const Be=e.shell.onViewportAction(t=>{switch(t.type){case"focus-entity":{const l=Z(x(e.shell),e.objectMap,t.id);l&&n.focusOn(l);break}case"focus-scene":{{const l=Fr();if(l){n.camera.position.set(...l.position),n.orbitControls.target.set(...l.target),n.orbitControls.update();break}}z=e.sceneCameraLookup,K.begin(performance.now(),z!==null);break}case"focus-selection":{const l=x(e.shell),p=[...e.shell.selectedEntityIds].map(d=>Z(l,e.objectMap,d)).filter(d=>d!==null);n.focusOnMultiple(p);break}case"snap-selection-to-floor":n.snapSelectionToFloor();break;case"set-view-preset":n.setViewPreset(t.preset);break;case"step-view":n.stepView(t.step);break;case"frame-all":n.focusOnScene();break;case"zoom-view":n.zoomStep(t.direction);break;case"set-camera-pose":n.setPose(t.position,t.target,t.fov);break}});Lr();const ge=new ResizeObserver(()=>{const t=Math.max(1,o.clientWidth),l=Math.max(1,o.clientHeight);a.setSize(t,l),u.setSize(t,l),n.resize(t,l)});ge.observe(o);let W=performance.now(),N=!0,P=!1,be=!1;function ve(t){return Or(n.currentScene,()=>{E.render(a,n.currentScene,n.renderCamera),n.renderWithInfrastructure(()=>{vr(n.currentScene,()=>O.render(n.currentScene,e.shadingMode,()=>u.render(t),br)),n.renderViewCube(a),n.renderCameraPreview(a,U().preview?.camera??null,r.cameraPreview())})})}const He=ir(c,async()=>{if(P||!cr()||!o.checkVisibility({visibilityProperty:!0,checkVisibilityCSS:!0})||!ve(0))return null;const t=document.createElement("canvas");return t.width=c.width,t.height=c.height,t.getContext("2d").drawImage(c,0,0),t}),Y=()=>wt(e.shell)===e.shell;function qe(t,l){if(P)return;if(l&&(W=t),!o.checkVisibility({visibilityProperty:!0,checkVisibilityCSS:!0})){W=t,N=!0,n.resolvePresentation();return}g.beginFrame();const p=t-W,d=p/1e3;Y()&&(m.frameTime=p,m.fps=1e3/p),W=t,k.syncMarkers(d),K.tick(t),g.beginPhase(),n.update(d),r.runFrame(d),n.batchedRenderer.update(d),g.endPhase("editor"),g.beginPhase(),a.info.reset(),ze(()=>{ve(d)}),g.reportRender({gpuMs:We(),drawCalls:a.info.render.calls,triangles:a.info.render.triangles,geometries:a.info.memory.geometries,textures:a.info.memory.textures}),g.endPhase("render"),Y()&&(m.drawCalls=a.info.render.calls,m.triangles=a.info.render.triangles),N&&be&&(N=!1,vt(s)),g.endFrame();const w=oe(),C=w.position,y=w.target;Y()&&(m.cameraPosition.x=C.x,m.cameraPosition.y=C.y,m.cameraPosition.z=C.z,m.cameraTarget.x=y.x,m.cameraTarget.y=y.y,m.cameraTarget.z=y.z);const R=`${C.x},${C.y},${C.z},${y.x},${y.y},${y.z},${w.fov}`;R!==se&&(se=R,k.reportCamera())}n.objectMap=e.objectMap,n.syncFromStore(),T();let J,_;async function Xe(t){if(P)return;r.onMountStatus("mounting"),_?.(),_=void 0,J=t,r.onRootIds(t.childAdapters().filter(d=>d.role==="world"&&d.kind==="three").map(d=>d.worldId));const l=sr("three");if(P||J!==t)return;const p=l?await l.mountWorldRootSession({store:e,composite:t,renderer:a}):()=>{};if(P||J!==t){p();return}_=p,P||r.onMountStatus("ready")}const we=ar(e.shell,Xe);return we.ready.then(()=>dt(mt(e.shell))).catch(t=>{j.error(`Editor boot failed: ${t instanceof Error?t.message:String(t)}`,"scene"),r.onMountStatus("ready")}).finally(()=>{be=!0,N=!0}),{scene:b,viewport:n,frame:qe,present:t=>wr(e,t),setHelper:(t,l)=>n.setHelper(t,l),dispose:()=>{P=!0,Ne(),He(),ge.disconnect(),Ue(),Be(),Ge(),n.orbitControls.removeEventListener("start",le),n.orbitControls.removeEventListener("change",ue),n.orbitControls.removeEventListener("end",A),n.orbitControls.removeEventListener("start",fe),n.orbitControls.removeEventListener("end",he),we.dispose(),_?.(),k.dispose(),O.dispose(),L.dispose(),$e(),Qe(),_e(),De(),h?.selection.clear(),E.dispose(),u.dispose()}}}function Ur({store:r,rootIds:e,mountStatus:s}){f.useSyncExternalStore(r.shell.subscribe,r.shell.getSnapshot);const o=f.useSyncExternalStore(kt,Tt),c=f.useSyncExternalStore(At,Rt),a=r.scene?.background,m=a!==null&&!(a?.isColor===!0&&a.getHex()===11184810),u=f.useMemo(()=>!!(r.scene&&It(r.scene,{includeBackground:!1,ignoredLayer:Ke})),[r.scene,r.shell.contentVersion]),E=!!(r.scene&&(m||u)),O=Lt({surface:"Scene",rootIds:e,phase:s==="mounting"?"loading":"ready",content:E?"present":s==="mounting"?"unknown":"empty",readiness:o,failures:c});return i.jsx(Ft,{explanation:O,testId:"scene-viewport-status"})}function Br({store:r,documentId:e,cameraPreviewRef:s,mountStatus:o,rootIds:c}){f.useSyncExternalStore(r.shell.subscribe,r.shell.getShellSnapshot??r.shell.getSnapshot),f.useSyncExternalStore(Ct,xt),f.useSyncExternalStore(Mt,Vt),f.useSyncExternalStore(Pt,Et);const a=jt(r.shell,e,"document");return i.jsxs(i.Fragment,{children:[a.surface!==null?i.jsx(Ot,{}):null,a.surface==="three"?i.jsx(kr,{previewRef:s}):null,i.jsx(Ur,{store:r,rootIds:c,mountStatus:o})]})}const ko={mountWorldRootSurface:zr,installWorldRootStage:Gr,Overlays:Br};export{ko as worldRootStageBinding};
|
|
1
|
+
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{EDITOR_LAYER as Ke}from"./editor-layers-wmPhuj0X.js";import{df as Oe,a7 as V,bN as Ye,aL as te,bw as $,aM as G,kJ as Je,bM as Ze,bP as et,a6 as Q,h1 as tt,hF as rt,j_ as nt,kK as ot,Z as j,K as st,ci as at,kL as Se,cx as it,kM as ct,kN as lt,kO as ut,kP as Ce,kQ as xe,aD as x,cU as dt,kR as mt,cq as pt,cv as ft,kS as Pe,kT as Ee,kU as je,kV as ht,al as gt,kW as bt,kX as ke,dI as vt,kY as wt,kZ as yt,j3 as St,iV as Ct,iW as xt,gM as Pt,gN as Et,j1 as jt,g4 as kt,g5 as Tt,g6 as At,g7 as Rt}from"./index-BYdQuKKk.js";import{s as Mt,o as Vt}from"./object3d-document-session-registry-RFHXjepL.js";import{R as Ot}from"./RootSelectionOverlay-DbREUgIb.js";import{e as Lt,S as Ft}from"./surface-state-D9U0kgz0.js";import{r as f}from"./index-nmcBqr7Y.js";import{t as It}from"./surface-content-Dg9Kkazf.js";import"./index-CtzuWnCS.js";import{s as zt,d as Te,c as U,t as Wt,p as Le,v as Ae,b as Nt,e as _t,l as Dt,i as Qt}from"./camera-authoring-DYjhU5Zp.js";import{c as $t}from"./performance-profiler-CMbwGBuk.js";import{m as Gt}from"./renderer-ownership-BovSEcLv.js";import{applyWorldRendererConfig as Ut}from"./renderer-config-CaPR4dB_.js";import{getUserData as Fe}from"./user-data-CODoGZqA.js";import{detectKtx2Support as Bt}from"./loader-BTUKnX5Q.js";import{resolveRenderSettings as Ht}from"./render-settings-BZQKFQ-S.js";import{createSoftParticleDepthPass as qt}from"./soft-particle-depth-DNGwWJ8c.js";import{ViewportShadingRenderer as Xt}from"./viewport-shading-D9BMDb1N.js";import{applyRendererSettings as Kt,applySceneRenderPipeline as Yt}from"./setup-renderer-B5wilQJH.js";import{EffectComposer as Jt,EffectPass as Zt,BlendFunction as er,KernelSize as tr,OutlineEffect as rr}from"./index-DHhMOs_s.js";import{W as nr,T as or}from"./three.module-BLhyNg0e.js";import{d as sr}from"./design-time-mount-registry-DUpXCg1U.js";import{a as ar}from"./project-authoring-session-C7hSaUoI.js";import"./three-integration-BzTWd5jX.js";import{registerPresentedCanvasFrame as ir}from"./canvas-preview-frames-ciVf8XNo.js";import{i as cr}from"./editor-presentation-activity-CqJH4G9t.js";import{E as lr,s as ur,a as dr,t as mr,b as pr,c as fr,d as hr,r as gr,i as br}from"./three-viewport-presentation-Zf87KDhY.js";import{a as Z}from"./entity-object-DWKBk3rf.js";import{w as vr}from"./editor-shell-store-LRVyeXM-.js";import{p as wr}from"./viewport-root-presentation-Cy219iw-.js";import{d as yr}from"./asset-editor-persistence-BDtXtYHv.js";import{bindStagePresenceMarkers as Sr}from"./stage-presence-markers-DXjy7DL7.js";import{el as Cr,_ as ee,fo as D,d7 as xr,dp as Re}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./workspace-arrangement-DwFkSdlq.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./eyedropper-session-bjPXnfeX.js";import"./layered-pick-C73ZQGcv.js";import"./root-stacking-BEd9ZvxC.js";import"./react-story-board-JyxJfFaY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./inspect-CazPcKcv.js";import"./inference-diagnostics-DylK1Zco.js";import"./object-marks-BnvSuCTt.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./render-features-B9DvCMxj.js";import"./matcap-texture-Dm2c-VQa.js";import"./defaults-DKiBJCPN.js";import"./edit-mode-authoring-DsZ-2V4q.js";import"./host-hierarchy-objects-BV3WqU2w.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"./user-data-CJW19F-2.js";import"./model-thumbnail-BSBXqm11.js";import"./studio-environment-BXrrTMN4.js";import"./three-state-ctKrzvps.js";import"./hierarchy-marks-BjIT-DOf.js";import"./component-instance-root-z47Ib-DX.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-door-BW0xEXr5.js";import"./content-bounds-BzOnMMA9.js";import"./asset-preview-DeoFAm2V.js";import"./bitmap-label-Ct4k6ehY.js";import"./index-BTzFwm1R.js";import"./standard-viewport-dressing-DpCqZowy.js";import"./clip-planes-CnAI6DZn.js";import"./three-D4bun8tv.js";import"./model-inspection-CRQL0kkD.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./live-gesture-lock-DJbrjOqf.js";import"./scene-framing-C0vuzmLH.js";import"./live-mixers-B-bwLZ7c.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./mounted-authoring-CqEcYmBB.js";import"./collaboration-presence-3cLXKw77.js";function Pr({previewRef:r}){const{preview:e,previewPinned:s}=U(),[o,c]=f.useState(!1),a=f.useRef(null);if(f.useEffect(()=>{if(!o)return;const u=E=>{a.current?.contains(E.target)||c(!1)};return document.addEventListener("pointerdown",u),()=>document.removeEventListener("pointerdown",u)},[o]),!e)return null;const m=e.camera.isPerspectiveCamera&&Number.isFinite(e.camera.aspect)?e.camera.aspect:16/9;return i.jsxs("div",{className:"volter-camera-preview","data-testid":"camera-preview",children:[i.jsxs(Oe,{className:"volter-camera-preview-header",gap:4,align:"center",children:[i.jsx(V,{icon:Ye,size:"sm"}),i.jsx(te,{variant:"label",truncate:!0,className:"volter-camera-preview-title",title:`${e.name} · ${e.lens}`,children:e.name}),i.jsx($,{text:s?"Unpin camera preview":"Pin camera preview",children:i.jsx(G,{"aria-label":s?"Unpin camera preview":"Pin camera preview","aria-pressed":s,size:"compact",onClick:Wt,children:i.jsx(V,{icon:Je,size:"sm"})})}),i.jsxs("div",{ref:a,className:"volter-camera-preview-menu-anchor",children:[i.jsx($,{text:"Camera actions",children:i.jsx(G,{"aria-label":"Camera actions","aria-expanded":o,size:"compact",onClick:()=>c(u=>!u),children:i.jsx(V,{icon:Ze,size:"sm"})})}),o?i.jsxs(et,{className:"volter-camera-preview-menu",children:[i.jsx(Q,{variant:"ghost",size:"compact",disabled:!e.canAuthorPose,title:e.poseRefusal,onClick:()=>{c(!1),Le(e)},children:"Pilot Camera"}),i.jsx(Q,{variant:"ghost",size:"compact",onClick:()=>{c(!1),Ae(e)},children:"View Through Camera"}),i.jsx(Q,{variant:"ghost",size:"compact",disabled:!e.canAuthorPose,title:e.poseRefusal,onClick:()=>{c(!1),Nt(e)},children:"Align Camera to Current View"})]}):null]})]}),i.jsx("div",{ref:r,className:"volter-camera-preview-image",style:{aspectRatio:String(Math.max(.5,Math.min(3,m)))},role:"img","aria-label":`Live view through ${e.name}`,onDoubleClick:()=>Ae(e)})]})}function Er(){return i.jsxs("div",{className:"volter-camera-guides","aria-hidden":"true",children:[i.jsx("div",{className:"volter-camera-guide volter-camera-guide-v1"}),i.jsx("div",{className:"volter-camera-guide volter-camera-guide-v2"}),i.jsx("div",{className:"volter-camera-guide volter-camera-guide-h1"}),i.jsx("div",{className:"volter-camera-guide volter-camera-guide-h2"}),i.jsx("div",{className:"volter-camera-safe-frame"}),i.jsx("div",{className:"volter-camera-center-mark"})]})}function jr(){const{view:r,guidesVisible:e}=U();if(!r)return null;const s=r.mode==="pilot";return i.jsxs(i.Fragment,{children:[e?i.jsx(Er,{}):null,i.jsx(tt,{variant:"overlay",border:!0,className:"volter-camera-view-banner volter-chrome-island volter-glass-island","data-testid":"camera-view-banner",children:i.jsxs(Oe,{gap:6,align:"center",children:[i.jsx(rt,{children:s?"PILOTING":"CAMERA VIEW"}),i.jsx(te,{variant:"label",children:r.subject.name}),i.jsx(te,{variant:"caption",tone:"muted",children:"Exact camera view"}),i.jsx($,{text:e?"Hide composition guides":"Show composition guides",children:i.jsx(G,{"aria-label":e?"Hide composition guides":"Show composition guides","aria-pressed":e,size:"compact",onClick:_t,children:i.jsx(V,{icon:nt,size:"sm"})})}),s?null:i.jsx(Q,{size:"compact",variant:"primary",disabled:!r.subject.canAuthorPose,title:r.subject.poseRefusal,onClick:()=>Le(r.subject),children:"Pilot"}),i.jsx($,{text:"Exit camera view",children:i.jsx(G,{"aria-label":"Exit camera view",size:"compact",onClick:Dt,children:i.jsx(V,{icon:ot,size:"sm"})})})]})})]})}function kr({previewRef:r}){return f.useSyncExternalStore(zt,Te,Te),i.jsxs(i.Fragment,{children:[i.jsx(Pr,{previewRef:r}),i.jsx(jr,{})]})}function Tr(r){const e=r,s=e.getExtension("EXT_disjoint_timer_query_webgl2"),o=s!==null&&typeof e.createQuery=="function",c=[];let a=null,m=null;return{begin(){!o||a||(a=e.createQuery(),a&&e.beginQuery(s.TIME_ELAPSED_EXT,a))},end(){!o||!a||(e.endQuery(s.TIME_ELAPSED_EXT),c.push(a),a=null)},poll(){if(!o)return null;if(e.getParameter(s.GPU_DISJOINT_EXT)){for(const u of c.splice(0))e.deleteQuery(u);return null}for(;c.length>0;){const u=c[0];if(!e.getQueryParameter(u,e.QUERY_RESULT_AVAILABLE))break;c.shift(),m=e.getQueryParameter(u,e.QUERY_RESULT)/1e6,e.deleteQuery(u)}return m},dispose(){a&&(e.endQuery(s.TIME_ELAPSED_EXT),e.deleteQuery(a),a=null);for(const u of c.splice(0))e.deleteQuery(u)}}}const Ar=2e4,Rr=250,Mr=5e3;class Vr{#e=0;#t=0;#r=0;#n;constructor(e){this.#n=e}get pending(){return this.#e>0||this.#t>0}begin(e,s){this.#e=e+Ar,this.#t=s?e+Mr:0,this.#r=0,this.tick(e)}tick(e){if(!(!this.pending||e<this.#r)){if(this.#r=e+Rr,this.#t>0&&this.#n.seedFromGameCamera()){this.cancel();return}this.#e>0&&this.#n.frameContent()&&(this.#e=0),e>=this.#e&&(this.#e=0),e>=this.#t&&(this.#t=0)}}cancel(){this.#e=0,this.#t=0}}const Me=new WeakMap;function Or(r,e){if(!r)return e(),!0;if(Me.has(r))return!1;try{return e(),!0}catch(s){const o=s instanceof Error?s.message:String(s);return Me.set(r,o),j.warn(`The Scene view cannot draw this world with the editor's own renderer, and has stopped trying: ${o}. This world was built by a copy of three the editor did not make (a vendored bundle pins its own revision), and the editor draws it with ITS three — across a wide enough revision gap the two disagree about the renderer/material contract. The game itself is unaffected and still drawing: its own canvas is what the Game tab and ${st("screenshot")} show, and hierarchy, selection and inspection all still read the live world. It closes when the game resolves \`three\` to the host's instance — a bare, un-rewritten \`import 'three'\` in its own source.`,"ingest"),!1}}function Lr(){const r=at();r.addEventListener("server-log",s=>{try{Se(JSON.parse(s.data))}catch{}});let e=!1;return(async()=>{try{const s=await it();if(e)return;for(const o of s)Se(o)}catch{}})(),()=>{e=!0,r.close()}}const Ie="viewportPose";function Fr(){const r=ct(Ie);return r&&Array.isArray(r.position)&&r.position.length===3&&r.position.every(Number.isFinite)&&Array.isArray(r.target)&&r.target.length===3&&r.target.every(Number.isFinite)?r:null}function Ir(r,e){lt(Ie,{position:[r.position.x,r.position.y,r.position.z],target:[e.x,e.y,e.z]})}const Ve={id:"world",title:"World",lights:[{color:"#ffffff",intensity:1,direction:[-10,-20,-10],space:"world"}],ambient:{color:"#ffffff",intensity:.5},environmentIntensity:0};yt(Ve),St("world",{all:{lighting:{source:"studio",studioPreset:Ve.id,auto:{takeover:["light"],overridable:!0}}}});function zr(r,e,s){const o=document.createElement("canvas");o.setAttribute("aria-label",`${s} authoring viewport`),o.setAttribute("data-testid","editor-canvas"),o.setAttribute("aria-hidden","true"),o.tabIndex=-1,o.style.width="100%",o.style.height="100%",o.style.display="block",o.style.pointerEvents="auto",r.appendChild(o);const c=Math.max(1,e.clientWidth),a=Math.max(1,e.clientHeight),m=Math.min(window.devicePixelRatio||1,2);o.width=Math.ceil(c*m),o.height=Math.ceil(a*m);const u=Gt(new nr({canvas:o,antialias:!!Ht(void 0).antialias,powerPreference:"high-performance"}));return Kt(u,void 0,m),u.setSize(c,a),u.shadowMap.type=xr,u.info.autoReset=!1,Bt(u),{canvas:o,renderer:u,lease:null}}async function Wr(r){const e=pt(r.source,r.id);if(e)return e;let s=r.url,o=r.format??"gltf",c=r.includes;if(!s){const u=(await ft(r.source,r.id))[0];if(!u)return j.error(`No downloadable files for ${r.name}.`,"asset"),null;s=u.url,o=u.format,c=u.includes}const a={source:r.source,id:r.id,name:r.name,url:s,format:o};c&&(a.includes=c);const m=await yr(a);return m.ok&&m.path?`/${m.path}`:(j.error(`Could not download ${r.name}.`,"asset"),null)}function Nr(r){if(r.isCamera)return r;const e=Fe(r,"_camera");return e?.isCamera?e:null}function _r(r){const e=r;if(e.isPerspectiveCamera)return`${e.fov.toFixed(0)}° perspective`;const s=r;return s.isOrthographicCamera?`Orthographic · ${s.zoom.toFixed(2)}×`:r.type}function Dr(r,e){const s=r.transforms;if(!s)return{canAuthorPose:!1,poseRefusal:"This camera has no transform authoring path."};const o=s.editability?.(e,"position")??{writable:!0},c=s.editability?.(e,"rotation")??{writable:!0};return o.writable&&c.writable?{canAuthorPose:!0}:{canAuthorPose:!1,poseRefusal:o.reason??c.reason??"This camera pose is read-only."}}function Qr(r,e,s){const o=e.get(s)??null;if(!o)return null;const c=Nr(o);return c?{id:s,name:o.name||c.name||"Camera",camera:c,lens:_r(c),...Dr(r,s)}:null}function $r(r){const e=new Map;for(const[s,o]of r.objectMap){const c=Fe(o,"tags");Array.isArray(c)&&c.length>0&&e.set(s,c)}return e}function Gr(r){const{store:e,documentId:s,container:o,canvas:c,renderer:a,stats:m}=r,u=new Jt(a),E=qt(),O=new Xt,g=$t(),L=Tr(a.getContext()),ze=t=>{g.enabled&&L.begin();try{t()}finally{L.end()}},We=()=>g.enabled?L.poll():null,Ne=ut({id:s,label:"Scene viewport",kind:"scene",profiler:g}),b=new Cr,re=11184810;let B=Ce(c).background??re;b.background=new ee(B);const _e=xe(c,()=>{const t=Ce(c).background??re,l=b.background;l instanceof ee&&l.getHex()===B&&(b.background=new ee(t)),B=t});e.bindScene(b,a);const n=new lr(c,b,e,o,{renderer:a,onlineAssetResolver:Wr,onProjectionChange:ur}),De=n.bindPresentation(s,"world");e.bindScene(b,a,n.batchedRenderer,n.camera),e.setOrbitTarget(n.orbitControls.target);const H=new D,F=new D,ne=new D,oe=()=>{const t=n.renderCamera;t.getWorldPosition(H),n.cameraViewMode==="pilot"?F.copy(n.orbitControls.target):n.cameraViewMode?(t.getWorldDirection(ne),F.copy(H).add(ne.multiplyScalar(10))):F.copy(n.orbitControls.target);const l=t.fov;return{position:H,target:F,fov:typeof l=="number"?l:0}},k=Sr({scene:b,store:e,documentId:s,container:o,canvas:c,viewport:n,readVisibleCameraPose:oe});let se="",q=null,h=null,S=null,I=null;const ae=()=>{h&&fr(h,ke(a.domElement))},Qe=xe(a.domElement,ae),ie=()=>{if(!h)return;const t=x(e.shell),l=[...e.shell.selectedEntityIds].filter(d=>t.hierarchy.node(d)!==null).map(d=>Z(t,e.objectMap,d)).filter(d=>d!==null);hr(h,l);const p=h.selection.size>0;S&&(S.enabled=p,S.renderToScreen=p),I&&(I.renderToScreen=!p)};function T(){bt(e.shell),q?.(),q=null,h&&gr(a,h,S),h=null,S=null,I=null,Yt(u,a,e.scene??b,n.renderCamera,void 0,{basePixelRatio:Math.min(window.devicePixelRatio||1,2),objectMap:e.objectMap,entityTags:$r(e)}),h=pr({BlendFunction:er,KernelSize:tr,OutlineEffect:rr},a,e.scene??b,n.renderCamera,ke(a.domElement)),ae(),I=u.passes.at(-1)??null,S=new Zt(n.renderCamera,h),S.enabled=!1,u.addPass(S),ie();const t=e.adoptedImageConfig;t&&(q=Ut(or,a,t))}const ce=()=>{n.setProjection(mr().projection),e.setViewportCamera(n.freeCamera),T()},$e=dr(ce);ce();const X=t=>Qr(x(e.shell),e.objectMap,t);let v=null;const A=()=>{v&&(je(x(e.shell),v),v=null)},le=()=>{const t=U().view;t?.mode!=="pilot"||!t.subject.canAuthorPose||(v=t.subject.id,Pe(x(e.shell),v))},ue=()=>{if(!v||n.cameraViewMode!=="pilot")return;const t=X(v),l=x(e.shell),p=l.transforms;if(!t||!p)return;let d;try{d=p.get(v)}catch(w){j.error(w instanceof Error?w.message:String(w),"camera-authoring"),A();return}Ee(l,v,{position:t.camera.position.toArray(),rotation:t.camera.quaternion.toArray(),scale:d.scale}),e.shell.notifyIngestEdit()};n.orbitControls.addEventListener("start",le),n.orbitControls.addEventListener("change",ue),n.orbitControls.addEventListener("end",A);const Ge=Qt({active:()=>e.shell.playState==="stopped"&&e.shell.activeViewportTab==="edit",selected:()=>{const t=e.shell.selectedEntityId;return t?X(t):null},resolve:X,showView:(t,l)=>{A(),n.setCameraView(t.camera,l),T(),k.reportCamera()},leaveView:()=>{A(),n.clearCameraView(),T(),k.reportCamera()},alignToViewport:t=>{const l=x(e.shell),p=l.transforms;if(!p||!t.canAuthorPose)return;const d=e.objectMap.get(t.id)??null;if(!d)return;const w=n.camera.getWorldPosition(new D),C=n.camera.getWorldQuaternion(new Re),y=w.clone(),R=C.clone();if(d.parent){d.parent.updateWorldMatrix(!0,!1),d.parent.worldToLocal(y);const M=d.parent.getWorldQuaternion(new Re);R.premultiply(M.invert())}let ye;try{ye=p.get(t.id)}catch(M){j.error(M instanceof Error?M.message:String(M),"camera-authoring");return}Pe(l,t.id),Ee(l,t.id,{position:y.toArray(),rotation:R.toArray(),scale:ye.scale}),e.shell.notifyIngestEdit(),je(l,t.id)},subscribe:e.shell.subscribe});let de=null;const me=()=>{const t=ht(e.shell);t!==de&&(de=t,c.style.opacity=t?"1":"0",o.style.backgroundColor=t?"":gt.surface.raised,o.style.backgroundImage=t?"":"linear-gradient(45deg, #444649 25%, transparent 25%, transparent 75%, #444649 75%), linear-gradient(45deg, #444649 25%, transparent 25%, transparent 75%, #444649 75%)",o.style.backgroundPosition=t?"":"0 0, 8px 8px",o.style.backgroundSize=t?"":"16px 16px")};me();let pe=e.composerVersion;const Ue=e.shell.subscribe(()=>{me();const t=e.scene;t&&t!==n.currentScene&&n.setScene(t),n.objectMap=e.objectMap,n.syncFromStore(),e.composerVersion!==pe?(pe=e.composerVersion,T()):ie()});let z=null;const K=new Vr({seedFromGameCamera:()=>{const t=z?.()??null;return!!t&&n.seedFromGameCamera(t)},frameContent:()=>n.focusOnScene()}),fe=()=>{K.cancel(),z=null};n.orbitControls.addEventListener("start",fe);const he=()=>Ir(n.camera,n.orbitControls.target);n.orbitControls.addEventListener("end",he);const Be=e.shell.onViewportAction(t=>{switch(t.type){case"focus-entity":{const l=Z(x(e.shell),e.objectMap,t.id);l&&n.focusOn(l);break}case"focus-scene":{{const l=Fr();if(l){n.camera.position.set(...l.position),n.orbitControls.target.set(...l.target),n.orbitControls.update();break}}z=e.sceneCameraLookup,K.begin(performance.now(),z!==null);break}case"focus-selection":{const l=x(e.shell),p=[...e.shell.selectedEntityIds].map(d=>Z(l,e.objectMap,d)).filter(d=>d!==null);n.focusOnMultiple(p);break}case"snap-selection-to-floor":n.snapSelectionToFloor();break;case"set-view-preset":n.setViewPreset(t.preset);break;case"step-view":n.stepView(t.step);break;case"frame-all":n.focusOnScene();break;case"zoom-view":n.zoomStep(t.direction);break;case"set-camera-pose":n.setPose(t.position,t.target,t.fov);break}});Lr();const ge=new ResizeObserver(()=>{const t=Math.max(1,o.clientWidth),l=Math.max(1,o.clientHeight);a.setSize(t,l),u.setSize(t,l),n.resize(t,l)});ge.observe(o);let W=performance.now(),N=!0,P=!1,be=!1;function ve(t){return Or(n.currentScene,()=>{E.render(a,n.currentScene,n.renderCamera),n.renderWithInfrastructure(()=>{vr(n.currentScene,()=>O.render(n.currentScene,e.shadingMode,()=>u.render(t),br)),n.renderViewCube(a),n.renderCameraPreview(a,U().preview?.camera??null,r.cameraPreview())})})}const He=ir(c,async()=>{if(P||!cr()||!o.checkVisibility({visibilityProperty:!0,checkVisibilityCSS:!0})||!ve(0))return null;const t=document.createElement("canvas");return t.width=c.width,t.height=c.height,t.getContext("2d").drawImage(c,0,0),t}),Y=()=>wt(e.shell)===e.shell;function qe(t,l){if(P)return;if(l&&(W=t),!o.checkVisibility({visibilityProperty:!0,checkVisibilityCSS:!0})){W=t,N=!0,n.resolvePresentation();return}g.beginFrame();const p=t-W,d=p/1e3;Y()&&(m.frameTime=p,m.fps=1e3/p),W=t,k.syncMarkers(d),K.tick(t),g.beginPhase(),n.update(d),r.runFrame(d),n.batchedRenderer.update(d),g.endPhase("editor"),g.beginPhase(),a.info.reset(),ze(()=>{ve(d)}),g.reportRender({gpuMs:We(),drawCalls:a.info.render.calls,triangles:a.info.render.triangles,geometries:a.info.memory.geometries,textures:a.info.memory.textures}),g.endPhase("render"),Y()&&(m.drawCalls=a.info.render.calls,m.triangles=a.info.render.triangles),N&&be&&(N=!1,vt(s)),g.endFrame();const w=oe(),C=w.position,y=w.target;Y()&&(m.cameraPosition.x=C.x,m.cameraPosition.y=C.y,m.cameraPosition.z=C.z,m.cameraTarget.x=y.x,m.cameraTarget.y=y.y,m.cameraTarget.z=y.z);const R=`${C.x},${C.y},${C.z},${y.x},${y.y},${y.z},${w.fov}`;R!==se&&(se=R,k.reportCamera())}n.objectMap=e.objectMap,n.syncFromStore(),T();let J,_;async function Xe(t){if(P)return;r.onMountStatus("mounting"),_?.(),_=void 0,J=t,r.onRootIds(t.childAdapters().filter(d=>d.role==="world"&&d.kind==="three").map(d=>d.worldId));const l=sr("three");if(P||J!==t)return;const p=l?await l.mountWorldRootSession({store:e,composite:t,renderer:a}):()=>{};if(P||J!==t){p();return}_=p,P||r.onMountStatus("ready")}const we=ar(e.shell,Xe);return we.ready.then(()=>dt(mt(e.shell))).catch(t=>{j.error(`Editor boot failed: ${t instanceof Error?t.message:String(t)}`,"scene"),r.onMountStatus("ready")}).finally(()=>{be=!0,N=!0}),{scene:b,viewport:n,frame:qe,present:t=>wr(e,t),setHelper:(t,l)=>n.setHelper(t,l),dispose:()=>{P=!0,Ne(),He(),ge.disconnect(),Ue(),Be(),Ge(),n.orbitControls.removeEventListener("start",le),n.orbitControls.removeEventListener("change",ue),n.orbitControls.removeEventListener("end",A),n.orbitControls.removeEventListener("start",fe),n.orbitControls.removeEventListener("end",he),we.dispose(),_?.(),k.dispose(),O.dispose(),L.dispose(),$e(),Qe(),_e(),De(),h?.selection.clear(),E.dispose(),u.dispose()}}}function Ur({store:r,rootIds:e,mountStatus:s}){f.useSyncExternalStore(r.shell.subscribe,r.shell.getSnapshot);const o=f.useSyncExternalStore(kt,Tt),c=f.useSyncExternalStore(At,Rt),a=r.scene?.background,m=a!==null&&!(a?.isColor===!0&&a.getHex()===11184810),u=f.useMemo(()=>!!(r.scene&&It(r.scene,{includeBackground:!1,ignoredLayer:Ke})),[r.scene,r.shell.contentVersion]),E=!!(r.scene&&(m||u)),O=Lt({surface:"Scene",rootIds:e,phase:s==="mounting"?"loading":"ready",content:E?"present":s==="mounting"?"unknown":"empty",readiness:o,failures:c});return i.jsx(Ft,{explanation:O,testId:"scene-viewport-status"})}function Br({store:r,documentId:e,cameraPreviewRef:s,mountStatus:o,rootIds:c}){f.useSyncExternalStore(r.shell.subscribe,r.shell.getShellSnapshot??r.shell.getSnapshot),f.useSyncExternalStore(Ct,xt),f.useSyncExternalStore(Mt,Vt),f.useSyncExternalStore(Pt,Et);const a=jt(r.shell,e,"document");return i.jsxs(i.Fragment,{children:[a.surface!==null?i.jsx(Ot,{}):null,a.surface==="three"?i.jsx(kr,{previewRef:s}):null,i.jsx(Ur,{store:r,rootIds:c,mountStatus:o})]})}const ko={mountWorldRootSurface:zr,installWorldRootStage:Gr,Overlays:Br};export{ko as worldRootStageBinding};
|
package/dist/assets/{xstate-animation-binding-Cvl5K9w5.js → xstate-animation-binding-DMnWdBYa.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{collectMachineAnimationMeta as V,clipNamesOf as L,isBlendTreeAnimationMeta as S,asBlendTreeDef as z}from"./xstate-animation-meta-
|
|
1
|
+
import{collectMachineAnimationMeta as V,clipNamesOf as L,isBlendTreeAnimationMeta as S,asBlendTreeDef as z}from"./xstate-animation-meta-DzRq8jno.js";import{cW as J,p as Z,c as _,cQ as ee,l as te,dk as ne,cf as ie,cd as oe}from"./three.core-3arARmh6.js";import"./index-BYdQuKKk.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";class M extends Error{constructor(i,c){super(i),this.stateId=c,this.name="AnimationBindingError"}}function ae(n){const i=n.logic;if(i?.root)return i;const c=n.getSnapshot();if(c?.machine?.root)return c.machine;throw new M("[bindXStateAnimation] the actor exposes no state machine — only a state-machine actor carries the `meta.animation` this binder reads")}const W=n=>n.layer??"base",B=n=>n.weight??1,I=n=>n.blendMode??"override";function T(n){try{return ne.parseTrackName(n.name).nodeName??""}catch{const i=n.name.indexOf(".");return i<0?n.name:n.name.slice(0,i)}}function C(n,i,c){const o=new Set,l=[];for(const f of i){let u=!1;n.traverse(m=>{m.name===f&&(u=!0,m.traverse(d=>{d.name&&o.add(d.name)}))}),c.has(f)&&(u=!0,o.add(f)),u||l.push(f)}return{names:o,missing:l}}function se(n,i,c,o){const l=new Set(n.tracks.map(T)),f=i.include?C(c,i.include,l):void 0,u=i.exclude?C(c,i.exclude,l):void 0,m=[...f?.missing??[],...u?.missing??[]];if(m.length)throw new M(`[bindXStateAnimation] state "${o}" boneMask names unknown bones/objects: ${m.join(", ")}`,o);const d=n.tracks.filter(p=>{const w=T(p);return(!f||f.names.has(w))&&!u?.names.has(w)});if(d.length===0)throw new M(`[bindXStateAnimation] state "${o}" boneMask removes every track from clip "${n.name}"`,o);return new te(n.name,n.duration,d.map(p=>p.clone()))}function re(n){return n.reduce((i,c)=>c.weight>i.weight?c:i,n[0])}function Se(n,i,c,o={}){const l=i.getRoot(),f=o.root??(l instanceof J?l:void 0);if(!f)throw new M("[bindXStateAnimation] a THREE.Object3D `root` option is required when the mixer uses AnimationObjectGroup");const u=ae(n).root,m=V(u),d=new Map(m.map(t=>[t.stateId,t.meta]));for(const t of m)for(const e of L(t.meta))if(!c.has(e))throw new M(`[bindXStateAnimation] state "${t.stateId}" references clip "${e}", which is not present in the supplied clips map. Known clips: ${[...c.keys()].join(", ")||"(none)"}`,t.stateId);const p=new Map;function w(t,e,s){return W(e)!=="base"||!!e.boneMask||I(e)==="additive"?`${t}\0${s}`:s}for(const{stateId:t,meta:e}of m)for(const s of L(e)){const a=w(t,e,s);if(p.has(a))continue;const r=c.get(s);let h=e.boneMask?se(r,e.boneMask,f,t):r;(h!==r||a!==s)&&(h===r&&(h=r.clone()),h.name=`${r.name}@${W(e)}:${t}`),I(e)==="additive"?(Z.makeClipAdditive(h),h.blendMode=_):h.blendMode=ee,p.set(a,h)}const g=new Map;function K(t,e,s,a){let r=g.get(t);if(!r){const h=p.get(t);if(!h)throw new M(`[bindXStateAnimation] prepared clip "${t}" not found`);const v=i.clipAction(h);v.setEffectiveWeight(0),v.play(),r={action:v,clip:h},g.set(t,r)}return r.action.setLoop(e?ie:oe,1/0),r.action.clampWhenFinished=!e,r.action.timeScale=s,r.action.weight=a,r.action}function N(t){const e=o.selectParameters?o.selectParameters(t):t;return new Map(Object.entries(e??{}))}function D(t,e,s){return(S(e)?ce(z(e.blendTree),N(s)):[{clip:e.clip,weight:1}]).map(({clip:r,weight:h})=>({clip:r,weight:h,actionKey:w(t,e,r)}))}const y=new Map;let O=!1;function R(t,e,s){for(const a of t){if(a.actionKey===e)continue;const r=g.get(a.actionKey)?.action;r&&(s>0?r.fadeOut(s):r.setEffectiveWeight(0))}}function k(t,e){if(!S(t.meta))return;t.natural=D(t.stateId,t.meta,e);const s=B(t.meta);for(const a of t.natural)g.get(a.actionKey)?.action.setEffectiveWeight(a.weight*s)}function P(t,e,s){const a=W(e),r=y.get(a)??null,h=D(t,e,s),v=re(h),H=S(e)?!0:e.loop,Q=S(e)?1:e.speed,x=B(e);for(const b of h)K(b.actionKey,H,Q,x);const $=g.get(v.actionKey).action;$.reset().setEffectiveWeight(x);for(const b of h)b.actionKey!==v.actionKey&&g.get(b.actionKey).action.reset().setEffectiveWeight(0);const A=e.crossfade?.duration??0,U=e.crossfade?.warp??!1;if(!r)A>0&&$.fadeIn(A);else{R(r.natural,r.dominantActionKey,A);const b=g.get(r.dominantActionKey)?.action;b&&A>0?b.crossFadeTo($,A,U):(b?.setEffectiveWeight(0),$.setEffectiveWeight(x))}const j={layer:a,stateId:t,meta:e,natural:h,dominantActionKey:v.actionKey,crossfadeRemaining:A};y.set(a,j),S(e)&&A<=0&&k(j,s)}function q(t){return Object.keys(t.getMeta()).filter(e=>d.has(e))}function X(t){const e=new Map;for(const s of q(t)){const a=d.get(s),r=W(a),h=e.get(r);if(h)throw new M(`[bindXStateAnimation] animated states "${h}" and "${s}" are both active on layer "${r}". Give parallel regions distinct meta.animation.layer names.`,s);e.set(r,s)}for(const[s,a]of y)e.has(s)||(R(a.natural,void 0,0),y.delete(s));for(const[s,a]of e)y.get(s)?.stateId!==a&&P(a,d.get(a),t.context)}const F=n.getSnapshot();X(F);const G=n.subscribe(t=>{O||X(t)});function E(t){if(O)return;const e=t,s=n.getSnapshot().context;for(const a of y.values())a.crossfadeRemaining>0?(a.crossfadeRemaining=Math.max(0,a.crossfadeRemaining-e),a.crossfadeRemaining<=0&&k(a,s)):k(a,s);i.update(e)}const Y={tick:E,actor:n,getParameters:()=>N(n.getSnapshot().context),getActiveLayers:()=>[...y.values()].map(t=>({layer:t.layer,stateId:t.stateId,clips:t.natural.map(e=>e.clip),clipWeights:t.natural.map(e=>({clip:e.clip,weight:g.get(e.actionKey)?.action.getEffectiveWeight()??0})),weight:B(t.meta),blendMode:I(t.meta),...t.meta.boneMask?{boneMask:t.meta.boneMask}:{}})),dispose(){if(!O){O=!0,o.systems?.remove("animation",E),G.unsubscribe();for(const{action:t,clip:e}of g.values())t.stop(),i.uncacheAction(e,t.getRoot());g.clear(),y.clear()}}};return o.systems?.add("animation",E),Y}function ce(n,i){switch(n.type){case"1D":return le(n,i);case"2D":return fe(n,i);case"direct":return de(n);default:return n.children.map(c=>({clip:c.clip,weight:1/n.children.length}))}}function le(n,i){const c=Number(i.get(n.parameter)??0),o=[...n.children].sort((f,u)=>f.threshold-u.threshold),l=o.map(f=>({clip:f.clip,weight:0}));if(o.length===0)return l;if(o.length===1||c<=o[0].threshold)return l[0].weight=1,l;if(c>=o[o.length-1].threshold)return l[l.length-1].weight=1,l;for(let f=0;f<o.length-1;f++){const u=o[f],m=o[f+1];if(c>=u.threshold&&c<=m.threshold){const d=m.threshold-u.threshold,p=d>0?(c-u.threshold)/d:0;return l[f].weight=1-p,l[f+1].weight=p,l}}return l}function fe(n,i){const c=Number(i.get(n.parameter)??0),o=Number(i.get(n.parameterY??"")??0),l=n.children,f=l.map(d=>({clip:d.clip,weight:0}));let u=0;const m=[];for(const d of l){const p=c-d.threshold,w=o-(d.thresholdY??0),g=Math.sqrt(p*p+w*w),K=g<.001?1e3:1/g;m.push(K),u+=K}if(u>0)for(let d=0;d<f.length;d++)f[d].weight=m[d]/u;return f}function de(n){const i=n.children.map(o=>({clip:o.clip,weight:o.weight??0})),c=i.reduce((o,l)=>o+l.weight,0);if(c>0)for(const o of i)o.weight/=c;return i}export{M as AnimationBindingError,Se as bindXStateAnimation,ce as evaluateBlendTree,ae as machineOfXStateActor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-
|
|
1
|
+
import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-BYdQuKKk.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";const d=o({clip:n().min(1).describe("Animation clip name this child plays"),threshold:r().describe("1D/2D blend position on the primary parameter axis"),thresholdY:r().optional().describe("2D blend position on the secondary parameter axis (2D blend trees only)"),weight:r().min(0).optional().describe('Explicit weight for "direct" blend trees (ignored by 1D/2D)')}).strict(),y=o({type:l("1D").describe("Interpolates linearly between sorted children by threshold"),parameter:n().min(1).describe("Context/selector value driving the blend"),children:c(d).min(2,"1D blend tree needs at least 2 children to interpolate between")}).strict(),v=o({type:l("2D").describe("Inverse-distance-weights children by (parameter, parameterY) position"),parameter:n().min(1).describe("Primary axis context/selector value"),parameterY:n().min(1).describe("Secondary axis context/selector value"),children:c(d.extend({thresholdY:r()})).min(1,"2D blend tree needs at least 1 child")}).strict(),g=o({type:l("direct").describe("Each child has an explicit weight, normalized to sum to 1"),parameter:n().default(""),children:c(d.extend({weight:r().min(0)})).min(1,"direct blend tree needs at least 1 child")}).strict(),A=b("type",[y,v,g]);function Y(e){return e}const p=o({duration:r().min(0).default(0).describe("Seconds to blend from the previously active clip into this state on entry, applied via native `AnimationAction.crossFadeTo`/`fadeIn` (E2). 0 = instant activation, no fade."),warp:m().default(!1).describe("Passed through to AnimationAction.crossFadeTo's `warp` param — linearly warps timeScale across the two clips during the blend so differing clip lengths line up. Default false.")}).strict().describe("Blend-in/out/crossfade timing for entering this state"),x=o({include:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are retained"),exclude:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are removed")}).strict().refine(e=>!!(e.include?.length||e.exclude?.length),{message:"boneMask needs at least one include or exclude bone name"}).describe("Filters animation tracks by named Object3D/Bone subtrees"),h={layer:n().min(1).optional().describe("Composition layer name; omitted means the single base layer"),weight:r().min(0).max(1).optional().describe("Layer weight multiplier from 0 to 1; defaults to 1"),blendMode:f(["override","additive"]).optional().describe("Native Three normal/override or additive action blending; defaults to override"),boneMask:x.optional().describe("Optional include/exclude filter applied to every clip track in this state")},w=o({clip:n().min(1).describe("Single clip to play while this XState state is active"),loop:m().default(!0).describe("Loop the clip (THREE.LoopRepeat) vs play once (THREE.LoopOnce, clamped on last frame)"),speed:r().positive().default(1).describe("Playback speed multiplier (AnimationAction.timeScale)"),crossfade:p.optional(),...h}).strict(),S=o({blendTree:A.describe("Multiple clips blended by a live context/selector-driven parameter"),crossfade:p.optional(),...h}).strict(),D=u([w,S]);function M(e){return"clip"in e}function $(e){return"blendTree"in e}class T extends Error{constructor(a,i,t){super(a),this.stateId=i,this.issues=t,this.name="AnimationMetaValidationError"}}function B(e,a){const i=D.safeParse(a);if(!i.success){const t=i.error.issues.map(s=>`${s.path.length?s.path.join("."):"(root)"}: ${s.message}`).join("; ");throw new T(`[xstate-animation] invalid meta.animation for state "${e}": ${t}`,e,i.error.issues)}return i.data}function R(e){const a=[],i=t=>{t.meta&&"animation"in t.meta&&t.meta.animation!==void 0&&a.push({stateId:t.id,meta:B(t.id,t.meta.animation)});for(const s of Object.values(t.states??{}))i(s)};return i(e),a}function H(e){return M(e)?[e.clip]:e.blendTree.children.map(a=>a.clip)}export{A as AnimationBlendTreeSchema,T as AnimationMetaValidationError,D as StateAnimationMetaSchema,Y as asBlendTreeDef,H as clipNamesOf,R as collectMachineAnimationMeta,$ as isBlendTreeAnimationMeta,M as isClipAnimationMeta,B as parseStateAnimationMeta};
|
package/dist-node/cli.js
CHANGED
|
@@ -2317,7 +2317,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
|
2317
2317
|
var package_default = {
|
|
2318
2318
|
name: "@volter/game-editor",
|
|
2319
2319
|
author: "Volter AI, Inc.",
|
|
2320
|
-
version: "0.5.
|
|
2320
|
+
version: "0.5.110",
|
|
2321
2321
|
publishConfig: {
|
|
2322
2322
|
access: "public"
|
|
2323
2323
|
},
|
|
@@ -2366,22 +2366,22 @@ var package_default = {
|
|
|
2366
2366
|
}
|
|
2367
2367
|
},
|
|
2368
2368
|
dependencies: {
|
|
2369
|
-
"@volter/editor-core": "0.5.
|
|
2370
|
-
"@volter/editor-game": "0.5.
|
|
2371
|
-
"@volter/editor-react": "0.5.
|
|
2372
|
-
"@volter/editor-threejs": "0.5.
|
|
2373
|
-
"@volter/editor-xstate": "0.5.
|
|
2374
|
-
"@volter/editor-blender": "0.1.
|
|
2375
|
-
"@volter/dawproject": "0.5.
|
|
2376
|
-
"@volter/editor-dawproject": "0.5.
|
|
2377
|
-
"@volter/blender-engine": "0.1.
|
|
2378
|
-
"@volter/editor-project": "0.5.
|
|
2379
|
-
"@volter/editor-sdk": "0.5.
|
|
2380
|
-
"@volter/editor-live": "0.5.
|
|
2381
|
-
"@volter/game-live": "0.5.
|
|
2369
|
+
"@volter/editor-core": "0.5.110",
|
|
2370
|
+
"@volter/editor-game": "0.5.110",
|
|
2371
|
+
"@volter/editor-react": "0.5.110",
|
|
2372
|
+
"@volter/editor-threejs": "0.5.110",
|
|
2373
|
+
"@volter/editor-xstate": "0.5.110",
|
|
2374
|
+
"@volter/editor-blender": "0.1.50",
|
|
2375
|
+
"@volter/dawproject": "0.5.110",
|
|
2376
|
+
"@volter/editor-dawproject": "0.5.110",
|
|
2377
|
+
"@volter/blender-engine": "0.1.48",
|
|
2378
|
+
"@volter/editor-project": "0.5.110",
|
|
2379
|
+
"@volter/editor-sdk": "0.5.110",
|
|
2380
|
+
"@volter/editor-live": "0.5.110",
|
|
2381
|
+
"@volter/game-live": "0.5.110",
|
|
2382
2382
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
2383
|
-
"@volter/game-runtime": "0.5.
|
|
2384
|
-
"@volter/threejs-runtime": "0.5.
|
|
2383
|
+
"@volter/game-runtime": "0.5.110",
|
|
2384
|
+
"@volter/threejs-runtime": "0.5.110",
|
|
2385
2385
|
undici: "7.29.1",
|
|
2386
2386
|
typescript: "5.9.3",
|
|
2387
2387
|
"@colyseus/schema": "^4.0.14",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volter/game-editor",
|
|
3
3
|
"author": "Volter AI, Inc.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.110",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -50,22 +50,22 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@volter/editor-core": "0.5.
|
|
54
|
-
"@volter/editor-game": "0.5.
|
|
55
|
-
"@volter/editor-react": "0.5.
|
|
56
|
-
"@volter/editor-threejs": "0.5.
|
|
57
|
-
"@volter/editor-xstate": "0.5.
|
|
58
|
-
"@volter/editor-blender": "0.1.
|
|
59
|
-
"@volter/dawproject": "0.5.
|
|
60
|
-
"@volter/editor-dawproject": "0.5.
|
|
61
|
-
"@volter/blender-engine": "0.1.
|
|
62
|
-
"@volter/editor-project": "0.5.
|
|
63
|
-
"@volter/editor-sdk": "0.5.
|
|
64
|
-
"@volter/editor-live": "0.5.
|
|
65
|
-
"@volter/game-live": "0.5.
|
|
53
|
+
"@volter/editor-core": "0.5.110",
|
|
54
|
+
"@volter/editor-game": "0.5.110",
|
|
55
|
+
"@volter/editor-react": "0.5.110",
|
|
56
|
+
"@volter/editor-threejs": "0.5.110",
|
|
57
|
+
"@volter/editor-xstate": "0.5.110",
|
|
58
|
+
"@volter/editor-blender": "0.1.50",
|
|
59
|
+
"@volter/dawproject": "0.5.110",
|
|
60
|
+
"@volter/editor-dawproject": "0.5.110",
|
|
61
|
+
"@volter/blender-engine": "0.1.48",
|
|
62
|
+
"@volter/editor-project": "0.5.110",
|
|
63
|
+
"@volter/editor-sdk": "0.5.110",
|
|
64
|
+
"@volter/editor-live": "0.5.110",
|
|
65
|
+
"@volter/game-live": "0.5.110",
|
|
66
66
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
67
|
-
"@volter/game-runtime": "0.5.
|
|
68
|
-
"@volter/threejs-runtime": "0.5.
|
|
67
|
+
"@volter/game-runtime": "0.5.110",
|
|
68
|
+
"@volter/threejs-runtime": "0.5.110",
|
|
69
69
|
"undici": "7.29.1",
|
|
70
70
|
"typescript": "5.9.3",
|
|
71
71
|
"@colyseus/schema": "^4.0.14",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-BXWWtzBN.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-BMZxpcut.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-D-sKmDua.js";import"./workspace-arrangement-avVz3tND.js";import"./index-FuK_gLVP.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-thHakLdm.js";import"./entity-object-Ai-uXVow.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-D_mr_kfU.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-CyrGt6dv.js";import"./studio-environment-Bj3Hi-UK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./StageHost-BStYoTUX.js";import"./three-state-DNgFvLbw.js";import"./standard-viewport-dressing-wQb-yfhP.js";import"./content-bounds-CaZcBNYF.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-UeCSuDl8.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-CmpZSo8j.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-n5yOZ3A6.js";import"./object3d-document-session-registry-yyskXT42.js";import"./component-instance-root-BNDWrUkC.js";import"./viewport-door-BfcEF1aj.js";import"./model-inspection-CRXVM5Wz.js";import"./three-viewport-presentation-5KZ0zq__.js";import"./clip-planes-CnAI6DZn.js";import"./three-CQVC3sHg.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-Rs5Y89nN.js";import"./source-object3d-authoring-adapter-Ckfk03in.js";import"./three-projection-core-Ckpx-u5r.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-B6uA0CS2.js";import"./viewport-surface-status-B-dxhyXW.js";function ut({previewKey:o,object:r,displayName:i,fill:p=!1}){return t.jsx("div",{"data-testid":"inspector-object-preview",style:p?{position:"absolute",inset:0,overflow:"hidden"}:{width:"100%",height:220,minHeight:220,borderBottom:"1px solid var(--volter-structural-divider)",overflow:"hidden",position:"relative"},children:t.jsx(m,{documentId:`inspector-preview:${o}`,source:r,displayName:i,active:!0,chromeless:!0})})}export{ut as InspectorObjectPreview};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StageHost-BStYoTUX.js","assets/index-FuK_gLVP.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-DNgFvLbw.js","assets/editor-shell-store-BMZxpcut.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-D-sKmDua.js","assets/workspace-arrangement-avVz3tND.js","assets/user-data-thHakLdm.js","assets/entity-object-Ai-uXVow.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-wQb-yfhP.js","assets/content-bounds-CaZcBNYF.js","assets/hierarchy-marks-CyrGt6dv.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/three-integration-UeCSuDl8.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-CmpZSo8j.js","assets/root-stacking-BEd9ZvxC.js","assets/model-thumbnail-n5yOZ3A6.js","assets/studio-environment-Bj3Hi-UK.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/object3d-document-session-registry-yyskXT42.js","assets/component-instance-root-BNDWrUkC.js","assets/viewport-door-BfcEF1aj.js","assets/asset-preview-D_mr_kfU.js","assets/bitmap-label-Ct4k6ehY.js","assets/model-inspection-CRXVM5Wz.js","assets/three-viewport-presentation-5KZ0zq__.js","assets/clip-planes-CnAI6DZn.js","assets/three-CQVC3sHg.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/scene-framing-Rs5Y89nN.js","assets/source-object3d-authoring-adapter-Ckfk03in.js","assets/three-projection-core-Ckpx-u5r.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-B6uA0CS2.js","assets/viewport-surface-status-B-dxhyXW.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ak as r,_ as a}from"./index-FuK_gLVP.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-B-dxhyXW.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-BStYoTUX.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 +0,0 @@
|
|
|
1
|
-
import{T as i,r as m}from"./index-FuK_gLVP.js";import{e as p}from"./game-network--h-FxD5b.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-DCjfoqQ_.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-DKNGAsE6.js";import"./contract-system-adapters-BeyBY6uU.js";import"./game-contract-seams-DOVpGKKj.js";import"./seeded-random-DMenDilU.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-BPAULlyy.js";import"./capability-coverage-D9QD-rt7.js";import"./edit-mode-authoring-BfHszfD3.js";import"./json-history-resource-Lm6Gsl0p.js";import"./binding-resolver-DWeB_XxW.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CIoOWxZe.js";import"./canvas-entry-runtime-DRbpmRh6.js";import"./three-ingest-runtime-ClA0ZFjY.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-P-9N-lwD.js";import"./ingest-source-persistence-DWpLWVYc.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-BPc-lH1E.js";import"./mounted-authoring-BRUN-BOo.js";import"./entity-object-Ai-uXVow.js";import"./user-data-thHakLdm.js";import"./workspace-arrangement-avVz3tND.js";import"./three-contract-Dkt6PmWY.js";import"./three-CQVC3sHg.js";import"./editor-layers-D-sKmDua.js";import"./component-instance-root-BNDWrUkC.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-C5QXFs1Q.js";import"./source-persistence-backend-D2wE734G.js";import"./three-projection-core-Ckpx-u5r.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-Cy9jQdnd.js";import"./deferred-ingest-play-BYWgrVZN.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DDSKeNtx.js";import"./board-guides-D-8XTzQj.js";import"./relative-import-specifier-BHYY_mHM.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-G9yzBKkf.js";import"./inference-diagnostics-D771II31.js";import"./writer-tw6EcuVO.js";import"./three-state-DNgFvLbw.js";import"./editor-shell-store-BMZxpcut.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BfcEF1aj.js";import"./game-surface-defaults-D8S4cRxi.js";const Ut="workspace.service";function e(o){p().catch(t=>{m().console.error(`${o}: ${t instanceof Error?t.message:String(t)}`,"play")})}function bt(){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{Ut as point,bt as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ah as m}from"./index-FuK_gLVP.js";import{b as p,a as e,c as n,s}from"./game-network--h-FxD5b.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-DCjfoqQ_.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-DKNGAsE6.js";import"./contract-system-adapters-BeyBY6uU.js";import"./game-contract-seams-DOVpGKKj.js";import"./seeded-random-DMenDilU.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-BPAULlyy.js";import"./capability-coverage-D9QD-rt7.js";import"./edit-mode-authoring-BfHszfD3.js";import"./json-history-resource-Lm6Gsl0p.js";import"./binding-resolver-DWeB_XxW.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CIoOWxZe.js";import"./canvas-entry-runtime-DRbpmRh6.js";import"./three-ingest-runtime-ClA0ZFjY.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-P-9N-lwD.js";import"./ingest-source-persistence-DWpLWVYc.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-BPc-lH1E.js";import"./mounted-authoring-BRUN-BOo.js";import"./entity-object-Ai-uXVow.js";import"./user-data-thHakLdm.js";import"./workspace-arrangement-avVz3tND.js";import"./three-contract-Dkt6PmWY.js";import"./three-CQVC3sHg.js";import"./editor-layers-D-sKmDua.js";import"./component-instance-root-BNDWrUkC.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-C5QXFs1Q.js";import"./source-persistence-backend-D2wE734G.js";import"./three-projection-core-Ckpx-u5r.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-Cy9jQdnd.js";import"./deferred-ingest-play-BYWgrVZN.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DDSKeNtx.js";import"./board-guides-D-8XTzQj.js";import"./relative-import-specifier-BHYY_mHM.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-G9yzBKkf.js";import"./inference-diagnostics-D771II31.js";import"./writer-tw6EcuVO.js";import"./three-state-DNgFvLbw.js";import"./editor-shell-store-BMZxpcut.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BfcEF1aj.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.command",a=()=>({ok:!1,error:"not in play mode — start play before using the debug seam"}),Bt={"set-instance-count":{derivedRefresh:"always",handle:o=>{if(!e())return a();const r=o.names;if(Array.isArray(r)&&r.every(i=>typeof i=="string"))return r.length<1?{ok:!1,error:'set-instance-count "names" must have at least one entry.'}:(n(r),{ok:!0});const t=o.count;return typeof t!="number"||!Number.isFinite(t)||t<1?{ok:!1,error:`set-instance-count requires a whole "count" >= 1 (or a "names" array), got ${String(t)}.`}:(s(Math.floor(t)-1),{ok:!0})}},"list-instances":{derivedRefresh:"if-content-changed",handle:()=>({ok:!0,data:{instances:m(),named:p()}})}};export{Bt as commands,zt as point};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as t}from"./game-network--h-FxD5b.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FuK_gLVP.js";import"./index-nmcBqr7Y.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"./native-debug-module-DCjfoqQ_.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-DKNGAsE6.js";import"./contract-system-adapters-BeyBY6uU.js";import"./game-contract-seams-DOVpGKKj.js";import"./seeded-random-DMenDilU.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-BPAULlyy.js";import"./capability-coverage-D9QD-rt7.js";import"./edit-mode-authoring-BfHszfD3.js";import"./json-history-resource-Lm6Gsl0p.js";import"./binding-resolver-DWeB_XxW.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CIoOWxZe.js";import"./canvas-entry-runtime-DRbpmRh6.js";import"./three-ingest-runtime-ClA0ZFjY.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-P-9N-lwD.js";import"./ingest-source-persistence-DWpLWVYc.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-BPc-lH1E.js";import"./mounted-authoring-BRUN-BOo.js";import"./entity-object-Ai-uXVow.js";import"./user-data-thHakLdm.js";import"./workspace-arrangement-avVz3tND.js";import"./three-contract-Dkt6PmWY.js";import"./three-CQVC3sHg.js";import"./editor-layers-D-sKmDua.js";import"./component-instance-root-BNDWrUkC.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-C5QXFs1Q.js";import"./source-persistence-backend-D2wE734G.js";import"./three-projection-core-Ckpx-u5r.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-Cy9jQdnd.js";import"./deferred-ingest-play-BYWgrVZN.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DDSKeNtx.js";import"./board-guides-D-8XTzQj.js";import"./relative-import-specifier-BHYY_mHM.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-G9yzBKkf.js";import"./inference-diagnostics-D771II31.js";import"./writer-tw6EcuVO.js";import"./three-state-DNgFvLbw.js";import"./editor-shell-store-BMZxpcut.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BfcEF1aj.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.service";function At(){t()}export{zt as point,At as start};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-design-session-DtYg0f6U.js","assets/index-FuK_gLVP.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/edit-mode-authoring-BfHszfD3.js","assets/game-network--h-FxD5b.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-DCjfoqQ_.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-DKNGAsE6.js","assets/contract-system-adapters-BeyBY6uU.js","assets/game-contract-seams-DOVpGKKj.js","assets/seeded-random-DMenDilU.js","assets/game-audio-BeCyd0Ha.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-BPAULlyy.js","assets/capability-coverage-D9QD-rt7.js","assets/json-history-resource-Lm6Gsl0p.js","assets/binding-resolver-DWeB_XxW.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-CIoOWxZe.js","assets/canvas-entry-runtime-DRbpmRh6.js","assets/three-ingest-runtime-ClA0ZFjY.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-P-9N-lwD.js","assets/ingest-source-persistence-DWpLWVYc.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-BPc-lH1E.js","assets/mounted-authoring-BRUN-BOo.js","assets/entity-object-Ai-uXVow.js","assets/user-data-thHakLdm.js","assets/workspace-arrangement-avVz3tND.js","assets/three-contract-Dkt6PmWY.js","assets/three-CQVC3sHg.js","assets/editor-layers-D-sKmDua.js","assets/component-instance-root-BNDWrUkC.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-C5QXFs1Q.js","assets/source-persistence-backend-D2wE734G.js","assets/three-projection-core-Ckpx-u5r.js","assets/body-marks-C1LxJtQb.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-Cy9jQdnd.js","assets/deferred-ingest-play-BYWgrVZN.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-DDSKeNtx.js","assets/board-guides-D-8XTzQj.js","assets/relative-import-specifier-BHYY_mHM.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-G9yzBKkf.js","assets/inference-diagnostics-D771II31.js","assets/writer-tw6EcuVO.js","assets/three-state-DNgFvLbw.js","assets/editor-shell-store-BMZxpcut.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-BfcEF1aj.js","assets/game-surface-defaults-D8S4cRxi.js","assets/scene-framing-Rs5Y89nN.js","assets/assets-BcrMQHRv.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/create-runtime-DEL8IBsg.js","assets/binding-Bmxqznjk.js","assets/root-stacking-BEd9ZvxC.js","assets/setup-renderer-FNGzSUCJ.js","assets/index-DHhMOs_s.js","assets/defaults-DKiBJCPN.js","assets/render-settings-y6lgf9KB.js","assets/render-features-Dt3ItOxf.js","assets/loop-gate-report-N52EWFGD.js","assets/system-slot-E2mEdiih.js","assets/performance-profiler-CMbwGBuk.js","assets/live-gesture-lock-DJbrjOqf.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as s,aF as n}from"./index-FuK_gLVP.js";import{r as a}from"./design-time-mount-registry-DUpXCg1U.js";import{q as c}from"./edit-mode-authoring-BfHszfD3.js";import{a as u}from"./json-history-resource-Lm6Gsl0p.js";import{o as h}from"./three-authoring-adapter-C5QXFs1Q.js";import{t as i}from"./editor-shell-store-BMZxpcut.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"./component-instance-root-BNDWrUkC.js";import"./user-data-thHakLdm.js";import"./workspace-arrangement-avVz3tND.js";import"./source-persistence-backend-D2wE734G.js";import"./ingest-source-persistence-DWpLWVYc.js";import"./three-projection-core-Ckpx-u5r.js";import"./editor-layers-D-sKmDua.js";import"./three-CQVC3sHg.js";import"./entity-object-Ai-uXVow.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three.core-3arARmh6.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"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-Cy9jQdnd.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./Pass-D1MRT672.js";const U="workspace.service";function X(){const r=s(()=>import("./r3f-design-session-DtYg0f6U.js"),__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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]));r.catch(()=>{});const m=n("three",(t,o)=>h(i(t),()=>i(t).scene,o,u(o))),e=a({kind:"three",owner:"@volter/editor-game/three/three-authoring",async mountWorldRootSession(t){const o=t,{mountR3FDesignSession:p}=await r;return p(o.store,o.composite,o.renderer)}});return c(),()=>{e(),m()}}export{U as point,X as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as r}from"./three-integration-UeCSuDl8.js";import"./index-FuK_gLVP.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"./host-hierarchy-objects-BV3WqU2w.js";import"./renderer-ownership-BovSEcLv.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.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"./layered-pick-CmpZSo8j.js";import"./root-stacking-BEd9ZvxC.js";import"./user-data-thHakLdm.js";import"./workspace-arrangement-avVz3tND.js";import"./model-thumbnail-n5yOZ3A6.js";import"./studio-environment-Bj3Hi-UK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-yyskXT42.js";import"./three-state-DNgFvLbw.js";import"./editor-shell-store-BMZxpcut.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./editor-layers-D-sKmDua.js";import"./entity-object-Ai-uXVow.js";import"./three-contract-Dkt6PmWY.js";import"./hierarchy-marks-CyrGt6dv.js";import"./component-instance-root-BNDWrUkC.js";import"./viewport-door-BfcEF1aj.js";import"./content-bounds-CaZcBNYF.js";import"./asset-preview-D_mr_kfU.js";import"./bitmap-label-Ct4k6ehY.js";const Q="workspace.service";function R(){return r()}export{Q as point,R as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as t}from"./index-FuK_gLVP.js";import{r as m}from"./index-nmcBqr7Y.js";import{P as p}from"./PlayBar-DCrB4B1r.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-cHt-z2BW.js";import"./run-selection-DkkDSK2k.js";import"./game-network--h-FxD5b.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-DCjfoqQ_.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-DKNGAsE6.js";import"./contract-system-adapters-BeyBY6uU.js";import"./game-contract-seams-DOVpGKKj.js";import"./seeded-random-DMenDilU.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-BPAULlyy.js";import"./capability-coverage-D9QD-rt7.js";import"./edit-mode-authoring-BfHszfD3.js";import"./json-history-resource-Lm6Gsl0p.js";import"./binding-resolver-DWeB_XxW.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CIoOWxZe.js";import"./canvas-entry-runtime-DRbpmRh6.js";import"./three-ingest-runtime-ClA0ZFjY.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-P-9N-lwD.js";import"./ingest-source-persistence-DWpLWVYc.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-BPc-lH1E.js";import"./mounted-authoring-BRUN-BOo.js";import"./entity-object-Ai-uXVow.js";import"./user-data-thHakLdm.js";import"./workspace-arrangement-avVz3tND.js";import"./three-contract-Dkt6PmWY.js";import"./three-CQVC3sHg.js";import"./editor-layers-D-sKmDua.js";import"./component-instance-root-BNDWrUkC.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-C5QXFs1Q.js";import"./source-persistence-backend-D2wE734G.js";import"./three-projection-core-Ckpx-u5r.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-Cy9jQdnd.js";import"./deferred-ingest-play-BYWgrVZN.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DDSKeNtx.js";import"./board-guides-D-8XTzQj.js";import"./relative-import-specifier-BHYY_mHM.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-G9yzBKkf.js";import"./inference-diagnostics-D771II31.js";import"./writer-tw6EcuVO.js";import"./three-state-DNgFvLbw.js";import"./editor-shell-store-BMZxpcut.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BfcEF1aj.js";import"./game-surface-defaults-D8S4cRxi.js";const Dr="workspace.header",Fr=0;function Gr(){const{project:r}=t();return m.useSyncExternalStore(r.subscribe,r.mounts,r.mounts)?o.jsx(p,{}):null}export{Gr as default,Fr as order,Dr as point};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const w="/work/.volter-session",me=`${w}/session.py`,be=[`${w}/in`,`${w}/reply`],F="/__editor/blender-wasm";function ge(e){return e.startsWith("@@VOLTER-ERROR")?"error":e.startsWith("@@VOLTER-WARN")?"warn":"log"}function H(e){return new URL(`${F}/${e}`,import.meta.url).href}async function z(){const e=await fetch(H("status"));return e.ok?await e.json():{available:!1,skew:null,dir:null,sizes:{},encoded:{},missing:[`${F}/status answered ${e.status}`]}}async function V(e){const t=await z();if(!t.available)throw new Error(`The headless Blender WebAssembly build is not served by this editor: ${t.missing.join("; ")}`);if(t.skew==="wali"){const{startWaliBlenderEngine:r}=await import("./blender-wali-engine-NtBfKpqX.js");return r(e,t)}const{startEmscriptenBlenderEngine:n}=await import("./blender-emscripten-engine-RAyyfT0y.js");return n(e,t)}function K(e){return e<200?1:e<5e3?5:25}const G=e=>new Promise(t=>setTimeout(t,e)),L=new TextDecoder;function $e(e,t,n){let r=0,s=0;const o=new Set;async function a(u){for(const l of o)u.has(`${l}.done`)||(await e.unlink(`${w}/reply/${l}.json`),await e.unlink(`${w}/reply/${l}.done`),o.delete(l))}async function i(){let u;try{u=await e.readdir(`${w}/ask`)}catch{return}const l=new Set(u.filter(h=>h.endsWith(".done")));await a(l);for(const h of l){const d=h.slice(0,-5);if(Number(d)<=s)continue;s=Number(d);const p=JSON.parse(L.decode(await e.readFile(`${w}/ask/${d}.json`)));let f;try{f=await t.ask(p)}catch(y){f={error:y instanceof Error?y.message:String(y)}}await Promise.all([e.writeFile(`${w}/reply/${d}.json`,JSON.stringify(f??null)),e.writeFile(`${w}/reply/${d}.done`,"1")]),o.add(d)}}async function c(u){const l=String(++r);await Promise.all([e.writeFile(`${w}/in/${l}.json`,JSON.stringify(u)),e.writeFile(`${w}/in/${l}.done`,"1")]);const h=performance.now();for(;;){if(await i(),await e.stat(`${w}/out/${l}.done`)){const f=JSON.parse(L.decode(await e.readFile(`${w}/out/${l}.json`)));if(await e.unlink(`${w}/in/${l}.json`),await e.unlink(`${w}/in/${l}.done`),f.error)throw new Error(f.error);return f.result}const d=n?.();if(d)throw new Error(`Blender is gone, so this call will never be answered: ${d}. The session keeps its directory and its cached banner, so every later call would wait on the same missing answer; start a new program with \`blender-start {fresh: true}\` (\`VOLTER_BLENDER_FRESH_SESSION=1\` for the battery harness).`);const p=K(performance.now()-h);await(e.changed?e.changed(p):G(p))}}return{request:c}}const X=256*1024,Q=4*1024*1024,Y=(1<<20)-1,Z=(()=>{const e=new Uint32Array(256);let t=2654435769;for(let n=0;n<256;n+=1)t^=t<<13,t^=t>>>17,t^=t<<5,e[n]=t>>>0;return e})();function q(e){const t=[];let n=0;for(;n<e.length;){const r=Math.min(e.length,n+Q);let s=r,o=0;for(let a=n+Math.min(X,r-n);a<r;a+=1)if(o=(o<<1)+Z[e[a]]>>>0,(o&Y)===0){s=a+1;break}t.push(s),n=s}return t}async function ee(e){const t=[];let n=0;for(const r of q(e)){const s=new Uint8Array(await crypto.subtle.digest("SHA-256",e.slice(n,r)));t.push({hash:Array.from(s,o=>o.toString(16).padStart(2,"0")).join(""),start:n,end:r}),n=r}return t}const O=e=>typeof e=="object"&&e!==null&&typeof e.offset=="number"&&typeof e.length=="number"&&typeof e.dtype=="string"&&typeof e.count=="number"&&typeof e.stride=="number",te={f32:e=>new Float32Array(e.buffer,e.byteOffset,e.byteLength>>2),f64:e=>new Float64Array(e.buffer,e.byteOffset,e.byteLength>>3),u32:e=>new Uint32Array(e.buffer,e.byteOffset,e.byteLength>>2),i32:e=>new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),u16:e=>new Uint16Array(e.buffer,e.byteOffset,e.byteLength>>1),i16:e=>new Int16Array(e.buffer,e.byteOffset,e.byteLength>>1),u8:e=>e,i8:e=>new Int8Array(e.buffer,e.byteOffset,e.byteLength)};function ne(e,t,n){const r=te[n.dtype];if(!r)throw new Error(`Blender frame column ${t}: unknown dtype ${n.dtype}`);const{offset:s,length:o}=n;if(s<0||o<0||s+o>e.byteLength)throw new Error(`Blender frame column ${t}: bytes ${s}..${s+o} lie outside the ${e.byteLength}-byte export arena`);const a=e.subarray(s,s+o).slice(),i=r(a),c=n.count*n.stride;if(i.length!==c)throw new Error(`Blender frame column ${t}: ${i.length} values, ${c} declared (${n.count} x ${n.stride})`);return i}function A(e,t){const n=(r,s)=>{if(O(r)){const o=ne(e,s,r);return s==="co"?Float64Array.from(o):o}if(Array.isArray(r))return r.map(o=>n(o,s));if(typeof r=="object"&&r!==null){const o={};for(const[a,i]of Object.entries(r))o[a]=n(i,a);return o}return r};return n(t,"")}async function T(e,t){const n=async(r,s)=>{if(O(r)){const{offset:o,length:a,dtype:i}=r;if(o<0||a<0||o+a>e.byteLength)throw new Error(`Blender frame column ${s}: bytes ${o}..${o+a} lie outside the ${e.byteLength}-byte export arena`);const c=e.subarray(o,o+a).slice(),u=await crypto.subtle.digest("SHA-256",c),l=[...new Uint8Array(u)].map(h=>h.toString(16).padStart(2,"0")).join("");return{dtype:i,length:a,sha256:l}}if(Array.isArray(r))return Promise.all(r.map(o=>n(o,s)));if(typeof r=="object"&&r!==null){const o={};for(const[a,i]of Object.entries(r))o[a]=await n(i,a);return o}return r};return n(t,"")}const E=e=>self.postMessage(e),R=(e,t)=>E({op:"log",level:e,text:t});let $=null,v=null,re=0;const B=new Map;function oe(e,t,n){const r=++re,s=[],o=e;for(const a of[o?.meshes??{},o?.images??{}])for(const i of Object.values(a))for(const c of Object.values(i))ArrayBuffer.isView(c)&&c.buffer instanceof ArrayBuffer&&!s.includes(c.buffer)&&s.push(c.buffer);return new Promise((a,i)=>{B.set(r,{resolve:a,reject:i}),self.postMessage({op:"present",id:r,frame:e,description:t,...n?{capture:n}:{}},s)})}let m=null,j=null,N=!1,_=Promise.resolve();function se(e){const t=_.then(e);return _=t.catch(()=>{}),t}let g=null;async function ae(e,t){const n=new Map,r=async(s,o)=>{if(O(s)){n.set(s.offset,{typed:A(e,{[o]:s})[o],description:await T(e,s)});return}if(Array.isArray(s))for(const a of s)await r(a,o);else if(typeof s=="object"&&s!==null)for(const[a,i]of Object.entries(s))await r(i,a)};return await r(t,""),n}function ie(e,t){const n=r=>{const s=(o,a)=>{if(O(o)){const c=e.columns.get(o.offset);if(!c)throw new Error(`Blender frame column ${a.join(".")}: not in the held frame`);return c[r]}if(Array.isArray(o))return o.map(c=>s(c,a));if(typeof o!="object"||o===null)return o;if(o.deferred===!0){const[c,u]=a.slice(-2),l=(c==="meshes"?e.meshes:e.images).get(u);if(!l)throw new Error(`Blender frame ${c} ${u}: deferred and never pulled`);return l[r]}const i={};for(const[c,u]of Object.entries(o))i[c]=s(u,[...a,c]);return i};return s(t,[])};return{typed:n("typed"),description:n("description")}}function C(e){N=e,E({op:"document-dirty",dirty:e})}async function U(){if(!m||j===null)return;const e=j,t={};let n=performance.now();const r=i=>{const c=performance.now();t[i]=Math.round(c-n),n=c};let s;try{s=await m.request({op:"save-document"}),r("save")}catch(i){throw new Error(`The Blender document ${e} could not be saved: ${S(i)}`)}if(!s?.saved||typeof s.path!="string")throw new Error(`Blender did not save the document ${e}`);let o;try{o=await m.files.readFile(s.path),r("read")}catch(i){throw new Error(`The Blender document ${e} could not be read back out of the engine: ${S(i)}`)}b.delete(s.path);let a=0;try{const i=await ee(o);r("chunk");const c=`path=${encodeURIComponent(e)}`,u=JSON.stringify({chunks:i.map(({hash:l,start:h,end:d})=>[l,d-h])});for(let l=0;;l+=1){const h=await fetch(`/__editor/blender-document?${c}`,{method:"POST",headers:{"content-type":"application/json"},body:u}),d=await h.json().catch(()=>null);if(r(`manifest${l}`),!h.ok)throw new Error(`HTTP ${h.status} ${d?.error??""}`);if(d?.ok){for(const[f,y]of Object.entries(d.ms??{}))t[`server.${f}`]=y;break}if(l===2||!Array.isArray(d?.missing))throw new Error(`the server still lacks ${d?.missing?.length??"?"} chunks`);const p=new Set(d.missing);for(const f of i){if(!p.delete(f.hash))continue;const y=await fetch(`/__editor/blender-document-chunk?${c}&hash=${f.hash}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o.subarray(f.start,f.end)])});if(!y.ok)throw new Error(`HTTP ${y.status} ${await y.text().catch(()=>"")}`);a+=f.end-f.start}r(`send${l}`)}}catch(i){throw new Error(`The Blender document ${e} was not written to the project: ${S(i)}`)}C(!1),R("log",`@@VOLTER-DOCUMENT ${JSON.stringify({path:e,bytes:o.length,sent:a,ms:t})}`)}async function ce(e,t){const n={engine:null},r=await V({project:e,log:R,ask:async({frame:o,hold:a,mesh:i,image:c,piece:u,present:l,capture:h,saveDue:d})=>{if(!n.engine)throw new Error("The Blender session presented before it started");d&&j!==null&&C(!0);const p=await n.engine.readArena();if(a!==void 0)return g={columns:await ae(p,a),meshes:new Map,images:new Map},{};if(i!==void 0||c!==void 0){if(!g)throw new Error(`The Blender session sent ${i??c} before its frame`);const P={typed:A(p,u),description:await T(p,u)};return i!==void 0?g.meshes.set(i,P):g.images.set(c,P),{}}let f,y;if(l){if(!g)throw new Error("The Blender session presented a frame it never sent");({typed:f,description:y}=ie(g,o)),g=null}else f=A(p,o),y=await T(p,o);const k=await oe(f,y,h);return{...typeof k.capture=="object"&&k.capture!==null?k.capture:{},..."held"in k?{held:k.held}:{}}}});n.engine=r,m=r,t&&await D(r.files,e);const s=await r.request({op:"start",project:e,...t?{document:t}:{}});return t&&(j=t),$={start:async()=>s,execute:async o=>{const a=await r.request({op:"execute",code:o});return a.error?`Error executing code: ${a.error}`:`Code executed successfully: ${a.result}`},sceneInfo:async()=>JSON.stringify(await r.request({op:"scene-info"}),null,2),objectInfo:async o=>JSON.stringify(await r.request({op:"object-info",name:o}),null,2),screenshotView:async o=>(await r.request({op:"present",capture:{size:o}}),JSON.stringify({view:{size:o}}))},{...s,engine:"blender-wasm",skew:r.skew,bootMs:Math.round(r.bootMs),releasedPayloadMB:r.releasedPayloadBytes===null?null:Math.round(r.releasedPayloadBytes/1048576)}}async function le(){try{const e=await fetch("/__editor/blender-wasm/status");return e.ok?await e.json():{available:!1,missing:[`status answered ${e.status}`]}}catch(e){return{available:!1,missing:[String(e)]}}}async function de(e,t){if($)throw new Error("The Blender session is already started");if(!e.startsWith("/"))throw new Error("The Blender session needs the project's absolute path");if(t!==void 0&&!fe(t))throw new Error(`The Blender document must be a project-relative .blend path with no traversal (models/model.blend); got ${JSON.stringify(t)}`);const n=await le();if(!n.available)throw new Error(`Headless Blender is not served by this editor, so there is no modeling engine: ${n.missing.join("; ")}. The engine is Blender compiled to WebAssembly (packages/blender-engine/wasm, or the directory VOLTER_BLENDER_WASM_DIR names); nothing stands in for it.`);return v=e,ce(e,t)}function fe(e){return!e.endsWith(".blend")||e.startsWith("/")||e.includes("\\")?!1:e.split("/").every(n=>n!==""&&n!=="."&&n!=="..")}const I=new Set;function x(e){I.has(e)||(I.add(e),R("error",e))}async function ue(e){const t=a=>(x(`The project's files are not readable from Python: ${a}`),null);let n;try{n=await fetch("/__editor/blender-project-index")}catch(a){return t(String(a))}if(!n.ok)return t(`/__editor/blender-project-index answered ${n.status}`);let r;try{if(r=await n.json(),typeof r?.root!="string"||!Array.isArray(r.files))return t("invalid project index")}catch(a){return t(String(a))}const{root:s,files:o}=r;return s!==e&&x(`The editor serving this tab has ${s} open, not ${e}; its files are mounted at ${e}, which is where Python is looking.`),o}const b=new Map;async function he(e,t){const n=await e.stat(t);return n?`${n.size}:${n.mtimeMs}`:""}async function D(e,t){const n=await ue(t);if(!n)return;const r=new Set(n.map(s=>`${t}/${s.path}`));for(const s of[...b.keys()])if(!r.has(s)){try{await e.unlink(s)}catch{}b.delete(s)}for(const s of n){const o=`${t}/${s.path}`,a=`${s.size}:${s.mtime}`;if(b.get(o)?.host===a||!b.has(o)&&await e.stat(o)!==null)continue;const i=await fetch(`/__editor/blender-project-file?path=${encodeURIComponent(s.path)}`);if(!i.ok){x(`${s.path}: HTTP ${i.status}`);continue}const c=o.slice(0,o.lastIndexOf("/"));c&&await e.mkdirTree(c),await e.writeFile(o,new Uint8Array(await i.arrayBuffer())),b.set(o,{host:a,engine:await he(e,o)})}}async function we(e,t){const n=[],r=async s=>{let o;try{o=await e.readdir(s)}catch{return}for(const a of o){if(a==="."||a==="..")continue;const i=`${s.replace(/\/$/,"")}/${a}`,c=await e.stat(i);if(c){if((c.mode&61440)===16384){await r(i);continue}b.get(i)?.engine!==`${c.size}:${c.mtimeMs}`&&n.push({path:i,size:c.size,mtime:c.mtimeMs})}}};return await r(t),n}async function J(e){switch(e.op){case"start":return de(e.project,e.document);case"present-result":{const r=B.get(e.id);B.delete(e.id),r&&(e.error?r.reject(new Error(e.error)):r.resolve({...e.capture===void 0?{}:{capture:e.capture},..."held"in e?{held:e.held}:{}}));return}}if(!$||!v||!m)throw new Error("The Blender session has not started");const t=m.files,n=m.request.bind(m);switch(e.op){case"flush-document":return N?(await U(),{saved:!0}):{saved:!1};case"history-begin":case"history-end":return n({op:e.op});case"history-step":return n({op:"history-step",token:e.token,direction:e.direction});case"execute":await D(t,v);{const r=await n({op:"execute",code:e.code,history:e.history??!0,label:e.label??"Blender Python"});return r.error?`Error executing code: ${r.error}`:`Code executed successfully: ${r.result}`}case"present":return n({op:"present"});case"scene-info":return $.sceneInfo();case"object-info":return $.objectInfo(e.name);case"rna":return n({op:"rna",path:e.path,...e.names===void 0?{}:{names:e.names}});case"rna-context":return n({op:"rna-context",...e.object===void 0?{}:{object:e.object},...e.collection===void 0?{}:{collection:e.collection}});case"view-shading":return n({op:"view-shading",shading:e.shading});case"rna-set":return n({op:"rna-set",history:e.history!==!1,path:e.path,property:e.property,value:e.value,...e.index===void 0?{}:{index:e.index}});case"outliner":return n({op:"outliner",...e.selected===void 0?{}:{selected:[...e.selected]}});case"node-tree":return n({op:"node-tree",...e.path===void 0?{}:{path:e.path},...e.material===void 0?{}:{material:e.material}});case"uv-layout":return n({op:"uv-layout",...e.object===void 0?{}:{object:e.object},...e.uvLayer===void 0?{}:{uvLayer:e.uvLayer}});case"rig":return n({op:"rig",...e.object===void 0?{}:{object:e.object}});case"action-clip":return n({op:"action-clip",...e.object===void 0?{}:{object:e.object},...e.bake===void 0?{}:{bake:e.bake}});case"outliner-set":return n({op:"outliner-set",path:e.path,column:e.column,value:e.value});case"screenshot-view":return JSON.parse(await $.screenshotView(e.maxSize));case"read-file":return t.readFile(e.path);case"write-file":{const r=e.path.slice(0,e.path.lastIndexOf("/"));r&&await t.mkdirTree(r),await t.writeFile(e.path,e.bytes),b.delete(e.path);return}case"list-files":return we(t,e.path)}throw new Error(`Unknown Blender worker request ${e.op}`)}function S(e){if(e instanceof Error)return e.stack??`${e.name}: ${e.message}`;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return typeof t.name=="string"?`${t.name}: ${t.message}`:t.message;try{return JSON.stringify(e)??Object.prototype.toString.call(e)}catch{return Object.prototype.toString.call(e)}}return String(e)}function W(){if(!m)return;const e=m.memoryBytes();e!==null&&E({op:"memory",bytes:e})}self.addEventListener("error",W);self.onmessage=e=>{const t=e.data;if(t.op==="present-result"){J(t);return}se(()=>ye(t))};async function ye(e){try{const t=await J(e);N&&await U(),await M(),E({id:e.id,result:t})}catch(t){let n=S(t);try{await M()}catch(r){n+=`
|
|
2
|
-
Unable to deliver Blender history: ${S(r)}`}E({id:e.id,error:n})}W()}async function M(){if(!m||!$)return;const e=await m.request({op:"history-events"});e.length&&E({op:"history",entries:e})}export{F as A,be as P,w as S,H as a,me as b,ge as c,$e as o,G as s};
|