@volter/game-editor 0.5.77 → 0.5.78
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 +2123 -2123
- package/dist/assets/{AssetBudgetPanel-Dwpm-iyO.js → AssetBudgetPanel-jnnJrNiB.js} +3 -3
- package/dist/assets/{AudioViewer-CN_WyuPP.js → AudioViewer-BKjWQwHF.js} +1 -1
- package/dist/assets/{CanvasBoardDocument--eRnJA3d.js → CanvasBoardDocument-BxaYC_Jz.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-BwwYOosQ.js → CanvasSceneViewport-BI-EikMC.js} +1 -1
- package/dist/assets/{ColorInput-fP6gD8GQ.js → ColorInput-B-OejNng.js} +1 -1
- package/dist/assets/{EntityModelDocument--Mnf5gfu.js → EntityModelDocument-BoQBOjdw.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-JioL9Pmv.js → EnvironmentAssetDocument-BOpdqZTU.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-BRl0PIim.js → GameplaySessionTimeline-BluA8QYW.js} +1 -1
- package/dist/assets/{ImageViewer-ET4Bwjzp.js → ImageViewer-BirVv4d6.js} +1 -1
- package/dist/assets/InspectorObjectPreview-gKOWUWjk.js +1 -0
- package/dist/assets/{JsonAssetDocument-CVkHqdUd.js → JsonAssetDocument-CEgJ43VT.js} +1 -1
- package/dist/assets/{LiveModuleDocument-DLwna0kt.js → LiveModuleDocument-vjkqdjFx.js} +1 -1
- package/dist/assets/{LutAssetDocument-BdG_i8hr.js → LutAssetDocument-C_oAeHsv.js} +1 -1
- package/dist/assets/{ModelAssetDocument-DTxbDhA6.js → ModelAssetDocument-DE883aJ9.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-BZ4A6rPs.js → NonThreeAuthoringBootstrap-DQwT77vx.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-COuKq3sB.js → Object3DDocumentToolbar-BmWUB7YS.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-uabnovqE.js +2 -0
- package/dist/assets/{Object3DPreview-D_1vkB4L.js → Object3DPreview-DTy6HPi6.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-DvKNu8aC.js → OnlineAssetDetail-CgYgrBuu.js} +1 -1
- package/dist/assets/{PlayBar-DknzqPEC.js → PlayBar-D__0uoFU.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-Dc5JDyxV.js → QuarksAssetDocument-DVz8Fops.js} +1 -1
- package/dist/assets/{ReactCanvasControls-DircULTK.js → ReactCanvasControls-NwZ3ERZn.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-D--07KbL.js → RootSelectionOverlay-CpjNd-WW.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-D05qJkAZ.js → ShaderAssetDocument-BgqIVYPq.js} +1 -1
- package/dist/assets/{ShadowEditor-BQ_4yLgQ.js → ShadowEditor-DpyHEAdW.js} +1 -1
- package/dist/assets/{SourceAssetViewer-ubsXVAPL.js → SourceAssetViewer-BT1411ax.js} +1 -1
- package/dist/assets/{StageHost-eSViLdbz.js → StageHost-BTBHJxSE.js} +2 -2
- package/dist/assets/{StoryPreviewMount-Befs2jpi.js → StoryPreviewMount-B0nqhsEp.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-5MeNfCGF.js → ThreeBoardDocument-thEKw19m.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-B1xdrbgO.js → ThreeIsolationSceneContent-DPQoX7q2.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-D3D8hMNA.js → ToolObject3DPreview-AbiZm8WL.js} +1 -1
- package/dist/assets/{Toolbar-BTun9j-K.js → Toolbar-vVR3O4FU.js} +1 -1
- package/dist/assets/{TransientHint-BjG5QZ7w.js → TransientHint-6ZAWyosH.js} +1 -1
- package/dist/assets/{VideoViewer-CbsogTc0.js → VideoViewer-BCTZ2NTl.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-DXfHXJZb.js → ViewportShadingMenu-CsURi5uc.js} +1 -1
- package/dist/assets/{active-ingest-B0RHbDkD.js → active-ingest-ThDWVuxw.js} +2 -2
- package/dist/assets/{animation-clock-Dkfj-UNQ.js → animation-clock-vpMCe3NR.js} +1 -1
- package/dist/assets/{animation-mixers.service-BTbinFit.js → animation-mixers.service-BnoUiHZX.js} +1 -1
- package/dist/assets/{animation-timeline.utility-BKZvFUv7.js → animation-timeline.utility-_fumd12s.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-CPLl16u9.js → asset-budget-asset.menu-BZAydAX3.js} +1 -1
- package/dist/assets/{asset-budget.action-BDDyOQkl.js → asset-budget.action--Fbmf0UJ.js} +1 -1
- package/dist/assets/{asset-budget.document-CX7bz50G.js → asset-budget.document-B7sYgF5D.js} +1 -1
- package/dist/assets/{asset-budget.menu-5S1Zzll8.js → asset-budget.menu-KrJgzmb8.js} +1 -1
- package/dist/assets/{asset-editor-persistence-AKvUtcfg.js → asset-editor-persistence-CtoTTS7a.js} +1 -1
- package/dist/assets/{asset-loaders-BoVVLGeW.js → asset-loaders-Y8f3QiXz.js} +1 -1
- package/dist/assets/{asset-preview-C-SzfMmZ.js → asset-preview-DekZ4wVq.js} +1 -1
- package/dist/assets/{audio-unlock.service-Cu-KaqcU.js → audio-unlock.service-Dcg3sVfv.js} +1 -1
- package/dist/assets/{audio.utility-BdMr9Tg8.js → audio.utility-CdV1zar0.js} +1 -1
- package/dist/assets/autoplay.service-eeOjCzdb.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-qNNPjc8Z.js → babylon-authoring-adapter-DPmLl5f_.js} +1 -1
- package/dist/assets/{binding-resolver-CGsJLZOI.js → binding-resolver-YYyOPJYp.js} +2 -2
- package/dist/assets/blender-emscripten-engine-CieQeF-r.js +2 -0
- package/dist/assets/{blender-node-editor.document-BdR4Vvi3.js → blender-node-editor.document-jyyv3ppW.js} +1 -1
- package/dist/assets/{blender-properties-tab-CCNa2VxG.js → blender-properties-tab-hi3MVaab.js} +1 -1
- package/dist/assets/{blender-runtime-host-D_r3dBBg.js → blender-runtime-host-BSi6Kax2.js} +2 -2
- package/dist/assets/{blender-runtime-skin-CbrjFtVl.js → blender-runtime-skin-CXcqgnOH.js} +1 -1
- package/dist/assets/{blender-runtime.document-BeQ1ylTU.js → blender-runtime.document-DjIxtPzX.js} +1 -1
- package/dist/assets/{blender-timeline.document-BQ6r2Eit.js → blender-timeline.document-BnRM53nq.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CP9yR9fd.js → blender-uv-editor.document-Bz9N_c_P.js} +1 -1
- package/dist/assets/{blender-version.status-Bu35OikW.js → blender-version.status-DeNkSYj2.js} +1 -1
- package/dist/assets/blender-wali-engine-KWIxfB_o.js +2 -0
- package/dist/assets/{blender.command-ClhAHbhS.js → blender.command-DAu0RN1N.js} +1 -1
- package/dist/assets/{board-guides-DUTllrm6.js → board-guides-nMyh5TOo.js} +1 -1
- package/dist/assets/{bridge.command-CFCb73nA.js → bridge.command-B5N5vlrv.js} +3 -3
- package/dist/assets/{browserAll-CcEbt8pP.js → browserAll-B4vTNf7l.js} +1 -1
- package/dist/assets/{build-player.document-CHNcytS3.js → build-player.document-C5j2rLfU.js} +1 -1
- package/dist/assets/{build-profiles.document-CfftHZEt.js → build-profiles.document-B02-0E9_.js} +1 -1
- package/dist/assets/{build-progress.status-Ba7TtK8C.js → build-progress.status-DlfLUEPz.js} +1 -1
- package/dist/assets/{build-session-BVAVoaAo.js → build-session-CGkCqUX8.js} +1 -1
- package/dist/assets/{build.action-C4v62OGp.js → build.action-CVwUqqM2.js} +1 -1
- package/dist/assets/{build.command-DiOf0gsd.js → build.command-Bm0vSOEZ.js} +1 -1
- package/dist/assets/{build.header-Cc9F3_tw.js → build.header-jLMld2Mg.js} +1 -1
- package/dist/assets/{build.menu-C6m7wAB0.js → build.menu-CLGMn0iC.js} +1 -1
- package/dist/assets/{build.service-BD9CuqZ1.js → build.service-CyQ5OIkh.js} +1 -1
- package/dist/assets/{camera-QoF2qQn9.js → camera-CzOSAW-c.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-BPmJd9CX.js → camera-runtime.inspector-B0ctaadd.js} +1 -1
- package/dist/assets/{canvas-design-mount-QoLQihbE.js → canvas-design-mount-CcYATV1C.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-cJsqLXEp.js → canvas-entry-runtime-BAkYrX3t.js} +2 -2
- package/dist/assets/{canvas-preview-frames-CxHRaajp.js → canvas-preview-frames-CHU5LqEd.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-DUSsBMnw.js → canvas-story-capture.service-BKm-Ger3.js} +2 -2
- package/dist/assets/{capability-coverage-DiBzUjdM.js → capability-coverage-77Cr3Ulm.js} +1 -1
- package/dist/assets/{collaboration-presence-Bj9ev5mU.js → collaboration-presence-HbJp4-U8.js} +1 -1
- package/dist/assets/{collider-CE-VI_rc.js → collider-Cwcf2Zom.js} +1 -1
- package/dist/assets/{component-board.service-Hbl9EZl9.js → component-board.service-BFBUphXB.js} +2 -2
- package/dist/assets/{component-board.service-Bi8VA3L0.js → component-board.service-C1ol1cKb.js} +2 -2
- package/dist/assets/{component-board.service-CzROar7A.js → component-board.service-Clf2stt0.js} +2 -2
- package/dist/assets/{component-contracts.service-CCaAPGw2.js → component-contracts.service-pQ7IX5cl.js} +1 -1
- package/dist/assets/{component-instance-root-BZXekKMG.js → component-instance-root-DNkkU6je.js} +1 -1
- package/dist/assets/{component-verbs.command-Db0sUk65.js → component-verbs.command-jY7-iDyF.js} +1 -1
- package/dist/assets/{component-verbs.service-DuEY_Ofq.js → component-verbs.service-DokE0T1V.js} +1 -1
- package/dist/assets/{config-DApMxCjE.js → config-TWuGOv6R.js} +2 -2
- package/dist/assets/{configurations-B4fNBX4_.js → configurations-vJZm6C5B.js} +1 -1
- package/dist/assets/{connection.status-D7URFwNX.js → connection.status-KJx5swGf.js} +1 -1
- package/dist/assets/{constraints.inspector-C-rz7qm2.js → constraints.inspector-YOK3hbgf.js} +1 -1
- package/dist/assets/{content-bounds-IMXYkN3x.js → content-bounds-C7j7h9Az.js} +1 -1
- package/dist/assets/{contract-system-adapters-DAgN02qJ.js → contract-system-adapters-CNSZM1a_.js} +1 -1
- package/dist/assets/{coverage.service-BWYLFkJZ.js → coverage.service-BLYQJdpO.js} +1 -1
- package/dist/assets/{create-runtime-B4VUkWmh.js → create-runtime-n9K8UEYe.js} +1 -1
- package/dist/assets/{curve-nsmv7c1I.js → curve-UFodTxel.js} +1 -1
- package/dist/assets/{data-asset-BQCPKu13.js → data-asset-C8T4Zac1.js} +1 -1
- package/dist/assets/{data-ref-CeTcnM3h.js → data-ref-ZqTEfvOS.js} +1 -1
- package/dist/assets/{debug-bridge-Cjo3HKqn.js → debug-bridge-BCa1Boz-.js} +1 -1
- package/dist/assets/{debug-registry-D4XNZdHk.js → debug-registry-B4_5ivc5.js} +1 -1
- package/dist/assets/{deferred-ingest-play-CrBHt1VV.js → deferred-ingest-play-CXcvGSx4.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-Dzu7gMRL.js → design-time-canvas-mount-BI3Xlb-Z.js} +2 -2
- package/dist/assets/{design-time-layers-BJZJy_6E.js → design-time-layers-C9Bqv8Bg.js} +1 -1
- package/dist/assets/{design-time-mount.service-Bzs3PQ3q.js → design-time-mount.service-Cec0Fgg7.js} +2 -2
- package/dist/assets/{design-time-mount.service-BZMMh_B1.js → design-time-mount.service-DslfPvv2.js} +2 -2
- package/dist/assets/{design-time-react-mount-C2ychNs2.js → design-time-react-mount-CkLqn_IK.js} +1 -1
- package/dist/assets/{document-preview-three-BxNY0561.js → document-preview-three-CGocROzm.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-BZtIjxmP.js → dom-authoring-adapter-CVgYwLJC.js} +1 -1
- package/dist/assets/{draco3d-j0uDqveB.js → draco3d-CCThltjS.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-cDUTJL37.js → edit-mode-audio.service-CUGepqjA.js} +1 -1
- package/dist/assets/{edit-mode-authoring-BGGW26LN.js → edit-mode-authoring-sVhMylk9.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-DBB67UkE.js → edit-mode-networking.service-9lj2mixd.js} +1 -1
- package/dist/assets/{editor-api-NUTZNRyn.js → editor-api-DJL2HBQ6.js} +1 -1
- package/dist/assets/{editor-layers-BpAhxn0P.js → editor-layers-CLVnI3iG.js} +1 -1
- package/dist/assets/{editor-shell-store-C04XLLU-.js → editor-shell-store-DcEC9ah3.js} +1 -1
- package/dist/assets/{entity-object-DsAYI3gJ.js → entity-object-CWtH9RjW.js} +1 -1
- package/dist/assets/{extend-BvNGT6qQ.js → extend-CCIGivXw.js} +1 -1
- package/dist/assets/{fork-menu-B3qakgix.js → fork-menu-CsXFm59h.js} +1 -1
- package/dist/assets/{frame-debugger-store-BQ7OaD2z.js → frame-debugger-store-BDosWMfv.js} +1 -1
- package/dist/assets/{game-contract-seams-Kcb8YGio.js → game-contract-seams-DeEWqg9D.js} +1 -1
- package/dist/assets/{game-css-scope-transform-CHdOIM_x.js → game-css-scope-transform-5XN-sstX.js} +1 -1
- package/dist/assets/{game-document.service-CAx5m7Ne.js → game-document.service-C1_-9aA1.js} +1 -1
- package/dist/assets/{game-eval.command-CHg0bsCV.js → game-eval.command-Cty_uWjA.js} +1 -1
- package/dist/assets/{game-module-access-zqg58xYk.js → game-module-access-Dh7mAsNt.js} +1 -1
- package/dist/assets/{game-network-C3D1ib_r.js → game-network-B55RY3Kt.js} +3 -3
- package/dist/assets/{gameplay-export-DiUUF7OL.js → gameplay-export-_4vit-9V.js} +1 -1
- package/dist/assets/{gameplay-replay-BOpWtguL.js → gameplay-replay-DH0P9r05.js} +1 -1
- package/dist/assets/{gameplay.command-eG5IvOZD.js → gameplay.command-_iVZaFXh.js} +1 -1
- package/dist/assets/{generation-jobs-DCZm-7-c.js → generation-jobs-By523STy.js} +1 -1
- package/dist/assets/{generation.service-DcF_tuiA.js → generation.service-CHdhnFg9.js} +1 -1
- package/dist/assets/{generations-Cij1e8K5.js → generations-CQFQ9LfH.js} +1 -1
- package/dist/assets/{generations.status-D6Xkxwnu.js → generations.status-CAQogunQ.js} +1 -1
- package/dist/assets/{hierarchy-marks-MeNgbwiP.js → hierarchy-marks-DxZhDpw2.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-PWF6teYQ.js → hosted-asset-materialization-8Xbv2qUY.js} +1 -1
- package/dist/assets/{index-2B6cj0iP.js → index-2cdM3maY.js} +1 -1
- package/dist/assets/{index-i3_nCWlL.js → index-BcPv5r8o.js} +2 -2
- package/dist/assets/{index-BV0Qqo83.js → index-Cd8ipMQq.js} +1 -1
- package/dist/assets/{index-DvO8W-nn.js → index-D7P1gXiX.js} +1 -1
- package/dist/assets/{index-C2Ir9SpE.js → index-DDTcyXrs.js} +1 -1
- package/dist/assets/{index-s_IF6Bxe.js → index-DgJ03XKc.js} +1 -1
- package/dist/assets/{index-GyJvVDDT.js → index-Ds5X7FEj.js} +1 -1
- package/dist/assets/{index-GOaZz_UJ.js → index-P_W_cZmi.js} +7 -7
- package/dist/assets/{index-BFwx6NRh.js → index-m7NDCH3E.js} +1 -1
- package/dist/assets/{inference-diagnostics-DH6OpJZI.js → inference-diagnostics-DzjDys1l.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BnE3u7YT.js → ingest-boot-viewport-B8o8Q1Yp.js} +1 -1
- package/dist/assets/{ingest-siblings-B_5SsNEz.js → ingest-siblings-9Woggplq.js} +1 -1
- package/dist/assets/{ingest-source-persistence-DM9T5S4m.js → ingest-source-persistence-CCFIO3aL.js} +1 -1
- package/dist/assets/{ingest.service-COWbKrQI.js → ingest.service-gZfkUKfp.js} +1 -1
- package/dist/assets/{inspect-CD61yjth.js → inspect-DVNZ_a7S.js} +1 -1
- package/dist/assets/instances.command-DV87hAWH.js +1 -0
- package/dist/assets/{json-history-resource-Cby5jKsw.js → json-history-resource-y7Ij4Q8y.js} +1 -1
- package/dist/assets/{layered-pick-B3AjYd-G.js → layered-pick-Ci9qlAyv.js} +1 -1
- package/dist/assets/{light-B7BXFfR-.js → light-Bz4LVD36.js} +1 -1
- package/dist/assets/{live-project-verbs-DR_q7RK-.js → live-project-verbs-B8xb3ELQ.js} +1 -1
- package/dist/assets/{machine.document-DPYrwmW6.js → machine.document-Bi_O59yn.js} +1 -1
- package/dist/assets/{machines.finder-CwpvHTlH.js → machines.finder-BOUHOHUc.js} +1 -1
- package/dist/assets/{material-XjlLI_f7.js → material-15FaGc_W.js} +1 -1
- package/dist/assets/{material-factory-CsiepVqC.js → material-factory-BvjfHKXl.js} +1 -1
- package/dist/assets/{mesh-2zwQAuCC.js → mesh-C8KtiWf6.js} +1 -1
- package/dist/assets/{model-asset-sections.service-9-sm-NaU.js → model-asset-sections.service-D9XzySDF.js} +1 -1
- package/dist/assets/{model-inspection-B0GymTL8.js → model-inspection-VkTYHm5t.js} +1 -1
- package/dist/assets/{model-thumbnail-C6xWKVgL.js → model-thumbnail-Bg8zc_fW.js} +1 -1
- package/dist/assets/{models.finder-4xaZ_CWd.js → models.finder-Bd0ySSrb.js} +1 -1
- package/dist/assets/{module-mode-QCybxWRW.js → module-mode-HBhpW7ua.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-C4nQ82CG.js → mount-canvas-ingest-root-RWdQs1Iu.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-CyJlqUpj.js → mount-dom-ingest-root-Do4XgUm8.js} +2 -2
- package/dist/assets/{mount-ingest-root-C8dDNkUg.js → mount-ingest-root-V6TW9DZ2.js} +2 -2
- package/dist/assets/{mount-manifest-z3xK0qgx.js → mount-manifest-CqeWB7Ee.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-CHZLDOUt.js → mount-three-ingest-root-t2Wui3vt.js} +1 -1
- package/dist/assets/{mounted-authoring-CZw66UYV.js → mounted-authoring-KHG82NX1.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-DP4yrSoT.js → mounted-story-viewport-source-CxAxDBsa.js} +1 -1
- package/dist/assets/{native-debug-module-qMZlzFCw.js → native-debug-module-DwlRvzkF.js} +1 -1
- package/dist/assets/{navigation-BneGZzZt.js → navigation-28Ep45c7.js} +1 -1
- package/dist/assets/{navmesh.menu-Bh4FuG-U.js → navmesh.menu-BrJWsbjl.js} +1 -1
- package/dist/assets/{navmesh.service-BB71x7KW.js → navmesh.service-DVbMEjTE.js} +1 -1
- package/dist/assets/network-observer.service-CEa29yrk.js +1 -0
- package/dist/assets/{network.utility-DBva0eo8.js → network.utility-BRhLmp80.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-q7c_gezv.js → object3d-document-session-registry-KdwbvotY.js} +2 -2
- package/dist/assets/{oid-transform-tKqLhlWg.js → oid-transform-CsrSC89v.js} +1 -1
- package/dist/assets/{particles-gUgFtSRY.js → particles-CmZGGF8w.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-Cd5O2LTH.js → pixi-authoring-adapter-D40Z8i2g.js} +1 -1
- package/dist/assets/{pixi-live-write-target-DHzgc22z.js → pixi-live-write-target-SP1J_Z2u.js} +1 -1
- package/dist/assets/{play.command-BxgvkWfL.js → play.command-vooZ9-ey.js} +2 -2
- package/dist/assets/{presentation-C5hzwpZR.js → presentation-DEKF5-uq.js} +1 -1
- package/dist/assets/{product-CKGKSgsU.js → product-BR_0EunR.js} +1 -1
- package/dist/assets/{profiler.action-S08Up0JS.js → profiler.action-C6FQKIZp.js} +1 -1
- package/dist/assets/{profiler.menu-Dy4i7lwO.js → profiler.menu-BP9RwbU1.js} +1 -1
- package/dist/assets/{profiler.utility-CC8CJLy8.js → profiler.utility-DvjunIf8.js} +1 -1
- package/dist/assets/{project-authoring-session-BXLqBDUm.js → project-authoring-session-_COIP71G.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-BX2GxZq2.js → properties-bone-constraints.inspector-OzttqvWB.js} +1 -1
- package/dist/assets/{properties-bone.inspector-CCLVVUtG.js → properties-bone.inspector-kInoyt85.js} +1 -1
- package/dist/assets/{properties-collection.inspector-CKbzSvCC.js → properties-collection.inspector-nm7jQja-.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-DV1P6hUd.js → properties-constraints.inspector-DkV8Jikj.js} +1 -1
- package/dist/assets/{properties-data.inspector-BMaGtE_w.js → properties-data.inspector-hKbGamLI.js} +1 -1
- package/dist/assets/{properties-material.inspector-BtesjppG.js → properties-material.inspector-BjgT_KgY.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-MiHOsiuf.js → properties-modifiers.inspector-v4Mbx8Xz.js} +1 -1
- package/dist/assets/{properties-object.inspector-Ct8masbP.js → properties-object.inspector-CWbTsWCw.js} +1 -1
- package/dist/assets/{properties-output.inspector-CVNr0tSt.js → properties-output.inspector-DQZALPse.js} +1 -1
- package/dist/assets/{properties-particles.inspector-EMFa11PY.js → properties-particles.inspector-weWPpL_A.js} +1 -1
- package/dist/assets/{properties-physics.inspector-CACxDEwm.js → properties-physics.inspector-C7IG77NL.js} +1 -1
- package/dist/assets/{properties-render.inspector-CtijIdsj.js → properties-render.inspector-DSl9EDnL.js} +1 -1
- package/dist/assets/{properties-scene.inspector-oEdDyqg4.js → properties-scene.inspector-PuE3GVf0.js} +1 -1
- package/dist/assets/{properties-texture.inspector-C_gpMJPm.js → properties-texture.inspector-CDJvmcMo.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-iXXhbErN.js → properties-view-layer.inspector-CIzHouzX.js} +1 -1
- package/dist/assets/{properties-world.inspector-BTG_6enJ.js → properties-world.inspector-DQ405ga3.js} +1 -1
- package/dist/assets/{r3f-design-session-BpFmOBy3.js → r3f-design-session--AwFLkqS.js} +2 -2
- package/dist/assets/{r3f-physics-binding-Dc4KkqeK.js → r3f-physics-binding-C367f3es.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-Bqqwlt5P.js → r3f-source-authoring-adapter-rY4oUsiw.js} +1 -1
- package/dist/assets/{react-canvas-navigation-CHqEpva-.js → react-canvas-navigation-B2T6Ex7v.js} +1 -1
- package/dist/assets/{react-inspector.service-BofSBcrA.js → react-inspector.service-Dtx0bS4m.js} +1 -1
- package/dist/assets/{react-story-board-DA2YLI8m.js → react-story-board-DK2gCLDM.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-CQZa_73g.js → react-three-rapier.esm-ZuuHJ5TA.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-4sStON8E.js → react-world-authoring-adapter-BfTa6po4.js} +1 -1
- package/dist/assets/{realm-services-DbZYHQSf.js → realm-services-DAxxPTgw.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-DNvA6bnY.js → reflection-probe-capture.inspector-oK4Y13Sr.js} +1 -1
- package/dist/assets/{registry-DBlUxvdQ.js → registry-C5f5aZAs.js} +1 -1
- package/dist/assets/{relative-import-specifier-B0yhWWcj.js → relative-import-specifier-NeaT58-U.js} +1 -1
- package/dist/assets/{render-env-DdFrpGB_.js → render-env-MILcoGR5.js} +1 -1
- package/dist/assets/{render-features-B35P-in2.js → render-features-Cz08v8GA.js} +1 -1
- package/dist/assets/{render-settings-C81L61oc.js → render-settings-BaDAZZ5m.js} +1 -1
- package/dist/assets/{resolve-three-CM8Cg4vF.js → resolve-three-DBHa7nY7.js} +3 -3
- package/dist/assets/{root-seam-contract-BUz-MUf1.js → root-seam-contract-CyLVcHYX.js} +1 -1
- package/dist/assets/{run-selection-BdiLPzVf.js → run-selection-ChEny_0a.js} +1 -1
- package/dist/assets/{scene-capture-Diz1G192.js → scene-capture-3eoT50fi.js} +1 -1
- package/dist/assets/{scene-document.service-DfXZsaKM.js → scene-document.service-CLsVmYz5.js} +2 -2
- package/dist/assets/{scene-framing-B5dto0bO.js → scene-framing-DqnnEUQr.js} +1 -1
- package/dist/assets/{seeded-random-WDTtjPze.js → seeded-random-Bym-G8VS.js} +1 -1
- package/dist/assets/{session-CeyQA0Dv.js → session-BMie6EFt.js} +19 -2
- package/dist/assets/{setup-renderer-D9SD_Wht.js → setup-renderer-BRr_FO9v.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-D6uGhge2.js → source-object3d-authoring-adapter-BJfxzBm-.js} +1 -1
- package/dist/assets/{source-persistence-backend-CxVBXGoQ.js → source-persistence-backend-fM7c14og.js} +1 -1
- package/dist/assets/{stage-keyboard-BPb1swaM.js → stage-keyboard-B7FFvLAt.js} +1 -1
- package/dist/assets/{stage-overlay-set-DRa6xB93.js → stage-overlay-set-b3YtjPUK.js} +1 -1
- package/dist/assets/{stage-presence-markers-CGxHoE5g.js → stage-presence-markers-DupmdE5J.js} +1 -1
- package/dist/assets/{stage-transform-tools-CQuG66LW.js → stage-transform-tools-G301IZLz.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-D4bfoK0I.js → standard-viewport-dressing-iw1YiKLl.js} +1 -1
- package/dist/assets/{state-watch.action-DPVKmPwL.js → state-watch.action-ZyISJd3P.js} +1 -1
- package/dist/assets/{state-watch.menu-DpISV21j.js → state-watch.menu-5Jmmf4KU.js} +1 -1
- package/dist/assets/{state-watch.utility-DwKoTnVp.js → state-watch.utility-DE1_5uQu.js} +1 -1
- package/dist/assets/{story-capture-Bzwbk_mv.js → story-capture-CUOYMnKE.js} +1 -1
- package/dist/assets/{story-documents-De1zQ6Qz.js → story-documents-B-7wheax.js} +1 -1
- package/dist/assets/{story-documents.service-6eOlV6NP.js → story-documents.service-B7yoy-p3.js} +1 -1
- package/dist/assets/{story-documents.service-8XTTuO7s.js → story-documents.service-DpyGPm2t.js} +1 -1
- package/dist/assets/{story-media-presence-DpEeszWv.js → story-media-presence-Dzckug4Q.js} +1 -1
- package/dist/assets/{story-pixi-preview-BEyaPLy0.js → story-pixi-preview-BIxZYIRj.js} +1 -1
- package/dist/assets/{story-presentation-CjTxyaxs.js → story-presentation-FyJUnwn-.js} +1 -1
- package/dist/assets/{story-three-preview-abAavxSh.js → story-three-preview-B5ugRQMT.js} +2 -2
- package/dist/assets/{studio-environment-BiC6OVkT.js → studio-environment-_CFFf1qZ.js} +1 -1
- package/dist/assets/{surface-state-CUfqJeMb.js → surface-state-CekhoCtq.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-DTioDasF.js → syntactic-prop-specs-DVQnEcgk.js} +1 -1
- package/dist/assets/{team-playtest.service-GRj4yKy4.js → team-playtest.service-DI-ze_sL.js} +1 -1
- package/dist/assets/{three-authoring-adapter-D3qfWIRk.js → three-authoring-adapter-B4acyr5V.js} +1 -1
- package/dist/assets/three-authoring.service-DWlGRzck.js +2 -0
- package/dist/assets/{three-CQcV_QdT.js → three-iB6lh-87.js} +1 -1
- package/dist/assets/{three-ingest-runtime-E3dJH9KF.js → three-ingest-runtime-BApYh4sI.js} +1 -1
- package/dist/assets/{three-integration-BjEyDiTB.js → three-integration-CUPcCAS0.js} +2 -2
- package/dist/assets/three-integration.service-BmuTfd1l.js +1 -0
- package/dist/assets/{three-projection-core-CkmVzWhv.js → three-projection-core--t6W_82k.js} +1 -1
- package/dist/assets/{three-state-CzjS3Z7g.js → three-state-3H5P7gh-.js} +1 -1
- package/dist/assets/{three-story-capture.service-D-1pij9x.js → three-story-capture.service-xgzcWKlT.js} +2 -2
- package/dist/assets/{three-story-model-B1sz0NKf.js → three-story-model-Ba4xpWVd.js} +1 -1
- package/dist/assets/{three-viewport-presentation-OxBEdgIP.js → three-viewport-presentation-DVHqHSnD.js} +1 -1
- package/dist/assets/{transform-mode-request-DO67Jvcm.js → transform-mode-request-CMO69wNw.js} +1 -1
- package/dist/assets/{transport-strip-D55r6FTk.js → transport-strip-ByKA31mv.js} +1 -1
- package/dist/assets/transport.header-DIUcizgL.js +1 -0
- package/dist/assets/{tuples-CJ18T3dX.js → tuples-9u_AJ1B2.js} +1 -1
- package/dist/assets/{ui-board-document-DEx342dp.js → ui-board-document-B78RXlo-.js} +2 -2
- package/dist/assets/{user-data-BDBZj06-.js → user-data-BOLOr3Ni.js} +1 -1
- package/dist/assets/{utility-view-state-B7prGtP-.js → utility-view-state-C1a2PQ1Q.js} +1 -1
- package/dist/assets/{viewport-door-Slxb_SvE.js → viewport-door-BntKRlmZ.js} +1 -1
- package/dist/assets/{viewport-root-presentation-B6vzusDX.js → viewport-root-presentation-C_kg4roh.js} +1 -1
- package/dist/assets/{viewport-surface-status-C4UZ_Uq4.js → viewport-surface-status-kJEWe53R.js} +1 -1
- package/dist/assets/{webworkerAll-DO15AziI.js → webworkerAll-B7fnMdO1.js} +1 -1
- package/dist/assets/worker-Gtu-EAm9.js +2 -0
- package/dist/assets/{workspace-arrangement-BjHQJUoD.js → workspace-arrangement-QrXNZ_Sw.js} +1 -1
- package/dist/assets/{world-documents-CuBxaDZx.js → world-documents-Dj88bL-j.js} +1 -1
- package/dist/assets/{world-root-stage-binding-Bn0b7XsL.js → world-root-stage-binding-CwMrB1ug.js} +1 -1
- package/dist/assets/{xstate-animation-binding-I-GEhYkk.js → xstate-animation-binding-BivSx7AQ.js} +1 -1
- package/dist/assets/{xstate-animation-meta-Io__GNze.js → xstate-animation-meta-bn7lly3Z.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-BvYcwQTS.js +0 -1
- package/dist/assets/Object3DDocumentViewport-DcX529Vg.js +0 -2
- package/dist/assets/autoplay.service-CclAhFII.js +0 -1
- package/dist/assets/blender-emscripten-engine-Cd6az4pU.js +0 -2
- package/dist/assets/blender-wali-engine-CZcS3eAd.js +0 -2
- package/dist/assets/instances.command-CxgGOKUm.js +0 -1
- package/dist/assets/network-observer.service-BKOQ_E--.js +0 -1
- package/dist/assets/three-authoring.service-C2oNRt7a.js +0 -2
- package/dist/assets/three-integration.service-n5uKl57k.js +0 -1
- package/dist/assets/transport.header-hkELPlfF.js +0 -1
- package/dist/assets/worker-jepHAPPr.js +0 -2
|
@@ -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{af as r,a0 as k,aR as w,aS as z,aT 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{af as r,a0 as k,aR as w,aS as z,aT as C}from"./index-P_W_cZmi.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-CHqEpva-.js";import{R as E,h as D,i as F}from"./react-story-board-DA2YLI8m.js";import{ao as z,aq as B,bh as L,fP as X,fQ as I,ap as G,dm as V,eG as w,am as Y,an as K,c4 as H,O as q,fR as U,fS as W,af as S,fT as Z,da as $,db as N,dd as Q}from"./index-GOaZz_UJ.js";import{registerPresentedPixiApps as J}from"./canvas-preview-frames-CxHRaajp.js";import{R as tt}from"./ReactCanvasControls-DircULTK.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as et}from"./story-presentation-CjTxyaxs.js";import{m as nt}from"./pixi-story-model-DNkfnWUV.js";import{withPixiStoryMountTurn as T}from"./story-pixi-preview-BEyaPLy0.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-i3_nCWlL.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=G();for(const t of e)if(t.ok)for(const n of t.stories){const c=z({modulePath:t.modulePath,regions:r});if(c.medium!=="canvas"){c.via==="undeclared"&&B(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=D(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=J(o.exhibits.map(a=>a.mounted.app)),b=()=>{const a=N();n.style.transform=Q(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,K),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||q.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 U(w,()=>({adapter:x,nodeId:null}))},[e,x]),d.useEffect(()=>{if(!(!e||!C))return W(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},Z(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, ${F} ${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 Bt(){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,Bt as installCanvasBoardDocument};
|
|
1
|
+
import{a as y}from"./jsx-runtime-DPjLkJKQ.js";import{i as O}from"./react-canvas-navigation-B2T6Ex7v.js";import{R as E,h as D,i as F}from"./react-story-board-DK2gCLDM.js";import{ao as z,aq as B,bh as L,fP as X,fQ as I,ap as G,dm as V,eG as w,am as Y,an as K,c4 as H,O as q,fR as U,fS as W,af as S,fT as Z,da as $,db as N,dd as Q}from"./index-P_W_cZmi.js";import{registerPresentedPixiApps as J}from"./canvas-preview-frames-CHU5LqEd.js";import{R as tt}from"./ReactCanvasControls-NwZ3ERZn.js";import{r as d}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{s as et}from"./story-presentation-FyJUnwn-.js";import{m as nt}from"./pixi-story-model-DNkfnWUV.js";import{withPixiStoryMountTurn as T}from"./story-pixi-preview-BIxZYIRj.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-BcPv5r8o.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=G();for(const t of e)if(t.ok)for(const n of t.stories){const c=z({modulePath:t.modulePath,regions:r});if(c.medium!=="canvas"){c.via==="undeclared"&&B(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=D(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=J(o.exhibits.map(a=>a.mounted.app)),b=()=>{const a=N();n.style.transform=Q(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,K),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||q.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 U(w,()=>({adapter:x,nodeId:null}))},[e,x]),d.useEffect(()=>{if(!(!e||!C))return W(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},Z(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, ${F} ${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 Bt(){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,Bt as installCanvasBoardDocument};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as he,K as $,fw as ge,dG as R,dH as X,aJ as U,fx as H,aw as te,fy as xe,fz as oe,cE as T,aL as F,a1 as k,fA as fe,cW as me,fB as be,fC as Se,cD as q,a0 as _,cU as ye,de as ve,df as je,fD as ne,fE as ze,fF as se,dR as Y,fG as L,cR as Ee,fH as Q,cS as P,cT as I,dj as ee,fI as we,fJ as Ce,fK as ke,fL as Me,fM as Ge,fN as Ne}from"./index-GOaZz_UJ.js";import{r as u}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{S as Fe,a as re}from"./react-canvas-navigation-CHqEpva-.js";import{s as ie,c as ae,a as le,r as Le,b as K,m as ce,V as Pe,d as Te,e as Ve}from"./RootSelectionOverlay-D--07KbL.js";import{a as De}from"./Toolbar-BTun9j-K.js";import{r as We}from"./transform-mode-request-DO67Jvcm.js";import{T as Ye}from"./TransientHint-BjG5QZ7w.js";import{p as $e}from"./layered-pick-B3AjYd-G.js";function Re(t,s,o,r){const g=i=>()=>{s(),We(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 B(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=$();u.useSyncExternalStore(o.subscribe,o.getSnapshot),u.useEffect(()=>ge(s,"canvas"),[s]),u.useSyncExternalStore(R,X);const r=U(s),g=H(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(),Le(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=$();u.useSyncExternalStore(i.subscribe,i.getSnapshot),u.useSyncExternalStore(R,X);const l=u.useSyncExternalStore(r.subscribe,r.get,r.get),[c,v]=u.useState(()=>O.get(r)??null),a=u.useCallback(d=>{O.set(r,d),v(d)},[r]);u.useEffect(()=>xe(g),[g]),u.useEffect(()=>{if(t)return Re(i,()=>a(null),d=>a(O.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(Fe,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&&B(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||B(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;B(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(Ye,{}),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(F,{"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(F,{"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(F,{"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(F,{"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(Oe,{adapter:s,selected:[...i.selectedEntityIds]}),e.jsx(Ae,{documentId:g,view:r,hasSelection:i.selectedEntityIds.size>0,onCenterSelection:E,onFrameSelection:S})]})}),e.jsx(He,{adapter:s,view:r,documentId:g}),c?e.jsx(Be,{mode:c,view:r,adapter:s,containerRef:o,onExit:()=>a(null)}):null,e.jsx(q,{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(q,{label:"2D scene navigation",className:"volter-canvas-scene-navigation","data-volter-canvas-navigation-ignore":"true",children:[e.jsx(F,{"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(F,{"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(F,{"aria-label":"Zoom in",title:"Zoom in",size:"comfortable",onClick:()=>b(l.zoom*1.2),children:e.jsx(k,{icon:je,size:"md"})})]})]})}function He({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=H(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 Ae({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=$();u.useSyncExternalStore(v.subscribe,v.getSnapshot);const a=H(t),y=U(t),p=[{label:"Show Grid",on:y&&!a.gridWhenSnapping,pick:()=>{Y(t,!0),L(t,{gridWhenSnapping:!1})}},{label:"Show Grid When Snapping",on:y&&a.gridWhenSnapping,pick:()=>{Y(t,!0),L(t,{gridWhenSnapping:!0})}},{label:"Hide Grid",on:!y,pick:()=>Y(t,!1)}],b=()=>ue(t),x=[{label:"Rulers",on:a.rulers,toggle:()=>L(t,{rulers:!a.rulers})},{label:"Guides",on:a.guides,toggle:()=>L(t,{guides:!a.guides})},{label:"Origin",on:a.origin,toggle:()=>L(t,{origin:!a.origin})},{label:"Viewport",on:a.viewport,toggle:()=>L(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(P,{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(P,{"data-testid":"canvas-scene-toggle-grid",onSelect:S(b),children:[e.jsx("span",{className:"volter-menu-check"}),"Toggle Grid"]})]}),x.map(h=>e.jsxs(P,{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(P,{role:"menuitemcheckbox","aria-checked":a[h],onSelect:S(()=>L(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(P,{disabled:!o,onSelect:S(r),children:[e.jsx("span",{className:"volter-menu-check"}),"Center Selection"]}),e.jsxs(P,{disabled:!o,onSelect:S(g),children:[e.jsx("span",{className:"volter-menu-check"}),"Frame Selection"]}),e.jsxs(P,{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(F,{"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)&&!H(t).gridWhenSnapping;Y(t,!0),L(t,{gridWhenSnapping:s})}const O=new WeakMap;function Be({mode:t,view:s,adapter:o,containerRef:r,onExit:g}){const i=$(),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?Ne(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=$e(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,N=w.size===1&&o?[...w][0]:null,V=N&&o?we(o,N):null,W=N?V?.layers(N).find(M=>M.category==="origin")?.handles.find(M=>M.writable):void 0;if(!N||!V||!W)return;n.currentTarget.setPointerCapture(n.pointerId);const A=M=>{const J=x(N,p(M.clientX,M.clientY),M.metaKey||M.ctrlKey);return[J.x,J.y,0]};V.preview(N,W.id,A(n));const Z=M=>V.preview(N,W.id,A(M)),pe=M=>{window.removeEventListener("pointermove",Z),V.commit(N,W.id,A(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(Pe,{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 Oe({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(F,{"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,K as $,fw as ge,dG as R,dH as X,aJ as U,fx as H,aw as te,fy as xe,fz as oe,cE as T,aL as F,a1 as k,fA as fe,cW as me,fB as be,fC as Se,cD as q,a0 as _,cU as ye,de as ve,df as je,fD as ne,fE as ze,fF as se,dR as Y,fG as L,cR as Ee,fH as Q,cS as P,cT as I,dj as ee,fI as we,fJ as Ce,fK as ke,fL as Me,fM as Ge,fN as Ne}from"./index-P_W_cZmi.js";import{r as u}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{S as Fe,a as re}from"./react-canvas-navigation-B2T6Ex7v.js";import{s as ie,c as ae,a as le,r as Le,b as K,m as ce,V as Pe,d as Te,e as Ve}from"./RootSelectionOverlay-CpjNd-WW.js";import{a as De}from"./Toolbar-vVR3O4FU.js";import{r as We}from"./transform-mode-request-CMO69wNw.js";import{T as Ye}from"./TransientHint-6ZAWyosH.js";import{p as $e}from"./layered-pick-Ci9qlAyv.js";function Re(t,s,o,r){const g=i=>()=>{s(),We(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 B(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=$();u.useSyncExternalStore(o.subscribe,o.getSnapshot),u.useEffect(()=>ge(s,"canvas"),[s]),u.useSyncExternalStore(R,X);const r=U(s),g=H(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(),Le(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=$();u.useSyncExternalStore(i.subscribe,i.getSnapshot),u.useSyncExternalStore(R,X);const l=u.useSyncExternalStore(r.subscribe,r.get,r.get),[c,v]=u.useState(()=>O.get(r)??null),a=u.useCallback(d=>{O.set(r,d),v(d)},[r]);u.useEffect(()=>xe(g),[g]),u.useEffect(()=>{if(t)return Re(i,()=>a(null),d=>a(O.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(Fe,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&&B(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||B(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;B(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(Ye,{}),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(F,{"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(F,{"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(F,{"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(F,{"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(Oe,{adapter:s,selected:[...i.selectedEntityIds]}),e.jsx(Ae,{documentId:g,view:r,hasSelection:i.selectedEntityIds.size>0,onCenterSelection:E,onFrameSelection:S})]})}),e.jsx(He,{adapter:s,view:r,documentId:g}),c?e.jsx(Be,{mode:c,view:r,adapter:s,containerRef:o,onExit:()=>a(null)}):null,e.jsx(q,{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(q,{label:"2D scene navigation",className:"volter-canvas-scene-navigation","data-volter-canvas-navigation-ignore":"true",children:[e.jsx(F,{"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(F,{"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(F,{"aria-label":"Zoom in",title:"Zoom in",size:"comfortable",onClick:()=>b(l.zoom*1.2),children:e.jsx(k,{icon:je,size:"md"})})]})]})}function He({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=H(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 Ae({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=$();u.useSyncExternalStore(v.subscribe,v.getSnapshot);const a=H(t),y=U(t),p=[{label:"Show Grid",on:y&&!a.gridWhenSnapping,pick:()=>{Y(t,!0),L(t,{gridWhenSnapping:!1})}},{label:"Show Grid When Snapping",on:y&&a.gridWhenSnapping,pick:()=>{Y(t,!0),L(t,{gridWhenSnapping:!0})}},{label:"Hide Grid",on:!y,pick:()=>Y(t,!1)}],b=()=>ue(t),x=[{label:"Rulers",on:a.rulers,toggle:()=>L(t,{rulers:!a.rulers})},{label:"Guides",on:a.guides,toggle:()=>L(t,{guides:!a.guides})},{label:"Origin",on:a.origin,toggle:()=>L(t,{origin:!a.origin})},{label:"Viewport",on:a.viewport,toggle:()=>L(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(P,{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(P,{"data-testid":"canvas-scene-toggle-grid",onSelect:S(b),children:[e.jsx("span",{className:"volter-menu-check"}),"Toggle Grid"]})]}),x.map(h=>e.jsxs(P,{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(P,{role:"menuitemcheckbox","aria-checked":a[h],onSelect:S(()=>L(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(P,{disabled:!o,onSelect:S(r),children:[e.jsx("span",{className:"volter-menu-check"}),"Center Selection"]}),e.jsxs(P,{disabled:!o,onSelect:S(g),children:[e.jsx("span",{className:"volter-menu-check"}),"Frame Selection"]}),e.jsxs(P,{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(F,{"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)&&!H(t).gridWhenSnapping;Y(t,!0),L(t,{gridWhenSnapping:s})}const O=new WeakMap;function Be({mode:t,view:s,adapter:o,containerRef:r,onExit:g}){const i=$(),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?Ne(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=$e(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,N=w.size===1&&o?[...w][0]:null,V=N&&o?we(o,N):null,W=N?V?.layers(N).find(M=>M.category==="origin")?.handles.find(M=>M.writable):void 0;if(!N||!V||!W)return;n.currentTarget.setPointerCapture(n.pointerId);const A=M=>{const J=x(N,p(M.clientX,M.clientY),M.metaKey||M.ctrlKey);return[J.x,J.y,0]};V.preview(N,W.id,A(n));const Z=M=>V.preview(N,W.id,A(M)),pe=M=>{window.removeEventListener("pointermove",Z),V.commit(N,W.id,A(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(Pe,{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 Oe({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(F,{"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{dz as m,aM as u,dA as p}from"./index-
|
|
1
|
+
import{a as e}from"./jsx-runtime-DPjLkJKQ.js";import{r as l}from"./index-nmcBqr7Y.js";import{dz as m,aM as u,dA as p}from"./index-P_W_cZmi.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 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-DcEC9ah3.js";import{K as d,af as v}from"./index-P_W_cZmi.js";import{r as l}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as S}from"./live-mixers-B-bwLZ7c.js";import{c as h,a as b,b as x}from"./asset-preview-DekZ4wVq.js";import{O as j}from"./StageHost-BTBHJxSE.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-CLVnI3iG.js";import"./workspace-arrangement-QrXNZ_Sw.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-BOLOr3Ni.js";import"./entity-object-CWtH9RjW.js";import"./three-contract-Dkt6PmWY.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DxZhDpw2.js";import"./studio-environment-_CFFf1qZ.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-3H5P7gh-.js";import"./standard-viewport-dressing-iw1YiKLl.js";import"./content-bounds-C7j7h9Az.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./model-inspection-VkTYHm5t.js";import"./three-viewport-presentation-DVHqHSnD.js";import"./clip-planes-CnAI6DZn.js";import"./three-iB6lh-87.js";import"./component-instance-root-DNkkU6je.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./model-thumbnail-Bg8zc_fW.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./three-integration-CUPcCAS0.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-Ci9qlAyv.js";import"./root-stacking-BEd9ZvxC.js";import"./object3d-document-session-registry-KdwbvotY.js";import"./viewport-door-BntKRlmZ.js";import"./scene-framing-DqnnEUQr.js";import"./source-object3d-authoring-adapter-BJfxzBm-.js";import"./three-projection-core--t6W_82k.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-ByKA31mv.js";import"./viewport-surface-status-kJEWe53R.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-JioL9Pmv.js → EnvironmentAssetDocument-BOpdqZTU.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{du as M,dv as C,dw as D,dx as k,af as y,b4 as R,dy as b}from"./index-
|
|
1
|
+
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{du as M,dv as C,dw as D,dx as k,af as y,b4 as R,dy as b}from"./index-P_W_cZmi.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-CtoTTS7a.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 X(e){return e.split("/").pop()??e}function v(e,t,r){return Math.min(r,Math.max(t,e))}function U(e){return e.split(/[?#]/,1)[0].toLowerCase().endsWith(".exr")}async function W(e){const t=U(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=X(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-BRl0PIim.js → GameplaySessionTimeline-BluA8QYW.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{fs as d,ft as M,c$ as g,af as o,ep as $}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{fs as d,ft as M,c$ as g,af as o,ep as $}from"./index-P_W_cZmi.js";import{c as F}from"./gameplay-replay-DH0P9r05.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,m){return Math.max(0,t+m-(u??t))}function y(t){const u=Math.max(0,Math.floor(t/1e3)),m=Math.floor(u/60),i=u%60;return`${m}:${String(i).padStart(2,"0")}`}function K(){const t=c.useSyncExternalStore(d.subscribe,d.getSnapshot,d.getSnapshot),u=c.useRef(null),m=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 f=await F(s,l);e||S({src:`data:image/png;base64,${f.base64}`})}catch(f){e||S({error:f instanceof Error?f.message:String(f)})}})},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,p=a?.status==="live"&&v&&Number.isFinite(E)&&E>=a.startedAt?v:null,h=a&&i?a.startedAt+i.ms:null,x=p&&h!==null?p.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/(p?.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=m.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 ${g[3]}`,fontSize:11},children:"Loading sessions…"}):t.error&&t.sessions.length===0?r.jsxs("div",{role:"alert",style:{padding:`4px ${g[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:g[2],padding:`0 ${g[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||p)?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:g[4],fontSize:$.sm},children:b?.error??"Reconstructing frame…"}):n?r.jsx("video",{ref:m,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:p?.frames.length===0?"Frame previews are available after recording stops.":`This point is outside the ${y(p?.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",p?" 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{K 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{aU as W,aV as H,aW as B,aX as M,aK as v,a0 as P,aY as h,aZ 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{aU as W,aV as H,aW as B,aX as M,aK as v,a0 as P,aY as h,aZ as F}from"./index-P_W_cZmi.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(O,{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"?` · ${T(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 O({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 T(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-BoQBOjdw.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-DcEC9ah3.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-CLVnI3iG.js";import"./workspace-arrangement-QrXNZ_Sw.js";import"./index-P_W_cZmi.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-BOLOr3Ni.js";import"./entity-object-CWtH9RjW.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-DekZ4wVq.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DxZhDpw2.js";import"./studio-environment-_CFFf1qZ.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-BTBHJxSE.js";import"./three-state-3H5P7gh-.js";import"./standard-viewport-dressing-iw1YiKLl.js";import"./content-bounds-C7j7h9Az.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./model-inspection-VkTYHm5t.js";import"./three-viewport-presentation-DVHqHSnD.js";import"./clip-planes-CnAI6DZn.js";import"./three-iB6lh-87.js";import"./component-instance-root-DNkkU6je.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./model-thumbnail-Bg8zc_fW.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./three-integration-CUPcCAS0.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-Ci9qlAyv.js";import"./root-stacking-BEd9ZvxC.js";import"./object3d-document-session-registry-KdwbvotY.js";import"./viewport-door-BntKRlmZ.js";import"./scene-framing-DqnnEUQr.js";import"./source-object3d-authoring-adapter-BJfxzBm-.js";import"./three-projection-core--t6W_82k.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-ByKA31mv.js";import"./viewport-surface-status-kJEWe53R.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{af as t,_ as b,h5 as z,aT as F,h6 as M,b4 as J}from"./index-GOaZz_UJ.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 G(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 U(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=U(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}=G(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{af as t,_ as b,h5 as z,aT as F,h6 as M,b4 as J}from"./index-P_W_cZmi.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 G(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 U(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=U(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}=G(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 i}from"./jsx-runtime-DPjLkJKQ.js";import{gd as V,af as g,b7 as P,ge as U,gf as G,O as J,gg as K,gh as Q}from"./index-
|
|
1
|
+
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{gd as V,af as g,b7 as P,ge as U,gf as G,O as J,gg as K,gh as Q}from"./index-P_W_cZmi.js";import{r as f}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{d as S}from"./asset-preview-DekZ4wVq.js";import{r as X,a as Y}from"./object3d-document-session-registry-KdwbvotY.js";import{O as Z}from"./Object3DDocumentViewport-uabnovqE.js";import{S as ee}from"./standard-viewport-dressing-iw1YiKLl.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-CLVnI3iG.js";import"./workspace-arrangement-QrXNZ_Sw.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DxZhDpw2.js";import"./studio-environment-_CFFf1qZ.js";import"./user-data-BOLOr3Ni.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-kJEWe53R.js";import"./content-bounds-C7j7h9Az.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 ie(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 ne(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(n){return{kind:"import-failed",message:`Export '${e}' threw while building: ${H(n)}`,...n instanceof Error&&n.stack?{stack:n.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=ie(l);if("kind"in c)throw new v(c);const n=await ne(c.name,c.value);if("kind"in n)throw new v(n);return n}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=Q(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:n}){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(),x=null,k=null;const M=()=>{m&&(d.remove(m),d.animations=[],k?k():S(m),m=null,k=null)},B=(o,h)=>{M(),m=o,k=h,d.add(o),d.animations=o.animations,K(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),J.error(`${r}: ${a.message}`,"live-module"),h||w({status:"fallback",reason:o.message})},O=o=>s||o!==y,W=async()=>{y+=1;const o=y,h=G();let a;try{a=await se(t,r,h)}catch(j){if(O(o))return;if(!(j instanceof v))throw j;x=j,I(j.refusal,m!==null);return}if(O(o)){a.dispose?a.dispose():S(a.root);return}B(a.root,a.dispose??null),x=null,U(r),E(null),w({status:"live",exportName:a.exportName})},A=()=>(p=W(),p),q=X(e,async()=>{let o=A();for(;;){if(await o,s)throw new Error(`Document closed while rebuilding: ${r}`);if(o===p)break;o=p}if(x)throw x});A();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=Y(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"?i.jsxs("div",{style:{padding:20,color:g.content.muted},children:["Inspecting ",l,"…"]}):u.status==="fallback"?i.jsxs("div",{style:C,children:[b?i.jsx(N,{failure:b}):null,i.jsx("div",{style:{...F,overflow:"auto"},children:n})]}):i.jsxs("div",{style:C,children:[i.jsx("div",{style:{...F,opacity:b?.35:1},children:i.jsx(Z,{documentId:e,sourcePath:r,displayName:l,build:_,active:c,assetType:"model module",cameraDirection:ee,modelSource:{kind:"project-file",path:r}})}),b?i.jsx(N,{failure:b}):null]})}function N({failure:e}){return i.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:[i.jsx("div",{style:{fontWeight:600},children:"This module did not build — showing the last good model."}),i.jsx("div",{style:{marginTop:4},children:e.message}),e.stack?i.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{du as U,gb as A,dw as N,dx as I,af as y,b4 as M,ch as k,dy as C,aR as F}from"./index-
|
|
1
|
+
import{a as i}from"./jsx-runtime-DPjLkJKQ.js";import{du as U,gb as A,dw as N,dx as I,af as y,b4 as M,ch as k,dy as C,aR as F}from"./index-P_W_cZmi.js";import{r as w}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{EffectComposer as P,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-CtoTTS7a.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 z(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 P(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(F,{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:U,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?`${z(n.domainMin)} → ${z(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{af 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{af as a}from"./index-P_W_cZmi.js";import{l as w,d as f}from"./asset-preview-DekZ4wVq.js";import{m as x,l as E,c as S}from"./model-thumbnail-Bg8zc_fW.js";import{O as M}from"./StageHost-BTBHJxSE.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-CLVnI3iG.js";import"./workspace-arrangement-QrXNZ_Sw.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DxZhDpw2.js";import"./studio-environment-_CFFf1qZ.js";import"./user-data-BOLOr3Ni.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-3H5P7gh-.js";import"./editor-shell-store-DcEC9ah3.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./entity-object-CWtH9RjW.js";import"./three-contract-Dkt6PmWY.js";import"./standard-viewport-dressing-iw1YiKLl.js";import"./content-bounds-C7j7h9Az.js";import"./preview-renderer-BrYNFV1p.js";import"./live-mixers-B-bwLZ7c.js";import"./live-gesture-lock-DJbrjOqf.js";import"./model-inspection-VkTYHm5t.js";import"./three-viewport-presentation-DVHqHSnD.js";import"./clip-planes-CnAI6DZn.js";import"./three-iB6lh-87.js";import"./component-instance-root-DNkkU6je.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./three-integration-CUPcCAS0.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-Ci9qlAyv.js";import"./root-stacking-BEd9ZvxC.js";import"./object3d-document-session-registry-KdwbvotY.js";import"./viewport-door-BntKRlmZ.js";import"./scene-framing-DqnnEUQr.js";import"./source-object3d-authoring-adapter-BJfxzBm-.js";import"./three-projection-core--t6W_82k.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-ByKA31mv.js";import"./viewport-surface-status-kJEWe53R.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i}from"./index-nmcBqr7Y.js";import{r as s}from"./project-authoring-session-
|
|
1
|
+
import{r as i}from"./index-nmcBqr7Y.js";import{r as s}from"./project-authoring-session-_COIP71G.js";import{O as e}from"./index-P_W_cZmi.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./edit-mode-authoring-sVhMylk9.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";function A({store:r}){return i.useEffect(()=>{const t=s(r);return t.ready.catch(o=>{e.error(`Authoring session failed: ${o instanceof Error?o.message:String(o)}`,"authoring")}),t.dispose},[r]),null}export{A as ProjectAuthoringBootstrap};
|
package/dist/assets/{Object3DDocumentToolbar-COuKq3sB.js → Object3DDocumentToolbar-BmWUB7YS.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{dB as ee,dC as N,dD as se,dE as L,dF as te,dG as ie,dH as z,dI as B,aH as re,aI as ae,dJ as S,dK as oe,cO as F,cE as v,aL as f,a1 as n,dg as ne,a0 as W,cQ as le,cJ as ce,cR as A,cS as d,dj as H,cT as de,dL as pe,dM as me,dN as K,dh as U,dO as ue,dP as he,dQ as $,aM as ge,aK as G,dR as ve,aJ as _,dS as be,dT as xe,dU as je,cK as we,dV as Se,dW as fe}from"./index-
|
|
1
|
+
import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{dB as ee,dC as N,dD as se,dE as L,dF as te,dG as ie,dH as z,dI as B,aH as re,aI as ae,dJ as S,dK as oe,cO as F,cE as v,aL as f,a1 as n,dg as ne,a0 as W,cQ as le,cJ as ce,cR as A,cS as d,dj as H,cT as de,dL as pe,dM as me,dN as K,dh as U,dO as ue,dP as he,dQ as $,aM as ge,aK as G,dR as ve,aJ as _,dS as be,dT as xe,dU as je,cK as we,dV as Se,dW as fe}from"./index-P_W_cZmi.js";import{r}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{e as ye,f as Ce}from"./asset-preview-DekZ4wVq.js";import{s as Ee}from"./model-inspection-VkTYHm5t.js";import{s as Pe,o as J,a as Ve}from"./object3d-document-session-registry-KdwbvotY.js";import{v as ke}from"./viewport-door-BntKRlmZ.js";import{v as Q,V as Me,a as De,p as Oe,b as Te,c as Re}from"./ViewportShadingMenu-CsURi5uc.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-CLVnI3iG.js";import"./workspace-arrangement-QrXNZ_Sw.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DxZhDpw2.js";import"./studio-environment-_CFFf1qZ.js";import"./user-data-BOLOr3Ni.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";const q=()=>()=>{},b=()=>0,Ne=[{key:"skeletons",label:"Bones"},{key:"weights",label:"Weights"},{key:"cursor",label:"3D Cursor"},{key:"cameras",label:"Cameras"},{key:"lights",label:"Lights"},{key:"empties",label:"Empties"}];function ps({documentId:i,assetPath:p}){r.useSyncExternalStore(Pe,J,J);const t=Ve(i);r.useSyncExternalStore(ee,N,N),r.useSyncExternalStore(t?.subscribe??q,t?.getSnapshot??b,t?.getSnapshot??b),r.useSyncExternalStore(se,L,L);const l=te(i);r.useSyncExternalStore(l?.subscribe??q,l?.getSnapshot??b,l?.getSnapshot??b);const X=ke(i),[y,C]=r.useState(null),[E,h]=r.useState(null),[P,g]=r.useState(!1),[V,c]=r.useState(!1),k=r.useRef(null),M=r.useRef(null);if(r.useSyncExternalStore(ie,z,z),!t)return null;const a=t.presentation(),{lighting:m}=B(i),u=re(i),D=u?ae(u.stageKind):null,Y=u?.documentLayer?.all?.lighting?.studioPreset===S.id||D?.all?.lighting?.studioPreset===S.id,x=u?oe(u.stageKind):!1,O=e=>x?{modes:{[B(i).drawMode]:{lighting:e}}}:{all:{lighting:e}},j=new Set(Object.entries(D?.modes??{}).filter(([,e])=>e?.lighting!==void 0).map(([e])=>e)),w=new Set(Ee(t.root).filter(e=>e.available).map(e=>e.mode)),Z=[...x?Q.map(e=>e.mode==="solid"?{...e,label:"Solid",description:"Materials' colours under the studio lights"}:e.mode==="clay"?{...e,label:"Clay"}:e):Q,...j.has("preview")?[{mode:"preview",label:"Material Preview",description:"Materials lit by a preview environment"}]:[],...j.has("rendered")?[{mode:"rendered",label:"Rendered",description:"Lit as a render is, by the scene's own lights"}]:[],...w.has("uv")?[{mode:"uv",label:"UV",description:"UV coordinates as surface color"}]:[],...w.has("vertex-colors")?[{mode:"vertex-colors",label:"Vertex colors",description:"Authored color attributes without textures"}]:[]],T=async e=>{if(p){h(null);try{await fe().saveThumbnailFraming(p,e?void 0:t.cameraPose())}catch(o){h(o instanceof Error?o.message:String(o))}}},I=async()=>{h(null);try{const e={background:a.background},o=p?.toLowerCase().endsWith(".spz")?await ye(p,e):Ce(t.root,e);C(`data:image/png;base64,${o.contactSheet.base64}`)}catch(e){h(e instanceof Error?e.message:String(e))}},R=t.selection().length>0?"Frame selection":"Frame all";return s.jsxs("div",{className:"volter-model-document-header",children:[s.jsxs(F,{compact:!0,label:"Viewport view controls",className:"volter-model-viewport-toolbar volter-model-viewport-toolbar--view",children:[s.jsx(v,{text:R,children:s.jsx(f,{"aria-label":R,onClick:()=>t.frame(),children:s.jsx(n,{icon:ne,size:"md"})})}),s.jsxs("div",{className:"volter-viewport-popover-anchor",children:[s.jsx(v,{text:"Camera orientation and projection",children:s.jsxs(W,{ref:k,type:"button",size:"compact",variant:"secondary","aria-label":`Camera view: ${a.projection}`,"aria-haspopup":"menu","aria-expanded":P,onClick:()=>g(e=>!e),className:"volter-model-toolbar-labelled-control",children:[s.jsx(n,{icon:le,size:"sm"}),s.jsx("span",{children:a.projection==="perspective"?"Perspective":"Orthographic"}),s.jsx(n,{icon:ce,size:"xs"})]})}),P&&s.jsxs(A,{anchorRef:k,align:"start",clamp:!0,"aria-label":"Camera view",onDismiss:()=>g(!1),style:{minWidth:210},children:[["front","right","top","isometric"].map(e=>s.jsx(d,{onSelect:()=>{t.setViewPreset(e,"view"),g(!1)},children:e==="isometric"?"Perspective 3/4":`${e[0]?.toUpperCase()}${e.slice(1)} view`},e)),s.jsx(H,{}),["perspective","orthographic"].map(e=>s.jsxs(d,{role:"menuitemradio","aria-checked":a.projection===e,onSelect:()=>{t.setProjection(e),g(!1)},children:[s.jsx("span",{className:"volter-menu-check",children:a.projection===e&&s.jsx(n,{icon:de,size:"xs"})}),e==="perspective"?"Perspective":"Orthographic"]},e))]})]}),w.has("skeleton")?s.jsx(v,{text:`Rig: ${a.skeleton?"Visible":"Hidden"}`,children:s.jsx(f,{"aria-label":"Toggle rig overlay","aria-pressed":a.skeleton,onClick:()=>t.setSkeleton(!a.skeleton),children:s.jsx(n,{icon:pe,size:"md"})})}):null,me("object3d-document").map(({id:e,Component:o})=>s.jsx(o,{documentId:i},e))]}),s.jsxs(F,{compact:!0,label:"Viewport preview controls",className:"volter-model-viewport-toolbar volter-model-viewport-toolbar--preview",children:[s.jsxs(Me,{mode:a.mode,onChange:e=>t.setMode(e),choices:Z,segments:x?Oe(j):De,children:[K().length>0?s.jsxs("label",{children:[s.jsx("span",{children:"View"}),s.jsxs(U,{"aria-label":"View preset",value:"",onChange:e=>{e.target.value&&ue(i,e.target.value)},children:[s.jsx("option",{value:"",children:"Choose…"}),K().map(e=>s.jsx("option",{value:e.id,children:e.title},e.id))]})]}):null,s.jsxs("label",{children:[s.jsx("span",{children:"Lighting"}),s.jsxs(U,{"aria-label":"Lighting",value:m.source==="studio"?`studio:${m.studioPreset}`:m.source,onChange:e=>{const o=e.target.value;$(i,O(o.startsWith("studio:")?{source:"studio",studioPreset:o.slice(7)}:{source:o}))},children:[he().filter(e=>e.id!==S.id||Y).map(e=>s.jsx("option",{value:`studio:${e.id}`,children:e.title},e.id)),s.jsx("option",{value:"scene",children:"Scene lights"})]})]}),s.jsxs("label",{children:[s.jsx("span",{children:"Exposure"}),s.jsx(ge,{"aria-label":"Preview exposure",type:"range",min:"0.2",max:"2",step:"0.1",value:m.tone.exposure,onChange:e=>$(i,O({tone:{exposure:Number(e.target.value)}}))}),s.jsx(G,{as:"span",variant:"caption",children:m.tone.exposure.toFixed(1)})]})]}),s.jsx(Te,{glyph:s.jsx(Re,{}),choices:[{id:"grid",label:"Grid",enabled:_(i),onToggle:()=>ve(i,!_(i))},{id:"bounds",label:"Bounds",enabled:a.bounds,onToggle:()=>t.setBounds(!a.bounds)},...l===null?[]:Ne.filter(e=>X.includes(e.key)).map(e=>({id:e.key,label:e.label,enabled:l.helperVisibility[e.key],onToggle:()=>l.toggleHelperType(e.key)}))]}),s.jsxs("div",{className:"volter-viewport-popover-anchor",children:[s.jsx(v,{text:"Asset preview actions",children:s.jsx(f,{ref:M,"aria-label":"Asset preview actions","aria-haspopup":"menu","aria-expanded":V,onClick:()=>c(e=>!e),children:s.jsx(n,{icon:be,size:"md"})})}),V&&s.jsxs(A,{anchorRef:M,clamp:!0,"aria-label":"Asset preview actions",onDismiss:()=>c(!1),style:{minWidth:210},children:[s.jsxs(d,{onSelect:()=>{c(!1),I()},children:[s.jsx(n,{icon:xe,size:"sm"}),"Capture preview"]}),p?s.jsxs(s.Fragment,{children:[s.jsx(d,{onSelect:()=>{c(!1),T(!1)},children:"Save thumbnail framing"}),s.jsx(d,{onSelect:()=>{c(!1),T(!0)},children:"Reset thumbnail framing"})]}):null,s.jsx(H,{}),s.jsxs(d,{onSelect:()=>{t.resetPresentation(),c(!1)},children:[s.jsx(n,{icon:je,size:"sm"}),"Reset viewport settings"]})]})]})]}),y?s.jsxs(we,{className:"volter-model-capture-preview",children:[s.jsxs("div",{children:[s.jsx(G,{as:"strong",variant:"label",children:"Deterministic views"}),s.jsx(W,{type:"button",variant:"ghost",onClick:()=>C(null),children:"Close"})]}),s.jsx("img",{src:y,alt:"Front, right, top, and three-quarter model preview"})]}):null,E?s.jsx(Se,{className:"volter-model-toolbar-error",tone:"error",children:E}):null]})}export{ps as Object3DDocumentToolbar};
|