@volter/game-editor 0.5.155 → 0.5.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUNDLED_NOTICES +22 -22
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/dist/.vite/manifest.json +2138 -2138
- package/dist/assets/{AssetBudgetPanel-B2Wb7-b1.js → AssetBudgetPanel-BQdPOlqp.js} +3 -3
- package/dist/assets/{AudioViewer-gge--M-h.js → AudioViewer-C5y-GQP-.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-CyGiXrEJ.js → CanvasBoardDocument-DbChIzOl.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-ChG9oRS8.js → CanvasSceneViewport-BAUsxjQl.js} +1 -1
- package/dist/assets/{ColorInput-Dzpqy-J3.js → ColorInput-DGN6sIXS.js} +1 -1
- package/dist/assets/{ColorPicker-CqJPBHlh.js → ColorPicker-C83d-sVK.js} +1 -1
- package/dist/assets/{EntityModelDocument-D7XDf6uB.js → EntityModelDocument-D4IbBjti.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-BgO7Hl3g.js → EnvironmentAssetDocument-BqTeI8cz.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-BBmwHCKA.js → GameplaySessionTimeline-FqH6Sz1y.js} +1 -1
- package/dist/assets/{ImageViewer-BjxoscVa.js → ImageViewer-C_4yhkuB.js} +1 -1
- package/dist/assets/InspectorObjectPreview-DCEUdndv.js +1 -0
- package/dist/assets/{JsonAssetDocument-D81JuRAm.js → JsonAssetDocument-C-drMm6I.js} +1 -1
- package/dist/assets/{LiveModuleDocument-bgStMiU1.js → LiveModuleDocument-C73e8H-p.js} +1 -1
- package/dist/assets/{LutAssetDocument-cl9Jq0Zw.js → LutAssetDocument-DfBf46zV.js} +1 -1
- package/dist/assets/{ModelAssetDocument-CYCLKpxJ.js → ModelAssetDocument-BgP4YOdh.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-DhHjvD5d.js → NonThreeAuthoringBootstrap-qnG1AmuP.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-CQbARBIW.js → Object3DDocumentToolbar-34bmavxS.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-Blr8aQeS.js +2 -0
- package/dist/assets/{Object3DPreview-BOZYzjz_.js → Object3DPreview-wWjXCo6v.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-DdKHHjxg.js → OnlineAssetDetail-C4iaJDOr.js} +1 -1
- package/dist/assets/{PlayBar-CAarfEOh.js → PlayBar-CBvuzv1Q.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-GTbawoy7.js → QuarksAssetDocument-BlYjfRGp.js} +1 -1
- package/dist/assets/{ReactCanvasControls-DIFkxeKv.js → ReactCanvasControls-C06AmSIB.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-Dv_w1D9s.js → RootSelectionOverlay-CPw5aFQf.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-OA-nshNN.js → ShaderAssetDocument-BVeK6Owt.js} +1 -1
- package/dist/assets/{ShadowEditor-Cp1QVCo9.js → ShadowEditor-BKEyyzOq.js} +1 -1
- package/dist/assets/{SourceAssetViewer-CGGHBzgL.js → SourceAssetViewer-DB6Fg4Re.js} +1 -1
- package/dist/assets/{StageHost-BMgCrIPG.js → StageHost-dHitOcUe.js} +2 -2
- package/dist/assets/{StoryPreviewMount-CyF7FwI7.js → StoryPreviewMount-BONsNxze.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-DCJkLWU8.js → ThreeBoardDocument-D4CSNWux.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-CxsM-QHW.js → ThreeIsolationSceneContent-DkXfPv14.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-lsAoRxtr.js → ToolObject3DPreview-DvGqYC9c.js} +1 -1
- package/dist/assets/{Toolbar-yvFlRv8R.js → Toolbar-BqUPRrhs.js} +1 -1
- package/dist/assets/{TransientHint-Bslncm_l.js → TransientHint-w6qEumzV.js} +1 -1
- package/dist/assets/{VideoViewer-Ba-e91kP.js → VideoViewer-B99XdTSg.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-CgbuQ0e-.js → ViewportShadingMenu-9AaJLhq_.js} +1 -1
- package/dist/assets/{active-ingest-CJ2U5L1O.js → active-ingest-DwF45MBm.js} +2 -2
- package/dist/assets/{animation-clock-CVpGQSVj.js → animation-clock-DW8tJ4l7.js} +1 -1
- package/dist/assets/{animation-mixers.service-CI0K1tfi.js → animation-mixers.service-kllpdYjk.js} +1 -1
- package/dist/assets/{animation-timeline.utility-Wg6WxkxK.js → animation-timeline.utility-C9UVqsSv.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-BbCBxjLY.js → asset-budget-asset.menu-Cl8tmAtz.js} +1 -1
- package/dist/assets/{asset-budget.action-CK8h0v1A.js → asset-budget.action-dw6ctYdi.js} +1 -1
- package/dist/assets/{asset-budget.document-CYVcDLvH.js → asset-budget.document-BfDL1bS4.js} +1 -1
- package/dist/assets/{asset-budget.menu-BcTijQ2R.js → asset-budget.menu-DiOMl0Yh.js} +1 -1
- package/dist/assets/{asset-editor-persistence-DWp0E8cc.js → asset-editor-persistence-D2o6zb5I.js} +1 -1
- package/dist/assets/{asset-loaders-Bo91oPiL.js → asset-loaders-bMb8Nvq8.js} +1 -1
- package/dist/assets/{asset-preview-BUpxsHNd.js → asset-preview-uRqIcg3G.js} +1 -1
- package/dist/assets/{audio-unlock.service-CyiXe5qk.js → audio-unlock.service-CBeaLfYT.js} +1 -1
- package/dist/assets/{audio.utility-BN4mANCx.js → audio.utility-iWLchCUR.js} +1 -1
- package/dist/assets/autoplay.service---Nu6koq.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-C-EAsfMr.js → babylon-authoring-adapter-Bt8B089v.js} +1 -1
- package/dist/assets/{binding-resolver-DoOAFM2m.js → binding-resolver-qdReeiXP.js} +2 -2
- package/dist/assets/{blender-node-editor.document-BzkGPs0i.js → blender-node-editor.document-DHj3Luuz.js} +1 -1
- package/dist/assets/{blender-properties-tab-B1ggqOYB.js → blender-properties-tab-mrwIpZz_.js} +1 -1
- package/dist/assets/{blender-runtime-host-MJZEPwHA.js → blender-runtime-host-rAbOjzv5.js} +1 -1
- package/dist/assets/{blender-runtime-skin-hw-op7Nt.js → blender-runtime-skin-CVACAkwd.js} +2 -2
- package/dist/assets/{blender-runtime.document-CvTyAou8.js → blender-runtime.document-VP-2qjfk.js} +10 -10
- package/dist/assets/{blender-screenshot.menu-C4VXpXVa.js → blender-screenshot.menu-B_zThqdR.js} +1 -1
- package/dist/assets/{blender-timeline.document-BRFDd7JZ.js → blender-timeline.document-BMNJBWXP.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CM09ITWu.js → blender-uv-editor.document-B2xmye2O.js} +1 -1
- package/dist/assets/{blender-version.status-CPyc_-kA.js → blender-version.status-BzVGyJhB.js} +1 -1
- package/dist/assets/{blender.command-ktKz-2Zi.js → blender.command-CNlvvxaj.js} +1 -1
- package/dist/assets/{board-guides-CCiyx8cT.js → board-guides-BPvQZ1ob.js} +1 -1
- package/dist/assets/{bridge.command-tP5j6w72.js → bridge.command-dqFe1Lyp.js} +3 -3
- package/dist/assets/{browserAll-BSQVVrNG.js → browserAll-DLXEw1rV.js} +1 -1
- package/dist/assets/{build-player.document-BwbBXtF5.js → build-player.document-Bra3vDcF.js} +1 -1
- package/dist/assets/{build-profiles.document-UiF_BsjE.js → build-profiles.document-DuSvWEO8.js} +1 -1
- package/dist/assets/{build-progress.status-Bf5KpnxC.js → build-progress.status-hkKRXBcc.js} +1 -1
- package/dist/assets/{build-session-C4jVDt-u.js → build-session-B5GOV8fm.js} +1 -1
- package/dist/assets/{build.action-DP2d1Uhj.js → build.action-DUrS97Yw.js} +1 -1
- package/dist/assets/{build.command-D5pyNcoj.js → build.command-fNnr9pdz.js} +1 -1
- package/dist/assets/{build.header-DupBIAOw.js → build.header-C-WQMQD8.js} +1 -1
- package/dist/assets/{build.menu-DWrKtdoV.js → build.menu-CsVJRmY6.js} +1 -1
- package/dist/assets/{build.service-qnz73gSX.js → build.service-CJfK8K6X.js} +1 -1
- package/dist/assets/{camera-C74U5X7o.js → camera-CpvCFt-Y.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-B2l34Xhl.js → camera-runtime.inspector-BwSdtfTT.js} +1 -1
- package/dist/assets/{canvas-design-mount-D4M3E1AX.js → canvas-design-mount-CE-67ZS9.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-CLOuJcgT.js → canvas-entry-runtime-CBpGQGRw.js} +2 -2
- package/dist/assets/{canvas-preview-frames-CSCcu2sG.js → canvas-preview-frames-DoDVjE4O.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-onD_xSpQ.js → canvas-story-capture.service-hibqSqwB.js} +2 -2
- package/dist/assets/{capability-coverage-EnZ99FoT.js → capability-coverage-DWVel6Wq.js} +1 -1
- package/dist/assets/{collaboration-presence-1_UMOAkw.js → collaboration-presence-B9eqNDDB.js} +1 -1
- package/dist/assets/{collider-C6R1tHfa.js → collider-DD5wreOq.js} +1 -1
- package/dist/assets/{component-board.service-BX_2bwX3.js → component-board.service-B1RineLo.js} +2 -2
- package/dist/assets/{component-board.service-Cuf_SXeA.js → component-board.service-eXvcrWzD.js} +2 -2
- package/dist/assets/{component-board.service-Ckl-5tA4.js → component-board.service-r8KlRes9.js} +2 -2
- package/dist/assets/{component-contracts.service-rI-rbvDG.js → component-contracts.service-YWaJqTzM.js} +1 -1
- package/dist/assets/{component-instance-root-wO1p-rLr.js → component-instance-root-BrRLxTKu.js} +1 -1
- package/dist/assets/{component-verbs.command-O2bwqmK3.js → component-verbs.command-D5LCfxHY.js} +1 -1
- package/dist/assets/{component-verbs.service-BiiQMtJt.js → component-verbs.service-BUTHHNRT.js} +1 -1
- package/dist/assets/{config-dVnV1cxW.js → config-DQqPM4dV.js} +2 -2
- package/dist/assets/{configurations-8qaUqMH7.js → configurations-Dn9LLbWO.js} +1 -1
- package/dist/assets/{connection.status-vH9WCDDg.js → connection.status-CMZKs7ch.js} +1 -1
- package/dist/assets/{constraints.inspector-C7UjUxPR.js → constraints.inspector-CRay8pK8.js} +1 -1
- package/dist/assets/{content-bounds-Dl5Y3LLv.js → content-bounds-UvcUv1DD.js} +1 -1
- package/dist/assets/{contract-system-adapters-BDUpDoKd.js → contract-system-adapters-Bbw5uUUi.js} +1 -1
- package/dist/assets/{coverage.service-IS7Oklo8.js → coverage.service-DeTXoRCC.js} +1 -1
- package/dist/assets/{create-runtime-Bucz0XVU.js → create-runtime-Z7LcpKwn.js} +1 -1
- package/dist/assets/{curve-D0Q6TczG.js → curve-DGhnvtG4.js} +1 -1
- package/dist/assets/{data-asset-B0a1y8M-.js → data-asset-CrnqULWS.js} +1 -1
- package/dist/assets/{data-ref-dRt2Wi5L.js → data-ref-ym18xkxV.js} +1 -1
- package/dist/assets/{debug-bridge-EhDkhrLX.js → debug-bridge-BknWW_8M.js} +1 -1
- package/dist/assets/{debug-registry-B2THKz1v.js → debug-registry-C7poEnyY.js} +1 -1
- package/dist/assets/{deferred-ingest-play-To3ZratW.js → deferred-ingest-play-3qS-wvgF.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-BnSaRAbS.js → design-time-canvas-mount-JkGmMINz.js} +2 -2
- package/dist/assets/{design-time-layers-OMAIxOrv.js → design-time-layers-nxUfMfKI.js} +1 -1
- package/dist/assets/{design-time-mount.service-Bgr_nCDs.js → design-time-mount.service-DQganiM8.js} +2 -2
- package/dist/assets/{design-time-mount.service-RFkiqPIn.js → design-time-mount.service-EBZKN6cL.js} +2 -2
- package/dist/assets/{design-time-react-mount-BsSBoX7J.js → design-time-react-mount-COvuTCBY.js} +1 -1
- package/dist/assets/{document-preview-three-Qni0oVBw.js → document-preview-three-BaWpv458.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DsUgOtQy.js → dom-authoring-adapter-wlPbZwHo.js} +1 -1
- package/dist/assets/{draco3d-DyZllcka.js → draco3d-DdFfLaRu.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-CjXNAZEs.js → edit-mode-audio.service-B74d6zkz.js} +1 -1
- package/dist/assets/{edit-mode-authoring-BDgZD47j.js → edit-mode-authoring-Cf83TffW.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-3dUr2g_0.js → edit-mode-networking.service-C7FSPHzl.js} +1 -1
- package/dist/assets/{editor-api-DTrNJMXL.js → editor-api-DLfSJ2g2.js} +1 -1
- package/dist/assets/{editor-layers-DwaX5UFy.js → editor-layers-BVicagU1.js} +1 -1
- package/dist/assets/{editor-shell-store-aKHbAoCV.js → editor-shell-store-CV73gQk5.js} +1 -1
- package/dist/assets/{entity-object-BLJ-I8XT.js → entity-object-DTQ4I2K5.js} +1 -1
- package/dist/assets/{extend-6LrR7eSL.js → extend-B7YOIXSU.js} +1 -1
- package/dist/assets/{fork-menu-V-FM6YuY.js → fork-menu-BToX8Jv4.js} +1 -1
- package/dist/assets/{frame-debugger-store-DwDC0wAm.js → frame-debugger-store-CuCtiEQ1.js} +1 -1
- package/dist/assets/{game-contract-seams-C22a4B79.js → game-contract-seams-DRUf45xM.js} +1 -1
- package/dist/assets/{game-css-scope-transform-Wv0ZdTsR.js → game-css-scope-transform-rbFoxfMV.js} +1 -1
- package/dist/assets/{game-document.service-BzvFIWCc.js → game-document.service-D409VVnQ.js} +1 -1
- package/dist/assets/{game-eval.command-DpQn_nY8.js → game-eval.command-BJ51kPy3.js} +1 -1
- package/dist/assets/{game-module-access-BI6oBa8Y.js → game-module-access-ib9tWhJc.js} +1 -1
- package/dist/assets/{game-network-Deo8lcPw.js → game-network-BZM-o9Ey.js} +3 -3
- package/dist/assets/{gameplay-export-BOLhxmII.js → gameplay-export-Bsvbs7wO.js} +1 -1
- package/dist/assets/{gameplay-replay-Dkvmv6hf.js → gameplay-replay-k_14DJ5F.js} +1 -1
- package/dist/assets/{gameplay.command-DCKqLv7C.js → gameplay.command-DGVwoOz_.js} +1 -1
- package/dist/assets/{generation-jobs-6D562vMB.js → generation-jobs-BxpAnwDo.js} +1 -1
- package/dist/assets/{generation.service-BFRoLb7y.js → generation.service-D1win2Pl.js} +1 -1
- package/dist/assets/{generations-HwV1btKK.js → generations-Dlu2fhGN.js} +1 -1
- package/dist/assets/{generations.status-BLiDcKsg.js → generations.status-BPYUSGr_.js} +1 -1
- package/dist/assets/{hierarchy-marks-DeG4E4Ke.js → hierarchy-marks-Dn7SO2iG.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-Bod7CEMF.js → hosted-asset-materialization-DPmn23AM.js} +1 -1
- package/dist/assets/{index-CLUA6PYq.js → index-B41IX0yA.js} +1 -1
- package/dist/assets/{index-CyLPQ8pY.js → index-B4NI0L5I.js} +1 -1
- package/dist/assets/{index-DkYeh000.js → index-BjUxirz3.js} +1 -1
- package/dist/assets/{index-KIR4Has5.js → index-C_XSSPHO.js} +1 -1
- package/dist/assets/{index-4hL3-0yz.js → index-Cp9b5Qfa.js} +1 -1
- package/dist/assets/{index-jS3rfNkZ.js → index-D1nMmQxJ.js} +1 -1
- package/dist/assets/{index-ClgrFOcX.js → index-D9shXtZ9.js} +7 -7
- package/dist/assets/{index-CHOT9sYh.js → index-FWtJb07f.js} +2 -2
- package/dist/assets/{index-CdLhNxor.js → index-_-7lUYI-.js} +1 -1
- package/dist/assets/{inference-diagnostics-BmZ5ggEK.js → inference-diagnostics-V4igFQX2.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-CipkFljr.js → ingest-boot-viewport-DBpKatwo.js} +1 -1
- package/dist/assets/{ingest-siblings-CEwYp-xg.js → ingest-siblings-C8OmNNTc.js} +1 -1
- package/dist/assets/{ingest-source-persistence-CVU1rTj0.js → ingest-source-persistence-DH7q9G1S.js} +1 -1
- package/dist/assets/{ingest.service-bNqvcqoK.js → ingest.service-D3Ru3YUS.js} +1 -1
- package/dist/assets/{inspect-BunjdqX7.js → inspect-Bhr2b3pa.js} +1 -1
- package/dist/assets/instances.command-CDIwEW8H.js +1 -0
- package/dist/assets/{json-history-resource-CDEoQe1R.js → json-history-resource-B8_YpeAT.js} +1 -1
- package/dist/assets/{layered-pick-guh6WlA7.js → layered-pick-MdBIQeUt.js} +1 -1
- package/dist/assets/{light-BPZivpCK.js → light-BvCKNW4e.js} +1 -1
- package/dist/assets/{live-project-verbs-Bqmxbr2o.js → live-project-verbs-DggWGgn-.js} +1 -1
- package/dist/assets/{machine.document-CAFPFq5K.js → machine.document-CTyXmK5a.js} +1 -1
- package/dist/assets/{machines.finder-CbUWReMp.js → machines.finder-C6WR7N-k.js} +1 -1
- package/dist/assets/{material-huG6lNEK.js → material-BoHGaIcq.js} +1 -1
- package/dist/assets/{material-factory-BkyOzJ7B.js → material-factory-D-cyMEti.js} +1 -1
- package/dist/assets/{mesh-CjCfRcFK.js → mesh-B-ksBKUU.js} +1 -1
- package/dist/assets/{model-asset-sections.service-Dt4V2K2v.js → model-asset-sections.service-DHsGD1SZ.js} +1 -1
- package/dist/assets/{model-inspection-BDA5jikL.js → model-inspection-Bsfj6b48.js} +1 -1
- package/dist/assets/{model-thumbnail-CF3qGQWb.js → model-thumbnail-Bp-1yQ-X.js} +1 -1
- package/dist/assets/{models.finder-yh4YeGrA.js → models.finder-DksRlbR8.js} +1 -1
- package/dist/assets/{module-mode-D8en13PD.js → module-mode-qROy_5Tk.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-JOkm2Ypj.js → mount-canvas-ingest-root-CLbJS_Ob.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-CVXFnJZb.js → mount-dom-ingest-root-CI7VtdaS.js} +2 -2
- package/dist/assets/{mount-ingest-root-C3o0o28C.js → mount-ingest-root-BX_usF8y.js} +2 -2
- package/dist/assets/{mount-manifest-d7WQ9MYp.js → mount-manifest-lQBlK2Y1.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-Dqd4XWP1.js → mount-three-ingest-root-g6yhs1S-.js} +1 -1
- package/dist/assets/{mounted-authoring-B697dYuN.js → mounted-authoring-D5cvzNXX.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-BvNZ3QQn.js → mounted-story-viewport-source-C-RZo_xH.js} +1 -1
- package/dist/assets/{native-debug-module-iX2-V5kg.js → native-debug-module-Bh_HQdg_.js} +1 -1
- package/dist/assets/{navigation-CIl9OY1F.js → navigation-DVO5eQO6.js} +1 -1
- package/dist/assets/{navmesh.menu-DrMoj7Ag.js → navmesh.menu-Cu9R-p4V.js} +1 -1
- package/dist/assets/{navmesh.service-CTr1NVfz.js → navmesh.service-D6EeQxE0.js} +1 -1
- package/dist/assets/network-observer.service-CLE3M7gH.js +1 -0
- package/dist/assets/{network.utility-Btexm5ao.js → network.utility-D4Uo1xUC.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-CADiW-LP.js → object3d-document-session-registry-bor-eSgr.js} +2 -2
- package/dist/assets/{oid-transform-Ca1oU_Ei.js → oid-transform-rEmA5PfE.js} +1 -1
- package/dist/assets/{particles-D1oPwNJh.js → particles-BxlIkQUX.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-B1BBfTju.js → pixi-authoring-adapter-CTSRtvNw.js} +1 -1
- package/dist/assets/{pixi-live-write-target-BcUhtqmJ.js → pixi-live-write-target-DaUAvNu7.js} +1 -1
- package/dist/assets/{play.command-ScnwcvJr.js → play.command-BtV56gUr.js} +2 -2
- package/dist/assets/{presentation-DPfnCjNA.js → presentation-DxTT40_3.js} +1 -1
- package/dist/assets/{product-D_9saRiZ.js → product-BAGhTFHw.js} +1 -1
- package/dist/assets/{profiler.action-PXTw93E5.js → profiler.action-DaSS1RoY.js} +1 -1
- package/dist/assets/{profiler.menu-DPFV6QQD.js → profiler.menu-5OyI3lyY.js} +1 -1
- package/dist/assets/{profiler.utility-eDooJGnI.js → profiler.utility-DLzaMOPh.js} +1 -1
- package/dist/assets/{project-authoring-session-BmeutotA.js → project-authoring-session-DZOgiTch.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-BW0V1WXQ.js → properties-bone-constraints.inspector-JMlHKfN2.js} +1 -1
- package/dist/assets/{properties-bone.inspector-DIvTZhY8.js → properties-bone.inspector-C-c7iGEx.js} +1 -1
- package/dist/assets/{properties-collection.inspector-Dbt5XMhs.js → properties-collection.inspector-PXHDUs1b.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-5SvB0GDC.js → properties-constraints.inspector-CQnnGi1O.js} +1 -1
- package/dist/assets/{properties-data.inspector-C-SngIsI.js → properties-data.inspector-DuEPeVBm.js} +1 -1
- package/dist/assets/{properties-material.inspector-CYAWsvsX.js → properties-material.inspector-BhKP0Zc_.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-XN6BL-Ll.js → properties-modifiers.inspector-lOMb72vk.js} +1 -1
- package/dist/assets/{properties-object.inspector-CfryU0kN.js → properties-object.inspector-BU2hn26Q.js} +1 -1
- package/dist/assets/{properties-output.inspector-COfgmFUW.js → properties-output.inspector-yNaC3IgX.js} +1 -1
- package/dist/assets/{properties-particles.inspector-BCh0vFr6.js → properties-particles.inspector-CaHfdQZB.js} +1 -1
- package/dist/assets/{properties-physics.inspector-B6to1u6U.js → properties-physics.inspector-Bt9Xjyu-.js} +1 -1
- package/dist/assets/{properties-render.inspector-C4hVfo7j.js → properties-render.inspector-Cl8UBLPY.js} +1 -1
- package/dist/assets/{properties-scene.inspector-dKta4xn5.js → properties-scene.inspector-D9cgONMx.js} +1 -1
- package/dist/assets/{properties-texture.inspector-ZlNhW25m.js → properties-texture.inspector-804GEF8F.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-CIxHmkDR.js → properties-view-layer.inspector-CLo0Z-B1.js} +1 -1
- package/dist/assets/{properties-world.inspector-Ce0q2dmK.js → properties-world.inspector-CjywenDE.js} +1 -1
- package/dist/assets/{r3f-design-session-1riISktt.js → r3f-design-session-B2k02ypD.js} +2 -2
- package/dist/assets/{r3f-physics-binding-DuG97FR9.js → r3f-physics-binding-D1rgVgsz.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-B8qqrdwk.js → r3f-source-authoring-adapter-Dj0r13-b.js} +1 -1
- package/dist/assets/{react-canvas-navigation-CxBm8iw8.js → react-canvas-navigation-t00NiEKB.js} +1 -1
- package/dist/assets/{react-inspector.service-BcdePwno.js → react-inspector.service-Xp4f-M0O.js} +1 -1
- package/dist/assets/{react-story-board-CMvkLAkF.js → react-story-board-DAQaZNga.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-D5svf-ME.js → react-three-rapier.esm-D13B7Exz.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-Dq8NqvWu.js → react-world-authoring-adapter-zzyaxcpN.js} +1 -1
- package/dist/assets/{realm-services-CqjVBanw.js → realm-services-CyeBcuLZ.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-uEvyppEj.js → reflection-probe-capture.inspector-BpdGQ2gf.js} +1 -1
- package/dist/assets/{registry-D7lFIA8c.js → registry-DM1tIelZ.js} +1 -1
- package/dist/assets/{relative-import-specifier-CA9mSNXO.js → relative-import-specifier-txHdCBKR.js} +1 -1
- package/dist/assets/{render-env-BHasp-z3.js → render-env-DiO35wd3.js} +1 -1
- package/dist/assets/{render-features-sSb1-c5x.js → render-features-Bv3_74_x.js} +1 -1
- package/dist/assets/{render-settings-CUbo4Sw5.js → render-settings-8kb_yvkr.js} +1 -1
- package/dist/assets/{resolve-three-TQ367RQD.js → resolve-three-D9rgCC5Z.js} +3 -3
- package/dist/assets/{root-seam-contract-CneTgNww.js → root-seam-contract-BgkkJVuJ.js} +1 -1
- package/dist/assets/{run-selection-CNsOQTEG.js → run-selection-WrcYgYP3.js} +1 -1
- package/dist/assets/{scene-capture-KbdRgsD3.js → scene-capture-C08wT5TW.js} +1 -1
- package/dist/assets/{scene-document.service-CmPSUocW.js → scene-document.service-D7sb6hvQ.js} +2 -2
- package/dist/assets/{scene-framing-B5JC4NeG.js → scene-framing-BSvegpi4.js} +1 -1
- package/dist/assets/{seeded-random-B6zqGkWP.js → seeded-random-Bc5190so.js} +1 -1
- package/dist/assets/{setup-renderer-efjIBSGF.js → setup-renderer-JwrNwzqH.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-DeeboYub.js → source-object3d-authoring-adapter-BJwLQVsv.js} +1 -1
- package/dist/assets/{source-persistence-backend-Cwy93SmQ.js → source-persistence-backend-DsG30XMj.js} +1 -1
- package/dist/assets/{stage-keyboard-GNCaTXLA.js → stage-keyboard-BnzybgXw.js} +1 -1
- package/dist/assets/{stage-overlay-set-DV3SCzJb.js → stage-overlay-set-BWxO_Pk6.js} +1 -1
- package/dist/assets/{stage-presence-markers-CBEU1Kzo.js → stage-presence-markers-BD5JPVX6.js} +1 -1
- package/dist/assets/{stage-transform-tools-C9nNDW6n.js → stage-transform-tools-CHvXlnKB.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-BJkGwiNT.js → standard-viewport-dressing-4xAZCGJ3.js} +1 -1
- package/dist/assets/{state-watch.action-Doz_jrzS.js → state-watch.action-0KAywung.js} +1 -1
- package/dist/assets/{state-watch.menu-Dj4DUUxN.js → state-watch.menu-4xjTZIEx.js} +1 -1
- package/dist/assets/{state-watch.utility-COPa8xpV.js → state-watch.utility-DZgzPGEZ.js} +1 -1
- package/dist/assets/{story-capture-stRSY4PQ.js → story-capture-d695eMLJ.js} +1 -1
- package/dist/assets/{story-documents-CYzWYY1o.js → story-documents-C1hZeYU3.js} +1 -1
- package/dist/assets/{story-documents.service-DJBu4rve.js → story-documents.service-CSXB6uqT.js} +1 -1
- package/dist/assets/{story-documents.service-C5r8KFEG.js → story-documents.service-bB0UDbvA.js} +1 -1
- package/dist/assets/{story-media-presence-D4AIsAtK.js → story-media-presence-CxD6G_Mu.js} +1 -1
- package/dist/assets/{story-pixi-preview-mPo3OFOd.js → story-pixi-preview-CJKGDBKs.js} +1 -1
- package/dist/assets/{story-presentation-Dw4Vw65P.js → story-presentation-BBS9x4BP.js} +1 -1
- package/dist/assets/{story-three-preview-CWM0Rj7x.js → story-three-preview-v22RRpqB.js} +2 -2
- package/dist/assets/{studio-environment-Bw9zMFE8.js → studio-environment-CvCEc6PK.js} +1 -1
- package/dist/assets/{surface-state-b_H4iOCJ.js → surface-state-EsG-yMSi.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-BCdwWi-T.js → syntactic-prop-specs-DvSr6VoQ.js} +1 -1
- package/dist/assets/{team-playtest.service-CnxdTghn.js → team-playtest.service-Bp6j6MAv.js} +1 -1
- package/dist/assets/{three-DWy0sZom.js → three-Do16bEo9.js} +1 -1
- package/dist/assets/{three-authoring-adapter-9LcUBPaU.js → three-authoring-adapter-C2QFVlpK.js} +1 -1
- package/dist/assets/three-authoring.service-DxL4grJx.js +2 -0
- package/dist/assets/{three-ingest-runtime-x9nLmUl-.js → three-ingest-runtime-DW-lHDmp.js} +1 -1
- package/dist/assets/{three-integration-DB-xQHD5.js → three-integration-C1onOQwq.js} +2 -2
- package/dist/assets/three-integration.service-26hsEOk3.js +1 -0
- package/dist/assets/{three-projection-core-IUovHgg_.js → three-projection-core-1FETWj5n.js} +1 -1
- package/dist/assets/{three-state-_ImCbP87.js → three-state-d-szeOea.js} +1 -1
- package/dist/assets/{three-story-capture.service-wKwfSnqA.js → three-story-capture.service-gnrRzcjj.js} +2 -2
- package/dist/assets/{three-story-model-BxWKcl9d.js → three-story-model-CbEMWEte.js} +1 -1
- package/dist/assets/{three-viewport-presentation-Bg86EsDJ.js → three-viewport-presentation-D1ysWIW4.js} +1 -1
- package/dist/assets/{transform-mode-request-BnV8FSnx.js → transform-mode-request-B3AxgwGW.js} +1 -1
- package/dist/assets/{transport-strip-BZQnaxFN.js → transport-strip-D4N14xHx.js} +1 -1
- package/dist/assets/transport.header-D3j_V-tN.js +1 -0
- package/dist/assets/{tuples-DR33sMq6.js → tuples-B3URXxaa.js} +1 -1
- package/dist/assets/{ui-board-document-VJMvm6Ks.js → ui-board-document-BSrfzH8L.js} +2 -2
- package/dist/assets/{user-data-DL6HsBPf.js → user-data-DHB4MWum.js} +1 -1
- package/dist/assets/{utility-view-state-ghWXsYXq.js → utility-view-state-CfZ51NRS.js} +1 -1
- package/dist/assets/{viewport-door-BV_lf5uK.js → viewport-door-DkDcO9tp.js} +1 -1
- package/dist/assets/{viewport-root-presentation-CKqhX3mt.js → viewport-root-presentation-DtuBFJ-J.js} +1 -1
- package/dist/assets/{viewport-surface-status-D7M2L2lI.js → viewport-surface-status-HKbJtC2G.js} +1 -1
- package/dist/assets/{webworkerAll-DDbFvxgB.js → webworkerAll-JD3yAUg1.js} +1 -1
- package/dist/assets/{workspace-arrangement-86_8Kk5K.js → workspace-arrangement-BOk46mGq.js} +1 -1
- package/dist/assets/{world-documents-DeNJUefV.js → world-documents-AnhAH_9y.js} +1 -1
- package/dist/assets/{world-root-stage-binding-VOrldLB4.js → world-root-stage-binding-H0SUNbfK.js} +1 -1
- package/dist/assets/{xstate-animation-binding-747CfEeB.js → xstate-animation-binding-BjWKb5ne.js} +1 -1
- package/dist/assets/{xstate-animation-meta-DNMlMnr-.js → xstate-animation-meta-CTBp-Vc5.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-C87CasN_.js +0 -1
- package/dist/assets/Object3DDocumentViewport-BpiyRQ5p.js +0 -2
- package/dist/assets/autoplay.service-CKBqjozr.js +0 -1
- package/dist/assets/instances.command-DzcXdKuG.js +0 -1
- package/dist/assets/network-observer.service-DyzpGKA7.js +0 -1
- package/dist/assets/three-authoring.service-DdTMF4A2.js +0 -2
- package/dist/assets/three-integration.service-DwToRGIc.js +0 -1
- package/dist/assets/transport.header-1SF4ZbEd.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{al as r,a6 as k,aS as w,aT as z,aU as C}from"./index-
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{al as r,a6 as k,aS as w,aT as z,aU as C}from"./index-D9shXtZ9.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const m={fontSize:11,color:r.content.dim,marginBottom:2};function L({assetPath:s}){const o=l.useRef(null),[a,p]=l.useState(!1),[n,f]=l.useState(null),[c,x]=l.useState(0),[h,v]=l.useState(!1),[y,g]=l.useState(1),j=s.split("/").pop()??s,b=s.split(".").pop()?.toUpperCase()??"";l.useEffect(()=>()=>{o.current?.pause()},[]);const S=()=>{const t=o.current;t&&(a?t.pause():t.play(),p(!a))},d=t=>{const i=Math.floor(t/60),u=Math.floor(t%60);return`${i}:${u.toString().padStart(2,"0")}`};return e.jsxs("div",{style:{padding:8,display:"flex",flexDirection:"column",gap:8},children:[e.jsx("div",{style:{fontWeight:600,fontSize:12,color:r.content.primary,wordBreak:"break-all"},children:j}),e.jsxs("div",{className:"volter-content-frost",style:{width:"100%",border:`1px solid ${r.boundary.default}`,borderRadius:r.shape.small,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:8,padding:16},children:[e.jsxs("svg",{viewBox:"0 0 24 24",width:48,height:48,children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",fill:"var(--volter-asset-icon-audio)"}),e.jsx("path",{d:"M9 8l4-2v12l-4-2H7V10h2zm6 1v6m2-5v4",stroke:"var(--volter-text-1)",strokeWidth:"1.5",fill:"none",strokeLinecap:"round"})]}),n!=null&&e.jsxs("div",{style:{width:"100%",fontSize:10,color:r.content.muted,textAlign:"center"},children:[d(c)," / ",d(n)]}),n!=null&&n>0&&e.jsx("div",{style:{width:"100%",height:4,background:r.surface.raised,borderRadius:r.shape.small,cursor:"pointer",position:"relative"},onClick:t=>{const i=t.currentTarget.getBoundingClientRect(),u=(t.clientX-i.left)/i.width;o.current&&(o.current.currentTime=u*n)},children:e.jsx("div",{style:{width:`${c/n*100}%`,height:"100%",background:"var(--volter-asset-icon-audio)",borderRadius:r.shape.small}})}),e.jsx(k,{type:"button",variant:"secondary",size:"comfortable",onClick:S,children:a?"Pause":"Play"}),e.jsx("div",{role:"img","aria-label":"Audio waveform",style:{width:"100%",height:36,display:"flex",alignItems:"center",gap:2},children:Array.from({length:48},(t,i)=>e.jsx("i",{style:{flex:1,height:`${20+i*37%75}%`,background:"var(--volter-asset-icon-audio)",opacity:i/48<=c/(n||1)?1:.3}},i))}),e.jsxs("label",{style:{fontSize:11,color:r.content.muted},children:[e.jsx(w,{checked:h,onChange:t=>v(t.target.checked)})," Loop"]}),e.jsxs("label",{style:{fontSize:11,color:r.content.muted},children:["Volume"," ",e.jsx(z,{"aria-label":"Audio volume",min:"0",max:"1",step:"0.05",value:y,onChange:t=>{const i=Number(t.target.value);g(i),o.current&&(o.current.volume=i)}})]})]}),e.jsx("audio",{ref:o,src:s,loop:h,onLoadedMetadata:()=>{o.current&&f(o.current.duration)},onTimeUpdate:()=>{o.current&&x(o.current.currentTime)},onEnded:()=>p(!1)}),e.jsx(C,{label:"Info",children:e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[e.jsxs("div",{children:[e.jsx("div",{style:m,children:"Path"}),e.jsx("div",{style:{fontSize:11,color:r.content.primary,wordBreak:"break-all"},children:s})]}),n!=null&&e.jsxs("div",{children:[e.jsx("div",{style:m,children:"Duration"}),e.jsx("div",{style:{fontSize:11,color:r.content.primary},children:d(n)})]}),e.jsxs("div",{children:[e.jsx("div",{style:m,children:"Format"}),e.jsx("div",{style:{fontSize:11,color:r.content.primary},children:b})]})]})})]})}export{L as AudioViewer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as y}from"./jsx-runtime-DPjLkJKQ.js";import{i as O}from"./react-canvas-navigation-CxBm8iw8.js";import{R as E,h as B,i as D}from"./react-story-board-CMvkLAkF.js";import{au as F,aw as z,bi as L,fV as X,fW as I,av as K,dK as V,eK as w,as as Y,at as G,cC as H,Z as W,fX as Z,fY as U,al as S,fZ as q,dB as $,dC as N,dE as J}from"./index-ClgrFOcX.js";import{registerPresentedPixiApps as Q}from"./canvas-preview-frames-CSCcu2sG.js";import{R as tt}from"./ReactCanvasControls-DIFkxeKv.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as et}from"./story-presentation-Dw4Vw65P.js";import{m as nt}from"./pixi-story-model-DNkfnWUV.js";import{withPixiStoryMountTurn as T}from"./story-pixi-preview-mPo3OFOd.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"./index-CHOT9sYh.js";import"./crash-null-boundary-v3a0uEgw.js";import"./story-mount-turn-DFRTj5hi.js";const ot="No story yet",st={width:160,height:160},A={width:240,height:180},R=96;function rt(e){return{stories:e.length,modules:new Set(e.map(o=>o.modulePath)).size}}function at(e){const o=e.layout;return o==="fullscreen"||o==="padded"||o==="centered"?o:"padded"}function it(e,o,i){if(!i.componentName)return!0;const r=I(e,i.componentName,o);return!r||r.modulePath===o&&r.name===i.name}function ct(e){const o=[],i=new Map,r=K();for(const t of e)if(t.ok)for(const n of t.stories){const c=F({modulePath:t.modulePath,regions:r});if(c.medium!=="canvas"){c.via==="undeclared"&&z(t.modulePath,c.reason);continue}if(!it(e,t.modulePath,n))continue;const h=L({modulePath:t.modulePath,...n.title===void 0?{}:{title:n.title}}),g=X(h),u=`${g}/${h.leaf}`;i.set(u,(i.get(u)??0)+1),o.push({identity:{id:`${t.modulePath}#${n.name}`,storyName:n.name,modulePath:t.modulePath,district:g},leafKey:u,leaf:h.leaf,storyLabel:n.label,Component:n.Component,layout:at(n.parameters)})}return o.map(({identity:t,leafKey:n,leaf:c,storyLabel:h,Component:g,layout:u})=>({identity:{...t,label:(i.get(n)??0)>1?`${c} · ${h}`:c},Component:g,layout:u}))}function lt(e,o){const i=new Set,r=[];for(const t of o){if(t.surface!=="canvas"||t.contentKind==="image")continue;const n=`${t.path}#${t.name}`;i.has(n)||(i.add(n),!I(e,t.name,t.path)&&r.push({key:n,name:t.name,path:t.path,line:t.line}))}return r}function dt(e,o){const i=o==="fullscreen"?e.app.screen:e.stage.getBounds(),r=o==="fullscreen"?0:8,t={x:Math.floor(i.x-r),y:Math.floor(i.y-r),width:Math.ceil(i.width+r*2),height:Math.ceil(i.height+r*2)};if(!Number.isFinite(t.width)||!Number.isFinite(t.height)||t.width<1||t.height<1)return{frameSize:{...A},crop:{x:0,y:0,...A}};if(o!=="fullscreen"){const n=Math.max(R,t.width),c=Math.max(R,t.height);t.x-=(n-t.width)/2,t.y-=(c-t.height)/2,t.width=n,t.height=c}return{frameSize:{width:t.width,height:t.height},crop:t}}function ut(e){return e instanceof Error?e.message:String(e)}async function pt(e,o,i){const r=[],t=[];for(const{identity:n,Component:c,layout:h}of e){if(o?.aborted)break;const g=u=>{t.push({id:n.id,modulePath:n.modulePath,storyName:n.storyName,reason:u})};try{const u=await i(c);if(!nt(u.stage)){u.dispose(),g("The story mounted no Pixi content.");continue}r.push({...n,mounted:u,...dt(u,h)})}catch(u){g(ut(u))}}return{exhibits:r,skipped:t}}function mt(e,o=[],i){return T(async r=>{const{exhibits:t,skipped:n}=await pt(ct(e),i,r),c={exhibits:t,ghosts:lt(e,o),skipped:n};if(i?.aborted)throw _(c),new Error("The 2D board build was superseded by a newer one.");return c})}function M(e){return T(async()=>{_(e)})}function _(e){for(const o of e.exhibits)try{o.mounted.dispose()}catch(i){console.error("[canvas-board] a story mount failed to dispose.",i)}}const ft="2D",ht=4;function yt(e,o,i){const r=new Set,t=j(e).map(n=>({id:n.id,label:n.label,...n.title?{secondaryLabel:n.title}:{},kind:"frame",typeLabel:"Frame",parentId:null,childIds:[]}));return{capabilities:{transform:!1,inspectorFields:!1,persist:!1},hierarchy:{roots:()=>t,node:n=>t.find(c=>c.id===n)??null},selection:{get:()=>{const n=o();return n?[n]:[]},set:n=>{const c=n.at(-1);c&&i(c)}},subscribe(n){return r.add(n),()=>r.delete(n)},notify(){for(const n of r)n()}}}function j(e){return[...e.exhibits.map(o=>({id:o.id,label:o.label,modulePath:o.modulePath,...o.district?{title:o.district}:{},frameSize:o.frameSize})),...e.ghosts.map(o=>({id:o.key,label:o.name,modulePath:o.path,title:ot,frameSize:st}))]}function gt(e,o,i){const r=j(o),t=r[0];if(!t)return null;const n=document.createElement("div");n.dataset.testid="canvas-board-layer",n.style.position="absolute",n.style.left="0",n.style.top="0",n.style.transformOrigin="0 0",e.appendChild(n);let c=null,h=t.id;c=B(n,r,t.id,(a,m)=>{h=a,c?.activate(a,m==="zoom"),i?.()},et(r));const g=[];for(const a of o.exhibits){const m=c.frames.get(a.id);if(!m)continue;const f=a.mounted.host;f.setAttribute("style",`position:absolute;left:${-a.crop.x}px;top:${-a.crop.y}px;width:${a.mounted.app.screen.width}px;height:${a.mounted.app.screen.height}px;overflow:visible;contain:layout paint;`);const k=a.mounted.app.canvas;k.style.display="block",k.style.width=`${a.mounted.app.screen.width}px`,k.style.height=`${a.mounted.app.screen.height}px`,m.content.appendChild(f),g.push(k)}for(const a of o.ghosts){const m=c.frames.get(a.key);if(!m)continue;m.element.style.border=`1px dashed ${S.boundary.strong}`;const f=document.createElement("div");f.dataset.testid="canvas-board-ghost",f.textContent="No story yet",f.style.position="absolute",f.style.inset="0",f.style.display="flex",f.style.alignItems="center",f.style.justifyContent="center",f.style.color=S.content.dim,f.style.font=`11px ${S.typography.sans}`,f.style.pointerEvents="none",m.content.appendChild(f)}const u=Q(o.exhibits.map(a=>a.mounted.app)),b=()=>{const a=N();n.style.transform=J(a)??"";const m=a.zoom>=1?"pixelated":"auto";for(const f of g)f.style.imageRendering=m},v=$(b);b();const P=requestAnimationFrame(()=>c?.fitAll());let C=!1,x=0,s=0,p=0;const l=a=>{x=requestAnimationFrame(l),p+=s===0?16:Math.min(100,a-s),s=a;for(const m of o.exhibits)try{m.mounted.ticker.update(p)}catch(f){console.error("[canvas-board] an exhibit failed to tick.",f)}};return{selectAt(a,m){return c?.selectAtClientPoint(a,m)??!1},activeStoryId(){return h},selectStory(a){return r.some(m=>m.id===a)?(h=a,c?.activate(a,!1),i?.(),!0):!1},zoomAt(a,m){return c?.zoomAtClientPoint(a,m)??!1},setPlaying(a){a!==C&&(C=a,a?(s=0,x=requestAnimationFrame(l)):(cancelAnimationFrame(x),x=0))},dispose(){cancelAnimationFrame(x),cancelAnimationFrame(P),v(),u();for(const a of o.exhibits)a.mounted.host.remove();c?.dispose(),c=null,n.remove()}}}function bt({active:e}){const o=d.useSyncExternalStore(Y,G),i=d.useRef(null),r=d.useRef(null),t=d.useRef(null),n=d.useRef(null),[c,h]=d.useState({status:"idle"}),[g,u]=d.useState(e);d.useEffect(()=>{e&&u(!0)},[e]),d.useEffect(()=>{const s=i.current;if(s)return O(s)},[]),d.useEffect(()=>{if(!g)return;const s=new AbortController;let p=null;return h({status:"building"}),H().then(l=>(l.ok||W.warn(`Component index unavailable, so this board shows no ghost frames: ${l.reason}`,"canvas-board"),mt(o,l.ok?l.entries:[],s.signal))).then(l=>{if(s.signal.aborted){M(l);return}p=l,h({status:"ready",board:l})},l=>{s.signal.aborted||h({status:"error",message:l instanceof Error?l.message:String(l)})}),()=>{s.abort(),p&&M(p)}},[o,g]);const b=c.status==="ready"?c.board:null,[v,P]=d.useState(null);d.useEffect(()=>{const s=i.current;if(!s||!b)return;const p=gt(s,b,()=>{P(r.current?.activeStoryId()??null)});return r.current=p,P(p?.activeStoryId()??null),()=>{r.current=null,p?.dispose()}},[b]);const C=b?.exhibits.find(s=>s.id===v)??null,x=d.useMemo(()=>b?yt(b,()=>r.current?.activeStoryId()??null,s=>r.current?.selectStory(s)):null,[b]);return d.useEffect(()=>{x?.notify()},[x,v]),d.useEffect(()=>{if(e)return Z(w,()=>({adapter:x,nodeId:null}))},[e,x]),d.useEffect(()=>{if(!(!e||!C))return U(w,()=>({id:C.id,title:C.label,kindLabel:"Canvas story",note:{text:`${C.storyName} · ${C.modulePath}`,testId:"canvas-board-subject-note"},sections:[]}))},[e,C]),d.useEffect(()=>(r.current?.setPlaying(e),()=>r.current?.setPlaying(!1)),[e,b]),y.jsxs("div",{"data-testid":"canvas-board","data-volter-backdrop-color":e?E:void 0,"data-volter-backdrop-policy":e?"dark-frost":void 0,style:{position:"absolute",inset:0,overflow:"hidden",pointerEvents:"auto",touchAction:"none",userSelect:"none",WebkitUserSelect:"none",backgroundColor:E},ref:i,onPointerDown:s=>{t.current={x:s.clientX,y:s.clientY},n.current={x:s.clientX,y:s.clientY},s.currentTarget.setPointerCapture(s.pointerId)},onPointerMove:s=>{const p=n.current;if(!p)return;const l=s.clientX-p.x,a=s.clientY-p.y;l===0&&a===0||(n.current={x:s.clientX,y:s.clientY},q(l,a))},onPointerUp:s=>{const p=t.current;t.current=null,n.current=null,s.currentTarget.hasPointerCapture(s.pointerId)&&s.currentTarget.releasePointerCapture(s.pointerId),!(!p||Math.hypot(s.clientX-p.x,s.clientY-p.y)>ht)&&r.current?.selectAt(s.clientX,s.clientY)},onPointerCancel:()=>{t.current=null,n.current=null},onDoubleClick:s=>{r.current?.zoomAt(s.clientX,s.clientY)},children:[y.jsx(xt,{}),b?y.jsx(St,{board:b}):y.jsxs("div",{"data-testid":"canvas-board-status",style:{padding:16,fontSize:12,color:S.content.muted},children:[c.status==="error"&&c.message,c.status==="building"&&"Mounting every canvas story off-screen…",c.status==="idle"&&"Open this tab to lay out every canvas story at 1× texels."]}),y.jsx(tt,{containerRef:i,context:null,boardOnly:!0})]})}function xt(){const e=d.useSyncExternalStore($,N),o=Math.max(8,24*e.zoom),i=Math.max(.7,Math.min(1.4,e.zoom));return y.jsx("div",{"data-testid":"react-design-canvas-backdrop","aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundColor:E,backgroundImage:`radial-gradient(circle, ${D} ${i}px, transparent ${i}px)`,backgroundPosition:`${e.x}px ${e.y}px`,backgroundSize:`${o}px ${o}px`}})}function St({board:e}){const[o,i]=d.useState(!1),r=rt(e.skipped);return y.jsxs("div",{"data-testid":"canvas-board-status",style:{position:"absolute",left:8,bottom:8,maxWidth:420,padding:"4px 8px",borderRadius:S.shape.small,background:S.surface.raised,border:`1px solid ${S.boundary.default}`,fontSize:10,color:S.content.muted,pointerEvents:"auto"},children:[e.exhibits.length," exhibit",e.exhibits.length===1?"":"s",e.ghosts.length>0&&y.jsxs(y.Fragment,{children:[" · ",e.ghosts.length," component",e.ghosts.length===1?"":"s"," without stories"]}),e.skipped.length>0&&y.jsxs(y.Fragment,{children:[" · ",y.jsxs("span",{role:"button",tabIndex:0,"aria-expanded":o,onClick:()=>i(t=>!t),onKeyDown:t=>{(t.key===" "||t.key==="Enter")&&(t.preventDefault(),i(n=>!n))},style:{cursor:"pointer",color:S.accent.default},children:[r.stories," ",r.stories===1?"story":"stories"," in ",r.modules," ",r.modules===1?"module":"modules"," not on this board"]})]}),o&&y.jsx("div",{style:{marginTop:4,maxHeight:160,overflow:"auto"},children:e.skipped.map(t=>y.jsxs("div",{style:{padding:"1px 0"},children:[y.jsxs("code",{style:{color:S.content.dim},children:[t.modulePath,"#",t.storyName]})," ","— ",t.reason]},t.id))})]})}function zt(){return V({id:w,title:ft,kind:"content-browser",workspaceRole:"workspace-reference",Content:bt,closeable:!1,readOnly:!0,presentation:()=>({kind:"workspace",id:w})},{category:"canvas"})}export{w as CANVAS_COMPONENTS_DOCUMENT_ID,zt as installCanvasBoardDocument};
|
|
1
|
+
import{a as y}from"./jsx-runtime-DPjLkJKQ.js";import{i as O}from"./react-canvas-navigation-t00NiEKB.js";import{R as E,h as B,i as D}from"./react-story-board-DAQaZNga.js";import{au as F,aw as z,bi as L,fV as X,fW as I,av as K,dK as V,eK as w,as as Y,at as G,cC as H,Z as W,fX as Z,fY as U,al as S,fZ as q,dB as $,dC as N,dE as J}from"./index-D9shXtZ9.js";import{registerPresentedPixiApps as Q}from"./canvas-preview-frames-DoDVjE4O.js";import{R as tt}from"./ReactCanvasControls-C06AmSIB.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as et}from"./story-presentation-BBS9x4BP.js";import{m as nt}from"./pixi-story-model-DNkfnWUV.js";import{withPixiStoryMountTurn as T}from"./story-pixi-preview-CJKGDBKs.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"./index-FWtJb07f.js";import"./crash-null-boundary-v3a0uEgw.js";import"./story-mount-turn-DFRTj5hi.js";const ot="No story yet",st={width:160,height:160},A={width:240,height:180},R=96;function rt(e){return{stories:e.length,modules:new Set(e.map(o=>o.modulePath)).size}}function at(e){const o=e.layout;return o==="fullscreen"||o==="padded"||o==="centered"?o:"padded"}function it(e,o,i){if(!i.componentName)return!0;const r=I(e,i.componentName,o);return!r||r.modulePath===o&&r.name===i.name}function ct(e){const o=[],i=new Map,r=K();for(const t of e)if(t.ok)for(const n of t.stories){const c=F({modulePath:t.modulePath,regions:r});if(c.medium!=="canvas"){c.via==="undeclared"&&z(t.modulePath,c.reason);continue}if(!it(e,t.modulePath,n))continue;const h=L({modulePath:t.modulePath,...n.title===void 0?{}:{title:n.title}}),g=X(h),u=`${g}/${h.leaf}`;i.set(u,(i.get(u)??0)+1),o.push({identity:{id:`${t.modulePath}#${n.name}`,storyName:n.name,modulePath:t.modulePath,district:g},leafKey:u,leaf:h.leaf,storyLabel:n.label,Component:n.Component,layout:at(n.parameters)})}return o.map(({identity:t,leafKey:n,leaf:c,storyLabel:h,Component:g,layout:u})=>({identity:{...t,label:(i.get(n)??0)>1?`${c} · ${h}`:c},Component:g,layout:u}))}function lt(e,o){const i=new Set,r=[];for(const t of o){if(t.surface!=="canvas"||t.contentKind==="image")continue;const n=`${t.path}#${t.name}`;i.has(n)||(i.add(n),!I(e,t.name,t.path)&&r.push({key:n,name:t.name,path:t.path,line:t.line}))}return r}function dt(e,o){const i=o==="fullscreen"?e.app.screen:e.stage.getBounds(),r=o==="fullscreen"?0:8,t={x:Math.floor(i.x-r),y:Math.floor(i.y-r),width:Math.ceil(i.width+r*2),height:Math.ceil(i.height+r*2)};if(!Number.isFinite(t.width)||!Number.isFinite(t.height)||t.width<1||t.height<1)return{frameSize:{...A},crop:{x:0,y:0,...A}};if(o!=="fullscreen"){const n=Math.max(R,t.width),c=Math.max(R,t.height);t.x-=(n-t.width)/2,t.y-=(c-t.height)/2,t.width=n,t.height=c}return{frameSize:{width:t.width,height:t.height},crop:t}}function ut(e){return e instanceof Error?e.message:String(e)}async function pt(e,o,i){const r=[],t=[];for(const{identity:n,Component:c,layout:h}of e){if(o?.aborted)break;const g=u=>{t.push({id:n.id,modulePath:n.modulePath,storyName:n.storyName,reason:u})};try{const u=await i(c);if(!nt(u.stage)){u.dispose(),g("The story mounted no Pixi content.");continue}r.push({...n,mounted:u,...dt(u,h)})}catch(u){g(ut(u))}}return{exhibits:r,skipped:t}}function mt(e,o=[],i){return T(async r=>{const{exhibits:t,skipped:n}=await pt(ct(e),i,r),c={exhibits:t,ghosts:lt(e,o),skipped:n};if(i?.aborted)throw _(c),new Error("The 2D board build was superseded by a newer one.");return c})}function M(e){return T(async()=>{_(e)})}function _(e){for(const o of e.exhibits)try{o.mounted.dispose()}catch(i){console.error("[canvas-board] a story mount failed to dispose.",i)}}const ft="2D",ht=4;function yt(e,o,i){const r=new Set,t=j(e).map(n=>({id:n.id,label:n.label,...n.title?{secondaryLabel:n.title}:{},kind:"frame",typeLabel:"Frame",parentId:null,childIds:[]}));return{capabilities:{transform:!1,inspectorFields:!1,persist:!1},hierarchy:{roots:()=>t,node:n=>t.find(c=>c.id===n)??null},selection:{get:()=>{const n=o();return n?[n]:[]},set:n=>{const c=n.at(-1);c&&i(c)}},subscribe(n){return r.add(n),()=>r.delete(n)},notify(){for(const n of r)n()}}}function j(e){return[...e.exhibits.map(o=>({id:o.id,label:o.label,modulePath:o.modulePath,...o.district?{title:o.district}:{},frameSize:o.frameSize})),...e.ghosts.map(o=>({id:o.key,label:o.name,modulePath:o.path,title:ot,frameSize:st}))]}function gt(e,o,i){const r=j(o),t=r[0];if(!t)return null;const n=document.createElement("div");n.dataset.testid="canvas-board-layer",n.style.position="absolute",n.style.left="0",n.style.top="0",n.style.transformOrigin="0 0",e.appendChild(n);let c=null,h=t.id;c=B(n,r,t.id,(a,m)=>{h=a,c?.activate(a,m==="zoom"),i?.()},et(r));const g=[];for(const a of o.exhibits){const m=c.frames.get(a.id);if(!m)continue;const f=a.mounted.host;f.setAttribute("style",`position:absolute;left:${-a.crop.x}px;top:${-a.crop.y}px;width:${a.mounted.app.screen.width}px;height:${a.mounted.app.screen.height}px;overflow:visible;contain:layout paint;`);const k=a.mounted.app.canvas;k.style.display="block",k.style.width=`${a.mounted.app.screen.width}px`,k.style.height=`${a.mounted.app.screen.height}px`,m.content.appendChild(f),g.push(k)}for(const a of o.ghosts){const m=c.frames.get(a.key);if(!m)continue;m.element.style.border=`1px dashed ${S.boundary.strong}`;const f=document.createElement("div");f.dataset.testid="canvas-board-ghost",f.textContent="No story yet",f.style.position="absolute",f.style.inset="0",f.style.display="flex",f.style.alignItems="center",f.style.justifyContent="center",f.style.color=S.content.dim,f.style.font=`11px ${S.typography.sans}`,f.style.pointerEvents="none",m.content.appendChild(f)}const u=Q(o.exhibits.map(a=>a.mounted.app)),b=()=>{const a=N();n.style.transform=J(a)??"";const m=a.zoom>=1?"pixelated":"auto";for(const f of g)f.style.imageRendering=m},v=$(b);b();const P=requestAnimationFrame(()=>c?.fitAll());let C=!1,x=0,s=0,p=0;const l=a=>{x=requestAnimationFrame(l),p+=s===0?16:Math.min(100,a-s),s=a;for(const m of o.exhibits)try{m.mounted.ticker.update(p)}catch(f){console.error("[canvas-board] an exhibit failed to tick.",f)}};return{selectAt(a,m){return c?.selectAtClientPoint(a,m)??!1},activeStoryId(){return h},selectStory(a){return r.some(m=>m.id===a)?(h=a,c?.activate(a,!1),i?.(),!0):!1},zoomAt(a,m){return c?.zoomAtClientPoint(a,m)??!1},setPlaying(a){a!==C&&(C=a,a?(s=0,x=requestAnimationFrame(l)):(cancelAnimationFrame(x),x=0))},dispose(){cancelAnimationFrame(x),cancelAnimationFrame(P),v(),u();for(const a of o.exhibits)a.mounted.host.remove();c?.dispose(),c=null,n.remove()}}}function bt({active:e}){const o=d.useSyncExternalStore(Y,G),i=d.useRef(null),r=d.useRef(null),t=d.useRef(null),n=d.useRef(null),[c,h]=d.useState({status:"idle"}),[g,u]=d.useState(e);d.useEffect(()=>{e&&u(!0)},[e]),d.useEffect(()=>{const s=i.current;if(s)return O(s)},[]),d.useEffect(()=>{if(!g)return;const s=new AbortController;let p=null;return h({status:"building"}),H().then(l=>(l.ok||W.warn(`Component index unavailable, so this board shows no ghost frames: ${l.reason}`,"canvas-board"),mt(o,l.ok?l.entries:[],s.signal))).then(l=>{if(s.signal.aborted){M(l);return}p=l,h({status:"ready",board:l})},l=>{s.signal.aborted||h({status:"error",message:l instanceof Error?l.message:String(l)})}),()=>{s.abort(),p&&M(p)}},[o,g]);const b=c.status==="ready"?c.board:null,[v,P]=d.useState(null);d.useEffect(()=>{const s=i.current;if(!s||!b)return;const p=gt(s,b,()=>{P(r.current?.activeStoryId()??null)});return r.current=p,P(p?.activeStoryId()??null),()=>{r.current=null,p?.dispose()}},[b]);const C=b?.exhibits.find(s=>s.id===v)??null,x=d.useMemo(()=>b?yt(b,()=>r.current?.activeStoryId()??null,s=>r.current?.selectStory(s)):null,[b]);return d.useEffect(()=>{x?.notify()},[x,v]),d.useEffect(()=>{if(e)return Z(w,()=>({adapter:x,nodeId:null}))},[e,x]),d.useEffect(()=>{if(!(!e||!C))return U(w,()=>({id:C.id,title:C.label,kindLabel:"Canvas story",note:{text:`${C.storyName} · ${C.modulePath}`,testId:"canvas-board-subject-note"},sections:[]}))},[e,C]),d.useEffect(()=>(r.current?.setPlaying(e),()=>r.current?.setPlaying(!1)),[e,b]),y.jsxs("div",{"data-testid":"canvas-board","data-volter-backdrop-color":e?E:void 0,"data-volter-backdrop-policy":e?"dark-frost":void 0,style:{position:"absolute",inset:0,overflow:"hidden",pointerEvents:"auto",touchAction:"none",userSelect:"none",WebkitUserSelect:"none",backgroundColor:E},ref:i,onPointerDown:s=>{t.current={x:s.clientX,y:s.clientY},n.current={x:s.clientX,y:s.clientY},s.currentTarget.setPointerCapture(s.pointerId)},onPointerMove:s=>{const p=n.current;if(!p)return;const l=s.clientX-p.x,a=s.clientY-p.y;l===0&&a===0||(n.current={x:s.clientX,y:s.clientY},q(l,a))},onPointerUp:s=>{const p=t.current;t.current=null,n.current=null,s.currentTarget.hasPointerCapture(s.pointerId)&&s.currentTarget.releasePointerCapture(s.pointerId),!(!p||Math.hypot(s.clientX-p.x,s.clientY-p.y)>ht)&&r.current?.selectAt(s.clientX,s.clientY)},onPointerCancel:()=>{t.current=null,n.current=null},onDoubleClick:s=>{r.current?.zoomAt(s.clientX,s.clientY)},children:[y.jsx(xt,{}),b?y.jsx(St,{board:b}):y.jsxs("div",{"data-testid":"canvas-board-status",style:{padding:16,fontSize:12,color:S.content.muted},children:[c.status==="error"&&c.message,c.status==="building"&&"Mounting every canvas story off-screen…",c.status==="idle"&&"Open this tab to lay out every canvas story at 1× texels."]}),y.jsx(tt,{containerRef:i,context:null,boardOnly:!0})]})}function xt(){const e=d.useSyncExternalStore($,N),o=Math.max(8,24*e.zoom),i=Math.max(.7,Math.min(1.4,e.zoom));return y.jsx("div",{"data-testid":"react-design-canvas-backdrop","aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundColor:E,backgroundImage:`radial-gradient(circle, ${D} ${i}px, transparent ${i}px)`,backgroundPosition:`${e.x}px ${e.y}px`,backgroundSize:`${o}px ${o}px`}})}function St({board:e}){const[o,i]=d.useState(!1),r=rt(e.skipped);return y.jsxs("div",{"data-testid":"canvas-board-status",style:{position:"absolute",left:8,bottom:8,maxWidth:420,padding:"4px 8px",borderRadius:S.shape.small,background:S.surface.raised,border:`1px solid ${S.boundary.default}`,fontSize:10,color:S.content.muted,pointerEvents:"auto"},children:[e.exhibits.length," exhibit",e.exhibits.length===1?"":"s",e.ghosts.length>0&&y.jsxs(y.Fragment,{children:[" · ",e.ghosts.length," component",e.ghosts.length===1?"":"s"," without stories"]}),e.skipped.length>0&&y.jsxs(y.Fragment,{children:[" · ",y.jsxs("span",{role:"button",tabIndex:0,"aria-expanded":o,onClick:()=>i(t=>!t),onKeyDown:t=>{(t.key===" "||t.key==="Enter")&&(t.preventDefault(),i(n=>!n))},style:{cursor:"pointer",color:S.accent.default},children:[r.stories," ",r.stories===1?"story":"stories"," in ",r.modules," ",r.modules===1?"module":"modules"," not on this board"]})]}),o&&y.jsx("div",{style:{marginTop:4,maxHeight:160,overflow:"auto"},children:e.skipped.map(t=>y.jsxs("div",{style:{padding:"1px 0"},children:[y.jsxs("code",{style:{color:S.content.dim},children:[t.modulePath,"#",t.storyName]})," ","— ",t.reason]},t.id))})]})}function zt(){return V({id:w,title:ft,kind:"content-browser",workspaceRole:"workspace-reference",Content:bt,closeable:!1,readOnly:!0,presentation:()=>({kind:"workspace",id:w})},{category:"canvas"})}export{w as CANVAS_COMPONENTS_DOCUMENT_ID,zt as installCanvasBoardDocument};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as he,U as W,fC as ge,bq as R,br as X,G as U,fD as A,aC as te,fE as xe,fF as oe,bw as T,aM as N,a7 as k,fG as fe,dk as me,fH as be,fI as Se,d9 as J,a6 as _,di as ye,dF as ve,dG as je,fJ as ne,fK as ze,fL as se,bL as $,fM as P,bA as Ee,fN as Q,bB as L,bD as I,bC as ee,fO as we,fP as Ce,fQ as ke,fR as Me,fS as Ge,fT as Fe}from"./index-ClgrFOcX.js";import{r as u}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{S as Ne,a as re}from"./react-canvas-navigation-CxBm8iw8.js";import{s as ie,c as ae,a as le,r as Pe,b as K,m as ce,V as Le,d as Te,e as Ve}from"./RootSelectionOverlay-Dv_w1D9s.js";import{a as De}from"./Toolbar-yvFlRv8R.js";import{r as Ye}from"./transform-mode-request-BnV8FSnx.js";import{T as $e}from"./TransientHint-Bslncm_l.js";import{p as We}from"./layered-pick-guh6WlA7.js";function Re(t,s,o,r){const g=i=>()=>{s(),Ye(t,i)};return he().keyboard.bindActions([{id:"transform.select",scope:"stage",run:g("select")},{id:"transform.translate",scope:"stage",run:g("translate")},{id:"transform.rotate",scope:"stage",run:g("rotate")},{id:"transform.scale",scope:"stage",run:g("scale")},{id:"canvas.panMode",scope:"stage",run:()=>o("pan")},{id:"canvas.rulerMode",scope:"stage",run:()=>o("ruler")},{id:"canvas.toggleGrid",scope:"stage",run:r}])}const nt="#111214";function de(t,s=32){let o=s>0?s:32;for(;o*t<12;)o*=2;for(;o*t>48;)o/=2;return o}function D(t){if(t.length===0)return null;let s=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY;for(const i of t)s=Math.min(s,i.x),o=Math.min(o,i.y),r=Math.max(r,i.x+i.width),g=Math.max(g,i.y+i.height);return{x:s,y:o,width:r-s,height:g-o}}function O(t,s,o){if(!o||!(o.width>0)||!(o.height>0))return;const r=Math.max(1,t.clientWidth-96),g=Math.max(1,t.clientHeight-96),i=Math.min(4,Math.max(re,Math.min(r/o.width,g/o.height)));s.setView(t.clientWidth/2-(o.x+o.width/2)*i,t.clientHeight/2-(o.y+o.height/2)*i,i)}function st({view:t,documentId:s}){const o=W();u.useSyncExternalStore(o.subscribe,o.getSnapshot),u.useEffect(()=>ge(s,"canvas"),[s]),u.useSyncExternalStore(R,X);const r=U(s),g=A(s),i=te()?.config.resolution,l=u.useSyncExternalStore(t.subscribe,t.get,t.get);u.useSyncExternalStore(u.useCallback(x=>ie(t,x),[t]),u.useCallback(()=>ae(t),[t]));const c=le(t),v=o.snap2D,a=de(l.zoom,v.step)*l.zoom,y=a*Math.max(1,Math.round(v.primaryEvery)),p=l.x+v.offsetX*l.zoom,b=l.y+v.offsetY*l.zoom;return e.jsxs("div",{"data-testid":"canvas-scene-backdrop",style:{position:"absolute",inset:0,zIndex:2,overflow:"hidden",pointerEvents:"none"},children:[r&&(!g.gridWhenSnapping||o.snapEnabled)&&e.jsx("div",{"data-testid":"canvas-scene-grid",style:{position:"absolute",inset:0,backgroundImage:"linear-gradient(rgba(255,255,255,.075) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.075) 1px, transparent 1px),linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px)",backgroundPosition:`${p}px ${b}px`,backgroundSize:`${a}px ${a}px, ${a}px ${a}px, ${y}px ${y}px, ${y}px ${y}px`}}),g.viewport&&i&&i.width>0&&i.height>0&&e.jsx("div",{"data-testid":"canvas-scene-viewport-rect",style:{position:"absolute",left:l.x,top:l.y,width:i.width*l.zoom,height:i.height*l.zoom,boxSizing:"border-box",borderStyle:"solid",borderWidth:1,borderColor:"rgba(160, 120, 255, .75)"}}),g.origin&&e.jsxs(e.Fragment,{children:[e.jsx("div",{"data-testid":"canvas-scene-origin-y",style:{position:"absolute",left:0,right:0,top:l.y,height:1,background:"rgba(238, 91, 91, .8)"}}),e.jsx("div",{"data-testid":"canvas-scene-origin-x",style:{position:"absolute",top:0,bottom:0,left:l.x,width:1,background:"rgba(87, 199, 126, .8)"}}),e.jsx("div",{style:{position:"absolute",left:l.x+6,top:l.y+6,color:"rgba(255,255,255,.68)",font:"10px ui-monospace, SFMono-Regular, Menlo, monospace"},children:"0, 0"})]}),g.guides&&c.map(x=>e.jsx("div",{"data-testid":`canvas-scene-guide-${x.axis}`,title:`${x.axis.toUpperCase()} ${Math.round(x.value*100)/100} · drag to move · right-click to remove`,onContextMenu:S=>{S.preventDefault(),Pe(t,x.id)},onPointerDown:S=>{S.preventDefault(),S.stopPropagation();const h=S.currentTarget.parentElement?.getBoundingClientRect();if(!h)return;const E=d=>{const m=x.axis==="x"?d.clientX-h.left:d.clientY-h.top,n=t.get();ce(t,x.id,(m-(x.axis==="x"?n.x:n.y))/n.zoom)},C=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",C,{once:!0})},style:{position:"absolute",pointerEvents:"auto",cursor:x.axis==="x"?"ew-resize":"ns-resize",...x.axis==="x"?{left:l.x+x.value*l.zoom-4,top:20,bottom:0,width:9,borderLeft:"1px solid rgba(74, 180, 255, .95)"}:{top:l.y+x.value*l.zoom-4,left:20,right:0,height:9,borderTop:"1px solid rgba(74, 180, 255, .95)"}}},x.id)),g.rulers&&e.jsx(Xe,{view:t})]})}function Xe({view:t}){const s=u.useSyncExternalStore(t.subscribe,t.get,t.get),o=u.useRef(null),r=u.useRef(null),[g,i]=u.useState({width:0,height:0});u.useEffect(()=>{const p=()=>{const x=o.current?.clientWidth??0,S=r.current?.clientHeight??0;i(h=>h.width===x&&h.height===S?h:{width:x,height:S})};if(p(),typeof ResizeObserver>"u")return;const b=new ResizeObserver(p);return o.current&&b.observe(o.current),r.current&&b.observe(r.current),()=>b.disconnect()},[]);const l=(p,b)=>{if(!(b>0))return[];const x=p==="x"?s.x:s.y,S=de(s.zoom),h=S*s.zoom,E=20,C=Math.ceil((E-x)/h),d=Math.floor((E+b-x)/h);return Array.from({length:Math.max(0,d-C+1)},(m,n)=>{const f=C+n;return{major:f%4===0,screen:x+f*h-E,value:f*S}})},c=l("x",g.width),v=l("y",g.height),a=(p,b)=>{b.preventDefault(),b.stopPropagation();const x=b.currentTarget.parentElement?.getBoundingClientRect();if(!x)return;const S=(d,m)=>{const n=t.get();return((p==="x"?d-x.left:m-x.top)-(p==="x"?n.x:n.y))/n.zoom},h=Te(t,p,S(b.clientX,b.clientY)),E=d=>ce(t,h,S(d.clientX,d.clientY)),C=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",C,{once:!0})},y={position:"absolute",pointerEvents:"auto",backgroundColor:"rgba(24, 26, 30, .96)",border:0,borderColor:"rgba(255,255,255,.14)",boxSizing:"border-box"};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:o,type:"button","data-testid":"canvas-scene-ruler-x","aria-label":"Horizontal ruler; drag to create a horizontal guide",onPointerDown:p=>a("y",p),style:{...y,left:20,right:0,top:0,height:20,borderBottomStyle:"solid",borderBottomWidth:1,cursor:"row-resize",padding:0,overflow:"hidden"},children:c.map(p=>e.jsx("span",{"aria-hidden":"true","data-ruler-axis":"x","data-ruler-value":p.value,style:{position:"absolute",left:p.screen,bottom:0,width:1,height:p.major?8:4,background:p.major?"rgba(255,255,255,.5)":"rgba(255,255,255,.28)",pointerEvents:"none"},children:p.major&&e.jsx("span",{style:{position:"absolute",left:3,bottom:5,color:"rgba(255,255,255,.62)",font:"9px ui-monospace, SFMono-Regular, Menlo, monospace",lineHeight:1,whiteSpace:"nowrap"},children:p.value})},p.value))}),e.jsx("button",{ref:r,type:"button","data-testid":"canvas-scene-ruler-y","aria-label":"Vertical ruler; drag to create a vertical guide",onPointerDown:p=>a("x",p),style:{...y,top:20,bottom:0,left:0,width:20,borderRightStyle:"solid",borderRightWidth:1,cursor:"col-resize",padding:0,overflow:"hidden"},children:v.map(p=>e.jsx("span",{"aria-hidden":"true","data-ruler-axis":"y","data-ruler-value":p.value,style:{position:"absolute",top:p.screen,right:0,width:p.major?8:4,height:1,background:p.major?"rgba(255,255,255,.5)":"rgba(255,255,255,.28)",pointerEvents:"none"},children:p.major&&e.jsx("span",{style:{position:"absolute",right:4,top:3,color:"rgba(255,255,255,.62)",font:"9px ui-monospace, SFMono-Regular, Menlo, monospace",lineHeight:1,whiteSpace:"nowrap",writingMode:"vertical-rl",transform:"rotate(180deg)"},children:p.value})},p.value))}),e.jsx("div",{style:{...y,left:0,top:0,width:20,height:20}})]})}function rt({active:t,adapter:s,containerRef:o,view:r,documentId:g}){const i=W();u.useSyncExternalStore(i.subscribe,i.getSnapshot),u.useSyncExternalStore(R,X);const l=u.useSyncExternalStore(r.subscribe,r.get,r.get),[c,v]=u.useState(()=>B.get(r)??null),a=u.useCallback(d=>{B.set(r,d),v(d)},[r]);u.useEffect(()=>xe(g),[g]),u.useEffect(()=>{if(t)return Re(i,()=>a(null),d=>a(B.get(r)===d?null:d),()=>ue(g))},[t,i,a,r,g]);const y=i.transformMode,p=u.useRef(y);u.useEffect(()=>{p.current!==y&&(p.current=y,a(null))},[y,a]);const b=u.useCallback(d=>{const m=o.current;if(!m)return;const n=Math.min(Ne,Math.max(re,d)),f=m.clientWidth/2,j=m.clientHeight/2,z=(f-l.x)/l.zoom,G=(j-l.y)/l.zoom;r.setView(f-z*n,j-G*n,n)},[o,l,r]),x=u.useCallback(d=>{if(!s?.rects)return[];const m=[];for(const n of d){const f=s.rects.rect(n);f&&f.width>0&&f.height>0&&m.push(f)}return m},[s]),S=u.useCallback(()=>{const d=o.current;d&&O(d,r,D(x(i.selectedEntityIds)))},[o,x,i,r]),h=u.useCallback(()=>{const d=o.current;if(!d)return;const m=r.get(),n=te()?.config.resolution,f=n?n.width/2:0,j=n?n.height/2:0;r.setView(d.clientWidth/2-f*m.zoom,d.clientHeight/2-j*m.zoom,m.zoom)},[o,r]),E=u.useCallback(()=>{const d=o.current,m=D(x(i.selectedEntityIds));if(!d||!m)return;const n=r.get();r.setView(d.clientWidth/2-(m.x+m.width/2)*n.zoom,d.clientHeight/2-(m.y+m.height/2)*n.zoom,n.zoom)},[o,x,i,r]),C=u.useCallback(()=>{const d=o.current;!d||!s||O(d,r,D(x(oe(s))))},[s,o,x,r]);return u.useEffect(()=>{if(t)return i.onViewportAction(d=>{if(d.type==="focus-entity"){const m=o.current;if(!m)return;O(m,r,D(x([d.id])))}else d.type==="focus-selection"?S():d.type==="focus-scene"&&C()})},[t,o,C,S,x,i,r]),e.jsxs(e.Fragment,{children:[e.jsx($e,{}),e.jsx(De,{dimensions:"2d",otherToolActive:c!==null,onToolArmed:()=>a(null),viewTools:e.jsxs(e.Fragment,{children:[e.jsx(T,{text:"List Select: click to list the selectable nodes there",children:e.jsx(N,{"aria-label":"List Select mode","aria-pressed":c==="list",size:"comfortable",onClick:()=>a(c==="list"?null:"list"),children:e.jsx(k,{icon:fe,size:"md"})})}),e.jsx(T,{text:"Pivot: click or drag to put the selected node's pivot there",children:e.jsx(N,{"aria-label":"Pivot mode","aria-pressed":c==="pivot",size:"comfortable",onClick:d=>{if(d.shiftKey){const m=s?[...i.selectedEntityIds].map(f=>s.rects?.rect(f)).filter(f=>f!=null):[],n=D(m);n&&K(r,{x:n.x+n.width/2,y:n.y+n.height/2}),a("pivot");return}a(c==="pivot"?null:"pivot")},children:e.jsx(k,{icon:me,size:"md"})})}),e.jsx(T,{text:"Pan (Space-drag pans in any mode)",children:e.jsx(N,{"aria-label":"Pan mode","aria-pressed":c==="pan",size:"comfortable",onClick:()=>a(c==="pan"?null:"pan"),children:e.jsx(k,{icon:be,size:"md"})})}),e.jsx(T,{text:"Ruler: drag to measure distance and angle",children:e.jsx(N,{"aria-label":"Ruler mode","aria-pressed":c==="ruler",size:"comfortable",onClick:()=>a(c==="ruler"?null:"ruler"),children:e.jsx(k,{icon:Se,size:"md"})})})]}),trailingTools:e.jsxs(e.Fragment,{children:[e.jsx(Ie,{adapter:s,selected:[...i.selectedEntityIds]}),e.jsx(Be,{adapter:s,selected:[...i.selectedEntityIds]}),e.jsx(He,{documentId:g,view:r,hasSelection:i.selectedEntityIds.size>0,onCenterSelection:E,onFrameSelection:S})]})}),e.jsx(Ae,{adapter:s,view:r,documentId:g}),c?e.jsx(Oe,{mode:c,view:r,adapter:s,containerRef:o,onExit:()=>a(null)}):null,e.jsx(J,{label:"2D scene display",className:"volter-viewport-toolbar volter-viewport-toolbar-right","data-volter-canvas-navigation-ignore":"true",children:e.jsx(_,{"aria-label":"Frame all",variant:"ghost",size:"comfortable",onClick:C,children:"Frame all"})}),e.jsxs(J,{label:"2D scene navigation",className:"volter-canvas-scene-navigation","data-volter-canvas-navigation-ignore":"true",children:[e.jsx(N,{"aria-label":"Center view",title:"Center view: the game's viewport in the middle of the pane, at this zoom",size:"comfortable",onClick:h,children:e.jsx(k,{icon:ye,size:"md"})}),e.jsx(N,{"aria-label":"Zoom out",title:"Zoom out",size:"comfortable",onClick:()=>b(l.zoom/1.2),children:e.jsx(k,{icon:ve,size:"md"})}),e.jsxs(_,{variant:"ghost","aria-label":"Reset zoom to 100%",title:"Reset zoom to 100%",size:"comfortable",onClick:()=>b(1),children:[Math.round(l.zoom*100),"%"]}),e.jsx(N,{"aria-label":"Zoom in",title:"Zoom in",size:"comfortable",onClick:()=>b(l.zoom*1.2),children:e.jsx(k,{icon:je,size:"md"})})]})]})}function Ae({adapter:t,view:s,documentId:o}){const r=u.useSyncExternalStore(s.subscribe,s.get,s.get),g=u.useCallback(a=>t?.subscribe?.(a)??(()=>{}),[t]),[i,l]=u.useState(0);u.useEffect(()=>g(()=>l(a=>a+1)),[g]),u.useSyncExternalStore(R,X);const c=A(o);if(!t?.inspector||!t.rects||!c.lock&&!c.group)return null;const v=oe(t).flatMap(a=>{const y=c.lock&&t.inspector?.get(a,"locked")===!0,p=c.group&&t.inspector?.get(a,"grouped")===!0,b=y||p?t.rects?.rect(a):null;return b?[{id:a,locked:y,grouped:p,x:r.x+b.x*r.zoom,y:r.y+b.y*r.zoom}]:[]});return e.jsx("div",{"data-testid":"canvas-scene-edit-gizmos","data-revision":i,style:{position:"absolute",inset:0,zIndex:55,pointerEvents:"none",overflow:"hidden"},children:v.map(a=>e.jsxs("div",{"data-testid":"canvas-scene-edit-gizmo","data-locked":a.locked,"data-grouped":a.grouped,style:{position:"absolute",left:a.x+2,top:a.y+2,display:"flex",gap:2,color:"#fff"},children:[a.locked?e.jsx(k,{icon:ne,size:"xs"}):null,a.grouped?e.jsx(k,{icon:se,size:"xs"}):null]},a.id))})}function He({documentId:t,view:s,hasSelection:o,onCenterSelection:r,onFrameSelection:g}){const[i,l]=u.useState(!1),c=u.useRef(null);u.useSyncExternalStore(R,X),u.useSyncExternalStore(u.useCallback(h=>ie(s,h),[s]),u.useCallback(()=>ae(s),[s]));const v=W();u.useSyncExternalStore(v.subscribe,v.getSnapshot);const a=A(t),y=U(t),p=[{label:"Show Grid",on:y&&!a.gridWhenSnapping,pick:()=>{$(t,!0),P(t,{gridWhenSnapping:!1})}},{label:"Show Grid When Snapping",on:y&&a.gridWhenSnapping,pick:()=>{$(t,!0),P(t,{gridWhenSnapping:!0})}},{label:"Hide Grid",on:!y,pick:()=>$(t,!1)}],b=()=>ue(t),x=[{label:"Rulers",on:a.rulers,toggle:()=>P(t,{rulers:!a.rulers})},{label:"Guides",on:a.guides,toggle:()=>P(t,{guides:!a.guides})},{label:"Origin",on:a.origin,toggle:()=>P(t,{origin:!a.origin})},{label:"Viewport",on:a.viewport,toggle:()=>P(t,{viewport:!a.viewport})}],S=h=>()=>{h(),l(!1)};return e.jsxs(e.Fragment,{children:[e.jsx(_,{ref:c,"aria-label":"View","aria-haspopup":"menu","aria-expanded":i,variant:"ghost",size:"comfortable",onClick:()=>l(!i),children:"View"}),i&&e.jsxs(Ee,{anchorRef:c,align:"end",clamp:!0,"aria-label":"2D view",onDismiss:()=>l(!1),children:[e.jsxs(Q,{label:"Grid","data-testid":"canvas-scene-grid-submenu",children:[p.map(h=>e.jsxs(L,{role:"menuitemradio","aria-checked":h.on,onSelect:S(h.pick),children:[e.jsx("span",{className:"volter-menu-check",children:h.on&&e.jsx(k,{icon:I,size:"xs"})}),h.label]},h.label)),e.jsx(ee,{}),e.jsxs(L,{"data-testid":"canvas-scene-toggle-grid",onSelect:S(b),children:[e.jsx("span",{className:"volter-menu-check"}),"Toggle Grid"]})]}),x.map(h=>e.jsxs(L,{role:"menuitemcheckbox","aria-checked":h.on,onSelect:S(h.toggle),children:[e.jsx("span",{className:"volter-menu-check",children:h.on&&e.jsx(k,{icon:I,size:"xs"})}),h.label.startsWith("Show ")?h.label:`Show ${h.label}`]},h.label)),e.jsx(Q,{label:"Gizmos","data-testid":"canvas-scene-gizmos-submenu",children:[["position","Position"],["lock","Lock"],["group","Group"],["transformation","Transformation"]].map(([h,E])=>e.jsxs(L,{role:"menuitemcheckbox","aria-checked":a[h],onSelect:S(()=>P(t,{[h]:!a[h]})),children:[e.jsx("span",{className:"volter-menu-check",children:a[h]&&e.jsx(k,{icon:I,size:"xs"})}),E]},h))}),e.jsx(ee,{}),e.jsxs(L,{disabled:!o,onSelect:S(r),children:[e.jsx("span",{className:"volter-menu-check"}),"Center Selection"]}),e.jsxs(L,{disabled:!o,onSelect:S(g),children:[e.jsx("span",{className:"volter-menu-check"}),"Frame Selection"]}),e.jsxs(L,{disabled:le(s).length===0,onSelect:S(()=>Ve(s)),children:[e.jsx("span",{className:"volter-menu-check"}),"Clear Guides"]})]})]})}function Ie({adapter:t,selected:s}){const o=s.filter(l=>t?.inspector?.properties(l).some(c=>c.path==="locked")),r=o.length>0&&o.every(l=>t?.inspector?.get(l,"locked")===!0),g=o.length>1?"nodes":"node",i=r?`Unlock selected ${g}`:`Lock selected ${g}`;return e.jsx(T,{text:o.length>0?i:"Select a node to lock it",children:e.jsx(N,{"aria-label":i,"aria-pressed":r,size:"comfortable",disabled:o.length===0||!t?.inspector?.set,onClick:()=>{for(const l of o)t?.inspector?.set?.(l,"locked",!r)},children:e.jsx(k,{icon:r?ne:ze,size:"md"})})})}function ue(t){const s=U(t)&&!A(t).gridWhenSnapping;$(t,!0),P(t,{gridWhenSnapping:s})}const B=new WeakMap;function Oe({mode:t,view:s,adapter:o,containerRef:r,onExit:g}){const i=W(),l=u.useSyncExternalStore(s.subscribe,s.get,s.get),[c,v]=u.useState(null),[a,y]=u.useState(null);u.useEffect(()=>{const n=f=>{f.key==="Escape"&&(t==="pivot"&&K(s,null),g())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[g]);const p=(n,f)=>{const j=r.current?.getBoundingClientRect(),z=s.get(),G=n-(j?.left??0),w=f-(j?.top??0);return{x:(G-z.x)/z.zoom,y:(w-z.y)/z.zoom}},b=n=>{const f=i.snap2D,j=(G,w)=>i.snapEnabled&&f.step>0?Math.round((G-w)/f.step)*f.step+w:G,z={x:j(n.x,f.offsetX),y:j(n.y,f.offsetY)};return f.pixel?{x:Math.round(z.x),y:Math.round(z.y)}:z},x=(n,f,j)=>{if(!o)return f;const z=Ce(o,n);return ke(f,Ge(o,n)??(z?Fe(z):null),{invert:j,smart:i.smartSnap,gridOn:i.snapEnabled,grid:i.snap2D,threshold:Me/Math.max(s.get().zoom,.01)})},S=n=>{if(n.button!==0)return;if(n.preventDefault(),t==="list"){const w=We(i,n.clientX,n.clientY,o?{adapter:o}:{});y(w.length>0?{x:n.clientX,y:n.clientY,ids:w}:null);return}if(t==="pivot"&&n.shiftKey){K(s,b(p(n.clientX,n.clientY)));return}if(t==="pivot"){const w=i.selectedEntityIds,F=w.size===1&&o?[...w][0]:null,V=F&&o?we(o,F):null,Y=F?V?.layers(F).find(M=>M.category==="origin")?.handles.find(M=>M.writable):void 0;if(!F||!V||!Y)return;n.currentTarget.setPointerCapture(n.pointerId);const H=M=>{const q=x(F,p(M.clientX,M.clientY),M.metaKey||M.ctrlKey);return[q.x,q.y,0]};V.preview(F,Y.id,H(n));const Z=M=>V.preview(F,Y.id,H(M)),pe=M=>{window.removeEventListener("pointermove",Z),V.commit(F,Y.id,H(M))};window.addEventListener("pointermove",Z),window.addEventListener("pointerup",pe,{once:!0});return}n.currentTarget.setPointerCapture(n.pointerId);const f={clientX:n.clientX,clientY:n.clientY,pose:s.get()},j=p(n.clientX,n.clientY);t==="ruler"&&v({from:b(j),to:b(j)});const z=w=>{t==="pan"?s.setView(f.pose.x+w.clientX-f.clientX,f.pose.y+w.clientY-f.clientY,f.pose.zoom):v({from:b(j),to:b(p(w.clientX,w.clientY))})},G=()=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",G)};window.addEventListener("pointermove",z),window.addEventListener("pointerup",G,{once:!0})},h=n=>({x:l.x+n.x*l.zoom,y:l.y+n.y*l.zoom}),E=c?Math.hypot(c.to.x-c.from.x,c.to.y-c.from.y):0,C=c?Math.atan2(c.to.y-c.from.y,c.to.x-c.from.x)*180/Math.PI:0,d=c?h(c.from):null,m=c?h(c.to):null;return e.jsxs("div",{"data-testid":`canvas-scene-${t}-layer`,"data-volter-canvas-navigation-ignore":"true",onPointerDown:S,style:{position:"absolute",inset:0,zIndex:60,cursor:t==="pan"?"grab":t==="list"?"context-menu":"crosshair"},children:[a&&o?e.jsx(Le,{state:a,adapter:o,onClose:()=>y(null)}):null,d&&m?e.jsxs(e.Fragment,{children:[e.jsx("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none"},children:e.jsx("line",{x1:d.x,y1:d.y,x2:m.x,y2:m.y,stroke:"#ff5fa2",strokeWidth:1.5})}),e.jsx("div",{"data-testid":"canvas-scene-ruler-reading",style:{position:"absolute",left:(d.x+m.x)/2+8,top:(d.y+m.y)/2+8,padding:"2px 6px",borderRadius:4,background:"rgba(24, 26, 30, .92)",color:"#fff",font:"11px ui-monospace, SFMono-Regular, Menlo, monospace",pointerEvents:"none",whiteSpace:"nowrap"},children:`${E.toFixed(1)} px · ${C.toFixed(1)}° · Δ ${(c.to.x-c.from.x).toFixed(1)}, ${(c.to.y-c.from.y).toFixed(1)}`})]}):null]})}function Be({adapter:t,selected:s}){const o=s.filter(l=>t?.inspector?.properties(l).some(c=>c.path==="grouped")),r=o.length>0&&o.every(l=>t?.inspector?.get(l,"grouped")===!0),g=o.length>1?"nodes":"node",i=r?`Ungroup selected ${g}`:`Group selected ${g} with their children`;return e.jsx(T,{text:o.length>0?i:"Select a node to group it",children:e.jsx(N,{"aria-label":i,"aria-pressed":r,size:"comfortable",disabled:o.length===0||!t?.inspector?.set,onClick:()=>{for(const l of o)t?.inspector?.set?.(l,"grouped",!r)},children:e.jsx(k,{icon:se,size:"md"})})})}export{nt as C,st as a,rt as b};
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as he,U as W,fC as ge,bq as R,br as X,G as U,fD as A,aC as te,fE as xe,fF as oe,bw as T,aM as N,a7 as k,fG as fe,dk as me,fH as be,fI as Se,d9 as J,a6 as _,di as ye,dF as ve,dG as je,fJ as ne,fK as ze,fL as se,bL as $,fM as P,bA as Ee,fN as Q,bB as L,bD as I,bC as ee,fO as we,fP as Ce,fQ as ke,fR as Me,fS as Ge,fT as Fe}from"./index-D9shXtZ9.js";import{r as u}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{S as Ne,a as re}from"./react-canvas-navigation-t00NiEKB.js";import{s as ie,c as ae,a as le,r as Pe,b as K,m as ce,V as Le,d as Te,e as Ve}from"./RootSelectionOverlay-CPw5aFQf.js";import{a as De}from"./Toolbar-BqUPRrhs.js";import{r as Ye}from"./transform-mode-request-B3AxgwGW.js";import{T as $e}from"./TransientHint-w6qEumzV.js";import{p as We}from"./layered-pick-MdBIQeUt.js";function Re(t,s,o,r){const g=i=>()=>{s(),Ye(t,i)};return he().keyboard.bindActions([{id:"transform.select",scope:"stage",run:g("select")},{id:"transform.translate",scope:"stage",run:g("translate")},{id:"transform.rotate",scope:"stage",run:g("rotate")},{id:"transform.scale",scope:"stage",run:g("scale")},{id:"canvas.panMode",scope:"stage",run:()=>o("pan")},{id:"canvas.rulerMode",scope:"stage",run:()=>o("ruler")},{id:"canvas.toggleGrid",scope:"stage",run:r}])}const nt="#111214";function de(t,s=32){let o=s>0?s:32;for(;o*t<12;)o*=2;for(;o*t>48;)o/=2;return o}function D(t){if(t.length===0)return null;let s=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,g=Number.NEGATIVE_INFINITY;for(const i of t)s=Math.min(s,i.x),o=Math.min(o,i.y),r=Math.max(r,i.x+i.width),g=Math.max(g,i.y+i.height);return{x:s,y:o,width:r-s,height:g-o}}function O(t,s,o){if(!o||!(o.width>0)||!(o.height>0))return;const r=Math.max(1,t.clientWidth-96),g=Math.max(1,t.clientHeight-96),i=Math.min(4,Math.max(re,Math.min(r/o.width,g/o.height)));s.setView(t.clientWidth/2-(o.x+o.width/2)*i,t.clientHeight/2-(o.y+o.height/2)*i,i)}function st({view:t,documentId:s}){const o=W();u.useSyncExternalStore(o.subscribe,o.getSnapshot),u.useEffect(()=>ge(s,"canvas"),[s]),u.useSyncExternalStore(R,X);const r=U(s),g=A(s),i=te()?.config.resolution,l=u.useSyncExternalStore(t.subscribe,t.get,t.get);u.useSyncExternalStore(u.useCallback(x=>ie(t,x),[t]),u.useCallback(()=>ae(t),[t]));const c=le(t),v=o.snap2D,a=de(l.zoom,v.step)*l.zoom,y=a*Math.max(1,Math.round(v.primaryEvery)),p=l.x+v.offsetX*l.zoom,b=l.y+v.offsetY*l.zoom;return e.jsxs("div",{"data-testid":"canvas-scene-backdrop",style:{position:"absolute",inset:0,zIndex:2,overflow:"hidden",pointerEvents:"none"},children:[r&&(!g.gridWhenSnapping||o.snapEnabled)&&e.jsx("div",{"data-testid":"canvas-scene-grid",style:{position:"absolute",inset:0,backgroundImage:"linear-gradient(rgba(255,255,255,.075) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.075) 1px, transparent 1px),linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px)",backgroundPosition:`${p}px ${b}px`,backgroundSize:`${a}px ${a}px, ${a}px ${a}px, ${y}px ${y}px, ${y}px ${y}px`}}),g.viewport&&i&&i.width>0&&i.height>0&&e.jsx("div",{"data-testid":"canvas-scene-viewport-rect",style:{position:"absolute",left:l.x,top:l.y,width:i.width*l.zoom,height:i.height*l.zoom,boxSizing:"border-box",borderStyle:"solid",borderWidth:1,borderColor:"rgba(160, 120, 255, .75)"}}),g.origin&&e.jsxs(e.Fragment,{children:[e.jsx("div",{"data-testid":"canvas-scene-origin-y",style:{position:"absolute",left:0,right:0,top:l.y,height:1,background:"rgba(238, 91, 91, .8)"}}),e.jsx("div",{"data-testid":"canvas-scene-origin-x",style:{position:"absolute",top:0,bottom:0,left:l.x,width:1,background:"rgba(87, 199, 126, .8)"}}),e.jsx("div",{style:{position:"absolute",left:l.x+6,top:l.y+6,color:"rgba(255,255,255,.68)",font:"10px ui-monospace, SFMono-Regular, Menlo, monospace"},children:"0, 0"})]}),g.guides&&c.map(x=>e.jsx("div",{"data-testid":`canvas-scene-guide-${x.axis}`,title:`${x.axis.toUpperCase()} ${Math.round(x.value*100)/100} · drag to move · right-click to remove`,onContextMenu:S=>{S.preventDefault(),Pe(t,x.id)},onPointerDown:S=>{S.preventDefault(),S.stopPropagation();const h=S.currentTarget.parentElement?.getBoundingClientRect();if(!h)return;const E=d=>{const m=x.axis==="x"?d.clientX-h.left:d.clientY-h.top,n=t.get();ce(t,x.id,(m-(x.axis==="x"?n.x:n.y))/n.zoom)},C=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",C,{once:!0})},style:{position:"absolute",pointerEvents:"auto",cursor:x.axis==="x"?"ew-resize":"ns-resize",...x.axis==="x"?{left:l.x+x.value*l.zoom-4,top:20,bottom:0,width:9,borderLeft:"1px solid rgba(74, 180, 255, .95)"}:{top:l.y+x.value*l.zoom-4,left:20,right:0,height:9,borderTop:"1px solid rgba(74, 180, 255, .95)"}}},x.id)),g.rulers&&e.jsx(Xe,{view:t})]})}function Xe({view:t}){const s=u.useSyncExternalStore(t.subscribe,t.get,t.get),o=u.useRef(null),r=u.useRef(null),[g,i]=u.useState({width:0,height:0});u.useEffect(()=>{const p=()=>{const x=o.current?.clientWidth??0,S=r.current?.clientHeight??0;i(h=>h.width===x&&h.height===S?h:{width:x,height:S})};if(p(),typeof ResizeObserver>"u")return;const b=new ResizeObserver(p);return o.current&&b.observe(o.current),r.current&&b.observe(r.current),()=>b.disconnect()},[]);const l=(p,b)=>{if(!(b>0))return[];const x=p==="x"?s.x:s.y,S=de(s.zoom),h=S*s.zoom,E=20,C=Math.ceil((E-x)/h),d=Math.floor((E+b-x)/h);return Array.from({length:Math.max(0,d-C+1)},(m,n)=>{const f=C+n;return{major:f%4===0,screen:x+f*h-E,value:f*S}})},c=l("x",g.width),v=l("y",g.height),a=(p,b)=>{b.preventDefault(),b.stopPropagation();const x=b.currentTarget.parentElement?.getBoundingClientRect();if(!x)return;const S=(d,m)=>{const n=t.get();return((p==="x"?d-x.left:m-x.top)-(p==="x"?n.x:n.y))/n.zoom},h=Te(t,p,S(b.clientX,b.clientY)),E=d=>ce(t,h,S(d.clientX,d.clientY)),C=()=>{window.removeEventListener("pointermove",E),window.removeEventListener("pointerup",C)};window.addEventListener("pointermove",E),window.addEventListener("pointerup",C,{once:!0})},y={position:"absolute",pointerEvents:"auto",backgroundColor:"rgba(24, 26, 30, .96)",border:0,borderColor:"rgba(255,255,255,.14)",boxSizing:"border-box"};return e.jsxs(e.Fragment,{children:[e.jsx("button",{ref:o,type:"button","data-testid":"canvas-scene-ruler-x","aria-label":"Horizontal ruler; drag to create a horizontal guide",onPointerDown:p=>a("y",p),style:{...y,left:20,right:0,top:0,height:20,borderBottomStyle:"solid",borderBottomWidth:1,cursor:"row-resize",padding:0,overflow:"hidden"},children:c.map(p=>e.jsx("span",{"aria-hidden":"true","data-ruler-axis":"x","data-ruler-value":p.value,style:{position:"absolute",left:p.screen,bottom:0,width:1,height:p.major?8:4,background:p.major?"rgba(255,255,255,.5)":"rgba(255,255,255,.28)",pointerEvents:"none"},children:p.major&&e.jsx("span",{style:{position:"absolute",left:3,bottom:5,color:"rgba(255,255,255,.62)",font:"9px ui-monospace, SFMono-Regular, Menlo, monospace",lineHeight:1,whiteSpace:"nowrap"},children:p.value})},p.value))}),e.jsx("button",{ref:r,type:"button","data-testid":"canvas-scene-ruler-y","aria-label":"Vertical ruler; drag to create a vertical guide",onPointerDown:p=>a("x",p),style:{...y,top:20,bottom:0,left:0,width:20,borderRightStyle:"solid",borderRightWidth:1,cursor:"col-resize",padding:0,overflow:"hidden"},children:v.map(p=>e.jsx("span",{"aria-hidden":"true","data-ruler-axis":"y","data-ruler-value":p.value,style:{position:"absolute",top:p.screen,right:0,width:p.major?8:4,height:1,background:p.major?"rgba(255,255,255,.5)":"rgba(255,255,255,.28)",pointerEvents:"none"},children:p.major&&e.jsx("span",{style:{position:"absolute",right:4,top:3,color:"rgba(255,255,255,.62)",font:"9px ui-monospace, SFMono-Regular, Menlo, monospace",lineHeight:1,whiteSpace:"nowrap",writingMode:"vertical-rl",transform:"rotate(180deg)"},children:p.value})},p.value))}),e.jsx("div",{style:{...y,left:0,top:0,width:20,height:20}})]})}function rt({active:t,adapter:s,containerRef:o,view:r,documentId:g}){const i=W();u.useSyncExternalStore(i.subscribe,i.getSnapshot),u.useSyncExternalStore(R,X);const l=u.useSyncExternalStore(r.subscribe,r.get,r.get),[c,v]=u.useState(()=>B.get(r)??null),a=u.useCallback(d=>{B.set(r,d),v(d)},[r]);u.useEffect(()=>xe(g),[g]),u.useEffect(()=>{if(t)return Re(i,()=>a(null),d=>a(B.get(r)===d?null:d),()=>ue(g))},[t,i,a,r,g]);const y=i.transformMode,p=u.useRef(y);u.useEffect(()=>{p.current!==y&&(p.current=y,a(null))},[y,a]);const b=u.useCallback(d=>{const m=o.current;if(!m)return;const n=Math.min(Ne,Math.max(re,d)),f=m.clientWidth/2,j=m.clientHeight/2,z=(f-l.x)/l.zoom,G=(j-l.y)/l.zoom;r.setView(f-z*n,j-G*n,n)},[o,l,r]),x=u.useCallback(d=>{if(!s?.rects)return[];const m=[];for(const n of d){const f=s.rects.rect(n);f&&f.width>0&&f.height>0&&m.push(f)}return m},[s]),S=u.useCallback(()=>{const d=o.current;d&&O(d,r,D(x(i.selectedEntityIds)))},[o,x,i,r]),h=u.useCallback(()=>{const d=o.current;if(!d)return;const m=r.get(),n=te()?.config.resolution,f=n?n.width/2:0,j=n?n.height/2:0;r.setView(d.clientWidth/2-f*m.zoom,d.clientHeight/2-j*m.zoom,m.zoom)},[o,r]),E=u.useCallback(()=>{const d=o.current,m=D(x(i.selectedEntityIds));if(!d||!m)return;const n=r.get();r.setView(d.clientWidth/2-(m.x+m.width/2)*n.zoom,d.clientHeight/2-(m.y+m.height/2)*n.zoom,n.zoom)},[o,x,i,r]),C=u.useCallback(()=>{const d=o.current;!d||!s||O(d,r,D(x(oe(s))))},[s,o,x,r]);return u.useEffect(()=>{if(t)return i.onViewportAction(d=>{if(d.type==="focus-entity"){const m=o.current;if(!m)return;O(m,r,D(x([d.id])))}else d.type==="focus-selection"?S():d.type==="focus-scene"&&C()})},[t,o,C,S,x,i,r]),e.jsxs(e.Fragment,{children:[e.jsx($e,{}),e.jsx(De,{dimensions:"2d",otherToolActive:c!==null,onToolArmed:()=>a(null),viewTools:e.jsxs(e.Fragment,{children:[e.jsx(T,{text:"List Select: click to list the selectable nodes there",children:e.jsx(N,{"aria-label":"List Select mode","aria-pressed":c==="list",size:"comfortable",onClick:()=>a(c==="list"?null:"list"),children:e.jsx(k,{icon:fe,size:"md"})})}),e.jsx(T,{text:"Pivot: click or drag to put the selected node's pivot there",children:e.jsx(N,{"aria-label":"Pivot mode","aria-pressed":c==="pivot",size:"comfortable",onClick:d=>{if(d.shiftKey){const m=s?[...i.selectedEntityIds].map(f=>s.rects?.rect(f)).filter(f=>f!=null):[],n=D(m);n&&K(r,{x:n.x+n.width/2,y:n.y+n.height/2}),a("pivot");return}a(c==="pivot"?null:"pivot")},children:e.jsx(k,{icon:me,size:"md"})})}),e.jsx(T,{text:"Pan (Space-drag pans in any mode)",children:e.jsx(N,{"aria-label":"Pan mode","aria-pressed":c==="pan",size:"comfortable",onClick:()=>a(c==="pan"?null:"pan"),children:e.jsx(k,{icon:be,size:"md"})})}),e.jsx(T,{text:"Ruler: drag to measure distance and angle",children:e.jsx(N,{"aria-label":"Ruler mode","aria-pressed":c==="ruler",size:"comfortable",onClick:()=>a(c==="ruler"?null:"ruler"),children:e.jsx(k,{icon:Se,size:"md"})})})]}),trailingTools:e.jsxs(e.Fragment,{children:[e.jsx(Ie,{adapter:s,selected:[...i.selectedEntityIds]}),e.jsx(Be,{adapter:s,selected:[...i.selectedEntityIds]}),e.jsx(He,{documentId:g,view:r,hasSelection:i.selectedEntityIds.size>0,onCenterSelection:E,onFrameSelection:S})]})}),e.jsx(Ae,{adapter:s,view:r,documentId:g}),c?e.jsx(Oe,{mode:c,view:r,adapter:s,containerRef:o,onExit:()=>a(null)}):null,e.jsx(J,{label:"2D scene display",className:"volter-viewport-toolbar volter-viewport-toolbar-right","data-volter-canvas-navigation-ignore":"true",children:e.jsx(_,{"aria-label":"Frame all",variant:"ghost",size:"comfortable",onClick:C,children:"Frame all"})}),e.jsxs(J,{label:"2D scene navigation",className:"volter-canvas-scene-navigation","data-volter-canvas-navigation-ignore":"true",children:[e.jsx(N,{"aria-label":"Center view",title:"Center view: the game's viewport in the middle of the pane, at this zoom",size:"comfortable",onClick:h,children:e.jsx(k,{icon:ye,size:"md"})}),e.jsx(N,{"aria-label":"Zoom out",title:"Zoom out",size:"comfortable",onClick:()=>b(l.zoom/1.2),children:e.jsx(k,{icon:ve,size:"md"})}),e.jsxs(_,{variant:"ghost","aria-label":"Reset zoom to 100%",title:"Reset zoom to 100%",size:"comfortable",onClick:()=>b(1),children:[Math.round(l.zoom*100),"%"]}),e.jsx(N,{"aria-label":"Zoom in",title:"Zoom in",size:"comfortable",onClick:()=>b(l.zoom*1.2),children:e.jsx(k,{icon:je,size:"md"})})]})]})}function Ae({adapter:t,view:s,documentId:o}){const r=u.useSyncExternalStore(s.subscribe,s.get,s.get),g=u.useCallback(a=>t?.subscribe?.(a)??(()=>{}),[t]),[i,l]=u.useState(0);u.useEffect(()=>g(()=>l(a=>a+1)),[g]),u.useSyncExternalStore(R,X);const c=A(o);if(!t?.inspector||!t.rects||!c.lock&&!c.group)return null;const v=oe(t).flatMap(a=>{const y=c.lock&&t.inspector?.get(a,"locked")===!0,p=c.group&&t.inspector?.get(a,"grouped")===!0,b=y||p?t.rects?.rect(a):null;return b?[{id:a,locked:y,grouped:p,x:r.x+b.x*r.zoom,y:r.y+b.y*r.zoom}]:[]});return e.jsx("div",{"data-testid":"canvas-scene-edit-gizmos","data-revision":i,style:{position:"absolute",inset:0,zIndex:55,pointerEvents:"none",overflow:"hidden"},children:v.map(a=>e.jsxs("div",{"data-testid":"canvas-scene-edit-gizmo","data-locked":a.locked,"data-grouped":a.grouped,style:{position:"absolute",left:a.x+2,top:a.y+2,display:"flex",gap:2,color:"#fff"},children:[a.locked?e.jsx(k,{icon:ne,size:"xs"}):null,a.grouped?e.jsx(k,{icon:se,size:"xs"}):null]},a.id))})}function He({documentId:t,view:s,hasSelection:o,onCenterSelection:r,onFrameSelection:g}){const[i,l]=u.useState(!1),c=u.useRef(null);u.useSyncExternalStore(R,X),u.useSyncExternalStore(u.useCallback(h=>ie(s,h),[s]),u.useCallback(()=>ae(s),[s]));const v=W();u.useSyncExternalStore(v.subscribe,v.getSnapshot);const a=A(t),y=U(t),p=[{label:"Show Grid",on:y&&!a.gridWhenSnapping,pick:()=>{$(t,!0),P(t,{gridWhenSnapping:!1})}},{label:"Show Grid When Snapping",on:y&&a.gridWhenSnapping,pick:()=>{$(t,!0),P(t,{gridWhenSnapping:!0})}},{label:"Hide Grid",on:!y,pick:()=>$(t,!1)}],b=()=>ue(t),x=[{label:"Rulers",on:a.rulers,toggle:()=>P(t,{rulers:!a.rulers})},{label:"Guides",on:a.guides,toggle:()=>P(t,{guides:!a.guides})},{label:"Origin",on:a.origin,toggle:()=>P(t,{origin:!a.origin})},{label:"Viewport",on:a.viewport,toggle:()=>P(t,{viewport:!a.viewport})}],S=h=>()=>{h(),l(!1)};return e.jsxs(e.Fragment,{children:[e.jsx(_,{ref:c,"aria-label":"View","aria-haspopup":"menu","aria-expanded":i,variant:"ghost",size:"comfortable",onClick:()=>l(!i),children:"View"}),i&&e.jsxs(Ee,{anchorRef:c,align:"end",clamp:!0,"aria-label":"2D view",onDismiss:()=>l(!1),children:[e.jsxs(Q,{label:"Grid","data-testid":"canvas-scene-grid-submenu",children:[p.map(h=>e.jsxs(L,{role:"menuitemradio","aria-checked":h.on,onSelect:S(h.pick),children:[e.jsx("span",{className:"volter-menu-check",children:h.on&&e.jsx(k,{icon:I,size:"xs"})}),h.label]},h.label)),e.jsx(ee,{}),e.jsxs(L,{"data-testid":"canvas-scene-toggle-grid",onSelect:S(b),children:[e.jsx("span",{className:"volter-menu-check"}),"Toggle Grid"]})]}),x.map(h=>e.jsxs(L,{role:"menuitemcheckbox","aria-checked":h.on,onSelect:S(h.toggle),children:[e.jsx("span",{className:"volter-menu-check",children:h.on&&e.jsx(k,{icon:I,size:"xs"})}),h.label.startsWith("Show ")?h.label:`Show ${h.label}`]},h.label)),e.jsx(Q,{label:"Gizmos","data-testid":"canvas-scene-gizmos-submenu",children:[["position","Position"],["lock","Lock"],["group","Group"],["transformation","Transformation"]].map(([h,E])=>e.jsxs(L,{role:"menuitemcheckbox","aria-checked":a[h],onSelect:S(()=>P(t,{[h]:!a[h]})),children:[e.jsx("span",{className:"volter-menu-check",children:a[h]&&e.jsx(k,{icon:I,size:"xs"})}),E]},h))}),e.jsx(ee,{}),e.jsxs(L,{disabled:!o,onSelect:S(r),children:[e.jsx("span",{className:"volter-menu-check"}),"Center Selection"]}),e.jsxs(L,{disabled:!o,onSelect:S(g),children:[e.jsx("span",{className:"volter-menu-check"}),"Frame Selection"]}),e.jsxs(L,{disabled:le(s).length===0,onSelect:S(()=>Ve(s)),children:[e.jsx("span",{className:"volter-menu-check"}),"Clear Guides"]})]})]})}function Ie({adapter:t,selected:s}){const o=s.filter(l=>t?.inspector?.properties(l).some(c=>c.path==="locked")),r=o.length>0&&o.every(l=>t?.inspector?.get(l,"locked")===!0),g=o.length>1?"nodes":"node",i=r?`Unlock selected ${g}`:`Lock selected ${g}`;return e.jsx(T,{text:o.length>0?i:"Select a node to lock it",children:e.jsx(N,{"aria-label":i,"aria-pressed":r,size:"comfortable",disabled:o.length===0||!t?.inspector?.set,onClick:()=>{for(const l of o)t?.inspector?.set?.(l,"locked",!r)},children:e.jsx(k,{icon:r?ne:ze,size:"md"})})})}function ue(t){const s=U(t)&&!A(t).gridWhenSnapping;$(t,!0),P(t,{gridWhenSnapping:s})}const B=new WeakMap;function Oe({mode:t,view:s,adapter:o,containerRef:r,onExit:g}){const i=W(),l=u.useSyncExternalStore(s.subscribe,s.get,s.get),[c,v]=u.useState(null),[a,y]=u.useState(null);u.useEffect(()=>{const n=f=>{f.key==="Escape"&&(t==="pivot"&&K(s,null),g())};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[g]);const p=(n,f)=>{const j=r.current?.getBoundingClientRect(),z=s.get(),G=n-(j?.left??0),w=f-(j?.top??0);return{x:(G-z.x)/z.zoom,y:(w-z.y)/z.zoom}},b=n=>{const f=i.snap2D,j=(G,w)=>i.snapEnabled&&f.step>0?Math.round((G-w)/f.step)*f.step+w:G,z={x:j(n.x,f.offsetX),y:j(n.y,f.offsetY)};return f.pixel?{x:Math.round(z.x),y:Math.round(z.y)}:z},x=(n,f,j)=>{if(!o)return f;const z=Ce(o,n);return ke(f,Ge(o,n)??(z?Fe(z):null),{invert:j,smart:i.smartSnap,gridOn:i.snapEnabled,grid:i.snap2D,threshold:Me/Math.max(s.get().zoom,.01)})},S=n=>{if(n.button!==0)return;if(n.preventDefault(),t==="list"){const w=We(i,n.clientX,n.clientY,o?{adapter:o}:{});y(w.length>0?{x:n.clientX,y:n.clientY,ids:w}:null);return}if(t==="pivot"&&n.shiftKey){K(s,b(p(n.clientX,n.clientY)));return}if(t==="pivot"){const w=i.selectedEntityIds,F=w.size===1&&o?[...w][0]:null,V=F&&o?we(o,F):null,Y=F?V?.layers(F).find(M=>M.category==="origin")?.handles.find(M=>M.writable):void 0;if(!F||!V||!Y)return;n.currentTarget.setPointerCapture(n.pointerId);const H=M=>{const q=x(F,p(M.clientX,M.clientY),M.metaKey||M.ctrlKey);return[q.x,q.y,0]};V.preview(F,Y.id,H(n));const Z=M=>V.preview(F,Y.id,H(M)),pe=M=>{window.removeEventListener("pointermove",Z),V.commit(F,Y.id,H(M))};window.addEventListener("pointermove",Z),window.addEventListener("pointerup",pe,{once:!0});return}n.currentTarget.setPointerCapture(n.pointerId);const f={clientX:n.clientX,clientY:n.clientY,pose:s.get()},j=p(n.clientX,n.clientY);t==="ruler"&&v({from:b(j),to:b(j)});const z=w=>{t==="pan"?s.setView(f.pose.x+w.clientX-f.clientX,f.pose.y+w.clientY-f.clientY,f.pose.zoom):v({from:b(j),to:b(p(w.clientX,w.clientY))})},G=()=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",G)};window.addEventListener("pointermove",z),window.addEventListener("pointerup",G,{once:!0})},h=n=>({x:l.x+n.x*l.zoom,y:l.y+n.y*l.zoom}),E=c?Math.hypot(c.to.x-c.from.x,c.to.y-c.from.y):0,C=c?Math.atan2(c.to.y-c.from.y,c.to.x-c.from.x)*180/Math.PI:0,d=c?h(c.from):null,m=c?h(c.to):null;return e.jsxs("div",{"data-testid":`canvas-scene-${t}-layer`,"data-volter-canvas-navigation-ignore":"true",onPointerDown:S,style:{position:"absolute",inset:0,zIndex:60,cursor:t==="pan"?"grab":t==="list"?"context-menu":"crosshair"},children:[a&&o?e.jsx(Le,{state:a,adapter:o,onClose:()=>y(null)}):null,d&&m?e.jsxs(e.Fragment,{children:[e.jsx("svg",{style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none"},children:e.jsx("line",{x1:d.x,y1:d.y,x2:m.x,y2:m.y,stroke:"#ff5fa2",strokeWidth:1.5})}),e.jsx("div",{"data-testid":"canvas-scene-ruler-reading",style:{position:"absolute",left:(d.x+m.x)/2+8,top:(d.y+m.y)/2+8,padding:"2px 6px",borderRadius:4,background:"rgba(24, 26, 30, .92)",color:"#fff",font:"11px ui-monospace, SFMono-Regular, Menlo, monospace",pointerEvents:"none",whiteSpace:"nowrap"},children:`${E.toFixed(1)} px · ${C.toFixed(1)}° · Δ ${(c.to.x-c.from.x).toFixed(1)}, ${(c.to.y-c.from.y).toFixed(1)}`})]}):null]})}function Be({adapter:t,selected:s}){const o=s.filter(l=>t?.inspector?.properties(l).some(c=>c.path==="grouped")),r=o.length>0&&o.every(l=>t?.inspector?.get(l,"grouped")===!0),g=o.length>1?"nodes":"node",i=r?`Ungroup selected ${g}`:`Group selected ${g} with their children`;return e.jsx(T,{text:o.length>0?i:"Select a node to group it",children:e.jsx(N,{"aria-label":i,"aria-pressed":r,size:"comfortable",disabled:o.length===0||!t?.inspector?.set,onClick:()=>{for(const l of o)t?.inspector?.set?.(l,"grouped",!r)},children:e.jsx(k,{icon:se,size:"md"})})})}export{nt as C,st as a,rt as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import{dW as m,aN as u,dX as p}from"./index-
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import{dW as m,aN as u,dX as p}from"./index-D9shXtZ9.js";function g({value:r,onChange:o,disabled:s=!1}){const[n,a]=l.useState(r??""),i=m();l.useEffect(()=>{a(r??"")},[r]);const c=()=>{const t=n.trim();t&&t!==r&&o(t)};return r===null?e.jsxs("div",{className:"volter-color-input",children:[e.jsx("div",{className:"volter-color-input-mixed"}),e.jsx(u,{placeholder:"—",disabled:s,onChange:t=>{t.target.value&&o(t.target.value)},"data-mixed":"true"})]}):e.jsxs("div",{className:"volter-color-input",children:[e.jsx(p,{value:r,disabled:s,onChange:t=>{i?.begin(),o(t.target.value)},onBlur:()=>i?.end()}),e.jsx(u,{value:n,disabled:s,onChange:t=>a(t.target.value),onBlur:c,onKeyDown:t=>{t.key==="Enter"?(c(),t.target.blur()):t.key==="Escape"&&(a(r),t.target.blur())}})]})}export{g as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as y}from"./jsx-runtime-DPjLkJKQ.js";import{r as x}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{e4 as v,e5 as R,bP as ut,aN as dt,a6 as X,e6 as D}from"./index-
|
|
1
|
+
import{a as y}from"./jsx-runtime-DPjLkJKQ.js";import{r as x}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{e4 as v,e5 as R,bP as ut,aN as dt,a6 as X,e6 as D}from"./index-D9shXtZ9.js";function P(n){let t=n.replace("#","");t.length===3&&(t=`${t[0]??"0"}${t[0]??"0"}${t[1]??"0"}${t[1]??"0"}${t[2]??"0"}${t[2]??"0"}`);const e=Number.parseInt(t,16);return[e>>16&255,e>>8&255,e&255]}function tt(n,t,e){return`#${[n,t,e].map(o=>Math.round(Math.max(0,Math.min(255,o))).toString(16).padStart(2,"0")).join("")}`}function L(n,t,e){const o=n/255,c=t/255,i=e/255,l=Math.max(o,c,i),p=Math.min(o,c,i),u=l-p;let d=0;u!==0&&(l===o?d=((c-i)/u%6+6)%6:l===c?d=(i-o)/u+2:d=(o-c)/u+4,d/=6);const h=l===0?0:u/l;return[d,h,l]}function E(n,t,e){const o=Math.floor(n*6),c=n*6-o,i=e*(1-t),l=e*(1-c*t),p=e*(1-(1-c)*t);let u=0,d=0,h=0;switch(o%6){case 0:u=e,d=p,h=i;break;case 1:u=l,d=e,h=i;break;case 2:u=i,d=e,h=p;break;case 3:u=i,d=l,h=e;break;case 4:u=p,d=i,h=e;break;case 5:u=e,d=i,h=l;break}return[Math.round(u*255),Math.round(d*255),Math.round(h*255)]}function et(n,t,e){let o,c,i;if(t===0)o=c=i=e;else{const l=(d,h,f)=>{let $=f;return $<0&&($+=1),$>1&&($-=1),$<.16666666666666666?d+(h-d)*6*$:$<.5?h:$<.6666666666666666?d+(h-d)*(.6666666666666666-$)*6:d},p=e<.5?e*(1+t):e+t-e*t,u=2*e-p;o=l(u,p,n+1/3),c=l(u,p,n),i=l(u,p,n-1/3)}return[Math.round(o*255),Math.round(c*255),Math.round(i*255)]}function ft(n,t,e){const o=n/255,c=t/255,i=e/255,l=Math.max(o,c,i),p=Math.min(o,c,i);let u=0,d=0;const h=(l+p)/2;if(l!==p){const f=l-p;d=h>.5?f/(2-l-p):f/(l+p),l===o?u=((c-i)/f+(c<i?6:0))/6:l===c?u=((i-o)/f+2)/6:u=((o-c)/f+4)/6}return[u,d,h]}function z(n){if(n.startsWith("#")&&(n.length===4||n.length===7))return n;if(n.startsWith("#")&&n.length===9)return n.slice(0,7);const t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(t){const[,o,c,i]=t;return`#${[o??"0",c??"0",i??"0"].map(l=>Number.parseInt(l,10).toString(16).padStart(2,"0")).join("")}`}const e=n.match(/hsla?\((\d+),\s*(\d+)%?,\s*(\d+)%?/);if(e){const[o,c,i]=et(Number.parseInt(e[1]??"0",10)/360,Number.parseInt(e[2]??"0",10)/100,Number.parseInt(e[3]??"0",10)/100);return tt(o,c,i)}return"#000000"}function A(n){const t=n.match(/rgba\([^,]+,[^,]+,[^,]+,\s*([\d.]+)\)/);if(t?.[1])return Number.parseFloat(t[1]);const e=n.match(/hsla\([^,]+,[^,]+,[^,]+,\s*([\d.]+)\)/);return e?.[1]?Number.parseFloat(e[1]):n.startsWith("#")&&n.length===9?Number.parseInt(n.slice(7,9),16)/255:1}function Z(n,t,e,o,c){if(c==="hex"){const f=tt(n,t,e);return o<1?`rgba(${n}, ${t}, ${e}, ${o.toFixed(2)})`:f}if(c==="rgb")return o<1?`rgba(${n}, ${t}, ${e}, ${o.toFixed(2)})`:`rgb(${n}, ${t}, ${e})`;const[i,l,p]=ft(n,t,e),u=Math.round(i*360),d=Math.round(l*100),h=Math.round(p*100);return o<1?`hsla(${u}, ${d}%, ${h}%, ${o.toFixed(2)})`:`hsl(${u}, ${d}%, ${h}%)`}function vt(n){const t=n.match(/\d+/g);return!t||t.length<3?"#000000":`#${[t[0]??"0",t[1]??"0",t[2]??"0"].map(e=>Number.parseInt(e,10).toString(16).padStart(2,"0")).join("")}`}const S=200,F=150,I=14;function pt({value:n,onChange:t,onChangeEnd:e,onClose:o,recentColors:c,onAddRecentColor:i,eyedropperFallback:l,onEyedropperPick:p,disabled:u}){const d=z(n),h=P(d),[f,$]=x.useState(()=>L(...h)),[M,j]=x.useState(()=>A(n)),[T,nt]=x.useState("hex"),[V,q]=x.useState(d),B=x.useRef(null),G=x.useRef(null),W=x.useRef(null),K=x.useRef(null),N=x.useRef(null),k=x.useCallback((r=f,s=M,a=T)=>{const[b,m,g]=E(r[0],r[1],r[2]);return Z(b,m,g,s,a)},[f,M,T]);x.useEffect(()=>{q(k())},[k]),x.useEffect(()=>{const r=G.current,s=r?.getContext("2d");if(!r||!s)return;const[a,b,m]=E(f[0],1,1),g=s.createLinearGradient(0,0,S,0);g.addColorStop(0,"#ffffff"),g.addColorStop(1,`rgb(${a},${b},${m})`),s.fillStyle=g,s.fillRect(0,0,S,F);const w=s.createLinearGradient(0,0,0,F);w.addColorStop(0,"rgba(0,0,0,0)"),w.addColorStop(1,"rgba(0,0,0,1)"),s.fillStyle=w,s.fillRect(0,0,S,F)},[f[0]]),x.useEffect(()=>{const r=W.current,s=r?.getContext("2d");if(!r||!s)return;const a=s.createLinearGradient(0,0,S,0);for(let b=0;b<=6;b++){const[m,g,w]=E(b/6,1,1);a.addColorStop(b/6,`rgb(${m},${g},${w})`)}s.fillStyle=a,s.fillRect(0,0,S,I)},[]),x.useEffect(()=>{const r=K.current,s=r?.getContext("2d");if(!r||!s)return;const a=4;for(let H=0;H<I;H+=a)for(let C=0;C<S;C+=a)s.fillStyle=(C/a+H/a)%2===0?"#ffffff":"#cccccc",s.fillRect(C,H,a,a);const[b,m,g]=E(f[0],f[1],f[2]),w=s.createLinearGradient(0,0,S,0);w.addColorStop(0,`rgba(${b},${m},${g},0)`),w.addColorStop(1,`rgba(${b},${m},${g},1)`),s.fillStyle=w,s.fillRect(0,0,S,I)},[f]),x.useEffect(()=>{if(!o)return;function r(a){a.key==="Escape"&&o?.()}function s(a){B.current&&!B.current.contains(a.target)&&o?.()}return document.addEventListener("keydown",r),document.addEventListener("mousedown",s,!0),()=>{document.removeEventListener("keydown",r),document.removeEventListener("mousedown",s,!0)}},[o]);const U=x.useCallback((r,s,a,b)=>{const m=s?.getBoundingClientRect();if(m)if(r==="sat"){const g=[f[0],O(a,m.left,m.width),ht(b,m.top,m.height)];$(g),R({onChange:t},k(g))}else if(r==="hue"){const g=[O(a,m.left,m.width),f[1],f[2]];$(g),R({onChange:t},k(g))}else{const g=Math.round(O(a,m.left,m.width)*100)/100;j(g),R({onChange:t},k(f,g))}},[f,k,t]);x.useEffect(()=>{function r(a){const b=N.current;if(!b)return;a.preventDefault();const m=b==="sat"?G.current:b==="hue"?W.current:K.current;U(b,m,a.clientX,a.clientY)}function s(){if(N.current){N.current=null;const a=k();D({onChange:t,onChangeEnd:e},a),i?.(a)}}return window.addEventListener("mousemove",r),window.addEventListener("mouseup",s),()=>{window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)}},[U,k,t,e,i]);const _=(r,s)=>{u||(s.preventDefault(),N.current=r,U(r,s.currentTarget,s.clientX,s.clientY))},J=()=>{const r=V.trim(),s=bt(r),a=s?{r:s[0],g:s[1],b:s[2],a:1}:mt(r)??gt(r);if(!a)return;$(L(a.r,a.g,a.b)),j(a.a);const b=s?r:Z(a.r,a.g,a.b,a.a,T);R({onChange:t},b),D({onChange:t,onChangeEnd:e},b),i?.(b)},st=()=>{nt(r=>r==="hex"?"rgb":r==="rgb"?"hsl":"hex")},Q=typeof globalThis.EyeDropper=="function",Y=r=>{const s=z(r);$(L(...P(s))),j(A(r)),R({onChange:t},r),D({onChange:t,onChangeEnd:e},r)},ot=async()=>{if(Q){try{const s=globalThis.EyeDropper,a=await new s().open();Y(a.sRGBHex)}catch{}return}if(p){p(s=>{s&&Y(s)});return}const r=l?.();r&&Y(r)},[at,it,ct]=E(f[0],f[1],f[2]),lt=`rgba(${at},${it},${ct},${M})`;return y.jsxs(ut,{ref:B,"data-testid":"inspector-color-picker",onMouseDown:r=>r.stopPropagation(),style:{padding:10,width:S+16,boxSizing:"border-box"},children:[y.jsx("canvas",{ref:G,"data-testid":"color-picker-sv",width:S,height:F,onMouseDown:r=>_("sat",r),style:{cursor:"crosshair",borderRadius:v.radiusSmall,display:"block"}}),y.jsx("canvas",{ref:W,"data-testid":"color-picker-hue",width:S,height:I,onMouseDown:r=>_("hue",r),style:{cursor:"pointer",borderRadius:v.radiusSmall,display:"block",marginTop:6}}),y.jsx("canvas",{ref:K,"data-testid":"color-picker-alpha",width:S,height:I,onMouseDown:r=>_("alpha",r),style:{cursor:"pointer",borderRadius:v.radiusSmall,display:"block",marginTop:6}}),y.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",marginTop:8},children:[y.jsx("div",{style:{width:22,height:22,borderRadius:v.radiusSmall,flexShrink:0,border:`1px solid ${v.border}`,background:lt}}),y.jsx(dt,{type:"text","data-testid":"color-picker-text",value:V,onChange:r=>q(r.target.value),onKeyDown:r=>{r.key==="Enter"&&J()},onBlur:J,"data-density":"compact","data-monospace":"true",style:{flex:1}}),y.jsx(X,{type:"button",variant:"secondary",size:"compact","data-testid":"color-format-toggle",onClick:st,title:"Cycle color format",style:{flexShrink:0},children:T.toUpperCase()}),(Q||l||p)&&y.jsx(X,{type:"button",variant:"secondary",size:"compact","data-testid":"color-picker-eyedropper",onClick:ot,title:"Eyedropper",style:{flexShrink:0},children:"⌖"})]}),c&&c.length>0&&y.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:3,marginTop:8,paddingTop:6,borderTop:`1px solid ${v.border}`},children:c.map((r,s)=>y.jsx("div",{"data-testid":"color-picker-recent",onClick:()=>{const a=z(r);$(L(...P(a))),j(A(r)),R({onChange:t},r),D({onChange:t,onChangeEnd:e},r)},title:r,style:{width:16,height:16,borderRadius:v.radiusSmall,cursor:"pointer",background:r,border:`1px solid ${v.border}`}},`${r}-${s}`))})]})}function wt({label:n,value:t,onChange:e,onChangeEnd:o,recentColors:c,onAddRecentColor:i,eyedropperFallback:l,onEyedropperPick:p,disabled:u,testId:d}){const[h,f]=x.useState(!1),$=z(t);return y.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,position:"relative"},children:[y.jsx("div",{"data-testid":d?`${d}-swatch`:"color-swatch",onClick:()=>{u||f(M=>!M)},style:{width:20,height:20,borderRadius:v.radiusSmall,flexShrink:0,background:$,border:`1px solid ${v.border}`,cursor:u?"not-allowed":"pointer"}}),n&&y.jsx("span",{style:{fontSize:10,color:v.textMuted,flexShrink:0},children:n}),h&&!u&&y.jsx("div",{style:{position:"absolute",zIndex:"var(--volter-z-dropdown)",top:"100%",left:0,marginTop:4},children:y.jsx(pt,{value:t,onChange:e,onChangeEnd:o,onClose:()=>f(!1),recentColors:c,onAddRecentColor:i,eyedropperFallback:l,onEyedropperPick:p})})]})}function rt(n){return Math.max(0,Math.min(1,n))}function O(n,t,e){return rt(e?(n-t)/e:0)}function ht(n,t,e){return rt(e?1-(n-t)/e:0)}function bt(n){return/^#[0-9a-fA-F]{6}$/.test(n)?P(n):null}function mt(n){const t=n.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);if(!t)return null;const[,e,o,c,i]=t;return{r:Number.parseInt(e??"0",10),g:Number.parseInt(o??"0",10),b:Number.parseInt(c??"0",10),a:i?Number.parseFloat(i):1}}function gt(n){const t=n.match(/hsla?\((\d+),\s*(\d+)%?,\s*(\d+)%?(?:,\s*([\d.]+))?\)/);if(!t)return null;const[,e,o,c,i]=t,[l,p,u]=et(Number.parseInt(e??"0",10)/360,Number.parseInt(o??"0",10)/100,Number.parseInt(c??"0",10)/100);return{r:l,g:p,b:u,a:i?Number.parseFloat(i):1}}export{wt as C,pt as a,P as h,A as p,vt as r,z as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n}from"./jsx-runtime-DPjLkJKQ.js";import{t as f}from"./editor-shell-store-
|
|
1
|
+
import{a as n}from"./jsx-runtime-DPjLkJKQ.js";import{t as f}from"./editor-shell-store-CV73gQk5.js";import{U as d,al as v}from"./index-D9shXtZ9.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as S}from"./live-mixers-B-bwLZ7c.js";import{b as h,e as b,f as x}from"./asset-preview-uRqIcg3G.js";import{O as j}from"./StageHost-dHitOcUe.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-BVicagU1.js";import"./workspace-arrangement-BOk46mGq.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-DHB4MWum.js";import"./entity-object-DTQ4I2K5.js";import"./three-contract-Dkt6PmWY.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./studio-environment-CvCEc6PK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./three-state-d-szeOea.js";import"./standard-viewport-dressing-4xAZCGJ3.js";import"./content-bounds-UvcUv1DD.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-C1onOQwq.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-MdBIQeUt.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-Bp-1yQ-X.js";import"./object3d-document-session-registry-bor-eSgr.js";import"./component-instance-root-BrRLxTKu.js";import"./viewport-door-DkDcO9tp.js";import"./model-inspection-Bsfj6b48.js";import"./three-viewport-presentation-D1ysWIW4.js";import"./clip-planes-CnAI6DZn.js";import"./three-Do16bEo9.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-BSvegpi4.js";import"./source-object3d-authoring-adapter-BJwLQVsv.js";import"./three-projection-core-1FETWj5n.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-D4N14xHx.js";import"./viewport-surface-status-HKbJtC2G.js";function w(e){const t=new Set;return e.traverse(i=>{const r=S(i);if(r)for(const o of r.clips.values())t.add(o);for(const o of i.animations)t.add(o)}),[...t]}function E({documentId:e,source:t,sourcePath:i,displayName:r,active:o,chromeless:p=!1,revision:m=0,modelSource:a}){const u=l.useCallback(()=>{const s=h(b(t)),c=w(t);return s.animations=[...c],{root:s,animations:c,dispose(){x(s)}}},[t,m]);return n.jsx(j,{documentId:e,sourcePath:i??r,displayName:r,build:u,active:o,chromeless:p,rendererLane:p?"inspector-preview":"own",assetType:"entity",...a?{modelSource:a}:{}})}function Vt({documentId:e,entityId:t,displayName:i,active:r}){const o=f(d()),p=l.useSyncExternalStore(o.shell.subscribe,o.shell.getSnapshot),m=o.objectMap.get(t);return m?n.jsx(E,{documentId:e,source:m,sourcePath:`Entity ${t}`,displayName:i,active:r,revision:p,modelSource:{kind:"entity",entityId:t}}):n.jsxs("div",{role:"alert",style:{padding:20,color:v.semantic.danger},children:["Scene entity ",t," is no longer available."]})}export{Vt as EntityModelDocument,E as Object3DSnapshotDocument};
|
package/dist/assets/{EnvironmentAssetDocument-BgO7Hl3g.js → EnvironmentAssetDocument-BqTeI8cz.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{dR as M,dS as C,dT as D,dU as k,al as y,b5 as R,dV as b}from"./index-
|
|
1
|
+
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{dR as M,dS as C,dT as D,dU as k,al as y,b5 as R,dV as b}from"./index-D9shXtZ9.js";import{r as f}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{W as A}from"./three.module-BLhyNg0e.js";import{OrbitControls as P}from"./OrbitControls-B13MKuwC.js";import{E as z}from"./EXRLoader-CITMBvGd.js";import{HDRLoader as T}from"./HDRLoader-BTGuGhVo.js";import{s as I}from"./asset-editor-persistence-D2o6zb5I.js";import{aT as L,ej as O,A as B,el as F,d9 as H,_ as G,db as $,cp as N,co as E,cx as j,ey as S,X as _,cj as q}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";function U(e){return e.split("/").pop()??e}function v(e,t,r){return Math.min(r,Math.max(t,e))}function X(e){return e.split(/[?#]/,1)[0].toLowerCase().endsWith(".exr")}async function W(e){const t=X(e)?"EXR":"HDR",s=await(t==="EXR"?new z:new T).loadAsync(e),p=s.image,n=p.width??0,a=p.height??0,c=n>0&&a>0&&Math.abs(n/a-2)<=.04;return s.mapping=L,s.needsUpdate=!0,{texture:s,width:n,height:a,format:t,panorama:c}}function V(e){const t=new F,r=new H(38,1,.05,100);r.position.set(6.2,3.4,7.8),r.lookAt(0,.7,0);const s=[],p=[];if(!e.panorama){t.background=new G("#11141b");const i=e.width>0&&e.height>0?e.width/e.height:1,d=new $(i>=1?4.8:4.8*i,i>=1?4.8/i:4.8),m=new N({map:e.texture,toneMapped:!0});return s.push(d),p.push(m),t.add(new E(d,m)),r.position.set(0,0,6.5),r.lookAt(0,0,0),{scene:t,camera:r,geometries:s,materials:p}}t.background=e.texture,t.environment=e.texture;const n=(i,d,m)=>{s.push(i),p.push(d);const x=new E(i,d);x.position.set(...m),t.add(x)};n(new S(1,64,40),new j({color:"#d8dde5",roughness:.08,metalness:1}),[-2.3,1.15,0]),n(new S(1,64,40),new j({color:"#c97341",roughness:.32,metalness:.25}),[0,1.15,0]),n(new S(1,64,40),new j({color:"#d7d5cf",roughness:.82,metalness:0}),[2.3,1.15,0]);const a=new _(5.7,96),c=new j({color:"#737881",roughness:.58,metalness:0});s.push(a),p.push(c);const l=new E(a,c);return l.rotation.x=-Math.PI/2,l.position.y=.08,t.add(l),{scene:t,camera:r,geometries:s,materials:p}}function J({image:e,settingsRef:t}){const r=f.useRef(null);return f.useEffect(()=>{const s=r.current;if(!s)return;let p=!1,n=0;const a=document.createElement("canvas");a.setAttribute("aria-label",`${e.format} environment preview`),a.style.width="100%",a.style.height="100%",a.style.display="block",s.replaceChildren(a);const c=new A({canvas:a,antialias:!0});c.outputColorSpace=O,c.toneMapping=B;const l=V(e),i=new P(l.camera,a);i.target.set(0,e.panorama?.8:0,0),i.enableDamping=!0,i.enablePan=!1,i.minDistance=e.panorama?3.8:4,i.maxDistance=e.panorama?14:10,i.update();const d={width:1,height:1},m=()=>{const u=t.current;if(c.toneMappingExposure=v(u.exposure,.05,8),e.panorama){const h=q.degToRad(u.rotation);l.scene.backgroundRotation.y=h,l.scene.environmentRotation.y=h,l.scene.backgroundBlurriness=v(u.blur,0,1),l.scene.environmentIntensity=v(u.intensity,0,8)}i.update(),c.render(l.scene,l.camera)},x=()=>{const u=s.getBoundingClientRect();d.width=Math.max(1,Math.floor(u.width)),d.height=Math.max(1,Math.floor(u.height)),c.setPixelRatio(Math.min(window.devicePixelRatio||1,2)),c.setSize(d.width,d.height,!1),l.camera.aspect=d.width/d.height,l.camera.updateProjectionMatrix(),m()};x();const w=new ResizeObserver(x);w.observe(s);const g=()=>{p||(m(),n=requestAnimationFrame(g))};return n=requestAnimationFrame(g),()=>{p=!0,cancelAnimationFrame(n),w.disconnect(),i.dispose();for(const u of l.geometries)u.dispose();for(const u of l.materials)u.dispose();c.dispose(),a.remove()}},[e,t]),o.jsx("div",{ref:r,"data-testid":"environment-preview",style:{width:"100%",height:"100%",minHeight:260,background:"#11141b"}})}function K({panorama:e,settings:t,onChange:r}){return o.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:4},children:[o.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11},children:["Exposure",o.jsx(b,{value:t.exposure,onChange:s=>r({...t,exposure:v(s,.05,8)}),step:.05,precision:2})]}),e&&o.jsxs(o.Fragment,{children:[o.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11},children:["Lighting intensity",o.jsx(b,{value:t.intensity,onChange:s=>r({...t,intensity:v(s,0,8)}),step:.05,precision:2})]}),o.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11},children:["Rotation",o.jsx(b,{value:t.rotation,onChange:s=>r({...t,rotation:s%360}),step:1,precision:0})]}),o.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11},children:["Background blur",o.jsx(b,{value:t.blur,onChange:s=>r({...t,blur:v(s,0,1)}),step:.05,precision:2})]})]}),o.jsx("div",{style:{color:y.content.muted,fontSize:10,lineHeight:1.45},children:"Preview controls are session-only. Bind the image, orientation, and accepted intensity in the owning scene source."})]})}function pe({documentId:e,assetPath:t,active:r=!0}){const[s,p]=f.useState(0),[n,a]=f.useState(null),[c,l]=f.useState(null),[i,d]=f.useState({exposure:1,intensity:1,rotation:0,blur:0}),m=f.useRef(i);m.current=i,f.useEffect(()=>{if(r)return I(t,()=>p(g=>g+1))},[r,t]),f.useEffect(()=>{if(!r)return;let g=!1,u=null;return a(null),l(null),W(t).then(h=>{if(u=h,g){h.texture.dispose();return}a(h)},h=>{g||l(h instanceof Error?h.message:String(h))}),()=>{g=!0,u?.texture.dispose()}},[r,t,s]);const x=f.useMemo(()=>[{id:"environment-image",title:"Environment Image",icon:C,order:M,body:{kind:"custom",...n?{data:{format:n.format,width:n.width,height:n.height,panorama:n.panorama}}:{},render:()=>o.jsxs("div",{style:{display:"grid",gridTemplateColumns:"auto 1fr",gap:"6px 10px"},children:[o.jsx("span",{style:{color:y.content.muted},children:"Format"}),o.jsx("span",{children:n?.format??"—"}),o.jsx("span",{style:{color:y.content.muted},children:"Resolution"}),o.jsx("span",{children:n?`${n.width} × ${n.height}`:"—"}),o.jsx("span",{style:{color:y.content.muted},children:"Projection"}),o.jsx("span",{children:n?.panorama?"2:1 equirectangular":"Flat image"})]})}},{id:"environment-preview-settings",title:"Preview",icon:k,order:D,body:{kind:"custom",data:{...i},render:()=>o.jsx(K,{panorama:n?.panorama??!1,settings:i,onChange:d})}}],[n,i]),w=U(t);return c?o.jsx(R,{documentId:e,active:r,type:"environment image",title:w,status:"HDR image unavailable",children:o.jsx("div",{role:"alert",style:{padding:20,color:y.semantic.danger},children:c})}):n?o.jsx(R,{documentId:e,active:r,type:"environment image",title:w,sections:x,status:`${n.format} · ${n.width} × ${n.height}`,fill:!0,children:o.jsxs("div",{style:{position:"relative",width:"100%",height:"100%",minHeight:0},children:[o.jsx(J,{image:n,settingsRef:m}),o.jsx("div",{style:{position:"absolute",left:12,bottom:12,padding:"4px 7px",borderRadius:4,background:"rgba(12,14,20,0.72)",color:"#f2f4f8",fontSize:10,pointerEvents:"none"},children:n.panorama?"Drag to orbit · wheel to frame":"Non-2:1 image · flat preview"})]})}):o.jsx(R,{documentId:e,active:r,type:"environment image",title:w,status:"Loading HDR image",children:o.jsx("div",{style:{padding:20,color:y.content.muted},children:"Loading environment…"})})}export{pe as EnvironmentAssetDocument};
|
package/dist/assets/{GameplaySessionTimeline-BBmwHCKA.js → GameplaySessionTimeline-FqH6Sz1y.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as c}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{fv as d,fw as M,dq as f,al as o,et as F}from"./index-
|
|
1
|
+
import{a as r}from"./jsx-runtime-DPjLkJKQ.js";import{r as c}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{fv as d,fw as M,dq as f,al as o,et as F}from"./index-D9shXtZ9.js";import{c as $}from"./gameplay-replay-k_14DJ5F.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./rrweb-Cd2ifIRP.js";import"./output-DK8waum9.js";function T(t,u,p){return Math.max(0,t+p-(u??t))}function y(t){const u=Math.max(0,Math.floor(t/1e3)),p=Math.floor(u/60),i=u%60;return`${p}:${String(i).padStart(2,"0")}`}function q(){const t=c.useSyncExternalStore(d.subscribe,d.getSnapshot,d.getSnapshot),u=c.useRef(null),p=c.useRef(null),[i,j]=c.useState(null),v=c.useSyncExternalStore(M.subscribe,M.getSnapshot,M.getSnapshot),a=t.selectedSession,n=a?.recording?.finalized?a.recording:null,[b,S]=c.useState(null),A=c.useRef(Promise.resolve());c.useEffect(()=>{if(S(null),!n||n.format!=="canvas-dom"||!n.replay||!i)return;let e=!1;const s=n.replay,l=T(a?.startedAt??0,n.startedAt??a?.startedAt??0,i.ms),w=setTimeout(()=>{A.current=A.current.catch(()=>{}).then(async()=>{if(!e)try{const g=await $(s,l);e||S({src:`data:image/png;base64,${g.base64}`})}catch(g){e||S({error:g instanceof Error?g.message:String(g)})}})},180);return()=>{e=!0,clearTimeout(w)}},[n?.replay,n?.format,n?.startedAt,i?.ms,a?.startedAt]);const E=v?Date.parse(v.startedAt):Number.NaN,m=a?.status==="live"&&v&&Number.isFinite(E)&&E>=a.startedAt?v:null,h=a&&i?a.startedAt+i.ms:null,x=m&&h!==null?m.frames.reduce((e,s)=>{const l=Date.parse(s.capturedAt);return Number.isFinite(l)?e?Math.abs(l-h)<Math.abs(Date.parse(e.capturedAt)-h)?s:e:s:e},null)??null:null,k=x?Date.parse(x.capturedAt):Number.NaN,z=x&&h!==null&&Number.isFinite(k)&&Math.abs(k-h)<=Math.max(1e3,2e3/(m?.sampleFps??1))?x:null;function R(e,s){if(!Number.isFinite(e.duration))return;const l=a?.startedAt??0,w=T(l,n?.startedAt??l,s.ms);e.currentTime=Math.min(w/1e3,Math.max(0,e.duration-.01))}c.useEffect(()=>{const e=p.current;!e||!i||R(e,i)},[i,n?.startedAt,a?.startedAt]);function N(e){const s=u.current?.getBoundingClientRect();if(!s||s.width<=0)return{ms:0,x:0};const l=Math.max(0,Math.min(e-s.left,s.width));return{ms:l/s.width*t.liveEdgeMs,x:l}}return t.loading&&t.sessions.length===0?r.jsx("div",{style:{padding:`4px ${f[3]}`,fontSize:11},children:"Loading sessions…"}):t.error&&t.sessions.length===0?r.jsxs("div",{role:"alert",style:{padding:`4px ${f[3]}`,fontSize:11,color:o.semantic.danger},children:["Gameplay Sessions unavailable: ",t.error]}):r.jsxs("div",{style:{height:28,minHeight:28,display:"flex",alignItems:"center",gap:f[2],padding:`0 ${f[3]}`,borderBottom:`1px solid ${o.boundary.default}`,background:o.surface.inset,position:"relative",zIndex:2},children:[r.jsxs("select",{"aria-label":"Gameplay Session",value:t.selectedSessionId??"",onChange:e=>d.select(e.currentTarget.value),style:{maxWidth:180,height:20,fontSize:11},children:[t.sessions.length===0?r.jsx("option",{value:"",children:"No sessions yet"}):null,t.sessions.map((e,s)=>r.jsx("option",{value:e.id,children:e.status==="live"?"Live":e.run??`Session ${t.sessions.length-s}`},e.id))]}),r.jsx("span",{style:{width:34,fontVariantNumeric:"tabular-nums",fontSize:11},children:y(t.cursorMs)}),r.jsxs("div",{ref:u,role:"slider","aria-label":"Session time","aria-valuemin":0,"aria-valuemax":t.liveEdgeMs,"aria-valuenow":t.cursorMs,tabIndex:0,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),d.seek(N(e.clientX).ms)},onPointerMove:e=>{const s=N(e.clientX);j(s),e.currentTarget.hasPointerCapture(e.pointerId)&&d.seek(s.ms)},onPointerLeave:()=>j(null),onKeyDown:e=>{e.key==="ArrowLeft"&&d.seek(t.cursorMs-1e3),e.key==="ArrowRight"&&d.seek(t.cursorMs+1e3)},style:{flex:1,height:12,position:"relative",cursor:"ew-resize",outline:"none"},children:[r.jsx("div",{style:{position:"absolute",left:0,right:0,top:5,height:2,background:o.boundary.strong}}),r.jsx("div",{style:{position:"absolute",left:`${t.liveEdgeMs>0?t.cursorMs/t.liveEdgeMs*100:0}%`,top:1,width:2,height:10,background:o.accent.default}}),i&&(n||m)?r.jsxs("div",{style:{position:"absolute",left:Math.max(0,i.x-80),top:16,width:160,padding:3,background:o.surface.raised,border:`1px solid ${o.boundary.strong}`,boxShadow:"0 6px 18px rgba(0,0,0,.35)",pointerEvents:"none"},children:[n?.format==="canvas-dom"?b?.src?r.jsx("img",{src:b.src,alt:"Recorded gameplay with HUD",style:{width:"100%",display:"block"}}):r.jsx("div",{role:"status",style:{padding:f[4],fontSize:F.sm},children:b?.error??"Reconstructing frame…"}):n?r.jsx("video",{ref:p,src:n.url,muted:!0,preload:"metadata",onLoadedMetadata:e=>{i&&R(e.currentTarget,i)},style:{width:"100%",display:"block"}}):z?r.jsx("img",{src:z.src,alt:"Live gameplay recording preview",style:{width:"100%",display:"block"}}):r.jsx("div",{style:{padding:8,fontSize:10,color:o.content.muted},children:m?.frames.length===0?"Frame previews are available after recording stops.":`This point is outside the ${y(m?.retentionMs??0)} live preview window.`}),r.jsx("div",{style:{fontSize:10,textAlign:"center",paddingTop:2},children:y(i.ms)})]}):null]}),r.jsx("span",{style:{width:34,fontVariantNumeric:"tabular-nums",fontSize:11},children:y(t.liveEdgeMs)}),a?.status==="live"?r.jsxs("span",{style:{color:o.semantic.danger,fontSize:10},children:["● LIVE",m?" VIDEO":""]}):n?r.jsx("span",{style:{fontSize:10,color:o.content.muted},children:"VIDEO"}):null,t.error?r.jsx("span",{role:"status",title:t.error,style:{color:o.semantic.warning,fontSize:11},children:"⚠"}):null]})}export{q as GameplaySessionTimeline};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as o}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{aV as W,aW as H,aX as B,aY as M,aL as v,a6 as P,aZ as h,a_ as F}from"./index-
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as o}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{aV as W,aW as H,aX as B,aY as M,aL as v,a6 as P,aZ as h,a_ as F}from"./index-D9shXtZ9.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";function q({assetPath:n,displayName:l}){const{sheetPath:i,frameName:t}=W(n),a=`/${i}`,[s,r]=o.useState(null),[x,p]=o.useState(t),[m,u]=o.useState("fit"),[j,I]=o.useState(null),w=o.useRef(null),[y,N]=o.useState({w:320,h:240}),f=x??t,g=f?s?.frames.find(c=>c.name===f)??null:null;o.useEffect(()=>{p(t),u("fit")},[t]),o.useEffect(()=>{if(!t){r(null);return}let c=!1;return fetch(`/${H(i)}`).then(d=>d.ok?d.text():null).then(d=>{c||!d||r(B(d))}).catch(()=>{c||r(null)}),()=>{c=!0}},[t,i]),o.useEffect(()=>{const c=w.current;if(!c)return;const d=new ResizeObserver(R=>{const S=R[0]?.contentRect;S&&N({w:Math.max(1,S.width-24),h:Math.max(1,S.height-24)})});return d.observe(c),()=>d.disconnect()},[]);const b=g?.sourceWidth??j?.w??0,$=g?.sourceHeight??j?.h??0,k=M(m,b,$,y.w,y.h),E=l??f??i.split("/").pop()??n;return e.jsxs("div",{"data-testid":"image-asset-document",style:{height:"100%",minHeight:240,display:"flex",flexDirection:"column",minWidth:0},children:[e.jsx(z,{title:E,srcWidth:b,srcHeight:$,scaleMode:m,scale:k,onScaleMode:u}),e.jsx(C,{stageRef:w,frameName:t,frame:g,sheet:s,sheetUrl:a,title:E,scale:k,onNatural:I}),s&&s.frames.length>1?e.jsx(L,{sheetUrl:a,frames:s.frames,activeName:f,onPick:p}):null]})}function z({title:n,srcWidth:l,srcHeight:i,scaleMode:t,scale:a,onScaleMode:s}){return e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:6,padding:"6px 8px"},children:[e.jsx(v,{tone:"dim",variant:"label",children:n}),l>0&&e.jsxs(v,{tone:"muted",variant:"code",children:[l," × ",i,t==="fit"?` · ${O(a)}`:""]}),e.jsx("span",{style:{flex:1}}),[1,4,8,"fit"].map(r=>e.jsx(P,{type:"button",size:"compact",shape:"segment","aria-pressed":t===r,variant:t===r?"primary":"secondary",onClick:()=>s(r),children:r==="fit"?"Fit":`${r}×`},String(r)))]})}function C({stageRef:n,frameName:l,frame:i,sheet:t,sheetUrl:a,title:s,scale:r,onNatural:x}){let p;return l&&!i?p=e.jsx(v,{tone:"muted",variant:"body",children:t?`No sprite named ${l}`:"Loading sprite…"}):i?p=e.jsx(F,{sheetUrl:a,frame:i,scale:r}):p=e.jsx("img",{src:a,alt:s,style:{imageRendering:"pixelated",display:"block",transform:`scale(${r})`,transformOrigin:"center center"},onLoad:m=>{const u=m.currentTarget;x({w:u.naturalWidth,h:u.naturalHeight})}}),e.jsx("div",{ref:n,className:"volter-asset-transparency-well","data-testid":"sprite-stage",style:{flex:1,minHeight:0,display:"flex",alignItems:"center",justifyContent:"center",overflow:"auto"},children:p})}function L({sheetUrl:n,frames:l,activeName:i,onPick:t}){return e.jsx("div",{"data-testid":"sprite-filmstrip",style:{display:"flex",gap:6,overflowX:"auto",padding:"8px 8px 10px",borderTop:`1px solid ${h[3]}`},children:l.map(a=>{const s=a.name===i;return e.jsxs("button",{type:"button",title:a.name,"aria-pressed":s,onClick:()=>t(a.name),style:{border:s?`1px solid ${h[1]}`:"1px solid transparent",background:"transparent",padding:2,cursor:"pointer",flex:"0 0 auto"},children:[e.jsx(F,{sheetUrl:n,frame:a,maxEdge:40}),e.jsx("div",{style:{fontSize:9,color:s?h[1]:h[3],maxWidth:56,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:a.name})]},a.name)})})}function O(n){return n>=1?`${n}×`:`1/${Math.round(1/n)}×`}export{q as ImageViewer};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-D4IbBjti.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-CV73gQk5.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-BVicagU1.js";import"./workspace-arrangement-BOk46mGq.js";import"./index-D9shXtZ9.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-DHB4MWum.js";import"./entity-object-DTQ4I2K5.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-uRqIcg3G.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./studio-environment-CvCEc6PK.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./StageHost-dHitOcUe.js";import"./three-state-d-szeOea.js";import"./standard-viewport-dressing-4xAZCGJ3.js";import"./content-bounds-UvcUv1DD.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-C1onOQwq.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-MdBIQeUt.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-Bp-1yQ-X.js";import"./object3d-document-session-registry-bor-eSgr.js";import"./component-instance-root-BrRLxTKu.js";import"./viewport-door-DkDcO9tp.js";import"./model-inspection-Bsfj6b48.js";import"./three-viewport-presentation-D1ysWIW4.js";import"./clip-planes-CnAI6DZn.js";import"./three-Do16bEo9.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-BSvegpi4.js";import"./source-object3d-authoring-adapter-BJwLQVsv.js";import"./three-projection-core-1FETWj5n.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-D4N14xHx.js";import"./viewport-surface-status-HKbJtC2G.js";function ut({previewKey:o,object:r,displayName:i,fill:p=!1}){return t.jsx("div",{"data-testid":"inspector-object-preview",style:p?{position:"absolute",inset:0,overflow:"hidden"}:{width:"100%",height:220,minHeight:220,borderBottom:"1px solid var(--volter-structural-divider)",overflow:"hidden",position:"relative"},children:t.jsx(m,{documentId:`inspector-preview:${o}`,source:r,displayName:i,active:!0,chromeless:!0})})}export{ut as InspectorObjectPreview};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DgapqSPi.js","assets/index-BP6wv2A0.js","assets/index-CJbYy-CF.js","assets/index-CanA16PU.js","assets/index-Bge9JUr6.js","assets/index-gHZae-lw.js","assets/index-BncK9THk.js","assets/index-IEjydI9d.js","assets/index-DUqP1RMl.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a}from"./jsx-runtime-DPjLkJKQ.js";import{r as m}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{al as t,_ as b,h8 as z,aU as F,h9 as M,b5 as J}from"./index-ClgrFOcX.js";const P={ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"typescript",jsx:"typescript",mjs:"typescript",cjs:"typescript",json:"json",jsonc:"json",json5:"json"};function re(e){const o=e.split("/").pop()??e,n=o.lastIndexOf(".");return n<0?"text":P[o.slice(n+1).toLowerCase()]??"text"}let T=null;function W(){return T??=Promise.all([b(()=>import("./index-BP6wv2A0.js"),[]),b(()=>import("./index-DgapqSPi.js").then(e=>e.i),__vite__mapDeps([0,1])),b(()=>import("./index-CJbYy-CF.js").then(e=>e.w),__vite__mapDeps([2,1,0])),b(()=>import("./index-CanA16PU.js"),__vite__mapDeps([3,0,1])),b(()=>import("./index-Bge9JUr6.js"),__vite__mapDeps([4,1,0,2])),b(()=>import("./index-gHZae-lw.js"),__vite__mapDeps([5,6,2,1,0])),b(()=>import("./index-IEjydI9d.js"),__vite__mapDeps([7,6,2,1,0])),b(()=>import("./index-DUqP1RMl.js"),__vite__mapDeps([8,0,1,2]))]).then(([e,o,n,r,c,s,l,d])=>({state:e,view:o,language:n,search:r,commands:c,javascript:s,json:l,oneDark:d})),T}function S(e){return typeof e=="number"?`${e}px`:e}function R(e){return typeof e=="string"&&e.trim().endsWith("%")}function U(e,o){let n=0;for(;n<e.length&&n<o.length&&e[n]===o[n];)n++;let r=e.length,c=o.length;for(;r>n&&c>n&&e[r-1]===o[c-1];)r--,c--;return{from:n,oldEnd:r,newEnd:c}}const L=1800,k=`color-mix(in srgb, ${t.semantic.warning} 42%, transparent)`,C=`color-mix(in srgb, ${t.semantic.warning} 18%, transparent)`;function G(e){class o extends e.view.WidgetType{constructor(s){super(),this.revision=s}eq(s){return this.revision===s.revision}toDOM(){const s=document.createElement("span");return s.className=`cm-source-deletion cm-source-change cm-source-change-${this.revision%2}`,s.setAttribute("aria-hidden","true"),s}}const n=e.state.StateEffect.define(),r=e.state.StateField.define({create:()=>e.view.Decoration.none,update(c,s){let l=c.map(s.changes);for(const d of s.effects){if(!d.is(n))continue;if(!d.value){l=e.view.Decoration.none;continue}const{from:f,to:i,revision:y}=d.value,g=f===i?e.view.Decoration.widget({widget:new o(y),side:-1}).range(f):e.view.Decoration.mark({class:`cm-source-change cm-source-change-${y%2}`}).range(f,i);l=e.view.Decoration.set([g])}return l},provide:c=>e.view.EditorView.decorations.from(c)});return{mark:n,field:r}}function K(e,o,n){return e.view.EditorView.theme({"&":{color:t.content.primary,backgroundColor:"transparent",fontSize:`${o}px`,...R(n)?{height:S(n)}:{}},"&.cm-focused":{outline:"none"},".cm-content":{fontFamily:t.typography.mono,padding:"2px 0",caretColor:"transparent"},".cm-scroller":{fontFamily:t.typography.mono,lineHeight:"1.5",overflow:"auto",...n===void 0?{}:{maxHeight:S(n)}},".cm-gutters":{backgroundColor:"transparent",color:t.content.dim,border:"none",userSelect:"none"},".cm-lineNumbers .cm-gutterElement":{padding:"0 8px 0 4px",minWidth:"2ch"},".cm-content ::selection":{backgroundColor:t.selection.background},".cm-panels":{backgroundColor:t.surface.raised,color:t.content.primary,border:"none",fontFamily:t.typography.sans},".cm-panels.cm-panels-top":{borderBottom:`1px solid ${t.boundary.default}`},".cm-textfield":{backgroundColor:t.surface.inset,color:t.content.primary,border:`1px solid ${t.boundary.default}`,borderRadius:t.shape.small},".cm-button":{backgroundColor:t.surface.raised,backgroundImage:"none",color:t.content.primary,border:`1px solid ${t.boundary.default}`,borderRadius:t.shape.small},".cm-searchMatch":{backgroundColor:t.accent.muted},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:t.accent.default,color:t.content.onAccent},".cm-source-change":{backgroundColor:k,borderRadius:"2px"},".cm-line:has(.cm-source-change)":{backgroundColor:C},".cm-source-change, .cm-line:has(.cm-source-change)":{animationDuration:`${L}ms`,animationTimingFunction:"ease-out",animationFillMode:"forwards"},".cm-source-deletion":{display:"inline-block",width:"0",position:"relative"},".cm-source-deletion::after":{content:'""',position:"absolute",left:"-2px",bottom:"0",width:"4px",height:"1em",backgroundColor:"inherit",borderRadius:"2px"},".cm-source-change-0":{animationName:"volter-source-change-even"},".cm-source-change-1":{animationName:"volter-source-change-odd"},".cm-line:has(.cm-source-change-0)":{animationName:"volter-source-line-even"},".cm-line:has(.cm-source-change-1)":{animationName:"volter-source-line-odd"},"@keyframes volter-source-line-even":{"0%, 40%":{backgroundColor:C},"100%":{backgroundColor:"transparent"}},"@keyframes volter-source-line-odd":{"0%, 40%":{backgroundColor:C},"100%":{backgroundColor:"transparent"}},"@keyframes volter-source-change-even":{"0%, 40%":{backgroundColor:k},"100%":{backgroundColor:"transparent"}},"@keyframes volter-source-change-odd":{"0%, 40%":{backgroundColor:k},"100%":{backgroundColor:"transparent"}},"@media (prefers-reduced-motion: reduce)":{".cm-source-change, .cm-line:has(.cm-source-change)":{animation:"none"}},".cm-matchingBracket, &.cm-focused .cm-matchingBracket":{backgroundColor:t.neutralOverlay.active,outline:`1px solid ${t.boundary.strong}`}},{dark:!0})}function H(e,o,n,r){const c=o==="typescript"?[e.javascript.javascript({typescript:!0,jsx:!0})]:o==="json"?[e.json.json()]:[];return[e.view.lineNumbers(),e.view.highlightSpecialChars(),e.language.bracketMatching(),e.language.syntaxHighlighting(e.oneDark.oneDarkHighlightStyle),e.search.search({top:!0}),e.view.keymap.of([...e.commands.standardKeymap,...e.search.searchKeymap]),e.view.EditorView.lineWrapping,e.state.EditorState.readOnly.of(!0),e.view.EditorView.editable.of(!1),e.view.EditorView.contentAttributes.of({tabindex:"0"}),...c,K(e,n,r)]}function q({value:e,language:o,fontSize:n=11,maxHeight:r,ariaLabel:c,followChanges:s=!1}){const l=m.useRef(null),d=m.useRef(null),f=m.useRef(null),i=m.useRef(null),y=m.useRef(0),g=m.useRef(e);g.current=e;const[p,I]=m.useState(null),[N,$]=m.useState(!1);m.useEffect(()=>{let u=!1;return W().then(h=>{u||I(h)},()=>{u||$(!0)}),()=>{u=!0}},[]),m.useEffect(()=>{const u=l.current;if(!u||!p)return;const h=G(p),w=new p.view.EditorView({parent:u,state:p.state.EditorState.create({doc:g.current,extensions:[H(p,o,n,r),h.field]})});return d.current=w,f.current=h,()=>{i.current!==null&&clearTimeout(i.current),i.current=null,f.current=null,d.current=null,w.destroy()}},[p,o,n,r]),m.useEffect(()=>{const u=d.current;if(!u)return;const h=u.state.toText(e).toString(),w=u.state.doc.toString();if(w===h)return;const{from:x,oldEnd:B,newEnd:D}=U(w,h),O=u.state.changes({from:x,to:B,insert:h.slice(x,D)}),v=f.current,E=[];if(s&&p&&v){const _=u.coordsAtPos(x),j=u.scrollDOM.getBoundingClientRect(),A=_&&_.top>=j.top&&_.bottom<=j.bottom&&_.left>=j.left&&_.right<=j.right?u.scrollSnapshot().map(O):p.view.EditorView.scrollIntoView(x,{y:"nearest",x:"nearest"});A&&E.push(A),E.push(v.mark.of({from:x,to:D,revision:++y.current}))}else v&&E.push(v.mark.of(null));u.dispatch({changes:O,effects:E}),i.current!==null&&clearTimeout(i.current),i.current=null,s&&v&&(i.current=setTimeout(()=>{d.current===u&&u.dispatch({effects:v.mark.of(null)}),i.current=null},L))},[e,s,p]);const V=R(r)?{height:"100%",minHeight:0}:{};return p?a.jsx("div",{ref:l,role:"group","aria-label":c,style:{minWidth:0,...V}}):a.jsxs("div",{role:"group","aria-label":c,style:{minWidth:0,...V},children:[N&&a.jsx("div",{style:{color:t.semantic.warning,fontSize:10,marginBottom:4},children:"Syntax highlighting failed to load — showing plain text."}),a.jsx("pre",{style:{margin:0,fontFamily:t.typography.mono,fontSize:n,lineHeight:1.5,color:t.content.primary,whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto",...r===void 0?{}:{maxHeight:S(r)},...R(r)?{height:S(r)}:{}},children:e})]})}const X={fontSize:11,color:t.content.muted,marginBottom:2};function Y({assetPath:e}){const[o,n]=m.useState(null),[r,c]=m.useState("json"),[s,l]=m.useState(!1),d=e.split("/").pop()??e;return m.useEffect(()=>{let f=!1;return n(null),l(!1),fetch(z(e)).then(i=>i.text()).then(i=>{try{const y=JSON.parse(i);f||(c("json"),n(JSON.stringify(y,null,2)))}catch{f||(c("text"),n(i))}}).catch(()=>{f||l(!0)}),()=>{f=!0}},[e]),a.jsxs("div",{style:{padding:8,display:"flex",flexDirection:"column",gap:8},children:[a.jsx("div",{style:{fontWeight:600,fontSize:12,color:t.content.primary,wordBreak:"break-all"},children:d}),a.jsx("div",{className:"volter-content-frost",style:{border:`1px solid ${t.boundary.default}`,borderRadius:t.shape.small,padding:8,overflow:"hidden",maxHeight:500},children:s?a.jsx("span",{style:{color:t.semantic.danger,fontSize:11},children:"Failed to load file"}):o===null?a.jsx("span",{style:{color:t.content.muted,fontSize:11},children:"Loading..."}):a.jsx(q,{value:o,language:r,fontSize:10,maxHeight:484,ariaLabel:`Contents of ${d}`})}),a.jsx(F,{label:"Info",defaultOpen:!1,children:a.jsxs("div",{children:[a.jsx("div",{style:X,children:"Path"}),a.jsx("div",{style:{fontSize:11,color:t.content.primary,wordBreak:"break-all"},children:e})]})})]})}function Q({documentId:e,assetPath:o,displayName:n,active:r,sections:c,status:s}){const[l,d]=m.useState({kind:"loading"}),f=M();if(m.useEffect(()=>{if(!r){d({kind:"loading"});return}const i=new AbortController;return d({kind:"loading"}),(async()=>{for(const g of f){const p=await g.recognize(o,i.signal);if(p!==null)return{kind:"content",viewer:g,content:p}}return{kind:"generic"}})().then(g=>{i.signal.aborted||d(g)},g=>{i.signal.aborted||d({kind:"error",message:g instanceof Error?g.message:String(g)})}),()=>i.abort()},[r,o,f]),l.kind==="content"){const{Viewer:i}=l.viewer;return a.jsx(i,{documentId:e,assetPath:o,displayName:n,active:r,content:l.content})}return a.jsx(J,{documentId:e,active:r,type:"json",title:n,sections:c,status:s,children:l.kind==="loading"?a.jsxs("div",{style:{padding:20,color:t.content.muted},children:["Inspecting ",n,"…"]}):l.kind==="error"?a.jsx("div",{role:"alert",style:{padding:20,color:t.semantic.danger},children:l.message}):a.jsx(Y,{assetPath:o})})}const ie=Object.freeze(Object.defineProperty({__proto__:null,JsonAssetDocument:Q},Symbol.toStringTag,{value:"Module"}));export{q as C,Q as J,ie as a,re as c};
|
|
2
|
+
import{a}from"./jsx-runtime-DPjLkJKQ.js";import{r as m}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{al as t,_ as b,h8 as z,aU as F,h9 as M,b5 as J}from"./index-D9shXtZ9.js";const P={ts:"typescript",tsx:"typescript",mts:"typescript",cts:"typescript",js:"typescript",jsx:"typescript",mjs:"typescript",cjs:"typescript",json:"json",jsonc:"json",json5:"json"};function re(e){const o=e.split("/").pop()??e,n=o.lastIndexOf(".");return n<0?"text":P[o.slice(n+1).toLowerCase()]??"text"}let T=null;function W(){return T??=Promise.all([b(()=>import("./index-BP6wv2A0.js"),[]),b(()=>import("./index-DgapqSPi.js").then(e=>e.i),__vite__mapDeps([0,1])),b(()=>import("./index-CJbYy-CF.js").then(e=>e.w),__vite__mapDeps([2,1,0])),b(()=>import("./index-CanA16PU.js"),__vite__mapDeps([3,0,1])),b(()=>import("./index-Bge9JUr6.js"),__vite__mapDeps([4,1,0,2])),b(()=>import("./index-gHZae-lw.js"),__vite__mapDeps([5,6,2,1,0])),b(()=>import("./index-IEjydI9d.js"),__vite__mapDeps([7,6,2,1,0])),b(()=>import("./index-DUqP1RMl.js"),__vite__mapDeps([8,0,1,2]))]).then(([e,o,n,r,c,s,l,d])=>({state:e,view:o,language:n,search:r,commands:c,javascript:s,json:l,oneDark:d})),T}function S(e){return typeof e=="number"?`${e}px`:e}function R(e){return typeof e=="string"&&e.trim().endsWith("%")}function U(e,o){let n=0;for(;n<e.length&&n<o.length&&e[n]===o[n];)n++;let r=e.length,c=o.length;for(;r>n&&c>n&&e[r-1]===o[c-1];)r--,c--;return{from:n,oldEnd:r,newEnd:c}}const L=1800,k=`color-mix(in srgb, ${t.semantic.warning} 42%, transparent)`,C=`color-mix(in srgb, ${t.semantic.warning} 18%, transparent)`;function G(e){class o extends e.view.WidgetType{constructor(s){super(),this.revision=s}eq(s){return this.revision===s.revision}toDOM(){const s=document.createElement("span");return s.className=`cm-source-deletion cm-source-change cm-source-change-${this.revision%2}`,s.setAttribute("aria-hidden","true"),s}}const n=e.state.StateEffect.define(),r=e.state.StateField.define({create:()=>e.view.Decoration.none,update(c,s){let l=c.map(s.changes);for(const d of s.effects){if(!d.is(n))continue;if(!d.value){l=e.view.Decoration.none;continue}const{from:f,to:i,revision:y}=d.value,g=f===i?e.view.Decoration.widget({widget:new o(y),side:-1}).range(f):e.view.Decoration.mark({class:`cm-source-change cm-source-change-${y%2}`}).range(f,i);l=e.view.Decoration.set([g])}return l},provide:c=>e.view.EditorView.decorations.from(c)});return{mark:n,field:r}}function K(e,o,n){return e.view.EditorView.theme({"&":{color:t.content.primary,backgroundColor:"transparent",fontSize:`${o}px`,...R(n)?{height:S(n)}:{}},"&.cm-focused":{outline:"none"},".cm-content":{fontFamily:t.typography.mono,padding:"2px 0",caretColor:"transparent"},".cm-scroller":{fontFamily:t.typography.mono,lineHeight:"1.5",overflow:"auto",...n===void 0?{}:{maxHeight:S(n)}},".cm-gutters":{backgroundColor:"transparent",color:t.content.dim,border:"none",userSelect:"none"},".cm-lineNumbers .cm-gutterElement":{padding:"0 8px 0 4px",minWidth:"2ch"},".cm-content ::selection":{backgroundColor:t.selection.background},".cm-panels":{backgroundColor:t.surface.raised,color:t.content.primary,border:"none",fontFamily:t.typography.sans},".cm-panels.cm-panels-top":{borderBottom:`1px solid ${t.boundary.default}`},".cm-textfield":{backgroundColor:t.surface.inset,color:t.content.primary,border:`1px solid ${t.boundary.default}`,borderRadius:t.shape.small},".cm-button":{backgroundColor:t.surface.raised,backgroundImage:"none",color:t.content.primary,border:`1px solid ${t.boundary.default}`,borderRadius:t.shape.small},".cm-searchMatch":{backgroundColor:t.accent.muted},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:t.accent.default,color:t.content.onAccent},".cm-source-change":{backgroundColor:k,borderRadius:"2px"},".cm-line:has(.cm-source-change)":{backgroundColor:C},".cm-source-change, .cm-line:has(.cm-source-change)":{animationDuration:`${L}ms`,animationTimingFunction:"ease-out",animationFillMode:"forwards"},".cm-source-deletion":{display:"inline-block",width:"0",position:"relative"},".cm-source-deletion::after":{content:'""',position:"absolute",left:"-2px",bottom:"0",width:"4px",height:"1em",backgroundColor:"inherit",borderRadius:"2px"},".cm-source-change-0":{animationName:"volter-source-change-even"},".cm-source-change-1":{animationName:"volter-source-change-odd"},".cm-line:has(.cm-source-change-0)":{animationName:"volter-source-line-even"},".cm-line:has(.cm-source-change-1)":{animationName:"volter-source-line-odd"},"@keyframes volter-source-line-even":{"0%, 40%":{backgroundColor:C},"100%":{backgroundColor:"transparent"}},"@keyframes volter-source-line-odd":{"0%, 40%":{backgroundColor:C},"100%":{backgroundColor:"transparent"}},"@keyframes volter-source-change-even":{"0%, 40%":{backgroundColor:k},"100%":{backgroundColor:"transparent"}},"@keyframes volter-source-change-odd":{"0%, 40%":{backgroundColor:k},"100%":{backgroundColor:"transparent"}},"@media (prefers-reduced-motion: reduce)":{".cm-source-change, .cm-line:has(.cm-source-change)":{animation:"none"}},".cm-matchingBracket, &.cm-focused .cm-matchingBracket":{backgroundColor:t.neutralOverlay.active,outline:`1px solid ${t.boundary.strong}`}},{dark:!0})}function H(e,o,n,r){const c=o==="typescript"?[e.javascript.javascript({typescript:!0,jsx:!0})]:o==="json"?[e.json.json()]:[];return[e.view.lineNumbers(),e.view.highlightSpecialChars(),e.language.bracketMatching(),e.language.syntaxHighlighting(e.oneDark.oneDarkHighlightStyle),e.search.search({top:!0}),e.view.keymap.of([...e.commands.standardKeymap,...e.search.searchKeymap]),e.view.EditorView.lineWrapping,e.state.EditorState.readOnly.of(!0),e.view.EditorView.editable.of(!1),e.view.EditorView.contentAttributes.of({tabindex:"0"}),...c,K(e,n,r)]}function q({value:e,language:o,fontSize:n=11,maxHeight:r,ariaLabel:c,followChanges:s=!1}){const l=m.useRef(null),d=m.useRef(null),f=m.useRef(null),i=m.useRef(null),y=m.useRef(0),g=m.useRef(e);g.current=e;const[p,I]=m.useState(null),[N,$]=m.useState(!1);m.useEffect(()=>{let u=!1;return W().then(h=>{u||I(h)},()=>{u||$(!0)}),()=>{u=!0}},[]),m.useEffect(()=>{const u=l.current;if(!u||!p)return;const h=G(p),w=new p.view.EditorView({parent:u,state:p.state.EditorState.create({doc:g.current,extensions:[H(p,o,n,r),h.field]})});return d.current=w,f.current=h,()=>{i.current!==null&&clearTimeout(i.current),i.current=null,f.current=null,d.current=null,w.destroy()}},[p,o,n,r]),m.useEffect(()=>{const u=d.current;if(!u)return;const h=u.state.toText(e).toString(),w=u.state.doc.toString();if(w===h)return;const{from:x,oldEnd:B,newEnd:D}=U(w,h),O=u.state.changes({from:x,to:B,insert:h.slice(x,D)}),v=f.current,E=[];if(s&&p&&v){const _=u.coordsAtPos(x),j=u.scrollDOM.getBoundingClientRect(),A=_&&_.top>=j.top&&_.bottom<=j.bottom&&_.left>=j.left&&_.right<=j.right?u.scrollSnapshot().map(O):p.view.EditorView.scrollIntoView(x,{y:"nearest",x:"nearest"});A&&E.push(A),E.push(v.mark.of({from:x,to:D,revision:++y.current}))}else v&&E.push(v.mark.of(null));u.dispatch({changes:O,effects:E}),i.current!==null&&clearTimeout(i.current),i.current=null,s&&v&&(i.current=setTimeout(()=>{d.current===u&&u.dispatch({effects:v.mark.of(null)}),i.current=null},L))},[e,s,p]);const V=R(r)?{height:"100%",minHeight:0}:{};return p?a.jsx("div",{ref:l,role:"group","aria-label":c,style:{minWidth:0,...V}}):a.jsxs("div",{role:"group","aria-label":c,style:{minWidth:0,...V},children:[N&&a.jsx("div",{style:{color:t.semantic.warning,fontSize:10,marginBottom:4},children:"Syntax highlighting failed to load — showing plain text."}),a.jsx("pre",{style:{margin:0,fontFamily:t.typography.mono,fontSize:n,lineHeight:1.5,color:t.content.primary,whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto",...r===void 0?{}:{maxHeight:S(r)},...R(r)?{height:S(r)}:{}},children:e})]})}const X={fontSize:11,color:t.content.muted,marginBottom:2};function Y({assetPath:e}){const[o,n]=m.useState(null),[r,c]=m.useState("json"),[s,l]=m.useState(!1),d=e.split("/").pop()??e;return m.useEffect(()=>{let f=!1;return n(null),l(!1),fetch(z(e)).then(i=>i.text()).then(i=>{try{const y=JSON.parse(i);f||(c("json"),n(JSON.stringify(y,null,2)))}catch{f||(c("text"),n(i))}}).catch(()=>{f||l(!0)}),()=>{f=!0}},[e]),a.jsxs("div",{style:{padding:8,display:"flex",flexDirection:"column",gap:8},children:[a.jsx("div",{style:{fontWeight:600,fontSize:12,color:t.content.primary,wordBreak:"break-all"},children:d}),a.jsx("div",{className:"volter-content-frost",style:{border:`1px solid ${t.boundary.default}`,borderRadius:t.shape.small,padding:8,overflow:"hidden",maxHeight:500},children:s?a.jsx("span",{style:{color:t.semantic.danger,fontSize:11},children:"Failed to load file"}):o===null?a.jsx("span",{style:{color:t.content.muted,fontSize:11},children:"Loading..."}):a.jsx(q,{value:o,language:r,fontSize:10,maxHeight:484,ariaLabel:`Contents of ${d}`})}),a.jsx(F,{label:"Info",defaultOpen:!1,children:a.jsxs("div",{children:[a.jsx("div",{style:X,children:"Path"}),a.jsx("div",{style:{fontSize:11,color:t.content.primary,wordBreak:"break-all"},children:e})]})})]})}function Q({documentId:e,assetPath:o,displayName:n,active:r,sections:c,status:s}){const[l,d]=m.useState({kind:"loading"}),f=M();if(m.useEffect(()=>{if(!r){d({kind:"loading"});return}const i=new AbortController;return d({kind:"loading"}),(async()=>{for(const g of f){const p=await g.recognize(o,i.signal);if(p!==null)return{kind:"content",viewer:g,content:p}}return{kind:"generic"}})().then(g=>{i.signal.aborted||d(g)},g=>{i.signal.aborted||d({kind:"error",message:g instanceof Error?g.message:String(g)})}),()=>i.abort()},[r,o,f]),l.kind==="content"){const{Viewer:i}=l.viewer;return a.jsx(i,{documentId:e,assetPath:o,displayName:n,active:r,content:l.content})}return a.jsx(J,{documentId:e,active:r,type:"json",title:n,sections:c,status:s,children:l.kind==="loading"?a.jsxs("div",{style:{padding:20,color:t.content.muted},children:["Inspecting ",n,"…"]}):l.kind==="error"?a.jsx("div",{role:"alert",style:{padding:20,color:t.semantic.danger},children:l.message}):a.jsx(Y,{assetPath:o})})}const ie=Object.freeze(Object.defineProperty({__proto__:null,JsonAssetDocument:Q},Symbol.toStringTag,{value:"Module"}));export{q as C,Q as J,ie as a,re as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n}from"./jsx-runtime-DPjLkJKQ.js";import{gj as V,al as g,b8 as P,gk as U,gl as Z,Z as G,gm as J,gn as K}from"./index-
|
|
1
|
+
import{a as n}from"./jsx-runtime-DPjLkJKQ.js";import{gj as V,al as g,b8 as P,gk as U,gl as Z,Z as G,gm as J,gn as K}from"./index-D9shXtZ9.js";import{r as f}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{d as S}from"./asset-preview-uRqIcg3G.js";import{r as Q,a as X}from"./object3d-document-session-registry-bor-eSgr.js";import{O as Y}from"./Object3DDocumentViewport-Blr8aQeS.js";import{S as ee}from"./standard-viewport-dressing-4xAZCGJ3.js";import{bh as te,I as re}from"./three.core-3arARmh6.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./editor-layers-BVicagU1.js";import"./workspace-arrangement-BOk46mGq.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./studio-environment-CvCEc6PK.js";import"./user-data-DHB4MWum.js";import"./KTX2Loader-CaqVE6nY.js";import"./three.module-BLhyNg0e.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./viewport-surface-status-HKbJtC2G.js";import"./content-bounds-UvcUv1DD.js";class v extends Error{constructor(t){super(t.message),this.refusal=t,this.name="LiveModuleError"}}function oe(e){return Object.keys(e).filter(t=>t!=="__esModule"&&t!=="Symbol.toStringTag")}function T(e){return typeof e=="object"&&e!==null&&e.isObject3D===!0}function ne(e){if("default"in e)return{name:"default",value:e.default};const t=oe(e);return t.length===0?{kind:"not-a-model",message:"This module exports nothing."}:t.length>1?{kind:"not-a-model",message:`This module has no default export and ${t.length} named exports (${t.join(", ")}), so there is no single subject to build. A model module default-exports its builder.`}:{name:t[0],value:e[t[0]]}}function $(e){if(T(e))return{root:e};if(!e||typeof e!="object")return;const t=e;if(!T(t.root))return;const r=t.root;return Array.isArray(t.animations)&&r.animations.length===0&&(r.animations=t.animations),{root:r,...typeof t.dispose=="function"?{dispose:()=>t.dispose.call(e)}:{}}}function L(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e!="object")return typeof e;if(Array.isArray(e))return"an array";const t=Object.keys(e);return t.length>0?`an object with keys ${t.slice(0,8).join(", ")}`:"an object with no own keys"}const R="a model module returns a THREE.Object3D, or a build result `{ root, animations?, dispose? }` whose `root` is one.";async function ie(e,t){const r=$(t);if(r)return{...r,exportName:e};if(typeof t!="function")return{kind:"not-a-model",message:`Export '${e}' is ${L(t)}, not a function and not a model — `+R};let l;try{l=await t()}catch(i){return{kind:"import-failed",message:`Export '${e}' threw while building: ${H(i)}`,...i instanceof Error&&i.stack?{stack:i.stack}:{}}}const c=$(l);return c?{...c,exportName:e}:{kind:"not-a-model",message:`Export '${e}' ran but returned ${L(l)} — ${R}`}}function H(e){return e instanceof Error?e.message:String(e)}async function se(e,t,r){let l;try{l=await import(V(e,t,r))}catch(u){throw new v({kind:"import-failed",message:H(u),...u instanceof Error&&u.stack?{stack:u.stack}:{}})}const c=ne(l);if("kind"in c)throw new v(c);const i=await ie(c.name,c.value);if("kind"in i)throw new v(i);return i}const C={height:"100%",width:"100%",minHeight:0,display:"flex",position:"relative"},F={flex:1,minWidth:0,minHeight:0,display:"flex"};function ae(e,t){if(e.kind!=="import-failed")return{message:e.message};const r=K(t);return r?{message:r,stack:e.message}:{message:e.message,stack:e.stack}}function Be({documentId:e,projectRoot:t,modulePath:r,displayName:l,active:c,fallback:i}){const[u,w]=f.useState({status:"probing"}),[b,E]=f.useState(null),d=f.useMemo(()=>{const s=new te;return s.name=r.split("/").pop()??r,s},[r]),D=f.useRef(!1);f.useEffect(()=>{let s=!1,y=0,m=null,p=Promise.resolve(),k=null,x=null;const M=()=>{m&&(d.remove(m),d.animations=[],x?x():S(m),m=null,x=null)},B=(o,h)=>{M(),m=o,x=h,d.add(o),d.animations=o.animations,J(e)},I=(o,h)=>{if(o.kind==="not-a-model"&&!h){w({status:"fallback",reason:o.message});return}const a=ae(o,r);E(a),G.error(`${r}: ${a.message}`,"live-module"),h||w({status:"fallback",reason:o.message})},A=o=>s||o!==y,W=async()=>{y+=1;const o=y,h=Z();let a;try{a=await se(t,r,h)}catch(j){if(A(o))return;if(!(j instanceof v))throw j;k=j,I(j.refusal,m!==null);return}if(A(o)){a.dispose?a.dispose():S(a.root);return}B(a.root,a.dispose??null),k=null,U(r),E(null),w({status:"live",exportName:a.exportName})},O=()=>(p=W(),p),q=Q(e,async()=>{let o=O();for(;;){if(await o,s)throw new Error(`Document closed while rebuilding: ${r}`);if(o===p)break;o=p}if(k)throw k});O();const z=P();return()=>{s=!0,q(),z(),M()}},[d,e,r,t]),f.useEffect(()=>{if(u.status!=="live"||D.current)return;let s=0,y=0;const m=()=>{const p=X(e);if(p){D.current=!0,new re().setFromObject(d).isEmpty()||p.frame();return}++y>60||(s=requestAnimationFrame(m))};return s=requestAnimationFrame(m),()=>cancelAnimationFrame(s)},[d,e,u.status]);const _=f.useCallback(()=>({root:d,dispose(){}}),[d]);return u.status==="probing"?n.jsxs("div",{style:{padding:20,color:g.content.muted},children:["Inspecting ",l,"…"]}):u.status==="fallback"?n.jsxs("div",{style:C,children:[b?n.jsx(N,{failure:b}):null,n.jsx("div",{style:{...F,overflow:"auto"},children:i})]}):n.jsxs("div",{style:C,children:[n.jsx("div",{style:{...F,opacity:b?.35:1},children:n.jsx(Y,{documentId:e,sourcePath:r,displayName:l,build:_,active:c,assetType:"model module",cameraDirection:ee,modelSource:{kind:"project-file",path:r}})}),b?n.jsx(N,{failure:b}):null]})}function N({failure:e}){return n.jsxs("div",{role:"alert","data-testid":"live-module-error",style:{position:"absolute",top:8,left:8,right:8,zIndex:2,maxHeight:"60%",overflow:"auto",padding:"8px 10px",borderRadius:g.shape.small,background:g.surface.raised,border:`1px solid ${g.semantic.danger}`,color:g.semantic.danger,fontFamily:g.typography.mono,fontSize:11,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",pointerEvents:"auto"},children:[n.jsx("div",{style:{fontWeight:600},children:"This module did not build — showing the last good model."}),n.jsx("div",{style:{marginTop:4},children:e.message}),e.stack?n.jsx("div",{style:{marginTop:6,color:g.content.muted},children:e.stack}):null]})}export{Be as LiveModuleDocument};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{dR as z,gh as A,dT as N,dU as I,al as y,b5 as M,cP as k,dV as C,aS as P}from"./index-
|
|
1
|
+
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{dR as z,gh as A,dT as N,dU as I,al as y,b5 as M,cP as k,dV as C,aS as P}from"./index-D9shXtZ9.js";import{r as w}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{EffectComposer as F,LUT3DEffect as _,RenderPass as B,EffectPass as O}from"./index-DHhMOs_s.js";import{W as $}from"./three.module-BLhyNg0e.js";import{ca as G,ff as T,aZ as H,fo as L,as as V,c1 as R,Y as j,ej as W,A as Z,el as q,_ as D,d9 as X,bj as K,aE as Y,cx as v,ey as J,K as Q,db as ee,co as te}from"./three.core-3arARmh6.js";import{s as re}from"./asset-editor-persistence-D2o6zb5I.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";class ne extends G{constructor(t){super(t),this.type=T}setType(t){return this.type=t,this}load(t,a,f,g){const n=new H(this.manager);n.setPath(this.path),n.setResponseType("text"),n.load(t,c=>{try{a(this.parse(c))}catch(e){g?g(e):console.error(e),this.manager.itemError(t)}},f,g)}parse(t){const a=/TITLE +"([^"]*)"/,f=/LUT_3D_SIZE +(\d+)/,g=/DOMAIN_MIN +([\d.]+) +([\d.]+) +([\d.]+)/,n=/DOMAIN_MAX +([\d.]+) +([\d.]+) +([\d.]+)/,c=/^([\d.e+-]+) +([\d.e+-]+) +([\d.e+-]+) *$/gm;let e=a.exec(t);const p=e!==null?e[1]:null;if(e=f.exec(t),e===null)throw new Error("LUTCubeLoader: Missing LUT_3D_SIZE information");const s=Number(e[1]),u=s**3*4,o=this.type===T?new Uint8Array(u):new Float32Array(u),d=new L(0,0,0),m=new L(1,1,1);if(e=g.exec(t),e!==null&&d.set(Number(e[1]),Number(e[2]),Number(e[3])),e=n.exec(t),e!==null&&m.set(Number(e[1]),Number(e[2]),Number(e[3])),d.x>m.x||d.y>m.y||d.z>m.z)throw new Error("LUTCubeLoader: Invalid input domain");const x=this.type===T?255:1;let h=0;for(;(e=c.exec(t))!==null;)o[h++]=Number(e[1])*x,o[h++]=Number(e[2])*x,o[h++]=Number(e[3])*x,o[h++]=x;const l=new V;return l.image.data=o,l.image.width=s,l.image.height=s,l.image.depth=s,l.type=this.type,l.magFilter=R,l.minFilter=R,l.wrapS=j,l.wrapT=j,l.wrapR=j,l.generateMipmaps=!1,l.needsUpdate=!0,{title:p,size:s,domainMin:d,domainMax:m,texture3D:l}}}function b(r){return r.split("/").pop()??r}function E(r,t,a){return Math.min(a,Math.max(t,r))}function U(r){return[r.x,r.y,r.z].map(t=>t.toFixed(2)).join(", ")}function se(){const r=new q;r.background=new D("#171a22");const t=new X(34,1,.1,100);t.position.set(6.6,4.6,8.8),t.lookAt(0,.7,0),r.add(new K("#dce8ff","#322a27",2.1));const a=new Y("#fff3db",3.8);a.position.set(4,7,5),r.add(a);const f=[],g=[],n=(s,u,o)=>{f.push(s),g.push(u);const d=new te(s,u);return d.position.set(...o),d.castShadow=!0,d.receiveShadow=!0,r.add(d),d},c=[["#e64d45",-2.4],["#e5ad42",-1.2],["#55b86a",0],["#47a9d8",1.2],["#8a68d7",2.4]];for(const[s,u]of c)n(new J(.48,48,32),new v({color:s,roughness:.3,metalness:.08}),[u,.65,0]);[.06,.18,.5,.82,1].forEach((s,u)=>{const o=Math.round(s*255);n(new Q(.78,.78,.78),new v({color:new D(`rgb(${o}, ${o}, ${o})`),roughness:.72}),[-2.4+u*1.2,1.85,-.1])});const p=n(new ee(9,6),new v({color:"#777b86",roughness:.92}),[0,.08,-1.8]);return p.rotation.x=-Math.PI/2,{scene:r,camera:t,dispose:()=>{for(const s of f)s.dispose();for(const s of g)s.dispose()}}}function oe({lut:r,settingsRef:t}){const a=w.useRef(null);return w.useEffect(()=>{const f=a.current;if(!f)return;let g=!1,n=0;const c=document.createElement("canvas");c.setAttribute("aria-label","LUT before and after preview"),c.style.width="100%",c.style.height="100%",c.style.display="block",f.replaceChildren(c);const e=new $({canvas:c,antialias:!0});e.outputColorSpace=W,e.toneMapping=Z,e.toneMappingExposure=1,e.shadowMap.enabled=!0;const p=se(),s=new F(e),u=new _(r.texture3D,{tetrahedralInterpolation:!0});s.addPass(new B(p.scene,p.camera)),s.addPass(new O(p.camera,u));const o={width:1,height:1},d=()=>{const l=t.current,S=Math.round(o.width*E(l.split,.05,.95));u.blendMode.opacity.value=E(l.intensity,0,1),u.tetrahedralInterpolation=l.tetrahedral,e.setScissorTest(!1),e.setRenderTarget(null),e.clear(),e.setScissorTest(!0),e.setScissor(0,0,S,o.height),e.render(p.scene,p.camera),e.setScissor(S,0,o.width-S,o.height),s.render(),e.setScissorTest(!1)},m=()=>{const l=f.getBoundingClientRect();o.width=Math.max(1,Math.floor(l.width)),o.height=Math.max(1,Math.floor(l.height)),e.setPixelRatio(Math.min(window.devicePixelRatio||1,2)),e.setSize(o.width,o.height,!1),s.setSize(o.width,o.height),p.camera.aspect=o.width/o.height,p.camera.updateProjectionMatrix()};m(),d();const x=new ResizeObserver(()=>{m(),d()});x.observe(f);const h=()=>{g||(d(),n=requestAnimationFrame(h))};return n=requestAnimationFrame(h),()=>{g=!0,cancelAnimationFrame(n),x.disconnect(),s.dispose(),u.dispose(),p.dispose(),e.dispose(),c.remove()}},[r,t]),i.jsx("div",{ref:a,"data-testid":"lut-preview",style:{width:"100%",height:"100%",minHeight:260,background:"#171a22"}})}function ie({settings:r,onChange:t}){return i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:4},children:[i.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11},children:["Intensity",i.jsx(C,{value:r.intensity,onChange:a=>t({...r,intensity:E(a,0,1)}),step:.01,precision:2})]}),i.jsxs("label",{style:{display:"flex",flexDirection:"column",gap:5,fontSize:11},children:["Comparison split",i.jsx(C,{value:r.split,onChange:a=>t({...r,split:E(a,.05,.95)}),step:.01,precision:2})]}),i.jsxs("label",{style:{display:"flex",alignItems:"center",gap:7,fontSize:11},children:[i.jsx(P,{checked:r.tetrahedral,onChange:a=>t({...r,tetrahedral:a.target.checked})}),"Tetrahedral interpolation"]}),i.jsx("div",{style:{color:y.content.muted,fontSize:10,lineHeight:1.45},children:"Preview controls are session-only. Bind the LUT and accepted intensity in the owning TSX post-processing composition."})]})}async function ae(r){const t=await k(r);if(t===null)throw new Error(`CUBE LUT not found: ${r}`);return new ne().parse(t)}function Ee({documentId:r,assetPath:t,active:a=!0}){const[f,g]=w.useState(0),[n,c]=w.useState(null),[e,p]=w.useState(null),[s,u]=w.useState({intensity:1,split:.5,tetrahedral:!0}),o=w.useRef(s);o.current=s,w.useEffect(()=>{if(a)return re(t,()=>g(m=>m+1))},[a,t]),w.useEffect(()=>{if(!a)return;let m=!1,x=null;return c(null),p(null),ae(t).then(h=>{if(x=h,m){h.texture3D.dispose();return}c(h)},h=>{m||p(h instanceof Error?h.message:String(h))}),()=>{m=!0,x?.texture3D.dispose()}},[a,t,f]);const d=w.useMemo(()=>[{id:"lut-profile",title:"Color Grade",icon:A,order:z,body:{kind:"custom",...n?{data:{title:n.title,size:n.size,domainMin:n.domainMin.toArray(),domainMax:n.domainMax.toArray()}}:{},render:()=>i.jsxs("div",{style:{display:"grid",gridTemplateColumns:"auto 1fr",gap:"6px 10px"},children:[i.jsx("span",{style:{color:y.content.muted},children:"Title"}),i.jsx("span",{children:n?.title||b(t)}),i.jsx("span",{style:{color:y.content.muted},children:"Cube"}),i.jsx("span",{children:n?`${n.size}³`:"—"}),i.jsx("span",{style:{color:y.content.muted},children:"Domain"}),i.jsx("span",{children:n?`${U(n.domainMin)} → ${U(n.domainMax)}`:"—"})]})}},{id:"lut-preview-settings",title:"Preview",icon:I,order:N,body:{kind:"custom",data:{...s},render:()=>i.jsx(ie,{settings:s,onChange:u})}}],[t,n,s]);return e?i.jsx(M,{documentId:r,active:a,type:"color grade",title:b(t),status:"CUBE LUT unavailable",children:i.jsx("div",{role:"alert",style:{padding:20,color:y.semantic.danger},children:e})}):n?i.jsx(M,{documentId:r,active:a,type:"color grade",title:b(t),sections:d,status:`CUBE LUT · ${n.size}³`,fill:!0,children:i.jsxs("div",{style:{position:"relative",width:"100%",height:"100%",minHeight:0,background:"#171a22"},children:[i.jsx(oe,{lut:n,settingsRef:o}),i.jsx("div",{style:{position:"absolute",left:12,top:12,padding:"4px 7px",borderRadius:4,background:"rgba(12,14,20,0.72)",color:"#f2f4f8",fontSize:10,pointerEvents:"none"},children:"Original"}),i.jsx("div",{style:{position:"absolute",right:12,top:12,padding:"4px 7px",borderRadius:4,background:"rgba(12,14,20,0.72)",color:"#f2f4f8",fontSize:10,pointerEvents:"none"},children:n.title||"Graded"})]})}):i.jsx(M,{documentId:r,active:a,type:"color grade",title:b(t),status:"Loading CUBE LUT",children:i.jsx("div",{style:{padding:20,color:y.content.muted},children:"Loading color grade…"})})}export{Ee as LutAssetDocument};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{r as e}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{al as a}from"./index-
|
|
1
|
+
import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{r as e}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{al as a}from"./index-D9shXtZ9.js";import{l as w,d as f}from"./asset-preview-uRqIcg3G.js";import{m as x,l as E,c as S}from"./model-thumbnail-Bp-1yQ-X.js";import{O as M}from"./StageHost-dHitOcUe.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./editor-layers-BVicagU1.js";import"./workspace-arrangement-BOk46mGq.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-Dn7SO2iG.js";import"./studio-environment-CvCEc6PK.js";import"./user-data-DHB4MWum.js";import"./KTX2Loader-CaqVE6nY.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./three-state-d-szeOea.js";import"./editor-shell-store-CV73gQk5.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./entity-object-DTQ4I2K5.js";import"./three-contract-Dkt6PmWY.js";import"./standard-viewport-dressing-4xAZCGJ3.js";import"./content-bounds-UvcUv1DD.js";import"./preview-renderer-BrYNFV1p.js";import"./live-mixers-B-bwLZ7c.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-C1onOQwq.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-MdBIQeUt.js";import"./root-stacking-BEd9ZvxC.js";import"./object3d-document-session-registry-bor-eSgr.js";import"./component-instance-root-BrRLxTKu.js";import"./viewport-door-DkDcO9tp.js";import"./model-inspection-Bsfj6b48.js";import"./three-viewport-presentation-D1ysWIW4.js";import"./clip-planes-CnAI6DZn.js";import"./three-Do16bEo9.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-BSvegpi4.js";import"./source-object3d-authoring-adapter-BJwLQVsv.js";import"./three-projection-core-1FETWj5n.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-D4N14xHx.js";import"./viewport-surface-status-HKbJtC2G.js";function Co({documentId:g,assetPath:o,displayName:u,active:p}){const[b,n]=e.useState(null),[d,c]=e.useState(null);e.useEffect(()=>{if(!p){n(null);return}const m=new AbortController;let l=null;n(null),c(null);const i=x(o);return(i==="glb"||i==="gltf"||i==="spz"?w(o,m.signal):i?E({url:o,format:i}).then(S).then(r=>({root:r,sourceBytes:null})):Promise.reject(new Error(`No native Three.js model loader supports ${o}.`))).then(r=>{if(m.signal.aborted){f(r.root);return}l=r.root,n(r)},r=>{m.signal.aborted||c(r instanceof Error?r.message:String(r))}),()=>{m.abort(),l&&f(l)}},[p,o]);const t=b?.root??null,j=e.useCallback(()=>{if(!t)throw new Error(`Model asset ${o} is not loaded.`);return{root:t,animations:t.animations,dispose(){}}},[o,t]);return d?s.jsx("div",{role:"alert",style:{padding:20,color:a.semantic.danger},children:d}):t?s.jsx(M,{documentId:g,sourcePath:o,displayName:u,build:j,active:p,assetType:"model",modelSource:{kind:"project-file",path:o}}):s.jsxs("div",{style:{padding:20,color:a.content.muted},children:["Loading ",u,"…"]})}export{Co as ModelAssetDocument};
|