@volter/game-editor 0.5.90 → 0.5.92
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 +2171 -2140
- package/dist/assets/{AssetBudgetPanel-Ym8PBZhk.js → AssetBudgetPanel-DeJukdzT.js} +9 -9
- package/dist/assets/{AudioViewer-QCZMyclp.js → AudioViewer-m9jtkgYo.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-CZ1PRA1a.js → CanvasBoardDocument-DooBGHPq.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-DM3gopvO.js → CanvasSceneViewport-CoFzzJfs.js} +1 -1
- package/dist/assets/{ColorInput-DLOJOKT4.js → ColorInput-NuZ1WtIR.js} +1 -1
- package/dist/assets/ColorPicker-DYngmfYK.js +1 -0
- package/dist/assets/{EntityModelDocument-D_ItJiKV.js → EntityModelDocument-P3FihIlT.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-D3aOPY0x.js → EnvironmentAssetDocument-UW9Fz8gy.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-CV94Bhoz.js → GameplaySessionTimeline-CPMUudKc.js} +1 -1
- package/dist/assets/{ImageViewer-DVssbnbJ.js → ImageViewer-C2TMh_cS.js} +1 -1
- package/dist/assets/InspectorObjectPreview-K6qqzlCF.js +1 -0
- package/dist/assets/{JsonAssetDocument-BdHB2DEL.js → JsonAssetDocument-ChhlRvdh.js} +1 -1
- package/dist/assets/{LiveModuleDocument-BHwbJAH0.js → LiveModuleDocument-BBpws-_t.js} +1 -1
- package/dist/assets/{LutAssetDocument-D7rYTbeB.js → LutAssetDocument-DYvPXEBg.js} +1 -1
- package/dist/assets/{ModelAssetDocument-CD36_whz.js → ModelAssetDocument-OhbJGtHY.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-BxT3AhzB.js → NonThreeAuthoringBootstrap-DACaW5Vs.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-3Ykix_i0.js → Object3DDocumentToolbar-CW5xzjh7.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-C6qwIfnP.js +2 -0
- package/dist/assets/{Object3DPreview-DOzr_uzY.js → Object3DPreview-DtiKkA9J.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-DesqZD-r.js → OnlineAssetDetail-CW7WV3OO.js} +1 -1
- package/dist/assets/{PlayBar-BpieJu_g.js → PlayBar-B_Lni0-H.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-BRx5mE93.js → QuarksAssetDocument-CG9QU-_U.js} +1 -1
- package/dist/assets/{ReactCanvasControls-8r6QNOB3.js → ReactCanvasControls-CVmKmPCB.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-DXxxxyBr.js → RootSelectionOverlay-BBPSUpGw.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-DX6kMqZU.js → ShaderAssetDocument-Cf8KU6yA.js} +2 -2
- package/dist/assets/ShadowEditor-axHBX3ZT.js +1 -0
- package/dist/assets/{SourceAssetViewer-BkYYygXD.js → SourceAssetViewer-mb-qv2H4.js} +1 -1
- package/dist/assets/{StageHost-BoCQo4d_.js → StageHost-CltfMwcG.js} +2 -2
- package/dist/assets/{StoryPreviewMount-CRxlUjfp.js → StoryPreviewMount-CN9Jjj_B.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-Ou5nVf7x.js → ThreeBoardDocument-CP2sAfro.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-BL-KSzMI.js → ThreeIsolationSceneContent-CHm48Iwq.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-DVi1XG2a.js → ToolObject3DPreview-BMGfohlr.js} +1 -1
- package/dist/assets/{Toolbar-BIBxfN04.js → Toolbar-By5RmjZA.js} +1 -1
- package/dist/assets/{TransientHint-C034nTCJ.js → TransientHint-DvlYI-GB.js} +1 -1
- package/dist/assets/{VideoViewer-C3oT0XiL.js → VideoViewer-C_Ypqrhs.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-DHXA-F6I.js → ViewportShadingMenu-DnqUmVm4.js} +1 -1
- package/dist/assets/{active-ingest-DJJutXu5.js → active-ingest-BEQcTdnB.js} +2 -2
- package/dist/assets/{animation-clock-2ZbQUIdj.js → animation-clock-DdJoDJut.js} +1 -1
- package/dist/assets/{animation-mixers.service-DGuBEsLT.js → animation-mixers.service-Cwwx5Rk1.js} +1 -1
- package/dist/assets/{animation-timeline.utility-CcFxNWhU.js → animation-timeline.utility-COGKHdbx.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-B-IYYTqA.js → asset-budget-asset.menu-Dnh4Og48.js} +1 -1
- package/dist/assets/{asset-budget.action-DofR2qo-.js → asset-budget.action-CWMJY1nK.js} +1 -1
- package/dist/assets/{asset-budget.document-BqvFxvJV.js → asset-budget.document-D0eHpYEa.js} +1 -1
- package/dist/assets/{asset-budget.menu-BnqdCzgD.js → asset-budget.menu-BEOvkmkJ.js} +1 -1
- package/dist/assets/{asset-editor-persistence-DnzuIHUo.js → asset-editor-persistence-Bk2mBIUR.js} +1 -1
- package/dist/assets/{asset-loaders-CgLN3hjC.js → asset-loaders-CtCb12Wy.js} +1 -1
- package/dist/assets/{asset-preview-Cj6rjiDV.js → asset-preview-DLr3X2Ff.js} +1 -1
- package/dist/assets/{audio-unlock.service-BOapJRBk.js → audio-unlock.service-g6nZnyKt.js} +1 -1
- package/dist/assets/{audio.utility-9Pz0JXaN.js → audio.utility-qHaPxVG5.js} +1 -1
- package/dist/assets/autoplay.service-CQBU7J4-.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-BcwYw9od.js → babylon-authoring-adapter-Bflf5oll.js} +1 -1
- package/dist/assets/{binding-resolver-B6D7LtER.js → binding-resolver-Cp64QEEm.js} +2 -2
- package/dist/assets/{blender-node-editor.document-5Zgk_ZsX.js → blender-node-editor.document-BS6XiYdy.js} +1 -1
- package/dist/assets/blender-properties-tab-DPGcP6sE.js +3 -0
- package/dist/assets/{blender-runtime-host-D1PrN3ma.js → blender-runtime-host-CbZll4j6.js} +1 -1
- package/dist/assets/{blender-runtime-skin-By7-2say.js → blender-runtime-skin-CU4ON8U6.js} +2 -2
- package/dist/assets/{blender-runtime.document-CCan8JZ-.js → blender-runtime.document-DFk6LfKL.js} +5 -5
- package/dist/assets/{blender-screenshot.menu-CeBd62sh.js → blender-screenshot.menu-Zh-gSLyF.js} +1 -1
- package/dist/assets/{blender-timeline.document-UcGOwmlI.js → blender-timeline.document-DNGYxSVR.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CCcKBzeI.js → blender-uv-editor.document-DPeAgCdu.js} +1 -1
- package/dist/assets/{blender-version.status-D1sES9ff.js → blender-version.status-Csf1NdCu.js} +1 -1
- package/dist/assets/{blender.command-CfByKtZ-.js → blender.command-zra5rClU.js} +1 -1
- package/dist/assets/{board-guides-CAkjJD4h.js → board-guides-Dr7UmPbr.js} +1 -1
- package/dist/assets/{bridge.command-CgGZBdLV.js → bridge.command-Bx4V0CGQ.js} +3 -3
- package/dist/assets/{browserAll-BsSx2DnD.js → browserAll-Dq7w5Sua.js} +1 -1
- package/dist/assets/{build-player.document-Cje_p5Gb.js → build-player.document-CNQbxiwV.js} +1 -1
- package/dist/assets/{build-profiles.document-BUMqGbZC.js → build-profiles.document-BPB32ZWV.js} +1 -1
- package/dist/assets/{build-progress.status-M-onMb1c.js → build-progress.status-rSsHAPQ2.js} +1 -1
- package/dist/assets/{build-session-CntNY9g3.js → build-session-DNW4mFav.js} +1 -1
- package/dist/assets/{build.action-BXlNEpXH.js → build.action-Dyk6sukW.js} +1 -1
- package/dist/assets/{build.command-DoJYqQbI.js → build.command-BtNjabOw.js} +1 -1
- package/dist/assets/{build.header-HWbNHM-r.js → build.header-DcJSZtCO.js} +1 -1
- package/dist/assets/{build.menu-C9AuHYWZ.js → build.menu-NxQtwHgd.js} +1 -1
- package/dist/assets/{build.service-I73DsjMx.js → build.service-7Up4tNeR.js} +1 -1
- package/dist/assets/{camera-Cu4HdI4b.js → camera-lGstadDR.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-DeaeWsbz.js → camera-runtime.inspector-DclViJea.js} +1 -1
- package/dist/assets/{canvas-design-mount-B0C45vrp.js → canvas-design-mount-eCCv2or-.js} +4 -4
- package/dist/assets/{canvas-entry-runtime-B365-ZQQ.js → canvas-entry-runtime-BT12lNQT.js} +2 -2
- package/dist/assets/{canvas-preview-frames-D3HKodrY.js → canvas-preview-frames-CIiSC8-I.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-B9gEQ8Au.js → canvas-story-capture.service-DmVs5hJt.js} +2 -2
- package/dist/assets/{capability-coverage-bZrmWgwg.js → capability-coverage-D_4ewfIt.js} +1 -1
- package/dist/assets/{collaboration-presence-BORLqKg1.js → collaboration-presence-B6A41ctS.js} +1 -1
- package/dist/assets/{collider-BTFrdtgi.js → collider-UIoHvnAV.js} +1 -1
- package/dist/assets/{component-board.service-Cc_RlPbw.js → component-board.service-BY1eTL_6.js} +2 -2
- package/dist/assets/{component-board.service-T9vbOgJc.js → component-board.service-Cqv0Cqk8.js} +2 -2
- package/dist/assets/{component-board.service-DVuZURHE.js → component-board.service-ymaR5Gc6.js} +2 -2
- package/dist/assets/{component-contracts.service-YDgkGoKs.js → component-contracts.service-BnuCkosG.js} +1 -1
- package/dist/assets/{component-instance-root-DX5ix8Lh.js → component-instance-root-CPMZslj8.js} +1 -1
- package/dist/assets/{component-verbs.command-D2amaps4.js → component-verbs.command-BE_JeIuS.js} +1 -1
- package/dist/assets/{component-verbs.service-BK91D8J4.js → component-verbs.service-1VQEboWj.js} +1 -1
- package/dist/assets/{config-BuYgJQj2.js → config-BbIJR-Td.js} +2 -2
- package/dist/assets/{configurations-yb_Wi4Dt.js → configurations-CAI-raMi.js} +1 -1
- package/dist/assets/{connection.status-C6oRFIZX.js → connection.status-MORY2ecq.js} +1 -1
- package/dist/assets/{constraints.inspector-CDznqzqa.js → constraints.inspector-yAWUn_QN.js} +1 -1
- package/dist/assets/{content-bounds-C1_4FDFz.js → content-bounds-DbjVwafW.js} +1 -1
- package/dist/assets/{contract-system-adapters-B8utduSu.js → contract-system-adapters-B7HjmMU3.js} +1 -1
- package/dist/assets/{coverage.service-CFMewfZR.js → coverage.service-BpHkqGqx.js} +1 -1
- package/dist/assets/{create-runtime-F7ZX_4U8.js → create-runtime-CMdnacgk.js} +3 -3
- package/dist/assets/{curve-rm_nCh4f.js → curve-W-sfW-YV.js} +1 -1
- package/dist/assets/{data-asset-BFD-F0KM.js → data-asset-BwavdNYa.js} +1 -1
- package/dist/assets/{data-ref-DtZaxOv9.js → data-ref-BKAuxnNn.js} +1 -1
- package/dist/assets/{debug-bridge-BEV6ug99.js → debug-bridge-Ce2BNh0c.js} +1 -1
- package/dist/assets/{debug-registry-DAaCUTgy.js → debug-registry-Cs16f-aE.js} +1 -1
- package/dist/assets/{deferred-ingest-play-BmYEWdba.js → deferred-ingest-play-i3TXIcol.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-B92I3xdm.js → design-time-canvas-mount-DRuLuHb8.js} +2 -2
- package/dist/assets/{design-time-layers-DeGM0TlK.js → design-time-layers-CIQmpekh.js} +1 -1
- package/dist/assets/{design-time-mount.service-DlExtDZI.js → design-time-mount.service-CVTv4ycX.js} +2 -2
- package/dist/assets/{design-time-mount.service-C2VvUf-Z.js → design-time-mount.service-FXHDWVCG.js} +2 -2
- package/dist/assets/{design-time-react-mount-DaTJwMYN.js → design-time-react-mount-BctXdzCd.js} +1 -1
- package/dist/assets/{document-preview-three-Dly9awBk.js → document-preview-three-B2MgbkoT.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-CN3ZdpRu.js → dom-authoring-adapter-DIVIU5iS.js} +1 -1
- package/dist/assets/{draco3d-Yuzp7qSo.js → draco3d-DqB07Xwz.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-CeaM8bFY.js → edit-mode-audio.service-BdMtawvV.js} +1 -1
- package/dist/assets/{edit-mode-authoring-CgDC3L3r.js → edit-mode-authoring-BYKTzHxo.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-DxZYR8rZ.js → edit-mode-networking.service-BMgRT6VZ.js} +1 -1
- package/dist/assets/{editor-api-CWJXkrwJ.js → editor-api-MVTYddFN.js} +1 -1
- package/dist/assets/{editor-layers-Dn6TnHLT.js → editor-layers-DB2HoNYg.js} +1 -1
- package/dist/assets/{editor-shell-store-CR5i4bDl.js → editor-shell-store-B_3I8rkh.js} +1 -1
- package/dist/assets/{entity-object-Mfn_HXYJ.js → entity-object-Btp4Cm7a.js} +1 -1
- package/dist/assets/{extend-C79ztj73.js → extend-BBPSDBSg.js} +1 -1
- package/dist/assets/{fork-menu-BgohvRgO.js → fork-menu-igGxVTU5.js} +1 -1
- package/dist/assets/{frame-debugger-store-Dubtl3HO.js → frame-debugger-store-CGTQsnpN.js} +1 -1
- package/dist/assets/{game-contract-seams-CZVdTKm1.js → game-contract-seams-CqP5-7QG.js} +1 -1
- package/dist/assets/{game-css-scope-transform-BjtXRDEY.js → game-css-scope-transform-BLyGDsn5.js} +1 -1
- package/dist/assets/{game-document.service-Bg0-uoRW.js → game-document.service-BMXhV4k0.js} +1 -1
- package/dist/assets/{game-eval.command-B_A6V5Pd.js → game-eval.command-BBdWh7r4.js} +1 -1
- package/dist/assets/{game-module-access-WhiIK25U.js → game-module-access-DB-3_dQL.js} +1 -1
- package/dist/assets/{game-network-Bj5pPwt6.js → game-network-CjxVSmyx.js} +3 -3
- package/dist/assets/{gameplay-export-CyvsBUUJ.js → gameplay-export-CKg7Tr5V.js} +1 -1
- package/dist/assets/{gameplay-replay-DaVafqba.js → gameplay-replay-BKk0MkWw.js} +1 -1
- package/dist/assets/{gameplay.command-Q4IeGWvZ.js → gameplay.command-BzuqC2M4.js} +1 -1
- package/dist/assets/{generation-jobs-C6f9tDa_.js → generation-jobs-Bc9aPUjo.js} +1 -1
- package/dist/assets/{generation.service-Dr39zqds.js → generation.service-Ctq8vDs8.js} +1 -1
- package/dist/assets/{generations-C1BCbevG.js → generations-v6wlWOxc.js} +1 -1
- package/dist/assets/{generations.status-zaYXFS2G.js → generations.status-D23nC6DT.js} +1 -1
- package/dist/assets/{hierarchy-marks-C-hTKFpT.js → hierarchy-marks-BUq91mYX.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-BGsAaNLZ.js → hosted-asset-materialization-B1mfxDMA.js} +2 -2
- package/dist/assets/{index-C2hjm2li.js → index-BWkADFm_.js} +1 -1
- package/dist/assets/index-Bi11wn2O.js +1 -0
- package/dist/assets/{index-Ba8KDGZ0.js → index-COGWs_Hz.js} +2 -2
- package/dist/assets/{index-mC2W7qzn.js → index-CPn7DYN1.js} +1 -1
- package/dist/assets/{index-BBO-YYkj.js → index-C_Y18gyB.js} +1 -1
- package/dist/assets/{index-DVdBNMfE.js → index-Cq5IOeJJ.js} +1 -1
- package/dist/assets/{index-CW0dRdv_.js → index-Da25n7KE.js} +1 -1
- package/dist/assets/{index-CVo6lyDo.js → index-DyTgGJaV.js} +265 -265
- package/dist/assets/{index-DzLRD0Gb.js → index-YE-BLlXn.js} +1 -1
- package/dist/assets/{inference-diagnostics-OkMU_wXJ.js → inference-diagnostics--P59uVfZ.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-C0fWwHwe.js → ingest-boot-viewport-CG06rhnI.js} +1 -1
- package/dist/assets/{ingest-siblings--BCyBwHq.js → ingest-siblings-lud-fBi3.js} +1 -1
- package/dist/assets/{ingest-source-persistence-CAOz_4Wh.js → ingest-source-persistence-Dlr1NuFz.js} +1 -1
- package/dist/assets/{ingest.service-laXHVNJW.js → ingest.service--OsL8JsR.js} +1 -1
- package/dist/assets/{inspect-BHpQHdYg.js → inspect-DuE1D5UR.js} +1 -1
- package/dist/assets/instances.command-Dzidr8Yl.js +1 -0
- package/dist/assets/{json-history-resource-ROp1lz_j.js → json-history-resource-IKUe_-vd.js} +1 -1
- package/dist/assets/{layered-pick-zgiY6qfh.js → layered-pick-BtIxP5aF.js} +1 -1
- package/dist/assets/{light-BmXr8VKK.js → light-CWgqDXEE.js} +1 -1
- package/dist/assets/{live-project-verbs-BDBI7OA9.js → live-project-verbs-CHp_aQ8s.js} +1 -1
- package/dist/assets/{machine.document-BOm1y_Px.js → machine.document-DnI8qlb5.js} +1 -1
- package/dist/assets/{machines.finder-BGKYPSEo.js → machines.finder-bsxZB24L.js} +1 -1
- package/dist/assets/{material-factory-Cp6fBC0N.js → material-factory-Bl4Vy50a.js} +1 -1
- package/dist/assets/{material-DdYgJ6FP.js → material-t5AUiIjm.js} +1 -1
- package/dist/assets/{mesh-eEesqjsh.js → mesh-D0ARI7DT.js} +1 -1
- package/dist/assets/{model-asset-sections.service-B3qBeuuP.js → model-asset-sections.service-BcfL914J.js} +1 -1
- package/dist/assets/{model-inspection-D3P21fLP.js → model-inspection-BinpX_8X.js} +1 -1
- package/dist/assets/{model-thumbnail-DrcZ2Guy.js → model-thumbnail-D5m5B4yc.js} +1 -1
- package/dist/assets/{models.finder-_iVDjMSm.js → models.finder-BbLyybE3.js} +1 -1
- package/dist/assets/{module-mode-BM7_IE1B.js → module-mode-CX71o-Qn.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-DUkPwD7f.js → mount-canvas-ingest-root-BL4ma7EJ.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-Bbd5yVvR.js → mount-dom-ingest-root-BFN7fuIH.js} +2 -2
- package/dist/assets/{mount-ingest-root-Be9ayjGz.js → mount-ingest-root-CCtls9Pm.js} +2 -2
- package/dist/assets/{mount-manifest-Pr7l992z.js → mount-manifest-CesgcqbR.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-C9kixwK5.js → mount-three-ingest-root-CO7xNkMs.js} +1 -1
- package/dist/assets/{mounted-authoring-vNP-EBtU.js → mounted-authoring-D5zJIfVC.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-B6HldL9S.js → mounted-story-viewport-source-Cacn-FrZ.js} +1 -1
- package/dist/assets/{native-debug-module-Comb8Rb7.js → native-debug-module-Cexnkzpz.js} +1 -1
- package/dist/assets/{navigation-DNGJXows.js → navigation-C04dv_AE.js} +1 -1
- package/dist/assets/{navmesh.menu-CIvlddHm.js → navmesh.menu-BR3qfEFi.js} +1 -1
- package/dist/assets/{navmesh.service-Dh5XpC6a.js → navmesh.service-cZZp_aWp.js} +1 -1
- package/dist/assets/network-observer.service-DbrkhWzR.js +1 -0
- package/dist/assets/{network.utility-CzrjLUtf.js → network.utility-DUizYX_I.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-Bj4wYFRB.js → object3d-document-session-registry-DkPO8z-D.js} +2 -2
- package/dist/assets/{oid-transform-CtZkucOf.js → oid-transform-CTTG13hx.js} +1 -1
- package/dist/assets/{particles-B-benbrc.js → particles-Cl0uw7lL.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-BxldSi3z.js → pixi-authoring-adapter-Bqfxw_3m.js} +1 -1
- package/dist/assets/{pixi-live-write-target-DHeOoH3v.js → pixi-live-write-target-DBVljmfv.js} +1 -1
- package/dist/assets/{play.command-Cnt2WHdK.js → play.command-BPWKJOEz.js} +2 -2
- package/dist/assets/{presentation-DxIrOb0V.js → presentation-BmRLRj9u.js} +1 -1
- package/dist/assets/{product-D_AMbzPV.js → product-CkPQ3Ux6.js} +1 -1
- package/dist/assets/{profiler.action-bE8tQYSA.js → profiler.action-DJPQHO0O.js} +1 -1
- package/dist/assets/{profiler.menu-CjLLLmUH.js → profiler.menu-DWjSnHVe.js} +1 -1
- package/dist/assets/{profiler.utility-C0QM80t7.js → profiler.utility-Y6h6m2t-.js} +1 -1
- package/dist/assets/{project-authoring-session-D2B3sLCA.js → project-authoring-session-DBF7pYCM.js} +2 -2
- package/dist/assets/properties-bone-constraints.inspector-DEdkTEo5.js +1 -0
- package/dist/assets/properties-bone.inspector-H-BBVZ8o.js +1 -0
- package/dist/assets/properties-collection.inspector-BcsCcAvS.js +1 -0
- package/dist/assets/properties-constraints.inspector-CUu-cNQ6.js +1 -0
- package/dist/assets/properties-data.inspector-BUel_GUU.js +1 -0
- package/dist/assets/properties-material.inspector-CIDoVmLo.js +1 -0
- package/dist/assets/properties-modifiers.inspector--4LrHaeK.js +1 -0
- package/dist/assets/properties-object.inspector-B8EgTfAi.js +1 -0
- package/dist/assets/properties-output.inspector-De86chrb.js +1 -0
- package/dist/assets/properties-particles.inspector-Tcr6I9r6.js +1 -0
- package/dist/assets/properties-physics.inspector-B1e-ODZG.js +1 -0
- package/dist/assets/properties-render.inspector-C8UodgyN.js +1 -0
- package/dist/assets/properties-scene.inspector-D51KNWsk.js +1 -0
- package/dist/assets/properties-texture.inspector-BclKARti.js +1 -0
- package/dist/assets/properties-view-layer.inspector-BzRfWdvM.js +1 -0
- package/dist/assets/properties-world.inspector-XxcFLmWg.js +1 -0
- package/dist/assets/{r3f-design-session-BR-rZPXT.js → r3f-design-session-_2tBNT-r.js} +2 -2
- package/dist/assets/{r3f-physics-binding-DypXLH_I.js → r3f-physics-binding-DyvJAWJ4.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-8oieF6zc.js → r3f-source-authoring-adapter-Ds3u5Oet.js} +1 -1
- package/dist/assets/{react-canvas-navigation-6qBGYedn.js → react-canvas-navigation-DDNw2mVf.js} +1 -1
- package/dist/assets/react-inspector.service-BOa9W_rc.js +1 -0
- package/dist/assets/{react-story-board-W-W2pSj_.js → react-story-board-DnBISTPF.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-FI67cHyY.js → react-three-rapier.esm-C7mV19Rd.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CASTZvF9.js → react-world-authoring-adapter-COQGilV0.js} +1 -1
- package/dist/assets/{realm-services-BjO-RZCE.js → realm-services-BVbgboYj.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-da72Q7lz.js → reflection-probe-capture.inspector-9PURKnEk.js} +1 -1
- package/dist/assets/{registry-CjzY4NzX.js → registry-BKnWLREo.js} +1 -1
- package/dist/assets/{relative-import-specifier-LjvlZpsp.js → relative-import-specifier-DSTZtgN9.js} +1 -1
- package/dist/assets/{render-env-BYNzhdNp.js → render-env-B-xiPHul.js} +1 -1
- package/dist/assets/{render-features-COSn75iV.js → render-features-D6cEaZG_.js} +1 -1
- package/dist/assets/{render-settings-DTO0aBJt.js → render-settings-7qvwHFf7.js} +1 -1
- package/dist/assets/{resolve-three-DlpI6nOk.js → resolve-three-BD3-wAF-.js} +3 -3
- package/dist/assets/{root-seam-contract-Bp4iIXVV.js → root-seam-contract-Dc0xW5J5.js} +1 -1
- package/dist/assets/{run-selection-DXjpzb5Z.js → run-selection-_aAcIhA1.js} +1 -1
- package/dist/assets/{scene-capture-oDjDsclg.js → scene-capture-dVfR7MjE.js} +1 -1
- package/dist/assets/{scene-document.service-DYqazIH3.js → scene-document.service-CnUCT9fC.js} +2 -2
- package/dist/assets/{scene-framing-BZFPEhV-.js → scene-framing-C7gr65sn.js} +1 -1
- package/dist/assets/{seeded-random-BgVOKMbq.js → seeded-random-C1JwJC9g.js} +1 -1
- package/dist/assets/{setup-renderer-mdpBVTtt.js → setup-renderer-CRrjb8S9.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-DWgLq4Ec.js → source-object3d-authoring-adapter-CJ9_kgH4.js} +1 -1
- package/dist/assets/{source-persistence-backend-D424MYuR.js → source-persistence-backend-BdjiG8o9.js} +1 -1
- package/dist/assets/{stage-keyboard-CtpxszQa.js → stage-keyboard-CtMpQmTO.js} +1 -1
- package/dist/assets/{stage-overlay-set-ub6aTRzt.js → stage-overlay-set-CL7TBswp.js} +1 -1
- package/dist/assets/{stage-presence-markers-CxR7Hiit.js → stage-presence-markers-Dkrf-OpF.js} +1 -1
- package/dist/assets/{stage-transform-tools-B5ToJHlp.js → stage-transform-tools-IQWWdhuo.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-BDb5PEfN.js → standard-viewport-dressing-TKOcIR28.js} +1 -1
- package/dist/assets/{state-watch.action-CNAXDA1-.js → state-watch.action-Py4YF3Vd.js} +1 -1
- package/dist/assets/{state-watch.menu-DlOuPtoO.js → state-watch.menu-D7XAVt6T.js} +1 -1
- package/dist/assets/{state-watch.utility-CLh62C3V.js → state-watch.utility-CdT0mIIq.js} +1 -1
- package/dist/assets/{story-capture-CdaI9nMl.js → story-capture-D_XIHNG7.js} +1 -1
- package/dist/assets/{story-documents-CbJ3YBh3.js → story-documents-CRrYBLbv.js} +1 -1
- package/dist/assets/{story-documents.service-CbzPQvne.js → story-documents.service-C-IYLdxc.js} +1 -1
- package/dist/assets/{story-documents.service-Do42GruH.js → story-documents.service-CCMjjodb.js} +1 -1
- package/dist/assets/{story-media-presence-Dy2WSPcD.js → story-media-presence-Bw1o6E62.js} +1 -1
- package/dist/assets/{story-pixi-preview-DfuPDeia.js → story-pixi-preview-5WqHTgoT.js} +1 -1
- package/dist/assets/{story-presentation-gpuFvabk.js → story-presentation-B4xwjorS.js} +1 -1
- package/dist/assets/{story-three-preview-BztQ7x5z.js → story-three-preview-CfJiHAyJ.js} +2 -2
- package/dist/assets/{studio-environment-CIzWqk3D.js → studio-environment-BTgaAUb4.js} +1 -1
- package/dist/assets/{surface-state-B60BswtD.js → surface-state-mdcl-Ho-.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-o1W7kiuC.js → syntactic-prop-specs-BcjoSr_8.js} +1 -1
- package/dist/assets/{team-playtest.service-ChsyUV3p.js → team-playtest.service-gdwlVptm.js} +1 -1
- package/dist/assets/{three-CzUeZlY0.js → three-CnFqjv_X.js} +1 -1
- package/dist/assets/{three-authoring-adapter-LceTzD4S.js → three-authoring-adapter-DwCMnivG.js} +1 -1
- package/dist/assets/three-authoring.service-D6PIh-T5.js +2 -0
- package/dist/assets/{three-ingest-runtime-CwkbS_Th.js → three-ingest-runtime-2OKIJvOp.js} +1 -1
- package/dist/assets/{three-integration-DPKWjlD3.js → three-integration-Bc5bObpY.js} +2 -2
- package/dist/assets/three-integration.service-DKjGhYsk.js +1 -0
- package/dist/assets/{three-projection-core-D3RYiIu1.js → three-projection-core-BH7eWjmL.js} +1 -1
- package/dist/assets/{three-state-C0legNI5.js → three-state-Beoor2qe.js} +1 -1
- package/dist/assets/{three-story-capture.service-o-bawif8.js → three-story-capture.service-D_d_HJUY.js} +2 -2
- package/dist/assets/{three-story-model-Ch6ZZSry.js → three-story-model-m26ngwoa.js} +1 -1
- package/dist/assets/{three-viewport-presentation-B5ib5E2l.js → three-viewport-presentation-Dv139ZhF.js} +1 -1
- package/dist/assets/{transform-mode-request-D3Oinqv5.js → transform-mode-request-DP_ObjSV.js} +1 -1
- package/dist/assets/{transport-strip-DyXjsCB7.js → transport-strip-0nwKohqK.js} +1 -1
- package/dist/assets/transport.header-CbCAtj5s.js +1 -0
- package/dist/assets/{tuples-BHO1Z3oS.js → tuples-DhXwxLo-.js} +1 -1
- package/dist/assets/{ui-board-document-DrdKMW1n.js → ui-board-document-iOzWO-IY.js} +2 -2
- package/dist/assets/{user-data-TbQ8mu5Y.js → user-data-W4XQSuJh.js} +1 -1
- package/dist/assets/{utility-view-state-CKTp4fIS.js → utility-view-state-VNkuk8W4.js} +1 -1
- package/dist/assets/{viewport-door-DW9R3_k7.js → viewport-door-BAOv87Fs.js} +1 -1
- package/dist/assets/{viewport-root-presentation-Dd-uNKPp.js → viewport-root-presentation-Ba-vx6UG.js} +1 -1
- package/dist/assets/{viewport-surface-status-BNBXBXaY.js → viewport-surface-status-qvgNJYzx.js} +1 -1
- package/dist/assets/{webworkerAll-DkGPO69r.js → webworkerAll-CiO0kb-H.js} +1 -1
- package/dist/assets/{workspace-arrangement-DHGBwbCG.js → workspace-arrangement-Dl7Q2V4T.js} +1 -1
- package/dist/assets/{world-documents-DJFV4pom.js → world-documents-DNFr2sNk.js} +1 -1
- package/dist/assets/{world-root-stage-binding-gBkTmO8F.js → world-root-stage-binding-DMyedsHY.js} +1 -1
- package/dist/assets/{xstate-animation-binding-D-unO9GU.js → xstate-animation-binding-bEAsNebg.js} +1 -1
- package/dist/assets/{xstate-animation-meta-BGOvYwOI.js → xstate-animation-meta-NEG890lY.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-QOrj2ivY.js +0 -1
- package/dist/assets/Object3DDocumentViewport-DR226qQD.js +0 -2
- package/dist/assets/ShadowEditor-B8e1JAfw.js +0 -1
- package/dist/assets/autoplay.service-b68ONVkr.js +0 -1
- package/dist/assets/blender-properties-tab-BgAHI_CZ.js +0 -3
- package/dist/assets/index-DuB_oOLs.js +0 -1
- package/dist/assets/instances.command-CfpbmTWg.js +0 -1
- package/dist/assets/network-observer.service-C7tQ9j8n.js +0 -1
- package/dist/assets/properties-bone-constraints.inspector-BQdOfVH8.js +0 -1
- package/dist/assets/properties-bone.inspector-BocAVj_v.js +0 -1
- package/dist/assets/properties-collection.inspector-DWQNJF93.js +0 -1
- package/dist/assets/properties-constraints.inspector-CIGORE1v.js +0 -1
- package/dist/assets/properties-data.inspector-kNHKj07h.js +0 -1
- package/dist/assets/properties-material.inspector-B0i_iWVx.js +0 -1
- package/dist/assets/properties-modifiers.inspector-5lfaqMBe.js +0 -1
- package/dist/assets/properties-object.inspector-UO0MzDRl.js +0 -1
- package/dist/assets/properties-output.inspector-CQcHDSvE.js +0 -1
- package/dist/assets/properties-particles.inspector-B0gAv_FI.js +0 -1
- package/dist/assets/properties-physics.inspector-hi5KuOl5.js +0 -1
- package/dist/assets/properties-render.inspector-qg2cdgqF.js +0 -1
- package/dist/assets/properties-scene.inspector-CC54GxAl.js +0 -1
- package/dist/assets/properties-texture.inspector-CxFvo4ix.js +0 -1
- package/dist/assets/properties-view-layer.inspector-Csnoa4Gu.js +0 -1
- package/dist/assets/properties-world.inspector-RVRx4mHp.js +0 -1
- package/dist/assets/react-inspector.service-DqNT5f_t.js +0 -1
- package/dist/assets/three-authoring.service-BPXq5bAu.js +0 -2
- package/dist/assets/three-integration.service-B4VG_uwR.js +0 -1
- package/dist/assets/transport.header-CKI14S16.js +0 -1
package/dist/assets/{blender-version.status-D1sES9ff.js → blender-version.status-Csf1NdCu.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as o}from"./index-
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as o}from"./index-DyTgGJaV.js";import{r as s}from"./index-nmcBqr7Y.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";const g="workspace.status",v="Version",f="right",x=998;function h(){const{project:r}=o(),t=s.useSyncExternalStore(r.subscribe,r.engineVersion,r.engineVersion);return t===null?null:e.jsxs("span",{className:"volter-status-copy","data-testid":"status-blender-version","data-engine-version":t,style:{display:"inline-flex",alignItems:"center",gap:"var(--volter-space-2)",fontSize:"var(--volter-font-md)"},title:`This project is built against engine ${t}`,children:[e.jsx("span",{"aria-hidden":"true",style:{width:"var(--volter-stroke-resting)",height:"var(--volter-icon-md)",background:"currentColor"}}),t]})}export{f as align,h as default,x as order,g as point,v as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as t}from"./blender-runtime-host-
|
|
1
|
+
import{h as t}from"./blender-runtime-host-CbZll4j6.js";import"./index-DyTgGJaV.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"./preview-renderer-BrYNFV1p.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./renderer-ownership-BovSEcLv.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./clip-planes-CnAI6DZn.js";import"./content-bounds-DbjVwafW.js";import"./hierarchy-marks-BUq91mYX.js";import"./workspace-arrangement-Dl7Q2V4T.js";const D="workspace.command",e=(o,n)=>({...n===void 0?{}:{timeoutMs:n},derivedRefresh:o,handle:r=>t(r)}),E={"blender-start":e("none",12e4),"blender-stop":e("none",30*6e4),"blender-execute":e("always",30*6e4),"blender-scene-info":e("none",6e4),"blender-object-info":e("none",6e4),"blender-screenshot-view":e("always",6e4),"blender-read-file":e("none",6e4),"blender-write-file":e("none",6e4),"blender-list-files":e("none",6e4),"blender-rna":e("none",6e4),"blender-rna-context":e("none",6e4),"blender-rna-set":e("always",6e4),"blender-outliner":e("none",6e4),"blender-node-tree":e("none",6e4),"blender-uv-layout":e("none",6e4),"blender-rig":e("none",6e4),"blender-action-clip":e("none",12e4),"blender-node-view":e("none"),"blender-outliner-set":e("always",6e4),"blender-status":e("none")};export{E as commands,D as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{aC as _}from"./index-
|
|
1
|
+
import{aC as _}from"./index-DyTgGJaV.js";const i=globalThis;function c(){return i.__volterBreakpointListeners??=new Set,i.__volterBreakpointListeners}function y(){return i.__volterActiveBreakpoint??null}function G(e){i.__volterActiveBreakpoint=e;for(const t of c())t()}function k(e){return c().add(e),()=>c().delete(e)}const v="volter:board-guides:v1";function g(){return typeof window>"u"?null:window.localStorage}function m(){try{return _()?.rootPath??"(no-project)"}catch{return"(no-project)"}}function B(){try{return JSON.parse(g()?.getItem(v)??"{}")}catch{return{}}}function b(e){try{g()?.setItem(v,JSON.stringify(e))}catch{}}const l=new Set;let a=null,p=Date.now()%1e6;function o(){return a||(a=B()[m()]??{}),a}function d(){const e=B();e[m()]=o(),b(e);for(const t of l)t()}const h=[];function s(e){return o()[e]??h}function S(e){return l.add(e),()=>l.delete(e)}function x(e,t,r){p+=1;const n=`guide-${p}`;return o()[e]=[...s(e),{id:n,axis:t,value:r}],d(),n}function A(e,t,r){o()[e]=s(e).map(n=>n.id===t?{...n,value:r}:n),d()}function E(e,t){o()[e]=s(e).filter(r=>r.id!==t),d()}let f=null;function T(e,t){f=t?{docId:e,transform:t}:null}function j(){if(!f)return{x:[],y:[]};const{docId:e,transform:t}=f,r=[],n=[];for(const u of s(e))u.axis==="x"?r.push(t.originX+t.panX+u.value*t.zoom):n.push(t.originY+t.panY+u.value*t.zoom);return{x:r,y:n}}export{y as a,k as b,S as c,s as d,E as e,x as f,j as g,A as m,T as r,G as s};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import{ab as _,je as $,jf as N,jg as f,jh as g,ji as V,_ as R,jj as C,a0 as U,aC as M,jk as j,Z as B,jl as G,K as E}from"./index-CVo6lyDo.js";import{g as l,a as b,A as D,B as F,C as O,d as x,D as q,E as H}from"./game-network-Bj5pPwt6.js";import{e as z,c as K}from"./gameplay-replay-DaVafqba.js";import{n as A,s as h}from"./command-results-CUQD49AB.js";import{z as W,i as y}from"./active-ingest-DJJutXu5.js";import{g as X}from"./capability-coverage-bZrmWgwg.js";import{w as Z,H as J}from"./debug-bridge-BEV6ug99.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-Comb8Rb7.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-DAaCUTgy.js";import"./contract-system-adapters-B8utduSu.js";import"./game-contract-seams-CZVdTKm1.js";import"./seeded-random-BgVOKMbq.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-BDBI7OA9.js";import"./edit-mode-authoring-CgDC3L3r.js";import"./json-history-resource-ROp1lz_j.js";import"./binding-resolver-B6D7LtER.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-BjO-RZCE.js";import"./canvas-entry-runtime-B365-ZQQ.js";import"./three-ingest-runtime-CwkbS_Th.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"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-Dd-uNKPp.js";import"./mounted-authoring-vNP-EBtU.js";import"./entity-object-Mfn_HXYJ.js";import"./user-data-TbQ8mu5Y.js";import"./workspace-arrangement-DHGBwbCG.js";import"./three-contract-Dkt6PmWY.js";import"./three-CzUeZlY0.js";import"./editor-layers-Dn6TnHLT.js";import"./component-instance-root-DX5ix8Lh.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-LceTzD4S.js";import"./source-persistence-backend-D424MYuR.js";import"./ingest-source-persistence-CAOz_4Wh.js";import"./three-projection-core-D3RYiIu1.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-DypXLH_I.js";import"./deferred-ingest-play-BmYEWdba.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CASTZvF9.js";import"./board-guides-CAkjJD4h.js";import"./relative-import-specifier-LjvlZpsp.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-BHpQHdYg.js";import"./inference-diagnostics-OkMU_wXJ.js";import"./writer-tw6EcuVO.js";import"./three-state-C0legNI5.js";import"./editor-shell-store-CR5i4bDl.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-DW9R3_k7.js";import"./game-surface-defaults-D8S4cRxi.js";import"./output-DK8waum9.js";const k=()=>_().debug!=null;function d(e,t,s){const a=new Error(t);return a.code=e,s&&(a.data=s),a}function S(e){return Array.isArray(e)?new Set(e.filter(t=>!!(t&&typeof t=="object"&&typeof t.name=="string")).map(t=>t.name)):new Set}function Q(e,t,s,a,i){if(e==="commands"){const c=S(t);return Array.isArray(t)&&[...a].every(o=>c.has(o))}if(e==="providers"){const c=S(t);return Array.isArray(t)&&[...i].every(o=>c.has(o))}return s?e==="state"?i.has(s):e==="invoke"?a.has(s):!1:!1}function T(e,t,s){const a=W(),i=a?.systems;if(!a||!i)return;const c=new Set((i.commands??[]).map(n=>n.name)),o=new Set((i.state??[]).map(n=>n.name));Q(e,t,s,c,o)&&f({seam:"contract.systems",subject:"game",epoch:X(a),stage:"operation",outcome:"pass",source:"consumer",detail:`the session wire consumed contract systems through debug.${e}`})}async function Y(e,t,s){let a;try{a=$(s).debug}catch(o){throw o instanceof N?d("INSTANCE_UNRESOLVED",`session wire: "${e}" — ${o.message}`,{instances:o.instances}):o}const i=()=>{if(!a)throw d("DEBUG_ADAPTER_UNAVAILABLE",`session wire: "${e}" — this game exposes no debug adapter`);return a},c=(o,n,r)=>{const u=i(),m=g(u);try{const p=r();return f({seam:`system.debug.${o}`,subject:"game",epoch:m,stage:n,outcome:"pass",source:"consumer",detail:`the session wire called debug.${o} and received its result`}),f({seam:"system.debug",subject:"game",epoch:m,stage:"operation",outcome:"pass",source:"consumer",detail:"the session wire consumed the mounted debug adapter"}),T(o,p,t[0]),p}catch(p){throw f({seam:`system.debug.${o}`,subject:"game",epoch:m,stage:n,outcome:"fail",source:"consumer",detail:`the session wire called debug.${o} and it failed: ${p instanceof Error?p.message:String(p)}`}),p}};switch(e){case"state":return c("state","operation",()=>i().state(t[0]));case"stateAll":return c("stateAll","operation",()=>i().stateAll());case"providers":return c("providers","operation",()=>i().providers());case"commands":return c("commands","operation",()=>i().commands());case"events":return c("events","operation",()=>i().events(t[0]));case"snapshot":{const o=i();return{time:c("state","operation",()=>o.state("time")),state:c("stateAll","operation",()=>o.stateAll()),events:c("events","operation",()=>o.events(t[0])),pageErrors:V()}}case"invoke":{const o=t[0],n=t[1]??[];try{const r=await i().invoke(o,n),u=i();return f({seam:"system.debug.invoke",subject:"game",epoch:g(u),stage:"effect",outcome:"pass",source:"consumer",detail:`the session wire invoked debug command "${o}" and received its result`}),f({seam:"system.debug",subject:"game",epoch:g(u),stage:"operation",outcome:"pass",source:"consumer",detail:"the session wire consumed the mounted debug adapter"}),T("invoke",r,o),r}catch(r){const u=i();throw f({seam:"system.debug.invoke",subject:"game",epoch:g(u),stage:"effect",outcome:"fail",source:"consumer",detail:`the session wire invoked debug command "${o}" and it failed: ${r instanceof Error?r.message:String(r)}`}),r}}case"runTicks":{const o=l();if(!o?.runTicks)throw d("RUN_TICKS_UNAVAILABLE","this play session has no first-party Game to run ticks on");const n=t[0],r=t[1];o.runTicks(n,r);return}case"runTicksSettled":{const o=l();if(!o?.runTicksSettled)throw d("RUN_TICKS_UNAVAILABLE","this play session has no first-party Game to run ticks on");const n=t[0],r=t[1];await o.runTicksSettled(n,r);return}case"input.setVirtualAction":case"input.tapVirtualAction":case"input.clearVirtualActions":case"input.startRecording":case"input.stopRecording":case"input.isRecording":{const o=l(),n=e==="input.setVirtualAction"?t[2]:e==="input.tapVirtualAction"?t[1]:t[0],r=o?o.getInputTarget(n):null;if(!r)throw d("DEBUG_INPUT_UNAVAILABLE",`session wire: ${e}() has no virtual-input target wired — no root entry exports \`debug.input\` (the game's own input door), or none has mounted yet`);if(e==="input.setVirtualAction")return r.setVirtualAction(t[0],t[1]);if(e==="input.tapVirtualAction")return r.tapVirtualAction(t[0]);if(e==="input.clearVirtualActions"){r.clearVirtualActions();return}if(e==="input.startRecording"){r.startInputRecording();return}if(e==="input.stopRecording"){r.stopInputRecording();return}return r.isInputRecording()}case"input.scheduleActionAtTick":{const o=l(),n=t[0],r=t[1],u=t[2],m=t[3],p=o?o.getInputTarget(m):null;if(!p)throw d("DEBUG_INPUT_UNAVAILABLE","session wire: input.scheduleActionAtTick() has no virtual-input target wired — no root entry exports `debug.input` (the game's own input door), or none has mounted yet");return p.scheduleActionAtTick(n,r,u)}case"input.injectPointerDelta":case"input.injectPointerPosition":{const o=l(),n=t[0],r=t[1],u=t[2],m=o?o.getInputTarget(u):null;if(!m)throw d("DEBUG_INPUT_UNAVAILABLE",`session wire: ${e}() has no virtual-input target wired — no root entry exports \`debug.input\` (the game's own input door), or none has mounted yet`);e==="input.injectPointerDelta"?m.injectPointerDelta(n,r):m.injectPointerPosition(n,r);return}case"holdFor":{const o=l(),n=t[2],r=o?o.getInputTarget(n):null;if(!r)throw d("DEBUG_INPUT_UNAVAILABLE","session wire: holdFor() has no virtual-input target wired — no root entry exports `debug.input` (the game's own input door), or none has mounted yet");const u=t[0],m=t[1],p=r.setVirtualAction(u,!0);if(!p.delivered)return r.clearVirtualActions(),{delivered:!1,reason:p.reason};const{stalled:v,starvedWithoutDriver:w}=await Z(i(),m,o?.runTicks?L=>o.runTicks?.(L,{render:"last"}):void 0);return r.clearVirtualActions(),v?{delivered:!1,reason:w?J:"play stopped during hold"}:{delivered:!0}}default:throw d("UNKNOWN_BRIDGE_METHOD",`session wire: unknown bridge method "${e}"`)}}async function ee(e){if(!b()&&!k())return y()?{ok:!1,error:"this ingest mount is live, but it publishes no debug plane — the mount installs no SystemAdapters.debug, so there is nothing to enumerate, read or drive through the game seam. Starting play will not change that; the game itself must declare the volter game contract (or carry a contract shim beside it) for these calls to have an answer."}:A();const t=e.method,s=e.callArgs??[];try{const a=e.instance;return{ok:!0,data:{result:await Y(t,s,a)}}}catch(a){return h(a)}}async function P(e){const{liveCanvasFrame:t}=await R(async()=>{const{liveCanvasFrame:s}=await import("./index-CVo6lyDo.js").then(a=>a.u4);return{liveCanvasFrame:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return t(e)}function te(){const e=l();e?.loop.liveness==="loop-starved"&&e.runTicks?.(1,{render:"last"})}function I(e,t){const s=re();return{ok:!0,data:{base64:e,mimeType:"image/png",composite:t.composite,...t.layers?{layers:t.layers}:{},...t.flatness?{flatness:t.flatness}:{},...t.loopRecoveryFrame?{loopRecoveryFrame:!0}:{},...s?{recording:s}:{}}}}function re(){const e=O();return e?{path:e.path,startedAt:e.startedAt,notice:[`This run is being RECORDED — the still above is one frame of ${e.path}.`,"A still cannot answer a question about a moving game (did the jump land, did the shot","register). If that is the question, read the clip:","",` recording: ${e.path}${e.rotates?` (the next ${E("play")} replaces this file)`:" (named — never rotated)"}`,...e.format==="canvas-dom"?[` HUD replay: ${e.replayPath}`," The raw WebM contains the canvas only. Reconstruct HUD stills with"," editor.recording.captureReplay, or export a full video with editor.recording.exportReplay."]:[],` startedAt: ${e.startedAt} (clip offset 0)`,` play log: ${e.logFile===null?"(none — nothing is logging this run)":`logs/${e.logFile}`} (event timestamps → clip offsets)`,"","THE BAR for a temporal question: examine AT LEAST 10 frames spanning no more than 5","seconds around the moment. One frame, or ten frames spread across the run, is the same","guess a single screenshot was.","",`The clip is finalized and readable when play stops — ${E("stop")}, or the idle`,`auto-stop after ${Math.round(e.idleAutoStopMs/1e3)}s with no session command and no player input.`].join(`
|
|
3
|
-
`)}:null}async function oe(e){if(!b()&&!k()&&!y())return A();const t=e.instance,s=D(t),a=F(t),i=C(s).medium,c=l();let o=!1,n=null;if(a&&c?.loop.liveness==="loop-starved")if(e.refreshStarvedFrame===!0&&c.runTicks)try{c.runTicks(1,{render:"last"}),o=!0}catch(r){return h(r)}else return{ok:!1,error:"cannot capture a fresh game frame while the host loop reports 'loop-starved' — inspect the separate visibility readings, let presentation resume, or request a deterministic loop-recovery frame",data:{code:"BRIDGE_SCREENSHOT_STALE"}};if(s&&typeof Image<"u"&&typeof XMLSerializer<"u"&&typeof s.getBoundingClientRect=="function")try{const r=await U(s,{canvasFrame:P,projectRoot:M()?.rootPath,...i==="unknown"?{}:{presentsOnCanvas:i==="canvas"}});if(r.layers.canvases===0&&r.layers.domOverlays===0)throw new j(i==="dom"?"dom-overlay":"composite-output","no game layers were mounted");return I(r.base64,{composite:!0,layers:r.layers,flatness:r.flatness,loopRecoveryFrame:o})}catch(r){n=r,B.warn(`Full-stack screenshot failed; returning the canvas-only fallback — ${r instanceof Error?r.message:String(r)}`,"screenshot")}if(!a){const r=n instanceof Error?n.message:String(n);return{ok:!1,error:n!==null?`full game-stack capture failed — ${r}; no canvas layer is available as a fallback`:y()?"the ingest mount is live but no DOM overlay or canvas layer is mounted for capture":"no play-mode DOM overlay or canvas layer is mounted yet",data:{code:"BRIDGE_SCREENSHOT_UNAVAILABLE"}}}try{const r=await R(()=>import("./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DyTgGJaV.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/editor-api-MVTYddFN.js","assets/game-network-CjxVSmyx.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-Cexnkzpz.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-Cs16f-aE.js","assets/contract-system-adapters-B7HjmMU3.js","assets/game-contract-seams-CqP5-7QG.js","assets/seeded-random-C1JwJC9g.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-CHp_aQ8s.js","assets/capability-coverage-D_4ewfIt.js","assets/edit-mode-authoring-BYKTzHxo.js","assets/json-history-resource-IKUe_-vd.js","assets/binding-resolver-Cp64QEEm.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-BVbgboYj.js","assets/canvas-entry-runtime-BT12lNQT.js","assets/three-ingest-runtime-2OKIJvOp.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-BEQcTdnB.js","assets/ingest-source-persistence-Dlr1NuFz.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-Ba-vx6UG.js","assets/mounted-authoring-D5zJIfVC.js","assets/entity-object-Btp4Cm7a.js","assets/user-data-W4XQSuJh.js","assets/workspace-arrangement-Dl7Q2V4T.js","assets/three-contract-Dkt6PmWY.js","assets/three-CnFqjv_X.js","assets/editor-layers-DB2HoNYg.js","assets/component-instance-root-CPMZslj8.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-DwCMnivG.js","assets/source-persistence-backend-BdjiG8o9.js","assets/three-projection-core-BH7eWjmL.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-DyvJAWJ4.js","assets/deferred-ingest-play-i3TXIcol.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-COQGilV0.js","assets/board-guides-Dr7UmPbr.js","assets/relative-import-specifier-DSTZtgN9.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-DuE1D5UR.js","assets/inference-diagnostics--P59uVfZ.js","assets/writer-tw6EcuVO.js","assets/three-state-Beoor2qe.js","assets/editor-shell-store-B_3I8rkh.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-BAOv87Fs.js","assets/game-surface-defaults-D8S4cRxi.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{ab as _,je as $,jf as N,jg as f,jh as g,ji as V,_ as R,jj as C,a0 as U,aC as M,jk as j,Z as B,jl as G,K as E}from"./index-DyTgGJaV.js";import{g as l,a as b,A as D,B as F,C as O,d as x,D as q,E as H}from"./game-network-CjxVSmyx.js";import{e as z,c as K}from"./gameplay-replay-BKk0MkWw.js";import{n as A,s as h}from"./command-results-CUQD49AB.js";import{z as W,i as y}from"./active-ingest-BEQcTdnB.js";import{g as X}from"./capability-coverage-D_4ewfIt.js";import{w as Z,H as J}from"./debug-bridge-Ce2BNh0c.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-Cexnkzpz.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-Cs16f-aE.js";import"./contract-system-adapters-B7HjmMU3.js";import"./game-contract-seams-CqP5-7QG.js";import"./seeded-random-C1JwJC9g.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-CHp_aQ8s.js";import"./edit-mode-authoring-BYKTzHxo.js";import"./json-history-resource-IKUe_-vd.js";import"./binding-resolver-Cp64QEEm.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-BVbgboYj.js";import"./canvas-entry-runtime-BT12lNQT.js";import"./three-ingest-runtime-2OKIJvOp.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"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-Ba-vx6UG.js";import"./mounted-authoring-D5zJIfVC.js";import"./entity-object-Btp4Cm7a.js";import"./user-data-W4XQSuJh.js";import"./workspace-arrangement-Dl7Q2V4T.js";import"./three-contract-Dkt6PmWY.js";import"./three-CnFqjv_X.js";import"./editor-layers-DB2HoNYg.js";import"./component-instance-root-CPMZslj8.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-DwCMnivG.js";import"./source-persistence-backend-BdjiG8o9.js";import"./ingest-source-persistence-Dlr1NuFz.js";import"./three-projection-core-BH7eWjmL.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-DyvJAWJ4.js";import"./deferred-ingest-play-i3TXIcol.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-COQGilV0.js";import"./board-guides-Dr7UmPbr.js";import"./relative-import-specifier-DSTZtgN9.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DuE1D5UR.js";import"./inference-diagnostics--P59uVfZ.js";import"./writer-tw6EcuVO.js";import"./three-state-Beoor2qe.js";import"./editor-shell-store-B_3I8rkh.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BAOv87Fs.js";import"./game-surface-defaults-D8S4cRxi.js";import"./output-DK8waum9.js";const k=()=>_().debug!=null;function d(e,t,s){const a=new Error(t);return a.code=e,s&&(a.data=s),a}function S(e){return Array.isArray(e)?new Set(e.filter(t=>!!(t&&typeof t=="object"&&typeof t.name=="string")).map(t=>t.name)):new Set}function Q(e,t,s,a,i){if(e==="commands"){const c=S(t);return Array.isArray(t)&&[...a].every(o=>c.has(o))}if(e==="providers"){const c=S(t);return Array.isArray(t)&&[...i].every(o=>c.has(o))}return s?e==="state"?i.has(s):e==="invoke"?a.has(s):!1:!1}function T(e,t,s){const a=W(),i=a?.systems;if(!a||!i)return;const c=new Set((i.commands??[]).map(n=>n.name)),o=new Set((i.state??[]).map(n=>n.name));Q(e,t,s,c,o)&&f({seam:"contract.systems",subject:"game",epoch:X(a),stage:"operation",outcome:"pass",source:"consumer",detail:`the session wire consumed contract systems through debug.${e}`})}async function Y(e,t,s){let a;try{a=$(s).debug}catch(o){throw o instanceof N?d("INSTANCE_UNRESOLVED",`session wire: "${e}" — ${o.message}`,{instances:o.instances}):o}const i=()=>{if(!a)throw d("DEBUG_ADAPTER_UNAVAILABLE",`session wire: "${e}" — this game exposes no debug adapter`);return a},c=(o,n,r)=>{const u=i(),m=g(u);try{const p=r();return f({seam:`system.debug.${o}`,subject:"game",epoch:m,stage:n,outcome:"pass",source:"consumer",detail:`the session wire called debug.${o} and received its result`}),f({seam:"system.debug",subject:"game",epoch:m,stage:"operation",outcome:"pass",source:"consumer",detail:"the session wire consumed the mounted debug adapter"}),T(o,p,t[0]),p}catch(p){throw f({seam:`system.debug.${o}`,subject:"game",epoch:m,stage:n,outcome:"fail",source:"consumer",detail:`the session wire called debug.${o} and it failed: ${p instanceof Error?p.message:String(p)}`}),p}};switch(e){case"state":return c("state","operation",()=>i().state(t[0]));case"stateAll":return c("stateAll","operation",()=>i().stateAll());case"providers":return c("providers","operation",()=>i().providers());case"commands":return c("commands","operation",()=>i().commands());case"events":return c("events","operation",()=>i().events(t[0]));case"snapshot":{const o=i();return{time:c("state","operation",()=>o.state("time")),state:c("stateAll","operation",()=>o.stateAll()),events:c("events","operation",()=>o.events(t[0])),pageErrors:V()}}case"invoke":{const o=t[0],n=t[1]??[];try{const r=await i().invoke(o,n),u=i();return f({seam:"system.debug.invoke",subject:"game",epoch:g(u),stage:"effect",outcome:"pass",source:"consumer",detail:`the session wire invoked debug command "${o}" and received its result`}),f({seam:"system.debug",subject:"game",epoch:g(u),stage:"operation",outcome:"pass",source:"consumer",detail:"the session wire consumed the mounted debug adapter"}),T("invoke",r,o),r}catch(r){const u=i();throw f({seam:"system.debug.invoke",subject:"game",epoch:g(u),stage:"effect",outcome:"fail",source:"consumer",detail:`the session wire invoked debug command "${o}" and it failed: ${r instanceof Error?r.message:String(r)}`}),r}}case"runTicks":{const o=l();if(!o?.runTicks)throw d("RUN_TICKS_UNAVAILABLE","this play session has no first-party Game to run ticks on");const n=t[0],r=t[1];o.runTicks(n,r);return}case"runTicksSettled":{const o=l();if(!o?.runTicksSettled)throw d("RUN_TICKS_UNAVAILABLE","this play session has no first-party Game to run ticks on");const n=t[0],r=t[1];await o.runTicksSettled(n,r);return}case"input.setVirtualAction":case"input.tapVirtualAction":case"input.clearVirtualActions":case"input.startRecording":case"input.stopRecording":case"input.isRecording":{const o=l(),n=e==="input.setVirtualAction"?t[2]:e==="input.tapVirtualAction"?t[1]:t[0],r=o?o.getInputTarget(n):null;if(!r)throw d("DEBUG_INPUT_UNAVAILABLE",`session wire: ${e}() has no virtual-input target wired — no root entry exports \`debug.input\` (the game's own input door), or none has mounted yet`);if(e==="input.setVirtualAction")return r.setVirtualAction(t[0],t[1]);if(e==="input.tapVirtualAction")return r.tapVirtualAction(t[0]);if(e==="input.clearVirtualActions"){r.clearVirtualActions();return}if(e==="input.startRecording"){r.startInputRecording();return}if(e==="input.stopRecording"){r.stopInputRecording();return}return r.isInputRecording()}case"input.scheduleActionAtTick":{const o=l(),n=t[0],r=t[1],u=t[2],m=t[3],p=o?o.getInputTarget(m):null;if(!p)throw d("DEBUG_INPUT_UNAVAILABLE","session wire: input.scheduleActionAtTick() has no virtual-input target wired — no root entry exports `debug.input` (the game's own input door), or none has mounted yet");return p.scheduleActionAtTick(n,r,u)}case"input.injectPointerDelta":case"input.injectPointerPosition":{const o=l(),n=t[0],r=t[1],u=t[2],m=o?o.getInputTarget(u):null;if(!m)throw d("DEBUG_INPUT_UNAVAILABLE",`session wire: ${e}() has no virtual-input target wired — no root entry exports \`debug.input\` (the game's own input door), or none has mounted yet`);e==="input.injectPointerDelta"?m.injectPointerDelta(n,r):m.injectPointerPosition(n,r);return}case"holdFor":{const o=l(),n=t[2],r=o?o.getInputTarget(n):null;if(!r)throw d("DEBUG_INPUT_UNAVAILABLE","session wire: holdFor() has no virtual-input target wired — no root entry exports `debug.input` (the game's own input door), or none has mounted yet");const u=t[0],m=t[1],p=r.setVirtualAction(u,!0);if(!p.delivered)return r.clearVirtualActions(),{delivered:!1,reason:p.reason};const{stalled:v,starvedWithoutDriver:w}=await Z(i(),m,o?.runTicks?L=>o.runTicks?.(L,{render:"last"}):void 0);return r.clearVirtualActions(),v?{delivered:!1,reason:w?J:"play stopped during hold"}:{delivered:!0}}default:throw d("UNKNOWN_BRIDGE_METHOD",`session wire: unknown bridge method "${e}"`)}}async function ee(e){if(!b()&&!k())return y()?{ok:!1,error:"this ingest mount is live, but it publishes no debug plane — the mount installs no SystemAdapters.debug, so there is nothing to enumerate, read or drive through the game seam. Starting play will not change that; the game itself must declare the volter game contract (or carry a contract shim beside it) for these calls to have an answer."}:A();const t=e.method,s=e.callArgs??[];try{const a=e.instance;return{ok:!0,data:{result:await Y(t,s,a)}}}catch(a){return h(a)}}async function P(e){const{liveCanvasFrame:t}=await R(async()=>{const{liveCanvasFrame:s}=await import("./index-DyTgGJaV.js").then(a=>a.u4);return{liveCanvasFrame:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return t(e)}function te(){const e=l();e?.loop.liveness==="loop-starved"&&e.runTicks?.(1,{render:"last"})}function I(e,t){const s=re();return{ok:!0,data:{base64:e,mimeType:"image/png",composite:t.composite,...t.layers?{layers:t.layers}:{},...t.flatness?{flatness:t.flatness}:{},...t.loopRecoveryFrame?{loopRecoveryFrame:!0}:{},...s?{recording:s}:{}}}}function re(){const e=O();return e?{path:e.path,startedAt:e.startedAt,notice:[`This run is being RECORDED — the still above is one frame of ${e.path}.`,"A still cannot answer a question about a moving game (did the jump land, did the shot","register). If that is the question, read the clip:","",` recording: ${e.path}${e.rotates?` (the next ${E("play")} replaces this file)`:" (named — never rotated)"}`,...e.format==="canvas-dom"?[` HUD replay: ${e.replayPath}`," The raw WebM contains the canvas only. Reconstruct HUD stills with"," editor.recording.captureReplay, or export a full video with editor.recording.exportReplay."]:[],` startedAt: ${e.startedAt} (clip offset 0)`,` play log: ${e.logFile===null?"(none — nothing is logging this run)":`logs/${e.logFile}`} (event timestamps → clip offsets)`,"","THE BAR for a temporal question: examine AT LEAST 10 frames spanning no more than 5","seconds around the moment. One frame, or ten frames spread across the run, is the same","guess a single screenshot was.","",`The clip is finalized and readable when play stops — ${E("stop")}, or the idle`,`auto-stop after ${Math.round(e.idleAutoStopMs/1e3)}s with no session command and no player input.`].join(`
|
|
3
|
+
`)}:null}async function oe(e){if(!b()&&!k()&&!y())return A();const t=e.instance,s=D(t),a=F(t),i=C(s).medium,c=l();let o=!1,n=null;if(a&&c?.loop.liveness==="loop-starved")if(e.refreshStarvedFrame===!0&&c.runTicks)try{c.runTicks(1,{render:"last"}),o=!0}catch(r){return h(r)}else return{ok:!1,error:"cannot capture a fresh game frame while the host loop reports 'loop-starved' — inspect the separate visibility readings, let presentation resume, or request a deterministic loop-recovery frame",data:{code:"BRIDGE_SCREENSHOT_STALE"}};if(s&&typeof Image<"u"&&typeof XMLSerializer<"u"&&typeof s.getBoundingClientRect=="function")try{const r=await U(s,{canvasFrame:P,projectRoot:M()?.rootPath,...i==="unknown"?{}:{presentsOnCanvas:i==="canvas"}});if(r.layers.canvases===0&&r.layers.domOverlays===0)throw new j(i==="dom"?"dom-overlay":"composite-output","no game layers were mounted");return I(r.base64,{composite:!0,layers:r.layers,flatness:r.flatness,loopRecoveryFrame:o})}catch(r){n=r,B.warn(`Full-stack screenshot failed; returning the canvas-only fallback — ${r instanceof Error?r.message:String(r)}`,"screenshot")}if(!a){const r=n instanceof Error?n.message:String(n);return{ok:!1,error:n!==null?`full game-stack capture failed — ${r}; no canvas layer is available as a fallback`:y()?"the ingest mount is live but no DOM overlay or canvas layer is mounted for capture":"no play-mode DOM overlay or canvas layer is mounted yet",data:{code:"BRIDGE_SCREENSHOT_UNAVAILABLE"}}}try{const r=await R(()=>import("./index-DyTgGJaV.js").then(w=>w.u4),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),u=r.readablePngSource(await r.liveCanvasFrame(a))??a,m=u.toDataURL("image/png"),p=m.indexOf(","),v=p>=0?m.slice(p+1):m;return I(v,{composite:!1,flatness:G(u,a.ownerDocument),loopRecoveryFrame:o})}catch(r){return{ok:!1,error:`bridge-screenshot: canvas layer capture failed — ${r instanceof Error?r.message:String(r)}`+(n===null?"":`; full game-stack capture also failed — ${n instanceof Error?n.message:String(n)}`),data:{code:"BRIDGE_SCREENSHOT_UNAVAILABLE"}}}}const Vt="workspace.command",Ct={"bridge-call":{timeoutMs:6e4,derivedRefresh:"always",handle:ee},"bridge-screenshot":{timeoutMs:15e3,derivedRefresh:"if-content-changed",handle:oe},"bridge-recording-start":{timeoutMs:15e3,derivedRefresh:"none",handle:async e=>{if(!b()&&!k()&&!y())return A();const t=D();if(!t)return{ok:!1,error:"no play-mode game surface is mounted yet"};const s=_().audio?.acquireRecordingStream?.()??null;try{return{ok:!0,data:{...await q(t,{fps:typeof e.fps=="number"?e.fps:void 0,format:e.format==="canvas-dom"||e.format==="composite-webm"?e.format:void 0,name:typeof e.name=="string"||e.name===null?e.name:void 0,canvasFrame:P,refreshFrame:te,audio:s})}}}catch(a){return h(a)}}},"bridge-recording-stop":{timeoutMs:6e4,derivedRefresh:"none",handle:async()=>{try{return{ok:!0,data:{...await x()}}}catch(e){return h(e)}}},"bridge-recording-timeline":{derivedRefresh:"none",handle:()=>{const e=H();return e===null?{ok:!1,error:"no gameplay recording is active"}:{ok:!0,data:{...e}}}},"bridge-recording-replay-capture":{timeoutMs:6e4,derivedRefresh:"none",handle:async e=>{try{return typeof e.replayPath!="string"?{ok:!1,error:"replayPath is required"}:typeof e.positionMs!="number"||!Number.isFinite(e.positionMs)?{ok:!1,error:"finite positionMs is required"}:{ok:!0,data:{...await K(e.replayPath,e.positionMs)}}}catch(t){return h(t)}}},"bridge-recording-replay-export":{timeoutMs:6e5,derivedRefresh:"none",handle:async e=>{try{if(typeof e.replayPath!="string")return{ok:!1,error:"replayPath is required"};const{blob:t,...s}=await z({replayPath:e.replayPath,...typeof e.fps=="number"?{fps:e.fps}:{},...typeof e.startMs=="number"?{startMs:e.startMs}:{},...typeof e.endMs=="number"?{endMs:e.endMs}:{}}),{beginGameplayRecordingSink:a,appendGameplayRecordingChunk:i,finishGameplayRecordingSink:c,abortGameplayRecordingSink:o}=await R(async()=>{const{beginGameplayRecordingSink:r,appendGameplayRecordingChunk:u,finishGameplayRecordingSink:m,abortGameplayRecordingSink:p}=await import("./editor-api-MVTYddFN.js");return{beginGameplayRecordingSink:r,appendGameplayRecordingChunk:u,finishGameplayRecordingSink:m,abortGameplayRecordingSink:p}},__vite__mapDeps([10,0,1,2,3,4,5,6,7,8,9,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])),n=await a({startedAt:new Date().toISOString(),mimeType:"video/webm",purpose:"export",name:typeof e.name=="string"?e.name:`replay-export-${Date.now()}`});try{for(let r=0,u=0;r<t.size;r+=4*1024*1024,u++)await i(n,u,t.slice(r,r+4*1024*1024));await c(n,"post-processed canvas and DOM recording")}catch(r){throw await o(n),r}return{ok:!0,data:{...s,path:n.path}}}catch(t){return h(t)}}}};export{Ct as commands,Vt as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as i,a,C as t,b as m,D as r,E as e,F as o}from"./index-
|
|
1
|
+
import{e as i,a,C as t,b as m,D as r,E as e,F as o}from"./index-COGWs_Hz.js";import"./webworkerAll-CiO0kb-H.js";import"./index-DyTgGJaV.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";i.add(a);i.mixin(t,m);i.add(r);i.add(e);i.mixin(t,o);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as u}from"./jsx-runtime-DPjLkJKQ.js";import{a5 as a}from"./index-
|
|
1
|
+
import{a as u}from"./jsx-runtime-DPjLkJKQ.js";import{a5 as a}from"./index-DyTgGJaV.js";import{r as s}from"./index-nmcBqr7Y.js";import{s as d,b as l,B as i}from"./build-session-DNW4mFav.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-CAI-raMi.js";const F="workspace.document",U="Build Player",m=["log","info","warn","error"],c=Symbol("build-player-output");function p(e){if(!e)return;const t=()=>{if(!e.isConnected)return;const o=e.contentWindow;o?.location.pathname===new URL(i,location.href).pathname&&(o[c]||(h(o),a(e,{container:()=>o.document.getElementById("game-canvas")??o.document.body,canvasFrame:n=>f(o,n)})),o.document.readyState==="complete")||setTimeout(t,0)};t()}function f(e,t){return new Promise(o=>{e.requestAnimationFrame(()=>{const n=e.document.createElement("canvas");n.width=t.width,n.height=t.height;const r=n.getContext("2d");if(!r)return o(null);r.drawImage(t,0,0),o(n)})})}function h(e){e[c]=!0;for(const t of m){const o=e.console[t].bind(e.console);e.console[t]=(...n)=>{o(...n),console[t]("[Build Player]",...n)}}e.addEventListener("error",t=>{console.error("[Build Player] Uncaught",t.error??t.message)}),e.addEventListener("unhandledrejection",t=>{console.error("[Build Player] Unhandled rejection",t.reason)}),console.info(`[Build Player] Running ${e.document.title||"the build"}`)}function j(e){const t=s.useSyncExternalStore(d,l);return u.jsx("iframe",{title:"Build Player","data-build-player":t,src:`${i}?run=${t}`,ref:p,style:{width:"100%",height:"100%",border:0,display:"block",background:"#000"}},t)}export{j as default,F as point,U as title};
|
package/dist/assets/{build-profiles.document-BUMqGbZC.js → build-profiles.document-BPB32ZWV.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{b4 as D,cP as F,c_ as H,
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{b4 as D,cP as F,c_ as H,eo as O,ep as I,eq as M,er as i,a7 as L,es as R,aZ as o,et as n,dh as G,aN as j,a6 as k,b1 as _,eu as J,ev as V,cp as U,ew as q,ex as Y}from"./index-DyTgGJaV.js";import{r}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as Z,c as A,u as K,e as Q,f as X,g as ee,h as te,r as P,i as C}from"./build-session-DNW4mFav.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"./configurations-CAI-raMi.js";const f="volter.project.json",S={name:"My Game",resolution:{width:1280,height:720},appId:"com.example.mygame"};function ie(){r.useSyncExternalStore(Z,A,A);const s=ee(),p=_(),a=p?D(p):null,[y,T]=r.useState(S),m=K(),[d,N]=r.useState("");r.useEffect(()=>{!d&&m.length>0&&N(m[0]?.id??"")},[m,d]);const x=r.useRef(null),h=r.useCallback(async()=>{const t=await F(f),l=t?JSON.parse(t):S;T({...S,...l,resolution:{...S.resolution,...l.resolution}})},[]);r.useEffect(()=>(h().catch(()=>{}),a?.subscribeAll(t=>{t===f&&h().catch(()=>{})})??(()=>{})),[a,h]),r.useEffect(()=>()=>{x.current&&clearTimeout(x.current)},[]);const v=r.useCallback(t=>{x.current&&clearTimeout(x.current),x.current=setTimeout(async()=>{const l=await F(f);if(!l)throw new Error(`Cannot edit build settings: ${f} is missing`);const u=JSON.parse(l),g=`${JSON.stringify({...u,name:t.name,resolution:t.resolution,appId:t.appId},null,2)}
|
|
2
2
|
`;if(!a){await H(f,g);return}await a.write(f,g,{label:"Edit Build Settings",kind:"settings",contentType:"application/json"}).catch(()=>void h().catch(()=>{}))},500)},[a,h]),$=r.useCallback(t=>{T(l=>{const u={...l,...t};return v(u),u})},[v]),E=r.useCallback((t,l)=>{T(u=>{const g={...u,resolution:{...u.resolution,[t]:Math.round(l)}};return v(g),g})},[v]),c=s.phase,b=s.result?.report?.artifact??null;return e.jsxs("div",{"data-testid":"build-profiles-document",style:{display:"flex",flex:1,minHeight:0,background:O[1],pointerEvents:"auto"},children:[e.jsx("div",{style:le,children:m.map(t=>e.jsx(M,{selected:d===t.id,disabled:c==="building",onClick:()=>{c!=="building"&&N(t.id)},style:{padding:`${i[4]} ${i[6]}`,opacity:c==="building"&&d!==t.id?.4:1},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:i[4]},children:[e.jsx(L,{icon:G,style:{fontSize:n.lg,color:d===t.id?R:o[2]}}),e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:n.md,fontWeight:600,color:d===t.id?o[1]:o[2]},children:t.label}),e.jsx("div",{style:{fontSize:n.sm,color:o[3],marginTop:1},children:t.subtitle})]})]})},t.id))}),e.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,padding:`${i[5]} ${i[8]}`,maxWidth:560},children:[e.jsx("div",{style:W,children:"Project"}),e.jsxs("div",{style:w,children:[e.jsx("label",{style:B,children:"Name"}),e.jsx(j,{className:"volter-input",style:{flex:1},value:y.name,onChange:t=>$({name:t.target.value})})]}),e.jsxs("div",{style:w,children:[e.jsx("label",{style:B,children:"Resolution"}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:i[2],flex:1},children:[e.jsx(j,{type:"number",className:"volter-input",style:{width:0,flex:1},value:y.resolution.width,onChange:t=>{const l=Number.parseInt(t.target.value,10);Number.isFinite(l)&&l>0&&E("width",l)}}),e.jsx("span",{style:{fontSize:n.sm,color:o[3]},children:"×"}),e.jsx(j,{type:"number",className:"volter-input",style:{width:0,flex:1},value:y.resolution.height,onChange:t=>{const l=Number.parseInt(t.target.value,10);Number.isFinite(l)&&l>0&&E("height",l)}})]})]}),e.jsxs("div",{style:w,children:[e.jsx("label",{style:B,children:"App ID"}),e.jsx(j,{className:"volter-input",style:{flex:1},value:y.appId,onChange:t=>$({appId:t.target.value})})]}),e.jsxs("div",{style:{...w,marginTop:i[2]},children:[e.jsx("label",{style:B,children:"Output"}),e.jsx("span",{style:{fontSize:n.md,color:o[2]},children:b??"Artifact appears here after a build"})]}),e.jsx("div",{style:{marginTop:i[6],display:"flex",alignItems:"center",gap:i[4],paddingTop:i[4],borderTop:`1px solid ${I[1]}`},children:c==="building"?e.jsxs(e.Fragment,{children:[e.jsxs("span",{style:{fontSize:n.md,fontWeight:600,color:R},children:["Building for ",m.find(t=>t.id===s.target)?.label??s.target,"… (log in Build Output below)"]}),e.jsx(k,{size:"compact",onClick:te,children:"Cancel"})]}):e.jsxs(e.Fragment,{children:[c==="done"&&s.result&&e.jsx("span",{"data-testid":"build-profiles-result",style:{fontSize:n.md,fontWeight:600,color:s.result.ok?J:V},children:s.result.ok?"✓ Build complete":`✗ Build failed (exit ${s.result.code??"unknown"})`}),c==="done"&&s.result?.ok&&b&&e.jsx("a",{href:U(b),download:b,className:"volter-btn","data-variant":"secondary","data-size":"default",style:{textDecoration:"none",display:"inline-flex"},children:"Download"}),e.jsx(k,{variant:"primary","data-testid":"build-profiles-build",onClick:()=>{d&&(c==="done"&&P(),Q(d))},style:{marginLeft:"auto"},children:c==="done"?"Build Again":"Build"}),e.jsx(k,{"data-testid":"build-profiles-build-and-run",onClick:()=>{d&&(c==="done"&&P(),X(d))},children:"Build And Run"})]})}),c==="done"&&s.result?.report&&e.jsx(se,{report:s.result.report})]})]})}function se({report:s}){const p=s.largestFiles[0]?.bytes??1;return e.jsxs("section",{"data-testid":"build-report",style:{marginTop:i[6],paddingTop:i[5],borderTop:`1px solid ${I[1]}`},children:[e.jsx("div",{style:W,children:"Build report"}),e.jsxs("div",{style:{display:"flex",gap:i[4],marginBottom:i[5]},children:[e.jsx(z,{label:"Package",value:C(s.artifactBytes)}),e.jsx(z,{label:"Output",value:C(s.outputBytes)}),e.jsx(z,{label:"Files",value:String(s.fileCount)})]}),e.jsx("div",{style:{fontSize:n.sm,color:o[3],marginBottom:i[2]},children:"Largest output files"}),e.jsx("div",{style:{display:"grid",gap:3},children:s.largestFiles.slice(0,8).map(a=>e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"minmax(0, 1fr) max-content",gap:i[3]},children:[e.jsxs("div",{title:a.path,style:{position:"relative",minWidth:0,overflow:"hidden",borderRadius:2},children:[e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,width:`${Math.max(2,a.bytes/p*100)}%`,background:"color-mix(in srgb, var(--volter-accent) 16%, transparent)"}}),e.jsx("div",{style:{position:"relative",padding:`${i[1]} ${i[2]}`,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:q,fontSize:n.sm,color:o[2]},children:a.path})]}),e.jsx("div",{style:{textAlign:"right",padding:`${i[1]} 0`,fontSize:n.sm,color:o[2]},children:C(a.bytes)})]},a.path))})]})}function z({label:s,value:p}){return e.jsxs("div",{style:{flex:1,padding:`${i[3]} ${i[4]}`,background:O[2],borderRadius:Y.sm},children:[e.jsx("div",{style:{fontSize:n.sm,color:o[3]},children:s}),e.jsx("div",{style:{marginTop:i[1],fontSize:n.lg,fontWeight:650,color:o[1]},children:p})]})}const le={width:160,flexShrink:0,borderRight:`1px solid ${I[1]}`,overflowY:"auto"},W={fontSize:n.sm,fontWeight:700,textTransform:"uppercase",color:o[3],letterSpacing:"0.05em",marginBottom:i[3]},w={display:"flex",alignItems:"center",gap:i[3],marginBottom:i[2]},B={width:65,fontSize:n.base,color:o[2],flexShrink:0},he="workspace.document",ge="Build Profiles";function ye(s){return e.jsx(ie,{})}export{ye as default,he as point,ge as title};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{r}from"./index-nmcBqr7Y.js";import{a,c as e,g as i}from"./build-session-
|
|
1
|
+
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{r}from"./index-nmcBqr7Y.js";import{a,c as e,g as i}from"./build-session-DNW4mFav.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./configurations-CAI-raMi.js";import"./index-DyTgGJaV.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const x="workspace.status",B="Build Progress",h="left",S=30;function k(){r.useSyncExternalStore(a,e,e);const s=i();return s.phase==="idle"?null:s.phase==="building"?t.jsxs("span",{className:"volter-status-copy","data-testid":"status-build-progress","data-build-phase":"building","data-status-tone":"accent",children:["Building ",s.target,"…"]}):t.jsx("span",{className:"volter-status-copy","data-testid":"status-build-progress","data-build-phase":s.result?.ok?"complete":"failed","data-status-tone":s.result?.ok?"success":"danger",children:s.result?.ok?"Build complete":"Build failed"})}export{h as align,k as default,S as order,x as point,B as title};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{l as E,b as L}from"./configurations-
|
|
1
|
+
import{l as E,b as L}from"./configurations-CAI-raMi.js";import{$ as y,r as c}from"./index-DyTgGJaV.js";import{r as m}from"./index-nmcBqr7Y.js";function B(e){if(e<1024)return`${e} B`;const n=["KB","MB","GB"];let t=e/1024,i=n[0];for(let s=1;s<n.length&&t>=1024;s++)t/=1024,i=n[s];return`${t>=10?t.toFixed(1):t.toFixed(2)} ${i}`}const w="build",C="build-profiles.document";function M(){return c().workspace.openContributedDocument(C)}const U="build-player.document",W=`${y}/build/web/index.html`;let _=0;const p=new Set;function F(){return _}function j(e){return p.add(e),()=>{p.delete(e)}}function I(){_++;for(const e of p)e();return c().workspace.openContributedDocument(U)}async function J(e){await P(e),r.phase==="done"&&r.result?.ok&&I()}function Y(){const[e,n]=m.useState([]);return m.useEffect(()=>{let t=!1;return E().then(i=>{t||n(i.filter(s=>s.role==="build").map(s=>({id:s.id,label:s.id,subtitle:s.describe??s.kind})))}).catch(()=>{t||n([])}),()=>{t=!0}},[]),e}let r={phase:"idle",target:"",log:[],result:null},$=0;const h=new Set;let D=null;function u(e){r={...r,...e},$++,x();for(const n of h)n()}function q(e){return h.add(e),()=>{h.delete(e)}}function G(){return $}function O(){return r}function H(){r.phase!=="building"&&u({phase:"idle",log:[],result:null})}function K(){D?.abort(),u({phase:"idle"})}function R(){x(),c().output.show(w)}function x(){const e=O();let n=e.log.length?`${e.log.join(`
|
|
2
2
|
`)}
|
|
3
3
|
`:"";if(e.phase==="done"&&e.result&&(n+=`
|
|
4
4
|
${e.result.ok?"Build complete.":`Build failed (exit code: ${e.result.code??"unknown"}).`}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o}from"./build-session-
|
|
1
|
+
import{o}from"./build-session-DNW4mFav.js";import"./configurations-CAI-raMi.js";import"./index-DyTgGJaV.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="workspace.action",n=[{id:"build.web",label:"Build for Web (itch.io)",execute:()=>{o()}},{id:"build.steam",label:"Build for Desktop (Steam)",execute:()=>{o()}}];export{n as actions,d as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o}from"./build-session-
|
|
1
|
+
import{o}from"./build-session-DNW4mFav.js";import"./configurations-CAI-raMi.js";import"./index-DyTgGJaV.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 u="workspace.command",c={"show-build":{derivedRefresh:"always",handle:()=>o()?{ok:!0}:{ok:!1,error:"The Build Profiles document is not registered in this session."}}};export{c as commands,u as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as e,a6 as a,a7 as s,a8 as i}from"./index-
|
|
1
|
+
import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as e,a6 as a,a7 as s,a8 as i}from"./index-DyTgGJaV.js";import{r as p}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{o as n}from"./build-session-DNW4mFav.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"./configurations-CAI-raMi.js";const h="workspace.header",g=10;function v(){const{session:t}=e(),o=p.useSyncExternalStore(t.subscribe,t.playState,t.playState)!=="stopped";return r.jsxs(a,{variant:"ghost",size:"compact","data-testid":"project-export","aria-label":"Export project",disabled:o,title:o?"Stop Play mode before exporting the project":"Export project",className:"volter-chrome-island volter-glass-island",onClick:()=>{n()},children:[r.jsx(s,{icon:i.action.export}),"Export"]})}export{v as default,g as order,h as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as t,d as i}from"./build-session-
|
|
1
|
+
import{o as t,d as i}from"./build-session-DNW4mFav.js";import"./configurations-CAI-raMi.js";import"./index-DyTgGJaV.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 c="workspace.menu",a={menu:"window",items:[{id:"build-profiles",label:"Build Profiles",testId:"menu-build-profiles",execute:()=>{t()}},{id:"build-output",label:"Build Output",testId:"menu-build-output",execute:()=>{i()}}]};export{a as menu,c as point};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i,g as t,d as r}from"./build-session-
|
|
1
|
+
import{a as i,g as t,d as r}from"./build-session-DNW4mFav.js";import"./configurations-CAI-raMi.js";import"./index-DyTgGJaV.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 B="workspace.service",b=()=>{let s=t().phase;return i(()=>{const o=t();o.phase==="done"&&s!=="done"&&o.result?.ok===!1&&r(),s=o.phase})};export{B as point,b as start};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as i,c6 as e,c4 as o}from"./index-
|
|
1
|
+
import{u as i,c6 as e,c4 as o}from"./index-DyTgGJaV.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=i({type:o(["perspective","orthographic"]).describe("Camera projection type"),fov:e().optional().describe("Vertical field of view in degrees (perspective only)"),near:e().optional().describe("Near clipping plane distance"),far:e().optional().describe("Far clipping plane distance"),orthoSize:e().optional().describe("Half-height of the orthographic frustum (orthographic only)"),width:e().optional().describe("Render width in pixels. Defaults to viewport width"),height:e().optional().describe("Render height in pixels. Defaults to viewport height")}).describe("Camera configuration");export{d as CameraDescriptorSchema};
|
package/dist/assets/{camera-runtime.inspector-DeaeWsbz.js → camera-runtime.inspector-DclViJea.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{a as x}from"./three-contract-Dkt6PmWY.js";import{
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{a as x}from"./three-contract-Dkt6PmWY.js";import{fd as m,bQ as f,fe as j,ff as s,aL as l}from"./index-DyTgGJaV.js";import{r as u}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";function h(n,t){const r=t?x(n.hierarchy,t):null;if(!r)return null;if(r.isCamera)return r;const i=r.userData._camera;return i?.isCamera?i:null}function b(n,t){return!!m()&&!!h(t,n?.id??null)}function C(n,t){return t.cameras.find(r=>r.nativeId===n.uuid)??t.cameras.find(r=>r.id===n.name||r.label===n.name)??null}function v(n){const[,t]=u.useReducer(r=>r+1,0);return u.useEffect(()=>{if(n)return n.subscribe(t)},[n]),n?.snapshot()??null}function g({adapter:n,nodeId:t}){const r=m(),i=v(r);if(!i)return null;const c=h(n,t);if(!c)return null;const a=C(c,i),d=a?.id===i.activeCameraId,o=i.transition,p=o?Math.max(0,o.durationSeconds-o.elapsedSeconds):null;return e.jsxs("div",{style:{display:"grid",gap:8},children:[a?null:e.jsx(f,{tone:"info",children:"This native camera is not registered with the active runtime controller."}),e.jsxs(j,{children:[e.jsx(s,{label:"Role",children:e.jsx(l,{tone:d?"success":"muted",children:d?"Active camera":a?"Registered camera":"Scene camera"})}),a?e.jsx(s,{label:"Runtime ID",children:e.jsx(l,{tone:"muted",children:a.id})}):null,a?.priority!==void 0?e.jsx(s,{label:"Priority",children:e.jsx(l,{tone:"muted",children:a.priority})}):null,a?.enabled!==void 0?e.jsx(s,{label:"Enabled",children:e.jsx(l,{tone:a.enabled?"success":"muted",children:a.enabled?"Yes":"No"})}):null,e.jsx(s,{label:"Active camera",children:e.jsx(l,{tone:"muted",children:i.activeCameraId??"None"})}),e.jsx(s,{label:"Controller",children:e.jsx(l,{tone:"muted",children:i.activeControllerId??"Gameplay / unowned"})}),e.jsx(s,{label:"Ownership depth",children:e.jsx(l,{tone:"muted",children:i.ownershipDepth})}),o?e.jsxs(e.Fragment,{children:[e.jsx(s,{label:"Blend",children:e.jsx(l,{tone:"muted",children:`${o.fromCameraId??"current pose"} → ${o.toCameraId}`})}),e.jsx(s,{label:"Progress",children:e.jsx(l,{tone:"muted",children:`${Math.round(o.progress*100)}% · ${p?.toFixed(2)}s left`})})]}):null]})]})}const N="selection.inspector",B="Runtime Camera",G="camera",M=350;function O(n,t){return b(n,t)}function P({adapter:n,nodeId:t}){return e.jsx(g,{adapter:n,nodeId:t})}export{P as default,G as icon,O as match,M as order,N as point,B as title};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-physics-binding-
|
|
2
|
-
import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-physics-binding-DyvJAWJ4.js","assets/index-DyTgGJaV.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/syntactic-prop-specs-BcjoSr_8.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{eg as Ke,hd as Xe,d4 as Ze,eK as Ye,dv as se,he as Se,bU as Qe,bV as et,Z as q,_ as Pe,bW as tt,dw as rt,c0 as pe,hf as Ie,ge as nt,d6 as ot,aC as st}from"./index-DyTgGJaV.js";import{BabylonAuthoringAdapter as it}from"./babylon-authoring-adapter-Bflf5oll.js";import{i as Te,a as at,b as fe,o as ct,r as me,P as lt,c as ut}from"./pixi-authoring-adapter-Bqfxw_3m.js";import{f as Z,t as dt,p as he}from"./pixi-transform-channels-P4rvmusc.js";import{r as pt,c as ft}from"./relative-import-specifier-DSTZtgN9.js";import{l as Ce}from"./oid-transform-CTTG13hx.js";import{f as mt,a as ht,b as gt}from"./writer-tw6EcuVO.js";import{s as wt}from"./index-COGWs_Hz.js";import{registerPresentedCanvasFrame as yt,withApplicationCollector as vt,capturePixiDisplayObjectThumbnail as bt}from"./canvas-preview-frames-CIiSC8-I.js";import{a as xt}from"./source-persistence-backend-BdjiG8o9.js";import{resolveCanvasEntryAdapterForEditor as $t,resolveCanvasPixiForEditor as St}from"./canvas-entry-runtime-BT12lNQT.js";import{a as Ne}from"./json-history-resource-IKUe_-vd.js";import{a as Pt}from"./realm-services-BVbgboYj.js";import{n as Tt,a as Ct,i as Ot,b as Et}from"./native-debug-module-Cexnkzpz.js";import{createAssetCache as At}from"./assets-BcrMQHRv.js";import{r as kt,a as jt,b as Mt}from"./create-runtime-CMdnacgk.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"./ingest-source-persistence-Dlr1NuFz.js";import"./component-instance-root-CPMZslj8.js";import"./user-data-W4XQSuJh.js";import"./workspace-arrangement-Dl7Q2V4T.js";import"./r3f-physics-binding-DyvJAWJ4.js";import"./debug-registry-Cs16f-aE.js";import"./three-ingest-runtime-2OKIJvOp.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./native-entry-surface-BE8LJNdu.js";import"./contract-system-adapters-B7HjmMU3.js";import"./game-contract-seams-CqP5-7QG.js";import"./loader-BTUKnX5Q.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./adapter-surface-Y37Nzcyw.js";import"./binding-Bmxqznjk.js";import"./root-stacking-BEd9ZvxC.js";import"./setup-renderer-CRrjb8S9.js";import"./index-DHhMOs_s.js";import"./defaults-DKiBJCPN.js";import"./render-settings-7qvwHFf7.js";import"./render-features-D6cEaZG_.js";import"./seeded-random-C1JwJC9g.js";import"./loop-gate-report-N52EWFGD.js";import"./system-slot-E2mEdiih.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./performance-profiler-CMbwGBuk.js";const Oe="this session has no source-write backend",Rt=new Set(["key","ref","data-oid","children","style","className"]),Ee=new Set(["x","y","rotation","scale","scale-x","scale-y","label","visible","skew"]),_t=new Set(["x","y","name","children"]),Ae=/^-?\d+(\.\d+)?$/,ke={container:'<pixiContainer label="Container" />',sprite:'<pixiSprite label="Sprite" />',text:'<pixiText label="Text" text="Text" />',graphics:'<pixiGraphics label="Graphics" />',animatedSprite:'<pixiAnimatedSprite label="AnimatedSprite" textures={[Texture.WHITE]} width={64} height={64} />',tilingSprite:'<pixiTilingSprite label="TilingSprite" texture={Texture.WHITE} width={100} height={100} />',nineSliceSprite:'<pixiNineSliceSprite label="NineSliceSprite" texture={Texture.WHITE} width={100} height={100} />',bitmapText:'<pixiBitmapText label="BitmapText" text="BitmapText" />',htmlText:'<pixiHTMLText label="HTMLText" text="HTMLText" />',meshPlane:'<pixiMeshPlane label="MeshPlane" texture={Texture.WHITE} width={100} height={100} />',perspectiveMesh:'<pixiPerspectiveMesh label="PerspectiveMesh" texture={Texture.WHITE} width={100} height={100} />',particleContainer:'<pixiParticleContainer label="ParticleContainer" />'},It=new Set(["animatedSprite","tilingSprite","nineSliceSprite","meshPlane","perspectiveMesh"]);function je(d){return Rt.has(d)||/^on[A-Z]/.test(d)||d.startsWith("__volter")}function Me(d){const h=d.replace(/[_-]+/g," ").replace(/([a-z0-9])([A-Z])/g,"$1 $2").trim();return h?h[0].toUpperCase()+h.slice(1):d}function Nt(d,h,g){const C=d.slice(d.lastIndexOf(`
|
|
3
3
|
`,h-1)+1,h),a=d.slice(h,g);return/^\s*$/.test(C)?a.split(`
|
|
4
4
|
`).map((w,c)=>c>0&&w.startsWith(C)?w.slice(C.length):w).join(`
|
|
5
|
-
`):a}function Ft(d,h){const g=new Set(d);return[...g].filter(C=>{let a=h(C);for(;a;){if(g.has(a))return!1;a=h(a)}return!0})}function Bt(d){const{worldId:h,entryPath:g}=d,C=d.pixi??wt;let a,w=()=>{},c,J,N=null,P=new Map,D=new Map;const A=new Map,R=new Set,F=new Map,W=new Map;let M=Promise.resolve();const m=e=>{const t=a.displayObject(e);return(t?fe(t):void 0)??ct(h,e)},$=()=>{const e=new Set,t=r=>{const n=a.displayObject(r),o=me(n);o!==void 0&&e.add(o);const s=n?fe(n):void 0;s!==void 0&&e.add(s);for(const i of a.node(r)?.childIds??[])t(i)};for(const r of a.roots())t(r.id);return e},E=async()=>{if(!(!c?.index||!c.readSource))try{const e=await c.index();P=new Map(Object.entries(e));const t=new Set;for(const n of $()){const o=P.get(n);o&&t.add(o.file)}const r=new Map;await Promise.all([...t].map(async n=>{const o=await c.readSource(n);r.set(n,o.source)})),D=r,w()}catch{}},b=e=>{const t=m(e);if(!t)return null;const r=P.get(t);if(!r)return null;const n=D.get(r.file);if(n===void 0)return null;const o=Ce(n,r.line,r.col);if(n[o]!=="<")return null;const s=mt(n,o);return s<0?null:ht(n,o,s)},z=e=>{const t=e.replaceAll("\\","/"),r=g.replaceAll("\\","/").replace(/^\.?\//,"");if(!t.startsWith("/")&&!/^[A-Za-z]:\//.test(t))return t;for(const n of P.values()){const o=n.file.replaceAll("\\","/");if(o!==r&&!o.endsWith(`/${r}`))continue;const s=o.slice(0,-r.length);if(t.startsWith(s))return t.slice(s.length)}return r},V=e=>{const t=m(e);return(t?P.get(t)?.props:void 0)??[]},B=e=>{const t=a.displayObject(e);if(!t||!Te(t))return null;const r=me(t),n=fe(t);return r&&r!==n?r:null},_=e=>{const t=a.displayObject(e);if(!t||!Te(t))return null;const r=B(e),n=r?P.get(r):void 0,o=m(e),s=o?P.get(o):void 0,i=n?.component??s?.tag;return i?{name:i,...n?.file?{sourcePath:z(n.file)}:{}}:null},ie=e=>{const t=m(e);if(!t)return{anchored:!1,reason:"This rendered Canvas object has no authored source identity."};const r=P.get(t);if(!r)return{anchored:!1,reason:"Source metadata is still loading or unavailable."};const n=z(r.file);return{anchored:!0,kind:"source",file:n,line:r.line,col:r.col,display:`${n}:${r.line}`}},ae=d.writeBackend?{isDirty:()=>!1,save:async()=>{},destination:g,lastError:()=>{const e=J?.shell.projectHistory?.getSnapshot().lastError;return e&&(e.code==="apply-failed"||e.code==="compensation-failed"||e.code==="history-limit")?e.message:null}}:void 0,K=e=>a.getTransform(e)??{position:[0,0],rotation:0,scale:[1,1]},ee=(e,t,r,n)=>{if(!_(e))return!1;const o=he(t,n,r);if(!o.writable)return!1;const s=V(e);return o.writes.some(i=>!r.some(l=>l.name===i.prop)&&!s.some(l=>l.name===i.prop))},te=e=>{if(!e.isLiteral)return`{${e.rawValue}}`;const t=e.rawValue;return e.isExpression?t==="true"?!0:t==="false"?!1:Ae.test(t)?Number(t):t.replace(/^['"]|['"]$/g,""):t},ce=e=>e.isExpression?e.rawValue==="true"||e.rawValue==="false"?"boolean":Ae.test(e.rawValue)?"number":"string":"string",le=e=>typeof e=="number"?Z(e):typeof e=="boolean"?e?"true":"false":String(e),
|
|
6
|
-
`),count:n.length})},j=e=>(X(e),se(e),!1),ge=async e=>{N=null;const t=L(e);if(!t)return j("Copy needs source-addressable Canvas nodes from one source file.");const r=globalThis.navigator?.clipboard;if(!r?.writeText)return j("The system clipboard is unavailable.");try{await r.writeText(t.text)}catch{return j("The system clipboard refused the Canvas copy.")}return N=t,se(`Copied ${t.count} ${t.count===1?"node":"nodes"}.`),!0},we=async e=>{if(c?.writeStructMany)return T(e,"delete");let t=tt;for(const r of e)t=await p(r,"delete");return t},ye=e=>{const t=(o,s,i)=>{const l=B(o),u=l??m(o),f=u?P.get(u):void 0;return u&&f?{id:o,oid:u,file:f.file,op:s,definition:!!l}:null};if(e)return t(e,"create");const r=a.roots().at(-1);if(!r)return null;const n=t(r.id,"create-sibling");return n?{...n,op:n.definition?"create":"create-sibling"}:null},Fe=e=>{const t=ye(e);return!!N&&!!t&&t.file===N.sourceFile},Be=async e=>{const t=N;if(!t)return j("Copy or cut a Canvas node before pasting.");const r=globalThis.navigator?.clipboard;if(!r?.readText)return j("The system clipboard is unavailable.");try{if(await r.readText()!==t.text)return j("The clipboard changed after the Canvas copy.")}catch{return j("The system clipboard refused the Canvas paste.")}const n=ye(e);return n?n.file!==t.sourceFile?j("Cross-file paste is refused because the destination may not import the copied dependencies."):Se(await p(n.id,n.op,{snippet:t.text},n.oid)):j("Paste needs a source-addressable Canvas parent.")},ve=e=>{const t=[];let r=e;for(;r;)t.push(r),r=r.parent;const n=new C.Matrix;for(let o=t.length-1;o>=0;o--){const s=t[o];s.updateLocalTransform(),n.append(s.localTransform)}return n},De=(e,t)=>{const r=a.displayObject(e),n=a.displayObject(t);if(!r||!n)return null;const o=ve(n).clone().invert().append(ve(r)),s=new C.Transform;o.decompose(s);const i=r.pivot??{x:0,y:0};return{position:[o.tx+i.x*o.a+i.y*o.c,o.ty+i.x*o.b+i.y*o.d],rotation:[s.rotation],scale:[s.scale.x,s.scale.y],scalarChannels:["rotation"]}},be=e=>{let t=0;const r=n=>{me(a.displayObject(n))===e&&t++;for(const o of a.node(n)?.childIds??[])r(o)};for(const n of a.roots())r(n.id);return t},We=(e,t)=>{const r=B(e);if(!r)return 0;let n=1;const o=s=>{s!==e&&B(s)===r&&!b(s)?.some(i=>i.name===t)&&(n+=1);for(const i of a.node(s)?.childIds??[])o(i)};for(const s of a.roots())o(s.id);return n},Ve=async(e,t)=>{const r=m(e),n=t.startsWith("jsx.")?t.slice(4):null;if(!r||!n||!c?.removeProp)return!1;const o=await c.removeProp(r,n);return o.changed?(A.delete(`${e}|${t}`),await E(),w(),!0):(X(`revert ${n} refused/no-op: ${o.error??"no change"}.`),!1)},xe=(e,t)=>(e==="position"?["x","y"]:e==="rotation"?["rotation"]:t.some(n=>n.name==="scale-x"||n.name==="scale-y")?["scale-x","scale-y"]:["scale"]).filter(n=>t.some(o=>o.name===n)),Le=async(e,t)=>{const r=m(e),n=b(e);if(!r||!n||!c?.removeProp)return!1;const o=xe(t,n);if(o.length===0)return!1;let s=!1;const i=async l=>{for(const u of o){const f=await l.removeProp?.(r,u);f?.changed?s=!0:X(`revert ${u} refused/no-op: ${f?.error??"no change"}.`)}};return o.length>1&&c.runGesture?await c.runGesture(`Remove ${t}`,l=>i(l)):await i(c),s?(await E(),w(),!0):!1},ze={openComponent:()=>{Ze(Ye)},describe:e=>{const t=_(e);if(!t||Xe(t.name,t.sourcePath).length===0)return null;const r=b(e);if(!r)return null;const n=V(e),o=r.map(s=>{const i=`jsx.${s.name}`,l=n.find(f=>f.name===s.name);if(je(s.name)||Ee.has(s.name)||!Y(e,s,l))return null;const u=!!(l?.defaultValue!==void 0&&B(e)&&c?.runGesture&&c.writeComponentDefault&&c.removeProp);return{path:i,label:Me(s.name),value:te(s),...l?.defaultText===void 0?{}:{defaultText:l.defaultText},canApplyToComponent:u,affectedInstanceCount:We(e,s.name),...u?{}:{applyUnavailableReason:l?.defaultValue===void 0?"The component default is computed or absent, so source cannot be changed safely.":"This session cannot atomically update the component and its callsite."}}}).filter(s=>s!==null);return{componentName:t.name,...t.sourcePath?{sourcePath:t.sourcePath}:{},overrides:o}},revert:async(e,t)=>{let r=!1;const n=async o=>{const s=m(e);if(s)for(const i of t){const l=i.startsWith("jsx.")?i.slice(4):null;if(!l)continue;const u=await o.removeProp?.(s,l);r||=u?.changed===!0}};return t.length>1&&c?.runGesture?await c.runGesture(`Revert ${t.length} Overrides`,n):c&&await n(c),await E(),w(),r?{destination:I(e),persisted:!0}:void 0},applyToComponent:async(e,t)=>{const r=t.startsWith("jsx.")?t.slice(4):null,n=r?V(e).find(u=>u.name===r):void 0,o=B(e),s=m(e),i=_(e);if(!r||n?.defaultValue===void 0||!o||!s||!c?.runGesture||!c.writeComponentDefault||!c.removeProp)return{changed:!1,message:"Apply was refused because both literal source writes are not available."};const l=H(b(e),V(e),r);return await c.runGesture(`Apply ${r} to ${i?.name??"Component"}`,async u=>{const f=await u.writeComponentDefault?.(o,r,le(l));if(!f?.changed)throw new Error(f?.error??"The component default did not change.");const y=await u.removeProp?.(s,r);if(!y?.changed)throw new Error(y?.error??"The callsite override was not removed.")}),await E(),w(),{changed:!0,message:`${r} now defaults to ${String(l)} in ${i?.name??"the component"}.`,write:{destination:i?.sourcePath??I(e),persisted:!0}}}},$e={create:(e,t,r)=>{const n=ke[e],o=n&&r?n.replace(/\s*\/>$/,` x={${Z(r.x)}} y={${Z(r.y)}} />`):n;if(!o||!c?.writeStruct)return{id:"",ack:void 0};const s=It.has(e)?{snippet:o,ensureImport:{name:"Texture",module:"pixi.js"}}:{snippet:o};if(t)return{id:"",ack:p(t,"create",s)};const i=a.roots().at(-1);return i?{id:"",ack:p(i.id,"create-sibling",s)}:{id:"",ack:k("create refused: the source needs one addressable root insertion point.")}},creatableKinds:e=>c?.writeStruct?e&&!m(e)?[]:!e&&a.roots().length===0?[]:at.filter(t=>ke[t.kind]!==void 0).map(t=>({...t})):[],remove:e=>p(e,"delete"),removeMany:e=>we(e),copy:e=>ge(e),canCopy:e=>L(e)!==null,cut:async e=>await ge(e)?Se(await we(e)):!1,paste:e=>Be(e),canPaste:e=>Fe(e),duplicate:e=>({id:e,ack:p(e,"duplicate")}),wrap:(e,t)=>p(e,"wrap",{wrapperTag:t??"pixiContainer"}),unwrap:e=>p(e,"unwrap"),group:e=>{const t=[...new Set(e)];if(t.length<2)return{id:null,ack:void 0};const r=a.node(t[0])?.parentId??null;return t.some(n=>a.node(n)?.parentId!==r)?{id:null,ack:k("group refused: select two or more siblings.")}:{id:"",ack:T(t,"group",{wrapperTag:"pixiContainer"})}},canUngroup:e=>{const t=m(e);return!!(t&&P.get(t)?.tag==="pixiContainer"&&(a.node(e)?.childIds.length??0)>0)},ungroup:e=>$e.canUngroup?.(e)?{ids:[...a.node(e)?.childIds??[]],ack:p(e,"unwrap")}:{ids:[],ack:void 0},reparent:(e,t)=>{if(!t)return k("reparent refused: drop onto a source-addressable container.");const r=m(t),n=m(e),o=De(e,t);return!r||!n||!o?k("reparent refused: the source or destination is not addressable."):p(e,"reparent",{parentOid:r,rebase:o,destinationInstances:be(r),sourceInstances:be(n)})},reorder:(e,t)=>{if(t){const o=m(t);return o?p(e,"reorder",{targetOid:o}):k("reorder refused: the target has no source identity.")}const r=a.node(e)?.parentId,n=r?m(r):null;return n?p(e,"reorder",{parentOid:n}):k("reorder-to-end refused: the parent has no source identity.")}},He=(e,t)=>pt(z(e),z(t)),Ge=async e=>{const t=e.sourcePath;if(!t||!c?.readSource)return null;try{const{source:r}=await c.readSource(t),{parseAuthoringTsx:n}=await Pe(async()=>{const{parseAuthoringTsx:s}=await import("./r3f-physics-binding-DypXLH_I.js").then(i=>i.t);return{parseAuthoringTsx:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),{localComponentPropSpecs:o}=await Pe(async()=>{const{localComponentPropSpecs:s}=await import("./syntactic-prop-specs-o1W7kiuC.js");return{localComponentPropSpecs:s}},__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]));return o(n(t,r),new Map).get(e.name)??null}catch{return null}},Ue=e=>e.filter(t=>!t.optional&&t.defaultText===void 0&&t.type!=="enum"&&!_t.has(t.name)),qe=e=>e.filter(t=>!t.optional&&t.defaultText===void 0&&t.type==="enum"&&t.options?.[0]!==void 0).map(t=>{const r=t.options?.[0];return typeof r=="string"?` ${t.name}=${JSON.stringify(r)}`:` ${t.name}={${r}}`}).join("");return{provenance:{source:"source-code",label:"Pixi source",detail:"Live @pixi/react display tree; literal JSX props write back to the .tsx source (expression-bound props are read-only)."},...ae?{persistence:ae}:{},structure:$e,assetDrop:{accepts:(e,t,r)=>{if(!c?.writeStruct||!(e?m(e):a.roots().at(-1)?.id))return!1;const o=r?.item;return o?.kind==="component"?o.surface==="canvas":/\.(?:png|jpe?g|webp|gif|avif|svg)$/i.test(t)},drop:async(e,t,r)=>{const n=e||a.roots().at(-1)?.id||"",o=m(n),s=o?P.get(o):void 0;if(!n||!s)return k("asset drop refused: there is no source-addressable insertion point.");const i=r?.item,l=r?.position,u=l?` x={${Z(l[0])}} y={${Z(l[1])}}`:"";let f,y;if(i?.kind==="component"){if(i.surface!=="canvas")return k(`${i.name} is a ${i.surface} component, not a Canvas prefab.`);const x=await Ge(i),U=x?Ue(x):[];if(U.length>0){const O=U.map(Je=>`\`${Je.name}\``).join(", ");return k(`${i.name} needs ${O} — required props with no default, which a drop cannot supply. Place it from a story that provides them, or give them defaults in ${i.sourcePath??"its component"}.`)}const S=(x?x.some(O=>O.name==="x"||O.name==="y"):null)===!1;if(S&&l){const O=`${i.name} places itself — its own code owns x/y, so the drop point was not written. Move it by editing that component, or give it x/y props.`;se(O),X(O)}f=`<${i.name}${S?"":u}${x?qe(x):""} />`,y={name:i.name,module:He(s.file,i.sourcePath),kind:i.exportKind}}else{if(!/\.(?:png|jpe?g|webp|gif|avif|svg)$/i.test(t))return k(`${t} is not an image or Canvas prefab.`);f=`<pixiSprite label="${(t.split("/").pop()?.replace(/\.[^.]+$/,"")||"Sprite").replace(/["\\]/g,"")}" texture={Texture.from(${JSON.stringify(t)})}${u} />`,y={name:"Texture",module:"pixi.js"}}return p(n,e?"create":"create-sibling",{snippet:f,ensureImport:y})}},truth:e=>({site:ie(e),writeAnchorKind:c&&m(e)?"source-prop":"live-only"}),componentIdentity:_,instances:()=>ze,bind(e){a=e.a2d,w=e.notify,J=e.store,c=Ke(d.writeBackend,e.store.shell.projectHistory),E()},onReindex(){for(const e of $()){const t=P.get(e);if(t===void 0||!D.has(t.file)){E();return}}},transformEditability(e,t){if(!m(e))return{writable:!1,reason:"This rendered part has no authored source identity."};if(!c?.writeProp)return{writable:!1,reason:"This session has no source writer."};if(R.has(`${e}|${t}`))return{writable:!1,reason:`${t} is controlled by a JSX expression.`};const n=b(e);if(!n)return{writable:!1,reason:"Source metadata is still loading or unavailable."};if(ee(e,t,n,K(e))){const s=_(e)?.name??"this component";return{writable:!1,reason:`${t} is owned by <${s}>'s own code — it declares no prop for it.`}}const o=he(t,K(e),n);return o.writable?{writable:!0,...c.removeProp&&xe(t,n).length>0?{removable:!0}:{}}:{writable:!1,reason:o.reason}},beginTransformEdit(e){F.has(e)||F.set(e,K(e))},writeOrigin(e,t,r){const n=a.displayObject(e),o=n?.[t];if(!n||typeof o?.x!="number"||typeof o.y!="number")return;const s=W.get(e)?.before??[o.x,o.y];n[t]={x:r[0],y:r[1]},W.set(e,{kind:t,value:r,before:s}),w()},writeTransform(e,t){a.setTransform(e,t),w()},endTransformEdit(e){const t=F.get(e);if(!t)return;F.delete(e);const r=M.then(()=>G(()=>ue(e,t).catch(n=>(console.error(`[canvas-source ${I(e)}] transform commit failed`,n),!1)),c?.writeProp!==void 0,I(e)));return M=r.then(()=>{},n=>{console.error(`[canvas-source ${g}] transform commit failed`,n)}),r},removeTransform(e,t){return G(()=>Le(e,t),c?.removeProp!==void 0,I(e))},reportStructureLiveOnly(e,t){console.warn(`[canvas-source ${g}] ${e} stayed live-only — ${t}.`)},properties(e){if(!a.displayObject(e))return[];const t=[{path:"name",label:"Name",type:"string"},{path:"visible",label:"Visible",type:"boolean",group:"Visibility"}],r=b(e)??[],n=r.find(f=>f.name==="skew"),o=n?!n.isLiteral:!1;t.push({path:"skew.x",label:"Skew X (deg)",type:"number",group:"Transform",readonly:o},{path:"skew.y",label:"Skew Y (deg)",type:"number",group:"Transform",readonly:o});const s=V(e),i=new Map(r.map(f=>[f.name,f])),l=[...s.map(f=>f.name),...r.filter(f=>!s.some(y=>y.name===f.name)).map(f=>f.name)],u=_(e)?.name??"Properties";for(const f of l){if(je(f)||Ee.has(f))continue;const y=i.get(f),x=s.find(S=>S.name===f),U=!y&&x?.defaultText!==void 0&&x.defaultValue===void 0,v=Y(e,y,x);t.push({path:`jsx.${f}`,label:Me(f),type:U?"string":x?.type??(y?ce(y):"string"),...x?.options?{options:[...x.options]}:{},readonly:U||(y?!y.isLiteral:!1),...y?{}:{defaulted:!0},...v?{resettable:!0}:{},...v&&x?.defaultText!==void 0?{revertsTo:x.defaultText}:{},group:u})}return t},get(e,t){const r=a.displayObject(e);if(!r)return;const n=A.get(`${e}|${t}`);if(n!==void 0)return n;if(t==="name")return r.label??"";if(t==="visible")return r.visible;if(t==="skew.x"||t==="skew.y")return Number(((t==="skew.x"?r.skew.x:r.skew.y)*180/Math.PI).toFixed(4));if(t.startsWith("jsx."))return H(b(e),V(e),t.slice(4))},set(e,t,r){if(t==="skew.x"||t==="skew.y")return G(()=>Q(e,t==="skew.x"?"x":"y",Number(r)),void 0,I(e));const n=t==="name"?"label":t==="visible"?"visible":t.startsWith("jsx.")?t.slice(4):null;if(n)return G(()=>ne(e,t,n,r),void 0,I(e))},remove(e,t){return G(()=>Ve(e,t),c?.removeProp!==void 0,I(e))},dispose(){A.clear(),R.clear(),F.clear()}}}function Dt(d,h,g,C=.1){const a=d.getBoundingClientRect();if(a.width<2||a.height<2||!(h.width>0)||!(h.height>0))return!1;const w=Math.min(4,Math.max(C,Math.min((a.width-96)/h.width,(a.height-96)/h.height)));return g.setView(a.width/2-(h.x+h.width/2)*w,a.height/2-(h.y+h.height/2)*w,w),!0}function Wt(d,h){return yt(d,async()=>{for(let g=0;g<24;g++){if(h())return null;await new Promise(C=>setTimeout(C,0))}return null})}const Re={width:1280,height:720};function Vt(){return jt({loop:Mt({update:()=>{}}),assets:At()})}function Lt(){const d=document.createElement("canvas");return d.dataset.volterCanvasSceneSurface="true",d.style.position="absolute",d.style.inset="0",d.style.width="100%",d.style.height="100%",d.style.display="block",d}function zt(d){const{worldId:h,entry:g,layer:C,canvas:a,game:w,mounted:c,store:J,onFirstFrame:N}=d,P=xt({history:J.shell.projectHistory}),D=new it(c.substrate.root,J,{canvas:a,api:c.substrate.api,persistence:P,journal:Ne(h),provenance:{source:"source-code",label:"babylon",detail:"Native Babylon.js scene graph; imperative edits write to the construction site in the game’s own source."}});let A=w.systemAdapters;pe(A);const R=w.subscribeSystemAdapters?.(()=>{A=w.systemAdapters,Ie(A),J.shell.notifyIngestEdit()}),F=()=>{const b=C.getBoundingClientRect();b.width>0&&b.height>0&&c.resize?.(b.width,b.height)},W=new ResizeObserver(F);W.observe(C),F();let M=!1,m=!1,$=0;const E=()=>{if($=requestAnimationFrame(E),!M)try{c.update?.(0),m||(m=!0,N?.())}catch(b){cancelAnimationFrame($),q.error(`[babylon-design] world "${h}" failed to render: ${String(b)}`,"authoring")}};return $=requestAnimationFrame(E),q.log(`[babylon-design] world "${h}" mounted as a native Babylon Scene (${g})`,"authoring"),{adapter:D,dispose(){M=!0,cancelAnimationFrame($),W.disconnect(),D.dispose(),R?.(),pe(null),c.dispose(),a.remove(),w.dispose()}}}const _e=new WeakSet;async function Xr(d,h,g,C,a,w,c){if(!h)throw new Error(`canvas root "${d}": no \`entry\` declared — nothing to mount.`);const N=await(await Pt(C,rt())).loadEntryModule(h,d,"canvas"),P=Tt(d,N),D=Ct(d,N,"canvas"),A=await $t(N,d);if(!A)throw new Error(`canvas root "${d}": entry module "${h}" must default-export a React component (\`export default function World() { … }\`) — or export an \`adapter\` for full control.`);const R=st(),F=R?.config.resolution?.width??Re.width,W=R?.config.resolution?.height??Re.height,M=w??ot,m=Lt();g.appendChild(m);const $=Vt(),E={canvas:m,width:F,height:W,game:$,headless:!1,transparent:!0,preserveDrawingBuffer:!0};let b,z;try{b=await vt(async p=>{const T=await A.mount(E);return z=p[0],T})}catch(p){throw m.remove(),$.dispose(),p}if(kt($,A,b,{id:d}),Ot($,P?[P]:[]),Et($,D?[D]:[]),b.substrate.name==="babylon")return zt({worldId:d,entry:h,layer:g,canvas:m,game:$,mounted:b,store:a,onFirstFrame:c});if(b.substrate.name!=="pixi")throw b.dispose(),m.remove(),$.dispose(),new Error(`canvas root "${d}" mounted undeclared editor substrate "${b.substrate.name}" — declare pixi or babylon and provide its authoring adapter.`);const V=b.substrate.root,B=await St();z===void 0&&q.error(`[canvas-design] world "${d}" mounted, but its Pixi Application was never handed to the design view (Pixi's \`__PIXI_APP_INIT__\` hook did not report one) — this Scene will render no frames at all. The world itself is fine; the editor cannot draw it.`,"authoring");let _=$.systemAdapters;pe(_);const ie=$.subscribeSystemAdapters?.(()=>{_=$.systemAdapters,Ie(_),a.shell.notifyIngestEdit()}),ae=await nt(),K=new lt(V,a,{pixi:B,identity:ut(d),journal:Ne(d),target:Bt({worldId:d,entryPath:h,pixi:B,writeBackend:ae}),surface:()=>m,capturePreview:(p,T)=>bt(p,{...T,pixi:B}),pointFromClient:(p,T,L)=>{const j=M.get();return{x:(p-L.left-j.x)/j.zoom,y:(T-L.top-j.y)/j.zoom}}}),ee=()=>{const p=g.getBoundingClientRect(),T=z?.renderer;T&&p.width>0&&p.height>0&&T.resize(p.width,p.height)},te=new ResizeObserver(ee);te.observe(g),ee();const ce=()=>{const p=z?.renderer;if(!p)return!1;const T=g.getBoundingClientRect();T.width>0&&T.height>0&&(p.screen.width!==T.width||p.screen.height!==T.height)&&p.resize(T.width,T.height);const L=M.get();return p.render({container:V,transform:new B.Matrix(L.zoom,0,0,L.zoom,L.x,L.y)}),!0},le=Wt(m,ce);let H=0,Y=!1,ue=!1;const de=()=>{if(H=requestAnimationFrame(de),!Y)try{ce()&&!ue&&(ue=!0,c?.())}catch(p){cancelAnimationFrame(H),H=0,q.error(`[canvas-design] world "${d}" failed to render — the design view is frozen: ${String(p)}`,"authoring")}};H=requestAnimationFrame(de);const re=_e.has(M);_e.add(M);const Q=g.getBoundingClientRect();!re&&Q.width>0&&Q.height>0&&M.setView(Q.width/2,Q.height/2,1);let ne=0,I=0,G=re;const X=M.subscribe(()=>{G=!0}),oe=()=>{const p=g.getBoundingClientRect();return p.width<2||p.height<2?1:Math.max(1,Math.min((p.width-96)/F,(p.height-96)/W))},k=()=>{if(G||Y||I++>180)return;const p=V.getBounds();Dt(g,p,M,oe())||(ne=requestAnimationFrame(k))};return ne=requestAnimationFrame(k),q.log(`[canvas-design] world "${d}" mounted for design-time authoring (${h})`,"authoring"),{adapter:K,dispose(){Y=!0,cancelAnimationFrame(H),cancelAnimationFrame(ne),X(),te.disconnect(),le(),K.dispose(),ie?.(),pe(null);try{b.dispose()}catch(p){q.error(`[canvas-design] dispose failed: ${String(p)}`,"authoring")}m.remove(),$.dispose()}}}export{Xr as mountCanvasDesignLayer};
|
|
5
|
+
`):a}function Ft(d,h){const g=new Set(d);return[...g].filter(C=>{let a=h(C);for(;a;){if(g.has(a))return!1;a=h(a)}return!0})}function Bt(d){const{worldId:h,entryPath:g}=d,C=d.pixi??wt;let a,w=()=>{},c,J,N=null,P=new Map,D=new Map;const A=new Map,R=new Set,F=new Map,W=new Map;let M=Promise.resolve();const m=e=>{const t=a.displayObject(e);return(t?fe(t):void 0)??ct(h,e)},$=()=>{const e=new Set,t=r=>{const n=a.displayObject(r),o=me(n);o!==void 0&&e.add(o);const s=n?fe(n):void 0;s!==void 0&&e.add(s);for(const i of a.node(r)?.childIds??[])t(i)};for(const r of a.roots())t(r.id);return e},E=async()=>{if(!(!c?.index||!c.readSource))try{const e=await c.index();P=new Map(Object.entries(e));const t=new Set;for(const n of $()){const o=P.get(n);o&&t.add(o.file)}const r=new Map;await Promise.all([...t].map(async n=>{const o=await c.readSource(n);r.set(n,o.source)})),D=r,w()}catch{}},b=e=>{const t=m(e);if(!t)return null;const r=P.get(t);if(!r)return null;const n=D.get(r.file);if(n===void 0)return null;const o=Ce(n,r.line,r.col);if(n[o]!=="<")return null;const s=mt(n,o);return s<0?null:ht(n,o,s)},z=e=>{const t=e.replaceAll("\\","/"),r=g.replaceAll("\\","/").replace(/^\.?\//,"");if(!t.startsWith("/")&&!/^[A-Za-z]:\//.test(t))return t;for(const n of P.values()){const o=n.file.replaceAll("\\","/");if(o!==r&&!o.endsWith(`/${r}`))continue;const s=o.slice(0,-r.length);if(t.startsWith(s))return t.slice(s.length)}return r},V=e=>{const t=m(e);return(t?P.get(t)?.props:void 0)??[]},B=e=>{const t=a.displayObject(e);if(!t||!Te(t))return null;const r=me(t),n=fe(t);return r&&r!==n?r:null},_=e=>{const t=a.displayObject(e);if(!t||!Te(t))return null;const r=B(e),n=r?P.get(r):void 0,o=m(e),s=o?P.get(o):void 0,i=n?.component??s?.tag;return i?{name:i,...n?.file?{sourcePath:z(n.file)}:{}}:null},ie=e=>{const t=m(e);if(!t)return{anchored:!1,reason:"This rendered Canvas object has no authored source identity."};const r=P.get(t);if(!r)return{anchored:!1,reason:"Source metadata is still loading or unavailable."};const n=z(r.file);return{anchored:!0,kind:"source",file:n,line:r.line,col:r.col,display:`${n}:${r.line}`}},ae=d.writeBackend?{isDirty:()=>!1,save:async()=>{},destination:g,lastError:()=>{const e=J?.shell.projectHistory?.getSnapshot().lastError;return e&&(e.code==="apply-failed"||e.code==="compensation-failed"||e.code==="history-limit")?e.message:null}}:void 0,K=e=>a.getTransform(e)??{position:[0,0],rotation:0,scale:[1,1]},ee=(e,t,r,n)=>{if(!_(e))return!1;const o=he(t,n,r);if(!o.writable)return!1;const s=V(e);return o.writes.some(i=>!r.some(l=>l.name===i.prop)&&!s.some(l=>l.name===i.prop))},te=e=>{if(!e.isLiteral)return`{${e.rawValue}}`;const t=e.rawValue;return e.isExpression?t==="true"?!0:t==="false"?!1:Ae.test(t)?Number(t):t.replace(/^['"]|['"]$/g,""):t},ce=e=>e.isExpression?e.rawValue==="true"||e.rawValue==="false"?"boolean":Ae.test(e.rawValue)?"number":"string":"string",le=e=>typeof e=="number"?Z(e):typeof e=="boolean"?e?"true":"false":String(e),G=(e,t,r)=>{const n=e?.find(s=>s.name===r);if(n)return te(n);const o=t.find(s=>s.name===r);return o?o.defaultValue??o.defaultText:void 0},Y=(e,t,r)=>!!(t?.isLiteral&&r?.optional&&c?.removeProp&&!R.has(`${e}|jsx.${t.name}`)),ue=async(e,t)=>{const r=K(e),n=["position","rotation","scale"].filter(v=>dt(v,t,r)),o=W.get(e);if(W.delete(e),n.length===0&&!o)return!1;const s=v=>{if(v==="origin"){const S=a.displayObject(e);S&&o&&(S[o.kind]={x:o.before[0],y:o.before[1]})}else v==="position"?a.setTransform(e,{position:t.position}):v==="rotation"?a.setTransform(e,{rotation:t.rotation}):a.setTransform(e,{scale:t.scale});w()},i=m(e);if(!i||!c?.writeProp){console.warn(`[canvas-source ${g}] transform on "${e}" is not persistable (${i?"no source-write backend":"node has no source stamp"}) — reverting.`);for(const v of n)s(v);return!1}const l=b(e)??[],u=_(e),f=v=>ee(e,v,l,r),y=[];for(const v of n){if(f(v)){R.add(`${e}|${v}`),se(`${v} is owned by <${u?.name??"this component"}>'s own code — see Console`),q.warn(`${v} on <${u?.name??"this component"}> is not writable — the component declares no prop for it, so a written value would never reach the running game (the component's own code owns that channel). Edit ${u?.sourcePath??"the component definition"} instead. Reverting.`,"authoring"),s(v);continue}const S=he(v,r,l);if(!S.writable){R.add(`${e}|${v}`),console.warn(`[canvas-source ${g}] ${v} on "${e}" is not writable — ${S.reason} Reverting the live object.`),s(v);continue}for(const O of S.writes)y.push({channel:v,...O})}if(o&&(u&&f("position")?s("origin"):y.push({channel:"origin",prop:o.kind,value:`{ x: ${Z(o.value[0])}, y: ${Z(o.value[1])} }`})),y.length===0)return!1;let x=!1;const U=async v=>{for(const S of y){const O=await v.writeProp(i,S.prop,S.value,{addIfMissing:!0,...S.prop==="scale"||S.channel==="origin"?{allowShapeUpgrade:!0}:{}});if(O.changed){x=!0;continue}!O.dynamic&&!O.error||(O.dynamic&&R.add(`${e}|${S.channel}`),console.warn(`[canvas-source ${g}] ${S.prop} write refused for oid "${i}": ${O.dynamic?"dynamic expression (guarded)":O.error??"no change"} — reverting.`),s(S.channel))}};return y.length>1&&c.runGesture?await c.runGesture("Transform",v=>U(v)):await U(c),await E(),w(),x},de=(e,t)=>{const r=a.displayObject(e);if(r)return t==="label"?r.label:t in r?r[t]:void 0},re=(e,t,r)=>{const n=a.displayObject(e);n&&(t==="label"?n.label=String(r):t in n&&(n[t]=r))},Q=async(e,t,r)=>{const n=a.displayObject(e),o=m(e);if(!n||!o||!c?.writeProp||!Number.isFinite(r))return!1;const s={x:n.skew.x,y:n.skew.y},i=r*Math.PI/180,l={x:t==="x"?i:s.x,y:t==="y"?i:s.y};n.skew.set(l.x,l.y),w();const u=await c.writeProp(o,"skew",`{ x: ${String(Number(l.x.toFixed(6)))}, y: ${String(Number(l.y.toFixed(6)))} }`,{addIfMissing:!0,allowShapeUpgrade:!0});return!u.changed&&(u.dynamic||u.error)?(n.skew.set(s.x,s.y),w(),console.warn(`[canvas-source ${g}] skew write refused for oid "${o}": ${u.dynamic?"dynamic expression (guarded)":u.error} — reverting.`),!1):(await E(),w(),u.changed)},ne=async(e,t,r,n)=>{const o=m(e);if(!o||!c?.writeProp)return console.warn(`[canvas-source ${g}] cannot write "${r}" on "${e}": ${o?"no source-write backend in this session":"node has no source stamp"}.`),!1;const s=`${e}|${t}`,i=de(e,r);A.set(s,n),re(e,r,n),w();let l;try{l=await c.writeProp(o,r,le(n),{addIfMissing:!0})}catch(u){return A.delete(s),w(),console.warn(`[canvas-source ${g}] prop write failed for oid "${o}" prop "${r}": ${String(u)}`),!1}if(!l.changed){A.delete(s),l.dynamic&&R.add(s),i!==void 0&&re(e,r,i),w();const u=_(e)?.name??a.displayObject(e)?.label??e,f=l.dynamic?`it is bound to an expression in <${u}>'s own source, so a direct edit cannot land`:`the component declares no ${JSON.stringify(r)} prop to write${l.error?` (${l.error})`:""}`;return se(`${r} on <${u}> is not writable — see Console`),q.warn(`${JSON.stringify(r)} on <${u}> is not writable — ${f}. Edit the component definition (right-click the row → Open Component Source), or the prop that drives it. Reverting.`,"authoring"),!1}return await E(),!0},I=e=>{const t=ie(e);return t.anchored?t.file:g},H=(e,t=c?.writeProp!==void 0,r=g)=>Qe({resolve:()=>t?{reaches:"writer",anchorKind:"source-prop",destination:r,write:e}:et(Oe),record:()=>{},report:n=>{console.warn(`[canvas-source ${r}] this edit stays live-only — ${n}.`)}}),X=e=>{console.warn(`[canvas-source ${g}] ${e}`)},oe=ft({report:X,noWriterReason:Oe,backend:()=>c,onChanged:async()=>{await E(),w()}}),k=e=>oe.structRefusal(e),p=(e,t,r,n)=>oe.structOp(n??m(e),e,t,r,I(e)),T=(e,t,r)=>{const n=[...new Set(e.map(m).filter(o=>!!o))];return n.length!==new Set(e).size?k(`${t} refused: every selected node must be source-addressable.`):oe.structMany(n,t,r,I(e[0]??""))},L=e=>{const t=Ft(e,i=>a.node(i)?.parentId??null),r=i=>{const l=m(i),u=l?P.get(l):void 0,f=u?D.get(u.file):void 0;if(!l||!u||f===void 0)return null;const y=Ce(f,u.line,u.col),x=gt(f,y);return f[y]==="<"&&x>y?{file:u.file,offset:y,text:Nt(f,y,x)}:null},n=[],o=new Set;for(const i of t){const l=m(i);if(!l||o.has(l))continue;o.add(l);const u=r(i);if(!u)return null;n.push(u)}if(n.length===0)return null;const s=n[0].file;return n.some(i=>i.file!==s)?null:(n.sort((i,l)=>i.offset-l.offset),{sourceFile:s,text:n.map(i=>i.text).join(`
|
|
6
|
+
`),count:n.length})},j=e=>(X(e),se(e),!1),ge=async e=>{N=null;const t=L(e);if(!t)return j("Copy needs source-addressable Canvas nodes from one source file.");const r=globalThis.navigator?.clipboard;if(!r?.writeText)return j("The system clipboard is unavailable.");try{await r.writeText(t.text)}catch{return j("The system clipboard refused the Canvas copy.")}return N=t,se(`Copied ${t.count} ${t.count===1?"node":"nodes"}.`),!0},we=async e=>{if(c?.writeStructMany)return T(e,"delete");let t=tt;for(const r of e)t=await p(r,"delete");return t},ye=e=>{const t=(o,s,i)=>{const l=B(o),u=l??m(o),f=u?P.get(u):void 0;return u&&f?{id:o,oid:u,file:f.file,op:s,definition:!!l}:null};if(e)return t(e,"create");const r=a.roots().at(-1);if(!r)return null;const n=t(r.id,"create-sibling");return n?{...n,op:n.definition?"create":"create-sibling"}:null},Fe=e=>{const t=ye(e);return!!N&&!!t&&t.file===N.sourceFile},Be=async e=>{const t=N;if(!t)return j("Copy or cut a Canvas node before pasting.");const r=globalThis.navigator?.clipboard;if(!r?.readText)return j("The system clipboard is unavailable.");try{if(await r.readText()!==t.text)return j("The clipboard changed after the Canvas copy.")}catch{return j("The system clipboard refused the Canvas paste.")}const n=ye(e);return n?n.file!==t.sourceFile?j("Cross-file paste is refused because the destination may not import the copied dependencies."):Se(await p(n.id,n.op,{snippet:t.text},n.oid)):j("Paste needs a source-addressable Canvas parent.")},ve=e=>{const t=[];let r=e;for(;r;)t.push(r),r=r.parent;const n=new C.Matrix;for(let o=t.length-1;o>=0;o--){const s=t[o];s.updateLocalTransform(),n.append(s.localTransform)}return n},De=(e,t)=>{const r=a.displayObject(e),n=a.displayObject(t);if(!r||!n)return null;const o=ve(n).clone().invert().append(ve(r)),s=new C.Transform;o.decompose(s);const i=r.pivot??{x:0,y:0};return{position:[o.tx+i.x*o.a+i.y*o.c,o.ty+i.x*o.b+i.y*o.d],rotation:[s.rotation],scale:[s.scale.x,s.scale.y],scalarChannels:["rotation"]}},be=e=>{let t=0;const r=n=>{me(a.displayObject(n))===e&&t++;for(const o of a.node(n)?.childIds??[])r(o)};for(const n of a.roots())r(n.id);return t},We=(e,t)=>{const r=B(e);if(!r)return 0;let n=1;const o=s=>{s!==e&&B(s)===r&&!b(s)?.some(i=>i.name===t)&&(n+=1);for(const i of a.node(s)?.childIds??[])o(i)};for(const s of a.roots())o(s.id);return n},Ve=async(e,t)=>{const r=m(e),n=t.startsWith("jsx.")?t.slice(4):null;if(!r||!n||!c?.removeProp)return!1;const o=await c.removeProp(r,n);return o.changed?(A.delete(`${e}|${t}`),await E(),w(),!0):(X(`revert ${n} refused/no-op: ${o.error??"no change"}.`),!1)},xe=(e,t)=>(e==="position"?["x","y"]:e==="rotation"?["rotation"]:t.some(n=>n.name==="scale-x"||n.name==="scale-y")?["scale-x","scale-y"]:["scale"]).filter(n=>t.some(o=>o.name===n)),Le=async(e,t)=>{const r=m(e),n=b(e);if(!r||!n||!c?.removeProp)return!1;const o=xe(t,n);if(o.length===0)return!1;let s=!1;const i=async l=>{for(const u of o){const f=await l.removeProp?.(r,u);f?.changed?s=!0:X(`revert ${u} refused/no-op: ${f?.error??"no change"}.`)}};return o.length>1&&c.runGesture?await c.runGesture(`Remove ${t}`,l=>i(l)):await i(c),s?(await E(),w(),!0):!1},ze={openComponent:()=>{Ze(Ye)},describe:e=>{const t=_(e);if(!t||Xe(t.name,t.sourcePath).length===0)return null;const r=b(e);if(!r)return null;const n=V(e),o=r.map(s=>{const i=`jsx.${s.name}`,l=n.find(f=>f.name===s.name);if(je(s.name)||Ee.has(s.name)||!Y(e,s,l))return null;const u=!!(l?.defaultValue!==void 0&&B(e)&&c?.runGesture&&c.writeComponentDefault&&c.removeProp);return{path:i,label:Me(s.name),value:te(s),...l?.defaultText===void 0?{}:{defaultText:l.defaultText},canApplyToComponent:u,affectedInstanceCount:We(e,s.name),...u?{}:{applyUnavailableReason:l?.defaultValue===void 0?"The component default is computed or absent, so source cannot be changed safely.":"This session cannot atomically update the component and its callsite."}}}).filter(s=>s!==null);return{componentName:t.name,...t.sourcePath?{sourcePath:t.sourcePath}:{},overrides:o}},revert:async(e,t)=>{let r=!1;const n=async o=>{const s=m(e);if(s)for(const i of t){const l=i.startsWith("jsx.")?i.slice(4):null;if(!l)continue;const u=await o.removeProp?.(s,l);r||=u?.changed===!0}};return t.length>1&&c?.runGesture?await c.runGesture(`Revert ${t.length} Overrides`,n):c&&await n(c),await E(),w(),r?{destination:I(e),persisted:!0}:void 0},applyToComponent:async(e,t)=>{const r=t.startsWith("jsx.")?t.slice(4):null,n=r?V(e).find(u=>u.name===r):void 0,o=B(e),s=m(e),i=_(e);if(!r||n?.defaultValue===void 0||!o||!s||!c?.runGesture||!c.writeComponentDefault||!c.removeProp)return{changed:!1,message:"Apply was refused because both literal source writes are not available."};const l=G(b(e),V(e),r);return await c.runGesture(`Apply ${r} to ${i?.name??"Component"}`,async u=>{const f=await u.writeComponentDefault?.(o,r,le(l));if(!f?.changed)throw new Error(f?.error??"The component default did not change.");const y=await u.removeProp?.(s,r);if(!y?.changed)throw new Error(y?.error??"The callsite override was not removed.")}),await E(),w(),{changed:!0,message:`${r} now defaults to ${String(l)} in ${i?.name??"the component"}.`,write:{destination:i?.sourcePath??I(e),persisted:!0}}}},$e={create:(e,t,r)=>{const n=ke[e],o=n&&r?n.replace(/\s*\/>$/,` x={${Z(r.x)}} y={${Z(r.y)}} />`):n;if(!o||!c?.writeStruct)return{id:"",ack:void 0};const s=It.has(e)?{snippet:o,ensureImport:{name:"Texture",module:"pixi.js"}}:{snippet:o};if(t)return{id:"",ack:p(t,"create",s)};const i=a.roots().at(-1);return i?{id:"",ack:p(i.id,"create-sibling",s)}:{id:"",ack:k("create refused: the source needs one addressable root insertion point.")}},creatableKinds:e=>c?.writeStruct?e&&!m(e)?[]:!e&&a.roots().length===0?[]:at.filter(t=>ke[t.kind]!==void 0).map(t=>({...t})):[],remove:e=>p(e,"delete"),removeMany:e=>we(e),copy:e=>ge(e),canCopy:e=>L(e)!==null,cut:async e=>await ge(e)?Se(await we(e)):!1,paste:e=>Be(e),canPaste:e=>Fe(e),duplicate:e=>({id:e,ack:p(e,"duplicate")}),wrap:(e,t)=>p(e,"wrap",{wrapperTag:t??"pixiContainer"}),unwrap:e=>p(e,"unwrap"),group:e=>{const t=[...new Set(e)];if(t.length<2)return{id:null,ack:void 0};const r=a.node(t[0])?.parentId??null;return t.some(n=>a.node(n)?.parentId!==r)?{id:null,ack:k("group refused: select two or more siblings.")}:{id:"",ack:T(t,"group",{wrapperTag:"pixiContainer"})}},canUngroup:e=>{const t=m(e);return!!(t&&P.get(t)?.tag==="pixiContainer"&&(a.node(e)?.childIds.length??0)>0)},ungroup:e=>$e.canUngroup?.(e)?{ids:[...a.node(e)?.childIds??[]],ack:p(e,"unwrap")}:{ids:[],ack:void 0},reparent:(e,t)=>{if(!t)return k("reparent refused: drop onto a source-addressable container.");const r=m(t),n=m(e),o=De(e,t);return!r||!n||!o?k("reparent refused: the source or destination is not addressable."):p(e,"reparent",{parentOid:r,rebase:o,destinationInstances:be(r),sourceInstances:be(n)})},reorder:(e,t)=>{if(t){const o=m(t);return o?p(e,"reorder",{targetOid:o}):k("reorder refused: the target has no source identity.")}const r=a.node(e)?.parentId,n=r?m(r):null;return n?p(e,"reorder",{parentOid:n}):k("reorder-to-end refused: the parent has no source identity.")}},Ge=(e,t)=>pt(z(e),z(t)),He=async e=>{const t=e.sourcePath;if(!t||!c?.readSource)return null;try{const{source:r}=await c.readSource(t),{parseAuthoringTsx:n}=await Pe(async()=>{const{parseAuthoringTsx:s}=await import("./r3f-physics-binding-DyvJAWJ4.js").then(i=>i.t);return{parseAuthoringTsx:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),{localComponentPropSpecs:o}=await Pe(async()=>{const{localComponentPropSpecs:s}=await import("./syntactic-prop-specs-BcjoSr_8.js");return{localComponentPropSpecs:s}},__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]));return o(n(t,r),new Map).get(e.name)??null}catch{return null}},Ue=e=>e.filter(t=>!t.optional&&t.defaultText===void 0&&t.type!=="enum"&&!_t.has(t.name)),qe=e=>e.filter(t=>!t.optional&&t.defaultText===void 0&&t.type==="enum"&&t.options?.[0]!==void 0).map(t=>{const r=t.options?.[0];return typeof r=="string"?` ${t.name}=${JSON.stringify(r)}`:` ${t.name}={${r}}`}).join("");return{provenance:{source:"source-code",label:"Pixi source",detail:"Live @pixi/react display tree; literal JSX props write back to the .tsx source (expression-bound props are read-only)."},...ae?{persistence:ae}:{},structure:$e,assetDrop:{accepts:(e,t,r)=>{if(!c?.writeStruct||!(e?m(e):a.roots().at(-1)?.id))return!1;const o=r?.item;return o?.kind==="component"?o.surface==="canvas":/\.(?:png|jpe?g|webp|gif|avif|svg)$/i.test(t)},drop:async(e,t,r)=>{const n=e||a.roots().at(-1)?.id||"",o=m(n),s=o?P.get(o):void 0;if(!n||!s)return k("asset drop refused: there is no source-addressable insertion point.");const i=r?.item,l=r?.position,u=l?` x={${Z(l[0])}} y={${Z(l[1])}}`:"";let f,y;if(i?.kind==="component"){if(i.surface!=="canvas")return k(`${i.name} is a ${i.surface} component, not a Canvas prefab.`);const x=await He(i),U=x?Ue(x):[];if(U.length>0){const O=U.map(Je=>`\`${Je.name}\``).join(", ");return k(`${i.name} needs ${O} — required props with no default, which a drop cannot supply. Place it from a story that provides them, or give them defaults in ${i.sourcePath??"its component"}.`)}const S=(x?x.some(O=>O.name==="x"||O.name==="y"):null)===!1;if(S&&l){const O=`${i.name} places itself — its own code owns x/y, so the drop point was not written. Move it by editing that component, or give it x/y props.`;se(O),X(O)}f=`<${i.name}${S?"":u}${x?qe(x):""} />`,y={name:i.name,module:Ge(s.file,i.sourcePath),kind:i.exportKind}}else{if(!/\.(?:png|jpe?g|webp|gif|avif|svg)$/i.test(t))return k(`${t} is not an image or Canvas prefab.`);f=`<pixiSprite label="${(t.split("/").pop()?.replace(/\.[^.]+$/,"")||"Sprite").replace(/["\\]/g,"")}" texture={Texture.from(${JSON.stringify(t)})}${u} />`,y={name:"Texture",module:"pixi.js"}}return p(n,e?"create":"create-sibling",{snippet:f,ensureImport:y})}},truth:e=>({site:ie(e),writeAnchorKind:c&&m(e)?"source-prop":"live-only"}),componentIdentity:_,instances:()=>ze,bind(e){a=e.a2d,w=e.notify,J=e.store,c=Ke(d.writeBackend,e.store.shell.projectHistory),E()},onReindex(){for(const e of $()){const t=P.get(e);if(t===void 0||!D.has(t.file)){E();return}}},transformEditability(e,t){if(!m(e))return{writable:!1,reason:"This rendered part has no authored source identity."};if(!c?.writeProp)return{writable:!1,reason:"This session has no source writer."};if(R.has(`${e}|${t}`))return{writable:!1,reason:`${t} is controlled by a JSX expression.`};const n=b(e);if(!n)return{writable:!1,reason:"Source metadata is still loading or unavailable."};if(ee(e,t,n,K(e))){const s=_(e)?.name??"this component";return{writable:!1,reason:`${t} is owned by <${s}>'s own code — it declares no prop for it.`}}const o=he(t,K(e),n);return o.writable?{writable:!0,...c.removeProp&&xe(t,n).length>0?{removable:!0}:{}}:{writable:!1,reason:o.reason}},beginTransformEdit(e){F.has(e)||F.set(e,K(e))},writeOrigin(e,t,r){const n=a.displayObject(e),o=n?.[t];if(!n||typeof o?.x!="number"||typeof o.y!="number")return;const s=W.get(e)?.before??[o.x,o.y];n[t]={x:r[0],y:r[1]},W.set(e,{kind:t,value:r,before:s}),w()},writeTransform(e,t){a.setTransform(e,t),w()},endTransformEdit(e){const t=F.get(e);if(!t)return;F.delete(e);const r=M.then(()=>H(()=>ue(e,t).catch(n=>(console.error(`[canvas-source ${I(e)}] transform commit failed`,n),!1)),c?.writeProp!==void 0,I(e)));return M=r.then(()=>{},n=>{console.error(`[canvas-source ${g}] transform commit failed`,n)}),r},removeTransform(e,t){return H(()=>Le(e,t),c?.removeProp!==void 0,I(e))},reportStructureLiveOnly(e,t){console.warn(`[canvas-source ${g}] ${e} stayed live-only — ${t}.`)},properties(e){if(!a.displayObject(e))return[];const t=[{path:"name",label:"Name",type:"string"},{path:"visible",label:"Visible",type:"boolean",group:"Visibility"}],r=b(e)??[],n=r.find(f=>f.name==="skew"),o=n?!n.isLiteral:!1;t.push({path:"skew.x",label:"Skew X (deg)",type:"number",group:"Transform",readonly:o},{path:"skew.y",label:"Skew Y (deg)",type:"number",group:"Transform",readonly:o});const s=V(e),i=new Map(r.map(f=>[f.name,f])),l=[...s.map(f=>f.name),...r.filter(f=>!s.some(y=>y.name===f.name)).map(f=>f.name)],u=_(e)?.name??"Properties";for(const f of l){if(je(f)||Ee.has(f))continue;const y=i.get(f),x=s.find(S=>S.name===f),U=!y&&x?.defaultText!==void 0&&x.defaultValue===void 0,v=Y(e,y,x);t.push({path:`jsx.${f}`,label:Me(f),type:U?"string":x?.type??(y?ce(y):"string"),...x?.options?{options:[...x.options]}:{},readonly:U||(y?!y.isLiteral:!1),...y?{}:{defaulted:!0},...v?{resettable:!0}:{},...v&&x?.defaultText!==void 0?{revertsTo:x.defaultText}:{},group:u})}return t},get(e,t){const r=a.displayObject(e);if(!r)return;const n=A.get(`${e}|${t}`);if(n!==void 0)return n;if(t==="name")return r.label??"";if(t==="visible")return r.visible;if(t==="skew.x"||t==="skew.y")return Number(((t==="skew.x"?r.skew.x:r.skew.y)*180/Math.PI).toFixed(4));if(t.startsWith("jsx."))return G(b(e),V(e),t.slice(4))},set(e,t,r){if(t==="skew.x"||t==="skew.y")return H(()=>Q(e,t==="skew.x"?"x":"y",Number(r)),void 0,I(e));const n=t==="name"?"label":t==="visible"?"visible":t.startsWith("jsx.")?t.slice(4):null;if(n)return H(()=>ne(e,t,n,r),void 0,I(e))},remove(e,t){return H(()=>Ve(e,t),c?.removeProp!==void 0,I(e))},dispose(){A.clear(),R.clear(),F.clear()}}}function Dt(d,h,g,C=.1){const a=d.getBoundingClientRect();if(a.width<2||a.height<2||!(h.width>0)||!(h.height>0))return!1;const w=Math.min(4,Math.max(C,Math.min((a.width-96)/h.width,(a.height-96)/h.height)));return g.setView(a.width/2-(h.x+h.width/2)*w,a.height/2-(h.y+h.height/2)*w,w),!0}function Wt(d,h){return yt(d,async()=>{for(let g=0;g<24;g++){if(h())return null;await new Promise(C=>setTimeout(C,0))}return null})}const Re={width:1280,height:720};function Vt(){return jt({loop:Mt({update:()=>{}}),assets:At()})}function Lt(){const d=document.createElement("canvas");return d.dataset.volterCanvasSceneSurface="true",d.style.position="absolute",d.style.inset="0",d.style.width="100%",d.style.height="100%",d.style.display="block",d}function zt(d){const{worldId:h,entry:g,layer:C,canvas:a,game:w,mounted:c,store:J,onFirstFrame:N}=d,P=xt({history:J.shell.projectHistory}),D=new it(c.substrate.root,J,{canvas:a,api:c.substrate.api,persistence:P,journal:Ne(h),provenance:{source:"source-code",label:"babylon",detail:"Native Babylon.js scene graph; imperative edits write to the construction site in the game’s own source."}});let A=w.systemAdapters;pe(A);const R=w.subscribeSystemAdapters?.(()=>{A=w.systemAdapters,Ie(A),J.shell.notifyIngestEdit()}),F=()=>{const b=C.getBoundingClientRect();b.width>0&&b.height>0&&c.resize?.(b.width,b.height)},W=new ResizeObserver(F);W.observe(C),F();let M=!1,m=!1,$=0;const E=()=>{if($=requestAnimationFrame(E),!M)try{c.update?.(0),m||(m=!0,N?.())}catch(b){cancelAnimationFrame($),q.error(`[babylon-design] world "${h}" failed to render: ${String(b)}`,"authoring")}};return $=requestAnimationFrame(E),q.log(`[babylon-design] world "${h}" mounted as a native Babylon Scene (${g})`,"authoring"),{adapter:D,dispose(){M=!0,cancelAnimationFrame($),W.disconnect(),D.dispose(),R?.(),pe(null),c.dispose(),a.remove(),w.dispose()}}}const _e=new WeakSet;async function Xr(d,h,g,C,a,w,c){if(!h)throw new Error(`canvas root "${d}": no \`entry\` declared — nothing to mount.`);const N=await(await Pt(C,rt())).loadEntryModule(h,d,"canvas"),P=Tt(d,N),D=Ct(d,N,"canvas"),A=await $t(N,d);if(!A)throw new Error(`canvas root "${d}": entry module "${h}" must default-export a React component (\`export default function World() { … }\`) — or export an \`adapter\` for full control.`);const R=st(),F=R?.config.resolution?.width??Re.width,W=R?.config.resolution?.height??Re.height,M=w??ot,m=Lt();g.appendChild(m);const $=Vt(),E={canvas:m,width:F,height:W,game:$,headless:!1,transparent:!0,preserveDrawingBuffer:!0};let b,z;try{b=await vt(async p=>{const T=await A.mount(E);return z=p[0],T})}catch(p){throw m.remove(),$.dispose(),p}if(kt($,A,b,{id:d}),Ot($,P?[P]:[]),Et($,D?[D]:[]),b.substrate.name==="babylon")return zt({worldId:d,entry:h,layer:g,canvas:m,game:$,mounted:b,store:a,onFirstFrame:c});if(b.substrate.name!=="pixi")throw b.dispose(),m.remove(),$.dispose(),new Error(`canvas root "${d}" mounted undeclared editor substrate "${b.substrate.name}" — declare pixi or babylon and provide its authoring adapter.`);const V=b.substrate.root,B=await St();z===void 0&&q.error(`[canvas-design] world "${d}" mounted, but its Pixi Application was never handed to the design view (Pixi's \`__PIXI_APP_INIT__\` hook did not report one) — this Scene will render no frames at all. The world itself is fine; the editor cannot draw it.`,"authoring");let _=$.systemAdapters;pe(_);const ie=$.subscribeSystemAdapters?.(()=>{_=$.systemAdapters,Ie(_),a.shell.notifyIngestEdit()}),ae=await nt(),K=new lt(V,a,{pixi:B,identity:ut(d),journal:Ne(d),target:Bt({worldId:d,entryPath:h,pixi:B,writeBackend:ae}),surface:()=>m,capturePreview:(p,T)=>bt(p,{...T,pixi:B}),pointFromClient:(p,T,L)=>{const j=M.get();return{x:(p-L.left-j.x)/j.zoom,y:(T-L.top-j.y)/j.zoom}}}),ee=()=>{const p=g.getBoundingClientRect(),T=z?.renderer;T&&p.width>0&&p.height>0&&T.resize(p.width,p.height)},te=new ResizeObserver(ee);te.observe(g),ee();const ce=()=>{const p=z?.renderer;if(!p)return!1;const T=g.getBoundingClientRect();T.width>0&&T.height>0&&(p.screen.width!==T.width||p.screen.height!==T.height)&&p.resize(T.width,T.height);const L=M.get();return p.render({container:V,transform:new B.Matrix(L.zoom,0,0,L.zoom,L.x,L.y)}),!0},le=Wt(m,ce);let G=0,Y=!1,ue=!1;const de=()=>{if(G=requestAnimationFrame(de),!Y)try{ce()&&!ue&&(ue=!0,c?.())}catch(p){cancelAnimationFrame(G),G=0,q.error(`[canvas-design] world "${d}" failed to render — the design view is frozen: ${String(p)}`,"authoring")}};G=requestAnimationFrame(de);const re=_e.has(M);_e.add(M);const Q=g.getBoundingClientRect();!re&&Q.width>0&&Q.height>0&&M.setView(Q.width/2,Q.height/2,1);let ne=0,I=0,H=re;const X=M.subscribe(()=>{H=!0}),oe=()=>{const p=g.getBoundingClientRect();return p.width<2||p.height<2?1:Math.max(1,Math.min((p.width-96)/F,(p.height-96)/W))},k=()=>{if(H||Y||I++>180)return;const p=V.getBounds();Dt(g,p,M,oe())||(ne=requestAnimationFrame(k))};return ne=requestAnimationFrame(k),q.log(`[canvas-design] world "${d}" mounted for design-time authoring (${h})`,"authoring"),{adapter:K,dispose(){Y=!0,cancelAnimationFrame(G),cancelAnimationFrame(ne),X(),te.disconnect(),le(),K.dispose(),ie?.(),pe(null);try{b.dispose()}catch(p){q.error(`[canvas-design] dispose failed: ${String(p)}`,"authoring")}m.remove(),$.dispose()}}}export{Xr as mountCanvasDesignLayer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import{X as H,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Da25n7KE.js","assets/extend-BBPSDBSg.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-bQE2NA0D.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/index-COGWs_Hz.js","assets/index-DyTgGJaV.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{X as H,en as Y,_ as T}from"./index-DyTgGJaV.js";import{r as m}from"./index-nmcBqr7Y.js";import{g as X}from"./debug-registry-Cs16f-aE.js";import"./jsx-runtime-DPjLkJKQ.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";const _=1e4,L=new WeakSet;function q(e){if(e===null||typeof e!="object")return!1;const r=e;return typeof r.id=="string"&&r.id.length>0&&typeof r.mount=="function"}function G(e,r,n){const{createElement:o,Fragment:k,useEffect:F,useLayoutEffect:C,createRoot:D,extend:M}=n,S=o(r);return{id:e,async mount(i){const v=i.game?X(i.game):null,u=i.canvas;if(L.has(u))throw new Error(`canvas world "${e}": this lane has already mounted this canvas. @pixi/react keys its reconciler roots off the canvas element, so re-using one would resurrect a root whose Application is destroyed. Hand each mount a fresh canvas (every volter host already does).`);L.add(u),M(n.pixi);let y;const $=new Promise(t=>{y=t});let E;const I=new Promise(t=>{E=t});let g;const U=new Promise(t=>{g=t});let h;const j=new Promise(t=>{h=t});function N(){return C(()=>(y(),g),[]),F(()=>(E(),h),[]),null}const V=o(k,null,S,o(N)),w=D(u),R={antialias:!0,width:i.width,height:i.height,resolution:i.dpr??globalThis.devicePixelRatio??1,autoDensity:!0,backgroundAlpha:i.transparent?0:1,preserveDrawingBuffer:i.preserveDrawingBuffer??!1,autoStart:!1,sharedTicker:!1};let x;const B=new Promise(t=>{x=t}),P=t=>{x(`the Pixi tree crashed before its first commit — ${t.message} (mount() fails loudly instead of hanging)`)};globalThis.addEventListener?.("error",P);let d,p;try{d=await w.render(V,R);const c=new Promise(f=>{p=setTimeout(()=>f(`no first commit within ${_/1e3}s (mount() fails loudly instead of hanging)`),_)}),l=await Promise.race([Promise.all([$,I]).then(()=>null),B,c]);if(l!==null)throw new Error(`canvas world "${e}": ${l}`)}catch(t){try{d?.destroy(!1,{children:!0})}catch{}throw t}finally{p!==void 0&&clearTimeout(p),globalThis.removeEventListener?.("error",P)}if(d===void 0)throw new Error(`canvas world "${e}": initialized without an Application`);const a=d;a.ticker.lastTime=0;let A=0,s=!1;const W=v?{debug:v.adapter}:{},z=Promise.all([U,j]).then(()=>{s=!0,a.destroy(!1,{children:!0})});return{kind:"canvas",canvas:u,substrate:{name:"pixi",root:a.stage},drivesOwnLoop:!1,systems:W,disposeComplete:z,update(t){s||(A+=t*1e3,a.ticker.update(A))},hitTest(t,c){if(s)return!1;const l=a.renderer.events.rootBoundary,f=a.renderer.lastObjectRendered;return f?(l.rootTarget=f,l.hitTest(t,c)!==null):!1},resize(t,c){s||a.renderer.resize(t,c)},dispose(){s||(s=!0,a.renderer.events.setTargetElement(null),w.render(null,R))}}}}}function J(e,r,n){const o=e;return q(o?.adapter)?o.adapter:typeof o?.default=="function"?G(r,o.default,n):null}let O=null;const K=["createElement","Fragment","useEffect","useLayoutEffect","createPixiRoot","extendPixi","projectPixi"];async function Q(){const e=await import(Y),r=K.filter(n=>e[n]===void 0||e[n]===null);if(r.length>0)throw new Error(`The packaged runtime's synthetic canvas module did not export ${r.join(", ")} — see CANVAS_DOORWAY in vite-plugin-module-doorways.ts.`);return{createElement:e.createElement,Fragment:e.Fragment,useEffect:e.useEffect,useLayoutEffect:e.useLayoutEffect,createRoot:e.createPixiRoot,extend:e.extendPixi,pixi:e.projectPixi}}async function Z(){const[e,r]=await Promise.all([T(()=>import("./index-Da25n7KE.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])),T(()=>import("./index-COGWs_Hz.js").then(n=>n.s),__vite__mapDeps([7,8,5,3,6,2,9,10,11,12,13]))]);return{createElement:m.createElement,Fragment:m.Fragment,useEffect:m.useEffect,useLayoutEffect:m.useLayoutEffect,createRoot:e.createRoot,extend:e.extend,pixi:r}}async function b(){return O??=(async()=>await H()?Q():Z())(),O}async function ue(){return(await b()).pixi}async function de(e,r){return J(e,r,await b())}export{de as resolveCanvasEntryAdapterForEditor,ue as resolveCanvasPixiForEditor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as P}from"./index-
|
|
1
|
+
import{s as P}from"./index-COGWs_Hz.js";import"./index-DyTgGJaV.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 x=2e3;function _(n,t){const i=[n];let e=0,r=0;for(;e<i.length;){const a=i[e++];if(r++,r>t)return t+1;for(const o of a.children)i.push(o)}return r}function S(n,t=x,i=P){if(_(n,t)>t)return null;const e=v(i,n),r=T(i,n);return e.position.set(0,0),e.scale.set(Math.hypot(r.a,r.b),Math.hypot(r.c,r.d)),e.rotation=Math.atan2(r.b,r.a),e.visible=!0,e}function T(n,t){const i=new n.Matrix,e=[];for(let r=t;r;r=r.parent)e.push(r);for(let r=e.length-1;r>=0;r--)e[r].updateLocalTransform(),i.append(e[r].localTransform);return i}function v(n,t){if(t instanceof n.NineSliceSprite){const e=new n.NineSliceSprite({texture:t.texture,leftWidth:t.leftWidth,rightWidth:t.rightWidth,topHeight:t.topHeight,bottomHeight:t.bottomHeight,width:t.width,height:t.height});return e.anchor.copyFrom(t.anchor),e.tint=t.tint,c(t,e),e}if(t instanceof n.TilingSprite){const e=new n.TilingSprite({texture:t.texture,width:t.width,height:t.height});return e.tilePosition.copyFrom(t.tilePosition),e.tileScale.copyFrom(t.tileScale),e.anchor.copyFrom(t.anchor),c(t,e),e}if(t instanceof n.Text){const e=new n.Text({text:t.text,style:t.style.clone()});return"anchor"in t&&e.anchor.copyFrom(t.anchor),c(t,e),e}if(t instanceof n.Graphics){const e=t.clone(!0);return c(t,e),e}if(t instanceof n.Sprite){const e=new n.Sprite(t.texture);return e.anchor.copyFrom(t.anchor),e.tint=t.tint,c(t,e),e}const i=new n.Container;c(t,i),i.pivot.copyFrom(t.pivot);for(const e of t.children)i.addChild(v(n,e));return i}function c(n,t){t.alpha=n.alpha,t.visible=n.visible,t.rotation=n.rotation,t.scale.copyFrom(n.scale),t.position.copyFrom(n.position),t.skew.copyFrom(n.skew)}const u=new Map,y=new Map;async function F(n){const t=u.get(n);if(t)return t;let i=y.get(n);return i||(i=(async()=>{const e=new n.Application;return await e.init({autoStart:!1,sharedTicker:!1,backgroundAlpha:0,width:128,height:96,antialias:!0}),u.set(n,e),e})(),y.set(n,i)),i}function I(n,t,i,e){const a=new n.Rectangle(t.x-8,t.y-8,Math.max(1,t.width+16),Math.max(1,t.height+16)),o=i/e;if(a.width/a.height<o){const h=a.height*o;a.x-=(h-a.width)/2,a.width=h}else if(a.width/a.height>o){const h=a.width/o;a.y-=(h-a.height)/2,a.height=h}return a}async function B(n,t={}){const i=t.width??128,e=t.height??96,r=t.pixi??P,a=t.budget??x;if(_(n,a)>a)return null;const o=await F(r),h=S(n,a,r);if(h===null)return null;o.stage.removeChildren(),o.stage.addChild(h);try{const b=I(r,h.getLocalBounds(),i,e),l=await o.renderer.extract.canvas({target:o.stage,frame:b}),s=document.createElement("canvas");s.width=i,s.height=e;const f=s.getContext("2d");if(!f)throw new Error("Canvas selection preview could not create a 2D readback context.");const g=Math.min(i/l.width,e/l.height),w=l.width*g,m=l.height*g;return f.drawImage(l,(i-w)/2,(e-m)/2,w,m),s.toDataURL("image/png")}finally{o.stage.removeChildren(),h.destroy({children:!0,texture:!1,textureSource:!1})}}function A(n){return async t=>{const i=n.find(r=>r.canvas===t);if(!i?.renderer)return null;const e=i.renderer.background;return i.renderer.extract.canvas({target:i.stage,frame:i.screen,...e.alpha>0?{clearColor:e.color}:{}})}}const p=new Set,d=new Map;function U(n){for(const t of n)p.add(t);return()=>{for(const t of n)p.delete(t)}}function X(n,t){return d.set(n,t),()=>{d.get(n)===t&&d.delete(n)}}function j(n){const t=d.get(n);return t?t():A([...p])(n)}async function G(n){const t=[],i=globalThis.__PIXI_APP_INIT__;globalThis.__PIXI_APP_INIT__=(e,r)=>{const a=e;a.stage&&a.ticker&&t.push(e),i?.(e,r)};try{return await n(t)}finally{globalThis.__PIXI_APP_INIT__=i}}export{x as PREVIEW_SUBTREE_NODE_BUDGET,B as capturePixiDisplayObjectThumbnail,_ as countPixiSubtree,A as pixiCanvasFrame,j as presentedPixiFrame,X as registerPresentedCanvasFrame,U as registerPresentedPixiApps,S as snapshotPixiPreviewSubject,G as withApplicationCollector};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/story-pixi-preview-
|
|
2
|
-
import{
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/story-pixi-preview-5WqHTgoT.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/canvas-preview-frames-CIiSC8-I.js","assets/index-COGWs_Hz.js","assets/index-DyTgGJaV.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/crash-null-boundary-v3a0uEgw.js","assets/pixi-story-model-DNkfnWUV.js","assets/story-mount-turn-DFRTj5hi.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{fr as v,ft as w,_ as i,fu as y}from"./index-DyTgGJaV.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";function l(){const n=v("canvas",async(t,r)=>{const{capturePixiStoryThumbnail:e}=await i(async()=>{const{capturePixiStoryThumbnail:o}=await import("./story-pixi-preview-5WqHTgoT.js");return{capturePixiStoryThumbnail:o}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]));return e(t,r)}),c=w(async t=>(await i(async()=>{const{presentedPixiFrame:r}=await import("./canvas-preview-frames-CIiSC8-I.js");return{presentedPixiFrame:r}},__vite__mapDeps([4,5,6,1,2,3,7,8,9,10,11,12]))).presentedPixiFrame(t)),p=y({observe:async t=>{const{pixiCanvasFrame:r,withApplicationCollector:e}=await i(async()=>{const{pixiCanvasFrame:a,withApplicationCollector:_}=await import("./canvas-preview-frames-CIiSC8-I.js");return{pixiCanvasFrame:a,withApplicationCollector:_}},__vite__mapDeps([4,5,6,1,2,3,7,8,9,10,11,12])),{awaitPixiStoryFrame:o}=await i(async()=>{const{awaitPixiStoryFrame:a}=await import("./story-pixi-preview-5WqHTgoT.js");return{awaitPixiStoryFrame:a}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]));let s=[];const m=await e(async a=>(s=a,t())),u=r(s);return{result:m,settled:()=>o(s),frame:u}}});return()=>{n(),c(),p()}}const b="workspace.service";function A(){return l()}export{b as point,A as start};
|