@volter/game-editor 0.5.154 → 0.5.155
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 +2129 -2129
- package/dist/assets/{AssetBudgetPanel-VWgpnuIc.js → AssetBudgetPanel-B2Wb7-b1.js} +3 -3
- package/dist/assets/{AudioViewer-DfHCf1lW.js → AudioViewer-gge--M-h.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-CX4PNJyw.js → CanvasBoardDocument-CyGiXrEJ.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-CQfbmxpt.js → CanvasSceneViewport-ChG9oRS8.js} +1 -1
- package/dist/assets/{ColorInput-BlrT435I.js → ColorInput-Dzpqy-J3.js} +1 -1
- package/dist/assets/{ColorPicker-Cd-YIyWU.js → ColorPicker-CqJPBHlh.js} +1 -1
- package/dist/assets/{EntityModelDocument-BmKOcswo.js → EntityModelDocument-D7XDf6uB.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-BEuthcGj.js → EnvironmentAssetDocument-BgO7Hl3g.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-BN2umpRb.js → GameplaySessionTimeline-BBmwHCKA.js} +1 -1
- package/dist/assets/{ImageViewer-D9hKvFKP.js → ImageViewer-BjxoscVa.js} +1 -1
- package/dist/assets/InspectorObjectPreview-C87CasN_.js +1 -0
- package/dist/assets/{JsonAssetDocument-DMhiFUNl.js → JsonAssetDocument-D81JuRAm.js} +1 -1
- package/dist/assets/{LiveModuleDocument-ChrbfWzt.js → LiveModuleDocument-bgStMiU1.js} +1 -1
- package/dist/assets/{LutAssetDocument-D5cdrT07.js → LutAssetDocument-cl9Jq0Zw.js} +1 -1
- package/dist/assets/{ModelAssetDocument-Dh2Yp-5_.js → ModelAssetDocument-CYCLKpxJ.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-5lJjd2ul.js → NonThreeAuthoringBootstrap-DhHjvD5d.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-DVNZXciL.js → Object3DDocumentToolbar-CQbARBIW.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-BpiyRQ5p.js +2 -0
- package/dist/assets/{Object3DPreview-hnWxlKV2.js → Object3DPreview-BOZYzjz_.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-TlMhKqz-.js → OnlineAssetDetail-DdKHHjxg.js} +1 -1
- package/dist/assets/{PlayBar-YdSOe6Mn.js → PlayBar-CAarfEOh.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-CmVrkxb8.js → QuarksAssetDocument-GTbawoy7.js} +1 -1
- package/dist/assets/{ReactCanvasControls-Co3jjBJY.js → ReactCanvasControls-DIFkxeKv.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-DRjJypx0.js → RootSelectionOverlay-Dv_w1D9s.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-Bm1FTj5L.js → ShaderAssetDocument-OA-nshNN.js} +1 -1
- package/dist/assets/{ShadowEditor-Ah6UaoTL.js → ShadowEditor-Cp1QVCo9.js} +1 -1
- package/dist/assets/{SourceAssetViewer-CRp-jbVU.js → SourceAssetViewer-CGGHBzgL.js} +1 -1
- package/dist/assets/{StageHost-j9meef5x.js → StageHost-BMgCrIPG.js} +2 -2
- package/dist/assets/{StoryPreviewMount-ChfzCbJ3.js → StoryPreviewMount-CyF7FwI7.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-DAGUbLlA.js → ThreeBoardDocument-DCJkLWU8.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-D48zPEk7.js → ThreeIsolationSceneContent-CxsM-QHW.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-DgLF_qu6.js → ToolObject3DPreview-lsAoRxtr.js} +1 -1
- package/dist/assets/{Toolbar-B9tUYMZc.js → Toolbar-yvFlRv8R.js} +1 -1
- package/dist/assets/{TransientHint-DXKNt-QA.js → TransientHint-Bslncm_l.js} +1 -1
- package/dist/assets/{VideoViewer-Bi0Wh21M.js → VideoViewer-Ba-e91kP.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-Csmdi4hc.js → ViewportShadingMenu-CgbuQ0e-.js} +1 -1
- package/dist/assets/{active-ingest-CmyN258P.js → active-ingest-CJ2U5L1O.js} +2 -2
- package/dist/assets/{animation-clock-BC2sWdly.js → animation-clock-CVpGQSVj.js} +1 -1
- package/dist/assets/{animation-mixers.service-DQX6SNau.js → animation-mixers.service-CI0K1tfi.js} +1 -1
- package/dist/assets/{animation-timeline.utility-CKWv5WpM.js → animation-timeline.utility-Wg6WxkxK.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-Cb9YAl0T.js → asset-budget-asset.menu-BbCBxjLY.js} +1 -1
- package/dist/assets/{asset-budget.action-Cgtt8vU9.js → asset-budget.action-CK8h0v1A.js} +1 -1
- package/dist/assets/{asset-budget.document-BVkKAZy5.js → asset-budget.document-CYVcDLvH.js} +1 -1
- package/dist/assets/{asset-budget.menu-DNkA4on_.js → asset-budget.menu-BcTijQ2R.js} +1 -1
- package/dist/assets/{asset-editor-persistence-BBd80LM5.js → asset-editor-persistence-DWp0E8cc.js} +1 -1
- package/dist/assets/{asset-loaders-BcvaZp8m.js → asset-loaders-Bo91oPiL.js} +1 -1
- package/dist/assets/{asset-preview-DmWBo3u0.js → asset-preview-BUpxsHNd.js} +1 -1
- package/dist/assets/{audio-unlock.service-DdLpyfa_.js → audio-unlock.service-CyiXe5qk.js} +1 -1
- package/dist/assets/{audio.utility-Py14n_vZ.js → audio.utility-BN4mANCx.js} +1 -1
- package/dist/assets/autoplay.service-CKBqjozr.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-rHojeSh-.js → babylon-authoring-adapter-C-EAsfMr.js} +1 -1
- package/dist/assets/{binding-resolver-4nTdtOpk.js → binding-resolver-DoOAFM2m.js} +2 -2
- package/dist/assets/{blender-node-editor.document-GUoOIqO0.js → blender-node-editor.document-BzkGPs0i.js} +1 -1
- package/dist/assets/{blender-properties-tab-DFdr0HH9.js → blender-properties-tab-B1ggqOYB.js} +1 -1
- package/dist/assets/{blender-runtime-host-B63tuG7j.js → blender-runtime-host-MJZEPwHA.js} +1 -1
- package/dist/assets/{blender-runtime-skin-CPgzavkZ.js → blender-runtime-skin-hw-op7Nt.js} +34 -34
- package/dist/assets/{blender-runtime.document-BXMq3aHl.js → blender-runtime.document-CvTyAou8.js} +1 -1
- package/dist/assets/{blender-screenshot.menu-eE85nOyL.js → blender-screenshot.menu-C4VXpXVa.js} +1 -1
- package/dist/assets/{blender-timeline.document-pcpWfAfg.js → blender-timeline.document-BRFDd7JZ.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-BALjSW5I.js → blender-uv-editor.document-CM09ITWu.js} +1 -1
- package/dist/assets/{blender-version.status-Iy8VtIIH.js → blender-version.status-CPyc_-kA.js} +1 -1
- package/dist/assets/{blender.command-B7a7jadi.js → blender.command-ktKz-2Zi.js} +1 -1
- package/dist/assets/{board-guides-Cnfvv0uu.js → board-guides-CCiyx8cT.js} +1 -1
- package/dist/assets/{bridge.command-BgMolZm1.js → bridge.command-tP5j6w72.js} +3 -3
- package/dist/assets/{browserAll-DNmYiuy_.js → browserAll-BSQVVrNG.js} +1 -1
- package/dist/assets/{build-player.document-C0_bEcCK.js → build-player.document-BwbBXtF5.js} +1 -1
- package/dist/assets/{build-profiles.document-DT2a6gH1.js → build-profiles.document-UiF_BsjE.js} +1 -1
- package/dist/assets/{build-progress.status-ycndNYab.js → build-progress.status-Bf5KpnxC.js} +1 -1
- package/dist/assets/{build-session-Bhmr1BX8.js → build-session-C4jVDt-u.js} +1 -1
- package/dist/assets/{build.action-DxTFOUGG.js → build.action-DP2d1Uhj.js} +1 -1
- package/dist/assets/{build.command-DpKOQydG.js → build.command-D5pyNcoj.js} +1 -1
- package/dist/assets/{build.header-zCX7El5x.js → build.header-DupBIAOw.js} +1 -1
- package/dist/assets/{build.menu-Y4MQiX4G.js → build.menu-DWrKtdoV.js} +1 -1
- package/dist/assets/{build.service-DHiSV5PL.js → build.service-qnz73gSX.js} +1 -1
- package/dist/assets/{camera-DI8pqzQ3.js → camera-C74U5X7o.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-eJ8cyMzk.js → camera-runtime.inspector-B2l34Xhl.js} +1 -1
- package/dist/assets/{canvas-design-mount-CAFDbAPl.js → canvas-design-mount-D4M3E1AX.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-CgJkCzp_.js → canvas-entry-runtime-CLOuJcgT.js} +2 -2
- package/dist/assets/{canvas-preview-frames-DMZo3rqI.js → canvas-preview-frames-CSCcu2sG.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-CHnbQ9OT.js → canvas-story-capture.service-onD_xSpQ.js} +2 -2
- package/dist/assets/{capability-coverage-BMuTFU_9.js → capability-coverage-EnZ99FoT.js} +1 -1
- package/dist/assets/{collaboration-presence-Dqfb6e2Y.js → collaboration-presence-1_UMOAkw.js} +1 -1
- package/dist/assets/{collider-WqTqi5FX.js → collider-C6R1tHfa.js} +1 -1
- package/dist/assets/{component-board.service-DJYpMxt6.js → component-board.service-BX_2bwX3.js} +2 -2
- package/dist/assets/{component-board.service-RgOavG9Y.js → component-board.service-Ckl-5tA4.js} +2 -2
- package/dist/assets/{component-board.service-C-ukHwAR.js → component-board.service-Cuf_SXeA.js} +2 -2
- package/dist/assets/{component-contracts.service-B-uhvD4S.js → component-contracts.service-rI-rbvDG.js} +1 -1
- package/dist/assets/{component-instance-root-Ctbx3vOO.js → component-instance-root-wO1p-rLr.js} +1 -1
- package/dist/assets/{component-verbs.command-C07COqiF.js → component-verbs.command-O2bwqmK3.js} +1 -1
- package/dist/assets/{component-verbs.service-EKWGRKJg.js → component-verbs.service-BiiQMtJt.js} +1 -1
- package/dist/assets/{config-Bzq-GFuV.js → config-dVnV1cxW.js} +2 -2
- package/dist/assets/{configurations-BICGR-Zc.js → configurations-8qaUqMH7.js} +1 -1
- package/dist/assets/{connection.status-BMAWlexm.js → connection.status-vH9WCDDg.js} +1 -1
- package/dist/assets/{constraints.inspector-DQdAuWx-.js → constraints.inspector-C7UjUxPR.js} +1 -1
- package/dist/assets/{content-bounds-D_jbMNmm.js → content-bounds-Dl5Y3LLv.js} +1 -1
- package/dist/assets/{contract-system-adapters-D8SzcuZo.js → contract-system-adapters-BDUpDoKd.js} +1 -1
- package/dist/assets/{coverage.service-DZ4GmnS6.js → coverage.service-IS7Oklo8.js} +1 -1
- package/dist/assets/{create-runtime-BKAyWS74.js → create-runtime-Bucz0XVU.js} +1 -1
- package/dist/assets/{curve-DNYPUZIO.js → curve-D0Q6TczG.js} +1 -1
- package/dist/assets/{data-asset-LAsOyoML.js → data-asset-B0a1y8M-.js} +1 -1
- package/dist/assets/{data-ref-CbopN4AX.js → data-ref-dRt2Wi5L.js} +1 -1
- package/dist/assets/{debug-bridge-Cx3PFUcu.js → debug-bridge-EhDkhrLX.js} +1 -1
- package/dist/assets/{debug-registry-CcTdmLf3.js → debug-registry-B2THKz1v.js} +1 -1
- package/dist/assets/{deferred-ingest-play-DsV_qXEP.js → deferred-ingest-play-To3ZratW.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-BGmhI2sv.js → design-time-canvas-mount-BnSaRAbS.js} +2 -2
- package/dist/assets/{design-time-layers-CyFYxvKE.js → design-time-layers-OMAIxOrv.js} +1 -1
- package/dist/assets/{design-time-mount.service-CeT_SfZi.js → design-time-mount.service-Bgr_nCDs.js} +2 -2
- package/dist/assets/{design-time-mount.service-Dui8o0rU.js → design-time-mount.service-RFkiqPIn.js} +2 -2
- package/dist/assets/{design-time-react-mount-3LQxFo0f.js → design-time-react-mount-BsSBoX7J.js} +1 -1
- package/dist/assets/{document-preview-three-BiKoHIJ7.js → document-preview-three-Qni0oVBw.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DBtypFqH.js → dom-authoring-adapter-DsUgOtQy.js} +1 -1
- package/dist/assets/{draco3d-CTue-r-D.js → draco3d-DyZllcka.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-4vq1g0yL.js → edit-mode-audio.service-CjXNAZEs.js} +1 -1
- package/dist/assets/{edit-mode-authoring-CIXoejcH.js → edit-mode-authoring-BDgZD47j.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-vseafVn2.js → edit-mode-networking.service-3dUr2g_0.js} +1 -1
- package/dist/assets/{editor-api-BboLGD_u.js → editor-api-DTrNJMXL.js} +1 -1
- package/dist/assets/{editor-layers-CYVQVJ5O.js → editor-layers-DwaX5UFy.js} +1 -1
- package/dist/assets/{editor-shell-store-B76wIXvV.js → editor-shell-store-aKHbAoCV.js} +1 -1
- package/dist/assets/{entity-object-C6hm5vYx.js → entity-object-BLJ-I8XT.js} +1 -1
- package/dist/assets/{extend-BUAnZzoH.js → extend-6LrR7eSL.js} +1 -1
- package/dist/assets/{fork-menu-D9wqdfzJ.js → fork-menu-V-FM6YuY.js} +1 -1
- package/dist/assets/{frame-debugger-store-BnZFxjhV.js → frame-debugger-store-DwDC0wAm.js} +1 -1
- package/dist/assets/{game-contract-seams-CzlxJGC2.js → game-contract-seams-C22a4B79.js} +1 -1
- package/dist/assets/{game-css-scope-transform-DhimYh-2.js → game-css-scope-transform-Wv0ZdTsR.js} +1 -1
- package/dist/assets/{game-document.service-CPeo8J5j.js → game-document.service-BzvFIWCc.js} +1 -1
- package/dist/assets/{game-eval.command-Zj-0kehE.js → game-eval.command-DpQn_nY8.js} +1 -1
- package/dist/assets/{game-module-access-B2UMV47n.js → game-module-access-BI6oBa8Y.js} +1 -1
- package/dist/assets/{game-network-Bof-cN2R.js → game-network-Deo8lcPw.js} +3 -3
- package/dist/assets/{gameplay-export-Bq4t4aCy.js → gameplay-export-BOLhxmII.js} +1 -1
- package/dist/assets/{gameplay-replay-DP08m8Vv.js → gameplay-replay-Dkvmv6hf.js} +1 -1
- package/dist/assets/{gameplay.command-Del3_mAr.js → gameplay.command-DCKqLv7C.js} +1 -1
- package/dist/assets/{generation-jobs-Mfqth2Xe.js → generation-jobs-6D562vMB.js} +1 -1
- package/dist/assets/{generation.service-CUJTwwYl.js → generation.service-BFRoLb7y.js} +1 -1
- package/dist/assets/{generations-CJUKodbu.js → generations-HwV1btKK.js} +1 -1
- package/dist/assets/{generations.status-mer9NXCK.js → generations.status-BLiDcKsg.js} +1 -1
- package/dist/assets/{hierarchy-marks-sMK9R4NU.js → hierarchy-marks-DeG4E4Ke.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-BSvRWupx.js → hosted-asset-materialization-Bod7CEMF.js} +1 -1
- package/dist/assets/{index-Com2cl89.js → index-4hL3-0yz.js} +1 -1
- package/dist/assets/{index-DUA0RF9E.js → index-CHOT9sYh.js} +2 -2
- package/dist/assets/{index-DHFPVxsm.js → index-CLUA6PYq.js} +1 -1
- package/dist/assets/{index---JtxLq2.js → index-CdLhNxor.js} +1 -1
- package/dist/assets/{index-Cjv2Ynte.js → index-ClgrFOcX.js} +7 -7
- package/dist/assets/{index-ICvy7jWw.js → index-CyLPQ8pY.js} +1 -1
- package/dist/assets/{index-uTZA4wRW.js → index-DkYeh000.js} +1 -1
- package/dist/assets/{index-BpfZiKqX.js → index-KIR4Has5.js} +1 -1
- package/dist/assets/{index-CCOqpqGv.js → index-jS3rfNkZ.js} +1 -1
- package/dist/assets/{inference-diagnostics-DE1P5w14.js → inference-diagnostics-BmZ5ggEK.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-Dynh3g5V.js → ingest-boot-viewport-CipkFljr.js} +1 -1
- package/dist/assets/{ingest-siblings-BsIV1T53.js → ingest-siblings-CEwYp-xg.js} +1 -1
- package/dist/assets/{ingest-source-persistence-BNek6mSi.js → ingest-source-persistence-CVU1rTj0.js} +1 -1
- package/dist/assets/{ingest.service-C0M-0EwA.js → ingest.service-bNqvcqoK.js} +1 -1
- package/dist/assets/{inspect-xUKvX80V.js → inspect-BunjdqX7.js} +1 -1
- package/dist/assets/instances.command-DzcXdKuG.js +1 -0
- package/dist/assets/{json-history-resource-C1pGwXuI.js → json-history-resource-CDEoQe1R.js} +1 -1
- package/dist/assets/{layered-pick-ASc-_oGG.js → layered-pick-guh6WlA7.js} +1 -1
- package/dist/assets/{light-CHiYAJQ0.js → light-BPZivpCK.js} +1 -1
- package/dist/assets/{live-project-verbs-D_8wWaCB.js → live-project-verbs-Bqmxbr2o.js} +1 -1
- package/dist/assets/{machine.document-CnvC2j0i.js → machine.document-CAFPFq5K.js} +1 -1
- package/dist/assets/{machines.finder-x38pLZFO.js → machines.finder-CbUWReMp.js} +1 -1
- package/dist/assets/{material-factory-wvMjnOTo.js → material-factory-BkyOzJ7B.js} +1 -1
- package/dist/assets/{material-B9iSj5st.js → material-huG6lNEK.js} +1 -1
- package/dist/assets/{mesh-C64nd8qK.js → mesh-CjCfRcFK.js} +1 -1
- package/dist/assets/{model-asset-sections.service-UsTToAYb.js → model-asset-sections.service-Dt4V2K2v.js} +1 -1
- package/dist/assets/{model-inspection-ae_w8T6s.js → model-inspection-BDA5jikL.js} +1 -1
- package/dist/assets/{model-thumbnail-ClOTX_JF.js → model-thumbnail-CF3qGQWb.js} +1 -1
- package/dist/assets/{models.finder-Bl6i3QOW.js → models.finder-yh4YeGrA.js} +1 -1
- package/dist/assets/{module-mode-CRBEidVP.js → module-mode-D8en13PD.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-BFKVZ_nn.js → mount-canvas-ingest-root-JOkm2Ypj.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-CUBVJcU_.js → mount-dom-ingest-root-CVXFnJZb.js} +2 -2
- package/dist/assets/{mount-ingest-root-CyZae-B7.js → mount-ingest-root-C3o0o28C.js} +2 -2
- package/dist/assets/{mount-manifest-BMD5D62M.js → mount-manifest-d7WQ9MYp.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-BgBc58nU.js → mount-three-ingest-root-Dqd4XWP1.js} +1 -1
- package/dist/assets/{mounted-authoring-DQ0-LgR6.js → mounted-authoring-B697dYuN.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-BsbduGue.js → mounted-story-viewport-source-BvNZ3QQn.js} +1 -1
- package/dist/assets/{native-debug-module-BUPFKtBc.js → native-debug-module-iX2-V5kg.js} +1 -1
- package/dist/assets/{navigation-DN3By10F.js → navigation-CIl9OY1F.js} +1 -1
- package/dist/assets/{navmesh.menu-BkB8EXHu.js → navmesh.menu-DrMoj7Ag.js} +1 -1
- package/dist/assets/{navmesh.service-C75Hdd7h.js → navmesh.service-CTr1NVfz.js} +1 -1
- package/dist/assets/network-observer.service-DyzpGKA7.js +1 -0
- package/dist/assets/{network.utility-C_lQVcOt.js → network.utility-Btexm5ao.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-D8XSoEpf.js → object3d-document-session-registry-CADiW-LP.js} +2 -2
- package/dist/assets/{oid-transform-CvzWDfCe.js → oid-transform-Ca1oU_Ei.js} +1 -1
- package/dist/assets/{particles-JKSmSdCW.js → particles-D1oPwNJh.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-CAS5Elnh.js → pixi-authoring-adapter-B1BBfTju.js} +1 -1
- package/dist/assets/{pixi-live-write-target-BO-cO1Gl.js → pixi-live-write-target-BcUhtqmJ.js} +1 -1
- package/dist/assets/{play.command-Czxm8cvG.js → play.command-ScnwcvJr.js} +2 -2
- package/dist/assets/{presentation-xDN53iEZ.js → presentation-DPfnCjNA.js} +1 -1
- package/dist/assets/{product-mtU_pRkY.js → product-D_9saRiZ.js} +1 -1
- package/dist/assets/{profiler.action-Beoiw4ON.js → profiler.action-PXTw93E5.js} +1 -1
- package/dist/assets/{profiler.menu-BvuSldBS.js → profiler.menu-DPFV6QQD.js} +1 -1
- package/dist/assets/{profiler.utility-3qST7Ixj.js → profiler.utility-eDooJGnI.js} +1 -1
- package/dist/assets/{project-authoring-session-DAcbPWsU.js → project-authoring-session-BmeutotA.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-8yqXfdtn.js → properties-bone-constraints.inspector-BW0V1WXQ.js} +1 -1
- package/dist/assets/{properties-bone.inspector-CQ41MY4S.js → properties-bone.inspector-DIvTZhY8.js} +1 -1
- package/dist/assets/{properties-collection.inspector-Bdk09XCE.js → properties-collection.inspector-Dbt5XMhs.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-CrNnu6jW.js → properties-constraints.inspector-5SvB0GDC.js} +1 -1
- package/dist/assets/{properties-data.inspector-84938huJ.js → properties-data.inspector-C-SngIsI.js} +1 -1
- package/dist/assets/{properties-material.inspector-BarvuWEj.js → properties-material.inspector-CYAWsvsX.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-Cm2y4Vb6.js → properties-modifiers.inspector-XN6BL-Ll.js} +1 -1
- package/dist/assets/{properties-object.inspector-Bf0eY0kG.js → properties-object.inspector-CfryU0kN.js} +1 -1
- package/dist/assets/{properties-output.inspector-D_NFrDmS.js → properties-output.inspector-COfgmFUW.js} +1 -1
- package/dist/assets/{properties-particles.inspector-BZaLS0X7.js → properties-particles.inspector-BCh0vFr6.js} +1 -1
- package/dist/assets/{properties-physics.inspector-BIwFNf1B.js → properties-physics.inspector-B6to1u6U.js} +1 -1
- package/dist/assets/{properties-render.inspector-BahRi3z3.js → properties-render.inspector-C4hVfo7j.js} +1 -1
- package/dist/assets/{properties-scene.inspector-C9p2pucf.js → properties-scene.inspector-dKta4xn5.js} +1 -1
- package/dist/assets/{properties-texture.inspector-J_6EK4f-.js → properties-texture.inspector-ZlNhW25m.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-BgniFnwR.js → properties-view-layer.inspector-CIxHmkDR.js} +1 -1
- package/dist/assets/{properties-world.inspector-CzcRcbOY.js → properties-world.inspector-Ce0q2dmK.js} +1 -1
- package/dist/assets/{r3f-design-session-C5_NQltq.js → r3f-design-session-1riISktt.js} +2 -2
- package/dist/assets/{r3f-physics-binding-BRcBDERW.js → r3f-physics-binding-DuG97FR9.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-N_d4ivmu.js → r3f-source-authoring-adapter-B8qqrdwk.js} +1 -1
- package/dist/assets/{react-canvas-navigation-BWgmHmpc.js → react-canvas-navigation-CxBm8iw8.js} +1 -1
- package/dist/assets/{react-inspector.service-C0telKKC.js → react-inspector.service-BcdePwno.js} +1 -1
- package/dist/assets/{react-story-board-CGF1vFuk.js → react-story-board-CMvkLAkF.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-C8iL26_6.js → react-three-rapier.esm-D5svf-ME.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CTCp7U6C.js → react-world-authoring-adapter-Dq8NqvWu.js} +1 -1
- package/dist/assets/{realm-services-CbgTofeT.js → realm-services-CqjVBanw.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-Dp3WN9X2.js → reflection-probe-capture.inspector-uEvyppEj.js} +1 -1
- package/dist/assets/{registry-DPYQgPRv.js → registry-D7lFIA8c.js} +1 -1
- package/dist/assets/{relative-import-specifier-CPSPKQKY.js → relative-import-specifier-CA9mSNXO.js} +1 -1
- package/dist/assets/{render-env-FpydFP_z.js → render-env-BHasp-z3.js} +1 -1
- package/dist/assets/{render-features-BYgh328X.js → render-features-sSb1-c5x.js} +1 -1
- package/dist/assets/{render-settings-DeBS5HzD.js → render-settings-CUbo4Sw5.js} +1 -1
- package/dist/assets/{resolve-three-BUKYgCMY.js → resolve-three-TQ367RQD.js} +3 -3
- package/dist/assets/{root-seam-contract-B33VsC6Z.js → root-seam-contract-CneTgNww.js} +1 -1
- package/dist/assets/{run-selection-BdsJXY3k.js → run-selection-CNsOQTEG.js} +1 -1
- package/dist/assets/{scene-capture-CMwvLaW9.js → scene-capture-KbdRgsD3.js} +1 -1
- package/dist/assets/{scene-document.service-DqReOF6t.js → scene-document.service-CmPSUocW.js} +2 -2
- package/dist/assets/{scene-framing-Dq-okRQ_.js → scene-framing-B5JC4NeG.js} +1 -1
- package/dist/assets/{seeded-random-BVi4_fs4.js → seeded-random-B6zqGkWP.js} +1 -1
- package/dist/assets/{setup-renderer-Cdx_0C3T.js → setup-renderer-efjIBSGF.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-CRQ5Iruy.js → source-object3d-authoring-adapter-DeeboYub.js} +1 -1
- package/dist/assets/{source-persistence-backend-BMbXR_WB.js → source-persistence-backend-Cwy93SmQ.js} +1 -1
- package/dist/assets/{stage-keyboard-ntaDc3sd.js → stage-keyboard-GNCaTXLA.js} +1 -1
- package/dist/assets/{stage-overlay-set-CmvMTUuj.js → stage-overlay-set-DV3SCzJb.js} +1 -1
- package/dist/assets/{stage-presence-markers--CsmPxKk.js → stage-presence-markers-CBEU1Kzo.js} +1 -1
- package/dist/assets/{stage-transform-tools-eaq_pmiw.js → stage-transform-tools-C9nNDW6n.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-DaBfL3HV.js → standard-viewport-dressing-BJkGwiNT.js} +1 -1
- package/dist/assets/{state-watch.action-BBeD9rI6.js → state-watch.action-Doz_jrzS.js} +1 -1
- package/dist/assets/{state-watch.menu-BtjTGcSx.js → state-watch.menu-Dj4DUUxN.js} +1 -1
- package/dist/assets/{state-watch.utility-CLrBmLch.js → state-watch.utility-COPa8xpV.js} +1 -1
- package/dist/assets/{story-capture-DvMpONUV.js → story-capture-stRSY4PQ.js} +1 -1
- package/dist/assets/{story-documents-C1h5_Fvv.js → story-documents-CYzWYY1o.js} +1 -1
- package/dist/assets/{story-documents.service-BvSI6xU7.js → story-documents.service-C5r8KFEG.js} +1 -1
- package/dist/assets/{story-documents.service-e4GgOiBP.js → story-documents.service-DJBu4rve.js} +1 -1
- package/dist/assets/{story-media-presence-UYdQuwtq.js → story-media-presence-D4AIsAtK.js} +1 -1
- package/dist/assets/{story-pixi-preview-BVXZsJAe.js → story-pixi-preview-mPo3OFOd.js} +1 -1
- package/dist/assets/{story-presentation-CU1g5VGf.js → story-presentation-Dw4Vw65P.js} +1 -1
- package/dist/assets/{story-three-preview-DdduzS7D.js → story-three-preview-CWM0Rj7x.js} +2 -2
- package/dist/assets/{studio-environment-DZOr5iAy.js → studio-environment-Bw9zMFE8.js} +1 -1
- package/dist/assets/{surface-state-C0NqVDj5.js → surface-state-b_H4iOCJ.js} +1 -1
- package/dist/assets/{syntactic-prop-specs--oEbzaCI.js → syntactic-prop-specs-BCdwWi-T.js} +1 -1
- package/dist/assets/{team-playtest.service-DTvCDmka.js → team-playtest.service-CnxdTghn.js} +1 -1
- package/dist/assets/{three-CAVY58Dv.js → three-DWy0sZom.js} +1 -1
- package/dist/assets/{three-authoring-adapter-BDMrB8fC.js → three-authoring-adapter-9LcUBPaU.js} +1 -1
- package/dist/assets/three-authoring.service-DdTMF4A2.js +2 -0
- package/dist/assets/{three-ingest-runtime-BPTa3ryG.js → three-ingest-runtime-x9nLmUl-.js} +1 -1
- package/dist/assets/{three-integration-CJIrJnlD.js → three-integration-DB-xQHD5.js} +2 -2
- package/dist/assets/three-integration.service-DwToRGIc.js +1 -0
- package/dist/assets/{three-projection-core-BnoDtdZY.js → three-projection-core-IUovHgg_.js} +1 -1
- package/dist/assets/{three-state-_BZo8PPs.js → three-state-_ImCbP87.js} +1 -1
- package/dist/assets/{three-story-capture.service-CzIciMHs.js → three-story-capture.service-wKwfSnqA.js} +2 -2
- package/dist/assets/{three-story-model-BZAqoEDw.js → three-story-model-BxWKcl9d.js} +1 -1
- package/dist/assets/{three-viewport-presentation-DsFI1PyU.js → three-viewport-presentation-Bg86EsDJ.js} +1 -1
- package/dist/assets/{transform-mode-request-ROdyyd8M.js → transform-mode-request-BnV8FSnx.js} +1 -1
- package/dist/assets/{transport-strip-DAasOTBr.js → transport-strip-BZQnaxFN.js} +1 -1
- package/dist/assets/transport.header-1SF4ZbEd.js +1 -0
- package/dist/assets/{tuples-BFQG7BqZ.js → tuples-DR33sMq6.js} +1 -1
- package/dist/assets/{ui-board-document-C-DxG3Lj.js → ui-board-document-VJMvm6Ks.js} +2 -2
- package/dist/assets/{user-data-DxeJHxTz.js → user-data-DL6HsBPf.js} +1 -1
- package/dist/assets/{utility-view-state-CGlE9NdF.js → utility-view-state-ghWXsYXq.js} +1 -1
- package/dist/assets/{viewport-door-CTspfOX-.js → viewport-door-BV_lf5uK.js} +1 -1
- package/dist/assets/{viewport-root-presentation-Co7zteuS.js → viewport-root-presentation-CKqhX3mt.js} +1 -1
- package/dist/assets/{viewport-surface-status-P6QST-xH.js → viewport-surface-status-D7M2L2lI.js} +1 -1
- package/dist/assets/{webworkerAll-BH-WTk1P.js → webworkerAll-DDbFvxgB.js} +1 -1
- package/dist/assets/{workspace-arrangement-Bq8u7HUK.js → workspace-arrangement-86_8Kk5K.js} +1 -1
- package/dist/assets/{world-documents-DP1Ifjck.js → world-documents-DeNJUefV.js} +1 -1
- package/dist/assets/{world-root-stage-binding-1BOYY3z-.js → world-root-stage-binding-VOrldLB4.js} +1 -1
- package/dist/assets/{xstate-animation-binding-GsfnPsLk.js → xstate-animation-binding-747CfEeB.js} +1 -1
- package/dist/assets/{xstate-animation-meta-BS3q6oQo.js → xstate-animation-meta-DNMlMnr-.js} +1 -1
- package/dist-node/cli.js +16 -16
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-Bc9QgcaX.js +0 -1
- package/dist/assets/Object3DDocumentViewport-S-0l2Ppm.js +0 -2
- package/dist/assets/autoplay.service-BxNf_ohc.js +0 -1
- package/dist/assets/instances.command-Cc9TSete.js +0 -1
- package/dist/assets/network-observer.service-AzK_SzI2.js +0 -1
- package/dist/assets/three-authoring.service-DbhfcSSn.js +0 -2
- package/dist/assets/three-integration.service-DTBYyabq.js +0 -1
- package/dist/assets/transport.header-QMchTQhw.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-GUoOIqO0.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-B63tuG7j.js","assets/preview-renderer-BrYNFV1p.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/renderer-ownership-BovSEcLv.js","assets/output-pass-HurwNl0G.js","assets/Pass-D1MRT672.js","assets/clip-planes-CnAI6DZn.js","assets/content-bounds-D_jbMNmm.js","assets/hierarchy-marks-sMK9R4NU.js","assets/workspace-arrangement-Bq8u7HUK.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-pcpWfAfg.js","assets/blender-runtime-skin-CPgzavkZ.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-BALjSW5I.js","assets/blender-runtime.document-BXMq3aHl.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-CTspfOX-.js","assets/object3d-document-session-registry-D8XSoEpf.js","assets/blender-screenshot.menu-eE85nOyL.js","assets/blender-version.status-Iy8VtIIH.js","assets/blender.command-B7a7jadi.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-Bl6i3QOW.js","assets/properties-bone-constraints.inspector-8yqXfdtn.js","assets/blender-properties-tab-DFdr0HH9.js","assets/ColorPicker-Cd-YIyWU.js","assets/properties-constraints.inspector-CrNnu6jW.js","assets/properties-bone.inspector-CQ41MY4S.js","assets/properties-collection.inspector-Bdk09XCE.js","assets/properties-data.inspector-84938huJ.js","assets/properties-material.inspector-BarvuWEj.js","assets/properties-modifiers.inspector-Cm2y4Vb6.js","assets/properties-object.inspector-Bf0eY0kG.js","assets/properties-output.inspector-D_NFrDmS.js","assets/properties-particles.inspector-BZaLS0X7.js","assets/properties-physics.inspector-BIwFNf1B.js","assets/properties-render.inspector-BahRi3z3.js","assets/properties-scene.inspector-C9p2pucf.js","assets/properties-texture.inspector-J_6EK4f-.js","assets/properties-view-layer.inspector-BgniFnwR.js","assets/properties-world.inspector-CzcRcbOY.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-Cb9YAl0T.js","assets/AssetBudgetPanel-VWgpnuIc.js","assets/asset-loaders-BcvaZp8m.js","assets/SkeletonUtils-YH9iLOY_.js","assets/asset-parse-error-BHMwBRU3.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/asset-budget.action-Cgtt8vU9.js","assets/asset-budget.document-BVkKAZy5.js","assets/asset-budget.menu-DNkA4on_.js","assets/audio-unlock.service-DdLpyfa_.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-AzK_SzI2.js","assets/game-network-Bof-cN2R.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-BUPFKtBc.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-CcTdmLf3.js","assets/contract-system-adapters-D8SzcuZo.js","assets/game-contract-seams-CzlxJGC2.js","assets/seeded-random-BVi4_fs4.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/index-DzuOGwVB.js","assets/live-project-verbs-D_8wWaCB.js","assets/capability-coverage-BMuTFU_9.js","assets/edit-mode-authoring-CIXoejcH.js","assets/json-history-resource-C1pGwXuI.js","assets/binding-resolver-4nTdtOpk.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-CbgTofeT.js","assets/canvas-entry-runtime-CgJkCzp_.js","assets/three-ingest-runtime-BPTa3ryG.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-CmyN258P.js","assets/ingest-source-persistence-BNek6mSi.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-Co7zteuS.js","assets/mounted-authoring-DQ0-LgR6.js","assets/entity-object-C6hm5vYx.js","assets/user-data-DxeJHxTz.js","assets/three-CAVY58Dv.js","assets/editor-layers-CYVQVJ5O.js","assets/component-instance-root-Ctbx3vOO.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-BDMrB8fC.js","assets/source-persistence-backend-BMbXR_WB.js","assets/three-projection-core-BnoDtdZY.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-BRcBDERW.js","assets/deferred-ingest-play-DsV_qXEP.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CTCp7U6C.js","assets/board-guides-Cnfvv0uu.js","assets/relative-import-specifier-CPSPKQKY.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-xUKvX80V.js","assets/inference-diagnostics-DE1P5w14.js","assets/writer-tw6EcuVO.js","assets/three-state-_BZo8PPs.js","assets/editor-shell-store-B76wIXvV.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-Py14n_vZ.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-BxNf_ohc.js","assets/bridge.command-BgMolZm1.js","assets/gameplay-replay-DP08m8Vv.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-Cx3PFUcu.js","assets/build-profiles.document-DT2a6gH1.js","assets/build-session-Bhmr1BX8.js","assets/configurations-BICGR-Zc.js","assets/build-player.document-C0_bEcCK.js","assets/build-progress.status-ycndNYab.js","assets/build.action-DxTFOUGG.js","assets/build.command-DpKOQydG.js","assets/build.header-zCX7El5x.js","assets/build.menu-Y4MQiX4G.js","assets/build.service-DHiSV5PL.js","assets/connection.status-BMAWlexm.js","assets/coverage.service-DZ4GmnS6.js","assets/edit-mode-audio.service-4vq1g0yL.js","assets/edit-mode-networking.service-vseafVn2.js","assets/game-document.service-CPeo8J5j.js","assets/frame-debugger-store-BnZFxjhV.js","assets/utility-view-state-CGlE9NdF.js","assets/PlayBar-YdSOe6Mn.js","assets/run-selection-BdsJXY3k.js","assets/presentation-xDN53iEZ.js","assets/surface-state-C0NqVDj5.js","assets/game-eval.command-Zj-0kehE.js","assets/game-module-access-B2UMV47n.js","assets/gameplay.command-Del3_mAr.js","assets/generation.service-CUJTwwYl.js","assets/model-thumbnail-ClOTX_JF.js","assets/studio-environment-DZOr5iAy.js","assets/generation-jobs-Mfqth2Xe.js","assets/generation-CdOATubd.css","assets/generations.status-mer9NXCK.js","assets/ingest.service-C0M-0EwA.js","assets/registry-DPYQgPRv.js","assets/mount-ingest-root-CyZae-B7.js","assets/instances.command-Cc9TSete.js","assets/navmesh.menu-BkB8EXHu.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-C75Hdd7h.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-C_lQVcOt.js","assets/play.command-Czxm8cvG.js","assets/profiler.action-Beoiw4ON.js","assets/profiler.menu-BvuSldBS.js","assets/profiler.utility-3qST7Ixj.js","assets/scene-document.service-DqReOF6t.js","assets/Object3DDocumentViewport-S-0l2Ppm.js","assets/viewport-surface-status-P6QST-xH.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-BBeD9rI6.js","assets/state-watch.menu-BtjTGcSx.js","assets/state-watch.utility-CLrBmLch.js","assets/team-playtest.service-DTvCDmka.js","assets/collaboration-presence-Dqfb6e2Y.js","assets/transport.header-QMchTQhw.js","assets/component-board.service-C-ukHwAR.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-UYdQuwtq.js","assets/design-time-mount.service-Dui8o0rU.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-DJYpMxt6.js","assets/design-time-mount.service-CeT_SfZi.js","assets/react-inspector.service-C0telKKC.js","assets/ShadowEditor-Ah6UaoTL.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-DBtypFqH.js","assets/story-documents.service-BvSI6xU7.js","assets/story-documents-C1h5_Fvv.js","assets/StoryPreviewMount-ChfzCbJ3.js","assets/camera-runtime.inspector-eJ8cyMzk.js","assets/component-board.service-RgOavG9Y.js","assets/component-verbs.command-C07COqiF.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-D9wqdfzJ.js","assets/component-verbs.service-EKWGRKJg.js","assets/constraints.inspector-DQdAuWx-.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-UsTToAYb.js","assets/model-inspection-ae_w8T6s.js","assets/source-object3d-authoring-adapter-CRQ5Iruy.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-Dp3WN9X2.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-e4GgOiBP.js","assets/standard-viewport-dressing-DaBfL3HV.js","assets/mounted-story-viewport-source-BsbduGue.js","assets/story-three-preview-DdduzS7D.js","assets/asset-preview-DmWBo3u0.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-BZAqoEDw.js","assets/r3f-source-authoring-adapter-N_d4ivmu.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-CvzWDfCe.js","assets/three-authoring.service-DbhfcSSn.js","assets/three-story-capture.service-CzIciMHs.js","assets/canvas-story-capture.service-CHnbQ9OT.js","assets/component-contracts.service-B-uhvD4S.js","assets/three-integration.service-DTBYyabq.js","assets/three-integration-CJIrJnlD.js","assets/layered-pick-ASc-_oGG.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-DQX6SNau.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-CKWv5WpM.js","assets/transport-strip-DAasOTBr.js","assets/machines.finder-x38pLZFO.js","assets/machine.document-CnvC2j0i.js","assets/GameplaySessionTimeline-BN2umpRb.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-DfHCf1lW.js","assets/ImageViewer-D9hKvFKP.js","assets/VideoViewer-Bi0Wh21M.js","assets/JsonAssetDocument-DMhiFUNl.js","assets/OnlineAssetDetail-TlMhKqz-.js","assets/asset-editor-persistence-BBd80LM5.js","assets/SourceAssetViewer-CRp-jbVU.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-BSvRWupx.js","assets/NonThreeAuthoringBootstrap-5lJjd2ul.js","assets/project-authoring-session-DAcbPWsU.js","assets/story-capture-DvMpONUV.js","assets/react-story-board-CGF1vFuk.js","assets/story-presentation-CU1g5VGf.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as Ye,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtime-DPjLkJKQ.js";import{r as r2}from"./index-CtzuWnCS.js";import{F as a0r}from"./index-FUuS4qwW.js";import{a as sLe}from"./client-DNXj_opT.js";import{g as aLe,a as c0r,c as Pmt}from"./_commonjsHelpers-D6-XlEtG.js";function l0r(t,n){for(var s=0;s<n.length;s++){const c=n[s];if(typeof c!="string"&&!Array.isArray(c)){for(const d in c)if(d!=="default"&&!(d in t)){const m=Object.getOwnPropertyDescriptor(c,d);m&&Object.defineProperty(t,d,m.get?m:{enumerable:!0,get:()=>c[d]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const u0r="modulepreload",f0r=function(t){return"/"+t},Imt={},lo=function(n,s,c){let d=Promise.resolve();if(s&&s.length>0){let g=function(A){return Promise.all(A.map(F=>Promise.resolve(F).then(D=>({status:"fulfilled",value:D}),D=>({status:"rejected",reason:D}))))};document.getElementsByTagName("link");const S=document.querySelector("meta[property=csp-nonce]"),k=S?.nonce||S?.getAttribute("nonce");d=g(s.map(A=>{if(A=f0r(A),A in Imt)return;Imt[A]=!0;const F=A.endsWith(".css"),D=F?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${A}"]${D}`))return;const J=document.createElement("link");if(J.rel=F?"stylesheet":u0r,F||(J.as="script"),J.crossOrigin="",J.href=A,k&&J.setAttribute("nonce",k),document.head.appendChild(J),F)return new Promise(($,G)=>{J.addEventListener("load",$),J.addEventListener("error",()=>G(new Error(`Unable to preload CSS for ${A}`)))})}))}function m(g){const S=new Event("vite:preloadError",{cancelable:!0});if(S.payload=g,window.dispatchEvent(S),!S.defaultPrevented)throw g}return d.then(g=>{for(const S of g||[])S.status==="rejected"&&m(S.reason);return n().catch(m)})},d0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-GUoOIqO0.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-timeline.document.tsx",load:()=>lo(()=>import("./blender-timeline.document-pcpWfAfg.js"),__vite__mapDeps([24,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-uv-editor.document.tsx",load:()=>lo(()=>import("./blender-uv-editor.document-BALjSW5I.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-runtime.document.tsx",load:()=>lo(()=>import("./blender-runtime.document-BXMq3aHl.js"),__vite__mapDeps([28,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,29,30,31,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-screenshot.menu.ts",load:()=>lo(()=>import("./blender-screenshot.menu-eE85nOyL.js"),__vite__mapDeps([32,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>lo(()=>import("./blender-version.status-Iy8VtIIH.js"),__vite__mapDeps([33,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>lo(()=>import("./blender.command-B7a7jadi.js"),__vite__mapDeps([34,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.environment.ts",load:()=>lo(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>lo(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>lo(()=>import("./blender.status-BMETIbb2.js"),__vite__mapDeps([35,1,2]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>lo(()=>import("./blender.style-DaIh9SiA.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>lo(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([36,37]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>lo(()=>import("./models.finder-Bl6i3QOW.js"),__vite__mapDeps([38,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-bone-constraints.inspector-8yqXfdtn.js"),__vite__mapDeps([39,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,42,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>lo(()=>import("./properties-bone.inspector-CQ41MY4S.js"),__vite__mapDeps([43,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>lo(()=>import("./properties-collection.inspector-Bdk09XCE.js"),__vite__mapDeps([44,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-constraints.inspector-CrNnu6jW.js"),__vite__mapDeps([42,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>lo(()=>import("./properties-data.inspector-84938huJ.js"),__vite__mapDeps([45,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>lo(()=>import("./properties-material.inspector-BarvuWEj.js"),__vite__mapDeps([46,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>lo(()=>import("./properties-modifiers.inspector-Cm2y4Vb6.js"),__vite__mapDeps([47,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>lo(()=>import("./properties-object.inspector-Bf0eY0kG.js"),__vite__mapDeps([48,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>lo(()=>import("./properties-output.inspector-D_NFrDmS.js"),__vite__mapDeps([49,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>lo(()=>import("./properties-particles.inspector-BZaLS0X7.js"),__vite__mapDeps([50,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>lo(()=>import("./properties-physics.inspector-BIwFNf1B.js"),__vite__mapDeps([51,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>lo(()=>import("./properties-render.inspector-BahRi3z3.js"),__vite__mapDeps([52,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>lo(()=>import("./properties-scene.inspector-C9p2pucf.js"),__vite__mapDeps([53,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>lo(()=>import("./properties-texture.inspector-J_6EK4f-.js"),__vite__mapDeps([54,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>lo(()=>import("./properties-view-layer.inspector-BgniFnwR.js"),__vite__mapDeps([55,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>lo(()=>import("./properties-world.inspector-CzcRcbOY.js"),__vite__mapDeps([56,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>lo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([57,37]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>lo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([58,37]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>lo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([59,37]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>lo(()=>import("./texture.layout-DASpHVht.js"),[])}],p0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-Cb9YAl0T.js"),__vite__mapDeps([60,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>lo(()=>import("./asset-budget.action-Cgtt8vU9.js"),__vite__mapDeps([71,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>lo(()=>import("./asset-budget.document-BVkKAZy5.js"),__vite__mapDeps([72,1,2,61,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>lo(()=>import("./asset-budget.menu-DNkA4on_.js"),__vite__mapDeps([73,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>lo(()=>import("./audio-unlock.service-DdLpyfa_.js"),__vite__mapDeps([74,75,8,76,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>lo(()=>import("./network-observer.service-AzK_SzI2.js"),__vite__mapDeps([77,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>lo(()=>import("./audio.utility-Py14n_vZ.js"),__vite__mapDeps([139,1,2,3,4,20,21,140,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>lo(()=>import("./autoplay.service-BxNf_ohc.js"),__vite__mapDeps([141,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>lo(()=>import("./bridge.command-BgMolZm1.js"),__vite__mapDeps([142,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,143,144,145,146]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>lo(()=>import("./build-profiles.document-DT2a6gH1.js"),__vite__mapDeps([147,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>lo(()=>import("./build-player.document-C0_bEcCK.js"),__vite__mapDeps([150,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>lo(()=>import("./build-progress.status-ycndNYab.js"),__vite__mapDeps([151,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>lo(()=>import("./build.action-DxTFOUGG.js"),__vite__mapDeps([152,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>lo(()=>import("./build.command-DpKOQydG.js"),__vite__mapDeps([153,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>lo(()=>import("./build.header-zCX7El5x.js"),__vite__mapDeps([154,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>lo(()=>import("./build.menu-Y4MQiX4G.js"),__vite__mapDeps([155,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>lo(()=>import("./build.service-DHiSV5PL.js"),__vite__mapDeps([156,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>lo(()=>import("./connection.status-BMAWlexm.js"),__vite__mapDeps([157,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>lo(()=>import("./coverage.service-DZ4GmnS6.js"),__vite__mapDeps([158,91,85,3,2,4,1,20,21,22,23,90]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>lo(()=>import("./edit-mode-audio.service-4vq1g0yL.js"),__vite__mapDeps([159,75,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/edit-mode-networking.service.ts",load:()=>lo(()=>import("./edit-mode-networking.service-vseafVn2.js"),__vite__mapDeps([160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>lo(()=>import("./game-document.service-CPeo8J5j.js"),__vite__mapDeps([161,1,2,3,4,20,21,162,140,163,164,149,165,78,79,80,81,82,83,84,85,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,166,167]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>lo(()=>import("./game-eval.command-Zj-0kehE.js"),__vite__mapDeps([168,169,3,2,4,1,20,21,22,23,145,108,85,91,109,84,78,79,80,81,82,83,86,76,87,88,7,8,89,90,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/game.layout.ts",load:()=>lo(()=>import("./game.layout-CBASrvQu.js"),[])},{entryPath:"@volter/editor-game/contributions/gameplay.command.ts",load:()=>lo(()=>import("./gameplay.command-Del3_mAr.js"),__vite__mapDeps([170,145,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>lo(()=>import("./generation.service-CUJTwwYl.js"),__vite__mapDeps([171,1,2,3,4,172,13,173,115,19,68,7,8,69,70,9,10,11,12,20,21,174,22,23,175]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>lo(()=>import("./generations.status-mer9NXCK.js"),__vite__mapDeps([176,1,2,3,4,20,21,174,22,23]))},{entryPath:"@volter/editor-game/contributions/godot.style.ts",load:()=>lo(()=>import("./godot.style-NCC0Pm-A.js"),[])},{entryPath:"@volter/editor-game/contributions/godot.view.ts",load:()=>lo(()=>import("./godot.view-DinHwC_o.js"),[])},{entryPath:"@volter/editor-game/contributions/ingest.service.ts",load:()=>lo(()=>import("./ingest.service-C0M-0EwA.js"),__vite__mapDeps([177,178,179,108,85,3,2,4,1,20,21,22,23,91,109,84,136,137,14,7,8,15,117,19,115,114,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>lo(()=>import("./instances.command-Cc9TSete.js"),__vite__mapDeps([180,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>lo(()=>import("./navmesh.menu-BkB8EXHu.js"),__vite__mapDeps([181,182,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>lo(()=>import("./navmesh.service-C75Hdd7h.js"),__vite__mapDeps([183,65,66,182,29,184,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>lo(()=>import("./network.utility-C_lQVcOt.js"),__vite__mapDeps([185,1,2,78,79,80,81,82,83,84,85,3,4,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>lo(()=>import("./play.command-Czxm8cvG.js"),__vite__mapDeps([186,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,145,165,149]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>lo(()=>import("./profiler.action-Beoiw4ON.js"),__vite__mapDeps([187,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>lo(()=>import("./profiler.menu-BvuSldBS.js"),__vite__mapDeps([188,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>lo(()=>import("./profiler.utility-3qST7Ixj.js"),__vite__mapDeps([189,1,2,163,3,4,20,21,162,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>lo(()=>import("./scene-document.service-DqReOF6t.js"),__vite__mapDeps([190,1,2,191,3,4,192,20,21,193,136,137,14,7,8,15,117,19,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>lo(()=>import("./state-watch.action-BBeD9rI6.js"),__vite__mapDeps([194,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>lo(()=>import("./state-watch.menu-BtjTGcSx.js"),__vite__mapDeps([195,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>lo(()=>import("./state-watch.utility-CLrBmLch.js"),__vite__mapDeps([196,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>lo(()=>import("./team-playtest.service-DTvCDmka.js"),__vite__mapDeps([197,198,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>lo(()=>import("./transport.header-QMchTQhw.js"),__vite__mapDeps([199,1,2,3,4,164,149,165,78,79,80,81,82,83,84,85,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/unity.style.ts",load:()=>lo(()=>import("./unity.style-BUZD1vdX.js"),[])},{entryPath:"@volter/editor-game/contributions/unity.view.ts",load:()=>lo(()=>import("./unity.view--n1Xt50A.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.style.ts",load:()=>lo(()=>import("./unreal.style-Cqf-hEzT.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.view.ts",load:()=>lo(()=>import("./unreal.view-CKSsDgA8.js"),[])},{entryPath:"@volter/editor-game/contributions/canvas/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-C-ukHwAR.js"),__vite__mapDeps([200,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-Dui8o0rU.js"),__vite__mapDeps([203,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-DJYpMxt6.js").then(t=>t.c),__vite__mapDeps([205,201,202]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-CeT_SfZi.js"),__vite__mapDeps([206,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>lo(()=>import("./react-inspector.service-C0telKKC.js"),__vite__mapDeps([207,1,2,3,4,20,21,208,41,130,209,133,134,210,93,129,131,132,135,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-BvSI6xU7.js"),__vite__mapDeps([211,212,1,2,3,4,20,21,166,167,213,111,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>lo(()=>import("./camera-runtime.inspector-eJ8cyMzk.js"),__vite__mapDeps([214,1,2,29,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-RgOavG9Y.js"),__vite__mapDeps([215,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>lo(()=>import("./component-verbs.command-C07COqiF.js"),__vite__mapDeps([216,217,218,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29,136]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>lo(()=>import("./component-verbs.service-EKWGRKJg.js"),__vite__mapDeps([219,218,217,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>lo(()=>import("./constraints.inspector-DQdAuWx-.js"),__vite__mapDeps([220,1,2,29,118,115,19,221,65,66,3,4,20,21,136,137,14,7,8,15,117,22,23,114]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>lo(()=>import("./model-asset-sections.service-UsTToAYb.js"),__vite__mapDeps([222,1,2,29,223,115,19,8,224,117,3,4,20,21,22,23,116,118,114,119,122,225,125,65,66,226]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>lo(()=>import("./reflection-probe-capture.inspector-Dp3WN9X2.js"),__vite__mapDeps([227,1,2,29,228,65,66,3,4,20,21,136,137,14,7,8,15,117,19,22,23,115,114]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-e4GgOiBP.js"),__vite__mapDeps([229,1,2,191,3,4,192,20,21,167,230,17,18,19,8,117,22,23,9,7,10,11,12,115,231,232,233,13,173,68,69,70,234,235,88,89,236,132,237,212,166,213,111,238,118,239,131,122,116,114,29,119,134,217,240,135,126,125,65,66]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>lo(()=>import("./three-authoring.service-DbhfcSSn.js"),__vite__mapDeps([241,204,92,93,120,118,115,19,121,109,122,117,3,2,4,1,20,21,22,23,116,114,29,119,8,123,65,66,124,125,87,126,137,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>lo(()=>import("./three-story-capture.service-CzIciMHs.js"),__vite__mapDeps([242,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas-story-capture.service.ts",load:()=>lo(()=>import("./canvas-story-capture.service-CHnbQ9OT.js"),__vite__mapDeps([243,3,2,4,1,20,21,22,23]))}],_0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-B-uhvD4S.js"),__vite__mapDeps([244,240,135,126,3,2,4,1,20,21,22,23]))}],m0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-DTBYyabq.js"),__vite__mapDeps([245,246,184,13,7,8,6,9,10,11,12,247,248,115,19,1,2,3,4,172,173,68,69,70,31,136,137,14,15,117,20,21,22,23,114,29,18,118,30,17,233,234]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>lo(()=>import("./animation-mixers.service-DQX6SNau.js"),__vite__mapDeps([249,250,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>lo(()=>import("./animation-timeline.utility-CKWv5WpM.js"),__vite__mapDeps([251,1,2,252,3,4,20,21,22,23]))}],h0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-x38pLZFO.js"),__vite__mapDeps([253,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>lo(()=>import("./machine.document-CnvC2j0i.js"),__vite__mapDeps([254,1,2,3,4,20,21,22,23]))}];let HY=null;const zOe=new Set;function uee(){return HY}function g0r(t){if(HY!==null&&HY.id!==t.id)throw new Error(`Two products in one page: "${HY.id}" is already composed and "${t.id}" asked to be. A product is the running program; one page runs one.`);HY=t;for(const n of zOe)n()}function RTt(t){return zOe.add(t),()=>zOe.delete(t)}/*!
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-BzkGPs0i.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-MJZEPwHA.js","assets/preview-renderer-BrYNFV1p.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/renderer-ownership-BovSEcLv.js","assets/output-pass-HurwNl0G.js","assets/Pass-D1MRT672.js","assets/clip-planes-CnAI6DZn.js","assets/content-bounds-Dl5Y3LLv.js","assets/hierarchy-marks-DeG4E4Ke.js","assets/workspace-arrangement-86_8Kk5K.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-BRFDd7JZ.js","assets/blender-runtime-skin-hw-op7Nt.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-CM09ITWu.js","assets/blender-runtime.document-CvTyAou8.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-BV_lf5uK.js","assets/object3d-document-session-registry-CADiW-LP.js","assets/blender-screenshot.menu-C4VXpXVa.js","assets/blender-version.status-CPyc_-kA.js","assets/blender.command-ktKz-2Zi.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-yh4YeGrA.js","assets/properties-bone-constraints.inspector-BW0V1WXQ.js","assets/blender-properties-tab-B1ggqOYB.js","assets/ColorPicker-CqJPBHlh.js","assets/properties-constraints.inspector-5SvB0GDC.js","assets/properties-bone.inspector-DIvTZhY8.js","assets/properties-collection.inspector-Dbt5XMhs.js","assets/properties-data.inspector-C-SngIsI.js","assets/properties-material.inspector-CYAWsvsX.js","assets/properties-modifiers.inspector-XN6BL-Ll.js","assets/properties-object.inspector-CfryU0kN.js","assets/properties-output.inspector-COfgmFUW.js","assets/properties-particles.inspector-BCh0vFr6.js","assets/properties-physics.inspector-B6to1u6U.js","assets/properties-render.inspector-C4hVfo7j.js","assets/properties-scene.inspector-dKta4xn5.js","assets/properties-texture.inspector-ZlNhW25m.js","assets/properties-view-layer.inspector-CIxHmkDR.js","assets/properties-world.inspector-Ce0q2dmK.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-BbCBxjLY.js","assets/AssetBudgetPanel-B2Wb7-b1.js","assets/asset-loaders-Bo91oPiL.js","assets/SkeletonUtils-YH9iLOY_.js","assets/asset-parse-error-BHMwBRU3.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/asset-budget.action-CK8h0v1A.js","assets/asset-budget.document-CYVcDLvH.js","assets/asset-budget.menu-BcTijQ2R.js","assets/audio-unlock.service-CyiXe5qk.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-DyzpGKA7.js","assets/game-network-Deo8lcPw.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-iX2-V5kg.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-B2THKz1v.js","assets/contract-system-adapters-BDUpDoKd.js","assets/game-contract-seams-C22a4B79.js","assets/seeded-random-B6zqGkWP.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/index-DzuOGwVB.js","assets/live-project-verbs-Bqmxbr2o.js","assets/capability-coverage-EnZ99FoT.js","assets/edit-mode-authoring-BDgZD47j.js","assets/json-history-resource-CDEoQe1R.js","assets/binding-resolver-DoOAFM2m.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-CqjVBanw.js","assets/canvas-entry-runtime-CLOuJcgT.js","assets/three-ingest-runtime-x9nLmUl-.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-CJ2U5L1O.js","assets/ingest-source-persistence-CVU1rTj0.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-CKqhX3mt.js","assets/mounted-authoring-B697dYuN.js","assets/entity-object-BLJ-I8XT.js","assets/user-data-DL6HsBPf.js","assets/three-DWy0sZom.js","assets/editor-layers-DwaX5UFy.js","assets/component-instance-root-wO1p-rLr.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-9LcUBPaU.js","assets/source-persistence-backend-Cwy93SmQ.js","assets/three-projection-core-IUovHgg_.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-DuG97FR9.js","assets/deferred-ingest-play-To3ZratW.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-Dq8NqvWu.js","assets/board-guides-CCiyx8cT.js","assets/relative-import-specifier-CA9mSNXO.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-BunjdqX7.js","assets/inference-diagnostics-BmZ5ggEK.js","assets/writer-tw6EcuVO.js","assets/three-state-_ImCbP87.js","assets/editor-shell-store-aKHbAoCV.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-BN4mANCx.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-CKBqjozr.js","assets/bridge.command-tP5j6w72.js","assets/gameplay-replay-Dkvmv6hf.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-EhDkhrLX.js","assets/build-profiles.document-UiF_BsjE.js","assets/build-session-C4jVDt-u.js","assets/configurations-8qaUqMH7.js","assets/build-player.document-BwbBXtF5.js","assets/build-progress.status-Bf5KpnxC.js","assets/build.action-DP2d1Uhj.js","assets/build.command-D5pyNcoj.js","assets/build.header-DupBIAOw.js","assets/build.menu-DWrKtdoV.js","assets/build.service-qnz73gSX.js","assets/connection.status-vH9WCDDg.js","assets/coverage.service-IS7Oklo8.js","assets/edit-mode-audio.service-CjXNAZEs.js","assets/edit-mode-networking.service-3dUr2g_0.js","assets/game-document.service-BzvFIWCc.js","assets/frame-debugger-store-DwDC0wAm.js","assets/utility-view-state-ghWXsYXq.js","assets/PlayBar-CAarfEOh.js","assets/run-selection-CNsOQTEG.js","assets/presentation-DPfnCjNA.js","assets/surface-state-b_H4iOCJ.js","assets/game-eval.command-DpQn_nY8.js","assets/game-module-access-BI6oBa8Y.js","assets/gameplay.command-DCKqLv7C.js","assets/generation.service-BFRoLb7y.js","assets/model-thumbnail-CF3qGQWb.js","assets/studio-environment-Bw9zMFE8.js","assets/generation-jobs-6D562vMB.js","assets/generation-CdOATubd.css","assets/generations.status-BLiDcKsg.js","assets/ingest.service-bNqvcqoK.js","assets/registry-D7lFIA8c.js","assets/mount-ingest-root-C3o0o28C.js","assets/instances.command-DzcXdKuG.js","assets/navmesh.menu-DrMoj7Ag.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-CTr1NVfz.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-Btexm5ao.js","assets/play.command-ScnwcvJr.js","assets/profiler.action-PXTw93E5.js","assets/profiler.menu-DPFV6QQD.js","assets/profiler.utility-eDooJGnI.js","assets/scene-document.service-CmPSUocW.js","assets/Object3DDocumentViewport-BpiyRQ5p.js","assets/viewport-surface-status-D7M2L2lI.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-Doz_jrzS.js","assets/state-watch.menu-Dj4DUUxN.js","assets/state-watch.utility-COPa8xpV.js","assets/team-playtest.service-CnxdTghn.js","assets/collaboration-presence-1_UMOAkw.js","assets/transport.header-1SF4ZbEd.js","assets/component-board.service-Cuf_SXeA.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-D4AIsAtK.js","assets/design-time-mount.service-RFkiqPIn.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-BX_2bwX3.js","assets/design-time-mount.service-Bgr_nCDs.js","assets/react-inspector.service-BcdePwno.js","assets/ShadowEditor-Cp1QVCo9.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-DsUgOtQy.js","assets/story-documents.service-C5r8KFEG.js","assets/story-documents-CYzWYY1o.js","assets/StoryPreviewMount-CyF7FwI7.js","assets/camera-runtime.inspector-B2l34Xhl.js","assets/component-board.service-Ckl-5tA4.js","assets/component-verbs.command-O2bwqmK3.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-V-FM6YuY.js","assets/component-verbs.service-BiiQMtJt.js","assets/constraints.inspector-C7UjUxPR.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-Dt4V2K2v.js","assets/model-inspection-BDA5jikL.js","assets/source-object3d-authoring-adapter-DeeboYub.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-uEvyppEj.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-DJBu4rve.js","assets/standard-viewport-dressing-BJkGwiNT.js","assets/mounted-story-viewport-source-BvNZ3QQn.js","assets/story-three-preview-CWM0Rj7x.js","assets/asset-preview-BUpxsHNd.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-BxWKcl9d.js","assets/r3f-source-authoring-adapter-B8qqrdwk.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-Ca1oU_Ei.js","assets/three-authoring.service-DdTMF4A2.js","assets/three-story-capture.service-wKwfSnqA.js","assets/canvas-story-capture.service-onD_xSpQ.js","assets/component-contracts.service-rI-rbvDG.js","assets/three-integration.service-DwToRGIc.js","assets/three-integration-DB-xQHD5.js","assets/layered-pick-guh6WlA7.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-CI0K1tfi.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-Wg6WxkxK.js","assets/transport-strip-BZQnaxFN.js","assets/machines.finder-CbUWReMp.js","assets/machine.document-CAFPFq5K.js","assets/GameplaySessionTimeline-BBmwHCKA.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-gge--M-h.js","assets/ImageViewer-BjxoscVa.js","assets/VideoViewer-Ba-e91kP.js","assets/JsonAssetDocument-D81JuRAm.js","assets/OnlineAssetDetail-DdKHHjxg.js","assets/asset-editor-persistence-DWp0E8cc.js","assets/SourceAssetViewer-CGGHBzgL.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-Bod7CEMF.js","assets/NonThreeAuthoringBootstrap-DhHjvD5d.js","assets/project-authoring-session-BmeutotA.js","assets/story-capture-stRSY4PQ.js","assets/react-story-board-CMvkLAkF.js","assets/story-presentation-Dw4Vw65P.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as Ye,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtime-DPjLkJKQ.js";import{r as r2}from"./index-CtzuWnCS.js";import{F as a0r}from"./index-FUuS4qwW.js";import{a as sLe}from"./client-DNXj_opT.js";import{g as aLe,a as c0r,c as Pmt}from"./_commonjsHelpers-D6-XlEtG.js";function l0r(t,n){for(var s=0;s<n.length;s++){const c=n[s];if(typeof c!="string"&&!Array.isArray(c)){for(const d in c)if(d!=="default"&&!(d in t)){const m=Object.getOwnPropertyDescriptor(c,d);m&&Object.defineProperty(t,d,m.get?m:{enumerable:!0,get:()=>c[d]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}const u0r="modulepreload",f0r=function(t){return"/"+t},Imt={},lo=function(n,s,c){let d=Promise.resolve();if(s&&s.length>0){let g=function(A){return Promise.all(A.map(F=>Promise.resolve(F).then(D=>({status:"fulfilled",value:D}),D=>({status:"rejected",reason:D}))))};document.getElementsByTagName("link");const S=document.querySelector("meta[property=csp-nonce]"),k=S?.nonce||S?.getAttribute("nonce");d=g(s.map(A=>{if(A=f0r(A),A in Imt)return;Imt[A]=!0;const F=A.endsWith(".css"),D=F?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${A}"]${D}`))return;const J=document.createElement("link");if(J.rel=F?"stylesheet":u0r,F||(J.as="script"),J.crossOrigin="",J.href=A,k&&J.setAttribute("nonce",k),document.head.appendChild(J),F)return new Promise(($,G)=>{J.addEventListener("load",$),J.addEventListener("error",()=>G(new Error(`Unable to preload CSS for ${A}`)))})}))}function m(g){const S=new Event("vite:preloadError",{cancelable:!0});if(S.payload=g,window.dispatchEvent(S),!S.defaultPrevented)throw g}return d.then(g=>{for(const S of g||[])S.status==="rejected"&&m(S.reason);return n().catch(m)})},d0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-BzkGPs0i.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-timeline.document.tsx",load:()=>lo(()=>import("./blender-timeline.document-BRFDd7JZ.js"),__vite__mapDeps([24,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-uv-editor.document.tsx",load:()=>lo(()=>import("./blender-uv-editor.document-CM09ITWu.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-runtime.document.tsx",load:()=>lo(()=>import("./blender-runtime.document-CvTyAou8.js"),__vite__mapDeps([28,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,29,30,31,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-screenshot.menu.ts",load:()=>lo(()=>import("./blender-screenshot.menu-C4VXpXVa.js"),__vite__mapDeps([32,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>lo(()=>import("./blender-version.status-CPyc_-kA.js"),__vite__mapDeps([33,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>lo(()=>import("./blender.command-ktKz-2Zi.js"),__vite__mapDeps([34,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.environment.ts",load:()=>lo(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>lo(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>lo(()=>import("./blender.status-BMETIbb2.js"),__vite__mapDeps([35,1,2]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>lo(()=>import("./blender.style-DaIh9SiA.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>lo(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([36,37]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>lo(()=>import("./models.finder-yh4YeGrA.js"),__vite__mapDeps([38,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-bone-constraints.inspector-BW0V1WXQ.js"),__vite__mapDeps([39,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,42,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>lo(()=>import("./properties-bone.inspector-DIvTZhY8.js"),__vite__mapDeps([43,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>lo(()=>import("./properties-collection.inspector-Dbt5XMhs.js"),__vite__mapDeps([44,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-constraints.inspector-5SvB0GDC.js"),__vite__mapDeps([42,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>lo(()=>import("./properties-data.inspector-C-SngIsI.js"),__vite__mapDeps([45,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>lo(()=>import("./properties-material.inspector-CYAWsvsX.js"),__vite__mapDeps([46,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>lo(()=>import("./properties-modifiers.inspector-XN6BL-Ll.js"),__vite__mapDeps([47,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>lo(()=>import("./properties-object.inspector-CfryU0kN.js"),__vite__mapDeps([48,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>lo(()=>import("./properties-output.inspector-COfgmFUW.js"),__vite__mapDeps([49,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>lo(()=>import("./properties-particles.inspector-BCh0vFr6.js"),__vite__mapDeps([50,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>lo(()=>import("./properties-physics.inspector-B6to1u6U.js"),__vite__mapDeps([51,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>lo(()=>import("./properties-render.inspector-C4hVfo7j.js"),__vite__mapDeps([52,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>lo(()=>import("./properties-scene.inspector-dKta4xn5.js"),__vite__mapDeps([53,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>lo(()=>import("./properties-texture.inspector-ZlNhW25m.js"),__vite__mapDeps([54,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>lo(()=>import("./properties-view-layer.inspector-CIxHmkDR.js"),__vite__mapDeps([55,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>lo(()=>import("./properties-world.inspector-Ce0q2dmK.js"),__vite__mapDeps([56,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>lo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([57,37]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>lo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([58,37]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>lo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([59,37]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>lo(()=>import("./texture.layout-DASpHVht.js"),[])}],p0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-BbCBxjLY.js"),__vite__mapDeps([60,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>lo(()=>import("./asset-budget.action-CK8h0v1A.js"),__vite__mapDeps([71,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>lo(()=>import("./asset-budget.document-CYVcDLvH.js"),__vite__mapDeps([72,1,2,61,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>lo(()=>import("./asset-budget.menu-BcTijQ2R.js"),__vite__mapDeps([73,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>lo(()=>import("./audio-unlock.service-CyiXe5qk.js"),__vite__mapDeps([74,75,8,76,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>lo(()=>import("./network-observer.service-DyzpGKA7.js"),__vite__mapDeps([77,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>lo(()=>import("./audio.utility-BN4mANCx.js"),__vite__mapDeps([139,1,2,3,4,20,21,140,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>lo(()=>import("./autoplay.service-CKBqjozr.js"),__vite__mapDeps([141,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>lo(()=>import("./bridge.command-tP5j6w72.js"),__vite__mapDeps([142,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,143,144,145,146]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>lo(()=>import("./build-profiles.document-UiF_BsjE.js"),__vite__mapDeps([147,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>lo(()=>import("./build-player.document-BwbBXtF5.js"),__vite__mapDeps([150,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>lo(()=>import("./build-progress.status-Bf5KpnxC.js"),__vite__mapDeps([151,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>lo(()=>import("./build.action-DP2d1Uhj.js"),__vite__mapDeps([152,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>lo(()=>import("./build.command-D5pyNcoj.js"),__vite__mapDeps([153,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>lo(()=>import("./build.header-DupBIAOw.js"),__vite__mapDeps([154,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>lo(()=>import("./build.menu-DWrKtdoV.js"),__vite__mapDeps([155,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>lo(()=>import("./build.service-qnz73gSX.js"),__vite__mapDeps([156,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>lo(()=>import("./connection.status-vH9WCDDg.js"),__vite__mapDeps([157,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>lo(()=>import("./coverage.service-IS7Oklo8.js"),__vite__mapDeps([158,91,85,3,2,4,1,20,21,22,23,90]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>lo(()=>import("./edit-mode-audio.service-CjXNAZEs.js"),__vite__mapDeps([159,75,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/edit-mode-networking.service.ts",load:()=>lo(()=>import("./edit-mode-networking.service-3dUr2g_0.js"),__vite__mapDeps([160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>lo(()=>import("./game-document.service-BzvFIWCc.js"),__vite__mapDeps([161,1,2,3,4,20,21,162,140,163,164,149,165,78,79,80,81,82,83,84,85,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,166,167]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>lo(()=>import("./game-eval.command-DpQn_nY8.js"),__vite__mapDeps([168,169,3,2,4,1,20,21,22,23,145,108,85,91,109,84,78,79,80,81,82,83,86,76,87,88,7,8,89,90,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/game.layout.ts",load:()=>lo(()=>import("./game.layout-CBASrvQu.js"),[])},{entryPath:"@volter/editor-game/contributions/gameplay.command.ts",load:()=>lo(()=>import("./gameplay.command-DCKqLv7C.js"),__vite__mapDeps([170,145,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>lo(()=>import("./generation.service-BFRoLb7y.js"),__vite__mapDeps([171,1,2,3,4,172,13,173,115,19,68,7,8,69,70,9,10,11,12,20,21,174,22,23,175]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>lo(()=>import("./generations.status-BLiDcKsg.js"),__vite__mapDeps([176,1,2,3,4,20,21,174,22,23]))},{entryPath:"@volter/editor-game/contributions/godot.style.ts",load:()=>lo(()=>import("./godot.style-NCC0Pm-A.js"),[])},{entryPath:"@volter/editor-game/contributions/godot.view.ts",load:()=>lo(()=>import("./godot.view-DinHwC_o.js"),[])},{entryPath:"@volter/editor-game/contributions/ingest.service.ts",load:()=>lo(()=>import("./ingest.service-bNqvcqoK.js"),__vite__mapDeps([177,178,179,108,85,3,2,4,1,20,21,22,23,91,109,84,136,137,14,7,8,15,117,19,115,114,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>lo(()=>import("./instances.command-DzcXdKuG.js"),__vite__mapDeps([180,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>lo(()=>import("./navmesh.menu-DrMoj7Ag.js"),__vite__mapDeps([181,182,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>lo(()=>import("./navmesh.service-CTr1NVfz.js"),__vite__mapDeps([183,65,66,182,29,184,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>lo(()=>import("./network.utility-Btexm5ao.js"),__vite__mapDeps([185,1,2,78,79,80,81,82,83,84,85,3,4,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>lo(()=>import("./play.command-ScnwcvJr.js"),__vite__mapDeps([186,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,145,165,149]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>lo(()=>import("./profiler.action-PXTw93E5.js"),__vite__mapDeps([187,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>lo(()=>import("./profiler.menu-DPFV6QQD.js"),__vite__mapDeps([188,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>lo(()=>import("./profiler.utility-eDooJGnI.js"),__vite__mapDeps([189,1,2,163,3,4,20,21,162,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>lo(()=>import("./scene-document.service-CmPSUocW.js"),__vite__mapDeps([190,1,2,191,3,4,192,20,21,193,136,137,14,7,8,15,117,19,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>lo(()=>import("./state-watch.action-Doz_jrzS.js"),__vite__mapDeps([194,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>lo(()=>import("./state-watch.menu-Dj4DUUxN.js"),__vite__mapDeps([195,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>lo(()=>import("./state-watch.utility-COPa8xpV.js"),__vite__mapDeps([196,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>lo(()=>import("./team-playtest.service-CnxdTghn.js"),__vite__mapDeps([197,198,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>lo(()=>import("./transport.header-1SF4ZbEd.js"),__vite__mapDeps([199,1,2,3,4,164,149,165,78,79,80,81,82,83,84,85,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/unity.style.ts",load:()=>lo(()=>import("./unity.style-BUZD1vdX.js"),[])},{entryPath:"@volter/editor-game/contributions/unity.view.ts",load:()=>lo(()=>import("./unity.view--n1Xt50A.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.style.ts",load:()=>lo(()=>import("./unreal.style-Cqf-hEzT.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.view.ts",load:()=>lo(()=>import("./unreal.view-CKSsDgA8.js"),[])},{entryPath:"@volter/editor-game/contributions/canvas/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-Cuf_SXeA.js"),__vite__mapDeps([200,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-RFkiqPIn.js"),__vite__mapDeps([203,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-BX_2bwX3.js").then(t=>t.c),__vite__mapDeps([205,201,202]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-Bgr_nCDs.js"),__vite__mapDeps([206,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>lo(()=>import("./react-inspector.service-BcdePwno.js"),__vite__mapDeps([207,1,2,3,4,20,21,208,41,130,209,133,134,210,93,129,131,132,135,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-C5r8KFEG.js"),__vite__mapDeps([211,212,1,2,3,4,20,21,166,167,213,111,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>lo(()=>import("./camera-runtime.inspector-B2l34Xhl.js"),__vite__mapDeps([214,1,2,29,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-Ckl-5tA4.js"),__vite__mapDeps([215,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>lo(()=>import("./component-verbs.command-O2bwqmK3.js"),__vite__mapDeps([216,217,218,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29,136]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>lo(()=>import("./component-verbs.service-BiiQMtJt.js"),__vite__mapDeps([219,218,217,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>lo(()=>import("./constraints.inspector-C7UjUxPR.js"),__vite__mapDeps([220,1,2,29,118,115,19,221,65,66,3,4,20,21,136,137,14,7,8,15,117,22,23,114]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>lo(()=>import("./model-asset-sections.service-Dt4V2K2v.js"),__vite__mapDeps([222,1,2,29,223,115,19,8,224,117,3,4,20,21,22,23,116,118,114,119,122,225,125,65,66,226]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>lo(()=>import("./reflection-probe-capture.inspector-uEvyppEj.js"),__vite__mapDeps([227,1,2,29,228,65,66,3,4,20,21,136,137,14,7,8,15,117,19,22,23,115,114]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-DJBu4rve.js"),__vite__mapDeps([229,1,2,191,3,4,192,20,21,167,230,17,18,19,8,117,22,23,9,7,10,11,12,115,231,232,233,13,173,68,69,70,234,235,88,89,236,132,237,212,166,213,111,238,118,239,131,122,116,114,29,119,134,217,240,135,126,125,65,66]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>lo(()=>import("./three-authoring.service-DdTMF4A2.js"),__vite__mapDeps([241,204,92,93,120,118,115,19,121,109,122,117,3,2,4,1,20,21,22,23,116,114,29,119,8,123,65,66,124,125,87,126,137,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>lo(()=>import("./three-story-capture.service-wKwfSnqA.js"),__vite__mapDeps([242,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas-story-capture.service.ts",load:()=>lo(()=>import("./canvas-story-capture.service-onD_xSpQ.js"),__vite__mapDeps([243,3,2,4,1,20,21,22,23]))}],_0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-rI-rbvDG.js"),__vite__mapDeps([244,240,135,126,3,2,4,1,20,21,22,23]))}],m0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-DwToRGIc.js"),__vite__mapDeps([245,246,184,13,7,8,6,9,10,11,12,247,248,115,19,1,2,3,4,172,173,68,69,70,31,136,137,14,15,117,20,21,22,23,114,29,18,118,30,17,233,234]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>lo(()=>import("./animation-mixers.service-CI0K1tfi.js"),__vite__mapDeps([249,250,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>lo(()=>import("./animation-timeline.utility-Wg6WxkxK.js"),__vite__mapDeps([251,1,2,252,3,4,20,21,22,23]))}],h0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-CbUWReMp.js"),__vite__mapDeps([253,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>lo(()=>import("./machine.document-CAFPFq5K.js"),__vite__mapDeps([254,1,2,3,4,20,21,22,23]))}];let HY=null;const zOe=new Set;function uee(){return HY}function g0r(t){if(HY!==null&&HY.id!==t.id)throw new Error(`Two products in one page: "${HY.id}" is already composed and "${t.id}" asked to be. A product is the running program; one page runs one.`);HY=t;for(const n of zOe)n()}function RTt(t){return zOe.add(t),()=>zOe.delete(t)}/*!
|
|
3
3
|
* Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com
|
|
4
4
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
|
5
5
|
* Copyright 2026 Fonticons, Inc.
|
|
@@ -42,7 +42,7 @@ import{r as Ye,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtim
|
|
|
42
42
|
|
|
43
43
|
`)}$.write("payload.value = newResult;"),$.write("return payload;");const Ce=$.compile();return(Ae,Pe)=>Ce(J,Ae,Pe)};let m;const g=ZB,S=!eRe.jitless,A=S&&CCt.value,F=n.catchall;let D;t._zod.parse=(J,$)=>{D??(D=c.value);const G=J.value;return g(G)?S&&A&&$?.async===!1&&$.jitless!==!0?(m||(m=d(n.shape)),J=m(J,$),F?LEt([],G,J,$,D,t):J):s(J,$):(J.issues.push({expected:"object",code:"invalid_type",input:G,inst:t}),J)}});function Ymt(t,n,s,c){for(const m of t)if(m.issues.length===0)return n.value=m.value,n;const d=t.filter(m=>!jO(m));return d.length===1?(n.value=d[0].value,d[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:t.map(m=>m.issues.map(g=>Nw(g,c,$S())))}),n)}const CLe=ui("$ZodUnion",(t,n)=>{vu.init(t,n),Gu(t._zod,"optin",()=>n.options.some(d=>d._zod.optin==="optional")?"optional":void 0),Gu(t._zod,"optout",()=>n.options.some(d=>d._zod.optout==="optional")?"optional":void 0),Gu(t._zod,"values",()=>{if(n.options.every(d=>d._zod.values))return new Set(n.options.flatMap(d=>Array.from(d._zod.values)))}),Gu(t._zod,"pattern",()=>{if(n.options.every(d=>d._zod.pattern)){const d=n.options.map(m=>m._zod.pattern);return new RegExp(`^(${d.map(m=>dye(m.source)).join("|")})$`)}});const s=n.options.length===1,c=n.options[0]._zod.run;t._zod.parse=(d,m)=>{if(s)return c(d,m);let g=!1;const S=[];for(const k of n.options){const A=k._zod.run({value:d.value,issues:[]},m);if(A instanceof Promise)S.push(A),g=!0;else{if(A.issues.length===0)return A;S.push(A)}}return g?Promise.all(S).then(k=>Ymt(k,d,t,m)):Ymt(S,d,t,m)}});function Zmt(t,n,s,c){const d=t.filter(m=>m.issues.length===0);return d.length===1?(n.value=d[0].value,n):(d.length===0?n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:t.map(m=>m.issues.map(g=>Nw(g,c,$S())))}):n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:[],inclusive:!1}),n)}const o2r=ui("$ZodXor",(t,n)=>{CLe.init(t,n),n.inclusive=!1;const s=n.options.length===1,c=n.options[0]._zod.run;t._zod.parse=(d,m)=>{if(s)return c(d,m);let g=!1;const S=[];for(const k of n.options){const A=k._zod.run({value:d.value,issues:[]},m);A instanceof Promise?(S.push(A),g=!0):S.push(A)}return g?Promise.all(S).then(k=>Zmt(k,d,t,m)):Zmt(S,d,t,m)}}),s2r=ui("$ZodDiscriminatedUnion",(t,n)=>{n.inclusive=!1,CLe.init(t,n);const s=t._zod.parse;Gu(t._zod,"propValues",()=>{const d={};for(const m of n.options){const g=m._zod.propValues;if(!g||Object.keys(g).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(m)}"`);for(const[S,k]of Object.entries(g)){d[S]||(d[S]=new Set);for(const A of k)d[S].add(A)}}return d});const c=pee(()=>{const d=n.options,m=new Map;for(const g of d){const S=g._zod.propValues?.[n.discriminator];if(!S||S.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(g)}"`);for(const k of S){if(m.has(k))throw new Error(`Duplicate discriminator value "${String(k)}"`);m.set(k,g)}}return m});t._zod.parse=(d,m)=>{const g=d.value;if(!ZB(g))return d.issues.push({code:"invalid_type",expected:"object",input:g,inst:t}),d;const S=c.value.get(g?.[n.discriminator]);return S?S._zod.run(d,m):n.unionFallback?s(d,m):(d.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:g,path:[n.discriminator],inst:t}),d)}}),a2r=ui("$ZodIntersection",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value,m=n.left._zod.run({value:d,issues:[]},c),g=n.right._zod.run({value:d,issues:[]},c);return m instanceof Promise||g instanceof Promise?Promise.all([m,g]).then(([k,A])=>Qmt(s,k,A)):Qmt(s,m,g)}});function rRe(t,n){if(t===n)return{valid:!0,data:t};if(t instanceof Date&&n instanceof Date&&+t==+n)return{valid:!0,data:t};if(cR(t)&&cR(n)){const s=Object.keys(n),c=Object.keys(t).filter(m=>s.indexOf(m)!==-1),d={...t,...n};for(const m of c){const g=rRe(t[m],n[m]);if(!g.valid)return{valid:!1,mergeErrorPath:[m,...g.mergeErrorPath]};d[m]=g.data}return{valid:!0,data:d}}if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return{valid:!1,mergeErrorPath:[]};const s=[];for(let c=0;c<t.length;c++){const d=t[c],m=n[c],g=rRe(d,m);if(!g.valid)return{valid:!1,mergeErrorPath:[c,...g.mergeErrorPath]};s.push(g.data)}return{valid:!0,data:s}}return{valid:!1,mergeErrorPath:[]}}function Qmt(t,n,s){const c=new Map;let d;for(const S of n.issues)if(S.code==="unrecognized_keys"){d??(d=S);for(const k of S.keys)c.has(k)||c.set(k,{}),c.get(k).l=!0}else t.issues.push(S);for(const S of s.issues)if(S.code==="unrecognized_keys")for(const k of S.keys)c.has(k)||c.set(k,{}),c.get(k).r=!0;else t.issues.push(S);const m=[...c].filter(([,S])=>S.l&&S.r).map(([S])=>S);if(m.length&&d&&t.issues.push({...d,keys:m}),jO(t))return t;const g=rRe(n.value,s.value);if(!g.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(g.mergeErrorPath)}`);return t.value=g.data,t}const BEt=ui("$ZodTuple",(t,n)=>{vu.init(t,n);const s=n.items;t._zod.parse=(c,d)=>{const m=c.value;if(!Array.isArray(m))return c.issues.push({input:m,inst:t,expected:"tuple",code:"invalid_type"}),c;c.value=[];const g=[],S=[...s].reverse().findIndex(F=>F._zod.optin!=="optional"),k=S===-1?0:s.length-S;if(!n.rest){const F=m.length>s.length,D=m.length<k-1;if(F||D)return c.issues.push({...F?{code:"too_big",maximum:s.length,inclusive:!0}:{code:"too_small",minimum:s.length},input:m,inst:t,origin:"array"}),c}let A=-1;for(const F of s){if(A++,A>=m.length&&A>=k)continue;const D=F._zod.run({value:m[A],issues:[]},d);D instanceof Promise?g.push(D.then(J=>bpe(J,c,A))):bpe(D,c,A)}if(n.rest){const F=m.slice(s.length);for(const D of F){A++;const J=n.rest._zod.run({value:D,issues:[]},d);J instanceof Promise?g.push(J.then($=>bpe($,c,A))):bpe(J,c,A)}}return g.length?Promise.all(g).then(()=>c):c}});function bpe(t,n,s){t.issues.length&&n.issues.push(...mC(s,t.issues)),n.value[s]=t.value}const c2r=ui("$ZodRecord",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;if(!cR(d))return s.issues.push({expected:"record",code:"invalid_type",input:d,inst:t}),s;const m=[],g=n.keyType._zod.values;if(g){s.value={};const S=new Set;for(const A of g)if(typeof A=="string"||typeof A=="number"||typeof A=="symbol"){S.add(typeof A=="number"?A.toString():A);const F=n.valueType._zod.run({value:d[A],issues:[]},c);F instanceof Promise?m.push(F.then(D=>{D.issues.length&&s.issues.push(...mC(A,D.issues)),s.value[A]=D.value})):(F.issues.length&&s.issues.push(...mC(A,F.issues)),s.value[A]=F.value)}let k;for(const A in d)S.has(A)||(k=k??[],k.push(A));k&&k.length>0&&s.issues.push({code:"unrecognized_keys",input:d,inst:t,keys:k})}else{s.value={};for(const S of Reflect.ownKeys(d)){if(S==="__proto__")continue;let k=n.keyType._zod.run({value:S,issues:[]},c);if(k instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof S=="string"&&TLe.test(S)&&k.issues.length){const D=n.keyType._zod.run({value:Number(S),issues:[]},c);if(D instanceof Promise)throw new Error("Async schemas not supported in object keys currently");D.issues.length===0&&(k=D)}if(k.issues.length){n.mode==="loose"?s.value[S]=d[S]:s.issues.push({code:"invalid_key",origin:"record",issues:k.issues.map(D=>Nw(D,c,$S())),input:S,path:[S],inst:t});continue}const F=n.valueType._zod.run({value:d[S],issues:[]},c);F instanceof Promise?m.push(F.then(D=>{D.issues.length&&s.issues.push(...mC(S,D.issues)),s.value[k.value]=D.value})):(F.issues.length&&s.issues.push(...mC(S,F.issues)),s.value[k.value]=F.value)}}return m.length?Promise.all(m).then(()=>s):s}}),l2r=ui("$ZodMap",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;if(!(d instanceof Map))return s.issues.push({expected:"map",code:"invalid_type",input:d,inst:t}),s;const m=[];s.value=new Map;for(const[g,S]of d){const k=n.keyType._zod.run({value:g,issues:[]},c),A=n.valueType._zod.run({value:S,issues:[]},c);k instanceof Promise||A instanceof Promise?m.push(Promise.all([k,A]).then(([F,D])=>{eht(F,D,s,g,d,t,c)})):eht(k,A,s,g,d,t,c)}return m.length?Promise.all(m).then(()=>s):s}});function eht(t,n,s,c,d,m,g){t.issues.length&&(Bme.has(typeof c)?s.issues.push(...mC(c,t.issues)):s.issues.push({code:"invalid_key",origin:"map",input:d,inst:m,issues:t.issues.map(S=>Nw(S,g,$S()))})),n.issues.length&&(Bme.has(typeof c)?s.issues.push(...mC(c,n.issues)):s.issues.push({origin:"map",code:"invalid_element",input:d,inst:m,key:c,issues:n.issues.map(S=>Nw(S,g,$S()))})),s.value.set(t.value,n.value)}const u2r=ui("$ZodSet",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;if(!(d instanceof Set))return s.issues.push({input:d,inst:t,expected:"set",code:"invalid_type"}),s;const m=[];s.value=new Set;for(const g of d){const S=n.valueType._zod.run({value:g,issues:[]},c);S instanceof Promise?m.push(S.then(k=>tht(k,s))):tht(S,s)}return m.length?Promise.all(m).then(()=>s):s}});function tht(t,n){t.issues.length&&n.issues.push(...t.issues),n.value.add(t.value)}const f2r=ui("$ZodEnum",(t,n)=>{vu.init(t,n);const s=SLe(n.entries),c=new Set(s);t._zod.values=c,t._zod.pattern=new RegExp(`^(${s.filter(d=>Bme.has(typeof d)).map(d=>typeof d=="string"?xD(d):d.toString()).join("|")})$`),t._zod.parse=(d,m)=>{const g=d.value;return c.has(g)||d.issues.push({code:"invalid_value",values:s,input:g,inst:t}),d}}),d2r=ui("$ZodLiteral",(t,n)=>{if(vu.init(t,n),n.values.length===0)throw new Error("Cannot create literal schema with no valid values");const s=new Set(n.values);t._zod.values=s,t._zod.pattern=new RegExp(`^(${n.values.map(c=>typeof c=="string"?xD(c):c?xD(c.toString()):String(c)).join("|")})$`),t._zod.parse=(c,d)=>{const m=c.value;return s.has(m)||c.issues.push({code:"invalid_value",values:n.values,input:m,inst:t}),c}}),p2r=ui("$ZodFile",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;return d instanceof File||s.issues.push({expected:"file",code:"invalid_type",input:d,inst:t}),s}}),_2r=ui("$ZodTransform",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new bLe(t.constructor.name);const d=n.transform(s.value,s);if(c.async)return(d instanceof Promise?d:Promise.resolve(d)).then(g=>(s.value=g,s));if(d instanceof Promise)throw new yB;return s.value=d,s}});function rht(t,n){return t.issues.length&&n===void 0?{issues:[],value:void 0}:t}const $Et=ui("$ZodOptional",(t,n)=>{vu.init(t,n),t._zod.optin="optional",t._zod.optout="optional",Gu(t._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Gu(t._zod,"pattern",()=>{const s=n.innerType._zod.pattern;return s?new RegExp(`^(${dye(s.source)})?$`):void 0}),t._zod.parse=(s,c)=>{if(n.innerType._zod.optin==="optional"){const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>rht(m,s.value)):rht(d,s.value)}return s.value===void 0?s:n.innerType._zod.run(s,c)}}),m2r=ui("$ZodExactOptional",(t,n)=>{$Et.init(t,n),Gu(t._zod,"values",()=>n.innerType._zod.values),Gu(t._zod,"pattern",()=>n.innerType._zod.pattern),t._zod.parse=(s,c)=>n.innerType._zod.run(s,c)}),h2r=ui("$ZodNullable",(t,n)=>{vu.init(t,n),Gu(t._zod,"optin",()=>n.innerType._zod.optin),Gu(t._zod,"optout",()=>n.innerType._zod.optout),Gu(t._zod,"pattern",()=>{const s=n.innerType._zod.pattern;return s?new RegExp(`^(${dye(s.source)}|null)$`):void 0}),Gu(t._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),t._zod.parse=(s,c)=>s.value===null?s:n.innerType._zod.run(s,c)}),g2r=ui("$ZodDefault",(t,n)=>{vu.init(t,n),t._zod.optin="optional",Gu(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(s,c)=>{if(c.direction==="backward")return n.innerType._zod.run(s,c);if(s.value===void 0)return s.value=n.defaultValue,s;const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>nht(m,n)):nht(d,n)}});function nht(t,n){return t.value===void 0&&(t.value=n.defaultValue),t}const y2r=ui("$ZodPrefault",(t,n)=>{vu.init(t,n),t._zod.optin="optional",Gu(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(s,c)=>(c.direction==="backward"||s.value===void 0&&(s.value=n.defaultValue),n.innerType._zod.run(s,c))}),v2r=ui("$ZodNonOptional",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>{const s=n.innerType._zod.values;return s?new Set([...s].filter(c=>c!==void 0)):void 0}),t._zod.parse=(s,c)=>{const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>iht(m,t)):iht(d,t)}});function iht(t,n){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:n}),t}const b2r=ui("$ZodSuccess",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new bLe("ZodSuccess");const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>(s.value=m.issues.length===0,s)):(s.value=d.issues.length===0,s)}}),S2r=ui("$ZodCatch",(t,n)=>{vu.init(t,n),Gu(t._zod,"optin",()=>n.innerType._zod.optin),Gu(t._zod,"optout",()=>n.innerType._zod.optout),Gu(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(s,c)=>{if(c.direction==="backward")return n.innerType._zod.run(s,c);const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>(s.value=m.value,m.issues.length&&(s.value=n.catchValue({...s,error:{issues:m.issues.map(g=>Nw(g,c,$S()))},input:s.value}),s.issues=[]),s)):(s.value=d.value,d.issues.length&&(s.value=n.catchValue({...s,error:{issues:d.issues.map(m=>Nw(m,c,$S()))},input:s.value}),s.issues=[]),s)}}),x2r=ui("$ZodNaN",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>((typeof s.value!="number"||!Number.isNaN(s.value))&&s.issues.push({input:s.value,inst:t,expected:"nan",code:"invalid_type"}),s)}),w2r=ui("$ZodPipe",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>n.in._zod.values),Gu(t._zod,"optin",()=>n.in._zod.optin),Gu(t._zod,"optout",()=>n.out._zod.optout),Gu(t._zod,"propValues",()=>n.in._zod.propValues),t._zod.parse=(s,c)=>{if(c.direction==="backward"){const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>Spe(g,n.in,c)):Spe(m,n.in,c)}const d=n.in._zod.run(s,c);return d instanceof Promise?d.then(m=>Spe(m,n.out,c)):Spe(d,n.out,c)}});function Spe(t,n,s){return t.issues.length?(t.aborted=!0,t):n._zod.run({value:t.value,issues:t.issues},s)}const qEt=ui("$ZodCodec",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>n.in._zod.values),Gu(t._zod,"optin",()=>n.in._zod.optin),Gu(t._zod,"optout",()=>n.out._zod.optout),Gu(t._zod,"propValues",()=>n.in._zod.propValues),t._zod.parse=(s,c)=>{if((c.direction||"forward")==="forward"){const m=n.in._zod.run(s,c);return m instanceof Promise?m.then(g=>xpe(g,n,c)):xpe(m,n,c)}else{const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>xpe(g,n,c)):xpe(m,n,c)}}});function xpe(t,n,s){if(t.issues.length)return t.aborted=!0,t;if((s.direction||"forward")==="forward"){const d=n.transform(t.value,t);return d instanceof Promise?d.then(m=>wpe(t,m,n.out,s)):wpe(t,d,n.out,s)}else{const d=n.reverseTransform(t.value,t);return d instanceof Promise?d.then(m=>wpe(t,m,n.in,s)):wpe(t,d,n.in,s)}}function wpe(t,n,s,c){return t.issues.length?(t.aborted=!0,t):s._zod.run({value:n,issues:t.issues},c)}const T2r=ui("$ZodReadonly",(t,n)=>{vu.init(t,n),Gu(t._zod,"propValues",()=>n.innerType._zod.propValues),Gu(t._zod,"values",()=>n.innerType._zod.values),Gu(t._zod,"optin",()=>n.innerType?._zod?.optin),Gu(t._zod,"optout",()=>n.innerType?._zod?.optout),t._zod.parse=(s,c)=>{if(c.direction==="backward")return n.innerType._zod.run(s,c);const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(oht):oht(d)}});function oht(t){return t.value=Object.freeze(t.value),t}const C2r=ui("$ZodTemplateLiteral",(t,n)=>{vu.init(t,n);const s=[];for(const c of n.parts)if(typeof c=="object"&&c!==null){if(!c._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...c._zod.traits].shift()}`);const d=c._zod.pattern instanceof RegExp?c._zod.pattern.source:c._zod.pattern;if(!d)throw new Error(`Invalid template literal part: ${c._zod.traits}`);const m=d.startsWith("^")?1:0,g=d.endsWith("$")?d.length-1:d.length;s.push(d.slice(m,g))}else if(c===null||ECt.has(typeof c))s.push(xD(`${c}`));else throw new Error(`Invalid template literal part: ${c}`);t._zod.pattern=new RegExp(`^${s.join("")}$`),t._zod.parse=(c,d)=>typeof c.value!="string"?(c.issues.push({input:c.value,inst:t,expected:"string",code:"invalid_type"}),c):(t._zod.pattern.lastIndex=0,t._zod.pattern.test(c.value)||c.issues.push({input:c.value,inst:t,code:"invalid_format",format:n.format??"template_literal",pattern:t._zod.pattern.source}),c)}),E2r=ui("$ZodFunction",(t,n)=>(vu.init(t,n),t._def=n,t._zod.def=n,t.implement=s=>{if(typeof s!="function")throw new Error("implement() must be called with a function");return function(...c){const d=t._def.input?Hmt(t._def.input,c):c,m=Reflect.apply(s,this,d);return t._def.output?Hmt(t._def.output,m):m}},t.implementAsync=s=>{if(typeof s!="function")throw new Error("implementAsync() must be called with a function");return async function(...c){const d=t._def.input?await Gmt(t._def.input,c):c,m=await Reflect.apply(s,this,d);return t._def.output?await Gmt(t._def.output,m):m}},t._zod.parse=(s,c)=>typeof s.value!="function"?(s.issues.push({code:"invalid_type",expected:"function",input:s.value,inst:t}),s):(t._def.output&&t._def.output._zod.def.type==="promise"?s.value=t.implementAsync(s.value):s.value=t.implement(s.value),s),t.input=(...s)=>{const c=t.constructor;return Array.isArray(s[0])?new c({type:"function",input:new BEt({type:"tuple",items:s[0],rest:s[1]}),output:t._def.output}):new c({type:"function",input:s[0],output:t._def.output})},t.output=s=>{const c=t.constructor;return new c({type:"function",input:t._def.input,output:s})},t)),k2r=ui("$ZodPromise",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>Promise.resolve(s.value).then(d=>n.innerType._zod.run({value:d,issues:[]},c))}),A2r=ui("$ZodLazy",(t,n)=>{vu.init(t,n),Gu(t._zod,"innerType",()=>n.getter()),Gu(t._zod,"pattern",()=>t._zod.innerType?._zod?.pattern),Gu(t._zod,"propValues",()=>t._zod.innerType?._zod?.propValues),Gu(t._zod,"optin",()=>t._zod.innerType?._zod?.optin??void 0),Gu(t._zod,"optout",()=>t._zod.innerType?._zod?.optout??void 0),t._zod.parse=(s,c)=>t._zod.innerType._zod.run(s,c)}),D2r=ui("$ZodCustom",(t,n)=>{eh.init(t,n),vu.init(t,n),t._zod.parse=(s,c)=>s,t._zod.check=s=>{const c=s.value,d=n.fn(c);if(d instanceof Promise)return d.then(m=>sht(m,s,c,t));sht(d,s,c,t)}});function sht(t,n,s,c){if(!t){const d={code:"custom",input:s,inst:c,path:[...c._zod.def.path??[]],continue:!c._zod.def.abort};c._zod.def.params&&(d.params=c._zod.def.params),n.issues.push(QB(d))}}var aht;const sgn=Symbol("ZodOutput"),agn=Symbol("ZodInput");class P2r{constructor(){this._map=new WeakMap,this._idmap=new Map}add(n,...s){const c=s[0];return this._map.set(n,c),c&&typeof c=="object"&&"id"in c&&this._idmap.set(c.id,n),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(n){const s=this._map.get(n);return s&&typeof s=="object"&&"id"in s&&this._idmap.delete(s.id),this._map.delete(n),this}get(n){const s=n._zod.parent;if(s){const c={...this.get(s)??{}};delete c.id;const d={...c,...this._map.get(n)};return Object.keys(d).length?d:void 0}return this._map.get(n)}has(n){return this._map.has(n)}}function I2r(){return new P2r}(aht=globalThis).__zod_globalRegistry??(aht.__zod_globalRegistry=I2r());const sD=globalThis.__zod_globalRegistry;function N2r(t,n){return new t({type:"string",...Jo(n)})}function cgn(t,n){return new t({type:"string",coerce:!0,...Jo(n)})}function zEt(t,n){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Jo(n)})}function nRe(t,n){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Jo(n)})}function VEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Jo(n)})}function UEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Jo(n)})}function JEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Jo(n)})}function WEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Jo(n)})}function ELe(t,n){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Jo(n)})}function HEt(t,n){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Jo(n)})}function GEt(t,n){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Jo(n)})}function KEt(t,n){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Jo(n)})}function XEt(t,n){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Jo(n)})}function YEt(t,n){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Jo(n)})}function ZEt(t,n){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Jo(n)})}function QEt(t,n){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Jo(n)})}function ekt(t,n){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Jo(n)})}function tkt(t,n){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Jo(n)})}function O2r(t,n){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Jo(n)})}function rkt(t,n){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Jo(n)})}function nkt(t,n){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Jo(n)})}function ikt(t,n){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Jo(n)})}function okt(t,n){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Jo(n)})}function skt(t,n){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Jo(n)})}function akt(t,n){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Jo(n)})}const lgn={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function R2r(t,n){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Jo(n)})}function F2r(t,n){return new t({type:"string",format:"date",check:"string_format",...Jo(n)})}function M2r(t,n){return new t({type:"string",format:"time",check:"string_format",precision:null,...Jo(n)})}function j2r(t,n){return new t({type:"string",format:"duration",check:"string_format",...Jo(n)})}function L2r(t,n){return new t({type:"number",checks:[],...Jo(n)})}function ugn(t,n){return new t({type:"number",coerce:!0,checks:[],...Jo(n)})}function B2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Jo(n)})}function $2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Jo(n)})}function q2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Jo(n)})}function z2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Jo(n)})}function V2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Jo(n)})}function U2r(t,n){return new t({type:"boolean",...Jo(n)})}function fgn(t,n){return new t({type:"boolean",coerce:!0,...Jo(n)})}function J2r(t,n){return new t({type:"bigint",...Jo(n)})}function dgn(t,n){return new t({type:"bigint",coerce:!0,...Jo(n)})}function W2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Jo(n)})}function H2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Jo(n)})}function G2r(t,n){return new t({type:"symbol",...Jo(n)})}function K2r(t,n){return new t({type:"undefined",...Jo(n)})}function X2r(t,n){return new t({type:"null",...Jo(n)})}function Y2r(t){return new t({type:"any"})}function Z2r(t){return new t({type:"unknown"})}function Q2r(t,n){return new t({type:"never",...Jo(n)})}function eSr(t,n){return new t({type:"void",...Jo(n)})}function tSr(t,n){return new t({type:"date",...Jo(n)})}function pgn(t,n){return new t({type:"date",coerce:!0,...Jo(n)})}function rSr(t,n){return new t({type:"nan",...Jo(n)})}function QZ(t,n){return new IEt({check:"less_than",...Jo(n),value:t,inclusive:!1})}function YI(t,n){return new IEt({check:"less_than",...Jo(n),value:t,inclusive:!0})}function eQ(t,n){return new NEt({check:"greater_than",...Jo(n),value:t,inclusive:!1})}function qk(t,n){return new NEt({check:"greater_than",...Jo(n),value:t,inclusive:!0})}function _gn(t){return eQ(0,t)}function mgn(t){return QZ(0,t)}function hgn(t){return YI(0,t)}function ggn(t){return qk(0,t)}function iRe(t,n){return new Q1r({check:"multiple_of",...Jo(n),value:t})}function kLe(t,n){return new rbr({check:"max_size",...Jo(n),maximum:t})}function tQ(t,n){return new nbr({check:"min_size",...Jo(n),minimum:t})}function ckt(t,n){return new ibr({check:"size_equals",...Jo(n),size:t})}function lkt(t,n){return new obr({check:"max_length",...Jo(n),maximum:t})}function qme(t,n){return new sbr({check:"min_length",...Jo(n),minimum:t})}function ukt(t,n){return new abr({check:"length_equals",...Jo(n),length:t})}function nSr(t,n){return new cbr({check:"string_format",format:"regex",...Jo(n),pattern:t})}function iSr(t){return new lbr({check:"string_format",format:"lowercase",...Jo(t)})}function oSr(t){return new ubr({check:"string_format",format:"uppercase",...Jo(t)})}function sSr(t,n){return new fbr({check:"string_format",format:"includes",...Jo(n),includes:t})}function aSr(t,n){return new dbr({check:"string_format",format:"starts_with",...Jo(n),prefix:t})}function cSr(t,n){return new pbr({check:"string_format",format:"ends_with",...Jo(n),suffix:t})}function ygn(t,n,s){return new _br({check:"property",property:t,schema:n,...Jo(s)})}function lSr(t,n){return new mbr({check:"mime_type",mime:t,...Jo(n)})}function M$(t){return new hbr({check:"overwrite",tx:t})}function uSr(t){return M$(n=>n.normalize(t))}function fSr(){return M$(t=>t.trim())}function dSr(){return M$(t=>t.toLowerCase())}function pSr(){return M$(t=>t.toUpperCase())}function _Sr(){return M$(t=>TCt(t))}function mSr(t,n,s){return new t({type:"array",element:n,...Jo(s)})}function vgn(t,n,s){return new t({type:"union",options:n,...Jo(s)})}function bgn(t,n,s){return new t({type:"union",options:n,inclusive:!1,...Jo(s)})}function Sgn(t,n,s,c){return new t({type:"union",options:s,discriminator:n,...Jo(c)})}function xgn(t,n,s){return new t({type:"intersection",left:n,right:s})}function wgn(t,n,s,c){const d=s instanceof vu,m=d?c:s,g=d?s:null;return new t({type:"tuple",items:n,rest:g,...Jo(m)})}function Tgn(t,n,s,c){return new t({type:"record",keyType:n,valueType:s,...Jo(c)})}function Cgn(t,n,s,c){return new t({type:"map",keyType:n,valueType:s,...Jo(c)})}function Egn(t,n,s){return new t({type:"set",valueType:n,...Jo(s)})}function kgn(t,n,s){const c=Array.isArray(n)?Object.fromEntries(n.map(d=>[d,d])):n;return new t({type:"enum",entries:c,...Jo(s)})}function Agn(t,n,s){return new t({type:"enum",entries:n,...Jo(s)})}function Dgn(t,n,s){return new t({type:"literal",values:Array.isArray(n)?n:[n],...Jo(s)})}function hSr(t,n){return new t({type:"file",...Jo(n)})}function Pgn(t,n){return new t({type:"transform",transform:n})}function Ign(t,n){return new t({type:"optional",innerType:n})}function Ngn(t,n){return new t({type:"nullable",innerType:n})}function Ogn(t,n,s){return new t({type:"default",innerType:n,get defaultValue(){return typeof s=="function"?s():pye(s)}})}function Rgn(t,n,s){return new t({type:"nonoptional",innerType:n,...Jo(s)})}function Fgn(t,n){return new t({type:"success",innerType:n})}function Mgn(t,n,s){return new t({type:"catch",innerType:n,catchValue:typeof s=="function"?s:()=>s})}function jgn(t,n,s){return new t({type:"pipe",in:n,out:s})}function Lgn(t,n){return new t({type:"readonly",innerType:n})}function Bgn(t,n,s){return new t({type:"template_literal",parts:n,...Jo(s)})}function $gn(t,n){return new t({type:"lazy",getter:n})}function qgn(t,n){return new t({type:"promise",innerType:n})}function gSr(t,n,s){const c=Jo(s);return c.abort??(c.abort=!0),new t({type:"custom",check:"custom",fn:n,...c})}function ySr(t,n,s){return new t({type:"custom",check:"custom",fn:n,...Jo(s)})}function vSr(t){const n=bSr(s=>(s.addIssue=c=>{if(typeof c=="string")s.issues.push(QB(c,s.value,n._zod.def));else{const d=c;d.fatal&&(d.continue=!1),d.code??(d.code="custom"),d.input??(d.input=s.value),d.inst??(d.inst=n),d.continue??(d.continue=!n._zod.def.abort),s.issues.push(QB(d))}},t(s.value,s)));return n}function bSr(t,n){const s=new eh({check:"custom",...Jo(n)});return s._zod.check=t,s}function SSr(t){const n=new eh({check:"describe"});return n._zod.onattach=[s=>{const c=sD.get(s)??{};sD.add(s,{...c,description:t})}],n._zod.check=()=>{},n}function xSr(t){const n=new eh({check:"meta"});return n._zod.onattach=[s=>{const c=sD.get(s)??{};sD.add(s,{...c,...t})}],n._zod.check=()=>{},n}function wSr(t,n){const s=Jo(n);let c=s.truthy??["true","1","yes","on","y","enabled"],d=s.falsy??["false","0","no","off","n","disabled"];s.case!=="sensitive"&&(c=c.map($=>typeof $=="string"?$.toLowerCase():$),d=d.map($=>typeof $=="string"?$.toLowerCase():$));const m=new Set(c),g=new Set(d),S=t.Codec??qEt,k=t.Boolean??FEt,A=t.String??Sye,F=new A({type:"string",error:s.error}),D=new k({type:"boolean",error:s.error}),J=new S({type:"pipe",in:F,out:D,transform:(($,G)=>{let se=$;return s.case!=="sensitive"&&(se=se.toLowerCase()),m.has(se)?!0:g.has(se)?!1:(G.issues.push({code:"invalid_value",expected:"stringbool",values:[...m,...g],input:G.value,inst:J,continue:!1}),{})}),reverseTransform:(($,G)=>$===!0?c[0]||"true":d[0]||"false"),error:s.error});return J}function xye(t,n,s,c={}){const d=Jo(c),m={...Jo(c),check:"string_format",type:"string",format:n,fn:typeof s=="function"?s:S=>s.test(S),...d};return s instanceof RegExp&&(m.pattern=s),new t(m)}function zme(t){let n=t?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??sD,target:n,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function F_(t,n,s={path:[],schemaPath:[]}){var c;const d=t._zod.def,m=n.seen.get(t);if(m)return m.count++,s.schemaPath.includes(t)&&(m.cycle=s.path),m.schema;const g={schema:{},count:1,cycle:void 0,path:s.path};n.seen.set(t,g);const S=t._zod.toJSONSchema?.();if(S)g.schema=S;else{const F={...s,schemaPath:[...s.schemaPath,t],path:s.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(n,g.schema,F);else{const J=g.schema,$=n.processors[d.type];if(!$)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${d.type}`);$(t,n,J,F)}const D=t._zod.parent;D&&(g.ref||(g.ref=D),F_(D,n,F),n.seen.get(D).isParent=!0)}const k=n.metadataRegistry.get(t);return k&&Object.assign(g.schema,k),n.io==="input"&&W1(t)&&(delete g.schema.examples,delete g.schema.default),n.io==="input"&&g.schema._prefault&&((c=g.schema).default??(c.default=g.schema._prefault)),delete g.schema._prefault,n.seen.get(t).schema}function Vme(t,n){const s=t.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const c=new Map;for(const g of t.seen.entries()){const S=t.metadataRegistry.get(g[0])?.id;if(S){const k=c.get(S);if(k&&k!==g[0])throw new Error(`Duplicate schema id "${S}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);c.set(S,g[0])}}const d=g=>{const S=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){const D=t.external.registry.get(g[0])?.id,J=t.external.uri??(G=>G);if(D)return{ref:J(D)};const $=g[1].defId??g[1].schema.id??`schema${t.counter++}`;return g[1].defId=$,{defId:$,ref:`${J("__shared")}#/${S}/${$}`}}if(g[1]===s)return{ref:"#"};const A=`#/${S}/`,F=g[1].schema.id??`__schema${t.counter++}`;return{defId:F,ref:A+F}},m=g=>{if(g[1].schema.$ref)return;const S=g[1],{ref:k,defId:A}=d(g);S.def={...S.schema},A&&(S.defId=A);const F=S.schema;for(const D in F)delete F[D];F.$ref=k};if(t.cycles==="throw")for(const g of t.seen.entries()){const S=g[1];if(S.cycle)throw new Error(`Cycle detected: #/${S.cycle?.join("/")}/<root>
|
|
44
44
|
|
|
45
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of t.seen.entries()){const S=g[1];if(n===g[0]){m(g);continue}if(t.external){const A=t.external.registry.get(g[0])?.id;if(n!==g[0]&&A){m(g);continue}}if(t.metadataRegistry.get(g[0])?.id){m(g);continue}if(S.cycle){m(g);continue}if(S.count>1&&t.reused==="ref"){m(g);continue}}}function Ume(t,n){const s=t.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const c=g=>{const S=t.seen.get(g);if(S.ref===null)return;const k=S.def??S.schema,A={...k},F=S.ref;if(S.ref=null,F){c(F);const J=t.seen.get(F),$=J.schema;if($.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(k.allOf=k.allOf??[],k.allOf.push($)):Object.assign(k,$),Object.assign(k,A),g._zod.parent===F)for(const se in k)se==="$ref"||se==="allOf"||se in A||delete k[se];if($.$ref&&J.def)for(const se in k)se==="$ref"||se==="allOf"||se in J.def&&JSON.stringify(k[se])===JSON.stringify(J.def[se])&&delete k[se]}const D=g._zod.parent;if(D&&D!==F){c(D);const J=t.seen.get(D);if(J?.schema.$ref&&(k.$ref=J.schema.$ref,J.def))for(const $ in k)$==="$ref"||$==="allOf"||$ in J.def&&JSON.stringify(k[$])===JSON.stringify(J.def[$])&&delete k[$]}t.override({zodSchema:g,jsonSchema:k,path:S.path??[]})};for(const g of[...t.seen.entries()].reverse())c(g[0]);const d={};if(t.target==="draft-2020-12"?d.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?d.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?d.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){const g=t.external.registry.get(n)?.id;if(!g)throw new Error("Schema is missing an `id` property");d.$id=t.external.uri(g)}Object.assign(d,s.def??s.schema);const m=t.external?.defs??{};for(const g of t.seen.entries()){const S=g[1];S.def&&S.defId&&(m[S.defId]=S.def)}t.external||Object.keys(m).length>0&&(t.target==="draft-2020-12"?d.$defs=m:d.definitions=m);try{const g=JSON.parse(JSON.stringify(d));return Object.defineProperty(g,"~standard",{value:{...n["~standard"],jsonSchema:{input:Jme(n,"input",t.processors),output:Jme(n,"output",t.processors)}},enumerable:!1,writable:!1}),g}catch{throw new Error("Error converting schema to JSON.")}}function W1(t,n){const s=n??{seen:new Set};if(s.seen.has(t))return!1;s.seen.add(t);const c=t._zod.def;if(c.type==="transform")return!0;if(c.type==="array")return W1(c.element,s);if(c.type==="set")return W1(c.valueType,s);if(c.type==="lazy")return W1(c.getter(),s);if(c.type==="promise"||c.type==="optional"||c.type==="nonoptional"||c.type==="nullable"||c.type==="readonly"||c.type==="default"||c.type==="prefault")return W1(c.innerType,s);if(c.type==="intersection")return W1(c.left,s)||W1(c.right,s);if(c.type==="record"||c.type==="map")return W1(c.keyType,s)||W1(c.valueType,s);if(c.type==="pipe")return W1(c.in,s)||W1(c.out,s);if(c.type==="object"){for(const d in c.shape)if(W1(c.shape[d],s))return!0;return!1}if(c.type==="union"){for(const d of c.options)if(W1(d,s))return!0;return!1}if(c.type==="tuple"){for(const d of c.items)if(W1(d,s))return!0;return!!(c.rest&&W1(c.rest,s))}return!1}const TSr=(t,n={})=>s=>{const c=zme({...s,processors:n});return F_(t,c),Vme(c,t),Ume(c,t)},Jme=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=zme({...d??{},target:m,io:n,processors:s});return F_(t,g),Vme(g,t),Ume(g,t)},CSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},fkt=(t,n,s,c)=>{const d=s;d.type="string";const{minimum:m,maximum:g,format:S,patterns:k,contentEncoding:A}=t._zod.bag;if(typeof m=="number"&&(d.minLength=m),typeof g=="number"&&(d.maxLength=g),S&&(d.format=CSr[S]??S,d.format===""&&delete d.format,S==="time"&&delete d.format),A&&(d.contentEncoding=A),k&&k.size>0){const F=[...k];F.length===1?d.pattern=F[0].source:F.length>1&&(d.allOf=[...F.map(D=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:D.source}))])}},dkt=(t,n,s,c)=>{const d=s,{minimum:m,maximum:g,format:S,multipleOf:k,exclusiveMaximum:A,exclusiveMinimum:F}=t._zod.bag;typeof S=="string"&&S.includes("int")?d.type="integer":d.type="number",typeof F=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(d.minimum=F,d.exclusiveMinimum=!0):d.exclusiveMinimum=F),typeof m=="number"&&(d.minimum=m,typeof F=="number"&&n.target!=="draft-04"&&(F>=m?delete d.minimum:delete d.exclusiveMinimum)),typeof A=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(d.maximum=A,d.exclusiveMaximum=!0):d.exclusiveMaximum=A),typeof g=="number"&&(d.maximum=g,typeof A=="number"&&n.target!=="draft-04"&&(A<=g?delete d.maximum:delete d.exclusiveMaximum)),typeof k=="number"&&(d.multipleOf=k)},pkt=(t,n,s,c)=>{s.type="boolean"},_kt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},mkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},hkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},gkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},vkt=(t,n,s,c)=>{s.not={}},bkt=(t,n,s,c)=>{},Skt=(t,n,s,c)=>{},xkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},wkt=(t,n,s,c)=>{const d=t._zod.def,m=SLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},Tkt=(t,n,s,c)=>{const d=t._zod.def,m=[];for(const g of d.values)if(g===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){const g=m[0];s.type=g===null?"null":typeof g,n.target==="draft-04"||n.target==="openapi-3.0"?s.enum=[g]:s.const=g}else m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),m.every(g=>typeof g=="boolean")&&(s.type="boolean"),m.every(g=>g===null)&&(s.type="null"),s.enum=m},Ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Ekt=(t,n,s,c)=>{const d=s,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");d.type="string",d.pattern=m.source},kkt=(t,n,s,c)=>{const d=s,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:S,mime:k}=t._zod.bag;g!==void 0&&(m.minLength=g),S!==void 0&&(m.maxLength=S),k?k.length===1?(m.contentMediaType=k[0],Object.assign(d,m)):(Object.assign(d,m),d.anyOf=k.map(A=>({contentMediaType:A}))):Object.assign(d,m)},Akt=(t,n,s,c)=>{s.type="boolean"},Dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Pkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Ikt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Nkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Okt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Rkt=(t,n,s,c)=>{const d=s,m=t._zod.def,{minimum:g,maximum:S}=t._zod.bag;typeof g=="number"&&(d.minItems=g),typeof S=="number"&&(d.maxItems=S),d.type="array",d.items=F_(m.element,n,{...c,path:[...c.path,"items"]})},Fkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="object",d.properties={};const g=m.shape;for(const A in g)d.properties[A]=F_(g[A],n,{...c,path:[...c.path,"properties",A]});const S=new Set(Object.keys(g)),k=new Set([...S].filter(A=>{const F=m.shape[A]._zod;return n.io==="input"?F.optin===void 0:F.optout===void 0}));k.size>0&&(d.required=Array.from(k)),m.catchall?._zod.def.type==="never"?d.additionalProperties=!1:m.catchall?m.catchall&&(d.additionalProperties=F_(m.catchall,n,{...c,path:[...c.path,"additionalProperties"]})):n.io==="output"&&(d.additionalProperties=!1)},ALe=(t,n,s,c)=>{const d=t._zod.def,m=d.inclusive===!1,g=d.options.map((S,k)=>F_(S,n,{...c,path:[...c.path,m?"oneOf":"anyOf",k]}));m?s.oneOf=g:s.anyOf=g},Mkt=(t,n,s,c)=>{const d=t._zod.def,m=F_(d.left,n,{...c,path:[...c.path,"allOf",0]}),g=F_(d.right,n,{...c,path:[...c.path,"allOf",1]}),S=A=>"allOf"in A&&Object.keys(A).length===1,k=[...S(m)?m.allOf:[m],...S(g)?g.allOf:[g]];s.allOf=k},jkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="array";const g=n.target==="draft-2020-12"?"prefixItems":"items",S=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",k=m.items.map((J,$)=>F_(J,n,{...c,path:[...c.path,g,$]})),A=m.rest?F_(m.rest,n,{...c,path:[...c.path,S,...n.target==="openapi-3.0"?[m.items.length]:[]]}):null;n.target==="draft-2020-12"?(d.prefixItems=k,A&&(d.items=A)):n.target==="openapi-3.0"?(d.items={anyOf:k},A&&d.items.anyOf.push(A),d.minItems=k.length,A||(d.maxItems=k.length)):(d.items=k,A&&(d.additionalItems=A));const{minimum:F,maximum:D}=t._zod.bag;typeof F=="number"&&(d.minItems=F),typeof D=="number"&&(d.maxItems=D)},Lkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="object";const g=m.keyType,k=g._zod.bag?.patterns;if(m.mode==="loose"&&k&&k.size>0){const F=F_(m.valueType,n,{...c,path:[...c.path,"patternProperties","*"]});d.patternProperties={};for(const D of k)d.patternProperties[D.source]=F}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(d.propertyNames=F_(m.keyType,n,{...c,path:[...c.path,"propertyNames"]})),d.additionalProperties=F_(m.valueType,n,{...c,path:[...c.path,"additionalProperties"]});const A=g._zod.values;if(A){const F=[...A].filter(D=>typeof D=="string"||typeof D=="number");F.length>0&&(d.required=F)}},Bkt=(t,n,s,c)=>{const d=t._zod.def,m=F_(d.innerType,n,c),g=n.seen.get(t);n.target==="openapi-3.0"?(g.ref=d.innerType,s.nullable=!0):s.anyOf=[m,{type:"null"}]},$kt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},qkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.default=JSON.parse(JSON.stringify(d.defaultValue))},zkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,n.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(d.defaultValue)))},Vkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType;let g;try{g=d.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},Ukt=(t,n,s,c)=>{const d=t._zod.def,m=n.io==="input"?d.in._zod.def.type==="transform"?d.out:d.in:d.out;F_(m,n,c);const g=n.seen.get(t);g.ref=m},Jkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.readOnly=!0},Wkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},DLe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Hkt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},cht={string:fkt,number:dkt,boolean:pkt,bigint:_kt,symbol:mkt,null:hkt,undefined:gkt,void:ykt,never:vkt,any:bkt,unknown:Skt,date:xkt,enum:wkt,literal:Tkt,nan:Ckt,template_literal:Ekt,file:kkt,success:Akt,custom:Dkt,function:Pkt,transform:Ikt,map:Nkt,set:Okt,array:Rkt,object:Fkt,union:ALe,intersection:Mkt,tuple:jkt,record:Lkt,nullable:Bkt,nonoptional:$kt,default:qkt,prefault:zkt,catch:Vkt,pipe:Ukt,readonly:Jkt,promise:Wkt,optional:DLe,lazy:Hkt};function ESr(t,n){if("_idmap"in t){const c=t,d=zme({...n,processors:cht}),m={};for(const k of c._idmap.entries()){const[A,F]=k;F_(F,d)}const g={},S={registry:c,uri:n?.uri,defs:m};d.external=S;for(const k of c._idmap.entries()){const[A,F]=k;Vme(d,F),g[A]=Ume(d,F)}if(Object.keys(m).length>0){const k=d.target==="draft-2020-12"?"$defs":"definitions";g.__shared={[k]:m}}return{schemas:g}}const s=zme({...n,processors:cht});return F_(t,s),Vme(s,t),Ume(s,t)}const Gkt=ui("ZodISODateTime",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function Kkt(t){return R2r(Gkt,t)}const Xkt=ui("ZodISODate",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function Ykt(t){return F2r(Xkt,t)}const Zkt=ui("ZodISOTime",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function Qkt(t){return M2r(Zkt,t)}const eAt=ui("ZodISODuration",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function tAt(t){return j2r(eAt,t)}const zgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Xkt,ZodISODateTime:Gkt,ZodISODuration:eAt,ZodISOTime:Zkt,date:Ykt,datetime:Kkt,duration:tAt,time:Qkt},Symbol.toStringTag,{value:"Module"})),rAt=(t,n)=>{qCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>T1r(t,s)},flatten:{value:s=>w1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,Lme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,Lme,2)}},isEmpty:{get(){return t.issues.length===0}}})},Vgn=ui("ZodError",rAt),Fw=ui("ZodError",rAt,{Parent:Error}),kSr=hye(Fw),ASr=gye(Fw),DSr=yye(Fw),PSr=vye(Fw),ISr=zCt(Fw),NSr=VCt(Fw),OSr=UCt(Fw),RSr=JCt(Fw),FSr=WCt(Fw),MSr=HCt(Fw),jSr=GCt(Fw),LSr=KCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:Jme(t,"input"),output:Jme(t,"output")}}),t.toJSONSchema=TSr(t,{}),t.def=n,t.type=n.type,Object.defineProperty(t,"_def",{value:n}),t.check=(...s)=>t.clone(oA(n,{checks:[...n.checks??[],...s.map(c=>typeof c=="function"?{_zod:{check:c,def:{check:"custom"},onattach:[]}}:c)]}),{parent:!0}),t.with=t.check,t.clone=(s,c)=>sA(t,s,c),t.brand=()=>t,t.register=((s,c)=>(s.add(t,c),t)),t.parse=(s,c)=>kSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>DSr(t,s,c),t.parseAsync=async(s,c)=>ASr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>PSr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>ISr(t,s,c),t.decode=(s,c)=>NSr(t,s,c),t.encodeAsync=async(s,c)=>OSr(t,s,c),t.decodeAsync=async(s,c)=>RSr(t,s,c),t.safeEncode=(s,c)=>FSr(t,s,c),t.safeDecode=(s,c)=>MSr(t,s,c),t.safeEncodeAsync=async(s,c)=>jSr(t,s,c),t.safeDecodeAsync=async(s,c)=>LSr(t,s,c),t.refine=(s,c)=>t.check(VAt(s,c)),t.superRefine=s=>t.check(UAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Gme(t),t.exactOptional=()=>CAt(t),t.nullable=()=>Kme(t),t.nullish=()=>Gme(Kme(t)),t.nonoptional=s=>IAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>QLe(t,s),t.transform=s=>Xme(t,eBe(s)),t.default=s=>AAt(t,s),t.prefault=s=>PAt(t,s),t.catch=s=>RAt(t,s),t.pipe=s=>Xme(t,s),t.readonly=()=>jAt(t),t.describe=s=>{const c=t.clone();return sD.add(c,{description:s}),c},Object.defineProperty(t,"description",{get(){return sD.get(t)?.description},configurable:!0}),t.meta=(...s)=>{if(s.length===0)return sD.get(t);const c=t.clone();return sD.add(c,s[0]),c},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=s=>s(t),t)),PLe=ui("_ZodString",(t,n)=>{Sye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>fkt(t,c,d);const s=t._zod.bag;t.format=s.format??null,t.minLength=s.minimum??null,t.maxLength=s.maximum??null,t.regex=(...c)=>t.check(nSr(...c)),t.includes=(...c)=>t.check(sSr(...c)),t.startsWith=(...c)=>t.check(aSr(...c)),t.endsWith=(...c)=>t.check(cSr(...c)),t.min=(...c)=>t.check(qme(...c)),t.max=(...c)=>t.check(lkt(...c)),t.length=(...c)=>t.check(ukt(...c)),t.nonempty=(...c)=>t.check(qme(1,...c)),t.lowercase=c=>t.check(iSr(c)),t.uppercase=c=>t.check(oSr(c)),t.trim=()=>t.check(fSr()),t.normalize=(...c)=>t.check(uSr(...c)),t.toLowerCase=()=>t.check(dSr()),t.toUpperCase=()=>t.check(pSr()),t.slugify=()=>t.check(_Sr())}),ILe=ui("ZodString",(t,n)=>{Sye.init(t,n),PLe.init(t,n),t.email=s=>t.check(zEt(NLe,s)),t.url=s=>t.check(ELe(wye,s)),t.jwt=s=>t.check(akt(HLe,s)),t.emoji=s=>t.check(HEt(OLe,s)),t.guid=s=>t.check(nRe(Wme,s)),t.uuid=s=>t.check(VEt(aD,s)),t.uuidv4=s=>t.check(UEt(aD,s)),t.uuidv6=s=>t.check(JEt(aD,s)),t.uuidv7=s=>t.check(WEt(aD,s)),t.nanoid=s=>t.check(GEt(RLe,s)),t.guid=s=>t.check(nRe(Wme,s)),t.cuid=s=>t.check(KEt(FLe,s)),t.cuid2=s=>t.check(XEt(MLe,s)),t.ulid=s=>t.check(YEt(jLe,s)),t.base64=s=>t.check(ikt(ULe,s)),t.base64url=s=>t.check(okt(JLe,s)),t.xid=s=>t.check(ZEt(LLe,s)),t.ksuid=s=>t.check(QEt(BLe,s)),t.ipv4=s=>t.check(ekt($Le,s)),t.ipv6=s=>t.check(tkt(qLe,s)),t.cidrv4=s=>t.check(rkt(zLe,s)),t.cidrv6=s=>t.check(nkt(VLe,s)),t.e164=s=>t.check(skt(WLe,s)),t.datetime=s=>t.check(Kkt(s)),t.date=s=>t.check(Ykt(s)),t.time=s=>t.check(Qkt(s)),t.duration=s=>t.check(tAt(s))});function bo(t){return N2r(ILe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),PLe.init(t,n)}),NLe=ui("ZodEmail",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function BSr(t){return zEt(NLe,t)}const Wme=ui("ZodGUID",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function $Sr(t){return nRe(Wme,t)}const aD=ui("ZodUUID",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function qSr(t){return VEt(aD,t)}function zSr(t){return UEt(aD,t)}function VSr(t){return JEt(aD,t)}function USr(t){return WEt(aD,t)}const wye=ui("ZodURL",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function JSr(t){return ELe(wye,t)}function WSr(t){return ELe(wye,{protocol:/^https?$/,hostname:_Et,...Jo(t)})}const OLe=ui("ZodEmoji",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return HEt(OLe,t)}const RLe=ui("ZodNanoID",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function GSr(t){return GEt(RLe,t)}const FLe=ui("ZodCUID",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function KSr(t){return KEt(FLe,t)}const MLe=ui("ZodCUID2",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function XSr(t){return XEt(MLe,t)}const jLe=ui("ZodULID",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function YSr(t){return YEt(jLe,t)}const LLe=ui("ZodXID",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function ZSr(t){return ZEt(LLe,t)}const BLe=ui("ZodKSUID",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function QSr(t){return QEt(BLe,t)}const $Le=ui("ZodIPv4",(t,n)=>{Rbr.init(t,n),j_.init(t,n)});function exr(t){return ekt($Le,t)}const nAt=ui("ZodMAC",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function txr(t){return O2r(nAt,t)}const qLe=ui("ZodIPv6",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function rxr(t){return tkt(qLe,t)}const zLe=ui("ZodCIDRv4",(t,n)=>{jbr.init(t,n),j_.init(t,n)});function nxr(t){return rkt(zLe,t)}const VLe=ui("ZodCIDRv6",(t,n)=>{Lbr.init(t,n),j_.init(t,n)});function ixr(t){return nkt(VLe,t)}const ULe=ui("ZodBase64",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function oxr(t){return ikt(ULe,t)}const JLe=ui("ZodBase64URL",(t,n)=>{qbr.init(t,n),j_.init(t,n)});function sxr(t){return okt(JLe,t)}const WLe=ui("ZodE164",(t,n)=>{zbr.init(t,n),j_.init(t,n)});function axr(t){return skt(WLe,t)}const HLe=ui("ZodJWT",(t,n)=>{Ubr.init(t,n),j_.init(t,n)});function cxr(t){return akt(HLe,t)}const hee=ui("ZodCustomStringFormat",(t,n)=>{Jbr.init(t,n),j_.init(t,n)});function lxr(t,n,s={}){return xye(hee,t,n,s)}function uxr(t){return xye(hee,"hostname",pEt,t)}function fxr(t){return xye(hee,"hex",DEt,t)}function dxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=Z1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return xye(hee,c,d,n)}const GLe=ui("ZodNumber",(t,n)=>{REt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>dkt(t,c,d),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.int=c=>t.check(oRe(c)),t.safe=c=>t.check(oRe(c)),t.positive=c=>t.check(eQ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(QZ(0,c)),t.nonpositive=c=>t.check(YI(0,c)),t.multipleOf=(c,d)=>t.check(iRe(c,d)),t.step=(c,d)=>t.check(iRe(c,d)),t.finite=()=>t;const s=t._zod.bag;t.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),t.isFinite=!0,t.format=s.format??null});function fu(t){return L2r(GLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Wbr.init(t,n),GLe.init(t,n)});function oRe(t){return B2r(j$,t)}function pxr(t){return $2r(j$,t)}function _xr(t){return q2r(j$,t)}function mxr(t){return z2r(j$,t)}function hxr(t){return V2r(j$,t)}const KLe=ui("ZodBoolean",(t,n)=>{FEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s,c)});function my(t){return U2r(KLe,t)}const XLe=ui("ZodBigInt",(t,n)=>{MEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>_kt(t,c),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.positive=c=>t.check(eQ(BigInt(0),c)),t.negative=c=>t.check(QZ(BigInt(0),c)),t.nonpositive=c=>t.check(YI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(iRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function gxr(t){return J2r(XLe,t)}const YLe=ui("ZodBigIntFormat",(t,n)=>{Hbr.init(t,n),XLe.init(t,n)});function yxr(t){return W2r(YLe,t)}function vxr(t){return H2r(YLe,t)}const iAt=ui("ZodSymbol",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s)});function bxr(t){return G2r(iAt,t)}const oAt=ui("ZodUndefined",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt(t,s)});function Sxr(t){return K2r(oAt,t)}const sAt=ui("ZodNull",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt(t,s,c)});function aAt(t){return X2r(sAt,t)}const cAt=ui("ZodAny",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt()});function xxr(){return Y2r(cAt)}const lAt=ui("ZodUnknown",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt()});function t$(){return Z2r(lAt)}const uAt=ui("ZodNever",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>vkt(t,s,c)});function ZLe(t){return Q2r(uAt,t)}const fAt=ui("ZodVoid",(t,n)=>{e2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt(t,s)});function wxr(t){return eSr(fAt,t)}const dAt=ui("ZodDate",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>xkt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(YI(c,d));const s=t._zod.bag;t.minDate=s.minimum?new Date(s.minimum):null,t.maxDate=s.maximum?new Date(s.maximum):null});function Txr(t){return tSr(dAt,t)}const pAt=ui("ZodArray",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check(qme(s,c)),t.nonempty=s=>t.check(qme(1,s)),t.max=(s,c)=>t.check(lkt(s,c)),t.length=(s,c)=>t.check(ukt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return mSr(pAt,t,n)}function Cxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const Tye=ui("ZodObject",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),Gu(t,"shape",()=>n.shape),t.keyof=()=>ed(Object.keys(t._zod.def.shape)),t.catchall=s=>t.clone({...t._zod.def,catchall:s}),t.passthrough=()=>t.clone({...t._zod.def,catchall:t$()}),t.loose=()=>t.clone({...t._zod.def,catchall:t$()}),t.strict=()=>t.clone({...t._zod.def,catchall:ZLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>OCt(t,s),t.safeExtend=s=>RCt(t,s),t.merge=s=>FCt(t,s),t.pick=s=>ICt(t,s),t.omit=s=>NCt(t,s),t.partial=(...s)=>MCt(tBe,t,s[0]),t.required=(...s)=>jCt(rBe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new Tye(s)}function Exr(t,n){return new Tye({type:"object",shape:t,catchall:ZLe(),...Jo(n)})}function kxr(t,n){return new Tye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Cye=ui("ZodUnion",(t,n)=>{CLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ALe(t,s,c,d),t.options=n.options});function AR(t,n){return new Cye({type:"union",options:t,...Jo(n)})}const _At=ui("ZodXor",(t,n)=>{Cye.init(t,n),o2r.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ALe(t,s,c,d),t.options=n.options});function Axr(t,n){return new _At({type:"union",options:t,inclusive:!1,...Jo(n)})}const mAt=ui("ZodDiscriminatedUnion",(t,n)=>{Cye.init(t,n),s2r.init(t,n)});function hAt(t,n,s){return new mAt({type:"union",options:n,discriminator:t,...Jo(s)})}const gAt=ui("ZodIntersection",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d)});function QLe(t,n){return new gAt({type:"intersection",left:t,right:n})}const yAt=ui("ZodTuple",(t,n)=>{BEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Hme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new yAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Eye=ui("ZodRecord",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,...Jo(s)})}function Dxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Eye({type:"record",keyType:c,valueType:n,...Jo(s)})}function Pxr(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const vAt=ui("ZodMap",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(kLe(...s)),t.size=(...s)=>t.check(ckt(...s))});function Ixr(t,n,s){return new vAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const bAt=ui("ZodSet",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s),t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(kLe(...s)),t.size=(...s)=>t.check(ckt(...s))});function Nxr(t,n){return new bAt({type:"set",valueType:t,...Jo(n)})}const rQ=ui("ZodEnum",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>wkt(t,c,d),t.enum=n.entries,t.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));t.extract=(c,d)=>{const m={};for(const g of c)if(s.has(g))m[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})},t.exclude=(c,d)=>{const m={...n.entries};for(const g of c)if(s.has(g))delete m[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})}});function ed(t,n){const s=Array.isArray(t)?Object.fromEntries(t.map(c=>[c,c])):t;return new rQ({type:"enum",entries:s,...Jo(n)})}function Oxr(t,n){return new rQ({type:"enum",entries:t,...Jo(n)})}const SAt=ui("ZodLiteral",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Pg(t,n){return new SAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const xAt=ui("ZodFile",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s,c),t.min=(s,c)=>t.check(tQ(s,c)),t.max=(s,c)=>t.check(kLe(s,c)),t.mime=(s,c)=>t.check(lSr(Array.isArray(s)?s:[s],c))});function Rxr(t){return hSr(xAt,t)}const wAt=ui("ZodTransform",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new bLe(t.constructor.name);s.addIssue=m=>{if(typeof m=="string")s.issues.push(QB(m,s.value,n));else{const g=m;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=s.value),g.inst??(g.inst=t),s.issues.push(QB(g))}};const d=n.transform(s.value,s);return d instanceof Promise?d.then(m=>(s.value=m,s)):(s.value=d,s)}});function eBe(t){return new wAt({type:"transform",transform:t})}const tBe=ui("ZodOptional",(t,n)=>{$Et.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>DLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new tBe({type:"optional",innerType:t})}const TAt=ui("ZodExactOptional",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>DLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function CAt(t){return new TAt({type:"optional",innerType:t})}const EAt=ui("ZodNullable",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Bkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Kme(t){return new EAt({type:"nullable",innerType:t})}function Fxr(t){return Gme(Kme(t))}const kAt=ui("ZodDefault",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>qkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function AAt(t,n){return new kAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const DAt=ui("ZodPrefault",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>zkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function PAt(t,n){return new DAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const rBe=ui("ZodNonOptional",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function IAt(t,n){return new rBe({type:"nonoptional",innerType:t,...Jo(n)})}const NAt=ui("ZodSuccess",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Mxr(t){return new NAt({type:"success",innerType:t})}const OAt=ui("ZodCatch",(t,n)=>{S2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Vkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function RAt(t,n){return new OAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const FAt=ui("ZodNaN",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s)});function jxr(t){return rSr(FAt,t)}const nBe=ui("ZodPipe",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ukt(t,s,c,d),t.in=n.in,t.out=n.out});function Xme(t,n){return new nBe({type:"pipe",in:t,out:n})}const iBe=ui("ZodCodec",(t,n)=>{nBe.init(t,n),qEt.init(t,n)});function Lxr(t,n,s){return new iBe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const MAt=ui("ZodReadonly",(t,n)=>{T2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Jkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function jAt(t){return new MAt({type:"readonly",innerType:t})}const LAt=ui("ZodTemplateLiteral",(t,n)=>{C2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s,c)});function Bxr(t,n){return new LAt({type:"template_literal",parts:t,...Jo(n)})}const BAt=ui("ZodLazy",(t,n)=>{A2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Hkt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function $At(t){return new BAt({type:"lazy",getter:t})}const qAt=ui("ZodPromise",(t,n)=>{k2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Wkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function $xr(t){return new qAt({type:"promise",innerType:t})}const zAt=ui("ZodFunction",(t,n)=>{E2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s)});function lht(t){return new zAt({type:"function",input:Array.isArray(t?.input)?Hme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const kye=ui("ZodCustom",(t,n)=>{D2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s)});function qxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function ZI(t,n){return gSr(kye,t??(()=>!0),n)}function VAt(t,n={}){return ySr(kye,t,n)}function UAt(t){return vSr(t)}const zxr=SSr,Vxr=xSr;function Uxr(t,n={}){const s=new kye({type:"custom",check:"custom",fn:c=>c instanceof t,abort:!0,...Jo(n)});return s._zod.bag.Class=t,s._zod.check=c=>{c.value instanceof t||c.issues.push({code:"invalid_type",expected:t.name,input:c.value,inst:s,path:[...s._zod.def.path??[]]})},s}const Jxr=(...t)=>wSr({Codec:iBe,Boolean:KLe,String:ILe},...t);function Wxr(t){const n=$At(()=>AR([bo(t),fu(),my(),aAt(),Gd(n),wD(bo(),n)]));return n}function JAt(t,n){return Xme(eBe(t),n)}const Ugn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:cAt,ZodArray:pAt,ZodBase64:ULe,ZodBase64URL:JLe,ZodBigInt:XLe,ZodBigIntFormat:YLe,ZodBoolean:KLe,ZodCIDRv4:zLe,ZodCIDRv6:VLe,ZodCUID:FLe,ZodCUID2:MLe,ZodCatch:OAt,ZodCodec:iBe,ZodCustom:kye,ZodCustomStringFormat:hee,ZodDate:dAt,ZodDefault:kAt,ZodDiscriminatedUnion:mAt,ZodE164:WLe,ZodEmail:NLe,ZodEmoji:OLe,ZodEnum:rQ,ZodExactOptional:TAt,ZodFile:xAt,ZodFunction:zAt,ZodGUID:Wme,ZodIPv4:$Le,ZodIPv6:qLe,ZodIntersection:gAt,ZodJWT:HLe,ZodKSUID:BLe,ZodLazy:BAt,ZodLiteral:SAt,ZodMAC:nAt,ZodMap:vAt,ZodNaN:FAt,ZodNanoID:RLe,ZodNever:uAt,ZodNonOptional:rBe,ZodNull:sAt,ZodNullable:EAt,ZodNumber:GLe,ZodNumberFormat:j$,ZodObject:Tye,ZodOptional:tBe,ZodPipe:nBe,ZodPrefault:DAt,ZodPromise:qAt,ZodReadonly:MAt,ZodRecord:Eye,ZodSet:bAt,ZodString:ILe,ZodStringFormat:j_,ZodSuccess:NAt,ZodSymbol:iAt,ZodTemplateLiteral:LAt,ZodTransform:wAt,ZodTuple:yAt,ZodType:Lu,ZodULID:jLe,ZodURL:wye,ZodUUID:aD,ZodUndefined:oAt,ZodUnion:Cye,ZodUnknown:lAt,ZodVoid:fAt,ZodXID:LLe,ZodXor:_At,_ZodString:PLe,_default:AAt,_function:lht,any:xxr,array:Gd,base64:oxr,base64url:sxr,bigint:gxr,boolean:my,catch:RAt,check:qxr,cidrv4:nxr,cidrv6:ixr,codec:Lxr,cuid:KSr,cuid2:XSr,custom:ZI,date:Txr,describe:zxr,discriminatedUnion:hAt,e164:axr,email:BSr,emoji:HSr,enum:ed,exactOptional:CAt,file:Rxr,float32:pxr,float64:_xr,function:lht,guid:$Sr,hash:dxr,hex:fxr,hostname:uxr,httpUrl:WSr,instanceof:Uxr,int:oRe,int32:mxr,int64:yxr,intersection:QLe,ipv4:exr,ipv6:rxr,json:Wxr,jwt:cxr,keyof:Cxr,ksuid:QSr,lazy:$At,literal:Pg,looseObject:kxr,looseRecord:Pxr,mac:txr,map:Ixr,meta:Vxr,nan:jxr,nanoid:GSr,nativeEnum:Oxr,never:ZLe,nonoptional:IAt,null:aAt,nullable:Kme,nullish:Fxr,number:fu,object:Pa,optional:Gme,partialRecord:Dxr,pipe:Xme,prefault:PAt,preprocess:JAt,promise:$xr,readonly:jAt,record:wD,refine:VAt,set:Nxr,strictObject:Exr,string:bo,stringFormat:lxr,stringbool:Jxr,success:Mxr,superRefine:UAt,symbol:bxr,templateLiteral:Bxr,transform:eBe,tuple:Hme,uint32:hxr,uint64:vxr,ulid:YSr,undefined:Sxr,union:AR,unknown:t$,url:JSr,uuid:qSr,uuidv4:zSr,uuidv6:VSr,uuidv7:USr,void:wxr,xid:ZSr,xor:Axr},Symbol.toStringTag,{value:"Module"})),uht={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Jgn(t){$S({customError:t})}function Wgn(){return $S().customError}var fht;fht||(fht={});const dht=ed(["mock","live"]),Hxr=Pa({id:bo().min(1),name:bo().min(1),status:ed(["free","trialing","active","past_due","cancelling"]),interval:ed(["month","year"]).optional(),renewsAt:bo().datetime().optional(),endsAt:bo().datetime().optional()}),Gxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Kxr=Pa({overageEnabled:my(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:my(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Xxr=Pa({id:bo().min(1),kind:ed(["threshold","auto_reload_succeeded","auto_reload_failed"]),message:bo().min(1),createdAt:bo().datetime(),readAt:bo().datetime().optional()}),Yxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Zxr=Pa({name:bo().min(1),verified:my(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Qxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Zxr).max(50)}),ewr=Pa({id:bo().min(1),occurredAt:bo().datetime(),kind:ed(["inference","generation","workspace","storage","relay","deployment"]),provider:bo().min(1),operation:bo().optional(),credits:fu().nonnegative(),state:ed(["reserved","settled","released"]),externalId:bo().optional()});ed(["free","creator","max","ultra"]);const twr=Pa({plans:Pa({free:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()}),creator:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()}),max:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()}),ultra:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()})}),creditPacks:wD(bo().min(1),Pa({name:bo().min(1),credits:fu().int().positive(),expiresInDays:fu().int().positive().optional()}))}),rwr=hAt("authenticated",[Pa({authenticated:Pg(!1),backend:dht}),Pa({authenticated:Pg(!0),backend:dht,user:Yxr,organizations:Gd(Qxr).max(100).optional(),plan:Hxr,credits:Gxr,spendPolicy:Kxr,alerts:Gd(Xxr).max(100).optional(),entitlements:Pa({generation:my(),dailyJobs:fu().int().positive().optional()})})]),nwr=ed(["auto","mock","managed","byok"]),WAt=ed(["fal","tripo","worldlabs","openrouter"]),iwr=Pa({enabled:my(),provider:Pg("openrouter"),model:bo().trim().min(1).max(256)}),owr=ed(["environment","system","session","none"]),swr=Pa({provider:WAt,label:bo().min(1),environmentVariable:bo().min(1),configured:my(),source:owr,editable:my(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),awr=Pa({provider:WAt,ok:Pg(!0),testedAt:bo().datetime()});function cwr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const Aye=QLe(rwr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Pg(!0),managed:my(),byok:my(),byokProviders:Gd(bo().min(1))}),preferredRoute:nwr,providerCredentials:Gd(swr),codingInference:iwr}));function lwr(t,n){return`${t}: this origin answered with its page fallback (${n||"no content-type"}) rather than JSON, so no editor server handled the request.`}function of(t,n){const s=t.headers.get("content-type")??"";if(!s.includes("application/json"))throw new Error(lwr(n,s))}function EN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return EN(t,n),await t.json()}const pht="volter.collaboration.participant.v1",uwr="volter.collaboration.remote-share.v1",sRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function fwr(){if(sRe?.participantId)return sRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(pht);if(n)return n;globalThis.localStorage?.setItem(pht,t)}catch{}return t}const HAt=fwr(),L$=(()=>{try{return globalThis.localStorage?.getItem(uwr)==="1"}catch{return!1}})(),dwr=sRe?.displayName||"Local editor",pwr=Symbol.for("volter.collaboration.revision"),aRe=globalThis[pwr]??={value:0};function GAt(t){Number.isInteger(t)&&t>=aRe.value&&(aRe.value=t)}function Dw(){return{participantId:HAt,expectedRevision:aRe.value}}const _wr={authenticated:!1,backend:"mock",accountEnvironment:"test-mock",routes:{mock:!0,managed:!1,byok:!1,byokProviders:[]},preferredRoute:"auto",providerCredentials:[],codingInference:{enabled:!1,provider:"openrouter",model:"z-ai/glm-5.2"}};let r$=_wr,KAt=0,cRe=null;const lRe=new Set;function lR(t,n=null){if(!(cRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,cRe=n,KAt++;for(const s of lRe)s()}}async function XAt(t,n){of(t,n);const s=await t.json();if(!t.ok)throw new Error(typeof s.error=="string"?String(s.error):`Account request failed (${t.status}).`);return Aye.parse(s)}async function NC(t,n,s){const c=await fetch(t,{method:n,...s===void 0?{}:{headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}}),d=await XAt(c,`${n} ${t} failed`);return lR(d),d}function oBe(){return r$}function sBe(){return cwr(r$)}function lN(){return KAt}function Tpe(){return cRe}function Dye(t){return lRe.add(t),()=>lRe.delete(t)}async function _ht(){try{const t=await XAt(await fetch("/__editor/account"),"Account read failed");return lR(t),t}catch(t){throw lR(r$,t instanceof Error?t.message:String(t)),t}}const mwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),hwr=t=>NC("/__editor/account/twin-session","POST",{email:t}),gwr=()=>NC("/__editor/account/session","DELETE"),ywr=t=>NC("/__editor/account/spend-policy","PUT",t),vwr=()=>NC("/__editor/account/alerts/read","POST"),bwr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),Swr=t=>NC("/__editor/account/coding-inference","PUT",t);async function xwr(t){const n=await fetch("/__editor/account/coding-inference/quote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});of(n,"Coding quote failed");const s=await n.json();if(!n.ok||typeof s.model!="string"||typeof s.promptTokens!="number"||typeof s.outputTokens!="number"||typeof s.providerAmountUsd!="number"||typeof s.estimatedCredits!="number")throw new Error(typeof s.error=="string"?s.error:"Coding quote failed.");return s}const wwr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),Twr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function Cwr(t){const n=await fetch(`/__editor/account/provider-credentials/${encodeURIComponent(t)}/test`,{method:"POST"});of(n,"Credential test failed");const s=await n.json();if(!n.ok)throw new Error(typeof s.error=="string"?s.error:`Credential test failed (${n.status}).`);return awr.parse(s)}const mht=t=>NC("/__editor/account/plan","PUT",{action:t});async function YAt(t,n){const s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","Idempotency-Key":crypto.randomUUID()},body:JSON.stringify(n)});of(s,"Checkout failed");const c=await s.json();if(!s.ok||!c.account)throw new Error(typeof c.error=="string"?c.error:"Checkout failed.");return lR(Aye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const Ewr=t=>YAt("/__editor/account/checkout",{plan:t}),kwr=t=>YAt("/__editor/account/credits",{packId:t});async function Awr(){const t=await fetch("/__editor/account/usage");of(t,"Usage failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Usage failed.");return ewr.array().parse(n.entries??[])}async function Dwr(){const t=await fetch("/__editor/account/catalog");of(t,"Catalog failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Catalog failed.");return twr.parse(n)}async function Pwr(){const t=await fetch("/__editor/account/billing-portal",{method:"POST"});of(t,"Billing portal failed");const n=await t.json();if(!t.ok||typeof n.url!="string")throw new Error(typeof n.error=="string"?n.error:"Billing portal failed.");return{url:n.url,mock:n.mock===!0}}async function Iwr(){const t=await fetch("/__editor/account/authorization-methods");of(t,"Sign-in methods are unavailable");const n=await t.json();if(!t.ok||n.browser!==!0||typeof n.device!="boolean")throw new Error(typeof n.error=="string"?n.error:"Sign-in methods are unavailable.");return{browser:!0,device:n.device}}async function Nwr(){const t=await fetch("/__editor/account/browser-authorization",{method:"POST"});of(t,"Sign-in failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Sign-in failed.");return n}async function Owr(t){const n=await fetch(`/__editor/account/browser-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}async function Rwr(){const t=await fetch("/__editor/account/device-authorization",{method:"POST"});of(t,"Sign-in failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Sign-in failed.");return n}async function Fwr(t){const n=await fetch(`/__editor/account/device-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}function Mwr(){if(L$)return()=>{};const t=new URLSearchParams(window.location.search).get("checkout_id");t?NC("/__editor/account/checkout/confirm","POST",{checkoutId:t}).then(()=>{const s=new URL(window.location.href);s.searchParams.delete("checkout"),s.searchParams.delete("checkout_id"),window.history.replaceState(null,"",`${s.pathname}${s.search}${s.hash}`)}).catch(s=>lR(r$,s instanceof Error?s.message:String(s))):_ht().catch(()=>{});const n=window.setInterval(()=>void _ht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function ZAt(t){return t?e3t(t)?null:t:null}function jwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function QAt(t){return t&&e3t(t)?t:null}function e3t(t){return t.keyedBy==="display"}const Hgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:QAt,nodeKeyedPhysics:ZAt,physicsOwnerOf:jwr},Symbol.toStringTag,{value:"Module"})),Lwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},aBe=Object.keys(Lwr);function Bwr(){const t={};for(const n of aBe)t[n]=0;return t}const $wr={provenance:!0,selection:!0,transforms:!0,inspector:!0,assetSubject:!0,related:!0,instances:!0,structure:!0,persistence:!0,pickable:!0,rects:!0,boxEdit:!0,text:!0,colorSample:!0,stories:!0,truth:!0,spatialHandles:!0,assetDrop:!0,subscribe:!0},cBe=Object.keys($wr);function qwr(t){const n={};for(const s of cBe)n[s]=t[s]!==void 0;return n}const Ggn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:cBe,WRITE_ANCHOR_KINDS:aBe,emptyWriteAnchorKindCounts:Bwr,measureAuthoringProviders:qwr},Symbol.toStringTag,{value:"Module"})),zwr=["claim","shape","operation","effect","round-trip"],Yme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function t3t(t,n){return Yme[t]>=Yme[n]}function nQ(t){const{seam:n,subject:s,epoch:c,required:d}=t;if(t.notApplicable!==void 0)return{seam:n,subject:s,epoch:c,required:d,state:"not-applicable",receipt:null,detail:t.notApplicable};let m=null;for(const g of t.receipts)g.seam!==n||g.subject!==s||g.epoch!==c||(!m||Yme[g.stage]>=Yme[m.stage])&&(m=g);return m?m.outcome==="fail"?{seam:n,subject:s,epoch:c,required:d,state:"failed",receipt:m,detail:m.detail}:m.outcome==="absent"?{seam:n,subject:s,epoch:c,required:d,state:"absent",receipt:m,detail:m.detail}:t3t(m.stage,d)?{seam:n,subject:s,epoch:c,required:d,state:"verified",receipt:m,detail:m.detail}:{seam:n,subject:s,epoch:c,required:d,state:"unverified",receipt:m,detail:`${m.detail}; this proves ${m.stage}, but this seam requires ${d}`}:{seam:n,subject:s,epoch:c,required:d,state:"unverified",receipt:null,detail:`no current-epoch evidence has reached the required ${d} stage`}}class r3t{#e=[];record(n){if(!n.seam||!n.subject||!n.epoch||!n.detail.trim())throw new Error("seam evidence requires non-empty seam, subject, epoch, and detail");this.#e.push(n)}receipts(n){return this.#e.filter(s=>(n?.subject===void 0||s.subject===n.subject)&&(n?.epoch===void 0||s.epoch===n.epoch))}verdict(n){return nQ({...n,receipts:this.#e})}clearSubject(n){for(let s=this.#e.length-1;s>=0;s-=1)this.#e[s]?.subject===n&&this.#e.splice(s,1)}clear(){this.#e.length=0}}function Ip(){return t=>t}function Vwr(t){if(t.value===void 0)return{seam:t.seam,subject:t.subject,epoch:t.epoch,stage:"shape",outcome:t.optional?"absent":"fail",source:"shape-check",detail:t.optional?`${t.seam} is not exposed by this subject`:`${t.seam} is required by the contract but is absent`};const n=typeof t.value,s=t.kind==="function"?n==="function":n!=="function";return{seam:t.seam,subject:t.subject,epoch:t.epoch,stage:"shape",outcome:s?"pass":"fail",source:"shape-check",detail:s?`${t.seam} has the contract's ${t.kind} shape`:`${t.seam} is ${n}; the contract requires a ${t.kind}`}}function vB(t){const n=[],s=t.value!==null&&(typeof t.value=="object"||typeof t.value=="function")?t.value:null,c=Object.entries(t.shape);for(const[d,m]of c){const g=`${t.prefix}.${d}`,S=s?.[d];n.push(Vwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Zme(t){const n=nQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=nQ({seam:`${t.seam}.${s}`,subject:t.subject,epoch:t.epoch,required:c.required,receipts:t.receipts});if(!(c.optional&&d.state==="absent")){if(d.state==="failed"||d.state==="absent")return{...n,state:"failed",receipt:d.receipt,detail:`${t.seam} is malformed: ${d.detail}`};if(d.state!=="verified")return{...n,state:"unverified",detail:`${t.seam} has the required shape, but ${d.seam} is unverified: ${d.detail}`}}}return n}const Kgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:zwr,SeamEvidenceLedger:r3t,defineSeamShape:Ip,gradeSeamCarrier:Zme,gradeSeamEvidence:nQ,inspectSeamShape:vB,seamStageAtLeast:t3t},Symbol.toStringTag,{value:"Module"})),XY=Ip()({capabilities:{optional:!1,kind:"value",required:"shape"},provenance:{optional:!0,kind:"value",required:"shape"},hierarchy:{optional:!1,kind:"value",required:"operation"},selection:{optional:!0,kind:"value",required:"effect"},transforms:{optional:!0,kind:"value",required:"effect"},inspector:{optional:!0,kind:"value",required:"effect"},assetSubject:{optional:!0,kind:"value",required:"operation"},related:{optional:!0,kind:"value",required:"operation"},instances:{optional:!0,kind:"value",required:"effect"},structure:{optional:!0,kind:"value",required:"round-trip"},persistence:{optional:!0,kind:"value",required:"round-trip"},pickable:{optional:!0,kind:"value",required:"operation"},rects:{optional:!0,kind:"value",required:"operation"},boxEdit:{optional:!0,kind:"value",required:"effect"},text:{optional:!0,kind:"value",required:"effect"},colorSample:{optional:!0,kind:"value",required:"operation"},stories:{optional:!0,kind:"value",required:"effect"},truth:{optional:!0,kind:"value",required:"operation"},spatialHandles:{optional:!0,kind:"value",required:"effect"},assetDrop:{optional:!0,kind:"value",required:"round-trip"},subscribe:{optional:!0,kind:"function",required:"effect"}}),uRe=Ip()({roots:{optional:!1,kind:"function",required:"operation"},node:{optional:!1,kind:"function",required:"operation"},crossSurfaceStructureSignature:{optional:!0,kind:"function",required:"operation"},object3D:{optional:!0,kind:"function",required:"operation"},idForObject3D:{optional:!0,kind:"function",required:"operation"}}),n3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),i3t=Ip()({dimensions:{optional:!0,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},editability:{optional:!0,kind:"function",required:"operation"},beginEdit:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},endEdit:{optional:!1,kind:"function",required:"effect"},remove:{optional:!0,kind:"function",required:"round-trip"},sourceCommit:{optional:!0,kind:"value",required:"round-trip"}}),o3t=Ip()({properties:{optional:!1,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},preview:{optional:!0,kind:"function",required:"effect"},editability:{optional:!0,kind:"function",required:"operation"},remove:{optional:!0,kind:"function",required:"round-trip"}}),s3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),a3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),c3t=Ip()({describe:{optional:!1,kind:"function",required:"operation"},openComponent:{optional:!0,kind:"function",required:"effect"},revert:{optional:!1,kind:"function",required:"round-trip"},applyToComponent:{optional:!1,kind:"function",required:"round-trip"}}),l3t=Ip()({create:{optional:!1,kind:"function",required:"round-trip"},remove:{optional:!1,kind:"function",required:"round-trip"},duplicate:{optional:!1,kind:"function",required:"round-trip"},duplicateMany:{optional:!0,kind:"function",required:"round-trip"},reparent:{optional:!1,kind:"function",required:"round-trip"},reorder:{optional:!0,kind:"function",required:"round-trip"},creatableKinds:{optional:!0,kind:"function",required:"operation"},wrap:{optional:!0,kind:"function",required:"round-trip"},unwrap:{optional:!0,kind:"function",required:"round-trip"},group:{optional:!0,kind:"function",required:"round-trip"},ungroup:{optional:!0,kind:"function",required:"round-trip"},canUngroup:{optional:!0,kind:"function",required:"operation"},removeMany:{optional:!0,kind:"function",required:"round-trip"},copy:{optional:!0,kind:"function",required:"effect"},canCopy:{optional:!0,kind:"function",required:"operation"},cut:{optional:!0,kind:"function",required:"round-trip"},paste:{optional:!0,kind:"function",required:"round-trip"},canPaste:{optional:!0,kind:"function",required:"operation"}}),u3t=Ip()({isDirty:{optional:!1,kind:"function",required:"operation"},lastError:{optional:!0,kind:"function",required:"operation"},save:{optional:!1,kind:"function",required:"round-trip"},destination:{optional:!1,kind:"value",required:"shape"},applyExternal:{optional:!0,kind:"function",required:"effect"}}),f3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),d3t=Ip()({storiesFor:{optional:!1,kind:"function",required:"operation"},active:{optional:!1,kind:"function",required:"operation"},apply:{optional:!1,kind:"function",required:"effect"},isolate:{optional:!0,kind:"function",required:"effect"},title:{optional:!0,kind:"value",required:"shape"},unavailable:{optional:!0,kind:"function",required:"operation"}}),p3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),_3t=Ip()({rect:{optional:!1,kind:"function",required:"operation"},contextRects:{optional:!0,kind:"function",required:"operation"},emptyContainers:{optional:!0,kind:"function",required:"operation"},frame:{optional:!0,kind:"function",required:"operation"}}),m3t=Ip()({begin:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},end:{optional:!1,kind:"function",required:"effect"},gizmoOrigin:{optional:!0,kind:"function",required:"operation"},referencePoint:{optional:!0,kind:"function",required:"operation"}}),h3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),g3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),y3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),v3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),fRe={selection:n3t,transforms:i3t,inspector:o3t,assetSubject:s3t,related:a3t,instances:c3t,structure:l3t,persistence:u3t,pickable:f3t,rects:_3t,boxEdit:m3t,text:h3t,colorSample:g3t,stories:d3t,truth:y3t,spatialHandles:v3t,assetDrop:p3t},Xgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:p3t,ASSET_SUBJECT_PROVIDER_SHAPE:s3t,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:fRe,BOX_EDIT_PROVIDER_SHAPE:m3t,COLOR_SAMPLE_PROVIDER_SHAPE:g3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:c3t,HIERARCHY_PROVIDER_SHAPE:uRe,INSPECTOR_PROVIDER_SHAPE:o3t,PERSISTENCE_PROVIDER_SHAPE:u3t,PICK_PROVIDER_SHAPE:f3t,RECT_PROVIDER_SHAPE:_3t,RELATED_SUBJECTS_PROVIDER_SHAPE:a3t,SELECTION_PROVIDER_SHAPE:n3t,SPATIAL_HANDLES_PROVIDER_SHAPE:v3t,STORIES_PROVIDER_SHAPE:d3t,STRUCTURE_PROVIDER_SHAPE:l3t,TEXT_PROVIDER_SHAPE:h3t,TRANSFORM_PROVIDER_SHAPE:i3t,TRUTH_PROVIDER_SHAPE:y3t},Symbol.toStringTag,{value:"Module"})),dRe=Ip()({physics:{optional:!0,kind:"value",required:"effect"},networking:{optional:!0,kind:"value",required:"operation"},navigation:{optional:!0,kind:"value",required:"operation"},audio:{optional:!0,kind:"value",required:"effect"},camera:{optional:!0,kind:"value",required:"effect"},debug:{optional:!0,kind:"value",required:"operation"},renderDebug:{optional:!0,kind:"value",required:"effect"}}),b3t=Ip()({keyedBy:{optional:!0,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"},debugDraw:{optional:!0,kind:"function",required:"operation"},setDebugDrawEnabled:{optional:!0,kind:"function",required:"effect"},contactPoints:{optional:!0,kind:"function",required:"operation"},colliders:{optional:!0,kind:"function",required:"operation"},previewCollider:{optional:!0,kind:"function",required:"effect"},joints:{optional:!0,kind:"function",required:"operation"},previewJointAnchor:{optional:!0,kind:"function",required:"effect"}}),S3t=Ip()({keyedBy:{optional:!1,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"}}),x3t=Ip()({peers:{optional:!1,kind:"function",required:"operation"},networkId:{optional:!1,kind:"function",required:"operation"},authority:{optional:!1,kind:"function",required:"operation"},editable:{optional:!1,kind:"function",required:"operation"},getConnectionState:{optional:!0,kind:"function",required:"operation"},getRoomInfo:{optional:!0,kind:"function",required:"operation"},getReplicationStats:{optional:!0,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"},getStateSnapshot:{optional:!0,kind:"function",required:"operation"},messageEvents:{optional:!0,kind:"function",required:"operation"},getRates:{optional:!0,kind:"function",required:"operation"},getConditioning:{optional:!0,kind:"function",required:"operation"},setConditioning:{optional:!0,kind:"function",required:"effect"},getServerConfig:{optional:!0,kind:"function",required:"operation"},getPlayerIdentity:{optional:!0,kind:"function",required:"operation"},setPlayerIdentity:{optional:!0,kind:"function",required:"effect"},getTrafficByType:{optional:!0,kind:"function",required:"operation"},sendMessage:{optional:!0,kind:"function",required:"effect"},getConditioningLimits:{optional:!0,kind:"function",required:"operation"},ping:{optional:!0,kind:"function",required:"effect"},inspectServer:{optional:!0,kind:"function",required:"operation"},disconnectClient:{optional:!0,kind:"function",required:"effect"},editServerState:{optional:!0,kind:"function",required:"effect"},deleteServerState:{optional:!0,kind:"function",required:"effect"},sendToClient:{optional:!0,kind:"function",required:"effect"},broadcast:{optional:!0,kind:"function",required:"effect"},disposeRoom:{optional:!0,kind:"function",required:"effect"},stateFieldType:{optional:!0,kind:"function",required:"operation"},clearTraffic:{optional:!0,kind:"function",required:"effect"},getTrafficByEntity:{optional:!0,kind:"function",required:"operation"},isRecording:{optional:!0,kind:"function",required:"operation"},setRecording:{optional:!0,kind:"function",required:"effect"}}),w3t=Ip()({hasNavMesh:{optional:!1,kind:"function",required:"operation"},findPath:{optional:!1,kind:"function",required:"effect"},debugMesh:{optional:!1,kind:"function",required:"operation"},bake:{optional:!0,kind:"function",required:"effect"},exportData:{optional:!0,kind:"function",required:"operation"},clear:{optional:!0,kind:"function",required:"effect"},crowdAgents:{optional:!0,kind:"function",required:"operation"}}),T3t=Ip()({resume:{optional:!0,kind:"function",required:"effect"},setMuted:{optional:!1,kind:"function",required:"effect"},isMuted:{optional:!1,kind:"function",required:"operation"},graphSnapshot:{optional:!0,kind:"function",required:"operation"},transportState:{optional:!0,kind:"function",required:"operation"},acquireMeters:{optional:!0,kind:"function",required:"effect"},acquireRecordingStream:{optional:!0,kind:"function",required:"effect"},renderOffline:{optional:!0,kind:"function",required:"operation"},audioEvents:{optional:!0,kind:"function",required:"operation"}}),C3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),E3t=Ip()({providers:{optional:!1,kind:"function",required:"operation"},state:{optional:!1,kind:"function",required:"operation"},stateAll:{optional:!1,kind:"function",required:"operation"},commands:{optional:!1,kind:"function",required:"operation"},invoke:{optional:!1,kind:"function",required:"effect"},events:{optional:!1,kind:"function",required:"operation"}}),k3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),A3t={networking:x3t,navigation:w3t,audio:T3t,camera:C3t,debug:E3t,renderDebug:k3t},Ygn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:T3t,CAMERA_ADAPTER_SHAPE:C3t,DEBUG_ADAPTER_SHAPE:E3t,NAVIGATION_ADAPTER_SHAPE:w3t,NETWORKING_ADAPTER_SHAPE:x3t,PHYSICS_2D_ADAPTER_SHAPE:S3t,PHYSICS_ADAPTER_SHAPE:b3t,RENDER_DEBUG_ADAPTER_SHAPE:k3t,SYSTEM_ADAPTERS_SHAPE:dRe,SYSTEM_PROVIDER_SHAPES:A3t},Symbol.toStringTag,{value:"Module"})),lBe=new r3t;function Uwr(t){lBe.record(t)}const hht=new WeakMap;let Jwr=1;function D3t(t){const n=hht.get(t);if(n)return n;const s=`system-${Jwr++}`;return hht.set(t,s),s}function Wwr(t){const n=t.epoch??D3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?QAt(t.adapter)?S3t:b3t:A3t[t.slot],m=[...vB({prefix:"system",value:c,shape:dRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...lBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Zme({seam:s,subject:t.subject,epoch:n,required:dRe[t.slot].required,receipts:m,shape:d})}let qS={},iQ=null,uBe=null;const Qme=new Set,ehe=new Set,pRe=new Set;let fBe=0;function _Re(){for(const t of pRe)t()}function the(t){if(t!==Iye())for(const n of Qme)n()}function rhe(t,n){const s=Oye();if(!(t===Nye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){fBe++;for(const c of ehe)c()}}const LS=new Map;let x_e=null,P3t=0;const mRe=new Set,dBe="";function I3t(t,n){const s=["physics","networking","navigation","audio","camera","debug","renderDebug"];for(const c of s){const d=t[c];if(!d)continue;const m=Wwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function QI(){return x_e!==null&&LS.has(x_e)?x_e:LS.keys().next().value??null}function nhe(){P3t++;for(const t of mRe)t()}function Hwr(t){const n=QI();if(x_e=t,n!==QI()){nhe(),fBe++;for(const s of Qme)s();for(const s of ehe)s()}}function Zgn(){return QI()}function Gwr(t){return mRe.add(t),()=>mRe.delete(t)}function Qgn(){return P3t}function Pye(){const t=QI();return(t===null?void 0:LS.get(t))??qS}function Kwr(t,n=dBe){const s=QI(),c=Iye(),d=Nye(),m=Oye();if(t){I3t(t,n),LS.set(n,t),qS=t,the(c),rhe(d,m),_Re(),s!==QI()&&nhe();return}LS.delete(n),qS=LS.values().next().value??{},the(c),rhe(d,m),_Re(),s!==QI()&&nhe()}function Xwr(){for(const t of[...LS.keys()])Kwr(null,t);Hwr(null)}function eyn(t,n=dBe){const s=Iye(),c=Nye(),d=Oye(),m=LS.get(n);I3t(t,n),LS.set(n,t),qS===m&&(qS=t),the(s),rhe(c,d),_Re(),QI()===n&&nhe()}function tyn(){return qS}function Ywr(t){return pRe.add(t),()=>pRe.delete(t)}function Zwr(){return[...LS.keys()]}function ght(t){const n=t.filter(d=>d!==dBe),s=t.length>n.length,c=n.map(d=>`"${d}"`);return s&&c.push("the unnamed default (address it with no id at all)"),c.join(", ")}class yht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Qwr(t){const n=Zwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new yht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${ght(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new yht(`${n.length} instances are live (${ght(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function ryn(){return ZAt(qS.physics)}function eTr(){return qS.camera??null}function Iye(){return qS.networking??uBe??null}function tTr(){return Pye().networking??uBe??null}function rTr(t){return Qme.add(t),()=>Qme.delete(t)}function nyn(t){const n=Iye();uBe=t,the(n)}function iyn(){return qS.debug??null}function oyn(t){const n=Nye(),s=Oye();iQ=t,rhe(n,s)}function Nye(){return qS.audio??iQ}function nTr(){return Pye().audio??iQ}function iTr(t){return ehe.add(t),()=>ehe.delete(t)}function oTr(){return fBe}function Oye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&iQ&&t.add(iQ),[...t]}function sTr(){return qS.renderDebug??null}function syn(){return Pye().renderDebug??null}let N3t=null;const hRe=new Set;function ayn(t){N3t=t;for(const n of hRe)n()}function Rye(){return N3t?.()??null}function Fye(t){hRe.add(t);const n=Gwr(t);return()=>{hRe.delete(t),n()}}function uN(){const t=Rye();return t?`play:${t.instanceId}`:"stopped"}function Mye(t,n){let s=!1,c=[];const d=()=>{s=!1;const g=c;c=[];for(let S=g.length-1;S>=0;S--)g[S]()};return{ensure(g){if(!s){s=!0;try{g(S=>c.push(S))}catch(S){throw d(),S}}},reset:d}}let wO=[],aTr=0,O3t=0;const gRe=new Set;function vht(){O3t++;for(const t of gRe)t()}function R3t(t){return gRe.add(t),()=>{gRe.delete(t)}}function bht(){return O3t}function Z4(t){if(wO.some(s=>s.contribution.id===t.id))throw new Error(`registerWorkspaceStatus: id "${t.id}" is already registered — status ids key status-bar slots, so they must be unique; unregister the previous contribution first.`);const n={contribution:t,seq:aTr++};return wO=[...wO,n],vht(),()=>{wO.includes(n)&&(wO=wO.filter(s=>s!==n),vht())}}function yRe(t){const n=s=>[...wO].filter(c=>(c.contribution.align??"left")===s).sort((c,d)=>(c.contribution.order??0)-(d.contribution.order??0)||c.seq-d.seq).map(c=>c.contribution);return t?n(t):[...n("left"),...n("right")]}let w_e=null,F3t=0;const vRe=new Set;function Sht(){F3t++;for(const t of vRe)t()}function M3t(t){return vRe.add(t),()=>vRe.delete(t)}function bRe(){return F3t}function pBe(){return w_e}function cTr(t){const n=Symbol(t.documentId);return w_e={...t,token:n},Sht(),()=>{w_e?.token===n&&(w_e=null,Sht())}}function lTr(){Ye.useSyncExternalStore(M3t,bRe);const t=pBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const uTr=Mye();function fTr(){uTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:lTr}))})}fTr();let bB=null,j3t=0;const SRe=new Set;function xht(){j3t+=1;for(const t of SRe)t()}function dTr(t){return SRe.add(t),()=>{SRe.delete(t)}}function wht(){return j3t}function pTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},xht(),()=>{bB?.token===s&&(bB=null,xht())}}function xRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const fN=new Map,wRe=new Map;function L3t(){typeof window>"u"||window.parent===window||fN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...fN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&L3t()});let Nc=null,_Be=null;function mBe(){if(typeof window>"u")return!1;const t=window.__VOLTER_VIEWPORT_TIMINGS__;if(t===!0||t==="1")return!0;try{return new URLSearchParams(window.location.search).get("volterTimings")==="1"}catch{return!1}}function B3t(t,n,s){return{documentId:t,visibilityState:typeof document>"u"?"unavailable":document.visibilityState,startedAtMs:n,reactActiveAtMs:null,boardBuildStartedAtMs:null,boardReadyAtMs:null,constructStartedAtMs:null,viewportReadyAtMs:null,rafResumeAtMs:null,firstRenderStartedAtMs:null,workspaceSyncMs:0,revealScheduleMs:0,componentIndexMs:0,componentIndexBusyMs:0,componentIndexWaitMs:0,candidateCollectMs:0,storyMountTotalMs:0,boundsMs:0,layoutMs:0,assembleMs:0,webglContextMs:0,rendererMs:0,adapterSetupMs:0,iblBakeMs:0,dressingMs:0,editorViewportMs:0,framingMs:0,resizeBindMs:0,viewportBindMs:0,firstRenderMs:0,candidateCount:0,exhibitCount:0,skippedCount:0,modulesAlreadyLoaded:s.modulesAlreadyLoaded===!0,stories:[]}}function _Tr(t){let n=0,s=0;for(const c of t)n+=Math.max(0,c.runtimeMs)+Math.max(0,c.fiberMs),s+=Math.max(0,c.loadMs)+Math.max(0,c.settleMs);return{busyMs:n,waitMs:s}}function mTr(t,n){const s=t.reactActiveAtMs===null?0:Math.max(0,t.reactActiveAtMs-t.startedAtMs),c=t.reactActiveAtMs??t.startedAtMs,d=t.boardBuildStartedAtMs,m=d===null?0:Math.max(0,d-c),g=t.boardReadyAtMs===null||t.constructStartedAtMs===null?0:Math.max(0,t.constructStartedAtMs-t.boardReadyAtMs),S=t.viewportReadyAtMs??t.rafResumeAtMs,k=t.firstRenderStartedAtMs??n,A=S===null?0:Math.max(0,k-S),F=S===null?Math.max(0,n-t.startedAtMs):Math.max(0,n-S),D=_Tr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=hTr({workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,componentIndexBusyMs:t.componentIndexBusyMs,componentIndexWaitMs:t.componentIndexWaitMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs}).reduce((pe,ue)=>pe+ue.ms,0),se=Math.max(0,n-t.startedAtMs);return{visibilityState:t.visibilityState,startedAtMs:t.startedAtMs,reactActiveAtMs:t.reactActiveAtMs,boardBuildStartedAtMs:t.boardBuildStartedAtMs,boardReadyAtMs:t.boardReadyAtMs,constructStartedAtMs:t.constructStartedAtMs,viewportReadyAtMs:t.viewportReadyAtMs,rafResumeAtMs:t.rafResumeAtMs,firstRenderStartedAtMs:t.firstRenderStartedAtMs,firstFrameAtMs:n,activationKind:J,workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs,firstPaintMs:F,unattributedMs:Math.max(0,se-G),accountedMs:G,candidateCount:t.candidateCount,exhibitCount:t.exhibitCount,skippedCount:t.skippedCount,modulesAlreadyLoaded:t.modulesAlreadyLoaded,stories:t.stories,storyDiscovery:_Be}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Cpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function Tht(t,n,s,c){const d=Math.max(0,n);let m=Math.max(0,s),g=Math.max(0,c);if(m+g>d){const S=d/(m+g);m*=S,g*=S}else m+g<d&&(g+=d-m-g);return{name:t,ms:d,busyMs:m,waitMs:g,kind:"mixed"}}function hTr(t){return[Cpe("workspace-sync",t.workspaceSyncMs),Cpe("reveal-schedule",t.revealScheduleMs),Tht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),Tht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Cpe("react-commit (board→viewport)",t.reactCommitMs),Yb("webgl-context",t.webglContextMs),Yb("renderer",t.rendererMs),Yb("adapter-setup",t.adapterSetupMs),Yb("ibl-bake (three PMREM)",t.iblBakeMs),Yb("dressing",t.dressingMs),Yb("editor-viewport",t.editorViewportMs),Yb("framing",t.framingMs),Yb("resize-bind",t.resizeBindMs),Yb("viewport-bind",t.viewportBindMs),Cpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function cyn(t,n=Date.now()){const s=(wRe.get(t)??0)+1;wRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:mTr(d,n)};return Nc=null,fN.set(t,m),Eht(),Cht(),m}return fN.set(t,c),Eht(),Cht(),c}let TRe=new Set;const CRe=new Set;function Cht(){L3t();for(const t of CRe)t()}function gTr(t){return CRe.add(t),()=>CRe.delete(t)}function Eht(){fN.size!==0&&$3t()}function $3t(){const t=TRe;TRe=new Set;for(const n of t)n()}let kht=!1;function yTr(){kht||typeof document>"u"||(kht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&$3t()}))}function jye(){return fN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(yTr(),new Promise(t=>TRe.add(t)))}function vTr(){return[...fN.values()]}function bTr(t){mBe()&&(Nc=B3t(t,Date.now(),{}))}function lyn(t,n={}){if(!mBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=B3t(t,s,n),Nc.boardBuildStartedAtMs=s}function uyn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function fyn(t,n,s){if(!Nc)return;const c=Math.max(0,n);switch(t){case"component-index":Nc.componentIndexMs=c,Nc.componentIndexBusyMs=Math.max(0,s?.busyMs??0),Nc.componentIndexWaitMs=Math.max(0,s?.waitMs??c);break;case"candidate-collect":Nc.candidateCollectMs=c;break;case"story-mounts":Nc.storyMountTotalMs=c;break;case"bounds":Nc.boundsMs=c;break;case"layout":Nc.layoutMs=c;break;case"assemble":Nc.assembleMs=c;break;case"webgl-context":Nc.webglContextMs=c;break;case"renderer":Nc.rendererMs=c;break;case"adapter-setup":Nc.adapterSetupMs=c;break;case"ibl-bake":Nc.iblBakeMs=c;break;case"dressing":Nc.dressingMs=c;break;case"editor-viewport":Nc.editorViewportMs=c;break;case"framing":Nc.framingMs=c;break;case"resize-bind":Nc.resizeBindMs=c;break;case"viewport-bind":Nc.viewportBindMs=c;break;case"first-render":Nc.firstRenderMs=c;break}}function dyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function pyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function _yn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function myn(t){Nc&&(t.candidateCount!==void 0&&(Nc.candidateCount=t.candidateCount),t.exhibitCount!==void 0&&(Nc.exhibitCount=t.exhibitCount),t.skippedCount!==void 0&&(Nc.skippedCount=t.skippedCount))}function hyn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function gyn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function yyn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function vyn(t){Nc&&Nc.stories.push(t)}function byn(){return Nc?.documentId??null}function STr(t){mBe()&&(_Be=t)}function xTr(){fN.clear(),wRe.clear(),Nc=null,_Be=null}const wTr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,i2=null,oQ=null,uR=null;function Aht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let q3t=0;const ERe=new Set,A5e=new Set,hBe=new Map,XO=new Map;function wC(){q3t++;for(const t of ERe)t()}function o2(t){return ERe.add(t),()=>{ERe.delete(t)}}function K1(){return q3t}function l0(){return hp}function Pp(){return i2}function kRe(){return oQ}function TTr(t,n){X0(t)&&oQ!==n&&(oQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===i2)??null}function sQ(t){if(t===i2)return;t&&bTr(t);const n=hp.find(c=>c.descriptor.id===i2);i2=t,oQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function CTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&kN(zk),zk=t)}function ND(t,n={}){const s=uR===t.id,c=s||n.activate!==!1,d=hp.find(g=>g.descriptor.id===t.id);if(CTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||i2===null)&&sQ(t.id),s&&Aht(t.id),wC(),t.id;let m=!1;return(d.descriptor.Toolbar!==t.Toolbar||d.descriptor.Shelf!==t.Shelf||d.descriptor.Content!==t.Content)&&(hp=hp.map(g=>{if(g!==d)return g;const{Toolbar:S,Shelf:k,...A}=g.descriptor;return{...g,descriptor:{...A,Content:t.Content,...t.Toolbar?{Toolbar:t.Toolbar}:{},...t.Shelf?{Shelf:t.Shelf}:{}}}}),m=!0),c&&i2!==t.id&&(sQ(t.id),m=!0),m&&wC(),s&&Aht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(sQ(t),wC()),!0):!1}function z3t(){uR=null}function ETr(t){if(X0(t)){uR=null;return}uR=t}function kN(t,n={}){if(A5e.has(t))return!1;const s=hp.findIndex(d=>d.descriptor.id===t);if(s<0)return!1;const c=hp[s];if(c.dirty&&!n.discardDirty)return!1;A5e.add(t);try{if(i2===t){const m=s>0?hp[s-1]:hp[s+1]??null;sQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),hBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{A5e.delete(t)}}function V3t(){if(hp.length===0&&i2===null)return;const t=hp;sQ(null),hp=[],oQ=null,zk=null,hBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function kTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function Syn(t){XO.has(t)&&wC()}async function ATr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=hBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function DTr(){return i2?ATr(i2):Promise.resolve(null)}function xyn(t,n){n&&zk===t&&(zk=null);const s=hp.findIndex(d=>d.descriptor.id===t);s<0||hp[s].dirty===n||(hp=hp.map(d=>d.descriptor.id===t?{...d,dirty:n}:d),wC())}function U3t(t,n){const s=hp.find(c=>c.descriptor.id===t);!s||s.title===n||(hp=hp.map(c=>c.descriptor.id===t?{...c,title:n}:c),wC())}function gBe(t){const n=hp.find(c=>c.descriptor.id===t),s=XO.get(t)??n?.descriptor.selection;if(!s)return null;try{return s()}catch{return null}}function Lye(){return i2?gBe(i2):null}const PTr={adapter:null,nodeId:null};function ITr(t){return JSON.stringify({id:t.id,title:t.title,hint:t.hint,kindLabel:t.kindLabel,note:t.note,sections:t.sections.map(n=>({id:n.id,title:n.title,order:n.order,description:n.description,defaultOpen:n.defaultOpen,testId:n.testId,keepMounted:n.keepMounted,railGroup:n.railGroup,bodyKind:n.body.kind})),quickActions:t.quickActions?.map(n=>({id:n.id,title:n.title,label:n.label,placement:n.placement,pressed:n.pressed,disabled:n.disabled}))})}function yBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return cTr({documentId:t,title:c,type:s,...m?{status:m}:{}})},[n,t,m,c,s]);const S=Ye.useRef(g);S.current=g,Ye.useEffect(()=>{if(n)return kTr(t,()=>S.current?.()??PTr)},[n,t]);const k={id:t,title:c,kindLabel:s,...m?{note:{text:m,testId:"asset-editor-status"}}:{},sections:d??[]},A=Ye.useRef(k);A.current=k;const F=ITr(k);return Ye.useEffect(()=>{if(n)return pTr(t,()=>A.current)},[n,t,F]),null}function NTr({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,fill:g=!1,selection:S,children:k}){return q.jsxs("section",{className:"volter-asset-editor","data-testid":`asset-editor:${s}`,"aria-label":`${c} Asset Editor`,children:[q.jsx(yBe,{documentId:t,active:n,type:s,title:c,sections:d,status:m,selection:S}),q.jsx("main",{className:`volter-asset-editor__viewport${g?" volter-asset-editor__viewport--fill":""}`,children:k})]})}const OTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:NTr,AssetEditorSubject:yBe},Symbol.toStringTag,{value:"Module"})),T_e=new Map,ARe=new Set;function Dht(){for(const t of ARe)t()}function wyn(t){const n=Object.entries(t);for(const[s,c]of n)T_e.set(s,c);return Dht(),()=>{for(const[s,c]of n)T_e.get(s)===c&&T_e.delete(s);Dht()}}function RTr(t){return T_e.get(t)??null}function FTr(t){return ARe.add(t),()=>{ARe.delete(t)}}function MTr(t){return q.jsx(yBe,{...t})}const Pht=new Map;function jTr(t){const n=Pht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>RTr(t),[]),m=Ye.useSyncExternalStore(FTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,Pht.set(t,s),s}const vBe=new Proxy(Object.freeze({AssetDocument:MTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):jTr(n)}}),Iht=Object.freeze({id:"classic",shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.6)",medium:"0 4px 12px rgba(0,0,0,0.5)",large:"0 8px 32px rgba(0,0,0,0.6)"}}),Ym=Object.freeze({id:"glass",color:{surface:{shell:"#12161f",panel:"rgba(255,255,255,0.06)",chrome:"rgba(255,255,255,0.10)",raised:"rgba(255,255,255,0.16)",inset:"rgba(10,14,22,0.38)",overlay:"rgba(255,255,255,0.08)"},boundary:{default:"rgba(255,255,255,0.22)",strong:"rgba(255,255,255,0.38)"},neutralOverlay:{hover:"color-mix(in srgb, currentColor 10%, transparent)",active:"color-mix(in srgb, currentColor 16%, transparent)"},scrim:"rgba(8,12,20,0.35)"},shape:{small:"4px",medium:"8px",large:"14px",full:"9999px"},elevation:{small:"0 4px 14px -6px rgba(0,0,0,0.45)",medium:"0 8px 24px -10px rgba(0,0,0,0.5)",large:"0 20px 46px -16px rgba(0,0,0,0.55), 0 4px 14px -6px rgba(0,0,0,0.35)"},treatment:{backdropBlurPx:1,backdropSaturation:1.15,edgeSpecular:.7,specularAngleDeg:120,refractionBezelPx:56,refractionThickness:1.25,textShadowOpacity:.72,contentFrostBlurPx:24,ambientLiftOpacity:.07,adaptiveContent:!0,brightTextShadowOpacity:0,brightFrostBg:"rgba(255,255,255,0.3)"},reducedTransparency:{surface:{shell:"#12161f",panel:"#33373e",chrome:"#3d4047",raised:"#4b4e55",inset:"#23272f",overlay:"#383b43"},scrim:"rgba(8,12,20,0.5)"}}),LTr=["classic","glass"],BTr=Object.freeze([{id:"classic",title:"Classic",description:"Opaque editor surfaces with conventional bars and panels."},{id:"glass",title:"Glass",description:"Adaptive clear material with refraction, frost, and floating chrome."}]),SB=new Map;let ihe=null;const ohe=new Set;function $Tr(){return ihe??=[...BTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ihe}function qTr(t){return ohe.add(t),()=>ohe.delete(t)}function zTr(t){if(Bye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),ihe=null;for(const n of ohe)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),ihe=null;for(const n of ohe)n()}}}function Bye(t){return typeof t=="string"&&(LTr.includes(t)||SB.has(t))}function VTr(t,n,s=!1){if(n!=="glass"){const d=SB.get(n);return{id:d?`${t.id}--${d.id}`:t.id,color:t.color,typography:t.typography,shape:d?.shape??Iht.shape,elevation:d?.elevation??Iht.elevation,...d?.density?{density:d.density}:{},...d?.stage?{stage:d.stage}:{},appearance:{material:"classic",transparency:"standard"}}}return{id:`${t.id}--${s?"glass-reduced":"glass"}`,color:{surface:s?Ym.reducedTransparency.surface:Ym.color.surface,boundary:Ym.color.boundary,content:t.color.content,accent:t.color.accent,semantic:t.color.semantic,neutralOverlay:Ym.color.neutralOverlay,scrim:s?Ym.reducedTransparency.scrim:Ym.color.scrim},typography:t.typography,shape:Ym.shape,elevation:Ym.elevation,appearance:{material:"glass",transparency:s?"reduced":"standard"},...s?{}:{treatment:Ym.treatment}}}const UTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},JTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Epe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function J3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Epe(t),alignItems:n?UTr[n]:void 0,justifyContent:s?JTr[s]:void 0,padding:Epe(c),paddingInline:Epe(d),paddingBlock:Epe(m),...g}}function gee(t,n){return n?`${t} ${n}`:t}function W3t({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-stack",t),style:J3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-inline",t),style:J3t(n)})}function Tyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:gee("volter-spacer",t)})}function WTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:gee("volter-divider",n)})}function HTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:gee("volter-actions",n),gap:2,align:"center",children:t})}function H3t(t,n){return n?`${t} ${n}`:t}const _p=Ye.forwardRef(function({as:n="span",variant:s="body",tone:c="primary",truncate:d=!1,selectable:m=!1,className:g,...S},k){const A=n;return q.jsx(A,{...S,ref:k,"data-variant":s,"data-tone":c,"data-truncate":d||void 0,"data-selectable":m||void 0,className:H3t("volter-text",g)})});function Cyn({className:t,...n}){return q.jsx("kbd",{...n,className:H3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function DRe({labelledBy:t,onDismiss:n,size:s="default",variant:c="default",className:d,...m}){const[g]=Ye.useState(()=>typeof document>"u"?null:document.querySelector(".volter-editor-theme")),S=Ye.useId(),k=q.jsx("div",{"data-volter-portal-content":g?S:void 0,className:"volter-dialog-scrim","data-variant":c,onPointerDown:A=>{A.target===A.currentTarget&&n?.()},children:q.jsx("div",{...m,role:"dialog","aria-modal":"true","aria-labelledby":t,"data-size":s,"data-variant":c,className:B$("volter-dialog",d)})});return g?q.jsxs(q.Fragment,{children:[q.jsx("span",{"data-volter-portal":S,style:{display:"none"}}),r2.createPortal(k,g)]}):k}function PRe({titleId:t,title:n,description:s}){return q.jsxs(W3t,{className:"volter-dialog-header",gap:2,children:[q.jsx(_p,{id:t,as:"h2",variant:"heading",children:n}),s&&q.jsx(_p,{as:"p",tone:"muted",children:s})]})}function G3t({className:t,...n}){return q.jsx(W3t,{...n,className:B$("volter-dialog-body",t)})}function IRe({children:t,className:n,...s}){return q.jsx(HTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function Eyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function kyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function Ayn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function Dyn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function bBe(t,n){return n?`${t} ${n}`:t}function GTr({className:t,...n}){return q.jsx("div",{...n,className:bBe("volter-field-group",t)})}function C_e({label:t,htmlFor:n,hint:s,compact:c=!1,className:d,children:m,...g}){return q.jsxs("div",{...g,"data-compact":c||void 0,className:bBe("volter-field-row",d),children:[q.jsx("label",{htmlFor:n,className:"volter-field-label",children:t}),q.jsx("div",{className:"volter-field-control",children:m}),s&&q.jsx("div",{className:"volter-field-hint",children:s})]})}function Pyn({className:t,...n}){return q.jsx("label",{...n,className:bBe("volter-field-label",t)})}const Iyn=Ye.forwardRef(function({selected:n=!1,accent:s="bar",className:c,type:d="button",...m},g){return q.jsx("button",{...m,ref:g,type:d,"data-selected":n||void 0,"data-accent":s,className:c?`volter-list-button ${c}`:"volter-list-button"})});function KTr({tone:t="neutral",icon:n,title:s,description:c,action:d,compact:m=!1,className:g,...S}){const k=t==="error"?"alert":t==="loading"||t==="success"?"status":void 0;return q.jsxs("div",{...S,role:S.role??k,"data-tone":t,"data-compact":m||void 0,className:g?`volter-state-surface ${g}`:"volter-state-surface",children:[n&&q.jsx("div",{className:"volter-state-surface-icon",children:n}),q.jsx("strong",{className:"volter-state-surface-title",children:s}),c&&q.jsx("div",{className:"volter-state-surface-description",children:c}),d&&q.jsx("div",{className:"volter-state-surface-action",children:d})]})}function $$(t,n){return n?`${t} ${n}`:t}function XTr({variant:t="panel",border:n=!1,scroll:s=!1,className:c,...d}){return q.jsx("div",{...d,"data-variant":t,"data-border":n||void 0,"data-scroll":s||void 0,className:$$("volter-surface",c)})}function Nyn({tone:t="info",icon:n,actions:s,className:c,children:d,...m}){return q.jsxs("div",{...m,role:t==="error"?"alert":"status","data-tone":t,className:$$("volter-banner",c),children:[n&&q.jsx("span",{className:"volter-banner-icon",children:n}),q.jsx("div",{className:"volter-banner-content",children:d}),s&&q.jsx("div",{className:"volter-banner-actions",children:s})]})}const Oyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Ryn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function Nht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function Fyn({orientation:t,label:n,valueNow:s,valueMin:c=0,valueMax:d=100,className:m,...g}){return q.jsx("div",{...g,role:"separator","aria-label":n,"aria-orientation":t,"aria-valuenow":s,"aria-valuemin":s===void 0?void 0:c,"aria-valuemax":s===void 0?void 0:d,"data-orientation":t,className:$$("volter-resize-handle",m)})}function K3t(t,n){return n?`${t} ${n}`:t}const Myn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:K3t("volter-tabs",n),onKeyDown:m=>{if(s?.(m),m.defaultPrevented||!["ArrowLeft","ArrowRight","Home","End"].includes(m.key))return;const g=Array.from(m.currentTarget.querySelectorAll('[role="tab"]:not(:disabled)'));if(g.length===0)return;m.preventDefault();const S=g.indexOf(document.activeElement);(m.key==="Home"?g[0]:m.key==="End"?g.at(-1):m.key==="ArrowRight"?g[(S+1+g.length)%g.length]:g[(S-1+g.length)%g.length])?.focus()}})}),jyn=Ye.forwardRef(function({selected:n=!1,dirty:s=!1,badge:c,className:d,type:m="button",tabIndex:g,children:S,...k},A){return q.jsxs("button",{...k,ref:A,type:m,role:"tab",tabIndex:g??(n?0:-1),"aria-selected":n,"data-selected":n||void 0,className:K3t("volter-tab",d),children:[s&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-tab-dirty",title:"Unsaved","aria-hidden":"true"}),q.jsx("span",{className:"volter-sr-only",children:"Unsaved"})]}),q.jsx("span",{className:"volter-tab-label",children:S}),c!==void 0&&q.jsx("span",{className:"volter-tab-badge",children:c})]})});function yee(t,n){return n?`${t} ${n}`:t}const n$=Ye.forwardRef(function({label:n,compact:s=!1,selectionMode:c="independent",className:d,...m},g){return q.jsx("div",{...m,ref:g,role:"toolbar","aria-label":n,"data-compact":s||void 0,"data-selection-mode":c,className:yee("volter-toolbar",d)})});function Oht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-toolbar-group",t)})}function Rht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:yee("volter-toolbar-divider",t.className)})}function Lyn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:yee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function Byn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-split-button",t)})}function X3t(t,n){return n?`${t} ${n}`:t}const $yn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:X3t("volter-tree",s)})}),qyn=Ye.forwardRef(function({level:n=1,selected:s=!1,expanded:c,muted:d=!1,dragging:m=!1,leading:g,actions:S,className:k,children:A,style:F,...D},J){return q.jsxs("div",{...D,ref:J,role:"treeitem",tabIndex:D.tabIndex??-1,"aria-level":n,"aria-selected":s,...c===void 0?{}:{"aria-expanded":c},"data-selected":s||void 0,"data-muted":d||void 0,"data-dragging":m||void 0,className:X3t("volter-tree-row",k),style:{paddingLeft:6+Math.max(0,n-1)*14,...F},children:[g&&q.jsx("span",{className:"volter-tree-row-leading",children:g}),q.jsx("span",{className:"volter-tree-row-label",children:A}),S&&q.jsx("span",{className:"volter-tree-row-actions",children:S})]})});function Y3t(t,n=8){const s=window.innerWidth,c=window.innerHeight,d=Math.max(n,s-t.width-n),m=Math.max(n,c-t.height-n);return{left:Math.min(Math.max(t.left,n),d),top:Math.min(Math.max(t.top,n),m)}}function $ye(t,n){return n?`${t} ${n}`:t}function NRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function YTr(t){NRe(t)[0]?.focus()}function Fht(t,n){if(!t)return!1;let s=n;for(;s;){if(t.contains(s))return!0;const d=((s instanceof Element?s:s.parentElement)?.closest("[data-volter-portal-content]")??null)?.getAttribute("data-volter-portal-content");if(!d)return!1;s=document.querySelector(`[data-volter-portal="${CSS.escape(d)}"]`)}return!1}const dN=Ye.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ye.useRef(null);return Ye.useImperativeHandle(k,()=>A.current),Ye.useEffect(()=>{c&&NRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!Fht(A.current,J)&&!Fht(d?.current??null,J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:$ye("volter-menu",n),onKeyDown:F=>{if(g?.(F),F.defaultPrevented)return;if(F.key==="Escape"){F.preventDefault(),m?.("escape");return}if(!["ArrowDown","ArrowUp","Home","End"].includes(F.key))return;F.preventDefault();const D=NRe(F.currentTarget);if(D.length===0)return;const J=D.indexOf(document.activeElement);F.key==="Home"?D[0]?.focus():F.key==="End"?D.at(-1)?.focus():F.key==="ArrowDown"?D[(J+1+D.length)%D.length]?.focus():D[(J-1+D.length)%D.length]?.focus()}})}),Jc=Ye.forwardRef(function({className:n,type:s="button",role:c="menuitem",onClick:d,onSelect:m,...g},S){return q.jsx("button",{...g,ref:S,type:s,role:c,className:$ye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:$ye("volter-menu-separator",t.className)})}const SBe=Ye.forwardRef(function({className:n,type:s="button",...c},d){return q.jsx("button",{...c,ref:d,type:s,"aria-haspopup":c["aria-haspopup"]??"menu",className:$ye("volter-menu-trigger",n)})});function she({children:t}){const n=Ye.useRef(null),[s,c]=Ye.useState(null),d=Ye.useId();return Ye.useLayoutEffect(()=>{c(n.current?.closest(".volter-editor-theme")??null)},[]),q.jsxs(q.Fragment,{children:[q.jsx("span",{ref:n,"data-volter-portal":d,style:{display:"none"}}),s?r2.createPortal(q.jsx("div",{"data-volter-portal-content":d,style:{display:"contents"},children:t}),s):null]})}function xBe({anchorRef:t,align:n="end",side:s="bottom",autoFocusFirst:c=!0,gap:d=4,clamp:m=!1,onDismiss:g,style:S,children:k,...A}){const[F,D]=Ye.useState(null),[J,$]=Ye.useState(null),G=Ye.useRef(null),se=Ye.useRef(!0),pe=Ye.useRef(!1),ue=Ye.useCallback(()=>{const Ae=t.current;if(!Ae||!F)return;const Pe=Ae.getBoundingClientRect(),be=F.getBoundingClientRect(),we=s==="right"||s==="left"?{left:s==="right"?Pe.right+d:Pe.left-d-be.width,top:Pe.top}:{left:n==="end"?Pe.right-be.width:Pe.left,top:s==="top"?Pe.top-d-be.height:Pe.bottom+d},qe=m?Y3t({...we,width:be.width,height:be.height}):we,bt=G.current;bt?.left===qe.left&&bt.top===qe.top||(G.current=qe,$(qe))},[n,t,m,d,F,s]);Ye.useLayoutEffect(()=>{const Ae=t.current;if(!Ae||!F)return;ue();let Pe=0;const be=()=>{ue(),Pe=requestAnimationFrame(be)};Pe=requestAnimationFrame(be),window.addEventListener("resize",ue),document.addEventListener("scroll",ue,!0);const X=typeof ResizeObserver>"u"?null:new ResizeObserver(ue);return X?.observe(Ae),X?.observe(F),()=>{const we=se.current&&F.contains(document.activeElement);window.removeEventListener("resize",ue),document.removeEventListener("scroll",ue,!0),cancelAnimationFrame(Pe),X?.disconnect(),we&&queueMicrotask(()=>t.current?.focus())}},[t,F,ue]),Ye.useLayoutEffect(()=>{!c||pe.current||!F||!J||(pe.current=!0,YTr(F))},[c,F,J]);const Ce=Ae=>{se.current=Ae!=="outside",g(),Ae==="escape"&&t.current?.focus()};return q.jsx(she,{children:q.jsx(dN,{...A,ref:D,dismissBoundaryRef:t,onDismiss:Ce,style:{...S,position:"fixed",left:J?.left??0,top:J?.top??0,visibility:J?S?.visibility:"hidden"},children:k})})}function zyn({label:t,children:n,gap:s=0,...c}){const[d,m]=Ye.useState(!1),g=Ye.useRef(null),S=Ye.useId(),k=F=>F instanceof Element&&(g.current?.contains(F)===!0||F.closest(`[data-volter-submenu="${S}"]`)!==null),A=F=>{k(F.relatedTarget)||m(!1)};return q.jsxs(q.Fragment,{children:[q.jsxs(Jc,{...c,ref:g,"aria-haspopup":"menu","aria-expanded":d,onPointerEnter:()=>m(!0),onPointerLeave:A,onClick:F=>{F.preventDefault(),m(!0)},onKeyDown:F=>{(F.key==="ArrowRight"||F.key==="Enter"||F.key===" ")&&(F.preventDefault(),m(!0)),F.key==="ArrowLeft"&&m(!1)},children:[q.jsx("span",{style:{flex:1},children:t}),q.jsx("span",{"aria-hidden":"true",style:{paddingInlineStart:"var(--volter-space-4)"},children:"▸"})]}),d&&q.jsx(xBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ye.forwardRef(function({variant:n="secondary",size:s="default",shape:c="default",className:d,type:m="button",...g},S){return q.jsx("button",{...g,ref:S,type:m,className:d?`volter-btn ${d}`:"volter-btn","data-variant":n,"data-size":s,"data-shape":c})}),pm=Ye.forwardRef(function({variant:n="ghost",visibleLabel:s,children:c,...d},m){return q.jsxs(Ms,{...d,ref:m,variant:n,"data-icon":"true","data-label-placement":s===void 0?void 0:"below",children:[c,s!==void 0&&q.jsx("span",{className:"volter-icon-button-label",children:s})]})}),PI={base:0,overlayLow:50,sticky:100,dropdown:1e3,toast:9999,modal:1e4},IG={0:"#1a1a1a",1:"#242424",2:"#2c2c2c",3:"#333333",inset:"#1e1e1e"},Mht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},ZTr="#579EFF",QTr="rgba(87,158,255,0.15)",D5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},wBe="#d8dee9",TBe="rgba(216,222,233,0.18)",Z3t="#FF6B6B",Q3t="#e0a030",e4t="#4caf50",t4t="rgba(76,175,80,0.15)",r4t="rgba(255,107,107,0.15)",n4t="rgba(224,160,48,0.12)",i4t="rgba(255,107,107,0.06)",o4t="rgba(0,0,0,0.5)",s4t="#ff79c6",a4t="rgba(255,121,198,0.08)",c4t="#22b8d6",qye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',zye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',P5e={sm:"0 2px 8px rgba(0,0,0,0.6)",md:"0 4px 12px rgba(0,0,0,0.5)",lg:"0 8px 32px rgba(0,0,0,0.6)"},CBe={0:"var(--volter-surface-shell)",1:"var(--volter-surface-panel)",2:"var(--volter-surface-chrome)",3:"var(--volter-surface-raised)",inset:"var(--volter-surface-inset)"},ahe={1:"var(--volter-boundary-default)",2:"var(--volter-boundary-strong)"},Zf={1:"var(--volter-content-primary)",2:"var(--volter-content-muted)",3:"var(--volter-content-dim)"},Vyn="var(--volter-accent)",Uyn="var(--volter-accent-muted)",Jyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},E_e="var(--volter-danger)",Wyn="var(--volter-warn)",Hyn="var(--volter-success)",Gyn="var(--volter-success-muted)",Kyn="var(--volter-danger-muted)",Xyn="var(--volter-warn-muted)",Yyn="var(--volter-danger-faint)",Zyn="var(--volter-scrim)",Qyn="var(--volter-dynamic)",e0n="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},l4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},EBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...eCr,...t.density?.control},font:{...rCr,...t.density?.font},icon:{...tCr,...t.density?.icon},chrome:{...l4t,...t.density?.chrome}}}const eCr={compact:20,default:24,comfortable:28},I5e={resting:1,active:2},tCr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},rCr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},k_e={regular:400,semibold:600,bold:700},kpe={tight:1,snug:1.2,normal:1.4,relaxed:1.5},NG={duration:{fast:140,base:180,slow:300},easing:{standard:"cubic-bezier(0.32, 0.72, 0.28, 1)",out:"ease-out"}},t0n="var(--volter-font-sans)",r0n="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},aQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},n0n={sm:"var(--volter-shadow-sm)",md:"var(--volter-shadow-md)",lg:"var(--volter-shadow-lg)"},YY={xs:"var(--volter-font-xs)",sm:"var(--volter-font-sm)",base:"var(--volter-font-base)",md:"var(--volter-font-md)",lg:"var(--volter-font-lg)",xl:"var(--volter-font-xl)","2xl":"var(--volter-font-2xl)",heading:"var(--volter-font-heading)"},G0={1:"var(--volter-space-1)",2:"var(--volter-space-2)",3:"var(--volter-space-3)",4:"var(--volter-space-4)",5:"var(--volter-space-5)",6:"var(--volter-space-6)",8:"var(--volter-space-8)",10:"var(--volter-space-10)",12:"var(--volter-space-12)"},jht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},i0n={duration:{fast:"var(--volter-duration-fast)",base:"var(--volter-duration-base)",slow:"var(--volter-duration-slow)"},easing:{standard:"var(--volter-ease-standard)",out:"var(--volter-ease-out)"}},o0n="var(--volter-focus-ring)",nCr=["outliner","properties"],Vye=Object.keys({object:!0,modifier:!0,material:!0,tool:!0,operator:!0,data:!0,scene:!0,collection:!0,select:!0}),i$={id:"graphite-dark",color:{surface:{shell:IG[0],panel:IG[1],chrome:IG[2],raised:IG[3],inset:IG.inset,overlay:"rgba(36,36,36,0.94)"},boundary:{default:Mht[1],strong:Mht[2]},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:ZTr,muted:QTr},semantic:{danger:Z3t,dangerMuted:r4t,dangerFaint:i4t,warning:Q3t,warningMuted:n4t,success:e4t,successMuted:t4t,dynamic:s4t,dynamicMuted:a4t,instance:c4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:o4t},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:P5e.sm,medium:P5e.md,large:P5e.lg}},iCr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:D5e[1],muted:D5e[2],dim:D5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:wBe,muted:TBe}}},oCr={id:"midnight-high-contrast",color:{surface:{shell:"#0b0f14",panel:"#111821",chrome:"#17212c",raised:"#223040",inset:"#080c11",overlay:"rgba(17,24,33,0.96)"},boundary:{default:"#34465a",strong:"#71869d"},content:{primary:"#f2f5f8",muted:"#bdc8d5",dim:"#8493a5",onAccent:"#071019",onBright:{primary:"#071019",muted:"rgba(7,16,25,0.82)",dim:"rgba(7,16,25,0.72)"}},accent:{default:"#65d1ff",muted:"rgba(101,209,255,0.18)"},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.18)",dangerFaint:"rgba(255,123,134,0.08)",warning:"#f3c969",warningMuted:"rgba(243,201,105,0.16)",success:"#62d394",successMuted:"rgba(98,211,148,0.18)",dynamic:"#e889ff",dynamicMuted:"rgba(232,137,255,0.12)",instance:"#a49bff"},neutralOverlay:{hover:"rgba(255,255,255,0.10)",active:"rgba(255,255,255,0.18)"},scrim:"rgba(0,0,0,0.68)"},typography:{sans:qye,mono:zye},shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.72)",medium:"0 6px 18px rgba(0,0,0,0.68)",large:"0 12px 40px rgba(0,0,0,0.76)"}},ORe={id:"glass-dark",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:"rgba(26,26,26,0.88)",panel:"rgba(36,36,36,0.62)",chrome:"rgba(44,44,44,0.68)",raised:"rgba(51,51,51,0.74)",inset:"rgba(30,30,30,0.7)",overlay:"rgba(36,36,36,0.55)"},boundary:{default:"rgba(255,255,255,0.14)",strong:"rgba(255,255,255,0.24)"},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:wBe,muted:TBe},semantic:{danger:Z3t,dangerMuted:r4t,dangerFaint:i4t,warning:Q3t,warningMuted:n4t,success:e4t,successMuted:t4t,dynamic:s4t,dynamicMuted:a4t,instance:c4t},neutralOverlay:{hover:"color-mix(in srgb, currentColor 9%, transparent)",active:"color-mix(in srgb, currentColor 14%, transparent)"},scrim:"rgba(0,0,0,0.35)"},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:"0 4px 16px rgba(0,0,0,0.55)",medium:"0 8px 28px rgba(0,0,0,0.5)",large:"0 16px 48px rgba(0,0,0,0.55)"},treatment:{backdropBlurPx:14,backdropSaturation:1.3,backdropBrightness:.5,edgeSpecular:.6,specularAngleDeg:120,thickness:.5}},sCr=(()=>{const{treatment:t,...n}=ORe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...ORe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:o4t}}})(),RRe={id:"liquid-glass",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:Ym.color.surface.shell,panel:Ym.color.surface.panel,chrome:Ym.color.surface.chrome,raised:Ym.color.surface.raised,inset:Ym.color.surface.inset,overlay:Ym.color.surface.overlay},boundary:Ym.color.boundary,content:{primary:"#f2f6fb",muted:"rgba(242,246,251,0.85)",dim:"rgba(242,246,251,0.68)",onAccent:"#0b1526",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:wBe,muted:TBe},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.22)",dangerFaint:"rgba(255,123,134,0.10)",warning:"#ffd35f",warningMuted:"rgba(255,211,95,0.18)",success:"#58e078",successMuted:"rgba(88,224,120,0.20)",dynamic:"#ff8fd8",dynamicMuted:"rgba(255,143,216,0.14)",instance:"#3ad2ea"},neutralOverlay:Ym.color.neutralOverlay,scrim:Ym.color.scrim},typography:{sans:qye,mono:zye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},aCr=(()=>{const{treatment:t,...n}=RRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...RRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),u4t={"graphite-dark":i$,"graphite-neutral":iCr,"midnight-high-contrast":oCr,"glass-dark":ORe,"glass-dark-lite":sCr,"liquid-glass":RRe,"liquid-glass-lite":aCr};function cCr(t){return typeof t=="string"&&Object.hasOwn(u4t,t)}const Go={surface:{shell:"var(--volter-surface-shell)",panel:"var(--volter-surface-panel)",chrome:"var(--volter-surface-chrome)",raised:"var(--volter-surface-raised)",inset:"var(--volter-surface-inset)",overlay:"var(--volter-surface-overlay)"},boundary:{default:"var(--volter-boundary-default)",strong:"var(--volter-boundary-strong)"},content:{primary:"var(--volter-content-primary)",muted:"var(--volter-content-muted)",dim:"var(--volter-content-dim)",onAccent:"var(--volter-content-on-accent)",active:"var(--volter-content-active)",selected:"var(--volter-content-selected)"},accent:{default:"var(--volter-accent)",muted:"var(--volter-accent-muted)"},selection:{background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},semantic:{danger:"var(--volter-danger)",dangerMuted:"var(--volter-danger-muted)",dangerFaint:"var(--volter-danger-faint)",warning:"var(--volter-warn)",warningMuted:"var(--volter-warn-muted)",success:"var(--volter-success)",successMuted:"var(--volter-success-muted)",dynamic:"var(--volter-dynamic)",dynamicMuted:"var(--volter-dynamic-muted)",instance:"var(--volter-instance)"},neutralOverlay:{hover:"var(--volter-neutral-hover)",active:"var(--volter-neutral-active)"},scrim:"var(--volter-scrim)",typography:{sans:"var(--volter-font-sans)",mono:"var(--volter-font-mono)"},shape:{small:"var(--volter-radius-sm)",medium:"var(--volter-radius-md)",large:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},elevation:{small:"var(--volter-shadow-sm)",medium:"var(--volter-shadow-md)",large:"var(--volter-shadow-lg)"},focusRing:"var(--volter-focus-ring)"};function lCr(t){const n=`<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1L5 5L9 1' stroke='${t}' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(n)}")`}function uCr(t){if(!t)return"none";const n=[];return t.backdropBlurPx&&n.push(`blur(${t.backdropBlurPx}px)`),t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&n.push(`saturate(${t.backdropSaturation})`),t.backdropBrightness!==void 0&&t.backdropBrightness!==1&&n.push(`brightness(${t.backdropBrightness})`),n.length>0?n.join(" "):"none"}function Lht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Bht(t){const n=t?.contentFrostBlurPx??0;if(n<=0)return"none";const s=[`blur(${n}px)`];return t?.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function FRe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function fCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function dCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function pCr(t,n){const d=[n==="none"?"":n,t?"inset 0 1px 0 color-mix(in srgb, currentColor 14%, transparent), 0 5px 14px -12px color-mix(in srgb, currentColor 55%, transparent)":""].filter(Boolean);return d.length===0?"none":d.join(", ")}const _Cr=.6,mCr=.5;function che(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/_Cr).toFixed(3)))})`}function f4t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.95)} 0%, ${c(.38)} 16%, ${c(.16)} 40%, ${c(.14)} 60%, ${c(.45)} 84%, ${c(.85)} 100%)`}function hCr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function gCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${che(.28,n)}`),c.push(`inset 0 -1px 1px ${che(.1,n)}`)),s>0){const d=m=>`${Number((m*s/mCr).toFixed(1))}px`;c.push(`inset 0 ${d(12)} ${d(24)} ${d(-14)} rgba(255,255,255,0.35)`),c.push(`inset 0 ${d(-14)} ${d(28)} ${d(-18)} rgba(0,0,0,0.55)`),c.push(`0 ${d(18)} ${d(40)} ${d(-18)} rgba(0,0,0,0.55)`)}else c.push("var(--volter-shadow-lg)");return c.join(", ")}function q$(t){return t.appearance?t.appearance.material==="glass":t.treatment!==void 0}function yCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function vCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function bCr(t){return t?"17px":"var(--volter-radius-md)"}function SCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function xCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function wCr(t,n){const s=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t.color.accent.default);if(!s)return null;const[c,d,m]=[s[1],s[2],s[3]].map(g=>Number.parseInt(g,16));return`rgba(${c},${d},${m},${n})`}function Uye(t){return q$(t)}function TCr(t){return Uye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function d4t(t){const n=t.trim().toLowerCase();if(n.startsWith("#"))return n.length===5?n.endsWith("f"):n.length===9?n.endsWith("ff"):!0;const s=/^rgba?\(([^)]*)\)$/.exec(n)??/^hsla?\(([^)]*)\)$/.exec(n);if(s){const c=(s[1]??"").split(/[,/]/)[3];return c===void 0||Number.parseFloat(c)>=1}return n!=="transparent"&&!n.includes("transparent")}function p4t(t){if(!d4t(t))return!1;const n=t.trim().toLowerCase();let s=null;const c=/^#([0-9a-f]{3}|[0-9a-f]{6})(?:f|ff)?$/.exec(n);if(c){const S=c[1].length===3?[...c[1]].map(k=>k+k).join(""):c[1];s=[0,2,4].map(k=>Number.parseInt(S.slice(k,k+2),16))}else{const S=/^rgba?\(([^)]*)\)$/.exec(n);S&&(s=(S[1]??"").split(/[,\s/]+/).filter(Boolean).slice(0,3).map(k=>k.endsWith("%")?Number.parseFloat(k)*2.55:Number.parseFloat(k)))}if(!s||s.some(S=>!Number.isFinite(S)))return!1;const[d,m,g]=s;return(.2126*d+.7152*m+.0722*g)/255>.5}function CCr(t){return Uye(t)?"var(--volter-content-primary)":d4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function ECr(t){return Uye(t)?"color-mix(in srgb, currentColor 30%, transparent)":p4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function kCr(t){return Uye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function ACr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function DCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":wCr(t,.82)??"var(--volter-accent)"}function PCr(t){const n=t?.edgeSpecular??0;return n<=0?"none":f4t({...t,edgeSpecular:n*.4})}function ICr(t){const n=t?.ambientLiftOpacity??0;if(n<=0)return"none";const s=Number(n.toFixed(3)),c=Number((n*.35).toFixed(3));return`linear-gradient(165deg, rgba(255,255,255,${s}) 0%, rgba(255,255,255,${c}) 55%, rgba(255,255,255,0) 100%)`}function _4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function m4t(t){return _4t(t?.textShadowOpacity??0)}function NCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:_4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??FRe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:m4t(t.treatment),frostBg:FRe(t.treatment)}}function OCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":FCr(t.color.surface.chrome,.9):t.color.surface.chrome}function RCr(t){return t.color.surface.panel}function FCr(t,n){const s=/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([0-9.]+)\s*\)$/.exec(t);if(!s)return t;const c=Math.max(Number(s[4]),n);return`rgba(${s[1]},${s[2]},${s[3]},${c})`}function $ht(t){if(!t)return"none";const s=[`blur(${Math.max(16,t.contentFrostBlurPx??0)}px)`];return t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function MCr(t){return t.color.boundary.area??t.color.boundary.default}function jCr(t,n){return`color-mix(in srgb, ${t} 98.4%, ${n})`}function OG(t){return`color-mix(in srgb, var(--volter-area-emboss-mix), ${t})`}function LCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function BCr(t){const n=NCr(t),s=q$(t),c=t.color.widget?.regular??t.color.surface.raised,d=t.color.widget?.menu??t.color.surface.raised,m=t.color.widget?.field??t.color.surface.inset,g=t.color.widget?.emboss?`0 1px 0 ${t.color.widget.emboss}`:"none",S=A=>`color-mix(in srgb, ${A} 87.8%, ${t.color.content.primary})`,k=`color-mix(in srgb, ${t.color.surface.panel} 86.5%, ${t.color.surface.raised})`;return{"--volter-surface-shell":t.color.surface.shell,"--volter-surface-panel":t.color.surface.panel,"--volter-surface-chrome":t.color.surface.chrome,"--volter-surface-raised":t.color.surface.raised,"--volter-surface-inset":t.color.surface.inset,"--volter-surface-overlay":t.color.surface.overlay,"--volter-surface-backdrop-filter":uCr(t.treatment),"--volter-surface-sticky":Lht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Lht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Bht(t.treatment),"--volter-content-frost-filter":Bht(t.treatment),"--volter-content-frost-bg":FRe(t.treatment),"--volter-input-surface":fCr(s),"--volter-input-border":dCr(s),"--volter-input-shadow":pCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":f4t(t.treatment),"--volter-card-specular-sheen":hCr(t.treatment),"--volter-card-specular-shadow":gCr(t.treatment),"--volter-card-refraction-thickness":String(t.treatment?.refractionThickness??0),"--volter-card-refraction-bezel":String(t.treatment?.refractionBezelPx??28),"--volter-card-refraction-angle":String(t.treatment?.specularAngleDeg??120),"--volter-ambient-lift":ICr(t.treatment),"--volter-island-surface":yCr(t),"--volter-island-backdrop-filter":vCr(t),"--volter-island-radius":bCr(s),"--volter-island-border-color":SCr(s),"--volter-island-shadow":xCr(s),"--volter-island-specular-ring":PCr(t.treatment),"--volter-selection-bg":TCr(t),"--volter-content-on-selection":CCr(t),"--volter-selection-border":ECr(t),"--volter-selection-indicator":kCr(t),"--volter-island-control-radius":ACr(s),"--volter-island-primary-bg":DCr(t),"--volter-content-text-shadow":m4t(t.treatment),"--volter-content-primary-on-bright":n.primary,"--volter-content-muted-on-bright":n.muted,"--volter-content-dim-on-bright":n.dim,"--volter-content-text-shadow-on-bright":n.textShadow,"--volter-content-frost-bg-on-bright":n.frostBg,"--volter-content-adaptive":t.treatment?.adaptiveContent?"1":"0","--volter-glass-regular-bg":OCr(t),"--volter-glass-regular-backdrop-filter":$ht(t.treatment),"--volter-glass-regular-panel-bg":RCr(t),"--volter-glass-regular-panel-backdrop-filter":$ht(t.treatment),"--volter-glass-dark-frost-panel-bg":"rgba(5,8,13,0.74)","--volter-glass-dark-frost-content-bg":"rgba(5,8,13,0.84)","--volter-scrim-backdrop-filter":t.treatment?"blur(8px)":"none","--volter-boundary-default":t.color.boundary.default,"--volter-boundary-strong":t.color.boundary.strong,"--volter-boundary-area":MCr(t),"--volter-tree-indent-guide":t.color.boundary.indent??"transparent","--volter-boundary-divider":t.color.boundary.divider??t.color.boundary.default,"--volter-area-emboss-mix":LCr(t),"--volter-area-emboss":OG(t.color.surface.panel),"--volter-area-emboss-stage":OG(OG(t.color.viewport?.background??t.color.surface.panel)),"--volter-area-emboss-stage-header":OG(OG(k)),"--volter-content-primary":t.color.content.primary,"--volter-content-muted":t.color.content.muted,"--volter-content-dim":t.color.content.dim,"--volter-content-on-accent":t.color.content.onAccent,"--volter-content-menu":t.color.content.menu??t.color.content.primary,"--volter-content-status":t.color.content.status??t.color.content.dim,"--volter-content-placeholder":t.color.content.placeholder??t.color.content.dim,"--volter-content-active":t.color.content.active??"","--volter-content-selected":t.color.content.selected??t.color.content.active??"","--volter-accent":t.color.accent.default,"--volter-accent-muted":t.color.accent.muted,"--volter-danger":t.color.semantic.danger,"--volter-danger-muted":t.color.semantic.dangerMuted,"--volter-danger-faint":t.color.semantic.dangerFaint,"--volter-warn":t.color.semantic.warning,"--volter-warn-muted":t.color.semantic.warningMuted,"--volter-success":t.color.semantic.success,"--volter-success-muted":t.color.semantic.successMuted,"--volter-dynamic":t.color.semantic.dynamic,"--volter-dynamic-muted":t.color.semantic.dynamicMuted,"--volter-instance":t.color.semantic.instance,"--volter-neutral-hover":t.color.neutralOverlay.hover,"--volter-neutral-active":t.color.neutralOverlay.active,"--volter-scrim":t.color.scrim,"--volter-surface-section":`color-mix(in srgb, ${t.color.surface.panel} 64.9%, ${t.color.surface.raised})`,"--volter-surface-section-edge":`color-mix(in srgb, ${t.color.surface.panel} 29.7%, ${t.color.surface.raised})`,"--volter-surface-header":k,"--volter-surface-row-alt":jCr(t.color.surface.panel,t.color.content.primary),...p4t(t.color.surface.panel)?{"--volter-tree-row-selected-bg":t.color.accent.muted,"--volter-tree-row-active-bg":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-row-active-border":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-datablock-fill":"color-mix(in srgb, var(--volter-category-data, currentColor) 14%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 14%, transparent)"}:{"--volter-tree-row-selected-bg":`color-mix(in srgb, ${t.color.accent.default} 42%, #000)`,"--volter-tree-row-active-bg":`color-mix(in srgb, ${t.color.accent.default} 70%, #000)`,"--volter-tree-row-active-border":"rgb(from var(--volter-tree-row-active-bg) calc(r + 40) calc(g + 40) calc(b + 40))","--volter-tree-datablock-fill":"color-mix(in srgb, color-mix(in srgb, var(--volter-category-data, currentColor) 60%, black) 26%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 24%, transparent)"},"--volter-tree-active-name-underline":t.color.content.active?"none":"underline","--volter-viewport-background":t.color.viewport?.background??"","--volter-viewport-grid":t.color.viewport?.grid??"","--volter-viewport-axis-x":t.color.viewport?.axisX??"","--volter-viewport-axis-y":t.color.viewport?.axisY??"","--volter-viewport-axis-z":t.color.viewport?.axisZ??"","--volter-viewport-wire":t.color.viewport?.wire??"","--volter-viewport-wire-opacity":Zb(t.stage?.wireOpacity),"--volter-viewport-axis-line-width":Zb(t.stage?.axisLineWidth),"--volter-viewport-selection":t.color.viewport?.selection??"","--volter-viewport-active":t.color.viewport?.active??"","--volter-gizmo-x":t.color.gizmo?.x??"","--volter-gizmo-y":t.color.gizmo?.y??"","--volter-gizmo-z":t.color.gizmo?.z??"","--volter-gizmo-navigation-x":t.color.gizmo?.navigationX??"","--volter-gizmo-navigation-y":t.color.gizmo?.navigationY??"","--volter-gizmo-navigation-z":t.color.gizmo?.navigationZ??"","--volter-gizmo-hover":t.color.gizmo?.hover??"","--volter-gizmo-drag":t.color.gizmo?.drag??"","--volter-viewport-gizmo-opacity":Zb(t.stage?.gizmoOpacity),"--volter-viewport-gizmo-arrow-length":Zb(t.stage?.gizmoArrowLength),"--volter-viewport-gizmo-arrow-head":Zb(t.stage?.gizmoArrowHead),"--volter-viewport-gizmo-ring-width":Zb(t.stage?.gizmoRingWidth),"--volter-viewport-navigation-gizmo":t.stage?.navigationGizmo??"","--volter-viewport-navigation-corner":t.stage?.navigationCorner??"","--volter-viewport-navigation-size":Zb(t.stage?.navigationSize),"--volter-viewport-gizmo-highlight-saturation":Zb(t.stage?.gizmoHighlightSaturation),"--volter-viewport-gizmo-highlight-value":Zb(t.stage?.gizmoHighlightValue),"--volter-viewport-gizmo-size":t.stage?.gizmoSize===void 0?"":`${t.stage.gizmoSize}`,"--volter-viewport-grid-line-width":Zb(t.stage?.gridLineWidth),"--volter-viewport-grid-major-width":Zb(t.stage?.gridMajorWidth),"--volter-viewport-grid-major-contrast":Zb(t.stage?.gridMajorContrast),"--volter-viewport-selection-box":t.stage?.selectionBox??"","--volter-viewport-selection-box-frame":t.stage?.selectionBoxFrame??"","--volter-viewport-outline-style":t.stage?.outlineStyle??"","--volter-viewport-outline-width":Zb(t.stage?.outlineWidth),"--volter-viewport-outline-hidden":t.stage?.outlineHidden===void 0?"":`${t.stage.outlineHidden}`,"--volter-viewport-selection-box-width":Zb(t.stage?.selectionBoxWidth),"--volter-viewport-chrome-bar":t.stage?.chrome?.bar??"","--volter-viewport-chrome-view-name":t.stage?.chrome?.viewName??"","--volter-viewport-chrome-tools":t.stage?.chrome?.tools??"","--volter-viewport-chrome-display":t.stage?.chrome?.display??"","--volter-viewport-chrome-transform-controls":t.stage?.chrome?.transformControls??"",...Object.fromEntries(EBe.map(A=>[`--volter-viewport-word-${A}`,t.stage?.words?.shading?.[A]??""])),"--volter-viewport-word-helpers":t.stage?.words?.helpers??"","--volter-widget-regular":c,"--volter-widget-regular-hover":S(c),"--volter-widget-menu":d,"--volter-widget-menu-hover":S(d),"--volter-widget-field":m,"--volter-widget-emboss-shadow":g,...Object.fromEntries(Vye.map(A=>[`--volter-category-${A}`,t.color.category?.[A]??"currentColor"])),"--volter-region-outliner":t.color.region?.outliner??t.color.surface.panel,"--volter-region-outliner-header":t.color.region?.outliner??t.color.surface.chrome,"--volter-region-properties":t.color.region?.properties??t.color.surface.panel,"--volter-region-properties-header":t.color.region?.properties??t.color.surface.chrome,"--volter-font-sans":t.typography.sans,"--volter-font-mono":t.typography.mono,"--volter-radius-sm":t.shape.small,"--volter-radius-md":t.shape.medium,"--volter-radius-lg":t.shape.large,"--volter-radius-full":t.shape.full,"--volter-shadow-sm":t.elevation.small,"--volter-shadow-md":t.elevation.medium,"--volter-shadow-lg":t.elevation.large,"--volter-focus-ring":`${I5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":lCr(t.color.content.muted),"--volter-space-1":`${R_[1]}px`,"--volter-space-2":`${R_[2]}px`,"--volter-space-3":`${R_[3]}px`,"--volter-space-4":`${R_[4]}px`,"--volter-space-5":`${R_[5]}px`,"--volter-space-6":`${R_[6]}px`,"--volter-space-8":`${R_[8]}px`,"--volter-space-10":`${R_[10]}px`,"--volter-space-12":`${R_[12]}px`,"--volter-command-bar-height":`${Qp(t).chrome.commandBar}px`,"--volter-panel-header-height":`${Qp(t).chrome.panelHeader}px`,"--volter-local-toolbar-height":`${Qp(t).chrome.localToolbar}px`,"--volter-tree-row-height":`${Qp(t).chrome.treeRow}px`,"--volter-tree-indent":`${Qp(t).chrome.treeIndent}px`,"--volter-status-bar-height":`${Qp(t).chrome.statusBar}px`,"--volter-tool-size":`${Qp(t).chrome.toolSize}px`,"--volter-tool-width":`${Qp(t).chrome.toolWidth}px`,"--volter-tool-gap":`${Qp(t).chrome.toolGap}px`,"--volter-area-seam-width":`${Qp(t).chrome.areaSeam}px`,"--volter-control-compact-height":`${Qp(t).control.compact}px`,"--volter-control-default-height":`${Qp(t).control.default}px`,"--volter-control-comfortable-height":`${Qp(t).control.comfortable}px`,"--volter-stroke-resting":`${I5e.resting}px`,"--volter-stroke-active":`${I5e.active}px`,"--volter-font-xs":`${Qp(t).font.xs}px`,"--volter-font-sm":`${Qp(t).font.sm}px`,"--volter-font-base":`${Qp(t).font.base}px`,"--volter-font-md":`${Qp(t).font.md}px`,"--volter-font-lg":`${Qp(t).font.lg}px`,"--volter-font-xl":`${Qp(t).font.xl}px`,"--volter-font-2xl":`${Qp(t).font["2xl"]}px`,"--volter-icon-xs":`${Qp(t).icon.xs}px`,"--volter-icon-sm":`${Qp(t).icon.sm}px`,"--volter-icon-md":`${Qp(t).icon.md}px`,"--volter-icon-lg":`${Qp(t).icon.lg}px`,"--volter-icon-xl":`${Qp(t).icon.xl}px`,"--volter-icon-2xl":`${Qp(t).icon["2xl"]}px`,"--volter-font-heading":`${Qp(t).font.heading}px`,"--volter-font-weight-regular":String(k_e.regular),"--volter-font-weight-semibold":String(k_e.semibold),"--volter-font-weight-bold":String(k_e.bold),"--volter-leading-tight":String(kpe.tight),"--volter-leading-snug":String(kpe.snug),"--volter-leading-normal":String(kpe.normal),"--volter-leading-relaxed":String(kpe.relaxed),"--volter-duration-fast":`${NG.duration.fast}ms`,"--volter-duration-base":`${NG.duration.base}ms`,"--volter-duration-slow":`${NG.duration.slow}ms`,"--volter-ease-standard":NG.easing.standard,"--volter-ease-out":NG.easing.out,"--volter-z-base":String(PI.base),"--volter-z-overlay-low":String(PI.overlayLow),"--volter-z-sticky":String(PI.sticky),"--volter-z-dropdown":String(PI.dropdown),"--volter-z-toast":String(PI.toast),"--volter-z-modal":String(PI.modal)}}const MRe="volter-editor-theme";function $Cr(t,n=i$){t.classList.add(MRe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(BCr(n)))t.style.setProperty(s,c)}const s0n={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},a0n={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},h4t=Ye.createContext(null);function qCr(){return Ye.useContext(h4t)}function DR(t,n){return n?`${t} ${n}`:t}const Zm=Ye.forwardRef(function({className:n,type:s="text",...c},d){return q.jsx("input",{...c,ref:d,type:s,className:DR("volter-input",n)})}),Iw=Ye.forwardRef(function({className:n,...s},c){return q.jsx("select",{...s,ref:c,className:DR("volter-select",n)})}),kBe=Ye.forwardRef(function({className:n,...s},c){return q.jsx("textarea",{...s,ref:c,className:DR("volter-input volter-textarea",n)})}),TD=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"checkbox",className:DR("volter-checkbox",n)})}),g4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),c0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),l0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",zCr={id:hC,title:"Editor"},wB=new Map;let lhe=null,cQ=hC;const jRe=new Set;function LRe(){for(const t of jRe)t()}function u0n(){return lhe??=[zCr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],lhe}function vee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function VCr(t){if(vee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),lhe=null,LRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),lhe=null,LRe())}}function uhe(){return cQ}function fhe(t){const n=vee(t)?t:hC;n!==cQ&&(cQ=n,LRe())}function ABe(t){return jRe.add(t),()=>jRe.delete(t)}function y4t(t){return cQ===hC?null:wB.get(cQ)?.glyphs[t]??null}const qht={xs:"var(--volter-icon-xs)",sm:"var(--volter-icon-sm)",md:"var(--volter-icon-md)",lg:"var(--volter-icon-lg)",xl:"var(--volter-icon-xl)","2xl":"var(--volter-icon-2xl)"},zht={current:void 0,primary:Go.content.primary,muted:Go.content.muted,dim:Go.content.dim,accent:Go.accent.default,danger:Go.semantic.danger};function dc({icon:t,size:n="sm",tone:s="current",label:c,className:d,style:m,spin:g=!1,...S}){Ye.useSyncExternalStore(ABe,uhe,uhe);const k=y4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?zht[s]:k.tonedPath?void 0:F,J=A?"currentColor":F??"currentColor";return q.jsxs("svg",{...S,viewBox:k.viewBox??"0 0 16 16","data-volter-tone":A?void 0:k.tone,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{width:"1.25em",height:"1em",overflow:"visible",verticalAlign:"-0.125em",fontSize:qht[n],color:D,...m},children:[q.jsx("path",{d:k.path,fill:"currentColor"}),k.tonedPath?q.jsx("path",{d:k.tonedPath,fill:J}):null]})}return q.jsx(a0r,{...S,icon:t,fixedWidth:!0,spin:g,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{fontSize:qht[n],color:zht[s],...m}})}function v4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?qTt:tCt,size:n,tone:s,...c?{style:c}:{}})}function f0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?MTt:_Le,size:n,tone:s})}function Eg(t,n){return{...n,iconName:t}}const Kk={action:{add:iCt,close:dLe,delete:LTt,search:jTt,refresh:svr,undo:JOe,redo:Omt,build:tvr,export:ovr,select:Rmt},transport:{play:B0r,pause:nvr,restart:Omt,stop:BTt,step:z0r},content:{project:VOe,folder:fee,file:HTt,source:mLe,scene:gLe,entity:aR,component:GB,camera:cye,light:lLe,image:iB,audio:pLe,data:$Tt,code:uLe,stateMachine:VTt},status:{success:fLe,info:R$,warning:dee,error:WTt,visible:cLe,hidden:hLe,locked:Fme,unlocked:UOe},viewport:{zoomIn:C0r,zoomOut:w0r,pan:F0r,frame:S0r,projection:Eg("viewport-projection",E5e),projectionOrthographic:Eg("viewport-orthographic",E5e),camera:Eg("viewport-camera",Nmt),cameraView:Eg("viewport-camera-view",Nmt),cameraLocked:Eg("viewport-camera-locked",Fme),cameraUnlocked:Eg("viewport-camera-unlocked",UOe),gizmos:Eg("viewport-gizmos",q0r)},modeling:{extrude:Eg("mesh-extrude",UTt),inset:Eg("mesh-inset",evr),bevel:Eg("mesh-bevel",avr),loopCut:Eg("mesh-loop-cut",E0r),knife:Eg("mesh-knife",X0r),smooth:Eg("mesh-smooth",x0r),shrinkFatten:Eg("mesh-shrink-fatten",GTt),subdivide:Eg("mesh-subdivide",$0r)},tool:{extension:GB,select:Eg("tool-select-box",Rmt),move:XTt,rotate:FTt,scale:Eg("tool-scale",A0r),transform:Eg("tool-transform",M0r),snap:L0r,frame:nCt,grid:E5e,profiler:eCt},panel:{outliner:Eg("outliner",sCt),properties:Eg("properties",YTt),"folder-open":VOe,"cubes-stacked":KTt,users:k0r,list:vZ,"rotate-left":JOe}};function SZ({value:t,onChange:n,onChangeEnd:s,step:c=.1,precision:d=3,disabled:m=!1,label:g,labelColor:S,style:k,testId:A,title:F}){const[D,J]=Ye.useState(!1),[$,G]=Ye.useState(""),se=Ye.useRef({startX:0,startVal:0,dragging:!1,gesture:!1,lastVal:0}),pe=Ye.useRef(null),ue=qCr();Ye.useEffect(()=>{if(!D)return;const we=pe.current;we&&(we.focus(),we.select())},[D]);const Ce=t===null,Ae=t??0,Pe=Ce?"—":Number.isFinite(Ae)?Ae.toFixed(d):0 .toFixed(d),be=we=>{if(m)return;se.current={startX:we.clientX,startVal:Ae,dragging:!1,gesture:!1,lastVal:Ae};const qe=Pt=>{const Wt=Pt.clientX-se.current.startX;if(Math.abs(Wt)>3&&(se.current.dragging=!0),se.current.dragging){se.current.gesture||(se.current.gesture=!0,ue?.begin());const zt=se.current.startVal+Wt*c,ft=Math.round(zt/c)*c;se.current.lastVal=ft,n(ft)}},bt=()=>{window.removeEventListener("pointermove",qe),window.removeEventListener("pointerup",bt),se.current.gesture&&ue?.end(),se.current.dragging?s?.(se.current.lastVal):(J(!0),G(Ce?"":Pe))};window.addEventListener("pointermove",qe),window.addEventListener("pointerup",bt)},X=()=>{J(!1);const we=Number.parseFloat($);Number.isFinite(we)&&(n(we),s?.(we))};return q.jsxs("div",{className:"volter-number-input","data-testid":A,title:F,style:k,children:[g&&q.jsx("span",{className:"volter-number-input-label",style:S?{color:S}:void 0,children:g}),D?q.jsx(Zm,{ref:pe,value:$,onChange:we=>G(we.target.value),onBlur:X,onKeyDown:we=>{we.key==="Enter"&&X(),we.key==="Escape"&&J(!1)},placeholder:Ce?"—":void 0,className:"volter-number-input-editor"}):q.jsx("div",{onPointerDown:be,className:"volter-number-input-scrub","data-mixed":Ce||void 0,"data-disabled":m||void 0,children:Pe})]})}const UCr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:k_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},JCr={...UCr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function Jye({name:t,actions:n,onHeaderClick:s,hideHeader:c=!1,style:d,children:m,...g}){return q.jsxs("div",{...g,style:{display:"flex",flexDirection:"column",pointerEvents:"auto",...d},children:[!c&&q.jsxs("div",{role:s?"button":void 0,tabIndex:s?0:void 0,onClick:s,onKeyDown:s?S=>{S.key==="Enter"&&s()}:void 0,style:{...JCr,cursor:s?"pointer":void 0,pointerEvents:"auto"},children:[q.jsx("span",{style:{flexShrink:0},children:t}),n&&q.jsx("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:R_[3]},children:n})]}),m]})}function WCr({label:t,icon:n,description:s,actions:c,collapsible:d=!0,defaultOpen:m=!0,children:g}){const[S,k]=Ye.useState(m),A=q.jsxs("span",{className:"volter-section-title",children:[q.jsx("span",{children:t}),s?q.jsx("small",{children:s}):null]});return q.jsxs("section",{className:"volter-section",children:[q.jsxs("div",{className:"volter-section-header",children:[d?q.jsxs("button",{type:"button",className:"volter-section-trigger","aria-expanded":S,onClick:()=>k(!S),children:[q.jsx(v4t,{direction:S?"down":"right",style:{fontSize:"var(--volter-section-disclosure-size, var(--volter-icon-xs))"}}),n&&q.jsx(dc,{icon:n,tone:"dim",className:"volter-section-glyph"}),A]}):q.jsxs("div",{className:"volter-section-trigger","data-volter-static":!0,children:[n&&q.jsx(dc,{icon:n,tone:"dim",className:"volter-section-glyph"}),A]}),c?q.jsx("div",{className:"volter-section-actions",children:c}):null]}),(S||!d)&&q.jsx("div",{className:"volter-section-body",children:g})]})}const zI=8,VI=6;function HCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function GCr(t,n,s){return t==="top"?n.top-s.height-VI>=zI:t==="bottom"?n.bottom+s.height+VI<=window.innerHeight-zI:t==="left"?n.left-s.width-VI>=zI:n.right+s.width+VI<=window.innerWidth-zI}function KCr(t,n,s){let c=n.left+(n.width-s.width)/2,d=n.top+(n.height-s.height)/2;return t==="top"?d=n.top-s.height-VI:t==="bottom"?d=n.bottom+VI:t==="left"?c=n.left-s.width-VI:c=n.right+VI,{left:Math.max(zI,Math.min(c,window.innerWidth-s.width-zI)),top:Math.max(zI,Math.min(d,window.innerHeight-s.height-zI)),ready:!0}}function hO({text:t,hotkey:n,children:s,position:c="bottom",delay:d=400}){const m=Ye.useId(),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef(null),A=Ye.useRef(!1),F=Ye.useRef(!1),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState({left:0,top:0,ready:!1});Ye.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ye.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const ue=()=>{k.current&&clearTimeout(k.current),k.current=null,J(!1)},Ce=()=>{!A.current&&!F.current&&ue()},Ae=be=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{pe(X=>({...X,ready:!1})),J(!0)},be)};Ye.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),we=S.current?.getBoundingClientRect();if(!X||!we)return;const qe=GCr(c,X,we)?c:HCr(c);pe(KCr(qe,X,we))};return be(),window.addEventListener("resize",be),window.addEventListener("scroll",be,!0),()=>{window.removeEventListener("resize",be),window.removeEventListener("scroll",be,!0)}},[n,c,t,D]);let Pe=s;if(Ye.isValidElement(s)){const be=[s.props["aria-describedby"],D?m:null].filter(Boolean).join(" ");Pe=Ye.cloneElement(s,be?{"aria-describedby":be}:{})}return q.jsxs("span",{ref:g,className:"volter-tooltip-anchor",onMouseEnter:()=>{A.current=!0,Ae(d)},onMouseLeave:()=>{A.current=!1,Ce()},onFocusCapture:()=>{F.current=!0,Ae(0)},onBlurCapture:be=>{be.currentTarget.contains(be.relatedTarget)||(F.current=!1,Ce())},children:[Pe,D&&$&&r2.createPortal(q.jsxs("div",{ref:S,id:m,role:"tooltip",className:"volter-tooltip",style:{left:se.left,top:se.top,visibility:se.ready?"visible":"hidden"},children:[q.jsx("span",{children:t}),n&&q.jsx("kbd",{children:n})]}),$)]})}function XCr({value:t,onChange:n,onAxisChange:s,step:c=.1,disabled:d=!1,testIdPrefix:m}){const g=k=>m?`${m}-${k}`:void 0,S=k=>A=>{if(s)s(k,A);else{const F=[t[0]??0,t[1]??0,t[2]??0];F[k]=A,n(F)}};return q.jsxs("div",{style:{display:"flex",gap:4},children:[q.jsx(SZ,{label:"X",labelColor:"#E06178",value:t[0],onChange:S(0),step:c,disabled:d,style:{flex:1},testId:g("x")}),q.jsx(SZ,{label:"Y",labelColor:"#C2ED66",value:t[1],onChange:S(1),step:c,disabled:d,style:{flex:1},testId:g("y")}),q.jsx(SZ,{label:"Z",labelColor:"#6BABF5",value:t[2],onChange:S(2),step:c,disabled:d,style:{flex:1},testId:g("z")})]})}const N5e={bg:Go.surface.panel,surface:Go.surface.chrome,surfaceHover:Go.surface.raised,border:Go.boundary.default,text:Go.content.primary,textMuted:Go.content.muted,onAccent:Go.content.onAccent,accent:Go.accent.default,neutralHover:Go.neutralOverlay.hover,radiusSmall:Go.shape.small,radiusMedium:Go.shape.medium,inputBg:Go.surface.inset,dynamic:Go.semantic.dynamic,dynamicBg:Go.semantic.dynamicMuted},d0n=Go.typography.sans,p0n=Go.typography.mono;function _0n(t,n){t.onChange(n)}function m0n(t,n){(t.onChangeEnd??t.onChange)(n)}const h0n={display:"flex",alignItems:"center",gap:4},g0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},YCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},ZCr=72;function y0n({label:t,active:n,disabled:s,onClick:c,testId:d}){return q.jsx(Ms,{variant:n?"primary":"secondary",size:"compact","aria-pressed":n,disabled:s,"data-testid":d,onClick:()=>{s||c()},style:{flex:1},children:t})}function v0n(t){const n=t.match(/^(-?\d+\.?\d*)\s*(px|em|rem|%|vh|vw|deg|s|ms)?$/);if(n)return{num:Number.parseFloat(n[1]??"0"),unit:n[2]||""};const s=Number.parseFloat(t);return{num:Number.isNaN(s)?0:s,unit:""}}const O5e=22,Vht={width:O5e,height:O5e,flex:`0 0 ${O5e}px`,borderRadius:N5e.radiusSmall,border:`1px solid ${N5e.border}`,background:N5e.inputBg,objectFit:"cover",backgroundImage:"linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%),linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%)",backgroundSize:"8px 8px",backgroundPosition:"0 0, 4px 4px"};function QCr({value:t,onChange:n,options:s,previewUrlFor:c,disabled:d,note:m,testId:g}){const S=t&&!s.includes(t)?[t,...s]:s;return q.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0,flex:1},children:[q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,minWidth:0},children:[t?q.jsx("img",{src:c(t),alt:"",style:Vht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:Vht,"aria-hidden":"true"}),q.jsxs(Iw,{"data-testid":g,disabled:d,value:t,title:t||"No texture assigned",onChange:k=>n(k.target.value),style:{flex:1,minWidth:0},children:[q.jsx("option",{value:"",children:"—"}),S.map(k=>q.jsx("option",{value:k,children:k},k))]}),q.jsx(pm,{"data-testid":`${g}-clear`,"aria-label":"Clear this texture slot",title:"Clear this texture slot",disabled:d||!t,onClick:()=>n(""),children:q.jsx(dc,{icon:dLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function BRe({value:t,onCommit:n,onKeyDown:s,onFocus:c,...d}){const[m,g]=Ye.useState(null),S=Ye.useRef(!1),k=()=>{!S.current&&m!==null&&m!==t&&n(m),S.current=!1,g(null)};return q.jsx(Zm,{...d,value:m??t,onFocus:A=>{g(t),c?.(A)},onChange:A=>g(A.target.value),onBlur:k,onKeyDown:A=>{A.key==="Enter"&&A.target.blur(),A.key==="Escape"&&(S.current=!0,A.target.blur()),s?.(A)}})}const A_e=new Map,$Re=new Set;let b4t=0,R5e=!1;function Uht(){R5e||(R5e=!0,queueMicrotask(()=>{R5e=!1,b4t+=1;for(const t of[...$Re])t()}))}function b0n(t,n){return A_e.set(t,n),Uht(),()=>{A_e.get(t)===n&&(A_e.delete(t),Uht())}}function DBe(t){return $Re.add(t),()=>$Re.delete(t)}function o$(){return b4t}function s2(t){return t?A_e.get(t)??null:null}const QL=new Map;function S0n(t){QL.set(t,(QL.get(t)??0)+1);let n=!1;return()=>{if(n)return;n=!0;const s=(QL.get(t)??0)-1;s>0?QL.set(t,s):QL.delete(t)}}function eEr(t){return(QL.get(t)??0)>0}const PR=1e4;async function CC(t,n=4e3){if(t())return!0;const s=performance.now();return new Promise(c=>{const d=()=>{t()?c(!0):performance.now()-s>=n?c(!1):setTimeout(d,25)};setTimeout(d,0)})}const xZ=new Map,TB=new Set,dhe=new Set,D_e=new Set;let S4t=0,F5e=!1;function qRe(){F5e||(F5e=!0,queueMicrotask(()=>{F5e=!1,S4t+=1;for(const t of[...TB])t()}))}function tEr(t,n){return xZ.set(t,n),qRe(),()=>{xZ.get(t)===n&&(xZ.delete(t),qRe())}}function rEr(t){xZ.has(t)&&qRe()}function nEr(t){return TB.add(t),()=>{TB.delete(t)}}function Jht(){return S4t}function lQ(t){return xZ.get(t)}function x4t(t,n=1e4){const s=lQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=lQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function w4t(t){dhe.add(t);for(const n of[...D_e])n();return()=>{dhe.delete(t)}}function T4t(t,n=1e4){return dhe.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{dhe.has(t)&&(clearTimeout(d),D_e.delete(c),s(!0))},d=setTimeout(()=>{D_e.delete(c),s(!1)},n);D_e.add(c)})}async function PBe(t){if(eEr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let zRe=null;const ZY=new Map;let YO=[];function iEr(t){if(zRe=t,!t)return;const n=YO;YO=[];for(const s of n)C4t(t,s)}function C4t(t,n){ZY.get(n.id)?.();const s=t.show(n),c=()=>{ZY.get(n.id)===c&&(ZY.delete(n.id),s(),n.onDismiss?.())};return ZY.set(n.id,c),c}let oEr=0;function s$(t){const n=t.id??`notification-${++oEr}`,s={...t,id:n};return zRe?C4t(zRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>IBe(n))}function IBe(t){const n=ZY.get(t);if(n){n();return}const s=YO.find(c=>c.id===t);s&&(YO=YO.filter(c=>c.id!==t),s.onDismiss?.())}let Xk={sessions:[],selectedSessionId:null,selectedSession:null,cursorMs:0,liveEdgeMs:0,loading:!0,error:null},phe=!0,Ape=null,P_e=null,RG=null,I_e=!1;const QY=new Set;function sEr(t,n,s){const c=t[0]??null;return c!==null&&n.length>0&&!n.some(m=>m.id===c.id)?{sessionId:c.id,latestAppeared:!0}:s&&t.some(m=>m.id===s)?{sessionId:s,latestAppeared:!1}:{sessionId:c?.id??null,latestAppeared:!1}}function _he(t){Xk=t;for(const n of QY)n()}async function aEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function cEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function lEr(){try{const t={sessions:await aEr()},n=sEr(t.sessions,Xk.sessions,P_e),s=n.sessionId;n.latestAppeared&&(phe=!0),P_e=s;const c=s?await cEr(s):null;if(P_e!==s){I_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=phe?m:Math.min(Xk.cursorMs,m);_he({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){_he({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function uQ(){return RG?(I_e=!0,RG):(RG=lEr().finally(()=>{RG=null,I_e&&(I_e=!1,uQ())}),RG)}function uEr(t){return QY.add(t),QY.size===1&&(uQ(),Ape=window.setInterval(()=>void uQ(),1e3)),()=>{QY.delete(t),QY.size===0&&Ape!==null&&(window.clearInterval(Ape),Ape=null)}}function fEr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(P_e=n.id,phe=!0,_he({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),uQ())}function dEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));phe=Xk.liveEdgeMs-n<250,_he({...Xk,cursorMs:n})}const E4t={getSnapshot:()=>Xk,subscribe:uEr,select:fEr,seek:dEr,refresh:uQ};let k4t=null;const VRe=new Set,x0n={getSnapshot:()=>k4t,subscribe(t){return VRe.add(t),()=>VRe.delete(t)}};function w0n(t){k4t=t;for(const n of VRe)try{n()}catch{}}let ZO={phase:null,at:0,run:0},pN=ZO;const URe=new Map;let A4t=null;function pEr(t){A4t=t,D4t(ZO)}function D4t(t){ZO=t;try{A4t?.(t)}catch{}}function fQ(){const t=[...URe.values()].at(-1),n=t?{...t,run:pN.run}:pN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||D4t(n)}function T0n(t=Date.now()){return pN={phase:null,at:t,run:pN.run+1},fQ(),ZO.run}function C0n(t,n=Date.now()){pN={phase:t,at:n,run:pN.run},fQ()}function E0n(t=Date.now()){pN={phase:null,at:t,run:pN.run},fQ()}function NBe(t,n=Date.now()){const s=Symbol();return URe.set(s,{phase:t.slice(0,160),at:n}),fQ(),()=>{URe.delete(s)&&fQ()}}const _Er=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-BN2umpRb.js"),__vite__mapDeps([255,1,2,3,4,20,21,143,128,144,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class OBe extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){console.error(`[tools] ${this.props.file} crashed while rendering:`,n,s.componentStack)}render(){return this.state.error?q.jsxs("div",{style:{padding:R_[6],fontSize:"var(--volter-font-md)",color:Go.semantic.danger,maxWidth:640},children:[q.jsxs("div",{style:{fontWeight:600,marginBottom:R_[2]},children:["Tool crashed: ",q.jsx("code",{children:this.props.file})]}),q.jsx("div",{style:{whiteSpace:"pre-wrap"},children:String(this.state.error)}),q.jsx("div",{style:{color:Go.content.muted,marginTop:R_[3]},children:"The editor is fine — fix the tool file and save; it reloads in place."})]}):this.props.children}}function mEr({contribution:t,Component:n,documentId:s,active:c,document:d,accountRevision:m,playKey:g}){const S=Ye.useRef(null),[k,A]=Ye.useState(null),F=Ye.useRef(null),D=Ye.useRef(null),J=Ye.useRef(t.file);J.current=t.file;const $=Ye.useRef(s);return $.current=s,Ye.useEffect(()=>{const G=S.current;if(!G)return;let se=!1;A(null);const pe=(Ae,Pe)=>{if(se)return;const be=Ae instanceof Error?Ae:new Error(String(Ae));console.error(`[tools] ${J.current} crashed while rendering:`,be,Pe?.componentStack),A(be),$.current&&w4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=sLe.createRoot(ue,{onUncaughtError:pe});return F.current=Ce,()=>{se=!0,F.current=null,D.current?.(),D.current=null,queueMicrotask(()=>{Ce.unmount(),ue.remove()})}},[]),Ye.useEffect(()=>{const G=F.current;if(!G)return;A(null);const se={contributionId:t.id,client:e0e(),surfaces:vBe,account:sBe(),work:Ae=>{D.current?.(),D.current=Ae===null?null:NBe(`building ${Ae.replace(/^building /,"")}`)},notify:Ae=>s$({...Ae,id:`contribution:${t.id}:${Ae.title}`,...Ae.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:E4t}:{play:Rye()},...s?{documentId:s,publishContext:Ae=>tEr(s,Ae)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ye.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});let Ce=!1;return queueMicrotask(()=>{Ce||F.current!==G||G.render(s?Ye.createElement(hEr,{documentId:s},ue):ue)}),()=>{Ce=!0}},[m,c,t,n,s,d,g]),q.jsxs(q.Fragment,{children:[k?q.jsxs("div",{style:{padding:R_[6],color:Go.semantic.danger},children:["Tool crashed: ",q.jsx("code",{children:t.file}),q.jsx("div",{style:{whiteSpace:"pre-wrap",marginTop:R_[2]},children:String(k)})]}):null,q.jsx("div",{ref:S,style:{minHeight:0,width:"100%"}})]})}function hEr({documentId:t,children:n}){return Ye.useEffect(()=>w4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ye.useSyncExternalStore(Dye,lN,lN),g=Ye.useSyncExternalStore(Fye,uN,uN),S=t.point==="workspace.analytics"?"gameplay-sessions":g;return q.jsxs("div",{"data-testid":`tool-panel-${t.id}`,style:{flex:1,minHeight:0,overflow:t.point==="workspace.analytics"?"visible":"auto",color:Go.content.primary,display:"flex",flexDirection:"column"},children:[t.point==="workspace.analytics"?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(_Er,{})}):null,q.jsx(OBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(mEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function gEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Dye,lN,lN),Ye.useSyncExternalStore(Fye,uN,uN);const S=g?m.hierarchy.node(g):null;return q.jsx("div",{className:"volter-inspector-tool-section","data-testid":`inspector-tool-${t}`,children:q.jsx(OBe,{file:s,children:q.jsx(t1r,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:vBe,account:sBe(),play:Rye(),node:S,nodeId:g,adapter:m})})})})}const yEr=Symbol("volter.inspection.mixed");function JRe(t){return t===yEr}function RBe(t){return t.readonlyReason??"This field is read-only."}function FBe(t){return"column"}function MBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const WRe="preview",Wht="transform",M5e="properties",P4t="stories",k0n="story-args",A0n="Story Args";function Hht(t){return`group:${t}`}const I4t=100,vEr=1e3,dQ=2e3,N4t=3e3,bEr=4e3,SEr=5e3,xEr={nullSubjectId:null};function O4t(t){return"sections"in t}const N_e=[];let R4t=0;const HRe=new Set;function Ght(){R4t++;for(const t of HRe)t()}function wEr(t){return HRe.add(t),()=>{HRe.delete(t)}}function Kht(){return R4t}function F4t(t){return N_e.push(t),Ght(),()=>{const n=N_e.indexOf(t);n>=0&&(N_e.splice(n,1),Ght())}}function Xht(t,n,s=xEr){return N_e.filter(c=>c.match(t,n,s))}function M4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const TEr=1e3;class CEr{_entries=[];_listeners=new Set;_nextId=0;_version=0;_notifyScheduled=!1;_sink=null;setSink(n){this._sink=n}counts={info:0,warn:0,error:0};log(n,s){this._push("info",n,s)}warn(n,s){this._push("warn",n,s)}error(n,s){this._push("error",n,s)}logStructured(n,s,c,d,m){this._push(n,s,c,d,m)}clear(){this._entries=[],this.counts={info:0,warn:0,error:0},this._notify()}getEntries(){return this._entries}subscribe=n=>(this._listeners.add(n),()=>this._listeners.delete(n));getSnapshot=()=>this._version;_push(n,s,c,d,m){const g=this._entries[this._entries.length-1];if(g&&g.level===n&&g.message===s&&g.source===c&&g.metadata?.instanceId===m?.instanceId){g.count++,g.timestamp=Date.now(),this._sink?.(g),this._notify();return}const S={id:this._nextId++,timestamp:Date.now(),level:n,message:s,count:1};if(c&&(S.source=c),d&&(S.subsystem=d),m&&(S.metadata=m),this._entries.push(S),this.counts[n]++,this._sink?.(S),this._entries.length>TEr){const k=this._entries.shift();this.counts[k.level]=Math.max(0,this.counts[k.level]-1)}this._notify()}_notify(){this._version++,!this._notifyScheduled&&(this._notifyScheduled=!0,queueMicrotask(()=>{this._notifyScheduled=!1;for(const n of this._listeners)n()}))}}const Qs=new CEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Yht=1e3,Zht=4e3;function CB(t){try{const n=t;return typeof t=="object"&&n!==null&&typeof n.stack=="string"&&n.stack!==""&&typeof n.message=="string"?n.stack.includes(n.message)?n.stack:`${String(t)}
|
|
45
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of t.seen.entries()){const S=g[1];if(n===g[0]){m(g);continue}if(t.external){const A=t.external.registry.get(g[0])?.id;if(n!==g[0]&&A){m(g);continue}}if(t.metadataRegistry.get(g[0])?.id){m(g);continue}if(S.cycle){m(g);continue}if(S.count>1&&t.reused==="ref"){m(g);continue}}}function Ume(t,n){const s=t.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const c=g=>{const S=t.seen.get(g);if(S.ref===null)return;const k=S.def??S.schema,A={...k},F=S.ref;if(S.ref=null,F){c(F);const J=t.seen.get(F),$=J.schema;if($.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(k.allOf=k.allOf??[],k.allOf.push($)):Object.assign(k,$),Object.assign(k,A),g._zod.parent===F)for(const se in k)se==="$ref"||se==="allOf"||se in A||delete k[se];if($.$ref&&J.def)for(const se in k)se==="$ref"||se==="allOf"||se in J.def&&JSON.stringify(k[se])===JSON.stringify(J.def[se])&&delete k[se]}const D=g._zod.parent;if(D&&D!==F){c(D);const J=t.seen.get(D);if(J?.schema.$ref&&(k.$ref=J.schema.$ref,J.def))for(const $ in k)$==="$ref"||$==="allOf"||$ in J.def&&JSON.stringify(k[$])===JSON.stringify(J.def[$])&&delete k[$]}t.override({zodSchema:g,jsonSchema:k,path:S.path??[]})};for(const g of[...t.seen.entries()].reverse())c(g[0]);const d={};if(t.target==="draft-2020-12"?d.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?d.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?d.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){const g=t.external.registry.get(n)?.id;if(!g)throw new Error("Schema is missing an `id` property");d.$id=t.external.uri(g)}Object.assign(d,s.def??s.schema);const m=t.external?.defs??{};for(const g of t.seen.entries()){const S=g[1];S.def&&S.defId&&(m[S.defId]=S.def)}t.external||Object.keys(m).length>0&&(t.target==="draft-2020-12"?d.$defs=m:d.definitions=m);try{const g=JSON.parse(JSON.stringify(d));return Object.defineProperty(g,"~standard",{value:{...n["~standard"],jsonSchema:{input:Jme(n,"input",t.processors),output:Jme(n,"output",t.processors)}},enumerable:!1,writable:!1}),g}catch{throw new Error("Error converting schema to JSON.")}}function W1(t,n){const s=n??{seen:new Set};if(s.seen.has(t))return!1;s.seen.add(t);const c=t._zod.def;if(c.type==="transform")return!0;if(c.type==="array")return W1(c.element,s);if(c.type==="set")return W1(c.valueType,s);if(c.type==="lazy")return W1(c.getter(),s);if(c.type==="promise"||c.type==="optional"||c.type==="nonoptional"||c.type==="nullable"||c.type==="readonly"||c.type==="default"||c.type==="prefault")return W1(c.innerType,s);if(c.type==="intersection")return W1(c.left,s)||W1(c.right,s);if(c.type==="record"||c.type==="map")return W1(c.keyType,s)||W1(c.valueType,s);if(c.type==="pipe")return W1(c.in,s)||W1(c.out,s);if(c.type==="object"){for(const d in c.shape)if(W1(c.shape[d],s))return!0;return!1}if(c.type==="union"){for(const d of c.options)if(W1(d,s))return!0;return!1}if(c.type==="tuple"){for(const d of c.items)if(W1(d,s))return!0;return!!(c.rest&&W1(c.rest,s))}return!1}const TSr=(t,n={})=>s=>{const c=zme({...s,processors:n});return F_(t,c),Vme(c,t),Ume(c,t)},Jme=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=zme({...d??{},target:m,io:n,processors:s});return F_(t,g),Vme(g,t),Ume(g,t)},CSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},fkt=(t,n,s,c)=>{const d=s;d.type="string";const{minimum:m,maximum:g,format:S,patterns:k,contentEncoding:A}=t._zod.bag;if(typeof m=="number"&&(d.minLength=m),typeof g=="number"&&(d.maxLength=g),S&&(d.format=CSr[S]??S,d.format===""&&delete d.format,S==="time"&&delete d.format),A&&(d.contentEncoding=A),k&&k.size>0){const F=[...k];F.length===1?d.pattern=F[0].source:F.length>1&&(d.allOf=[...F.map(D=>({...n.target==="draft-07"||n.target==="draft-04"||n.target==="openapi-3.0"?{type:"string"}:{},pattern:D.source}))])}},dkt=(t,n,s,c)=>{const d=s,{minimum:m,maximum:g,format:S,multipleOf:k,exclusiveMaximum:A,exclusiveMinimum:F}=t._zod.bag;typeof S=="string"&&S.includes("int")?d.type="integer":d.type="number",typeof F=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(d.minimum=F,d.exclusiveMinimum=!0):d.exclusiveMinimum=F),typeof m=="number"&&(d.minimum=m,typeof F=="number"&&n.target!=="draft-04"&&(F>=m?delete d.minimum:delete d.exclusiveMinimum)),typeof A=="number"&&(n.target==="draft-04"||n.target==="openapi-3.0"?(d.maximum=A,d.exclusiveMaximum=!0):d.exclusiveMaximum=A),typeof g=="number"&&(d.maximum=g,typeof A=="number"&&n.target!=="draft-04"&&(A<=g?delete d.maximum:delete d.exclusiveMaximum)),typeof k=="number"&&(d.multipleOf=k)},pkt=(t,n,s,c)=>{s.type="boolean"},_kt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},mkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},hkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},gkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},vkt=(t,n,s,c)=>{s.not={}},bkt=(t,n,s,c)=>{},Skt=(t,n,s,c)=>{},xkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},wkt=(t,n,s,c)=>{const d=t._zod.def,m=SLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},Tkt=(t,n,s,c)=>{const d=t._zod.def,m=[];for(const g of d.values)if(g===void 0){if(n.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof g=="bigint"){if(n.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");m.push(Number(g))}else m.push(g);if(m.length!==0)if(m.length===1){const g=m[0];s.type=g===null?"null":typeof g,n.target==="draft-04"||n.target==="openapi-3.0"?s.enum=[g]:s.const=g}else m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),m.every(g=>typeof g=="boolean")&&(s.type="boolean"),m.every(g=>g===null)&&(s.type="null"),s.enum=m},Ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Ekt=(t,n,s,c)=>{const d=s,m=t._zod.pattern;if(!m)throw new Error("Pattern not found in template literal");d.type="string",d.pattern=m.source},kkt=(t,n,s,c)=>{const d=s,m={type:"string",format:"binary",contentEncoding:"binary"},{minimum:g,maximum:S,mime:k}=t._zod.bag;g!==void 0&&(m.minLength=g),S!==void 0&&(m.maxLength=S),k?k.length===1?(m.contentMediaType=k[0],Object.assign(d,m)):(Object.assign(d,m),d.anyOf=k.map(A=>({contentMediaType:A}))):Object.assign(d,m)},Akt=(t,n,s,c)=>{s.type="boolean"},Dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Pkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Ikt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Nkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Okt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Rkt=(t,n,s,c)=>{const d=s,m=t._zod.def,{minimum:g,maximum:S}=t._zod.bag;typeof g=="number"&&(d.minItems=g),typeof S=="number"&&(d.maxItems=S),d.type="array",d.items=F_(m.element,n,{...c,path:[...c.path,"items"]})},Fkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="object",d.properties={};const g=m.shape;for(const A in g)d.properties[A]=F_(g[A],n,{...c,path:[...c.path,"properties",A]});const S=new Set(Object.keys(g)),k=new Set([...S].filter(A=>{const F=m.shape[A]._zod;return n.io==="input"?F.optin===void 0:F.optout===void 0}));k.size>0&&(d.required=Array.from(k)),m.catchall?._zod.def.type==="never"?d.additionalProperties=!1:m.catchall?m.catchall&&(d.additionalProperties=F_(m.catchall,n,{...c,path:[...c.path,"additionalProperties"]})):n.io==="output"&&(d.additionalProperties=!1)},ALe=(t,n,s,c)=>{const d=t._zod.def,m=d.inclusive===!1,g=d.options.map((S,k)=>F_(S,n,{...c,path:[...c.path,m?"oneOf":"anyOf",k]}));m?s.oneOf=g:s.anyOf=g},Mkt=(t,n,s,c)=>{const d=t._zod.def,m=F_(d.left,n,{...c,path:[...c.path,"allOf",0]}),g=F_(d.right,n,{...c,path:[...c.path,"allOf",1]}),S=A=>"allOf"in A&&Object.keys(A).length===1,k=[...S(m)?m.allOf:[m],...S(g)?g.allOf:[g]];s.allOf=k},jkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="array";const g=n.target==="draft-2020-12"?"prefixItems":"items",S=n.target==="draft-2020-12"||n.target==="openapi-3.0"?"items":"additionalItems",k=m.items.map((J,$)=>F_(J,n,{...c,path:[...c.path,g,$]})),A=m.rest?F_(m.rest,n,{...c,path:[...c.path,S,...n.target==="openapi-3.0"?[m.items.length]:[]]}):null;n.target==="draft-2020-12"?(d.prefixItems=k,A&&(d.items=A)):n.target==="openapi-3.0"?(d.items={anyOf:k},A&&d.items.anyOf.push(A),d.minItems=k.length,A||(d.maxItems=k.length)):(d.items=k,A&&(d.additionalItems=A));const{minimum:F,maximum:D}=t._zod.bag;typeof F=="number"&&(d.minItems=F),typeof D=="number"&&(d.maxItems=D)},Lkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="object";const g=m.keyType,k=g._zod.bag?.patterns;if(m.mode==="loose"&&k&&k.size>0){const F=F_(m.valueType,n,{...c,path:[...c.path,"patternProperties","*"]});d.patternProperties={};for(const D of k)d.patternProperties[D.source]=F}else(n.target==="draft-07"||n.target==="draft-2020-12")&&(d.propertyNames=F_(m.keyType,n,{...c,path:[...c.path,"propertyNames"]})),d.additionalProperties=F_(m.valueType,n,{...c,path:[...c.path,"additionalProperties"]});const A=g._zod.values;if(A){const F=[...A].filter(D=>typeof D=="string"||typeof D=="number");F.length>0&&(d.required=F)}},Bkt=(t,n,s,c)=>{const d=t._zod.def,m=F_(d.innerType,n,c),g=n.seen.get(t);n.target==="openapi-3.0"?(g.ref=d.innerType,s.nullable=!0):s.anyOf=[m,{type:"null"}]},$kt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},qkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.default=JSON.parse(JSON.stringify(d.defaultValue))},zkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,n.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(d.defaultValue)))},Vkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType;let g;try{g=d.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},Ukt=(t,n,s,c)=>{const d=t._zod.def,m=n.io==="input"?d.in._zod.def.type==="transform"?d.out:d.in:d.out;F_(m,n,c);const g=n.seen.get(t);g.ref=m},Jkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.readOnly=!0},Wkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},DLe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Hkt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},cht={string:fkt,number:dkt,boolean:pkt,bigint:_kt,symbol:mkt,null:hkt,undefined:gkt,void:ykt,never:vkt,any:bkt,unknown:Skt,date:xkt,enum:wkt,literal:Tkt,nan:Ckt,template_literal:Ekt,file:kkt,success:Akt,custom:Dkt,function:Pkt,transform:Ikt,map:Nkt,set:Okt,array:Rkt,object:Fkt,union:ALe,intersection:Mkt,tuple:jkt,record:Lkt,nullable:Bkt,nonoptional:$kt,default:qkt,prefault:zkt,catch:Vkt,pipe:Ukt,readonly:Jkt,promise:Wkt,optional:DLe,lazy:Hkt};function ESr(t,n){if("_idmap"in t){const c=t,d=zme({...n,processors:cht}),m={};for(const k of c._idmap.entries()){const[A,F]=k;F_(F,d)}const g={},S={registry:c,uri:n?.uri,defs:m};d.external=S;for(const k of c._idmap.entries()){const[A,F]=k;Vme(d,F),g[A]=Ume(d,F)}if(Object.keys(m).length>0){const k=d.target==="draft-2020-12"?"$defs":"definitions";g.__shared={[k]:m}}return{schemas:g}}const s=zme({...n,processors:cht});return F_(t,s),Vme(s,t),Ume(s,t)}const Gkt=ui("ZodISODateTime",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function Kkt(t){return R2r(Gkt,t)}const Xkt=ui("ZodISODate",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function Ykt(t){return F2r(Xkt,t)}const Zkt=ui("ZodISOTime",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function Qkt(t){return M2r(Zkt,t)}const eAt=ui("ZodISODuration",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function tAt(t){return j2r(eAt,t)}const zgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Xkt,ZodISODateTime:Gkt,ZodISODuration:eAt,ZodISOTime:Zkt,date:Ykt,datetime:Kkt,duration:tAt,time:Qkt},Symbol.toStringTag,{value:"Module"})),rAt=(t,n)=>{qCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>T1r(t,s)},flatten:{value:s=>w1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,Lme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,Lme,2)}},isEmpty:{get(){return t.issues.length===0}}})},Vgn=ui("ZodError",rAt),Fw=ui("ZodError",rAt,{Parent:Error}),kSr=hye(Fw),ASr=gye(Fw),DSr=yye(Fw),PSr=vye(Fw),ISr=zCt(Fw),NSr=VCt(Fw),OSr=UCt(Fw),RSr=JCt(Fw),FSr=WCt(Fw),MSr=HCt(Fw),jSr=GCt(Fw),LSr=KCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:Jme(t,"input"),output:Jme(t,"output")}}),t.toJSONSchema=TSr(t,{}),t.def=n,t.type=n.type,Object.defineProperty(t,"_def",{value:n}),t.check=(...s)=>t.clone(oA(n,{checks:[...n.checks??[],...s.map(c=>typeof c=="function"?{_zod:{check:c,def:{check:"custom"},onattach:[]}}:c)]}),{parent:!0}),t.with=t.check,t.clone=(s,c)=>sA(t,s,c),t.brand=()=>t,t.register=((s,c)=>(s.add(t,c),t)),t.parse=(s,c)=>kSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>DSr(t,s,c),t.parseAsync=async(s,c)=>ASr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>PSr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>ISr(t,s,c),t.decode=(s,c)=>NSr(t,s,c),t.encodeAsync=async(s,c)=>OSr(t,s,c),t.decodeAsync=async(s,c)=>RSr(t,s,c),t.safeEncode=(s,c)=>FSr(t,s,c),t.safeDecode=(s,c)=>MSr(t,s,c),t.safeEncodeAsync=async(s,c)=>jSr(t,s,c),t.safeDecodeAsync=async(s,c)=>LSr(t,s,c),t.refine=(s,c)=>t.check(VAt(s,c)),t.superRefine=s=>t.check(UAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Gme(t),t.exactOptional=()=>CAt(t),t.nullable=()=>Kme(t),t.nullish=()=>Gme(Kme(t)),t.nonoptional=s=>IAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>QLe(t,s),t.transform=s=>Xme(t,eBe(s)),t.default=s=>AAt(t,s),t.prefault=s=>PAt(t,s),t.catch=s=>RAt(t,s),t.pipe=s=>Xme(t,s),t.readonly=()=>jAt(t),t.describe=s=>{const c=t.clone();return sD.add(c,{description:s}),c},Object.defineProperty(t,"description",{get(){return sD.get(t)?.description},configurable:!0}),t.meta=(...s)=>{if(s.length===0)return sD.get(t);const c=t.clone();return sD.add(c,s[0]),c},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=s=>s(t),t)),PLe=ui("_ZodString",(t,n)=>{Sye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>fkt(t,c,d);const s=t._zod.bag;t.format=s.format??null,t.minLength=s.minimum??null,t.maxLength=s.maximum??null,t.regex=(...c)=>t.check(nSr(...c)),t.includes=(...c)=>t.check(sSr(...c)),t.startsWith=(...c)=>t.check(aSr(...c)),t.endsWith=(...c)=>t.check(cSr(...c)),t.min=(...c)=>t.check(qme(...c)),t.max=(...c)=>t.check(lkt(...c)),t.length=(...c)=>t.check(ukt(...c)),t.nonempty=(...c)=>t.check(qme(1,...c)),t.lowercase=c=>t.check(iSr(c)),t.uppercase=c=>t.check(oSr(c)),t.trim=()=>t.check(fSr()),t.normalize=(...c)=>t.check(uSr(...c)),t.toLowerCase=()=>t.check(dSr()),t.toUpperCase=()=>t.check(pSr()),t.slugify=()=>t.check(_Sr())}),ILe=ui("ZodString",(t,n)=>{Sye.init(t,n),PLe.init(t,n),t.email=s=>t.check(zEt(NLe,s)),t.url=s=>t.check(ELe(wye,s)),t.jwt=s=>t.check(akt(HLe,s)),t.emoji=s=>t.check(HEt(OLe,s)),t.guid=s=>t.check(nRe(Wme,s)),t.uuid=s=>t.check(VEt(aD,s)),t.uuidv4=s=>t.check(UEt(aD,s)),t.uuidv6=s=>t.check(JEt(aD,s)),t.uuidv7=s=>t.check(WEt(aD,s)),t.nanoid=s=>t.check(GEt(RLe,s)),t.guid=s=>t.check(nRe(Wme,s)),t.cuid=s=>t.check(KEt(FLe,s)),t.cuid2=s=>t.check(XEt(MLe,s)),t.ulid=s=>t.check(YEt(jLe,s)),t.base64=s=>t.check(ikt(ULe,s)),t.base64url=s=>t.check(okt(JLe,s)),t.xid=s=>t.check(ZEt(LLe,s)),t.ksuid=s=>t.check(QEt(BLe,s)),t.ipv4=s=>t.check(ekt($Le,s)),t.ipv6=s=>t.check(tkt(qLe,s)),t.cidrv4=s=>t.check(rkt(zLe,s)),t.cidrv6=s=>t.check(nkt(VLe,s)),t.e164=s=>t.check(skt(WLe,s)),t.datetime=s=>t.check(Kkt(s)),t.date=s=>t.check(Ykt(s)),t.time=s=>t.check(Qkt(s)),t.duration=s=>t.check(tAt(s))});function bo(t){return N2r(ILe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),PLe.init(t,n)}),NLe=ui("ZodEmail",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function BSr(t){return zEt(NLe,t)}const Wme=ui("ZodGUID",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function $Sr(t){return nRe(Wme,t)}const aD=ui("ZodUUID",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function qSr(t){return VEt(aD,t)}function zSr(t){return UEt(aD,t)}function VSr(t){return JEt(aD,t)}function USr(t){return WEt(aD,t)}const wye=ui("ZodURL",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function JSr(t){return ELe(wye,t)}function WSr(t){return ELe(wye,{protocol:/^https?$/,hostname:_Et,...Jo(t)})}const OLe=ui("ZodEmoji",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return HEt(OLe,t)}const RLe=ui("ZodNanoID",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function GSr(t){return GEt(RLe,t)}const FLe=ui("ZodCUID",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function KSr(t){return KEt(FLe,t)}const MLe=ui("ZodCUID2",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function XSr(t){return XEt(MLe,t)}const jLe=ui("ZodULID",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function YSr(t){return YEt(jLe,t)}const LLe=ui("ZodXID",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function ZSr(t){return ZEt(LLe,t)}const BLe=ui("ZodKSUID",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function QSr(t){return QEt(BLe,t)}const $Le=ui("ZodIPv4",(t,n)=>{Rbr.init(t,n),j_.init(t,n)});function exr(t){return ekt($Le,t)}const nAt=ui("ZodMAC",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function txr(t){return O2r(nAt,t)}const qLe=ui("ZodIPv6",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function rxr(t){return tkt(qLe,t)}const zLe=ui("ZodCIDRv4",(t,n)=>{jbr.init(t,n),j_.init(t,n)});function nxr(t){return rkt(zLe,t)}const VLe=ui("ZodCIDRv6",(t,n)=>{Lbr.init(t,n),j_.init(t,n)});function ixr(t){return nkt(VLe,t)}const ULe=ui("ZodBase64",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function oxr(t){return ikt(ULe,t)}const JLe=ui("ZodBase64URL",(t,n)=>{qbr.init(t,n),j_.init(t,n)});function sxr(t){return okt(JLe,t)}const WLe=ui("ZodE164",(t,n)=>{zbr.init(t,n),j_.init(t,n)});function axr(t){return skt(WLe,t)}const HLe=ui("ZodJWT",(t,n)=>{Ubr.init(t,n),j_.init(t,n)});function cxr(t){return akt(HLe,t)}const hee=ui("ZodCustomStringFormat",(t,n)=>{Jbr.init(t,n),j_.init(t,n)});function lxr(t,n,s={}){return xye(hee,t,n,s)}function uxr(t){return xye(hee,"hostname",pEt,t)}function fxr(t){return xye(hee,"hex",DEt,t)}function dxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=Z1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return xye(hee,c,d,n)}const GLe=ui("ZodNumber",(t,n)=>{REt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>dkt(t,c,d),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.int=c=>t.check(oRe(c)),t.safe=c=>t.check(oRe(c)),t.positive=c=>t.check(eQ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(QZ(0,c)),t.nonpositive=c=>t.check(YI(0,c)),t.multipleOf=(c,d)=>t.check(iRe(c,d)),t.step=(c,d)=>t.check(iRe(c,d)),t.finite=()=>t;const s=t._zod.bag;t.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),t.isFinite=!0,t.format=s.format??null});function fu(t){return L2r(GLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Wbr.init(t,n),GLe.init(t,n)});function oRe(t){return B2r(j$,t)}function pxr(t){return $2r(j$,t)}function _xr(t){return q2r(j$,t)}function mxr(t){return z2r(j$,t)}function hxr(t){return V2r(j$,t)}const KLe=ui("ZodBoolean",(t,n)=>{FEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s,c)});function my(t){return U2r(KLe,t)}const XLe=ui("ZodBigInt",(t,n)=>{MEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>_kt(t,c),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.positive=c=>t.check(eQ(BigInt(0),c)),t.negative=c=>t.check(QZ(BigInt(0),c)),t.nonpositive=c=>t.check(YI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(iRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function gxr(t){return J2r(XLe,t)}const YLe=ui("ZodBigIntFormat",(t,n)=>{Hbr.init(t,n),XLe.init(t,n)});function yxr(t){return W2r(YLe,t)}function vxr(t){return H2r(YLe,t)}const iAt=ui("ZodSymbol",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s)});function bxr(t){return G2r(iAt,t)}const oAt=ui("ZodUndefined",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt(t,s)});function Sxr(t){return K2r(oAt,t)}const sAt=ui("ZodNull",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt(t,s,c)});function aAt(t){return X2r(sAt,t)}const cAt=ui("ZodAny",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt()});function xxr(){return Y2r(cAt)}const lAt=ui("ZodUnknown",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt()});function t$(){return Z2r(lAt)}const uAt=ui("ZodNever",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>vkt(t,s,c)});function ZLe(t){return Q2r(uAt,t)}const fAt=ui("ZodVoid",(t,n)=>{e2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt(t,s)});function wxr(t){return eSr(fAt,t)}const dAt=ui("ZodDate",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>xkt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(YI(c,d));const s=t._zod.bag;t.minDate=s.minimum?new Date(s.minimum):null,t.maxDate=s.maximum?new Date(s.maximum):null});function Txr(t){return tSr(dAt,t)}const pAt=ui("ZodArray",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check(qme(s,c)),t.nonempty=s=>t.check(qme(1,s)),t.max=(s,c)=>t.check(lkt(s,c)),t.length=(s,c)=>t.check(ukt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return mSr(pAt,t,n)}function Cxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const Tye=ui("ZodObject",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),Gu(t,"shape",()=>n.shape),t.keyof=()=>ed(Object.keys(t._zod.def.shape)),t.catchall=s=>t.clone({...t._zod.def,catchall:s}),t.passthrough=()=>t.clone({...t._zod.def,catchall:t$()}),t.loose=()=>t.clone({...t._zod.def,catchall:t$()}),t.strict=()=>t.clone({...t._zod.def,catchall:ZLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>OCt(t,s),t.safeExtend=s=>RCt(t,s),t.merge=s=>FCt(t,s),t.pick=s=>ICt(t,s),t.omit=s=>NCt(t,s),t.partial=(...s)=>MCt(tBe,t,s[0]),t.required=(...s)=>jCt(rBe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new Tye(s)}function Exr(t,n){return new Tye({type:"object",shape:t,catchall:ZLe(),...Jo(n)})}function kxr(t,n){return new Tye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Cye=ui("ZodUnion",(t,n)=>{CLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ALe(t,s,c,d),t.options=n.options});function AR(t,n){return new Cye({type:"union",options:t,...Jo(n)})}const _At=ui("ZodXor",(t,n)=>{Cye.init(t,n),o2r.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ALe(t,s,c,d),t.options=n.options});function Axr(t,n){return new _At({type:"union",options:t,inclusive:!1,...Jo(n)})}const mAt=ui("ZodDiscriminatedUnion",(t,n)=>{Cye.init(t,n),s2r.init(t,n)});function hAt(t,n,s){return new mAt({type:"union",options:n,discriminator:t,...Jo(s)})}const gAt=ui("ZodIntersection",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d)});function QLe(t,n){return new gAt({type:"intersection",left:t,right:n})}const yAt=ui("ZodTuple",(t,n)=>{BEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Hme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new yAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Eye=ui("ZodRecord",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,...Jo(s)})}function Dxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Eye({type:"record",keyType:c,valueType:n,...Jo(s)})}function Pxr(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const vAt=ui("ZodMap",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(kLe(...s)),t.size=(...s)=>t.check(ckt(...s))});function Ixr(t,n,s){return new vAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const bAt=ui("ZodSet",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s),t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(kLe(...s)),t.size=(...s)=>t.check(ckt(...s))});function Nxr(t,n){return new bAt({type:"set",valueType:t,...Jo(n)})}const rQ=ui("ZodEnum",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>wkt(t,c,d),t.enum=n.entries,t.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));t.extract=(c,d)=>{const m={};for(const g of c)if(s.has(g))m[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})},t.exclude=(c,d)=>{const m={...n.entries};for(const g of c)if(s.has(g))delete m[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})}});function ed(t,n){const s=Array.isArray(t)?Object.fromEntries(t.map(c=>[c,c])):t;return new rQ({type:"enum",entries:s,...Jo(n)})}function Oxr(t,n){return new rQ({type:"enum",entries:t,...Jo(n)})}const SAt=ui("ZodLiteral",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Pg(t,n){return new SAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const xAt=ui("ZodFile",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s,c),t.min=(s,c)=>t.check(tQ(s,c)),t.max=(s,c)=>t.check(kLe(s,c)),t.mime=(s,c)=>t.check(lSr(Array.isArray(s)?s:[s],c))});function Rxr(t){return hSr(xAt,t)}const wAt=ui("ZodTransform",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new bLe(t.constructor.name);s.addIssue=m=>{if(typeof m=="string")s.issues.push(QB(m,s.value,n));else{const g=m;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=s.value),g.inst??(g.inst=t),s.issues.push(QB(g))}};const d=n.transform(s.value,s);return d instanceof Promise?d.then(m=>(s.value=m,s)):(s.value=d,s)}});function eBe(t){return new wAt({type:"transform",transform:t})}const tBe=ui("ZodOptional",(t,n)=>{$Et.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>DLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new tBe({type:"optional",innerType:t})}const TAt=ui("ZodExactOptional",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>DLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function CAt(t){return new TAt({type:"optional",innerType:t})}const EAt=ui("ZodNullable",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Bkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Kme(t){return new EAt({type:"nullable",innerType:t})}function Fxr(t){return Gme(Kme(t))}const kAt=ui("ZodDefault",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>qkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function AAt(t,n){return new kAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const DAt=ui("ZodPrefault",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>zkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function PAt(t,n){return new DAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const rBe=ui("ZodNonOptional",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function IAt(t,n){return new rBe({type:"nonoptional",innerType:t,...Jo(n)})}const NAt=ui("ZodSuccess",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Mxr(t){return new NAt({type:"success",innerType:t})}const OAt=ui("ZodCatch",(t,n)=>{S2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Vkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function RAt(t,n){return new OAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const FAt=ui("ZodNaN",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s)});function jxr(t){return rSr(FAt,t)}const nBe=ui("ZodPipe",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ukt(t,s,c,d),t.in=n.in,t.out=n.out});function Xme(t,n){return new nBe({type:"pipe",in:t,out:n})}const iBe=ui("ZodCodec",(t,n)=>{nBe.init(t,n),qEt.init(t,n)});function Lxr(t,n,s){return new iBe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const MAt=ui("ZodReadonly",(t,n)=>{T2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Jkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function jAt(t){return new MAt({type:"readonly",innerType:t})}const LAt=ui("ZodTemplateLiteral",(t,n)=>{C2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s,c)});function Bxr(t,n){return new LAt({type:"template_literal",parts:t,...Jo(n)})}const BAt=ui("ZodLazy",(t,n)=>{A2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Hkt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function $At(t){return new BAt({type:"lazy",getter:t})}const qAt=ui("ZodPromise",(t,n)=>{k2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Wkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function $xr(t){return new qAt({type:"promise",innerType:t})}const zAt=ui("ZodFunction",(t,n)=>{E2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s)});function lht(t){return new zAt({type:"function",input:Array.isArray(t?.input)?Hme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const kye=ui("ZodCustom",(t,n)=>{D2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s)});function qxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function ZI(t,n){return gSr(kye,t??(()=>!0),n)}function VAt(t,n={}){return ySr(kye,t,n)}function UAt(t){return vSr(t)}const zxr=SSr,Vxr=xSr;function Uxr(t,n={}){const s=new kye({type:"custom",check:"custom",fn:c=>c instanceof t,abort:!0,...Jo(n)});return s._zod.bag.Class=t,s._zod.check=c=>{c.value instanceof t||c.issues.push({code:"invalid_type",expected:t.name,input:c.value,inst:s,path:[...s._zod.def.path??[]]})},s}const Jxr=(...t)=>wSr({Codec:iBe,Boolean:KLe,String:ILe},...t);function Wxr(t){const n=$At(()=>AR([bo(t),fu(),my(),aAt(),Gd(n),wD(bo(),n)]));return n}function JAt(t,n){return Xme(eBe(t),n)}const Ugn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:cAt,ZodArray:pAt,ZodBase64:ULe,ZodBase64URL:JLe,ZodBigInt:XLe,ZodBigIntFormat:YLe,ZodBoolean:KLe,ZodCIDRv4:zLe,ZodCIDRv6:VLe,ZodCUID:FLe,ZodCUID2:MLe,ZodCatch:OAt,ZodCodec:iBe,ZodCustom:kye,ZodCustomStringFormat:hee,ZodDate:dAt,ZodDefault:kAt,ZodDiscriminatedUnion:mAt,ZodE164:WLe,ZodEmail:NLe,ZodEmoji:OLe,ZodEnum:rQ,ZodExactOptional:TAt,ZodFile:xAt,ZodFunction:zAt,ZodGUID:Wme,ZodIPv4:$Le,ZodIPv6:qLe,ZodIntersection:gAt,ZodJWT:HLe,ZodKSUID:BLe,ZodLazy:BAt,ZodLiteral:SAt,ZodMAC:nAt,ZodMap:vAt,ZodNaN:FAt,ZodNanoID:RLe,ZodNever:uAt,ZodNonOptional:rBe,ZodNull:sAt,ZodNullable:EAt,ZodNumber:GLe,ZodNumberFormat:j$,ZodObject:Tye,ZodOptional:tBe,ZodPipe:nBe,ZodPrefault:DAt,ZodPromise:qAt,ZodReadonly:MAt,ZodRecord:Eye,ZodSet:bAt,ZodString:ILe,ZodStringFormat:j_,ZodSuccess:NAt,ZodSymbol:iAt,ZodTemplateLiteral:LAt,ZodTransform:wAt,ZodTuple:yAt,ZodType:Lu,ZodULID:jLe,ZodURL:wye,ZodUUID:aD,ZodUndefined:oAt,ZodUnion:Cye,ZodUnknown:lAt,ZodVoid:fAt,ZodXID:LLe,ZodXor:_At,_ZodString:PLe,_default:AAt,_function:lht,any:xxr,array:Gd,base64:oxr,base64url:sxr,bigint:gxr,boolean:my,catch:RAt,check:qxr,cidrv4:nxr,cidrv6:ixr,codec:Lxr,cuid:KSr,cuid2:XSr,custom:ZI,date:Txr,describe:zxr,discriminatedUnion:hAt,e164:axr,email:BSr,emoji:HSr,enum:ed,exactOptional:CAt,file:Rxr,float32:pxr,float64:_xr,function:lht,guid:$Sr,hash:dxr,hex:fxr,hostname:uxr,httpUrl:WSr,instanceof:Uxr,int:oRe,int32:mxr,int64:yxr,intersection:QLe,ipv4:exr,ipv6:rxr,json:Wxr,jwt:cxr,keyof:Cxr,ksuid:QSr,lazy:$At,literal:Pg,looseObject:kxr,looseRecord:Pxr,mac:txr,map:Ixr,meta:Vxr,nan:jxr,nanoid:GSr,nativeEnum:Oxr,never:ZLe,nonoptional:IAt,null:aAt,nullable:Kme,nullish:Fxr,number:fu,object:Pa,optional:Gme,partialRecord:Dxr,pipe:Xme,prefault:PAt,preprocess:JAt,promise:$xr,readonly:jAt,record:wD,refine:VAt,set:Nxr,strictObject:Exr,string:bo,stringFormat:lxr,stringbool:Jxr,success:Mxr,superRefine:UAt,symbol:bxr,templateLiteral:Bxr,transform:eBe,tuple:Hme,uint32:hxr,uint64:vxr,ulid:YSr,undefined:Sxr,union:AR,unknown:t$,url:JSr,uuid:qSr,uuidv4:zSr,uuidv6:VSr,uuidv7:USr,void:wxr,xid:ZSr,xor:Axr},Symbol.toStringTag,{value:"Module"})),uht={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Jgn(t){$S({customError:t})}function Wgn(){return $S().customError}var fht;fht||(fht={});const dht=ed(["mock","live"]),Hxr=Pa({id:bo().min(1),name:bo().min(1),status:ed(["free","trialing","active","past_due","cancelling"]),interval:ed(["month","year"]).optional(),renewsAt:bo().datetime().optional(),endsAt:bo().datetime().optional()}),Gxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Kxr=Pa({overageEnabled:my(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:my(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Xxr=Pa({id:bo().min(1),kind:ed(["threshold","auto_reload_succeeded","auto_reload_failed"]),message:bo().min(1),createdAt:bo().datetime(),readAt:bo().datetime().optional()}),Yxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Zxr=Pa({name:bo().min(1),verified:my(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Qxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Zxr).max(50)}),ewr=Pa({id:bo().min(1),occurredAt:bo().datetime(),kind:ed(["inference","generation","workspace","storage","relay","deployment"]),provider:bo().min(1),operation:bo().optional(),credits:fu().nonnegative(),state:ed(["reserved","settled","released"]),externalId:bo().optional()});ed(["free","creator","max","ultra"]);const twr=Pa({plans:Pa({free:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()}),creator:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()}),max:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()}),ultra:Pa({name:bo().min(1),includedCredits:fu().int().nonnegative(),monthlyPriceUsd:fu().nonnegative().optional()})}),creditPacks:wD(bo().min(1),Pa({name:bo().min(1),credits:fu().int().positive(),expiresInDays:fu().int().positive().optional()}))}),rwr=hAt("authenticated",[Pa({authenticated:Pg(!1),backend:dht}),Pa({authenticated:Pg(!0),backend:dht,user:Yxr,organizations:Gd(Qxr).max(100).optional(),plan:Hxr,credits:Gxr,spendPolicy:Kxr,alerts:Gd(Xxr).max(100).optional(),entitlements:Pa({generation:my(),dailyJobs:fu().int().positive().optional()})})]),nwr=ed(["auto","mock","managed","byok"]),WAt=ed(["fal","tripo","worldlabs","openrouter"]),iwr=Pa({enabled:my(),provider:Pg("openrouter"),model:bo().trim().min(1).max(256)}),owr=ed(["environment","system","session","none"]),swr=Pa({provider:WAt,label:bo().min(1),environmentVariable:bo().min(1),configured:my(),source:owr,editable:my(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),awr=Pa({provider:WAt,ok:Pg(!0),testedAt:bo().datetime()});function cwr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const Aye=QLe(rwr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Pg(!0),managed:my(),byok:my(),byokProviders:Gd(bo().min(1))}),preferredRoute:nwr,providerCredentials:Gd(swr),codingInference:iwr}));function lwr(t,n){return`${t}: this origin answered with its page fallback (${n||"no content-type"}) rather than JSON, so no editor server handled the request.`}function of(t,n){const s=t.headers.get("content-type")??"";if(!s.includes("application/json"))throw new Error(lwr(n,s))}function EN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return EN(t,n),await t.json()}const pht="volter.collaboration.participant.v1",uwr="volter.collaboration.remote-share.v1",sRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function fwr(){if(sRe?.participantId)return sRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(pht);if(n)return n;globalThis.localStorage?.setItem(pht,t)}catch{}return t}const HAt=fwr(),L$=(()=>{try{return globalThis.localStorage?.getItem(uwr)==="1"}catch{return!1}})(),dwr=sRe?.displayName||"Local editor",pwr=Symbol.for("volter.collaboration.revision"),aRe=globalThis[pwr]??={value:0};function GAt(t){Number.isInteger(t)&&t>=aRe.value&&(aRe.value=t)}function Dw(){return{participantId:HAt,expectedRevision:aRe.value}}const _wr={authenticated:!1,backend:"mock",accountEnvironment:"test-mock",routes:{mock:!0,managed:!1,byok:!1,byokProviders:[]},preferredRoute:"auto",providerCredentials:[],codingInference:{enabled:!1,provider:"openrouter",model:"z-ai/glm-5.2"}};let r$=_wr,KAt=0,cRe=null;const lRe=new Set;function lR(t,n=null){if(!(cRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,cRe=n,KAt++;for(const s of lRe)s()}}async function XAt(t,n){of(t,n);const s=await t.json();if(!t.ok)throw new Error(typeof s.error=="string"?String(s.error):`Account request failed (${t.status}).`);return Aye.parse(s)}async function NC(t,n,s){const c=await fetch(t,{method:n,...s===void 0?{}:{headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}}),d=await XAt(c,`${n} ${t} failed`);return lR(d),d}function oBe(){return r$}function sBe(){return cwr(r$)}function lN(){return KAt}function Tpe(){return cRe}function Dye(t){return lRe.add(t),()=>lRe.delete(t)}async function _ht(){try{const t=await XAt(await fetch("/__editor/account"),"Account read failed");return lR(t),t}catch(t){throw lR(r$,t instanceof Error?t.message:String(t)),t}}const mwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),hwr=t=>NC("/__editor/account/twin-session","POST",{email:t}),gwr=()=>NC("/__editor/account/session","DELETE"),ywr=t=>NC("/__editor/account/spend-policy","PUT",t),vwr=()=>NC("/__editor/account/alerts/read","POST"),bwr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),Swr=t=>NC("/__editor/account/coding-inference","PUT",t);async function xwr(t){const n=await fetch("/__editor/account/coding-inference/quote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});of(n,"Coding quote failed");const s=await n.json();if(!n.ok||typeof s.model!="string"||typeof s.promptTokens!="number"||typeof s.outputTokens!="number"||typeof s.providerAmountUsd!="number"||typeof s.estimatedCredits!="number")throw new Error(typeof s.error=="string"?s.error:"Coding quote failed.");return s}const wwr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),Twr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function Cwr(t){const n=await fetch(`/__editor/account/provider-credentials/${encodeURIComponent(t)}/test`,{method:"POST"});of(n,"Credential test failed");const s=await n.json();if(!n.ok)throw new Error(typeof s.error=="string"?s.error:`Credential test failed (${n.status}).`);return awr.parse(s)}const mht=t=>NC("/__editor/account/plan","PUT",{action:t});async function YAt(t,n){const s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","Idempotency-Key":crypto.randomUUID()},body:JSON.stringify(n)});of(s,"Checkout failed");const c=await s.json();if(!s.ok||!c.account)throw new Error(typeof c.error=="string"?c.error:"Checkout failed.");return lR(Aye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const Ewr=t=>YAt("/__editor/account/checkout",{plan:t}),kwr=t=>YAt("/__editor/account/credits",{packId:t});async function Awr(){const t=await fetch("/__editor/account/usage");of(t,"Usage failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Usage failed.");return ewr.array().parse(n.entries??[])}async function Dwr(){const t=await fetch("/__editor/account/catalog");of(t,"Catalog failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Catalog failed.");return twr.parse(n)}async function Pwr(){const t=await fetch("/__editor/account/billing-portal",{method:"POST"});of(t,"Billing portal failed");const n=await t.json();if(!t.ok||typeof n.url!="string")throw new Error(typeof n.error=="string"?n.error:"Billing portal failed.");return{url:n.url,mock:n.mock===!0}}async function Iwr(){const t=await fetch("/__editor/account/authorization-methods");of(t,"Sign-in methods are unavailable");const n=await t.json();if(!t.ok||n.browser!==!0||typeof n.device!="boolean")throw new Error(typeof n.error=="string"?n.error:"Sign-in methods are unavailable.");return{browser:!0,device:n.device}}async function Nwr(){const t=await fetch("/__editor/account/browser-authorization",{method:"POST"});of(t,"Sign-in failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Sign-in failed.");return n}async function Owr(t){const n=await fetch(`/__editor/account/browser-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}async function Rwr(){const t=await fetch("/__editor/account/device-authorization",{method:"POST"});of(t,"Sign-in failed");const n=await t.json();if(!t.ok)throw new Error(typeof n.error=="string"?n.error:"Sign-in failed.");return n}async function Fwr(t){const n=await fetch(`/__editor/account/device-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}function Mwr(){if(L$)return()=>{};const t=new URLSearchParams(window.location.search).get("checkout_id");t?NC("/__editor/account/checkout/confirm","POST",{checkoutId:t}).then(()=>{const s=new URL(window.location.href);s.searchParams.delete("checkout"),s.searchParams.delete("checkout_id"),window.history.replaceState(null,"",`${s.pathname}${s.search}${s.hash}`)}).catch(s=>lR(r$,s instanceof Error?s.message:String(s))):_ht().catch(()=>{});const n=window.setInterval(()=>void _ht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function ZAt(t){return t?e3t(t)?null:t:null}function jwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function QAt(t){return t&&e3t(t)?t:null}function e3t(t){return t.keyedBy==="display"}const Hgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:QAt,nodeKeyedPhysics:ZAt,physicsOwnerOf:jwr},Symbol.toStringTag,{value:"Module"})),Lwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},aBe=Object.keys(Lwr);function Bwr(){const t={};for(const n of aBe)t[n]=0;return t}const $wr={provenance:!0,selection:!0,transforms:!0,inspector:!0,assetSubject:!0,related:!0,instances:!0,structure:!0,persistence:!0,pickable:!0,rects:!0,boxEdit:!0,text:!0,colorSample:!0,stories:!0,truth:!0,spatialHandles:!0,assetDrop:!0,subscribe:!0},cBe=Object.keys($wr);function qwr(t){const n={};for(const s of cBe)n[s]=t[s]!==void 0;return n}const Ggn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:cBe,WRITE_ANCHOR_KINDS:aBe,emptyWriteAnchorKindCounts:Bwr,measureAuthoringProviders:qwr},Symbol.toStringTag,{value:"Module"})),zwr=["claim","shape","operation","effect","round-trip"],Yme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function t3t(t,n){return Yme[t]>=Yme[n]}function nQ(t){const{seam:n,subject:s,epoch:c,required:d}=t;if(t.notApplicable!==void 0)return{seam:n,subject:s,epoch:c,required:d,state:"not-applicable",receipt:null,detail:t.notApplicable};let m=null;for(const g of t.receipts)g.seam!==n||g.subject!==s||g.epoch!==c||(!m||Yme[g.stage]>=Yme[m.stage])&&(m=g);return m?m.outcome==="fail"?{seam:n,subject:s,epoch:c,required:d,state:"failed",receipt:m,detail:m.detail}:m.outcome==="absent"?{seam:n,subject:s,epoch:c,required:d,state:"absent",receipt:m,detail:m.detail}:t3t(m.stage,d)?{seam:n,subject:s,epoch:c,required:d,state:"verified",receipt:m,detail:m.detail}:{seam:n,subject:s,epoch:c,required:d,state:"unverified",receipt:m,detail:`${m.detail}; this proves ${m.stage}, but this seam requires ${d}`}:{seam:n,subject:s,epoch:c,required:d,state:"unverified",receipt:null,detail:`no current-epoch evidence has reached the required ${d} stage`}}class r3t{#e=[];record(n){if(!n.seam||!n.subject||!n.epoch||!n.detail.trim())throw new Error("seam evidence requires non-empty seam, subject, epoch, and detail");this.#e.push(n)}receipts(n){return this.#e.filter(s=>(n?.subject===void 0||s.subject===n.subject)&&(n?.epoch===void 0||s.epoch===n.epoch))}verdict(n){return nQ({...n,receipts:this.#e})}clearSubject(n){for(let s=this.#e.length-1;s>=0;s-=1)this.#e[s]?.subject===n&&this.#e.splice(s,1)}clear(){this.#e.length=0}}function Ip(){return t=>t}function Vwr(t){if(t.value===void 0)return{seam:t.seam,subject:t.subject,epoch:t.epoch,stage:"shape",outcome:t.optional?"absent":"fail",source:"shape-check",detail:t.optional?`${t.seam} is not exposed by this subject`:`${t.seam} is required by the contract but is absent`};const n=typeof t.value,s=t.kind==="function"?n==="function":n!=="function";return{seam:t.seam,subject:t.subject,epoch:t.epoch,stage:"shape",outcome:s?"pass":"fail",source:"shape-check",detail:s?`${t.seam} has the contract's ${t.kind} shape`:`${t.seam} is ${n}; the contract requires a ${t.kind}`}}function vB(t){const n=[],s=t.value!==null&&(typeof t.value=="object"||typeof t.value=="function")?t.value:null,c=Object.entries(t.shape);for(const[d,m]of c){const g=`${t.prefix}.${d}`,S=s?.[d];n.push(Vwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Zme(t){const n=nQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=nQ({seam:`${t.seam}.${s}`,subject:t.subject,epoch:t.epoch,required:c.required,receipts:t.receipts});if(!(c.optional&&d.state==="absent")){if(d.state==="failed"||d.state==="absent")return{...n,state:"failed",receipt:d.receipt,detail:`${t.seam} is malformed: ${d.detail}`};if(d.state!=="verified")return{...n,state:"unverified",detail:`${t.seam} has the required shape, but ${d.seam} is unverified: ${d.detail}`}}}return n}const Kgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:zwr,SeamEvidenceLedger:r3t,defineSeamShape:Ip,gradeSeamCarrier:Zme,gradeSeamEvidence:nQ,inspectSeamShape:vB,seamStageAtLeast:t3t},Symbol.toStringTag,{value:"Module"})),XY=Ip()({capabilities:{optional:!1,kind:"value",required:"shape"},provenance:{optional:!0,kind:"value",required:"shape"},hierarchy:{optional:!1,kind:"value",required:"operation"},selection:{optional:!0,kind:"value",required:"effect"},transforms:{optional:!0,kind:"value",required:"effect"},inspector:{optional:!0,kind:"value",required:"effect"},assetSubject:{optional:!0,kind:"value",required:"operation"},related:{optional:!0,kind:"value",required:"operation"},instances:{optional:!0,kind:"value",required:"effect"},structure:{optional:!0,kind:"value",required:"round-trip"},persistence:{optional:!0,kind:"value",required:"round-trip"},pickable:{optional:!0,kind:"value",required:"operation"},rects:{optional:!0,kind:"value",required:"operation"},boxEdit:{optional:!0,kind:"value",required:"effect"},text:{optional:!0,kind:"value",required:"effect"},colorSample:{optional:!0,kind:"value",required:"operation"},stories:{optional:!0,kind:"value",required:"effect"},truth:{optional:!0,kind:"value",required:"operation"},spatialHandles:{optional:!0,kind:"value",required:"effect"},assetDrop:{optional:!0,kind:"value",required:"round-trip"},subscribe:{optional:!0,kind:"function",required:"effect"}}),uRe=Ip()({roots:{optional:!1,kind:"function",required:"operation"},node:{optional:!1,kind:"function",required:"operation"},crossSurfaceStructureSignature:{optional:!0,kind:"function",required:"operation"},object3D:{optional:!0,kind:"function",required:"operation"},idForObject3D:{optional:!0,kind:"function",required:"operation"}}),n3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),i3t=Ip()({dimensions:{optional:!0,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},editability:{optional:!0,kind:"function",required:"operation"},beginEdit:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},endEdit:{optional:!1,kind:"function",required:"effect"},remove:{optional:!0,kind:"function",required:"round-trip"},sourceCommit:{optional:!0,kind:"value",required:"round-trip"}}),o3t=Ip()({properties:{optional:!1,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},preview:{optional:!0,kind:"function",required:"effect"},editability:{optional:!0,kind:"function",required:"operation"},remove:{optional:!0,kind:"function",required:"round-trip"}}),s3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),a3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),c3t=Ip()({describe:{optional:!1,kind:"function",required:"operation"},openComponent:{optional:!0,kind:"function",required:"effect"},revert:{optional:!1,kind:"function",required:"round-trip"},applyToComponent:{optional:!1,kind:"function",required:"round-trip"}}),l3t=Ip()({create:{optional:!1,kind:"function",required:"round-trip"},remove:{optional:!1,kind:"function",required:"round-trip"},duplicate:{optional:!1,kind:"function",required:"round-trip"},duplicateMany:{optional:!0,kind:"function",required:"round-trip"},reparent:{optional:!1,kind:"function",required:"round-trip"},reorder:{optional:!0,kind:"function",required:"round-trip"},creatableKinds:{optional:!0,kind:"function",required:"operation"},wrap:{optional:!0,kind:"function",required:"round-trip"},unwrap:{optional:!0,kind:"function",required:"round-trip"},group:{optional:!0,kind:"function",required:"round-trip"},ungroup:{optional:!0,kind:"function",required:"round-trip"},canUngroup:{optional:!0,kind:"function",required:"operation"},removeMany:{optional:!0,kind:"function",required:"round-trip"},copy:{optional:!0,kind:"function",required:"effect"},canCopy:{optional:!0,kind:"function",required:"operation"},cut:{optional:!0,kind:"function",required:"round-trip"},paste:{optional:!0,kind:"function",required:"round-trip"},canPaste:{optional:!0,kind:"function",required:"operation"}}),u3t=Ip()({isDirty:{optional:!1,kind:"function",required:"operation"},lastError:{optional:!0,kind:"function",required:"operation"},save:{optional:!1,kind:"function",required:"round-trip"},destination:{optional:!1,kind:"value",required:"shape"},applyExternal:{optional:!0,kind:"function",required:"effect"}}),f3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),d3t=Ip()({storiesFor:{optional:!1,kind:"function",required:"operation"},active:{optional:!1,kind:"function",required:"operation"},apply:{optional:!1,kind:"function",required:"effect"},isolate:{optional:!0,kind:"function",required:"effect"},title:{optional:!0,kind:"value",required:"shape"},unavailable:{optional:!0,kind:"function",required:"operation"}}),p3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),_3t=Ip()({rect:{optional:!1,kind:"function",required:"operation"},contextRects:{optional:!0,kind:"function",required:"operation"},emptyContainers:{optional:!0,kind:"function",required:"operation"},frame:{optional:!0,kind:"function",required:"operation"}}),m3t=Ip()({begin:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},end:{optional:!1,kind:"function",required:"effect"},gizmoOrigin:{optional:!0,kind:"function",required:"operation"},referencePoint:{optional:!0,kind:"function",required:"operation"}}),h3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),g3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),y3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),v3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),fRe={selection:n3t,transforms:i3t,inspector:o3t,assetSubject:s3t,related:a3t,instances:c3t,structure:l3t,persistence:u3t,pickable:f3t,rects:_3t,boxEdit:m3t,text:h3t,colorSample:g3t,stories:d3t,truth:y3t,spatialHandles:v3t,assetDrop:p3t},Xgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:p3t,ASSET_SUBJECT_PROVIDER_SHAPE:s3t,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:fRe,BOX_EDIT_PROVIDER_SHAPE:m3t,COLOR_SAMPLE_PROVIDER_SHAPE:g3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:c3t,HIERARCHY_PROVIDER_SHAPE:uRe,INSPECTOR_PROVIDER_SHAPE:o3t,PERSISTENCE_PROVIDER_SHAPE:u3t,PICK_PROVIDER_SHAPE:f3t,RECT_PROVIDER_SHAPE:_3t,RELATED_SUBJECTS_PROVIDER_SHAPE:a3t,SELECTION_PROVIDER_SHAPE:n3t,SPATIAL_HANDLES_PROVIDER_SHAPE:v3t,STORIES_PROVIDER_SHAPE:d3t,STRUCTURE_PROVIDER_SHAPE:l3t,TEXT_PROVIDER_SHAPE:h3t,TRANSFORM_PROVIDER_SHAPE:i3t,TRUTH_PROVIDER_SHAPE:y3t},Symbol.toStringTag,{value:"Module"})),dRe=Ip()({physics:{optional:!0,kind:"value",required:"effect"},networking:{optional:!0,kind:"value",required:"operation"},navigation:{optional:!0,kind:"value",required:"operation"},audio:{optional:!0,kind:"value",required:"effect"},camera:{optional:!0,kind:"value",required:"effect"},debug:{optional:!0,kind:"value",required:"operation"},renderDebug:{optional:!0,kind:"value",required:"effect"}}),b3t=Ip()({keyedBy:{optional:!0,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"},debugDraw:{optional:!0,kind:"function",required:"operation"},setDebugDrawEnabled:{optional:!0,kind:"function",required:"effect"},contactPoints:{optional:!0,kind:"function",required:"operation"},colliders:{optional:!0,kind:"function",required:"operation"},previewCollider:{optional:!0,kind:"function",required:"effect"},joints:{optional:!0,kind:"function",required:"operation"},previewJointAnchor:{optional:!0,kind:"function",required:"effect"}}),S3t=Ip()({keyedBy:{optional:!1,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"}}),x3t=Ip()({peers:{optional:!1,kind:"function",required:"operation"},networkId:{optional:!1,kind:"function",required:"operation"},authority:{optional:!1,kind:"function",required:"operation"},editable:{optional:!1,kind:"function",required:"operation"},getConnectionState:{optional:!0,kind:"function",required:"operation"},getRoomInfo:{optional:!0,kind:"function",required:"operation"},getReplicationStats:{optional:!0,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"},getStateSnapshot:{optional:!0,kind:"function",required:"operation"},messageEvents:{optional:!0,kind:"function",required:"operation"},getRates:{optional:!0,kind:"function",required:"operation"},getConditioning:{optional:!0,kind:"function",required:"operation"},setConditioning:{optional:!0,kind:"function",required:"effect"},getServerConfig:{optional:!0,kind:"function",required:"operation"},getPlayerIdentity:{optional:!0,kind:"function",required:"operation"},setPlayerIdentity:{optional:!0,kind:"function",required:"effect"},getTrafficByType:{optional:!0,kind:"function",required:"operation"},sendMessage:{optional:!0,kind:"function",required:"effect"},getConditioningLimits:{optional:!0,kind:"function",required:"operation"},ping:{optional:!0,kind:"function",required:"effect"},inspectServer:{optional:!0,kind:"function",required:"operation"},disconnectClient:{optional:!0,kind:"function",required:"effect"},editServerState:{optional:!0,kind:"function",required:"effect"},deleteServerState:{optional:!0,kind:"function",required:"effect"},sendToClient:{optional:!0,kind:"function",required:"effect"},broadcast:{optional:!0,kind:"function",required:"effect"},disposeRoom:{optional:!0,kind:"function",required:"effect"},stateFieldType:{optional:!0,kind:"function",required:"operation"},clearTraffic:{optional:!0,kind:"function",required:"effect"},getTrafficByEntity:{optional:!0,kind:"function",required:"operation"},isRecording:{optional:!0,kind:"function",required:"operation"},setRecording:{optional:!0,kind:"function",required:"effect"}}),w3t=Ip()({hasNavMesh:{optional:!1,kind:"function",required:"operation"},findPath:{optional:!1,kind:"function",required:"effect"},debugMesh:{optional:!1,kind:"function",required:"operation"},bake:{optional:!0,kind:"function",required:"effect"},exportData:{optional:!0,kind:"function",required:"operation"},clear:{optional:!0,kind:"function",required:"effect"},crowdAgents:{optional:!0,kind:"function",required:"operation"}}),T3t=Ip()({resume:{optional:!0,kind:"function",required:"effect"},setMuted:{optional:!1,kind:"function",required:"effect"},isMuted:{optional:!1,kind:"function",required:"operation"},graphSnapshot:{optional:!0,kind:"function",required:"operation"},transportState:{optional:!0,kind:"function",required:"operation"},acquireMeters:{optional:!0,kind:"function",required:"effect"},acquireRecordingStream:{optional:!0,kind:"function",required:"effect"},renderOffline:{optional:!0,kind:"function",required:"operation"},audioEvents:{optional:!0,kind:"function",required:"operation"}}),C3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),E3t=Ip()({providers:{optional:!1,kind:"function",required:"operation"},state:{optional:!1,kind:"function",required:"operation"},stateAll:{optional:!1,kind:"function",required:"operation"},commands:{optional:!1,kind:"function",required:"operation"},invoke:{optional:!1,kind:"function",required:"effect"},events:{optional:!1,kind:"function",required:"operation"}}),k3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),A3t={networking:x3t,navigation:w3t,audio:T3t,camera:C3t,debug:E3t,renderDebug:k3t},Ygn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:T3t,CAMERA_ADAPTER_SHAPE:C3t,DEBUG_ADAPTER_SHAPE:E3t,NAVIGATION_ADAPTER_SHAPE:w3t,NETWORKING_ADAPTER_SHAPE:x3t,PHYSICS_2D_ADAPTER_SHAPE:S3t,PHYSICS_ADAPTER_SHAPE:b3t,RENDER_DEBUG_ADAPTER_SHAPE:k3t,SYSTEM_ADAPTERS_SHAPE:dRe,SYSTEM_PROVIDER_SHAPES:A3t},Symbol.toStringTag,{value:"Module"})),lBe=new r3t;function Uwr(t){lBe.record(t)}const hht=new WeakMap;let Jwr=1;function D3t(t){const n=hht.get(t);if(n)return n;const s=`system-${Jwr++}`;return hht.set(t,s),s}function Wwr(t){const n=t.epoch??D3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?QAt(t.adapter)?S3t:b3t:A3t[t.slot],m=[...vB({prefix:"system",value:c,shape:dRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...lBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Zme({seam:s,subject:t.subject,epoch:n,required:dRe[t.slot].required,receipts:m,shape:d})}let qS={},iQ=null,uBe=null;const Qme=new Set,ehe=new Set,pRe=new Set;let fBe=0;function _Re(){for(const t of pRe)t()}function the(t){if(t!==Iye())for(const n of Qme)n()}function rhe(t,n){const s=Oye();if(!(t===Nye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){fBe++;for(const c of ehe)c()}}const LS=new Map;let x_e=null,P3t=0;const mRe=new Set,dBe="";function I3t(t,n){const s=["physics","networking","navigation","audio","camera","debug","renderDebug"];for(const c of s){const d=t[c];if(!d)continue;const m=Wwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function QI(){return x_e!==null&&LS.has(x_e)?x_e:LS.keys().next().value??null}function nhe(){P3t++;for(const t of mRe)t()}function Hwr(t){const n=QI();if(x_e=t,n!==QI()){nhe(),fBe++;for(const s of Qme)s();for(const s of ehe)s()}}function Zgn(){return QI()}function Gwr(t){return mRe.add(t),()=>mRe.delete(t)}function Qgn(){return P3t}function Pye(){const t=QI();return(t===null?void 0:LS.get(t))??qS}function Kwr(t,n=dBe){const s=QI(),c=Iye(),d=Nye(),m=Oye();if(t){I3t(t,n),LS.set(n,t),qS=t,the(c),rhe(d,m),_Re(),s!==QI()&&nhe();return}LS.delete(n),qS=LS.values().next().value??{},the(c),rhe(d,m),_Re(),s!==QI()&&nhe()}function Xwr(){for(const t of[...LS.keys()])Kwr(null,t);Hwr(null)}function eyn(t,n=dBe){const s=Iye(),c=Nye(),d=Oye(),m=LS.get(n);I3t(t,n),LS.set(n,t),qS===m&&(qS=t),the(s),rhe(c,d),_Re(),QI()===n&&nhe()}function tyn(){return qS}function Ywr(t){return pRe.add(t),()=>pRe.delete(t)}function Zwr(){return[...LS.keys()]}function ght(t){const n=t.filter(d=>d!==dBe),s=t.length>n.length,c=n.map(d=>`"${d}"`);return s&&c.push("the unnamed default (address it with no id at all)"),c.join(", ")}class yht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Qwr(t){const n=Zwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new yht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${ght(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new yht(`${n.length} instances are live (${ght(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function ryn(){return ZAt(qS.physics)}function eTr(){return qS.camera??null}function Iye(){return qS.networking??uBe??null}function tTr(){return Pye().networking??uBe??null}function rTr(t){return Qme.add(t),()=>Qme.delete(t)}function nyn(t){const n=Iye();uBe=t,the(n)}function iyn(){return qS.debug??null}function oyn(t){const n=Nye(),s=Oye();iQ=t,rhe(n,s)}function Nye(){return qS.audio??iQ}function nTr(){return Pye().audio??iQ}function iTr(t){return ehe.add(t),()=>ehe.delete(t)}function oTr(){return fBe}function Oye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&iQ&&t.add(iQ),[...t]}function sTr(){return qS.renderDebug??null}function syn(){return Pye().renderDebug??null}let N3t=null;const hRe=new Set;function ayn(t){N3t=t;for(const n of hRe)n()}function Rye(){return N3t?.()??null}function Fye(t){hRe.add(t);const n=Gwr(t);return()=>{hRe.delete(t),n()}}function uN(){const t=Rye();return t?`play:${t.instanceId}`:"stopped"}function Mye(t,n){let s=!1,c=[];const d=()=>{s=!1;const g=c;c=[];for(let S=g.length-1;S>=0;S--)g[S]()};return{ensure(g){if(!s){s=!0;try{g(S=>c.push(S))}catch(S){throw d(),S}}},reset:d}}let wO=[],aTr=0,O3t=0;const gRe=new Set;function vht(){O3t++;for(const t of gRe)t()}function R3t(t){return gRe.add(t),()=>{gRe.delete(t)}}function bht(){return O3t}function Z4(t){if(wO.some(s=>s.contribution.id===t.id))throw new Error(`registerWorkspaceStatus: id "${t.id}" is already registered — status ids key status-bar slots, so they must be unique; unregister the previous contribution first.`);const n={contribution:t,seq:aTr++};return wO=[...wO,n],vht(),()=>{wO.includes(n)&&(wO=wO.filter(s=>s!==n),vht())}}function yRe(t){const n=s=>[...wO].filter(c=>(c.contribution.align??"left")===s).sort((c,d)=>(c.contribution.order??0)-(d.contribution.order??0)||c.seq-d.seq).map(c=>c.contribution);return t?n(t):[...n("left"),...n("right")]}let w_e=null,F3t=0;const vRe=new Set;function Sht(){F3t++;for(const t of vRe)t()}function M3t(t){return vRe.add(t),()=>vRe.delete(t)}function bRe(){return F3t}function pBe(){return w_e}function cTr(t){const n=Symbol(t.documentId);return w_e={...t,token:n},Sht(),()=>{w_e?.token===n&&(w_e=null,Sht())}}function lTr(){Ye.useSyncExternalStore(M3t,bRe);const t=pBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const uTr=Mye();function fTr(){uTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:lTr}))})}fTr();let bB=null,j3t=0;const SRe=new Set;function xht(){j3t+=1;for(const t of SRe)t()}function dTr(t){return SRe.add(t),()=>{SRe.delete(t)}}function wht(){return j3t}function pTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},xht(),()=>{bB?.token===s&&(bB=null,xht())}}function xRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const fN=new Map,wRe=new Map;function L3t(){typeof window>"u"||window.parent===window||fN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...fN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&L3t()});let Nc=null,_Be=null;function mBe(){if(typeof window>"u")return!1;const t=window.__VOLTER_VIEWPORT_TIMINGS__;if(t===!0||t==="1")return!0;try{return new URLSearchParams(window.location.search).get("volterTimings")==="1"}catch{return!1}}function B3t(t,n,s){return{documentId:t,visibilityState:typeof document>"u"?"unavailable":document.visibilityState,startedAtMs:n,reactActiveAtMs:null,boardBuildStartedAtMs:null,boardReadyAtMs:null,constructStartedAtMs:null,viewportReadyAtMs:null,rafResumeAtMs:null,firstRenderStartedAtMs:null,workspaceSyncMs:0,revealScheduleMs:0,componentIndexMs:0,componentIndexBusyMs:0,componentIndexWaitMs:0,candidateCollectMs:0,storyMountTotalMs:0,boundsMs:0,layoutMs:0,assembleMs:0,webglContextMs:0,rendererMs:0,adapterSetupMs:0,iblBakeMs:0,dressingMs:0,editorViewportMs:0,framingMs:0,resizeBindMs:0,viewportBindMs:0,firstRenderMs:0,candidateCount:0,exhibitCount:0,skippedCount:0,modulesAlreadyLoaded:s.modulesAlreadyLoaded===!0,stories:[]}}function _Tr(t){let n=0,s=0;for(const c of t)n+=Math.max(0,c.runtimeMs)+Math.max(0,c.fiberMs),s+=Math.max(0,c.loadMs)+Math.max(0,c.settleMs);return{busyMs:n,waitMs:s}}function mTr(t,n){const s=t.reactActiveAtMs===null?0:Math.max(0,t.reactActiveAtMs-t.startedAtMs),c=t.reactActiveAtMs??t.startedAtMs,d=t.boardBuildStartedAtMs,m=d===null?0:Math.max(0,d-c),g=t.boardReadyAtMs===null||t.constructStartedAtMs===null?0:Math.max(0,t.constructStartedAtMs-t.boardReadyAtMs),S=t.viewportReadyAtMs??t.rafResumeAtMs,k=t.firstRenderStartedAtMs??n,A=S===null?0:Math.max(0,k-S),F=S===null?Math.max(0,n-t.startedAtMs):Math.max(0,n-S),D=_Tr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=hTr({workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,componentIndexBusyMs:t.componentIndexBusyMs,componentIndexWaitMs:t.componentIndexWaitMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs}).reduce((pe,ue)=>pe+ue.ms,0),se=Math.max(0,n-t.startedAtMs);return{visibilityState:t.visibilityState,startedAtMs:t.startedAtMs,reactActiveAtMs:t.reactActiveAtMs,boardBuildStartedAtMs:t.boardBuildStartedAtMs,boardReadyAtMs:t.boardReadyAtMs,constructStartedAtMs:t.constructStartedAtMs,viewportReadyAtMs:t.viewportReadyAtMs,rafResumeAtMs:t.rafResumeAtMs,firstRenderStartedAtMs:t.firstRenderStartedAtMs,firstFrameAtMs:n,activationKind:J,workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs,firstPaintMs:F,unattributedMs:Math.max(0,se-G),accountedMs:G,candidateCount:t.candidateCount,exhibitCount:t.exhibitCount,skippedCount:t.skippedCount,modulesAlreadyLoaded:t.modulesAlreadyLoaded,stories:t.stories,storyDiscovery:_Be}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Cpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function Tht(t,n,s,c){const d=Math.max(0,n);let m=Math.max(0,s),g=Math.max(0,c);if(m+g>d){const S=d/(m+g);m*=S,g*=S}else m+g<d&&(g+=d-m-g);return{name:t,ms:d,busyMs:m,waitMs:g,kind:"mixed"}}function hTr(t){return[Cpe("workspace-sync",t.workspaceSyncMs),Cpe("reveal-schedule",t.revealScheduleMs),Tht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),Tht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Cpe("react-commit (board→viewport)",t.reactCommitMs),Yb("webgl-context",t.webglContextMs),Yb("renderer",t.rendererMs),Yb("adapter-setup",t.adapterSetupMs),Yb("ibl-bake (three PMREM)",t.iblBakeMs),Yb("dressing",t.dressingMs),Yb("editor-viewport",t.editorViewportMs),Yb("framing",t.framingMs),Yb("resize-bind",t.resizeBindMs),Yb("viewport-bind",t.viewportBindMs),Cpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function cyn(t,n=Date.now()){const s=(wRe.get(t)??0)+1;wRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:mTr(d,n)};return Nc=null,fN.set(t,m),Eht(),Cht(),m}return fN.set(t,c),Eht(),Cht(),c}let TRe=new Set;const CRe=new Set;function Cht(){L3t();for(const t of CRe)t()}function gTr(t){return CRe.add(t),()=>CRe.delete(t)}function Eht(){fN.size!==0&&$3t()}function $3t(){const t=TRe;TRe=new Set;for(const n of t)n()}let kht=!1;function yTr(){kht||typeof document>"u"||(kht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&$3t()}))}function jye(){return fN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(yTr(),new Promise(t=>TRe.add(t)))}function vTr(){return[...fN.values()]}function bTr(t){mBe()&&(Nc=B3t(t,Date.now(),{}))}function lyn(t,n={}){if(!mBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=B3t(t,s,n),Nc.boardBuildStartedAtMs=s}function uyn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function fyn(t,n,s){if(!Nc)return;const c=Math.max(0,n);switch(t){case"component-index":Nc.componentIndexMs=c,Nc.componentIndexBusyMs=Math.max(0,s?.busyMs??0),Nc.componentIndexWaitMs=Math.max(0,s?.waitMs??c);break;case"candidate-collect":Nc.candidateCollectMs=c;break;case"story-mounts":Nc.storyMountTotalMs=c;break;case"bounds":Nc.boundsMs=c;break;case"layout":Nc.layoutMs=c;break;case"assemble":Nc.assembleMs=c;break;case"webgl-context":Nc.webglContextMs=c;break;case"renderer":Nc.rendererMs=c;break;case"adapter-setup":Nc.adapterSetupMs=c;break;case"ibl-bake":Nc.iblBakeMs=c;break;case"dressing":Nc.dressingMs=c;break;case"editor-viewport":Nc.editorViewportMs=c;break;case"framing":Nc.framingMs=c;break;case"resize-bind":Nc.resizeBindMs=c;break;case"viewport-bind":Nc.viewportBindMs=c;break;case"first-render":Nc.firstRenderMs=c;break}}function dyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function pyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function _yn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function myn(t){Nc&&(t.candidateCount!==void 0&&(Nc.candidateCount=t.candidateCount),t.exhibitCount!==void 0&&(Nc.exhibitCount=t.exhibitCount),t.skippedCount!==void 0&&(Nc.skippedCount=t.skippedCount))}function hyn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function gyn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function yyn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function vyn(t){Nc&&Nc.stories.push(t)}function byn(){return Nc?.documentId??null}function STr(t){mBe()&&(_Be=t)}function xTr(){fN.clear(),wRe.clear(),Nc=null,_Be=null}const wTr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,i2=null,oQ=null,uR=null;function Aht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let q3t=0;const ERe=new Set,A5e=new Set,hBe=new Map,XO=new Map;function wC(){q3t++;for(const t of ERe)t()}function o2(t){return ERe.add(t),()=>{ERe.delete(t)}}function K1(){return q3t}function l0(){return hp}function Pp(){return i2}function kRe(){return oQ}function TTr(t,n){X0(t)&&oQ!==n&&(oQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===i2)??null}function sQ(t){if(t===i2)return;t&&bTr(t);const n=hp.find(c=>c.descriptor.id===i2);i2=t,oQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function CTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&kN(zk),zk=t)}function ND(t,n={}){const s=uR===t.id,c=s||n.activate!==!1,d=hp.find(g=>g.descriptor.id===t.id);if(CTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||i2===null)&&sQ(t.id),s&&Aht(t.id),wC(),t.id;let m=!1;return(d.descriptor.Toolbar!==t.Toolbar||d.descriptor.Shelf!==t.Shelf||d.descriptor.Content!==t.Content)&&(hp=hp.map(g=>{if(g!==d)return g;const{Toolbar:S,Shelf:k,...A}=g.descriptor;return{...g,descriptor:{...A,Content:t.Content,...t.Toolbar?{Toolbar:t.Toolbar}:{},...t.Shelf?{Shelf:t.Shelf}:{}}}}),m=!0),c&&i2!==t.id&&(sQ(t.id),m=!0),m&&wC(),s&&Aht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(sQ(t),wC()),!0):!1}function z3t(){uR=null}function ETr(t){if(X0(t)){uR=null;return}uR=t}function kN(t,n={}){if(A5e.has(t))return!1;const s=hp.findIndex(d=>d.descriptor.id===t);if(s<0)return!1;const c=hp[s];if(c.dirty&&!n.discardDirty)return!1;A5e.add(t);try{if(i2===t){const m=s>0?hp[s-1]:hp[s+1]??null;sQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),hBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{A5e.delete(t)}}function V3t(){if(hp.length===0&&i2===null)return;const t=hp;sQ(null),hp=[],oQ=null,zk=null,hBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function kTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function Syn(t){XO.has(t)&&wC()}async function ATr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=hBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function DTr(){return i2?ATr(i2):Promise.resolve(null)}function xyn(t,n){n&&zk===t&&(zk=null);const s=hp.findIndex(d=>d.descriptor.id===t);s<0||hp[s].dirty===n||(hp=hp.map(d=>d.descriptor.id===t?{...d,dirty:n}:d),wC())}function U3t(t,n){const s=hp.find(c=>c.descriptor.id===t);!s||s.title===n||(hp=hp.map(c=>c.descriptor.id===t?{...c,title:n}:c),wC())}function gBe(t){const n=hp.find(c=>c.descriptor.id===t),s=XO.get(t)??n?.descriptor.selection;if(!s)return null;try{return s()}catch{return null}}function Lye(){return i2?gBe(i2):null}const PTr={adapter:null,nodeId:null};function ITr(t){return JSON.stringify({id:t.id,title:t.title,hint:t.hint,kindLabel:t.kindLabel,note:t.note,sections:t.sections.map(n=>({id:n.id,title:n.title,order:n.order,description:n.description,defaultOpen:n.defaultOpen,testId:n.testId,keepMounted:n.keepMounted,railGroup:n.railGroup,bodyKind:n.body.kind})),quickActions:t.quickActions?.map(n=>({id:n.id,title:n.title,label:n.label,placement:n.placement,pressed:n.pressed,disabled:n.disabled}))})}function yBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return cTr({documentId:t,title:c,type:s,...m?{status:m}:{}})},[n,t,m,c,s]);const S=Ye.useRef(g);S.current=g,Ye.useEffect(()=>{if(n)return kTr(t,()=>S.current?.()??PTr)},[n,t]);const k={id:t,title:c,kindLabel:s,...m?{note:{text:m,testId:"asset-editor-status"}}:{},sections:d??[]},A=Ye.useRef(k);A.current=k;const F=ITr(k);return Ye.useEffect(()=>{if(n)return pTr(t,()=>A.current)},[n,t,F]),null}function NTr({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,fill:g=!1,selection:S,children:k}){return q.jsxs("section",{className:"volter-asset-editor","data-testid":`asset-editor:${s}`,"aria-label":`${c} Asset Editor`,children:[q.jsx(yBe,{documentId:t,active:n,type:s,title:c,sections:d,status:m,selection:S}),q.jsx("main",{className:`volter-asset-editor__viewport${g?" volter-asset-editor__viewport--fill":""}`,children:k})]})}const OTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:NTr,AssetEditorSubject:yBe},Symbol.toStringTag,{value:"Module"})),T_e=new Map,ARe=new Set;function Dht(){for(const t of ARe)t()}function wyn(t){const n=Object.entries(t);for(const[s,c]of n)T_e.set(s,c);return Dht(),()=>{for(const[s,c]of n)T_e.get(s)===c&&T_e.delete(s);Dht()}}function RTr(t){return T_e.get(t)??null}function FTr(t){return ARe.add(t),()=>{ARe.delete(t)}}function MTr(t){return q.jsx(yBe,{...t})}const Pht=new Map;function jTr(t){const n=Pht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>RTr(t),[]),m=Ye.useSyncExternalStore(FTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,Pht.set(t,s),s}const vBe=new Proxy(Object.freeze({AssetDocument:MTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):jTr(n)}}),Iht=Object.freeze({id:"classic",shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.6)",medium:"0 4px 12px rgba(0,0,0,0.5)",large:"0 8px 32px rgba(0,0,0,0.6)"}}),Ym=Object.freeze({id:"glass",color:{surface:{shell:"#12161f",panel:"rgba(255,255,255,0.06)",chrome:"rgba(255,255,255,0.10)",raised:"rgba(255,255,255,0.16)",inset:"rgba(10,14,22,0.38)",overlay:"rgba(255,255,255,0.08)"},boundary:{default:"rgba(255,255,255,0.22)",strong:"rgba(255,255,255,0.38)"},neutralOverlay:{hover:"color-mix(in srgb, currentColor 10%, transparent)",active:"color-mix(in srgb, currentColor 16%, transparent)"},scrim:"rgba(8,12,20,0.35)"},shape:{small:"4px",medium:"8px",large:"14px",full:"9999px"},elevation:{small:"0 4px 14px -6px rgba(0,0,0,0.45)",medium:"0 8px 24px -10px rgba(0,0,0,0.5)",large:"0 20px 46px -16px rgba(0,0,0,0.55), 0 4px 14px -6px rgba(0,0,0,0.35)"},treatment:{backdropBlurPx:1,backdropSaturation:1.15,edgeSpecular:.7,specularAngleDeg:120,refractionBezelPx:56,refractionThickness:1.25,textShadowOpacity:.72,contentFrostBlurPx:24,ambientLiftOpacity:.07,adaptiveContent:!0,brightTextShadowOpacity:0,brightFrostBg:"rgba(255,255,255,0.3)"},reducedTransparency:{surface:{shell:"#12161f",panel:"#33373e",chrome:"#3d4047",raised:"#4b4e55",inset:"#23272f",overlay:"#383b43"},scrim:"rgba(8,12,20,0.5)"}}),LTr=["classic","glass"],BTr=Object.freeze([{id:"classic",title:"Classic",description:"Opaque editor surfaces with conventional bars and panels."},{id:"glass",title:"Glass",description:"Adaptive clear material with refraction, frost, and floating chrome."}]),SB=new Map;let ihe=null;const ohe=new Set;function $Tr(){return ihe??=[...BTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ihe}function qTr(t){return ohe.add(t),()=>ohe.delete(t)}function zTr(t){if(Bye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),ihe=null;for(const n of ohe)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),ihe=null;for(const n of ohe)n()}}}function Bye(t){return typeof t=="string"&&(LTr.includes(t)||SB.has(t))}function VTr(t,n,s=!1){if(n!=="glass"){const d=SB.get(n);return{id:d?`${t.id}--${d.id}`:t.id,color:t.color,typography:t.typography,shape:d?.shape??Iht.shape,elevation:d?.elevation??Iht.elevation,...d?.density?{density:d.density}:{},...d?.stage?{stage:d.stage}:{},appearance:{material:"classic",transparency:"standard"}}}return{id:`${t.id}--${s?"glass-reduced":"glass"}`,color:{surface:s?Ym.reducedTransparency.surface:Ym.color.surface,boundary:Ym.color.boundary,content:t.color.content,accent:t.color.accent,semantic:t.color.semantic,neutralOverlay:Ym.color.neutralOverlay,scrim:s?Ym.reducedTransparency.scrim:Ym.color.scrim},typography:t.typography,shape:Ym.shape,elevation:Ym.elevation,appearance:{material:"glass",transparency:s?"reduced":"standard"},...s?{}:{treatment:Ym.treatment}}}const UTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},JTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Epe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function J3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Epe(t),alignItems:n?UTr[n]:void 0,justifyContent:s?JTr[s]:void 0,padding:Epe(c),paddingInline:Epe(d),paddingBlock:Epe(m),...g}}function gee(t,n){return n?`${t} ${n}`:t}function W3t({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-stack",t),style:J3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-inline",t),style:J3t(n)})}function Tyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:gee("volter-spacer",t)})}function WTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:gee("volter-divider",n)})}function HTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:gee("volter-actions",n),gap:2,align:"center",children:t})}function H3t(t,n){return n?`${t} ${n}`:t}const _p=Ye.forwardRef(function({as:n="span",variant:s="body",tone:c="primary",truncate:d=!1,selectable:m=!1,className:g,...S},k){const A=n;return q.jsx(A,{...S,ref:k,"data-variant":s,"data-tone":c,"data-truncate":d||void 0,"data-selectable":m||void 0,className:H3t("volter-text",g)})});function Cyn({className:t,...n}){return q.jsx("kbd",{...n,className:H3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function DRe({labelledBy:t,onDismiss:n,size:s="default",variant:c="default",className:d,...m}){const[g]=Ye.useState(()=>typeof document>"u"?null:document.querySelector(".volter-editor-theme")),S=Ye.useId(),k=q.jsx("div",{"data-volter-portal-content":g?S:void 0,className:"volter-dialog-scrim","data-variant":c,onPointerDown:A=>{A.target===A.currentTarget&&n?.()},children:q.jsx("div",{...m,role:"dialog","aria-modal":"true","aria-labelledby":t,"data-size":s,"data-variant":c,className:B$("volter-dialog",d)})});return g?q.jsxs(q.Fragment,{children:[q.jsx("span",{"data-volter-portal":S,style:{display:"none"}}),r2.createPortal(k,g)]}):k}function PRe({titleId:t,title:n,description:s}){return q.jsxs(W3t,{className:"volter-dialog-header",gap:2,children:[q.jsx(_p,{id:t,as:"h2",variant:"heading",children:n}),s&&q.jsx(_p,{as:"p",tone:"muted",children:s})]})}function G3t({className:t,...n}){return q.jsx(W3t,{...n,className:B$("volter-dialog-body",t)})}function IRe({children:t,className:n,...s}){return q.jsx(HTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function Eyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function kyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function Ayn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function Dyn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function bBe(t,n){return n?`${t} ${n}`:t}function GTr({className:t,...n}){return q.jsx("div",{...n,className:bBe("volter-field-group",t)})}function C_e({label:t,htmlFor:n,hint:s,compact:c=!1,className:d,children:m,...g}){return q.jsxs("div",{...g,"data-compact":c||void 0,className:bBe("volter-field-row",d),children:[q.jsx("label",{htmlFor:n,className:"volter-field-label",children:t}),q.jsx("div",{className:"volter-field-control",children:m}),s&&q.jsx("div",{className:"volter-field-hint",children:s})]})}function Pyn({className:t,...n}){return q.jsx("label",{...n,className:bBe("volter-field-label",t)})}const Iyn=Ye.forwardRef(function({selected:n=!1,accent:s="bar",className:c,type:d="button",...m},g){return q.jsx("button",{...m,ref:g,type:d,"data-selected":n||void 0,"data-accent":s,className:c?`volter-list-button ${c}`:"volter-list-button"})});function KTr({tone:t="neutral",icon:n,title:s,description:c,action:d,compact:m=!1,className:g,...S}){const k=t==="error"?"alert":t==="loading"||t==="success"?"status":void 0;return q.jsxs("div",{...S,role:S.role??k,"data-tone":t,"data-compact":m||void 0,className:g?`volter-state-surface ${g}`:"volter-state-surface",children:[n&&q.jsx("div",{className:"volter-state-surface-icon",children:n}),q.jsx("strong",{className:"volter-state-surface-title",children:s}),c&&q.jsx("div",{className:"volter-state-surface-description",children:c}),d&&q.jsx("div",{className:"volter-state-surface-action",children:d})]})}function $$(t,n){return n?`${t} ${n}`:t}function XTr({variant:t="panel",border:n=!1,scroll:s=!1,className:c,...d}){return q.jsx("div",{...d,"data-variant":t,"data-border":n||void 0,"data-scroll":s||void 0,className:$$("volter-surface",c)})}function Nyn({tone:t="info",icon:n,actions:s,className:c,children:d,...m}){return q.jsxs("div",{...m,role:t==="error"?"alert":"status","data-tone":t,className:$$("volter-banner",c),children:[n&&q.jsx("span",{className:"volter-banner-icon",children:n}),q.jsx("div",{className:"volter-banner-content",children:d}),s&&q.jsx("div",{className:"volter-banner-actions",children:s})]})}const Oyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Ryn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function Nht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function Fyn({orientation:t,label:n,valueNow:s,valueMin:c=0,valueMax:d=100,className:m,...g}){return q.jsx("div",{...g,role:"separator","aria-label":n,"aria-orientation":t,"aria-valuenow":s,"aria-valuemin":s===void 0?void 0:c,"aria-valuemax":s===void 0?void 0:d,"data-orientation":t,className:$$("volter-resize-handle",m)})}function K3t(t,n){return n?`${t} ${n}`:t}const Myn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:K3t("volter-tabs",n),onKeyDown:m=>{if(s?.(m),m.defaultPrevented||!["ArrowLeft","ArrowRight","Home","End"].includes(m.key))return;const g=Array.from(m.currentTarget.querySelectorAll('[role="tab"]:not(:disabled)'));if(g.length===0)return;m.preventDefault();const S=g.indexOf(document.activeElement);(m.key==="Home"?g[0]:m.key==="End"?g.at(-1):m.key==="ArrowRight"?g[(S+1+g.length)%g.length]:g[(S-1+g.length)%g.length])?.focus()}})}),jyn=Ye.forwardRef(function({selected:n=!1,dirty:s=!1,badge:c,className:d,type:m="button",tabIndex:g,children:S,...k},A){return q.jsxs("button",{...k,ref:A,type:m,role:"tab",tabIndex:g??(n?0:-1),"aria-selected":n,"data-selected":n||void 0,className:K3t("volter-tab",d),children:[s&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-tab-dirty",title:"Unsaved","aria-hidden":"true"}),q.jsx("span",{className:"volter-sr-only",children:"Unsaved"})]}),q.jsx("span",{className:"volter-tab-label",children:S}),c!==void 0&&q.jsx("span",{className:"volter-tab-badge",children:c})]})});function yee(t,n){return n?`${t} ${n}`:t}const n$=Ye.forwardRef(function({label:n,compact:s=!1,selectionMode:c="independent",className:d,...m},g){return q.jsx("div",{...m,ref:g,role:"toolbar","aria-label":n,"data-compact":s||void 0,"data-selection-mode":c,className:yee("volter-toolbar",d)})});function Oht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-toolbar-group",t)})}function Rht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:yee("volter-toolbar-divider",t.className)})}function Lyn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:yee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function Byn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-split-button",t)})}function X3t(t,n){return n?`${t} ${n}`:t}const $yn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:X3t("volter-tree",s)})}),qyn=Ye.forwardRef(function({level:n=1,selected:s=!1,expanded:c,muted:d=!1,dragging:m=!1,leading:g,actions:S,className:k,children:A,style:F,...D},J){return q.jsxs("div",{...D,ref:J,role:"treeitem",tabIndex:D.tabIndex??-1,"aria-level":n,"aria-selected":s,...c===void 0?{}:{"aria-expanded":c},"data-selected":s||void 0,"data-muted":d||void 0,"data-dragging":m||void 0,className:X3t("volter-tree-row",k),style:{paddingLeft:6+Math.max(0,n-1)*14,...F},children:[g&&q.jsx("span",{className:"volter-tree-row-leading",children:g}),q.jsx("span",{className:"volter-tree-row-label",children:A}),S&&q.jsx("span",{className:"volter-tree-row-actions",children:S})]})});function Y3t(t,n=8){const s=window.innerWidth,c=window.innerHeight,d=Math.max(n,s-t.width-n),m=Math.max(n,c-t.height-n);return{left:Math.min(Math.max(t.left,n),d),top:Math.min(Math.max(t.top,n),m)}}function $ye(t,n){return n?`${t} ${n}`:t}function NRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function YTr(t){NRe(t)[0]?.focus()}function Fht(t,n){if(!t)return!1;let s=n;for(;s;){if(t.contains(s))return!0;const d=((s instanceof Element?s:s.parentElement)?.closest("[data-volter-portal-content]")??null)?.getAttribute("data-volter-portal-content");if(!d)return!1;s=document.querySelector(`[data-volter-portal="${CSS.escape(d)}"]`)}return!1}const dN=Ye.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ye.useRef(null);return Ye.useImperativeHandle(k,()=>A.current),Ye.useEffect(()=>{c&&NRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!Fht(A.current,J)&&!Fht(d?.current??null,J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:$ye("volter-menu",n),onKeyDown:F=>{if(g?.(F),F.defaultPrevented)return;if(F.key==="Escape"){F.preventDefault(),m?.("escape");return}if(!["ArrowDown","ArrowUp","Home","End"].includes(F.key))return;F.preventDefault();const D=NRe(F.currentTarget);if(D.length===0)return;const J=D.indexOf(document.activeElement);F.key==="Home"?D[0]?.focus():F.key==="End"?D.at(-1)?.focus():F.key==="ArrowDown"?D[(J+1+D.length)%D.length]?.focus():D[(J-1+D.length)%D.length]?.focus()}})}),Jc=Ye.forwardRef(function({className:n,type:s="button",role:c="menuitem",onClick:d,onSelect:m,...g},S){return q.jsx("button",{...g,ref:S,type:s,role:c,className:$ye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:$ye("volter-menu-separator",t.className)})}const SBe=Ye.forwardRef(function({className:n,type:s="button",...c},d){return q.jsx("button",{...c,ref:d,type:s,"aria-haspopup":c["aria-haspopup"]??"menu",className:$ye("volter-menu-trigger",n)})});function she({children:t}){const n=Ye.useRef(null),[s,c]=Ye.useState(null),d=Ye.useId();return Ye.useLayoutEffect(()=>{c(n.current?.closest(".volter-editor-theme")??null)},[]),q.jsxs(q.Fragment,{children:[q.jsx("span",{ref:n,"data-volter-portal":d,style:{display:"none"}}),s?r2.createPortal(q.jsx("div",{"data-volter-portal-content":d,style:{display:"contents"},children:t}),s):null]})}function xBe({anchorRef:t,align:n="end",side:s="bottom",autoFocusFirst:c=!0,gap:d=4,clamp:m=!1,onDismiss:g,style:S,children:k,...A}){const[F,D]=Ye.useState(null),[J,$]=Ye.useState(null),G=Ye.useRef(null),se=Ye.useRef(!0),pe=Ye.useRef(!1),ue=Ye.useCallback(()=>{const Ae=t.current;if(!Ae||!F)return;const Pe=Ae.getBoundingClientRect(),be=F.getBoundingClientRect(),we=s==="right"||s==="left"?{left:s==="right"?Pe.right+d:Pe.left-d-be.width,top:Pe.top}:{left:n==="end"?Pe.right-be.width:Pe.left,top:s==="top"?Pe.top-d-be.height:Pe.bottom+d},qe=m?Y3t({...we,width:be.width,height:be.height}):we,bt=G.current;bt?.left===qe.left&&bt.top===qe.top||(G.current=qe,$(qe))},[n,t,m,d,F,s]);Ye.useLayoutEffect(()=>{const Ae=t.current;if(!Ae||!F)return;ue();let Pe=0;const be=()=>{ue(),Pe=requestAnimationFrame(be)};Pe=requestAnimationFrame(be),window.addEventListener("resize",ue),document.addEventListener("scroll",ue,!0);const X=typeof ResizeObserver>"u"?null:new ResizeObserver(ue);return X?.observe(Ae),X?.observe(F),()=>{const we=se.current&&F.contains(document.activeElement);window.removeEventListener("resize",ue),document.removeEventListener("scroll",ue,!0),cancelAnimationFrame(Pe),X?.disconnect(),we&&queueMicrotask(()=>t.current?.focus())}},[t,F,ue]),Ye.useLayoutEffect(()=>{!c||pe.current||!F||!J||(pe.current=!0,YTr(F))},[c,F,J]);const Ce=Ae=>{se.current=Ae!=="outside",g(),Ae==="escape"&&t.current?.focus()};return q.jsx(she,{children:q.jsx(dN,{...A,ref:D,dismissBoundaryRef:t,onDismiss:Ce,style:{...S,position:"fixed",left:J?.left??0,top:J?.top??0,visibility:J?S?.visibility:"hidden"},children:k})})}function zyn({label:t,children:n,gap:s=0,...c}){const[d,m]=Ye.useState(!1),g=Ye.useRef(null),S=Ye.useId(),k=F=>F instanceof Element&&(g.current?.contains(F)===!0||F.closest(`[data-volter-submenu="${S}"]`)!==null),A=F=>{k(F.relatedTarget)||m(!1)};return q.jsxs(q.Fragment,{children:[q.jsxs(Jc,{...c,ref:g,"aria-haspopup":"menu","aria-expanded":d,onPointerEnter:()=>m(!0),onPointerLeave:A,onClick:F=>{F.preventDefault(),m(!0)},onKeyDown:F=>{(F.key==="ArrowRight"||F.key==="Enter"||F.key===" ")&&(F.preventDefault(),m(!0)),F.key==="ArrowLeft"&&m(!1)},children:[q.jsx("span",{style:{flex:1},children:t}),q.jsx("span",{"aria-hidden":"true",style:{paddingInlineStart:"var(--volter-space-4)"},children:"▸"})]}),d&&q.jsx(xBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ye.forwardRef(function({variant:n="secondary",size:s="default",shape:c="default",className:d,type:m="button",...g},S){return q.jsx("button",{...g,ref:S,type:m,className:d?`volter-btn ${d}`:"volter-btn","data-variant":n,"data-size":s,"data-shape":c})}),pm=Ye.forwardRef(function({variant:n="ghost",visibleLabel:s,children:c,...d},m){return q.jsxs(Ms,{...d,ref:m,variant:n,"data-icon":"true","data-label-placement":s===void 0?void 0:"below",children:[c,s!==void 0&&q.jsx("span",{className:"volter-icon-button-label",children:s})]})}),PI={base:0,overlayLow:50,sticky:100,dropdown:1e3,toast:9999,modal:1e4},IG={0:"#1a1a1a",1:"#242424",2:"#2c2c2c",3:"#333333",inset:"#1e1e1e"},Mht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},ZTr="#579EFF",QTr="rgba(87,158,255,0.15)",D5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},wBe="#d8dee9",TBe="rgba(216,222,233,0.18)",Z3t="#FF6B6B",Q3t="#e0a030",e4t="#4caf50",t4t="rgba(76,175,80,0.15)",r4t="rgba(255,107,107,0.15)",n4t="rgba(224,160,48,0.12)",i4t="rgba(255,107,107,0.06)",o4t="rgba(0,0,0,0.5)",s4t="#ff79c6",a4t="rgba(255,121,198,0.08)",c4t="#22b8d6",qye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',zye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',P5e={sm:"0 2px 8px rgba(0,0,0,0.6)",md:"0 4px 12px rgba(0,0,0,0.5)",lg:"0 8px 32px rgba(0,0,0,0.6)"},CBe={0:"var(--volter-surface-shell)",1:"var(--volter-surface-panel)",2:"var(--volter-surface-chrome)",3:"var(--volter-surface-raised)",inset:"var(--volter-surface-inset)"},ahe={1:"var(--volter-boundary-default)",2:"var(--volter-boundary-strong)"},Zf={1:"var(--volter-content-primary)",2:"var(--volter-content-muted)",3:"var(--volter-content-dim)"},Vyn="var(--volter-accent)",Uyn="var(--volter-accent-muted)",Jyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},E_e="var(--volter-danger)",Wyn="var(--volter-warn)",Hyn="var(--volter-success)",Gyn="var(--volter-success-muted)",Kyn="var(--volter-danger-muted)",Xyn="var(--volter-warn-muted)",Yyn="var(--volter-danger-faint)",Zyn="var(--volter-scrim)",Qyn="var(--volter-dynamic)",e0n="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},l4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},EBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...eCr,...t.density?.control},font:{...rCr,...t.density?.font},icon:{...tCr,...t.density?.icon},chrome:{...l4t,...t.density?.chrome}}}const eCr={compact:20,default:24,comfortable:28},I5e={resting:1,active:2},tCr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},rCr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},k_e={regular:400,semibold:600,bold:700},kpe={tight:1,snug:1.2,normal:1.4,relaxed:1.5},NG={duration:{fast:140,base:180,slow:300},easing:{standard:"cubic-bezier(0.32, 0.72, 0.28, 1)",out:"ease-out"}},t0n="var(--volter-font-sans)",r0n="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},aQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},n0n={sm:"var(--volter-shadow-sm)",md:"var(--volter-shadow-md)",lg:"var(--volter-shadow-lg)"},YY={xs:"var(--volter-font-xs)",sm:"var(--volter-font-sm)",base:"var(--volter-font-base)",md:"var(--volter-font-md)",lg:"var(--volter-font-lg)",xl:"var(--volter-font-xl)","2xl":"var(--volter-font-2xl)",heading:"var(--volter-font-heading)"},G0={1:"var(--volter-space-1)",2:"var(--volter-space-2)",3:"var(--volter-space-3)",4:"var(--volter-space-4)",5:"var(--volter-space-5)",6:"var(--volter-space-6)",8:"var(--volter-space-8)",10:"var(--volter-space-10)",12:"var(--volter-space-12)"},jht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},i0n={duration:{fast:"var(--volter-duration-fast)",base:"var(--volter-duration-base)",slow:"var(--volter-duration-slow)"},easing:{standard:"var(--volter-ease-standard)",out:"var(--volter-ease-out)"}},o0n="var(--volter-focus-ring)",nCr=["outliner","properties"],Vye=Object.keys({object:!0,modifier:!0,material:!0,tool:!0,operator:!0,data:!0,scene:!0,collection:!0,select:!0}),i$={id:"graphite-dark",color:{surface:{shell:IG[0],panel:IG[1],chrome:IG[2],raised:IG[3],inset:IG.inset,overlay:"rgba(36,36,36,0.94)"},boundary:{default:Mht[1],strong:Mht[2]},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:ZTr,muted:QTr},semantic:{danger:Z3t,dangerMuted:r4t,dangerFaint:i4t,warning:Q3t,warningMuted:n4t,success:e4t,successMuted:t4t,dynamic:s4t,dynamicMuted:a4t,instance:c4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:o4t},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:P5e.sm,medium:P5e.md,large:P5e.lg}},iCr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:D5e[1],muted:D5e[2],dim:D5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:wBe,muted:TBe}}},oCr={id:"midnight-high-contrast",color:{surface:{shell:"#0b0f14",panel:"#111821",chrome:"#17212c",raised:"#223040",inset:"#080c11",overlay:"rgba(17,24,33,0.96)"},boundary:{default:"#34465a",strong:"#71869d"},content:{primary:"#f2f5f8",muted:"#bdc8d5",dim:"#8493a5",onAccent:"#071019",onBright:{primary:"#071019",muted:"rgba(7,16,25,0.82)",dim:"rgba(7,16,25,0.72)"}},accent:{default:"#65d1ff",muted:"rgba(101,209,255,0.18)"},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.18)",dangerFaint:"rgba(255,123,134,0.08)",warning:"#f3c969",warningMuted:"rgba(243,201,105,0.16)",success:"#62d394",successMuted:"rgba(98,211,148,0.18)",dynamic:"#e889ff",dynamicMuted:"rgba(232,137,255,0.12)",instance:"#a49bff"},neutralOverlay:{hover:"rgba(255,255,255,0.10)",active:"rgba(255,255,255,0.18)"},scrim:"rgba(0,0,0,0.68)"},typography:{sans:qye,mono:zye},shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.72)",medium:"0 6px 18px rgba(0,0,0,0.68)",large:"0 12px 40px rgba(0,0,0,0.76)"}},ORe={id:"glass-dark",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:"rgba(26,26,26,0.88)",panel:"rgba(36,36,36,0.62)",chrome:"rgba(44,44,44,0.68)",raised:"rgba(51,51,51,0.74)",inset:"rgba(30,30,30,0.7)",overlay:"rgba(36,36,36,0.55)"},boundary:{default:"rgba(255,255,255,0.14)",strong:"rgba(255,255,255,0.24)"},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:wBe,muted:TBe},semantic:{danger:Z3t,dangerMuted:r4t,dangerFaint:i4t,warning:Q3t,warningMuted:n4t,success:e4t,successMuted:t4t,dynamic:s4t,dynamicMuted:a4t,instance:c4t},neutralOverlay:{hover:"color-mix(in srgb, currentColor 9%, transparent)",active:"color-mix(in srgb, currentColor 14%, transparent)"},scrim:"rgba(0,0,0,0.35)"},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:"0 4px 16px rgba(0,0,0,0.55)",medium:"0 8px 28px rgba(0,0,0,0.5)",large:"0 16px 48px rgba(0,0,0,0.55)"},treatment:{backdropBlurPx:14,backdropSaturation:1.3,backdropBrightness:.5,edgeSpecular:.6,specularAngleDeg:120,thickness:.5}},sCr=(()=>{const{treatment:t,...n}=ORe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...ORe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:o4t}}})(),RRe={id:"liquid-glass",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:Ym.color.surface.shell,panel:Ym.color.surface.panel,chrome:Ym.color.surface.chrome,raised:Ym.color.surface.raised,inset:Ym.color.surface.inset,overlay:Ym.color.surface.overlay},boundary:Ym.color.boundary,content:{primary:"#f2f6fb",muted:"rgba(242,246,251,0.85)",dim:"rgba(242,246,251,0.68)",onAccent:"#0b1526",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:wBe,muted:TBe},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.22)",dangerFaint:"rgba(255,123,134,0.10)",warning:"#ffd35f",warningMuted:"rgba(255,211,95,0.18)",success:"#58e078",successMuted:"rgba(88,224,120,0.20)",dynamic:"#ff8fd8",dynamicMuted:"rgba(255,143,216,0.14)",instance:"#3ad2ea"},neutralOverlay:Ym.color.neutralOverlay,scrim:Ym.color.scrim},typography:{sans:qye,mono:zye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},aCr=(()=>{const{treatment:t,...n}=RRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...RRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),u4t={"graphite-dark":i$,"graphite-neutral":iCr,"midnight-high-contrast":oCr,"glass-dark":ORe,"glass-dark-lite":sCr,"liquid-glass":RRe,"liquid-glass-lite":aCr};function cCr(t){return typeof t=="string"&&Object.hasOwn(u4t,t)}const Go={surface:{shell:"var(--volter-surface-shell)",panel:"var(--volter-surface-panel)",chrome:"var(--volter-surface-chrome)",raised:"var(--volter-surface-raised)",inset:"var(--volter-surface-inset)",overlay:"var(--volter-surface-overlay)"},boundary:{default:"var(--volter-boundary-default)",strong:"var(--volter-boundary-strong)"},content:{primary:"var(--volter-content-primary)",muted:"var(--volter-content-muted)",dim:"var(--volter-content-dim)",onAccent:"var(--volter-content-on-accent)",active:"var(--volter-content-active)",selected:"var(--volter-content-selected)"},accent:{default:"var(--volter-accent)",muted:"var(--volter-accent-muted)"},selection:{background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},semantic:{danger:"var(--volter-danger)",dangerMuted:"var(--volter-danger-muted)",dangerFaint:"var(--volter-danger-faint)",warning:"var(--volter-warn)",warningMuted:"var(--volter-warn-muted)",success:"var(--volter-success)",successMuted:"var(--volter-success-muted)",dynamic:"var(--volter-dynamic)",dynamicMuted:"var(--volter-dynamic-muted)",instance:"var(--volter-instance)"},neutralOverlay:{hover:"var(--volter-neutral-hover)",active:"var(--volter-neutral-active)"},scrim:"var(--volter-scrim)",typography:{sans:"var(--volter-font-sans)",mono:"var(--volter-font-mono)"},shape:{small:"var(--volter-radius-sm)",medium:"var(--volter-radius-md)",large:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},elevation:{small:"var(--volter-shadow-sm)",medium:"var(--volter-shadow-md)",large:"var(--volter-shadow-lg)"},focusRing:"var(--volter-focus-ring)"};function lCr(t){const n=`<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1L5 5L9 1' stroke='${t}' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(n)}")`}function uCr(t){if(!t)return"none";const n=[];return t.backdropBlurPx&&n.push(`blur(${t.backdropBlurPx}px)`),t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&n.push(`saturate(${t.backdropSaturation})`),t.backdropBrightness!==void 0&&t.backdropBrightness!==1&&n.push(`brightness(${t.backdropBrightness})`),n.length>0?n.join(" "):"none"}function Lht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Bht(t){const n=t?.contentFrostBlurPx??0;if(n<=0)return"none";const s=[`blur(${n}px)`];return t?.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function FRe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function fCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function dCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function pCr(t,n){const d=[n==="none"?"":n,t?"inset 0 1px 0 color-mix(in srgb, currentColor 14%, transparent), 0 5px 14px -12px color-mix(in srgb, currentColor 55%, transparent)":""].filter(Boolean);return d.length===0?"none":d.join(", ")}const _Cr=.6,mCr=.5;function che(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/_Cr).toFixed(3)))})`}function f4t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.95)} 0%, ${c(.38)} 16%, ${c(.16)} 40%, ${c(.14)} 60%, ${c(.45)} 84%, ${c(.85)} 100%)`}function hCr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function gCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${che(.28,n)}`),c.push(`inset 0 -1px 1px ${che(.1,n)}`)),s>0){const d=m=>`${Number((m*s/mCr).toFixed(1))}px`;c.push(`inset 0 ${d(12)} ${d(24)} ${d(-14)} rgba(255,255,255,0.35)`),c.push(`inset 0 ${d(-14)} ${d(28)} ${d(-18)} rgba(0,0,0,0.55)`),c.push(`0 ${d(18)} ${d(40)} ${d(-18)} rgba(0,0,0,0.55)`)}else c.push("var(--volter-shadow-lg)");return c.join(", ")}function q$(t){return t.appearance?t.appearance.material==="glass":t.treatment!==void 0}function yCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function vCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function bCr(t){return t?"17px":"var(--volter-radius-md)"}function SCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function xCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function wCr(t,n){const s=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t.color.accent.default);if(!s)return null;const[c,d,m]=[s[1],s[2],s[3]].map(g=>Number.parseInt(g,16));return`rgba(${c},${d},${m},${n})`}function Uye(t){return q$(t)}function TCr(t){return Uye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function d4t(t){const n=t.trim().toLowerCase();if(n.startsWith("#"))return n.length===5?n.endsWith("f"):n.length===9?n.endsWith("ff"):!0;const s=/^rgba?\(([^)]*)\)$/.exec(n)??/^hsla?\(([^)]*)\)$/.exec(n);if(s){const c=(s[1]??"").split(/[,/]/)[3];return c===void 0||Number.parseFloat(c)>=1}return n!=="transparent"&&!n.includes("transparent")}function p4t(t){if(!d4t(t))return!1;const n=t.trim().toLowerCase();let s=null;const c=/^#([0-9a-f]{3}|[0-9a-f]{6})(?:f|ff)?$/.exec(n);if(c){const S=c[1].length===3?[...c[1]].map(k=>k+k).join(""):c[1];s=[0,2,4].map(k=>Number.parseInt(S.slice(k,k+2),16))}else{const S=/^rgba?\(([^)]*)\)$/.exec(n);S&&(s=(S[1]??"").split(/[,\s/]+/).filter(Boolean).slice(0,3).map(k=>k.endsWith("%")?Number.parseFloat(k)*2.55:Number.parseFloat(k)))}if(!s||s.some(S=>!Number.isFinite(S)))return!1;const[d,m,g]=s;return(.2126*d+.7152*m+.0722*g)/255>.5}function CCr(t){return Uye(t)?"var(--volter-content-primary)":d4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function ECr(t){return Uye(t)?"color-mix(in srgb, currentColor 30%, transparent)":p4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function kCr(t){return Uye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function ACr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function DCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":wCr(t,.82)??"var(--volter-accent)"}function PCr(t){const n=t?.edgeSpecular??0;return n<=0?"none":f4t({...t,edgeSpecular:n*.4})}function ICr(t){const n=t?.ambientLiftOpacity??0;if(n<=0)return"none";const s=Number(n.toFixed(3)),c=Number((n*.35).toFixed(3));return`linear-gradient(165deg, rgba(255,255,255,${s}) 0%, rgba(255,255,255,${c}) 55%, rgba(255,255,255,0) 100%)`}function _4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function m4t(t){return _4t(t?.textShadowOpacity??0)}function NCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:_4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??FRe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:m4t(t.treatment),frostBg:FRe(t.treatment)}}function OCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":FCr(t.color.surface.chrome,.9):t.color.surface.chrome}function RCr(t){return t.color.surface.panel}function FCr(t,n){const s=/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([0-9.]+)\s*\)$/.exec(t);if(!s)return t;const c=Math.max(Number(s[4]),n);return`rgba(${s[1]},${s[2]},${s[3]},${c})`}function $ht(t){if(!t)return"none";const s=[`blur(${Math.max(16,t.contentFrostBlurPx??0)}px)`];return t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function MCr(t){return t.color.boundary.area??t.color.boundary.default}function jCr(t,n){return`color-mix(in srgb, ${t} 98.4%, ${n})`}function OG(t){return`color-mix(in srgb, var(--volter-area-emboss-mix), ${t})`}function LCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function BCr(t){const n=NCr(t),s=q$(t),c=t.color.widget?.regular??t.color.surface.raised,d=t.color.widget?.menu??t.color.surface.raised,m=t.color.widget?.field??t.color.surface.inset,g=t.color.widget?.emboss?`0 1px 0 ${t.color.widget.emboss}`:"none",S=A=>`color-mix(in srgb, ${A} 87.8%, ${t.color.content.primary})`,k=`color-mix(in srgb, ${t.color.surface.panel} 86.5%, ${t.color.surface.raised})`;return{"--volter-surface-shell":t.color.surface.shell,"--volter-surface-panel":t.color.surface.panel,"--volter-surface-chrome":t.color.surface.chrome,"--volter-surface-raised":t.color.surface.raised,"--volter-surface-inset":t.color.surface.inset,"--volter-surface-overlay":t.color.surface.overlay,"--volter-surface-backdrop-filter":uCr(t.treatment),"--volter-surface-sticky":Lht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Lht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Bht(t.treatment),"--volter-content-frost-filter":Bht(t.treatment),"--volter-content-frost-bg":FRe(t.treatment),"--volter-input-surface":fCr(s),"--volter-input-border":dCr(s),"--volter-input-shadow":pCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":f4t(t.treatment),"--volter-card-specular-sheen":hCr(t.treatment),"--volter-card-specular-shadow":gCr(t.treatment),"--volter-card-refraction-thickness":String(t.treatment?.refractionThickness??0),"--volter-card-refraction-bezel":String(t.treatment?.refractionBezelPx??28),"--volter-card-refraction-angle":String(t.treatment?.specularAngleDeg??120),"--volter-ambient-lift":ICr(t.treatment),"--volter-island-surface":yCr(t),"--volter-island-backdrop-filter":vCr(t),"--volter-island-radius":bCr(s),"--volter-island-border-color":SCr(s),"--volter-island-shadow":xCr(s),"--volter-island-specular-ring":PCr(t.treatment),"--volter-selection-bg":TCr(t),"--volter-content-on-selection":CCr(t),"--volter-selection-border":ECr(t),"--volter-selection-indicator":kCr(t),"--volter-island-control-radius":ACr(s),"--volter-island-primary-bg":DCr(t),"--volter-content-text-shadow":m4t(t.treatment),"--volter-content-primary-on-bright":n.primary,"--volter-content-muted-on-bright":n.muted,"--volter-content-dim-on-bright":n.dim,"--volter-content-text-shadow-on-bright":n.textShadow,"--volter-content-frost-bg-on-bright":n.frostBg,"--volter-content-adaptive":t.treatment?.adaptiveContent?"1":"0","--volter-glass-regular-bg":OCr(t),"--volter-glass-regular-backdrop-filter":$ht(t.treatment),"--volter-glass-regular-panel-bg":RCr(t),"--volter-glass-regular-panel-backdrop-filter":$ht(t.treatment),"--volter-glass-dark-frost-panel-bg":"rgba(5,8,13,0.74)","--volter-glass-dark-frost-content-bg":"rgba(5,8,13,0.84)","--volter-scrim-backdrop-filter":t.treatment?"blur(8px)":"none","--volter-boundary-default":t.color.boundary.default,"--volter-boundary-strong":t.color.boundary.strong,"--volter-boundary-area":MCr(t),"--volter-tree-indent-guide":t.color.boundary.indent??"transparent","--volter-boundary-divider":t.color.boundary.divider??t.color.boundary.default,"--volter-area-emboss-mix":LCr(t),"--volter-area-emboss":OG(t.color.surface.panel),"--volter-area-emboss-stage":OG(OG(t.color.viewport?.background??t.color.surface.panel)),"--volter-area-emboss-stage-header":OG(OG(k)),"--volter-content-primary":t.color.content.primary,"--volter-content-muted":t.color.content.muted,"--volter-content-dim":t.color.content.dim,"--volter-content-on-accent":t.color.content.onAccent,"--volter-content-menu":t.color.content.menu??t.color.content.primary,"--volter-content-status":t.color.content.status??t.color.content.dim,"--volter-content-placeholder":t.color.content.placeholder??t.color.content.dim,"--volter-content-active":t.color.content.active??"","--volter-content-selected":t.color.content.selected??t.color.content.active??"","--volter-accent":t.color.accent.default,"--volter-accent-muted":t.color.accent.muted,"--volter-danger":t.color.semantic.danger,"--volter-danger-muted":t.color.semantic.dangerMuted,"--volter-danger-faint":t.color.semantic.dangerFaint,"--volter-warn":t.color.semantic.warning,"--volter-warn-muted":t.color.semantic.warningMuted,"--volter-success":t.color.semantic.success,"--volter-success-muted":t.color.semantic.successMuted,"--volter-dynamic":t.color.semantic.dynamic,"--volter-dynamic-muted":t.color.semantic.dynamicMuted,"--volter-instance":t.color.semantic.instance,"--volter-neutral-hover":t.color.neutralOverlay.hover,"--volter-neutral-active":t.color.neutralOverlay.active,"--volter-scrim":t.color.scrim,"--volter-surface-section":`color-mix(in srgb, ${t.color.surface.panel} 64.9%, ${t.color.surface.raised})`,"--volter-surface-section-edge":`color-mix(in srgb, ${t.color.surface.panel} 29.7%, ${t.color.surface.raised})`,"--volter-surface-header":k,"--volter-surface-row-alt":jCr(t.color.surface.panel,t.color.content.primary),...p4t(t.color.surface.panel)?{"--volter-tree-row-selected-bg":t.color.accent.muted,"--volter-tree-row-active-bg":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-row-active-border":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-datablock-fill":"color-mix(in srgb, var(--volter-category-data, currentColor) 14%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 14%, transparent)"}:{"--volter-tree-row-selected-bg":`color-mix(in srgb, ${t.color.accent.default} 42%, #000)`,"--volter-tree-row-active-bg":`color-mix(in srgb, ${t.color.accent.default} 70%, #000)`,"--volter-tree-row-active-border":"rgb(from var(--volter-tree-row-active-bg) calc(r + 40) calc(g + 40) calc(b + 40))","--volter-tree-datablock-fill":"color-mix(in srgb, color-mix(in srgb, var(--volter-category-data, currentColor) 60%, black) 26%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 24%, transparent)"},"--volter-tree-active-name-underline":t.color.content.active?"none":"underline","--volter-viewport-background":t.color.viewport?.background??"","--volter-viewport-grid":t.color.viewport?.grid??"","--volter-viewport-axis-x":t.color.viewport?.axisX??"","--volter-viewport-axis-y":t.color.viewport?.axisY??"","--volter-viewport-axis-z":t.color.viewport?.axisZ??"","--volter-viewport-wire":t.color.viewport?.wire??"","--volter-viewport-wire-opacity":Zb(t.stage?.wireOpacity),"--volter-viewport-axis-line-width":Zb(t.stage?.axisLineWidth),"--volter-viewport-selection":t.color.viewport?.selection??"","--volter-viewport-active":t.color.viewport?.active??"","--volter-gizmo-x":t.color.gizmo?.x??"","--volter-gizmo-y":t.color.gizmo?.y??"","--volter-gizmo-z":t.color.gizmo?.z??"","--volter-gizmo-navigation-x":t.color.gizmo?.navigationX??"","--volter-gizmo-navigation-y":t.color.gizmo?.navigationY??"","--volter-gizmo-navigation-z":t.color.gizmo?.navigationZ??"","--volter-gizmo-hover":t.color.gizmo?.hover??"","--volter-gizmo-drag":t.color.gizmo?.drag??"","--volter-viewport-gizmo-opacity":Zb(t.stage?.gizmoOpacity),"--volter-viewport-gizmo-arrow-length":Zb(t.stage?.gizmoArrowLength),"--volter-viewport-gizmo-arrow-head":Zb(t.stage?.gizmoArrowHead),"--volter-viewport-gizmo-ring-width":Zb(t.stage?.gizmoRingWidth),"--volter-viewport-navigation-gizmo":t.stage?.navigationGizmo??"","--volter-viewport-navigation-corner":t.stage?.navigationCorner??"","--volter-viewport-navigation-size":Zb(t.stage?.navigationSize),"--volter-viewport-gizmo-highlight-saturation":Zb(t.stage?.gizmoHighlightSaturation),"--volter-viewport-gizmo-highlight-value":Zb(t.stage?.gizmoHighlightValue),"--volter-viewport-gizmo-size":t.stage?.gizmoSize===void 0?"":`${t.stage.gizmoSize}`,"--volter-viewport-grid-line-width":Zb(t.stage?.gridLineWidth),"--volter-viewport-grid-major-width":Zb(t.stage?.gridMajorWidth),"--volter-viewport-grid-major-contrast":Zb(t.stage?.gridMajorContrast),"--volter-viewport-selection-box":t.stage?.selectionBox??"","--volter-viewport-selection-box-frame":t.stage?.selectionBoxFrame??"","--volter-viewport-outline-style":t.stage?.outlineStyle??"","--volter-viewport-outline-width":Zb(t.stage?.outlineWidth),"--volter-viewport-outline-hidden":t.stage?.outlineHidden===void 0?"":`${t.stage.outlineHidden}`,"--volter-viewport-selection-box-width":Zb(t.stage?.selectionBoxWidth),"--volter-viewport-chrome-bar":t.stage?.chrome?.bar??"","--volter-viewport-chrome-view-name":t.stage?.chrome?.viewName??"","--volter-viewport-chrome-tools":t.stage?.chrome?.tools??"","--volter-viewport-chrome-display":t.stage?.chrome?.display??"","--volter-viewport-chrome-transform-controls":t.stage?.chrome?.transformControls??"",...Object.fromEntries(EBe.map(A=>[`--volter-viewport-word-${A}`,t.stage?.words?.shading?.[A]??""])),"--volter-viewport-word-helpers":t.stage?.words?.helpers??"","--volter-widget-regular":c,"--volter-widget-regular-hover":S(c),"--volter-widget-menu":d,"--volter-widget-menu-hover":S(d),"--volter-widget-field":m,"--volter-widget-emboss-shadow":g,...Object.fromEntries(Vye.map(A=>[`--volter-category-${A}`,t.color.category?.[A]??"currentColor"])),"--volter-region-outliner":t.color.region?.outliner??t.color.surface.panel,"--volter-region-outliner-header":t.color.region?.outliner??t.color.surface.chrome,"--volter-region-properties":t.color.region?.properties??t.color.surface.panel,"--volter-region-properties-header":t.color.region?.properties??t.color.surface.chrome,"--volter-font-sans":t.typography.sans,"--volter-font-mono":t.typography.mono,"--volter-radius-sm":t.shape.small,"--volter-radius-md":t.shape.medium,"--volter-radius-lg":t.shape.large,"--volter-radius-full":t.shape.full,"--volter-shadow-sm":t.elevation.small,"--volter-shadow-md":t.elevation.medium,"--volter-shadow-lg":t.elevation.large,"--volter-focus-ring":`${I5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":lCr(t.color.content.muted),"--volter-space-1":`${R_[1]}px`,"--volter-space-2":`${R_[2]}px`,"--volter-space-3":`${R_[3]}px`,"--volter-space-4":`${R_[4]}px`,"--volter-space-5":`${R_[5]}px`,"--volter-space-6":`${R_[6]}px`,"--volter-space-8":`${R_[8]}px`,"--volter-space-10":`${R_[10]}px`,"--volter-space-12":`${R_[12]}px`,"--volter-command-bar-height":`${Qp(t).chrome.commandBar}px`,"--volter-panel-header-height":`${Qp(t).chrome.panelHeader}px`,"--volter-local-toolbar-height":`${Qp(t).chrome.localToolbar}px`,"--volter-tree-row-height":`${Qp(t).chrome.treeRow}px`,"--volter-tree-indent":`${Qp(t).chrome.treeIndent}px`,"--volter-status-bar-height":`${Qp(t).chrome.statusBar}px`,"--volter-tool-size":`${Qp(t).chrome.toolSize}px`,"--volter-tool-width":`${Qp(t).chrome.toolWidth}px`,"--volter-tool-gap":`${Qp(t).chrome.toolGap}px`,"--volter-area-seam-width":`${Qp(t).chrome.areaSeam}px`,"--volter-control-compact-height":`${Qp(t).control.compact}px`,"--volter-control-default-height":`${Qp(t).control.default}px`,"--volter-control-comfortable-height":`${Qp(t).control.comfortable}px`,"--volter-stroke-resting":`${I5e.resting}px`,"--volter-stroke-active":`${I5e.active}px`,"--volter-font-xs":`${Qp(t).font.xs}px`,"--volter-font-sm":`${Qp(t).font.sm}px`,"--volter-font-base":`${Qp(t).font.base}px`,"--volter-font-md":`${Qp(t).font.md}px`,"--volter-font-lg":`${Qp(t).font.lg}px`,"--volter-font-xl":`${Qp(t).font.xl}px`,"--volter-font-2xl":`${Qp(t).font["2xl"]}px`,"--volter-icon-xs":`${Qp(t).icon.xs}px`,"--volter-icon-sm":`${Qp(t).icon.sm}px`,"--volter-icon-md":`${Qp(t).icon.md}px`,"--volter-icon-lg":`${Qp(t).icon.lg}px`,"--volter-icon-xl":`${Qp(t).icon.xl}px`,"--volter-icon-2xl":`${Qp(t).icon["2xl"]}px`,"--volter-font-heading":`${Qp(t).font.heading}px`,"--volter-font-weight-regular":String(k_e.regular),"--volter-font-weight-semibold":String(k_e.semibold),"--volter-font-weight-bold":String(k_e.bold),"--volter-leading-tight":String(kpe.tight),"--volter-leading-snug":String(kpe.snug),"--volter-leading-normal":String(kpe.normal),"--volter-leading-relaxed":String(kpe.relaxed),"--volter-duration-fast":`${NG.duration.fast}ms`,"--volter-duration-base":`${NG.duration.base}ms`,"--volter-duration-slow":`${NG.duration.slow}ms`,"--volter-ease-standard":NG.easing.standard,"--volter-ease-out":NG.easing.out,"--volter-z-base":String(PI.base),"--volter-z-overlay-low":String(PI.overlayLow),"--volter-z-sticky":String(PI.sticky),"--volter-z-dropdown":String(PI.dropdown),"--volter-z-toast":String(PI.toast),"--volter-z-modal":String(PI.modal)}}const MRe="volter-editor-theme";function $Cr(t,n=i$){t.classList.add(MRe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(BCr(n)))t.style.setProperty(s,c)}const s0n={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},a0n={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},h4t=Ye.createContext(null);function qCr(){return Ye.useContext(h4t)}function DR(t,n){return n?`${t} ${n}`:t}const Zm=Ye.forwardRef(function({className:n,type:s="text",...c},d){return q.jsx("input",{...c,ref:d,type:s,className:DR("volter-input",n)})}),Iw=Ye.forwardRef(function({className:n,...s},c){return q.jsx("select",{...s,ref:c,className:DR("volter-select",n)})}),kBe=Ye.forwardRef(function({className:n,...s},c){return q.jsx("textarea",{...s,ref:c,className:DR("volter-input volter-textarea",n)})}),TD=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"checkbox",className:DR("volter-checkbox",n)})}),g4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),c0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),l0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",zCr={id:hC,title:"Editor"},wB=new Map;let lhe=null,cQ=hC;const jRe=new Set;function LRe(){for(const t of jRe)t()}function u0n(){return lhe??=[zCr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],lhe}function vee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function VCr(t){if(vee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),lhe=null,LRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),lhe=null,LRe())}}function uhe(){return cQ}function fhe(t){const n=vee(t)?t:hC;n!==cQ&&(cQ=n,LRe())}function ABe(t){return jRe.add(t),()=>jRe.delete(t)}function y4t(t){return cQ===hC?null:wB.get(cQ)?.glyphs[t]??null}const qht={xs:"var(--volter-icon-xs)",sm:"var(--volter-icon-sm)",md:"var(--volter-icon-md)",lg:"var(--volter-icon-lg)",xl:"var(--volter-icon-xl)","2xl":"var(--volter-icon-2xl)"},zht={current:void 0,primary:Go.content.primary,muted:Go.content.muted,dim:Go.content.dim,accent:Go.accent.default,danger:Go.semantic.danger};function dc({icon:t,size:n="sm",tone:s="current",label:c,className:d,style:m,spin:g=!1,...S}){Ye.useSyncExternalStore(ABe,uhe,uhe);const k=y4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?zht[s]:k.tonedPath?void 0:F,J=A?"currentColor":F??"currentColor";return q.jsxs("svg",{...S,viewBox:k.viewBox??"0 0 16 16","data-volter-tone":A?void 0:k.tone,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{width:"1.25em",height:"1em",overflow:"visible",verticalAlign:"-0.125em",fontSize:qht[n],color:D,...m},children:[q.jsx("path",{d:k.path,fill:"currentColor"}),k.tonedPath?q.jsx("path",{d:k.tonedPath,fill:J}):null]})}return q.jsx(a0r,{...S,icon:t,fixedWidth:!0,spin:g,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{fontSize:qht[n],color:zht[s],...m}})}function v4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?qTt:tCt,size:n,tone:s,...c?{style:c}:{}})}function f0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?MTt:_Le,size:n,tone:s})}function Eg(t,n){return{...n,iconName:t}}const Kk={action:{add:iCt,close:dLe,delete:LTt,search:jTt,refresh:svr,undo:JOe,redo:Omt,build:tvr,export:ovr,select:Rmt},transport:{play:B0r,pause:nvr,restart:Omt,stop:BTt,step:z0r},content:{project:VOe,folder:fee,file:HTt,source:mLe,scene:gLe,entity:aR,component:GB,camera:cye,light:lLe,image:iB,audio:pLe,data:$Tt,code:uLe,stateMachine:VTt},status:{success:fLe,info:R$,warning:dee,error:WTt,visible:cLe,hidden:hLe,locked:Fme,unlocked:UOe},viewport:{zoomIn:C0r,zoomOut:w0r,pan:F0r,frame:S0r,projection:Eg("viewport-projection",E5e),projectionOrthographic:Eg("viewport-orthographic",E5e),camera:Eg("viewport-camera",Nmt),cameraView:Eg("viewport-camera-view",Nmt),cameraLocked:Eg("viewport-camera-locked",Fme),cameraUnlocked:Eg("viewport-camera-unlocked",UOe),gizmos:Eg("viewport-gizmos",q0r)},modeling:{extrude:Eg("mesh-extrude",UTt),inset:Eg("mesh-inset",evr),bevel:Eg("mesh-bevel",avr),loopCut:Eg("mesh-loop-cut",E0r),knife:Eg("mesh-knife",X0r),smooth:Eg("mesh-smooth",x0r),shrinkFatten:Eg("mesh-shrink-fatten",GTt),subdivide:Eg("mesh-subdivide",$0r)},tool:{extension:GB,select:Eg("tool-select-box",Rmt),move:XTt,rotate:FTt,scale:Eg("tool-scale",A0r),transform:Eg("tool-transform",M0r),snap:L0r,frame:nCt,grid:E5e,profiler:eCt},panel:{outliner:Eg("outliner",sCt),properties:Eg("properties",YTt),"folder-open":VOe,"cubes-stacked":KTt,users:k0r,list:vZ,"rotate-left":JOe}};function SZ({value:t,onChange:n,onChangeEnd:s,step:c=.1,precision:d=3,disabled:m=!1,label:g,labelColor:S,style:k,testId:A,title:F}){const[D,J]=Ye.useState(!1),[$,G]=Ye.useState(""),se=Ye.useRef({startX:0,startVal:0,dragging:!1,gesture:!1,lastVal:0}),pe=Ye.useRef(null),ue=qCr();Ye.useEffect(()=>{if(!D)return;const we=pe.current;we&&(we.focus(),we.select())},[D]);const Ce=t===null,Ae=t??0,Pe=Ce?"—":Number.isFinite(Ae)?Ae.toFixed(d):0 .toFixed(d),be=we=>{if(m)return;se.current={startX:we.clientX,startVal:Ae,dragging:!1,gesture:!1,lastVal:Ae};const qe=Pt=>{const Wt=Pt.clientX-se.current.startX;if(Math.abs(Wt)>3&&(se.current.dragging=!0),se.current.dragging){se.current.gesture||(se.current.gesture=!0,ue?.begin());const zt=se.current.startVal+Wt*c,ft=Math.round(zt/c)*c;se.current.lastVal=ft,n(ft)}},bt=()=>{window.removeEventListener("pointermove",qe),window.removeEventListener("pointerup",bt),se.current.gesture&&ue?.end(),se.current.dragging?s?.(se.current.lastVal):(J(!0),G(Ce?"":Pe))};window.addEventListener("pointermove",qe),window.addEventListener("pointerup",bt)},X=()=>{J(!1);const we=Number.parseFloat($);Number.isFinite(we)&&(n(we),s?.(we))};return q.jsxs("div",{className:"volter-number-input","data-testid":A,title:F,style:k,children:[g&&q.jsx("span",{className:"volter-number-input-label",style:S?{color:S}:void 0,children:g}),D?q.jsx(Zm,{ref:pe,value:$,onChange:we=>G(we.target.value),onBlur:X,onKeyDown:we=>{we.key==="Enter"&&X(),we.key==="Escape"&&J(!1)},placeholder:Ce?"—":void 0,className:"volter-number-input-editor"}):q.jsx("div",{onPointerDown:be,className:"volter-number-input-scrub","data-mixed":Ce||void 0,"data-disabled":m||void 0,children:Pe})]})}const UCr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:k_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},JCr={...UCr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function Jye({name:t,actions:n,onHeaderClick:s,hideHeader:c=!1,style:d,children:m,...g}){return q.jsxs("div",{...g,style:{display:"flex",flexDirection:"column",pointerEvents:"auto",...d},children:[!c&&q.jsxs("div",{role:s?"button":void 0,tabIndex:s?0:void 0,onClick:s,onKeyDown:s?S=>{S.key==="Enter"&&s()}:void 0,style:{...JCr,cursor:s?"pointer":void 0,pointerEvents:"auto"},children:[q.jsx("span",{style:{flexShrink:0},children:t}),n&&q.jsx("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:R_[3]},children:n})]}),m]})}function WCr({label:t,icon:n,description:s,actions:c,collapsible:d=!0,defaultOpen:m=!0,children:g}){const[S,k]=Ye.useState(m),A=q.jsxs("span",{className:"volter-section-title",children:[q.jsx("span",{children:t}),s?q.jsx("small",{children:s}):null]});return q.jsxs("section",{className:"volter-section",children:[q.jsxs("div",{className:"volter-section-header",children:[d?q.jsxs("button",{type:"button",className:"volter-section-trigger","aria-expanded":S,onClick:()=>k(!S),children:[q.jsx(v4t,{direction:S?"down":"right",style:{fontSize:"var(--volter-section-disclosure-size, var(--volter-icon-xs))"}}),n&&q.jsx(dc,{icon:n,tone:"dim",className:"volter-section-glyph"}),A]}):q.jsxs("div",{className:"volter-section-trigger","data-volter-static":!0,children:[n&&q.jsx(dc,{icon:n,tone:"dim",className:"volter-section-glyph"}),A]}),c?q.jsx("div",{className:"volter-section-actions",children:c}):null]}),(S||!d)&&q.jsx("div",{className:"volter-section-body",children:g})]})}const zI=8,VI=6;function HCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function GCr(t,n,s){return t==="top"?n.top-s.height-VI>=zI:t==="bottom"?n.bottom+s.height+VI<=window.innerHeight-zI:t==="left"?n.left-s.width-VI>=zI:n.right+s.width+VI<=window.innerWidth-zI}function KCr(t,n,s){let c=n.left+(n.width-s.width)/2,d=n.top+(n.height-s.height)/2;return t==="top"?d=n.top-s.height-VI:t==="bottom"?d=n.bottom+VI:t==="left"?c=n.left-s.width-VI:c=n.right+VI,{left:Math.max(zI,Math.min(c,window.innerWidth-s.width-zI)),top:Math.max(zI,Math.min(d,window.innerHeight-s.height-zI)),ready:!0}}function hO({text:t,hotkey:n,children:s,position:c="bottom",delay:d=400}){const m=Ye.useId(),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef(null),A=Ye.useRef(!1),F=Ye.useRef(!1),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState({left:0,top:0,ready:!1});Ye.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ye.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const ue=()=>{k.current&&clearTimeout(k.current),k.current=null,J(!1)},Ce=()=>{!A.current&&!F.current&&ue()},Ae=be=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{pe(X=>({...X,ready:!1})),J(!0)},be)};Ye.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),we=S.current?.getBoundingClientRect();if(!X||!we)return;const qe=GCr(c,X,we)?c:HCr(c);pe(KCr(qe,X,we))};return be(),window.addEventListener("resize",be),window.addEventListener("scroll",be,!0),()=>{window.removeEventListener("resize",be),window.removeEventListener("scroll",be,!0)}},[n,c,t,D]);let Pe=s;if(Ye.isValidElement(s)){const be=[s.props["aria-describedby"],D?m:null].filter(Boolean).join(" ");Pe=Ye.cloneElement(s,be?{"aria-describedby":be}:{})}return q.jsxs("span",{ref:g,className:"volter-tooltip-anchor",onMouseEnter:()=>{A.current=!0,Ae(d)},onMouseLeave:()=>{A.current=!1,Ce()},onFocusCapture:()=>{F.current=!0,Ae(0)},onBlurCapture:be=>{be.currentTarget.contains(be.relatedTarget)||(F.current=!1,Ce())},children:[Pe,D&&$&&r2.createPortal(q.jsxs("div",{ref:S,id:m,role:"tooltip",className:"volter-tooltip",style:{left:se.left,top:se.top,visibility:se.ready?"visible":"hidden"},children:[q.jsx("span",{children:t}),n&&q.jsx("kbd",{children:n})]}),$)]})}function XCr({value:t,onChange:n,onAxisChange:s,step:c=.1,disabled:d=!1,testIdPrefix:m}){const g=k=>m?`${m}-${k}`:void 0,S=k=>A=>{if(s)s(k,A);else{const F=[t[0]??0,t[1]??0,t[2]??0];F[k]=A,n(F)}};return q.jsxs("div",{style:{display:"flex",gap:4},children:[q.jsx(SZ,{label:"X",labelColor:"#E06178",value:t[0],onChange:S(0),step:c,disabled:d,style:{flex:1},testId:g("x")}),q.jsx(SZ,{label:"Y",labelColor:"#C2ED66",value:t[1],onChange:S(1),step:c,disabled:d,style:{flex:1},testId:g("y")}),q.jsx(SZ,{label:"Z",labelColor:"#6BABF5",value:t[2],onChange:S(2),step:c,disabled:d,style:{flex:1},testId:g("z")})]})}const N5e={bg:Go.surface.panel,surface:Go.surface.chrome,surfaceHover:Go.surface.raised,border:Go.boundary.default,text:Go.content.primary,textMuted:Go.content.muted,onAccent:Go.content.onAccent,accent:Go.accent.default,neutralHover:Go.neutralOverlay.hover,radiusSmall:Go.shape.small,radiusMedium:Go.shape.medium,inputBg:Go.surface.inset,dynamic:Go.semantic.dynamic,dynamicBg:Go.semantic.dynamicMuted},d0n=Go.typography.sans,p0n=Go.typography.mono;function _0n(t,n){t.onChange(n)}function m0n(t,n){(t.onChangeEnd??t.onChange)(n)}const h0n={display:"flex",alignItems:"center",gap:4},g0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},YCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},ZCr=72;function y0n({label:t,active:n,disabled:s,onClick:c,testId:d}){return q.jsx(Ms,{variant:n?"primary":"secondary",size:"compact","aria-pressed":n,disabled:s,"data-testid":d,onClick:()=>{s||c()},style:{flex:1},children:t})}function v0n(t){const n=t.match(/^(-?\d+\.?\d*)\s*(px|em|rem|%|vh|vw|deg|s|ms)?$/);if(n)return{num:Number.parseFloat(n[1]??"0"),unit:n[2]||""};const s=Number.parseFloat(t);return{num:Number.isNaN(s)?0:s,unit:""}}const O5e=22,Vht={width:O5e,height:O5e,flex:`0 0 ${O5e}px`,borderRadius:N5e.radiusSmall,border:`1px solid ${N5e.border}`,background:N5e.inputBg,objectFit:"cover",backgroundImage:"linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%),linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%)",backgroundSize:"8px 8px",backgroundPosition:"0 0, 4px 4px"};function QCr({value:t,onChange:n,options:s,previewUrlFor:c,disabled:d,note:m,testId:g}){const S=t&&!s.includes(t)?[t,...s]:s;return q.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0,flex:1},children:[q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,minWidth:0},children:[t?q.jsx("img",{src:c(t),alt:"",style:Vht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:Vht,"aria-hidden":"true"}),q.jsxs(Iw,{"data-testid":g,disabled:d,value:t,title:t||"No texture assigned",onChange:k=>n(k.target.value),style:{flex:1,minWidth:0},children:[q.jsx("option",{value:"",children:"—"}),S.map(k=>q.jsx("option",{value:k,children:k},k))]}),q.jsx(pm,{"data-testid":`${g}-clear`,"aria-label":"Clear this texture slot",title:"Clear this texture slot",disabled:d||!t,onClick:()=>n(""),children:q.jsx(dc,{icon:dLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function BRe({value:t,onCommit:n,onKeyDown:s,onFocus:c,...d}){const[m,g]=Ye.useState(null),S=Ye.useRef(!1),k=()=>{!S.current&&m!==null&&m!==t&&n(m),S.current=!1,g(null)};return q.jsx(Zm,{...d,value:m??t,onFocus:A=>{g(t),c?.(A)},onChange:A=>g(A.target.value),onBlur:k,onKeyDown:A=>{A.key==="Enter"&&A.target.blur(),A.key==="Escape"&&(S.current=!0,A.target.blur()),s?.(A)}})}const A_e=new Map,$Re=new Set;let b4t=0,R5e=!1;function Uht(){R5e||(R5e=!0,queueMicrotask(()=>{R5e=!1,b4t+=1;for(const t of[...$Re])t()}))}function b0n(t,n){return A_e.set(t,n),Uht(),()=>{A_e.get(t)===n&&(A_e.delete(t),Uht())}}function DBe(t){return $Re.add(t),()=>$Re.delete(t)}function o$(){return b4t}function s2(t){return t?A_e.get(t)??null:null}const QL=new Map;function S0n(t){QL.set(t,(QL.get(t)??0)+1);let n=!1;return()=>{if(n)return;n=!0;const s=(QL.get(t)??0)-1;s>0?QL.set(t,s):QL.delete(t)}}function eEr(t){return(QL.get(t)??0)>0}const PR=1e4;async function CC(t,n=4e3){if(t())return!0;const s=performance.now();return new Promise(c=>{const d=()=>{t()?c(!0):performance.now()-s>=n?c(!1):setTimeout(d,25)};setTimeout(d,0)})}const xZ=new Map,TB=new Set,dhe=new Set,D_e=new Set;let S4t=0,F5e=!1;function qRe(){F5e||(F5e=!0,queueMicrotask(()=>{F5e=!1,S4t+=1;for(const t of[...TB])t()}))}function tEr(t,n){return xZ.set(t,n),qRe(),()=>{xZ.get(t)===n&&(xZ.delete(t),qRe())}}function rEr(t){xZ.has(t)&&qRe()}function nEr(t){return TB.add(t),()=>{TB.delete(t)}}function Jht(){return S4t}function lQ(t){return xZ.get(t)}function x4t(t,n=1e4){const s=lQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=lQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function w4t(t){dhe.add(t);for(const n of[...D_e])n();return()=>{dhe.delete(t)}}function T4t(t,n=1e4){return dhe.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{dhe.has(t)&&(clearTimeout(d),D_e.delete(c),s(!0))},d=setTimeout(()=>{D_e.delete(c),s(!1)},n);D_e.add(c)})}async function PBe(t){if(eEr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let zRe=null;const ZY=new Map;let YO=[];function iEr(t){if(zRe=t,!t)return;const n=YO;YO=[];for(const s of n)C4t(t,s)}function C4t(t,n){ZY.get(n.id)?.();const s=t.show(n),c=()=>{ZY.get(n.id)===c&&(ZY.delete(n.id),s(),n.onDismiss?.())};return ZY.set(n.id,c),c}let oEr=0;function s$(t){const n=t.id??`notification-${++oEr}`,s={...t,id:n};return zRe?C4t(zRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>IBe(n))}function IBe(t){const n=ZY.get(t);if(n){n();return}const s=YO.find(c=>c.id===t);s&&(YO=YO.filter(c=>c.id!==t),s.onDismiss?.())}let Xk={sessions:[],selectedSessionId:null,selectedSession:null,cursorMs:0,liveEdgeMs:0,loading:!0,error:null},phe=!0,Ape=null,P_e=null,RG=null,I_e=!1;const QY=new Set;function sEr(t,n,s){const c=t[0]??null;return c!==null&&n.length>0&&!n.some(m=>m.id===c.id)?{sessionId:c.id,latestAppeared:!0}:s&&t.some(m=>m.id===s)?{sessionId:s,latestAppeared:!1}:{sessionId:c?.id??null,latestAppeared:!1}}function _he(t){Xk=t;for(const n of QY)n()}async function aEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function cEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function lEr(){try{const t={sessions:await aEr()},n=sEr(t.sessions,Xk.sessions,P_e),s=n.sessionId;n.latestAppeared&&(phe=!0),P_e=s;const c=s?await cEr(s):null;if(P_e!==s){I_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=phe?m:Math.min(Xk.cursorMs,m);_he({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){_he({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function uQ(){return RG?(I_e=!0,RG):(RG=lEr().finally(()=>{RG=null,I_e&&(I_e=!1,uQ())}),RG)}function uEr(t){return QY.add(t),QY.size===1&&(uQ(),Ape=window.setInterval(()=>void uQ(),1e3)),()=>{QY.delete(t),QY.size===0&&Ape!==null&&(window.clearInterval(Ape),Ape=null)}}function fEr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(P_e=n.id,phe=!0,_he({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),uQ())}function dEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));phe=Xk.liveEdgeMs-n<250,_he({...Xk,cursorMs:n})}const E4t={getSnapshot:()=>Xk,subscribe:uEr,select:fEr,seek:dEr,refresh:uQ};let k4t=null;const VRe=new Set,x0n={getSnapshot:()=>k4t,subscribe(t){return VRe.add(t),()=>VRe.delete(t)}};function w0n(t){k4t=t;for(const n of VRe)try{n()}catch{}}let ZO={phase:null,at:0,run:0},pN=ZO;const URe=new Map;let A4t=null;function pEr(t){A4t=t,D4t(ZO)}function D4t(t){ZO=t;try{A4t?.(t)}catch{}}function fQ(){const t=[...URe.values()].at(-1),n=t?{...t,run:pN.run}:pN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||D4t(n)}function T0n(t=Date.now()){return pN={phase:null,at:t,run:pN.run+1},fQ(),ZO.run}function C0n(t,n=Date.now()){pN={phase:t,at:n,run:pN.run},fQ()}function E0n(t=Date.now()){pN={phase:null,at:t,run:pN.run},fQ()}function NBe(t,n=Date.now()){const s=Symbol();return URe.set(s,{phase:t.slice(0,160),at:n}),fQ(),()=>{URe.delete(s)&&fQ()}}const _Er=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-BBmwHCKA.js"),__vite__mapDeps([255,1,2,3,4,20,21,143,128,144,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class OBe extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){console.error(`[tools] ${this.props.file} crashed while rendering:`,n,s.componentStack)}render(){return this.state.error?q.jsxs("div",{style:{padding:R_[6],fontSize:"var(--volter-font-md)",color:Go.semantic.danger,maxWidth:640},children:[q.jsxs("div",{style:{fontWeight:600,marginBottom:R_[2]},children:["Tool crashed: ",q.jsx("code",{children:this.props.file})]}),q.jsx("div",{style:{whiteSpace:"pre-wrap"},children:String(this.state.error)}),q.jsx("div",{style:{color:Go.content.muted,marginTop:R_[3]},children:"The editor is fine — fix the tool file and save; it reloads in place."})]}):this.props.children}}function mEr({contribution:t,Component:n,documentId:s,active:c,document:d,accountRevision:m,playKey:g}){const S=Ye.useRef(null),[k,A]=Ye.useState(null),F=Ye.useRef(null),D=Ye.useRef(null),J=Ye.useRef(t.file);J.current=t.file;const $=Ye.useRef(s);return $.current=s,Ye.useEffect(()=>{const G=S.current;if(!G)return;let se=!1;A(null);const pe=(Ae,Pe)=>{if(se)return;const be=Ae instanceof Error?Ae:new Error(String(Ae));console.error(`[tools] ${J.current} crashed while rendering:`,be,Pe?.componentStack),A(be),$.current&&w4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=sLe.createRoot(ue,{onUncaughtError:pe});return F.current=Ce,()=>{se=!0,F.current=null,D.current?.(),D.current=null,queueMicrotask(()=>{Ce.unmount(),ue.remove()})}},[]),Ye.useEffect(()=>{const G=F.current;if(!G)return;A(null);const se={contributionId:t.id,client:e0e(),surfaces:vBe,account:sBe(),work:Ae=>{D.current?.(),D.current=Ae===null?null:NBe(`building ${Ae.replace(/^building /,"")}`)},notify:Ae=>s$({...Ae,id:`contribution:${t.id}:${Ae.title}`,...Ae.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:E4t}:{play:Rye()},...s?{documentId:s,publishContext:Ae=>tEr(s,Ae)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ye.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});let Ce=!1;return queueMicrotask(()=>{Ce||F.current!==G||G.render(s?Ye.createElement(hEr,{documentId:s},ue):ue)}),()=>{Ce=!0}},[m,c,t,n,s,d,g]),q.jsxs(q.Fragment,{children:[k?q.jsxs("div",{style:{padding:R_[6],color:Go.semantic.danger},children:["Tool crashed: ",q.jsx("code",{children:t.file}),q.jsx("div",{style:{whiteSpace:"pre-wrap",marginTop:R_[2]},children:String(k)})]}):null,q.jsx("div",{ref:S,style:{minHeight:0,width:"100%"}})]})}function hEr({documentId:t,children:n}){return Ye.useEffect(()=>w4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ye.useSyncExternalStore(Dye,lN,lN),g=Ye.useSyncExternalStore(Fye,uN,uN),S=t.point==="workspace.analytics"?"gameplay-sessions":g;return q.jsxs("div",{"data-testid":`tool-panel-${t.id}`,style:{flex:1,minHeight:0,overflow:t.point==="workspace.analytics"?"visible":"auto",color:Go.content.primary,display:"flex",flexDirection:"column"},children:[t.point==="workspace.analytics"?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(_Er,{})}):null,q.jsx(OBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(mEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function gEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Dye,lN,lN),Ye.useSyncExternalStore(Fye,uN,uN);const S=g?m.hierarchy.node(g):null;return q.jsx("div",{className:"volter-inspector-tool-section","data-testid":`inspector-tool-${t}`,children:q.jsx(OBe,{file:s,children:q.jsx(t1r,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:vBe,account:sBe(),play:Rye(),node:S,nodeId:g,adapter:m})})})})}const yEr=Symbol("volter.inspection.mixed");function JRe(t){return t===yEr}function RBe(t){return t.readonlyReason??"This field is read-only."}function FBe(t){return"column"}function MBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const WRe="preview",Wht="transform",M5e="properties",P4t="stories",k0n="story-args",A0n="Story Args";function Hht(t){return`group:${t}`}const I4t=100,vEr=1e3,dQ=2e3,N4t=3e3,bEr=4e3,SEr=5e3,xEr={nullSubjectId:null};function O4t(t){return"sections"in t}const N_e=[];let R4t=0;const HRe=new Set;function Ght(){R4t++;for(const t of HRe)t()}function wEr(t){return HRe.add(t),()=>{HRe.delete(t)}}function Kht(){return R4t}function F4t(t){return N_e.push(t),Ght(),()=>{const n=N_e.indexOf(t);n>=0&&(N_e.splice(n,1),Ght())}}function Xht(t,n,s=xEr){return N_e.filter(c=>c.match(t,n,s))}function M4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const TEr=1e3;class CEr{_entries=[];_listeners=new Set;_nextId=0;_version=0;_notifyScheduled=!1;_sink=null;setSink(n){this._sink=n}counts={info:0,warn:0,error:0};log(n,s){this._push("info",n,s)}warn(n,s){this._push("warn",n,s)}error(n,s){this._push("error",n,s)}logStructured(n,s,c,d,m){this._push(n,s,c,d,m)}clear(){this._entries=[],this.counts={info:0,warn:0,error:0},this._notify()}getEntries(){return this._entries}subscribe=n=>(this._listeners.add(n),()=>this._listeners.delete(n));getSnapshot=()=>this._version;_push(n,s,c,d,m){const g=this._entries[this._entries.length-1];if(g&&g.level===n&&g.message===s&&g.source===c&&g.metadata?.instanceId===m?.instanceId){g.count++,g.timestamp=Date.now(),this._sink?.(g),this._notify();return}const S={id:this._nextId++,timestamp:Date.now(),level:n,message:s,count:1};if(c&&(S.source=c),d&&(S.subsystem=d),m&&(S.metadata=m),this._entries.push(S),this.counts[n]++,this._sink?.(S),this._entries.length>TEr){const k=this._entries.shift();this.counts[k.level]=Math.max(0,this.counts[k.level]-1)}this._notify()}_notify(){this._version++,!this._notifyScheduled&&(this._notifyScheduled=!0,queueMicrotask(()=>{this._notifyScheduled=!1;for(const n of this._listeners)n()}))}}const Qs=new CEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Yht=1e3,Zht=4e3;function CB(t){try{const n=t;return typeof t=="object"&&n!==null&&typeof n.stack=="string"&&n.stack!==""&&typeof n.message=="string"?n.stack.includes(n.message)?n.stack:`${String(t)}
|
|
46
46
|
${n.stack}`:String(t)}catch{return Object.prototype.toString.call(t)}}function EEr(t){if(typeof t!="object"||t===null)return CB(t);const n=new WeakSet;let s;try{s=JSON.stringify(t,(c,d)=>typeof d!="object"||d===null?d:n.has(d)?"[Circular]":(n.add(d),d))}catch{s=void 0}return s===void 0?CB(t):s.length>Yht?`${s.slice(0,Yht)}…`:s}function GRe(t){if(t.length===0)return"";const[n,...s]=t;if(typeof n!="string"||s.length===0)return t.map(CB).join(" ");let c=0;const d=n.replace(/%([sdifoOjc%])/g,(g,S)=>{if(S==="%")return"%";if(c>=s.length)return g;const k=s[c++];switch(S){case"s":return typeof k=="string"?k:CB(k);case"d":case"i":{if(typeof k=="symbol")return"NaN";if(typeof k=="bigint")return String(k);const A=Number(k);return Number.isFinite(A)?String(Math.trunc(A)):String(A)}case"f":return typeof k=="symbol"?"NaN":String(Number(k));case"c":return"";default:return EEr(k)}}),m=s.slice(c);return m.length===0?d:`${d} ${m.map(CB).join(" ")}`}function kEr(t,n){const s=t[0];if(typeof s!="string"||!/^(Encountered two children with the same key|Each child in a list should have a unique|Maximum update depth exceeded|Cannot update a component)/.test(s))return n;try{const c=Ye.captureOwnerStack?.();return c?`${n}
|
|
47
47
|
Owner stack:${c}`:n}catch{return n}}function KRe(t,n={}){const s=t instanceof Error?`${t.name}: ${t.message}`:CB(t),c=[n.source?`[${n.source}] ${s}`:s],d=n.componentStack?.trim();d&&c.push(`Component stack:
|
|
48
48
|
${d}`),t instanceof Error&&t.stack&&t.stack!==s&&c.push(`JavaScript stack:
|
|
@@ -939,7 +939,7 @@ ${n}`,d=lZ.get(c);if(d)return d;const m=EYr(t,s,n).finally(()=>{lZ.get(c)===m&&l
|
|
|
939
939
|
body{margin:0;min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 30%,#1c2a3a 0,#101318 52%,#0b0e13 100%)}
|
|
940
940
|
main{width:min(440px,100%);box-sizing:border-box;padding:34px;text-align:center;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:rgba(23,28,35,.92);box-shadow:0 22px 60px rgba(0,0,0,.38)}
|
|
941
941
|
.brand-mark{width:68px;height:68px;margin:0 auto 20px}.brand-mark img{display:block;width:100%;height:100%}h1{margin:0 0 10px;font-size:22px}p{margin:0;color:#aeb9c6;font-size:14px;line-height:1.6}
|
|
942
|
-
</style><main><div class="brand-mark">${v4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Age=new Set;function vZr(t){return Age.add(t),()=>{Age.delete(t)}}function bZr(){try{window.focus()}catch{}if(Age.size===0){window.location.reload();return}for(const t of[...Age])t()}function SZr(t,n,s={}){t.addEventListener("tab-refocus",c=>pZr(c)),t.addEventListener("tab-yield",c=>_Zr(n,c)),t.addEventListener("tab-close",()=>yZr(n,s)),t.addEventListener("tab-adopt",()=>bZr())}const $k="/__editor",xZr=globalThis,md=xZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Q0e=HAt,wZr=dwr;function TZr(t,n,s){md?.reportPhase?.(t,n,s)}function CZr(t){md?.reportCensus?.(t)}function EZr(){md?.stopHeartbeat?.();const t=kw;if(t!==null){kw=null,eB=0,md?.source===t&&(md.source=null),P$===t&&(P$=null);try{t.close()}catch{}}}function kZr(){const t=new URLSearchParams({clientId:xC,participantId:Q0e,displayName:wZr});return md?.tabId&&t.set("tabId",md.tabId),`${$k}/events?${t}`}let kw=md?.source??null,eB=md?.source&&md.pageOwned?1:0,P$=null;const VRt=new Set(["editor-command"]);function URt(t,n){if(!md||md.source!==t)return;md.queueListeners=md.queueListeners.filter(({type:c,listener:d})=>n(c)?(t.removeEventListener(c,d),!1):!0);const s=md.pending.filter(c=>n(c.type));md.pending=md.pending.filter(c=>!n(c.type));for(const{type:c,data:d}of s)t.dispatchEvent(new MessageEvent(c,{data:d}))}function AZr(t){P$!==t&&(P$=t,SZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),URt(t,n=>!VRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(kZr()),md&&(md.source=kw)));const t=kw;AZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),VRt.has(c)&&URt(t,g=>g===c)},removeEventListener(c,d){const m=d;t.removeEventListener(c,m);const g=n.findIndex(S=>S.type===c&&S.listener===m);g>=0&&n.splice(g,1)},close(){if(!s){s=!0;for(const{type:c,listener:d}of n)t.removeEventListener(c,d);n.length=0,eB--,eB<=0&&(t.close(),kw===t&&(kw=null),md?.source===t&&(md.source=null),P$===t&&(P$=null),eB=0)}}}}function DZr(){const t=kw??md?.source??null;if(!t)return"unknown";if(typeof t.connected=="boolean")return t.connected?"open":"closed";const n=t.readyState;return typeof n=="number"?n===1?"open":"closed":"unknown"}function PZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=zze(c=>{c!==null&&c.reason!=="server-gone"&&EZr()}),s=NZr();return()=>{s(),n(),t.close()}}const IZr=5;function NZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=IZr||(t+=1,FZ("console-entries",{entries:[{id:`boot-error:${t}`,severity:"error",message:`editor runtime error: ${d}`,source:"runtime",occurrences:1}],_clientId:md?.clientId??"boot"}))},s=d=>{const m=d.error;n(m?.stack??`${d.message} (${d.filename??"?"}:${d.lineno??0})`)},c=d=>{const m=d.reason;M4t(m)||n(m instanceof Error?m.stack??m.message:`unhandled rejection: ${String(m)}`)};return window.addEventListener("error",s),window.addEventListener("unhandledrejection",c),()=>{window.removeEventListener("error",s),window.removeEventListener("unhandledrejection",c)}}const OZr=2e3,RZr={"command-received":`${$k}/command-received`,"command-result":`${$k}/command-result`,"command-listener":`${$k}/command-listener`,"console-entries":`${$k}/console-entries`,"console-resolved":`${$k}/console-resolved`,"play-phase":`${$k}/play-phase`,state:`${$k}/state`,"tab-route":`${$k}/tab/route`};async function FZ(t,n){if(!(typeof fetch>"u"))try{await fetch(RZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function SN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function FZr(t,n){const s=kw??md?.source??null;if(!s){await FZ("command-result",n);return}let c;const d=new Promise(A=>{c=A}),m=A=>{const F=A.data;let D=F;if(typeof F=="string")try{D=JSON.parse(F)}catch{}D===t&&c()};s.addEventListener(JSt,m);const g={...n,_awaitCallerReceipt:!0};s.send?.("command-result",g)||await FZ("command-result",g);let S,k=!1;await Promise.race([d.then(()=>{k=!0}),new Promise(A=>{S=setTimeout(A,OZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(JSt,m)}function MZr(t){SN("tab-route",{clientId:xC,participantId:Q0e,route:t})}function Vze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function jZr(t,n){try{const s=new URLSearchParams({root:t,dir:n}),c=await fetch(`${Jl}/assets?${s}`,{cache:"no-store"});return{ok:!0,entries:(await L_(c,`Could not list ${t}/${n} from ${Jl}/assets`)).entries??[]}}catch(s){return Vze(s)}}async function eve(t,n){if(t!=="public")return jZr(t,n);try{return{ok:!0,entries:(await gR().list(n)).map(c=>({name:c.name,type:c.type==="dir"?"directory":"file",...c.size===void 0?{}:{size:c.size},...c.mtime===void 0?{}:{modifiedAt:c.mtime}}))}}catch(s){return Vze(s)}}async function JRt(){try{const t=await fetch(`${Jl}/project-components`,{cache:"no-store"});return{ok:!0,entries:(await L_(t,`Could not list project components from ${Jl}/project-components`)).components??[]}}catch(t){return Vze(t)}}function h2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class HSt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function GSt(t){return{offline:"Network delivery is offline. SSD assets remain available.","quota-limited":"The remote provider quota is exhausted. Retry after the provider resets it.","license-blocked":"This delivery is blocked because its license terms are not accepted.",unavailable:"No healthy SSD, cloud, or remote delivery is available for this variant.","provider-error":"The remote provider could not return delivery metadata. Retry the request."}[t]}const Dge=new Map,Pge=new Set;function Uze(t,n){return`${t}:${n}`}function g2n(t,n){return Dge.get(Uze(t,n))??null}function y2n(t){return Pge.add(t),()=>Pge.delete(t)}async function v2n(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Dge.clear();for(const s of n.downloaded)Dge.set(Uze(s.source,s.id),`/${s.path}`);for(const s of Pge)s()}catch{}}async function b2n(t){const n=new URLSearchParams;n.set("source",t.source),n.set("type",t.type),t.q&&n.set("q",t.q),t.category&&n.set("category",t.category),t.offset!=null&&n.set("offset",String(t.offset)),t.limit!=null&&n.set("limit",String(t.limit));const s=await fetch(`${Jl}/asset-library/search?${n}`);if(of(s,"Asset Library search failed"),!s.ok){const c=await s.json().catch(()=>null);throw new Error(c?.error??`Asset Library search failed (${s.status}).`)}return await s.json()}async function S2n(t,n){return LZr(t,n)}async function LZr(t,n){const s=new URLSearchParams({source:t,id:n});let c;try{c=await fetch(`${Jl}/asset-library/files?${s}`)}catch(m){throw new HSt("offline",m instanceof Error?m.message:GSt("offline"))}if(of(c,"Asset Library file lookup failed"),!c.ok){const m=await c.json().catch(()=>null),g=c.status===403?"license-blocked":c.status===429?"quota-limited":c.status===404?"unavailable":"provider-error";throw new HSt(g,m?.error??GSt(g))}return(await c.json()).files}async function x2n(t,n){const s=new URLSearchParams({source:t,id:n}),c=await fetch(`${Jl}/asset-library/preview?${s}`);return of(c,"Could not resolve an asset preview"),c.ok?await c.json():null}async function w2n(t){const n=await fetch(`${Jl}/asset-library/download`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...t,signal:void 0}),...t.signal?{signal:t.signal}:{}});of(n,"Could not download the asset");const s=await n.json();if(s.ok&&s.path){Dge.set(Uze(t.source,t.id),`/${s.path}`);for(const c of Pge)c()}return s}async function T2n(t){const n=await fetch(`${Jl}/asset-library/history/capture`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetPath:t})});of(n,"Asset history capture failed");const s=await n.json();if(!n.ok||!s.token)throw new Error(s.error??`Asset history capture failed (${n.status}).`);return s.token}async function C2n(t,n){const s=await fetch(`${Jl}/asset-library/history/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetPath:t,token:n})});if(of(s,"Asset history restore failed"),!s.ok){const c=await s.json().catch(()=>null);throw new Error(c?.error??`Asset history restore failed (${s.status}).`)}}async function E2n(t,n){const s=new URLSearchParams({type:t});n&&s.set("source",n);const c=await fetch(`${Jl}/asset-library/categories?${s}`);return of(c,"Could not read Asset Library categories"),c.ok?(await c.json()).categories:[]}function BZr(t){if(!t||typeof t!="object")return null;const n=t;return n.apiVersion!==1||typeof n.engineVersion!="string"&&n.engineVersion!==null||typeof n.manifestVersion!="number"||typeof n.startedAt!="string"||!n.source||n.source.state!=="current"&&n.source.state!=="restart-required"||n.source.state==="restart-required"&&(typeof n.source.changedPath!="string"||typeof n.source.changedAt!="string")?null:n}async function $Zr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw UFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw UFe(`HTTP ${t.status}`);try{EN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return BZr(await t.json())}catch{return null}}async function Jze(){const t=await $Zr();if(!t)throw E4r();return k4r(t),t}async function qZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function k2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,"Could not remove recent project")}const KSt={reopenLastProject:!1};async function zZr(){try{const t=await fetch(`${Jl}/launcher-settings`),n=await L_(t,"Could not read launcher settings");return{reopenLastProject:typeof n.reopenLastProject=="boolean"?n.reopenLastProject:KSt.reopenLastProject}}catch{return{...KSt}}}async function A2n(t){const n=await fetch(`${Jl}/launcher-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return await L_(n,"Could not save launcher settings")}async function D2n(t,n,s,c,d,m=[]){const g=await fetch(`${Jl}/create-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,location:n,template:s,...c?{exampleId:c}:{},...d?{presentation:d}:{},...m.length>0?{additions:m}:{}})});return of(g,"Could not create the project"),await g.json()}async function P2n(t){try{const n=await fetch(`${Jl}/browse-folder`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})});return(await L_(n,"Could not open the folder picker")).path}catch{return null}}async function I2n(t){const n=await fetch(`${Jl}/inspect-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});of(n,`Could not inspect ${t}`);const s=await n.json();if(!n.ok||!s.path||!s.report)throw new Error(s.error??`Could not inspect ${t}.`);return{path:s.path,report:s.report}}async function N2n(t,n){const s=await fetch(`${Jl}/adapt-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...n})});of(s,`Could not add Volter Editor metadata to ${t}`);const c=await s.json();if(!s.ok||!c.path||!c.writes)throw new Error(c.error??`Could not add Volter Editor metadata to ${t}.`);return{path:c.path,writes:c.writes}}async function AMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,`Could not reveal ${t}`)}async function O2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return EN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function Wze(){let t;try{const s=await fetch(`${Jl}/project`);t=await L_(s,`No answer from ${Jl}/project`)}catch(s){return{status:"unknown",error:s instanceof Error?s.message:String(s)}}if(t.project)return{status:"project",project:t.project};const n=t.serving;return n&&typeof n.path=="string"?{status:"unreadable",path:n.path,error:typeof n.error=="string"?n.error:"unknown error"}:t.project===null?{status:"none"}:{status:"unknown",error:`Unrecognized ${Jl}/project response`}}async function R2n(){const t=await Wze();return t.status==="project"?t.project:null}async function F2n(t){const n=await Jze(),s=await fetch(`${Jl}/open-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});let c;try{of(s,`Could not open project at ${t}`),c=await s.json()}catch(m){throw UFe(m instanceof Error?m.message:`HTTP ${s.status} returned an invalid response`)}if(!s.ok){if(c&&typeof c=="object"){const m=c;if(typeof m.error=="string"&&w4r(m.recovery))throw new AC(m.error,m.recovery);if(typeof m.error=="string")throw new Error(m.error)}throw new Error(`Could not open project at ${t}: HTTP ${s.status}`)}const d=c;return d.config&&E$e(d.config,n),d}function tve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function VZr(t){try{const n=await fetch(tve(t));if(n.ok)return await n.text()}catch{}return null}async function DMe(t){try{const n=await fetch(`/__editor/source-file?path=${encodeURIComponent(t.replace(/^\.?\//,""))}`,{cache:"no-store"});if(n.ok)return await n.text()}catch{}return null}function UZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function WRt(t){try{const n=await fetch(tve(t),{method:"HEAD"});return n.ok?UZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function JZr(t){return await WRt(t)==="present"}async function M2n(t,n,s){try{const c=s==="base64"?M4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function HRt(t,n={}){if(t.length===0)return[];const s=await fetch(`/__editor/source-files?${new URLSearchParams([...t.map(d=>["include",d]),...n.order==="mtime"?[["order","mtime"]]:[]])}`);return s.ok?(await s.json()).files??[]:[]}async function j2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function WZr(t=3e3){if(typeof fetch>"u")return{ok:!1};try{const n=await fetch(`${Jl}/project`,{signal:AbortSignal.timeout(t)}),s=await L_(n,"Editor lease poll failed");return{ok:!0,identity:{project:typeof s.project?.path=="string"?s.project.path:null,pid:typeof s.session?.pid=="number"?s.session.pid:null}}}catch{return{ok:!1}}}async function HZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let XSt=!1;async function GZr(t,n={}){try{const s=await aPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return EN(s,"Could not save editor state"),!0}catch(s){return XSt||(XSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Ige=null;async function GRt(){for(;fZ;){const t=fZ;fZ=null,await SN("state",{...t,_clientId:xC})}Ige=null,fZ&&(Ige=GRt())}function YSt(t){return fZ=t,Ige??=GRt(),Ige}async function KZr(t){await SN("command-received",{_requestId:t,_clientId:xC})}async function o_e(t){await SN("command-listener",{_clientId:xC,attached:t})}let XZr=0;function YZr(t){const n=++XZr;TZr(t.phase,xC,n),SN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function ZSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await FZr(t,m):await SN("command-result",m)}async function nte(t,n){of(t,`gameplay recording ${n} failed`);const s=await t.json().catch(()=>({}));if(!t.ok)throw new Error(`gameplay recording ${n} failed: ${typeof s.error=="string"?s.error:`HTTP ${t.status}`}`);return s}async function L2n(t,n){const s=await fetch(`${Jl}/recording/start`,{...n?{signal:n}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});return nte(s,"start")}async function B2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/dom?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"DOM event upload")}async function $2n(t,n,s,c){const d=new URLSearchParams({id:t.id,name:n}),m=await fetch(`${Jl}/recording/asset?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":s.type||"application/octet-stream"},body:s});await nte(m,"replay asset upload")}async function q2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/chunk?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"chunk upload")}async function z2n(t,n,s,c){const d=await fetch(`${Jl}/recording/finish`,{...s?{signal:s}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id,reason:n??null,replay:c??null})});await nte(d,"finish")}async function V2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function U2n(){const t=await fetch(`${Jl}/repository-presence`,{cache:"no-store"});if(of(t,"Could not read repository presence"),!t.ok)return{currentWorktreeId:null,sessions:[]};const n=await t.json().catch(()=>null);return{currentWorktreeId:typeof n?.currentWorktreeId=="string"?n.currentWorktreeId:null,sessions:Array.isArray(n?.sessions)?n.sessions:[]}}async function ZZr(){const t=await fetch(`${Jl}/project`,{cache:"no-store"});if(of(t,"Could not read this session’s worktree identity"),!t.ok)return{branch:null,worktreeId:null};const n=await t.json().catch(()=>null);return{branch:typeof n?.session?.branch=="string"?n.session.branch:null,worktreeId:typeof n?.session?.worktreeId=="string"?n.session.worktreeId:null}}async function BR(t,n){const s=await fetch(`${Jl}/worktrees${t}`,n);of(s,`Worktree operation ${t||"(list)"} failed`);const c=await s.json().catch(()=>null);if(!s.ok)throw new Error(typeof c?.error=="string"?c.error:`Worktree operation failed (${s.status}).`);return c??{}}function KRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function QZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function eQr(){const t=await BR("");return KRt(t)}async function tQr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function QSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function rQr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function nQr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return KRt(n).worktrees}async function iQr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Nge=null;const PMe=new Set,IMe=new Set;function oQr(t){Nge=t;for(const n of PMe)n(t);for(const n of IMe)n()}function Ih(){return Nge}function J2n(t){return PMe.add(t),Nge&&t(Nge),()=>{PMe.delete(t)}}function s_e(t){return IMe.add(t),()=>{IMe.delete(t)}}const nA="references",XRt=["public",nA],Hze=`/project-game-static/${nA}/`;function Oge(t,n){return`${t}/${n}`}function rve(t,n){return t===nA?`${Hze}${n}`:`/${n}`}function sQr(t){return t.startsWith(Hze)}function aQr(t){const n=t.startsWith("/")?t:`/${t}`;if(sQr(n))return Oge(nA,n.slice(Hze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function YRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(cQr,{assetPath:t,kind:n,sizeBytes:s},t)}function cQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=aQr(c),[g,S]=Ye.useState(s),[k,A]=Ye.useState(null),[F,D]=Ye.useState(null);Ye.useEffect(()=>{if(s!==void 0){S(s);return}let pe=!1;const[ue,...Ce]=m.split("/"),Ae=Ce.pop();return eve(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===Ae)?.size)}),()=>{pe=!0}},[m,s]),Ye.useEffect(()=>{if(A(null),D(null),n==="image"){const ue=new Image;return ue.onload=()=>A({width:ue.naturalWidth,height:ue.naturalHeight}),ue.onerror=()=>D("Image properties could not be read."),ue.src=d,()=>{ue.onload=null,ue.onerror=null}}const pe=document.createElement(n);return pe.preload="metadata",pe.onloadedmetadata=()=>A({...Number.isFinite(pe.duration)?{duration:pe.duration}:{},...pe instanceof HTMLVideoElement?{width:pe.videoWidth,height:pe.videoHeight}:{}}),pe.onerror=()=>D("Media properties could not be read. The file may be missing or unsupported."),pe.src=d,()=>{pe.onloadedmetadata=null,pe.onerror=null,pe.removeAttribute("src"),pe.load()}},[d,n]);const J=k?.width,$=k?.height,G=[];if(J&&$){let pe=J,ue=$;for(;ue;)[pe,ue]=[ue,pe%ue];G.push(["Dimensions",`${J} × ${$} px`],["Aspect ratio",`${J/pe}:${$/pe}`])}k?.duration!==void 0&&G.push(["Duration",`${Number(k.duration.toFixed(3))} s`]);const se=c.split("?")[0].match(/\.([^./]+)$/)?.[1];return se&&G.push(["Format",se.toUpperCase()]),g!==void 0&&G.push(["File size",g<1024?`${g} B`:`${(g/(g<1024*1024?1024:1024*1024)).toFixed(1)} ${g<1024*1024?"KB":"MB"}`]),G.push(["Location",m]),q.jsxs("div",{"data-testid":"media-properties",style:{padding:8,fontSize:12},children:[F?q.jsx("p",{role:"status",style:{color:Zf[2]},children:F}):!k&&q.jsx("p",{role:"status",style:{color:Zf[3]},children:"Reading media properties…"}),q.jsx("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",gap:"10px 12px"},children:G.map(([pe,ue])=>q.jsxs("div",{style:{display:"contents"},children:[q.jsx("dt",{style:{color:Zf[3]},children:pe}),q.jsx("dd",{style:{margin:0,color:Zf[1],overflowWrap:"anywhere"},children:ue})]},pe))})]})}const iOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>OTr),void 0)).AssetEditorShell})),lQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-DfHCf1lW.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).AudioViewer})),uQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-D9hKvFKP.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).ImageViewer})),fQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-Bi0Wh21M.js"),__vite__mapDeps([259,1,2,3,4,20,21,22,23]))).VideoViewer})),dQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-DMhiFUNl.js").then(n=>n.a),__vite__mapDeps([260,1,2,3,4,20,21]))).JsonAssetDocument})),ext=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-TlMhKqz-.js"),__vite__mapDeps([261,1,2,3,4,20,21,262,22,23]))).OnlineAssetDetail})),pQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-CRp-jbVU.js"),__vite__mapDeps([263,1,2,3,4,20,21,260,257,22,23,258]))).SourceAssetViewer})),G1=new Map,ZRt=new Map,oOe=new Map;let QRt=0;const NMe=new Set;function nR(){QRt++;for(const t of NMe)t()}function _Qr(t){return NMe.add(t),()=>{NMe.delete(t)}}function mQr(){return QRt}function hQr(t){return G1.get(t)}function eFt(t){return G1.has(t)}function gQr(t,n){const s=new Set([...Object.keys(t),...Object.keys(n)]);for(const c of s){const d=t[c],m=n[c];if(d!==m&&JSON.stringify(d)!==JSON.stringify(m))return!1}return!0}function Gze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&oOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};gQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:TQr,closeable:!0,presentation:()=>{const S=G1.get(t);return S?S.entityId?{kind:"asset",entityId:S.entityId,assetKind:"model"}:!S.assetPath||S.online?null:{kind:"asset",path:S.assetPath,assetKind:S.kind}:null},persist:()=>{const S=G1.get(t);if(!(!S?.assetPath||S.online||S.entityId!==void 0))return{path:S.assetPath,assetKind:S.kind}},onActivate:()=>{(s.kind==="image"||s.kind==="video"||s.kind==="audio")&&oD()},onDispose:S=>{G1.delete(S)&&nR();const k=oOe.get(S);oOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function aN(t,n,s={}){const c=QYr(t),{frameName:d}=Z0e(t),m=ZRt.get(DO(t))??t;return Gze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}Tee({kind:"asset",owner:"asset-documents",restore:async({state:t})=>{const n=t,s=typeof n?.path=="string"?n.path:null,c=typeof n?.assetKind=="string"?n.assetKind:null;return!s||!c||!await JZr(s)?!1:(aN(s,c),!0)}});async function tFt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=gBe(t);return s?n!=="model"||s.adapter!==null:!1},PR)}AN({id:"asset-editor:entity",owner:"asset-documents",open:(t,{entityId:n,title:s})=>Gze(`asset-editor:entity:${n}`,s,{assetPath:"",kind:"model",entityId:n},{origin:`entity:${n}`})});AN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Mze(Y0(c),n.entityId)?.assetDocument?.open()??null;if(!d)throw new Error(`Scene entity is not available: ${n.entityId}`);return d}const s=n.path;return s===void 0?null:aN(s,txt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":txt(n.assetKind,n.path??"");if(!await tFt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await PBe(t)}});function txt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??yQr(n)}function yQr(t){const n=t.slice(t.lastIndexOf(".")+1).toLowerCase();return n==="glb"||n==="gltf"?"model":["png","jpg","jpeg","webp","gif","svg"].includes(n)?"image":["mp3","ogg","wav","flac"].includes(n)?"audio":["glsl","vert","frag","ts","tsx","js","jsx","css","html","md","txt"].includes(n)?"source":"json"}function vQr(t,n){const s=lZr(n);return Gze(`asset-editor:subject:${t}`,n.name,{assetPath:s,kind:n.kind,displayName:n.name,...n.sourcePath?{sourcePath:n.sourcePath}:{}},n.sourcePath?{sourcePath:n.sourcePath}:{origin:`entity:${t}`})}function bQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function SQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=DO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===DO(n.oldPath)){const d=`/${DO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),ZRt.set(DO(d),t),U3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>DO(d)===c)?(G1.set(t,{...s,unavailableReason:`The source ${s.assetPath} was deleted. Undo the deletion or close this editor.`}),nR()):n.type==="change"&&n.paths?.some(d=>DO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function xQr(t){return t.online?"online":ig(t.assetPath).editor==="environment"?"environment":t.kind==="json"?"json":["model","image","video","audio","source"].includes(t.kind)?t.kind:"unsupported"}function sOe(t){return{id:"source",title:"Source",icon:ZTt,order:dQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function wQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(iOe,{documentId:t,active:s,type:n.kind,title:n.assetPath.split("/").pop()||"Deleted asset",status:"Source unavailable",children:q.jsx("div",{style:{padding:20,color:E_e},children:n.unavailableReason})});const c=xQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(iOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:G0r,order:dQ,body:{kind:"custom",render:()=>q.jsx(ext,{online:k,mode:"inspector",onResolved:A=>bQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(ext,{online:k,mode:"preview"})})}const d=(n.displayName??n.assetPath.split("/").pop())||n.entityId||"Asset",m=`${t}:${n.revision??0}`,g=q.jsxs("div",{style:{padding:20,color:E_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(nOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(nOe,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:E_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(nOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(pQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(dQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[sOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(uQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(fQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(lQr,{assetPath:n.assetPath},m);break;default:S=q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"No viewer available for this asset type."})}return q.jsx(iOe,{documentId:t,active:s,type:c,title:d,fill:c==="image"||c==="video",sections:c==="image"&&!n.assetPath.includes("#")||c==="video"||c==="audio"?[{id:"media-properties",title:"Properties",icon:ZTt,order:dQ,body:{kind:"custom",render:()=>q.jsx(YRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[sOe(n)]:[]]:[sOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function TQr({documentId:t,active:n}){Ye.useSyncExternalStore(_Qr,mQr),Ye.useEffect(()=>{const c=d=>{SQr(t,d.detail)};return window.addEventListener("editor:asset-mutation",c),()=>window.removeEventListener("editor:asset-mutation",c)},[t]);const s=G1.get(t);return q.jsx("div",{"data-testid":`asset-document:${t}`,style:{flex:1,minHeight:0,overflow:"hidden",pointerEvents:"auto",background:CBe[1]},children:s?q.jsx(Ye.Suspense,{fallback:q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"Loading asset viewer…"}),children:q.jsx(wQr,{id:t,spec:s,active:n})}):q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"This asset document is no longer available."})})}function DO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const rFt=["three","pixi","dom","babylon","phaser"],Kze=Object.freeze({up:"y",groundHeight:0}),nFt=Pa({surface:ed(["three","canvas","dom"]).describe("An additional surface this root mounts, beside the manifest root’s own adapter"),include:Gd(bo().min(1)).min(1).describe("Project-relative globs (`**`, `*`, `?`) naming the source files that render on this additional surface")}).strict(),CQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),EQr=Pa({id:bo().min(1).describe("Manifest root id this region grades"),surface:ed(["three","canvas","dom"]).describe("Render surface the host hands this root"),substrate:ed(rFt).describe("Native substrate serving this region, by name"),dialect:bo().min(1).nullable().describe("Dialect writer serving this region, by name; null states outright that the host writes no source here (the region's truth is the game's own code)"),anchors:Gd(ed(aBe)).describe("Anchor kinds this region’s writer serves"),basis:CQr.optional().describe("World basis (up axis + ground height); omit for the native +Y / 0 default"),include:Gd(bo().min(1)).min(1).optional().describe("Project-relative globs (`**`, `*`, `?`) naming source files this region owns, for files no root entry’s import closure reaches; a declared include wins over reach"),mounts:Gd(nFt).min(1).optional().describe("Surfaces this root mounts BESIDE its own adapter, each with the files that render on them; with `surface`, the root’s full mounted surface set")}).strict(),kQr=AR([Pg("manifest-roots"),Gd(EQr).min(1)]),AQr=Pa({include:Gd(bo().min(1)).min(1).optional().describe("Project-relative globs (`**`, `*`, `?`) naming source files this derived region owns, for files no root entry’s import closure reaches; a declared include wins over reach"),mounts:Gd(nFt).min(1).optional().describe("Surfaces this root mounts BESIDE its own adapter, each with the files that render on them; with the derived region’s own surface, the root’s full mounted surface set")}).strict().refine(t=>t.include!==void 0||t.mounts!==void 0,{message:"regionIncludes entry declares neither `include` nor `mounts` — an empty overlay states nothing the derivation did not already say. Remove it, or name the files it owns."}),DQr=wD(bo().min(1),AQr).describe("Per-region parameters for the `manifest-roots` rule, keyed by manifest root id: the `include` globs and `mounts` surfaces the mechanical derivation cannot produce");function Xze(t,n={}){return t.map(s=>({...IQr(s),...PQr(n[s.id])}))}function PQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function iFt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function IQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Kze;return s?n==="dom"?{id:t.id,surface:n,substrate:c,dialect:"jsx",anchors:["source-prop","source-structure"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:n==="three"?"r3f":"pixi-react",anchors:["source-prop","source-structure","construction-literal"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:null,anchors:["live-only"],basis:d}}const UQ="exported-composition-regions",NQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),OQr=AR([Pa({kind:Pg("root-mount")}).strict(),Pa({kind:Pg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:my().optional()}).strict(),Pa({kind:Pg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Pg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Pg("none"),reason:bo().min(1)}).strict()]),rxt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),RQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:my(),reach:OQr,source:rxt.optional(),isolationSetup:rxt.optional(),finder:bo().min(1).optional()}).strict(),FQr=Pa({entries:Gd(RQr).optional(),find:Gd(NQr).optional(),default:bo().min(1).optional()}).strict(),oFt=["command","state"],MQr="observation.kind must be 'command' or 'state' — the two DebugAdapter faces a declaration projects onto. A SystemAdapters slot is declared through the game contract’s `systemAdapters` carrier, which validates it per-surface; declaring one here would be a second door onto the same slot with no rule for which wins.",jQr=Pa({id:bo().min(1),kind:ed(oFt,{error:()=>MQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:ZI(t=>typeof t=="function",{message:"observation.answer must be a function evaluated against the mounted game"}).optional()}).strict().refine(t=>t.kind==="command"||t.locus===void 0,{path:["locus"],message:"observation.locus is valid only for a command declaration"}),LQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],BQr=Pa({root:bo().min(1),actions:ZI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:ZI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:ZI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),$Qr=Pa({Layout:ZI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","keymap must be an imported KeymapContribution object").optional(),workspace:bo().min(1).optional(),inspector:ed(["column","properties","card"]).optional(),playUtilities:Gd(bo().min(1)).optional()}).strict(),qQr="`regionIncludes` states parameters for the `manifest-roots` RULE, so it cannot be paired with an explicit `regions` list — that form is the full replacement, and each entry carries its own `include`/`mounts`. Move these globs onto the matching `regions[]` entry, or drop the list and let the derivation run.",sFt=Pa({editor:$Qr.optional(),regions:kQr.optional(),regionIncludes:DQr.optional(),documents:FQr.optional(),observation:Gd(jQr).optional(),input:BQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:qQr});function Yze(t={}){const n=sFt.safeParse(t);if(!n.success)throw new Error(`volter.adapter.ts: invalid adapter definition — ${n.error.issues.map(s=>`${s.path.join(".")||"(root)"}: ${s.message}`).join("; ")}`);return Object.freeze({...t.editor?{editor:Object.freeze({...t.editor,...t.editor.playUtilities?{playUtilities:Object.freeze([...t.editor.playUtilities])}:{}})}:{},regions:t.regions??"manifest-roots",regionIncludes:Object.freeze({...t.regionIncludes??{}}),documents:Object.freeze({...t.documents??{}}),observation:Object.freeze([...t.observation??[]]),...t.input?{input:t.input}:{}})}function PO(t={}){return Yze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:UQ},{finder:"prefabsFromStories"}]}})}function OMe(t){if(t===null||typeof t!="object")throw new Error(`volter.adapter.ts must default-export defineAdapter({…}) / nativeAdapter() — got ${t===null?"null":typeof t}`);return Yze(t)}const W2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:LQr,AdapterDefinitionSchema:sFt,EXPORTED_COMPOSITION_REGIONS:UQ,NATIVE_REGION_BASIS:Kze,OBSERVATION_KINDS:oFt,SUBSTRATE_NAMES:rFt,defineAdapter:Yze,nativeAdapter:PO,parseAdapterDefinition:OMe,regionsFromManifestRoots:Xze,unmatchedRegionIncludeIds:iFt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Zze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Qze(t,n){const s=t??{},c=[];(typeof s.name!="string"||s.name.length===0)&&c.push("`name` must be a non-empty string");const d=s.schema;if((!d||typeof d.safeParse!="function")&&c.push("`schema` must be a Zod schema"),typeof s.run!="function"&&c.push("`run(selection, input)` must be a function"),c.length>0)throw new Error(`${n}: not a finder — ${c.join("; ")}`);return Zze(s)}function aFt(){return[...MZ.keys()]}function cFt(t,n){const s=MZ.get(t.finder);if(!s){const d=aFt();throw new Error(`Unknown finder ${JSON.stringify(t.finder)} — registered: ${d.length>0?d.map(m=>`"${m}"`).join(", "):"none"}`)}const c=s.schema.safeParse(t);if(!c.success)throw new Error(`Finder ${JSON.stringify(t.finder)}: ${c.error.issues.map(d=>`${d.path.join(".")||"(selection)"}: ${d.message}`).join("; ")}`);return s.run(c.data,n)}const H2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Qze,registerFinder:Zze,registeredFinderNames:aFt,runRegisteredFinder:cFt},Symbol.toStringTag,{value:"Module"}));function nxt(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var aOe={exports:{}};const zQr={},VQr=Object.freeze(Object.defineProperty({__proto__:null,default:zQr},Symbol.toStringTag,{value:"Module"})),wI=c0r(VQr);var ixt;function UQr(){return ixt||(ixt=1,(function(t){var n={};/*! *****************************************************************************
|
|
942
|
+
</style><main><div class="brand-mark">${v4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Age=new Set;function vZr(t){return Age.add(t),()=>{Age.delete(t)}}function bZr(){try{window.focus()}catch{}if(Age.size===0){window.location.reload();return}for(const t of[...Age])t()}function SZr(t,n,s={}){t.addEventListener("tab-refocus",c=>pZr(c)),t.addEventListener("tab-yield",c=>_Zr(n,c)),t.addEventListener("tab-close",()=>yZr(n,s)),t.addEventListener("tab-adopt",()=>bZr())}const $k="/__editor",xZr=globalThis,md=xZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Q0e=HAt,wZr=dwr;function TZr(t,n,s){md?.reportPhase?.(t,n,s)}function CZr(t){md?.reportCensus?.(t)}function EZr(){md?.stopHeartbeat?.();const t=kw;if(t!==null){kw=null,eB=0,md?.source===t&&(md.source=null),P$===t&&(P$=null);try{t.close()}catch{}}}function kZr(){const t=new URLSearchParams({clientId:xC,participantId:Q0e,displayName:wZr});return md?.tabId&&t.set("tabId",md.tabId),`${$k}/events?${t}`}let kw=md?.source??null,eB=md?.source&&md.pageOwned?1:0,P$=null;const VRt=new Set(["editor-command"]);function URt(t,n){if(!md||md.source!==t)return;md.queueListeners=md.queueListeners.filter(({type:c,listener:d})=>n(c)?(t.removeEventListener(c,d),!1):!0);const s=md.pending.filter(c=>n(c.type));md.pending=md.pending.filter(c=>!n(c.type));for(const{type:c,data:d}of s)t.dispatchEvent(new MessageEvent(c,{data:d}))}function AZr(t){P$!==t&&(P$=t,SZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),URt(t,n=>!VRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(kZr()),md&&(md.source=kw)));const t=kw;AZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),VRt.has(c)&&URt(t,g=>g===c)},removeEventListener(c,d){const m=d;t.removeEventListener(c,m);const g=n.findIndex(S=>S.type===c&&S.listener===m);g>=0&&n.splice(g,1)},close(){if(!s){s=!0;for(const{type:c,listener:d}of n)t.removeEventListener(c,d);n.length=0,eB--,eB<=0&&(t.close(),kw===t&&(kw=null),md?.source===t&&(md.source=null),P$===t&&(P$=null),eB=0)}}}}function DZr(){const t=kw??md?.source??null;if(!t)return"unknown";if(typeof t.connected=="boolean")return t.connected?"open":"closed";const n=t.readyState;return typeof n=="number"?n===1?"open":"closed":"unknown"}function PZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=zze(c=>{c!==null&&c.reason!=="server-gone"&&EZr()}),s=NZr();return()=>{s(),n(),t.close()}}const IZr=5;function NZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=IZr||(t+=1,FZ("console-entries",{entries:[{id:`boot-error:${t}`,severity:"error",message:`editor runtime error: ${d}`,source:"runtime",occurrences:1}],_clientId:md?.clientId??"boot"}))},s=d=>{const m=d.error;n(m?.stack??`${d.message} (${d.filename??"?"}:${d.lineno??0})`)},c=d=>{const m=d.reason;M4t(m)||n(m instanceof Error?m.stack??m.message:`unhandled rejection: ${String(m)}`)};return window.addEventListener("error",s),window.addEventListener("unhandledrejection",c),()=>{window.removeEventListener("error",s),window.removeEventListener("unhandledrejection",c)}}const OZr=2e3,RZr={"command-received":`${$k}/command-received`,"command-result":`${$k}/command-result`,"command-listener":`${$k}/command-listener`,"console-entries":`${$k}/console-entries`,"console-resolved":`${$k}/console-resolved`,"play-phase":`${$k}/play-phase`,state:`${$k}/state`,"tab-route":`${$k}/tab/route`};async function FZ(t,n){if(!(typeof fetch>"u"))try{await fetch(RZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function SN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function FZr(t,n){const s=kw??md?.source??null;if(!s){await FZ("command-result",n);return}let c;const d=new Promise(A=>{c=A}),m=A=>{const F=A.data;let D=F;if(typeof F=="string")try{D=JSON.parse(F)}catch{}D===t&&c()};s.addEventListener(JSt,m);const g={...n,_awaitCallerReceipt:!0};s.send?.("command-result",g)||await FZ("command-result",g);let S,k=!1;await Promise.race([d.then(()=>{k=!0}),new Promise(A=>{S=setTimeout(A,OZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(JSt,m)}function MZr(t){SN("tab-route",{clientId:xC,participantId:Q0e,route:t})}function Vze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function jZr(t,n){try{const s=new URLSearchParams({root:t,dir:n}),c=await fetch(`${Jl}/assets?${s}`,{cache:"no-store"});return{ok:!0,entries:(await L_(c,`Could not list ${t}/${n} from ${Jl}/assets`)).entries??[]}}catch(s){return Vze(s)}}async function eve(t,n){if(t!=="public")return jZr(t,n);try{return{ok:!0,entries:(await gR().list(n)).map(c=>({name:c.name,type:c.type==="dir"?"directory":"file",...c.size===void 0?{}:{size:c.size},...c.mtime===void 0?{}:{modifiedAt:c.mtime}}))}}catch(s){return Vze(s)}}async function JRt(){try{const t=await fetch(`${Jl}/project-components`,{cache:"no-store"});return{ok:!0,entries:(await L_(t,`Could not list project components from ${Jl}/project-components`)).components??[]}}catch(t){return Vze(t)}}function h2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class HSt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function GSt(t){return{offline:"Network delivery is offline. SSD assets remain available.","quota-limited":"The remote provider quota is exhausted. Retry after the provider resets it.","license-blocked":"This delivery is blocked because its license terms are not accepted.",unavailable:"No healthy SSD, cloud, or remote delivery is available for this variant.","provider-error":"The remote provider could not return delivery metadata. Retry the request."}[t]}const Dge=new Map,Pge=new Set;function Uze(t,n){return`${t}:${n}`}function g2n(t,n){return Dge.get(Uze(t,n))??null}function y2n(t){return Pge.add(t),()=>Pge.delete(t)}async function v2n(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Dge.clear();for(const s of n.downloaded)Dge.set(Uze(s.source,s.id),`/${s.path}`);for(const s of Pge)s()}catch{}}async function b2n(t){const n=new URLSearchParams;n.set("source",t.source),n.set("type",t.type),t.q&&n.set("q",t.q),t.category&&n.set("category",t.category),t.offset!=null&&n.set("offset",String(t.offset)),t.limit!=null&&n.set("limit",String(t.limit));const s=await fetch(`${Jl}/asset-library/search?${n}`);if(of(s,"Asset Library search failed"),!s.ok){const c=await s.json().catch(()=>null);throw new Error(c?.error??`Asset Library search failed (${s.status}).`)}return await s.json()}async function S2n(t,n){return LZr(t,n)}async function LZr(t,n){const s=new URLSearchParams({source:t,id:n});let c;try{c=await fetch(`${Jl}/asset-library/files?${s}`)}catch(m){throw new HSt("offline",m instanceof Error?m.message:GSt("offline"))}if(of(c,"Asset Library file lookup failed"),!c.ok){const m=await c.json().catch(()=>null),g=c.status===403?"license-blocked":c.status===429?"quota-limited":c.status===404?"unavailable":"provider-error";throw new HSt(g,m?.error??GSt(g))}return(await c.json()).files}async function x2n(t,n){const s=new URLSearchParams({source:t,id:n}),c=await fetch(`${Jl}/asset-library/preview?${s}`);return of(c,"Could not resolve an asset preview"),c.ok?await c.json():null}async function w2n(t){const n=await fetch(`${Jl}/asset-library/download`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...t,signal:void 0}),...t.signal?{signal:t.signal}:{}});of(n,"Could not download the asset");const s=await n.json();if(s.ok&&s.path){Dge.set(Uze(t.source,t.id),`/${s.path}`);for(const c of Pge)c()}return s}async function T2n(t){const n=await fetch(`${Jl}/asset-library/history/capture`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetPath:t})});of(n,"Asset history capture failed");const s=await n.json();if(!n.ok||!s.token)throw new Error(s.error??`Asset history capture failed (${n.status}).`);return s.token}async function C2n(t,n){const s=await fetch(`${Jl}/asset-library/history/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetPath:t,token:n})});if(of(s,"Asset history restore failed"),!s.ok){const c=await s.json().catch(()=>null);throw new Error(c?.error??`Asset history restore failed (${s.status}).`)}}async function E2n(t,n){const s=new URLSearchParams({type:t});n&&s.set("source",n);const c=await fetch(`${Jl}/asset-library/categories?${s}`);return of(c,"Could not read Asset Library categories"),c.ok?(await c.json()).categories:[]}function BZr(t){if(!t||typeof t!="object")return null;const n=t;return n.apiVersion!==1||typeof n.engineVersion!="string"&&n.engineVersion!==null||typeof n.manifestVersion!="number"||typeof n.startedAt!="string"||!n.source||n.source.state!=="current"&&n.source.state!=="restart-required"||n.source.state==="restart-required"&&(typeof n.source.changedPath!="string"||typeof n.source.changedAt!="string")?null:n}async function $Zr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw UFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw UFe(`HTTP ${t.status}`);try{EN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return BZr(await t.json())}catch{return null}}async function Jze(){const t=await $Zr();if(!t)throw E4r();return k4r(t),t}async function qZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function k2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,"Could not remove recent project")}const KSt={reopenLastProject:!1};async function zZr(){try{const t=await fetch(`${Jl}/launcher-settings`),n=await L_(t,"Could not read launcher settings");return{reopenLastProject:typeof n.reopenLastProject=="boolean"?n.reopenLastProject:KSt.reopenLastProject}}catch{return{...KSt}}}async function A2n(t){const n=await fetch(`${Jl}/launcher-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return await L_(n,"Could not save launcher settings")}async function D2n(t,n,s,c,d,m=[]){const g=await fetch(`${Jl}/create-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,location:n,template:s,...c?{exampleId:c}:{},...d?{presentation:d}:{},...m.length>0?{additions:m}:{}})});return of(g,"Could not create the project"),await g.json()}async function P2n(t){try{const n=await fetch(`${Jl}/browse-folder`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t})});return(await L_(n,"Could not open the folder picker")).path}catch{return null}}async function I2n(t){const n=await fetch(`${Jl}/inspect-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});of(n,`Could not inspect ${t}`);const s=await n.json();if(!n.ok||!s.path||!s.report)throw new Error(s.error??`Could not inspect ${t}.`);return{path:s.path,report:s.report}}async function N2n(t,n){const s=await fetch(`${Jl}/adapt-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...n})});of(s,`Could not add Volter Editor metadata to ${t}`);const c=await s.json();if(!s.ok||!c.path||!c.writes)throw new Error(c.error??`Could not add Volter Editor metadata to ${t}.`);return{path:c.path,writes:c.writes}}async function AMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,`Could not reveal ${t}`)}async function O2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return EN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function Wze(){let t;try{const s=await fetch(`${Jl}/project`);t=await L_(s,`No answer from ${Jl}/project`)}catch(s){return{status:"unknown",error:s instanceof Error?s.message:String(s)}}if(t.project)return{status:"project",project:t.project};const n=t.serving;return n&&typeof n.path=="string"?{status:"unreadable",path:n.path,error:typeof n.error=="string"?n.error:"unknown error"}:t.project===null?{status:"none"}:{status:"unknown",error:`Unrecognized ${Jl}/project response`}}async function R2n(){const t=await Wze();return t.status==="project"?t.project:null}async function F2n(t){const n=await Jze(),s=await fetch(`${Jl}/open-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});let c;try{of(s,`Could not open project at ${t}`),c=await s.json()}catch(m){throw UFe(m instanceof Error?m.message:`HTTP ${s.status} returned an invalid response`)}if(!s.ok){if(c&&typeof c=="object"){const m=c;if(typeof m.error=="string"&&w4r(m.recovery))throw new AC(m.error,m.recovery);if(typeof m.error=="string")throw new Error(m.error)}throw new Error(`Could not open project at ${t}: HTTP ${s.status}`)}const d=c;return d.config&&E$e(d.config,n),d}function tve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function VZr(t){try{const n=await fetch(tve(t));if(n.ok)return await n.text()}catch{}return null}async function DMe(t){try{const n=await fetch(`/__editor/source-file?path=${encodeURIComponent(t.replace(/^\.?\//,""))}`,{cache:"no-store"});if(n.ok)return await n.text()}catch{}return null}function UZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function WRt(t){try{const n=await fetch(tve(t),{method:"HEAD"});return n.ok?UZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function JZr(t){return await WRt(t)==="present"}async function M2n(t,n,s){try{const c=s==="base64"?M4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function HRt(t,n={}){if(t.length===0)return[];const s=await fetch(`/__editor/source-files?${new URLSearchParams([...t.map(d=>["include",d]),...n.order==="mtime"?[["order","mtime"]]:[]])}`);return s.ok?(await s.json()).files??[]:[]}async function j2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function WZr(t=3e3){if(typeof fetch>"u")return{ok:!1};try{const n=await fetch(`${Jl}/project`,{signal:AbortSignal.timeout(t)}),s=await L_(n,"Editor lease poll failed");return{ok:!0,identity:{project:typeof s.project?.path=="string"?s.project.path:null,pid:typeof s.session?.pid=="number"?s.session.pid:null}}}catch{return{ok:!1}}}async function HZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let XSt=!1;async function GZr(t,n={}){try{const s=await aPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return EN(s,"Could not save editor state"),!0}catch(s){return XSt||(XSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Ige=null;async function GRt(){for(;fZ;){const t=fZ;fZ=null,await SN("state",{...t,_clientId:xC})}Ige=null,fZ&&(Ige=GRt())}function YSt(t){return fZ=t,Ige??=GRt(),Ige}async function KZr(t){await SN("command-received",{_requestId:t,_clientId:xC})}async function o_e(t){await SN("command-listener",{_clientId:xC,attached:t})}let XZr=0;function YZr(t){const n=++XZr;TZr(t.phase,xC,n),SN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function ZSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await FZr(t,m):await SN("command-result",m)}async function nte(t,n){of(t,`gameplay recording ${n} failed`);const s=await t.json().catch(()=>({}));if(!t.ok)throw new Error(`gameplay recording ${n} failed: ${typeof s.error=="string"?s.error:`HTTP ${t.status}`}`);return s}async function L2n(t,n){const s=await fetch(`${Jl}/recording/start`,{...n?{signal:n}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});return nte(s,"start")}async function B2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/dom?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"DOM event upload")}async function $2n(t,n,s,c){const d=new URLSearchParams({id:t.id,name:n}),m=await fetch(`${Jl}/recording/asset?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":s.type||"application/octet-stream"},body:s});await nte(m,"replay asset upload")}async function q2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/chunk?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"chunk upload")}async function z2n(t,n,s,c){const d=await fetch(`${Jl}/recording/finish`,{...s?{signal:s}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id,reason:n??null,replay:c??null})});await nte(d,"finish")}async function V2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function U2n(){const t=await fetch(`${Jl}/repository-presence`,{cache:"no-store"});if(of(t,"Could not read repository presence"),!t.ok)return{currentWorktreeId:null,sessions:[]};const n=await t.json().catch(()=>null);return{currentWorktreeId:typeof n?.currentWorktreeId=="string"?n.currentWorktreeId:null,sessions:Array.isArray(n?.sessions)?n.sessions:[]}}async function ZZr(){const t=await fetch(`${Jl}/project`,{cache:"no-store"});if(of(t,"Could not read this session’s worktree identity"),!t.ok)return{branch:null,worktreeId:null};const n=await t.json().catch(()=>null);return{branch:typeof n?.session?.branch=="string"?n.session.branch:null,worktreeId:typeof n?.session?.worktreeId=="string"?n.session.worktreeId:null}}async function BR(t,n){const s=await fetch(`${Jl}/worktrees${t}`,n);of(s,`Worktree operation ${t||"(list)"} failed`);const c=await s.json().catch(()=>null);if(!s.ok)throw new Error(typeof c?.error=="string"?c.error:`Worktree operation failed (${s.status}).`);return c??{}}function KRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function QZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function eQr(){const t=await BR("");return KRt(t)}async function tQr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function QSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function rQr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function nQr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return KRt(n).worktrees}async function iQr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Nge=null;const PMe=new Set,IMe=new Set;function oQr(t){Nge=t;for(const n of PMe)n(t);for(const n of IMe)n()}function Ih(){return Nge}function J2n(t){return PMe.add(t),Nge&&t(Nge),()=>{PMe.delete(t)}}function s_e(t){return IMe.add(t),()=>{IMe.delete(t)}}const nA="references",XRt=["public",nA],Hze=`/project-game-static/${nA}/`;function Oge(t,n){return`${t}/${n}`}function rve(t,n){return t===nA?`${Hze}${n}`:`/${n}`}function sQr(t){return t.startsWith(Hze)}function aQr(t){const n=t.startsWith("/")?t:`/${t}`;if(sQr(n))return Oge(nA,n.slice(Hze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function YRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(cQr,{assetPath:t,kind:n,sizeBytes:s},t)}function cQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=aQr(c),[g,S]=Ye.useState(s),[k,A]=Ye.useState(null),[F,D]=Ye.useState(null);Ye.useEffect(()=>{if(s!==void 0){S(s);return}let pe=!1;const[ue,...Ce]=m.split("/"),Ae=Ce.pop();return eve(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===Ae)?.size)}),()=>{pe=!0}},[m,s]),Ye.useEffect(()=>{if(A(null),D(null),n==="image"){const ue=new Image;return ue.onload=()=>A({width:ue.naturalWidth,height:ue.naturalHeight}),ue.onerror=()=>D("Image properties could not be read."),ue.src=d,()=>{ue.onload=null,ue.onerror=null}}const pe=document.createElement(n);return pe.preload="metadata",pe.onloadedmetadata=()=>A({...Number.isFinite(pe.duration)?{duration:pe.duration}:{},...pe instanceof HTMLVideoElement?{width:pe.videoWidth,height:pe.videoHeight}:{}}),pe.onerror=()=>D("Media properties could not be read. The file may be missing or unsupported."),pe.src=d,()=>{pe.onloadedmetadata=null,pe.onerror=null,pe.removeAttribute("src"),pe.load()}},[d,n]);const J=k?.width,$=k?.height,G=[];if(J&&$){let pe=J,ue=$;for(;ue;)[pe,ue]=[ue,pe%ue];G.push(["Dimensions",`${J} × ${$} px`],["Aspect ratio",`${J/pe}:${$/pe}`])}k?.duration!==void 0&&G.push(["Duration",`${Number(k.duration.toFixed(3))} s`]);const se=c.split("?")[0].match(/\.([^./]+)$/)?.[1];return se&&G.push(["Format",se.toUpperCase()]),g!==void 0&&G.push(["File size",g<1024?`${g} B`:`${(g/(g<1024*1024?1024:1024*1024)).toFixed(1)} ${g<1024*1024?"KB":"MB"}`]),G.push(["Location",m]),q.jsxs("div",{"data-testid":"media-properties",style:{padding:8,fontSize:12},children:[F?q.jsx("p",{role:"status",style:{color:Zf[2]},children:F}):!k&&q.jsx("p",{role:"status",style:{color:Zf[3]},children:"Reading media properties…"}),q.jsx("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",gap:"10px 12px"},children:G.map(([pe,ue])=>q.jsxs("div",{style:{display:"contents"},children:[q.jsx("dt",{style:{color:Zf[3]},children:pe}),q.jsx("dd",{style:{margin:0,color:Zf[1],overflowWrap:"anywhere"},children:ue})]},pe))})]})}const iOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>OTr),void 0)).AssetEditorShell})),lQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-gge--M-h.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).AudioViewer})),uQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-BjxoscVa.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).ImageViewer})),fQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-Ba-e91kP.js"),__vite__mapDeps([259,1,2,3,4,20,21,22,23]))).VideoViewer})),dQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-D81JuRAm.js").then(n=>n.a),__vite__mapDeps([260,1,2,3,4,20,21]))).JsonAssetDocument})),ext=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-DdKHHjxg.js"),__vite__mapDeps([261,1,2,3,4,20,21,262,22,23]))).OnlineAssetDetail})),pQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-CGGHBzgL.js"),__vite__mapDeps([263,1,2,3,4,20,21,260,257,22,23,258]))).SourceAssetViewer})),G1=new Map,ZRt=new Map,oOe=new Map;let QRt=0;const NMe=new Set;function nR(){QRt++;for(const t of NMe)t()}function _Qr(t){return NMe.add(t),()=>{NMe.delete(t)}}function mQr(){return QRt}function hQr(t){return G1.get(t)}function eFt(t){return G1.has(t)}function gQr(t,n){const s=new Set([...Object.keys(t),...Object.keys(n)]);for(const c of s){const d=t[c],m=n[c];if(d!==m&&JSON.stringify(d)!==JSON.stringify(m))return!1}return!0}function Gze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&oOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};gQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:TQr,closeable:!0,presentation:()=>{const S=G1.get(t);return S?S.entityId?{kind:"asset",entityId:S.entityId,assetKind:"model"}:!S.assetPath||S.online?null:{kind:"asset",path:S.assetPath,assetKind:S.kind}:null},persist:()=>{const S=G1.get(t);if(!(!S?.assetPath||S.online||S.entityId!==void 0))return{path:S.assetPath,assetKind:S.kind}},onActivate:()=>{(s.kind==="image"||s.kind==="video"||s.kind==="audio")&&oD()},onDispose:S=>{G1.delete(S)&&nR();const k=oOe.get(S);oOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function aN(t,n,s={}){const c=QYr(t),{frameName:d}=Z0e(t),m=ZRt.get(DO(t))??t;return Gze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}Tee({kind:"asset",owner:"asset-documents",restore:async({state:t})=>{const n=t,s=typeof n?.path=="string"?n.path:null,c=typeof n?.assetKind=="string"?n.assetKind:null;return!s||!c||!await JZr(s)?!1:(aN(s,c),!0)}});async function tFt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=gBe(t);return s?n!=="model"||s.adapter!==null:!1},PR)}AN({id:"asset-editor:entity",owner:"asset-documents",open:(t,{entityId:n,title:s})=>Gze(`asset-editor:entity:${n}`,s,{assetPath:"",kind:"model",entityId:n},{origin:`entity:${n}`})});AN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Mze(Y0(c),n.entityId)?.assetDocument?.open()??null;if(!d)throw new Error(`Scene entity is not available: ${n.entityId}`);return d}const s=n.path;return s===void 0?null:aN(s,txt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":txt(n.assetKind,n.path??"");if(!await tFt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await PBe(t)}});function txt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??yQr(n)}function yQr(t){const n=t.slice(t.lastIndexOf(".")+1).toLowerCase();return n==="glb"||n==="gltf"?"model":["png","jpg","jpeg","webp","gif","svg"].includes(n)?"image":["mp3","ogg","wav","flac"].includes(n)?"audio":["glsl","vert","frag","ts","tsx","js","jsx","css","html","md","txt"].includes(n)?"source":"json"}function vQr(t,n){const s=lZr(n);return Gze(`asset-editor:subject:${t}`,n.name,{assetPath:s,kind:n.kind,displayName:n.name,...n.sourcePath?{sourcePath:n.sourcePath}:{}},n.sourcePath?{sourcePath:n.sourcePath}:{origin:`entity:${t}`})}function bQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function SQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=DO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===DO(n.oldPath)){const d=`/${DO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),ZRt.set(DO(d),t),U3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>DO(d)===c)?(G1.set(t,{...s,unavailableReason:`The source ${s.assetPath} was deleted. Undo the deletion or close this editor.`}),nR()):n.type==="change"&&n.paths?.some(d=>DO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function xQr(t){return t.online?"online":ig(t.assetPath).editor==="environment"?"environment":t.kind==="json"?"json":["model","image","video","audio","source"].includes(t.kind)?t.kind:"unsupported"}function sOe(t){return{id:"source",title:"Source",icon:ZTt,order:dQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function wQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(iOe,{documentId:t,active:s,type:n.kind,title:n.assetPath.split("/").pop()||"Deleted asset",status:"Source unavailable",children:q.jsx("div",{style:{padding:20,color:E_e},children:n.unavailableReason})});const c=xQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(iOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:G0r,order:dQ,body:{kind:"custom",render:()=>q.jsx(ext,{online:k,mode:"inspector",onResolved:A=>bQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(ext,{online:k,mode:"preview"})})}const d=(n.displayName??n.assetPath.split("/").pop())||n.entityId||"Asset",m=`${t}:${n.revision??0}`,g=q.jsxs("div",{style:{padding:20,color:E_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(nOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(nOe,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:E_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(nOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(pQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(dQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[sOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(uQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(fQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(lQr,{assetPath:n.assetPath},m);break;default:S=q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"No viewer available for this asset type."})}return q.jsx(iOe,{documentId:t,active:s,type:c,title:d,fill:c==="image"||c==="video",sections:c==="image"&&!n.assetPath.includes("#")||c==="video"||c==="audio"?[{id:"media-properties",title:"Properties",icon:ZTt,order:dQ,body:{kind:"custom",render:()=>q.jsx(YRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[sOe(n)]:[]]:[sOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function TQr({documentId:t,active:n}){Ye.useSyncExternalStore(_Qr,mQr),Ye.useEffect(()=>{const c=d=>{SQr(t,d.detail)};return window.addEventListener("editor:asset-mutation",c),()=>window.removeEventListener("editor:asset-mutation",c)},[t]);const s=G1.get(t);return q.jsx("div",{"data-testid":`asset-document:${t}`,style:{flex:1,minHeight:0,overflow:"hidden",pointerEvents:"auto",background:CBe[1]},children:s?q.jsx(Ye.Suspense,{fallback:q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"Loading asset viewer…"}),children:q.jsx(wQr,{id:t,spec:s,active:n})}):q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"This asset document is no longer available."})})}function DO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const rFt=["three","pixi","dom","babylon","phaser"],Kze=Object.freeze({up:"y",groundHeight:0}),nFt=Pa({surface:ed(["three","canvas","dom"]).describe("An additional surface this root mounts, beside the manifest root’s own adapter"),include:Gd(bo().min(1)).min(1).describe("Project-relative globs (`**`, `*`, `?`) naming the source files that render on this additional surface")}).strict(),CQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),EQr=Pa({id:bo().min(1).describe("Manifest root id this region grades"),surface:ed(["three","canvas","dom"]).describe("Render surface the host hands this root"),substrate:ed(rFt).describe("Native substrate serving this region, by name"),dialect:bo().min(1).nullable().describe("Dialect writer serving this region, by name; null states outright that the host writes no source here (the region's truth is the game's own code)"),anchors:Gd(ed(aBe)).describe("Anchor kinds this region’s writer serves"),basis:CQr.optional().describe("World basis (up axis + ground height); omit for the native +Y / 0 default"),include:Gd(bo().min(1)).min(1).optional().describe("Project-relative globs (`**`, `*`, `?`) naming source files this region owns, for files no root entry’s import closure reaches; a declared include wins over reach"),mounts:Gd(nFt).min(1).optional().describe("Surfaces this root mounts BESIDE its own adapter, each with the files that render on them; with `surface`, the root’s full mounted surface set")}).strict(),kQr=AR([Pg("manifest-roots"),Gd(EQr).min(1)]),AQr=Pa({include:Gd(bo().min(1)).min(1).optional().describe("Project-relative globs (`**`, `*`, `?`) naming source files this derived region owns, for files no root entry’s import closure reaches; a declared include wins over reach"),mounts:Gd(nFt).min(1).optional().describe("Surfaces this root mounts BESIDE its own adapter, each with the files that render on them; with the derived region’s own surface, the root’s full mounted surface set")}).strict().refine(t=>t.include!==void 0||t.mounts!==void 0,{message:"regionIncludes entry declares neither `include` nor `mounts` — an empty overlay states nothing the derivation did not already say. Remove it, or name the files it owns."}),DQr=wD(bo().min(1),AQr).describe("Per-region parameters for the `manifest-roots` rule, keyed by manifest root id: the `include` globs and `mounts` surfaces the mechanical derivation cannot produce");function Xze(t,n={}){return t.map(s=>({...IQr(s),...PQr(n[s.id])}))}function PQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function iFt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function IQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Kze;return s?n==="dom"?{id:t.id,surface:n,substrate:c,dialect:"jsx",anchors:["source-prop","source-structure"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:n==="three"?"r3f":"pixi-react",anchors:["source-prop","source-structure","construction-literal"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:null,anchors:["live-only"],basis:d}}const UQ="exported-composition-regions",NQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),OQr=AR([Pa({kind:Pg("root-mount")}).strict(),Pa({kind:Pg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:my().optional()}).strict(),Pa({kind:Pg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Pg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Pg("none"),reason:bo().min(1)}).strict()]),rxt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),RQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:my(),reach:OQr,source:rxt.optional(),isolationSetup:rxt.optional(),finder:bo().min(1).optional()}).strict(),FQr=Pa({entries:Gd(RQr).optional(),find:Gd(NQr).optional(),default:bo().min(1).optional()}).strict(),oFt=["command","state"],MQr="observation.kind must be 'command' or 'state' — the two DebugAdapter faces a declaration projects onto. A SystemAdapters slot is declared through the game contract’s `systemAdapters` carrier, which validates it per-surface; declaring one here would be a second door onto the same slot with no rule for which wins.",jQr=Pa({id:bo().min(1),kind:ed(oFt,{error:()=>MQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:ZI(t=>typeof t=="function",{message:"observation.answer must be a function evaluated against the mounted game"}).optional()}).strict().refine(t=>t.kind==="command"||t.locus===void 0,{path:["locus"],message:"observation.locus is valid only for a command declaration"}),LQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],BQr=Pa({root:bo().min(1),actions:ZI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:ZI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:ZI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),$Qr=Pa({Layout:ZI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","keymap must be an imported KeymapContribution object").optional(),workspace:bo().min(1).optional(),inspector:ed(["column","properties","card"]).optional(),playUtilities:Gd(bo().min(1)).optional()}).strict(),qQr="`regionIncludes` states parameters for the `manifest-roots` RULE, so it cannot be paired with an explicit `regions` list — that form is the full replacement, and each entry carries its own `include`/`mounts`. Move these globs onto the matching `regions[]` entry, or drop the list and let the derivation run.",sFt=Pa({editor:$Qr.optional(),regions:kQr.optional(),regionIncludes:DQr.optional(),documents:FQr.optional(),observation:Gd(jQr).optional(),input:BQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:qQr});function Yze(t={}){const n=sFt.safeParse(t);if(!n.success)throw new Error(`volter.adapter.ts: invalid adapter definition — ${n.error.issues.map(s=>`${s.path.join(".")||"(root)"}: ${s.message}`).join("; ")}`);return Object.freeze({...t.editor?{editor:Object.freeze({...t.editor,...t.editor.playUtilities?{playUtilities:Object.freeze([...t.editor.playUtilities])}:{}})}:{},regions:t.regions??"manifest-roots",regionIncludes:Object.freeze({...t.regionIncludes??{}}),documents:Object.freeze({...t.documents??{}}),observation:Object.freeze([...t.observation??[]]),...t.input?{input:t.input}:{}})}function PO(t={}){return Yze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:UQ},{finder:"prefabsFromStories"}]}})}function OMe(t){if(t===null||typeof t!="object")throw new Error(`volter.adapter.ts must default-export defineAdapter({…}) / nativeAdapter() — got ${t===null?"null":typeof t}`);return Yze(t)}const W2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:LQr,AdapterDefinitionSchema:sFt,EXPORTED_COMPOSITION_REGIONS:UQ,NATIVE_REGION_BASIS:Kze,OBSERVATION_KINDS:oFt,SUBSTRATE_NAMES:rFt,defineAdapter:Yze,nativeAdapter:PO,parseAdapterDefinition:OMe,regionsFromManifestRoots:Xze,unmatchedRegionIncludeIds:iFt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Zze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Qze(t,n){const s=t??{},c=[];(typeof s.name!="string"||s.name.length===0)&&c.push("`name` must be a non-empty string");const d=s.schema;if((!d||typeof d.safeParse!="function")&&c.push("`schema` must be a Zod schema"),typeof s.run!="function"&&c.push("`run(selection, input)` must be a function"),c.length>0)throw new Error(`${n}: not a finder — ${c.join("; ")}`);return Zze(s)}function aFt(){return[...MZ.keys()]}function cFt(t,n){const s=MZ.get(t.finder);if(!s){const d=aFt();throw new Error(`Unknown finder ${JSON.stringify(t.finder)} — registered: ${d.length>0?d.map(m=>`"${m}"`).join(", "):"none"}`)}const c=s.schema.safeParse(t);if(!c.success)throw new Error(`Finder ${JSON.stringify(t.finder)}: ${c.error.issues.map(d=>`${d.path.join(".")||"(selection)"}: ${d.message}`).join("; ")}`);return s.run(c.data,n)}const H2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Qze,registerFinder:Zze,registeredFinderNames:aFt,runRegisteredFinder:cFt},Symbol.toStringTag,{value:"Module"}));function nxt(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var aOe={exports:{}};const zQr={},VQr=Object.freeze(Object.defineProperty({__proto__:null,default:zQr},Symbol.toStringTag,{value:"Module"})),wI=c0r(VQr);var ixt;function UQr(){return ixt||(ixt=1,(function(t){var n={};/*! *****************************************************************************
|
|
943
943
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
944
944
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
945
945
|
this file except in compliance with the License. You may obtain a copy of the
|
|
@@ -1396,9 +1396,9 @@ ${Fen(g)}`)}const m={manifestVersion:d.manifestVersion,name:d.name,version:d.ver
|
|
|
1396
1396
|
`)}function JFt(t){return UFt(t,Array.from(t.styleSheets))}function nrn(t,n){const s=n?.replace(/\\/g,"/").replace(/\/$/,""),c=Array.from(t.styleSheets).filter(d=>{const m=d.ownerNode,g=m instanceof Element?m.getAttribute("data-vite-dev-id"):null;if(!g)return!1;const S=(g.split("?")[0]??g).replace(/\\/g,"/");return S.includes("/node_modules/")?!1:s?S.startsWith(`${s}/`):!0});return c.length===0?"":UFt(t,c)}async function irn(t){await t.fonts.ready;let n=JFt(t);const s=new Set;for(const c of n.matchAll(/@font-face\s*\{[^}]*\}/g))for(const d of c[0].matchAll(/url\("([^"]+)"\)/g))d[1].startsWith("data:")||s.add(d[1]);return await Promise.all(Array.from(s,async c=>{const d=await fetch(c,{signal:AbortSignal.timeout(1e4)});if(!d.ok)throw new Error(`Capture font could not be loaded (${d.status}): ${c}`);const m=await d.blob(),g=await new Promise((S,k)=>{const A=new FileReader;A.onload=()=>S(String(A.result)),A.onerror=()=>k(A.error),A.readAsDataURL(m)});n=n.replaceAll(`url("${c}")`,`url("${g}")`)})),n}function orn(t,n){const s=t.ownerDocument.defaultView?.getComputedStyle(t);if(s){for(const c of Array.from(s)){if(!c.startsWith("--"))continue;const d=s.getPropertyValue(c);d&&n.style.setProperty(c,d)}for(const c of["color","color-scheme","font-family","font-size","font-weight","line-height","text-shadow"]){const d=s.getPropertyValue(c);d&&n.style.setProperty(c,d)}}}function _Ve(t){const s=t.ownerDocument.defaultView?.getComputedStyle(t)?.backgroundColor;if(!s||s==="transparent")return null;const c=/^rgba?\([^)]*,\s*([\d.]+)\s*\)$/.exec(s)?.[1];return c!==void 0&&Number(c)===0?null:s}function WFt(t){const n=[],s=new Set;for(const c of Array.from(t.querySelectorAll("canvas"))){if(!ove(c))continue;const d=[];for(let m=c.parentElement;m&&(m===t||t.contains(m))&&(d.unshift(m),m!==t);m=m.parentElement);for(const m of[...d,...srn(t,c)])s.has(m)||(s.add(m),n.push(m))}return n}function srn(t,n){const s=t.ownerDocument,c=n.getBoundingClientRect();if(c.width<=0||c.height<=0||typeof s.elementsFromPoint!="function")return[];const d=new Set,m=[[c.left+c.width/2,c.top+c.height/2],[c.left+c.width*.1,c.top+c.height*.1],[c.left+c.width*.9,c.top+c.height*.1],[c.left+c.width*.1,c.top+c.height*.9],[c.left+c.width*.9,c.top+c.height*.9]];for(const[g,S]of m){const k=s.elementsFromPoint(g,S),A=k.indexOf(n);if(!(A<0))for(const F of k.slice(A+1))arn(F,t)&&d.add(F)}return Array.from(d).reverse()}function arn(t,n){return t instanceof HTMLElement&&(t===n||n.contains(t))&&_Ve(t)!==null}function HFt(t){const n=[];for(let s=t.parentElement;s;s=s.parentElement)n.unshift(s);return n}function crn(t,n){const s="select, input, textarea",c=g=>[...g.matches(s)?[g]:[],...Array.from(g.querySelectorAll(s))],d=c(t),m=c(n);d.forEach((g,S)=>{const k=m[S];if(k){if(g instanceof HTMLSelectElement&&k instanceof HTMLSelectElement){const A=Array.from(g.options);Array.from(k.options).forEach((F,D)=>{A[D]?.selected?F.setAttribute("selected",""):F.removeAttribute("selected")});return}if(g instanceof HTMLInputElement&&k instanceof HTMLInputElement){g.type==="checkbox"||g.type==="radio"?g.checked?k.setAttribute("checked",""):k.removeAttribute("checked"):k.setAttribute("value",g.value);return}g instanceof HTMLTextAreaElement&&k instanceof HTMLTextAreaElement&&(k.textContent=g.value)}})}function lrn(t,n){const s=[t,...Array.from(t.querySelectorAll("*"))],c=[n,...Array.from(n.querySelectorAll("*"))];s.forEach((d,m)=>{const g=d.scrollTop,S=d.scrollLeft;if(g===0&&S===0)return;const k=c[m];if(!(k instanceof HTMLElement))return;const A=k.firstElementChild;if(!(A instanceof HTMLElement))return;k.style.overflow="hidden";const F=getComputedStyle(d.firstElementChild??d),D=Number.parseFloat(F.marginTop)||0,J=Number.parseFloat(F.marginLeft)||0;g!==0&&(A.style.marginTop=`${D-g}px`),S!==0&&(A.style.marginLeft=`${J-S}px`)})}function urn(t,n,s){if(!s?.size)return;const c=[t,...Array.from(t.querySelectorAll("*"))],d=[n,...Array.from(n.querySelectorAll("*"))];c.forEach((m,g)=>{if(!s.has(m))return;const S=d[g];S instanceof HTMLElement&&(S.style.background="transparent")})}function GFt(t,n,s,c){const d=Array.from(t.children).filter(se=>se.tagName.toLowerCase()!=="canvas");if(d.length===0)return null;const m=c?.includeDocumentStyles===!0,g=m?t.cloneNode(!1):t.ownerDocument.createElement("div");g.style.position="relative",g.style.inset="auto",g.style.width=`${n}px`,g.style.height=`${s}px`,g.style.margin="0",g.style.transform="none",m?orn(t,g):g.style.background="transparent";const S=c?.transparentBackdrops;if(S?.has(t)&&(g.style.background="transparent"),t.closest(`[${YQ}]`)&&g.setAttribute(YQ,""),m){const se=c?.documentCssText??JFt(t.ownerDocument);if(se){const pe=t.ownerDocument.createElement("style");pe.textContent=se,g.appendChild(pe)}}const k=t.ownerDocument.createElement("style");k.textContent="*,*::before,*::after{animation:none!important;transition:none!important;caret-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}",g.appendChild(k);const A=$Ft();if(A){const se=t.ownerDocument.createElement("style");se.textContent=A,g.appendChild(se)}if(!m){const se=nrn(t.ownerDocument,c?.projectRoot);if(se){const pe=t.ownerDocument.createElement("style");pe.textContent=se,g.appendChild(pe)}}for(const se of d){const pe=se.cloneNode(!0);urn(se,pe,S),crn(se,pe),lrn(se,pe);const ue=[...se instanceof HTMLImageElement?[se]:[],...Array.from(se.querySelectorAll("img"))];[...pe instanceof HTMLImageElement?[pe]:[],...Array.from(pe.querySelectorAll("img"))].forEach((X,we)=>{const qe=ue[we];if(!qe?.complete||qe.naturalWidth<=0||qe.naturalHeight<=0)return;const bt=qe.currentSrc||qe.src,Pt=c?.snapshots?.imgs.get(qe),Wt=Pt&&Pt.src===bt?Pt.url:dOe(t.ownerDocument,qe);(!Pt||Pt.src!==bt)&&c?.snapshots?.imgs.set(qe,{src:bt,url:Wt}),Wt&&X.setAttribute("src",Wt)});const Ae=[...se instanceof HTMLVideoElement?[se]:[],...Array.from(se.querySelectorAll("video"))];[...pe instanceof HTMLVideoElement?[pe]:[],...Array.from(pe.querySelectorAll("video"))].forEach((X,we)=>{const qe=Ae[we];if(!qe||qe.readyState<2||qe.videoWidth<=0)return;const bt=dOe(t.ownerDocument,qe);if(!bt)return;const Pt=t.ownerDocument.createElement("img");Pt.setAttribute("src",bt),Pt.setAttribute("style",X.getAttribute("style")??""),X.replaceWith(Pt)});const be=Array.from(se.querySelectorAll("canvas"));Array.from(pe.querySelectorAll("canvas")).forEach((X,we)=>{const qe=be[we];if(qe&&ove(qe)){X.remove();return}const bt=qe?c?.canvasPixels?.get(qe):void 0,Pt=bt?dOe(t.ownerDocument,bt):null;if(!Pt){X.remove();return}const Wt=t.ownerDocument.createElement("img");Wt.setAttribute("src",Pt),Wt.setAttribute("style",`${X.getAttribute("style")??""}`);for(const zt of Array.from(X.attributes))Wt.setAttribute(zt.name,zt.value);X.replaceWith(Wt)}),g.appendChild(pe)}const F=new XMLSerializer().serializeToString(g),D=c?.rasterSize?.width??n,J=c?.rasterSize?.height??s,$=D===n&&J===s?"":` viewBox="0 0 ${n} ${s}"`;return{svg:`<svg xmlns="http://www.w3.org/2000/svg" width="${D}" height="${J}"${$}><foreignObject width="100%" height="100%">${F}</foreignObject></svg>`,overlayCount:d.length}}const frn={canvas:"canvas layer","dom-overlay":"DOM overlay layer","composite-output":"composite output"};class HI extends Error{layer;constructor(n,s){const c=typeof s=="object"&&s!==null&&"message"in s&&typeof s.message=="string"?s.message:String(s);super(`${frn[n]} capture failed — ${c}`),this.name="CaptureLayerError",this.layer=n}}function qge(t,n){return n instanceof HI?n:new HI(t,n)}const X4=32,drn=24,mVe=.9;function KFt(t,n){return[t[n*4]??0,t[n*4+1]??0,t[n*4+2]??0]}function prn(t,n){const s=new Map;for(let m=0;m<n;m++){const[g,S,k]=KFt(t,m),A=g>>5<<10|S>>5<<5|k>>5,F=s.get(A)??{n:0,r:0,g:0,b:0};F.n+=1,F.r+=g,F.g+=S,F.b+=k,s.set(A,F)}let c={n:1,r:0,g:0,b:0},d=0;for(const m of s.values())m.n/n>=.01&&(d+=1),m.n>c.n&&(c=m);return{mean:[Math.round(c.r/c.n),Math.round(c.g/c.n),Math.round(c.b/c.n)],distinctRegions:d}}function _rn(t,n,s){let c=0;for(let d=0;d<n;d++){const m=KFt(t,d);Math.max(Math.abs(m[0]-s[0]),Math.abs(m[1]-s[1]),Math.abs(m[2]-s[2]))<=drn&&(c+=1)}return c}function XFt(t,n,s=mVe){const{mean:c,distinctRegions:d}=prn(t,n),m=Math.round(_rn(t,n,c)/n*1e3)/1e3,g=`#${c.map(A=>A.toString(16).padStart(2,"0")).join("")}`,S=m>=s,k=`this capture is ~${Math.round(m*100)}% one flat surface (${g}) — likely a wall, an empty view, or a buried camera; it is weak evidence.`;return{dominantFraction:m,dominantColor:g,distinctRegions:d,degenerate:S,...S?{warning:k}:{}}}function XMe(t,n,s=mVe){try{const c=n.createElement("canvas");c.width=X4,c.height=X4;const d=c.getContext("2d");if(!d)return null;d.drawImage(t,0,0,X4,X4);const m=d.getImageData(0,0,X4,X4);return XFt(m.data,X4*X4,s)}catch{return null}}async function YFt(t,n=350){if(typeof t.getAnimations!="function")return;const s=t.getAnimations({subtree:!0}).filter(c=>{const d=c.effect?.getComputedTiming().endTime;return typeof d=="number"&&Number.isFinite(d)});s.length!==0&&await Promise.race([Promise.allSettled(s.map(c=>c.finished)),new Promise(c=>setTimeout(c,n))])}async function ZQ(t,n=75){const s=t.ownerDocument.defaultView?.requestAnimationFrame.bind(t.ownerDocument.defaultView);s&&await new Promise(c=>{let d=!1;const m=()=>{d||(d=!0,clearTimeout(g),c())},g=setTimeout(m,n);s(()=>s(m))})}async function ZFt(t,n){return await ZQ(t),(n?.presentsOnCanvas??t.querySelectorAll("canvas").length>0)||await new Promise(c=>setTimeout(c,650)),await YFt(t),await ZQ(t),YMe(t,2,n??{})}const QFt=.03;function e9t(t,n){if(n<=0)return 0;let s=0;for(let c=3;c<t.length;c+=4)t[c]===0&&(s+=1);return s/n}function t9t(t,n,s=.08){if(n<=0)return!1;let c=0;for(let d=0;d<t.length;d+=4)t[d]<=8&&t[d+1]<=8&&t[d+2]<=8&&t[d+3]>=250&&(c+=1);return c/n>s}function mrn(t,n,s,c){let d;try{d=t.getImageData(0,0,n,s)}catch{return{kind:"ok"}}const m=n*s,g=e9t(d.data,m),S=g>QFt;return c>0&&(S||t9t(d.data,m))?{kind:"retry"}:S?{kind:"blank",transparentFraction:g}:{kind:"ok"}}function hrn(t,n,s){let c;try{c=t.getImageData(0,0,n,s)}catch{return{left:0,top:0,right:n,bottom:s}}let d=n,m=s,g=-1,S=-1;const k=c.data;for(let A=0;A<s;A+=1){const F=A*n*4;for(let D=0;D<n;D+=1)k[F+D*4+3]!==0&&(D<d&&(d=D),D>g&&(g=D),A<m&&(m=A),A>S&&(S=A))}return g<0?null:{left:d,top:m,right:g+1,bottom:S+1}}async function YMe(t,n,s){const c=t.ownerDocument.createElement("canvas"),d=await r9t(t,c,s),m=c.width,g=c.height,S=c.getContext("2d");if(!S)throw new HI("composite-output","no 2d canvas context");if(d.canvases===0&&d.domOverlays>0&&s?.cropToContent===!0){const D=hrn(S,m,g);if(D===null){if(s.allowTransparent)return{base64:c.toDataURL("image/png").split(",")[1],mimeType:"image/png",layers:d};if(n>0)return await new Promise(we=>setTimeout(we,300)),await ZQ(t),YMe(t,n-1,s);throw new HI("dom-overlay","the composite is ~100% fully transparent after two repaints — nothing in it painted a backdrop, so the PNG would read as a flat black frame. This subject's background is painted by an element OUTSIDE what is being photographed (a detached clone carries no ancestors), or its own DOM never mounted.")}const J=16,$=Math.max(0,D.left-J),G=Math.max(0,D.top-J),se=Math.min(m,D.right+J),pe=Math.min(g,D.bottom+J),ue=t.ownerDocument.createElement("canvas");ue.width=Math.max(1,se-$),ue.height=Math.max(1,pe-G);const Ce=ue.getContext("2d");if(!Ce)throw new HI("composite-output","no 2d canvas context");const Ae=getComputedStyle(t).backgroundColor;Ae&&Ae!=="transparent"&&Ae!=="rgba(0, 0, 0, 0)"&&(Ce.fillStyle=Ae,Ce.fillRect(0,0,ue.width,ue.height)),Ce.drawImage(c,$,G,ue.width,ue.height,0,0,ue.width,ue.height);const Pe=XMe(ue,t.ownerDocument);let be;try{be=ue.toDataURL("image/png")}catch(we){throw qge("composite-output",we)}const X=be.indexOf(",");return{base64:X>=0?be.slice(X+1):be,mimeType:"image/png",layers:d,...Pe?{flatness:Pe}:{}}}if(d.canvases===0&&d.domOverlays>0&&!s.allowTransparent){const D=mrn(S,m,g,n);if(D.kind==="retry")return await new Promise(J=>setTimeout(J,300)),await ZQ(t),YMe(t,n-1,s);if(D.kind==="blank")throw new HI("dom-overlay",`the composite is ~${Math.round(D.transparentFraction*100)}% fully transparent after two repaints — nothing in it painted a backdrop, so the PNG would read as a flat black frame. This subject's background is painted by an element OUTSIDE what is being photographed (a detached clone carries no ancestors), or its own DOM never mounted.`)}const k=XMe(c,t.ownerDocument);let A;try{A=c.toDataURL("image/png")}catch(D){throw qge("composite-output",D)}const F=A.indexOf(",");return{base64:F>=0?A.slice(F+1):A,mimeType:"image/png",layers:d,...k?{flatness:k}:{}}}function vxt(t,n,s,c=1,d=1){for(const m of n){const g=_Ve(m);if(!g)continue;const S=m.getBoundingClientRect();t.fillStyle=g,t.fillRect((S.left-s.left)*c,(S.top-s.top)*d,S.width*c,S.height*d)}}async function r9t(t,n,s){const c=t.getBoundingClientRect(),d=Math.max(1,Math.round(s?.size?.width??c.width)),m=Math.max(1,Math.round(s?.size?.height??c.height)),g=s?.size?d/c.width:1,S=s?.size?m/c.height:1;n.width!==d&&(n.width=d),n.height!==m&&(n.height=m);const k=n.getContext("2d");if(!k)throw new HI("composite-output","no 2d canvas context");if(k.clearRect(0,0,d,m),s?.cropToContent!==!0){const se=getComputedStyle(t).backgroundColor;se&&se!=="transparent"&&se!=="rgba(0, 0, 0, 0)"&&(k.fillStyle=se,k.fillRect(0,0,d,m))}s?.includeDocumentStyles&&vxt(k,HFt(t),c,g,S);const F=Array.from(t.querySelectorAll("canvas")).some(se=>!ove(se))?null:s?.overlayCache?.take(t,d,m),D=F?.backdrops??WFt(t);vxt(k,D,c,g,S);const J=Array.from(t.querySelectorAll("canvas")).filter(se=>{const pe=se.getBoundingClientRect();return se.width>0&&se.height>0&&pe.width>0&&pe.height>0}),$=new Map;for(const se of J)try{const pe=se.getBoundingClientRect(),ue=await s?.canvasFrame?.(se)??se;$.set(se,ue),k.drawImage(ue,(pe.left-c.left)*g,(pe.top-c.top)*S,pe.width*g,pe.height*S)}catch(pe){throw qge("canvas",pe)}let G=0;try{if(F)F.image&&k.drawImage(F.image,0,0,d,m),G=F.overlayCount;else{const se=performance.now(),pe=GFt(t,d/g,m/S,{includeDocumentStyles:s?.includeDocumentStyles,projectRoot:s?.projectRoot,documentCssText:s?.includeDocumentStyles?await irn(t.ownerDocument):void 0,canvasPixels:$,transparentBackdrops:new Set(D),snapshots:s?.snapshots,rasterSize:{width:d,height:m}});if(pe){const ue=new Image;ue.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(pe.svg)}`,await ue.decode(),k.drawImage(ue,0,0,d,m),G=pe.overlayCount,s?.overlayCache?.store(t,d,m,{image:ue,overlayCount:pe.overlayCount,backdrops:D},performance.now()-se)}else s?.overlayCache?.store(t,d,m,{image:null,overlayCount:0,backdrops:D},performance.now()-se)}}catch(se){throw qge("dom-overlay",se)}return{canvases:J.length,domOverlays:G}}const grn=Object.freeze(Object.defineProperty({__proto__:null,CaptureLayerError:HI,FLATNESS_GRID:X4,FLATNESS_WARN_AT:mVe,OVERLAY_CACHE_MAX_AGE_MS:qFt,OVERLAY_REBUILD_COST_MULTIPLIER:VFt,OVERLAY_REBUILD_FLOOR_MS:zFt,TRANSPARENT_PIXEL_LIMIT:QFt,ancestorBackdrops:HFt,buildOverlaySvg:GFt,capturePlayComposite:ZFt,createImageSnapshotCache:trn,createOverlayFrameCache:rrn,drawPlayCompositeFrame:r9t,hasExcessNearBlackPixels:t9t,isRootCanvas:ove,measureFlatness:XFt,opaqueBackgroundColor:_Ve,rootSurfaceBackdrops:WFt,sampleFlatness:XMe,transparentPixelFraction:e9t,waitForFiniteMotion:YFt,waitForPaint:ZQ},Symbol.toStringTag,{value:"Module"}));function ste(t){const n=TC(),s=n?.descriptor.presentation?.()??void 0,c=s2(n?.descriptor.id),d=Lye(),m=c?.selection?c.selection.read():d?.adapter?.selection?.get()??(c?[...t.selectedEntityIds]:[]),g=c?.read()??void 0,S=lDt();return{version:1,workspace:zS(),...Nhe()===null?{}:{style:Nhe()},keymap:dR(),...s?{document:s}:{},...m.length>0?{selection:{ids:[...m]}}:{},...g?{viewport:g}:{},...S?{panel:S}:{}}}function yrn(t){return fCt(ste(t),window.location.href)}let $I=[],vrn=0,n9t=0;const ZMe=new Set;function QMe(){n9t++;for(const t of ZMe)t()}function i9t(){QMe()}function eje(){return X1()}function hVe(){let t=null;for(const{session:n}of $I){const s=n.startedAt?.()??null;s!==null&&(!t||s>t.startedAt)&&(t={startedAt:s,endedAt:n.endedAt?.()??null})}return t}function o9t(){for(const{session:t}of $I){const n=t.restartRequired?.()??null;if(n!==null)return n}return null}function s9t(){(X1().find(s=>(s.restartRequired?.()??null)!==null)??X1().find(s=>s.mounted()&&s.restart))?.restart?.()}function gVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.frameCanvas?.()??null;if(n)return n}return null}function yVe(t){for(const n of X1())if(!(!n.mounted()||!n.snapshotFrame)&&n.frameCanvas?.()===t)return n.snapshotFrame();return null}function vVe(t){for(const n of X1()){if(!n.mounted()||!n.command)continue;const s=n.command(t);if(s)return s}return null}function bVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.scenes?.()??null;if(n&&typeof n.goToScene=="function")return n}return null}function sve(){for(const t of X1()){if(!t.mounted())continue;const n=t.surface?.()??null;if(n)return n}return null}function SVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.coverage?.()??null;if(n)return n}return null}function xVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.authoringRefusal?.()??null;if(n!==null)return n}return null}function a9t(t){return X1().find(s=>s.mounted()&&s.remount)?.remount?.(t)??null}function c9t(t){if($I.some(s=>s.session.id===t.id))throw new Error(`live session "${t.id}" is already registered.`);const n={session:t,seq:vrn++};return $I=[...$I,n],QMe(),()=>{$I=$I.filter(s=>s!==n),QMe()}}function X1(){return[...$I].sort((t,n)=>(t.session.priority??0)-(n.session.priority??0)||t.seq-n.seq).map(t=>t.session)}function wVe(){return X1().some(t=>t.mounted())}function ave(){return X1().some(t=>t.playing())}function TVe(){for(const t of X1())t.stop()}function l9t(t){for(const n of X1()){const s=n.instanceContainer(t);if(s)return s}return null}function CVe(t){return ZMe.add(t),()=>ZMe.delete(t)}function u9t(){return n9t}const brn=Object.freeze(Object.defineProperty({__proto__:null,anyLiveSessionMounted:wVe,anyLiveSessionPlaying:ave,dispatchLiveCommand:vVe,liveAuthoringRefusal:xVe,liveCoverage:SVe,liveFrameCanvas:gVe,liveInstanceContainer:l9t,liveRestartRequired:o9t,liveRunWindow:hVe,liveScenes:bVe,liveSessions:eje,liveSessionsVersion:u9t,liveSurface:sve,notifyLiveSessionsChanged:i9t,registerLiveSession:c9t,remountLiveSelection:a9t,restartLiveSession:s9t,snapshotLiveFrame:yVe,stopAllLiveSessions:TVe,subscribeLiveSessions:CVe},Symbol.toStringTag,{value:"Module"}));async function f9t(t){const n=yVe(t);return n||Utn(t)}function Srn(t){const n=t;return n&&typeof n.toDataURL=="function"?n:null}const xrn=Object.freeze(Object.defineProperty({__proto__:null,liveCanvasFrame:f9t,readablePngSource:Srn},Symbol.toStringTag,{value:"Module"}));let qZ=null;function wrn(){if(!qZ)return!0;try{return qZ()}catch{return!0}}function Trn(t){return qZ=t,()=>{qZ===t&&(qZ=null)}}const d9t=new WeakMap;function NSn(t,n){d9t.set(t,n)}function p9t(t){for(const n of Array.from(t.querySelectorAll("iframe"))){const s=d9t.get(n),c=s?.container();if(s&&c)return{container:c,canvasFrame:s.canvasFrame}}return null}function cve(t){return Array.from(document.querySelectorAll("[data-workspace-document-id]")).find(n=>n.dataset.workspaceDocumentId===t&&(kRe()===null||n.dataset.workspaceViewId===kRe()))??null}const tje=["document","header","shelf","rail","outliner","content","utility","menubar"],Crn={rail:{part:"properties",view:"volter.properties",title:"Properties"},outliner:{part:"outliner",view:"volter.outliner",title:"Outliner"},content:{part:"content",view:"volter.content",title:"Content"}},Ern={header:{prefix:"document-header",title:"header strip"},shelf:{prefix:"document-shelf",title:"tool shelf"}};function EVe(t){const n=[t.container,...t.extraRoots??[]];for(let c=0;c<n.length;c++)for(const d of n[c].querySelectorAll("[data-volter-portal]")){const m=d.dataset.volterPortal;if(m===void 0)continue;const g=document.querySelector(`[data-volter-portal-content="${CSS.escape(m)}"]`);g&&!n.includes(g)&&n.push(g)}const s=p9t(t.container)?.container;return s&&!n.includes(s)&&n.push(s),n}function krn(t){return document.querySelector(`[data-volter-part="${t}"]`)}function Arn(){const t=[...document.querySelectorAll("[data-volter-utility]")].find(s=>{const c=s.getBoundingClientRect();return c.width>0&&c.height>0});if(!t)throw new Error("No utility view is showing, so scope 'utility' has nothing to reach. Show one in the panel (View: Open View…) and retry.");const n=t.dataset.volterUtility??"";return{container:t,name:"utility",id:n,title:n}}function Drn(){const t=document.querySelector('[data-testid="app-menubar"]');if(!t)throw new Error("The application menus are not on screen, so scope 'menubar' has nothing to reach.");return{container:t,name:"menubar",id:"app-menubar",title:"application menus"}}function Prn(t){if(t==="utility")return Arn();if(t==="menubar")return Drn();const n=t==="rail"||t==="outliner"||t==="content"?Crn[t]:null;if(n){const s=krn(n.part),c=t==="rail"?[...document.querySelectorAll('[data-testid="inspector-panel"][data-volter-inspector-presentation="card"]')].find(d=>{const m=d.getBoundingClientRect();return m.width>0&&m.height>0})??null:null;if(c&&!s)return{container:c,name:t,id:n.view,title:"Inspector card"};if(c&&s)return{container:s,extraRoots:[c],name:t,id:n.view,title:`${n.title} and the inspector card`};if(!s)throw new Error(`The ${n.title} view (${n.view}) is not open, so scope '${t}' has nothing to reach. Open it from the workbench (View: Open View…) and retry — this door reads and drives what is on screen, and reports its absence rather than an empty match list.`);return{container:s,name:t,id:n.view,title:n.title}}return Irn(t)}function Irn(t){const n=TC();if(!n)throw new Error(`No active editor document, so scope '${t}' has nothing to reach. The editor's own views are still readable: scope 'outliner', scope 'rail', and scope 'content'.`);const s=Pp()??n.descriptor.id;if(s===a0&&t!=="header")throw new Error("The Game document is out of this door's scope: drive and read a game through its own doors — `game.commands()`/`game.command(n)`/`game.state(n)`, or `page(step)` during play — never through synthetic DOM gestures. Its header strip (the editor's own Play bar and controls) is scope 'header'; the editor's views around it stay readable: scope 'outliner' and scope 'rail'.");const c=cve(s);if(!c)throw new Error(`The active document's surface is not mounted: ${s} (${n.title}). Present it first (\`editor.present\`) and retry.`);const d=c.closest(".volter-dock-document")??c;if(t==="document")return{container:d,name:t,id:s,title:n.title};const m=Ern[t],g=d.querySelector(`[data-testid="${m.prefix}:${s}"]`);if(!g)throw new Error(`The active document "${n.title}" (${s}) draws no ${m.title}, so scope '${t}' has nothing to reach. Its whole box is scope 'document'.`);return{container:g,name:t,id:s,title:`${n.title} — ${m.title}`}}function bxt(t,n){return new Error(`Out of scope: ${n}. This step ran in scope '${t.name}' — "${t.title}" (${t.id}) — and reaches ONLY inside it. The other surfaces are named, not walked to: ${tje.filter(s=>s!==t.name).map(s=>`'${s}'`).join(", ")} (pass \`{ scope }\`). The rest of the page is deliberately unreachable.`)}const Sxt=400,xxt="rgb(1, 2, 3)",Nrn="rgba(0, 0, 0, 0)";function Orn(t,n){const s=getComputedStyle(t).getPropertyValue(n).trim();if(s==="")return"";const d=t.ownerDocument.createElement("span");d.style.position="absolute",d.style.pointerEvents="none",d.style.visibility="hidden",d.style.backgroundColor=xxt,t.appendChild(d);try{d.style.backgroundColor=`var(${n})`;const m=getComputedStyle(d).backgroundColor.trim();return m===xxt||m===Nrn?s:m}finally{d.remove()}}function Rrn(t,n){const s=getComputedStyle(t),c={};for(const d of n)c[d]=d.startsWith("--")?Orn(t,d):s.getPropertyValue(Frn(d)).trim();return c}function Frn(t){return t.includes("-")?t:t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function wxt(t,n,s){const c=t,d={};for(const A of Array.from(t.attributes))d[A.name]=A.value;const m=c.getBoundingClientRect(),g=t.value,S=t.checked,k=(c.innerText||t.textContent||"").trim();return{index:n,tag:t.tagName.toLowerCase(),text:k.length>Sxt?`${k.slice(0,Sxt)}…`:k,attributes:d,rect:{x:m.x,y:m.y,width:m.width,height:m.height},...typeof g=="string"?{value:g}:{},...typeof S=="boolean"?{checked:S}:{},...c.hasAttribute("disabled")?{disabled:!0}:{},...s&&s.length>0?{styles:Rrn(c,s)}:{}}}function mme(t,n,s){const c=m9t(t,n),d=c[s];if(!d)throw bxt(t,`${JSON.stringify(n)} matched ${c.length} element(s), so index ${s} does not exist`);if(!EVe(t).some(m=>m.contains(d)))throw bxt(t,`${JSON.stringify(n)} resolved outside the document's container`);return d}function Mrn(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{bubbles:!0,cancelable:!0,composed:!0,view:t.ownerDocument.defaultView??window,clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1],button:0,buttons:1}}function kVe(t){let n=t;for(;n&&!(n.hasAttribute("tabindex")||n.tabIndex>=0||n.isContentEditable);)n=n.parentElement;(n??t).focus({preventScroll:!0})}function _9t(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1]}}function jrn(t,n){const{clientX:s,clientY:c}=_9t(t,n);return t.ownerDocument.elementFromPoint(s,c)??t}async function Lrn(t,n=1,s,c={},d){const m={...Mrn(t,s),...d,...c},g=Math.max(1,Math.round(n)),S=t.ownerDocument;for(let k=1;k<=g;k++){const A={...m,detail:k},F={...m,buttons:0,detail:k};zZ(t,()=>{t.dispatchEvent(new PointerEvent("pointerdown",{...A,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",A)),kVe(t)}),await new Promise(J=>setTimeout(J,0));const D=t.isConnected?t:S.elementFromPoint(m.clientX??0,m.clientY??0)??S.body;if(zZ(D,()=>{D.dispatchEvent(new PointerEvent("pointerup",{...F,pointerType:"mouse"})),D.dispatchEvent(new MouseEvent("mouseup",F)),D===t&&t.dispatchEvent(new MouseEvent("click",F))}),D!==t)return}g>=2&&zZ(t,()=>t.dispatchEvent(new MouseEvent("dblclick",{...m,buttons:0,detail:g})))}function Brn(t,n,s,c){const d=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t:null;if(!d)throw new Error(`Cannot type into a <${t.tagName.toLowerCase()}>: this verb drives a text field. Click the control that opens one first (the Outliner's rename is a double click — \`click(selector, { clicks: 2 })\`), then \`type\` into the field it puts up.`);const m=t instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,g=Object.getOwnPropertyDescriptor(m,"value")?.set,S=A=>{g?g.call(d,A):d.value=A};d.focus();let k=d.value;s&&k!==""&&(d.select?.(),k="",S(k),d.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0,inputType:"deleteContentBackward"})));for(const A of[...n]){const F={key:A,bubbles:!0,cancelable:!0,composed:!0};d.dispatchEvent(new KeyboardEvent("keydown",F)),k+=A,S(k),d.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0,inputType:"insertText",data:A})),d.dispatchEvent(new KeyboardEvent("keyup",F))}if(c){const A={key:"Enter",code:"Enter",bubbles:!0,cancelable:!0,composed:!0};d.dispatchEvent(new KeyboardEvent("keydown",A)),d.dispatchEvent(new KeyboardEvent("keyup",A))}}function zZ(t,n){const c=(t.ownerDocument.defaultView??window).Element.prototype,d=c.setPointerCapture,m=c.releasePointerCapture;c.setPointerCapture=()=>{},c.releasePointerCapture=()=>{};try{n()}finally{c.setPointerCapture=d,c.releasePointerCapture=m}}let rje=null;function $rn(){const t=rje;if(t===null)throw new Error("Nothing is held: release lets go of a drag that `hold: true` left pressed, and none is.");return rje=null,zZ(t.element,()=>{t.element.dispatchEvent(new PointerEvent("pointerup",{...t.end,pointerType:"mouse"})),t.element.dispatchEvent(new MouseEvent("mouseup",t.end)),t.button===2&&t.element.dispatchEvent(new MouseEvent("contextmenu",t.end))}),t.element}function qrn(t,n,s,c,d={},m=[],g=0,S=!1){const k=t.getBoundingClientRect(),A=g===0?1:g===2?2:4,F=(J,$)=>({bubbles:!0,cancelable:!0,composed:!0,view:window,clientX:k.x+k.width*J,clientY:k.y+k.height*$,button:g,buttons:A,altKey:d.altKey??!1,ctrlKey:d.ctrlKey??!1,metaKey:d.metaKey??!1,shiftKey:d.shiftKey??!1}),D=F(n[0],n[1]);zZ(t,()=>{t.dispatchEvent(new PointerEvent("pointermove",{...D,button:-1,buttons:0,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",{...D,buttons:0})),t.dispatchEvent(new PointerEvent("pointerdown",{...D,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",D)),kVe(t);const J=Math.max(1,Math.round(c)),$=[n,...m,s];for(let se=0;se+1<$.length;se++){const pe=$[se],ue=$[se+1];for(let Ce=1;Ce<=J;Ce++){const Ae=Ce/J,Pe=F(pe[0]+(ue[0]-pe[0])*Ae,pe[1]+(ue[1]-pe[1])*Ae);t.dispatchEvent(new PointerEvent("pointermove",{...Pe,button:-1,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",Pe))}}const G={...F(s[0],s[1]),buttons:0};if(S){rje={element:t,end:G,button:g};return}t.dispatchEvent(new PointerEvent("pointerup",{...G,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mouseup",G)),g===2?t.dispatchEvent(new MouseEvent("contextmenu",G)):g===0&&n[0]===s[0]&&n[1]===s[1]&&t.dispatchEvent(new MouseEvent("click",G))})}function zrn(t,n){if(n)return n;const s=document.activeElement;return s instanceof HTMLElement&&EVe(t).some(c=>c.contains(s))?s:t.container}function m9t(t,n){try{return EVe(t).flatMap(s=>Array.from(s.querySelectorAll(n)))}catch(s){throw new Error(`Invalid selector ${JSON.stringify(n)}: ${String(s)}`)}}function pOe(t,n){const s=n.selector===void 0?null:mme(t,n.selector,n.index??0);return zrn(t,s)}const Vrn={" ":"Space","`":"Backquote","-":"Minus","=":"Equal","[":"BracketLeft","]":"BracketRight","\\":"Backslash",";":"Semicolon","'":"Quote",",":"Comma",".":"Period","/":"Slash"};function Urn(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:Vrn[t]??t}const Jrn={Backspace:8,Tab:9,Enter:13,Escape:27," ":32,PageUp:33,PageDown:34,End:35,Home:36,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Delete:46};function Wrn(t){if(/^[a-z0-9]$/i.test(t))return t.toUpperCase().charCodeAt(0);const n=/^F([1-9]|1[0-2])$/.exec(t);return n?111+Number(n[1]):Jrn[t]??0}function Hrn(t){const n=t===void 0?null:/^Numpad([0-9])$/.exec(t);return n?96+Number(n[1]):t==="NumpadDecimal"?110:null}function Txt(t,n){const s=new KeyboardEvent(t,Grn(n)),c=Hrn(n.code)??Wrn(n.key);return Object.defineProperty(s,"keyCode",{get:()=>c}),Object.defineProperty(s,"which",{get:()=>c}),s}function Grn(t){return{key:t.key,code:t.code??Urn(t.key),bubbles:!0,cancelable:!0,composed:!0,...t.ctrlKey?{ctrlKey:!0}:{},...t.metaKey?{metaKey:!0}:{},...t.shiftKey?{shiftKey:!0}:{},...t.altKey?{altKey:!0}:{}}}function Krn(t,n){const s=[...t.options].map(d=>d.value);if(!s.includes(n))throw new Error(`No option with value ${JSON.stringify(n)} on this <select> — it offers ${s.map(d=>JSON.stringify(d)).join(", ")||"(no options)"}. The value is the option's \`value\`, not its label; \`query\` reports both.`);const c=Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype,"value")?.set;c?c.call(t,n):t.value=n,t.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),t.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}const _Oe=["query","click","drag","release","key","paste","select","type"];function Xrn(t){const n=t?.action;if(!_Oe.includes(n))throw new Error(`Unknown document-probe action ${JSON.stringify(n)}. This door has exactly ${_Oe.length} verbs: ${_Oe.join(", ")} (\`editor.document.*\`).`);const s=t.scope??"document";if(!tje.includes(s))throw new Error(`Unknown scope ${JSON.stringify(s)}. This door addresses exactly these surfaces: ${tje.map(c=>`'${c}'`).join(", ")}.`);return Prn(s)}async function Yrn(t){const n=Xrn(t);if(Pp()===a0&&wrn()&&t.action!=="query"&&t.action!=="click"&&t.action!=="select")throw new Error(`'${t.action}' is refused while the Game document holds the keyboard: its events would reach the game. Query, click and select still work; click into a view's field first, or drive the game through the game's own doors.`);const s={name:n.name,id:n.id,title:n.title},c=d=>({scope:s,matched:1,elements:[wxt(d,0)]});switch(t.action){case"query":{const d=m9t(n,t.selector);return{scope:s,matched:d.length,elements:d.slice(0,t.limit??25).map((m,g)=>wxt(m,g,t.styles))}}case"click":{const d=mme(n,t.selector,t.index??0),m=t.at;if(m!==void 0&&!(Array.isArray(m)&&m.length===2&&m.every(S=>typeof S=="number"&&Number.isFinite(S))))throw new Error(`click's \`at\` is [x, y], fractions of the element's box; got ${JSON.stringify(m)}.`);const g=d.ownerDocument===document?d:jrn(d,m);return await Lrn(g,t.clicks??1,m&&g===d?m:void 0,{...t.altKey?{altKey:!0}:{},...t.ctrlKey?{ctrlKey:!0}:{},...t.metaKey?{metaKey:!0}:{},...t.shiftKey?{shiftKey:!0}:{}},g===d?void 0:_9t(d,m)),c(g)}case"type":{const d=pOe(n,t);return Brn(d,t.text,t.replace??!0,t.enter??!0),c(d)}case"drag":{if(t.button!==void 0&&![0,1,2].includes(t.button))throw new Error(`Unknown button ${JSON.stringify(t.button)}: 0 primary, 1 middle, 2 secondary.`);const d=mme(n,t.selector,t.index??0),m=d.getBoundingClientRect(),g=[["from",t.from],...(t.via??[]).map((S,k)=>[`via[${k}]`,S]),["to",t.to]];for(const[S,k]of g)if(!k.every(F=>Number.isFinite(F)&&F>=0&&F<=1)&&!(t.leave&&S!=="from"&&k.every(F=>Number.isFinite(F))))throw new Error(`drag ${S} ${JSON.stringify(k)} is not a fraction of the element's box: points are [x, y] from 0 to 1 from its top-left ([0.5, 0.5] is its centre). This element is ${Math.round(m.width)} x ${Math.round(m.height)} px at (${Math.round(m.x)}, ${Math.round(m.y)}); a page pixel px becomes (px - ${Math.round(m.x)}) / ${Math.round(m.width)}.`);return qrn(d,t.from,t.to,t.steps??8,{...t.altKey===void 0?{}:{altKey:t.altKey},...t.ctrlKey===void 0?{}:{ctrlKey:t.ctrlKey},...t.metaKey===void 0?{}:{metaKey:t.metaKey},...t.shiftKey===void 0?{}:{shiftKey:t.shiftKey}},t.via??[],t.button??0,t.hold===!0),c(d)}case"release":return c($rn());case"key":{const d=pOe(n,t);document.activeElement instanceof Node&&d.contains(document.activeElement)||kVe(d);const m=document.activeElement,g=m instanceof HTMLElement&&d.contains(m)?m:d;return g.dispatchEvent(Txt("keydown",t)),t.holdMs&&await new Promise(S=>setTimeout(S,t.holdMs)),g.dispatchEvent(Txt("keyup",t)),c(d)}case"select":{const d=mme(n,t.selector,t.index??0);if(!(d instanceof HTMLSelectElement))throw new Error(`${JSON.stringify(t.selector)} resolved a <${d.tagName.toLowerCase()}>, not a <select>. This verb sets a dropdown's value; a button or a checkbox takes \`click\`.`);return Krn(d,t.value),c(d)}case"paste":{const d=pOe(n,t),m=new DataTransfer;return m.setData("text/plain",t.text),d.dispatchEvent(new ClipboardEvent("paste",{bubbles:!0,cancelable:!0,composed:!0,clipboardData:m})),c(d)}}}const Cxt="editor-chrome-root";function Zrn(t){return async n=>{const s={width:Math.max(1,Math.round(n.clientWidth*t)),height:Math.max(1,Math.round(n.clientHeight*t))};return await Jtn(n,s)??f9t(n)}}async function Qrn(t,n){const s=document.getElementById(Cxt);if(!s)throw new Error(`The editor chrome root (#${Cxt}) is not mounted, so there is no editor page to photograph.`);let c=s;if(n?.region==="document"){const k=Pp(),A=k?cve(k):null;if(!A)throw new Error("No active document is showing, so there is no document region to photograph.");c=A}const d=n?.scale??window.devicePixelRatio??1,m=c.getBoundingClientRect(),g={width:Math.max(1,Math.round(m.width*d)),height:Math.max(1,Math.round(m.height*d))};return{...await ZFt(c,{canvasFrame:Zrn(d),includeDocumentStyles:!0,size:g}),view:ste(t),size:g,scale:d}}function ate(){return ave()}function OSn(){return!ate()}const zge=new Set;function enn(t,n){const s={collect:t,reusableKeys:n?.reusableKeys??[]};return zge.add(s),()=>{zge.delete(s)}}function tnn(t=null){const n={};for(const s of zge)Object.assign(n,s.collect(t));return n}function rnn(){const t=[];for(const n of zge)t.push(...n.reusableKeys);return t}let VZ=null;const GI=[];function nnn(t){if(VZ=t,GI.length!==0)for(const n of GI.splice(0,GI.length))n.resolve(t)}function inn(){return new Promise((t,n)=>{GI.push({resolve:t,reject:n})})}function onn(t){VZ===t&&(VZ=null,GI.length!==0&&queueMicrotask(()=>{if(!(VZ!==null||GI.length===0))for(const n of GI.splice(0,GI.length))n.reject(new Error("the hierarchy panel (GameHierarchy) unmounted before it published the mutated row tree, so the mutation cannot be acknowledged against a rendered tree. Open the Hierarchy panel in the workspace dock and retry."))}))}function Ext(){return VZ}function snn(t,n){const s=[],c=[];for(const d of t.rows){const m=ann(d,t);for(;c.length>d.depth;)c.pop();const g=c.length>0?c[c.length-1]:void 0;if(g===void 0)s.push(m);else{const S=g.children;S===void 0?g.children=[m]:S.push(m)}c.push(m)}return{rowCount:t.rows.length,window:{start:t.window.start,end:t.window.end},...t.searchTerm?{search:t.searchTerm}:{},...t.scopeId?{scopeId:t.scopeId}:{},playState:n.playState,activeViewportTab:n.activeViewportTab,roots:s}}function ann(t,n){const{node:s}=t;return t.more?{id:s.id,label:`… ${t.more.hidden} more`,depth:t.depth,childCount:0,internalChildCount:0,expandable:!1,more:{hidden:t.more.hidden}}:{id:s.id,label:s.label,...s.typeLabel===void 0?{}:{typeLabel:s.typeLabel},...s.role===void 0?{}:{role:s.role},depth:t.depth,childCount:s.childIds.length,internalChildCount:n.foldedInternalCount(s.id),expandable:t.hasChildren,...t.hasChildren?{expanded:n.isExpanded(t)}:{},...n.isInternal(s.id)?{internal:!0}:{},...n.isComponentRoot(s.id)?{componentRoot:!0}:{}}}const cnn=5e3,lnn=350,kxt=240;let c_e=null;function unn(t){if(typeof document>"u")return;const n=Pp(),s=n===null?null:cve(n),c=s?.closest(".volter-editor-theme")??document.querySelector(".volter-editor-theme")??document.body,d=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;if(s&&!d){const k=s.getBoundingClientRect(),A=document.createElement("div");A.dataset.testid="photograph-flash",Object.assign(A.style,{position:"fixed",left:`${k.left}px`,top:`${k.top}px`,width:`${k.width}px`,height:`${k.height}px`,background:"#ffffff",pointerEvents:"none",zIndex:"var(--volter-z-toast)"}),c.append(A),A.animate([{opacity:.85},{opacity:0}],{duration:lnn,easing:"ease-out"}).finished.finally(()=>A.remove())}c_e?.remove();const m=document.createElement("button");m.type="button",m.dataset.testid="photograph-notice",m.title="Photograph taken. Click to put it away.",m.setAttribute("aria-label","Photograph taken"),Object.assign(m.style,{position:"fixed",right:"var(--volter-space-4)",bottom:"40px",width:"220px",padding:"0",border:"1px solid var(--volter-selection-border)",borderRadius:"var(--volter-radius-md)",background:"var(--volter-surface-raised)",boxShadow:"var(--volter-shadow-lg)",overflow:"hidden",cursor:"pointer",zIndex:"var(--volter-z-toast)"});const g=document.createElement("img");g.src=`data:image/png;base64,${t}`,g.alt="The photograph just taken of the document",Object.assign(g.style,{display:"block",width:"100%",height:"auto"}),m.append(g),c.append(m),c_e=m;const S=()=>{if(c_e===m&&(c_e=null),!!m.isConnected){if(d){m.remove();return}m.animate([{transform:"translateX(0)"},{transform:"translateX(130%)"}],{duration:kxt,easing:"ease-in",fill:"forwards"}).finished.finally(()=>m.remove())}};m.addEventListener("click",S,{once:!0}),d||m.animate([{transform:"translateX(130%)"},{transform:"translateX(0)"}],{duration:kxt,easing:"ease-out"}),window.setTimeout(S,cnn)}const fnn=new Set(["raw","url","worker","sharedworker","inline","init"]),dnn=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],pnn=/\.stories\.[cm]?[jt]sx?$/i;function _nn(t){let n;try{n=new URL(t,"http://volter.invalid")}catch{return null}return{path:n.pathname,query:n.search}}function mnn(t){const n=new URLSearchParams(t);for(const s of n.keys())if(fnn.has(s))return!0;return!1}function hnn(t,n,s){if(t.startTime<s)return null;const c=_nn(t.name);if(!c)return null;const{path:d,query:m}=c;if(!d.includes(n)||!dnn.some(A=>d.endsWith(A))||pnn.test(d)||d.endsWith("/volter.adapter.ts")||mnn(m))return null;const g=new URLSearchParams(m),S=g.get(Rge)??"";g.delete(Rge);const k=g.toString();return{group:`${S}\0${d}`,path:d,url:`${d}${k?`?${k}`:""}`}}function gnn(t,n){const s=n.projectRoot.endsWith("/")?n.projectRoot.slice(0,-1):n.projectRoot;if(s.length===0)return[];const c=new Map;for(const m of t){const g=hnn(m,s,n.since);if(!g)continue;const S=c.get(g.group);S===void 0?c.set(g.group,{path:g.path,urls:[g.url]}):S.urls.includes(g.url)||S.urls.push(g.url)}const d=[];for(const{path:m,urls:g}of c.values())g.length>1&&d.push({path:m,urls:g});return d}function RSn(t){return`Cross-root module split: ${t.path} was loaded ${t.urls.length} times in one mount, so each root holds its OWN copy of its module-level state (a \`let\` written by one root is invisible to the other). Urls: `+t.urls.join(" | ")}function h9t(){const t=globalThis.performance;if(!t||typeof t!="object")return null;const n=t;return typeof n.now!="function"||typeof n.getEntriesByType!="function"?null:n}let Gk=null,QQ=[],UO=null,$B=[];function FSn(){$B=[],Gk?.disconnect(),Gk=null,QQ=[];const t=h9t();if(!t){UO=null;return}UO=t.now(),typeof PerformanceObserver<"u"&&(Gk=new PerformanceObserver(n=>{QQ.push(...n.getEntries())}),Gk.observe({type:"resource"}))}function MSn(t){const n=h9t();if(!n||UO===null)return UO=null,$B;const s=Gk?[...QQ,...Gk.takeRecords()]:n.getEntriesByType("resource");return Gk?.disconnect(),Gk=null,QQ=[],$B=gnn(s,{projectRoot:t,since:UO}),UO=null,$B}function ynn(){return $B}function jSn(){Gk?.disconnect(),Gk=null,QQ=[],$B=[],UO=null}const nje=new Set;let jY=null;function vnn(t){return nje.add(t),()=>{nje.delete(t)}}function bnn(){return jY||(jY=Promise.all([...nje].map(t=>Promise.resolve().then(t))).then(()=>{}).finally(()=>{jY=null}),jY)}const Snn=500;function Axt(t){const n=globalThis,s=n.requestIdleCallback;if(typeof s=="function"){const d=s.call(globalThis,t,{timeout:Snn});return()=>n.cancelIdleCallback?.call(globalThis,d)}const c=setTimeout(t,0);return()=>clearTimeout(c)}const hme=new Map;function LSn(t,n){return hme.set(t,n),()=>{hme.get(t)===n&&hme.delete(t)}}function xnn(){return Object.fromEntries([...hme].map(([t,n])=>[t,n()]))}let g9t=null;function BSn(t){g9t=t}function wnn(){return g9t}const Tnn=["three","canvas","dom"];function Dxt(t){return t.provenance?.source==="boundary"}function Cnn(t){return Tnn.includes(t)?t:null}function Enn(){const t=Lye(),n=TC()?.descriptor.provenance?.rootId,s=n?u0()?.regions.find(g=>g.id===n):void 0,c=t?.adapter&&n&&s?{worldId:n,surface:s.surface,adapter:t.adapter}:null,d=mPt();if(!d)return c?[c]:[];if(d instanceof gy){const g=d.childAdapters().filter(S=>S.role==="world"&&!Dxt(S.adapter)).map(S=>({worldId:S.worldId,surface:Cnn(S.kind),adapter:S.adapter}));return c?[c,...g.filter(S=>S.worldId!==n)]:g}if(Dxt(d)||d===wnn())return c?[c]:[];const m={worldId:"root",surface:sve(),adapter:d};return c?[c,m]:[m]}const qB=new Map,ije=new Set;let y9t=0;function Pxt(){y9t++;for(const t of ije)t()}function $Sn(t){return qB.set(t.id,t),Pxt(),()=>{qB.get(t.id)===t&&(qB.delete(t.id),Pxt())}}function qSn(t){return t?qB.get(t)??null:null}function knn(){return[...qB.values()]}function zSn(t){if(t===null)return null;for(const n of qB.values())if(n.kind==="game"&&n.instanceId===t)return n;return null}function VSn(t){return ije.add(t),()=>ije.delete(t)}function USn(){return y9t}function AVe(t){return t.length===0?void 0:t.some(s=>s.hiddenBy===null)?null:[...t].sort((s,c)=>c.area-s.area)[0]?.hiddenBy??null}function Ann(t){return t.filter(n=>n.hiddenBy!==null).sort((n,s)=>s.area-n.area).map(n=>`${n.label} (${n.hiddenBy}, ${n.inlineHiding===null?"from an ancestor or a stylesheet":n.failsafeEligible?"its own inline style, unowned":"its own inline style, by a declared owner"}, ${Math.round(n.area)}px²)`)}function v9t(t){return t.filter(n=>n.failsafeEligible&&n.inlineHiding!==null)}function Dnn(t){return t.some(n=>n.hiddenBy!==null)?v9t(t).length>0:null}const Pnn=4e3;function Inn(t){const n=t.deadlineMs??Pnn;if(t.framesProduced<=0)return{fire:!1};if(t.hiddenForMs===null||t.hiddenForMs<n)return{fire:!1};if(AVe(t.canvases)===null)return{fire:!1};const s=[...v9t(t.canvases)].sort((c,d)=>d.area-c.area)[0];return s?{fire:!0,target:s,ledger:`canvas reveal FAILSAFE FIRED — the "${s.label}" canvas was still hidden by its own inline ${s.inlineHiding} (${s.hiddenBy}) ${Math.round(t.hiddenForMs/1e3)}s after frames started arriving, so the editor cleared that style to put the picture on screen. THIS IS A DEFECT, not a feature: the mount path that hid this canvas never ran its own reveal, and the failsafe fires ONCE — a second mount in this state stays blank. Report it upstream with the mount that owns this canvas.`}:{fire:!1}}const gme=new Map;function JSn(t){return gme.set(t.id,t),()=>{gme.get(t.id)===t&&gme.delete(t.id)}}function Nnn(){return[...gme.values()]}const mOe=10,l_e=5e3;function Onn(t){if(t.mode!=="edit")return{status:"ok",detail:"not in Edit mode — the invariant does not apply while playing"};if(t.loops===null)return{status:"unmeasured",detail:"nothing enumerated this session’s game loops",fix:"the session vitals collector must report a loop fact per live runtime (play, ingest, module)"};const n=t.designTimeSurfaces,s=[...t.loops.filter(S=>S.running).map(S=>S.name),...(n??[]).filter(S=>S.advanced===!0&&S.transportAdvanced!==!0).map(S=>`${S.label} (design-time surface)`)],c=(n??[]).filter(S=>S.advanced===!0&&S.transportAdvanced===!0);if(s.length>0)return{status:"violation",detail:`Edit mode, but content time is advancing in ${s.length} place(s): ${s.join(", ")}`,cause:`content time is advancing while the editor is in Edit: ${[...s].sort().join(", ")}`,missing:"authoring is happening on top of moving content: the thing under the gizmo moves while you edit it, a pose you are reading is a frame of an animation rather than what the source says, and every other instrument reports a still editor",fix:"one time policy at the shared viewport stack — presentation (orbit, turntable, dressing) keeps running while CONTENT time (mixers, useFrame, simulation) is held at design time"};const d=(n??[]).filter(S=>S.advanced===null),m=t.loops.map(S=>S.name).join(", ");if(n===null)return{status:"unmeasured",detail:`${t.loops.length} enumerated loop(s) stopped (${m}), but nothing enumerated this session's design-time surfaces`,fix:"the session vitals collector must enumerate the Object3DDocumentViewport stack’s live sessions"};if(d.length>0)return{status:"unmeasured",detail:`${t.loops.length} enumerated loop(s) stopped (${m}), and ${n.length-d.length} design-time surface(s) still — but ${d.length} publish no content clock: `+d.map(S=>`${S.label} (${S.unavailable??"no reason given"})`).join(", "),fix:"each design-time surface host must publish its own content clock (`Object3DDocumentSession.contentClock`) so this row can speak for it"};const g=c.length===0?"":`; ${c.length} advancing under an engaged transport (${c.map(S=>S.label).join(", ")})`;return{status:"ok",detail:`Edit is static — ${t.loops.length} enumerated loop(s) stopped (${m}), and ${n.length} design-time surface(s) hold their content time${g}`}}function Rnn(t){return t.presentedThreeRoots===null?{status:"unmeasured",detail:"nothing enumerated which three roots this session presents",fix:"the session vitals collector must read the mounted roots off the active authoring surface"}:t.presentedThreeRoots.length<=1?{status:"ok",detail:`the scene presents ${t.presentedThreeRoots.length} three root(s)`}:{status:"violation",detail:`the scene presents ${t.presentedThreeRoots.length} three roots at once: ${t.presentedThreeRoots.join(", ")}`,cause:`the scene presents more than one three root: ${[...t.presentedThreeRoots].sort().join(", ")}`,missing:"a scene has ONE root by the authoring ontology — scenes swap inside it. Two presented at once means selection, framing and the gizmo are working over a tree no single document owns",fix:"declare one three root and swap SCENES inside it (ARCHITECTURE-CORE §Roots); a second world belongs behind its own document"}}function Fnn(t){return t.canvasHiddenBy===void 0?{status:"unmeasured",detail:"no canvas was found to measure",fix:"the session vitals collector must enumerate this session’s canvases before this can be checked"}:t.framesProduced===null?{status:"unmeasured",detail:"nothing sampled whether frames are being produced",fix:"the session vitals collector must run its frame sampler before this can be checked"}:t.canvasHiddenBy===null?{status:"ok",detail:"this session presents a revealed canvas"}:t.framesProduced===0?{status:"ok",detail:`every canvas is hidden (largest: ${t.canvasHiddenBy}) and nothing is drawing — not the failsafe's case`}:t.canvasHidesItself===!1?{status:"ok",detail:`every canvas is hidden but none is hiding ITSELF — the workspace is showing a non-canvas document, which is what the user opened: ${(t.hiddenCanvases??[]).join("; ")}`}:{status:"violation",detail:`${t.framesProduced} frame(s) produced in ${t.sampleWindowMs??0}ms while every canvas is hidden and one hides ITSELF: ${(t.hiddenCanvases??[]).join("; ")}`,cause:`frames are being produced while every canvas is hidden and one hides itself (${t.canvasHiddenBy})`,missing:"the session is burning frames onto a surface nobody can see — the user is looking at an empty viewport while every instrument reports a healthy, rendering session",fix:"reveal the canvas as soon as it produces frames — the bounded failsafe in `coverage/canvas-reveal.ts` does it for inline hiding on the canvas itself and says so loudly; hiding from an ancestor or a stylesheet is its owner’s to undo"}}function Mnn(t){return t.directManipulationExpected===!1?{status:"ok",detail:"browser automation is rendering evidence — no person is waiting on direct manipulation"}:t.tabVisible?t.fps===null?{status:"unmeasured",detail:t.fpsUnavailable??"no frame-rate sample exists",fix:"the session vitals collector must sample frame cadence while the tab is visible"}:t.fps>=mOe?{status:"ok",detail:`visible tab rendering at ${t.fps.toFixed(1)}fps`}:{status:"violation",detail:`visible tab rendering at ${t.fps.toFixed(1)}fps, below the ${mOe}fps floor`,cause:`the visible tab is rendering below the ${mOe}fps floor`,missing:"the editor has stopped being a direct-manipulation tool: a drag, a click and a keystroke all land seconds after the user made them",fix:"find the cost with the Profiler’s Overview (long-animation-frame attribution) — main-thread saturation and GPU/compositor cost are separate hunts"}:{status:"ok",detail:"the tab is hidden — a hidden tab is not owed a frame rate"}}function jnn(t){return t.play===null?{status:"ok",detail:"nothing is playing — the invariant does not apply"}:t.tabVisible?t.play.framesDrawn===null?{status:"unmeasured",detail:t.play.framesUnavailable??"the play session reports no frame count, so nothing can say whether it drew",fix:"the play session’s render loop must expose a frame count (its profiler source carries one only while telemetry is enabled)"}:t.play.framesDrawn>0?{status:"ok",detail:`play has drawn ${t.play.framesDrawn} frame(s)`}:t.play.startedMsAgo<l_e?{status:"ok",detail:`play started ${t.play.startedMsAgo}ms ago and has not drawn yet — inside the ${l_e}ms deadline`}:{status:"violation",detail:`play started ${t.play.startedMsAgo}ms ago and has drawn no frame (deadline ${l_e}ms)`,cause:`play started and no frame has drawn within the ${l_e}ms deadline`,missing:"the user pressed ▶ and the game is not running: the viewport shows whatever was there before, and every other instrument reports a live play session",fix:"find why the run loop never rendered — the console’s own errors from the play session are the first read"}:{status:"ok",detail:"the tab is hidden — the engine hidden-pauses the loop, so no frame is owed"}}const b9t={"edit-mode-static":Onn,"single-root-scene":Rnn,"canvas-revealed":Fnn,"visible-tab-fps-floor":Mnn,"play-drew-a-frame":jnn},Lnn=Object.keys(b9t);function Bnn(t){return Lnn.map(n=>({id:n,...b9t[n](t)}))}function $nn(t){if(t.status!=="violation")return null;const n=[`invariant "${t.id}" VIOLATED — ${t.cause??t.id}`];return t.missing&&n.push(` cost: ${t.missing}`),t.fix&&n.push(` fix: ${t.fix}`),n.join(`
|
|
1397
1397
|
`)}const oje=new Set;function qnn(t){return oje.add(t),()=>{oje.delete(t)}}function znn(){for(const t of[...oje])try{t()}catch(n){Qs.error(`a session-sample subscriber threw: ${String(n)}`,"invariant")}}const Vnn=5e3;let Aw={frames:0,since:0},UZ=null,zB=null,oR=null;const JZ=new Map;function Unn(t){const n=window.getComputedStyle(t);if(n.display==="none")return"display: none";if(n.visibility==="hidden")return"visibility: hidden";if(Number.parseFloat(n.opacity||"1")===0)return"opacity: 0";const s=t.getBoundingClientRect();return s.width<=0||s.height<=0?"zero-size box":null}const Jnn="editor-canvas";function Wnn(t){const n=t.style;return n.display==="none"?"display":n.visibility==="hidden"?"visibility":n.opacity!==""&&Number.parseFloat(n.opacity)===0?"opacity":null}function S9t(){return[...document.querySelectorAll("canvas")].map((n,s)=>{const c=n.getAttribute("data-testid"),d=n.getBoundingClientRect();return{label:c??(n.className||`canvas #${s}`),area:Math.max(0,d.width)*Math.max(0,d.height),hiddenBy:Unn(n),inlineHiding:Wnn(n),failsafeEligible:c!==Jnn&&!n.closest(".monaco-editor")}})}function Hnn(){const t=knn();if(t.length===0)return{framesDrawn:null,framesUnavailable:"no render loop registered a performance source, so nothing counts this session’s frames"};let n=null;for(const s of t){const d=s.profiler.getSnapshot().frames.at(-1);d&&(n=Math.max(n??0,d.id))}return n===null?{framesDrawn:null,framesUnavailable:"the registered render loop records no frames (its profiler has neither profiling nor telemetry enabled)"}:{framesDrawn:n,framesUnavailable:null}}const IO=new Map,LY=new Map;function Gnn(){const t=Nnn(),n=new Set,s=t.map(c=>{const{id:d,label:m}=c;n.add(d);let g=null;try{g=c.transportAdvances?.()??null}catch{g=null}const S=LY.get(d);g===null?LY.delete(d):LY.set(d,g);const k=g===null||S===void 0?{}:{transportAdvanced:g!==S};let A;try{A=c.contentClock()}catch(J){return IO.delete(d),{id:d,label:m,advanced:null,unavailable:`its content clock threw: ${String(J)}`,...k}}if(A===null)return IO.delete(d),{id:d,label:m,advanced:null,unavailable:"its content clock is temporarily unavailable",...k};const F=A,D=IO.get(d);return IO.set(d,F),D===void 0?{id:d,label:m,advanced:null,unavailable:"first reading — nothing to compare it against yet",...k}:{id:d,label:m,advanced:F!==D,...k}});for(const c of[...IO.keys()])n.has(c)||IO.delete(c);for(const c of[...LY.keys()])n.has(c)||LY.delete(c);return s}function Knn(t=Date.now()){const n=ate(),s=Aw.since===0?0:t-Aw.since,c=Aw.frames,d=s>0&&c>0?c*1e3/s:null,m=n?{startedMsAgo:oR===null?0:t-oR,...Hnn()}:null;return{mode:n?"play":"edit",loops:[...eje().map(g=>({name:`${g.id} session`,running:g.mounted()})),...eje().map(g=>({name:`${g.id} playing`,running:g.playing()}))],designTimeSurfaces:Gnn(),presentedThreeRoots:mPt()?Enn().filter(g=>g.surface==="three").map(g=>g.worldId):null,...(()=>{const g=S9t();return{canvasHiddenBy:AVe(g),canvasHidesItself:Dnn(g),hiddenCanvases:Ann(g)}})(),framesProduced:Aw.since===0?null:c,sampleWindowMs:Aw.since===0?null:s,tabVisible:!document.hidden,directManipulationExpected:navigator.webdriver!==!0,fps:d,fpsUnavailable:d===null?Aw.since===0?"the frame sampler has not opened a window yet":"no frame was produced in the sample window":null,play:m}}function x9t(){return Bnn(Knn())}let mB=null;const Ixt=new WeakSet;function Xnn(t,n){const s=AVe(t);if(s==null){mB=null;return}if(mB===null){mB=n;return}const c=Inn({canvases:t,framesProduced:Aw.frames,hiddenForMs:n-mB});if(!c.fire)return;const d=[...document.querySelectorAll("canvas")].find(m=>(m.getAttribute("data-testid")??m.className)===c.target.label);!d||Ixt.has(d)||(Ixt.add(d),c.target.inlineHiding==="display"&&d.style.removeProperty("display"),c.target.inlineHiding==="visibility"&&d.style.removeProperty("visibility"),c.target.inlineHiding==="opacity"&&d.style.removeProperty("opacity"),Qs.error(c.ledger,"invariant"))}function Ynn(){const t=x9t();for(const n of t){const s=$nn(n);if(!s){JZ.delete(n.id);continue}if(n.id==="visible-tab-fps-floor"){const c=(JZ.get(n.id)??0)+1;if(JZ.set(n.id,c),c<3)continue}Qs.warn(s,"invariant")}return t}function Znn(){if(zB!==null)return Nxt;Aw={frames:0,since:Date.now()};const t=()=>{Aw.frames++,UZ=requestAnimationFrame(t)};return UZ=requestAnimationFrame(t),zB=setInterval(()=>{const n=ate();n&&oR===null&&(oR=Date.now()),n||(oR=null),znn(),Xnn(S9t(),Date.now()),Ynn(),Aw={frames:0,since:Date.now()}},Vnn),Nxt}function Qnn(){Aw={frames:0,since:zB===null?0:Date.now()},oR=null,mB=null,JZ.clear(),IO.clear()}function Nxt(){UZ!==null&&cancelAnimationFrame(UZ),zB!==null&&clearInterval(zB),UZ=null,zB=null,Aw={frames:0,since:0},oR=null,mB=null,JZ.clear()}let sje=null;function ein(t){sje=t}function DVe(){return sje?(sje(),!0):!1}let PVe=[];const aje=new Set;function Oxt(t){PVe=t;for(const n of aje)n()}function tin(){return PVe}function rin(t){return aje.add(t),()=>aje.delete(t)}function nin(t){const n=PVe.find(s=>s.id===t);return n?(n.run(),!0):!1}let eee=null;function iin(t){eee=t}function oin(t){eee&&Promise.resolve(eee(`${t}.focus`)).catch(()=>{})}const sin=/^volter\.([^.]+)\.(.+)$/;async function ain(t,n){if(eee)return await eee(t,n);const s=sin.exec(t);if(!s)throw new Error(`No command "${t}". Without the Code-OSS frame there is no command service, so the only commands this editor answers are a view's own verbs, spelled volter.<view>.<verb> (for example volter.blender-node-view.view-all).`);const{invokeViewVerb:c}=await lo(async()=>{const{invokeViewVerb:d}=await Promise.resolve().then(()=>y4r);return{invokeViewVerb:d}},[]);return c(s[1],s[2],n)}const IVe=[{kind:"agent",title:"Conversations",hotkeyScope:"workspace",selectableText:!0,icon:"users"},{kind:"project-work",title:"Project work",hotkeyScope:"workspace",selectableText:!0,icon:"list"},{kind:"hierarchy",title:"Hierarchy",hotkeyScope:"hierarchy",selectableText:!1,region:"outliner",icon:"outliner"},{kind:"assets",title:"Content",hotkeyScope:"asset-browser",selectableText:!1,icon:"folder-open"},{kind:"asset-library",title:"Asset Library",hotkeyScope:"asset-browser",selectableText:!1,icon:"cubes-stacked"},{kind:"inspector",title:"Inspector",hotkeyScope:"inspector",selectableText:!1,region:"properties",icon:"properties"}];async function cin(t){const{liveCanvasFrame:n}=await lo(async()=>{const{liveCanvasFrame:s}=await Promise.resolve().then(()=>xrn);return{liveCanvasFrame:s}},void 0);return n(t)}async function lin(...t){const{capturePlayComposite:n}=await lo(async()=>{const{capturePlayComposite:s}=await Promise.resolve().then(()=>grn);return{capturePlayComposite:s}},void 0);return n(...t)}async function Rxt(){return lo(()=>Promise.resolve().then(()=>rPt),void 0)}async function uin(){return lo(()=>Promise.resolve().then(()=>fcn),void 0)}function fin(t,n=5e3){return bC().some(s=>s.id===t)?Promise.resolve():new Promise(s=>{let c=0,d=()=>{};const m=()=>{clearTimeout(c),d(),s()};d=Xye(()=>{bC().some(g=>g.id===t)&&m()}),bC().some(g=>g.id===t)?m():c=window.setTimeout(m,n)})}async function din(t){if(t){if(!bC().some(n=>n.id===t)){const n=t.startsWith(Mme);if(n&&(await(await Rxt()).refreshProjectToolContributions(),await fin(t)),!bC().some(s=>s.id===t)){const s=bC().map(d=>d.id),c=n?(await Rxt()).contributionFailureHint(t.slice(Mme.length)):"";throw new Error(`Utility is not registered: ${t}.`+c+` Registered utilities: ${s.length>0?s.join(", "):"(none)"}. A project contributes one by exporting a \`workspace.utility\` tool contribution; its view id is \`tool:<contribution-id>\`.`)}}vC(t)}}async function w9t(t){const n=IVe.map(c=>c.kind),s=n.find(c=>c===t);if(!s)throw new Error(`"${t}" is not a panel of this editor. Panels: ${n.join(", ")}.`);if(UBe(s),!await CC(()=>lDt()===s))throw new Error(`The ${s} panel is not in this workspace's layout, so it could not be focused. Panels: ${n.join(", ")}.`);return s}function pin(t,n){if(X0("workspace:scene"))return"workspace:scene";const s=l0().map(c=>c.descriptor.id);throw new Error(`This session has no Scene document open. Open documents: ${s.join(", ")||"none"}; address one as { kind: "workspace", id }.`)}async function _in(t){let n=!1;if(await CC(()=>(n=WMe(t.id),n||mxt(t.id)!==null),PR),n)return Pp();const s=mxt(t.id);throw s?new Error(s):new Error(`World document is not registered: ${t.id}`)}async function min(t,n){const s=g=>g.filter(S=>S.id===n||S.label===n);let c=[];if(!await CC(()=>{const g=gBe(t)?.adapter?.stories;if(!g)return!1;c=g.storiesFor("");const S=s(c);return S.length===1?(g.apply(S[0].id,S[0].id),!0):c.length>0},PR))throw new Error(`The board mounted no stories provider within the wait window; story ${JSON.stringify(n)} was not applied.`);const m=s(c);if(m.length!==1)throw new Error(m.length===0?`No story matches ${JSON.stringify(n)}. This board's stories: ${c.map(g=>g.label).join(", ")||"(none)"}.`:`${JSON.stringify(n)} is ambiguous (${m.length} stories match) — use the story id: ${m.map(g=>g.id).join(" | ")}`)}async function hin(t,n){const s=await Yye(n.kind,t,n);if(s!==null)return s;let c=!1;if(await CC(()=>(c=xN(n.id)||X0(n.id),c||hxt(n.id)!==null),PR),c)return n.story!==void 0&&await min(n.id,n.story),n.id;const d=hxt(n.id);throw d?new Error(d):new Error(`Workspace document is not available: ${n.id}`)}async function gin(t,n){const s=await Yye(n.kind,t,n);if(s===null){const{kind:c,...d}=n,m=Ckr();throw new Error(`Nothing in this editor can open a '${c}' document (${JSON.stringify(d)}). Either no package registered an opener for that view address, or the subject does not exist. Registered view addresses: ${m.length>0?m.join(", "):"(none)"}.`)}return s}function yin(t){const n=ckr();return n===null?"":n.includes(t)?`"${t}" is a kind in this project's document table, not an address — a document opens in the editor registered for its KIND, so address it as { kind: "document", id: "<that table entry's id>" }.`:n.length===0?"":`This project's document table holds ${n.map(s=>`"${s}"`).join(", ")}; each opens as { kind: "document", id: "<the table entry's id>" }.`}async function vin(t,n){if(!n)return Pp();if(!bvr(n.kind))throw new Error(`present-view does not know the document kind "${String(n.kind)}". An EditorView addresses a document by one of: ${lCt.join(", ")}. `+yin(String(n.kind)));switch(n.kind){case"scene":return pin();case"world":return _in(n);case"asset":case"tool":case"document":case"story":case"project-tool":case"generation":return gin(t,n);case"workspace":return hin(t,n)}}function bin(t){const n=t.indexOf(",");return{base64:n>=0?t.slice(n+1):t,mimeType:"image/png"}}const Fxt=cve;function Sin(t,n,s){if(!s?.degenerate)return null;const c=gVe();return!c||!n.contains(c)?null:`This door photographs the "${t}" document, which for a live three ingest holds the GAME'S own canvas — created without \`preserveDrawingBuffer\`, so its pixels can only be read from inside the game's own render pass. This game did not draw inside that window (a render-on-demand world sitting idle, or a loop the Edit-tab input gate has frozen), so the frame came back BLANK (${s.warning??"essentially one flat colour"}) — a PNG that reads as a real image. The editor's own renderer is drawing this same world in the Scene viewport (the mount adopts the captured scene), so capture \`workspace:scene\` instead — or drive the game until it renders and ask again.`}async function T9t(t,n){const s=TC();if(!s)throw new Error("No active editor document to capture.");const{descriptor:c,title:d}=s,m=ste(t),g={id:c.id,title:d,kind:c.kind,...c.provenance?.sourcePath?{sourcePath:c.provenance.sourcePath}:{},...c.provenance?.rootId?{rootId:c.provenance.rootId}:{}},S=s2(c.id);if(S?.capture){const J=S.capture(n);if(!J)throw new Error(`Object3D document could not be captured: ${c.id}`);return{...bin(J),document:g,view:m,source:"object3d-document"}}const k=c.id===a0?l9t()??Fxt(c.id):Fxt(c.id);if(!k)throw new Error(`Active document surface is not mounted: ${c.id}`);const A=p9t(k),F=await lin(A?.container??k,{canvasFrame:A?.canvasFrame??cin,includeDocumentStyles:c.id!==a0&&!A}),D=Sin(c.id,k,F.flatness);if(D)throw new Error(D);return{base64:F.base64,mimeType:F.mimeType,document:g,view:m,source:c.id===a0?"game-composite":c.id==="workspace:scene"?"scene-viewport":"document-composite",layers:F.layers,...F.flatness?{flatness:F.flatness}:{}}}const xin="workspace:scene";function win(t){return s2(t)??s2(xin)}function Tin(t,n,s,c){const d=s2(n),m=win(n);s.selection&&(d?.selection?d.selection.apply(s.selection.ids):t.selectMultiple(s.selection.ids));const g=s.viewport;g?.grid!==void 0&&(n&&M_e(n)?PAr(n,g.grid):c.push("This document draws no grid.")),g?.diagnostic&&!m?.setDiagnostic(g.diagnostic)&&c.push(`Diagnostic ${g.diagnostic} is unavailable for this document.`),g?.camera&&!m?.setCamera(g.camera)&&c.push(typeof g.camera=="string"?`${g.camera==="isometric"?"Isometric":g.camera} camera is unavailable for this document.`:"The camera is unavailable for this document."),s.selection?.focus||g?.frame==="selection"?m?.frame("selection")||c.push("The requested selection could not be framed."):g?.frame==="document"&&(m?.frame("document")||c.push("Document framing is unavailable for this document."))}async function Vge(t,n,s={}){if(n?.version!==1)throw new Error("present-view requires EditorView version 1.");const c=Object.keys(n).filter(F=>!jmt.includes(F));if(c.length>0)throw new Error(`present-view does not know ${c.map(F=>`"${F}"`).join(", ")}. An EditorView carries: ${jmt.join(", ")}. A document's own address (kind, and the fields that kind reads) goes under "document".`);const d=ste(t);if(n.style!==void 0){const F=OR().map(D=>D.id);if(!F.includes(n.style))throw new Error(`present-view requires a style of ${F.join(", ")}, got ${String(n.style)}.`);r$e(n.style)}if(n.workspace!==void 0){if(!kB(n.workspace))throw new Error(`present-view requires a workspace of ${KBe().join(", ")}, got ${String(n.workspace)}.`);if(zS()!==n.workspace){const F=CDt();a2(n.workspace),await Promise.race([F,new Promise(D=>setTimeout(D,3e3))])}}const m=[];n.keymap!==void 0&&n.keymap!==dR()&&m.push(`Keymap "${n.keymap}" was not applied — a view reports the keymap, it does not set it. This project is on "${dR()}" (its adapter's declaration, or its own settings).`);const g=await vin(t,n.document);await din(n.utility);const S=s2(g);if(await S?.prepare?.(),!S?.selection&&n.selection?.ids.length&&(n.document?.kind==="scene"||n.document?.kind==="world")){const F=n.selection.ids;if(!await CC(()=>F.every(J=>Y0(t).hierarchy.node(J)!==null),PR))throw new Error(`Shared view selection is not available: ${F.join(", ")}`)}g&&Pp()!==g&&X0(g),Tin(t,g,n,m),n.panel!==void 0&&await w9t(n.panel);const k=fCt(n,window.location.href);s.updateUrl!==!1&&window.history.replaceState(window.history.state,"",k);const A={view:n,url:k,warnings:m};return(s.origin??"agent")==="agent"&&(await uin()).showEditorPresentationNotice({presented:A,previousView:d}),A}const Uge=new Map;let C9t=0;const cje=new Set;function E9t(){C9t+=1;for(const t of cje)t()}function Cin(t,n,s){const c=Uge.get(t);c&&c.assetPath===n&&c.actions.length===s.length&&c.actions.every((d,m)=>d===s[m])||(Uge.set(t,{assetPath:n,actions:s}),E9t())}function Ein(t){Uge.delete(t)&&E9t()}function kin(t){const n=[];for(const s of Uge.values())s.assetPath===t&&n.push(...s.actions);return n}function Ain(t){return cje.add(t),()=>cje.delete(t)}function Mxt(){return C9t}const Din=[],jxt=new Set;let Pin=0;function Iin(t){for(const n of Din)if(n.match(t))return n;return null}function Nin(t){return jxt.add(t),()=>{jxt.delete(t)}}function Lxt(){return Pin}const O_={open:{id:"project-asset.open",shortcut:"Enter"},rename:{id:"project-asset.rename",shortcut:"F2"},move:{id:"project-asset.move",shortcut:null},duplicate:{id:"project-asset.duplicate",shortcut:"Mod+D"},delete:{id:"project-asset.delete",shortcut:"Delete"},copyPath:{id:"project-asset.copy-path",shortcut:"Mod+Shift+C"},reveal:{id:"project-asset.reveal",shortcut:null},refresh:{id:"project-asset.refresh",shortcut:"Mod+R"},import:{id:"project-asset.import",shortcut:null},createFolder:{id:"project-asset.create-folder",shortcut:"Mod+Shift+N"}},eD=[],lje=new Set,BY=new Map;let k9t=0;function hOe(){k9t++;for(const t of lje)t()}function Oin(t){const n=eD.findIndex(s=>s.owner===t.owner&&s.id===t.id);if(n>=0){const[s]=eD.splice(n,1);s&&(BY.get(s)?.(),BY.delete(s))}return eD.push(t),eD.sort((s,c)=>(s.order??0)-(c.order??0)),BY.set(t,t.subscribe(hOe)),hOe(),()=>{const s=eD.indexOf(t);s<0||(eD.splice(s,1),BY.get(t)?.(),BY.delete(t),hOe())}}const Rin=[];function Fin(){return eD.length===0?Rin:eD}function A9t(t){return lje.add(t),()=>{lje.delete(t)}}function Jge(){return k9t}function D9t(t){for(const n of eD){const s=n.entries({components:[t],surface:null})[0];if(s)return{source:n,entry:s}}return null}function Min(){const t=X0e();return t?{path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}}:null}function jin(t,n){return Ye.useEffect(()=>()=>Ein(t),[t]),Ye.useCallback(s=>{n!==null&&Cin(t,n,s)},[t,n])}function Lin({id:t,title:n,file:s,tool:c,Component:d}){Ye.useSyncExternalStore(K0e,zQ),Ye.useSyncExternalStore(Dye,lN,lN),Ye.useSyncExternalStore(Fye,uN,uN);const m=Min(),g=jin(t,m?.path??null),S=Ye.useRef(null),k=Ye.useCallback(F=>{S.current?.(),S.current=F===null?null:NBe(`building ${F.replace(/^building /,"")}`)},[]);Ye.useEffect(()=>()=>S.current?.(),[]);const A=Ye.useCallback(F=>s$({...F,id:`contribution:${t}:${F.title}`,...F.tone==="warning"?{fades:!0}:{}}),[t]);return q.jsxs("div",{"data-testid":`asset-inspector-tool-${t}`,style:{padding:8,borderTop:"1px solid var(--volter-structural-divider)",marginTop:4},children:[q.jsxs("div",{style:{...YCr,marginBottom:4},children:[q.jsx(dc,{icon:Kk.tool.extension,tone:"muted",style:{marginRight:4}}),n]}),q.jsx(OBe,{file:s,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:vBe,account:sBe(),play:Rye(),asset:m,setActions:g,notify:A,work:k})})]})}function Bin(t,n){if(n<=0)return[];if(t.length===0)return Array.from({length:n},()=>0);const s=new Array(n),c=t.length/n;let d=0;for(let m=0;m<n;m++){const g=Math.floor(m*c),S=Math.max(g+1,Math.floor((m+1)*c));let k=0;for(let A=g;A<S;A++)k=Math.max(k,Math.abs(t[A]??0));s[m]=k,d=Math.max(d,k)}return d<=1e-8?s.fill(0):s.map(m=>m/d)}const P9t=32,uje=new Set,Bxt=new Map,$xt=new Map;let sR=null,WZ=null,I9t=0,fje=0,VB=0,wN=0,qxt=!1,pD={url:null,progress:0,playing:!1};function $in(){for(const t of uje)t()}function I$(t){pD.url===t.url&&pD.playing===t.playing&&Math.abs(pD.progress-t.progress)<.002||(pD=t,$in())}function NVe(){return sR??=new AudioContext,sR}function qin(){if(qxt||typeof window>"u")return;qxt=!0;const t=()=>{if(!sR)return;const n=pD.url,s=wN;sR.resume().then(()=>{n&&s===wN&&!WZ&&sR?.state==="running"&&R9t(n,s)})};window.addEventListener("pointerdown",t,{capture:!0}),window.addEventListener("keydown",t,{capture:!0})}function OVe(){if(VB&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(VB),VB=0,!WZ)return;const t=WZ;WZ=null,t.onended=null;try{t.stop()}catch{}t.disconnect()}function N9t(){if(VB=0,!pD.playing||!sR||fje<=0)return;const t=Math.min(1,(sR.currentTime-I9t)/fje);I$({url:pD.url,progress:t,playing:t<1}),t<1&&typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(N9t))}function zin(t,n,s){if(s!==wN)return;OVe();const c=NVe(),d=c.createBufferSource(),m=c.createGain();m.gain.value=1,d.buffer=t,d.connect(m),m.connect(c.destination),d.onended=()=>{s===wN&&I$({url:n,progress:1,playing:!1})},d.start(),WZ=d,I9t=c.currentTime,fje=t.duration,I$({url:n,progress:0,playing:!0}),typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(N9t))}async function O9t(t){const n=Bxt.get(t);if(n)return n;const s=(async()=>{const c=await fetch(t);if(!c.ok)throw new Error(`Audio preview could not read ${t}.`);const d=await c.arrayBuffer();return NVe().decodeAudioData(d.slice(0))})().catch(()=>null);return Bxt.set(t,s),s}async function R9t(t,n){qin();const s=await O9t(t);if(n!==wN)return;if(!s){I$({url:t,progress:0,playing:!1});return}const c=NVe();c.state==="suspended"&&(await c.resume(),n!==wN)||c.state==="running"&&zin(s,t,n)}function Vin(t){return uje.add(t),()=>uje.delete(t)}function Uin(){return pD}function Jin(t){const n=++wN;OVe(),I$({url:t,progress:0,playing:!0}),R9t(t,n)}function Win(t){t&&pD.url!==t||(wN+=1,OVe(),I$({url:null,progress:0,playing:!1}))}function Hin(t,n=P9t){const s=`${t}#${n}`,c=$xt.get(s);if(c)return c;const d=O9t(t).then(m=>m?Bin(m.getChannelData(0),n):Array.from({length:n},()=>0));return $xt.set(s,d),d}let _Z=[];function WSn(t){return _Z=[..._Z,t],()=>{_Z=_Z.filter(n=>n!==t)}}function F9t(t){return _Z.find(n=>n.accepts(t))??null}const RVe={folder:"var(--volter-asset-icon-folder)",model:"var(--volter-asset-icon-model)",prefab:"var(--volter-asset-icon-prefab)",component:"var(--volter-asset-icon-component)",audio:"var(--volter-asset-icon-audio)",image:"var(--volter-asset-icon-image)",video:"var(--volter-asset-icon-video)",json:"var(--volter-asset-icon-json)",unknown:"var(--volter-asset-icon-unknown)",source:"var(--volter-asset-icon-source)"},Gin={folder:fee,model:J0r,prefab:GB,component:uLe,audio:pLe,image:O0r,video:V0r,json:mLe,unknown:HTt,source:aCt};function vD({kind:t,size:n=24}){return q.jsx(dc,{icon:Gin[t],style:{fontSize:n,color:RVe[t]}})}const Kin=100,Xin=50,Yin=new t6t(t=>{const n=F9t(t);return n?n.render(t):Promise.reject(new Error(`No model preview loader for ${t}.`))},2);function M9t(t,n){const[s,c]=Ye.useState(null),[d,m]=Ye.useState(!1),[g,S]=Ye.useState(null),[k,A]=Ye.useState(!1);Ye.useEffect(()=>{c(null),m(!1),S(null),A(!1)},[t]),Ye.useEffect(()=>{let D=!1,J=null;return D$e().then($=>{if(D)return;const G=$.status==="ok"?$.manifest.entries[t.replace(/^\/+/,"")]:void 0;if(!k&&G?.path&&(G.state==="generated"||G.state==="upstream")){S(G.path.startsWith("/")?G.path:`/${G.path}`);return}return J=Yin.request(t,n),J.promise}).then($=>{!D&&$&&c($)}).catch(()=>{D||m(!0)}),()=>{D=!0,J?.cancel()}},[k,n,t]);const F=Ye.useCallback(()=>{S(null),A(!0)},[]);return{src:g??s,fromManifest:g!==null,failed:d,rejectManifest:F}}function j9t({url:t}){const n=M9t(t,Kin);return n.failed?q.jsx(vD,{kind:"model"}):n.fromManifest&&n.src?q.jsx("img",{src:n.src,alt:"cached model preview",onError:n.rejectManifest,style:{width:"100%",height:"100%",objectFit:"contain"}}):n.src?q.jsx("img",{src:n.src,alt:"model preview",style:{width:"100%",height:"100%",objectFit:"contain"}}):q.jsx("div",{style:{width:28,height:28,margin:"0 auto",display:"flex",alignItems:"center",justifyContent:"center"},children:q.jsx("div",{className:"volter-anim-spin",style:{width:16,height:16,border:`2px solid ${ahe[2]}`,borderTopColor:RVe.model,borderRadius:"50%"}})})}function Zin({url:t,name:n}){const[s,c]=Ye.useState(()=>Array.from({length:P9t},()=>.15)),d=Ye.useSyncExternalStore(Vin,Uin);Ye.useEffect(()=>{let S=!1;return Hin(t).then(k=>{S||c(k)}),()=>{S=!0}},[t]);const m=d.url===t,g=m?d.progress:0;return q.jsx("div",{role:"img","aria-label":`${n} waveform preview`,style:{display:"flex",alignItems:"center",gap:1,width:"86%",height:"62%"},children:s.map((S,k)=>{const A=k/s.length<=g;return q.jsx("i",{style:{flex:1,height:`${12+S*88}%`,background:"var(--volter-asset-icon-audio)",opacity:m&&A?1:.28,borderRadius:1}},k)})})}function wR({kind:t,name:n,variant:s="tile"}){const c=RVe[t],d=s==="cell";return t==="audio"?q.jsxs("svg",{role:"img","aria-label":`${n} waveform preview`,viewBox:"0 0 64 48",width:d?"78%":52,height:d?"78%":44,children:[q.jsx("rect",{width:"64",height:"48",rx:"4",fill:"var(--volter-bg-inset)"}),Array.from({length:16},(m,g)=>q.jsx("rect",{x:g*4+1,y:24-g*13%18/2,width:"2",height:g*13%18+3,fill:c},g))]}):q.jsxs("svg",{role:"img","aria-label":`${n} ${t} preview`,viewBox:"0 0 52 48",width:d?"66%":48,height:d?"72%":44,children:[q.jsx("rect",{x:"5",y:"3",width:"42",height:"42",rx:"4",fill:"var(--volter-bg-inset)",stroke:c}),q.jsx("path",{d:"M13 15h26M13 23h18M13 31h22",stroke:c,strokeWidth:"3",strokeLinecap:"round"})]})}function L9t(t,n,s,c){if(t<=0||n<=0||s<=0||c<=0)return 1;const d=t<=s?Math.floor(s/t):0,m=n<=c?Math.floor(c/n):0,g=Math.min(d,m);return g>=1?g:1/Math.max(Math.ceil(t/s),Math.ceil(n/c))}function HSn(t,n,s,c,d){return t==="fit"?L9t(n,s,c,d):t}function Qin(t,n,s){const c=Math.max(1,s.sourceWidth??s.width),d=Math.max(1,s.sourceHeight??s.height);t.width=c,t.height=d;const m=t.getContext("2d");if(!m)return;m.imageSmoothingEnabled=!1,m.clearRect(0,0,c,d);const g=oZr(s);if(s.rotated){m.save(),m.translate(s.trimX,s.trimY+g.width),m.rotate(-Math.PI/2),m.drawImage(n,g.x,g.y,g.width,g.height,0,0,g.width,g.height),m.restore();return}m.drawImage(n,g.x,g.y,g.width,g.height,s.trimX,s.trimY,g.width,g.height)}function B9t({sheetUrl:t,frame:n,scale:s,maxEdge:c}){const d=Ye.useRef(null),m=Math.max(1,n.sourceWidth??n.width),g=Math.max(1,n.sourceHeight??n.height),S=c!=null?L9t(m,g,c,c):s??1,k=Math.max(1,Math.round(m*S)),A=Math.max(1,Math.round(g*S));return Ye.useEffect(()=>{const F=d.current;if(!F)return;const D=new Image;let J=!1;return D.onload=()=>{J||Qin(F,D,n)},D.src=t,()=>{J=!0}},[n,t]),q.jsx("canvas",{ref:d,width:m,height:g,"aria-hidden":!0,style:{width:k,height:A,imageRendering:"pixelated",display:"block"}})}const $9t={fontSize:11,color:Zf[3],marginBottom:2},eon={fontSize:11,color:Zf[1],wordBreak:"break-all"};function gOe({asset:t}){Ye.useSyncExternalStore(u2,rA,rA);const n={path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}};return JDt().map(s=>{let c=!1;try{c=s.match(n)}catch(d){console.error(`[tool contributions] ${s.file}'s asset match() threw.`,d)}return c?q.jsx(Lin,{id:s.id,title:s.title,file:s.file,tool:s.tool,Component:s.Component},`${s.id}:${s.version}`):null})}function zxt(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ph({label:t,value:n}){return q.jsxs("div",{children:[q.jsx("div",{style:$9t,children:t}),q.jsx("div",{style:eon,children:n})]})}function ton({asset:t}){const n=t.capabilities?.editor==="environment";Ye.useSyncExternalStore(A9t,Jge,Jge);const s=t.componentPreview,c=s?D9t({name:t.name,path:s.sourcePath,surface:s.surface}):null;return q.jsx("div",{"data-testid":"inspector-asset-preview",style:{position:"absolute",inset:0,background:CBe.inset,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:c?q.jsx(c.source.Thumbnail,{entry:c.entry,previewRevision:0}):n?q.jsx(wR,{kind:"image",name:t.name,variant:"cell"}):t.kind==="image"?q.jsx(non,{path:t.path,name:t.name}):t.kind==="video"?q.jsx(ron,{path:t.path}):t.kind==="model"?q.jsx(j9t,{url:t.path}):q.jsx(wR,{kind:t.kind,name:t.name,variant:"cell"})})}function ron({path:t}){return q.jsx("video",{src:t,muted:!0,preload:"metadata",style:{width:"100%",height:"100%",objectFit:"contain"}})}function non({path:t,name:n}){const{sheetPath:s,frameName:c}=Z0e(t),[d,m]=Ye.useState(null);return Ye.useEffect(()=>{if(!c){m(null);return}let g=!1;return fetch(`/${BRt(s)}`).then(S=>S.ok?S.text():null).then(S=>{if(g||!S)return;const k=qze(S);m(k?.frames.find(A=>A.name===c)??null)}).catch(()=>{g||m(null)}),()=>{g=!0}},[c,s]),d?q.jsx(B9t,{sheetUrl:`/${s}`,frame:d,maxEdge:96}):q.jsx("img",{src:t.split("#")[0],alt:n,style:{width:"100%",height:"100%",objectFit:"contain"}})}function ion({asset:t}){const[n,s]=Ye.useState(null),{sheetPath:c,frameName:d}=Z0e(t.path);return Ye.useEffect(()=>{if(s(null),t.kind!=="image"||t.capabilities?.editor==="environment")return;let m=!1;if(d)return fetch(`/${BRt(c)}`).then(S=>S.ok?S.text():null).then(S=>{if(m||!S)return;const k=qze(S)?.frames.find(A=>A.name===d);k&&s({w:k.sourceWidth,h:k.sourceHeight})}).catch(()=>{}),()=>{m=!0};const g=new Image;return g.onload=()=>{m||s({w:g.naturalWidth,h:g.naturalHeight})},g.src=t.path.split("#")[0]??t.path,()=>{m=!0}},[t.capabilities?.editor,t.kind,t.path,d,c]),n?q.jsx(Ph,{label:"Dimensions",value:`${n.w} × ${n.h}`}):null}function oon(){Ye.useSyncExternalStore(Nin,Lxt,Lxt);const t=X0e();if(!t)return null;const n=Iin(t),s=t.name.includes(".")?t.name.split(".").pop()??"":"";return n?q.jsxs("div",{"data-testid":"inspector-asset-selection",style:{pointerEvents:"auto",borderBottom:`1px solid ${ahe[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(n.View,{asset:t}),q.jsx(gOe,{asset:t})]}):(t.selectionCount??1)===1&&(t.kind==="image"&&!t.path.includes("#")&&t.capabilities?.editor!=="environment"||t.kind==="video"||t.kind==="audio")?q.jsxs(q.Fragment,{children:[q.jsx(YRt,{assetPath:t.path,kind:t.kind,sizeBytes:t.sizeBytes}),q.jsxs("div",{style:{padding:"0 8px",display:"grid",gap:6},children:[t.health&&t.health!=="healthy"&&q.jsx(Ph,{label:"Health",value:t.health}),!!t.healthCodes?.length&&q.jsx(Ph,{label:"Issues",value:t.healthCodes.join(", ")}),t.sourcePath&&q.jsx(Ph,{label:"Imported from",value:t.sourcePath}),!!t.dependencies?.length&&q.jsx(Ph,{label:"Dependencies",value:t.dependencies.join(", ")}),!!t.references?.length&&q.jsx(Ph,{label:"References",value:t.references.map(c=>`${c.ownerPath} ${c.jsonPath}`).join(", ")})]}),q.jsx(gOe,{asset:t})]}):q.jsxs("div",{"data-testid":"inspector-asset-selection",style:{pointerEvents:"auto",padding:8,borderBottom:`1px solid ${ahe[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(ion,{asset:t}),q.jsx("div",{style:{...$9t,marginBottom:0,textTransform:"uppercase"},children:"Asset"}),q.jsx("div",{style:{fontWeight:600,fontSize:12,color:Zf[1],wordBreak:"break-all"},children:t.name}),q.jsx(Ph,{label:"Path",value:t.path}),t.componentPreview&&q.jsx(Ph,{label:"Surface",value:t.componentPreview.surface==="canvas"?"2D / Pixi":t.componentPreview.surface==="three"?"3D / Three":t.componentPreview.surface}),t.selectionCount&&t.selectionCount>1&&q.jsxs(q.Fragment,{children:[q.jsx(Ph,{label:"Selection",value:`${t.selectionCount} assets`}),t.selectionTotalBytes!==void 0&&q.jsx(Ph,{label:"Total size",value:zxt(t.selectionTotalBytes)}),t.selectionFormats&&q.jsx(Ph,{label:"Formats",value:t.selectionFormats.join(", ")})]}),s&&q.jsx(Ph,{label:"Format",value:s.toUpperCase()}),t.sizeBytes!==void 0&&q.jsx(Ph,{label:"Size",value:zxt(t.sizeBytes)}),t.capabilities&&q.jsxs(q.Fragment,{children:[q.jsx(Ph,{label:"Runtime readiness",value:t.capabilities.runtimeReady?"Runtime-ready":"Import or conversion required"}),q.jsx(Ph,{label:"Preview",value:t.capabilities.previewable?"Available":"Unsupported"}),q.jsx(Ph,{label:"Placement",value:t.capabilities.placeable?"Placeable":"Not placeable"}),q.jsx(Ph,{label:"Editor",value:FB(t.capabilities)??"No editor"})]}),t.health&&q.jsx(Ph,{label:"Health",value:t.health}),t.healthCodes&&q.jsx(Ph,{label:"Issues",value:t.healthCodes.join(", ")}),t.dependencies&&q.jsx(Ph,{label:"Dependencies",value:t.dependencies.join(", ")||"None"}),t.references&&q.jsx(Ph,{label:"References",value:t.references.map(c=>`${c.ownerPath} ${c.jsonPath}`).join(", ")||"None"}),t.sourcePath&&q.jsx(Ph,{label:"Imported from",value:t.sourcePath}),!t.componentPreview&&q.jsxs("div",{style:{display:"flex",gap:6},children:[q.jsx(Ms,{type:"button","data-command-id":O_.open.id,onClick:()=>window.dispatchEvent(new CustomEvent("editor:open-project-asset",{detail:{path:t.path}})),children:"Open"}),t.selectionCount&&t.selectionCount>1&&q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button","data-command-id":O_.move.id,onClick:()=>window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:O_.move.id}})),children:"Move selected"}),q.jsx(Ms,{type:"button","data-command-id":O_.delete.id,onClick:()=>window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:O_.delete.id}})),children:"Delete selected"})]})]}),q.jsx("div",{style:{fontSize:10,color:Zf[3]},children:"Double-click (or press Enter) in the asset browser to open the full viewer."}),q.jsx(gOe,{asset:t})]})}function son(t){return kin(t).map(n=>({id:n.id,title:n.title,...n.label===void 0?{}:{label:n.label},placement:"identity",...n.disabled===void 0?{}:{disabled:n.disabled},run:n.run}))}function aon(){const t=X0e();if(t===null)return null;const n=Lye();return n&&(n.adapter!==null||n.nodeId!==null)?null:{quickActions:son(t.path),id:`asset:${t.path}`,title:t.name,kindLabel:t.online?`${t.kind} · ${t.online.source}`:t.kind,note:{text:t.sourcePath??t.path,testId:"inspector-asset-path"},sections:[{id:WRe,title:"Preview",icon:iB,order:I4t,body:{kind:"preview",render:()=>q.jsx(ton,{asset:t})}},{id:"asset-selection",title:"Asset",icon:R$,order:dQ,body:{kind:"custom",render:()=>q.jsx(oon,{})},keepMounted:!0}]}}const con={loop:"Loop control","contract.root":"DOM root","contract.lifecycle.start":"Cold start","contract.lifecycle.pause":"Pause / resume",persistence:"Source persistence",systems:"Commands and state"};function lon(t){const n=con[t];if(n)return n;const[s,c]=t.split("."),d=(c??t).replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase(),m=d.charAt(0).toUpperCase()+d.slice(1);return s==="system"?`${m} adapter`:m}const uon={ok:U0r,gap:WTt,na:cvr,info:R$},fon={ok:Go.semantic.success,gap:Go.semantic.warning,na:Go.content.dim,info:Go.content.dim};function don({row:t}){return q.jsxs("div",{"data-testid":`ingest-coverage-row-${t.seam}`,"data-status":t.status,style:{display:"grid",gridTemplateColumns:"16px minmax(0, 1fr)",gap:7,padding:"8px 10px",borderTop:"1px solid var(--volter-structural-divider)"},children:[q.jsx("span",{style:{color:fon[t.status],paddingTop:1},children:q.jsx(dc,{icon:uon[t.status]})}),q.jsxs("div",{style:{minWidth:0},children:[q.jsx("div",{style:{color:Go.content.primary,fontWeight:600},children:lon(t.seam)}),q.jsx("div",{style:{marginTop:2,color:Go.content.muted,lineHeight:1.4,overflowWrap:"anywhere"},children:t.detail}),t.missing&&q.jsxs("div",{style:{marginTop:6,color:Go.content.muted,lineHeight:1.4},children:[q.jsx("strong",{style:{color:Go.semantic.warning},children:"Missing:"})," ",t.missing]}),t.fix&&q.jsxs("div",{style:{marginTop:4,color:Go.content.dim,lineHeight:1.4},children:[q.jsx("strong",{children:"Fix:"})," ",t.fix]})]})]})}function pon({report:t}){const{summary:n}=t;return q.jsxs("div",{"data-testid":"ingest-coverage-report",style:{fontSize:"var(--volter-font-base)"},children:[q.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"7px 10px 9px",color:Go.content.muted},children:[q.jsxs("span",{style:{color:n.gaps>0?Go.semantic.warning:Go.semantic.success},children:[n.gaps," ",n.gaps===1?"gap":"gaps"]}),q.jsxs("span",{children:[n.ok," integrated"]}),q.jsxs("span",{children:[n.na," not applicable"]}),q.jsxs("span",{children:[n.info," informational"]})]}),t.rows.map(s=>q.jsx(don,{row:s},s.seam))]})}function _on(t){return{id:"ingest-coverage",title:"Ingest coverage",icon:eCt,order:9e3,description:`${t.summary.gaps} gap${t.summary.gaps===1?"":"s"}`,defaultOpen:!0,testId:"ingest-coverage-section",body:{kind:"custom",render:()=>q.jsx(pon,{report:t}),data:{summary:t.summary,rows:t.rows}}}}function mon(t,n,s){if(t)return t.nodeId;const c=[...n].at(-1);if(c)return c;const d=s.selection?.get().at(-1)??null;if(d===null)return null;const m=s.hierarchy.roots();return m.length===1&&m[0]?.id===d?null:d}const q9t="inspectorPresentation";function hon(t){return t==="card"||t==="column"||t==="properties"}function Vxt(){const t=u3r(q9t);if(!t||typeof t!="object")return{};const n={};for(const[s,c]of Object.entries(t))hon(c)&&(n[s]=c);return n}let UB=null,lve=0;const JO=new Set;let yOe=null;sPt().then(()=>{UB=null,lve++;for(const t of JO)t()});function gon(){lve++;for(const t of JO)t()}function z9t(){if(UB===null){if(!l3r())return Vxt();UB=Vxt()}return UB}function dje(t){return z9t()[t]??null}function FVe(t,n){if(oin("volter.properties"),dje(t)!==n){UB={...z9t(),[t]:n},lve++,f3r(q9t,UB);for(const s of JO)s()}}function yon(t){return JO.size===0&&(yOe=o3r(gon)),JO.add(t),()=>{JO.delete(t),JO.size===0&&(yOe?.(),yOe=null)}}function Uxt(){return lve}function von(t,n,s=null){return n??s??t}function V9t(t){return t.sections.map(n=>({id:n.id,title:n.title,icon:n.icon,...n.railGroup===void 0?{}:{railGroup:n.railGroup},...n.railDefault===void 0?{}:{railDefault:n.railDefault}}))}function pje(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function bon(t,n){const s=n.selectedEntityId;if(s===null)return null;const c=t.childAdapters(),d=c.find(m=>m.worldId===t.ownerOf(s))??c.find(m=>t.groupNodeId(m.worldId)===s);return d?pje(d.kind):null}function Son(t){const n=pBe();if(n!==null&&n.documentId===Pp())return"asset-lab";const{adapter:s,surface:c}=Cm(t);if(c)return c;if(s instanceof gy){const d=s.childAdapters(),m=d.length===1?pje(d[0]?.kind??""):null;if(m)return m;const g=bon(s,t);if(g)return g}return pje(sve()??"")??"three"}function xon({stories:t,activeStoryId:n,onApplyStory:s,isolation:c,unavailableReason:d}){return q.jsxs("div",{style:{padding:"4px 0"},children:[t.length>0?q.jsxs(Iw,{"data-testid":"ingest-stories-select",value:n,onChange:m=>{const g=m.target.value;s(g===""?null:g)},style:{width:"100%"},children:[q.jsx("option",{value:"",children:"(none)"}),t.map(m=>q.jsx("option",{value:m.id,children:m.label},m.id))]}):q.jsx("div",{"data-testid":"ingest-stories-none",style:{fontSize:"var(--volter-font-base)",color:Go.content.dim,fontStyle:"italic"},children:d??"No stories — this root has no associated portable CSF previews."}),c&&q.jsx(Ms,{"data-testid":"catalog-isolate",onClick:c.toggle,variant:c.isolated?"primary":"secondary","aria-pressed":c.isolated,style:{marginTop:6,width:"100%"},children:c.isolated?"Exit isolation":"Isolate"})]})}const bD=180/Math.PI;function U9t(t,n,s){const c=Math.cos(t/2),d=Math.cos(n/2),m=Math.cos(s/2),g=Math.sin(t/2),S=Math.sin(n/2),k=Math.sin(s/2);return[g*d*m+c*S*k,c*S*m-g*d*k,c*d*k+g*S*m,c*d*m-g*S*k]}function won([t,n,s,c]){const d=t+t,m=n+n,g=s+s,S=t*d,k=t*m,A=t*g,F=n*m,D=n*g,J=s*g,$=c*d,G=c*m,se=c*g,pe=1-(F+J),ue=k-se,Ce=A+G,Ae=1-(S+J),Pe=D-$,be=D+$,X=1-(S+F),we=Math.asin(Math.min(Math.max(Ce,-1),1));return Math.abs(Ce)<.9999999?[Math.atan2(-Pe,X),we,Math.atan2(-ue,pe)]:[Math.atan2(be,Ae),we,0]}function MVe(t){const[n,s,c,d]=t,m=n*n+s*s+c*c+d*d,g=Math.sqrt(m),S=m<Number.EPSILON?[0,0,0,1]:[n/g,s/g,c/g,d/g],[k,A,F]=won(S);return[k*bD,A*bD,F*bD]}function Ton(t,n,s){if(s.length!==3||s.some(d=>!Number.isFinite(d)))throw new Error(`transform.${n} expects three finite numbers.`);const c={position:[...t.position],rotation:[...t.rotation],scale:[...t.scale]};return n==="rotation"?{...c,rotation:U9t(s[0]/bD,s[1]/bD,s[2]/bD)}:{...c,[n]:[s[0],s[1],s[2]]}}function Con(t,n,s){const c=MVe(t.rotation);return c[n]=s,{position:[...t.position],rotation:U9t(c[0]/bD,c[1]/bD,c[2]/bD),scale:[...t.scale]}}const Eon={x:"#e0726d",y:"#83bd66",z:"#6390dd"};function vOe({axes:t,label:n,values:s,testidPrefix:c,step:d,precision:m,onBegin:g,onPreview:S,onCommit:k,readOnly:A,readOnlyReason:F}){const[D,J]=Ye.useState(null),$=Ye.useRef(!1);return q.jsx(C_e,{label:n,style:{padding:"4px 8px"},children:t.map(({axis:G,name:se})=>q.jsx(SZ,{testId:`${c}-${se}`,label:se,labelColor:Eon[se],title:F,disabled:A,step:d,precision:m,value:D?.axis===G?D.value:Number.isFinite(s[G])?s[G]:0,style:{flex:1,minWidth:0},onChange:pe=>{$.current||($.current=!0,g?.()),J({axis:G,value:pe}),S?.(G,pe)},onChangeEnd:pe=>{$.current=!1,J(null),k(G,pe)}},se))})}function kon({dimensions:t="3d",transform:n,readOnly:s=!1,channelEditability:c,note:d,onBegin:m,onPreview:g,onCommit:S}){const k=[{axis:0,name:"x"},{axis:1,name:"y"}],A=[...k,{axis:2,name:"z"}],F=(se,pe,ue)=>{const Ce={position:[...n.position],rotation:[...n.rotation],scale:[...n.scale]};return Ce[pe][se]=ue,Ce},D=(se,pe)=>(ue,Ce)=>{Number.isFinite(Ce)&&pe?.(F(ue,se,Ce))},J=se=>(pe,ue)=>{Number.isFinite(ue)&&se?.(Con(n,pe,ue))},$=se=>{const pe=c?.[se],ue=s||pe?.writable===!1;return pe?.reason?{readOnly:ue,readOnlyReason:pe.reason}:{readOnly:ue}},G=[...new Set(["position","rotation","scale"].map(se=>$(se)).filter(se=>se.readOnly&&se.readOnlyReason).map(se=>se.readOnlyReason))];return q.jsxs(GTr,{children:[q.jsx(vOe,{axes:t==="2d"?k:A,label:"Position",testidPrefix:"ingest-position",values:n.position,step:.1,precision:3,...$("position"),onBegin:m,onPreview:g&&D("position",g),onCommit:D("position",S)}),q.jsx(vOe,{axes:t==="2d"?[{axis:2,name:"z"}]:A,label:t==="2d"?"Rotation (degrees)":"Rotation",testidPrefix:"ingest-rotation",values:MVe(n.rotation),step:1,precision:1,...$("rotation"),onBegin:m,onPreview:g&&J(g),onCommit:J(S)}),q.jsx(vOe,{axes:t==="2d"?k:A,label:"Scale",testidPrefix:"ingest-scale",values:n.scale,step:.01,precision:3,...$("scale"),onBegin:m,onPreview:g&&D("scale",g),onCommit:D("scale",S)}),G.map(se=>q.jsx(_p,{"data-testid":"inspector-transform-readonly-reason",variant:"caption",tone:"muted",style:{display:"block",padding:"4px 8px",overflowWrap:"anywhere"},children:se},se)),d&&q.jsx(_p,{"data-testid":"inspector-transform-note",variant:"caption",tone:"muted",style:{display:"block",padding:"4px 8px",overflowWrap:"anywhere"},children:d})]})}function Jxt(t){return t.revertsTo===void 0?`Revert ${t.label} to default`:`Revert ${t.label} to ${t.revertsTo}`}function Aon({value:t,onCommit:n,onPreview:s,...c}){const[d,m]=Ye.useState(null),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef({draft:d,onCommit:n});return k.current={draft:d,onCommit:n},Ye.useEffect(()=>{const A=g.current;if(!A)return;const F=()=>{const{draft:D,onCommit:J}=k.current,$=D??A.value;$&&$!==S.current&&J($),S.current=null,m(null)};return A.addEventListener("change",F),()=>A.removeEventListener("change",F)},[]),q.jsx(g4t,{...c,ref:g,value:d??t,onChange:A=>{S.current===null&&(S.current=t),m(A.target.value),s?.(A.target.value)}})}async function J9t(t,n=XRt){const s=await Promise.all(n.map(c=>Don(t,c)));return{assets:s.flatMap(c=>c.assets),failedListings:s.flatMap(c=>c.failedListings)}}async function Don(t,n){const s=[""],c=[],d=[];let m=0;for(;s.length>0&&m<512;){const g=s.splice(0,8),S=await Promise.all(g.map(k=>t(n,k)));m+=g.length,S.forEach((k,A)=>{const F=g[A];if(!k.ok){d.push(`${n}/${F}: ${k.reason}`);return}for(const D of k.entries){const J=F?`${F}/${D.name}`:D.name;D.type==="directory"?s.push(J):c.push({path:J,root:n,entry:D})}})}return{assets:c,failedListings:d}}async function Pon(t,n){const s=t.filter(S=>S.root==="public"),c=Ion(s),d=(await Promise.all(c.map(async S=>{const k=await n(S.path);if(!k)return null;const A=qze(k);return A?{sidecar:S,parsed:A}:null}))).flatMap(S=>S?[S]:[]),m=new Set;for(const{sidecar:S,parsed:k}of d){m.add(S.path);const A=Wxt(S.path);for(const F of eZr(k.image))m.add(A?`${A}/${F}`:F);for(const F of s)EMe(F.path)===EMe(S.path)&&m.add(F.path)}const g=d.flatMap(({sidecar:S,parsed:k})=>{const A=Wxt(S.path),F=A?`${A}/${k.image}`:k.image;return k.frames.map(D=>({path:`${F}#${D.name}`,root:S.root,entry:{name:`${D.name}.png`,type:"file",...S.entry.size===void 0?{}:{size:S.entry.size},...S.entry.modifiedAt===void 0?{}:{modifiedAt:S.entry.modifiedAt}},spritesheet:{sheetPath:F,x:D.x,y:D.y,width:D.width,height:D.height,rotated:D.rotated,sourceWidth:D.sourceWidth,sourceHeight:D.sourceHeight,trimX:D.trimX,trimY:D.trimY}}))});return[...t.filter(S=>S.root!=="public"||!m.has(S.path)),...g]}function Ion(t){const n=new Map;for(const s of t){if(!/\.json$/i.test(s.path))continue;const c=EMe(s.path),d=n.get(c);(!d||zSt(s.path)>zSt(d.path))&&n.set(c,s)}return[...n.values()]}function Wxt(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function W9t(t){const n=ig(t).kind;return n==="model"||n==="image"||n==="video"||n==="audio"?n:"other"}function Non(t){const n=ig(t.entry.name);return n.placeable&&n.runtimeReady?10:n.kind==="model"&&n.runtimeReady?15:n.kind==="prefab"?25:n.runtimeReady&&(n.kind==="image"||n.kind==="audio")?30:n.runtimeReady?40:n.importable?70:90}function Oon(t){return(t.surface==="three"?0:t.surface==="canvas"?10:t.surface==="dom"?20:30)+(t.exported?0:4)}const Ron=1e4,Fon={paths:[],failures:[]};let $Y=null;async function Mon(){const t=await J9t(eve,["public"]);return{paths:t.assets.filter(n=>W9t(n.entry.name)==="image").map(n=>n.path).sort((n,s)=>n.localeCompare(s)),failures:t.failedListings}}function jon(){const t=Date.now();return(!$Y||t-$Y.at>Ron)&&($Y={at:t,scan:Mon().catch(n=>($Y=null,{paths:[],failures:[n instanceof Error?n.message:String(n)]}))}),$Y.scan}function Lon(t){const[n,s]=Ye.useState(Fon);return Ye.useEffect(()=>{let c=!0;return jon().then(d=>{c&&s(d)}),()=>{c=!1}},[t]),n}const Bon={width:64},Hxt={width:ZCr,fontSize:"var(--volter-font-md)",color:Go.content.muted};function AI(t){return`ingest-prop-${t.replace(/\./g,"-")}`}function $on({field:t,io:n,value:s}){const{paths:c,failures:d}=Lon(!0),[m,g]=Ye.useState(null),S=F=>{g(null),Promise.resolve(n.set(t.path,F===""?null:F)).then(D=>{g(D&&!D.persisted?{forValue:F,text:`Not saved — ${D.destination}. See the editor console for the mechanism.`}:null)})},k=m?.forValue===s?m.text:void 0,A=d.length>0?`${d.length} folder(s) under public/ could not be read — this list may be incomplete.`:void 0;return q.jsx(QCr,{testId:AI(t.path),value:s,options:c,previewUrlFor:F=>`/${F}`,disabled:t.readonly,note:k??A,onChange:S})}function qon({field:t,io:n}){const s=t,c=n.get(s.path),d=JRe(c)?void 0:c,m=s.defaulted===!0&&d===void 0,g=s.readonly?RBe(s):void 0,S=s.resettable?q.jsx(pm,{"data-testid":`ingest-revert-${s.path.replace(/\./g,"-")}`,"aria-label":Jxt(s),title:Jxt(s),onClick:()=>n.remove?.(s.path),children:q.jsx(dc,{icon:JOe})}):null;return s.type==="boolean"?q.jsxs("label",{title:g,style:{display:"flex",gap:6,alignItems:"center",padding:"6px 8px",fontSize:"var(--volter-font-md)"},children:[q.jsx(TD,{"data-testid":AI(s.path),checked:!!d,ref:k=>{k&&(k.indeterminate=m)},disabled:s.readonly,onChange:k=>n.set(s.path,k.target.checked)}),q.jsx("span",{style:s.defaulted?{color:Go.content.dim}:void 0,children:s.label}),S]}):q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px"},children:[q.jsx("span",{style:s.defaulted?{...Hxt,color:Go.content.dim}:Hxt,title:g??(s.defaulted?`${s.label} — default (not set here)`:s.label),children:s.label}),s.type==="color"?q.jsx(Aon,{"data-testid":s.path==="material.color"?"ingest-color":AI(s.path),value:d??"#ffffff",disabled:s.readonly,onCommit:k=>n.set(s.path,k),onPreview:k=>n.preview?.(s.path,k)}):s.type==="number"?q.jsx(BRe,{type:"number","data-testid":AI(s.path),disabled:s.readonly,value:typeof d=="number"?String(Math.round(d*1e3)/1e3):"",placeholder:m?"—":void 0,onCommit:k=>{const A=Number.parseFloat(k);Number.isFinite(A)&&n.set(s.path,A)},style:Bon}):s.type==="enum"?q.jsxs(Iw,{"data-testid":AI(s.path),disabled:s.readonly,value:String(d??""),onChange:k=>{const A=s.options?.find(F=>String(F)===k.target.value)??k.target.value;n.set(s.path,A)},style:{width:120},children:[m&&q.jsx("option",{value:"",children:"—"}),(s.options??[]).map(k=>q.jsx("option",{value:String(k),children:String(k)},String(k)))]}):s.type==="vec3"?q.jsx("div",{style:{width:190},children:q.jsx(XCr,{value:Array.isArray(d)&&d.length===3?[Number(d[0]),Number(d[1]),Number(d[2])]:[null,null,null],disabled:!!s.readonly,testIdPrefix:AI(s.path),onChange:k=>n.set(s.path,k)})}):s.type==="asset"?q.jsx($on,{field:s,io:n,value:typeof d=="string"?d:""}):s.type==="json"?q.jsx(kBe,{"data-testid":AI(s.path),"data-variant":"code",disabled:s.readonly,defaultValue:m?"":JSON.stringify(d??null),placeholder:m?"—":void 0,onBlur:k=>{try{n.set(s.path,JSON.parse(k.target.value))}catch{}},style:{width:160}},`${s.path}:${JSON.stringify(d??null)}`):q.jsx(BRe,{type:"text","data-testid":AI(s.path),readOnly:s.readonly,value:String(d??""),placeholder:m?"—":void 0,onCommit:k=>n.set(s.path,k),style:{width:120}}),S]})}function H9t({fields:t,io:n}){return q.jsx(q.Fragment,{children:t.map(s=>q.jsx(qon,{field:s,io:n},s.path))})}function uve(t){const[n,s]=Ye.useState(null);return Ye.useEffect(()=>{let c=0;const d=requestAnimationFrame(()=>{c=requestAnimationFrame(()=>s(t))});return()=>{cancelAnimationFrame(d),cancelAnimationFrame(c)}},[t]),n===t}const zon=Ye.lazy(()=>lo(()=>import("./InspectorCanvasPreview-BrFjhoiD.js"),__vite__mapDeps([264,1,2,3,4])).then(t=>({default:t.InspectorCanvasPreview})));function GSn({picture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=uve(n);return q.jsxs("div",{"data-testid":d?"inspection-preview-thumbnail":"inspection-preview",style:d?{position:"absolute",inset:0,overflow:"hidden"}:{position:"relative",width:"calc(100% - 24px)",aspectRatio:"1 / 1",flexShrink:0,margin:12,overflow:"hidden",border:"1px solid var(--volter-structural-divider)",borderRadius:"var(--dv-group-border-radius, 8px)"},children:[m&&q.jsx(Ye.Suspense,{fallback:null,children:t()}),!d&&s.map(g=>q.jsx(Ms,{"data-testid":g.id,size:"compact",disabled:g.disabled,title:g.title,onClick:g.run,style:{position:"absolute",right:8,bottom:8},children:g.label},g.id))]})}function Von({source:t,entry:n,previewKey:s,actions:c,mode:d="section"}){const m=d==="thumbnail",g=uve(s);return q.jsxs("div",{"data-testid":m?"inspection-preview-thumbnail":"inspection-preview",style:m?{position:"absolute",inset:0,overflow:"hidden"}:{position:"relative",width:"calc(100% - 24px)",aspectRatio:"1 / 1",flexShrink:0,margin:12,overflow:"hidden",border:"1px solid var(--volter-structural-divider)",borderRadius:"var(--dv-group-border-radius, 8px)"},children:[g&&q.jsx("div",{style:{position:"absolute",inset:0,overflow:"hidden",background:"var(--volter-bg-inset)"},children:q.jsx(t.Thumbnail,{entry:n,previewRevision:0,width:m?96:256,height:m?96:256})}),!m&&c.map(S=>q.jsx(Ms,{"data-testid":S.id,size:"compact",disabled:S.disabled,title:S.title,onClick:S.run,style:{position:"absolute",right:8,bottom:8},children:S.label},S.id))]})}function Uon({capture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=uve(n);return q.jsxs("div",{"data-testid":d?"inspection-preview-thumbnail":"inspection-preview",style:d?{position:"absolute",inset:0,overflow:"hidden"}:{position:"relative",width:"calc(100% - 24px)",aspectRatio:"1 / 1",flexShrink:0,margin:12,overflow:"hidden",border:"1px solid var(--volter-structural-divider)",borderRadius:"var(--dv-group-border-radius, 8px)"},children:[m&&q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(zon,{capture:t,previewKey:n,size:d?96:256})}),!d&&s.map(g=>q.jsx(Ms,{"data-testid":g.id,size:"compact",disabled:g.disabled,title:g.title,onClick:g.run,style:{position:"absolute",right:8,bottom:8},children:g.label},g.id))]})}function Jon(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Won(t){const n=[],s=[],c=new Map;for(const d of t)d.group?(c.has(d.group)||(c.set(d.group,[]),s.push(d.group)),c.get(d.group).push(d)):n.push(d);return{ungrouped:n,groups:s.map(d=>({name:d,groupId:Jon(d),properties:c.get(d)}))}}function Hon(t,n){if(!t.transforms)return null;const s=t.transforms.dimensions?.(n);return s!==void 0?s:t.hierarchy.object3D===void 0||t.hierarchy.object3D(n)!==null?"3d":null}const Gon=14,Kon=[[/physic|rigid|collid/i,H0r],[/material/i,b0r],[/light/i,lLe],[/camera/i,cye],[/audio|sound|music/i,pLe],[/player|character|humanoid|person/i,W0r],[/anim|state|machine/i,VTt]];function Xon(t){for(const[n,s]of Kon)if(n.test(t))return s;return GB}function Yon(t){return n=>Ye.createElement(Von,{source:t.picture.source,entry:t.picture.entry,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Zon(t){return n=>Ye.createElement(Uon,{capture:t.capture,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Qon(t){return t.media?t.media.preview?t.media.preview({displayName:t.displayName,previewKey:t.previewKey,actions:t.actions}):null:t.canvasCapture?Zon({capture:t.canvasCapture,previewKey:t.previewKey,actions:t.actions}):t.picture?Yon({picture:t.picture,previewKey:t.previewKey,actions:t.actions}):null}function bOe(t){const n=t.slice(10);if(n!=="position"&&n!=="rotation"&&n!=="scale")throw new Error(`The Transform section has no ${JSON.stringify(t)}.`);return n}const esn={position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]};function tsn(t,n,s,c){if(O4t(t))return t.sections(c,n);const d=t.Section;return[{id:t.id,title:t.title,icon:typeof t.icon=="function"?t.icon(c,n):t.icon,order:t.order,...t.railGroup===void 0?{}:{railGroup:t.railGroup},...t.railDefault===void 0?{}:{railDefault:t.railDefault},body:{kind:"custom",render:()=>Ye.createElement(d,{adapter:n,nodeId:s})}}]}function G9t(t,n,s,c){const d=new Set,m=new Map,g=[];for(const S of t){const k=tsn(S,n,s,c).filter(F=>!d.has(F.id)),A=(O4t(S)?S.claims??[]:[]).filter(F=>!d.has(F));if(!(k.length===0&&A.length===0)){for(const F of k)d.add(F.id),m.set(F.id,S.owner);for(const F of A)d.add(F);g.push(...k)}}return{sections:g,claimed:d,owners:m}}function K9t(t,n,s){return s===void 0?[...t]:t.filter(c=>n.get(c.id)===s.owner||s.builtins.includes(c.id))}function _je(t){const{adapter:n,nullSubject:s}=t,{sections:c,claimed:d,owners:m}=G9t(n?t.contributions??[]:[],n,null,null),g=K9t([...(s?.sections??[]).filter(S=>!d.has(S.id)),...c].sort((S,k)=>S.order-k.order),m,t.rail);return{id:s?.id??"nothing-selected",title:s?.title??"Nothing selected",identity:s?.kindLabel?{rename:{readOnly:!0,set:()=>{}},kindLabel:s.kindLabel,...s.note?{note:s.note}:{}}:null,...s?.hint?{hint:s.hint}:{},presentation:{preferred:FBe(t.surface)},quickActions:s?.quickActions??[],related:[],sections:g}}function rsn(t,n,s){if(t.body.kind!=="custom"||t.body.editable)return t;const c=s.get(t.id);return!c||c.length===0?t:{...t,body:{...t.body,editable:{fields:c,io:n}}}}function nsn(t){const{adapter:n,nodeId:s,node:c,contributions:d,onEdit:m}=t;if(s===null)return _je({nullSubject:t.nullSubject??null,surface:t.surface,contributions:d,adapter:n,rail:t.rail});const{sections:g,claimed:S,owners:k}=G9t(d,n,s,c),A={get:en=>n.inspector?.get(s,en),...n.inspector?.preview?{preview:(en,ii)=>{n.inspector?.preview?.(s,en,ii)}}:{},set:(en,ii)=>{if(!n.inspector)return;const No=SPt(n,s,en,ii);return m(),No},...n.inspector?.remove?{remove:en=>{const ii=L3r(n,s,en);return m(),ii}}:{}},F=n.inspector?.properties(s)??[],D=F.find(en=>en.path==="name"),{ungrouped:J,groups:$}=Won(F.filter(en=>en.path!=="name")),G=J.find(en=>en.path==="visible"&&en.type==="boolean"),se=G?J.filter(en=>en!==G):J,pe=[...D&&D.readonly!==!0?[D]:[],...G?[G]:[]],ue=[];if(G){const en=A.get(G.path)!==!1,ii=en?"Visible — click to hide":"Hidden — click to show";ue.push({id:"inspector-visibility-toggle",title:ii,icon:en?cLe:hLe,placement:"identity",pressed:!en,disabled:G.readonly===!0,run:async()=>{await A.set(G.path,!en)}})}t.assetDocument&&ue.push({id:"open-asset-editor",title:"Open in Asset Editor",label:"Open in Asset Editor",placement:"preview",run:t.assetDocument.open}),n.transforms?.sourceCommit?.availability(s)?.available&&ue.push({id:"commit-live-transform-source",title:"Commit this live transform to its authored source literal",label:"Commit transform to source",icon:UTt,placement:"identity",run:async()=>{await vPt(n,s),m()}});const Pe=new Map;Pe.set(M5e,se);for(const en of $)Pe.set(Hht(en.groupId),en.properties);const be=[],X=n.truth?.resolve(s,"position").site??null,we=t.media,qe=c?.typeLabel??c?.label??s,bt=t.surface==="canvas"&&we===null&&t.stories?D9t({name:qe,path:X?.anchored===!0?X.file:"",surface:"canvas"}):null,Pt=ue.filter(en=>en.placement==="preview"),Wt=Qon({media:we,canvasCapture:t.canvasPreview,picture:bt,displayName:c?.label??s,previewKey:s,actions:Pt});!S.has(WRe)&&Wt!==null&&be.push({id:WRe,title:"Preview",icon:aR,order:I4t,body:{kind:"preview",render:Wt}});const zt=Hon(n,s),ft=!S.has(Wht)&&zt!==null,tr=ft?$.find(en=>en.name==="Transform")?.properties??[]:[];if(ft){const en=n.transforms?.get(s)??esn,ii=we?.instanced??null,No=Object.fromEntries(["position","rotation","scale"].map(En=>[En,n.transforms?.editability?.(s,En)??{writable:n.capabilities.transform}])),gn={position:[...en.position],rotation:MVe(en.rotation),scale:[...en.scale]};be.push({id:Wht,title:"Transform",icon:XTt,order:vEr,body:{kind:"custom",data:{...gn,editability:No,...ii?{instanced:ii}:{}},editable:{fields:["position","rotation","scale"].map(En=>{const cs=!n.capabilities.transform||!No[En].writable;return{path:`transform.${En}`,label:En[0].toUpperCase()+En.slice(1),type:"vec3",value:gn[En],readonly:cs,...!cs&&n.transforms?.remove&&No[En].removable===!0?{resettable:!0}:{}}}),io:{get:En=>gn[bOe(En)],set:(En,cs)=>{if(!n.transforms)return;const On=Ton(en,bOe(En),cs);$Fe(n,s),z_e(n,s,On);const ji=qFe(n,s);return m(),ji},...n.transforms?.remove?{remove:En=>{const cs=yPt(n,s,bOe(En));return m(),cs}}:{}}},render:()=>[Ye.createElement(kon,{key:"channels",dimensions:zt,transform:en,readOnly:!n.capabilities.transform,channelEditability:No,...ii?.note?{note:ii.note}:{},onBegin:()=>{$Fe(n,s)},onPreview:En=>{z_e(n,s,En)},onCommit:En=>{z_e(n,s,En),qFe(n,s),m()}}),...tr.length>0?[Ye.createElement(H9t,{key:"rows",fields:tr,io:A})]:[]]}})}S.has(M5e)||(se.length>0&&be.push({id:M5e,title:"Properties",icon:YTt,order:dQ,defaultOpen:!0,body:{kind:"fields",fields:se,io:A}}),$.forEach((en,ii)=>{if(tr.length>0&&en.name==="Transform")return;const No=en.properties.filter(gn=>!gn.defaulted).length;be.push({id:Hht(en.groupId),title:en.name,icon:Xon(en.name),order:N4t+ii,description:No>0?`${No} set of ${en.properties.length}`:`${en.properties.length} properties`,defaultOpen:No>0&&en.properties.length<=Gon,testId:`ingest-group-${en.groupId}`,body:{kind:"fields",fields:en.properties,io:A}})}));const Qt=t.stories;!S.has(P4t)&&Qt&&be.push(isn(Qt)),be.push(...g.map(en=>rsn(en,A,Pe))),be.sort((en,ii)=>en.order-ii.order);const Tt=K9t(be,k,t.rail),vn=DPt(n,s),Yr=PPt(n);return{id:s,title:c?.label??"",identity:{rename:{readOnly:D===void 0||D.readonly===!0,set:en=>A.set("name",en)},kindLabel:`${c?.typeLabel??c?.kind??""}${vn?` · ${vn.label}`:""}`,...c?.kind?{kind:c.kind}:{},...Yr?{document:{path:Yr,...vn?.detail?{title:vn.detail}:{}}}:{},note:X?.anchored?{text:`${X.kind==="data"?"Level data":"Source"} · ${X.display}`,title:X.kind==="data"?`Placed by record ${X.record} of ${X.file}, the game's own level data`:`Constructed by a \`new\` expression at ${X.file} line ${X.line}, column ${X.col}`,testId:"inspector-creation-site"}:void 0},presentation:{preferred:FBe(t.surface)},...pe.length>0?{editable:{fields:pe,io:A}}:{},...t.alsoSelected?{alsoSelected:t.alsoSelected}:{},quickActions:ue,related:n.related?.links(s)??[],sections:Tt}}function isn(t){return{id:P4t,title:t.title??"Stories",icon:gLe,order:bEr,body:{kind:"custom",render:()=>Ye.createElement(xon,{stories:t.stories,activeStoryId:t.activeStoryId,onApplyStory:t.onApplyStory,isolation:t.isolation,unavailableReason:t.unavailableReason??null})}}}const osn=["project-tool","tool-contribution"];function ssn(t){const{activeDocumentKind:n,documentSelection:s}=t;return n===null||!osn.includes(n)?!1:s===null}function Gxt(t){const{subject:n,surface:s,available:c,override:d,workspaceDefault:m=null,columnShown:g=!0}=t,S=n.presentation.preferred??FBe(),k=von(S,d,m),A=k!=="card"&&!g?"card":k;return{subject:n,surface:s,presentation:A,available:c,card:c&&A==="card",column:A!=="card"}}const X9t="game";function asn(t){const n=t.projectName?.trim();return{id:X9t,title:n&&n.length>0?n:"Game",kindLabel:"Game",...t.instanceName?{note:{text:t.instanceName}}:{},sections:[]}}function KSn(t){return T$e({match:()=>Pp()===a0,describe:()=>asn(t())})}const csn=3,lsn=Object.freeze({none:!0});function usn(t){const n=Object.getPrototypeOf(t);return n===Object.prototype||n===null}function tee(t,n=0){if(t===null)return null;const s=typeof t;if(s==="string"||s==="boolean")return t;if(s==="number")return Number.isFinite(t)?t===0?0:t:{kind:"opaque",type:"number"};if(s!=="object")return{kind:"opaque",type:s};if(n>=csn)return{kind:"opaque",type:Kxt(t)};if(Array.isArray(t))return t.map(m=>tee(m,n+1));const c=t;if(!usn(c))return{kind:"opaque",type:Kxt(c)};const d={};for(const[m,g]of Object.entries(c))g!==void 0&&(d[m]=tee(g,n+1));return d}function Kxt(t){return t.constructor?.name??"object"}function Xxt(t,n){let s;try{s=n.get(t.path)}catch{s=void 0}return{path:t.path,label:t.label,type:t.type,...JRe(s)?{mixed:!0}:{},...!JRe(s)&&s!==void 0?{value:tee(s)}:{},...t.defaulted!==void 0?{defaulted:t.defaulted}:{},...t.readonly!==void 0?{readonly:t.readonly}:{},...t.readonly?{readonlyReason:RBe(t)}:{},...t.resettable!==void 0?{resettable:t.resettable}:{},...t.revertsTo!==void 0?{revertsTo:t.revertsTo}:{},...t.group!==void 0?{group:t.group}:{},...t.options!==void 0?{options:t.options.map(c=>tee(c))}:{}}}function Yxt(t){const n={};for(const[s,c]of Object.entries(t))c!==void 0&&(n[s]=tee(c));return n}function fsn(t){const n=t.body;if(n.kind==="fields")return{kind:"fields",fields:n.fields.map(s=>Xxt(s,n.io))};if(n.kind==="custom"&&n.data!==void 0&&n.editable===void 0)return{kind:"custom",id:t.id,title:t.title,data:Yxt(n.data)};if(n.kind==="custom"&&n.editable!==void 0){const s=n.editable;return{kind:"fields",fields:s.fields.map(c=>Xxt(c,s.io)),...n.data!==void 0?{data:Yxt(n.data)}:{}}}return{kind:n.kind,id:t.id,title:t.title}}function dsn(t){return{id:t.id,title:t.title,order:t.order,...t.description!==void 0?{description:t.description}:{},body:fsn(t)}}function psn(t,n){return{id:t.id,title:t.title,...t.identity?.kindLabel?{kindLabel:t.identity.kindLabel}:{},...t.identity?.note?{note:t.identity.note.text}:{},...t.hint?{hint:t.hint}:{},...t.alsoSelected?{alsoSelected:t.alsoSelected}:{},presentation:{preferred:t.presentation.preferred,...n?{resolved:n.presentation,surface:n.surface}:{}},quickActions:t.quickActions.map(s=>({id:s.id,title:s.title,...s.label!==void 0?{label:s.label}:{},...s.pressed!==void 0?{pressed:s.pressed}:{},...s.disabled!==void 0?{disabled:s.disabled}:{}})),related:t.related.map(({id:s,title:c})=>({id:s,title:c})),sections:t.sections.map(dsn)}}const Zxt=new WeakMap;function _sn(t){if(!t.capture)return null;const n=Zxt.get(t);if(n)return n;const s=async c=>t.capture?.(c)??null;return Zxt.set(t,s),s}function msn(t){return typeof t.previewImage=="function"}function hsn(t,n,s){if(!n)return null;if(s==="asset-lab"){const d=s2(Pp());return d?_sn(d):null}let c=t;if(t instanceof gy){const d=t.ownerOf(n);c=t.childAdapters().find(m=>m.worldId===d)?.adapter??t}return msn(c)?d=>c.previewImage(n,d,d):null}function gsn(){const t=Pp();if(t===null)return null;const n=Dtn(t);if(n===void 0)return null;const s=IN(n.kind);return s===void 0||s.inspectorRail!=="owned"?null:{rail:{owner:s.owner,builtins:s.inspectorBuiltins??[]}}}function ysn(t){const{store:n,adapter:s,documentSelection:c,surface:d}=t,m=aon();if(m!==null)return{subject:_je({nullSubject:m,surface:d}),available:!0};const g=mon(c,n.selectedEntityIds,s),S=g?s.hierarchy.node(g):null;if(g!==null&&S===null)return{subject:_je({nullSubject:null,surface:d}),available:!1};const k=()=>n.notifyIngestEdit(),A=g?null:u4r({adapter:s,surface:d,store:n,onEdit:k}),F=g?S?Xht(S,s):[]:Xht(null,s,{nullSubjectId:A?.id??null}),D=g?Mze(s,g):null;return{subject:nsn({adapter:s,nodeId:g,node:S,surface:d,contributions:F,...g?{}:{nullSubject:A},media:d==="asset-lab"?null:D,canvasPreview:hsn(s,g,d),assetDocument:D?.assetDocument??null,stories:o4r(s,S,g),...gsn()??{},...c===null&&g!==null&&n.selectedEntityIds.size>1?{alsoSelected:n.selectedEntityIds.size-1}:{},onEdit:k}),available:g!==null||A!==null||F.length>0}}function fve(t){const n=Son(t),{adapter:s,documentSelection:c}=Cm(t),d=ysn({store:t,adapter:s,documentSelection:c,surface:n}),{subject:m}=d,g=d.available&&(m.id!==X9t||m.sections.length>0)&&!ssn({activeDocumentKind:TC()?.descriptor.kind??null,documentSelection:c}),S=Pp()===a0?SVe():null;if(S){const k=_on(S),A=g?{...m,sections:[...m.sections.filter(F=>F.id!==k.id),k].sort((F,D)=>F.order-D.order)}:{id:`ingest:${S.summary.worldId}`,title:"Ingested game",identity:null,hint:"This mount exposes no editable scene subject. Coverage below says exactly which editor seams it did earn.",presentation:m.presentation,quickActions:[],related:[],sections:[k]};return Gxt({subject:A,surface:n,available:!0,override:dje(n),workspaceDefault:mD().inspector??null,columnShown:Agt("properties")!==!1})}return Gxt({subject:m,surface:n,available:g,override:dje(n),workspaceDefault:mD().inspector??null,columnShown:Agt("properties")!==!1})}function dve(t){const{subject:n,surface:s,presentation:c,available:d}=fve(t);return d?psn(n,{surface:s,presentation:c}):lsn}async function vsn(t,n){const{subject:s,available:c}=fve(t);if(!c)throw new Error("No Inspector subject is active.");const d=s.quickActions.filter(g=>g.id===n);if(d.length!==1){const g=s.quickActions.map(S=>S.id);throw new Error(d.length===0?`Inspector action ${JSON.stringify(n)} is not available. `+(g.length>0?`Available actions: ${g.join(", ")}.`:"This subject exposes no actions."):`Inspector action id ${JSON.stringify(n)} is ambiguous (${d.length} matches).`)}const m=d[0];if(!m||m.disabled)throw new Error(`Inspector action ${JSON.stringify(n)} is disabled.`);return await m.run(),dve(t)}function bsn(t,n){const s=c=>{throw new Error(`Inspector field ${JSON.stringify(t.path)} expects ${c}.`)};if(t.type==="number"&&(typeof n!="number"||!Number.isFinite(n))&&s("a finite number"),t.type==="boolean"&&typeof n!="boolean"&&s("a boolean"),(t.type==="string"||t.type==="color"||t.type==="asset"||t.type==="enum")&&typeof n!="string"&&s("a string"),t.type==="vec3"&&(!Array.isArray(n)||n.length!==3||n.some(c=>typeof c!="number"||!Number.isFinite(c)))&&s("three finite numbers"),t.type==="enum"&&t.options&&!t.options.includes(n))throw new Error(`Inspector field ${JSON.stringify(t.path)} accepts: ${t.options.map(String).join(", ")}.`)}async function Ssn(t,n,s){const c=Y9t(t,n);bsn(c.field,s);const d=await c.io.set(n,s)??Lhe;return{subject:dve(t),write:d}}function Y9t(t,n){const{subject:s,available:c}=fve(t);if(!c)throw new Error("No Inspector subject is active.");const d=(s.editable?.fields??[]).filter(k=>k.path===n).map(k=>({field:k,io:s.editable.io})),m=s.sections.flatMap(k=>{const A=k.body,F=A.kind==="fields"?{fields:A.fields,io:A.io}:A.kind==="custom"?A.editable:void 0;return F?F.fields.filter(D=>D.path===n).map(D=>({field:D,io:F.io})):[]}),g=[...d,...m];if(g.length===0)throw new Error(`The active Inspector has no field at ${JSON.stringify(n)}.`);if(g.length>1)throw new Error(`The active Inspector exposes ${JSON.stringify(n)} more than once.`);const S=g[0];if(S.field.readonly)throw new Error(`Inspector field ${JSON.stringify(n)} is read-only: ${RBe(S.field)}`);return S}class mje extends Error{constructor(n){super(n),this.name="InspectionRemovalUnavailableError"}}async function xsn(t,n){const s=Y9t(t,n);if(s.field.resettable!==!0)throw new mje(`Inspector field ${JSON.stringify(n)} does not declare itself removable (\`resettable\`), so this lane has no way to express the property's absence. Write a value with \`set-inspection-field\` instead — and note that doing so cannot restore byte-absence for a property an edit ADDED.`);if(!s.io.remove)throw new mje(`The Inspector io that owns ${JSON.stringify(n)} implements no removal door, so the property's authored override cannot be dropped through this editor. The dialect writer that owns this source edit owns removal too; until it does, an edit/revert round trip over this lane is unverifiable at byte level.`);const c=await s.io.remove(n)??Lhe;return{subject:dve(t),write:c}}const jVe=new Map;let Z9t=[];const hje=new Set;function Q9t(){Z9t=[...jVe.values()];for(const t of hje)t()}function XSn(t){return hje.add(t),()=>hje.delete(t)}function YSn(t){jVe.set(t.rootId,t),Q9t()}function ZSn(t){jVe.delete(t)&&Q9t()}function eMt(){return Z9t}function wsn(){const t=eMt();if(t.length===0)return null;const n=t.filter(s=>s.source==="measured");return n.length===0?null:`${n.length} of ${t.length} root(s) have NO readiness declaration (${n.map(s=>s.rootId).join(", ")}) — the host is measuring instead. A self-booting game states it with \`window.volterGame.ready\`.`}function Tsn(t){return t.liveMounted?t.livePlaying?t.storePlayState==="paused"?"paused":"playing":"paused":"stopped"}async function Csn(t,n){switch(t.reach.kind){case"game-contract":{const s=n.scenes();if(!s)return{ok:!1,code:"SCENE_CONTRACT_UNAVAILABLE",error:`open: "${t.id}" is reached through the running game's own scenes contract, and the game running in this session publishes none (\`window.volterGame.scenes\`).`};const c=s.goToScene(t.reach.sceneId);if(!c.ok)return{ok:!1,code:"SCENE_NOT_IN_CONTRACT",error:`open: "${t.id}" — ${c.error}`,known:c.known};const d=await c.settled;return d.error!==void 0?{ok:!1,code:"SCENE_SWITCH_FAILED",error:`open: "${t.id}" — the game's own navigation failed: ${d.error}`}:(n.activateGameDocument(),{ok:!0,documentId:n.gameDocumentId,title:t.label,scene:{requested:d.requested,current:d.current}})}case"root-mount":return n.activateGameDocument()?{ok:!0,documentId:n.gameDocumentId,title:t.label}:{ok:!1,code:"SCENE_DOCUMENT_NOT_MOUNTED",error:`open: "${t.id}" is the running game itself, and no game document is open in this session.`};case"entrypoint-selection":{const s=n.remountSelection,c=t.region;if(!s||c===null)return{ok:!1,code:"SCENE_NOT_OPENABLE_LIVE",error:`open: "${t.id}" sits at the entrypoint's \`${t.reach.selection}\` swap slot, and this session has no live remount for a native swap-slot scene — a running game cannot be sent there in place. Stop the game and open it as a document instead.`};const d=await s({selection:t.reach.selection,key:t.reach.key,regionId:c});return d.ok?(n.activateGameDocument(),{ok:!0,documentId:n.gameDocumentId,title:t.label,scene:{requested:t.reach.key,current:t.reach.key},restart:!0}):{ok:!1,code:"SCENE_SWITCH_FAILED",error:`open: "${t.id}" — remount at \`${t.reach.selection}["${t.reach.key}"]\` failed: ${d.error}`}}case"story":case"none":return null}}const Wge="console";function Esn(t){let n=VQ().length>0;const s=RRt(()=>{const m=VQ().length>0;m&&!n&&mD().drawer!=="hidden"&&vC(Wge),n=m});let c=t.getSnapshot().lastError!==null;const d=t.subscribe(()=>{const m=t.getSnapshot().lastError,g=m!==null;g&&!c&&(Qs.error(`Source write rolled back: ${m.message} (${m.code})`,"history"),mD().drawer!=="hidden"&&vC(Wge)),c=g});return()=>{s(),d()}}function pve(){_kr(Wge)}function _ve(){vC(Wge)}const Hge=new Map;function QSn(t){return n=>{if(n.phase==="adopted"){Hge.set(t,{source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[]});return}const s=Hge.get(t);s&&s.alternates.push({sceneId:n.sceneId,cameraId:n.cameraId,sameRenderer:n.sameRenderer,drawCount:n.drawCount})}}function exn(t){Hge.delete(t)}function ksn(){return[...Hge].map(([t,n])=>({rootId:t,source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[...n.alternates],...n.alternates.length>0?{ambiguity:`"${t}" rendered ${n.alternates.length} other world(s) after the one the editor adopted (${n.source}: ${n.sceneId}). The adopted world is unchanged; if the editor is showing the wrong scene, one of these is it: `+n.alternates.map(s=>`${s.sceneId}${s.sameRenderer?"":" (a SECOND renderer)"}`).join(", ")}:{}}))}const Asn=new Set(["state","stateAll","providers","commands","events","snapshot"]);function Dsn(t){if(t.type!=="bridge-call")return[];const n=t.method;if(typeof n!="string"||!Asn.has(n))return[];const s=t.instance;try{const c=Qwr(s).debug;if(c===void 0)return[];const d=[D3t(c),s??""].join(":"),m=(S,k="")=>[d,S,k].join(":");if(n==="snapshot")return[m("snapshot"),m("state","time"),m("stateAll"),m("events")];const g=n==="state"?String(t.callArgs?.[0]):"";return[m(n,g)]}catch{return[]}}function Psn(t,n,s){const c=Dsn(t),d=n&&c.length>0&&c.every(m=>s.has(m));if(n)for(const m of c)s.add(m);return{derived:d?"none":n&&c.length>0?"always":Zvr(t.type)??Xvr(t.type),playFullReport:n&&!d&&c.length>0?"explicit":n&&t.type==="bridge-call"&&t.method==="invoke"?"if-content-changed":"none"}}function Isn(t,n,s,c){return t==="none"?!1:!(t==="if-content-changed"&&n==="none"&&s===c)}function Qxt(t,n){const s=nq(t);return s.hierarchy.node(n)!==null||Mze(s,n)!==null?null:`select: no entity with id "${n}" — neither the active authoring adapter's hierarchy nor the live object index owns it, so there is nothing to select. Read the ids that exist with editor.hierarchy() (the rows the panel is rendering) or editor.status().entities.`}function SOe(t,n,s){const c=s2(Pp())?.selection;if(c){c.apply(n);return}const d=t.applySelectionBeforePresentation(n);s?.deferPresentation?s.deferPresentation(d):setTimeout(d,0)}function Nsn(){return typeof document>"u"?null:{visibility:document.visibilityState,focused:document.hasFocus(),reportedAt:Date.now()}}const Osn=["entities","entityCount","ontologyInvariants"];function Rsn(t){const n={...t};for(const s of Osn)delete n[s];for(const s of rnn())delete n[s];return{...n,_statePatch:!0}}function ewt(t,n=null){const s=VQ(),c=Pp(),d=Bze(t),m=E4t.getSnapshot(),g=n?.entities??Y0e(t);return{playState:Tsn({storePlayState:t.playState,liveMounted:wVe(),livePlaying:ave()}),mountFailures:s.map(S=>({...S})),storyFailures:rq().flatMap(S=>S.ok?[]:[{modulePath:S.modulePath,error:S.error}]),moduleSplits:ynn().map(S=>({path:S.path,urls:[...S.urls]})),adapter:u0(),readiness:eMt().map(S=>({...S})),readinessWarning:wsn(),worldAdoption:ksn().map(S=>({...S})),presence:Nsn(),pageErrors:Fsn(),consoleErrors:Msn(),sessionErrors:jsn(),sessionWarnings:Lsn(),rendererResources:{...xnn()},ontologyInvariants:n?.ontologyInvariants??x9t().map(S=>({...S})),...tnn(n),selectedEntityId:d[0]??null,selectedEntityIds:d,selectedCreationSite:HYr(t),selectedWriteAnchorKind:GYr(t),activeViewportTab:t.activeViewportTab,activeDocumentId:c,activeUtilityId:dkr(),gameplaySession:{selectedSessionId:m.selectedSessionId,latestSessionId:m.sessions[0]?.id??null,selectedStatus:m.selectedSession?.status??null,cursorMs:m.cursorMs,liveEdgeMs:m.liveEdgeMs},openDocumentIds:l0().map(S=>S.descriptor.id),availableDocuments:ive().map(S=>({id:S.descriptor.id,category:S.category,default:S.default})),activeTabKey:(()=>{const S=Pp();return S&&eFt(S)?S:"__inspector__"})(),entityCount:g.length,savePath:Lze(t),saveState:FRt(t),entities:g,viewportActivationTimings:vTr()}}function tMt(t,n){const s=n instanceof Error?n.message:String(n),c=`editor command "${String(t.type)}" threw: ${s}`;return console.error(c,n),{ok:!1,error:c}}function LVe(t){const n=hVe();return!n||t<n.startedAt?!1:n.endedAt===null||t<=n.endedAt}function Fsn(){return Qs.getEntries().filter(t=>t.level==="error"&&t.source==="runtime"&&LVe(t.timestamp)).slice(-100).map(t=>t.count>1?`${t.message} (×${t.count})`:t.message)}const twt=200;function Msn(){return BVe(Qs.getEntries().filter(t=>t.level==="error"&&t.source!=="runtime"&&LVe(t.timestamp)))}function BVe(t){const n=t.reduce((c,d)=>c+d.count,0),s=t.slice(-3).map(c=>{const d=c.source?`[${c.source}] `:"",m=c.count>1?` (×${c.count})`:"",g=c.message.length>twt?`${c.message.slice(0,twt)}…`:c.message;return`${d}${g}${m}`});return{count:n,recent:s}}function jsn(){return BVe(Qs.getEntries().filter(t=>t.level==="error"&&!LVe(t.timestamp)))}function Lsn(){return BVe(Qs.getEntries().filter(t=>t.level==="warn"))}async function Bsn(t){const n=t.src;if(typeof n!="string")return{ok:!1,error:`document-script requires a string "src" (the step's toString())`};const s=Pp();if(!s)return{ok:!1,error:"document-script: no document is active",data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE"}};await x4t(s);const c=lQ(s);if(Pp()!==s)return{ok:!1,error:"document-script: the active document changed while its context was loading",data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE",documentId:s}};if(c===void 0)return{ok:!1,error:`document-script: the active document (${s}) publishes no context to run against — a document opts in through its \`publishContext\` prop (the mesh document publishes its session).`,data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE",documentId:s}};let d;try{d=new Function("ctx","info",`return (${n})(ctx, info)`)}catch(m){return{ok:!1,error:`document-script: failed to reconstruct the step function from source — ${m instanceof Error?m.message:String(m)}`,data:{code:"DOCUMENT_SCRIPT_ERROR"}}}try{const m=await d(c,{documentId:s});return{ok:!0,data:{result:m===void 0?null:m}}}catch(m){return{ok:!1,error:`document-script: step threw — ${m instanceof Error?m.message:String(m)}`,data:{code:"DOCUMENT_SCRIPT_ERROR"}}}}async function $sn(t,n,s){if(XYr(n.type),DYr()&&n.type!=="stop")return{ok:!1,error:"Video export owns this paused run. Stop it to cancel before another command."};const c=vVe(n);if(c)return c;if(n.type==="play"||n.type==="restart"){const g=VQ();if(g.length>0)return{ok:!1,error:`this project's ${g.length===1?"root":"roots"} did not mount, so there is nothing to ${n.type==="play"?"play":"restart"}: `+g.map(S=>`"${S.worldId}" (${S.identity}) — ${S.message}`).join("; ")}}const d=await YYr(n.type);if(d)try{const g=await d.handle(n);return{ok:g.ok,...g.error!==void 0?{error:g.error}:{},...g.data!==void 0?{data:g.data}:{}}}catch(g){return tMt(n,g)}if(!fye(n.type))return{ok:!1,error:`unknown command type "${n.type}" — not one of the editor's own, and no package this project declares contributes it (or the editor page predates this CLI)`,data:{code:"UNKNOWN_COMMAND_TYPE"}};const m=n.type;switch(m){case"session-prepare-close":return await bnn(),{ok:!0};case"select":{const g=n.id??null;if(g!==null){const S=Qxt(t,g);if(S)return{ok:!1,error:S}}SOe(t,g?[g]:[],s);break}case"select-multiple":{const g=n.ids;for(const S of g){const k=Qxt(t,S);if(k)return{ok:!1,error:k}}SOe(t,g,s);break}case"select-all":{SOe(t,Y0e(t).map(g=>g.id),s);break}case"viewport-tab":{const g=n.tab;if(g!=="edit"&&g!=="play")return{ok:!1,error:`viewport-tab requires "edit" or "play", got ${String(g)}.`};const S=l0().map(A=>A.descriptor.id),k=g==="play"?S.find(A=>A===a0):S.find(A=>A==="workspace:scene")??S.find(A=>A!==a0);if(!k||!X0(k))return{ok:!1,error:g==="play"?"viewport-tab play: no Game document is open. Start Play first.":"viewport-tab edit: no document other than Game is open."};break}case"show-panel":try{const g=n.panel;return typeof g!="string"||g.trim()===""?{ok:!1,error:'show-panel requires a non-empty "panel".'}:{ok:!0,data:{panel:await w9t(g)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"active-tab":{const g=n.key;if(g!=="__inspector__"&&!X0(g)){const S=l0().map(k=>k.descriptor.id);return{ok:!1,error:`No open workspace document with id "${g}" — nothing was activated. `+(S.length>0?`Open documents: ${S.join(", ")}.`:"No documents are open in this workspace.")}}break}case"select-asset":{const g=n.path;if(typeof g!="string"||g.trim()==="")return{ok:!1,error:'select-asset requires a non-empty "path".'};const S=g.replace(/^\/+/,""),k=S.split("/").pop()??S,A=ig(k);BI({path:g,name:k,kind:FB(A)??"unknown",capabilities:A,origin:"project"});break}case"open-asset-tab":{const g=n.kind,S=aN(n.path,g);if(!await tFt(S,g))return{ok:!1,error:`Asset document did not finish mounting its Inspector: ${S}`};break}case"close-asset-tab":{const g=n.key;eFt(g)&&kN(g);break}case"toggle-command-palette":DVe();break;case"toggle-console":pve();break;case"page-reload":return setTimeout(()=>{window.location.reload()},0),{ok:!0,data:{scheduled:!0}};case"set-workspace":{const g=n.workspace;if(!kB(g))return{ok:!1,error:`set-workspace requires one of ${KBe().join(", ")}, got ${String(g)}.`};if(zS()===g)return{ok:!0,data:{workspace:g,applied:!0}};const S=CDt().then(()=>!0);a2(g);const k=await Promise.race([S,new Promise(A=>setTimeout(()=>A(!1),3e3))]);return{ok:!0,data:{workspace:g,applied:k}}}case"set-style":{const g=n.style,S=OR().map(A=>A.id);if(typeof g!="string"||!S.includes(g))return{ok:!1,error:`set-style requires one of ${S.join(", ")}, got ${String(g)}.`};r$e(g);const k=Nhe();return k!==g?{ok:!1,error:`set-style applied "${g}" but the editor is wearing ${k===null?"a custom mix of axes":`"${k}"`} (${ygt(g).join("; ")}).`,data:{style:k,differences:ygt(g)}}:{ok:!0,data:{style:g}}}case"viewport-presentation":{const g=n.documentId;if(typeof g!="string"||g==="")return{ok:!1,error:"viewport-presentation needs a `documentId` (a document stage)."};const S=M_e(g)===null&&M_e(`document:${g}`)!==null?`document:${g}`:g,k=n.layer;if(k!==void 0){if(typeof k!="object"||k===null)return{ok:!1,error:"viewport-presentation `layer` must be a presentation layer object."};n$e(S,k)}const A=n.preset;return A!==void 0&&(typeof A!="string"||!NAr(S,A))?{ok:!1,error:`viewport-presentation \`preset\` must be one of: ${bgt().map(F=>F.id).join(", ")||"(none registered)"}.`}:{ok:!0,data:{presentation:i$e(S),binding:M_e(S),bound:MAr(),lastDraw:FAr(S),presets:AAr().map(F=>F.id),viewPresets:bgt().map(F=>F.id),environmentImages:qAr().map(F=>F.id)}}}case"set-appearance":{const g=n.material;return g===void 0?{ok:!1,error:"set-appearance needs a `material` to set."}:Bye(g)?(ODt(g),{ok:!0,data:{material:mN(),style:Nhe()}}):{ok:!1,error:`set-appearance material must be one of ${$Tr().map(k=>k.id).join(", ")}, got ${String(g)}.`}}case"present-view":try{return{ok:!0,data:{...await Vge(t,n.view)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"current-view":return{ok:!0,data:{view:ste(t)}};case"inspect":return{ok:!0,data:{subject:dve(t)}};case"run-inspection-action":try{const g=n.actionId;if(typeof g!="string"||g.trim()==="")throw new Error("run-inspection-action requires a non-empty actionId.");return{ok:!0,data:{subject:await vsn(t,g)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"run-command":try{const g=n.commandId;if(typeof g!="string"||g.trim()==="")throw new Error("run-command requires a non-empty commandId.");const S=await ain(g,n.args);return{ok:!0,data:{result:S===void 0?null:S}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"hierarchy":{const g=Ext();return g===null?{ok:!1,error:"the hierarchy panel (GameHierarchy) is not mounted — no row tree is rendered, so there is nothing to report. Open the Hierarchy panel in the workspace dock and retry."}:{ok:!0,data:{hierarchy:snn(g,{playState:t.playState,activeViewportTab:t.activeViewportTab})}}}case"expand-hierarchy-all":case"collapse-hierarchy-all":{const g=n.type==="expand-hierarchy-all",S=Ext();if(S===null)return{ok:!1,error:`the hierarchy panel (GameHierarchy) is not mounted — no row tree is rendered, so there is nothing to ${g?"expand":"collapse"}. Open the Hierarchy panel in the workspace dock and retry.`};const k=inn();g?S.expandAll():S.collapseAll();try{await k}catch(A){return{ok:!1,error:A instanceof Error?A.message:String(A)}}return{ok:!0,data:{}}}case"undo":case"redo":{const g=s?.history;if(!g)return{ok:!1,error:`${String(n.type)}: this editor has no history session attached, so there is nothing to undo.`};const S=n.type==="undo"?await g.undo():await g.redo(),k=g.getSnapshot();return{ok:!0,data:{moved:S,canUndo:k.canUndo,canRedo:k.canRedo,undoLabel:k.undoLabel,redoLabel:k.redoLabel}}}case"set-inspection-field":try{const g=n.path;if(typeof g!="string"||g.trim()==="")throw new Error("set-inspection-field requires a non-empty field path.");const S=await Ssn(t,g,n.value);return{ok:!0,data:{subject:S.subject,write:S.write}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"remove-inspection-field":try{const g=n.path;if(typeof g!="string"||g.trim()==="")throw new Error("remove-inspection-field requires a non-empty field path.");const S=await xsn(t,g);return{ok:!0,data:{subject:S.subject,write:S.write}}}catch(g){return g instanceof mje?{ok:!1,error:g.message,data:{code:"REMOVAL_UNAVAILABLE"}}:{ok:!1,error:g instanceof Error?g.message:String(g)}}case"structure-op":try{const g=String(n.op??""),S=Cm(t).adapter,k=Bze(t),A=Array.isArray(n.ids)?n.ids.filter(G=>typeof G=="string"):typeof n.id=="string"&&n.id.trim()!==""?[n.id]:k,F=A[0],D=()=>{if(!F)throw new Error(`structure-op "${g}" needs an id or a selected row.`);return F},J=G=>typeof n[G]=="string"&&n[G].trim()!==""?n[G]:void 0,$=S.structure;if(!$)return{ok:!1,error:"structure-op: the active authoring adapter exposes no structure provider."};switch(g){case"create":{const G=J("kind");if(!G)return{ok:!1,error:'structure-op "create" needs a `kind`.'};const se=t0e(S,G,J("parentId"));return{ok:!0,data:{id:se.id,write:await se.ack}}}case"delete":return{ok:!0,data:{write:A.length>1&&$.removeMany?await h$e(S,A):await jhe(S,D())}};case"duplicate":{if(A.length>1&&$.duplicateMany)return{ok:!0,data:{write:await TPt(S,A)}};const G=r0e(S,D());return{ok:!0,data:{id:G.id,write:await G.ack}}}case"reparent":{const G=J("parentId")??null;return{ok:!0,data:{write:await QO(S,D(),G)}}}case"reorder":{if(!$.reorder)return{ok:!1,error:"structure-op: this adapter has no `reorder`."};const G=J("beforeSiblingId")??null;return{ok:!0,data:{write:await g$e(S,D(),G)}}}case"wrap":return $.wrap?{ok:!0,data:{write:await n0e(S,D(),J("tag"))}}:{ok:!1,error:"structure-op: this adapter has no `wrap`."};case"unwrap":return $.unwrap?{ok:!0,data:{write:await i0e(S,D())}}:{ok:!1,error:"structure-op: this adapter has no `unwrap`."};case"group":{if(!$.group)return{ok:!1,error:"structure-op: this adapter has no `group`."};const G=o0e(S,A);return{ok:!0,data:{id:G.id,write:await G.ack}}}case"ungroup":{if(!$.ungroup)return{ok:!1,error:"structure-op: this adapter has no `ungroup`."};const G=y$e(S,D());return{ok:!0,data:{ids:G.ids,write:await G.ack}}}case"copy":return $.copy?{ok:!0,data:{copied:await s0e(S,A)}}:{ok:!1,error:"structure-op: this adapter has no `copy`."};case"cut":{if(!$.cut)return{ok:!1,error:"structure-op: this adapter has no `cut`."};const G=await a0e(S,A);return G===!1?{ok:!1,error:'structure-op "cut" was refused by the adapter.'}:{ok:!0,data:{write:G}}}case"paste":{if(!$.paste)return{ok:!1,error:"structure-op: this adapter has no `paste`."};const G=J("parentId")??(F?S.hierarchy.node(F)?.parentId??null:null),se=await c0e(S,G);return se===!1?{ok:!1,error:'structure-op "paste" was refused by the adapter.'}:{ok:!0,data:{write:se}}}default:return{ok:!1,error:`structure-op: unknown op ${JSON.stringify(g)}. Known ops: create, delete, duplicate, reparent, reorder, wrap, unwrap, group, ungroup, copy, cut, paste.`}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"document-probe":try{return{ok:!0,data:{...await Yrn(n.step)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"capture-active-document":{const g=WDr(n);if("error"in g)return{ok:!1,error:g.error};try{n.view&&await Vge(t,n.view);const S=await T9t(t,g.size);return unn(S.base64),{ok:!0,data:{...S}}}catch(S){return{ok:!1,error:S instanceof Error?S.message:String(S)}}}case"capture-editor-chrome":{const g=n.scale;if(g!==void 0&&(typeof g!="number"||!(g>0)||g>4))return{ok:!1,error:`capture-editor-chrome: "scale" must be a number greater than 0 and no more than 4 (output pixels per CSS pixel; the frame crosses the relay as base64 PNG). It defaults to the page's own devicePixelRatio.`};const S=n.region;if(S!==void 0&&S!=="page"&&S!=="document")return{ok:!1,error:'capture-editor-chrome: "region" is "page" or "document".'};try{return{ok:!0,data:{...await Qrn(t,{...g===void 0?{}:{scale:g},...S===void 0?{}:{region:S}})}}}catch(k){return{ok:!1,error:k instanceof Error?k.message:String(k)}}}case"document-table":{const g=u0();return g?{ok:!0,data:{default:g.scenes.default??null,entries:g.scenes.entries,pending:g.documentsPending===!0}}:{ok:!1,error:"The project adapter has not resolved yet — no document table to list.",data:{code:"SCENE_TABLE_UNAVAILABLE"}}}case"open":{const g=n.id;if(typeof g!="string"||g.trim()==="")return{ok:!1,error:"open requires a non-empty scene-table entry id."};const S=ate(),k=S?u0()?.scenes.entries.find(J=>J.id===g&&IN(J.kind)===void 0):void 0,A=S?async J=>await a9t(J)??{ok:!1,error:"No running lane can remount with a selection."}:void 0,D=(k?await Csn(k,{scenes:bVe,activateGameDocument:()=>X0(a0),gameDocumentId:a0,...A?{remountSelection:A}:{}}):null)??await Vtn(g);return D.ok?{ok:!0,data:{documentId:D.documentId,title:D.title,..."scene"in D&&D.scene?{scene:D.scene}:{},..."restart"in D&&D.restart?{restart:!0}:{}}}:{ok:!1,error:D.error,data:{code:D.code,...D.known===void 0?{}:{known:[...D.known]}}}}case"document-script":return Bsn(n);default:return{ok:!1,error:`unknown command type "${String(m)}" — editor page predates this CLI`,data:{code:"UNKNOWN_COMMAND_TYPE"}}}return{ok:!0}}function qsn(t,n){const s=jD();let c=null,d=-1;const m=new Set;let g=!1,S=null,k=null,A=null;const F=()=>{i_e()===null&&(c=ewt(t),d=t.contentVersion,YSt(c))};let D=null;const J=()=>{S!==null&&(clearTimeout(S),S=null),D?.(),D=null},$=()=>{k=null,A!==null&&clearTimeout(A),A=null},G=()=>{$(),g=!0,J(),S=setTimeout(()=>{S=null,D=Axt(()=>{D=null,g=!1,F()})},250)},se=vn=>{if(t.contentVersion!==vn){G();return}$(),k=vn,A=setTimeout($,1e3)},pe=()=>ate()&&t.playState==="playing",ue=vn=>{(vn!==null||k!==null&&t.contentVersion!==k||g&&t.contentVersion!==d)&&G()},Ce=(vn,Yr,en)=>pe()?(Isn(en,vn,t.contentVersion,d)&&(vn==="explicit"?G():vn==="if-content-changed"?se(Yr??t.contentVersion):ue(Yr)),!0):!1,Ae=(vn="always",Yr="none",en=null)=>{if(i_e()!==null)return;if(c===null){F();return}const ii=ewt(t,c);c=ii,YSt(Rsn(ii)),vn!=="none"&&(Ce(Yr,en,vn)||(J(),$(),g=!1,!(vn==="if-content-changed"&&t.contentVersion===d)&&D===null&&(D=Axt(()=>{D=null,F()}))))};let Pe=!1,be=!1,X=t.playState;const we=vn=>{vn&&(be=!0),!Pe&&(Pe=!0,queueMicrotask(()=>{Pe=!1;const Yr=be;be=!1;const en=X!==t.playState;X=t.playState,Ae(Yr?"always":"if-content-changed",en&&t.playState==="playing"?"explicit":"none")}))},qe=()=>we(!1),bt=()=>we(!0),Pt=t.subscribe(qe),Wt=CVe(bt),zt=OC(bt),ft=gTr(bt);F(),o_e(!0),pEr(YZr),s.addEventListener("open",()=>{Ae("if-content-changed"),o_e(i_e()===null)});const tr=zze(vn=>{o_e(vn===null)});s.addEventListener("editor-command",vn=>{try{const Yr=JSON.parse(vn.data),en=Yr._requestId,ii=t.contentVersion,No=i_e();if(No!==null){const En=fZr(No,String(Yr.type));en&&ZSt(en,!1,En);return}en&&KZr(en);let gn;$sn(t,Yr,{deferPresentation:En=>{gn=En},...n?{history:n}:{}}).catch(En=>tMt(Yr,En)).then(En=>{if(en){const On=ZSt(en,En.ok,En.error,En.data,gn!==void 0);if(gn){const ji=()=>window.setTimeout(gn,0);On.then(ji,ji)}}else gn&&window.setTimeout(gn,0);const cs=Psn(Yr,En.ok,m);Ae(cs.derived,cs.playFullReport,ii)})}catch{}}),s.addEventListener("project-changed",()=>{window.location.reload()});const Qt=()=>Ae();document.addEventListener("visibilitychange",Qt),window.addEventListener("focus",Qt),window.addEventListener("blur",Qt);const Tt=()=>setTimeout(Qt,0);return window.addEventListener("error",Tt),window.addEventListener("unhandledrejection",Tt),()=>{o_e(!1),D?.(),D=null,S!==null&&clearTimeout(S),S=null,$(),tr(),Pt(),Wt(),zt(),ft(),document.removeEventListener("visibilitychange",Qt),window.removeEventListener("focus",Qt),window.removeEventListener("blur",Qt),window.removeEventListener("error",Tt),window.removeEventListener("unhandledrejection",Tt),s.close()}}function zsn(t,n,s){return Ye.createContext(s)}const LD=zsn(void 0,"EditorContext",null);function Vsn({runtime:t,children:n}){const s=Ye.useMemo(()=>({begin:()=>{},end:()=>{}}),[]);return q.jsx(LD.Provider,{value:t,children:q.jsx(h4t.Provider,{value:s,children:q.jsx(Ye.Suspense,{children:n})})})}function Yv(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorStore must be used within <EditorProvider>");return t.store}function txn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorStats must be used within <EditorProvider>");return t.stats}function Usn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorInit must be used within <EditorProvider>");return t.initPromise}function rMt(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryService must be used within <EditorProvider>");return t.session.history}function Jsn(){return Ye.useContext(LD)?.session.history??null}function rxn(){return Ye.useContext(LD)?.store??null}function nxn(){return Ye.useContext(LD)?.stats??null}function mve(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryCommands must be used within <EditorProvider>");return t.session.historyCommands}function nMt(){const t=mve();return Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot)}function Wsn(t,n){return t==="selection"&&n==="selection"?"selection":"content"}class Hsn{_viewportSelections={edit:new Set,play:new Set};_history=null;_playState="stopped";_playEditRegime=null;_followsWorkspaceFocus;constructor(n={}){if(this._followsWorkspaceFocus=n.followsWorkspaceFocus===!0,!this._followsWorkspaceFocus)return;let s=this.activeViewportTab;o2(()=>{const c=this.activeViewportTab;c!==s&&(s=c,this._notify())})}_listeners=new Set;_deferredNotifyTimer=null;_deferredNotifyScope="content";_version=0;_shellVersion=0;_contentVersion=0;_hierarchyRowFacetVersion=0;subscribe=n=>(this._listeners.add(n),()=>this._listeners.delete(n));getSnapshot=()=>this._version;getShellSnapshot=()=>this._shellVersion;get contentVersion(){return this._contentVersion}get hierarchyRowFacetVersion(){return this._hierarchyRowFacetVersion}get projectHistory(){return this._history}_notify(n="content",s="shell",c=n!=="selection"){this._deferredNotifyTimer!==null&&(clearTimeout(this._deferredNotifyTimer),this._deferredNotifyTimer=null),this._beforeNotify(),this._version++,s==="shell"&&this._shellVersion++,n!=="selection"&&this._contentVersion++,c&&this._hierarchyRowFacetVersion++;for(const d of this._listeners)d()}_transformMode="combined";_transformSpace="world";_snapEnabled=!1;_snapValues={translate:1,rotate:15,scale:.25};_snapToSurface=!1;_rotationSnap=!1;_snap2D={step:8,offsetX:0,offsetY:0,primaryEvery:8,rotationOffset:0,rotationStep:15,scaleStep:.1,relative:!1,pixel:!0};_scaleSnap=!1;_smartSnap={enabled:!1,parent:!0,others:!0,guides:!0,sides:!0,center:!0};_preserveChildrenTransform=!1;_pivotMode="active-element";_gizmoAnchor="auto";_showHelpers=!0;_showGizmos=!0;_helperVisibility={bounds:!1,lights:!0,cameras:!0,colliders:!0,joints:!0,particles:!0,lod:!0,audio:!0,splines:!0,navmesh:!0,constraints:!0,reflectionProbes:!0,triggerVolumes:!0,skeletons:!1,weights:!1,cursor:!0,empties:!0};get transformMode(){return this._transformMode}get transformSpace(){return this._transformSpace}get snapEnabled(){return this._snapEnabled}get snapValues(){return this._snapValues}get snapToSurface(){return this._snapToSurface}get snap2D(){return this._snap2D}setSnap2D(n){this._snap2D={...this._snap2D,...n},this._notify()}get rotationSnap(){return this._rotationSnap}get scaleSnap(){return this._scaleSnap}setRotationSnap(n){this._rotationSnap=n,this._notify()}setScaleSnap(n){this._scaleSnap=n,this._notify()}get smartSnap(){return this._smartSnap}get preserveChildrenTransform(){return this._preserveChildrenTransform}get pivotMode(){return this._pivotMode}get gizmoAnchor(){return this._gizmoAnchor}get showHelpers(){return this._showHelpers}get showGizmos(){return this._showGizmos}get helperVisibility(){return this._helperVisibility}setTransformMode(n){this._transformMode=n,this._notify()}setTransformSpace(n){this._transformSpace=n,this._notify()}toggleSnap(){this._snapEnabled=!this._snapEnabled,this._notify()}setSnapValues(n){this._snapValues={...this._snapValues,...n},this._notify()}setSmartSnap(n){this._smartSnap={...this._smartSnap,...n},this._notify()}toggleSnapToSurface(){this._snapToSurface=!this._snapToSurface,this._notify()}togglePreserveChildrenTransform(){this._preserveChildrenTransform=!this._preserveChildrenTransform,this._notify()}setPivotMode(n){this._pivotMode=n,this._notify()}setGizmoAnchor(n){this._gizmoAnchor=n,this._notify()}toggleGizmos(){this._showGizmos=!this._showGizmos,this._notify()}toggleHelpers(){this._showHelpers=!this._showHelpers,this._notify()}toggleHelperType(n){this._helperVisibility[n]=!this._helperVisibility[n],this._helperVisibility[n]&&(this._showHelpers=!0),this._notify()}_viewportActionListeners=new Set;onViewportAction=n=>(this._viewportActionListeners.add(n),()=>this._viewportActionListeners.delete(n));requestViewportAction(n){for(const s of this._viewportActionListeners)s(n)}focusOnEntity(n){this.requestViewportAction({type:"focus-entity",id:n})}focusOnSelection(){this.requestViewportAction({type:"focus-selection"})}frameAll(){this.requestViewportAction({type:"frame-all"})}zoomView(n){this.requestViewportAction({type:"zoom-view",direction:n})}focusOnScene(){this.requestViewportAction({type:"focus-scene"})}snapSelectionToFloor(){this.requestViewportAction({type:"snap-selection-to-floor"})}setViewPreset(n){this.requestViewportAction({type:"set-view-preset",preset:n})}stepView(n){this.requestViewportAction({type:"step-view",step:n})}toggleCameraView(){this.requestViewportAction({type:"toggle-camera-view"})}toggleProjection(){this.requestViewportAction({type:"toggle-projection"})}setCameraPose(n,s,c){this.requestViewportAction({type:"set-camera-pose",position:n,target:s,...c!==void 0?{fov:c}:{}})}notifyChange(n="content",s="shell",c=n!=="selection"){this._notify(n,s,c)}_notifyDeferred(n="content"){if(this._deferredNotifyTimer!==null){this._deferredNotifyScope=Wsn(this._deferredNotifyScope,n);return}this._deferredNotifyScope=n,this._deferredNotifyTimer=setTimeout(()=>{this._deferredNotifyTimer=null;const s=this._deferredNotifyScope;this._deferredNotifyScope="content",this._notify(s)},0)}attachHistory(n){if(this._history!==n){if(this._history)throw new Error("EditorStore is already attached to project history.");this._history=n,this._onHistoryAttached()}}get selectedEntityId(){const n=this._viewportSelections[this.activeViewportTab];return n.size===0?null:[...n].at(-1)}get selectedEntityIds(){return this._viewportSelections[this.activeViewportTab]}get canUndo(){return this._history?.getSnapshot().canUndo??!1}get canRedo(){return this._history?.getSnapshot().canRedo??!1}notifyIngestEdit(){this._notify()}get playState(){return this._playState}_blockedDuringPlay(n){return this._playState==="stopped"?!1:(console.warn(`EditorStore: "${n}" is disabled during play mode — stop the game first.`),!0)}setPlayState(n){const s=this._playState!=="stopped";this._playState=n,n==="stopped"&&s&&this._onPlayStopped(),this._notify()}get playEditRegime(){return this._playEditRegime}setPlayEditRegime(n){this._playEditRegime=n,this._notify()}get activeViewportTab(){return this._followsWorkspaceFocus&&Pp()===a0?"play":"edit"}select(n,s="immediate"){const c=this._viewportSelections[this.activeViewportTab];c.clear(),n&&c.add(n),s==="deferred"?this._notifyDeferred("selection"):this._notify("selection")}selectMultiple(n,s="immediate"){this._viewportSelections[this.activeViewportTab]=new Set(n),s==="deferred"?this._notifyDeferred("selection"):this._notify("selection")}applySelectionBeforePresentation(n){this._viewportSelections[this.activeViewportTab]=new Set(n);let s=!1;return()=>{s||(s=!0,this._notify("selection"))}}addToSelection(n){this._viewportSelections[this.activeViewportTab].add(n),this._notify("selection")}toggleSelection(n){const s=this._viewportSelections[this.activeViewportTab];s.has(n)?s.delete(n):s.add(n),this._notify("selection")}_beforeNotify(){}_onHistoryAttached(){}_onPlayStopped(){}}class Gsn{constructor(n){this.history=n,this.snapshot=this.buildSnapshot(),this.unsubscribeHistory=n.subscribe(this.notify)}tail=Promise.resolve();listeners=new Set;pending=0;version=0;disposed=!1;idleWaiters=new Set;unsubscribeHistory;snapshot;subscribe=n=>this.disposed?()=>{}:(this.listeners.add(n),()=>this.listeners.delete(n));getSnapshot=()=>this.snapshot;undo(){return this.enqueue(async()=>(await this.waitForServiceIdle(),this.assertNotDisposed(),this.history.undo()))}redo(){return this.enqueue(async()=>(await this.waitForServiceIdle(),this.assertNotDisposed(),this.history.redo()))}jumpTo(n){return this.enqueue(async()=>(await this.waitForServiceIdle(),this.assertNotDisposed(),this.history.jumpTo(n)))}get canUndo(){return this.snapshot.canUndo}get canRedo(){return this.snapshot.canRedo}dispose(){if(this.disposed)return;this.disposed=!0,this.unsubscribeHistory();const n=new Error("History commands are disposed.");for(const s of this.idleWaiters)s.unsubscribe(),s.reject(n);this.idleWaiters.clear(),this.listeners.clear(),this.notify()}enqueue(n){if(this.disposed)return Promise.reject(new Error("History commands are disposed."));this.pending++,this.notify();const s=()=>{if(this.disposed)throw new Error("History commands are disposed.");return n()},c=this.tail.then(s,s);return this.tail=c.then(()=>{},()=>{}),c.finally(()=>{this.pending--,this.notify()})}assertNotDisposed(){if(this.disposed)throw new Error("History commands are disposed.")}waitForServiceIdle(){return this.disposed?Promise.reject(new Error("History commands are disposed.")):this.history.getSnapshot().busy?new Promise((n,s)=>{const c={unsubscribe:()=>{},reject:s},d=()=>{c.unsubscribe(),this.idleWaiters.delete(c)};c.unsubscribe=this.history.subscribe(()=>{this.history.getSnapshot().busy||(d(),n())}),this.idleWaiters.add(c)}):Promise.resolve()}notify=()=>{this.version++,this.snapshot=this.buildSnapshot();for(const n of this.listeners)n()};buildSnapshot(){const n=this.history.getSnapshot(),s=this.pending>0||n.busy;return{version:this.version,busy:s,canUndo:!this.disposed&&!s&&n.canUndo,canRedo:!this.disposed&&!s&&n.canRedo,undoLabel:n.undoLabel,redoLabel:n.redoLabel}}}function Ksn(t){let n=t.getSnapshot().limitWarning,s=t.getSnapshot().lastEviction;return t.subscribe(()=>{const{limitWarning:c,lastEviction:d}=t.getSnapshot();c!==n&&(n=c,c&&(i0(c.message),Qs.warn(c.message,"history"))),d!==s&&(s=d,d&&Qs.warn(d.message,"history"))})}class Xsn{constructor(n,s={}){this.projectIdentity=n,this.history=new DDr(s),this.historyCommands=new Gsn(this.history),this.releaseLimitNotices=Ksn(this.history)}history;historyCommands;releaseLimitNotices;dispose(){this.releaseLimitNotices(),this.historyCommands.dispose(),this.history.dispose()}}function Ysn(){return iMt}let iMt=Promise.resolve();function oMt(){const t=Zsn();return iMt=t.then(()=>{},()=>{}),t}async function Zsn(){await sMt()}async function sMt(){const t=wf();if(t){Qs.log(`Opened project: ${t.config.name}`,"project");return}try{const n=await kFt();n&&Qs.log(`Opened project: ${n.config.name}`,"project")}catch{}}const aMt=Object.freeze(Object.defineProperty({__proto__:null,bootstrapProject:oMt,initProject:sMt,projectBootstrapSettled:Ysn},Symbol.toStringTag,{value:"Module"}));function xOe(t){return Promise.reject(new Error(`This editor tier cannot ${t}.`))}const cMt={openPersistence:()=>xOe("persist Asset Lab documents"),replaceSource:()=>xOe("write project source"),saveThumbnailFraming:()=>xOe("write project thumbnail framing")};let yme=cMt;function Qsn(t){if(yme!==t){if(yme!==cMt)throw new Error("An Object3D document write policy is already installed.");yme=t}}function ean(){return yme}function tan(){let t=0;const n=async()=>{const c=++t,d=wf();if(d)try{const m=await Wze();if(m.status!=="project"||m.project.path!==d.rootPath)return;const g=m.project.config;if(c!==t||wf()!==d)return;yLe({...d,config:g})}catch(m){c===t&&wf()===d&&console.error("[project] Could not refresh project declarations:",m)}},s=gen(()=>void n());return()=>{t++,s()}}function ran(){return Vvr(()=>{TVe(),I3r(null),Xwr(),Qnn(),xTr(),V3t(),ktn(),oD()})}async function nan(){typeof performance<"u"&&performance.getEntriesByType("navigation").length>0&&await Promise.race([jye(),new Promise(n=>setTimeout(n,5e3))]),await hN()}function ian(){nan();const t=IC(()=>void hN()),n=bFt(()=>void hN());return()=>{t(),n()}}const oan={tools:[],contributions:[],loadErrors:[]};let lMt=oan,uMt=0;const gje=new Set;function rwt(t){lMt=t,uMt++;for(const n of gje)n()}function N$(){return lMt}function san(){return uMt}function fMt(t){return gje.add(t),()=>gje.delete(t)}async function HZ(){try{const t=await fetch("/__editor/project-tools"),n=await L_(t,"Catalog request failed");return rwt(n),n}catch(t){const n={tools:[],contributions:[],loadErrors:[{sourcePath:"package.json#volter.tools",message:t instanceof Error?t.message:String(t)}]};return rwt(n),n}}async function aan(t,n,s={}){const c=await fetch("/__editor/project-tools/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,input:n,confirm:s.confirm===!0})}),d=await L_(c,`Running the project tool ${JSON.stringify(t)} failed`);if(!d||typeof d!="object"||typeof d.ok!="boolean")throw new Error(`Tool request returned an invalid response (${c.status}).`);return d}function can(){HZ();const t=IC(()=>void HZ()),n=bFt(()=>void HZ());return()=>{t(),n()}}const Gge=new Map;function lan(t,n){if(n===null){Gge.delete(t);return}Gge.set(t,n),uan()}const nwt=128;let mZ=[],GZ=null,dMt=0,vme=!1;function uan(){if(vme)return()=>{};if(typeof PerformanceObserver>"u")return()=>{};let t;try{t=new PerformanceObserver(n=>{for(const s of n.getEntries()){const c=s.duration;(GZ===null||c>GZ)&&(GZ=c),c>=100&&(dMt+=1),mZ.push({start:s.startTime,duration:c}),mZ.length>nwt&&(mZ=mZ.slice(-nwt))}}),t.observe({type:"longtask",buffered:!0})}catch{return()=>{}}return vme=!0,()=>{t.disconnect(),vme=!1}}function fan(){return vme?{longestTaskMs:GZ===null?null:Math.round(GZ),tasksOver100ms:dMt}:null}function dan(t=performance.now()){if(Gge.size===0)return null;const n={};for(const[s,c]of Gge){const d=c(),m=d.lastCallWindow;let g=null;if(m!==null){const S=m.end??t;for(const k of mZ)k.start+k.duration<m.start||k.start>S||(g===null||k.duration>g)&&(g=k.duration)}n[s]={inFlightMs:d.inFlightMs,lastCallMs:d.lastCallMs,maxCallMs:d.maxCallMs,maxCallLabel:d.maxCallLabel??null,currentPhase:d.currentPhase??null,...d.completedCalls===void 0?{}:{completedCalls:d.completedCalls},callsOver5s:d.callsOver5s,callsOver30s:d.callsOver30s,lastCallLongestTaskMs:g===null?null:Math.round(g),wasmMemoryMB:d.wasmMemoryMB}}return n}function iwt(t){return!("unavailable"in t)}function pan(t=globalThis.performance){const n=t?.memory;return!n||typeof n.usedJSHeapSize!="number"||typeof n.totalJSHeapSize!="number"?{unavailable:"performance.memory is unavailable — it is a non-standard Chromium-only API, not exposed by this browser."}:{usedBytes:n.usedJSHeapSize,totalBytes:n.totalJSHeapSize,limitBytes:typeof n.jsHeapSizeLimit=="number"?n.jsHeapSizeLimit:null}}const _an=5e3,man=4,han=1024*1024;function wOe(t){return Math.round(t/han*100)/100}function gan(t){const n=t.heap(),s=t.canvases(),c=t.rendererCounts(),d=t.workerCalls?.()??null,m=t.stalls?.()??null;let g=0;for(const S of s)g+=S.width*S.height*man;return{heapUsedMB:iwt(n)?wOe(n.usedBytes):null,heapLimitMB:iwt(n)&&n.limitBytes!==null?wOe(n.limitBytes):null,mountEpochs:t.mountEpochs(),canvases:s.length,canvasMB:wOe(g),...d===null?{}:{workerCalls:d},...m===null?{}:{stalls:m},...c===null?{}:{textures:c.textures,geometries:c.geometries,...c.programs===null?{}:{programs:c.programs}}}}function yan(t){const n=new Set;for(const s of t)try{const c=new URL(s.name,"http://volter.invalid").searchParams.get(Rge);c!==null&&c.length>0&&n.add(c)}catch{}return n.size}function van(){return{heap:()=>pan(),mountEpochs:()=>yan(performance.getEntriesByType("resource")),canvases:()=>[...document.querySelectorAll("canvas")],rendererCounts:()=>sTr()?.memorySnapshot?.().counts??null,workerCalls:()=>dan(),stalls:()=>fan()}}let pMt=null;function ixn(){return pMt}function ban(t){const n=t.sources??van(),s=t.hidden??(()=>document.visibilityState==="hidden"),c=()=>{if(s())return;const m=gan(n);pMt=m,t.report(m)};c();const d=setInterval(c,t.intervalMs??_an);return()=>clearInterval(d)}function San({children:t}){const n=Ye.useRef(null);n.current||(n.current=new Hsn({followsWorkspaceFocus:!0}),oQr(n.current));const s=Ye.useRef(null);if(!s.current){const g=wf();s.current=new Xsn(g?.rootPath??"unknown-project")}n.current.attachHistory(s.current.history),Qsn(JDr);const c=Ye.useRef(null);c.current||(c.current={fps:0,frameTime:0,drawCalls:0,triangles:0,cameraPosition:{x:0,y:0,z:0},cameraTarget:{x:0,y:0,z:0}});const d=Ye.useRef(null);d.current||(d.current=oMt()),Ye.useEffect(()=>qsn(n.current,s.current.historyCommands),[]),Ye.useEffect(()=>ian(),[]),Ye.useEffect(()=>can(),[]),Ye.useEffect(()=>utn(),[]),Ye.useEffect(()=>tan(),[]),Ye.useEffect(()=>ran(),[]),Ye.useEffect(()=>qtn(),[]),Ye.useEffect(()=>ban({report:CZr}),[]);const m=Ye.useRef(!1);return Ye.useEffect(()=>{m.current=!0;const g=s.current;return()=>{m.current=!1,queueMicrotask(()=>{m.current||g.dispose()})}},[]),q.jsx(Vsn,{runtime:{store:n.current,stats:c.current,initPromise:d.current,session:s.current},children:t})}const Kge={x:0,y:0,zoom:1};function oxn(t=Kge){let n=t;const s=new Set,c=()=>{for(const d of s)d()};return{get:()=>n,setView:(d,m,g)=>{const S=Math.min(4,Math.max(.1,g));n.x===d&&n.y===m&&n.zoom===S||(n={x:d,y:m,zoom:S},c())},setPan:(d,m)=>{const g=n.zoom;n.x===d&&n.y===m||(n={x:d,y:m,zoom:g},c())},setZoom:d=>{const m=Math.min(4,Math.max(.1,d));n.zoom!==m&&(n={x:n.x,y:n.y,zoom:m},c())},reset:()=>{n.x===0&&n.y===0&&n.zoom===1||(n=Kge,c())},subscribe:d=>(s.add(d),()=>s.delete(d))}}let n2=Kge;const yje=new Set,sxn={get:()=>xan(),setView:(t,n,s)=>$Ve(t,n,s),setPan:(t,n)=>mMt(t,n),setZoom:t=>wan(t),reset:()=>hMt(),subscribe:t=>Tan(t)};function _Mt(){for(const t of yje)t()}function xan(){return n2}function $Ve(t,n,s){const c=Math.min(4,Math.max(.1,s));n2.x===t&&n2.y===n&&n2.zoom===c||(n2={x:t,y:n,zoom:c},_Mt())}function mMt(t,n){$Ve(t,n,n2.zoom)}function wan(t){$Ve(n2.x,n2.y,t)}function axn(t,n){mMt(n2.x+t,n2.y+n)}function hMt(){n2.x===0&&n2.y===0&&n2.zoom===1||(n2=Kge,_Mt())}function Tan(t){return yje.add(t),()=>yje.delete(t)}function cxn(t){if(!(t.x===0&&t.y===0&&t.zoom===1))return t.zoom===1?`translate(${t.x}px, ${t.y}px)`:t.x===0&&t.y===0?`scale(${t.zoom})`:`translate(${t.x}px, ${t.y}px) scale(${t.zoom})`}const Can=new Set(["opacity","zIndex","flexGrow","flexShrink","fontWeight","lineHeight"]);function Ean(t){if(typeof t=="number")return t;if(typeof t!="string"||t==="")return;const n=Number.parseFloat(t);return Number.isNaN(n)?void 0:n}function lxn(t,n){if(typeof t!="number"||typeof n!="string")return t;const s=n.trim().match(/^[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?([a-z]+|%)$/i)?.[1];return s&&s.toLowerCase()!=="px"?`${t}${s}`:t}function uxn(t,n){return typeof n!="number"?n:n===0||Can.has(t)?String(n):`${n}px`}const kan={hidden:!1,interactive:!1,pickLock:!1},gMt=new Map;function hve(t){return gMt.get(t)??kan}function qVe(t,n){gMt.set(t,{...hve(t),...n})}function oq(t){return hve(t).hidden}function Aan(t,n){qVe(t,{hidden:n})}function Dan(t){Aan(t,!oq(t))}function yMt(t){return hve(t).interactive}function Pan(t,n){qVe(t,{interactive:n})}function Ian(t){Pan(t,!yMt(t))}function vMt(t){return hve(t).pickLock}function Nan(t,n){qVe(t,{pickLock:n})}function Oan(t){Nan(t,!vMt(t))}const owt=8,TN=8,fxn=[{pos:"nw",cursor:"nwse-resize"},{pos:"n",cursor:"ns-resize"},{pos:"ne",cursor:"nesw-resize"},{pos:"w",cursor:"ew-resize"},{pos:"e",cursor:"ew-resize"},{pos:"sw",cursor:"nesw-resize"},{pos:"s",cursor:"ns-resize"},{pos:"se",cursor:"nwse-resize"}];function dxn(t,n){const s=t.x+t.width/2,c=t.y+t.height/2;switch(n){case"nw":return{x:t.x,y:t.y};case"n":return{x:s,y:t.y};case"ne":return{x:t.x+t.width,y:t.y};case"w":return{x:t.x,y:c};case"e":return{x:t.x+t.width,y:c};case"sw":return{x:t.x,y:t.y+t.height};case"s":return{x:s,y:t.y+t.height};case"se":return{x:t.x+t.width,y:t.y+t.height}}}function iA(t,n){return n?Math.round(t):Math.round(t/owt)*owt}function bMt(t,n,s,c,d){let m=Math.max(TN,iA(n.width+t,s)),g=null;return c.length&&(g=vve(n.x+m,c,d),g&&(m=Math.max(TN,g.edge-n.x))),{value:m,match:g}}function SMt(t,n,s,c,d){const m=n.x+n.width;let g=Math.max(TN,iA(n.width-t,s)),S=null;return c.length&&(S=vve(m-g,c,d),S&&(g=Math.max(TN,m-S.edge))),{value:g,eastEdge:m,match:S}}function xMt(t,n,s,c,d){let m=Math.max(TN,iA(n.height+t,s)),g=null;return c.length&&(g=vve(n.y+m,c,d),g&&(m=Math.max(TN,g.edge-n.y))),{value:m,match:g}}function wMt(t,n,s,c,d){const m=n.y+n.height;let g=Math.max(TN,iA(n.height-t,s)),S=null;return c.length&&(S=vve(m-g,c,d),S&&(g=Math.max(TN,m-S.edge))),{value:g,southEdge:m,match:S}}function Ran(t,n,s,c,d,m,g){if(t==="e"||t==="ne"||t==="se")return{width:bMt(n,s,d,m,g).value};if(t==="w"||t==="nw"||t==="sw"){const{value:S,eastEdge:k}=SMt(n,s,d,m,g);return c?{width:S,x:k-S}:{width:S}}return{}}function Fan(t,n,s,c,d,m,g){if(t==="s"||t==="sw"||t==="se")return{height:xMt(n,s,d,m,g).value};if(t==="n"||t==="nw"||t==="ne"){const{value:S,southEdge:k}=wMt(n,s,d,m,g);return c?{height:S,y:k-S}:{height:S}}return{}}function pxn(t,n,s,c,d,m,g,S=TR){const k=!m&&g?cte(g):null,A=k?gve(k):[],F=k?yve(k):[];return{...Ran(t,n,c,d,m,A,S),...Fan(t,s,c,d,m,F,S)}}const TR=4;function cte(t){return{paddingBox:t.paddingBox??{x:0,y:0,width:0,height:0},siblingRects:(t.siblings??[]).filter(n=>n.width>0&&n.height>0),guideX:t.guideEdges?.x??[],guideY:t.guideEdges?.y??[]}}function gve(t){const n=[{edge:t.paddingBox.x,rect:t.paddingBox},{edge:t.paddingBox.x+t.paddingBox.width,rect:t.paddingBox}];for(const s of t.siblingRects)n.push({edge:s.x,rect:s}),n.push({edge:s.x+s.width,rect:s});for(const s of t.guideX??[])n.push({edge:s,rect:{x:s,y:-1e5,width:0,height:2e5}});return n}function yve(t){const n=[{edge:t.paddingBox.y,rect:t.paddingBox},{edge:t.paddingBox.y+t.paddingBox.height,rect:t.paddingBox}];for(const s of t.siblingRects)n.push({edge:s.y,rect:s}),n.push({edge:s.y+s.height,rect:s});for(const s of t.guideY??[])n.push({edge:s,rect:{x:-1e5,y:s,width:2e5,height:0}});return n}function ree(t,n,s,c){let d=t,m=c,g=null;for(const S of s){const k=Math.abs(t-S.edge);k<=m&&(m=k,d=S.edge,g=S);const A=Math.abs(t+n-S.edge);A<=m&&(m=A,d=S.edge-n,g=S)}return{value:d,match:g}}function vve(t,n,s){let c=null,d=s;for(const m of n){const g=Math.abs(t-m.edge);g<=d&&(d=g,c=m)}return c}function _xn(t,n,s,c,d){let m=iA(s.x+t,c),g=iA(s.y+n,c);if(!c&&d){const S=cte(d);m=ree(m,s.width,gve(S),TR).value,g=ree(g,s.height,yve(S),TR).value}return{x:m,y:g}}function mxn(t,n,s,c,d,m=TR){if(s)return{guides:[],position:t};let g=null,S=m;for(const pe of d?.snapPoints??[]){const ue=Math.hypot(t.x-pe.x,t.y-pe.y);ue<=S&&(S=ue,g=pe)}if(g)return{guides:nee({x:g.x,y:g.y,width:0,height:0},{edge:g.x,rect:n},{edge:g.y,rect:n}),position:g};if(d?.bounded)return{guides:[],position:t};const k=iA(t.x,!1),A=iA(t.y,!1),F=[n,c?.parent,c?.paddingBox,...c?.siblings??[]].filter(pe=>!!pe&&pe.width>0&&pe.height>0);let D=null,J=null,$=m,G=m;for(const pe of F){for(const ue of[pe.x,pe.x+pe.width/2,pe.x+pe.width]){const Ce=Math.abs(k-ue);Ce<=$&&($=Ce,D={edge:ue,rect:pe})}for(const ue of[pe.y,pe.y+pe.height/2,pe.y+pe.height]){const Ce=Math.abs(A-ue);Ce<=G&&(G=Ce,J={edge:ue,rect:pe})}}const se={x:D?.edge??k,y:J?.edge??A};return{guides:nee({x:se.x,y:se.y,width:0,height:0},D,J),position:se}}function nee(t,n,s){const c=[];return n&&c.push({orientation:"vertical",at:n.edge,start:Math.min(t.y,n.rect.y),end:Math.max(t.y+t.height,n.rect.y+n.rect.height)}),s&&c.push({orientation:"horizontal",at:s.edge,start:Math.min(t.x,s.rect.x),end:Math.max(t.x+t.width,s.rect.x+s.rect.width)}),c}function hxn(t,n,s,c,d,m=TR){if(c||!d)return[];const g=iA(s.x+t,!1),S=iA(s.y+n,!1),k=cte(d),A=ree(g,s.width,gve(k),m).match,F=ree(S,s.height,yve(k),m).match,D={x:g,y:S,width:s.width,height:s.height};return nee(D,A,F)}function gxn(t,n,s,c,d="both",m=!1,g=TR,S={},k=jan){if(m)return{position:t,guides:[]};const A={x:s.x+t.x-n.x,y:s.y+t.y-n.y,width:s.width,height:s.height},F=[],D=[],J=(pe,ue,Ce)=>{F.push({edge:pe.x,rect:pe},{edge:pe.x+pe.width,rect:pe}),D.push({edge:pe.y,rect:pe},{edge:pe.y+pe.height,rect:pe}),F.push({edge:pe.x+pe.width/2,rect:pe}),D.push({edge:pe.y+pe.height/2,rect:pe})};if(c){const pe=cte(c);if(k.parent&&pe.paddingBox.width>0&&pe.paddingBox.height>0&&J(pe.paddingBox),k.others)for(const ue of pe.siblingRects)J(ue)}if(k.guides){for(const pe of[...c?.guideEdges?.x??[],...S.x??[]])F.push({edge:pe,rect:{x:pe,y:A.y,width:0,height:A.height}});for(const pe of[...c?.guideEdges?.y??[],...S.y??[]])D.push({edge:pe,rect:{x:A.x,y:pe,width:A.width,height:0}})}if(F.length===0&&D.length===0)return{position:t,guides:[]};const $=d==="y"?{value:A.x,match:null}:swt(A.x,A.width,F,g),G=d==="x"?{value:A.y,match:null}:swt(A.y,A.height,D,g),se={...A,x:$.value,y:G.value};return{position:{x:t.x+se.x-A.x,y:t.y+se.y-A.y},guides:nee(se,$.match,G.match)}}function Man(t,n,s,c,d){const m=n.tr.x-n.tl.x,g=n.tr.y-n.tl.y,S=n.bl.x-n.tl.x,k=n.bl.y-n.tl.y,A=m*k-g*S;if(Math.abs(A)<1e-9)return t;const F=t.x-n.tl.x,D=t.y-n.tl.y,J=[...s?[0,1]:[],...c?[.5]:[]],$=(pe,ue)=>{let Ce=pe,Ae=d;for(const Pe of J){const be=Math.abs(pe-Pe)*ue;be<=Ae&&(Ae=be,Ce=Pe)}return Ce},G=$((F*k-D*S)/A,Math.hypot(m,g)),se=$((m*D-g*F)/A,Math.hypot(S,k));return{x:n.tl.x+G*m+se*S,y:n.tl.y+G*g+se*k}}function yxn(t,n,s){const{smart:c,grid:d}=s;let m=t;return n&&c.enabled!==s.invert&&(c.sides||c.center)&&(m=Man(t,n,c.sides,c.center,s.threshold)),n&&Math.abs(Han(n))>1e-6?m:(!(Math.hypot(m.x-t.x,m.y-t.y)>1e-9)&&s.gridOn&&d.step>0&&(m={x:Math.round((m.x-d.offsetX)/d.step)*d.step+d.offsetX,y:Math.round((m.y-d.offsetY)/d.step)*d.step+d.offsetY}),d.pixel?{x:Math.round(m.x),y:Math.round(m.y)}:m)}function vxn(t){return{tl:{x:t.x,y:t.y},tr:{x:t.x+t.width,y:t.y},br:{x:t.x+t.width,y:t.y+t.height},bl:{x:t.x,y:t.y+t.height}}}const jan={parent:!0,others:!0,guides:!0};function swt(t,n,s,c){const d=ree(t,n,s,c);let m=d.value,g=d.match,S=g?Math.abs(m-t):c;for(const k of s){const A=Math.abs(t+n/2-k.edge);A<S&&(S=A,m=k.edge-n/2,g=k)}return{value:m,match:g}}function bxn(t,n,s,c,d,m,g=TR){if(d||!m)return[];const S=t==="e"||t==="ne"||t==="se",k=t==="w"||t==="nw"||t==="sw",A=t==="s"||t==="sw"||t==="se",F=t==="n"||t==="nw"||t==="ne",D=cte(m),J=gve(D),$=yve(D);let G=null;S?G=bMt(n,c,!1,J,g).match:k&&(G=SMt(n,c,!1,J,g).match);let se=null;return A?se=xMt(s,c,!1,$,g).match:F&&(se=wMt(s,c,!1,$,g).match),nee(c,G,se)}function Sxn(t,n,s,c,d=15){const m=F=>F*180/Math.PI,g=m(Math.atan2(n.y-t.y,n.x-t.x)),k=m(Math.atan2(s.y-t.y,s.x-t.x))-g;return{rotate:c?k:Math.round(k/d)*d}}function FN(t,n){if(t instanceof gy){const s=t.ownerOf(n);return s?t.childAdapters().find(c=>c.worldId===s)?.adapter??null:null}return t}const awt=new WeakMap;function Lan(t){const n=t.boxEdit;if(!n)return null;const s=awt.get(t);if(s?.provider===n)return s.recorded;const c={begin:d=>Ig({adapter:t,seam:"editor.boxEdit.begin",stage:"effect",detail:`the world overlay began a box edit for ${d}`,run:()=>n.begin(d)}),apply:(d,m)=>Ig({adapter:t,seam:"editor.boxEdit.apply",stage:"effect",detail:`the world overlay applied a ${Object.keys(m).join(", ")} box patch to ${d}`,run:()=>n.apply(d,m)}),end:d=>Ig({adapter:t,seam:"editor.boxEdit.end",stage:"effect",detail:`the world overlay ended a box edit for ${d}`,run:()=>n.end(d)}),...n.gizmoOrigin?{gizmoOrigin:d=>Ig({adapter:t,seam:"editor.boxEdit.gizmoOrigin",stage:"operation",detail:`the world overlay read the native gizmo origin for ${d}`,run:()=>n.gizmoOrigin?.(d)??null})}:{},...n.referencePoint?{referencePoint:d=>Ig({adapter:t,seam:"editor.boxEdit.referencePoint",stage:"operation",detail:`the world overlay read the native reference point for ${d}`,run:()=>n.referencePoint?.(d)??null})}:{}};return awt.set(t,{provider:n,recorded:c}),c}function Ban(t,n){return FN(t,n)?.rects?.rect(n)??null}function $an(t,n){const s=FN(t,n);return s?Lan(s):null}function xxn(t,n){return FN(t,n)?.rects?.contextRects?.(n)}function wxn(t,n){return FN(t,n)?.structure??null}function Txn(t,n){return FN(t,n)?.text??null}function Cxn(t,n){return FN(t,n)?.colorSample??null}function Exn(t,n){const s=FN(t,n);return s?.rects?$3r(s):null}function kxn(t){const n=t instanceof gy?t.childAdapters():[{worldId:"",adapter:t}],s=[];for(const{worldId:c,adapter:d}of n)d.rects?.emptyContainers&&(c&&oq(c)||s.push(...d.rects.emptyContainers()));return s}function qan(t,n){const s=c=>{const d=t.inspector?.get(n,`style.${c}`);return Ean(d)??0};return{paddingTop:s("paddingTop"),paddingRight:s("paddingRight"),paddingBottom:s("paddingBottom"),paddingLeft:s("paddingLeft"),marginTop:s("marginTop"),marginRight:s("marginRight"),marginBottom:s("marginBottom"),marginLeft:s("marginLeft")}}const zan=4;function Axn(t,n){const s=D=>D>0?D:zan,c=s(n.paddingTop),d=s(n.paddingRight),m=s(n.paddingBottom),g=s(n.paddingLeft),S=s(n.marginTop),k=s(n.marginRight),A=s(n.marginBottom),F=s(n.marginLeft);return[{side:"paddingTop",kind:"padding",x:t.x,y:t.y,width:t.width,height:c,cursor:"ns-resize",labelX:t.x+t.width/2,labelY:t.y+c/2,value:n.paddingTop,isZero:n.paddingTop===0},{side:"paddingBottom",kind:"padding",x:t.x,y:t.y+t.height-m,width:t.width,height:m,cursor:"ns-resize",labelX:t.x+t.width/2,labelY:t.y+t.height-m/2,value:n.paddingBottom,isZero:n.paddingBottom===0},{side:"paddingLeft",kind:"padding",x:t.x,y:t.y,width:g,height:t.height,cursor:"ew-resize",labelX:t.x+g/2,labelY:t.y+t.height/2,value:n.paddingLeft,isZero:n.paddingLeft===0},{side:"paddingRight",kind:"padding",x:t.x+t.width-d,y:t.y,width:d,height:t.height,cursor:"ew-resize",labelX:t.x+t.width-d/2,labelY:t.y+t.height/2,value:n.paddingRight,isZero:n.paddingRight===0},{side:"marginTop",kind:"margin",x:t.x,y:t.y-S,width:t.width,height:S,cursor:"ns-resize",labelX:t.x+t.width/2,labelY:t.y-S/2,value:n.marginTop,isZero:n.marginTop===0},{side:"marginBottom",kind:"margin",x:t.x,y:t.y+t.height,width:t.width,height:A,cursor:"ns-resize",labelX:t.x+t.width/2,labelY:t.y+t.height+A/2,value:n.marginBottom,isZero:n.marginBottom===0},{side:"marginLeft",kind:"margin",x:t.x-F,y:t.y,width:F,height:t.height,cursor:"ew-resize",labelX:t.x-F/2,labelY:t.y+t.height/2,value:n.marginLeft,isZero:n.marginLeft===0},{side:"marginRight",kind:"margin",x:t.x+t.width,y:t.y,width:k,height:t.height,cursor:"ew-resize",labelX:t.x+t.width+k/2,labelY:t.y+t.height/2,value:n.marginRight,isZero:n.marginRight===0}]}function Van(t,n,s){switch(t){case"paddingTop":return s;case"paddingBottom":return-s;case"paddingLeft":return n;case"paddingRight":return-n;case"marginTop":return-s;case"marginBottom":return s;case"marginLeft":return-n;case"marginRight":return n}}function Dxn(t,n,s,c){const d=Van(t,n,s),m=Math.max(0,Math.round(c+d));return{[t]:m}}function Pxn(t,n,s){return{x:t.x+n,y:t.y+s,width:t.width,height:t.height}}const TOe=3;function xO(t,n){return n==="x"?t.x+t.width/2:t.y+t.height/2}function Uan(t,n,s){if(n===0){const m=t[0].rect;return s?m.x:m.y}if(n===t.length){const m=t[t.length-1].rect;return s?m.x+m.width:m.y+m.height}const c=t[n-1].rect,d=t[n].rect;return s?(c.x+c.width+d.x)/2:(c.y+c.height+d.y)/2}function Jan(t,n,s){const c=Math.min(...t.map(g=>s?g.rect.y:g.rect.x)),d=Math.max(...t.map(g=>s?g.rect.y+g.rect.height:g.rect.x+g.rect.width)),m=TOe/2;return s?{x:n-m,y:c,width:TOe,height:d-c}:{x:c,y:n-m,width:d-c,height:TOe}}function Ixn(t,n){if(t.length===0)return null;const s=Math.max(...t.map(J=>xO(J.rect,"x")))-Math.min(...t.map(J=>xO(J.rect,"x"))),c=Math.max(...t.map(J=>xO(J.rect,"y")))-Math.min(...t.map(J=>xO(J.rect,"y"))),d=s>=c,m=d?"x":"y",g=[...t].sort((J,$)=>xO(J.rect,m)-xO($.rect,m)),S=d?n.x:n.y;let k=0;for(;k<g.length&&xO(g[k].rect,m)<S;)k++;const A=k<g.length?g[k].id:null,F=Uan(g,k,d),D=Jan(g,F,d);return{beforeSiblingId:A,index:k,marker:D}}function Nxn(t,n){const s=t.hierarchy.node(n);if(!s)return null;if(s.parentId){const c=t.hierarchy.node(s.parentId);return c?c.childIds:null}return t.hierarchy.roots().map(c=>c.id)}function Oxn(t,n){const s=t.x,c=t.x+t.width,d=t.y,m=t.y+t.height,g=n.x,S=n.x+n.width,k=n.y,A=n.y+n.height,F=[];let D=null;if(c<=g?D={x1:c,x2:g}:S<=s&&(D={x1:S,x2:s}),D){const $=Math.max(d,k),G=Math.min(m,A),se=G>$?($+G)/2:((d+m)/2+(k+A)/2)/2;F.push({orientation:"horizontal",x1:D.x1,y1:se,x2:D.x2,y2:se,distance:Math.round(D.x2-D.x1),labelX:(D.x1+D.x2)/2,labelY:se})}let J=null;if(m<=k?J={y1:m,y2:k}:A<=d&&(J={y1:A,y2:d}),J){const $=Math.max(s,g),G=Math.min(c,S),se=G>$?($+G)/2:((s+c)/2+(g+S)/2)/2;F.push({orientation:"vertical",x1:se,y1:J.y1,x2:se,y2:J.y2,distance:Math.round(J.y2-J.y1),labelX:se,labelY:(J.y1+J.y2)/2})}return F}function COe(t,n,s){const c=t?.get(n,s);return typeof c=="string"&&c.length>0?c:null}function Rxn(t,n){const s=COe(t.inspector,n,"style.position");let c=null;const d=t.hierarchy.node(n)?.parentId??null;if(d){const m=COe(t.inspector,d,"style.display");m==="flex"||m==="inline-flex"?c=`flex ${(COe(t.inspector,d,"style.flexDirection")??"row").startsWith("column")?"col":"row"}`:m==="grid"||m==="inline-grid"?c="grid":m&&(c=m)}return{position:s,parentLayout:c}}function Fxn(t,n){if(t.length<2)return[];const s=t.map(F=>F.rect),c=Math.min(...s.map(F=>F.x)),d=Math.max(...s.map(F=>F.x+F.width)),m=Math.min(...s.map(F=>F.y)),g=Math.max(...s.map(F=>F.y+F.height)),S=(c+d)/2,k=(m+g)/2,A=[];for(const{id:F,rect:D}of t)switch(n){case"left":A.push({id:F,x:c});break;case"hcenter":A.push({id:F,x:S-D.width/2});break;case"right":A.push({id:F,x:d-D.width});break;case"top":A.push({id:F,y:m});break;case"vcenter":A.push({id:F,y:k-D.height/2});break;case"bottom":A.push({id:F,y:g-D.height});break}return A}function Mxn(t,n){if(t.length<3)return[];const s=n==="horizontal",c=[...t].sort((D,J)=>s?D.rect.x-J.rect.x:D.rect.y-J.rect.y),d=c[0],m=c[c.length-1],g=s?m.rect.x+m.rect.width-d.rect.x:m.rect.y+m.rect.height-d.rect.y,S=c.reduce((D,J)=>D+(s?J.rect.width:J.rect.height),0),k=(g-S)/(c.length-1);let A=s?d.rect.x:d.rect.y;const F=[];for(const D of c)F.push(s?{id:D.id,x:A}:{id:D.id,y:A}),A+=(s?D.rect.width:D.rect.height)+k;return F}function jxn(t){if(t.length===0)return null;const n=Math.min(...t.map(m=>m.x)),s=Math.min(...t.map(m=>m.y)),c=Math.max(...t.map(m=>m.x+m.width)),d=Math.max(...t.map(m=>m.y+m.height));return{x:n,y:s,width:c-n,height:d-s}}function Wan(t,n,s,c,d){const m={};return s?(t!==0&&(m.x=c.x+t),n!==0&&(m.y=c.y+n),m):(t!==0&&(m.marginLeft=d.left+t),n!==0&&(m.marginTop=d.top+n),m)}function Lxn(t,n){return FN(t,n)?.rects?.frame?.(n)??null}function Bxn(t){const n=t.tr.x-t.tl.x,s=t.tr.y-t.tl.y,c=t.bl.x-t.tl.x,d=t.bl.y-t.tl.y,m=Math.max(Math.hypot(n,s),Math.hypot(c,d),1e-9);return Math.abs(s)/m>.001||Math.abs(c)/m>.001}function Han(t){return Math.atan2(t.tr.y-t.tl.y,t.tr.x-t.tl.x)}function TMt(t,n,s){return{x:t.tl.x+n*(t.tr.x-t.tl.x)+s*(t.bl.x-t.tl.x),y:t.tl.y+n*(t.tr.y-t.tl.y)+s*(t.bl.y-t.tl.y)}}function CMt(t){const n=t.includes("w")?0:t.includes("e")?1:.5,s=t.includes("n")?0:t.includes("s")?1:.5;return{s:n,t:s}}function $xn(t,n,s){if(s.length!==2||t.width===void 0||t.height===void 0||!(n.width>0)||!(n.height>0))return t;const c=Math.max(t.width/n.width,t.height/n.height),d=n.width*c,m=n.height*c;return{...t,width:d,height:m,...s.includes("w")?{x:n.x+n.width-d}:{},...s.includes("n")?{y:n.y+n.height-m}:{}}}function qxn(t,n){const{s,t:c}=CMt(n);return TMt(t,s,c)}function cwt(t,n){const s=t.tr.x-t.tl.x,c=t.tr.y-t.tl.y,d=t.bl.x-t.tl.x,m=t.bl.y-t.tl.y,g=s*m-c*d;return Math.abs(g)<1e-12?{s:0,t:0}:{s:(n.x*m-n.y*d)/g,t:(s*n.y-c*n.x)/g}}function zxn(t,n,s,c,d,m=!1){const g=cwt(t,{x:s,y:c}),S=n.includes("e")?1+g.s:n.includes("w")?1-g.s:1,k=n.includes("s")?1+g.t:n.includes("n")?1-g.t:1,A=Math.max(S,k),F=Math.max(.01,m&&n.length===2?A:S),D=Math.max(.01,m&&n.length===2?A:k),J=CMt(n),$=TMt(t,1-J.s,1-J.t),G=cwt(t,{x:$.x-d.x,y:$.y-d.y}),se={x:d.x+F*G.s*(t.tr.x-t.tl.x)+D*G.t*(t.bl.x-t.tl.x),y:d.y+F*G.s*(t.tr.y-t.tl.y)+D*G.t*(t.bl.y-t.tl.y)};return{scaleXFactor:F,scaleYFactor:D,originX:d.x+$.x-se.x,originY:d.y+$.y-se.y}}let lwt=!1;const EMt=new Set(["viewport","hierarchy","inspector","asset-browser","workspace","global"]);let kMt="viewport";const AMt="editorActiveHotkeyScope";function Vxn(){const t=document.documentElement.dataset[AMt];return t&&EMt.has(t)?t:kMt}function CR(t){kMt=t,document.documentElement.dataset[AMt]=t}const Gan="data-editor-app-undo";function uwt(t){return t instanceof Element&&t.closest(`[${Gan}]`)!==null}function vje(t){return t instanceof Element?t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t instanceof HTMLElement&&t.isContentEditable?!0:!!t.closest('[contenteditable]:not([contenteditable="false"])'):!1}function Kan(t){for(const n of t.composedPath()){if(!(n instanceof HTMLElement)||t.type==="focusin"&&n.hasAttribute("data-editor-hotkey-fallback"))continue;const s=n.dataset.editorHotkeyScope;if(s&&EMt.has(s))return s}return null}function fwt(t){const n=Kan(t);n&&CR(n)}const EOe=[];function dwt(t){return EOe.push(...t),()=>{for(const n of t){const s=EOe.indexOf(n);s>=0&&EOe.splice(s,1)}}}function Xan(){lwt||(window.addEventListener("pointerdown",fwt,!0),window.addEventListener("focusin",fwt,!0),lwt=!0)}const KZ=new Map;let DMt=0;const bje=new Set;function pwt(){DMt++;for(const t of bje)t()}function Yan(t){return KZ.set(t.id,t),pwt(),()=>{KZ.get(t.id)===t&&(KZ.delete(t.id),pwt())}}function Zan(){return[...KZ.values()]}function Qan(){return DMt}function ecn(t){return bje.add(t),()=>bje.delete(t)}function zVe(t){const n=KZ.get(t);return!n||n.enabled&&!n.enabled()?!1:(n.run(),!0)}const Tw=["viewport","hierarchy","inspector"];function XL(){return(globalThis.getSelection?.()?.toString()??"").length===0}function BD(t){return Bze(t)}async function VVe(t){const n=BD(t);n.length!==0&&await s0e(Cm(t).adapter,n)}async function UVe(t){const n=BD(t);n.length!==0&&await a0e(Cm(t).adapter,n)}async function JVe(t){const n=Cm(t).adapter,s=BD(t)[0],c=s?n.hierarchy.node(s)?.parentId??null:null;await c0e(n,c)}let _wt=Promise.resolve();function bve(t){const n=_wt.then(()=>tcn(t));return _wt=n.then(()=>{},()=>{}),n}async function tcn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter,c=s.structure;if(!c)return;const d=n.length===1?s.hierarchy.node(n[0])?.label??"selection":`${n.length} objects`;if(i0(`Duplicating ${d}…`),c.duplicateMany){const m=await TPt(s,n);if(m&&!m.persisted){i0(m.destination);return}}else for(const m of n){const g=await r0e(s,m).ack;if(g&&!g.persisted){i0(g.destination);return}}i0(`Duplicated ${d}`)}async function Sve(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter,c=s.structure;if(c)if(c.removeMany)await h$e(s,n);else{const d=new Map(hPt(s).map((g,S)=>[g,S])),m=[...n].sort((g,S)=>(d.get(S)??-1)-(d.get(g)??-1));for(const g of m)await jhe(s,g)}}async function rcn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;if(s.structure?.wrap)for(const d of n)await n0e(s,d)}async function ncn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;if(s.structure?.unwrap)for(const d of n)await i0e(s,d)}async function icn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;s.structure?.group&&await o0e(s,n).ack}function TI(t,n,s){const c=BD(t);if(c.length===0)return;const d=Cm(t).adapter;for(const m of c){const g=$an(d,m);if(!g)continue;const S=Ban(d,m);if(!S)continue;const k=d.inspector?.get(m,"style.position"),A=k==="absolute"||k==="fixed",F=qan(d,m),D=Wan(n,s,A,S,{left:F.marginLeft,top:F.marginTop});Object.keys(D).length!==0&&(g.begin(m),g.apply(m,D),g.end(m))}}function ocn(t){const n=Array.isArray(t)?t:[t];return n.includes("global")?"global":n.length===1&&n[0]==="viewport"?"stage":"panel"}let bme=null;function pp(t,n){const{frameEnabled:s,...c}=n;return bme?.push(Yan({id:t,run:d=>c.action(d??new KeyboardEvent("keydown")),scope:ocn(c.scope),...s?{enabled:s}:{}})),zBe(t).map(d=>({...c,...d}))}function PMt(t){const n=()=>{const g=[],S=bme;bme=g;try{return{rows:t(),actions:g}}finally{bme=S}};let s=n(),c=dwt(s.rows);const d=()=>{c();for(const g of s.actions)g()},m=Kye(()=>{d(),s=n(),c=dwt(s.rows)});return()=>{m(),d()}}function scn(t,n){const s=()=>{const m=n.getSnapshot().undoLabel;n.undo().then(g=>{g&&m&&i0(`Undid ${m}`)})},c=()=>{const m=n.getSnapshot().redoLabel;n.redo().then(g=>{g&&m&&i0(`Redid ${m}`)})},d=PMt(()=>[...pp("edit.redo",{scope:"global",allowInEditable:!0,when:m=>!vje(m.target)||uwt(m.target),action:c}),...pp("edit.undo",{scope:"global",allowInEditable:!0,when:m=>!vje(m.target)||uwt(m.target),action:s}),...pp("edit.copy",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void VVe(t)}),...pp("edit.cut",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void UVe(t)}),...pp("edit.paste",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void JVe(t)}),...pp("edit.duplicate",{scope:Tw,action:()=>void bve(t)}),...pp("edit.group",{scope:Tw,action:()=>void icn(t)}),...pp("edit.wrap",{scope:Tw,action:()=>rcn(t)}),...pp("edit.unwrap",{scope:Tw,action:()=>ncn(t)}),...pp("edit.nudgeUp",{scope:"viewport",action:()=>TI(t,0,-1)}),...pp("edit.nudgeUpCoarse",{scope:"viewport",action:()=>TI(t,0,-10)}),...pp("edit.nudgeDown",{scope:"viewport",action:()=>TI(t,0,1)}),...pp("edit.nudgeDownCoarse",{scope:"viewport",action:()=>TI(t,0,10)}),...pp("edit.nudgeLeft",{scope:"viewport",action:()=>TI(t,-1,0)}),...pp("edit.nudgeLeftCoarse",{scope:"viewport",action:()=>TI(t,-10,0)}),...pp("edit.nudgeRight",{scope:"viewport",action:()=>TI(t,1,0)}),...pp("edit.nudgeRightCoarse",{scope:"viewport",action:()=>TI(t,10,0)}),...pp("edit.selectAll",{scope:Tw,action:()=>{const m=Cm(t).adapter;c0(m,hPt(m))}}),...pp("edit.deselectAll",{scope:Tw,action:()=>c0(Cm(t).adapter,[])}),...pp("edit.save",{scope:"global",allowInEditable:!0,action:()=>{DTr().then(m=>{m===null&&jRt(t)})}}),...pp("view.resetPan",{scope:"viewport",action:()=>hMt()}),...pp("edit.enterScope",{scope:Tw,when:()=>t.playState==="stopped",frameEnabled:()=>t.playState==="stopped",action:()=>{X3r(Cm(t).adapter)}}),...pp("edit.delete",{scope:Tw,action:()=>void Sve(t)}),...pp("edit.exitScopeOrDeselect",{scope:Tw,when:()=>G3r()!==null||t.playState==="stopped",frameEnabled:()=>!0,action:()=>{const m=Cm(t).adapter;if(!K3r(m)){if(t.playState!=="stopped"){TVe();return}t.select(null)}}}),...pp("view.commandPalette",{scope:"global",action:()=>{DVe()||Qs.warn(`The command palette has not handed over its opener yet — run "Volter Editor: Open Workspace" first, or press the workbench's own Show All Commands.`)}}),...pp("view.toggleConsole",{scope:"global",action:()=>pve()}),...pp("view.focusMode",{scope:"global",action:()=>JBe()}),...pp("workspace.cycleNext",{scope:"global",action:()=>{Che(1)}}),...pp("workspace.cyclePrevious",{scope:"global",action:()=>{Che(-1)}})]);return Xan(),d}function acn(t){return PMt(()=>t.flatMap(n=>{const s=n.enabled;return pp(n.id,{scope:n.scope==="stage"?"viewport":"global",action:c=>n.run(c),...s?{when:()=>s(),frameEnabled:()=>s()}:{}})}))}function WVe(){mkr("undo-history")}function ccn(){const t=()=>WVe();return window.addEventListener("editor:show-history-tab",t),()=>window.removeEventListener("editor:show-history-tab",t)}let Sje=null,IMt=0;const xje=new Set;function HVe(t){if(Sje!==t){Sje=t,IMt++;for(const n of xje)n()}}function NMt(){return Sje}function lcn(t){HVe(t)}function OMt(){HVe(null)}function RMt(t){return xje.add(t),()=>xje.delete(t)}function wje(){return IMt}function ucn(){HVe(null)}const fcn=Object.freeze(Object.defineProperty({__proto__:null,__resetEditorPresentationNoticeForTest:ucn,clearEditorPresentationNotice:OMt,editorPresentationNotice:NMt,editorPresentationNoticeVersion:wje,showEditorPresentationNotice:lcn,subscribeEditorPresentationNotice:RMt},Symbol.toStringTag,{value:"Module"})),mwt="agent-presented-view";function dcn(){const t=Yv();Ye.useSyncExternalStore(RMt,wje,wje);const n=NMt();return Ye.useEffect(()=>{if(!n){IBe(mwt);return}s$({id:mwt,tone:"info",title:"Agent presented this view.",...n.presented.warnings.length>0?{detail:n.presented.warnings.join(" ")}:{},onDismiss:OMt,actions:[{label:"Copy Link",keeps:!0,run:()=>{Promise.resolve().then(()=>navigator.clipboard.writeText(n.presented.url)).catch(()=>{Qs.warn("Could not copy the view link to the clipboard.","editor")})}},{label:"Return",primary:!0,run:()=>{Vge(t,n.previousView,{origin:"return"}).catch(s=>{Qs.error(`Could not return to the previous editor view: ${s instanceof Error?s.message:String(s)}`,"editor")})}}]})},[n,t]),null}function pcn(t){Ye.useEffect(()=>{const n=vtn(),s=()=>Ctn(t.playState!=="stopped");s();const c=t.subscribe(s);return()=>{c(),n(),V3t()}},[t])}const iee={console:{id:"console",title:"Console"},lightExplorer:{id:"light-explorer",title:"Light Explorer"}},_cn={storyActions:{id:"story-actions",title:"Actions"},storyInteractions:{id:"story-interactions",title:"Interactions"},storyAccessibility:{id:"story-accessibility",title:"Accessibility"},generations:{id:"generations",title:"Generations"}};[...Object.values(iee),...Object.values(_cn)];const mcn={info:Go.content.primary,warn:Go.semantic.warning,error:Go.semantic.danger},hwt={scene:"#78dce8",physics:"#ff6188",animation:"#a9dc76",network:"#fc9867",audio:"#ab9df2",ai:"#ffd866",input:"#78dce8",core:Go.content.primary},gwt={info:R$,warn:rCt,error:zTt};function hcn(){const t=Yv();Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const[n,s]=Ye.useState(""),[c,d]=Ye.useState("all"),[m,g]=Ye.useState({info:!0,warn:!0,error:!0}),S=Ye.useRef(null),[k,A]=Ye.useState(!0),F=Qs.getEntries(),D=new Map;for(const Ce of F){const Ae=Ce.metadata?.instanceId;if(typeof Ae!="string"||Ae.length===0)continue;const Pe=Ce.metadata?.instanceName;D.set(Ae,typeof Pe=="string"&&Pe.length>0?Pe:`Instance ${Ae}`)}const J=F.filter(Ce=>!(!m[Ce.level]||c!=="all"&&Ce.metadata?.instanceId!==c||n&&!Ce.message.toLowerCase().includes(n.toLowerCase())));Ye.useEffect(()=>{k&&S.current&&(S.current.scrollTop=S.current.scrollHeight)},[F.length,k]);const $=()=>{if(!S.current)return;const{scrollTop:Ce,scrollHeight:Ae,clientHeight:Pe}=S.current;A(Ae-Ce-Pe<20)},G=Ce=>{g(Ae=>({...Ae,[Ce]:!Ae[Ce]}))},se=Ce=>{const Ae=new Date(Ce);return`${Ae.getHours().toString().padStart(2,"0")}:${Ae.getMinutes().toString().padStart(2,"0")}:${Ae.getSeconds().toString().padStart(2,"0")}`},pe=Ce=>{c0(Y0(t),[Ce]),zVe("viewport.frameSelection")},ue=Qs.counts;return q.jsxs(XTr,{className:"volter-console",children:[q.jsxs(n$,{label:"Console filters",compact:!0,children:[q.jsx(pm,{"aria-label":"Clear console",size:"compact",onClick:()=>Qs.clear(),title:"Clear console",children:q.jsx(dc,{icon:LTt,size:"xs"})}),q.jsx(Rht,{}),q.jsxs(Iw,{"aria-label":"Filter console by game instance",title:"Show messages from all game instances or one inspected instance",value:c,onChange:Ce=>d(Ce.target.value),style:{width:"auto",minWidth:74,height:24,fontSize:11},children:[q.jsx("option",{value:"all",children:"All instances"}),[...D].map(([Ce,Ae])=>q.jsx("option",{value:Ce,children:Ae},Ce))]}),q.jsx(Rht,{}),["info","warn","error"].map(Ce=>q.jsxs(Ms,{variant:"ghost",size:"compact","aria-label":`Toggle ${Ce} messages`,"aria-pressed":m[Ce],"data-console-level":Ce,onClick:()=>G(Ce),children:[q.jsx(dc,{icon:gwt[Ce],size:"xs"}),ue[Ce]]},Ce)),q.jsx(Zm,{placeholder:"Filter...",value:n,onChange:Ce=>s(Ce.target.value),className:"volter-console-filter"})]}),q.jsxs("div",{ref:S,onScroll:$,className:"volter-console-list volter-selectable-text",children:[J.length===0&&q.jsx("div",{className:"volter-console-empty",children:"No messages"}),J.map(Ce=>{const Ae=Ce.metadata?.entityId!=null?String(Ce.metadata.entityId):null,Pe=(Ae?Y0(t).hierarchy.node(Ae)?.label:null)||Ae,be=typeof Ce.metadata?.instanceId=="string"?Ce.metadata.instanceId:null,X=typeof Ce.metadata?.instanceName=="string"?Ce.metadata.instanceName:be?`Instance ${be}`:null;return q.jsxs("div",{className:"volter-console-row","data-level":Ce.level,style:{color:mcn[Ce.level]},children:[q.jsx("span",{style:{color:Go.content.dim,marginRight:6,flexShrink:0},children:se(Ce.timestamp)}),q.jsx(dc,{icon:gwt[Ce.level],style:{fontSize:9,marginTop:4,marginRight:6,flexShrink:0}}),X&&q.jsx("span",{title:be?`Runtime instance ${be}`:void 0,style:{background:Go.accent.muted,color:Go.accent.default,borderRadius:Go.shape.small,padding:"0 4px",fontSize:10,marginRight:6,flexShrink:0},children:X}),Ce.subsystem&&q.jsx("span",{style:{background:`${hwt[Ce.subsystem]??Go.content.muted}22`,color:hwt[Ce.subsystem]??Go.content.muted,borderRadius:Go.shape.small,padding:"0 4px",fontSize:10,marginRight:6,flexShrink:0},children:Ce.subsystem}),q.jsxs("span",{style:{flex:1,wordBreak:"break-word"},children:[Ce.message,Ae&&q.jsxs("span",{onClick:()=>pe(Ae),style:{background:Go.semantic.successMuted,color:Go.semantic.success,borderRadius:Go.shape.small,padding:"0 5px",fontSize:10,marginLeft:6,cursor:"pointer",pointerEvents:"auto",display:"inline-flex",alignItems:"center",gap:3},title:`Select and focus "${Pe}"`,children:[q.jsx(dc,{icon:aR,style:{fontSize:8}}),Pe]}),Ce.source&&q.jsxs("span",{style:{color:Go.content.dim,marginLeft:6},children:["[",Ce.source,"]"]})]}),Ce.count>1&&q.jsx("span",{className:"volter-console-count",children:Ce.count})]},Ce.id)})]})]})}const gcn={enabled:"visible",color:"light.color",intensity:"light.intensity",range:"light.distance",shadows:"shadow.cast"};function FMt(t){const n=[],s=t;return W$(t.hierarchy,c=>{c.kind==="light"&&n.push(c)},{extraChildren:c=>s.internalChildren?.(c)}),n}function Uxn(t){return FMt(t).length}function MMt(t,n){return t.find(s=>s.path===gcn[n])??null}function qY(t,n,s,c,d){const m=MMt(s,c);if(!m||!t.inspector)return{supported:!1,writable:!1,value:null};let g;try{g=t.inspector.get(n,m.path)}catch{g=void 0}return{supported:!0,writable:m.readonly!==!0,value:d(g)?g:null}}const ywt=t=>typeof t=="boolean",ycn=t=>typeof t=="string",vwt=t=>typeof t=="number"&&Number.isFinite(t);function vcn(t){return FMt(t).map(n=>{let s=[];try{s=t.inspector?.properties(n.id)??[]}catch{}const c=t.hierarchy.object3D?.(n.id)?.type;return{id:n.id,name:n.label,type:n.typeLabel??c??"Light",enabled:qY(t,n.id,s,"enabled",ywt),color:qY(t,n.id,s,"color",ycn),intensity:qY(t,n.id,s,"intensity",vwt),range:qY(t,n.id,s,"range",vwt),shadows:qY(t,n.id,s,"shadows",ywt)}})}function bcn(t,n,s,c){if(!t.inspector)return 0;let d=0;for(const m of n){let g=null;try{g=MMt(t.inspector.properties(m),s)}catch{continue}!g||g.readonly||(SPt(t,m,g.path,c),d++)}return d}function Scn(t,n){return t===null&&n===null?0:t===null?1:n===null?-1:typeof t=="string"&&typeof n=="string"?t.localeCompare(n,void 0,{numeric:!0,sensitivity:"base"}):Number(t)-Number(n)}function bwt(t,n){return n==="name"||n==="type"?t[n]:t[n].value}function zY({label:t,sortKey:n,activeKey:s,direction:c,onSort:d}){const m=n===s;return q.jsxs(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-light-explorer-sort","aria-label":`Sort lights by ${t}`,onClick:()=>d(n),children:[t,m?q.jsx(dc,{icon:c==="ascending"?j0r:ivr,size:"xs"}):null]})}function xve(){return q.jsx("span",{className:"volter-light-explorer-unavailable",children:"—"})}function xcn({row:t,edit:n}){return t.enabled.supported?q.jsx(TD,{"aria-label":`${t.enabled.value?"Disable":"Enable"} ${t.name}`,checked:t.enabled.value??!1,disabled:!t.enabled.writable,onChange:s=>n("enabled",s.target.checked)}):q.jsx(xve,{})}function wcn({row:t,edit:n}){return!t.color.supported||!t.color.value?q.jsx(xve,{}):q.jsxs("div",{className:"volter-light-explorer-color",children:[q.jsx(g4t,{"aria-label":`Color for ${t.name}`,value:t.color.value,disabled:!t.color.writable,onChange:s=>n("color",s.target.value)}),q.jsx("span",{children:t.color.value})]})}function Swt({row:t,field:n,step:s,edit:c}){const d=t[n];return d.supported?q.jsx(SZ,{value:d.value,disabled:!d.writable,precision:2,step:s,onChange:m=>c(n,m)}):q.jsx(xve,{})}function Tcn({row:t,edit:n}){return t.shadows.supported?q.jsx(TD,{"aria-label":`Toggle shadows for ${t.name}`,checked:t.shadows.value??!1,disabled:!t.shadows.writable,onChange:s=>n("shadows",s.target.checked)}):q.jsx(xve,{})}function Ccn({row:t,adapter:n,visibleRows:s,selected:c,selectionAnchor:d,edit:m}){const g=(S,k)=>m(t,S,k);return q.jsxs("tr",{"data-selected":c.has(t.id)||void 0,children:[q.jsx("td",{children:q.jsx(xcn,{row:t,edit:g})}),q.jsx("td",{children:q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-light-explorer-name","aria-pressed":c.has(t.id),onClick:S=>{kcn(n,s,t.id,d.current,S.shiftKey,S.metaKey||S.ctrlKey),S.shiftKey||(d.current=t.id)},children:t.name})}),q.jsx("td",{className:"volter-light-explorer-type",children:t.type}),q.jsx("td",{children:q.jsx(wcn,{row:t,edit:g})}),q.jsx("td",{children:q.jsx(Swt,{row:t,field:"intensity",step:.1,edit:g})}),q.jsx("td",{children:q.jsx(Swt,{row:t,field:"range",step:.5,edit:g})}),q.jsx("td",{children:q.jsx(Tcn,{row:t,edit:g})})]})}function Ecn(t,n,s){if(!n.has(t.id))return[t.id];const c=s.filter(d=>n.has(d.id));return c.length>1?c.map(d=>d.id):[t.id]}function kcn(t,n,s,c,d,m){if(!t.selection)return;const g=t.selection.get();if(d&&c){const S=n.findIndex(A=>A.id===c),k=n.findIndex(A=>A.id===s);if(S>=0&&k>=0){const A=n.slice(Math.min(S,k),Math.max(S,k)+1).map(F=>F.id);c0(t,m?[...new Set([...g,...A])]:A,{intent:"exact"});return}}if(m){c0(t,g.includes(s)?g.filter(S=>S!==s):[...g,s],{intent:"exact"});return}c0(t,[s],{intent:"exact"})}function Acn(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Eee,AD,AD);const{adapter:n}=Cm(t),[,s]=Ye.useReducer(Pe=>Pe+1,0);Ye.useEffect(()=>n.subscribe?.(s),[n]);const[c,d]=Ye.useState(""),[m,g]=Ye.useState("all"),[S,k]=Ye.useState("name"),[A,F]=Ye.useState("ascending"),D=Ye.useRef(null),J=vcn(n),$=Ye.useMemo(()=>[...new Set(J.map(Pe=>Pe.type))].sort((Pe,be)=>Pe.localeCompare(be)),[J]),G=c.trim().toLocaleLowerCase(),se=J.filter(Pe=>(m==="all"||Pe.type===m)&&(!G||Pe.name.toLocaleLowerCase().includes(G)||Pe.type.toLocaleLowerCase().includes(G))).sort((Pe,be)=>{const X=Scn(bwt(Pe,S),bwt(be,S));return A==="ascending"?X:-X}),pe=new Set(n.selection?.get()??[]),ue=J.filter(Pe=>pe.has(Pe.id)).length,Ce=Pe=>{Pe===S?F(be=>be==="ascending"?"descending":"ascending"):(k(Pe),F("ascending"))},Ae=(Pe,be,X)=>{const we=Ecn(Pe,pe,se);bcn(n,we,be,X)>0&&t.notifyIngestEdit()};return q.jsxs("section",{className:"volter-light-explorer","aria-label":"Light Explorer",children:[q.jsxs("div",{className:"volter-light-explorer-toolbar",children:[q.jsx(Zm,{"aria-label":"Search lights",placeholder:"Search lights…",value:c,onChange:Pe=>d(Pe.target.value)}),q.jsxs(Iw,{"aria-label":"Filter lights by type",value:m,onChange:Pe=>g(Pe.target.value),children:[q.jsx("option",{value:"all",children:"All types"}),$.map(Pe=>q.jsx("option",{value:Pe,children:Pe},Pe))]}),q.jsxs("span",{className:"volter-light-explorer-summary",children:[J.length," ",J.length===1?"light":"lights",ue>0?` · ${ue} selected`:""]})]}),J.length===0?q.jsx("div",{className:"volter-light-explorer-empty",children:"The active document does not expose any lights."}):q.jsxs("div",{className:"volter-light-explorer-scroll",children:[q.jsxs("table",{className:"volter-light-explorer-table",children:[q.jsx("thead",{children:q.jsxs("tr",{children:[q.jsx("th",{className:"volter-light-explorer-check-column",scope:"col",children:"On"}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Name",sortKey:"name",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Type",sortKey:"type",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:"Color"}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Intensity",sortKey:"intensity",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Range",sortKey:"range",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Shadows",sortKey:"shadows",activeKey:S,direction:A,onSort:Ce})})]})}),q.jsx("tbody",{children:se.map(Pe=>q.jsx(Ccn,{row:Pe,adapter:n,visibleRows:se,selected:pe,selectionAnchor:D,edit:Ae},Pe.id))})]}),se.length===0?q.jsx("div",{className:"volter-light-explorer-empty",children:"No lights match the current filters."}):null]})]})}const Dcn=Mye();function Pcn(){const{error:t,warn:n}=Qs.counts;return t>0?{count:t+n,severity:"error"}:n>0?{count:n,severity:"warn"}:null}function Icn(){Dcn.ensure(t=>{t(fFe({...iee.console,order:-100,Content:hcn,badge:Pcn,subscribeBadge:Qs.subscribe,badgeSnapshot:Qs.getSnapshot,visibleByDefault:!1,closeable:!0})),t(fFe({...iee.lightExplorer,order:21,Content:Acn,visibleByDefault:!1,closeable:!0}))})}const Sme=new Map,xme=new Map,Tje=new Set;let jMt=0;function LMt(){jMt++;for(const t of[...Tje])t()}function Jxn(t,n){const s=Sme.get(t),c=n===null?null:Math.max(0,Math.round(n.headerWidth));(n===null?s===void 0:s?.headerWidth===c&&s.shelf===n.shelf)||(n===null||c===null?Sme.delete(t):Sme.set(t,{headerWidth:c,shelf:n.shelf}),LMt())}function BMt(t){return Sme.get(t)??null}function Wxn(t){return xme.get(t)??null}function Ncn(t,n){(xme.get(t)??null)!==n&&(n===null?xme.delete(t):xme.set(t,n),LMt())}function $Mt(t){return Tje.add(t),()=>{Tje.delete(t)}}function Xge(){return jMt}const Ocn=5742335;function qMt(t,n,s){return t<<16|n<<8|s}function xwt(t){const n=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(t.trim())?.[1];if(n){const d=n.length===3?[...n].map(m=>`${m}${m}`).join(""):n;return Number.parseInt(d.slice(0,6),16)}const s=/^rgba?\(\s*(\d+(?:\.\d+)?)\s*(?:,\s*|\s+)(\d+(?:\.\d+)?)\s*(?:,\s*|\s+)(\d+(?:\.\d+)?)/i.exec(t.trim());if(!s)return null;const c=s.slice(1,4).map(d=>Math.round(Number(d)));return c.some(d=>d<0||d>255)?null:qMt(c[0],c[1],c[2])}function oee(t){const n=xwt(t);if(n!==null||typeof document>"u")return n;if(typeof CSS<"u"&&!CSS.supports("color",t))return null;const s=document.createElement("canvas").getContext("2d");return s?(s.fillStyle="#010203",s.fillStyle=t,xwt(String(s.fillStyle))):null}function dA(t){return typeof document>"u"?null:t?.closest(`.${MRe}`)??document.querySelector(`.${MRe}`)}function wwt(t){const n=Math.round((t>>16&255)*.42),s=Math.round((t>>8&255)*.42),c=Math.round((t&255)*.42);return qMt(n,s,c)}function Ng(t,n){return t&&typeof getComputedStyle<"u"?getComputedStyle(t).getPropertyValue(n).trim():""}const zMt={"--volter-viewport-background":"--vscode-volter-viewport-background","--volter-viewport-grid":"--vscode-volter-viewport-grid","--volter-viewport-axis-x":"--vscode-volter-viewport-axisX","--volter-viewport-axis-y":"--vscode-volter-viewport-axisY","--volter-viewport-axis-z":"--vscode-volter-viewport-axisZ","--volter-viewport-selection":"--vscode-volter-viewport-selection","--volter-viewport-active":"--vscode-volter-viewport-active","--volter-viewport-wire":"--vscode-volter-viewport-wire","--volter-gizmo-x":"--vscode-volter-gizmo-x","--volter-gizmo-y":"--vscode-volter-gizmo-y","--volter-gizmo-z":"--vscode-volter-gizmo-z","--volter-gizmo-navigation-x":"--vscode-volter-gizmo-navigationX","--volter-gizmo-navigation-y":"--vscode-volter-gizmo-navigationY","--volter-gizmo-navigation-z":"--vscode-volter-gizmo-navigationZ","--volter-gizmo-hover":"--vscode-volter-gizmo-hover","--volter-gizmo-drag":"--vscode-volter-gizmo-drag"};function see(t,n){const s=zMt[n];return(s?Ng(t,s):"")||Ng(t,n)}function Hxn(t){const n=dA(t),s=see(n,"--volter-viewport-selection")||Ng(n,"--volter-accent"),c=oee(s||i$.color.accent.default)??Ocn,d=oee(see(n,"--volter-viewport-active")),m=Ng(n,"--volter-viewport-outline-style"),g=Number.parseFloat(Ng(n,"--volter-viewport-outline-width")),S=Ng(n,"--volter-viewport-outline-hidden");return{visible:c,hidden:wwt(c),...d===null?{}:{active:{visible:d,hidden:wwt(d)}},...m===""&&S===""&&!Number.isFinite(g)?{}:{outline:{style:m==="crisp"?"crisp":"soft",width:Number.isFinite(g)&&g>0?g:null,hidden:S!=="false"}}}}function Gxn(t){return VMt(t).background!==null}function Kxn(t){const n=VMt(t).background;if(n===null)return!1;const s=n>>16&255,c=n>>8&255,d=n&255;return(.2126*s+.7152*c+.0722*d)/255>.5}function VMt(t){const n=dA(t),s=c=>{const d=see(n,c);return d?oee(d):null};return{background:s("--volter-viewport-background"),grid:s("--volter-viewport-grid"),axisX:s("--volter-viewport-axis-x"),axisY:s("--volter-viewport-axis-y"),axisZ:s("--volter-viewport-axis-z"),axisLineWidth:(()=>{const c=Ng(n,"--volter-viewport-axis-line-width"),d=c?Number.parseFloat(c):Number.NaN;return Number.isFinite(d)?d:null})(),active:s("--volter-viewport-active")}}function Xxn(t){const n=dA(t),s=m=>{const g=see(n,m);return g?oee(g):null},c=m=>{const g=Ng(n,m);if(!g)return null;const S=Number.parseFloat(g);return Number.isFinite(S)?S:null},d=m=>{const g=s(`${m}-x`),S=s(`${m}-y`),k=s(`${m}-z`);return g!==null&&S!==null&&k!==null?[g,S,k]:null};return{axes:d("--volter-gizmo"),navigation:d("--volter-gizmo-navigation"),hover:s("--volter-gizmo-hover"),drag:s("--volter-gizmo-drag"),opacity:c("--volter-viewport-gizmo-opacity"),arrowLength:c("--volter-viewport-gizmo-arrow-length"),arrowHead:c("--volter-viewport-gizmo-arrow-head"),ringWidth:c("--volter-viewport-gizmo-ring-width"),navigationSize:c("--volter-viewport-navigation-size"),background:s("--volter-viewport-background"),navigationForm:(m=>m==="cones"||m==="triad"||m==="godot"?m:"balls")(Ng(n,"--volter-viewport-navigation-gizmo")),navigationCorner:Ng(n,"--volter-viewport-navigation-corner")==="bottom-left"?"bottom-left":"top-right",highlightSaturation:c("--volter-viewport-gizmo-highlight-saturation"),highlightValue:c("--volter-viewport-gizmo-highlight-value")}}function Yxn(t){const n=Ng(dA(t),"--volter-viewport-gizmo-size");if(!n)return null;const s=Number.parseFloat(n);return Number.isFinite(s)&&s>0?s:null}function Zxn(t){const n=dA(t),s=(d,m)=>{const g=Number.parseFloat(Ng(n,d)??"");return Number.isFinite(g)&&g>0?g:m},c=s("--volter-viewport-grid-line-width",1);return{lineWidth:c,majorWidth:s("--volter-viewport-grid-major-width",c),majorContrast:s("--volter-viewport-grid-major-contrast",1)}}function Qxn(t){const n=dA(t),s=see(n,"--volter-viewport-wire"),c=Number.parseFloat(Ng(n,"--volter-viewport-wire-opacity"));return{color:s?oee(s):null,opacity:Number.isFinite(c)?c:null}}function ewn(t){const n=dA(t),s=Number.parseFloat(Ng(n,"--volter-viewport-selection-box-width"));return{edges:Ng(n,"--volter-viewport-selection-box")==="edges",frame:Ng(n,"--volter-viewport-selection-box-frame")==="object"?"object":"world",lineWidth:Number.isFinite(s)&&s>0?s:null}}function UMt(t){const n=dA(t);return["--volter-viewport-chrome-bar","--volter-viewport-chrome-view-name","--volter-viewport-chrome-tools","--volter-viewport-chrome-display","--volter-viewport-chrome-transform-controls"].map(s=>Ng(n,s)).join("|")}function Rcn(t){const[n,s,c,d,m]=t.split("|"),g=["strip","pills"],S=["menu","gizmo","bar"],k=["bar-start","bar-end"],A=(F,D,J)=>D.includes(F)?F:J;return{bar:A(n,g,"none"),viewName:A(s,S,"text"),tools:A(c,k,"shelf"),display:A(d,k,"corner"),transformControls:m==="bar"?"bar":"header"}}let Cje=null;function Fcn(t){return WMt(null,()=>{Cje=UMt(),t()})}function Twt(){return Cje??=UMt(),Cje}let Eje=null;function JMt(){const t=dA();return JSON.stringify([EBe.map(n=>Ng(t,`--volter-viewport-word-${n}`)),Ng(t,"--volter-viewport-word-helpers")])}function Mcn(t){return WMt(null,()=>{Eje=JMt(),t()})}function Cwt(){return Eje??=JMt(),Eje}function twn(){const t=Ye.useSyncExternalStore(Mcn,Cwt,Cwt);return Ye.useMemo(()=>{const[n,s]=JSON.parse(t),c={};return EBe.forEach((d,m)=>{n[m]&&(c[d]=n[m])}),{shading:c,helpers:s||void 0}},[t])}function jcn(){const t=Ye.useSyncExternalStore(Fcn,Twt,Twt);return Ye.useMemo(()=>Rcn(t),[t])}function WMt(t,n){n();const s=dA(t);if(!s||typeof MutationObserver>"u")return()=>{};const c=new MutationObserver(n);c.observe(s,{attributes:!0,attributeFilter:["style"]});const d=Lcn(s,n);return()=>{c.disconnect(),d()}}const u_e=new Set;let YL=null,kOe="";function Lcn(t,n){const s=()=>Object.values(zMt).map(c=>Ng(t,c)).join("|");return u_e.add(n),!YL&&typeof document<"u"&&document.head&&(kOe=s(),YL=new MutationObserver(()=>{const c=s();if(c!==kOe){kOe=c;for(const d of[...u_e])d()}}),YL.observe(document.head,{childList:!0,subtree:!0,characterData:!0})),()=>{u_e.delete(n),u_e.size===0&&YL&&(YL.disconnect(),YL=null)}}function Bcn({documentId:t,runtime:n=!1,island:s=!1,assetPath:c,transformControls:d,children:m}){Ye.useSyncExternalStore(DBe,o$,o$);const g=Ye.useSyncExternalStore(U$,eA,eA);Ye.useSyncExternalStore($Mt,Xge,Xge);const S=BMt(t)?.headerWidth??null,k=Ye.useCallback(F=>Ncn(t,F),[t]),A=s2(t)?.HeaderControls;return!m&&!A&&!d||!n&&g.includes("header:hidden")?null:q.jsxs("div",{className:s?"volter-dock-document-toolbar volter-chrome-island volter-glass-island":"volter-dock-document-toolbar","data-runtime-toolbar":n||void 0,"data-island-scale":"compact","data-testid":`document-header:${t}`,children:[m?q.jsx("div",{className:"volter-dock-document-toolbar-own",children:m}):null,d,A?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(A,{documentId:t,...c&&!c.startsWith("online:")?{assetPath:c}:{}})}):null,S===null?null:q.jsx("div",{ref:k,className:"volter-dock-document-toolbar-area","data-testid":`document-header-area:${t}`,style:{flex:"0 0 auto",width:S,alignSelf:"stretch",display:"flex",alignItems:"center",position:"relative",zIndex:1,background:"var(--volter-surface-chrome)"}})]})}function $cn({documentId:t,children:n}){const s=Ye.useSyncExternalStore(U$,eA,eA);return!n||s.includes("shelf:hidden")?null:q.jsx("div",{className:"volter-dock-document-shelf","data-testid":`document-shelf:${t}`,role:"toolbar","aria-orientation":"vertical","aria-label":"Document tools",children:n})}function qcn(t){return t==="game"||t==="scene"||t==="world"?"world":"resource"}function HMt({viewId:t,descriptor:n,active:s,backdrop:c=!1,chrome:d=!0}){const m=n.Content,g=n.Toolbar,S=n.Shelf,k=qcn(n.kind),A=Yv();Ye.useSyncExternalStore(A.subscribe,A.getShellSnapshot??A.getSnapshot),Ye.useSyncExternalStore(Eee,AD,AD),Ye.useSyncExternalStore(DBe,o$,o$),Ye.useSyncExternalStore(mCt,XOe,XOe);const F=s2(n.id),D=s&&n.kind!=="game"?F?.transformTools?.()??"none":"none",J=F?.TransformTools,$=F?.TransformControls,G=jcn(),se=d&&F!==null&&F!==void 0&&!c,pe=se&&G.bar!=="none"&&G.tools!=="shelf",ue=Ye.useSyncExternalStore(U$,eA,eA).includes("shelf:hidden"),Ce=D==="none"||!J?null:q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(J,{documentId:n.id})});Ye.useSyncExternalStore($Mt,Xge,Xge);const Ae=BMt(n.id)?.shelf??null,Pe=se&&G.bar!=="none",be=!Pe||G.display==="corner"?null:G.display==="bar-start"?"start":"end",X=pe?G.tools==="bar-start"?"start":"end":null,we=Pe&&G.transformControls==="bar"&&D==="gizmo"&&$!==void 0,qe=we?X??be??"start":null,bt=Pt=>q.jsxs("div",{className:"volter-stage-bar-group","data-edge":Pt,children:[be===Pt?q.jsx("div",{className:"volter-stage-bar-slot","data-stage-bar-slot":"display"}):null,X===Pt?Ce:null,qe===Pt&&$?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx($,{documentId:n.id})}):null]});return q.jsxs("div",{className:"volter-dock-document","data-testid":`workspace-doc:${n.id}`,"data-editor-hotkey-scope":k==="world"?"viewport":"workspace","data-volter-document-family":k,children:[d&&q.jsx(Bcn,{documentId:n.id,runtime:n.kind==="game",island:c&&k==="world",assetPath:hQr(n.id)?.assetPath,transformControls:D==="gizmo"&&$&&!we?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx($,{documentId:n.id})}):null,children:g?q.jsx(g,{documentId:n.id,active:s}):null}),q.jsxs("div",{className:"volter-dock-document-content","data-workspace-document-id":n.id,"data-workspace-view-id":t,"data-volter-stage-bar":se&&G.bar!=="none"?G.bar:void 0,"data-volter-stage-rail":d&&!ue&&(Ce&&!pe||S)?void 0:"empty",children:[q.jsx(m,{documentId:n.id,...t?{viewId:t}:{},active:s}),Pe?q.jsxs("div",{className:"volter-stage-bar","data-form":G.bar,role:"toolbar","aria-label":"Viewport",children:[bt("start"),bt("end")]}):null,d&&!ue&&Ae&&Ce&&!pe?r2.createPortal(Ce,Ae):null,d&&q.jsx($cn,{documentId:n.id,children:Ce&&!pe||S?q.jsxs(q.Fragment,{children:[pe?null:Ce,S?q.jsx(S,{documentId:n.id,active:s}):null]}):null})]})]})}const f_e=new Map;function zcn(t,n){const s=Em();let c=f_e.get(t);(!c||c.project!==s)&&(c={project:s,count:0,created:n},f_e.set(t,c)),c.count++;const d=c;return()=>{f_e.get(t)!==d||--d.count>0||(f_e.delete(t),d.created&&Em()===d.project&&kN(t))}}function Vcn({document:t,chrome:n=!0,active:s=!0,onReady:c}){const d=Yv(),[m,g]=Ye.useState(null),[S,k]=Ye.useState(null),A=JSON.stringify(t),F=Ye.useRef(c);F.current=c;const D=Ye.useRef(null);Ye.useSyncExternalStore(o2,K1,K1);const J=Ye.useSyncExternalStore(DBe,o$,o$);Ye.useEffect(()=>{let G=!1,se;const pe=Em(),ue=()=>!G&&Em()===pe,Ce=JSON.parse(A);return g(null),k(null),(async()=>{if(await nVe(),!ue())return;const Ae=new Set(l0().map(be=>be.descriptor.id)),Pe=Ce.kind==="asset"?aN(Ce.path,Ce.assetKind??"source",{activate:s}):Ce.kind==="workspace"?Ae.has(Ce.id)?Ce.id:null:await Yye(Ce.kind,d,{...Ce,activate:s});if(ue()){if(!Pe)throw new Error("The requested layout document is unavailable.");se=zcn(Pe,!Ae.has(Pe)),g(Pe)}})().catch(Ae=>{ue()&&k(Ae instanceof Error?Ae.message:String(Ae))}),()=>{G=!0,se?.()}},[d,A]),Ye.useEffect(()=>{!m||!s||X0(m)},[m,s]),Ye.useEffect(()=>{if(!m)return;const G=s2(m);if(!(!G||D.current===G)){D.current=G;try{F.current?.({select(se){const pe=G.idsNamed?.(se)??[];if(pe.length!==1)throw new Error(`Expected one object named "${se}"; found ${pe.length}.`);G.selection?.apply(pe)},transform(se){G.setTransformMode?.(se)},frame(){G.frame("document")}})}catch(se){k(se instanceof Error?se.message:String(se))}}},[m,J]);const $=m?l0().find(G=>G.descriptor.id===m):void 0;return q.jsx("div",{style:{position:"relative",flex:1,minWidth:0,minHeight:0,height:"100%",overflow:"hidden"},children:S?q.jsx("div",{role:"alert",children:S}):$?q.jsx(HMt,{descriptor:$.descriptor,active:s,chrome:n}):q.jsx("div",{role:"status",children:"Opening document…"})})}function Ucn(){return q.jsxs(Aee,{children:[q.jsx(Dee,{}),q.jsx(Iee,{}),q.jsx(Pee,{})]})}function Jcn(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=Ye.useSyncExternalStore(Hye,c$,c$),[s,c]=Ye.useState(!1),d=Ye.useSyncExternalStore(OC,dxt,dxt);if(Ye.useEffect(()=>{let g=!1;return nVe().then(()=>{g||c(!0)}),()=>{g=!0}},[]),!s)return q.jsx("div",{role:"status",children:d??"Loading project layout…"});const m=n.Layout??Ucn;return q.jsx(m,{playing:t.playState!=="stopped",paused:t.playState==="paused"})}function GVe({size:t=64}){return q.jsx("img",{src:uee()?.logo??mR.logo,width:t,height:t,alt:"","aria-hidden":"true","data-testid":"volter-logo",style:{display:"block"}})}const kje="account";function GMt(){return ND({id:kje,title:"Account",kind:"tool-contribution",workspaceRole:"workspace-task",provenance:{origin:"Volter account"},Content:Kcn,closeable:!0,presentation:()=>({kind:"workspace",id:kje})})}AN({id:"workspace",owner:"account-documents",open:(t,n)=>n.id===kje?GMt():null});function Wcn(t){return t.source==="environment"?`Environment · ${t.environmentVariable}`:t.source==="system"?"Secure system storage":t.source==="session"?t.configured?"Session only":"Session storage":"Not configured"}function hB({children:t}){return q.jsxs("div",{className:"volter-account-infostrip",children:[q.jsx(dc,{icon:R$,className:"volter-account-infostrip-icon","aria-hidden":"true"}),q.jsx("span",{children:t})]})}function Hcn({provider:t,busy:n,run:s,editing:c,removing:d,onEdit:m,onStopEditing:g,onRemoveIntent:S}){const[k,A]=Ye.useState("");return q.jsxs("div",{className:"volter-account-provider","data-configured":t.configured,children:[q.jsx("span",{className:"volter-account-provider-monogram","aria-hidden":"true",children:t.label.slice(0,1)}),q.jsxs("div",{className:"volter-account-provider-main",children:[q.jsxs("div",{className:"volter-account-provider-name",children:[q.jsx("strong",{children:t.label}),t.configured&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-account-provider-dot","aria-hidden":"true"}),q.jsx("span",{className:"volter-account-provider-key",children:t.maskedKey})]})]}),q.jsx("span",{className:"volter-account-provider-source",children:Wcn(t)}),t.source==="session"&&t.configured&&q.jsx("span",{className:"volter-account-provider-warning",children:"No system credential manager is available. This key will be forgotten when the editor stops."}),t.problem&&q.jsx("span",{className:"volter-account-provider-warning",role:"alert",children:t.problem}),t.source==="environment"&&q.jsxs("span",{className:"volter-account-provider-source",children:["Restart the editor after changing ",t.environmentVariable,"."]})]}),c?q.jsxs("form",{className:"volter-account-provider-form",onSubmit:F=>{F.preventDefault(),s(async()=>{await wwr(t.provider,k),A(""),g()},`${t.label} credential saved.`)},children:[q.jsxs("label",{className:"volter-field",children:[q.jsxs("span",{className:"volter-field-label",children:[t.label," API key"]}),q.jsx(Zm,{autoComplete:"off",autoFocus:!0,type:"password",value:k,onChange:F=>A(F.target.value)})]}),q.jsxs("div",{className:"volter-account-provider-form-actions",children:[q.jsx(Ms,{type:"submit",variant:"primary",disabled:n||k.trim()==="",children:"Save key"}),q.jsx(Ms,{type:"button",variant:"ghost",disabled:n,onClick:()=>{A(""),g()},children:"Cancel"})]})]}):q.jsxs("div",{className:"volter-account-provider-actions",children:[t.configured&&q.jsx(Ms,{size:"compact",disabled:n,onClick:()=>void s(()=>Cwr(t.provider),`${t.label} credential is valid.`),children:"Test"}),t.editable&&q.jsx(Ms,{size:"compact",variant:t.configured?"ghost":"secondary",disabled:n,onClick:()=>{A(""),m()},children:t.configured?"Replace":"Add key"}),t.editable&&t.configured&&!d&&q.jsx(Ms,{size:"compact",variant:"ghost",disabled:n,onClick:()=>S(t.provider),children:"Remove"}),d&&q.jsxs(q.Fragment,{children:[q.jsx(Ms,{size:"compact",variant:"danger",disabled:n,onClick:()=>void s(async()=>{await Twr(t.provider),S(null)},`${t.label} credential removed.`),children:"Confirm remove"}),q.jsx(Ms,{size:"compact",variant:"ghost",disabled:n,onClick:()=>S(null),children:"Cancel"})]})]})]})}function Ewt({busy:t,run:n}){const s=oBe(),[c,d]=Ye.useState(null),[m,g]=Ye.useState(null),S=s.providerCredentials.filter(k=>k.configured).length;return q.jsxs("section",{className:"volter-account-card volter-provider-connections",children:[q.jsxs("div",{className:"volter-account-providers-header",children:[q.jsxs("div",{children:[q.jsx("h3",{className:"volter-account-card-title",children:"Provider connections"}),q.jsx("p",{className:"volter-account-card-sub",children:"Keys live in this computer's credential manager — never in project files or the editor UI."})]}),q.jsxs("span",{className:"volter-status-dot","data-state":S>0?"on":"off",children:[S," connected"]})]}),q.jsx("div",{className:"volter-account-provider-list",children:s.providerCredentials.map(k=>q.jsx(Hcn,{provider:k,busy:t,run:n,editing:c===k.provider,removing:m===k.provider,onEdit:()=>{g(null),d(k.provider)},onStopEditing:()=>d(null),onRemoveIntent:g},k.provider))})]})}function kwt({busy:t,run:n}){const s=oBe(),c=s.codingInference,[d,m]=Ye.useState(c.model),[g,S]=Ye.useState(null),[k,A]=Ye.useState(null);Ye.useEffect(()=>m(c.model),[c.model]),Ye.useEffect(()=>{S(null),A(null)},[d,s.preferredRoute]);const F=D=>n(()=>Swr({...c,...D,model:(D.model??c.model).trim()}),"Coding inference settings saved.");return q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Coding inference"}),q.jsxs("p",{className:"volter-account-card-sub",children:["Coding agents run on the login you already did — ",q.jsx("code",{children:"codex login"}),", Claude's device login, ",q.jsx("code",{children:"grok login"})," — and Volter Editor injects nothing into them. Turn this on only for a harness you have no subscription for: it routes that harness through OpenRouter on this account's managed credits or your own key, and it takes effect only while Preferred route above is Managed or BYOK. Existing sessions keep the route they launched with."]}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:c.enabled,disabled:t,onChange:D=>void F({enabled:D.target.checked})}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Use OpenRouter for coding agents"}),q.jsx("small",{children:"Codex, Claude Code, OpenCode and Pi are configured per spawned process. Grok takes no provider configuration and always runs on its own device login."})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Managed coding model"}),q.jsxs(Iw,{value:d,disabled:t,onChange:D=>{const J=D.target.value;m(J),J!==c.model&&F({model:J})},children:[!["z-ai/glm-5.2","moonshotai/kimi-k3"].includes(d)&&q.jsxs("option",{value:d,children:[d," · custom"]}),q.jsx("option",{value:"z-ai/glm-5.2",children:"GLM-5.2 · managed default"}),q.jsx("option",{value:"moonshotai/kimi-k3",children:"Kimi K3 · higher-cost option"})]})]}),s.preferredRoute==="managed"?q.jsxs("div",{className:"volter-account-card-footer",children:[q.jsx(Ms,{size:"compact",disabled:t,onClick:()=>{A(null),xwr({model:d,promptTokens:1e5,outputTokens:2e4}).then(S).catch(D=>A(D instanceof Error?D.message:String(D)))},children:"Preflight typical coding session"}),g&&q.jsxs("span",{className:"volter-account-help",children:["Estimate: ",g.estimatedCredits.toLocaleString()," Volter credits ($",g.providerAmountUsd.toFixed(4)," provider cost) for 100k input + 20k output tokens."]}),k&&q.jsx("span",{className:"volter-account-provider-warning",role:"alert",children:k})]}):s.preferredRoute==="byok"?q.jsx(hB,{children:"BYOK coding charges OpenRouter directly and consumes zero Volter credits."}):null,q.jsxs(hB,{children:["Active account route: ",s.preferredRoute,". BYOK requires the OpenRouter connection below; managed uses the Volter balance."]})]})}function Gcn({plan:t}){const n=t.status.replace("_"," "),s=t.status==="active"||n.toLowerCase()===t.name.trim().toLowerCase();return q.jsxs("span",{className:"volter-account-plan-chips",children:[q.jsxs("span",{className:"volter-chip","data-tone":"accent",children:[t.name," plan"]}),!s&&q.jsx("span",{className:"volter-chip","data-tone":t.status==="cancelling"?"warn":void 0,children:n}),(t.renewsAt||t.endsAt)&&q.jsxs("span",{className:"volter-chip",children:[t.endsAt?"Access ends":"Renews"," ",new Date(t.endsAt??t.renewsAt).toLocaleDateString()]})]})}function Kcn(){Ye.useSyncExternalStore(Dye,lN,lN);const t=oBe(),[n,s]=Ye.useState("builder@example.test"),[c,d]=Ye.useState([]),[m,g]=Ye.useState(null),[S,k]=Ye.useState("creator"),[A,F]=Ye.useState(""),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState(null),[ue,Ce]=Ye.useState(null),[Ae,Pe]=Ye.useState(!1);Ye.useEffect(()=>{if(t.authenticated||t.backend!=="live"||t.accountEnvironment==="development-twin"){Pe(!1);return}Iwr().then(zt=>Pe(zt.device)).catch(()=>Pe(!1))},[t.authenticated,t.backend]),Ye.useEffect(()=>{if(!ue)return;const zt=()=>{Owr(ue.authorizationId).then(tr=>{tr&&Ce(null)}).catch(tr=>{G(tr instanceof Error?tr.message:String(tr)),Ce(null)})};zt();const ft=window.setInterval(zt,1e3);return()=>window.clearInterval(ft)},[ue]),Ye.useEffect(()=>{if(!se)return;const zt=()=>{Fwr(se.deviceCode).then(tr=>{tr&&pe(null)}).catch(tr=>{G(tr instanceof Error?tr.message:String(tr)),pe(null)})},ft=window.setInterval(zt,Math.max(1,se.intervalSeconds)*1e3);return()=>window.clearInterval(ft)},[se]),Ye.useEffect(()=>{if(!t.authenticated){d([]);return}Awr().then(d).catch(()=>d([]))},[t.authenticated,t.authenticated?t.user.id:"signed-out",t.authenticated?t.credits.used:0]),Ye.useEffect(()=>{if(!t.authenticated){g(null);return}Dwr().then(zt=>{g(zt);const ft=["creator","max","ultra"].find(tr=>tr!==t.plan.id);k(ft??"creator"),F(Object.keys(zt.creditPacks)[0]??"")}).catch(()=>g(null))},[t.authenticated,t.authenticated?t.user.id:"signed-out"]);const be=async(zt,ft)=>{J(!0),G(null);try{await zt(),ft&&G(ft)}catch(tr){G(tr instanceof Error?tr.message:String(tr))}finally{J(!1)}};if(!t.authenticated)return q.jsx("div",{className:"volter-account","data-testid":"account-document",children:q.jsxs("div",{className:"volter-account-signin-stack",children:[q.jsxs("div",{className:"volter-account-signin-hero",children:[q.jsx("span",{className:"volter-account-signin-mark","aria-hidden":"true",children:q.jsx(GVe,{size:52})}),q.jsx("h1",{className:"volter-account-signin-title",children:"Sign in to Volter Editor"})]}),t.accountEnvironment==="development-twin"?q.jsxs("form",{className:"volter-account-card volter-account-signin-card",onSubmit:zt=>{zt.preventDefault(),be(()=>hwr(n),"Signed in through the local Clerk Twin.")},children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Development email"}),q.jsx(Zm,{value:n,type:"email",onChange:zt=>s(zt.target.value)})]}),q.jsx(Ms,{type:"submit",variant:"primary",disabled:D||!n.includes("@"),children:D?"Signing in…":"Use Clerk Twin account"}),q.jsx(hB,{children:"Local Clerk and Polar twins — fake identity and checkout, with the real Volter account and credit boundaries."})]}):t.backend==="live"?q.jsxs("section",{className:"volter-account-card volter-account-signin-card",children:[q.jsx(Ms,{variant:"primary",disabled:D||se!==null||ue!==null,onClick:()=>void be(async()=>{const zt=await Nwr();Ce(zt),window.open(zt.authorizationUrl,"_blank","noopener,noreferrer")}),children:ue?"Waiting for browser sign-in…":"Continue in browser"}),Ae&&q.jsx(Ms,{variant:"ghost",disabled:D||se!==null||ue!==null,onClick:()=>void be(async()=>{const zt=await Rwr();pe(zt),window.open(zt.verificationUri,"_blank","noopener,noreferrer")}),children:"Use a device code instead"}),se&&q.jsxs("div",{className:"volter-account-device-code",children:[q.jsx("strong",{children:se.userCode}),q.jsx("span",{children:"Complete authorization in the browser. This editor polls without receiving your password."})]}),q.jsx(hB,{children:"Authorization happens in your browser — this editor never sees your password."})]}):q.jsxs("form",{className:"volter-account-card volter-account-signin-card",onSubmit:zt=>{zt.preventDefault(),be(()=>mwr(n),"Signed in to the zero-charge local account.")},children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Email"}),q.jsx(Zm,{value:n,type:"email",onChange:zt=>s(zt.target.value)})]}),q.jsx(Ms,{type:"submit",variant:"primary",disabled:D||!n.includes("@"),children:D?"Signing in…":"Use local mock account"}),q.jsx(hB,{children:"Local mock — no payment, network identity, or provider request."})]}),q.jsxs("ul",{className:"volter-account-signin-points",children:[q.jsx("li",{children:"Every paid generation shows its route and estimate first"}),q.jsx("li",{children:"Spend controls and hard limits are on by default"}),q.jsx("li",{children:"Provider keys stay in your system credential manager"})]}),q.jsx(kwt,{busy:D,run:be}),q.jsx(Ewt,{busy:D,run:be}),($||Tpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??Tpe()})]})});const X=t.credits.included+t.credits.purchased,we=X===0?0:Math.min(100,t.credits.used/X*100),qe=X===0?0:Math.max(0,Math.min(100-we,t.credits.reserved/X*100)),bt=X>0&&t.credits.used>X,Pt=t.backend==="mock"||t.entitlements.generation,Wt=zt=>ywr({...t.spendPolicy,...zt});return q.jsxs("div",{className:"volter-account","data-testid":"account-document",children:[q.jsx("h1",{className:"volter-sr-only",children:"Account"}),q.jsxs("div",{className:"volter-account-stack",children:[q.jsxs("header",{className:"volter-account-identity",children:[q.jsx("span",{className:"volter-account-avatar","aria-hidden":"true",children:t.user.email.slice(0,1)}),q.jsxs("div",{className:"volter-account-identity-main",children:[q.jsxs("div",{className:"volter-account-identity-row",children:[q.jsx("h2",{className:"volter-account-identity-email",children:t.user.email}),q.jsx(Gcn,{plan:t.plan})]}),q.jsx("p",{className:"volter-account-identity-note",children:t.accountEnvironment==="development-twin"?"Clerk + Polar Twin development account":t.backend==="mock"?"Isolated test account":"Volter account"})]}),q.jsx(Ms,{variant:"ghost",className:"volter-account-signout",disabled:D,onClick:()=>void be(gwr),children:"Sign out"})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsxs("div",{className:"volter-account-card-head",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Credits"}),t.plan.id!=="free"&&t.plan.status==="cancelling"&&q.jsx(Ms,{size:"compact",disabled:D,onClick:()=>void be(()=>mht("resume")),children:"Resume subscription"})]}),!Pt&&q.jsx(hB,{children:"This account has not been admitted to Volter managed services. Signing up or paying does not grant provider access; contact the Volter team for admission."}),m&&q.jsxs("div",{className:"volter-account-card-footer",children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Subscription tier"}),q.jsx(Iw,{value:S,disabled:D||!Pt,onChange:zt=>k(zt.target.value),children:Object.keys(m.plans).map(zt=>{const ft=m.plans[zt],tr=ft.monthlyPriceUsd;return q.jsxs("option",{value:zt,disabled:zt==="free",children:[ft.name,tr!==void 0?` · $${tr}/month`:""," ·"," ",ft.includedCredits.toLocaleString()," credits",zt===t.plan.id?" · current":""]},zt)})})]}),q.jsxs(Ms,{variant:"primary",size:"compact",disabled:D||!Pt||S===t.plan.id||S==="free",onClick:()=>void be(async()=>{const zt=await Ewr(S);zt.checkoutUrl?window.open(zt.checkoutUrl,"_blank","noopener,noreferrer"):G(zt.mock?`Mock ${m.plans[S].name} upgrade completed. No payment occurred.`:`Subscription changed to ${m.plans[S].name}.`)}),children:["Choose ",m.plans[S].name]})]}),q.jsxs("div",{className:"volter-account-credit-figure",children:[q.jsx("span",{className:"volter-account-credit-number",children:t.credits.remaining.toLocaleString()}),q.jsx("span",{className:"volter-account-credit-unit",children:"credits remaining"})]}),q.jsxs("div",{className:"volter-meter",role:"progressbar","aria-label":"Credits used","aria-valuenow":Math.round(we),"aria-valuemin":0,"aria-valuemax":100,"data-state":bt?"over":void 0,children:[q.jsx("span",{className:"volter-meter-fill",style:{width:`${we}%`}}),qe>0&&q.jsx("span",{className:"volter-meter-fill","data-part":"reserved",style:{left:`${we}%`,width:`${qe}%`}})]}),q.jsxs("p",{className:"volter-account-cycle-line",children:[t.credits.used.toLocaleString()," of ",X.toLocaleString()," used this cycle",t.credits.resetsAt&&q.jsxs(q.Fragment,{children:[" · resets ",new Date(t.credits.resetsAt).toLocaleDateString()]}),bt&&q.jsx("span",{className:"volter-account-cycle-over",children:" · over allowance"})]}),q.jsxs("div",{className:"volter-account-legend","data-state":bt?"over":void 0,children:[q.jsxs("span",{className:"volter-account-legend-item","data-part":"included",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.included.toLocaleString()," included"]}),q.jsxs("span",{className:"volter-account-legend-item","data-part":"used",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.used.toLocaleString()," used"]}),q.jsxs("span",{className:"volter-account-legend-item","data-part":"reserved",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.reserved.toLocaleString()," reserved"]}),q.jsxs("span",{className:"volter-account-legend-item","data-part":"purchased",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.purchased.toLocaleString()," purchased"]})]}),t.credits.purchasedExpiresAt&&q.jsxs("p",{className:"volter-account-help volter-account-expiry",children:["Purchased credits expire"," ",new Date(t.credits.purchasedExpiresAt).toLocaleDateString(),"."]}),q.jsxs("div",{className:"volter-account-card-footer",children:[m&&A&&m.creditPacks[A]&&q.jsxs(q.Fragment,{children:[q.jsx(Iw,{"aria-label":"Credit pack",value:A,disabled:D||!Pt,onChange:zt=>F(zt.target.value),children:Object.entries(m.creditPacks).map(([zt,ft])=>q.jsxs("option",{value:zt,children:[ft.name," · ",ft.credits.toLocaleString()," credits"]},zt))}),q.jsx(Ms,{size:"compact",disabled:D||!Pt,onClick:()=>void be(async()=>{const zt=m.creditPacks[A],ft=await kwr(A);ft.checkoutUrl?window.open(ft.checkoutUrl,"_blank","noopener,noreferrer"):G(`Added ${zt?.credits.toLocaleString()??""} mock credits. No payment occurred.`)}),children:"Buy credits"})]}),q.jsx(Ms,{size:"compact",variant:"ghost",disabled:D,onClick:()=>void be(async()=>{const zt=await Pwr();zt.mock?G("Mock billing portal: no payment page was opened."):window.open(zt.url,"_blank","noopener,noreferrer")}),children:"Billing and invoices"}),t.plan.id!=="free"&&t.plan.status==="active"&&q.jsx(Ms,{size:"compact",variant:"ghost",className:"volter-account-quiet-danger",disabled:D,onClick:()=>void be(()=>mht("cancel")),children:"Cancel at renewal"})]})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Generation routing"}),q.jsx("p",{className:"volter-account-card-sub",children:"Billing preference for AI usage. Provider libraries apply it automatically; requests show the resolved account and cost before submission."}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Preferred route"}),q.jsxs(Iw,{value:t.preferredRoute,onChange:zt=>void be(()=>bwr(zt.target.value)),children:[t.accountEnvironment==="test-mock"&&q.jsx("option",{value:"mock",children:"Mock · free and local"}),q.jsx("option",{value:"auto",children:"Automatic · saved key or Volter account"}),q.jsxs("option",{value:"managed",disabled:!t.routes.managed,children:["Managed · Volter credits",t.routes.managed?"":" (unavailable)"]}),q.jsxs("option",{value:"byok",disabled:!t.routes.byok,children:["BYOK · provider dollars",t.routes.byok?"":" (no key found)"]})]})]})]}),q.jsx(kwt,{busy:D,run:be}),q.jsx(Ewt,{busy:D,run:be}),(t.alerts?.length??0)>0&&q.jsxs("section",{className:"volter-account-card",children:[q.jsxs("div",{className:"volter-account-card-head",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Account alerts"}),t.alerts?.some(zt=>!zt.readAt)&&q.jsx(Ms,{size:"compact",variant:"ghost",disabled:D,onClick:()=>void be(vwr),children:"Mark read"})]}),q.jsx("div",{className:"volter-account-usage",children:t.alerts?.map(zt=>q.jsxs("div",{className:"volter-account-usage-row",children:[q.jsxs("span",{children:[q.jsx("strong",{children:zt.readAt?"Notice":"New"}),q.jsx("small",{children:zt.message})]}),q.jsx("span",{children:new Date(zt.createdAt).toLocaleDateString()})]},zt.id))})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Spend controls"}),q.jsxs("p",{className:"volter-account-card-sub",children:["Alerts at ",t.spendPolicy.alertThresholds.join("%, "),"% of the available allowance."]}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:t.spendPolicy.overageEnabled,onChange:zt=>void be(()=>Wt({overageEnabled:zt.target.checked,monthlyLimitCredits:zt.target.checked&&t.spendPolicy.monthlyLimitCredits===0?1e3:t.spendPolicy.monthlyLimitCredits}))}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Allow paid overage"}),q.jsx("small",{children:"Off by default. Managed requests stop before provider submission."})]})]}),q.jsx("div",{className:"volter-account-limit-field",children:q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Monthly overage hard limit"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.monthlyLimitCredits,disabled:!t.spendPolicy.overageEnabled,onBlur:zt=>void be(()=>Wt({monthlyLimitCredits:Number(zt.target.value)}))},t.spendPolicy.monthlyLimitCredits),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]})}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:t.spendPolicy.autoReload?.enabled===!0,onChange:zt=>void be(()=>Wt({autoReload:{enabled:zt.target.checked,whenRemainingBelow:t.spendPolicy.autoReload?.whenRemainingBelow??100,reloadTo:t.spendPolicy.autoReload?.reloadTo??500,monthlyLimitCredits:t.spendPolicy.autoReload?.monthlyLimitCredits??2e3}}))}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Automatically reload credits"}),q.jsx("small",{children:"Optional, independently capped, and never enabled by checkout."})]})]}),t.spendPolicy.autoReload?.enabled&&q.jsxs("div",{className:"volter-account-policy-fields",children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Reload below"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.autoReload.whenRemainingBelow,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,whenRemainingBelow:Number(zt.target.value)}}))},t.spendPolicy.autoReload.whenRemainingBelow),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Reload balance to"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:1,defaultValue:t.spendPolicy.autoReload.reloadTo,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,reloadTo:Number(zt.target.value)}}))},t.spendPolicy.autoReload.reloadTo),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Monthly reload cap"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.autoReload.monthlyLimitCredits,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,monthlyLimitCredits:Number(zt.target.value)}}))},t.spendPolicy.autoReload.monthlyLimitCredits),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]})]})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Current-cycle usage"}),c.length===0?q.jsx("p",{className:"volter-account-help",children:"No managed credit usage has been settled in this account."}):q.jsx("div",{className:"volter-account-usage",children:c.map(zt=>q.jsxs("div",{className:"volter-account-usage-row",children:[q.jsxs("span",{children:[zt.kind," · ",zt.provider," · ",zt.operation??"managed operation"]}),q.jsxs("strong",{children:[zt.credits.toLocaleString()," credits"]})]},zt.id))})]}),($||Tpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??Tpe()})]})]})}function Xcn(t,n,s){const d=navigator.platform.includes("Mac")?"⌘":"Ctrl+",m=Y0(t),g=[...t.selectedEntityIds],S=g[0],k=S?m.hierarchy.node(S)?.parentId??null:null,A=g.length>0&&!!m.structure?.copy&&(m.structure.canCopy?.(g)??!0),F=A&&!!m.structure?.cut,D=!!m.structure?.paste&&(m.structure.canPaste?.(k)??!0),J=[...F?[{id:"editor.cut",label:"Cut",category:"action",shortcut:Vv("edit.cut"),execute:()=>UVe(t)}]:[],...A?[{id:"editor.copy",label:"Copy",category:"action",shortcut:Vv("edit.copy"),execute:()=>VVe(t)}]:[],...D?[{id:"editor.paste",label:"Paste",category:"action",shortcut:Vv("edit.paste"),execute:()=>JVe(t)}]:[]];return[{id:"account.open",label:"Account and Provider Connections",category:"action",execute:()=>{GMt()}},{id:"editor.undo",label:s?.undoLabel?`Undo ${s.undoLabel}`:"Undo",category:"action",shortcut:Vv("edit.undo"),execute:async()=>{await n.undo()}},{id:"editor.redo",label:s?.redoLabel?`Redo ${s.redoLabel}`:"Redo",category:"action",shortcut:Vv("edit.redo"),execute:async()=>{await n.redo()}},...J,{id:"editor.duplicate",label:"Duplicate",category:"action",shortcut:Vv("edit.duplicate"),execute:()=>bve(t)},{id:"editor.delete",label:"Delete Selected",category:"action",shortcut:Vv("edit.delete"),execute:()=>Sve(t)},{id:"editor.select-all",label:"Select All",category:"action",shortcut:Vv("edit.selectAll"),execute:()=>MRt(t)},{id:"editor.deselect",label:"Deselect All",category:"action",shortcut:Vv("edit.deselectAll")??Vv("edit.exitScopeOrDeselect"),execute:()=>$ze(t,[])},{id:"toggle.console",label:"Toggle Console",category:"action",shortcut:Vv("view.toggleConsole"),execute:()=>{pve()}},{id:"view.focusMode",label:"Toggle Focus Mode",category:"action",shortcut:Vv("view.focusMode"),execute:()=>{JBe()}},...DN().map($=>({id:`workspace.${$.id}`,label:`Workspace: ${$.title}`,category:"action",execute:()=>{Uk($.id)&&a2($.id)}})),{id:"workspace.cycleNext",label:"Next Workspace",category:"action",shortcut:Vv("workspace.cycleNext"),execute:()=>{Che(1)}},{id:"workspace.cyclePrevious",label:"Previous Workspace",category:"action",shortcut:Vv("workspace.cyclePrevious"),execute:()=>{Che(-1)}},...tDt().map($=>({id:`keymap.${$.id}`,label:`Keymap: ${$.title}`,category:"action",execute:()=>{ZEr($.id)}})),...OR().map($=>({id:`view.workspaceStyle.${$.id}`,label:`Workspace Style: ${$.title}`,category:"action",execute:()=>{r$e($.id)}})),{id:"view.undoHistory",label:"Undo History",category:"action",execute:()=>{WVe()}},{id:"view.lightExplorer",label:"Open Light Explorer",category:"action",execute:()=>vC(iee.lightExplorer.id)},...Object.values(O_).filter($=>$.id!==O_.open.id).map($=>({id:$.id,label:`${$.id.replace("project-asset.","").split("-").map(G=>G[0]?.toUpperCase()+G.slice(1)).join(" ")} Project Asset`,category:"asset",...$.shortcut?{shortcut:$.shortcut.replace("Mod",d)}:{},execute:()=>{window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:$.id}}))}})),{id:"view.asset-library",label:"Asset Library",category:"action",execute:()=>{UBe("asset-library")}}]}function Ycn(t){return Y0e(t).filter(n=>n.id!==FFe).map(n=>({id:`entity:${n.id}`,label:n.name,category:"entity",execute:()=>{$ze(t,[n.id]),zVe("viewport.frameSelection")}}))}function Zcn(){return ive().filter(t=>t.category==="canvas").map(({descriptor:t})=>({id:`board:${t.id}`,label:`Open ${t.title}`,category:"action",execute:()=>void xN(t.id)}))}function cN(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function Yge(t){const n=t.type;if(typeof n=="string")return n;if(Array.isArray(n))return n.find(s=>s!=="null")}function KMt(t){const n=cN(t);if("default"in n)return structuredClone(n.default);const s=Yge(n);if(s==="object"||n.properties){const c={};for(const[d,m]of Object.entries(cN(n.properties))){const g=cN(m);("default"in g||Array.isArray(n.required)&&n.required.includes(d))&&(c[d]=KMt(g))}return c}return s==="array"?[]:s==="boolean"?!1:s==="number"||s==="integer"?Number(n.minimum??0):""}function Aje(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]/g," ").replace(/^./,n=>n.toUpperCase())}function Qcn({name:t,schema:n,value:s,required:c,onChange:d}){const m=Yge(n),g=typeof n.description=="string"?n.description:null,S=Array.isArray(n.enum)?n.enum:null,k=`tool-field:${t}`;if(m==="boolean")return q.jsxs("label",{style:{...VY,gridTemplateColumns:"18px minmax(0, 1fr)"},children:[q.jsx(TD,{id:k,checked:s===!0,onChange:F=>d(F.target.checked)}),q.jsxs("span",{children:[q.jsx("span",{style:Awt,children:Aje(t)}),g&&q.jsx("span",{style:MO,children:g})]})]});const A=q.jsxs("span",{style:Awt,children:[Aje(t)," ",!c&&q.jsx("span",{style:tln,children:"optional"})]});return S?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsxs(Iw,{id:k,value:String(s??""),onChange:F=>d(F.target.value),style:d_e,children:[!c&&q.jsx("option",{value:"",children:"Not set"}),S.map(F=>q.jsx("option",{value:String(F),children:String(F)},String(F)))]}),g&&q.jsx("span",{style:MO,children:g})]}):m==="number"||m==="integer"?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,type:"number",value:typeof s=="number"?s:"",min:typeof n.minimum=="number"?n.minimum:void 0,max:typeof n.maximum=="number"?n.maximum:void 0,step:m==="integer"?1:"any",onChange:F=>d(F.target.value===""?void 0:Number(F.target.value)),style:d_e}),g&&q.jsx("span",{style:MO,children:g})]}):m==="array"&&Yge(cN(n.items))==="string"?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,value:Array.isArray(s)?s.join(", "):"",onChange:F=>d(F.target.value.split(",").map(D=>D.trim()).filter(Boolean)),placeholder:"Comma-separated values",style:d_e}),g&&q.jsx("span",{style:MO,children:g})]}):q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,value:typeof s=="string"?s:"",onChange:F=>d(F.target.value||(c?"":void 0)),style:d_e}),g&&q.jsx("span",{style:MO,children:g})]})}function XMt({schema:t,value:n,onChange:s,path:c=""}){const d=cN(t.properties),m=new Set(Array.isArray(t.required)?t.required:[]);return q.jsx("div",{style:{display:"grid",gap:14},children:Object.entries(d).map(([g,S])=>{const k=cN(S),A=Yge(k),F=D=>{const J={...n};D===void 0?delete J[g]:J[g]=D,s(J)};return A==="object"||k.properties?q.jsxs("fieldset",{style:rln,children:[q.jsx("legend",{style:nln,children:Aje(g)}),typeof k.description=="string"&&q.jsx("p",{style:{...MO,marginTop:0},children:k.description}),q.jsx(XMt,{schema:k,value:cN(n[g]),onChange:F,path:c?`${c}.${g}`:g})]},g):q.jsx(Qcn,{name:c?`${c}.${g}`:g,schema:k,value:n[g],required:m.has(g),onChange:F},g)})})}function eln({schema:t,value:n,onChange:s}){const c=cN(t);return c.properties?q.jsx(XMt,{schema:c,value:n,onChange:s}):q.jsx("div",{style:MO,children:"This schema has no form-compatible fields."})}const VY={display:"grid",gap:5},Awt={color:Zf[1],fontWeight:600,fontSize:"var(--volter-font-sm)"},tln={color:Zf[3],fontWeight:400,marginLeft:5},MO={display:"block",color:Zf[2],fontSize:"var(--volter-font-sm)",lineHeight:1.4},d_e={boxSizing:"border-box",width:"100%"},rln={margin:0,padding:14,border:"1px solid var(--volter-boundary-default)",borderRadius:"var(--volter-radius-md)"},nln={padding:"0 6px",color:Zf[1],fontWeight:600},Zge="project-tools",Dje="project-tool:";function iln(t){return`${Dje}${t}`}function wve(){ND({id:Zge,title:"Project Tools",kind:"project-tool",workspaceRole:"workspace-reference",Content:YMt,closeable:!0,presentation:()=>({kind:"workspace",id:Zge}),persist:()=>({catalog:!0})})}function Tve(t){const n=N$().tools.find(c=>c.name===t);if(!n)return!1;const s=kC().filter(c=>c.tool?.name===t);return s.length===1?tA(s[0].id):(ND({id:iln(t),title:n.summary||n.name,kind:"project-tool",workspaceRole:"workspace-reference",provenance:{sourcePath:n.sourcePath,origin:n.name},Content:YMt,closeable:!0,presentation:()=>({kind:"project-tool",name:t}),persist:()=>({name:t})}),!0)}AN({id:"workspace",owner:"project-tool-documents",open:(t,n)=>n.id!==Zge?null:(wve(),Zge)});AN({id:"project-tool",owner:"project-tool-documents",open:(t,n)=>Tve(n.name)?Pp():null,settle:async t=>{if(await HZ().catch(()=>{}),!await CC(()=>N$().tools.some(n=>n.name===t.name)))throw new Error(`Project tool is not registered: ${t.name}`)}});Tee({kind:"project-tool",owner:"project-tool-documents",prepare:()=>HZ().then(()=>{},()=>{}),restore:({state:t})=>{const n=t;return n?.catalog===!0?(wve(),!0):typeof n?.name=="string"&&Tve(n.name)}});function oln(){return[{id:"project-tools:open",label:"Open Project Tools",category:"action",execute:()=>wve()},...N$().tools.map(t=>({id:`project-tool:${t.name}`,label:`Run: ${t.summary||t.name}`,category:"action",execute:()=>void Tve(t.name)}))]}function Dwt({value:t}){return q.jsx("pre",{style:lln,children:JSON.stringify(t,null,2)})}function YMt({documentId:t}){Ye.useSyncExternalStore(fMt,san),Ye.useSyncExternalStore(u2,rA);const n=N$(),s=t.startsWith(Dje)?t.slice(Dje.length):null,c=s?n.tools.find(d=>d.name===s):null;return s?c?q.jsx(sln,{tool:c},c.name):q.jsx("div",{style:Pje,children:"This tool is no longer available."}):q.jsxs("div",{style:Pje,"data-testid":"project-tools-catalog",children:[q.jsx("h2",{style:ZMt,children:"Project Tools"}),q.jsxs("p",{style:{...Ije,margin:"0 0 18px",maxWidth:720,lineHeight:1.5},children:["Explicitly registered in ",q.jsx("code",{children:"package.json#volter.tools"}),". Each tool is an ordinary project function; a registration may pair it with optional editor contributions."]}),q.jsx("div",{style:{display:"grid",gap:8},children:n.tools.map(d=>q.jsxs(Ms,{variant:"ghost",className:"volter-project-tool-card",onClick:()=>Tve(d.name),"data-testid":`project-command-card:${d.name}`,children:[q.jsxs("span",{style:QMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:d.summary}),q.jsx("span",{style:ejt,children:"Open"})]}),q.jsx("code",{style:{color:Zf[2],fontSize:"var(--volter-font-sm)"},children:d.name}),q.jsx("span",{style:aln,children:q.jsxs("span",{children:[d.host," · ",d.permission.risk," · ",d.sourcePath]})})]},d.name))}),n.tools.length===0&&n.loadErrors.length===0&&q.jsx("div",{style:Ije,children:"No project tools registered."}),n.loadErrors.map(d=>q.jsxs("div",{style:Qge,children:[d.sourcePath,": ",d.message]},`${d.sourcePath}:${d.message}`)),l$e().map(d=>q.jsxs("div",{style:Qge,children:[d.entryPath,": ",d.error]},`${d.entryPath}:${d.error}`))]})}function sln({tool:t}){const n=kC().filter(se=>se.tool?.name===t.name),s=KMt(t.inputSchema),[c,d]=Ye.useState(s&&typeof s=="object"&&!Array.isArray(s)?s:{}),[m,g]=Ye.useState(()=>JSON.stringify(c,null,2)),[S,k]=Ye.useState(null),[A,F]=Ye.useState(!1),[D,J]=Ye.useState(null),$=t.host==="node",G=async()=>{if(t.permission.risk==="read"||window.confirm(`${t.permission.summary}
|
|
1398
1398
|
|
|
1399
|
-
Run ${t.name}?`)){F(!0);try{k(await aan(t.name,c,{confirm:!0}))}catch(pe){k({ok:!1,error:{code:"REQUEST_FAILED",message:String(pe)}})}finally{F(!1)}}};return q.jsxs("div",{style:Pje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:ZMt,children:t.summary}),q.jsx("code",{style:{color:Zf[2]},children:t.name}),q.jsx("p",{style:{color:Zf[2]},children:t.description}),q.jsxs("div",{style:Ije,children:[t.host," · ",t.permission.risk," · ",t.sourcePath]}),n.length>0&&q.jsxs("section",{style:{marginTop:18,maxWidth:760},children:[q.jsx("h3",{style:{margin:"0 0 8px",fontSize:13},children:"Presentations"}),q.jsx("div",{style:{display:"grid",gap:8},children:n.map(se=>q.jsx(Ms,{variant:"ghost",className:"volter-project-tool-card",onClick:()=>tA(se.id),children:q.jsxs("span",{style:QMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:ejt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Qge,children:"This runner supports Node-hosted tools. Import the underlying function directly in browser or runtime code."}),q.jsxs("details",{open:n.length===0,style:{marginTop:18,maxWidth:760},children:[q.jsx("summary",{style:{cursor:"pointer",color:Zf[2],fontSize:12},children:n.length>0?"Advanced · invoke native schema":"Input"}),q.jsx("section",{style:{marginTop:12},children:q.jsx(eln,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Qge,children:D}),q.jsx(Ms,{variant:"primary",disabled:!$||A||D!==null,"aria-busy":A,onClick:()=>void G(),style:{marginTop:16},children:A?"Running…":"Run tool"}),q.jsxs("details",{style:{marginTop:16},children:[q.jsx("summary",{style:AOe,children:"Advanced JSON"}),q.jsx(kBe,{id:`tool-input:${t.name}`,value:m,onChange:se=>{const pe=se.target.value;g(pe);try{const ue=JSON.parse(pe);if(!ue||typeof ue!="object"||Array.isArray(ue))throw new Error("Input must be a JSON object.");d(ue),J(null)}catch(ue){J(ue instanceof Error?ue.message:String(ue))}},rows:10,"data-variant":"code",style:cln}),q.jsxs("details",{children:[q.jsx("summary",{style:AOe,children:"Input schema"}),q.jsx(Dwt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:AOe,children:"Result"}),q.jsx(Dwt,{value:S})]})]})}const Pje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},ZMt={margin:"0 0 6px",fontSize:20},Ije={color:Zf[2],fontSize:"var(--volter-font-sm)"},AOe={display:"block",margin:"14px 0 6px",color:Zf[1]},QMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},ejt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},aln={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Qge={marginTop:10,color:E_e,whiteSpace:"pre-wrap"},cln={width:"100%",boxSizing:"border-box",resize:"vertical"},lln={overflow:"auto",padding:10,background:CBe.inset,border:`1px solid ${ahe[1]}`,borderRadius:aQ.sm,color:Zf[2]};function uln(t,n,s){const c=Xcn(t,n,s),d=[...oln(),...Zcn(),...kkr()],m=Ycn(t),g=vCt().map(S=>({id:S.id,label:S.label,category:"action",shortcut:S.shortcut?Vv(S.shortcut):void 0,execute:S.execute}));return[...c,...d,...g,...pln(),...m]}const fln=["view","window","debug","tools","help"],dln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function pln(){return fln.flatMap(t=>jme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${dln[t]}: ${s}`;return{id:n.id,label:c,category:"action",menu:{id:t,label:s},execute:()=>{if(n.disabled?.({})){i0(`${c} is not available right now.`);return}return n.execute({})}}}))}function _ln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function mln(){const t=Yv(),n=mve(),s=nMt(),c=Ye.useSyncExternalStore(vLe,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(FDt,Phe,Phe),g=Ye.useSyncExternalStore(Kye,mhe,mhe),S=Ye.useMemo(()=>uln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=_ln(S);A!==k.current&&(k.current=A,Oxt(S.map(F=>({id:F.id,label:F.label,category:F.category,run:F.execute,...F.menu?{menu:F.menu}:{}}))))},[S]),Ye.useEffect(()=>()=>{k.current=null,Oxt([])},[]),null}let tjt=[];const Nje=new Set;function hln(t){return Nje.add(t),()=>Nje.delete(t)}function gln(){return tjt}function yln(){for(const t of Nje)t()}function vln(t){return`Starter asset "${t.key}" (pack "${t.pack}") did not materialize into ${t.dest}: ${t.reason} Nothing was written for it — features that read that file degrade (a missing clips GLB leaves the character standing without locomotion clips). Use Retry once the cause is fixed.`}function bln(t){const n=t.failed.map(s=>({key:s.entry.key,dest:s.entry.dest,pack:s.entry.pack,reason:s.reason}));for(const s of n)Qs.error(vln(s),"assets");tjt=n,yln()}async function Sln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-
|
|
1399
|
+
Run ${t.name}?`)){F(!0);try{k(await aan(t.name,c,{confirm:!0}))}catch(pe){k({ok:!1,error:{code:"REQUEST_FAILED",message:String(pe)}})}finally{F(!1)}}};return q.jsxs("div",{style:Pje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:ZMt,children:t.summary}),q.jsx("code",{style:{color:Zf[2]},children:t.name}),q.jsx("p",{style:{color:Zf[2]},children:t.description}),q.jsxs("div",{style:Ije,children:[t.host," · ",t.permission.risk," · ",t.sourcePath]}),n.length>0&&q.jsxs("section",{style:{marginTop:18,maxWidth:760},children:[q.jsx("h3",{style:{margin:"0 0 8px",fontSize:13},children:"Presentations"}),q.jsx("div",{style:{display:"grid",gap:8},children:n.map(se=>q.jsx(Ms,{variant:"ghost",className:"volter-project-tool-card",onClick:()=>tA(se.id),children:q.jsxs("span",{style:QMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:ejt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Qge,children:"This runner supports Node-hosted tools. Import the underlying function directly in browser or runtime code."}),q.jsxs("details",{open:n.length===0,style:{marginTop:18,maxWidth:760},children:[q.jsx("summary",{style:{cursor:"pointer",color:Zf[2],fontSize:12},children:n.length>0?"Advanced · invoke native schema":"Input"}),q.jsx("section",{style:{marginTop:12},children:q.jsx(eln,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Qge,children:D}),q.jsx(Ms,{variant:"primary",disabled:!$||A||D!==null,"aria-busy":A,onClick:()=>void G(),style:{marginTop:16},children:A?"Running…":"Run tool"}),q.jsxs("details",{style:{marginTop:16},children:[q.jsx("summary",{style:AOe,children:"Advanced JSON"}),q.jsx(kBe,{id:`tool-input:${t.name}`,value:m,onChange:se=>{const pe=se.target.value;g(pe);try{const ue=JSON.parse(pe);if(!ue||typeof ue!="object"||Array.isArray(ue))throw new Error("Input must be a JSON object.");d(ue),J(null)}catch(ue){J(ue instanceof Error?ue.message:String(ue))}},rows:10,"data-variant":"code",style:cln}),q.jsxs("details",{children:[q.jsx("summary",{style:AOe,children:"Input schema"}),q.jsx(Dwt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:AOe,children:"Result"}),q.jsx(Dwt,{value:S})]})]})}const Pje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},ZMt={margin:"0 0 6px",fontSize:20},Ije={color:Zf[2],fontSize:"var(--volter-font-sm)"},AOe={display:"block",margin:"14px 0 6px",color:Zf[1]},QMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},ejt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},aln={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Qge={marginTop:10,color:E_e,whiteSpace:"pre-wrap"},cln={width:"100%",boxSizing:"border-box",resize:"vertical"},lln={overflow:"auto",padding:10,background:CBe.inset,border:`1px solid ${ahe[1]}`,borderRadius:aQ.sm,color:Zf[2]};function uln(t,n,s){const c=Xcn(t,n,s),d=[...oln(),...Zcn(),...kkr()],m=Ycn(t),g=vCt().map(S=>({id:S.id,label:S.label,category:"action",shortcut:S.shortcut?Vv(S.shortcut):void 0,execute:S.execute}));return[...c,...d,...g,...pln(),...m]}const fln=["view","window","debug","tools","help"],dln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function pln(){return fln.flatMap(t=>jme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${dln[t]}: ${s}`;return{id:n.id,label:c,category:"action",menu:{id:t,label:s},execute:()=>{if(n.disabled?.({})){i0(`${c} is not available right now.`);return}return n.execute({})}}}))}function _ln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function mln(){const t=Yv(),n=mve(),s=nMt(),c=Ye.useSyncExternalStore(vLe,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(FDt,Phe,Phe),g=Ye.useSyncExternalStore(Kye,mhe,mhe),S=Ye.useMemo(()=>uln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=_ln(S);A!==k.current&&(k.current=A,Oxt(S.map(F=>({id:F.id,label:F.label,category:F.category,run:F.execute,...F.menu?{menu:F.menu}:{}}))))},[S]),Ye.useEffect(()=>()=>{k.current=null,Oxt([])},[]),null}let tjt=[];const Nje=new Set;function hln(t){return Nje.add(t),()=>Nje.delete(t)}function gln(){return tjt}function yln(){for(const t of Nje)t()}function vln(t){return`Starter asset "${t.key}" (pack "${t.pack}") did not materialize into ${t.dest}: ${t.reason} Nothing was written for it — features that read that file degrade (a missing clips GLB leaves the character standing without locomotion clips). Use Retry once the cause is fixed.`}function bln(t){const n=t.failed.map(s=>({key:s.entry.key,dest:s.entry.dest,pack:s.entry.pack,reason:s.reason}));for(const s of n)Qs.error(vln(s),"assets");tjt=n,yln()}async function Sln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-Bod7CEMF.js");return{materializeDeclaredAssetPacks:c}},__vite__mapDeps([265,105,3,2,4,1,20,21,22,23])),s=await n(t);bln(s)}catch(n){Qs.error(`Retrying asset materialization failed before any entry was attempted: ${n instanceof Error?n.message:String(n)}`,"assets")}}let rjt={kind:"quiet"},njt=0;const Oje=new Set;function xln(){return rjt}function wln(t){rjt=t,njt+=1;for(const n of Oje)n()}function Tln(t){return Oje.add(t),()=>Oje.delete(t)}function Pwt(){return njt}const Cln=()=>()=>{},Iwt=()=>null;function Eln(){const t=Yv(),n=Jsn();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Ye.useSyncExternalStore(n?.subscribe??Cln,n?.getSnapshot??Iwt,n?.getSnapshot??Iwt);const s=FRt(t);if(s==="saved")return null;const c=Lze(t),d=s==="failed",m=d?WYr(t):null,g=d?{label:"Save failed",title:m?`Save failed: ${m} — click to open Console`:"Save failed — click to open Console"}:{label:"Unsaved",title:"Unsaved changes — click to save (Cmd/Ctrl+S)"},S=c?`${g.title} — ${c}`:g.title;return q.jsxs(Ms,{type:"button","data-testid":"save-status","data-save-state":s,variant:"ghost",size:"compact",className:"volter-save-status",onClick:()=>d?_ve():void jRt(t),title:S,children:[q.jsx("span",{className:"volter-save-status-dot"}),g.label]})}function kln(){Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const t=Qs.counts,n=[{id:"info",icon:R$,label:"message",count:t.info},{id:"warn",icon:rCt,label:"warning",count:t.warn},{id:"error",icon:zTt,label:"error",count:t.error}];return q.jsx("span",{className:"volter-console-status-counts","data-testid":"status-console-counts",children:n.map(s=>q.jsxs(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action volter-console-status-count","data-testid":`status-console-${s.id}`,"data-console-level":s.id,"data-has-count":s.count>0?!0:void 0,"data-has-errors":s.id==="error"&&s.count>0?!0:void 0,onClick:()=>_ve(),title:`${s.count} console ${s.label}${s.count===1?"":"s"} — open Console`,children:[q.jsx(dc,{icon:s.icon,size:"xs"}),s.count]},s.id))})}function Aln(t){return[...t.map(s=>`"${s.worldId}" (${s.kind} / ${s.identity}) — ${s.message}`),"See the Console for the full trace."].join(`
|
|
1400
1400
|
`)}function Dln(){const t=Ye.useSyncExternalStore(RRt,VQ);return t.length===0?null:q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-mount-failure","data-status-tone":"danger",onClick:()=>_ve(),title:Aln(t),children:t.length===1?"1 world failed to mount":`${t.length} worlds failed to mount`})}function Pln(t){return[...t.map(s=>`${s.dest} — ${s.reason}`),"Nothing was written for them, so features that read those files degrade.","See the Console (subsystem `assets`) for the full lines."].join(`
|
|
1401
|
-
`)}function Iln(){const t=Ye.useSyncExternalStore(hln,gln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),Sln(gR()).finally(()=>s(!1))},[]);return t.length===0?null:q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-asset-materialization","data-status-tone":"danger",onClick:()=>_ve(),title:Pln(t),children:t.length===1?"1 starter asset did not download":`${t.length} starter assets did not download`}),q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-asset-materialization-retry",disabled:n,onClick:c,children:n?"Retrying…":"Retry"})]})}function Nln(){const t=nkr(),n=Yv();if(Ye.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),!t)return null;const s=n.playState,c={stopped:{label:"Play stopped",tone:void 0},playing:{label:"Playing",tone:"success"},paused:{label:"Paused",tone:"warning"}}[s];return q.jsx("span",{className:"volter-status-copy","data-testid":"status-play-state","data-play-state":s,"data-status-tone":c.tone,children:c.label})}function Oln(){Ye.useSyncExternalStore(Tln,Pwt,Pwt);const t=xln();if(t.kind==="quiet")return null;const n=t.kind==="void"?"error":"warning",s=t.kind==="void"?t.reason==="taken-over"?"Editor yielded":"Editor disconnected":t.subject==="busy"?"Editor slow":"Editor stale";return q.jsxs(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-editor-lease","data-lease-state":t.kind,"data-tone":n,onClick:()=>window.location.reload(),title:t.kind==="void"&&t.reloadOffered?"The editor is served here again — reload":"The editor server is not answering — reload once it is served here again",children:[q.jsx(dc,{icon:n==="error"?Kk.status.error:Kk.status.warning})," ",s]})}function Rln(){Ye.useSyncExternalStore(Xye,wkr);const t=bC().filter(n=>n.section==="project");return t.length===0?null:q.jsx(q.Fragment,{children:t.map(n=>q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":`status-project-utility-${n.id}`,onClick:()=>vC(n.id),title:`Open the ${n.title} drawer tab (this project's own face)`,children:n.title},n.id))})}const Fln=Mye();function Mln(){Fln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Oln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:Eln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:kln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:Dln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Iln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Nln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:Rln}))})}const jln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-5lJjd2ul.js"),__vite__mapDeps([266,3,2,4,267,92,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Lln(){const t=Yv(),n=rMt(),s=mve();return Ye.use(Usn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),pcn(t),Ye.useEffect(()=>Mln(),[]),Ye.useEffect(()=>Icn(),[]),Ye.useEffect(()=>Esn(n),[n]),Ye.useEffect(()=>ccn(),[]),Ye.useEffect(()=>Ekr(),[t]),Ye.useEffect(()=>Ntn(),[t]),Ye.useEffect(()=>K4r(n),[n]),Ye.useEffect(()=>scn(t,s),[t,s]),Ye.useEffect(()=>PYr(t),[t]),Ye.useEffect(()=>hen(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),c=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:c}))),[]),q.jsxs(q.Fragment,{children:[q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(jln,{store:t})}),q.jsx(Jcn,{}),q.jsx(dcn,{}),q.jsx(mln,{})]})}const Bln=3,$ln=1e4,qln=4e3;function zln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Nwt(t,n,s,c){if(!n.ok){const d=s==="open";return{...t,lastIdentity:null,consecutiveFailures:t.consecutiveFailures+1,unbackedFailures:d?0:t.unbackedFailures+1,darkSince:d?c:t.darkSince}}return{bootIdentity:t.bootIdentity??n.identity,lastIdentity:n.identity,consecutiveFailures:0,unbackedFailures:0,darkSince:c}}function Vln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function ijt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function Uln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!ijt(g,S)?{status:"void",reason:"taken-over"}:n>=c?s>=c&&d>=m?{status:"void",reason:"server-gone"}:{status:"degraded",reason:null}:{status:"live",reason:null}}function Jln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Wln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&ijt(t,s)?"resume":Jln(t,s)?"reload":t?.project?"none":"offer-reload"}const eye="volter.editor.orphaned-tab.v1";function Hln(t){if(!t)return null;let n;try{n=JSON.parse(t)}catch{return null}if(typeof n!="object"||n===null)return null;const s=n;if(typeof s.at!="number"||!Number.isFinite(s.at)||s.reason!=="server-gone")return null;const c=typeof s.project=="string"?s.project:null;return{at:s.at,reason:s.reason,project:c}}function Gln(t){return JSON.stringify(t)}function Kln(t,n){const s=Math.max(0,Math.round((n-t.at)/1e3)),c=s<90?`${s}s ago`:s<5400?`${Math.round(s/60)}m ago`:`${Math.round(s/3600)}h ago`,d=t.project?` on ${t.project}`:"";return`A previous editor window at this address lost its server ${c}${d} and was left orphaned. If that window is still open it is a stale snapshot — nothing in it is saved and every click in it hangs on retries. Close it; this window is the live one.`}const Xln=720*60*1e3;function Yln(t,n){const s=n-t.at;return s>=0&&s<=Xln}function KVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Zln(t,n=KVe()){try{n?.setItem(eye,Gln(t))}catch{}}function Qln(t=KVe()){if(!t)return null;try{const n=Hln(t.getItem(eye));return t.removeItem(eye),n}catch{return null}}function eun(t=KVe()){try{t?.removeItem(eye)}catch{}}function tun(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function run(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>brn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function nun(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef(zln(Date.now())),c=Ye.useRef(null),d=Ye.useRef(!1);return Ye.useEffect(()=>{let m=!1,g=null;const S=()=>{g!==null&&(clearInterval(g),g=null)},k=async pe=>{c.current=pe,qRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Zln({at:Date.now(),reason:"server-gone",project:s.current.bootIdentity?.project??null}),n(d.current?{kind:"degraded",subject:"stale"}:{kind:"void",reason:pe,reloadOffered:!1}),await run()},A=(pe,ue,Ce)=>{switch(Wln(s.current.bootIdentity,pe)){case"resume":{c.current=null,uZr(),eun(),s.current=Nwt(s.current,pe,ue,Ce),n({kind:"quiet"});return}case"reload":if(d.current)return;window.location.reload();return;case"offer-reload":n(Ae=>Ae.kind==="void"&&!Ae.reloadOffered?{...Ae,reloadOffered:!0}:Ae);return;default:return}},F=async()=>{const pe=await WZr(),ue=DZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Nwt(s.current,pe,ue,Ce);const Ae=Uln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:Bln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:$ln,bootIdentity:s.current.bootIdentity,lastIdentity:s.current.lastIdentity});if(Ae.status==="void"&&Ae.reason!==null){await k(Ae.reason);return}n(Ae.status==="degraded"?{kind:"degraded",subject:"busy"}:{kind:"quiet"})};let D=!1;const J=()=>{D||m||(D=!0,F().finally(()=>{D=!1}))},$=()=>{m||(c.current===null&&(s.current=Vln(s.current,Date.now())),J())},G=()=>{document.visibilityState==="visible"&&$()};document.addEventListener("visibilitychange",G),window.addEventListener("pageshow",$);let se=null;try{const pe=jD();pe.addEventListener("error",J),pe.addEventListener("open",J),se=pe}catch{}return g=setInterval(J,qln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{wln(t);const m=tun(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){IBe(DOe);return}if(t.kind==="degraded"){s$({id:DOe,tone:"warning",sticky:!0,...t.subject==="busy"?{title:"Editor server is slow to answer.",detail:"Still connected — this window keeps working, and this clears itself when the server catches up."}:{title:"This window's editor server has stopped.",detail:"You chose to keep reading it — nothing here saves, and it will not reconnect on its own. Reload once the editor is served here again.",actions:[{label:"Reload",primary:!0,run:()=>window.location.reload()}]}});return}s$({id:DOe,tone:"error",sticky:!0,title:"Editor disconnected.",detail:t.reason==="taken-over"?`${m?`${m}'s`:"This project's"} editor is now running in another window. This one has yielded.`:`This window's editor server has stopped — nothing here is saved, and a running game has left its room. Reopen with ${DB(`edit ${m??"<project>"}`)}${m?`, or leave this window open: it reloads by itself when ${m}'s editor is served here again.`:"."}`,onDismiss:()=>{d.current||g()},actions:[...t.reloadOffered?[{label:"Reload",primary:!0,run:()=>window.location.reload()}]:[],{label:"Close window",run:()=>window.close()},{label:"Continue anyway",run:g}]})},[t]),null}const DOe="editor-lease",iun="0.5.154",oun={version:iun},sun="0.5.154",aun={version:sun},ojt=aun.version,cun=oun.version;function lun({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?lPt(t.recovery.verbs):null,[m,g]=Ye.useState(!1);return Ye.useEffect(()=>{if(!m)return;const S=window.setTimeout(()=>g(!1),1600);return()=>window.clearTimeout(S)},[m]),q.jsxs("div",{role:"alert",className:"volter-error-card volter-shell-rise",children:[q.jsx("div",{className:"volter-error-card-icon","aria-hidden":"true",children:q.jsx(dc,{icon:dee})}),q.jsxs("div",{className:"volter-error-card-body",children:[c?q.jsx("h1",{className:"volter-error-card-title",children:t.recovery?.title??"Couldn’t open this project"}):t.recovery&&q.jsx("div",{className:"volter-error-card-title",children:t.recovery.title}),t.recovery&&q.jsx("p",{className:"volter-error-card-guidance",children:t.recovery.guidance}),q.jsx("div",{className:"volter-error-card-message","data-testid":c?"project-startup-error-details":void 0,children:t.message}),d&&q.jsxs("div",{children:[c&&q.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),q.jsxs("div",{className:"volter-error-card-command",children:[q.jsx("code",{"data-testid":c?"project-startup-recovery-command":"project-screen-recovery-command",children:d}),q.jsxs(Ms,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(d),g(!0)},children:[q.jsx(dc,{icon:m?fLe:Q0r,"aria-hidden":"true"}),m?"Copied":"Copy"]})]})]}),q.jsxs("div",{className:"volter-error-card-actions",children:[s&&q.jsx(Ms,{type:"button",variant:"primary",className:"volter-shell-cta","data-testid":"retry-project-detection",onClick:s,children:"Retry"}),n&&q.jsx(Ms,{type:"button",variant:"ghost",className:"volter-shell-cta","aria-label":"Dismiss error",onClick:n,children:"Dismiss"})]})]})]})}function Rje({error:t,report:n,onRetry:s}){return q.jsx("div",{className:"volter-shell","data-testid":"project-detection-error",children:q.jsxs("div",{className:"volter-shell-container","data-view":"startup-error",children:[q.jsx("header",{className:"volter-shell-header",children:q.jsxs("span",{className:"volter-shell-brand-static",children:[q.jsx("span",{className:"volter-shell-brand-mark","aria-hidden":"true",children:q.jsx(GVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(lun,{error:t,onRetry:s,startup:!0}),n?.projectPath&&q.jsx("div",{className:"volter-shell-notice","data-testid":"project-startup-serving",children:q.jsxs("span",{children:["This editor server is serving"," ",q.jsx("code",{"data-testid":"project-startup-serving-path",children:n.projectPath})," — the project exists; the editor could not read it. Fix the file it names above and press Retry."]})}),q.jsx("footer",{className:"volter-shell-footer",children:q.jsxs("span",{className:"volter-chip","data-variant":"tag",children:["Editor v",ojt," · Engine v",cun]})})]})})}function uun({wait:t}={}){return q.jsx("main",{role:"status","aria-live":"polite","aria-label":"Opening project","data-testid":"startup-loading-screen",className:"volter-splash",children:q.jsxs("div",{className:"volter-splash-stack",children:[q.jsx("div",{"aria-hidden":"true",className:"volter-splash-logo",children:q.jsx(GVe,{size:72})}),q.jsx("div",{className:"volter-splash-title",children:mR.name}),q.jsx("div",{"aria-hidden":"true",className:"volter-splash-progress"}),t?q.jsxs(q.Fragment,{children:[q.jsx("div",{className:"volter-splash-status","data-testid":"startup-wait-status",children:`Asking the server which project it serves — ${t.seconds}s`}),q.jsx("div",{className:"volter-splash-note",children:"Still trying. The first boot of a fresh checkout can take a while, so this keeps asking until the server answers."}),t.detail?q.jsxs("div",{className:"volter-splash-note",children:["Last attempt: ",t.detail]}):null]}):q.jsx("div",{className:"volter-splash-status",children:"Opening project…"})]})})}class fun extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){Qs.error(`Editor chrome crashed while the command listener stayed attached: ${n.message}
|
|
1401
|
+
`)}function Iln(){const t=Ye.useSyncExternalStore(hln,gln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),Sln(gR()).finally(()=>s(!1))},[]);return t.length===0?null:q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-asset-materialization","data-status-tone":"danger",onClick:()=>_ve(),title:Pln(t),children:t.length===1?"1 starter asset did not download":`${t.length} starter assets did not download`}),q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-asset-materialization-retry",disabled:n,onClick:c,children:n?"Retrying…":"Retry"})]})}function Nln(){const t=nkr(),n=Yv();if(Ye.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),!t)return null;const s=n.playState,c={stopped:{label:"Play stopped",tone:void 0},playing:{label:"Playing",tone:"success"},paused:{label:"Paused",tone:"warning"}}[s];return q.jsx("span",{className:"volter-status-copy","data-testid":"status-play-state","data-play-state":s,"data-status-tone":c.tone,children:c.label})}function Oln(){Ye.useSyncExternalStore(Tln,Pwt,Pwt);const t=xln();if(t.kind==="quiet")return null;const n=t.kind==="void"?"error":"warning",s=t.kind==="void"?t.reason==="taken-over"?"Editor yielded":"Editor disconnected":t.subject==="busy"?"Editor slow":"Editor stale";return q.jsxs(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-editor-lease","data-lease-state":t.kind,"data-tone":n,onClick:()=>window.location.reload(),title:t.kind==="void"&&t.reloadOffered?"The editor is served here again — reload":"The editor server is not answering — reload once it is served here again",children:[q.jsx(dc,{icon:n==="error"?Kk.status.error:Kk.status.warning})," ",s]})}function Rln(){Ye.useSyncExternalStore(Xye,wkr);const t=bC().filter(n=>n.section==="project");return t.length===0?null:q.jsx(q.Fragment,{children:t.map(n=>q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":`status-project-utility-${n.id}`,onClick:()=>vC(n.id),title:`Open the ${n.title} drawer tab (this project's own face)`,children:n.title},n.id))})}const Fln=Mye();function Mln(){Fln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Oln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:Eln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:kln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:Dln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Iln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Nln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:Rln}))})}const jln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-DhHjvD5d.js"),__vite__mapDeps([266,3,2,4,267,92,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Lln(){const t=Yv(),n=rMt(),s=mve();return Ye.use(Usn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),pcn(t),Ye.useEffect(()=>Mln(),[]),Ye.useEffect(()=>Icn(),[]),Ye.useEffect(()=>Esn(n),[n]),Ye.useEffect(()=>ccn(),[]),Ye.useEffect(()=>Ekr(),[t]),Ye.useEffect(()=>Ntn(),[t]),Ye.useEffect(()=>K4r(n),[n]),Ye.useEffect(()=>scn(t,s),[t,s]),Ye.useEffect(()=>PYr(t),[t]),Ye.useEffect(()=>hen(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),c=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:c}))),[]),q.jsxs(q.Fragment,{children:[q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(jln,{store:t})}),q.jsx(Jcn,{}),q.jsx(dcn,{}),q.jsx(mln,{})]})}const Bln=3,$ln=1e4,qln=4e3;function zln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Nwt(t,n,s,c){if(!n.ok){const d=s==="open";return{...t,lastIdentity:null,consecutiveFailures:t.consecutiveFailures+1,unbackedFailures:d?0:t.unbackedFailures+1,darkSince:d?c:t.darkSince}}return{bootIdentity:t.bootIdentity??n.identity,lastIdentity:n.identity,consecutiveFailures:0,unbackedFailures:0,darkSince:c}}function Vln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function ijt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function Uln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!ijt(g,S)?{status:"void",reason:"taken-over"}:n>=c?s>=c&&d>=m?{status:"void",reason:"server-gone"}:{status:"degraded",reason:null}:{status:"live",reason:null}}function Jln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Wln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&ijt(t,s)?"resume":Jln(t,s)?"reload":t?.project?"none":"offer-reload"}const eye="volter.editor.orphaned-tab.v1";function Hln(t){if(!t)return null;let n;try{n=JSON.parse(t)}catch{return null}if(typeof n!="object"||n===null)return null;const s=n;if(typeof s.at!="number"||!Number.isFinite(s.at)||s.reason!=="server-gone")return null;const c=typeof s.project=="string"?s.project:null;return{at:s.at,reason:s.reason,project:c}}function Gln(t){return JSON.stringify(t)}function Kln(t,n){const s=Math.max(0,Math.round((n-t.at)/1e3)),c=s<90?`${s}s ago`:s<5400?`${Math.round(s/60)}m ago`:`${Math.round(s/3600)}h ago`,d=t.project?` on ${t.project}`:"";return`A previous editor window at this address lost its server ${c}${d} and was left orphaned. If that window is still open it is a stale snapshot — nothing in it is saved and every click in it hangs on retries. Close it; this window is the live one.`}const Xln=720*60*1e3;function Yln(t,n){const s=n-t.at;return s>=0&&s<=Xln}function KVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Zln(t,n=KVe()){try{n?.setItem(eye,Gln(t))}catch{}}function Qln(t=KVe()){if(!t)return null;try{const n=Hln(t.getItem(eye));return t.removeItem(eye),n}catch{return null}}function eun(t=KVe()){try{t?.removeItem(eye)}catch{}}function tun(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function run(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>brn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function nun(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef(zln(Date.now())),c=Ye.useRef(null),d=Ye.useRef(!1);return Ye.useEffect(()=>{let m=!1,g=null;const S=()=>{g!==null&&(clearInterval(g),g=null)},k=async pe=>{c.current=pe,qRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Zln({at:Date.now(),reason:"server-gone",project:s.current.bootIdentity?.project??null}),n(d.current?{kind:"degraded",subject:"stale"}:{kind:"void",reason:pe,reloadOffered:!1}),await run()},A=(pe,ue,Ce)=>{switch(Wln(s.current.bootIdentity,pe)){case"resume":{c.current=null,uZr(),eun(),s.current=Nwt(s.current,pe,ue,Ce),n({kind:"quiet"});return}case"reload":if(d.current)return;window.location.reload();return;case"offer-reload":n(Ae=>Ae.kind==="void"&&!Ae.reloadOffered?{...Ae,reloadOffered:!0}:Ae);return;default:return}},F=async()=>{const pe=await WZr(),ue=DZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Nwt(s.current,pe,ue,Ce);const Ae=Uln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:Bln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:$ln,bootIdentity:s.current.bootIdentity,lastIdentity:s.current.lastIdentity});if(Ae.status==="void"&&Ae.reason!==null){await k(Ae.reason);return}n(Ae.status==="degraded"?{kind:"degraded",subject:"busy"}:{kind:"quiet"})};let D=!1;const J=()=>{D||m||(D=!0,F().finally(()=>{D=!1}))},$=()=>{m||(c.current===null&&(s.current=Vln(s.current,Date.now())),J())},G=()=>{document.visibilityState==="visible"&&$()};document.addEventListener("visibilitychange",G),window.addEventListener("pageshow",$);let se=null;try{const pe=jD();pe.addEventListener("error",J),pe.addEventListener("open",J),se=pe}catch{}return g=setInterval(J,qln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{wln(t);const m=tun(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){IBe(DOe);return}if(t.kind==="degraded"){s$({id:DOe,tone:"warning",sticky:!0,...t.subject==="busy"?{title:"Editor server is slow to answer.",detail:"Still connected — this window keeps working, and this clears itself when the server catches up."}:{title:"This window's editor server has stopped.",detail:"You chose to keep reading it — nothing here saves, and it will not reconnect on its own. Reload once the editor is served here again.",actions:[{label:"Reload",primary:!0,run:()=>window.location.reload()}]}});return}s$({id:DOe,tone:"error",sticky:!0,title:"Editor disconnected.",detail:t.reason==="taken-over"?`${m?`${m}'s`:"This project's"} editor is now running in another window. This one has yielded.`:`This window's editor server has stopped — nothing here is saved, and a running game has left its room. Reopen with ${DB(`edit ${m??"<project>"}`)}${m?`, or leave this window open: it reloads by itself when ${m}'s editor is served here again.`:"."}`,onDismiss:()=>{d.current||g()},actions:[...t.reloadOffered?[{label:"Reload",primary:!0,run:()=>window.location.reload()}]:[],{label:"Close window",run:()=>window.close()},{label:"Continue anyway",run:g}]})},[t]),null}const DOe="editor-lease",iun="0.5.155",oun={version:iun},sun="0.5.155",aun={version:sun},ojt=aun.version,cun=oun.version;function lun({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?lPt(t.recovery.verbs):null,[m,g]=Ye.useState(!1);return Ye.useEffect(()=>{if(!m)return;const S=window.setTimeout(()=>g(!1),1600);return()=>window.clearTimeout(S)},[m]),q.jsxs("div",{role:"alert",className:"volter-error-card volter-shell-rise",children:[q.jsx("div",{className:"volter-error-card-icon","aria-hidden":"true",children:q.jsx(dc,{icon:dee})}),q.jsxs("div",{className:"volter-error-card-body",children:[c?q.jsx("h1",{className:"volter-error-card-title",children:t.recovery?.title??"Couldn’t open this project"}):t.recovery&&q.jsx("div",{className:"volter-error-card-title",children:t.recovery.title}),t.recovery&&q.jsx("p",{className:"volter-error-card-guidance",children:t.recovery.guidance}),q.jsx("div",{className:"volter-error-card-message","data-testid":c?"project-startup-error-details":void 0,children:t.message}),d&&q.jsxs("div",{children:[c&&q.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),q.jsxs("div",{className:"volter-error-card-command",children:[q.jsx("code",{"data-testid":c?"project-startup-recovery-command":"project-screen-recovery-command",children:d}),q.jsxs(Ms,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(d),g(!0)},children:[q.jsx(dc,{icon:m?fLe:Q0r,"aria-hidden":"true"}),m?"Copied":"Copy"]})]})]}),q.jsxs("div",{className:"volter-error-card-actions",children:[s&&q.jsx(Ms,{type:"button",variant:"primary",className:"volter-shell-cta","data-testid":"retry-project-detection",onClick:s,children:"Retry"}),n&&q.jsx(Ms,{type:"button",variant:"ghost",className:"volter-shell-cta","aria-label":"Dismiss error",onClick:n,children:"Dismiss"})]})]})]})}function Rje({error:t,report:n,onRetry:s}){return q.jsx("div",{className:"volter-shell","data-testid":"project-detection-error",children:q.jsxs("div",{className:"volter-shell-container","data-view":"startup-error",children:[q.jsx("header",{className:"volter-shell-header",children:q.jsxs("span",{className:"volter-shell-brand-static",children:[q.jsx("span",{className:"volter-shell-brand-mark","aria-hidden":"true",children:q.jsx(GVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(lun,{error:t,onRetry:s,startup:!0}),n?.projectPath&&q.jsx("div",{className:"volter-shell-notice","data-testid":"project-startup-serving",children:q.jsxs("span",{children:["This editor server is serving"," ",q.jsx("code",{"data-testid":"project-startup-serving-path",children:n.projectPath})," — the project exists; the editor could not read it. Fix the file it names above and press Retry."]})}),q.jsx("footer",{className:"volter-shell-footer",children:q.jsxs("span",{className:"volter-chip","data-variant":"tag",children:["Editor v",ojt," · Engine v",cun]})})]})})}function uun({wait:t}={}){return q.jsx("main",{role:"status","aria-live":"polite","aria-label":"Opening project","data-testid":"startup-loading-screen",className:"volter-splash",children:q.jsxs("div",{className:"volter-splash-stack",children:[q.jsx("div",{"aria-hidden":"true",className:"volter-splash-logo",children:q.jsx(GVe,{size:72})}),q.jsx("div",{className:"volter-splash-title",children:mR.name}),q.jsx("div",{"aria-hidden":"true",className:"volter-splash-progress"}),t?q.jsxs(q.Fragment,{children:[q.jsx("div",{className:"volter-splash-status","data-testid":"startup-wait-status",children:`Asking the server which project it serves — ${t.seconds}s`}),q.jsx("div",{className:"volter-splash-note",children:"Still trying. The first boot of a fresh checkout can take a while, so this keeps asking until the server answers."}),t.detail?q.jsxs("div",{className:"volter-splash-note",children:["Last attempt: ",t.detail]}):null]}):q.jsx("div",{className:"volter-splash-status",children:"Opening project…"})]})})}class fun extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){Qs.error(`Editor chrome crashed while the command listener stayed attached: ${n.message}
|
|
1402
1402
|
${s.componentStack??""}`,"editor")}render(){return this.state.error?q.jsx(Rje,{error:{message:`The editor surface crashed: ${this.state.error.message}`},onRetry:()=>this.setState({error:null})}):this.props.children}}function p_e({children:t}){return q.jsxs(q.Fragment,{children:[t,q.jsx(nun,{})]})}function dun(t){const n=t instanceof Error?t.message:String(t);return t instanceof AC?{status:"error",message:n,recovery:t.recovery}:t instanceof k$e?{status:"error",message:n,report:t.report}:{status:"error",message:n}}const pun=8e3;function _un(t=Ben,n=pun){return new Promise((s,c)=>{const d=window.setTimeout(()=>{c(new ZPt(n))},n);t().then(m=>{window.clearTimeout(d),s(m)},m=>{window.clearTimeout(d),c(m)})})}const mun=3;function hun(){const[t,n]=Ye.useState({status:"detecting",waitingSince:null}),[s,c]=Ye.useState(0);Ye.useEffect(()=>Mwr(),[]),Ye.useEffect(()=>PZr(),[]),Ye.useEffect(()=>vZr(()=>c(k=>k+1)),[]),Ye.useEffect(()=>{let k=!1,A,F=0;const D=Date.now();n({status:"detecting",waitingSince:null});const J=()=>{_un().then($=>{k||n($?{status:"ready",project:$}:{status:"no-project"})},$=>{if(k)return;F+=1;const G=O4r($,F);if(G.kind==="terminal"){const pe=dun($),ue=pe.recovery&&"verbs"in pe.recovery?lPt(pe.recovery.verbs):null;Qs.error(`Startup failed: ${pe.message}${ue?` Run: ${ue}`:""}`,"editor"),n(pe);return}const se=$ instanceof Error?$.message:String($);F===mun&&Qs.error(`Project detection has failed ${F} times and is still retrying: ${se}`,"editor"),n({status:"detecting",waitingSince:D,lastError:se}),A=window.setTimeout(J,G.delayMs)})};return J(),()=>{k=!0,A!==void 0&&window.clearTimeout(A)}},[s]);const d=t.status==="detecting"?t.waitingSince:null,[m,g]=Ye.useState(0);Ye.useEffect(()=>{if(d===null){g(0);return}const k=()=>g(Math.max(0,Math.round((Date.now()-d)/1e3)));k();const A=window.setInterval(k,1e3);return()=>window.clearInterval(A)},[d]),Ye.useEffect(()=>{t.status!=="detecting"&&MZr(t.status==="ready"?"project":"no-project")},[t.status]);const S=t.status==="ready"?t.project.config.name:t.status==="error"?"Couldn't open project":null;return Ye.useEffect(()=>{document.title=VPt(S)},[S]),t.status==="detecting"?q.jsx(p_e,{children:q.jsx(uun,{wait:t.waitingSince===null?void 0:{seconds:m,detail:t.lastError}})}):t.status==="no-project"?q.jsx(p_e,{children:q.jsx(Rje,{error:{message:`This window has no project open. A session serves one project: open a folder that carries a volter.project.json, or start one from a terminal — ${DB("edit <folder>")}.`},onRetry:()=>c(k=>k+1)})}):t.status==="error"?q.jsx(p_e,{children:q.jsx(Rje,{error:{message:t.message,...t.recovery?{recovery:t.recovery}:{}},report:t.report,onRetry:()=>c(k=>k+1)})}):q.jsx(p_e,{children:q.jsx(San,{children:q.jsx(fun,{children:q.jsx(Lln,{})})})})}function XVe(t){Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Eee,AD,AD),Ye.useSyncExternalStore(Fye,uN,uN),Ye.useSyncExternalStore(yon,Uxt,Uxt),Ye.useSyncExternalStore(U$,vhe,vhe),Ye.useSyncExternalStore(wEr,Kht,Kht),Ye.useSyncExternalStore(Ain,Mxt,Mxt),Ye.useSyncExternalStore(K0e,zQ,zQ),Ye.useSyncExternalStore(M3t,bRe,bRe),Ye.useSyncExternalStore(dTr,wht,wht),Ye.useSyncExternalStore(nEr,Jht,Jht);const[,n]=Ye.useReducer(d=>d+1,0),{adapter:s}=Cm(t),c=Ye.useRef({broad:t.getSnapshot(),shell:t.getShellSnapshot()});return c.current={broad:t.getSnapshot(),shell:t.getShellSnapshot()},Ye.useEffect(()=>{const d=s.subscribe;if(d)return Ig({adapter:s,seam:"editor.subscribe",stage:"effect",detail:"the active Inspector subscribed to adapter-owned changes",run:()=>d.call(s,()=>{const m=c.current,g={broad:t.getSnapshot(),shell:t.getShellSnapshot()};c.current=g,g.broad===m.broad&&g.shell===m.shell&&n()})})},[s,t]),fve(t)}let DI=null,sjt=0;const Fje=new Set;function gun(){return DI}function Owt(){return sjt}function yun(t){return Fje.add(t),()=>Fje.delete(t)}function Rwt(t){if(!(DI===t||DI!==null&&t!==null&&DI.x===t.x&&DI.y===t.y&&DI.width===t.width&&DI.height===t.height)){DI=t,sjt+=1;for(const s of Fje)s()}}function vun(t,n,s){const c=Math.min(n.maxWidth,Math.max(n.minSize,t.width-n.margin*2)),d=Math.min(n.maxHeight,Math.max(n.minSize,t.height-n.margin*2)),m=t.x+n.margin,g=t.x+t.width-c-n.margin,S=t.y+n.margin,k=t.y+t.height-d-n.margin,A=t.x+t.width-s.right-c,F=t.y+t.height-s.bottom-d;return{width:c,height:d,left:Math.min(Math.max(A,m),Math.max(g,m)),top:Math.min(Math.max(F,S),Math.max(k,S))}}const ajt=Ye.createContext(null);function bun({actions:t,children:n}){return q.jsx(ajt.Provider,{value:t,children:n})}function Sun(){return Ye.useContext(ajt)}function RC(t,n){return{...n,iconName:t}}const xun=RC("outliner-object",aR),wun=RC("outliner-light",lLe),Tun=RC("outliner-camera",cye),Cun=RC("outliner-audio",K0r),POe=RC("outliner-data",I0r),Fwt=RC("outliner-mesh",aR),Eun={three:xun,react:uLe,canvas:cCt,scene:gLe,mesh:Fwt,"skinned-mesh":Fwt,"mesh-data":POe,"three-source":POe,"model-asset":POe,light:wun,camera:Tun,audio:Cun,"reflection-probe":oCt,group:GOe,object:JTt,component:GB,img:iB,a:R0r,ul:vZ,ol:vZ,li:vZ,button:WOe,sprite:iB,animatedsprite:QTt,nineslicesprite:iB,tilingsprite:iB,text:Y0r,graphics:WOe,container:GOe},kun=RC("outliner-render-on",cye),Aun=RC("outliner-render-off",D0r),Dun=RC("outliner-exclude-on",P0r),Pun=RC("outliner-exclude-off",WOe),Iun=/^blender-[a-z0-9-]+$/;function XZ(t,n=JTt){const s=Eun[t];return s||(Iun.test(t)?RC(t,n):n)}const Nun=new Set(["mesh-data","blender-material-data","blender-shapekey-data","blender-texture-data","blender-image-data"]),Oun=["blender-outliner-data-","blender-light-","blender-lightprobe-"];function cjt(t){return t===void 0?!1:Nun.has(t)?!0:Oun.some(n=>t.startsWith(n))}function Mje(t){return t.body.kind==="fields"?q.jsx(H9t,{fields:t.body.fields,io:t.body.io}):t.body.render()}function YVe({action:t}){return q.jsx(pm,{"data-testid":t.id,"aria-label":t.title,title:t.title,"aria-pressed":t.pressed,disabled:t.disabled,onClick:t.run,children:t.icon&&q.jsx(dc,{icon:t.icon})})}function ZVe(t){return t.related.find(n=>n.id.startsWith("definition:"))??null}function Run(t){return t.related.filter(n=>!n.id.startsWith("creation-site:")&&!n.id.startsWith("definition:"))}function QVe({link:t}){return q.jsxs(Ms,{variant:"secondary",size:"compact","data-testid":"inspector-open-definition",title:t.title,onClick:t.open,style:{display:"inline-flex",alignItems:"center",gap:4,flexShrink:0},children:[q.jsx(dc,{icon:rvr}),q.jsx("span",{style:{maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title})]})}function ljt({subject:t}){const n=Run(t);return n.length===0?null:q.jsx("div",{"data-testid":"inspector-related-subjects",style:{display:"flex",flexWrap:"wrap",gap:4,padding:"6px 8px"},children:n.map(s=>q.jsx(Ms,{variant:"ghost",onClick:s.open,title:s.title,children:s.title},s.id))})}function jje(t){const n=y4t(t.iconName);if(n)return`${n.path}|${n.tonedPath??""}`;const s=t.icon[4];return Array.isArray(s)?s.join("|"):s}function ujt({subject:t,onJump:n}){const s=V9t(t);return Ye.useSyncExternalStore(ABe,uhe,uhe),s.length<5||new Set(s.map(c=>jje(c.icon))).size<3?null:q.jsx("div",{className:"volter-inspector-icon-strip",role:"toolbar","aria-label":"Sections","data-testid":"inspector-section-strip",children:s.map(c=>q.jsx(pm,{size:"compact","data-testid":`section-icon-${c.id}`,"aria-label":c.title,title:c.title,onClick:()=>n(c.id),children:q.jsx(dc,{icon:c.icon})},c.id))})}function Fun({render:t,glyph:n,subjectKey:s}){const c=uve(s)?t:null;return c?q.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none"},children:c("thumbnail")}):q.jsx(dc,{icon:n})}function eUe({subject:t}){const n=t.identity;if(!n)return null;const s=[n.kindLabel,n.note?.text].filter(Boolean).join(" — ");return n.rename.readOnly?q.jsx("div",{"data-testid":"ingest-name","data-readonly":"true",...s?{title:s}:{},style:{flex:1,minWidth:0,fontSize:"var(--volter-font-md)",fontWeight:600,color:Go.content.primary,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.title}):q.jsx(BRe,{"data-testid":"ingest-name","aria-label":"Name",value:t.title,onCommit:c=>{c.trim()!==""&&n.rename.set(c)},"data-emphasis":"strong",...s?{title:s}:{},style:{flex:1,minWidth:0}})}function fjt({subject:t}){const n=t.identity;if(!n)return q.jsxs("div",{style:{padding:12},children:[q.jsx("div",{style:{fontSize:"var(--volter-font-md)",fontWeight:600},children:t.title}),t.hint&&q.jsx("div",{"data-testid":"inspector-subject-hint",style:{marginTop:4,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:t.hint})]});const s=ZVe(t);return q.jsxs("div",{className:"volter-inspector-identity",style:{padding:`${G0[1]} ${G0[4]}`,borderBottom:"1px solid var(--volter-structural-divider)"},children:[q.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[q.jsx(eUe,{subject:t}),n.kindLabel&&q.jsx("span",{"data-testid":"inspector-kind-label",style:{fontSize:"var(--volter-font-base)",color:Go.content.dim,whiteSpace:"nowrap"},children:n.kindLabel}),MBe(t,"identity").map(c=>q.jsx(YVe,{action:c},c.id)),s&&q.jsx(QVe,{link:s})]}),n.document&&q.jsx("div",{"data-testid":"inspector-document-path","data-document-path":n.document.path,...n.document.title?{title:n.document.title}:{},style:{marginTop:G0[1],fontSize:"var(--volter-font-base)",color:Go.content.muted,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",direction:"rtl",textAlign:"left"},children:q.jsx("bdi",{children:n.document.path})}),t.alsoSelected?q.jsx("div",{"data-testid":"inspector-also-selected",style:{marginTop:6,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:`${t.alsoSelected+1} selected — fields edit this one, the gizmo moves all`}):null,n.note?.text&&q.jsx("div",{"data-testid":"inspector-subject-note",style:{marginTop:6,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:n.note.text})]})}function Mun({subject:t}){const n=t.identity;if(!n)return q.jsx(fjt,{subject:t});const s=ZVe(t),c=n.kind?XZ(n.kind,tye(t)):tye(t),d=t.title||n.kindLabel||"",m=[n.kindLabel,n.document?.path,n.document?.title].filter(Boolean).join(" — ");return q.jsxs("div",{className:"volter-inspector-identity","data-volter-identity-layout":"properties",children:[q.jsxs("div",{className:"volter-inspector-breadcrumb",children:[q.jsx(dc,{icon:c,tone:"primary"}),q.jsx("span",{className:"volter-inspector-breadcrumb-chain","data-testid":"inspector-document-path",...n.document?{"data-document-path":n.document.path}:{},...m?{title:m}:{},children:q.jsx("bdi",{children:d})}),MBe(t,"identity").map(g=>q.jsx(YVe,{action:g},g.id))]}),q.jsxs("div",{className:"volter-inspector-datablock",children:[q.jsx("span",{className:"volter-inspector-datablock-kind","data-testid":"inspector-kind-label",...n.kindLabel?{title:n.kindLabel}:{},children:q.jsx(dc,{icon:c,tone:"primary"})}),q.jsx(eUe,{subject:t}),s&&q.jsx(QVe,{link:s})]}),t.alsoSelected?q.jsx("div",{"data-testid":"inspector-also-selected",style:{marginTop:G0[3],fontSize:"var(--volter-font-base)",color:Go.content.dim},children:`${t.alsoSelected+1} selected — fields edit this one, the gizmo moves all`}):null,n.note?.text&&q.jsx("div",{"data-testid":"inspector-subject-note",style:{marginTop:G0[3],fontSize:"var(--volter-font-base)",color:Go.content.dim},children:n.note.text})]})}function jun({section:t}){return q.jsx("div",{"data-testid":t.testId,"data-inspector-section":t.id,children:q.jsx(WCr,{label:t.title,icon:t.icon,description:t.description,collapsible:!0,defaultOpen:t.defaultOpen??!0,children:Mje(t)})})}function Lun({subject:t}){const n=Ye.useRef(null),s=c=>{n.current?.querySelector(`[data-inspector-section="${c}"]`)?.scrollIntoView({block:"nearest",behavior:"smooth"})};return q.jsxs("div",{style:{pointerEvents:"auto"},children:[q.jsx(fjt,{subject:t}),q.jsx(ujt,{subject:t,onJump:s}),q.jsx(ljt,{subject:t}),q.jsx("div",{ref:n,children:t.sections.map(c=>q.jsx(Ye.Fragment,{children:q.jsx(jun,{section:c})},c.id))})]})}const __e=new Map;let Mwt=null;function Bun({subject:t}){const n=V9t(t),s=__e.get(t.id)??Mwt,[c,d]=Ye.useState(null),m=(c&&n.some(k=>k.id===c)?c:null)??(s&&n.some(k=>k.id===s)?s:null)??n.find(k=>k.railDefault)?.id??n[0]?.id??null,g=t.sections.find(k=>k.id===m)??null,S=k=>{d(k),__e.size>200&&__e.clear(),__e.set(t.id,k),Mwt=k};return q.jsx("div",{className:"volter-inspector-properties-fill",style:{pointerEvents:"auto"},children:q.jsxs("div",{className:"volter-inspector-properties","data-testid":"inspector-properties",children:[q.jsx("div",{className:"volter-inspector-properties-rail",role:"tablist","aria-orientation":"vertical","aria-label":"Sections",children:n.map((k,A)=>q.jsxs(Ye.Fragment,{children:[A>0&&k.railGroup!==n[A-1]?.railGroup?q.jsx("div",{className:"volter-inspector-properties-rail-separator","data-testid":"properties-tab-separator",role:"presentation"}):null,q.jsx(pm,{size:"compact",role:"tab","aria-selected":k.id===m,"data-testid":`properties-tab-${k.id}`,"aria-label":k.title,title:k.title,onClick:()=>S(k.id),children:q.jsx(dc,{icon:k.icon,size:"xl"})})]},k.id))}),q.jsxs("div",{className:"volter-inspector-properties-body",role:"tabpanel",children:[q.jsx(Mun,{subject:t}),q.jsx(ljt,{subject:t}),g?q.jsx("div",{"data-testid":g.testId,"data-inspector-section":g.id,children:Mje(g)}):null,t.sections.filter(k=>k.keepMounted&&k.id!==m).map(k=>q.jsx("div",{"data-inspector-section":k.id,"data-inspector-section-hidden":"true",style:{display:"none"},children:Mje(k)},k.id))]})]})})}function tye(t){const n=t.sections[0]?.icon;return n?jje(n)===jje(HOe)?aR:n:aR}function $un({subject:t,surface:n}){const s=Sun(),c=t.sections.find(k=>k.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null,m=ZVe(t),g=n?()=>FVe(n,"column"):null,S=t.identity!==null;return q.jsxs("div",{className:"volter-mini-inspector","data-testid":"inspector-panel","data-volter-inspector-presentation":"card",onPointerDown:()=>CR("inspector"),children:[s&&q.jsx(pm,{size:"compact",className:"volter-mini-inspector-minimize","data-testid":"inspector-minimize","aria-label":"Minimize inspector",title:"Minimize inspector",onClick:s.minimize,children:q.jsx(dc,{icon:T0r})}),q.jsx("div",{className:"volter-mini-inspector-preview","data-testid":"inspector-mini-preview",...g?{role:"button",tabIndex:0,"aria-label":`Expand inspector for ${t.title}`,title:`Expand inspector for ${t.title}`,onClick:g,onKeyDown:k=>{(k.key===" "||k.key==="Enter")&&(k.preventDefault(),g())}}:{},children:q.jsx(Fun,{render:d?d.render:null,glyph:tye(t),subjectKey:t.id})}),S?q.jsxs("div",{className:"volter-mini-inspector-identity",children:[q.jsx(eUe,{subject:t}),MBe(t,"identity").map(k=>q.jsx(YVe,{action:k},k.id))]}):q.jsx("div",{className:"volter-mini-inspector-identity",children:q.jsx("div",{style:{flex:1,minWidth:0,fontSize:"var(--volter-font-md)",fontWeight:600},children:t.title})}),q.jsx(ujt,{subject:t,onJump:()=>g?.()}),m&&q.jsx("div",{className:"volter-mini-inspector-actions",children:q.jsx(QVe,{link:m})})]})}function qun({subject:t,onExpand:n,onClear:s}){const c=t.sections.find(m=>m.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null;return q.jsxs("div",{className:"volter-inspector-pill","data-testid":"inspector-pill",children:[q.jsxs("div",{role:"button",tabIndex:0,className:"volter-inspector-pill-open","aria-label":`Expand inspector for ${t.title}`,title:`Expand inspector for ${t.title}`,onClick:n,onKeyDown:m=>{(m.key===" "||m.key==="Enter")&&(m.preventDefault(),n())},children:[q.jsx("span",{className:"volter-inspector-pill-thumb","aria-hidden":"true",children:d?d.render("thumbnail"):q.jsx(dc,{icon:tye(t)})}),q.jsx("span",{className:"volter-inspector-pill-name",children:t.title})]}),s&&q.jsx(pm,{"data-testid":"inspector-fab-clear-selection","aria-label":"Clear selection",title:"Clear selection",onClick:s,children:q.jsx(dc,{icon:dLe})})]})}const m_e=new Map;function jwt({subject:t,presentation:n,surface:s}){const c=t.id,d=Ye.useCallback(m=>{m&&(m.scrollTop=m_e.get(c)??0)},[c]);return n==="card"?q.jsx($un,{subject:t,...s?{surface:s}:{}}):q.jsx(Jye,{name:"Inspector",hideHeader:!0,className:"volter-content-frost","data-testid":"inspector-panel","data-volter-inspector-presentation":n,onPointerDown:()=>CR("inspector"),style:{overflowY:"auto"},ref:d,onScroll:m=>{m_e.size>200&&m_e.clear(),m_e.set(c,m.currentTarget.scrollTop)},children:n==="properties"?q.jsx(Bun,{subject:t}):q.jsx(Lun,{subject:t})})}const zun=250;let djt=0,UY=null;const wme=new Set;function Vun(){djt++;for(const t of wme)t()}function tUe(t){return wme.add(t),UY===null&&(UY=setInterval(Vun,zun)),()=>{wme.delete(t),wme.size===0&&UY!==null&&(clearInterval(UY),UY=null)}}function Uun(){return djt}function pjt(t){return Ye.useSyncExternalStore(tUe,t,t)}function Jun({presentation:t,surface:n}){const s=xVe(),c=q.jsx("div",{"data-testid":"no-authoring-note",style:{padding:12,color:Go.semantic.warning,fontSize:"var(--volter-font-md)",lineHeight:1.5},children:s!==null?q.jsxs(q.Fragment,{children:[q.jsx("strong",{children:"Nothing to author."})," ",s]}):q.jsxs(q.Fragment,{children:[q.jsx("strong",{children:"Nothing to author."})," This root's adapter publishes no inspector surface, so there is nothing here to describe or edit. The root is still hosted, sized, and disposed; play it in the Game tab."]})}),d=n?q.jsx("div",{style:{display:"flex",justifyContent:"flex-end",padding:"2px 4px"},children:q.jsx(pm,{size:"compact","data-testid":"inspector-expand","aria-label":"Expand inspector to side panel",title:"Expand inspector to side panel",onClick:()=>FVe(n,"column"),children:q.jsx(dc,{icon:GTt})})}):null;return t==="card"?q.jsxs("div",{className:"volter-mini-inspector","data-testid":"inspector-panel","data-volter-inspector-presentation":"card",onPointerDown:()=>CR("inspector"),children:[d,c]}):q.jsx(Jye,{name:"Inspector (nothing to author)",hideHeader:!0,className:"volter-content-frost","data-testid":"inspector-panel",onPointerDown:()=>CR("inspector"),children:c})}function rUe(){const t=Yv();pjt(()=>eTr());const n=XVe(t),{adapter:s}=Cm(t);return n.available?s.capabilities.inspectorFields?q.jsx(jwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):n.subject.identity!==null||n.subject.sections.length>0?q.jsx(jwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):l$()?q.jsx(Jun,{presentation:n.presentation,surface:n.surface}):null:null}function Wun({surface:t}){return q.jsx(Jye,{name:"Inspector",hideHeader:!0,"data-testid":"inspector-shown-as-card",children:q.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"var(--volter-space-3)",padding:"var(--volter-space-4)",color:Go.content.muted,fontSize:"var(--volter-font-md)",lineHeight:1.5},children:[q.jsx("span",{children:"The inspector for this view is shown as a card in the viewport."}),q.jsx(Ms,{variant:"secondary",size:"compact","data-testid":"inspector-dock-here",onClick:()=>FVe(t,"column"),children:"Show it here"})]})})}const _jt=260,mjt=360,aee=16,Hun=200,hjt=220,Lje=54,Gun=52,Kun={maxWidth:_jt,maxHeight:mjt,minSize:Hun,margin:aee},Xun={right:aee,bottom:aee},Yun={maxWidth:hjt,maxHeight:Lje,minSize:Lje,margin:aee};function Zun(t,n,s){return vun(t,s?Yun:Kun,n)}function Qun(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(K0e,zQ,zQ),Ye.useSyncExternalStore(yun,Owt,Owt);const n=gun(),[s,c]=Ye.useState(!1),{subject:d}=XVe(t),m=Ye.useCallback(()=>{oD();const{adapter:S}=Cm(t);c0(S,[])||t.select(null)},[t]),g=n?Zun(n,Xun,s):null;return q.jsx("div",{style:{position:"absolute",...g?{left:g.left,top:g.top,width:g.width,height:g.height}:{right:aee,bottom:Gun,width:s?hjt:_jt,height:s?Lje:mjt},display:"flex",alignItems:"flex-end",zIndex:PI.sticky,pointerEvents:"none"},children:q.jsx("div",{"data-testid":"compact-inspector-card",style:{display:"flex",width:"100%",...s?{height:"100%"}:{maxHeight:"100%"},borderRadius:s?999:"var(--dv-group-border-radius, 8px)",overflow:s?"hidden":"clip",border:"var(--dv-floating-border, 1px solid var(--volter-boundary-default))",boxShadow:"var(--dv-floating-box-shadow, var(--volter-shadow-lg))",background:"var(--dv-group-view-background-color, var(--volter-bg-1))",pointerEvents:"auto"},children:s?q.jsx(qun,{subject:d,onExpand:()=>c(!1),onClear:m}):q.jsx(bun,{actions:{minimize:()=>c(!0)},children:q.jsx(rUe,{})})})})}let efn=1;const Lwt=new WeakMap;function tfn(t){if(!t)return 0;const n=Lwt.get(t);if(n!==void 0)return n;const s=efn++;return Lwt.set(t,s),s}function nUe(t){const n=Y0(t);return n instanceof gy?n.childAdapters().find(c=>c.kind==="three"&&c.adapter.capabilities.transform)?.worldId??null:null}function rfn(t){const n=Y0(t);if(!(n instanceof gy))return!0;if(!n.childAdapters().some(d=>d.kind==="three"))return!1;const c=nUe(t);return c===null?!0:!oq(c)}const nfn="/__editor/collaboration",Bwt=["participants","presence","messages","revisions","audit","team-test"];let KI=null;const Bje=new Set,$je=new Set;let $wt=0;function h_e(t){KI=t,GAt(t.revision);for(const n of Bje)n(t);if(t.revision>$wt){$wt=t.revision;for(const n of $je)n(t.revision)}}async function qje(t,n){const s=await fetch(`${nfn}${t}`,n);if(s.status!==204&&of(s,`Collaboration request ${t} failed`),!s.ok){const c=await s.json().catch(()=>null);throw new Error(typeof c?.error=="string"?c.error:"Collaboration request failed.")}return s.status===204?void 0:await s.json()}function ifn(){return KI}let g_e=null,y_e=0;function gjt(){if(y_e++,!g_e){const n=jD(),s=g=>{try{h_e(JSON.parse(g.data))}catch{}};let c=!1;const d=()=>{c||(c=!0,qje("").then(h_e).catch(()=>{}).finally(()=>{c=!1}))},m=g=>{try{const S=JSON.parse(g.data);if(!KI||S.sequence<=KI.sequence)return;if(S.channel!=="presence"){d();return}const k=S.payload;if(typeof k.participantId!="string"||!k.presence)return;h_e({...KI,sequence:S.sequence,participants:KI.participants.map(A=>A.participantId===k.participantId?{...A,presence:k.presence}:A)})}catch{}};n.addEventListener("collaboration-snapshot",s);for(const g of Bwt)n.addEventListener(`collaboration-${g}`,m);qje("").then(h_e).catch(()=>{}),g_e=()=>{n.removeEventListener("collaboration-snapshot",s);for(const g of Bwt)n.removeEventListener(`collaboration-${g}`,m);n.close()}}let t=!1;return()=>{t||(t=!0,y_e--,y_e<=0&&(y_e=0,g_e?.(),g_e=null))}}function ofn(t){Bje.add(t),KI&&t(KI);const n=gjt();return()=>{Bje.delete(t),n()}}function rwn(t){$je.add(t);const n=gjt();let s=!1;return()=>{s||(s=!0,$je.delete(t),n())}}async function nwn(t){await qje("/presence",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({participantId:Q0e,presence:t})})}const qwt=500,yjt=()=>{};function sfn(t,n){if(n===yjt)return{hierarchy:t.hierarchy,isComponentRoot:()=>!1,isBuiltInternal:()=>!1,...t.hasInternals?{hasInternals:A=>t.hasInternals(A)}:{},...t.internalChildren?{internalChildren:A=>t.internalChildren(A)}:{}};const s=new Map,c=A=>{const F=s.get(A);if(F!==void 0)return F;const D=[];let J=A,$=!1,G=0;for(;J!==null&&G++<qwt;){const se=s.get(J);if(se!==void 0){$=se;break}D.push(J);const pe=n(J);if(pe?.componentRoot!==void 0)break;if(pe?.builtInternal===!0){$=!0;break}if(pe?.authoredEntity===!0)break;J=t.hierarchy.node(J)?.parentId??null}for(const se of D)s.set(se,$);return $},d=A=>n(A)?.componentRoot!==void 0,m=(A,F=0)=>{if(F>qwt)return[];const D=[];for(const J of A.childIds){if(!c(J)){D.push(J);continue}const $=t.hierarchy.node(J);$&&D.push(...m($,F+1))}return D},g=A=>A.childIds.filter(F=>c(F)),S=A=>{if(!A)return null;const F=n(A.id)?.componentRoot,D=m(A),J=D.length===A.childIds.length&&D.every(($,G)=>$===A.childIds[G]);return F===void 0&&J?A:{...A,...F===void 0?{}:{role:"component",typeLabel:F},...J?{}:{childIds:D}}};return{hierarchy:{roots:()=>t.hierarchy.roots().flatMap(A=>c(A.id)?m(A).flatMap(F=>{const D=S(t.hierarchy.node(F));return D?[{...D,parentId:A.parentId}]:[]}):[S(A)]),node:A=>S(t.hierarchy.node(A))},isComponentRoot:d,isBuiltInternal:c,hasInternals:A=>{if(t.hasInternals?.(A)===!0)return!0;const F=t.hierarchy.node(A);return F?g(F).length>0:!1},internalChildren:A=>{const F=t.internalChildren?.(A),D=t.hierarchy.node(A),J=D?g(D).flatMap($=>{const G=S(t.hierarchy.node($));return G?[{...G,parentId:A}]:[]}):[];return F===void 0?J.length>0?J:void 0:[...F,...J]}}}function afn(t,n,s){for(const c of n)c.more||s(c.node.id)&&t.set(c.node.id,!1);return t}function cfn(t,n){for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n)return s.worldId;return t.ownerOf(n)}function lfn(t,n,s){if(!(t instanceof gy))return!0;const c=cfn(t,s);return c===null?!1:n.every(d=>t.ownerOf(d)===c)}const ufn="This world's structure comes from its own source, which the editor can't rewrite here — reparenting is not wired for it.",ffn="That row is part of a component instance's own output, not authored content. Drop onto the instance itself to place relative to it.";function zwt(t){return t.hasStructureWritePath?t.targetIsInternal?ffn:null:ufn}const dfn=400,vjt="volter.projectLocalState";let JB=null,JY=null,ER={},zje=!1,WB=null;function bjt(){return Em()}function lte(){const t=bjt();if(JB===t)return Promise.resolve();if(JY)return JY.then(()=>lte());const n=d$e(),s=n?Promise.resolve(pfn(n.get(vjt))):HZr();return JY=Promise.all([s,Z4t()]).then(([c])=>{ER=c&&typeof c=="object"?{...c}:{},JB=t}).catch(()=>{ER={},JB=t}).finally(()=>{JY=null}),JY}function ute(){return JB===bjt()}function Cve(t){if(ute())return ER[t]}function iUe(t=!1){if(WB!==null&&(clearTimeout(WB),WB=null),!zje)return;zje=!1;const n=d$e();n?n.store(vjt,JSON.stringify(ER)):GZr(ER,{leaving:t})}function pfn(t){if(!t)return{};try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}catch{return{}}}function Eve(t,n){const s=()=>{ER={...ER,[t]:n},zje=!0,WB!==null&&clearTimeout(WB),WB=setTimeout(iUe,dfn)};ute()?s():lte().then(s)}function _fn(){iUe(!0)}IC(()=>{wf()&<e()});a3r(()=>{JB!==null&&(iUe(),JB=null,wf()&<e())});typeof window<"u"&&window.addEventListener("pagehide",_fn);const Sjt="hierarchyExpansion",O$=new Map;let Vwt=!1;function oUe(){if(Vwt||!ute())return;Vwt=!0;const t=Cve(Sjt)??{};for(const[n,s]of Object.entries(t))O$.set(n,new Map(Object.entries(s)))}function xjt(){const t={};for(const[n,s]of O$)t[n]=Object.fromEntries(s);Eve(Sjt,t)}function mfn(t,n){return oUe(),O$.get(t)?.get(n)}function Uwt(t,n){oUe();let s=O$.get(t);s||(s=new Map,O$.set(t,s));for(const[c,d]of n)s.set(c,d);xjt()}function hfn(t){oUe(),O$.delete(t),xjt()}let rye=null;const Vje=new Set;function gfn(){return rye}function yfn(t){return Vje.add(t),()=>{Vje.delete(t)}}function wjt(t){if(rye!==t){rye=t;for(const n of Vje)n()}}function vfn(t){rye===t&&wjt(null)}const bfn=500,Jwt=new Set,cee=new Set;function iwn(t){return cee.has(t)}function own(t){return cee.delete(t)?!1:(cee.add(t),!0)}function swn(){return cee}function Sfn(t,n=cee){if(typeof t.internalChildren!="function"||n.size===0)return{hierarchy:t.hierarchy,isInternal:()=>!1,revealRootIds:Jwt,internalIds:Jwt};const s=new Map,c=new Map,d=new Set,m=(S,k)=>{if(k>bfn||s.has(S))return;const A=t.internalChildren(S)??[];if(A.length!==0){s.set(S,A.map(F=>F.id));for(const F of A)c.has(F.id)||(c.set(F.id,F),m(F.id,k+1))}};for(const S of n)m(S,0),s.has(S)&&d.add(S);const g=S=>{if(!S)return null;const k=s.get(S.id);return k?{...S,childIds:[...S.childIds,...k]}:S};return{hierarchy:{roots:()=>t.hierarchy.roots().map(S=>g(S)),node:S=>g(c.get(S)??t.hierarchy.node(S))},isInternal:S=>c.has(S),revealRootIds:d,internalIds:new Set(c.keys())}}function xfn(t,n){for(const s of n.internalIds)t.set(s,!1);for(const s of n.revealRootIds)t.set(s,!0);return t}const nye=20,wfn="__more__:",Tjt=500;function Tfn(t,n,s){return t?Math.max(nye,n.get(s)??nye):Number.POSITIVE_INFINITY}function Cfn(t,n,s,c,d){return{node:{id:`${wfn}${t}`,label:"",kind:"object",parentId:s,childIds:[]},depth:n,pathKey:`${t}/__more__`,hasChildren:!1,hiddenByCollapse:c,more:{parentPathKey:t,hidden:d}}}function Wwt(t,n,s=new Map,c=!1){const d=[],m=new Set,g=(S,k,A,F)=>{if(m.has(S.id)||k>Tjt)return;m.add(S.id);const D=S.childIds.length>0;d.push({node:S,depth:k,pathKey:A,hasChildren:D,hiddenByCollapse:F});const J=n.has(A);if(c&&J)return;const $=F||J,G=Math.min(S.childIds.length,Tfn(c,s,A));for(let se=0;se<G;se++){const pe=t.node(S.childIds[se]);pe&&g(pe,k+1,`${A}.${se}`,$)}c&&S.childIds.length>G&&d.push(Cfn(A,k+1,S.id,$,S.childIds.length-G))};return t.roots().forEach((S,k)=>{g(S,0,`r${k}`,!1)}),d}function Efn(t,n,s){if(s.size===0)return n;const c=new Map;for(let k=0;k<n.length;k+=1){const A=n[k];A.more||c.set(A.node.id,k)}const d=[];for(const k of s){const A=c.get(k),F=t.node(k);if(A===void 0||F===null)continue;const D=n[A];let J=A+1;for(;J<n.length&&n[J].depth>D.depth;)J+=1;d.push({start:A,end:J,row:D,node:F})}if(d.length===0)return null;d.sort((k,A)=>k.start-A.start);const m=[];for(const k of d){const A=m.at(-1);A&&k.start<A.end||m.push(k)}for(const k of s){const A=c.get(k);if(A!==void 0&&!m.some(({start:F,end:D})=>A>=F&&A<D))return null}const g=k=>{const A=[],F=new Set;let D=!0;const J=($,G,se)=>{if(D){if(F.has($.id)||G>Tjt){D=!1;return}F.add($.id),A.push({node:$,depth:G,pathKey:se,hasChildren:$.childIds.length>0,hiddenByCollapse:!1});for(let pe=0;pe<$.childIds.length;pe+=1){const ue=t.node($.childIds[pe]);ue&&J(ue,G+1,`${se}.${String(pe)}`)}}};return J(k.node,k.row.depth,k.row.pathKey),D?A:null},S=[...n];for(let k=m.length-1;k>=0;k-=1){const A=m[k],F=g(A);if(F===null)return null;S.splice(A.start,A.end-A.start,...F)}return S}function Hwt(t){return`${t.pathKey}:${t.node.id}`}function kfn(t,n,s,c,d){const m=Math.max(0,Math.floor(n/c)-d),g=Math.ceil(s/c)+d*2,S=Math.min(t,m+g);return{start:m,end:S}}function Afn(t,n){if(t.length!==n.length)return!1;for(let s=0;s<t.length;s+=1)if(!Object.is(t[s],n[s]))return!1;return!0}class IOe{#e=null;#t;computeCount=0;get current(){return this.#t}read(n,s){if(this.#e!==null&&Afn(this.#e,n))return this.#t;const c=s(this.#t);return this.#e=n,this.#t=c,this.computeCount+=1,c}}class Dfn{#e=new IOe;#t=new IOe;#i=new IOe;#n;#r=Number.NEGATIVE_INFINITY;structural(n,s){const[c,d]=n;if(c===this.#n&&typeof d=="number"&&d<this.#r&&this.#e.current!==void 0)return this.#e.current;const m=this.#e.read(n,s);return c!==this.#n&&(this.#n=c,this.#r=Number.NEGATIVE_INFINITY),typeof d=="number"&&(this.#r=Math.max(this.#r,d)),m}collapsed(n,s){return this.#t.read(n,s)}browse(n,s){return this.#i.read(n,s)}get counts(){return{structural:this.#e.computeCount,collapsed:this.#t.computeCount,browse:this.#i.computeCount}}}function Pfn(t){const n=new Map,s=new Map;for(const c of t){if(c.more)continue;n.set(c.pathKey,c.node.id);const d=s.get(c.node.id);d?d.push(c.pathKey):s.set(c.node.id,[c.pathKey])}return{nodeIdByPathKey:n,pathKeysByNodeId:s}}function sUe(t){const n=t.split("."),s=[];for(let c=1;c<n.length;c++)s.push(n.slice(0,c).join("."));return s}function Gwt(t,n){const s=new Set;for(const c of n)for(const d of t.pathKeysByNodeId.get(c)??[])for(const m of sUe(d)){const g=t.nodeIdByPathKey.get(m);g&&s.add(g)}return s}function Ifn(t,n){const s=new Map;for(const c of n)for(const d of t.pathKeysByNodeId.get(c)??[]){const m=d.split(".");let g=m[0];for(let S=1;S<m.length;S++){const k=Number(m[S]);Number.isFinite(k)&&s.set(g,Math.max(s.get(g)??0,k+1)),g=`${g}.${m[S]}`}}return s}function Nfn(t){return t.size===0?"":[...t].sort((n,s)=>n[0]<s[0]?-1:n[0]>s[0]?1:0).map(([n,s])=>`${n}=${String(s)}`).join(",")}const Ofn=["position","rotation","scale"];function Rfn(t){const n=t.role==="component"&&!!t.typeLabel;return{label:t.label,typeSuffix:n?t.typeLabel:null}}const aUe={locked:!1};function Ffn(t){let n;for(const s of Ofn){const c=t(s);if(!c||c.writable)return aUe;s==="position"&&(n=c.reason)}return n===void 0?{locked:!0}:{locked:!0,reason:n}}class Mfn{entries=new Map;source=null;version=Number.NaN;computed=0;get computeCount(){return this.computed}summaryFor(n,s,c){(this.source!==n||this.version!==s)&&(this.entries.clear(),this.source=n,this.version=s);const d=this.entries.get(c);if(d)return d;this.computed++;const m=n.transforms?.editability,g=m?Ffn(S=>m(c,S)):aUe;return this.entries.set(c,g),g}}const jfn={draggable:!0,renamable:!0,writable:!0,searchable:!0},Lfn={draggable:!1,renamable:!1,writable:!0,searchable:!0},Bfn={draggable:!1,renamable:!1,writable:!1,searchable:!1};function cUe(t){return t.internal?Bfn:t.structural?Lfn:jfn}function $fn(t){return!t||t.length===0?null:{count:t.length,tooltip:t.map(n=>n.message).join(`
|
|
1403
1403
|
`),codes:t.map(n=>n.code)}}class qfn{entries=new Map;source=null;version=Number.NaN;computed=0;get computeCount(){return this.computed}badgeFor(n,s,c){(this.source!==n||this.version!==s)&&(this.entries.clear(),this.source=n,this.version=s);const d=this.entries.get(c);if(d!==void 0)return d;this.computed++;const m=n.diagnosticsFor?$fn(n.diagnosticsFor(c)):null;return this.entries.set(c,m),m}}const Tme=new Map;function awn(t){return Tme.set(t.documentId,t),()=>{Tme.get(t.documentId)===t&&Tme.delete(t.documentId)}}function zfn(t){return Tme.get(t)??null}function Vfn(t,n){const s=[...n];return s.length===0||s.some(c=>t.hierarchy.node(c)===null)?null:t.rects?{worldId:null,kind:"dom"}:s.every(c=>t.hierarchy.object3D?.(c)!=null)?{worldId:null,kind:"three"}:null}function Ufn(t,n){const s=t.childAdapters();let c=null;for(const d of n){const m=s.find(g=>t.groupNodeId(g.worldId)===d)??s.find(g=>t.ownerOf(d)===g.worldId);if(!m||c&&c.worldId!==m.worldId)return null;c=m}return c?{worldId:c.worldId,kind:c.kind,adapter:c.adapter}:null}function Jfn(t,n){const s=[...n];if(s.length===0)return null;if(t instanceof gy)return Ufn(t,s);const c=Vfn(t,s);return c?{...c,adapter:t}:null}function Wfn(t,n){return!n||n.worldId!==null&&oq(n.worldId)?!1:n.kind!=="three"||n.worldId===null?!0:nUe(t)===n.worldId}const YZ=new Map;let Cjt=0;const Uje=new Set;function Kwt(){Cjt++;for(const t of[...Uje])t()}function cwn(t,n){const s={store:n};return YZ.set(t,s),Kwt(),()=>{YZ.get(t)===s&&(YZ.delete(t),Kwt())}}function Hfn(t){return t===null?null:YZ.get(t)?.store??null}function lwn(t){for(const[n,s]of YZ)if(s.store===t)return n;return null}function uwn(t){return Uje.add(t),()=>{Uje.delete(t)}}function fwn(){return Cjt}const rB=new Map;function dwn(t){return rB.set(t,(rB.get(t)??0)+1),()=>{const n=(rB.get(t)??1)-1;n>0?rB.set(t,n):rB.delete(t)}}const Ejt={count:0,surface:null,visible:!1};function Gfn(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function Xwt(t){switch(t){case"scene":case"world":return{kind:"composition"};case"story":return{kind:"story"};case"asset":return{kind:"artifact"};case"document":return{kind:"data"};default:return{kind:"unknown"}}}function Kfn(t){if(t===null)return{kind:"unknown"};const n=l0().find(d=>d.descriptor.id===t);if(!n)return{kind:"unknown"};const s=n.descriptor.presentation?.()??null,c=Xwt(s?.kind);return c.kind!=="unknown"?c:Xwt(n.descriptor.kind)}function Xfn(t){return t instanceof gy?t.childAdapters().some(n=>n.kind==="three"):!t.rects&&typeof t.hierarchy.object3D=="function"}function Jje(t,n,s,c){const d=Y0(t),m=rfn(t)&&Xfn(d)?"three":null,g=t.playState,S=t.selectedEntityIds.size;if(S===0)return{documentId:n,chrome:c,subject:s,surface:m,selection:Ejt,play:g};const k=Jfn(d,t.selectedEntityIds);return{documentId:n,chrome:c,subject:s,surface:m,selection:{count:S,surface:Gfn(k?.kind),visible:Wfn(t,k)},play:g}}function Yfn(t,n,s="document"){const c=Kfn(n);if(rB.has(n))return{...Jje(t,n,c,s),surface:"canvas"};const d=zfn(n);if(d===null){const g=l0().find(S=>S.descriptor.id===n)?.descriptor.kind;return g!==void 0&&g!=="game"&&g!=="scene"&&g!=="world"?{documentId:n,chrome:s,subject:c,surface:null,selection:Ejt,play:t.playState}:Jje(t,n,c,s)}const m=d.selection().length;return{documentId:n,chrome:s,subject:c,surface:"three",selection:{count:m,surface:m>0?"three":null,visible:!0},play:t.playState}}function Zfn(t){const n=Pp();return n!==null?Yfn(t,n):Jje(t,null,{kind:"unknown"},"document")}function Qfn(t){return Hfn(Pp())??t}function edn(t){return t.surface!=="three"?!1:t.selection.count===0?!0:t.selection.surface==="three"&&t.selection.visible}function pwn(t){return edn(t)?_Ct(t.documentId)===null?"gizmo":"modal":"none"}function _wn(t){return t.surface==="three"&&t.selection.count>0&&t.selection.surface==="three"&&t.selection.visible}function kjt(t){return t.chrome==="embedded"||t.subject.kind==="story"||t.subject.kind==="artifact"}function mwn(t,n){return kjt(t)?!0:t.subject.kind==="data"&&!n}function hwn(t){return t.chrome==="document"&&kjt(t)}let Cme=null;const iye=new Set;function gwn(t){Cme=t;for(const n of iye)n();return()=>{if(Cme===t){Cme=null;for(const n of iye)n()}}}function oye(){return Cme}function tdn(t){return iye.add(t),()=>{iye.delete(t)}}const NOe="application/x-editor-asset",OOe="application/x-hierarchy-reorder";function ROe(t){const s=t?.querySelector(".volter-tree-row")?.getBoundingClientRect().height??0;if(s>0)return Math.round(s);const c=t?Number.parseFloat(getComputedStyle(t).getPropertyValue("--volter-tree-row-height")):Number.NaN;return Number.isFinite(c)&&c>0?c:l4t.treeRow}const hZ="var(--volter-tree-indent)";function Eme(t){return`calc(${hZ} * ${t})`}const Ywt=5;function rdn(t,n,s){const c=[];for(let d=0;d<t;d++)c.push({column:d,starts:n===d,ends:s<=d});return c}const ndn=[],idn=6,odn=8,sdn=2400;function adn(t){const n=new Map,s=d=>{const m=d.childIds.flatMap(g=>{const S=t.node(g);return S?.role==="document"&&S.secondaryLabel?S.childIds:[g]});return m.length===d.childIds.length&&m.every((g,S)=>g===d.childIds[S])?null:m},c=d=>{let m=n.get(d.id);return m===void 0&&(m=s(d),n.set(d.id,m)),m===null?d:{...d,childIds:m}};return{...t,roots:()=>{const d=t.roots();return d.length===1&&d[0]?.role==="document"?d[0].childIds.map(m=>t.node(m)).filter(m=>m!==null).map(c):d.map(c)},node:d=>{const m=t.node(d);return m?c(m):null}}}const cdn=300,ldn=new Map,udn={folder:fee,document:mLe,story:QTt,component:GB,instance:GOe,boundary:dee};function fdn(t){return t.role==="root"?XZ(t.kind,cCt):t.role==="entity"||t.role==="element"?XZ(t.kind):(t.role?udn[t.role]:void 0)??XZ(t.kind)}const Ajt=new Set(["folder","root","document","story","boundary"]);function ddn(t,n,s){let c=t,d=0;for(;c&&d++<1e3;){if(n.includes(c))return!0;c=s.hierarchy.node(c)?.parentId??null}return!1}function pdn(t,n){return n===null?t.hierarchy.roots().map(s=>s.id):t.hierarchy.node(n)?.childIds??[]}function lUe(t,n){if(!(t instanceof gy))return null;for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n){const c=t.inspector?.get(n,"zOrder");return{zOrder:typeof c=="number"?c:s.zOrder,worldId:s.worldId,role:s.role,kind:s.kind,provenance:s.adapter.provenance??null}}return null}function kme(t,n){return lUe(t,n)!==null}function uUe(t,n){return t instanceof gy&&t.isOrganizationNode(n)}function Djt(t,n){if(!(t instanceof gy))return t;const s=t.ownerOf(n);return t.childAdapters().find(c=>c.worldId===s)?.adapter??t}function Zwt(t,n){return n===void 0?t.structure!==void 0:Djt(t,n).structure!==void 0}function _dn(t,n,s){return kme(t,n)||uUe(t,n)||s!==void 0&&Ajt.has(s)}function mdn(t,n){const s=new Map,c=[],d=[],m=new Map;for(const g of t)g.more||m.set(g.node.id,g.node.kind);for(const g of t){if(g.more)continue;const S=g.depth===0?0:c[g.depth-1]??0,k=g.depth===0?null:d[g.depth-1],A=_dn(n,g.node.id,g.node.role),F=S+(A?0:1);c[g.depth]=F,c.length=g.depth+1,d[g.depth]=g.node,d.length=g.depth+1;const D=g.node.childIds.length>0&&g.node.childIds.every(J=>cjt(m.get(J)));s.set(g.node.id,g.node.defaultExpanded??(!D&&(A||F<=1||k?.childIds.length===1)))}return s}function hdn(t,n,s){const c=new Set;for(const d of t)if(!(d.more||!cUe({structural:!1,internal:s(d.node.id)}).searchable)&&d.node.label.toLowerCase().includes(n)){c.add(d.pathKey);for(const m of sUe(d.pathKey))c.add(m)}return c}function gdn(t,n){const s=new Map(t);for(const[c,d]of n)s.set(c,Math.max(s.get(c)??0,d));return s}function ydn({value:t,onChange:n}){const s=Ye.useRef(null);return q.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",flex:`0 1 var(${bdn}, ${vdn}px)`,minWidth:Sdn},children:[q.jsx(dc,{icon:jTt,"aria-hidden":"true",style:{position:"absolute",left:xdn,pointerEvents:"none",color:"var(--volter-text-1)",fontSize:"var(--volter-icon-lg)"}}),q.jsx(Zm,{ref:s,type:"text","data-testid":"ingest-search",placeholder:"Search",className:"volter-input",value:t,onChange:c=>n(c.target.value),onKeyDown:c=>{c.key==="Escape"&&(c.stopPropagation(),t!==""?n(""):s.current?.blur())},style:{flex:1,minWidth:0,paddingLeft:`var(${Tdn}, ${wdn}px)`,paddingRight:Cdn}})]})}const vdn=64,bdn="--volter-hierarchy-search-basis",Sdn=56,xdn=2,wdn=21,Tdn="--volter-hierarchy-search-text-inset",Cdn=2;function Edn({onCollapseAll:t,onResetExpansion:n,onExpandAll:s}){const[c,d]=Ye.useState(!1),m=Ye.useRef(null);return q.jsxs("div",{ref:m,style:{position:"relative",flexShrink:0},children:[q.jsx(pm,{title:"View","aria-label":"View","aria-haspopup":"menu","aria-expanded":c,"data-testid":"hierarchy-view-menu",onClick:()=>d(g=>!g),variant:"secondary",size:"compact",children:q.jsx(dc,{icon:tCt,"aria-hidden":"true",style:{fontSize:"var(--volter-icon-xs)"}})}),c&&q.jsxs(dN,{autoFocusFirst:!0,dismissBoundaryRef:m,onDismiss:()=>d(!1),style:{position:"absolute",top:"100%",right:0,marginTop:R_[2],minWidth:170},children:[q.jsx(Jc,{"data-testid":"hierarchy-collapse-all",onSelect:()=>{t(),d(!1)},children:"Collapse All"}),q.jsx(Jc,{"data-testid":"hierarchy-reset-expansion",onSelect:()=>{n(),d(!1)},children:"Reset Openness"}),q.jsx(Jc,{"data-testid":"hierarchy-expand-all",onSelect:()=>{s(),d(!1)},children:"Expand All"})]})]})}function kdn({slot:t,search:n,setSearch:s,adapter:c,createTargetId:d,onCollapseAll:m,onResetExpansion:g,onExpandAll:S}){const k=q.jsxs(q.Fragment,{children:[q.jsx(ydn,{value:n,onChange:s}),q.jsx(Edn,{onCollapseAll:m,onResetExpansion:g,onExpandAll:S}),q.jsx(Ddn,{adapter:c,parentId:d})]});return t?r2.createPortal(q.jsx("div",{"data-testid":"hierarchy-header-controls",style:{display:"flex",alignItems:"center",gap:G0[1],height:"100%",minWidth:0},children:k}),t):q.jsx(n$,{label:"Hierarchy controls",compact:!0,style:{gap:G0[2]},children:k})}function Adn({state:t,adapter:n,store:s,isGroupNode:c,isInternal:d,onRename:m,onClose:g}){const S=Ye.useRef(null),[k,A]=Ye.useState({left:t.x,top:t.y});Ye.useLayoutEffect(()=>{const Yr=S.current;if(!Yr)return;const en=Yr.getBoundingClientRect();A(Y3t({top:t.y,left:t.x,width:en.width,height:en.height}))},[t.x,t.y]);const[F,D]=Ye.useState(!1),J=Ye.useRef(!1);Ye.useEffect(()=>{F&&(J.current=!1)},[F]),Ye.useEffect(()=>{const Yr=ii=>{S.current&&!S.current.contains(ii.target)&&g()},en=ii=>{ii.key==="Escape"&&g()};return document.addEventListener("mousedown",Yr),document.addEventListener("keydown",en),()=>{document.removeEventListener("mousedown",Yr),document.removeEventListener("keydown",en)}},[g]);const $=n.hierarchy.node(t.nodeId);if(!$)return null;const G=n.structure?.creatableKinds?.(t.nodeId)??[],pe=Djt(n,t.nodeId).structure,ue=!!pe,Ce=n.inspector?.get(t.nodeId,"name")!==void 0,Ae=n.inspector?.get(t.nodeId,"locked")!==void 0,Pe=n.inspector?.get(t.nodeId,"locked")===!0,be=n.inspector?.get(t.nodeId,"visible")!==void 0,X=n.inspector?.get(t.nodeId,"visible")!==!1,we=n.inspector?.editability?.(t.nodeId,"locked"),qe=n.inspector?.editability?.(t.nodeId,"visible"),bt=Ae&&(we?.writable??!0),Pt=be&&(qe?.writable??!0),Wt=[...Qfn(s).selectedEntityIds],zt=Wt.includes(t.nodeId)?Wt:[t.nodeId],ft=r4r(DPt(n,t.nodeId)),tr=pe?.copy?"Copy needs source-addressable entities from one world.":ft,Qt=pe?.paste?"Copy or cut a source-addressable entity in this world first.":ft,Tt=[],vn=cUe({structural:c,internal:d});if(d&&$.parentId!==null&&Tt.push({label:"Select Parent",testId:"hierarchy-context-menu-select-parent",action:()=>{c0(n,[$.parentId]),g()}}),!c&&vn.writable){Tt.push({label:"Rename",testId:"hierarchy-context-menu-rename",...Ce?{}:{disabledReason:ft},action:()=>{m(t.nodeId),g()}}),Tt.push({label:"Cut",testId:"hierarchy-context-menu-cut",...pe?.cut&&(n.structure?.canCopy?.(zt)??!0)?{}:{disabledReason:tr},action:()=>{a0e(n,zt),g()}}),Tt.push({label:"Copy",testId:"hierarchy-context-menu-copy",...pe?.copy&&(n.structure?.canCopy?.(zt)??!0)?{}:{disabledReason:tr},action:()=>{s0e(n,zt),g()}}),Tt.push({label:"Paste",testId:"hierarchy-context-menu-paste",...pe?.paste&&(n.structure?.canPaste?.($.parentId)??!0)?{}:{disabledReason:Qt},action:()=>{c0e(n,$.parentId),g()}}),Tt.push({label:"Duplicate",testId:"hierarchy-context-menu-duplicate",...ue?{}:{disabledReason:ft},action:()=>{Wt.length>1&&Wt.includes(t.nodeId)?bve(s):r0e(n,t.nodeId).ack,g()}}),pe?.group&&Wt.length>1&&Wt.includes(t.nodeId)&&Tt.push({label:"Group Selection",testId:"hierarchy-context-menu-group",action:()=>{o0e(n,Wt).ack,g()}}),pe?.ungroup&&pe.canUngroup?.(t.nodeId)&&Tt.push({label:"Ungroup",testId:"hierarchy-context-menu-ungroup",action:()=>{y$e(n,t.nodeId).ack,g()}}),pe?.wrap&&Tt.push({label:"Wrap",testId:"hierarchy-context-menu-wrap",action:()=>{n0e(n,t.nodeId),g()}}),pe?.unwrap&&Tt.push({label:"Unwrap",testId:"hierarchy-context-menu-unwrap",action:()=>{i0e(n,t.nodeId),g()}}),$.parentId!==null&&Tt.push({label:"Select Parent",testId:"hierarchy-context-menu-select-parent",action:()=>{c0(n,[$.parentId]),g()}}),Tt.push({label:be&&!X?"Show":"Hide",...Pt?{}:{disabledReason:qe?.reason??ft},action:()=>{n.inspector.set(t.nodeId,"visible",!X),s.notifyIngestEdit(),g()}}),Tt.push({label:Pe?"Unlock":"Lock",...bt?{}:{disabledReason:we?.reason??ft},action:()=>{n.inspector.set(t.nodeId,"locked",!Pe),s.notifyIngestEdit(),g()}});for(const Yr of h3r({nodeId:t.nodeId,store:s}))Tt.push({label:Yr.label,...Yr.color!==void 0?{color:Yr.color}:{},action:()=>{Yr.action(),g()}});Tt.push({label:"Delete",testId:"hierarchy-context-menu-delete",color:Go.semantic.danger,...ue?{}:{disabledReason:ft},action:()=>{Wt.length>1&&Wt.includes(t.nodeId)?Sve(s):n.structure.remove(t.nodeId),g()}})}return q.jsx(she,{children:q.jsxs(dN,{ref:S,"data-testid":"ingest-context-menu",style:{position:"fixed",left:k.left,top:k.top,minWidth:150,maxWidth:260,fontSize:"var(--volter-font-base)"},children:[!c&&vn.writable&&G.length>0&&q.jsxs("div",{children:[q.jsxs(Jc,{"data-testid":"hierarchy-context-menu-create",onSelect:()=>D(Yr=>!Yr),style:{justifyContent:"space-between",gap:R_[4]},children:[q.jsx("span",{children:"Create"}),q.jsx(v4t,{direction:"right",tone:"dim"})]}),F&&G.map(Yr=>q.jsx(Jc,{"data-testid":`hierarchy-context-menu-create-${Yr.kind}`,onSelect:()=>{J.current||(J.current=!0,t0e(n,Yr.kind,t.nodeId).ack,g())},style:{paddingLeft:G0[12]},children:Yr.label},Yr.kind))]}),Tt.map(Yr=>Yr.disabledReason!==void 0?q.jsx(Jc,{"data-testid":Yr.testId,"aria-disabled":"true",title:Yr.disabledReason,style:{cursor:"not-allowed",color:Go.content.dim,opacity:.7},children:Yr.label},Yr.label):q.jsx(Jc,{"data-testid":Yr.testId,onSelect:Yr.action,style:Yr.color!==void 0?{color:Yr.color}:void 0,children:Yr.label},Yr.label)),d&&q.jsx("div",{"data-testid":"hierarchy-context-menu-internal-note",style:{padding:`${R_[4]}px ${R_[6]}px`,color:Go.content.dim,maxWidth:240,lineHeight:jht.normal},children:n.transforms?.editability?.(t.nodeId,"position")?.reason??"This rendered part has no authored source identity."}),!ue&&!d&&q.jsxs("div",{style:{padding:`${R_[4]}px ${R_[6]}px`,color:Go.semantic.warning,maxWidth:240,lineHeight:jht.normal},children:[q.jsx("strong",{children:"Create / Delete / Reparent — not available."})," This game owns its own scene graph, so structural authoring isn't reapplicable. You can edit transform / material / visibility, or capture a subtree into the first-party editable format."]})]})})}function Ddn({adapter:t,parentId:n}){const[s,c]=Ye.useState(!1),d=Ye.useRef(null),m=Ye.useRef(!1),g=t.structure?.creatableKinds?.(n)??[],S=n?t.hierarchy.node(n)?.label:null;return Ye.useEffect(()=>{if(!s)return;m.current=!1;const k=F=>{d.current&&!d.current.contains(F.target)&&c(!1)},A=F=>{F.key==="Escape"&&c(!1)};return document.addEventListener("mousedown",k),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("keydown",A)}},[s]),g.length===0?null:q.jsxs("div",{ref:d,style:{position:"relative",flexShrink:0},children:[q.jsxs(Ms,{title:S?`Add to ${S}`:"Add","aria-label":S?`Add to ${S}`:"Add","aria-expanded":s,"data-testid":"hierarchy-add-menu",onClick:()=>c(!s),variant:s?"primary":"secondary",size:"compact",children:[q.jsx(dc,{icon:iCt,style:{fontSize:"var(--volter-font-sm)"}})," ",q.jsx(dc,{icon:_Le,style:{fontSize:"var(--volter-font-xs)"}})]}),s&&q.jsx(dN,{style:{position:"absolute",top:"100%",right:0,marginTop:R_[2],minWidth:130,maxHeight:"min(480px, 70vh)",overflowY:"auto"},children:g.map(k=>q.jsx(Jc,{"data-testid":`hierarchy-add-${k.kind}`,onSelect:()=>{m.current||(m.current=!0,t0e(t,k.kind,n??void 0).ack,c(!1))},children:k.label},k.kind))})]})}function Pdn({row:t,onReveal:n}){const s=t.more.hidden;return q.jsxs(Ms,{type:"button",variant:"ghost",className:"volter-hierarchy-more","data-testid":"ingest-row-more",onClick:()=>n(t.more.parentPathKey),style:{paddingLeft:Eme(t.depth+1)},children:["… ",s," more"]})}function Qwt(t,n){if(!n)return t;const s=t.toLowerCase(),c=n.toLowerCase(),d=[];let m=0,g=s.indexOf(c,m);if(g<0)return t;let S=0;for(;g>=0;)g>m&&d.push(t.slice(m,g)),d.push(q.jsx("mark",{"data-testid":"ingest-row-search-highlight",style:{background:Go.semantic.warning,color:Go.surface.shell,borderRadius:Go.shape.small},children:t.slice(g,g+c.length)},S++)),m=g+c.length,g=s.indexOf(c,m);return m<t.length&&d.push(t.slice(m)),d}function Pjt(t,n){return t.length===n.length&&t.every((s,c)=>s===n[c])}function Idn(t,n){const s=t.node,c=n.node;return t.depth===n.depth&&t.pathKey===n.pathKey&&t.hasChildren===n.hasChildren&&t.hiddenByCollapse===n.hiddenByCollapse&&t.more?.parentPathKey===n.more?.parentPathKey&&t.more?.hidden===n.more?.hidden&&s.id===c.id&&s.label===c.label&&s.role===c.role&&s.secondaryLabel===c.secondaryLabel&&s.kind===c.kind&&s.typeLabel===c.typeLabel&&s.parentId===c.parentId&&Pjt(s.childIds,c.childIds)&&s.crossSurfaceId===c.crossSurfaceId&&s.crossSurfaceParentId===c.crossSurfaceParentId&&s.crossSurfaceOrder===c.crossSurfaceOrder&&s.crossSurfaceGroupLabel===c.crossSurfaceGroupLabel}function Ndn(t,n){return Idn(t.row,n.row)&&t.adapter===n.adapter&&t.store===n.store&&t.isSelected===n.isSelected&&t.isSelectionActive===n.isSelectionActive&&t.isEditing===n.isEditing&&t.isCollapsed===n.isCollapsed&&t.dropZone===n.dropZone&&t.isDragged===n.isDragged&&t.rowIndex===n.rowIndex&&t.prevDepth===n.prevDepth&&t.nextDepth===n.nextDepth&&t.isInternal===n.isInternal&&t.searchTerm===n.searchTerm&&t.lockCache===n.lockCache&&t.warningCache===n.warningCache&&t.editabilityVersion===n.editabilityVersion&&t.adapterVersion===n.adapterVersion&&t.threeRootId===n.threeRootId&&t.onToggleOpen===n.onToggleOpen&&t.onStartEditing===n.onStartEditing&&t.onContextMenu===n.onContextMenu&&t.onDragStart===n.onDragStart&&t.onClick===n.onClick&&t.onEnterScope===n.onEnterScope&&t.typeSuffixShown===n.typeSuffixShown&&t.instanceRuleShown===n.instanceRuleShown&&t.restrictionColumns===n.restrictionColumns&&t.excludeColumnShown===n.excludeColumnShown&&Pjt(t.remoteSelectionColors,n.remoteSelectionColors)}const Odn=Ye.memo(function({row:n,adapter:s,store:c,isSelected:d,isSelectionActive:m,isEditing:g,isCollapsed:S,dropZone:k,isDragged:A,rowIndex:F,prevDepth:D,nextDepth:J,isInternal:$,searchTerm:G,lockCache:se,warningCache:pe,editabilityVersion:ue,adapterVersion:Ce,onToggleOpen:Ae,onStartEditing:Pe,threeRootId:be,onContextMenu:X,onDragStart:we,onClick:qe,onEnterScope:bt,remoteSelectionColors:Pt,typeSuffixShown:Wt,instanceRuleShown:zt,restrictionColumns:ft,excludeColumnShown:tr}){const{node:Qt,depth:Tt,hasChildren:vn}=n,Yr=lUe(s,Qt.id),en=Yr!==null,ii=uUe(s,Qt.id),No=en||ii||Qt.role!==void 0&&Ajt.has(Qt.role),gn=cUe({structural:No,internal:$}),En=No?void 0:s.inspector?.get(Qt.id,"locked"),cs=No?void 0:s.inspector?.get(Qt.id,"name"),On=!No&&s.inspector?.get(Qt.id,"visible")!==void 0,ji=No?void 0:s.inspector?.editability?.(Qt.id,"locked"),Ja=No?void 0:s.inspector?.editability?.(Qt.id,"visible"),_a=No?void 0:s.inspector?.get(Qt.id,"renderVisible"),Pn=_a!==void 0,js=_a!==!1,fa=No?void 0:s.inspector?.editability?.(Qt.id,"renderVisible"),Nt=Pn&&(fa?.writable??!0),Bc=No?void 0:s.inspector?.get(Qt.id,"exclude"),Ni=Bc!==void 0,Dc=Bc===!0,vc=No?void 0:s.inspector?.editability?.(Qt.id,"exclude"),Tf=Ni&&(vc?.writable??!0),Np=Yr?oq(Yr.worldId):!1,Au=Yr?yMt(Yr.worldId):!1,dl=Yr?vMt(Yr.worldId):!1,bu=en?!Np:s.inspector?.get(Qt.id,"visible")!==!1,Al=En!==void 0,Ku=En===!0,pl=Al&&(ji?.writable??!0),gs=On&&(Ja?.writable??!0),Xu=cs!==void 0,$r=Rfn(Qt),Sl=No?0:s.instances?.describe(Qt.id)?.overrides.length??0,Rl=No?aUe:se.summaryFor(s,ue,Qt.id),mi=No?null:pe.badgeFor(s,ue,Qt.id),tu=No?null:oye()?.detail(s,Qt.id,c)??null,Wc=S&&vn?Qt.childIds.slice(0,idn).map(Ao=>s.hierarchy.node(Ao)).filter(Ao=>Ao!==null&&cjt(Ao.kind)):[];return q.jsxs("div",{className:"volter-tree-row","data-entity-name":No?void 0:Qt.label,"data-testid":"ingest-row","data-ingest-name":Qt.label,"data-node-role":Qt.role,"data-depth":Tt,"data-selected":d?"true":void 0,"data-selection-active":m?"true":void 0,"data-remotely-selected":Pt.length>0?"true":void 0,"data-dragging":A?"true":void 0,"data-row-alt":F%2===1?"true":void 0,"data-internal":$?"true":void 0,"data-muted":$||Dc||!No&&!bu?"true":void 0,draggable:gn.draggable,onDragStart:Ao=>we(Ao,Qt.id),onClick:Ao=>{if(Yr?.role==="world"&&WMe(Yr.worldId),Qt.role==="story"){const ia=s instanceof gy?s.ownerOf(Qt.id):null;ia&&WMe(ia),s.stories?.apply(Qt.id,Qt.id)}qe(Ao,Qt.id)},onDoubleClick:()=>{Qt.role==="story"?CD("story",c,{storyId:Qt.id}):Qt.role==="component"||Qt.role==="instance"||Qt.role==="boundary"?bt(Qt.id):gn.renamable&&Xu&&Pe(Qt.id)},onContextMenu:Ao=>{Ao.preventDefault(),X(Ao,Qt.id)},style:{position:"relative",paddingLeft:Eme(Tt),paddingRight:G0[2],gap:G0[2],cursor:"pointer",outline:k==="child"?`1px dashed ${Go.accent.default}`:"none",whiteSpace:"nowrap",overflow:"hidden",fontSize:"var(--volter-font-base)"},children:[k==="before"&&q.jsx(Nht,{position:"before",style:{left:Eme(Tt)}}),k==="after"&&q.jsx(Nht,{position:"after",style:{left:Eme(Tt)}}),rdn(Tt,D,J).map(Ao=>q.jsx("span",{className:"volter-tree-indent-guide","aria-hidden":"true",style:{left:`calc(${hZ} * ${Ao.column+.5} - 0.5px)`,top:Ao.starts?Ywt:0,bottom:Ao.ends?Ywt:0}},Ao.column)),vn?q.jsx(pm,{type:"button",variant:"ghost",size:"compact","aria-label":S?`Expand ${Qt.label}`:`Collapse ${Qt.label}`,"aria-expanded":!S,"data-testid":"ingest-row-caret",onClick:Ao=>{Ao.stopPropagation(),Ae(n,Ao.altKey)},title:"Expand/collapse (Option/Alt-click applies to the branch)",className:"volter-tree-caret",children:q.jsx(dc,{icon:S?MTt:_Le,"aria-hidden":"true"})}):q.jsx("span",{"data-testid":"ingest-row-caret","aria-hidden":"true",style:{width:hZ,flexShrink:0}}),Pt.length>0&&q.jsx("span",{className:"volter-tree-remote-selection",role:"img",title:`Selected by ${Pt.length} collaborator${Pt.length===1?"":"s"}`,"aria-label":"Selected by a collaborator",children:Pt.slice(0,3).map(Ao=>q.jsx("span",{style:{background:Ao},"aria-hidden":"true"},Ao))}),Yr?.role==="world"&&Yr.worldId===be&&q.jsx("span",{"data-testid":"world-focus-radio","data-world-focused":"true",title:"Live Three world — shown in the viewport",style:{fontSize:"var(--volter-font-xs)",opacity:.8,flexShrink:0},children:q.jsx(dc,{icon:oCt,"aria-hidden":"true"})}),q.jsx("span",{className:"volter-tree-type-glyph",title:Qt.role?`${Qt.role}: ${Qt.kind}`:Qt.kind,style:{width:"var(--volter-icon-md)",fontSize:"var(--volter-icon-sm)",flexShrink:0,textAlign:"center"},children:q.jsx(dc,{icon:fdn(Qt),"aria-hidden":"true"})}),g?q.jsx(Zm,{autoFocus:!0,defaultValue:Qt.label,onBlur:Ao=>{s.inspector.set(Qt.id,"name",Ao.currentTarget.value),c.notifyIngestEdit(),Pe("")},onKeyDown:Ao=>{Ao.key==="Enter"&&(s.inspector.set(Qt.id,"name",Ao.currentTarget.value),c.notifyIngestEdit(),Pe("")),Ao.key==="Escape"&&Pe("")},onClick:Ao=>Ao.stopPropagation(),"data-variant":"tree-edit",style:{flex:1,minWidth:0}}):q.jsxs("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[$r.typeSuffix?q.jsxs("span",{"data-testid":"hierarchy-instance-label",...Wt?{}:{title:`Component instance of <${$r.typeSuffix}>`},style:{textDecorationLine:zt?d?"var(--volter-tree-active-name-underline)":"underline":"none",textDecorationStyle:"dotted",textDecorationColor:Go.semantic.instance,textUnderlineOffset:"3px",...d?{color:m?Go.content.active:Go.content.selected}:{}},children:[Qwt(Qt.label,G),!Wt&&Sl>0?"*":""]}):q.jsx("span",{"data-testid":"hierarchy-plain-label",style:d?{color:m?Go.content.active:Go.content.selected}:void 0,children:Qwt(Qt.label,G)}),Wc.map(Ao=>q.jsx("span",{className:"volter-tree-datablock","data-active":m?"true":void 0,title:`${Ao.kind}: ${Ao.label}`,children:q.jsx(dc,{icon:XZ(Ao.kind),"aria-hidden":"true"})},Ao.id)),$r.typeSuffix&&Wt&&q.jsxs("span",{"data-testid":"hierarchy-instance-type","data-type-label":$r.typeSuffix,title:`Component instance of <${$r.typeSuffix}>`,style:{marginLeft:G0[2],fontSize:"var(--volter-font-sm)",color:Go.content.dim},children:["·",$r.typeSuffix,Sl>0?"*":""]}),Qt.secondaryLabel&&q.jsx("span",{style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:Qt.secondaryLabel}),tu&&q.jsx("span",{"data-testid":"hierarchy-instanced-units",style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:tu}),Yr?.role==="world"&&Yr.zOrder!==0&&q.jsxs("span",{title:`Z order: ${Yr.zOrder}`,style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.6},children:["Z ",Yr.zOrder]}),Yr?.provenance&&q.jsx("span",{"data-testid":"world-provenance","data-provenance":Yr.provenance.source,title:Yr.provenance.detail,style:{marginLeft:G0[3],fontSize:"var(--volter-font-xs)",padding:`0 ${R_[2]}px`,borderRadius:Go.shape.small,border:`1px solid ${Go.boundary.strong}`,color:Go.content.muted,verticalAlign:"middle"},children:Yr.provenance.label})]}),mi&&q.jsx("span",{"data-testid":"hierarchy-row-warning","data-warning-codes":mi.codes.join(","),"data-warning-count":mi.count,role:"img",title:mi.tooltip,"aria-label":`${Qt.label}: ${mi.tooltip}`,style:{fontSize:"var(--volter-font-sm)",color:Go.semantic.warning,flexShrink:0},children:q.jsx(dc,{icon:dee,"aria-hidden":"true"})}),Rl.locked&&Rl.reason&&q.jsx("span",{"data-testid":"hierarchy-transform-lock",role:"img",title:Rl.reason,"aria-label":`${Qt.label}: ${Rl.reason}`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.dim,flexShrink:0},children:q.jsx(dc,{icon:Fme,"aria-hidden":"true"})}),ft==="select+viewport"&&Al&&gn.writable&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-lock",disabled:!pl,title:pl?Ku?"Unlock":"Lock":ji?.reason||"Locked","aria-label":Ku?`Unlock ${Qt.label}`:`Lock ${Qt.label}`,"aria-pressed":Ku,onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"locked",!Ku),c.notifyIngestEdit()},children:q.jsx(dc,{icon:Ku?Fme:UOe,"aria-hidden":"true"})}),tr&&(Ni&&gn.writable?q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-exclude",disabled:!Tf,title:Tf?Dc?"Include in view layer":"Exclude from view layer":vc?.reason||"Exclusion is read-only","aria-label":Dc?`Include ${Qt.label} in the view layer`:`Exclude ${Qt.label} from the view layer`,"aria-checked":!Dc,role:"checkbox",onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"exclude",!Dc),c.notifyIngestEdit()},children:q.jsx(dc,{icon:Dc?Pun:Dun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),(On||en)&&gn.writable&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-visibility",disabled:!en&&!gs,title:en||gs?bu?"Hide":"Show":Ja?.reason||"Visibility is read-only","aria-label":bu?`Hide ${Qt.label}`:`Show ${Qt.label}`,"aria-pressed":!bu,onClick:Ao=>{Ao.stopPropagation(),Yr?(Dan(Yr.worldId),c.notifyIngestEdit()):(s.inspector.set(Qt.id,"visible",!bu),c.notifyIngestEdit())},children:q.jsx(dc,{icon:bu?cLe:hLe,"aria-hidden":"true"})}),ft==="viewport+render"&&(Pn&&gn.writable?q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-render-visibility",disabled:!Nt,title:Nt?js?"Disable in renders":"Enable in renders":fa?.reason||"Render visibility is read-only","aria-label":js?`Disable ${Qt.label} in renders`:`Enable ${Qt.label} in renders`,"aria-pressed":!js,onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"renderVisible",!js),c.notifyIngestEdit()},children:q.jsx(dc,{icon:js?kun:Aun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),Yr&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"world-interactive-toggle",title:Au?"Interactive (layer forwards pointer events)":"Not interactive (layer is pointer-events:none)","aria-label":`Forward pointer events to ${Qt.label}`,"aria-pressed":Au,onClick:Ao=>{Ao.stopPropagation(),Ian(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:uvr,"aria-hidden":"true"})}),Yr&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"world-picklock-toggle",title:dl?"Pick-locked (skipped by topmost-layer picking)":"Not pick-locked","aria-label":`Exclude ${Qt.label} from viewport picking`,"aria-pressed":dl,onClick:Ao=>{Ao.stopPropagation(),Oan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:nCt,"aria-hidden":"true"})})]})},Ndn);function Rdn({store:t,adapter:n}){Ye.useSyncExternalStore(t.subscribe,t.getSnapshot);const s=Ye.useDeferredValue(t.contentVersion);Ye.useSyncExternalStore(W3r,H3r),Ye.useSyncExternalStore(U$,eA,eA);const c=mD().hierarchyTypeSuffix!=="hidden",d=mD().hierarchyInstanceRule!=="hidden",m=mD().hierarchyRestrictions??"select+viewport",[g,S]=Ye.useReducer(zi=>zi+1,0),k=Ye.useRef(t.getSnapshot());k.current=t.getSnapshot();const[A,F]=Ye.useState(ifn());Ye.useEffect(()=>n.subscribe?.(()=>{k.current=t.getSnapshot(),S()}),[n,t]),Ye.useEffect(()=>ofn(F),[]);const D=Ye.useMemo(()=>{const zi=new Map;for(const Jn of A?.participants??[])if(Jn.participantId!==Q0e)for(const Cs of Jn.presence.selection){const lc=zi.get(Cs)??[];lc.includes(Jn.color)||lc.push(Jn.color),zi.set(Cs,lc)}return zi},[A]),J=Ye.useRef(new Mfn),$=Ye.useRef(new qfn),G=t.hierarchyRowFacetVersion,se=nUe(t),[pe,ue]=Ye.useState(""),Ce=Ye.useSyncExternalStore(yfn,gfn,()=>null),[Ae,Pe]=Ye.useState(null),[be,X]=Ye.useState(null),[we,qe]=Ye.useState(null),[bt,Pt]=Ye.useState(!1),[Wt,zt]=Ye.useState(null),ft=Ye.useRef(null),[tr,Qt]=Ye.useState(0),Tt=Ye.useRef(null),vn=Ye.useSyncExternalStore(NDt,hgt,hgt).includes("outliner")?"outliner":void 0,Yr=Ye.useRef(new Map),en=Ye.useRef(new Map),ii=Ye.useRef(new Dfn),No=Ye.useRef(0),gn=Ye.useRef(null),En=Ye.useRef(null),cs=Ye.useRef(null),On=Ye.useRef(null),[,ji]=Ye.useReducer(zi=>zi+1,0),Ja=pe.trim().toLowerCase(),_a=wf()?.rootPath??"__unscoped__",Pn=n.selection?.get()??[],js=Pn.length===1?Pn[0]:null,fa=[...Pn].sort().join("\0"),Nt=Ye.useMemo(()=>new Set(fa===""?[]:fa.split("\0")),[fa]),Bc=Pn.at(-1)??null,Ni=l0e(n),Dc=Ni.at(-1)??null,vc=Ye.useRef("");Ye.useEffect(()=>{if(fa===""||vc.current===fa)return;const zi=Tt.current,Jn=zi?.querySelector('[data-selected="true"]');if(!zi||!Jn)return;const Cs=zi.getBoundingClientRect(),lc=Jn.getBoundingClientRect();(lc.top<Cs.top||lc.bottom>Cs.bottom)&&Jn.scrollIntoView({block:"nearest"}),vc.current=fa}),gn.current!==_a&&(en.current.clear(),gn.current=_a,En.current=null);const Tf=ii.current,Np=[n,s,g],Au=Tf.structural(Np,zi=>{const Jn=sfn(n,oye()?.marks(n.hierarchy)??yjt),Cs=Sfn(Jn),lc=adn(Cs.hierarchy),Nu=oye()?.structureLog(t)??null,Fl=Nu?.epoch()??0,Yu=zi?s-zi.contentVersion:0,Ie=zi?Fl-zi.objectMapEpoch:0,Et=zi?.adapter===n&&s===t.contentVersion&&Yu>0&&Yu===Ie?Nu?.parentChangesSince(zi.objectMapEpoch)??null:null,In=(zi&&Et?Efn(lc,zi.structuralRows,Et.changedParentIds):null)??Wwt(lc,new Set),pr=xfn(afn(mdn(In,n),In,Ur=>Jn.isComponentRoot(Ur)),Cs);return{adapter:n,contentVersion:s,objectMapEpoch:Fl,marked:Jn,internals:Cs,hierarchyView:lc,structuralRows:In,defaultExpansion:pr,index:Pfn(In)}}),{marked:dl,internals:bu,hierarchyView:Al,structuralRows:Ku,defaultExpansion:pl}=Au,gs=zi=>en.current.get(zi)??mfn(_a,zi)??pl.get(zi)??!0,Xu=En.current;if(Xu?.adapter!==n||Xu.selection!==fa){for(const Jn of Gwt(Au.index,Nt))gs(Jn)||(en.current.set(Jn,!0),No.current+=1);[...Nt].every(Jn=>Au.index.pathKeysByNodeId.has(Jn))&&(En.current={adapter:n,selection:fa})}const $r=zi=>gs(zi.node.id),Sl=Ja.length===0&&(N3r()||t.playState!=="stopped"),Rl=gdn(Yr.current,Sl?Ifn(Au.index,Nt):ldn),mi=ii.current.collapsed([Au,No.current,_a,Dc],()=>{const zi=Dc?Ku.find(Cs=>!Cs.more&&Cs.node.id===Dc)??null:null,Jn=new Set(Ku.filter(Cs=>!Cs.more&&Cs.hasChildren&&!$r(Cs)).map(Cs=>Cs.pathKey));if(zi){Jn.delete(zi.pathKey);for(const Cs of sUe(zi.pathKey))Jn.delete(Cs)}return{scopeRow:zi,effectiveCollapsedPaths:Jn}}),{scopeRow:tu,effectiveCollapsedPaths:Wc}=mi,Ao=ii.current.browse([Au,mi,Ja,Sl,Sl?Nfn(Rl):""],()=>{const zi=Wwt(Al,Wc,Rl,Sl),Jn=Ja?hdn(Ku,Ja,bu.isInternal):null,Cs=Jn?Ku.filter(Fl=>Jn.has(Fl.pathKey)):zi,Nu=(tu?Cs.filter(Fl=>Fl.pathKey.startsWith(`${tu.pathKey}.`)).map(Fl=>({...Fl,depth:Math.max(0,Fl.depth-tu.depth-1)})):Cs).filter(Fl=>{if(kme(n,Fl.node.id))return!0;let Yu=Fl.node.parentId;for(;Yu;){const Ie=lUe(n,Yu);if(Ie&&oq(Ie.worldId))return!1;Yu=Al.node(Yu)?.parentId??null}return!0});return{rows:Ja?Nu:Nu.filter(Fl=>!Fl.hiddenByCollapse)}}),{rows:ia}=Ao,Du=Ye.useMemo(()=>ia.some(zi=>!zi.more&&n.inspector?.get(zi.node.id,"exclude")!==void 0),[ia,n,g,s]);Ye.useEffect(()=>{Qt(0),Tt.current&&(Tt.current.scrollTop=0)},[Ja]);const gp=Tt.current?.clientHeight||sdn,Id=ROe(Tt.current),{start:ea,end:Pu}=ia.length>cdn?kfn(ia.length,tr,gp,Id,odn):{start:0,end:ia.length},Ls=ia.slice(ea,Pu),Ff=ea*Id,Hs=(ia.length-Pu)*Id,Ds=Ye.useCallback(zi=>{const Jn=Ku.filter(Cs=>Cs.hasChildren).map(Cs=>[Cs.node.id,zi]);for(const[Cs,lc]of Jn)en.current.set(Cs,lc);Uwt(_a,Jn),No.current+=1,ji()},[_a,Ku]),Oc={rows:ia,window:{start:ea,end:Pu},searchTerm:Ja||null,scopeId:Dc,isExpanded:$r,isInternal:zi=>bu.isInternal(zi),isComponentRoot:zi=>dl.isComponentRoot(zi),foldedInternalCount:zi=>dl.internalChildren?.(zi)?.length??0,expandAll:()=>Ds(!0),collapseAll:()=>Ds(!1)};Ye.useEffect(()=>(nnn(Oc),()=>onn(Oc)),[Oc]);const Ze=Ye.useRef({adapter:n,rows:ia,selectedIds:Nt,structuralRows:Ku,isExpanded:$r,projectIdentity:_a});Ze.current={adapter:n,rows:ia,selectedIds:Nt,structuralRows:Ku,isExpanded:$r,projectIdentity:_a};const jt=Ye.useCallback((zi,Jn)=>{const Cs=Ze.current,lc=!Cs.isExpanded(zi),Nu=[[zi.node.id,lc]];if(Jn){const Fl=`${zi.pathKey}.`;for(const Yu of Cs.structuralRows)Yu.hasChildren&&Yu.pathKey.startsWith(Fl)&&Nu.push([Yu.node.id,lc])}for(const[Fl,Yu]of Nu)en.current.set(Fl,Yu);Uwt(Cs.projectIdentity,Nu),No.current+=1,ji()},[]),mt=Ye.useCallback(()=>{en.current.clear();for(const zi of Gwt(Au.index,Nt))en.current.set(zi,!0);hfn(_a),No.current+=1,ji()},[_a,fa,Au]),xt=Ye.useCallback(zi=>{const Jn=Yr.current;Jn.set(zi,(Jn.get(zi)??nye)+nye),No.current+=1,ji()},[]),xr=Ye.useCallback(zi=>{Z3r(n,zi)},[n,t]);Ye.useEffect(()=>{if(!fa){On.current=null;return}const zi=On.current;if(zi?.adapter===n&&zi.selection===fa)return;On.current={adapter:n,selection:fa};const Jn=ia.findIndex(Yu=>Nt.has(Yu.node.id)),Cs=Tt.current;if(Jn<0||!Cs)return;const lc=ROe(Cs),Nu=Jn*lc,Fl=Nu+lc;Nu<Cs.scrollTop?Cs.scrollTop=Nu:Fl>Cs.scrollTop+Cs.clientHeight&&(Cs.scrollTop=Math.max(0,Fl-Cs.clientHeight)),Qt(Cs.scrollTop)},[n,ia,Nt,fa]);const Vn=Ye.useCallback((zi,Jn)=>{const Cs=Ze.current;if(Cs.adapter.selection){if(zi.metaKey||zi.ctrlKey){const lc=new Set(Cs.selectedIds);lc.has(Jn)?lc.delete(Jn):lc.add(Jn),c0(Cs.adapter,[...lc])}else if(zi.shiftKey&&cs.current){const lc=Cs.rows.findIndex(Fl=>Fl.node.id===cs.current),Nu=Cs.rows.findIndex(Fl=>Fl.node.id===Jn);if(lc>=0&&Nu>=0){const Fl=Math.min(lc,Nu),Yu=Math.max(lc,Nu),Ie=Cs.rows.slice(Fl,Yu+1).filter(Et=>!Et.more).map(Et=>Et.node.id);c0(Cs.adapter,Ie)}}else c0(Cs.adapter,[Jn]);cs.current=Jn}},[]),eo=Ye.useCallback((zi,Jn)=>{const Cs=Ze.current.selectedIds,lc=Cs.has(Jn)?[...Cs]:[Jn];zt(lc),zi.dataTransfer.effectAllowed="move",zi.dataTransfer.setData(OOe,JSON.stringify(lc)),zi.dataTransfer.setData("text/plain",Jn)},[]),bi=Ye.useCallback((zi,Jn)=>{Pe({x:zi.clientX,y:zi.clientY,nodeId:Jn})},[]),ta=Ye.useCallback(zi=>{const Jn=zi.dataTransfer.types.includes(OOe),Cs=zi.dataTransfer.types.includes(NOe);if(!Jn&&!Cs)return;zi.preventDefault(),zi.dataTransfer.dropEffect=Jn?"move":"copy",ft.current=null;const lc=Tt.current.getBoundingClientRect(),Nu=Tt.current.scrollTop,Fl=zi.clientY-lc.top+Nu,Yu=ROe(Tt.current),Ie=Math.floor(Fl/Yu);if(Ie>=ia.length){qe(null),Pt(!0),Jn&&Wt&&(ft.current=zwt({hasStructureWritePath:Zwt(n,Wt[0]),targetIsInternal:!1}));return}Pt(!1);const Et=Ie>=0?ia[Ie]:void 0;if(!Et||Et.more){qe(null);return}const Nr=zwt({hasStructureWritePath:Jn?Zwt(n,Et.node.id):!0,targetIsInternal:bu.isInternal(Et.node.id)});if(Nr!==null){ft.current=Nr,qe(null);return}const In=Fl-Ie*Yu;let pr;if(In<Yu*.25?pr="before":In>Yu*.75?pr="after":pr="child",Jn&&Wt){const Ur=Et.node.id;if(Wt.includes(Ur)||ddn(Ur,Wt,n))return;if(!lfn(n,Wt,Ur)){qe(null);return}}if(kme(n,Et.node.id)&&pr!=="child"&&(pr="child"),(Et.node.role==="document"||Et.node.role==="story")&&(pr="child"),Et.node.role==="folder"||Et.node.role==="boundary"){qe(null);return}qe({nodeId:Et.node.id,zone:pr})},[ia,Wt,n,bu]),ic=Ye.useCallback(()=>{qe(null),Pt(!1),zt(null),ft.current=null},[]),Ps=Ye.useCallback(zi=>{zi.preventDefault(),zi.stopPropagation();const Jn=we,Cs=bt,lc=ft.current;if(qe(null),Pt(!1),zt(null),ft.current=null,lc!==null){i0(lc);return}const Nu=n.structure,Fl=zi.dataTransfer.getData(OOe);if(Fl&&Nu){const Ie=JSON.parse(Fl);if(Cs){for(const Li of Ie)QO(n,Li,null);return}if(!Jn)return;const Et=ia.find(Li=>Li.node.id===Jn.nodeId);if(!Et)return;const Nr=Et.node.id;if(Jn.zone==="child"){for(const Li of Ie)QO(n,Li,Nr);return}const In=Et.node.parentId,pr=pdn(n,In).filter(Li=>!Ie.includes(Li)),Ur=pr.indexOf(Nr),Ei=Jn.zone==="before"?Nr:Ur>=0?pr[Ur+1]??null:null;for(const Li of Ie)(n.hierarchy.node(Li)?.parentId??null)!==In&&QO(n,Li,In??null),g$e(n,Li,Ei);return}const Yu=zi.dataTransfer.getData(NOe);if(Yu&&n.assetDrop)try{const Ie=JSON.parse(Yu);if(Ie.kind==="scene")return;const Et={item:Ie.component??{kind:"file",name:Ie.name??Ie.path.split("/").pop()??Ie.path}};if(Cs){n.assetDrop.accepts("",Ie.path,Et)&&zFe(n,"",Ie.path,Et);return}if(!Jn)return;const Nr=ia.find(pr=>pr.node.id===Jn.nodeId);if(!Nr)return;const In=Nr.node.id;n.assetDrop.accepts(In,Ie.path,Et)&&zFe(n,In,Ie.path,Et)}catch{}},[we,bt,ia,n]),Iu=PPt(n)??"Untitled";return q.jsxs(Jye,{name:null,hideHeader:!0,onPointerDown:()=>CR("hierarchy"),onDragOver:zi=>{zi.dataTransfer.types.includes(NOe)&&(zi.preventDefault(),zi.dataTransfer.dropEffect="copy")},style:{flex:1,minWidth:0,minHeight:0,borderRight:`1px solid ${Go.boundary.default}`},children:[q.jsx("span",{"data-testid":"scene-name","data-scene":Iu,style:{display:"none"},children:Iu}),q.jsx(kdn,{slot:Ce,search:pe,setSearch:ue,adapter:n,createTargetId:js,onCollapseAll:()=>Ds(!1),onResetExpansion:mt,onExpandAll:()=>Ds(!0)}),Dc&&q.jsxs("nav",{"data-testid":"selection-scope-breadcrumb","aria-label":"Selection scope",style:{display:"flex",alignItems:"center",gap:3,minHeight:26,padding:`0 ${R_[2]}px`,borderBottom:`1px solid ${Go.boundary.default}`,overflow:"hidden",flexShrink:0},children:[q.jsx(Ms,{variant:"ghost",size:"compact","data-testid":"selection-scope-root",onClick:()=>jgt(n,null),children:"Game"}),Ni.map((zi,Jn)=>{const Cs=n.hierarchy.node(zi);if(!Cs)return null;const lc=Jn===Ni.length-1;return q.jsxs("span",{style:{display:"flex",alignItems:"center",minWidth:0},children:[q.jsx("span",{"aria-hidden":"true",style:{color:Go.content.muted},children:"/"}),q.jsx(Ms,{variant:"ghost",size:"compact","data-testid":"selection-scope-crumb","data-scope-current":lc?"true":void 0,"aria-current":lc?"location":void 0,onClick:()=>jgt(n,zi),style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:Cs.label})]},zi)})]}),q.jsxs("div",{ref:Tt,"data-testid":"ingest-hierarchy",className:"volter-content-frost volter-tree-body","data-volter-region":vn,style:{flex:1,minHeight:0,overflow:"auto",position:"relative",pointerEvents:"auto"},onDragOver:ta,onDrop:Ps,onDragEnd:ic,onScroll:zi=>Qt(zi.currentTarget.scrollTop),onDragLeave:zi=>{Tt.current?.contains(zi.relatedTarget)||(qe(null),Pt(!1))},children:[q.jsx("div",{"data-testid":"game-hierarchy-spacer-top",style:{height:Ff}}),Ls.map((zi,Jn)=>zi.more?q.jsx(Pdn,{row:zi,onReveal:xt},Hwt(zi)):q.jsx(Odn,{row:zi,rowIndex:ea+Jn,prevDepth:ia[ea+Jn-1]?.depth??-1,nextDepth:ia[ea+Jn+1]?.depth??-1,adapter:n,store:t,isSelected:Nt.has(zi.node.id),isSelectionActive:Bc===zi.node.id,isEditing:be===zi.node.id,isCollapsed:Ja?!1:Wc.has(zi.pathKey),dropZone:we&&we.nodeId===zi.node.id?we.zone:null,isDragged:Wt?.includes(zi.node.id)??!1,isInternal:bu.isInternal(zi.node.id),threeRootId:se,searchTerm:Ja,lockCache:J.current,warningCache:$.current,editabilityVersion:G,adapterVersion:g,onToggleOpen:jt,onStartEditing:X,onContextMenu:bi,onDragStart:eo,onClick:Vn,onEnterScope:xr,typeSuffixShown:c,instanceRuleShown:d,restrictionColumns:m,excludeColumnShown:Du,remoteSelectionColors:D.get(zi.node.id)??ndn},Hwt(zi))),q.jsx("div",{"data-testid":"game-hierarchy-spacer-bottom",style:{height:Hs}}),q.jsx("div",{style:{minHeight:40}}),bt&&q.jsx("div",{style:{position:"absolute",left:0,right:0,top:ia.length*Id,height:2,background:Go.accent.default,pointerEvents:"none",zIndex:PI.overlayLow}})]}),Ae&&(()=>{const zi=Al.node(Ae.nodeId),Jn=zi?kme(n,zi.id)||uUe(n,zi.id):!1;return q.jsx(Adn,{state:Ae,adapter:n,store:t,isGroupNode:Jn,isInternal:bu.isInternal(Ae.nodeId),onRename:X,onClose:()=>Pe(null)})})()]})}function Ijt(){const t=Yv(),[,n]=Ye.useReducer(c=>c+1,0);Ye.useSyncExternalStore(o2,K1),Ye.useSyncExternalStore(Eee,AD),Ye.useSyncExternalStore(tdn,oye);const{adapter:s}=Cm(t);return Ye.useEffect(()=>s.subscribe?.(n),[s]),q.jsx(Rdn,{store:t,adapter:s},tfn(s))}function Fdn(){const t=Yv(),n=Y0(t),s=n.structure,c=[...t.selectedEntityIds],d=c[0],m=d?n.hierarchy.node(d)?.parentId??null:null,g=mve(),S=nMt(),k=Ye.useSyncExternalStore(u2,AFe,AFe);Ye.useSyncExternalStore(SDt,whe,whe),Ye.useSyncExternalStore(Kye,mhe,mhe),Ye.useSyncExternalStore(FDt,Phe,Phe),Ye.useSyncExternalStore(vLe,YB,YB);const A=Ae=>{const Pe=jme(Ae);return Pe.length===0?null:q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),Pe.map(be=>q.jsx(Jc,{...be.testId?{"data-testid":be.testId}:{},disabled:be.disabled?.({})??!1,onSelect:ue(()=>be.execute({})),children:typeof be.label=="function"?be.label():be.label},be.id))]})},F=Ye.useSyncExternalStore(fMt,N$,N$),D=Ye.useSyncExternalStore(TDt,zS,zS),[J,$]=Ye.useState(null);pjt(()=>J?Kvr():"");const G=Ye.useRef(null),se=Ye.useRef({}),pe=Ae=>se.current[Ae]??={current:null},ue=Ae=>()=>{$(null),Promise.resolve().then(Ae).catch(Pe=>Qs.error(`The menu command failed: ${Pe instanceof Error?Pe.message:String(Pe)}`,"editor"))},Ce={edit:q.jsxs(q.Fragment,{children:[q.jsx(Jc,{disabled:S.busy||!S.canUndo,onSelect:ue(()=>g.undo()),children:S.undoLabel?`Undo ${S.undoLabel}`:"Undo"}),q.jsx(Jc,{disabled:S.busy||!S.canRedo,onSelect:ue(()=>g.redo()),children:S.redoLabel?`Redo ${S.redoLabel}`:"Redo"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(WVe),children:"Undo History…"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:c.length===0||!s?.cut||!(s.canCopy?.(c)??!0),onSelect:ue(()=>UVe(t)),children:"Cut"}),q.jsx(Jc,{disabled:c.length===0||!s?.copy||!(s.canCopy?.(c)??!0),onSelect:ue(()=>VVe(t)),children:"Copy"}),q.jsx(Jc,{disabled:!s?.paste||!(s.canPaste?.(m)??!0),onSelect:ue(()=>JVe(t)),children:"Paste"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void bve(t)),children:"Duplicate"}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void Sve(t)),children:"Delete"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(()=>MRt(t)),children:"Select All"}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>t.select(null)),children:"Deselect All"})]}),view:q.jsxs(q.Fragment,{children:[q.jsx(Jc,{onSelect:ue(()=>DVe()),children:"Command Palette…"}),q.jsx(Jc,{onSelect:ue(async()=>{const Ae=yrn(t);try{await navigator.clipboard.writeText(Ae),Qs.log("Copied a link to the current editor view.","editor")}catch(Pe){Qs.error(`Could not copy the editor view link: ${Pe instanceof Error?Pe.message:String(Pe)}`,"editor")}}),children:"Copy View Link"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(JBe),children:"Toggle Focus Mode"}),A("view")]}),window:q.jsxs(q.Fragment,{children:[DN().filter(Ae=>Uk(Ae.id)).map(Ae=>q.jsxs(Jc,{role:"menuitemradio","aria-checked":D===Ae.id,"data-testid":`workspace-${Ae.id}`,title:Ae.description,onSelect:ue(()=>a2(Ae.id)),children:[q.jsx(dc,{icon:Kk.status.success,style:{opacity:D===Ae.id?1:0}}),"Workspace: ",Ae.title]},Ae.id)),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(pve),children:"Console"}),q.jsx(Jc,{onSelect:ue(()=>vC(iee.lightExplorer.id)),children:"Light Explorer"}),q.jsx(Jc,{onSelect:ue(()=>UBe("asset-library")),children:"Asset Library"}),q.jsx(Jc,{onSelect:ue(()=>vC("generations")),children:"Generations"}),A("window")]}),debug:q.jsx(q.Fragment,{children:A("debug")}),tools:q.jsxs(q.Fragment,{children:[q.jsxs(Jc,{onSelect:ue(()=>wve()),children:["Project Tools…",F.tools.length>0?` (${F.tools.length})`:""]}),q.jsx(t2,{}),k.length?k.map(Ae=>q.jsx(Jc,{onSelect:ue(()=>{Ae.point==="workspace.document"?tA(Ae.id):vC(`tool:${Ae.id}`)}),children:Ae.title},Ae.id)):q.jsx(Jc,{disabled:!0,children:"No custom project tools"}),A("tools")]}),help:jme("help").length>0?A("help"):null};return q.jsx("div",{ref:G,"data-testid":"app-menubar",style:{display:"flex",alignItems:"stretch",marginLeft:"var(--volter-space-2)"},children:["edit","view","window","debug","tools","help"].filter(Ae=>Ce[Ae]!==null).map(Ae=>q.jsxs("div",{ref:pe(Ae),style:{position:"relative"},children:[q.jsx(SBe,{"data-testid":`app-menu-${Ae}`,"aria-haspopup":"menu","aria-expanded":J===Ae,onClick:()=>$(Pe=>Pe===Ae?null:Ae),onKeyDown:Pe=>{Pe.key==="ArrowDown"&&(Pe.preventDefault(),$(Ae))},onPointerEnter:()=>{J&&$(Ae)},style:{textTransform:"capitalize"},children:Ae}),J===Ae&&q.jsx(xBe,{anchorRef:pe(Ae),dismissBoundaryRef:pe(Ae),align:"start",gap:0,clamp:!0,autoFocusFirst:!0,onDismiss:()=>{const Pe=G.current?.querySelector(`[data-testid="app-menu-${Ae}"]`);$(null),requestAnimationFrame(()=>Pe?.focus())},style:{minWidth:190},children:Ce[Ae]})]},Ae))})}const Mdn=new Map,eTt=new Set;let jdn=0;function Ldn(t){return Mdn.get(t)??Bdn}const Bdn=[];function $dn(t){return eTt.add(t),()=>eTt.delete(t)}function tTt(){return jdn}function Ame({slot:t}){return Ye.useSyncExternalStore($dn,tTt,tTt),q.jsx(q.Fragment,{children:Ldn(t).map(n=>q.jsx(n.Content,{},n.owner))})}const NO=[],Wje=new Set;let Njt=0;function rTt(){Njt++;for(const t of Wje)t()}function qdn(t){const n=NO.findIndex(s=>s.owner===t.owner);return n>=0&&NO.splice(n,1),NO.push(t),NO.sort((s,c)=>(s.order??0)-(c.order??0)),rTt(),()=>{const s=NO.indexOf(t);s<0||(NO.splice(s,1),rTt())}}async function zdn(t){const n=new Set,s=[];for(const c of NO){let d;try{d=await c.harnesses(t)}catch{continue}for(const m of d)n.has(m.id)||(n.add(m.id),s.push(m))}return s}function Vdn(t){return Wje.add(t),()=>{Wje.delete(t)}}function nTt(){return Njt}async function pA(t,n){const s=await fetch(`/__editor/share-control${t}`,{...n,headers:{...n?.body?{"Content-Type":"application/json"}:{},...n?.headers}});if(s.status!==204&&of(s,`Git request ${t} failed`),!s.ok){const c=await s.json().catch(()=>null);throw new Error(typeof c?.error=="string"?c.error:`Git request failed (${s.status}).`)}return s.status===204?void 0:await s.json()}async function Udn(){const t=await fetch("/__editor/git/status");return L_(t,"Git status failed")}function Jdn(t){return pA("/git/checkpoint",{method:"POST",body:JSON.stringify(t)})}function Wdn(t){return pA("/git/publish",{method:"POST",...t?{signal:t}:{}})}function iTt(t){return pA("/git/stage",{method:"POST",body:JSON.stringify(t)})}function Hdn(t){return pA("/git/fetch",{method:"POST",...t?{signal:t}:{}})}function Gdn(t){return pA("/git/update",{method:"POST",...t?{signal:t}:{}})}function oTt(t){return pA("/git/rebase",{method:"POST",body:JSON.stringify({action:t})})}function Kdn(){return pA("/git/readiness",{method:"POST"})}function Xdn(t){return pA("/git/pull-request",{method:"POST",body:JSON.stringify(t)})}function Ydn(){return pA("/git/pull-request/status")}function Zdn(t){return pA("/git/pull-request/merge",{method:"POST",...t?{signal:t}:{}})}function Qdn(){const[t,n]=Ye.useState(null),[s,c]=Ye.useState(!1),[d,m]=Ye.useState(null),[g,S]=Ye.useState([]),[k,A]=Ye.useState(""),[F,D]=Ye.useState(null),[J,$]=Ye.useState(null),[G,se]=Ye.useState(null),[pe,ue]=Ye.useState(!1),Ce=Ye.useRef(null);Ye.useEffect(()=>{Udn().then(we=>{m(we),S(we.changed.map(qe=>qe.path))}).catch(we=>n(String(we)))},[]);const Ae=we=>{m(we),S(qe=>qe.filter(bt=>we.changed.some(Pt=>Pt.path===bt)))},Pe=async(we,qe,bt)=>{const Pt=new AbortController;Ce.current=Pt,$(bt??null),c(!0),n(null),D(null);try{Ae(await we(Pt.signal)),D(qe)}catch(Wt){n(Wt instanceof Error?Wt.message:String(Wt))}finally{Ce.current===Pt&&(Ce.current=null),$(null),c(!1)}},be=we=>{se(null),Xdn({title:we}).then(qe=>{Ae(qe.status),D(`Pull request: ${qe.url}`)}).catch(qe=>n(String(qe)))},X=()=>{ue(!1);const we=new AbortController;Ce.current=we,$("Merging pull request"),c(!0),Zdn(we.signal).then(qe=>D(`Merged pull request: ${qe.url}`)).catch(qe=>n(String(qe))).finally(()=>{Ce.current===we&&(Ce.current=null),$(null),c(!1)})};return q.jsxs("section",{className:"volter-worktree-version-control",children:[t&&q.jsx("div",{style:{color:Go.semantic.danger,fontSize:YY.sm,marginBottom:5},children:t}),d?.available?q.jsxs("details",{style:{marginTop:G0[4]},children:[q.jsxs("summary",{style:{cursor:"pointer",fontSize:YY.sm},children:["Git · ",d.branch??"detached"," ·"," ",d.dirty?`${d.changed.length} changed`:"clean",d.baseAhead!==null&&d.baseBehind!==null?` · base +${d.baseAhead}/-${d.baseBehind}`:"",d.ahead!==null&&d.behind!==null?` · remote +${d.ahead}/-${d.behind}`:""]}),q.jsxs("div",{style:{display:"grid",gap:5,marginTop:5,fontSize:YY.sm},children:[q.jsxs("span",{style:{color:Go.content.dim},children:[d.repositoryId.slice(0,20)," · ",d.worktreeId.slice(0,20)]}),d.changed.map(we=>{const qe=d.hunks.filter(bt=>bt.path===we.path);return q.jsxs("div",{style:{display:"grid",gap:3},children:[q.jsxs("div",{style:{display:"flex",gap:5,alignItems:"center"},children:[q.jsx(TD,{"aria-label":`Include ${we.path} in checkpoint`,checked:g.includes(we.path),onChange:bt=>S(Pt=>bt.target.checked?[...Pt,we.path]:Pt.filter(Wt=>Wt!==we.path))}),q.jsxs("code",{style:{minWidth:0,flex:1},children:[we.index,we.worktree," ",we.path]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>iTt({path:we.path,staged:we.index!==" "&&we.index!=="?"}),we.index!==" "&&we.index!=="?"?`Unstaged ${we.path}.`:`Staged ${we.path}.`),children:we.index!==" "&&we.index!=="?"?"Unstage file":"Stage file"})]}),qe.map(bt=>q.jsxs("div",{style:{display:"flex",gap:5,paddingLeft:22,alignItems:"center"},children:[q.jsxs("code",{style:{minWidth:0,flex:1,color:Go.content.dim},children:[bt.header," · +",bt.additions,"/-",bt.deletions]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>iTt({path:bt.path,hunkId:bt.id,staged:bt.staged}),bt.staged?"Hunk unstaged.":"Hunk staged."),children:bt.staged?"Unstage hunk":"Stage hunk"})]},bt.id))]},we.path)}),d.rebaseInProgress&&q.jsxs("div",{role:"alert",style:{display:"grid",gap:5,color:Go.semantic.warning},children:[q.jsxs("span",{children:["Rebase paused",d.conflicts.length>0?` · conflicts: ${d.conflicts.join(", ")}`:""]}),q.jsxs("span",{style:{display:"flex",gap:5},children:[q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.conflicts.length>0,onClick:()=>void Pe(()=>oTt("continue"),"Rebase continued."),children:"Continue rebase"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>oTt("abort"),"Rebase aborted."),children:"Abort rebase"})]})]}),d.dirty&&q.jsxs("div",{style:{display:"flex",gap:5},children:[q.jsx(Zm,{"aria-label":"Git checkpoint message",placeholder:"Checkpoint message",value:k,onChange:we=>A(we.target.value),style:{minWidth:0,flex:1}}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||!k.trim()||g.length===0,onClick:()=>void Pe(()=>Jdn({paths:g,message:k}),"Selected paths checkpointed with verified account attribution.").then(()=>A("")),children:"Checkpoint"})]}),q.jsxs("div",{style:{display:"flex",gap:5,flexWrap:"wrap"},children:[q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||!d.remoteUrl,onClick:()=>void Pe(Hdn,"Remote refs fetched and pruned.","Fetching"),children:"Fetch"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||!d.remoteUrl,onClick:()=>void Pe(Wdn,"Branch published.","Publishing"),children:"Publish"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||!d.baseRef,onClick:()=>void Pe(Gdn,"Branch rebased onto its base.","Fetching and rebasing"),children:"Update from base"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s,onClick:()=>void Kdn().then(we=>{Ae(we.status),D(we.ready?"Merge-ready; no merge was performed.":we.reasons.join(" "))}).catch(we=>n(String(we))),children:"Check merge readiness"}),d.github&&d.upstream&&q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s,onClick:()=>se(k||d.branch||"Volter Editor changes"),children:"Create PR"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Ydn().then(we=>D(we.available?`PR ${we.state??"open"} · ${we.mergeState??"status unknown"} · checks ${we.checks?.passed??0} passed/${we.checks?.pending??0} pending/${we.checks?.failed??0} failed${we.reviewDecision?` · review ${we.reviewDecision}`:""}${we.url?` · ${we.url}`:""}`:we.reason??"No pull request found.")).catch(we=>n(String(we))),children:"PR status"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||d.rebaseInProgress,onClick:()=>ue(!0),children:"Merge PR…"})]})]}),J&&q.jsxs("div",{role:"status",style:{display:"flex",gap:5,alignItems:"center"},children:[q.jsxs("span",{children:[J,"…"]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",onClick:()=>Ce.current?.abort(),children:"Cancel"})]}),d.history.length>0&&q.jsxs("details",{children:[q.jsx("summary",{style:{cursor:"pointer",color:Go.content.dim},children:"Recent history"}),q.jsx("div",{style:{display:"grid",gap:3,paddingTop:G0[2]},children:d.history.map(we=>q.jsxs("span",{title:`${we.author} · ${we.authoredAt}`,children:[q.jsx("code",{children:we.shortSha})," · ",we.subject]},we.sha))})]}),F&&q.jsx("span",{style:{color:Go.semantic.success},children:F})]})]}):q.jsx("span",{style:{color:Go.content.dim,fontSize:YY.sm},children:"Loading version control…"}),G!==null&&q.jsxs(DRe,{labelledBy:"volter-pull-request-title-heading",onDismiss:()=>se(null),children:[q.jsx(PRe,{titleId:"volter-pull-request-title-heading",title:"Create pull request",description:`Opens a pull request for ${d?.branch??"this branch"} on its remote.`}),q.jsx(G3t,{children:q.jsx(Zm,{"aria-label":"Pull request title",autoFocus:!0,value:G,onChange:we=>se(we.target.value),onKeyDown:we=>{we.key!=="Enter"||!G.trim()||(we.preventDefault(),be(G.trim()))}})}),q.jsxs(IRe,{children:[q.jsx(Ms,{type:"button",variant:"ghost",onClick:()=>se(null),children:"Cancel"}),q.jsx(Ms,{type:"button",variant:"primary",disabled:!G.trim(),onClick:()=>be(G.trim()),children:"Create pull request"})]})]}),pe&&q.jsxs(DRe,{labelledBy:"volter-merge-pr-heading",onDismiss:()=>ue(!1),children:[q.jsx(PRe,{titleId:"volter-merge-pr-heading",title:"Merge pull request",description:`Merging the pull request for ${d?.branch??"this branch"} changes the remote repository.`}),q.jsxs(IRe,{children:[q.jsx(Ms,{type:"button",variant:"ghost",onClick:()=>ue(!1),children:"Cancel"}),q.jsx(Ms,{type:"button",variant:"primary",onClick:X,children:"Merge pull request"})]})]})]})}qdn({owner:"editor-core:supercode",harnesses:async()=>QZr()});const epn={worktrees:[],branches:[]};function tpn(t){return`agent/${t.toLocaleLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,42)||"task"}`}function rpn({currentLabel:t,onDone:n,onError:s}){const[c,d]=Ye.useState(""),[m,g]=Ye.useState("agent/task"),[S,k]=Ye.useState(!1),[A,F]=Ye.useState("worktree"),[D,J]=Ye.useState([]),[$,G]=Ye.useState(""),[se,pe]=Ye.useState(!1),ue=Ye.useSyncExternalStore(Vdn,nTt,nTt);return Ye.useEffect(()=>{let Ce=!0;return zdn(A).then(Ae=>{Ce&&(J(Ae),G(Pe=>Ae.some(be=>be.id===Pe)?Pe:Ae[0]?.id??""))}),()=>{Ce=!1}},[A,ue]),q.jsxs("div",{className:"volter-worktree-delegate",role:"group","aria-label":"Delegate task",children:[q.jsx(_p,{as:"div",variant:"label",children:"Delegate task"}),q.jsx(kBe,{"aria-label":"Task for the agent",placeholder:"Describe a bounded task…",value:c,onChange:Ce=>{const Ae=Ce.target.value;d(Ae),S||g(tpn(Ae))}}),q.jsxs("label",{children:[q.jsx("span",{children:"Harness"}),q.jsxs(Iw,{value:$,onChange:Ce=>G(Ce.target.value),children:[D.length===0&&q.jsx("option",{value:"",children:"No harness ready"}),D.map(Ce=>q.jsx("option",{value:Ce.id,children:Ce.label},Ce.id))]})]}),q.jsxs("label",{children:[q.jsx("span",{children:"Isolation"}),q.jsxs(Iw,{value:A,onChange:Ce=>{F(Ce.target.value)},children:[q.jsx("option",{value:"worktree",children:"New worktree (recommended)"}),q.jsx("option",{value:"current",children:"Current worktree (shared files)"})]})]}),A!=="current"&&q.jsxs("label",{children:[q.jsx("span",{children:"Branch"}),q.jsx(Zm,{"aria-label":"Delegated branch",value:m,onChange:Ce=>{k(!0),g(Ce.target.value)}})]}),q.jsx(_p,{as:"div",variant:"caption",tone:"dim",children:A==="worktree"?`Creates a sibling checkout from ${t}, opens its editor, and starts the agent there.`:"The agent edits the files in this live worktree alongside you."}),q.jsx(Ms,{type:"button",variant:"primary",size:"compact",disabled:se||!c.trim()||!$||A!=="current"&&!m.trim(),onClick:()=>{pe(!0),rQr({task:c.trim(),harness:$,isolation:A,...A!=="current"?{branch:m.trim(),from:"HEAD"}:{}}).then(n).catch(Ce=>s(Ce instanceof Error?Ce.message:String(Ce))).finally(()=>pe(!1))},children:se?"Delegating…":"Delegate"})]})}function npn(t){return t.replace(/[\\/]$/,"").split(/[\\/]/).at(-1)??t}function ipn(t){const n=t.current?["Current worktree"]:[npn(t.root)];t.sessions.length>0&&n.push("editor running"),t.dirty?n.push("uncommitted changes"):n.push("clean"),t.ahead&&n.push(`${t.ahead} ahead`),t.behind&&n.push(`${t.behind} behind`);const s=fUe(t);if(s.length===1){const c=s[0];n.push(c.kind==="agent"?`${c.displayName} ${c.status}${c.changeCount>0?` · ${c.changeCount} changes`:""}`:`${c.displayName} here`)}else s.length>1&&n.push(`${s.length} collaborators here`);return n.join(" · ")}function fUe(t){const n=new Map;for(const s of t.sessions)for(const c of s.presence?.participants??[]){const d=n.get(c.participantId);(!d||Date.parse(d.lastSeenAt)<Date.parse(c.lastSeenAt))&&n.set(c.participantId,c)}return[...n.values()].sort((s,c)=>{const d={"needs-input":0,active:1,idle:2,done:3};return d[s.status]-d[c.status]||s.displayName.localeCompare(c.displayName)})}function opn(t){return t.kind==="agent"?"AI":t.displayName.split(/\s+/).slice(0,2).map(n=>n[0]?.toLocaleUpperCase()??"").join("")}function sTt({worktree:t}){const n=fUe(t);if(n.length===0)return null;const s=n.slice(0,3);return q.jsxs("span",{className:"volter-worktree-presence",role:"img","aria-label":n.map(c=>`${c.displayName}, ${c.status}`).join("; "),children:[s.map(c=>q.jsx("span",{className:"volter-worktree-avatar","data-kind":c.kind,"data-status":c.status,style:{"--volter-participant-color":c.color},title:`${c.displayName} · ${c.kind} · ${c.status}`,"aria-hidden":"true",children:opn(c)},c.participantId)),n.length>s.length&&q.jsxs("span",{className:"volter-worktree-avatar volter-worktree-avatar-more","aria-hidden":"true",children:["+",n.length-s.length]})]})}function aTt(t,...n){const s=t.trim().toLocaleLowerCase();return!s||n.some(c=>c?.toLocaleLowerCase().includes(s))}function cTt(t,n){return[+!t.current,Math.min(...fUe(t).map(s=>s.status==="needs-input"?0:s.status==="active"?1:s.status==="idle"?2:3)),+(t.branch===null),+(t.sessions.length===0),+!t.dirty,-(t.branch?n.get(t.branch)??0:0)]}function spn(t){return(n,s)=>{const c=cTt(n,t),d=cTt(s,t);return c.reduce((g,S,k)=>g||S-(d[k]??0),0)||(n.branch??n.root).localeCompare(s.branch??s.root)}}function apn(){const[t,n]=Ye.useState(epn),[s,c]=Ye.useState({branch:null,worktreeId:null}),[d,m]=Ye.useState(!1),[g,S]=Ye.useState(null),[k,A]=Ye.useState(null),F=Ye.useCallback(async(J=!1)=>{J||m(!0);try{n(await eQr()),A(null)}catch($){A($ instanceof Error?$.message:String($))}finally{J||m(!1)}},[]);return Ye.useEffect(()=>{if(L$)return;let J=!0;return ZZr().then($=>{J&&c($)}).catch(()=>{}),()=>{J=!1}},[]),{state:t,sessionIdentity:s,loading:d,busy:g,error:k,setError:A,refresh:F,run:async(J,$,G)=>{S(J),A(null);try{await $(),G()}catch(se){A(se instanceof Error?se.message:String(se))}finally{S(null)}}}}function cpn(){const t=Ye.useRef(null),[n,s]=Ye.useState(!1),[c,d]=Ye.useState(""),[m,g]=Ye.useState(!1),{state:S,sessionIdentity:k,loading:A,busy:F,error:D,setError:J,refresh:$,run:G}=apn();if(Ye.useEffect(()=>{n&&$()},[n,$]),L$)return null;const se=S.worktrees.find(ft=>ft.current),pe=se?.branch??k.branch??(S.worktrees.length>0||k.worktreeId?"detached":"Branches"),ue=pe!=="Branches",Ce=new Map(S.branches.map(ft=>[ft.name,ft.updatedAt])),Pe=[...S.worktrees].sort(spn(Ce)).filter(ft=>aTt(c,ft.branch,ft.root)),be=S.branches.filter(ft=>!ft.worktreeId&&aTt(c,ft.name)),X=Pe.slice(0,c.trim()?30:10),we=be.slice(0,c.trim()?50:20),qe=Pe.length-X.length,bt=be.length-we.length,Pt=c.trim(),Wt=S.branches.some(ft=>ft.name===Pt),zt=Pe.length>0||be.length>0;return q.jsxs("div",{className:"volter-worktree-switcher",children:[q.jsxs(SBe,{ref:t,className:"volter-worktree-trigger","aria-label":ue?`Branches and worktrees, current branch ${pe}${se?.dirty?", uncommitted changes":""}`:"Branches and worktrees","aria-expanded":n,title:ue?`Branches and worktrees — ${pe}${se?.dirty?" (uncommitted changes)":""}`:"Branches and worktrees",onClick:()=>{s(ft=>!ft),n||d("")},onKeyDown:ft=>{ft.key==="ArrowDown"&&(ft.preventDefault(),s(!0))},children:[q.jsx(dc,{icon:v0r}),se?.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"}),se&&q.jsx(sTt,{worktree:se})]}),n&&q.jsxs(xBe,{anchorRef:t,align:"start",clamp:!0,autoFocusFirst:!1,className:"volter-worktree-menu","aria-label":"Branches and worktrees",onDismiss:()=>s(!1),children:[q.jsxs("div",{className:"volter-worktree-search",children:[q.jsx(Zm,{autoFocus:!0,"aria-label":"Find a branch",placeholder:"Find a branch…",value:c,disabled:F!==null||A,onChange:ft=>d(ft.target.value)}),q.jsx(Ms,{variant:"ghost",size:"compact","aria-label":"Refresh branches and worktrees",title:"Refresh",disabled:F!==null,onClick:()=>void G("refresh",$,()=>{}),children:q.jsx(dc,{icon:FTt})})]}),q.jsx(t2,{}),q.jsxs("div",{className:"volter-worktree-results",children:[A&&S.worktrees.length===0&&q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-empty",children:"Loading branches…"}),X.length>0&&q.jsxs("section",{"aria-label":"Worktrees",children:[q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-section-label",children:"Worktrees"}),X.map(ft=>{const tr=ft.branch??"Detached HEAD";return q.jsxs("div",{className:"volter-worktree-row-shell",children:[q.jsxs(Jc,{className:"volter-worktree-menu-item","data-current":ft.current||void 0,disabled:ft.current||!ft.project||F!==null,"aria-current":ft.current?"true":void 0,title:ft.root,onSelect:()=>void G(ft.worktreeId,()=>tQr(ft.worktreeId),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:ft.current&&q.jsx(dc,{icon:fLe})}),q.jsxs("span",{className:"volter-worktree-row-copy",children:[q.jsxs("span",{className:"volter-worktree-row-title",children:[tr,ft.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"})]}),q.jsx("span",{className:"volter-worktree-row-detail",children:F===ft.worktreeId?"Opening…":ipn(ft)})]}),q.jsx(sTt,{worktree:ft})]}),!ft.current&&ft.sessions[0]?.sessionId&&q.jsx(Ms,{type:"button",size:"compact",variant:"ghost","aria-label":`Stop editor for ${tr}`,title:"Stop editor session",disabled:F!==null,onClick:()=>void G(`stop:${ft.worktreeId}`,()=>iQr(ft.worktreeId,ft.sessions[0].sessionId),()=>s(!1)),children:q.jsx(dc,{icon:BTt})}),!ft.current&&ft.sessions.length===0&&!ft.dirty&&q.jsx(Ms,{type:"button",size:"compact",variant:"ghost","aria-label":`Archive worktree ${tr}`,title:"Archive clean worktree",disabled:F!==null,onClick:()=>void G(`archive:${ft.worktreeId}`,()=>nQr(ft.worktreeId),()=>s(!1)),children:q.jsx(dc,{icon:aCt})})]},ft.worktreeId)}),qe>0&&q.jsxs(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-more",children:[qe," more worktrees — search to narrow"]})]}),we.length>0&&q.jsxs("section",{"aria-label":"Local branches",children:[q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-section-label",children:"Local branches"}),we.map(ft=>q.jsxs(Jc,{className:"volter-worktree-menu-item",disabled:F!==null,onSelect:()=>void G(ft.name,()=>QSt(ft.name),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon"}),q.jsxs("span",{className:"volter-worktree-row-copy",children:[q.jsx("span",{className:"volter-worktree-row-title",children:ft.name}),q.jsx("span",{className:"volter-worktree-row-detail",children:F===ft.name?"Creating worktree…":"Open in a new worktree"})]})]},ft.name)),bt>0&&q.jsxs(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-more",children:[bt," more ",Pt?"matches":"branches"," — search to narrow"]})]}),!A&&!zt&&!Pt&&q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-empty",children:"No branches found."})]}),Pt&&!Wt&&!A&&q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),q.jsxs(Jc,{className:"volter-worktree-create-command",disabled:F!==null,onSelect:()=>void G("create",()=>QSt(Pt),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:"+"}),q.jsxs("span",{className:"volter-worktree-row-copy",children:[q.jsxs("span",{className:"volter-worktree-row-title",children:["Create branch “",Pt,"”"]}),q.jsx("span",{className:"volter-worktree-row-detail",children:F==="create"?"Creating worktree…":`From ${pe}, in a new worktree`})]})]})]}),!Pt&&q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),m?q.jsx(rpn,{currentLabel:pe,onDone:()=>{g(!1),s(!1),$(!0)},onError:J}):q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-worktree-delegate-open",onClick:()=>g(!0),children:"Delegate to agent…"}),q.jsx(t2,{}),q.jsx(Qdn,{})]}),D&&q.jsx(_p,{as:"div",variant:"caption",tone:"danger",role:"alert",className:"volter-worktree-error",children:D})]})]})}function lpn({transport:t}){const[,n]=Ye.useReducer(D=>D+1,0);Ye.useEffect(()=>IC(n),[]);const[s,c]=Ye.useState(!1),d=Ye.useRef(null),m=wf(),g=m?.config.name??"No Project",S=m?.config.version??null,k=m?.config.engine.version??null,A=m?.config.manifestVersion??null,F=m?.rootPath??"";return Ye.useEffect(()=>{if(!s)return;const D=J=>{d.current&&!d.current.contains(J.target)&&c(!1)};return document.addEventListener("mousedown",D),()=>document.removeEventListener("mousedown",D)},[s]),q.jsxs("header",{className:"volter-project-header",children:[uee()?.nativeMenus?q.jsx("div",{className:"volter-project-header-left"}):q.jsxs("div",{ref:d,className:"volter-project-header-left",children:[q.jsxs("div",{className:"volter-project-header-cluster volter-chrome-island volter-glass-island",children:[q.jsxs(SBe,{"data-testid":"project-menu-trigger","aria-label":`${g} project menu`,title:F?`${g} — ${F}`:g,onClick:()=>c(D=>!D),onKeyDown:D=>{D.key==="ArrowDown"&&(D.preventDefault(),c(!0))},className:"volter-project-trigger",children:[q.jsx(dc,{icon:Kk.content.project}),q.jsx(_p,{"data-testid":"project-name","data-project":g,"data-project-version":S??void 0,variant:"label",className:"volter-sr-only",children:g})]}),q.jsx(cpn,{}),q.jsx(bZ,{onPointerDown:()=>c(!1),className:"volter-project-app-menus",children:q.jsx(Fdn,{})})]}),q.jsx(upn,{}),s&&q.jsxs(dN,{autoFocusFirst:!0,onDismiss:()=>{const D=d.current?.querySelector('[data-testid="project-menu-trigger"]');c(!1),requestAnimationFrame(()=>D?.focus())},className:"volter-project-menu",children:[q.jsx(_p,{"data-testid":"project-menu-name",title:g,variant:"label",truncate:!0,className:"volter-project-menu-name",children:g}),F&&q.jsx(_p,{"data-testid":"project-menu-path",title:F,variant:"caption",tone:"dim",selectable:!0,truncate:!0,className:"volter-project-path",children:F}),S&&k&&A!==null&&q.jsxs(q.Fragment,{children:[F&&q.jsx(t2,{}),q.jsxs("div",{"data-testid":"project-version-summary",className:"volter-project-versions",children:[q.jsx("span",{children:"Editor"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",ojt]}),q.jsx("span",{children:"Project"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",S]}),q.jsx("span",{children:"Engine"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",k]}),q.jsx("span",{children:"Format"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",A]})]}),q.jsx(t2,{})]}),F&&q.jsx(Jc,{onSelect:()=>{c(!1),AMe(F)},children:"Show in Finder"}),q.jsx(Jc,{"data-testid":"project-menu-history",onSelect:()=>{c(!1),window.dispatchEvent(new CustomEvent("editor:show-history-tab"))},children:"Undo History…"})]})]}),q.jsx(bZ,{"data-testid":"header-transport",className:"volter-project-transport volter-chrome-island volter-glass-island",align:"center",children:t??q.jsx(fpn,{})}),q.jsx(bZ,{className:"volter-project-header-right",justify:"end",align:"center",children:q.jsx(Ame,{slot:"header-trailing"})})]})}function upn(){Ye.useSyncExternalStore(U$,vhe,vhe),Ye.useSyncExternalStore(SDt,whe,whe);const t=Ye.useSyncExternalStore(TDt,zS,zS);if(mD().workspaceTabs!=="shown")return null;const n=DN().filter(s=>Uk(s.id));return q.jsxs(q.Fragment,{children:[q.jsx(WTr,{orientation:"vertical",className:"volter-project-menu-rule"}),q.jsx("div",{role:"tablist","aria-label":"Workspaces","data-testid":"workspace-tabs",className:"volter-workspace-tabs",children:n.map(s=>q.jsx("button",{type:"button",role:"tab","aria-selected":s.id===t,title:s.description,className:"volter-workspace-tab",onClick:()=>a2(s.id),children:s.title},s.id))})]})}function fpn(){Ye.useSyncExternalStore(vLe,YB,YB);const t=Jvr();return t.length===0?null:q.jsx(q.Fragment,{children:t.map(({id:n,Component:s})=>q.jsx(s,{documentId:""},n))})}function dpn({utility:t,testId:n}){const s=t.Content;return q.jsx("div",{className:"volter-dock-panel volter-regular-panel-portal","data-testid":n??`bottom-panel-utility-${t.id}`,"data-editor-hotkey-scope":"workspace","data-volter-noselect":"true",children:q.jsx(s,{})})}function ppn(t,n){return window.confirm(n)}const _pn=4,mpn=4,hpn=24,gpn=4,ypn=3,vpn=new Set(["model","image"]),bpn=new Set(["glb","gltf","fbx","obj","dae","stl","ply","spz","bvh","3ds"]);function Spn(t){const n=t.lastIndexOf(".");return n>0&&bpn.has(t.slice(n+1).toLowerCase())}const xpn=new Set(["audio","video","prefab","json"]);function Ojt(t){let n=0;const s=[];return async c=>{n>=t&&await new Promise(d=>s.push(d)),n++;try{return await c()}finally{n--,s.shift()?.()}}}function dUe(t){return t.replace(/^(?:\.\/|\/)+/,"").replace(/\/+$/,"")}function wpn(t,n){const s=t?n.slice(t.length+1):n;return s.split("/",1)[0]??s}function lTt(t,n){return t.tier-n.tier||t.depth-n.depth||t.seq-n.seq}function Tpn(t,n,s,c){for(const d of t){if(n.length>=c)break;s.has(d.subtree)||(s.add(d.subtree),n.push(d))}for(const d of t){if(n.length>=c)break;n.includes(d)||n.push(d)}}function Cpn(t,n){const s=[...t].sort(lTt),c=[],d=new Set;for(const m of[1,2]){const g=s.filter(S=>S.tier===m);Tpn(g,c,d,n)}return c.sort(lTt),c.map(({path:m,name:g,kind:S})=>({path:m,name:g,kind:S}))}function Epn(t){return vpn.has(t)?1:xpn.has(t)?2:0}function kpn(t,n,s,c){for(const d of s){if(d.name.startsWith("."))continue;const m=n.dir?`${n.dir}/${d.name}`:d.name;if(d.type==="directory"){n.depth+1>t.maxDepth?t.truncated=!0:c.push({dir:m,depth:n.depth+1});continue}t.totalAssets++;const g=Spn(d.name)?"model":ig(d.name).kind,S=Epn(g);S!==0&&t.candidates.push({path:m,name:d.name,kind:g,tier:S,depth:n.depth,seq:t.seq++,subtree:wpn(t.base,m)})}}async function Apn(t,n,s={}){const c=s.listAssets??eve,d=s.maxItems??_pn,m=s.maxListings??hpn,g=Ojt(s.listConcurrency??gpn),S=dUe(n),k={base:S,maxDepth:s.maxDepth??mpn,candidates:[],totalAssets:0,truncated:!1,failedListings:0,seq:0};let A=0,F=[{dir:S,depth:0}];for(;F.length>0;){const D=Math.max(0,m-A),J=F.slice(0,D);J.length<F.length&&(k.truncated=!0),A+=J.length;const $=await Promise.all(J.map(se=>g(()=>c(t,se.dir)))),G=[];for(const[se,pe]of J.entries()){const ue=$[se];if(!ue||!ue.ok){k.failedListings+=1;continue}kpn(k,pe,ue.entries,G)}F=G}return{items:Cpn(k.candidates,d),totalAssets:k.totalAssets,scannedAll:!k.truncated&&k.failedListings===0,failedListings:k.failedListings}}const Rjt="\0",WO=new Map,Dpn=Ojt(ypn);function Ppn(t,n,s){const c=`${t}${Rjt}${dUe(n)}`,d=WO.get(c);if(d)return d;const m=Dpn(()=>Apn(t,n,s));WO.set(c,m);const g=()=>{WO.get(c)===m&&WO.delete(c)};return m.then(S=>{(S.failedListings>0||S.items.length===0&&S.totalAssets===0)&&g()},g),m}function Ipn(t,n){return t===n||t===""||n===""||t.startsWith(`${n}/`)||n.startsWith(`${t}/`)}function uTt(t){if(t===void 0){WO.clear();return}const n=dUe(t);for(const s of[...WO.keys()]){const c=s.slice(s.indexOf(Rjt)+1);Ipn(c,n)&&WO.delete(s)}}function Hje(t,n="$"){return typeof t=="string"?[{path:n,value:t}]:Array.isArray(t)?t.flatMap((s,c)=>Hje(s,`${n}[${c}]`)):!t||typeof t!="object"?[]:Object.entries(t).flatMap(([s,c])=>Hje(c,`${n}.${s}`))}function Npn(t,n){if(!n||!t.toLowerCase().endsWith(".gltf"))return[];try{const s=JSON.parse(n),c=t.includes("/")?t.slice(0,t.lastIndexOf("/")+1):"";return[...s.buffers??[],...s.images??[]].flatMap(d=>d.uri&&!d.uri.startsWith("data:")?[`${c}${d.uri}`]:[])}catch{return[]}}function Opn(t){const n=new Map(t.files.map(A=>[A.path.replace(/^\//,""),A])),s=t.assetPath.replace(/^\//,""),c=n.get(s),d=new Set,m=ig(s);if(c||d.add("missing-file"),m.importable?m.runtimeReady||d.add("source-only"):d.add("unsupported-format"),c?.text&&m.kind==="json")try{JSON.parse(c.text)}catch{d.add("invalid-metadata")}const g=Npn(s,c?.text);g.some(A=>!n.has(A))&&d.add("missing-dependency");const S=[];for(const A of t.files)if(!(!A.text||!/\.json$/i.test(A.path)))try{for(const F of Hje(JSON.parse(A.text))){const D=F.value.replace(/^\//,"");D===s?S.push({ownerPath:A.path,jsonPath:F.path,assetPath:s}):D.startsWith("assets/")&&!n.has(D)&&d.add("broken-asset-reference")}}catch{}d.size===0&&d.add("healthy");const k=new Set(["missing-file","missing-dependency","invalid-metadata","broken-asset-reference"]);return{health:{status:[...d].some(A=>k.has(A))?"error":d.has("healthy")?"healthy":"warning",codes:[...d]},dependencies:g,references:S}}async function Fjt(t,n=""){const s=await t.list(n),c=[];for(const d of s){const m=n?`${n}/${d.name}`:d.name;d.type==="dir"?c.push(...await Fjt(t,m)):/\.json$|\.gltf$/i.test(m)?c.push({path:m,text:await t.read(m)}):c.push({path:m})}return c}async function Rpn(t,n){return Opn({assetPath:n,files:await Fjt(t)})}function v_e(t){typeof window>"u"||(window.dispatchEvent(new CustomEvent("editor:asset-mutation",{detail:t})),window.dispatchEvent(new CustomEvent("editor:assets-changed")))}function K4(t){const n=t.replace(/^\/+/,"").replace(/\\/g,"/").replace(/\/{2,}/g,"/");if(!n||n==="."||n.split("/").some(s=>!s||s===".."))throw new Error(`Invalid project asset path: ${t}`);return n}async function FOe(t,n){for(const s of n)if(await t.exists(s))throw new Error(`An asset already exists at ${s}.`)}async function Fpn(t,n){const s=P$e(n.history,n.backend);switch(t.type){case"create-folder":{const c=K4(t.path),d=`${c}/.volter-folder`;if(await n.backend.exists(c))throw new Error(`Folder already exists: ${c}.`);return s.write(d,"",{label:`Create folder ${c}`})}case"duplicate":{const c=K4(t.source),d=K4(t.destination);await FOe(n.backend,[d]);const m=await n.backend.readBytes(c);return s.write(d,m,{label:`Duplicate ${c}`})}case"move":{const c=K4(t.source),d=K4(t.destination);await FOe(n.backend,[d]);const m=await n.backend.readBytes(c),g=new Map([[d,m],[c,null]]),S=await s.mutate([...g].map(([k,A])=>({path:k,data:A})),{label:`Move ${c}`});return S&&v_e({type:"move",oldPath:c,newPath:d}),S}case"move-many":{const c=t.moves.map(A=>({source:K4(A.source),destination:K4(A.destination)}));if(c.length===0)return!1;const d=new Set(c.map(A=>A.source)),m=c.map(A=>A.destination);if(new Set(m).size!==m.length)throw new Error("Batch move destinations must be unique.");for(const A of m)if(!d.has(A)&&await n.backend.exists(A))throw new Error(`An asset already exists at ${A}.`);const g=await Promise.all(c.map(async A=>({...A,bytes:await n.backend.readBytes(A.source)}))),S=new Map;for(const{destination:A,bytes:F}of g)S.set(A,F);for(const{source:A}of g)m.includes(A)||S.set(A,null);const k=await s.mutate([...S].map(([A,F])=>({path:A,data:F})),{label:`Move ${c.length} assets`});if(k)for(const A of c)v_e({type:"move",oldPath:A.source,newPath:A.destination});return k}case"delete":{const c=[...new Set(t.paths.map(K4))],d=await s.mutate(c.map(m=>({path:m,data:null})),{label:`Delete ${c.length} asset${c.length===1?"":"s"}`});return d&&v_e({type:"delete",paths:c}),d}case"import":{const c=t.files.map(m=>({path:K4(m.path),data:m.bytes}));await FOe(n.backend,c.map(m=>m.path));const d=await s.mutate(c,{label:`Import ${c.length} asset${c.length===1?"":"s"}`});return d&&v_e({type:"change",paths:c.map(m=>m.path)}),d}}}const Mpn=320,jpn=180,Lpn="document-preview-v4",gZ=new Map,Bpn=new t6t(async t=>{const n=gZ.get(t);if(await new Promise(s=>{typeof requestIdleCallback=="function"?requestIdleCallback(()=>s(),{timeout:1e3}):setTimeout(s,0)}),[...n.consumers].every(s=>s.aborted))throw new DOMException("Preview demand was cancelled.","AbortError");return n.run()},1);let ZZ=null,fTt,MOe=null;const WY=new Set;async function Mjt(t){const n=gR();let s;try{s=await n.list(t)}catch{return[]}const c=[];for(const d of s)d.type==="dir"?c.push(...await Mjt(d.path)):c.push(`${d.path}:${d.size??0}:${d.mtime??0}`);return c}async function $pn(){const t=wf()?.rootPath;return fTt!==t&&(fTt=t,ZZ=null),ZZ??=Promise.all([HRt([xR,"volter.adapter.ts",".storybook/**/*","src/**/*.ts","src/**/*.tsx","src/**/*.js","src/**/*.jsx","src/**/*.mjs","src/**/*.cjs","src/**/*.json","src/**/*.css"]).then(async n=>Promise.all(n.map(async s=>`${s}:${await DMe(s)??""}`))),Mjt("")]).then(([n,s])=>jjt([...n,...s].sort().join(`
|
|
1404
1404
|
`))),ZZ}function qpn(t){return WY.add(t),MOe??=Dg.watch(n=>{if(n.path===PB){e6t();for(const s of WY)s();return}if(!(!/^(src|public|\.storybook)\//.test(n.path)&&n.path!==xR&&n.path!=="volter.adapter.ts")){ZZ=null;for(const s of WY)s()}}),()=>{WY.delete(t),WY.size===0&&(MOe?.(),MOe=null,ZZ=null)}}async function zpn(t,n,s){n.throwIfAborted();let c=gZ.get(t);c||(c={run:s,consumers:new Set},gZ.set(t,c)),c.consumers.add(n);const d=Bpn.request(t,1);n.addEventListener("abort",d.cancel,{once:!0});try{return await d.promise}finally{n.removeEventListener("abort",d.cancel),c.consumers.delete(n),c.consumers.size===0&&gZ.get(t)===c&&gZ.delete(t)}}async function jjt(t){const n=new TextEncoder().encode(t),s=await crypto.subtle.digest("SHA-256",n);return[...new Uint8Array(s)].map(c=>c.toString(16).padStart(2,"0")).join("")}function Vpn(t){const n=/^data:([^;,]+);base64,(.*)$/s.exec(t);if(!n)throw new Error("Document preview owner returned an invalid image data URL.");const s=atob(n[2]),c=new Uint8Array(s.length);for(let d=0;d<s.length;d++)c[d]=s.charCodeAt(d);return{mime:n[1],bytes:c}}function dTt(t,n="image/png"){const s=new Uint8Array(t.byteLength);return s.set(t),URL.createObjectURL(new Blob([s.buffer],{type:n}))}async function Upn(t){const n=await D$e();if(n.status!=="ok")return;const s=n.manifest.entries[`document:${t}`]?.framing;return s?{position:{x:s.position[0],y:s.position[1],z:s.position[2]},target:{x:s.target[0],y:s.target[1],z:s.target[2]},...s.fov===void 0?{}:{fov:s.fov}}:void 0}async function Jpn(t,n,s,c){const d=wf()?.rootPath??"no-project",m=await Upn(t),g=JSON.stringify({projectId:d,documentId:t,recipe:Lpn,revision:n.revision(),dependencies:await $pn(),camera:m});c.throwIfAborted();const S=await jjt(g),k=`.volter/cache/document-previews/${S}.png`;if(s===0&&await Dg.exists(k))return dTt(await Dg.readBytes(k));const A=await zpn(S,c,()=>n.capture({width:Mpn,height:jpn,...m?{camera:m}:{}}));c.throwIfAborted();const F=Vpn(A);return await Dg.write(k,F.bytes),dTt(F.bytes,F.mime)}function Wpn({documentId:t,source:n,previewRevision:s}){const[c,d]=Ye.useState(null),[m,g]=Ye.useState(null),[S,k]=Ye.useState(0),[A,F]=Ye.useState(0),[D,J]=Ye.useState(!0),[$,G]=Ye.useState(!1),se=Ye.useRef(null),pe=Ye.useRef(null),ue=Ye.useRef(null),Ce=Ye.useRef({previewRevision:s,retry:A});return Ye.useEffect(()=>{let Ae=null;const Pe=()=>{pe.current?.abort(),J(!0),Ae&&clearTimeout(Ae),Ae=setTimeout(()=>k(we=>we+1),750)},be=n.subscribe(Pe),X=qpn(Pe);return()=>{Ae&&clearTimeout(Ae),be(),X()}},[n]),Ye.useEffect(()=>()=>{ue.current?.startsWith("blob:")&&URL.revokeObjectURL(ue.current)},[]),Ye.useEffect(()=>{const Ae=se.current;if(!Ae)return;const Pe=new IntersectionObserver(([be])=>G(be?.isIntersecting??!1));return Pe.observe(Ae),()=>Pe.disconnect()},[]),Ye.useEffect(()=>{if(!$)return;const Ae=new AbortController;pe.current=Ae;const Pe=Ce.current.previewRevision!==s||Ce.current.retry!==A?1:0;return g(null),J(!0),Jpn(t,n,Pe,Ae.signal).then(be=>{if(Ae.signal.aborted){URL.revokeObjectURL(be);return}ue.current&&URL.revokeObjectURL(ue.current),Ce.current={previewRevision:s,retry:A},ue.current=be,d(be),J(!1)}).catch(be=>{Ae.signal.aborted||(g(be instanceof Error?be.message:String(be)),J(!1))}),()=>Ae.abort()},[t,s,A,n,S,$]),q.jsxs("div",{ref:se,style:{width:"100%",height:"100%",position:"relative",display:"grid",placeItems:"center"},children:[c&&q.jsx("img",{src:c,alt:`${t} preview`,style:{width:"100%",height:"100%",objectFit:"contain"}}),m?q.jsx("button",{type:"button",title:m,onClick:Ae=>{Ae.stopPropagation(),F(Pe=>Pe+1)},style:{position:"absolute",bottom:0,border:0,background:"var(--vscode-editor-background)",color:Zf[3],pointerEvents:"auto"},children:"Preview unavailable · Retry"}):D?q.jsx("span",{role:"status",style:{position:"absolute",bottom:0,background:"var(--vscode-editor-background)",color:Zf[3],fontSize:YY.xs},children:c?"Refreshing preview…":"Loading preview…"}):null]})}function Ljt(t,n){return rve(t,n.path)}function Hpn({root:t,item:n}){const[s,c]=Ye.useState(!1);return s?q.jsx(vD,{kind:"image",size:14}):q.jsx("img",{src:Ljt(t,n),alt:n.name,loading:"lazy",onError:()=>c(!0)})}function Gpn({root:t,item:n}){const s=M9t(Ljt(t,n),Xin);return s.failed?q.jsx(vD,{kind:"model",size:14}):s.src?q.jsx("img",{src:s.src,alt:n.name,"data-fit":"contain",onError:s.fromManifest?s.rejectManifest:void 0}):null}function Kpn({root:t,item:n}){return ig(n.name).editor==="environment"?q.jsx(wR,{kind:"image",name:n.name,variant:"cell"}):n.kind==="image"?q.jsx(Hpn,{root:t,item:n}):n.kind==="model"?q.jsx(Gpn,{root:t,item:n}):q.jsx(wR,{kind:n.kind,name:n.name,variant:"cell"})}function Xpn({root:t,folderPath:n,revision:s}){const[c,d]=Ye.useState(null);if(Ye.useEffect(()=>{d(null)},[t,n]),Ye.useEffect(()=>{let g=!1;return Ppn(t,n).then(S=>{g||d(S)},()=>{g||d("failed")}),()=>{g=!0}},[t,n,s]),c===null||c==="failed")return q.jsx(vD,{kind:"folder"});if(c.totalAssets===0)return q.jsx("div",{className:"volter-folder-preview","data-testid":"folder-preview-empty","aria-hidden":"true",children:q.jsxs("div",{className:"volter-folder-preview__empty",children:[q.jsx(dc,{icon:VOe,className:"volter-folder-preview__empty-glyph"}),q.jsx("span",{className:"volter-folder-preview__empty-caption",children:"Empty"})]})});const m=c.scannedAll?`${c.totalAssets}`:`${c.totalAssets}+`;return c.items.length===0?q.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview-plain","aria-hidden":"true",children:[q.jsx("div",{className:"volter-folder-preview__fallback",children:q.jsx(vD,{kind:"folder"})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]}):q.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview","aria-hidden":"true",children:[q.jsx("div",{className:"volter-folder-preview__grid","data-count":c.items.length,children:c.items.map(g=>q.jsx("div",{className:"volter-folder-preview__cell",children:q.jsx(Kpn,{root:t,item:g})},g.path))}),q.jsx("span",{className:"volter-folder-preview__chip",children:q.jsx(dc,{icon:fee})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]})}const Bjt="contentBrowser";function Gje(t){return t.type==="directory"?"folder":ig(t.name).kind}function Ypn(t,n,s){return rve(t,n?`${n}/${s}`:s)}function Zpn(t,n,s){return n?`/${n}/${s}`:`/${s}`}function Qpn(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Kje(t){const n=ig(t);return n.importable?n.runtimeReady?"healthy":"source-only":"unsupported"}const e_n=640,pTt={scope:"content",root:"public",currentPath:"",viewMode:"grid",sort:"relevance",filter:"all",density:96,expanded:["public"],treeVisibility:"auto",facets:["component"]};function t_n(){try{const t=Cve(Bjt)??{},n=t.viewMode,s=t.treeVisibility,c=t.scope,d=t.root;return{...pTt,...t,root:d===nA?nA:"public",currentPath:t.currentPath??"",scope:c==="files"?"files":"content",viewMode:c==="files"&&n==="list"?"list":"grid",treeVisibility:s==="shown"||s==="hidden"?s:"auto",facets:Array.isArray(t.facets)&&t.facets.length>0?[t.facets[0]]:["component"]}}catch{return pTt}}const r_n={listAssets:eve,listProjectComponents:JRt},jOe="Reference material is not part of the built game — it stays in the project's references/ folder and is never exported. Copy the file into public/ to use it in the game; edit or remove it where it lives.",n_n=new Set(["component","scene","canvas","model","image","video","audio","other"]);function i_n(t){const n=t.charAt(0).toUpperCase()+t.slice(1);return n.endsWith("s")?n:`${n}s`}async function _Tt(t,n){if(!n&&Pp()!==t)throw new Error("Open this scene as the active document before using its current view.");const s=s2(t)?.read()?.camera,c=s&&typeof s!="string"?s:null;if(!n&&!c)throw new Error("The active scene has no ready 3D authoring view to save.");await ean().saveThumbnailFraming(`document:${t}`,n?void 0:{position:[c.position.x,c.position.y,c.position.z],target:[c.target.x,c.target.y,c.target.z],fov:c.fov??50})}function o_n(t){return t.component.surface==="three"?"3d":t.component.surface==="canvas"?"2d":"ui"}function s_n(t){const n={"3d":"3D","2d":"2D",ui:"UI"};return["3d","2d","ui"].flatMap(s=>{const c=t.filter(d=>d.source==="component"&&o_n(d)===s);return c.length>0?[{id:`prefabs-${s}`,label:n[s],headingLevel:"category",entries:c}]:[]})}function a_n(t,n,s){return n==="files"?[{id:"files",label:null,headingLevel:null,entries:[...t]}]:s.length===1&&s[0]==="component"?s_n(t):t.length>0?[{id:"content",label:null,headingLevel:null,entries:[...t]}]:[]}function $jt(t){return t.source==="available"?t.available.category:t.source==="component"?t.component.contentKind??"component":t.source==="document"?t.document.kind:W9t(t.name)}function c_n(t){return t.source==="component"?t.component.contentKind??"component":t.source==="available"||t.source==="document"?"source":Gje(t.entry)}function HO(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function l_n(t,n){if(t.source==="component"||t.source==="document"||t.source==="available")return;const{entry:s}=t,{currentRoot:c,currentPath:d,navigate:m,openAsset:g}=n;if(s.type==="directory"){m(c,d?`${d}/${s.name}`:s.name);return}const S=ig(s.name),k=FB(S);if(k){if(t.spritesheet){const A=t.path.includes("#")?t.path.slice(t.path.lastIndexOf("#")+1):s.name.replace(/\.png$/i,"");g(`/${t.spritesheet.sheetPath}#${A}`,k);return}g(Ypn(t.root,d,s.name),k)}}function qjt(t){return t.source==="component"?`Component · line ${t.component.line}`:t.source==="available"?t.path||t.available.descriptor.title:t.source==="document"?`${t.document.kind} · ${t.path}`:t.entry.type!=="file"?"Folder":t.entry.size===void 0?"Size unknown":Qpn(t.entry.size)}function u_n(t){if(t.source==="component")return`${t.name}
|
|
@@ -1406,4 +1406,4 @@ ${t.path}:${t.component.line}`;if(t.source==="available")return`${t.name}
|
|
|
1406
1406
|
${t.path}`;if(t.source==="document")return`${t.name}
|
|
1407
1407
|
${t.path}`;const n=qjt(t);return n?`${t.name}
|
|
1408
1408
|
${n}`:t.name}function f_n(t,n,s){if(t.source==="component"||t.source==="document"||t.source==="available"||n==="all"||t.entry.type==="directory")return!0;const c=ig(t.name),d=s?`${s}/${t.name}`:t.name;return{"runtime-ready":c.runtimeReady,"source-only":c.importable&&!c.runtimeReady,unsupported:!c.importable,imported:d.startsWith("asset-library/local/"),generated:d.startsWith(".generated/")}[n]}function HB(t,n){return t.name.localeCompare(n.name)||t.path.localeCompare(n.path)}function mTt(t){return t.source==="asset"?Non({path:t.path,root:t.root,entry:t.entry}):t.source==="available"||t.source==="document"?10:Oon(t.component)-100}function d_n(t,n){const s=mTt(t),c=mTt(n);return s!==c?s-c:t.source!==n.source?t.source==="component"?-1:1:(t.source==="component"&&n.source==="component"||t.source!=="asset"||n.source!=="asset",HB(t,n))}function hTt(t,n){return t===void 0?n===void 0?0:1:n===void 0?-1:n-t}function p_n(t,n,s){if(t.entry.type!==n.entry.type)return t.entry.type==="directory"?-1:1;if(s==="size"&&t.entry.size!==n.entry.size)return hTt(t.entry.size,n.entry.size);if(s==="modified"&&t.entry.modifiedAt!==n.entry.modifiedAt)return hTt(t.entry.modifiedAt,n.entry.modifiedAt);if(s==="type"){const c=Gje(t.entry).localeCompare(Gje(n.entry));if(c!==0)return c}if(s==="health"){const c=Kje(t.name).localeCompare(Kje(n.name));if(c!==0)return c}return HB(t,n)}function __n(t,n,s){return s==="relevance"?d_n(t,n):s==="name"?HB(t,n):t.source!==n.source?t.source==="component"?-1:1:t.source!=="asset"||n.source!=="asset"?HB(t,n):p_n(t,n,s)}function m_n(t,n){if(n.query&&!`${t.name} ${t.path}`.toLowerCase().includes(n.query))return!1;if(n.scope==="content"&&n.facets.length>0){const s=$jt(t);return n.facets.includes(s)}return n.scope==="content"||f_n(t,n.filter,n.shownPath)}const h_n={width:"100%",minWidth:0,padding:0,textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:3},g_n={width:"100%",minWidth:0,minHeight:28,padding:"3px 6px",textAlign:"left",display:"flex",flexDirection:"row",alignItems:"center",gap:7};function y_n(t){const n=new Map;if(!t.assetSubject)return n;const s=t.assetSubject.entries?.()??j3r(t.hierarchy).flatMap(c=>{const d=t.assetSubject?.get(c.id);return d?[{id:c.id,subject:d}]:[]});for(const{id:c,subject:d}of s){const m=d.sourcePath?.replaceAll("\\","/").replace(/^\.\//,"")??"",g=m.lastIndexOf("/src/"),S=g>=0?m.slice(g+1):m;n.set(`${S}:${d.name}`,{id:c,subject:d})}return n}const v_n=()=>()=>{},b_n=()=>0;function S_n({sheetUrl:t,frame:n}){return q.jsx(B9t,{sheetUrl:t,frame:{name:"",x:n.x,y:n.y,width:n.width,height:n.height,rotated:n.rotated,sourceWidth:n.sourceWidth,sourceHeight:n.sourceHeight,trimX:n.trimX,trimY:n.trimY},maxEdge:48})}function x_n({item:t,kind:n,assetUrl:s,grid:c,folderPath:d,previewRevision:m}){const g=s;if(n==="folder")return c?q.jsx(Xpn,{root:t.source==="asset"?t.root:"public",folderPath:d,revision:m}):q.jsx(vD,{kind:"folder",size:15});if(n==="audio"&&s)return q.jsx(Zin,{url:g,name:t.name});if(!c)return q.jsx(vD,{kind:n,size:15});if(t.source==="available"&&t.available.descriptor.preview)return q.jsx(Wpn,{documentId:t.available.descriptor.id,source:t.available.descriptor.preview,previewRevision:m});if(t.source==="component"){const{Thumbnail:S}=t.contentSource;return q.jsx(S,{entry:t.contentEntry,previewRevision:m})}return ig(t.name).editor==="environment"?q.jsx(wR,{kind:"image",name:t.name}):n==="image"?t.source==="asset"&&t.spritesheet?q.jsx(S_n,{sheetUrl:`/${t.spritesheet.sheetPath}`,frame:t.spritesheet}):q.jsx("img",{src:g,alt:t.name,style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:aQ.sm}}):n==="video"&&g?q.jsx("video",{src:`${g}#t=0.1`,muted:!0,playsInline:!0,preload:"metadata",style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:aQ.sm}}):n==="model"||F9t(s)?q.jsx(j9t,{url:s}):["prefab","json"].includes(n)?q.jsx(wR,{kind:n,name:t.name}):q.jsx(vD,{kind:n})}function w_n({item:t,selected:n,onDragStart:s,onSelect:c,onOpen:d,onContextMenu:m,viewMode:g,previewRevision:S,showPath:k}){const A=c_n(t),F=t.source==="asset"?t.entry:null,D=F?.type==="file"?ig(F.name):null,J=t.source==="asset"?rve(t.root,t.path):"",$=t.path,G=u_n(t),se=F?F.type==="directory"||D?.placeable?D?.placeable?"grab":"pointer":"default":"pointer",pe=qjt(t),ue=t.source==="component"?t.path:t.source==="asset"?Oge(t.root,HO(t.path)).replace(/\/$/,""):HO(t.path)||"public",Ce=k?`${ue} · ${pe}`:pe,Ae=g!=="list";return q.jsxs("div",{className:"volter-selectable volter-project-asset-entry","data-selected":n||void 0,"data-view":g,role:"option","aria-selected":n,tabIndex:0,draggable:t.source==="component"||t.source==="asset"&&F?.type==="file"&&D?.placeable===!0||t.source==="asset"&&t.spritesheet!==void 0||t.source==="asset"&&t.root===nA&&F?.type==="file",onPointerEnter:()=>{A==="audio"&&J&&Jin(J)},onPointerLeave:()=>{A==="audio"&&J&&Win(J)},onDragStart:Pe=>s(Pe,t),onDragEnd:E3r,onClick:Pe=>c(t,Pe),onDoubleClick:()=>d(t),onContextMenu:Pe=>m(Pe,t),onKeyDown:Pe=>{if(Pe.key==="ContextMenu"||Pe.shiftKey&&Pe.key==="F10"){Pe.preventDefault();const be=Pe.currentTarget.getBoundingClientRect();Pe.currentTarget.dispatchEvent(new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,clientX:be.left,clientY:be.bottom}))}else Pe.key==="Enter"?d(t):Pe.key===" "&&(c(t,Pe),Pe.preventDefault())},title:G,style:{...Ae?h_n:g_n,borderRadius:aQ.sm,cursor:se,userSelect:"none"},children:[q.jsxs("div",{className:"volter-project-asset-entry__preview","data-testid":"asset-entry-preview",style:{...Ae?{width:"100%",aspectRatio:t.source==="available"&&t.available.descriptor.preview?"16 / 9":"1 / 1",margin:"0 auto"}:{width:18,height:18,margin:0},display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",borderRadius:aQ.sm,pointerEvents:"none",position:"relative"},children:[q.jsx(x_n,{item:t,kind:A,assetUrl:J,grid:Ae,folderPath:$,previewRevision:S}),Ae&&q.jsx("span",{className:"volter-project-asset-entry__kind","data-testid":"asset-entry-kind",title:`${A} asset`,children:q.jsx(vD,{kind:A,size:11})})]}),q.jsx("div",{"data-testid":"asset-entry-name",style:{...Ae?{fontSize:10,lineHeight:"13px",minHeight:26,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2}:{fontSize:11,lineHeight:"18px",flex:1},overflow:"hidden",textOverflow:"ellipsis",whiteSpace:Ae?"normal":"nowrap",color:Zf[1],minWidth:0},children:t.name}),!Ae&&q.jsx("div",{role:"listbox","aria-label":"Project assets","aria-multiselectable":"true",style:{maxWidth:"45%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:Zf[3],fontSize:10},children:Ce})]})}function T_n({scope:t,facets:n,availableFacets:s,currentPath:c,currentRoot:d,searchOpen:m,searchQuery:g,viewMode:S,density:k,treeVisible:A,onScopeChange:F,onFacetToggle:D,onFacetsClear:J,onNavigate:$,onSearchOpenChange:G,onSearchQueryChange:se,onViewModeChange:pe,onDensityChange:ue,onTreeVisibilityToggle:Ce,onCreateFolder:Ae,onImport:Pe,onDelete:be,deleteDisabled:X,onRefresh:we,generationTools:qe,onGenerate:bt}){const Pt=Ye.useRef(null),Wt=Ye.useRef(!0),zt=Ye.useRef(null),[ft,tr]=Ye.useState(!1),Qt=c?c.split("/"):[],Tt=HO(c),vn=d===nA?"References":"Files",Yr=()=>{se(""),G(!1)};return Ye.useEffect(()=>{if(!ft)return;const en=ii=>{Pt.current?.contains(ii.target)||tr(!1)};return document.addEventListener("pointerdown",en),()=>document.removeEventListener("pointerdown",en)},[ft]),Ye.useLayoutEffect(()=>{const en=zt.current;if(!en)return;const ii=()=>{en.scrollLeft=en.scrollWidth};Wt.current=!0,ii();const No=()=>{Wt.current=en.scrollWidth-en.clientWidth-en.scrollLeft<=1};en.addEventListener("scroll",No,{passive:!0});const gn=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>{Wt.current&&ii()});return gn?.observe(en),()=>{en.removeEventListener("scroll",No),gn?.disconnect()}},[c,m]),q.jsxs("div",{className:"volter-project-assets-toolbar",children:[q.jsxs(n$,{label:"Content display",compact:!0,className:"volter-project-assets-toolbar__row",children:[q.jsxs(Oht,{children:[q.jsx(hO,{text:"Content grid",position:"top",children:q.jsx(pm,{"aria-label":"Content grid","data-testid":"content-scope-content","aria-pressed":t==="content",onClick:()=>{t!=="content"&&F("content"),pe("grid")},children:q.jsx(dc,{icon:lvr})})}),q.jsx(hO,{text:"Browse grid",position:"top",children:q.jsx(pm,{"aria-label":"Browse grid","data-testid":"content-scope-files","aria-pressed":t==="files"&&S==="grid",onClick:()=>{t!=="files"&&F("files"),pe("grid")},children:q.jsx(dc,{icon:$Tt})})}),q.jsx(hO,{text:"Browse list",position:"top",children:q.jsx(pm,{"aria-label":"Browse list","data-testid":"asset-view-list","aria-pressed":t==="files"&&S==="list",onClick:()=>{t!=="files"&&F("files"),pe("list")},children:q.jsx(dc,{icon:vZ})})})]}),q.jsx("span",{style:{flex:1}}),m?q.jsx(Zm,{type:"text","data-testid":"asset-search-input","aria-label":"Search content",placeholder:"Search content...",value:g,onChange:en=>se(en.target.value),onKeyDown:en=>{en.key==="Escape"&&Yr()},className:"volter-input",autoFocus:!0,style:{flex:"0 1 160px",minWidth:60}}):null,q.jsx(hO,{text:m?"Close search":"Search",position:"top",children:q.jsx(pm,{"data-testid":m?"asset-search-close":"asset-search-toggle","aria-label":m?"Close search":"Search content",onClick:()=>{m?Yr():G(!0)},children:q.jsx(dc,{icon:m?Kk.action.close:Kk.action.search})})})]}),q.jsxs(n$,{label:t==="content"?"Content types":"Folder navigation",compact:!0,className:"volter-project-assets-toolbar__row",children:[t==="files"&&q.jsxs(q.Fragment,{children:[q.jsx(hO,{text:A?"Hide folders":"Show folders",position:"top",children:q.jsx(pm,{"data-testid":"asset-tree-toggle","aria-label":A?"Hide folder tree":"Show folder tree","aria-controls":"project-asset-tree","aria-expanded":A,onClick:Ce,children:q.jsx(dc,{icon:sCt})})}),q.jsx(hO,{text:"Back",position:"top",children:q.jsx(pm,{"data-testid":"asset-back","aria-label":"Back",disabled:!c,onClick:()=>$(d,Tt),children:q.jsx(dc,{icon:Z0r})})}),q.jsxs("nav",{ref:zt,"data-testid":"asset-breadcrumb","aria-label":"Asset location",style:{flex:1,display:"flex",alignItems:"center",gap:2,fontSize:12,minWidth:0,overflowX:"auto",overflowY:"hidden",whiteSpace:"nowrap"},children:[c?q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",onClick:()=>$(d,""),style:{flexShrink:0},children:vn}):q.jsx("span",{"aria-current":"location",style:{color:Zf[1]},children:vn}),Qt.map((en,ii)=>{const No=Qt.slice(0,ii+1).join("/"),gn=ii===Qt.length-1;return q.jsxs("span",{style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[q.jsx("span",{style:{color:Zf[3]},children:"/"}),gn?q.jsx("span",{"aria-current":"location",title:en,style:{color:Zf[1]},children:en}):q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",onClick:()=>$(d,No),children:en})]},No)})]})]}),t==="content"&&q.jsxs(Oht,{className:"volter-content-filter-inline","aria-label":"Content types",children:[m&&q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":"content-filter-all","aria-pressed":n.length===0,onClick:J,children:"All"}),[...[["component","Prefabs"],["scene","Scenes"],["canvas","Canvases"],["model","Models"],["image","Images"],["video","Videos"],["audio","Audio"],["other","Other"]].filter(([en])=>s.has(en)),...[...s].filter(en=>!n_n.has(en)).sort().map(en=>[en,i_n(en)])].map(([en,ii])=>q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":`content-filter-${en}`,"aria-pressed":n.includes(en),onClick:()=>D(en),children:ii},en))]}),q.jsxs("div",{ref:Pt,className:"volter-project-assets-toolbar__more",children:[q.jsx(hO,{text:"More asset actions",position:"top",children:q.jsx(pm,{"aria-label":"More asset actions","aria-expanded":ft,"aria-haspopup":"menu",onClick:()=>tr(en=>!en),children:q.jsx(dc,{icon:y0r})})}),ft&&q.jsxs(dN,{autoFocusFirst:!0,className:"volter-project-assets-toolbar__menu",onDismiss:()=>tr(!1),children:[q.jsx(Jc,{"data-command-id":O_.import.id,onSelect:()=>{tr(!1),Pe()},children:"Import files…"}),q.jsx(Jc,{"data-command-id":O_.createFolder.id,onSelect:()=>{tr(!1),Ae()},children:"New folder"}),qe.length>0&&q.jsxs(q.Fragment,{children:[q.jsx("hr",{className:"volter-menu-separator"}),q.jsx(Jc,{onSelect:()=>{tr(!1),bt()},children:"Create asset…"})]}),q.jsx(Jc,{onSelect:()=>{tr(!1),ue(k<=96?132:88)},children:k<=96?"Larger thumbnails":"Smaller thumbnails"}),q.jsx(Jc,{disabled:X,"data-command-id":O_.delete.id,onSelect:()=>{tr(!1),be()},children:"Delete selected"}),q.jsx(Jc,{onSelect:()=>{tr(!1),we()},children:"Refresh"})]})]})]})]})}function C_n(t){const[n,s]=Ye.useState(new Map);Ye.useEffect(()=>{s(new Map)},[t.revision]),Ye.useEffect(()=>{for(const d of t.expanded){if(n.has(d))continue;const m=XRt.find(S=>d===S||d.startsWith(`${S}/`));if(!m)continue;const g=d===m?"":d.slice(`${m}/`.length);t.loadAssets(m,g).then(S=>{S.ok&&s(k=>{const A=new Map(k);return A.set(d,S.entries.filter(F=>F.type==="directory").map(F=>F.name)),A})})}},[n,t.expanded,t.loadAssets]);const c=(d,m,g)=>{const S=m?`${d}/${m}`:d,k=t.expanded.has(S),A=m.split("/").pop()||d;return q.jsxs("div",{children:[q.jsxs("div",{className:"volter-asset-tree-row",style:{paddingLeft:6+g*14},children:[q.jsx(pm,{className:"volter-asset-tree-toggle","aria-label":`${k?"Collapse":"Expand"} ${A}`,"aria-expanded":k,onClick:()=>t.onExpanded(S),children:q.jsx(dc,{icon:qTt,style:{transform:k?"rotate(90deg)":void 0}})}),q.jsxs(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target","aria-current":t.currentRoot===d&&t.currentPath===m?"page":void 0,onClick:()=>t.onNavigate(d,m),children:[q.jsx(dc,{icon:fee}),A]})]}),k&&n.get(S)?.map(F=>c(d,m?`${m}/${F}`:F,g+1))]},S)};return q.jsxs("aside",{id:"project-asset-tree",className:"volter-asset-tree","aria-label":"Project asset sources",hidden:t.hidden,children:[q.jsx("div",{className:"volter-asset-facet-title",children:"Project"}),c("public","",0),q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>t.onNavigate("public","asset-library/local"),children:"Imported"}),q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>t.onNavigate("public",".generated"),children:"Generated"}),q.jsx("div",{className:"volter-asset-facet-title",children:"References"}),c(nA,"",0)]})}function E_n(t){const n=Ye.useRef(null),[s,c]=Ye.useState(t),[d,m]=Ye.useState(!0);Ye.useLayoutEffect(()=>{const k=n.current;if(!k)return;const A=D=>{D>0&&m(D>=e_n)};if(A(k.getBoundingClientRect().width),typeof ResizeObserver>"u")return;const F=new ResizeObserver(([D])=>{D&&A(D.contentRect.width)});return F.observe(k),()=>F.disconnect()},[]);const g=s==="shown"||s==="auto"&&d,S=Ye.useCallback(()=>{c(g?"hidden":"shown")},[g]);return{browserRef:n,treeVisibility:s,treeVisible:g,toggleTreeVisibility:S}}function k_n({services:t=r_n}){const n=Yv(),s=typeof n.subscribe=="function"?n.subscribe:v_n,c=typeof n.getSnapshot=="function"?n.getSnapshot:b_n,d=typeof n.getShellSnapshot=="function"?n.getShellSnapshot:c,m=Ye.useSyncExternalStore(s,d,d),g=Ye.useSyncExternalStore(Eee,AD,AD),S=Ye.useSyncExternalStore(o2,K1,K1),k=Ye.useRef(n);k.current=n;const A=rMt(),F=Ye.useSyncExternalStore(u2,rA,rA),D=Ye.useSyncExternalStore(A9t,Jge,Jge),J=F.filter(pr=>pr.point==="workspace.document"&&pr.tool?.generation?.role==="submit"),$=Ye.useMemo(t_n,[]),[G,se]=Ye.useState($.root),[pe,ue]=Ye.useState($.scope),[Ce,Ae]=Ye.useState($.facets),[Pe,be]=Ye.useState($.currentPath),[X,we]=Ye.useState($.viewMode),[qe,bt]=Ye.useState($.scope==="content"?"relevance":"name"),[Pt,Wt]=Ye.useState("all"),[zt,ft]=Ye.useState($.density),{browserRef:tr,treeVisibility:Qt,treeVisible:Tt,toggleTreeVisibility:vn}=E_n($.treeVisibility),[Yr,en]=Ye.useState(!1),[ii,No]=Ye.useState({path:$.currentPath,entries:[]}),[gn,En]=Ye.useState([]),[cs,On]=Ye.useState([]),ji=Ye.useSyncExternalStore(Etn,ive),Ja=Ye.useSyncExternalStore(OC,u0,u0),[_a,Pn]=Ye.useState(!1),[js,fa]=Ye.useState([]),[Nt,Bc]=Ye.useState(new Set($.expanded)),[Ni,Dc]=Ye.useState(0),[vc,Tf]=Ye.useState(0),[Np,Au]=Ye.useState(""),[dl,bu]=Ye.useState(new Set),[Al,Ku]=Ye.useState(null),[pl,gs]=Ye.useState(null),[Xu,$r]=Ye.useState(""),Sl=Ye.useCallback(pr=>{$r(pr.initial),gs(pr)},[]),[Rl,mi]=Ye.useState(!1),[tu,Wc]=Ye.useState(null),[Ao,ia]=Ye.useState(null),Du=Ye.useRef(null),gp=Ye.useRef(new Map),Id=Ye.useRef("");Ye.useEffect(()=>{Eve(Bjt,{scope:pe,root:G,facets:Ce,currentPath:Pe,viewMode:X,sort:qe,filter:Pt,density:zt,expanded:[...Nt],treeVisibility:Qt})},[Pe,G,zt,Nt,Ce,Pt,pe,qe,Qt,X]);const ea=Ye.useCallback(async(pr,Ur)=>{const Ei=`${pr}:${Ur}`;Id.current=Ei;const Li=(kc,Nd)=>{Id.current===Ei&&No({path:Ur,entries:kc,...Nd===void 0?{}:{failure:Nd}})},uc=gp.current.get(Ei);if(uc){Li(uc);return}try{const kc=await t.listAssets(pr,Ur);if(!kc.ok){Li([],kc.reason);return}gp.current.set(Ei,kc.entries),Li(kc.entries)}catch(kc){Li([],kc instanceof Error?kc.message:String(kc))}},[t]);Ye.useEffect(()=>{ea(G,Pe)},[G,Pe,ea]);const Pu=Ye.useCallback(async()=>{Pn(!0);try{const[pr,Ur]=await Promise.all([J9t(t.listAssets),t.listProjectComponents()]),Ei=await Pon(pr.assets,async Li=>{try{const uc=await fetch(`/${Li}`);return uc.ok?await uc.text():null}catch{return null}});En(Ei),On(Ur.ok?Ur.entries:[]),fa([...pr.failedListings,...Ur.ok?[]:[`component index: ${Ur.reason}`]])}catch(pr){En([]),On([]),fa([pr instanceof Error?pr.message:String(pr)])}finally{Pn(!1)}},[t]);Ye.useEffect(()=>{pe==="content"&&Pu()},[Pu,pe]);const Ls=Ye.useCallback((pr,Ur)=>{se(pr),be(Ur),bu(new Set),Wc(null),oD(),Au(""),en(!1)},[]),Ff=Ye.useCallback(pr=>{ue(pr),bt(pr==="content"?"relevance":"name"),Wt("all"),bu(new Set),Wc(null),oD()},[]),Hs=Ye.useCallback(pr=>{Ae([pr])},[]),Ds=Ye.useCallback(pr=>{en(pr),pr||Ae(Ur=>Ur.length>0?Ur:["component"])},[]),Oc=ii.path,Ze=Ye.useMemo(()=>y_n(Cm(k.current).adapter),[g,m,S]),jt=Ye.useMemo(()=>Cm(k.current).surface,[g,m,S]),mt=Ye.useMemo(()=>{if(pe==="content"){const pr=new Map(cs.map(Li=>[`${Li.path}:${Li.name}`,Li])),Ur=Fin().flatMap(Li=>Li.entries({components:cs,surface:jt}).flatMap(uc=>{const kc=pr.get(`${uc.component.path}:${uc.component.name}`);if(!kc)return[];const Nd=`${kc.path.replace(/^\.\//,"")}:${kc.name}`,Lo=Ze.get(Nd);return[{source:"component",key:`component:${Li.id}:${uc.id}`,name:kc.name,path:kc.path,component:kc,contentSource:Li,contentEntry:uc,...Lo?{authoringAsset:Lo}:{}}]})),Ei=(Ja?.scenes.entries??[]).flatMap(Li=>{if(Li.kind==="prefab")return[];const uc=Li.kind==="scene"?iVe(Li):null;return uc&&ji.some(kc=>(kc.category==="scene"||kc.category==="canvas")&&(uc.kind==="root-document"&&kc.rootId===uc.regionId||uc.kind==="isolation-document"&&kc.descriptor.id===uc.documentId||!!Li.source?.path&&kc.descriptor.provenance?.sourcePath?.replace(/^\.\//,"")===Li.source.path.replace(/^\.\//,"")))?[]:Li.kind!=="scene"&&!Li.source?[]:[{source:"document",key:`document:${Li.id}`,name:Li.label,path:Li.source?.path??"",document:Li}]});return[...Ur,...Ei,...ji.map(Li=>({source:"available",key:`available:${Li.descriptor.id}`,name:Li.descriptor.title,path:Li.descriptor.provenance?.sourcePath??"",available:Li})),...gn.map(({path:Li,root:uc,entry:kc,spritesheet:Nd})=>({source:"asset",key:`asset:${uc}:${Li}`,name:kc.name,path:Li,root:uc,entry:kc,...Nd?{spritesheet:Nd}:{}}))]}return ii.entries.map(pr=>{const Ur=ii.path?`${ii.path}/${pr.name}`:pr.name;return{source:"asset",key:`asset:${G}:${Ur}`,name:pr.name,path:Ur,root:G,entry:pr}})},[jt,Ja,ji,Ze,cs,gn,D,G,ii,pe]),xt=pe==="content"?js[0]??null:ii.failure??null,xr=Ye.useMemo(()=>{const pr=Np.toLowerCase(),Ur=mt.filter(Li=>m_n(Li,{query:pr,scope:pe,facets:Ce,filter:Pt,shownPath:Oc})),Ei=pe==="files"&&qe==="relevance"?"name":qe;return[...Ur].sort((Li,uc)=>__n(Li,uc,Ei))},[mt,Ce,Oc,Pt,pe,Np,qe]),Vn=Ye.useMemo(()=>{const pr=new Set;for(const Ur of mt)pr.add($jt(Ur));return pr},[mt]),eo=Ye.useMemo(()=>a_n(xr,pe,Ce),[Ce,xr,pe]),bi=Ye.useCallback((pr,Ur)=>{if(Ur.source==="component"){const Lo={path:Ur.path,kind:"component",name:Ur.name,component:{kind:"component",name:Ur.component.name,sourcePath:Ur.component.path,exportKind:Ur.component.defaultExport?"default":"named",surface:Ur.component.surface}};pr.dataTransfer.setData("text/plain",Ur.name),pr.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Lo));return}if(Ur.source==="document"||Ur.source==="available"){if("dataTransfer"in pr){pr.dataTransfer.setData("text/plain",Ur.path);return}return}const{entry:Ei}=Ur,Li=ig(Ei.name);if(Ur.root===nA){pr.preventDefault(),i0(`${Ei.name} is reference material. ${jOe}`);return}if(Ur.spritesheet){pr.preventDefault(),i0(`${Ei.name} is one frame of the ${Ur.spritesheet.sheetPath.split("/").pop()??"sprite sheet"} sprite sheet — it is placed through the Prefab that animates it, not on its own. Drop a Prefab, or a standalone image file.`);return}if(Ei.type!=="file"||!Li.placeable){pr.preventDefault();return}const uc=FB(Li);if(!uc)return;const Nd={path:Zpn(G,HO(Ur.path),Ei.name),kind:uc,name:Ei.name};pr.dataTransfer.setData("text/plain",Ei.name),pr.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Nd))},[G]),ta=Ye.useCallback((pr,Ur)=>{let Ei=new Set;if(Ur.shiftKey&&tu){const Op=xr.findIndex(Rh=>Rh.key===tu),ls=xr.findIndex(Rh=>Rh.key===pr.key);if(Op>=0&&ls>=0){const[Rh,Gi]=Op<ls?[Op,ls]:[ls,Op];Ei=new Set(xr.slice(Rh,Gi+1).map(U=>U.key))}}else Ur.metaKey||Ur.ctrlKey?(Ei=new Set(dl),Ei.has(pr.key)?Ei.delete(pr.key):Ei.add(pr.key),Wc(pr.key)):(Ei.add(pr.key),Wc(pr.key));if(bu(Ei),pr.source==="component"){if(pr.component.contentKind==="image"&&pr.authoringAsset){BI({path:pr.authoringAsset.subject.sourcePath??pr.path,name:pr.name,kind:"image",capabilities:ig("svg"),health:"healthy",selectionCount:Ei.size});return}BI({path:pr.path,name:pr.name,kind:"component",health:"healthy",selectionCount:Ei.size,componentPreview:{surface:pr.component.surface,sourcePath:pr.component.path}});return}if(pr.source==="document"||pr.source==="available"){BI({path:`/${pr.path}`,name:pr.name,kind:"source",capabilities:ig(pr.name),origin:"project",health:"healthy",selectionCount:Ei.size});return}const{entry:Li}=pr;if(Li.type==="directory"){oD();return}const uc=ig(Li.name),kc=FB(uc)??"unknown",Nd=rve(pr.root,pr.path);if(BI({path:Nd,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Kje(Li.name),selectionCount:Ei.size,...pr.path.startsWith("asset-library/local")?{sourcePath:"Asset Library provenance metadata"}:{}}),pr.root!=="public")return;const Lo=pr.path;Rpn(gR(),Lo).then(Op=>{const ls=Nd;X0e()?.path===ls&&BI({path:ls,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Op.health.status==="healthy"?"healthy":uc.runtimeReady?"unsupported":"source-only",healthCodes:Op.health.codes,dependencies:Op.dependencies,references:Op.references,selectionCount:Ei.size})}).catch(()=>{})},[xr,dl,tu]),ic=Ye.useCallback(pr=>{if(pr.source==="component"){if(pr.authoringAsset){vQr(pr.authoringAsset.id,pr.authoringAsset.subject);return}pr.contentSource.open(n,pr.contentEntry,pr.name);return}if(pr.source==="available"){xN(pr.available.descriptor.id);return}if(pr.source==="document"){if(pr.document.kind==="scene"){const Ur=MFt(pr.document.id);Ur.ok||Qs.error(Ur.error,"scene");return}ID(pr.document)||aN(`/${pr.path}`,OFt(pr.document));return}l_n(pr,{currentRoot:G,currentPath:pr.source==="asset"?HO(pr.path):"",navigate:Ls,openAsset:(Ur,Ei)=>aN(Ur,Ei)})},[G,Ls,n]),Ps=Ye.useCallback(pr=>{if(Dc(Ur=>Ur+1),gp.current.clear(),pr?.length)for(const Ur of pr)uTt(Ur);else uTt();Tf(Ur=>Ur+1),ea(G,Pe),pe==="content"&&Pu()},[G,Pe,Pu,ea,pe]);Ye.useEffect(()=>{const pr=Ur=>Ps(Ur.detail?.paths);return window.addEventListener("editor:assets-changed",pr),()=>window.removeEventListener("editor:assets-changed",pr)},[Ps]),Ye.useEffect(()=>{const pr=Ur=>{const Ei=Ur.detail?.path;if(!Ei)return;const Li=ig(Ei),uc=FB(Li);uc&&aN(Ei,uc)};return window.addEventListener("editor:open-project-asset",pr),()=>window.removeEventListener("editor:open-project-asset",pr)},[n]);const Iu=Ye.useMemo(()=>mt.filter(pr=>dl.has(pr.key)),[mt,dl]),zi=Ye.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"&&pr.root==="public"?[pr.path]:[]),[Iu]),Jn=Ye.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"?[Oge(pr.root,pr.path)]:[]),[Iu]);Ye.useEffect(()=>{const pr=new Set(mt.map(Ur=>Ur.key));bu(Ur=>{const Ei=new Set([...Ur].filter(Li=>pr.has(Li)));return Ur.size>0&&Ei.size===0&&(Wc(null),oD()),Ei.size===Ur.size?Ur:Ei})},[mt]);const Cs=Ye.useCallback(async pr=>{await Fpn(pr,{backend:gR(),history:A}),gp.current.clear(),G==="public"&&await ea(G,Pe),pe==="content"&&await Pu()},[Pe,G,Pu,ea,A,pe]),lc=Ye.useCallback(async()=>{zi.length!==0&&ppn("delete",`Delete ${zi.length} selected asset(s)? This is undoable.`)&&(await Cs({type:"delete",paths:zi}),bu(new Set),Wc(null),oD())},[Cs,zi]),Nu=Ye.useCallback(()=>{zi.length!==0&&Sl({title:`Move ${zi.length} selected to folder`,initial:Pe,confirmLabel:"Move",run:async pr=>{const Ur=pr.replace(/^\/+|\/+$/g,"");Ku(null);try{await Cs({type:"move-many",moves:zi.map(Ei=>({source:Ei,destination:Ur?`${Ur}/${Ei.split("/").pop()}`:Ei.split("/").pop()}))})}catch(Ei){Ku(Ei instanceof Error?Ei.message:String(Ei))}}})},[Sl,Pe,Cs,zi]),Fl=Ye.useCallback(()=>{G==="public"&&Sl({title:"New folder name",initial:"",confirmLabel:"Create",run:async pr=>{pr&&await Cs({type:"create-folder",path:Pe?`${Pe}/${pr}`:pr})}})},[Sl,Pe,G,Cs]),Yu=Ye.useCallback(async pr=>{if(!pr||pr.length===0)return;const Ur=pe==="content"||G!=="public"?"":Pe,Ei=await Promise.all([...pr].map(async Li=>({path:Ur?`${Ur}/${Li.name}`:Li.name,bytes:new Uint8Array(await Li.arrayBuffer())})));Ku(null);try{await Cs({type:"import",files:Ei})}catch(Li){Ku(`Could not import ${Ei.length===1?Ei[0]?.path:`${Ei.length} files`}: ${Li instanceof Error?Li.message:String(Li)}`);return}pe==="content"&&Ff("files"),Ls("public",Ur),i0(Ei.length===1?`Imported ${Ei[0]?.path}`:`Imported ${Ei.length} files`)},[Ff,Pe,G,Cs,Ls,pe]),Ie=Ye.useCallback(pr=>{if(!(pr.source!=="asset"||pr.entry.type!=="file")){if(pr.root!=="public"){i0(`${pr.name} is reference material. ${jOe}`);return}Sl({title:`Rename ${pr.name}`,initial:pr.name,confirmLabel:"Rename",run:async Ur=>{if(!Ur||Ur===pr.name)return;const Ei=pr.path,Li=HO(pr.path),uc=Li?`${Li}/${Ur}`:Ur;await Cs({type:"move",source:Ei,destination:uc})}})}},[Sl,Cs]),Et=Ye.useCallback(async pr=>{if(pr.source!=="asset"||pr.entry.type!=="file")return;if(pr.root!=="public"){i0(`${pr.name} is reference material. ${jOe}`);return}const Ur=pr.name.lastIndexOf("."),Ei=Ur>0?`${pr.name.slice(0,Ur)} copy${pr.name.slice(Ur)}`:`${pr.name} copy`,Li=pr.path,uc=HO(pr.path),kc=uc?`${uc}/${Ei}`:Ei;await Cs({type:"duplicate",source:Li,destination:kc})},[Cs]),Nr=Ye.useCallback(pr=>{Bc(Ur=>{const Ei=new Set(Ur);return Ei.has(pr)?Ei.delete(pr):Ei.add(pr),Ei})},[]);Ye.useEffect(()=>{const pr=Ur=>{const Ei=Ur.detail?.id,Li=Iu[0];Ei===O_.refresh.id?Ps():Ei===O_.import.id?Du.current?.click():Ei===O_.createFolder.id?Fl():Ei===O_.move.id?Nu():Ei===O_.delete.id?lc():Ei===O_.rename.id&&Li?Ie(Li):Ei===O_.duplicate.id&&Li?Et(Li):Ei===O_.copyPath.id&&Jn[0]?navigator.clipboard.writeText(Jn[0]):Ei===O_.reveal.id&&Jn[0]&&AMe(Jn[0])};return window.addEventListener("editor:project-asset-command",pr),()=>window.removeEventListener("editor:project-asset-command",pr)},[Fl,Pe,lc,Et,Nu,Ps,Ie,Iu,Jn]);const In=Ao?.item.source==="available"&&Ao.item.available.descriptor.preview?Ao.item:null;return q.jsxs("div",{ref:tr,className:"volter-asset-browser","data-tree-visible":pe==="files"&&Tt,onPointerDown:()=>CR("asset-browser"),onKeyDown:pr=>{if(!vje(pr.target)){if(pr.key==="Delete"||pr.key==="Backspace")lc(),pr.preventDefault();else if((pr.metaKey||pr.ctrlKey)&&pr.key.toLowerCase()==="d"){const Ur=Iu[0];Ur&&Et(Ur),pr.preventDefault()}else if(pr.key==="F2"){const Ur=Iu[0];Ur&&Ie(Ur),pr.preventDefault()}}},onDragOver:pr=>{G!=="public"||!pr.dataTransfer.types.includes("Files")||(pr.preventDefault(),pr.dataTransfer.dropEffect="copy",Rl||mi(!0))},onDragLeave:pr=>{pr.currentTarget.contains(pr.relatedTarget)||mi(!1)},onDrop:pr=>{G!=="public"||!pr.dataTransfer.types.includes("Files")||(pr.preventDefault(),mi(!1),Yu(pr.dataTransfer.files))},style:{display:"flex",flex:1,minHeight:0,position:"relative",...Rl?{outline:`2px dashed ${Go.accent.default}`,outlineOffset:-2}:{}},children:[q.jsx(C_n,{currentRoot:G,currentPath:Pe,expanded:Nt,hidden:pe!=="files"||!Tt,revision:Ni,loadAssets:t.listAssets,onExpanded:Nr,onNavigate:Ls}),q.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,minHeight:0},children:[q.jsx(Zm,{ref:Du,type:"file",multiple:!0,"aria-label":"Import project assets",hidden:!0,onChange:pr=>{Yu(pr.target.files),pr.currentTarget.value=""}}),q.jsx(T_n,{availableFacets:Vn,scope:pe,facets:Ce,currentPath:Pe,currentRoot:G,searchOpen:Yr,searchQuery:Np,viewMode:X,density:zt,treeVisible:Tt,onScopeChange:Ff,onFacetToggle:Hs,onFacetsClear:()=>Ae([]),onNavigate:Ls,onSearchOpenChange:Ds,onSearchQueryChange:Au,onViewModeChange:we,onDensityChange:ft,onTreeVisibilityToggle:vn,onCreateFolder:()=>void Fl(),onImport:()=>Du.current?.click(),onDelete:()=>void lc(),deleteDisabled:zi.length===0,onRefresh:Ps,generationTools:J,onGenerate:()=>{CD("generation",n,{kind:"generation",id:"create"})}}),Al&&q.jsx("div",{role:"alert",className:"volter-asset-operation-error",children:Al}),pl&&q.jsxs("form",{className:"volter-asset-inline-prompt",style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px"},onSubmit:pr=>{pr.preventDefault();const Ur=pl;gs(null),Ur.run(Xu.trim())},children:[q.jsx("span",{style:{fontSize:12},children:pl.title}),q.jsx(Zm,{autoFocus:!0,"aria-label":pl.title,value:Xu,onChange:pr=>$r(pr.target.value),onKeyDown:pr=>{pr.key==="Escape"&&gs(null)}}),q.jsx(Ms,{type:"submit",size:"compact",children:pl.confirmLabel}),q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",onClick:()=>gs(null),children:"Cancel"})]}),zi.length>0&&q.jsxs(n$,{label:"Selected asset actions",compact:!0,children:[q.jsxs("span",{children:[zi.length," selected"]}),q.jsx(Ms,{variant:"ghost",size:"compact",onClick:()=>void Nu(),children:"Move selected"}),q.jsx(Ms,{variant:"ghost",size:"compact","aria-label":"Delete selected assets",onClick:()=>void lc(),children:"Delete"})]}),q.jsxs("div",{className:"volter-project-assets-results","data-view":X,"data-testid":"project-asset-results",role:"listbox","aria-label":pe==="content"?"Project content":"Project files","aria-multiselectable":"true",style:{flex:1,overflowY:"auto",padding:8,display:X==="list"?"flex":"grid",gridTemplateColumns:X==="grid"?`repeat(auto-fill, minmax(${Math.round(zt*.75)}px, 1fr))`:void 0,gridAutoRows:X==="list"?void 0:"min-content",flexDirection:X==="list"?"column":void 0,gap:X==="list"?1:6,alignContent:"start"},children:[eo.map(pr=>q.jsxs("div",{role:"group","aria-label":pr.label??void 0,className:"volter-content-result-section",children:[pr.label&&q.jsx("div",{role:"presentation",className:"volter-content-section-heading","data-level":pr.headingLevel??void 0,"data-testid":`content-section-${pr.id}`,children:q.jsx("span",{children:pr.label})}),pr.entries.map(Ur=>q.jsx(w_n,{item:Ur,selected:dl.has(Ur.key),onDragStart:bi,onSelect:ta,onOpen:ic,onContextMenu:(Ei,Li)=>{Ei.preventDefault(),Li.source!=="component"&&(dl.has(Li.key)||ta(Li,Ei),ia({x:Ei.clientX,y:Ei.clientY,item:Li}))},viewMode:X,previewRevision:vc,showPath:pe==="content"},Ur.key))]},pr.id)),xr.length===0&&q.jsx(KTr,{compact:!0,style:{gridColumn:"1 / -1"},icon:q.jsx(dc,{icon:xt?Kk.status.warning:Np?Kk.action.search:Kk.content.folder}),title:_a?"Finding project content…":xt?"Listing failed":Np?"No matching content":pe==="content"?"No content in this type":"Empty folder",description:_a?"Scanning components and assets across the project.":xt?`Listing failed: ${xt}`:Np?"Try a broader search or another content type.":pe==="content"?"Choose another type or import an asset.":"Add files to this folder to see them here."})]})]}),In&&Ao&&q.jsx(she,{children:q.jsxs(dN,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:Ao.x,top:Ao.y},onDismiss:()=>ia(null),children:[q.jsxs(Jc,{type:"button",role:"menuitem",onClick:()=>{ic(In),ia(null)},children:["Open ",q.jsx("kbd",{children:"Enter"})]}),In.available.category==="scene"&&q.jsxs(q.Fragment,{children:[q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{const pr=In.available.descriptor.id;ia(null),_Tt(pr,!1).then(()=>Tf(Ur=>Ur+1)).catch(Ur=>Ku(Ur instanceof Error?Ur.message:String(Ur)))},children:"Use current view for preview"}),q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{const pr=In.available.descriptor.id;ia(null),_Tt(pr,!0).then(()=>Tf(Ur=>Ur+1)).catch(Ur=>Ku(Ur instanceof Error?Ur.message:String(Ur)))},children:"Reset preview view"})]}),q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{ia(null),Tf(pr=>pr+1)},children:"Refresh preview"})]})}),Ao&&Ao.item.source==="asset"&&q.jsx(she,{children:q.jsxs(dN,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:Ao.x,top:Ao.y},onDismiss:()=>ia(null),children:[q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.open.id,onClick:()=>{ic(Ao.item),ia(null)},children:["Open ",q.jsx("kbd",{children:"Enter"})]}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.rename.id,onClick:()=>{Ie(Ao.item),ia(null)},children:["Rename ",q.jsx("kbd",{children:"F2"})]}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.duplicate.id,onClick:()=>{Et(Ao.item),ia(null)},children:["Duplicate ",q.jsx("kbd",{children:"⌘D"})]}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.move.id,disabled:zi.length===0,title:zi.length?"Move selected assets":"Select a file to move",onClick:()=>{Nu(),ia(null)},children:"Move selected…"}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.copyPath.id,disabled:!Jn[0],onClick:()=>{Jn[0]&&navigator.clipboard.writeText(Jn[0]),ia(null)},children:"Copy path"}),jme("asset").map(pr=>{const Ur=Ao.item.source==="asset"&&Ao.item.entry.type==="file",Ei=Ao.item.source==="asset"?{assetPath:Oge(Ao.item.root,Ao.item.path)}:{};return q.jsx(Jc,{type:"button",role:"menuitem","data-testid":pr.testId,disabled:!Ur||(pr.disabled?.(Ei)??!1),onClick:()=>{pr.execute(Ei),ia(null)},children:typeof pr.label=="function"?pr.label():pr.label},pr.id)}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.reveal.id,disabled:!Jn[0],onClick:()=>{Jn[0]&&AMe(Jn[0]),ia(null)},children:"Reveal in Finder"}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.delete.id,disabled:zi.length===0,onClick:()=>{lc(),ia(null)},children:["Delete ",q.jsx("kbd",{children:"⌫"})]})]})})]})}const A_n={agent:()=>q.jsx(Ame,{slot:"panel:agent"}),"project-work":()=>q.jsx(Ame,{slot:"panel:project-work"}),hierarchy:Ijt,assets:({dependencies:t})=>q.jsx(k_n,{services:t?.assets}),"asset-library":()=>q.jsx(Ame,{slot:"panel:asset-library"}),inspector:rUe};class D_n extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){Qs.error(`The ${this.props.title} panel crashed and was taken down alone (the rest of the editor stays up; Retry in the panel remounts it): ${n.message}
|
|
1409
|
-
${s.componentStack??""}`,"editor")}render(){return this.state.error?q.jsxs("div",{role:"alert","data-testid":"static-panel-crashed",style:{padding:12,display:"grid",gap:8,alignContent:"start"},children:[q.jsxs("strong",{children:[this.props.title," crashed."]}),q.jsx("span",{style:{opacity:.8,wordBreak:"break-word"},children:this.state.error.message}),q.jsx("div",{children:q.jsx(Ms,{type:"button",variant:"outline",size:"compact",onClick:()=>this.setState({error:null}),children:"Retry"})})]}):this.props.children}}const P_n=IVe.map(t=>{const n=A_n[t.kind],s=c=>q.jsx(D_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function I_n(t){return P_n.find(n=>n.kind===t)}function N_n({kind:t,dependencies:n}){const{Content:s}=I_n(t);return q.jsx(s,{dependencies:n})}const O_n=250;function R_n(){const t=L4t(),n=F_n();return()=>{n(),t()}}function F_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of Qs.getEntries()){if(S.add(k.id),k.level!=="error"&&k.level!=="warn")continue;const A=t.get(k.id)??0;k.count<=A||(t.set(k.id,k.count),g.push({severity:k.level,message:k.message,source:k.source??null,occurrences:k.count-A}))}for(const k of[...t.keys()])S.has(k)||t.delete(k);return g}function d(){if(n=null,s)return;const g=c();g.length!==0&&SN("console-entries",{entries:g,_clientId:xC})}const m=Qs.subscribe(()=>{if(s)return;const g=Qs.getEntries(),S=g[g.length-1];if(S&&S.level==="error"&&!t.has(S.id)){n!==null&&clearTimeout(n),n=null,queueMicrotask(d);return}n===null&&(n=setTimeout(d,O_n))});return SN("console-entries",{entries:[],_clientId:xC}),d(),()=>{s=!0,n!==null&&clearTimeout(n),m()}}const Y4={INPUT:"input",PRE_PHYSICS:"prePhysics",PHYSICS:"physics",POST_PHYSICS:"postPhysics",GAME_LOGIC:"gameLogic",ANIMATION:"animation",PRE_RENDER:"preRender",RENDER:"render"},yZ=[Y4.INPUT,Y4.PRE_PHYSICS,Y4.PHYSICS,Y4.POST_PHYSICS,Y4.GAME_LOGIC,Y4.ANIMATION,Y4.PRE_RENDER,Y4.RENDER],ywn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),sye=1e-9,zjt=1e5;function M_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+sye){const D=Math.min(g+S,s.end);m.push({from:g,to:D,direction:"forward"}),g=D;break}if(m.push({from:g,to:s.end,direction:"forward"}),S-=F,g=s.start,k=!0,A++,A>zjt){const D=s.start+S%c;m.push({from:g,to:D,direction:"forward"}),g=D;break}}return{pos:g,intervals:m,looped:k}}function j_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+sye){const D=Math.max(g-S,s.start);m.push({from:g,to:D,direction:"reverse"}),g=D;break}if(m.push({from:g,to:s.start,direction:"reverse"}),S-=F,g=s.end,k=!0,A++,A>zjt){const D=s.end-S%c;m.push({from:g,to:D,direction:"reverse"}),g=D;break}}return{pos:g,intervals:m,looped:k}}function gTt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class L_n{_previousTime;_currentTime;_range;_timeScale;_playDirection="forward";_lastCrossingDirection="forward";_playbackState="stopped";_evaluators=[];_registrationCounter=0;constructor(n={}){const s=n.start??0,c=n.end??Math.max(s,1);if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);const d=n.timeScale??1;if(!Number.isFinite(d)||d<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${d}`);this._range={start:s,end:c,loop:n.loop??!1},this._timeScale=d,this._previousTime=s,this._currentTime=s}get time(){return this._currentTime}get previousTime(){return this._previousTime}get direction(){return this._playbackState==="playing"?this._playDirection:"paused"}get playbackState(){return this._playbackState}get timeScale(){return this._timeScale}set timeScale(n){if(!Number.isFinite(n)||n<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${n}`);this._timeScale=n}get range(){return this._range}setRange(n){const s=n.start??this._range.start,c=n.end??this._range.end,d=n.loop??this._range.loop;if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);this._range={start:s,end:c,loop:d};const m=gTt(this._currentTime,this._range);m!==this._currentTime&&this.seek(m)}play(n){n&&(this._playDirection=n),this._playbackState="playing"}pause(){this._playbackState="paused"}stop(){this._playbackState="stopped"}seek(n){const s=gTt(n,this._range);if(s===this._currentTime)return this.emit(this._currentTime,this._currentTime,[{from:s,to:s,direction:this._lastCrossingDirection}],!1,this._lastCrossingDirection);const c=s>this._currentTime?"forward":"reverse",d=this._currentTime;return this._previousTime=d,this._currentTime=s,this._lastCrossingDirection=c,this.emit(d,s,[{from:d,to:s,direction:c}],!1,c)}seekFrame(n,s){if(!Number.isFinite(s)||s<=0)throw new Error(`[AnimationClock] seekFrame fps must be a finite number > 0, got ${s}`);return this.seek(this._range.start+n/s)}advance(n){if(this._playbackState!=="playing")return null;if(!Number.isFinite(n))throw new Error(`[AnimationClock] advance(dt) requires a finite dt, got ${n}`);const s=Math.abs(n)*this._timeScale,c=this._currentTime;if(s===0)return this.emit(c,c,[],!1,this._playDirection);const d=this._playDirection==="forward"?M_n(c,s,this._range):j_n(c,s,this._range);return this._previousTime=c,this._currentTime=d.pos,this._lastCrossingDirection=this._playDirection,this.emit(c,d.pos,d.intervals,d.looped,this._playDirection)}subscribe(n,s){if(!yZ.includes(n))throw new Error(`[AnimationClock] unknown phase "${n}". Valid: ${yZ.join(", ")}`);const c={phase:n,order:this._registrationCounter++,fn:s};return this._evaluators.push(c),{dispose:()=>{const d=this._evaluators.indexOf(c);d!==-1&&this._evaluators.splice(d,1)}}}emit(n,s,c,d,m){const g={previousTime:n,currentTime:s,direction:m,timeScale:this._timeScale,looped:d,intervals:c};if(this._evaluators.length>0){const S=[...this._evaluators].sort((k,A)=>{const F=yZ.indexOf(k.phase),D=yZ.indexOf(A.phase);return F!==D?F-D:k.order-A.order});for(const k of S)try{k.fn(g)}catch(A){console.error(`[AnimationClock] evaluator in phase "${k.phase}" threw:`,A)}}return g}}const b_e={start:0,end:0,fps:30},B_n=150;class vwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new L_n;subjects=[];activeId=null;listeners=new Set;settleListeners=new Set;settleTimer=null;disposed=!1;cachedSnapshot=null;stopStoreWatch;attach(n){return this.subjects.push(n),this.activeId===null?this.setActiveSubject(n.id):(n.seek(this.clock.time),this.notify()),()=>{const s=this.subjects.indexOf(n);if(s<0)return;if(this.subjects.splice(s,1),this.activeId!==n.id){this.notify();return}this.activeId=null;const c=this.subjects[0];c?this.setActiveSubject(c.id):(this.clock.setRange({start:b_e.start,end:b_e.end,loop:!1}),this.notify())}}setActiveSubject(n){const s=this.subjects.find(d=>d.id===n);if(!s)return;this.activeId=n;const c=s.range();this.clock.setRange({start:c.start,end:c.end}),this.applyTime(this.clock.time),this.notify()}get active(){return this.subjects.find(n=>n.id===this.activeId)??null}fps(){return this.active?.range().fps??b_e.fps}get driver(){return this.store.playState==="stopped"?"editor":"world"}assertEditorDrives(){if(this.driver==="world")throw new Error("transport: the world is driving time (Play); pause the game to scrub")}play(n="forward"){this.assertEditorDrives(),this.active&&(this.cancelSettle(),this.clock.play(n),this.notify())}pause(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.settle(),this.notify()}stop(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.applyTime(this.clock.seek(this.clock.range.start).currentTime),this.clock.stop(),this.settle(),this.notify()}seek(n){this.assertEditorDrives(),this.applyTime(this.clock.seek(n).currentTime),this.clock.playbackState!=="playing"&&this.scheduleSettle(),this.notify()}seekFrame(n){this.seek(n/this.fps())}setLoop(n){this.clock.setRange({loop:n}),this.notify()}setTimeScale(n){this.clock.timeScale=n,this.notify()}tick(n){if(this.disposed||this.driver==="world"||this.clock.playbackState!=="playing")return 0;const s=this.clock.time,c=this.clock.advance(n);return c?(this.applyTime(c.currentTime),this.notify(),c.looped?Math.abs(n)*this.clock.timeScale:c.currentTime-s):0}applyTime(n){const s=this.active;s&&s.seek(n);for(const c of this.subjects)c!==s&&c.seek(n)}onSettled(n){return this.settleListeners.add(n),()=>{this.settleListeners.delete(n)}}scheduleSettle(){this.cancelSettle(),this.settleTimer=setTimeout(()=>{this.settleTimer=null,this.settle()},B_n)}cancelSettle(){this.settleTimer!==null&&(clearTimeout(this.settleTimer),this.settleTimer=null)}settle(){if(this.disposed)return;const n=this.clock.time;for(const s of[...this.settleListeners])s(n)}snapshot(){const n=this.cachedSnapshot;if(n)return n;const s=this.active?.range()??b_e,c={time:this.clock.time,range:{start:this.clock.range.start,end:this.clock.range.end,fps:s.fps,loop:this.clock.range.loop},playbackState:this.clock.playbackState,timeScale:this.clock.timeScale,activeSubject:this.activeId,subjects:this.subjects.map(d=>({id:d.id,label:d.label})),driver:this.driver};return this.cachedSnapshot=c,c}activeClips(){const s=this.active?.clips?.();return s&&s.length>1?s:null}setActiveClip(n){this.assertEditorDrives(),this.active?.setClip?.(n);const s=this.active?.range();s&&this.clock.setRange({start:s.start,end:s.end}),this.applyTime(this.clock.time),this.notify()}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}notify(){this.cachedSnapshot=null;for(const n of[...this.listeners])n()}dispose(){this.disposed=!0,this.stopStoreWatch(),this.cancelSettle(),this.clock.stop(),this.subjects.length=0,this.activeId=null,this.listeners.clear(),this.settleListeners.clear()}}const Dme=new Map,Xje=new Set;function yTt(){for(const t of[...Xje])t()}function bwn(t,n){return Dme.set(t,n),yTt(),()=>{Dme.get(t)===n&&(Dme.delete(t),yTt())}}function $_n(t){return t===null?null:Dme.get(t)??null}function q_n(t){return Xje.add(t),()=>{Xje.delete(t)}}let Pme=null;function Swn(t){return Pme=t,()=>{Pme===t&&(Pme=null)}}function kve(){return Pme}const Vjt="__volterWorkspacePersistenceSuppressed";function Ujt(){return globalThis}function Jjt(t){Ujt()[Vjt]=t}function z_n(){return Ujt()[Vjt]===!0}function Wjt(){return(xee()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Hjt={phase:"idle",flightDone:!1,gameReady:!1};function V_n(t,n){const s=t.flightDone||n==="flight-done",c=t.gameReady||n==="game-ready";return s&&c?{phase:"crossfade",flightDone:s,gameReady:c}:s?{phase:"holding",flightDone:s,gameReady:c}:{...t,flightDone:s,gameReady:c}}function U_n(t,n){if(n==="stop")return Hjt;switch(t.phase){case"idle":return n==="start"?{phase:"entering",flightDone:!1,gameReady:!1}:n==="start-reduced"?{phase:"playing",flightDone:!0,gameReady:!0}:t;case"entering":return V_n(t,n);case"holding":return n==="game-ready"?{...t,phase:"crossfade",gameReady:!0}:t;case"crossfade":return n==="crossfade-done"?{...t,phase:"playing"}:t;case"playing":return t}}const J_n=450,W_n=220,Gjt=250;function H_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${J_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${W_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Gjt}ms`)}let SD=null;function G_n(t){return SD=t,typeof document<"u"&&H_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Kjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function K_n(){return Qk?.state.phase??"idle"}const Ime=new Set;function Xjt(){if(Ime.size===0)return;const t=[...Ime];Ime.clear();for(const n of t)n()}function X_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Ime.add(t)}function Y_n(t,n,s){const c=setTimeout(()=>{t.timeouts.delete(c),s()},n);t.timeouts.add(c)}function gB(t){const n=Qk;if(!n)return;const s=n.state,c=U_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),Y_n(n,Gjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&kve()?.settle(),Xjt()))}function Z_n(){Q_n({immersive:Wjt()})}function Q_n(t){if(Qk&&pUe(),!t.immersive)return;const n=Kjt();Jjt(!0);const s={state:Hjt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=kve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function emn(t,n){(!t||!n)&&pUe()}function tmn(t){const n=Qk;n&&(n.flying&&t&&kve()?.track(t),gB("game-ready"))}function pUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Xjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&kve()?.end(),SD?.showChrome(!Kjt()),Jjt(!1)}}const Yje=new Set;let Yjt=null;function Zjt(){return wf()?.rootPath??null}function rmn(t){Yje.add(t);const n=Zjt();return n!==null&&Yjt===n&&t(),()=>{Yje.delete(t)}}async function xwn(){Yjt=Zjt();for(const t of[...Yje])await t()}function nmn(){const t=Pp();if(t===null)return null;const n=lQ(t);if(typeof n!="object"||n===null)return null;const s=n.stageMode;if(typeof s!="function")return null;const c=s.call(n);return typeof c=="string"?c:null}let Zje=null;function imn(t){Zje=t}function vTt(){if(!Zje)throw new Error("The workbench Output service is not connected.");return Zje}function omn(){dDr(Pp),d4r({output:{write:(...t)=>vTt().write(...t),show:t=>vTt().show(t)},console:{log:(t,n)=>Qs.log(t,n),warn:(t,n)=>Qs.warn(t,n),error:(t,n)=>Qs.error(t,n)},live:{register:c9t,mounted:wVe,playing:ave,runWindow:hVe,restartRequired:o9t,restart:s9t,subscribe:CVe,version:u9t,notifyChanged:i9t,snapshotFrame:yVe,frameCanvas:gVe,authoringRefusal:xVe,dispatch:vVe,scenes:bVe,surface:sve,coverage:SVe},viewport:{transition:{begin:Z_n,ready:tmn,end:pUe,onSettled:X_n,phase:K_n}},hierarchy:{subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:NBe,reportFacet:enn,onSample:qnn,onCommandDispatched:KYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>zze(n=>{n!==null&&t()}),onBeforeClose:vnn,reportWorkerCallMeter:lan},project:{documentTable:Hen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:rmn},notify:t=>s$(t),systems:{inspected:Pye,subscribe:Ywr,inspectedNetworking:tTr,subscribeNetworking:rTr,inspectedAudio:()=>nTr()??null,subscribeAudio:iTr,audioVersion:oTr},availability:{subscribe:tUe,version:Uun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Yye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:btn,acquire:Ttn,release:aVe,open:iq,container:Stn,setContainer:xtn,releaseContainer:wtn}},documents:{activeId:Pp,active:()=>{const t=TC();return t?{id:t.descriptor.id,kind:t.descriptor.kind,title:t.title}:null},subscribe:o2,version:K1,context:lQ,waitForContext:x4t,contextChanged:rEr,captureActive:t=>{const n=Ih();return n?T9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>$_n(t),subscribe:q_n},projectLocalState:{ready:ute,read:Cve,write:Eve,projectRootPath:()=>wf()?.rootPath??null},history:{record:c6t,setDelegate:uDr,onElement:_Dr,invalidate:mDr,onInvalidated:hDr,changed:fDr,elements:pDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?JYr(s)??Lze(s):null},undo:()=>Ih()?.projectHistory?.undo()??Promise.resolve(!1),redo:()=>Ih()?.projectHistory?.redo()??Promise.resolve(!1),canUndo:()=>Ih()?.projectHistory?.getSnapshot().canUndo??!1,canRedo:()=>Ih()?.projectHistory?.getSnapshot().canRedo??!1,undoLabel:()=>Ih()?.projectHistory?.getSnapshot().undoLabel??null,redoLabel:()=>Ih()?.projectHistory?.getSnapshot().redoLabel??null,subscribe:t=>{const n=a6t(t),s=s_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:L4r,read:t=>Dg.read(t),readBytes:t=>Dg.readBytes(t),write:(t,n)=>Dg.write(t,n),exists:t=>Dg.exists(t),list:t=>Dg.list(t),watch:t=>Dg.watch(t)},settings:{setProvider:jEr,get:VEr,set:JEr,inspect:Q4t,subscribe:t=>{const n=K4t(t),s=See(t);return()=>{n(),s()}}},keyboard:{actions:()=>Zan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>tDt().map(({id:t,title:n})=>({id:t,title:n,chords:aDt(t)})),activeKeymap:dR,invoke:t=>zVe(t),subscribe:t=>{const n=ecn(t),s=Kye(t),c=s_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Qan()+K1(),stage:()=>{const t=Ih();return t?{surface:Zfn(t).surface,mode:nmn()}:{surface:null,mode:null}},bindActions:acn,chordsFor:zBe,shortcutFor:t=>Vv(t)??null}})}let smn=0,lee=null;const Qje=new Set;function bTt(t){const n={generation:++smn,promise:t,active:!0};lee=n;for(const s of Qje)s(n);return Qje.clear(),n}function amn(){const t=lee;return t?.active?Promise.resolve(t):new Promise(n=>Qje.add(n))}async function _Ue(){for(;;){const t=await amn();if(await t.promise,lee===t&&t.active)return}}const Qjt=16,cmn=300,lmn=1e4,eLt="workspace";function umn(){const t=Cve(eLt);return!t||t.version!==Qjt?null:t}function fmn(t){Eve(eLt,t)}function dmn(t){const{descriptor:n}=t;if(!n.persist)return null;let s;try{s=n.persist({id:n.id,title:t.title})}catch{return null}if(s==null)return null;const c=OAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function pmn(){const t={};let n=!1;for(const s of yDt()){if(!s.persistKindState)continue;let c;try{c=s.persistKindState()}catch{continue}c!=null&&(t[s.kind]=c,n=!0)}return n?t:void 0}function _mn(){const t=[];for(const s of l0()){const c=dmn(s);c&&t.push(c)}const n=pmn();return{version:Qjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function mmn(t,n,s){for(const c of gDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!GQ(),store:t}))return!0}catch{}return!1}function STt(t){if(!t)return!1;const n=!GQ();return xN(t,n)?!0:htn.has(t)?(NFt(t),n&&ETr(t),!0):n&&X0(t)}function hmn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of yDt())if(d.beginRestore)try{d.beginRestore({state:s[d.kind],hasDocumentsToRestore:c,documentsToRestore:(n?.open??[]).map(m=>({kind:m.kind,state:m.state})),store:t})}catch{}}function gmn(t){const n=new Set;for(const s of t)for(const c of gDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function ymn(t,n){const s=n?.documents;if(hmn(t,s),!s||s.open.length===0){STt(s?.activeId??null);return}await gmn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&RAr(c.id,d),await mmn(t,c,s.activeId)}STt(s.activeId)}function tLt(t){if(!ute()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),Ae=bTt(Ce);return Promise.all([lte(),nVe()]).then(()=>{if(se){ue();return}pe=tLt(t),Ae.active=!1,_Ue().finally(ue)}),()=>{se=!0,pe?.()}}const n=umn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Mkr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!(z_n()||t.playState!==void 0&&t.playState!=="stopped")&&fmn(_mn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,cmn)},S=()=>m();let k=null;const A=typeof window<"u"&&dCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():hN().catch(()=>{}),D=F.then(()=>A?void 0:ymn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},lmn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(LAr(g)),window.addEventListener("pagehide",S))}),G=bTt($);return()=>{s=!0,G.active=!1,lee===G&&(lee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function vmn(t){Ye.useEffect(()=>{const n=dCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return _Ue().then(()=>{if(d())return Vge(t,n,{updateUrl:!1,origin:"link"})}).catch(m=>{Qs.error(`Could not restore shared editor view: ${m instanceof Error?m.message:String(m)}`,"editor")}),()=>{s=!0}},[t])}const xTt="volter:stale-chunk-reload";function bmn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(xTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(xTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function Smn(t){const n=jI.findIndex(s=>s.owner===t.owner&&s.id===t.id);return n>=0&&jI.splice(n,1),jI.push(t),jI.sort((s,c)=>(s.order??0)-(c.order??0)),()=>{const s=jI.indexOf(t);s>=0&&jI.splice(s,1)}}function wwn(t,n,s){const c=new Map,d={surface:t,store:n},m=g=>{const S=s(g);if(!S)return null;for(const k of jI){const A=k.statesFor(S,d);if(A.length>0)return{source:k,states:A}}return null};return{storiesFor:g=>[...m(g)?.states??[]],active:g=>c.get(g)??null,apply:(g,S)=>{if(S===null){c.delete(g),n.notifyIngestEdit();return}const k=m(g);if(!k?.states.some(F=>F.id===S)){Qs.warn(`[component-states] stories.apply: state "${S}" does not belong to node "${g}" on the ${t} surface — ignoring.`,"authoring");return}const A=s(g);A&&(c.set(g,S),k.source.apply(A,S,d),n.notifyIngestEdit())},unavailable:()=>jI.length>0?null:"No package in this editor registered a source of component states, so this component's named states could not be read."}}class Twn extends Error{name="StoryMediumMismatch"}function Cwn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Nme=new Map;function Ewn(t,n){return Nme.set(t,n),()=>{Nme.get(t)===n&&Nme.delete(t)}}function xmn(t){return Nme.get(t)??null}function wmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${Tmn(n[c])}`);return`${t}|${s.join("&")}`}function Tmn(t){if(typeof t=="function")return"fn";if(typeof t=="symbol")return"symbol";if(t===void 0)return"undefined";try{return JSON.stringify(t)??"undefined"}catch{return`[${typeof t}]`}}const aye=new Map,S_e=new Map,wTt=new WeakMap;let TTt=Promise.resolve(),CTt=null,Cmn=1;function Emn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function kmn(){await Promise.race([jye(),new Promise(t=>setTimeout(t,5e3))]),await Promise.race([new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),new Promise(t=>setTimeout(t,250))]),await new Promise(t=>setTimeout(t,750)),await new Promise(t=>{const n=globalThis.requestIdleCallback;if(typeof n=="function"){n(()=>t(),{timeout:2e3});return}setTimeout(t,0)})}function Amn(){return CTt??=kmn(),CTt}function Dmn(t){const n=wTt.get(t);if(n!==void 0)return n;const s=Cmn++;return wTt.set(t,s),s}function Pmn(t,n,s,c){const d=aye.get(t);if(d)return Promise.resolve(d);const m=S_e.get(t);if(m)return m;const g=TTt.then(async()=>{await Amn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=xmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return TTt=g.then(()=>{},()=>{}),S_e.set(t,g),g.then(S=>{aye.set(t,S),S_e.delete(t)},()=>S_e.delete(t)),g}function Imn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${wmn(n.id,n.args)}:${Dmn(m)}:${s}:${c}x${d}`,[S,k]=Ye.useState(()=>aye.get(g)),[A,F]=Ye.useState(!1);return Ye.useEffect(()=>{let D=!1;if(F(!1),k(aye.get(g)),!!Emn())return Pmn(g,t.surface,n,{width:c,height:d}).then(J=>{D||k(J)},()=>{D||F(!0)}),()=>{D=!0}},[t.surface,d,g,n,c]),S?q.jsx("img",{src:S,alt:`${t.name} preview`,className:"volter-component-thumbnail"}):q.jsx("span",{className:"volter-component-thumbnail-fallback","data-component-preview":A?"failed":"capturing-story",children:q.jsx(wR,{kind:"component",name:t.name})})}const Ave="story:three",Dve="story:isolated",Nmn="story:docs";function Omn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function Rmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Imn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Fmn="story",Mmn={id:Fmn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Omn(c,t.surface))continue;const d=DRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:G0e,Thumbnail:Rmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?Ave:Dve,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function ETt(t){return TYr(t.name,t.sourcePath)}const jmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:ETt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=ETt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(Ave,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(Dve,s.store,{modulePath:c.modulePath,storyName:c.name});return}Qs.warn(`[portable-csf] no story document is registered for the "${s.surface}" surface, so state "${n}" of "${t.name}" could not be opened.`,"authoring")}}};function Lmn(){let t=0,n=!1;const s=S=>{const k=++t;gYr(),jye().then(()=>{if(!(n||k!==t))return AYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=DFt(),m=IC(()=>s()),g=ven(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const rLt="story",LOe=new Set,BOe=new Set;function Bmn(t){const n=wRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function $Oe(t){for(const n of rq())if(n.ok){for(const s of n.stories)if(t.storyId===void 0?n.modulePath===t.modulePath&&s.name===t.storyName:s.id===t.storyId)return{modulePath:n.modulePath,storyName:s.name,title:t.title??Bmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function $mn(t,n,s){const c={modulePath:s.modulePath,storyName:s.storyName,title:s.title,...n.activate===void 0?{}:{activate:n.activate}};if(n.mode==="docs")return CD(Nmn,t,c);const d=Rze({modulePath:s.modulePath,regions:Oze()});return d.medium===void 0?(hYr(s.modulePath,d.reason),null):CD(d.medium==="three"?Ave:Dve,t,c)}function kTt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function qmn(){return AN({id:rLt,owner:"./story-opener",open:(t,n)=>{const s=$Oe(n);return s?$mn(t,n,s):(n.modulePath?LOe.add(n.modulePath):n.storyId!==void 0&&(BOe.add(n.storyId),SYr()&&kTt(n.storyId)),null)},settle:async()=>{await qDr();const t=[...LOe],n=[...BOe];if(LOe.clear(),BOe.clear(),await Promise.all(t.map(s=>CYr(wf(),s))),n.length!==0){await xYr();for(const s of n)$Oe({storyId:s})||kTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=$Oe(n);if(!(!s||Rze({modulePath:s.modulePath,regions:Oze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const zmn={actions:()=>{if(!lgt(Dve)&&!lgt(Ave))return[];const t=[];for(const n of rq()){if(!n.ok)continue;const s=n.modulePath.split("/").pop()??n.modulePath;for(const c of n.stories)t.push({id:`story:${c.id}`,label:`Open Story: ${c.name} — ${s}`,execute:()=>void dy().workspace.open({kind:rLt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>G0e(t)};function Vmn(t,n){if(n===void 0)return;const s=n;return s===null||typeof s!="object"||typeof s.azimuthDegrees!="number"||!Number.isFinite(s.azimuthDegrees)||typeof s.elevationDegrees!="number"||!Number.isFinite(s.elevationDegrees)||s.elevationDegrees<-90||s.elevationDegrees>90||s.distance!==void 0&&(typeof s.distance!="number"||!Number.isFinite(s.distance)||s.distance<=0)?`${t} camera must be {azimuthDegrees, elevationDegrees in [-90, 90], distance? > 0 meters}.`:{azimuthDegrees:s.azimuthDegrees,elevationDegrees:s.elevationDegrees,...s.distance===void 0?{}:{distance:s.distance}}}function Umn(t,n){if(n===void 0)return;const s=n;return s===null||typeof s!="object"||typeof s.clip!="string"||s.clip.length===0||typeof s.timeSeconds!="number"||!Number.isFinite(s.timeSeconds)||s.timeSeconds<0?`${t} pose must be {clip: non-empty string, timeSeconds >= 0}.`:{clip:s.clip,timeSeconds:s.timeSeconds}}const Jmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Wmn(t){if(document.visibilityState==="hidden")return{ok:!1,error:"story capture needs a PRESENTING tab — the editor tab is hidden, so the browser suspends the frames a story mount must paint. Bring the editor tab to the foreground (or unminimize its window) and re-run."};const n=t.modulePath;if(typeof n!="string"||n==="")return{ok:!1,error:`${nB} requires a project-relative modulePath.`};const s=t.story;if(s!==void 0&&typeof s!="string")return{ok:!1,error:`${nB} story must be a CSF export name.`};const c=(d,m,g)=>{if(d===void 0)return m;if(typeof d!="number"||!Number.isInteger(d)||d<64||d>1024)throw new Error(`${nB} ${g} must be an integer from 64 to 1024.`);return d};try{const d=await(async()=>{try{const D=await VZr("volter.project.json");if(!D)return null;const J=JSON.parse(D),$=J.resolution?.width,G=J.resolution?.height;return typeof $!="number"||typeof G!="number"||$<64||G<64||$>4096||G>4096?null:{width:Math.min(1024,Math.round($)),height:Math.min(1024,Math.round(G))}}catch{return null}})(),m=c(t.width,d?.width??960,"width"),g=c(t.height,d?.height??540,"height"),S=Vmn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=Umn(nB,t.pose);if(typeof k=="string")return{ok:!1,error:k};const{captureProjectStoryVariants:A}=await lo(async()=>{const{captureProjectStoryVariants:D}=await import("./story-capture-DvMpONUV.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([268,269,1,2,3,4,20,21,234,213,270,22,23]));return{ok:!0,data:{...await A(wf(),{modulePath:n,...s===void 0?{}:{story:s},width:m,height:g,...S?{camera:S}:{},...k?{pose:k}:{}})}}}catch(d){return{ok:!1,error:d instanceof Error?d.message:String(d)}}}const Hmn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Wmn}};function Gmn(){const t=Oin(Mmn),n=Smn(jmn),s=qmn(),c=bCt(zmn),d=xCt(Jmn,Hmn),m=Lmn(),g=G0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const Kmn=[["descriptionForeground","--volter-content-dim"],["disabledForeground","--volter-content-placeholder"],["errorForeground","--volter-danger"],["focusBorder","--volter-accent"],["selection.background","--volter-accent","99"],["sash.hoverBorder","--volter-accent"],["menubar.selectionBackground","--volter-accent"],["menubar.selectionForeground","--volter-content-on-accent"],["menu.selectionBackground","--volter-accent"],["menu.selectionForeground","--volter-content-on-accent"],["editorGroupHeader.tabsBackground","--volter-surface-chrome"],["editorGroup.dropBackground","--volter-accent","66"],["tab.inactiveBackground","--volter-surface-chrome"],["tab.inactiveForeground","--volter-content-dim"],["editor.background","--volter-surface-chrome"],["editorLineNumber.foreground","--volter-content-placeholder"],["editor.selectionBackground","--volter-accent","99"],["editorGutter.background","--volter-surface-chrome"],["panelTitle.inactiveForeground","--volter-content-dim"],["list.activeSelectionBackground","--volter-accent"],["list.activeSelectionForeground","--volter-content-on-accent"],["list.focusOutline","--volter-accent"],["list.dropBackground","--volter-accent","66"],["button.background","--volter-accent"],["button.foreground","--volter-content-on-accent"],["checkbox.selectBackground","--volter-accent"],["input.background","--volter-surface-chrome"],["input.placeholderForeground","--volter-content-placeholder"],["inputOption.activeBackground","--volter-accent"],["inputOption.activeForeground","--volter-content-on-accent"],["inputValidation.errorBorder","--volter-danger"],["badge.background","--volter-accent"],["badge.foreground","--volter-content-on-accent"],["progressBar.background","--volter-accent"],["quickInputList.focusBackground","--volter-accent"],["quickInputList.focusForeground","--volter-content-on-accent"],["notificationsErrorIcon.foreground","--volter-danger"],["notificationsWarningIcon.foreground","--volter-warn"],["notificationsInfoIcon.foreground","--volter-accent"],["terminal.background","--volter-surface-chrome"],["commandCenter.background","--volter-surface-chrome"],["volter.view.background","--volter-surface-panel"],["foreground","--volter-content-primary"],["icon.foreground","--volter-content-muted"],["widget.border","--volter-boundary-default"],["titleBar.activeBackground","--volter-surface-shell"],["titleBar.inactiveBackground","--volter-surface-shell"],["titleBar.activeForeground","--volter-content-muted"],["titleBar.border","--volter-surface-shell"],["activityBar.background","--volter-surface-shell"],["activityBar.foreground","--volter-content-primary"],["activityBar.inactiveForeground","--volter-content-dim"],["activityBar.border","--volter-surface-shell"],["activityBar.activeBorder","--volter-accent"],["statusBar.background","--volter-surface-shell"],["statusBar.foreground","--volter-content-muted"],["statusBar.border","--volter-surface-shell"],["sideBar.background","--volter-surface-panel"],["sideBar.foreground","--volter-content-primary"],["sideBar.border","--volter-boundary-default"],["sideBarSectionHeader.background","--volter-surface-chrome"],["panel.background","--volter-surface-panel"],["panel.border","--volter-boundary-default"],["editorGroup.border","--volter-boundary-default"],["editorGroupHeader.tabsBorder","--volter-boundary-default"],["tab.activeBackground","--volter-surface-panel"],["tab.activeForeground","--volter-content-primary"],["tab.border","--volter-boundary-default"],["menu.background","--volter-widget-menu"],["menu.foreground","--volter-content-menu"],["menu.border","--volter-boundary-default"],["dropdown.background","--volter-widget-menu"],["dropdown.border","--volter-boundary-default"],["input.foreground","--volter-content-primary"],["input.border","--volter-boundary-default"]],Xmn=[["volter.viewport.background","--volter-viewport-background"],["volter.viewport.grid","--volter-viewport-grid"],["volter.viewport.axisX","--volter-viewport-axis-x"],["volter.viewport.axisY","--volter-viewport-axis-y"],["volter.viewport.axisZ","--volter-viewport-axis-z"],["volter.viewport.selection","--volter-viewport-selection"],["volter.viewport.active","--volter-viewport-active"],["volter.viewport.wire","--volter-viewport-wire"],["volter.gizmo.x","--volter-gizmo-x"],["volter.gizmo.y","--volter-gizmo-y"],["volter.gizmo.z","--volter-gizmo-z"],["volter.gizmo.navigationX","--volter-gizmo-navigation-x"],["volter.gizmo.navigationY","--volter-gizmo-navigation-y"],["volter.gizmo.navigationZ","--volter-gizmo-navigation-z"],["volter.gizmo.hover","--volter-gizmo-hover"],["volter.gizmo.drag","--volter-gizmo-drag"]];function ATt(t){const n=t.trim().toLowerCase(),s=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(n)?.[1];if(s)return`#${s.length===3?[...s].map(S=>S+S).join(""):s}`;const c=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.]+%?))?\s*\)$/.exec(n);if(!c)return null;const d=S=>Math.max(0,Math.min(255,Math.round(Number(S)))).toString(16).padStart(2,"0"),m=c[4],g=m===void 0?"":Math.round(Math.max(0,Math.min(1,m.endsWith("%")?Number.parseFloat(m)/100:Number(m)))*255).toString(16).padStart(2,"0");return`#${d(c[1])}${d(c[2])}${d(c[3])}${g==="ff"?"":g}`}function Ymn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of Kmn){const g=ATt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Xmn){const m=ATt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let dm=null,nLt=0;const eLe=new Set;function Zmn(t){return eLe.add(t),()=>eLe.delete(t)}function DTt(){return nLt}const qOe=new Map;function iLt(t,n){qOe.get(t)?.disconnect(),qOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;i3r(t,d!==null&&d.width>0&&d.height>0)};if(s(),n===null||typeof ResizeObserver>"u")return;const c=new ResizeObserver(s);c.observe(n),qOe.set(t,c)}function Qmn(t,n){if(dm){if(n===null){if(dm[t]?.isConnected)return}else if(dm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...dm};delete s[t],dm=s}else n!==null&&(dm={...dm,[t]:n});n!==null&&oLt(t,n),iLt(t,n),nLt+=1;for(const s of eLe)s()}}function oLt(t,n){n.dataset.volterPart=t}const XI=new Map;let PTt=!1;function ehn(){const t=n=>{if(!n)return null;const s=n.getBoundingClientRect();return{x:s.x,y:s.y,width:s.width,height:s.height,connected:n.isConnected}};return{editorRoots:[...document.querySelectorAll("#editor-root")].map(t),chrome:t(dm?.chromeRoot??null),slots:[...XI.values()].map(n=>({id:n.id,documentId:n.documentId,bounds:t(n.element)})),surfaces:[...document.querySelectorAll("[data-workspace-document-id]")].map(n=>({documentId:n.dataset.workspaceDocumentId,viewId:n.dataset.workspaceViewId,bounds:t(n)}))}}let sLt=0;const tLe=new Set,aLt=new Set;let ITt=!1;function NTt(){for(const t of l0())aLt.add(t.descriptor.id)}function thn(t){ITt||(ITt=!0,o2(NTt)),NTt(),!(!t||aLt.has(t))&&(Itn(t)||NFt(t,!1))}function rhn(t,n){if(n){if(!XI.delete(t.id))return}else{XI.has(t.id)||thn(t.documentId);const s=XI.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;XI.set(t.id,{...t})}sLt+=1;for(const s of[...tLe])s()}function nhn(t){return tLe.add(t),()=>{tLe.delete(t)}}function OTt(){return sLt}function GO({children:t,row:n=!1,center:s=!1}){return q.jsx("div",{className:"volter-editor-shell volter-part",onWheel:c=>c.stopPropagation(),"data-editor-hotkey-scope":"workspace","data-editor-hotkey-fallback":!0,style:{display:"flex",flexDirection:n?"row":"column",justifyContent:s?"center":void 0,width:"100%",height:"100%",minHeight:0,minWidth:0,position:"relative",fontFamily:"var(--volter-font-sans)",fontSize:"var(--volter-font-base)",color:"var(--volter-content-primary)"},children:t})}function ihn({children:t}){return q.jsx(q.Fragment,{children:t})}function ohn(){return dm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(lpn,{})}),dm.header):null}function shn(){return null}function ahn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return wjt(n),()=>vfn(n)},[]),q.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[q.jsx("div",{ref:t,className:"volter-vscode-outliner-header",style:{padding:"var(--volter-space-2) var(--volter-space-4)","--volter-hierarchy-search-basis":"100%"}}),q.jsx("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:q.jsx(Ijt,{})})]})}const Ome=new Map,rLe=new Set;let nLe=0;function chn(t,n){if(n){if(Ome.get(t)===n)return;n.dataset.volterUtility=t,Ome.set(t,n)}else if(!Ome.delete(t))return;nLe++;for(const s of rLe)s()}const Rme=new Map,iLe=new Set;let oLe=0;function lhn(t,n){if(n){if(Rme.get(t)===n)return;Rme.set(t,n)}else if(!Rme.delete(t))return;oLe++;for(const s of iLe)s()}function uhn(){return Ye.useSyncExternalStore(R3t,bht,bht),Ye.useSyncExternalStore(t=>(iLe.add(t),()=>iLe.delete(t)),()=>oLe,()=>oLe),q.jsx(q.Fragment,{children:[...yRe("left"),...yRe("right")].map(t=>{const n=Rme.get(t.id);if(!n)return null;const s=t.Content;return q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(s,{}),n)},t.id)})})}function fhn(){return Ye.useSyncExternalStore(Xye,bhe,bhe),Ye.useSyncExternalStore(t=>(rLe.add(t),()=>rLe.delete(t)),()=>nLe,()=>nLe),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Ome.get(t.id);return n?q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(GO,{children:q.jsx(dpn,{utility:t})}),n)},t.id):null})})}function dhn({descriptor:t,viewId:n,slot:s,parking:c,visible:d,inspector:m}){const[g]=Ye.useState(()=>document.createElement("div"));return Ye.useLayoutEffect(()=>{g.className="volter-vscode-document-slot",g.dataset.volterDocument=t.id,g.dataset.volterArea=t.area??"",g.style.cssText=`display:${d?"flex":"none"};flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;position:relative;`},[g,t.id,t.area,d]),Ye.useLayoutEffect(()=>((s??c).appendChild(g),()=>g.remove()),[g,s,c]),r2.createPortal(q.jsxs(GO,{children:[q.jsx(HMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Qun,{})]}),g)}let cLt=!0;function phn({arrangement:t,immersivePlay:n}){const s=Yv();vmn(s);const c=XVe(s);Ye.useLayoutEffect(()=>{cLt=c.column},[c.column]);const d=XI.get(kRe()??"")?.element??dm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Rwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Rwt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(nhn,OTt,OTt),Ye.useSyncExternalStore(Zmn,DTt,DTt),Ye.useLayoutEffect(()=>{const F=ukr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),Bkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(See,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{emn(m,Wjt())},[m,n,g]),Ye.useEffect(()=>tLt(s),[s]),!dm)return null;const S=dm.center,k=l0(),A=TC()??k[0]??null;return globalThis.__volterBridge={documents:k.map(F=>F.descriptor.id),active:A?.descriptor.id??null,workspace:t?.id??null,areas:k.flatMap(F=>F.descriptor.area?[{id:F.descriptor.id,area:F.descriptor.area}]:[]),slots:[...XI.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...XI.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(dhn,{descriptor:D,viewId:F.id,slot:F.element??void 0,parking:S,visible:!!F.element,inspector:c.card&&D.id===A?.descriptor.id},F.id):null}),k.length===0&&r2.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),dm.center),dm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(ahn,{})}),dm.outliner),dm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(rUe,{}):q.jsx(Wun,{surface:c.surface})}),dm.properties),dm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(N_n,{kind:"assets"})}),dm.content),q.jsx(fhn,{}),q.jsx(uhn,{})]})}async function _hn(t,n={}){dm=t,n.workspaceStorage&&s3r(n.workspaceStorage),_3r();for(const[Ae,Pe]of Object.entries(t))Pe&&oLt(Ae,Pe),iLt(Ae,Pe??null);t.chromeRoot.id="editor-chrome-root",jPt({Frame:ihn,Header:ohn,Footer:shn,Workspace:phn,Document:Vcn}),R_n(),Znn();const s=Qln();s&&Yln(s,Date.now())&&Qs.warn(Kln(s,Date.now()),"editor"),bmn(),LDr(),omn(),PTt||(PTt=!0,dy().session.reportFacet(Ae=>({nativeLayout:Ae?.nativeLayout??ehn()}),{reusableKeys:["nativeLayout"]})),Gmn(),await Promise.all([Z4t(),fAr(),sPt()]),EAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",uee()?.nativeMenus===!0);const c=document.createElement("div");c.id="editor-root",c.className="volter-part",c.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",t.chromeRoot.appendChild(c),sLe.createRoot(c).render(q.jsx(hun,{}));const d={activeKeymap:()=>dy().keyboard.activeKeymap(),invoke:Ae=>dy().keyboard.invoke(Ae),subscribe:Ae=>dy().keyboard.subscribe(Ae),facts:()=>{const Ae=dy(),Pe=Ae.keyboard.stage();return{surface:Pe.surface,mode:Pe.mode,documentKind:Ae.documents.active()?.kind??null,play:Ae.session.playState()}},report:(Ae,Pe)=>{const be=dy();Ae==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:_Ue,activeSource:()=>{const Ae=dy().documents.active();if(!Ae)return null;const Pe=Ae.kind==="model"&&Ae.id.startsWith("model:")?Ae.id.slice(6):"";return{kind:Ae.kind,path:Pe}},list:()=>l0().map(Ae=>{const Pe=Ae.descriptor.area?Ikr().find(be=>be.id===Ae.descriptor.area):void 0;return{id:Ae.descriptor.id,title:Ae.title,...Pe?{area:{id:Pe.id,place:Pe.place,ratio:Pe.ratio}}:{}}}),activeId:()=>TC()?.descriptor.id??null,subscribe:Ae=>{m=!0;const Pe=o2(Ae),be=Nkr(Ae);return()=>{Pe(),be()}},activate:(Ae,Pe)=>{!m&&GQ()||(Pe?TTr(Ae,Pe):X0(Ae))},close:Ae=>{if(kN(Ae))return;const Pe=l0().find(be=>be.descriptor.id===Ae);Pe&&d.report("warn",`“${Pe.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(Ae,Pe)=>rhn(Ae,Pe)},S={elements:()=>dy().history.elements(),onElement:Ae=>dy().history.onElement(Ae),onInvalidated:Ae=>dy().history.onInvalidated(Ae),changed:()=>dy().history.changed(),focusedResource:()=>dy().history.focusedResource(),focusedDocument:()=>{const Ae=dy().documents.active();return Ae?{id:Ae.id,label:Ae.title}:null},setDelegate:Ae=>dy().history.setDelegate(Ae),report:d.report},k={setProvider:Ae=>dy().files.setProvider(Ae),report:d.report},A={setProvider:Ae=>dy().settings.setProvider(Ae),adapterValues:()=>[...BEr()],workbenchValues:()=>{const Ae=dm?.chromeRoot;if(!Ae)return[];const Pe=getComputedStyle(Ae).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Ymn(Ae)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>PN(),notify:Ae=>{dy().notify(Ae)},subscribe:Ae=>{const Pe=Hye(Ae),be=NDt(Ae);return()=>{Pe(),be()}},report:d.report},F={list:()=>tin().map(Ae=>({id:Ae.id,label:Ae.label,category:Ae.category,...Ae.menu?{menu:Ae.menu}:{}})),invoke:Ae=>nin(Ae),subscribe:Ae=>rin(Ae),setPaletteOpener:Ae=>ein(Ae),setCommandExecutor:Ae=>iin(Ae),report:d.report},D={setDelegate:Ae=>iEr(Ae?{show:Pe=>Ae({...Pe,source:p3r()})}:null)},J={list:()=>$Pt().map(Ae=>({view:Ae.view,title:Ae.title,verbs:Ae.verbs.map(Pe=>({id:Pe.id,...Pe.title?{title:Pe.title}:{}}))})),invoke:(Ae,Pe,be)=>zPt(Ae,Pe,be),subscribe:Ae=>qPt(Ae)},$={list:()=>bC().map((Ae,Pe)=>({id:Ae.id,title:Ae.title,order:Ae.order??Pe})),subscribe:Ae=>{let Pe=bhe();const be=Xye(Ae),X=tUe(()=>{const we=bhe();we!==Pe&&(Pe=we,Ae())});return()=>{be(),X()}},offerBody:(Ae,Pe)=>chn(Ae,Pe)};let G=!0,se=null,pe=null;Trn(()=>G);const ue={setActiveStaticPanel:Ae=>ogt(IVe.find(Pe=>Pe.kind===Ae)?.kind??null),focusCompactInspector:()=>{if(cLt)return!1;const Ae=dm?.center.querySelector('[data-testid="compact-inspector-card"]');return Ae?(Ae.tabIndex=-1,Ae.focus(),ogt("inspector"),!0):!1},setPaneActive:Ae=>{G!==Ae&&(G=Ae)},setImmersive:Ae=>{se?.(),se=null,!(!Ae||!dm)&&(se=G_n({root:dm.chromeRoot,hideChrome:()=>Ae.enter(),showChrome:()=>Ae.exit()}))},setDockCommands:Ae=>{pe?.(),pe=null,Ae&&(pe=pkr({showUtility:Pe=>Ae.showUtility(Pe),toggleUtility:Pe=>Ae.toggleUtility(Pe),ensureUtility:Pe=>Ae.ensureUtility(Pe),closeUtility:Pe=>Ae.closeUtility(Pe),showStaticPanel:Pe=>Ae.showStaticPanel(Pe),setFocus:Pe=>Ae.setFocus(Pe),toggleFocus:()=>Ae.toggleFocus(),captureUtilities:Pe=>{for(const be of Pe)Ae.showUtility(be);return()=>{for(const be of Pe)Ae.closeUtility(be)}},showAuxiliary:()=>ue.report("warn","Undo history has no panel under the VS Code frame: the stack is the workbench's own (U4), reached through Edit → Undo/Redo and the Timeline.")}))},report:(Ae,Pe)=>d.report(Ae,Pe)};return{host:c,keyboard:d,documents:g,history:S,files:k,commands:F,notifications:D,views:J,utilities:$,output:{setProvider:imn},settings:A,status:{list:()=>["left","right"].flatMap(Ae=>yRe(Ae).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:Ae,order:Pe.order??be}))),subscribe:Ae=>R3t(Ae),offerBody:(Ae,Pe)=>lhn(Ae,Pe)},game:ue,offerPart:Qmn}}function mhn(t){const n=Object.keys(t.packages);return g0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),zDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:_hn}}const{mountVolter:kwn}=mhn({id:"game-editor",packages:{"@volter/editor-game":p0r,"@volter/editor-react":_0r,"@volter/editor-threejs":m0r,"@volter/editor-xstate":h0r,"@volter/editor-blender":d0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,T3t as A,b0n as B,C3t as C,E3t as D,M_e as E,B0n as F,DAr as G,uRe as H,Pen as I,gFt as J,DB as K,u0 as L,OC as M,w3t as N,oVe as O,S3t as P,bSn as Q,k3t as R,zwr as S,J2n as T,Yv as U,Ih as V,aBe as W,rYr as X,uvn as Y,Qs as Z,lo as _,XY as a,w2n as a$,ZFt as a0,trn as a1,r9t as a2,L_ as a3,EN as a4,NSn as a5,Ms as a6,dc as a7,Kk as a8,fvn as a9,bRt as aA,Ktn as aB,wf as aC,Y0 as aD,mp as aE,K0n as aF,gy as aG,oq as aH,vMt as aI,G3r as aJ,vSn as aK,_p as aL,pm as aM,Zm as aN,xwn as aO,ive as aP,l0 as aQ,NFt as aR,TD as aS,l0n as aT,WCr as aU,Z0e as aV,BRt as aW,qze as aX,HSn as aY,Zf as aZ,B9t as a_,vC as aa,tyn as ab,aan as ac,_cn as ad,hSn as ae,tVe as af,MB as ag,Zwr as ah,l9t as ai,c2n as aj,S0n as ak,Go as al,iyn as am,Iye as an,ofn as ao,Q0e as ap,rTr as aq,nwn as ar,G0e as as,rq as at,Rze as au,Oze as av,hYr as aw,Ean as ax,b$e as ay,Htn as az,cBe as b,I3r as b$,C2n as b0,X4r as b1,T2n as b2,gC as b3,P$e as b4,NTr as b5,nOe as b6,ig as b7,DFt as b8,xYr as b9,xBe as bA,Jc as bB,t2 as bC,fLe as bD,khn as bE,Jvr as bF,bgt as bG,Iw as bH,NAr as bI,AAr as bJ,n$e as bK,PAr as bL,y0r as bM,cye as bN,JOe as bO,Oyn as bP,Nyn as bQ,ean as bR,evn as bS,Q0n as bT,z3r as bU,ivn as bV,Lhe as bW,l2n as bX,d2n as bY,Ttn as bZ,P3r as b_,i2n as ba,CRt as bb,SRt as bc,ERt as bd,sYr as be,xmn as bf,Cwn as bg,ASn as bh,wRt as bi,bYr as bj,Svn as bk,vLe as bl,YB as bm,uwn as bn,fwn as bo,Hfn as bp,LAr as bq,U0n as br,i$e as bs,vgt as bt,$0n as bu,n$ as bv,hO as bw,S0r as bx,aR as by,_Le as bz,fRe as c,O2n as c$,Kwr as c0,u2n as c1,Stn as c2,c9t as c3,ed as c4,my as c5,fu as c6,L2n as c7,q2n as c8,z2n as c9,QZr as cA,eQr as cB,JRt as cC,HRt as cD,qZr as cE,v2n as cF,HZr as cG,y2n as cH,tQr as cI,F2n as cJ,WZr as cK,Wze as cL,WRt as cM,JZr as cN,DMe as cO,VZr as cP,k2n as cQ,o_e as cR,KZr as cS,ZSt as cT,YSt as cU,YZr as cV,MZr as cW,Jze as cX,AMe as cY,GZr as cZ,M2n as c_,V2n as ca,HSt as cb,N2n as cc,$2n as cd,B2n as ce,nQr as cf,GSt as cg,P2n as ch,jD as ci,PZr as cj,QSt as ck,D2n as cl,rQr as cm,E2n as cn,R2n as co,h2n as cp,g2n as cq,$Zr as cr,U2n as cs,ZZr as ct,zZr as cu,S2n as cv,x2n as cw,j2n as cx,I2n as cy,eve as cz,x3t as d,Exr as d$,b2n as d0,iQr as d1,A2n as d2,dtn as d3,X0 as d4,pxt as d5,sxn as d6,Kye as d7,dR as d8,Lyn as d9,i$ as dA,Tan as dB,xan as dC,$Ve as dD,cxn as dE,w0r as dF,C0r as dG,FTt as dH,cyn as dI,yen as dJ,SSn as dK,mtn as dL,hMt as dM,u2 as dN,e3r as dO,f2n as dP,yMt as dQ,dQ as dR,Rhn as dS,SEr as dT,YTt as dU,SZ as dV,qCr as dW,g4t as dX,yZ as dY,hAt as dZ,AR as d_,Vv as da,Byn as db,M0r as dc,L0r as dd,W3t as de,bZ as df,Cyn as dg,$hn as dh,nCt as di,oCt as dj,Phn as dk,ivr as dl,H0n as dm,G0n as dn,PI as dp,R_ as dq,lwn as dr,gBe as ds,Cm as dt,Ffn as du,i0 as dv,K2n as dw,$Dr as dx,ifn as dy,MRe as dz,b3t as e,kBe as e$,ESr as e0,t$ as e1,Hme as e2,_Ct as e3,N5e as e4,_0n as e5,m0n as e6,rvn as e7,W0 as e8,cvn as e9,zhn as eA,KTr as eB,WSn as eC,ySn as eD,xyn as eE,xSn as eF,JYr as eG,Lze as eH,FRt as eI,v4t as eJ,_tn as eK,SYr as eL,F4t as eM,M5e as eN,Mye as eO,Won as eP,uLe as eQ,Mhn as eR,b0r as eS,N4t as eT,Xon as eU,Hht as eV,jht as eW,c0 as eX,p0n as eY,Can as eZ,BRe as e_,Z2n as ea,OSn as eb,hvn as ec,qhe as ed,M4r as ee,JQr as ef,gvn as eg,v$e as eh,vvn as ei,yvn as ej,n2n as ek,uxn as el,lxn as em,lvn as en,CBe as eo,ahe as ep,Iyn as eq,G0 as er,Vyn as es,YY as et,Hyn as eu,E_e as ev,r0n as ew,aQ as ex,nyn as ey,IC as ez,dRe as f,CSn as f$,h0n as f0,ZCr as f1,Fhn as f2,A0n as f3,k0n as f4,TC as f5,fFe as f6,Tee as f7,AN as f8,Dve as f9,cLe as fA,hLe as fB,q0n as fC,M0n as fD,dwn as fE,hPt as fF,Jhn as fG,F0r as fH,Uhn as fI,Fme as fJ,UOe as fK,cCt as fL,j0n as fM,zyn as fN,Exn as fO,Ban as fP,yxn as fQ,TR as fR,Lxn as fS,vxn as fT,eVe as fU,r2n as fV,DRt as fW,kTr as fX,pTr as fY,axn as fZ,wSn as f_,Nmn as fa,AYr as fb,ND as fc,eTr as fd,GTr as fe,C_e as ff,ptn as fg,x$e as fh,m3r as fi,Sfn as fj,swn as fk,own as fl,iwn as fm,Ave as fn,kN as fo,F0n as fp,J0n as fq,Ewn as fr,Twn as fs,ESn as ft,kSn as fu,E4t as fv,x0n as fw,Nhn as fx,Bhn as fy,dN as fz,A3t as g,ZTt as g$,a0 as g0,TSn as g1,GQ as g2,oxn as g3,XSn as g4,eMt as g5,RRt as g6,VQ as g7,Jfn as g8,tfn as g9,mPt as gA,wnn as gB,wwn as gC,ryn as gD,jFe as gE,w3r as gF,bvn as gG,k0r as gH,a2n as gI,DYr as gJ,Rht as gK,tCt as gL,o2 as gM,K1 as gN,VSn as gO,USn as gP,Gwr as gQ,Qgn as gR,zSn as gS,Zgn as gT,qSn as gU,i9t as gV,sSn as gW,xR as gX,den as gY,enn as gZ,qhn as g_,CR as ga,oYr as gb,o2n as gc,Xtn as gd,qDr as ge,Ig as gf,JSn as gg,x0r as gh,dee as gi,X2n as gj,_Sn as gk,Y2n as gl,Syn as gm,pSn as gn,g4r as go,aSn as gp,X0n as gq,dSn as gr,Y0n as gs,mvn as gt,Dw as gu,of as gv,hR as gw,N3r as gx,Z0n as gy,BSn as gz,r3t as h,f0n as h$,VTt as h0,XTr as h1,rA as h2,kC as h3,tA as h4,Lhn as h5,avn as h6,mBe as h7,tve as h8,m2n as h9,Nht as hA,Vye as hB,BTr as hC,LTr as hD,nCr as hE,Ryn as hF,jyn as hG,Myn as hH,$yn as hI,qyn as hJ,d0n as hK,Pyn as hL,c0n as hM,Ym as hN,h4t as hO,Ayn as hP,Dyn as hQ,SBe as hR,Jye as hS,Fyn as hT,EBe as hU,Tyn as hV,s0n as hW,a0n as hX,she as hY,y0n as hZ,Oht as h_,bCt as ha,Xan as hb,Vxn as hc,TYr as hd,nvn as he,eyn as hf,fyn as hg,myn as hh,vyn as hi,R$ as hj,CD as hk,dyn as hl,lyn as hm,uyn as hn,hyn as ho,HTr as hp,QCr as hq,Iht as hr,hC as hs,DRe as ht,G3t as hu,Eyn as hv,kyn as hw,IRe as hx,PRe as hy,WTr as hz,Ip as i,lLe as i$,XCr as i0,Uyn as i1,y4t as i2,uhe as i3,$Cr as i4,OG as i5,l4t as i6,Y3t as i7,VTr as i8,eCr as i9,aCr as iA,oCr as iB,NG as iC,i0n as iD,v0n as iE,jCr as iF,VCr as iG,zTr as iH,Zyn as iI,Jyn as iJ,fhe as iK,n0n as iL,I5e as iM,qTr as iN,ABe as iO,Gyn as iP,q$ as iQ,Wyn as iR,Xyn as iS,txn as iT,ixn as iU,Eee as iV,AD as iW,jcn as iX,twn as iY,E5e as iZ,Uxn as i_,Yyn as ia,Kyn as ib,Qyn as ic,e0n as id,u0n as ie,$Tr as ig,BCr as ih,u4t as ii,g0n as ij,YTr as ik,o0n as il,t0n as im,rCr as io,k_e as ip,ORe as iq,sCr as ir,iCr as is,YCr as it,tCr as iu,vee as iv,Bye as iw,cCr as ix,kpe as iy,RRe as iz,QAt as j,Mxn as j$,iee as j0,Yfn as j1,_wn as j2,L0n as j3,OAr as j4,DBe as j5,o$ as j6,$Mt as j7,Wxn as j8,s2 as j9,Zin as jA,j9t as jB,HTt as jC,FB as jD,aN as jE,rSn as jF,rwn as jG,X_n as jH,fGr as jI,pGr as jJ,mGr as jK,gSn as jL,Wwr as jM,SVe as jN,Enn as jO,ate as jP,pan as jQ,iwt as jR,wI as jS,zFe as jT,jxn as jU,whn as jV,Ahn as jW,Ehn as jX,Fxn as jY,Chn as jZ,E0r as j_,Jxn as ja,dPt as jb,D3r as jc,lBe as jd,Qwr as je,yht as jf,Uwr as jg,D3t as jh,Fsn as ji,fSn as jj,HI as jk,XMe as jl,oyn as jm,XRt as jn,rve as jo,Dye as jp,lN as jq,oBe as jr,Fye as js,uN as jt,WAr as ju,OBe as jv,vBe as jw,Rye as jx,sBe as jy,e0e as jz,Bwr as k,gR as k$,$an as k0,Txn as k1,wxn as k2,Hon as k3,Bxn as k4,xxn as k5,Han as k6,zxn as k7,pxn as k8,$xn as k9,l6t as kA,lSn as kB,ZSn as kC,avr as kD,wD as kE,J0 as kF,nxt as kG,GAt as kH,Y4 as kI,Dhn as kJ,dLe as kK,NEr as kL,Cve as kM,Eve as kN,$Sn as kO,VMt as kP,WMt as kQ,ewt as kR,$Fe as kS,z_e as kT,qFe as kU,rfn as kV,nUe as kW,Hxn as kX,Qfn as kY,R0n as kZ,mSn as k_,bxn as ka,gxn as kb,_xn as kc,Pxn as kd,hxn as ke,mxn as kf,Sxn as kg,Dxn as kh,Cxn as ki,Ixn as kj,g$e as kk,kxn as kl,fxn as km,qxn as kn,dxn as ko,Nxn as kp,wVe as kq,Axn as kr,qan as ks,Oxn as kt,Rxn as ku,QSn as kv,YSn as kw,exn as kx,cSn as ky,jDr as kz,Zme as l,gwn as l$,NDr as l0,Tve as l1,U$ as l2,eA as l3,mD as l4,iTr as l5,oTr as l6,nTr as l7,Oye as l8,Ohn as l9,rxn as lA,mwn as lB,hwn as lC,kjt as lD,nxn as lE,pyn as lF,Hsn as lG,gyn as lH,cwn as lI,bwn as lJ,W0n as lK,BAr as lL,V0n as lM,byn as lN,_yn as lO,yyn as lP,vwn as lQ,wrn as lR,tvn as lS,AEr as lT,Hhn as lU,Wfn as lV,p2n as lW,_2n as lX,DSn as lY,f9t as lZ,yjt as l_,K0r as la,u3r as lb,f3r as lc,Ihn as ld,pjt as le,syn as lf,Hwr as lg,tTr as lh,ewn as li,Qxn as lj,Xxn as lk,Zxn as ll,Yxn as lm,I0n as ln,$3r as lo,svn as lp,ovn as lq,uSn as lr,zPt as ls,z0n as lt,pwn as lu,Thn as lv,Gxn as lw,Kxn as lx,jhn as ly,Vhn as lz,nQ as m,pbr as m$,Swn as m0,s2n as m1,GSn as m2,Vfn as m3,Vmn as m4,Umn as m5,nq as m6,WDr as m7,wyn as m8,xCt as m9,vje as mA,$At as mB,Uxr as mC,ZI as mD,a1r as mE,kCt as mF,h1r as mG,zme as mH,cht as mI,F_ as mJ,Vme as mK,Ume as mL,Ybr as mM,r2r as mN,yB as mO,Bbr as mP,qbr as mQ,MEt as mR,Hbr as mS,FEt as mT,jbr as mU,Lbr as mV,Cbr as mW,Ebr as mX,S2r as mY,eh as mZ,tbr as m_,LSn as ma,eSn as mb,G2n as mc,tSn as md,LQr as me,HEr as mf,zEr as mg,ove as mh,rrn as mi,w0n as mj,O0n as mk,T0n as ml,E0n as mm,C0n as mn,Ysn as mo,N0n as mp,FSn as mq,MSn as mr,RSn as ms,jSn as mt,DEr as mu,PEr as mv,GRe as mw,SN as mx,KSn as my,ayn as mz,vB as n,Rw as n$,NEt as n0,fbr as n1,abr as n2,IEt as n3,lbr as n4,obr as n5,rbr as n6,mbr as n7,sbr as n8,nbr as n9,Fbr as nA,Ibr as nB,Pbr as nC,Obr as nD,Nbr as nE,a2r as nF,Ubr as nG,Dbr as nH,A2r as nI,d2r as nJ,Mbr as nK,l2r as nL,x2r as nM,Tbr as nN,Qbr as nO,v2r as nP,Xbr as nQ,h2r as nR,REt as nS,Wbr as nT,n2r as nU,i2r as nV,$Et as nW,w2r as nX,y2r as nY,k2r as nZ,T2r as n_,Q1r as na,ebr as nb,hbr as nc,_br as nd,cbr as ne,ibr as nf,dbr as ng,bye as nh,ubr as ni,qEt as nj,D2r as nk,Jbr as nl,t2r as nm,g2r as nn,s2r as no,zbr as np,Sbr as nq,wbr as nr,bLe as ns,f2r as nt,qCt as nu,m2r as nv,p2r as nw,E2r as nx,vbr as ny,Rbr as nz,qwr as o,sSr as o$,c2r as o0,P2r as o1,u2r as o2,Sye as o3,M_ as o4,b2r as o5,Gbr as o6,C2r as o7,_2r as o8,BEt as o9,nkt as oA,dgn as oB,fgn as oC,pgn as oD,ugn as oE,cgn as oF,KEt as oG,XEt as oH,gSr as oI,tSr as oJ,VCt as oK,JCt as oL,Ogn as oM,Sgn as oN,skt as oO,zEt as oP,HEt as oQ,zCt as oR,UCt as oS,cSr as oT,kgn as oU,hSr as oV,$2r as oW,q2r as oX,eQ as oY,qk as oZ,nRe as o_,vu as oa,kbr as ob,xbr as oc,bbr as od,Kbr as oe,CLe as of,Zbr as og,e2r as oh,Abr as oi,o2r as oj,Ghn as ok,ui as ol,agn as om,sgn as on,gbr as oo,Jmt as op,lgn as oq,Y2r as or,mSr as os,ikt as ot,okt as ou,J2r as ov,U2r as ow,Mgn as ox,bSr as oy,rkt as oz,ZAt as p,Fgn as p$,B2r as p0,z2r as p1,W2r as p2,xgn as p3,ekt as p4,tkt as p5,F2r as p6,R2r as p7,j2r as p8,M2r as p9,Ngn as pA,L2r as pB,Ign as pC,M$ as pD,hye as pE,gye as pF,jgn as pG,_gn as pH,qgn as pI,ygn as pJ,Lgn as pK,Tgn as pL,ySr as pM,nSr as pN,HCt as pO,KCt as pP,WCt as pQ,GCt as pR,yye as pS,vye as pT,Egn as pU,ckt as pV,_Sr as pW,aSr as pX,N2r as pY,xye as pZ,wSr as p_,akt as pa,QEt as pb,$gn as pc,ukt as pd,Dgn as pe,iSr as pf,QZ as pg,YI as ph,O2r as pi,Cgn as pj,lkt as pk,kLe as pl,lSr as pm,qme as pn,tQ as po,iRe as pp,rSr as pq,GEt as pr,Agn as ps,mgn as pt,Q2r as pu,ggn as pv,Rgn as pw,hgn as px,uSr as py,X2r as pz,jwr as q,pAt as q$,vSr as q0,G2r as q1,Bgn as q2,dSr as q3,pSr as q4,Pgn as q5,fSr as q6,wgn as q7,V2r as q8,H2r as q9,OEt as qA,$br as qB,Vbr as qC,xSr as qD,Hmt as qE,Gmt as qF,Yhn as qG,Z1r as qH,I2r as qI,ngn as qJ,ogn as qK,rgn as qL,ign as qM,E1r as qN,k1r as qO,C1r as qP,Xhn as qQ,Khn as qR,ybr as qS,Ugn as qT,zgn as qU,ILe as qV,GLe as qW,KLe as qX,XLe as qY,dAt as qZ,cAt as q_,YEt as qa,K2r as qb,vgn as qc,Z2r as qd,oSr as qe,ELe as qf,VEt as qg,UEt as qh,JEt as qi,WEt as qj,eSr as qk,ZEt as ql,bgn as qm,sA as qn,$S as qo,Jme as qp,TSr as qq,Qhn as qr,tgn as qs,SSr as qt,Zhn as qu,egn as qv,w1r as qw,T1r as qx,eRe as qy,sD as qz,dy as r,oAt as r$,ULe as r0,JLe as r1,YLe as r2,zLe as r3,VLe as r4,FLe as r5,MLe as r6,OAt as r7,iBe as r8,kye as r9,vAt as rA,FAt as rB,RLe as rC,uAt as rD,rBe as rE,sAt as rF,EAt as rG,j$ as rH,Tye as rI,tBe as rJ,nBe as rK,DAt as rL,qAt as rM,MAt as rN,Fw as rO,Eye as rP,bAt as rQ,j_ as rR,NAt as rS,iAt as rT,LAt as rU,wAt as rV,yAt as rW,Lu as rX,jLe as rY,wye as rZ,aD as r_,hee as ra,kAt as rb,mAt as rc,WLe as rd,NLe as re,OLe as rf,rQ as rg,Vgn as rh,TAt as ri,xAt as rj,fht as rk,zAt as rl,Wme as rm,$Le as rn,qLe as ro,Xkt as rp,Gkt as rq,eAt as rr,Zkt as rs,gAt as rt,uht as ru,HLe as rv,BLe as rw,BAt as rx,SAt as ry,nAt as rz,t3t as s,ASr as s$,Cye as s0,lAt as s1,fAt as s2,LLe as s3,_At as s4,PLe as s5,AAt as s6,lht as s7,xxr as s8,oxr as s9,uxr as sA,WSr as sB,oRe as sC,mxr as sD,yxr as sE,QLe as sF,exr as sG,rxr as sH,Wxr as sI,cxr as sJ,Cxr as sK,QSr as sL,kxr as sM,Pxr as sN,txr as sO,Ixr as sP,Vxr as sQ,jxr as sR,GSr as sS,Oxr as sT,ZLe as sU,IAt as sV,aAt as sW,Kme as sX,Fxr as sY,Gme as sZ,kSr as s_,sxr as sa,gxr as sb,RAt as sc,qxr as sd,nxr as se,ixr as sf,Lxr as sg,KSr as sh,XSr as si,Txr as sj,NSr as sk,RSr as sl,zxr as sm,axr as sn,BSr as so,HSr as sp,ISr as sq,OSr as sr,CAt as ss,Rxr as st,pxr as su,_xr as sv,Wgn as sw,$Sr as sx,dxr as sy,fxr as sz,unn as t,nSn as t$,Dxr as t0,Xme as t1,PAt as t2,JAt as t3,$xr as t4,jAt as t5,VAt as t6,MSr as t7,LSr as t8,FSr as t9,jmt as tA,Mme as tB,gvr as tC,hvr as tD,PG as tE,dCt as tF,fCt as tG,bvr as tH,vvr as tI,kwn as tJ,Whn as tK,Hgn as tL,Ggn as tM,Kgn as tN,Xgn as tO,Ygn as tP,OEr as tQ,D0n as tR,P0n as tS,dvn as tT,pvn as tU,_vn as tV,t2n as tW,W2n as tX,H2n as tY,VQr as tZ,Q2n as t_,jSr as ta,DSr as tb,PSr as tc,Nxr as td,Jgn as te,lxr as tf,Jxr as tg,Mxr as th,UAt as ti,bxr as tj,Bxr as tk,eBe as tl,hxr as tm,vxr as tn,YSr as to,Sxr as tp,JSr as tq,qSr as tr,zSr as ts,VSr as tt,USr as tu,wxr as tv,ZSr as tw,Axr as tx,yvr as ty,lCt as tz,Pa as u,iSn as u0,oSn as u1,PSn as u2,ISn as u3,xrn as u4,ywn as u5,Gd as v,bo as w,Pg as x,Pp as y,awn as z};
|
|
1409
|
+
${s.componentStack??""}`,"editor")}render(){return this.state.error?q.jsxs("div",{role:"alert","data-testid":"static-panel-crashed",style:{padding:12,display:"grid",gap:8,alignContent:"start"},children:[q.jsxs("strong",{children:[this.props.title," crashed."]}),q.jsx("span",{style:{opacity:.8,wordBreak:"break-word"},children:this.state.error.message}),q.jsx("div",{children:q.jsx(Ms,{type:"button",variant:"outline",size:"compact",onClick:()=>this.setState({error:null}),children:"Retry"})})]}):this.props.children}}const P_n=IVe.map(t=>{const n=A_n[t.kind],s=c=>q.jsx(D_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function I_n(t){return P_n.find(n=>n.kind===t)}function N_n({kind:t,dependencies:n}){const{Content:s}=I_n(t);return q.jsx(s,{dependencies:n})}const O_n=250;function R_n(){const t=L4t(),n=F_n();return()=>{n(),t()}}function F_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of Qs.getEntries()){if(S.add(k.id),k.level!=="error"&&k.level!=="warn")continue;const A=t.get(k.id)??0;k.count<=A||(t.set(k.id,k.count),g.push({severity:k.level,message:k.message,source:k.source??null,occurrences:k.count-A}))}for(const k of[...t.keys()])S.has(k)||t.delete(k);return g}function d(){if(n=null,s)return;const g=c();g.length!==0&&SN("console-entries",{entries:g,_clientId:xC})}const m=Qs.subscribe(()=>{if(s)return;const g=Qs.getEntries(),S=g[g.length-1];if(S&&S.level==="error"&&!t.has(S.id)){n!==null&&clearTimeout(n),n=null,queueMicrotask(d);return}n===null&&(n=setTimeout(d,O_n))});return SN("console-entries",{entries:[],_clientId:xC}),d(),()=>{s=!0,n!==null&&clearTimeout(n),m()}}const Y4={INPUT:"input",PRE_PHYSICS:"prePhysics",PHYSICS:"physics",POST_PHYSICS:"postPhysics",GAME_LOGIC:"gameLogic",ANIMATION:"animation",PRE_RENDER:"preRender",RENDER:"render"},yZ=[Y4.INPUT,Y4.PRE_PHYSICS,Y4.PHYSICS,Y4.POST_PHYSICS,Y4.GAME_LOGIC,Y4.ANIMATION,Y4.PRE_RENDER,Y4.RENDER],ywn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),sye=1e-9,zjt=1e5;function M_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+sye){const D=Math.min(g+S,s.end);m.push({from:g,to:D,direction:"forward"}),g=D;break}if(m.push({from:g,to:s.end,direction:"forward"}),S-=F,g=s.start,k=!0,A++,A>zjt){const D=s.start+S%c;m.push({from:g,to:D,direction:"forward"}),g=D;break}}return{pos:g,intervals:m,looped:k}}function j_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+sye){const D=Math.max(g-S,s.start);m.push({from:g,to:D,direction:"reverse"}),g=D;break}if(m.push({from:g,to:s.start,direction:"reverse"}),S-=F,g=s.end,k=!0,A++,A>zjt){const D=s.end-S%c;m.push({from:g,to:D,direction:"reverse"}),g=D;break}}return{pos:g,intervals:m,looped:k}}function gTt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class L_n{_previousTime;_currentTime;_range;_timeScale;_playDirection="forward";_lastCrossingDirection="forward";_playbackState="stopped";_evaluators=[];_registrationCounter=0;constructor(n={}){const s=n.start??0,c=n.end??Math.max(s,1);if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);const d=n.timeScale??1;if(!Number.isFinite(d)||d<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${d}`);this._range={start:s,end:c,loop:n.loop??!1},this._timeScale=d,this._previousTime=s,this._currentTime=s}get time(){return this._currentTime}get previousTime(){return this._previousTime}get direction(){return this._playbackState==="playing"?this._playDirection:"paused"}get playbackState(){return this._playbackState}get timeScale(){return this._timeScale}set timeScale(n){if(!Number.isFinite(n)||n<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${n}`);this._timeScale=n}get range(){return this._range}setRange(n){const s=n.start??this._range.start,c=n.end??this._range.end,d=n.loop??this._range.loop;if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);this._range={start:s,end:c,loop:d};const m=gTt(this._currentTime,this._range);m!==this._currentTime&&this.seek(m)}play(n){n&&(this._playDirection=n),this._playbackState="playing"}pause(){this._playbackState="paused"}stop(){this._playbackState="stopped"}seek(n){const s=gTt(n,this._range);if(s===this._currentTime)return this.emit(this._currentTime,this._currentTime,[{from:s,to:s,direction:this._lastCrossingDirection}],!1,this._lastCrossingDirection);const c=s>this._currentTime?"forward":"reverse",d=this._currentTime;return this._previousTime=d,this._currentTime=s,this._lastCrossingDirection=c,this.emit(d,s,[{from:d,to:s,direction:c}],!1,c)}seekFrame(n,s){if(!Number.isFinite(s)||s<=0)throw new Error(`[AnimationClock] seekFrame fps must be a finite number > 0, got ${s}`);return this.seek(this._range.start+n/s)}advance(n){if(this._playbackState!=="playing")return null;if(!Number.isFinite(n))throw new Error(`[AnimationClock] advance(dt) requires a finite dt, got ${n}`);const s=Math.abs(n)*this._timeScale,c=this._currentTime;if(s===0)return this.emit(c,c,[],!1,this._playDirection);const d=this._playDirection==="forward"?M_n(c,s,this._range):j_n(c,s,this._range);return this._previousTime=c,this._currentTime=d.pos,this._lastCrossingDirection=this._playDirection,this.emit(c,d.pos,d.intervals,d.looped,this._playDirection)}subscribe(n,s){if(!yZ.includes(n))throw new Error(`[AnimationClock] unknown phase "${n}". Valid: ${yZ.join(", ")}`);const c={phase:n,order:this._registrationCounter++,fn:s};return this._evaluators.push(c),{dispose:()=>{const d=this._evaluators.indexOf(c);d!==-1&&this._evaluators.splice(d,1)}}}emit(n,s,c,d,m){const g={previousTime:n,currentTime:s,direction:m,timeScale:this._timeScale,looped:d,intervals:c};if(this._evaluators.length>0){const S=[...this._evaluators].sort((k,A)=>{const F=yZ.indexOf(k.phase),D=yZ.indexOf(A.phase);return F!==D?F-D:k.order-A.order});for(const k of S)try{k.fn(g)}catch(A){console.error(`[AnimationClock] evaluator in phase "${k.phase}" threw:`,A)}}return g}}const b_e={start:0,end:0,fps:30},B_n=150;class vwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new L_n;subjects=[];activeId=null;listeners=new Set;settleListeners=new Set;settleTimer=null;disposed=!1;cachedSnapshot=null;stopStoreWatch;attach(n){return this.subjects.push(n),this.activeId===null?this.setActiveSubject(n.id):(n.seek(this.clock.time),this.notify()),()=>{const s=this.subjects.indexOf(n);if(s<0)return;if(this.subjects.splice(s,1),this.activeId!==n.id){this.notify();return}this.activeId=null;const c=this.subjects[0];c?this.setActiveSubject(c.id):(this.clock.setRange({start:b_e.start,end:b_e.end,loop:!1}),this.notify())}}setActiveSubject(n){const s=this.subjects.find(d=>d.id===n);if(!s)return;this.activeId=n;const c=s.range();this.clock.setRange({start:c.start,end:c.end}),this.applyTime(this.clock.time),this.notify()}get active(){return this.subjects.find(n=>n.id===this.activeId)??null}fps(){return this.active?.range().fps??b_e.fps}get driver(){return this.store.playState==="stopped"?"editor":"world"}assertEditorDrives(){if(this.driver==="world")throw new Error("transport: the world is driving time (Play); pause the game to scrub")}play(n="forward"){this.assertEditorDrives(),this.active&&(this.cancelSettle(),this.clock.play(n),this.notify())}pause(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.settle(),this.notify()}stop(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.applyTime(this.clock.seek(this.clock.range.start).currentTime),this.clock.stop(),this.settle(),this.notify()}seek(n){this.assertEditorDrives(),this.applyTime(this.clock.seek(n).currentTime),this.clock.playbackState!=="playing"&&this.scheduleSettle(),this.notify()}seekFrame(n){this.seek(n/this.fps())}setLoop(n){this.clock.setRange({loop:n}),this.notify()}setTimeScale(n){this.clock.timeScale=n,this.notify()}tick(n){if(this.disposed||this.driver==="world"||this.clock.playbackState!=="playing")return 0;const s=this.clock.time,c=this.clock.advance(n);return c?(this.applyTime(c.currentTime),this.notify(),c.looped?Math.abs(n)*this.clock.timeScale:c.currentTime-s):0}applyTime(n){const s=this.active;s&&s.seek(n);for(const c of this.subjects)c!==s&&c.seek(n)}onSettled(n){return this.settleListeners.add(n),()=>{this.settleListeners.delete(n)}}scheduleSettle(){this.cancelSettle(),this.settleTimer=setTimeout(()=>{this.settleTimer=null,this.settle()},B_n)}cancelSettle(){this.settleTimer!==null&&(clearTimeout(this.settleTimer),this.settleTimer=null)}settle(){if(this.disposed)return;const n=this.clock.time;for(const s of[...this.settleListeners])s(n)}snapshot(){const n=this.cachedSnapshot;if(n)return n;const s=this.active?.range()??b_e,c={time:this.clock.time,range:{start:this.clock.range.start,end:this.clock.range.end,fps:s.fps,loop:this.clock.range.loop},playbackState:this.clock.playbackState,timeScale:this.clock.timeScale,activeSubject:this.activeId,subjects:this.subjects.map(d=>({id:d.id,label:d.label})),driver:this.driver};return this.cachedSnapshot=c,c}activeClips(){const s=this.active?.clips?.();return s&&s.length>1?s:null}setActiveClip(n){this.assertEditorDrives(),this.active?.setClip?.(n);const s=this.active?.range();s&&this.clock.setRange({start:s.start,end:s.end}),this.applyTime(this.clock.time),this.notify()}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}notify(){this.cachedSnapshot=null;for(const n of[...this.listeners])n()}dispose(){this.disposed=!0,this.stopStoreWatch(),this.cancelSettle(),this.clock.stop(),this.subjects.length=0,this.activeId=null,this.listeners.clear(),this.settleListeners.clear()}}const Dme=new Map,Xje=new Set;function yTt(){for(const t of[...Xje])t()}function bwn(t,n){return Dme.set(t,n),yTt(),()=>{Dme.get(t)===n&&(Dme.delete(t),yTt())}}function $_n(t){return t===null?null:Dme.get(t)??null}function q_n(t){return Xje.add(t),()=>{Xje.delete(t)}}let Pme=null;function Swn(t){return Pme=t,()=>{Pme===t&&(Pme=null)}}function kve(){return Pme}const Vjt="__volterWorkspacePersistenceSuppressed";function Ujt(){return globalThis}function Jjt(t){Ujt()[Vjt]=t}function z_n(){return Ujt()[Vjt]===!0}function Wjt(){return(xee()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Hjt={phase:"idle",flightDone:!1,gameReady:!1};function V_n(t,n){const s=t.flightDone||n==="flight-done",c=t.gameReady||n==="game-ready";return s&&c?{phase:"crossfade",flightDone:s,gameReady:c}:s?{phase:"holding",flightDone:s,gameReady:c}:{...t,flightDone:s,gameReady:c}}function U_n(t,n){if(n==="stop")return Hjt;switch(t.phase){case"idle":return n==="start"?{phase:"entering",flightDone:!1,gameReady:!1}:n==="start-reduced"?{phase:"playing",flightDone:!0,gameReady:!0}:t;case"entering":return V_n(t,n);case"holding":return n==="game-ready"?{...t,phase:"crossfade",gameReady:!0}:t;case"crossfade":return n==="crossfade-done"?{...t,phase:"playing"}:t;case"playing":return t}}const J_n=450,W_n=220,Gjt=250;function H_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${J_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${W_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Gjt}ms`)}let SD=null;function G_n(t){return SD=t,typeof document<"u"&&H_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Kjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function K_n(){return Qk?.state.phase??"idle"}const Ime=new Set;function Xjt(){if(Ime.size===0)return;const t=[...Ime];Ime.clear();for(const n of t)n()}function X_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Ime.add(t)}function Y_n(t,n,s){const c=setTimeout(()=>{t.timeouts.delete(c),s()},n);t.timeouts.add(c)}function gB(t){const n=Qk;if(!n)return;const s=n.state,c=U_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),Y_n(n,Gjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&kve()?.settle(),Xjt()))}function Z_n(){Q_n({immersive:Wjt()})}function Q_n(t){if(Qk&&pUe(),!t.immersive)return;const n=Kjt();Jjt(!0);const s={state:Hjt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=kve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function emn(t,n){(!t||!n)&&pUe()}function tmn(t){const n=Qk;n&&(n.flying&&t&&kve()?.track(t),gB("game-ready"))}function pUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Xjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&kve()?.end(),SD?.showChrome(!Kjt()),Jjt(!1)}}const Yje=new Set;let Yjt=null;function Zjt(){return wf()?.rootPath??null}function rmn(t){Yje.add(t);const n=Zjt();return n!==null&&Yjt===n&&t(),()=>{Yje.delete(t)}}async function xwn(){Yjt=Zjt();for(const t of[...Yje])await t()}function nmn(){const t=Pp();if(t===null)return null;const n=lQ(t);if(typeof n!="object"||n===null)return null;const s=n.stageMode;if(typeof s!="function")return null;const c=s.call(n);return typeof c=="string"?c:null}let Zje=null;function imn(t){Zje=t}function vTt(){if(!Zje)throw new Error("The workbench Output service is not connected.");return Zje}function omn(){dDr(Pp),d4r({output:{write:(...t)=>vTt().write(...t),show:t=>vTt().show(t)},console:{log:(t,n)=>Qs.log(t,n),warn:(t,n)=>Qs.warn(t,n),error:(t,n)=>Qs.error(t,n)},live:{register:c9t,mounted:wVe,playing:ave,runWindow:hVe,restartRequired:o9t,restart:s9t,subscribe:CVe,version:u9t,notifyChanged:i9t,snapshotFrame:yVe,frameCanvas:gVe,authoringRefusal:xVe,dispatch:vVe,scenes:bVe,surface:sve,coverage:SVe},viewport:{transition:{begin:Z_n,ready:tmn,end:pUe,onSettled:X_n,phase:K_n}},hierarchy:{subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:NBe,reportFacet:enn,onSample:qnn,onCommandDispatched:KYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>zze(n=>{n!==null&&t()}),onBeforeClose:vnn,reportWorkerCallMeter:lan},project:{documentTable:Hen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:rmn},notify:t=>s$(t),systems:{inspected:Pye,subscribe:Ywr,inspectedNetworking:tTr,subscribeNetworking:rTr,inspectedAudio:()=>nTr()??null,subscribeAudio:iTr,audioVersion:oTr},availability:{subscribe:tUe,version:Uun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Yye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:btn,acquire:Ttn,release:aVe,open:iq,container:Stn,setContainer:xtn,releaseContainer:wtn}},documents:{activeId:Pp,active:()=>{const t=TC();return t?{id:t.descriptor.id,kind:t.descriptor.kind,title:t.title}:null},subscribe:o2,version:K1,context:lQ,waitForContext:x4t,contextChanged:rEr,captureActive:t=>{const n=Ih();return n?T9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>$_n(t),subscribe:q_n},projectLocalState:{ready:ute,read:Cve,write:Eve,projectRootPath:()=>wf()?.rootPath??null},history:{record:c6t,setDelegate:uDr,onElement:_Dr,invalidate:mDr,onInvalidated:hDr,changed:fDr,elements:pDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?JYr(s)??Lze(s):null},undo:()=>Ih()?.projectHistory?.undo()??Promise.resolve(!1),redo:()=>Ih()?.projectHistory?.redo()??Promise.resolve(!1),canUndo:()=>Ih()?.projectHistory?.getSnapshot().canUndo??!1,canRedo:()=>Ih()?.projectHistory?.getSnapshot().canRedo??!1,undoLabel:()=>Ih()?.projectHistory?.getSnapshot().undoLabel??null,redoLabel:()=>Ih()?.projectHistory?.getSnapshot().redoLabel??null,subscribe:t=>{const n=a6t(t),s=s_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:L4r,read:t=>Dg.read(t),readBytes:t=>Dg.readBytes(t),write:(t,n)=>Dg.write(t,n),exists:t=>Dg.exists(t),list:t=>Dg.list(t),watch:t=>Dg.watch(t)},settings:{setProvider:jEr,get:VEr,set:JEr,inspect:Q4t,subscribe:t=>{const n=K4t(t),s=See(t);return()=>{n(),s()}}},keyboard:{actions:()=>Zan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>tDt().map(({id:t,title:n})=>({id:t,title:n,chords:aDt(t)})),activeKeymap:dR,invoke:t=>zVe(t),subscribe:t=>{const n=ecn(t),s=Kye(t),c=s_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Qan()+K1(),stage:()=>{const t=Ih();return t?{surface:Zfn(t).surface,mode:nmn()}:{surface:null,mode:null}},bindActions:acn,chordsFor:zBe,shortcutFor:t=>Vv(t)??null}})}let smn=0,lee=null;const Qje=new Set;function bTt(t){const n={generation:++smn,promise:t,active:!0};lee=n;for(const s of Qje)s(n);return Qje.clear(),n}function amn(){const t=lee;return t?.active?Promise.resolve(t):new Promise(n=>Qje.add(n))}async function _Ue(){for(;;){const t=await amn();if(await t.promise,lee===t&&t.active)return}}const Qjt=16,cmn=300,lmn=1e4,eLt="workspace";function umn(){const t=Cve(eLt);return!t||t.version!==Qjt?null:t}function fmn(t){Eve(eLt,t)}function dmn(t){const{descriptor:n}=t;if(!n.persist)return null;let s;try{s=n.persist({id:n.id,title:t.title})}catch{return null}if(s==null)return null;const c=OAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function pmn(){const t={};let n=!1;for(const s of yDt()){if(!s.persistKindState)continue;let c;try{c=s.persistKindState()}catch{continue}c!=null&&(t[s.kind]=c,n=!0)}return n?t:void 0}function _mn(){const t=[];for(const s of l0()){const c=dmn(s);c&&t.push(c)}const n=pmn();return{version:Qjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function mmn(t,n,s){for(const c of gDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!GQ(),store:t}))return!0}catch{}return!1}function STt(t){if(!t)return!1;const n=!GQ();return xN(t,n)?!0:htn.has(t)?(NFt(t),n&&ETr(t),!0):n&&X0(t)}function hmn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of yDt())if(d.beginRestore)try{d.beginRestore({state:s[d.kind],hasDocumentsToRestore:c,documentsToRestore:(n?.open??[]).map(m=>({kind:m.kind,state:m.state})),store:t})}catch{}}function gmn(t){const n=new Set;for(const s of t)for(const c of gDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function ymn(t,n){const s=n?.documents;if(hmn(t,s),!s||s.open.length===0){STt(s?.activeId??null);return}await gmn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&RAr(c.id,d),await mmn(t,c,s.activeId)}STt(s.activeId)}function tLt(t){if(!ute()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),Ae=bTt(Ce);return Promise.all([lte(),nVe()]).then(()=>{if(se){ue();return}pe=tLt(t),Ae.active=!1,_Ue().finally(ue)}),()=>{se=!0,pe?.()}}const n=umn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Mkr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!(z_n()||t.playState!==void 0&&t.playState!=="stopped")&&fmn(_mn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,cmn)},S=()=>m();let k=null;const A=typeof window<"u"&&dCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():hN().catch(()=>{}),D=F.then(()=>A?void 0:ymn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},lmn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(LAr(g)),window.addEventListener("pagehide",S))}),G=bTt($);return()=>{s=!0,G.active=!1,lee===G&&(lee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function vmn(t){Ye.useEffect(()=>{const n=dCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return _Ue().then(()=>{if(d())return Vge(t,n,{updateUrl:!1,origin:"link"})}).catch(m=>{Qs.error(`Could not restore shared editor view: ${m instanceof Error?m.message:String(m)}`,"editor")}),()=>{s=!0}},[t])}const xTt="volter:stale-chunk-reload";function bmn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(xTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(xTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function Smn(t){const n=jI.findIndex(s=>s.owner===t.owner&&s.id===t.id);return n>=0&&jI.splice(n,1),jI.push(t),jI.sort((s,c)=>(s.order??0)-(c.order??0)),()=>{const s=jI.indexOf(t);s>=0&&jI.splice(s,1)}}function wwn(t,n,s){const c=new Map,d={surface:t,store:n},m=g=>{const S=s(g);if(!S)return null;for(const k of jI){const A=k.statesFor(S,d);if(A.length>0)return{source:k,states:A}}return null};return{storiesFor:g=>[...m(g)?.states??[]],active:g=>c.get(g)??null,apply:(g,S)=>{if(S===null){c.delete(g),n.notifyIngestEdit();return}const k=m(g);if(!k?.states.some(F=>F.id===S)){Qs.warn(`[component-states] stories.apply: state "${S}" does not belong to node "${g}" on the ${t} surface — ignoring.`,"authoring");return}const A=s(g);A&&(c.set(g,S),k.source.apply(A,S,d),n.notifyIngestEdit())},unavailable:()=>jI.length>0?null:"No package in this editor registered a source of component states, so this component's named states could not be read."}}class Twn extends Error{name="StoryMediumMismatch"}function Cwn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Nme=new Map;function Ewn(t,n){return Nme.set(t,n),()=>{Nme.get(t)===n&&Nme.delete(t)}}function xmn(t){return Nme.get(t)??null}function wmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${Tmn(n[c])}`);return`${t}|${s.join("&")}`}function Tmn(t){if(typeof t=="function")return"fn";if(typeof t=="symbol")return"symbol";if(t===void 0)return"undefined";try{return JSON.stringify(t)??"undefined"}catch{return`[${typeof t}]`}}const aye=new Map,S_e=new Map,wTt=new WeakMap;let TTt=Promise.resolve(),CTt=null,Cmn=1;function Emn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function kmn(){await Promise.race([jye(),new Promise(t=>setTimeout(t,5e3))]),await Promise.race([new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),new Promise(t=>setTimeout(t,250))]),await new Promise(t=>setTimeout(t,750)),await new Promise(t=>{const n=globalThis.requestIdleCallback;if(typeof n=="function"){n(()=>t(),{timeout:2e3});return}setTimeout(t,0)})}function Amn(){return CTt??=kmn(),CTt}function Dmn(t){const n=wTt.get(t);if(n!==void 0)return n;const s=Cmn++;return wTt.set(t,s),s}function Pmn(t,n,s,c){const d=aye.get(t);if(d)return Promise.resolve(d);const m=S_e.get(t);if(m)return m;const g=TTt.then(async()=>{await Amn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=xmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return TTt=g.then(()=>{},()=>{}),S_e.set(t,g),g.then(S=>{aye.set(t,S),S_e.delete(t)},()=>S_e.delete(t)),g}function Imn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${wmn(n.id,n.args)}:${Dmn(m)}:${s}:${c}x${d}`,[S,k]=Ye.useState(()=>aye.get(g)),[A,F]=Ye.useState(!1);return Ye.useEffect(()=>{let D=!1;if(F(!1),k(aye.get(g)),!!Emn())return Pmn(g,t.surface,n,{width:c,height:d}).then(J=>{D||k(J)},()=>{D||F(!0)}),()=>{D=!0}},[t.surface,d,g,n,c]),S?q.jsx("img",{src:S,alt:`${t.name} preview`,className:"volter-component-thumbnail"}):q.jsx("span",{className:"volter-component-thumbnail-fallback","data-component-preview":A?"failed":"capturing-story",children:q.jsx(wR,{kind:"component",name:t.name})})}const Ave="story:three",Dve="story:isolated",Nmn="story:docs";function Omn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function Rmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Imn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Fmn="story",Mmn={id:Fmn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Omn(c,t.surface))continue;const d=DRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:G0e,Thumbnail:Rmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?Ave:Dve,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function ETt(t){return TYr(t.name,t.sourcePath)}const jmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:ETt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=ETt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(Ave,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(Dve,s.store,{modulePath:c.modulePath,storyName:c.name});return}Qs.warn(`[portable-csf] no story document is registered for the "${s.surface}" surface, so state "${n}" of "${t.name}" could not be opened.`,"authoring")}}};function Lmn(){let t=0,n=!1;const s=S=>{const k=++t;gYr(),jye().then(()=>{if(!(n||k!==t))return AYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=DFt(),m=IC(()=>s()),g=ven(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const rLt="story",LOe=new Set,BOe=new Set;function Bmn(t){const n=wRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function $Oe(t){for(const n of rq())if(n.ok){for(const s of n.stories)if(t.storyId===void 0?n.modulePath===t.modulePath&&s.name===t.storyName:s.id===t.storyId)return{modulePath:n.modulePath,storyName:s.name,title:t.title??Bmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function $mn(t,n,s){const c={modulePath:s.modulePath,storyName:s.storyName,title:s.title,...n.activate===void 0?{}:{activate:n.activate}};if(n.mode==="docs")return CD(Nmn,t,c);const d=Rze({modulePath:s.modulePath,regions:Oze()});return d.medium===void 0?(hYr(s.modulePath,d.reason),null):CD(d.medium==="three"?Ave:Dve,t,c)}function kTt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function qmn(){return AN({id:rLt,owner:"./story-opener",open:(t,n)=>{const s=$Oe(n);return s?$mn(t,n,s):(n.modulePath?LOe.add(n.modulePath):n.storyId!==void 0&&(BOe.add(n.storyId),SYr()&&kTt(n.storyId)),null)},settle:async()=>{await qDr();const t=[...LOe],n=[...BOe];if(LOe.clear(),BOe.clear(),await Promise.all(t.map(s=>CYr(wf(),s))),n.length!==0){await xYr();for(const s of n)$Oe({storyId:s})||kTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=$Oe(n);if(!(!s||Rze({modulePath:s.modulePath,regions:Oze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const zmn={actions:()=>{if(!lgt(Dve)&&!lgt(Ave))return[];const t=[];for(const n of rq()){if(!n.ok)continue;const s=n.modulePath.split("/").pop()??n.modulePath;for(const c of n.stories)t.push({id:`story:${c.id}`,label:`Open Story: ${c.name} — ${s}`,execute:()=>void dy().workspace.open({kind:rLt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>G0e(t)};function Vmn(t,n){if(n===void 0)return;const s=n;return s===null||typeof s!="object"||typeof s.azimuthDegrees!="number"||!Number.isFinite(s.azimuthDegrees)||typeof s.elevationDegrees!="number"||!Number.isFinite(s.elevationDegrees)||s.elevationDegrees<-90||s.elevationDegrees>90||s.distance!==void 0&&(typeof s.distance!="number"||!Number.isFinite(s.distance)||s.distance<=0)?`${t} camera must be {azimuthDegrees, elevationDegrees in [-90, 90], distance? > 0 meters}.`:{azimuthDegrees:s.azimuthDegrees,elevationDegrees:s.elevationDegrees,...s.distance===void 0?{}:{distance:s.distance}}}function Umn(t,n){if(n===void 0)return;const s=n;return s===null||typeof s!="object"||typeof s.clip!="string"||s.clip.length===0||typeof s.timeSeconds!="number"||!Number.isFinite(s.timeSeconds)||s.timeSeconds<0?`${t} pose must be {clip: non-empty string, timeSeconds >= 0}.`:{clip:s.clip,timeSeconds:s.timeSeconds}}const Jmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Wmn(t){if(document.visibilityState==="hidden")return{ok:!1,error:"story capture needs a PRESENTING tab — the editor tab is hidden, so the browser suspends the frames a story mount must paint. Bring the editor tab to the foreground (or unminimize its window) and re-run."};const n=t.modulePath;if(typeof n!="string"||n==="")return{ok:!1,error:`${nB} requires a project-relative modulePath.`};const s=t.story;if(s!==void 0&&typeof s!="string")return{ok:!1,error:`${nB} story must be a CSF export name.`};const c=(d,m,g)=>{if(d===void 0)return m;if(typeof d!="number"||!Number.isInteger(d)||d<64||d>1024)throw new Error(`${nB} ${g} must be an integer from 64 to 1024.`);return d};try{const d=await(async()=>{try{const D=await VZr("volter.project.json");if(!D)return null;const J=JSON.parse(D),$=J.resolution?.width,G=J.resolution?.height;return typeof $!="number"||typeof G!="number"||$<64||G<64||$>4096||G>4096?null:{width:Math.min(1024,Math.round($)),height:Math.min(1024,Math.round(G))}}catch{return null}})(),m=c(t.width,d?.width??960,"width"),g=c(t.height,d?.height??540,"height"),S=Vmn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=Umn(nB,t.pose);if(typeof k=="string")return{ok:!1,error:k};const{captureProjectStoryVariants:A}=await lo(async()=>{const{captureProjectStoryVariants:D}=await import("./story-capture-stRSY4PQ.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([268,269,1,2,3,4,20,21,234,213,270,22,23]));return{ok:!0,data:{...await A(wf(),{modulePath:n,...s===void 0?{}:{story:s},width:m,height:g,...S?{camera:S}:{},...k?{pose:k}:{}})}}}catch(d){return{ok:!1,error:d instanceof Error?d.message:String(d)}}}const Hmn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Wmn}};function Gmn(){const t=Oin(Mmn),n=Smn(jmn),s=qmn(),c=bCt(zmn),d=xCt(Jmn,Hmn),m=Lmn(),g=G0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const Kmn=[["descriptionForeground","--volter-content-dim"],["disabledForeground","--volter-content-placeholder"],["errorForeground","--volter-danger"],["focusBorder","--volter-accent"],["selection.background","--volter-accent","99"],["sash.hoverBorder","--volter-accent"],["menubar.selectionBackground","--volter-accent"],["menubar.selectionForeground","--volter-content-on-accent"],["menu.selectionBackground","--volter-accent"],["menu.selectionForeground","--volter-content-on-accent"],["editorGroupHeader.tabsBackground","--volter-surface-chrome"],["editorGroup.dropBackground","--volter-accent","66"],["tab.inactiveBackground","--volter-surface-chrome"],["tab.inactiveForeground","--volter-content-dim"],["editor.background","--volter-surface-chrome"],["editorLineNumber.foreground","--volter-content-placeholder"],["editor.selectionBackground","--volter-accent","99"],["editorGutter.background","--volter-surface-chrome"],["panelTitle.inactiveForeground","--volter-content-dim"],["list.activeSelectionBackground","--volter-accent"],["list.activeSelectionForeground","--volter-content-on-accent"],["list.focusOutline","--volter-accent"],["list.dropBackground","--volter-accent","66"],["button.background","--volter-accent"],["button.foreground","--volter-content-on-accent"],["checkbox.selectBackground","--volter-accent"],["input.background","--volter-surface-chrome"],["input.placeholderForeground","--volter-content-placeholder"],["inputOption.activeBackground","--volter-accent"],["inputOption.activeForeground","--volter-content-on-accent"],["inputValidation.errorBorder","--volter-danger"],["badge.background","--volter-accent"],["badge.foreground","--volter-content-on-accent"],["progressBar.background","--volter-accent"],["quickInputList.focusBackground","--volter-accent"],["quickInputList.focusForeground","--volter-content-on-accent"],["notificationsErrorIcon.foreground","--volter-danger"],["notificationsWarningIcon.foreground","--volter-warn"],["notificationsInfoIcon.foreground","--volter-accent"],["terminal.background","--volter-surface-chrome"],["commandCenter.background","--volter-surface-chrome"],["volter.view.background","--volter-surface-panel"],["foreground","--volter-content-primary"],["icon.foreground","--volter-content-muted"],["widget.border","--volter-boundary-default"],["titleBar.activeBackground","--volter-surface-shell"],["titleBar.inactiveBackground","--volter-surface-shell"],["titleBar.activeForeground","--volter-content-muted"],["titleBar.border","--volter-surface-shell"],["activityBar.background","--volter-surface-shell"],["activityBar.foreground","--volter-content-primary"],["activityBar.inactiveForeground","--volter-content-dim"],["activityBar.border","--volter-surface-shell"],["activityBar.activeBorder","--volter-accent"],["statusBar.background","--volter-surface-shell"],["statusBar.foreground","--volter-content-muted"],["statusBar.border","--volter-surface-shell"],["sideBar.background","--volter-surface-panel"],["sideBar.foreground","--volter-content-primary"],["sideBar.border","--volter-boundary-default"],["sideBarSectionHeader.background","--volter-surface-chrome"],["panel.background","--volter-surface-panel"],["panel.border","--volter-boundary-default"],["editorGroup.border","--volter-boundary-default"],["editorGroupHeader.tabsBorder","--volter-boundary-default"],["tab.activeBackground","--volter-surface-panel"],["tab.activeForeground","--volter-content-primary"],["tab.border","--volter-boundary-default"],["menu.background","--volter-widget-menu"],["menu.foreground","--volter-content-menu"],["menu.border","--volter-boundary-default"],["dropdown.background","--volter-widget-menu"],["dropdown.border","--volter-boundary-default"],["input.foreground","--volter-content-primary"],["input.border","--volter-boundary-default"]],Xmn=[["volter.viewport.background","--volter-viewport-background"],["volter.viewport.grid","--volter-viewport-grid"],["volter.viewport.axisX","--volter-viewport-axis-x"],["volter.viewport.axisY","--volter-viewport-axis-y"],["volter.viewport.axisZ","--volter-viewport-axis-z"],["volter.viewport.selection","--volter-viewport-selection"],["volter.viewport.active","--volter-viewport-active"],["volter.viewport.wire","--volter-viewport-wire"],["volter.gizmo.x","--volter-gizmo-x"],["volter.gizmo.y","--volter-gizmo-y"],["volter.gizmo.z","--volter-gizmo-z"],["volter.gizmo.navigationX","--volter-gizmo-navigation-x"],["volter.gizmo.navigationY","--volter-gizmo-navigation-y"],["volter.gizmo.navigationZ","--volter-gizmo-navigation-z"],["volter.gizmo.hover","--volter-gizmo-hover"],["volter.gizmo.drag","--volter-gizmo-drag"]];function ATt(t){const n=t.trim().toLowerCase(),s=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(n)?.[1];if(s)return`#${s.length===3?[...s].map(S=>S+S).join(""):s}`;const c=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.]+%?))?\s*\)$/.exec(n);if(!c)return null;const d=S=>Math.max(0,Math.min(255,Math.round(Number(S)))).toString(16).padStart(2,"0"),m=c[4],g=m===void 0?"":Math.round(Math.max(0,Math.min(1,m.endsWith("%")?Number.parseFloat(m)/100:Number(m)))*255).toString(16).padStart(2,"0");return`#${d(c[1])}${d(c[2])}${d(c[3])}${g==="ff"?"":g}`}function Ymn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of Kmn){const g=ATt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Xmn){const m=ATt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let dm=null,nLt=0;const eLe=new Set;function Zmn(t){return eLe.add(t),()=>eLe.delete(t)}function DTt(){return nLt}const qOe=new Map;function iLt(t,n){qOe.get(t)?.disconnect(),qOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;i3r(t,d!==null&&d.width>0&&d.height>0)};if(s(),n===null||typeof ResizeObserver>"u")return;const c=new ResizeObserver(s);c.observe(n),qOe.set(t,c)}function Qmn(t,n){if(dm){if(n===null){if(dm[t]?.isConnected)return}else if(dm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...dm};delete s[t],dm=s}else n!==null&&(dm={...dm,[t]:n});n!==null&&oLt(t,n),iLt(t,n),nLt+=1;for(const s of eLe)s()}}function oLt(t,n){n.dataset.volterPart=t}const XI=new Map;let PTt=!1;function ehn(){const t=n=>{if(!n)return null;const s=n.getBoundingClientRect();return{x:s.x,y:s.y,width:s.width,height:s.height,connected:n.isConnected}};return{editorRoots:[...document.querySelectorAll("#editor-root")].map(t),chrome:t(dm?.chromeRoot??null),slots:[...XI.values()].map(n=>({id:n.id,documentId:n.documentId,bounds:t(n.element)})),surfaces:[...document.querySelectorAll("[data-workspace-document-id]")].map(n=>({documentId:n.dataset.workspaceDocumentId,viewId:n.dataset.workspaceViewId,bounds:t(n)}))}}let sLt=0;const tLe=new Set,aLt=new Set;let ITt=!1;function NTt(){for(const t of l0())aLt.add(t.descriptor.id)}function thn(t){ITt||(ITt=!0,o2(NTt)),NTt(),!(!t||aLt.has(t))&&(Itn(t)||NFt(t,!1))}function rhn(t,n){if(n){if(!XI.delete(t.id))return}else{XI.has(t.id)||thn(t.documentId);const s=XI.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;XI.set(t.id,{...t})}sLt+=1;for(const s of[...tLe])s()}function nhn(t){return tLe.add(t),()=>{tLe.delete(t)}}function OTt(){return sLt}function GO({children:t,row:n=!1,center:s=!1}){return q.jsx("div",{className:"volter-editor-shell volter-part",onWheel:c=>c.stopPropagation(),"data-editor-hotkey-scope":"workspace","data-editor-hotkey-fallback":!0,style:{display:"flex",flexDirection:n?"row":"column",justifyContent:s?"center":void 0,width:"100%",height:"100%",minHeight:0,minWidth:0,position:"relative",fontFamily:"var(--volter-font-sans)",fontSize:"var(--volter-font-base)",color:"var(--volter-content-primary)"},children:t})}function ihn({children:t}){return q.jsx(q.Fragment,{children:t})}function ohn(){return dm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(lpn,{})}),dm.header):null}function shn(){return null}function ahn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return wjt(n),()=>vfn(n)},[]),q.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[q.jsx("div",{ref:t,className:"volter-vscode-outliner-header",style:{padding:"var(--volter-space-2) var(--volter-space-4)","--volter-hierarchy-search-basis":"100%"}}),q.jsx("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:q.jsx(Ijt,{})})]})}const Ome=new Map,rLe=new Set;let nLe=0;function chn(t,n){if(n){if(Ome.get(t)===n)return;n.dataset.volterUtility=t,Ome.set(t,n)}else if(!Ome.delete(t))return;nLe++;for(const s of rLe)s()}const Rme=new Map,iLe=new Set;let oLe=0;function lhn(t,n){if(n){if(Rme.get(t)===n)return;Rme.set(t,n)}else if(!Rme.delete(t))return;oLe++;for(const s of iLe)s()}function uhn(){return Ye.useSyncExternalStore(R3t,bht,bht),Ye.useSyncExternalStore(t=>(iLe.add(t),()=>iLe.delete(t)),()=>oLe,()=>oLe),q.jsx(q.Fragment,{children:[...yRe("left"),...yRe("right")].map(t=>{const n=Rme.get(t.id);if(!n)return null;const s=t.Content;return q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(s,{}),n)},t.id)})})}function fhn(){return Ye.useSyncExternalStore(Xye,bhe,bhe),Ye.useSyncExternalStore(t=>(rLe.add(t),()=>rLe.delete(t)),()=>nLe,()=>nLe),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Ome.get(t.id);return n?q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(GO,{children:q.jsx(dpn,{utility:t})}),n)},t.id):null})})}function dhn({descriptor:t,viewId:n,slot:s,parking:c,visible:d,inspector:m}){const[g]=Ye.useState(()=>document.createElement("div"));return Ye.useLayoutEffect(()=>{g.className="volter-vscode-document-slot",g.dataset.volterDocument=t.id,g.dataset.volterArea=t.area??"",g.style.cssText=`display:${d?"flex":"none"};flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;position:relative;`},[g,t.id,t.area,d]),Ye.useLayoutEffect(()=>((s??c).appendChild(g),()=>g.remove()),[g,s,c]),r2.createPortal(q.jsxs(GO,{children:[q.jsx(HMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Qun,{})]}),g)}let cLt=!0;function phn({arrangement:t,immersivePlay:n}){const s=Yv();vmn(s);const c=XVe(s);Ye.useLayoutEffect(()=>{cLt=c.column},[c.column]);const d=XI.get(kRe()??"")?.element??dm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Rwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Rwt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(nhn,OTt,OTt),Ye.useSyncExternalStore(Zmn,DTt,DTt),Ye.useLayoutEffect(()=>{const F=ukr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),Bkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(See,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{emn(m,Wjt())},[m,n,g]),Ye.useEffect(()=>tLt(s),[s]),!dm)return null;const S=dm.center,k=l0(),A=TC()??k[0]??null;return globalThis.__volterBridge={documents:k.map(F=>F.descriptor.id),active:A?.descriptor.id??null,workspace:t?.id??null,areas:k.flatMap(F=>F.descriptor.area?[{id:F.descriptor.id,area:F.descriptor.area}]:[]),slots:[...XI.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...XI.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(dhn,{descriptor:D,viewId:F.id,slot:F.element??void 0,parking:S,visible:!!F.element,inspector:c.card&&D.id===A?.descriptor.id},F.id):null}),k.length===0&&r2.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),dm.center),dm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(ahn,{})}),dm.outliner),dm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(rUe,{}):q.jsx(Wun,{surface:c.surface})}),dm.properties),dm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(N_n,{kind:"assets"})}),dm.content),q.jsx(fhn,{}),q.jsx(uhn,{})]})}async function _hn(t,n={}){dm=t,n.workspaceStorage&&s3r(n.workspaceStorage),_3r();for(const[Ae,Pe]of Object.entries(t))Pe&&oLt(Ae,Pe),iLt(Ae,Pe??null);t.chromeRoot.id="editor-chrome-root",jPt({Frame:ihn,Header:ohn,Footer:shn,Workspace:phn,Document:Vcn}),R_n(),Znn();const s=Qln();s&&Yln(s,Date.now())&&Qs.warn(Kln(s,Date.now()),"editor"),bmn(),LDr(),omn(),PTt||(PTt=!0,dy().session.reportFacet(Ae=>({nativeLayout:Ae?.nativeLayout??ehn()}),{reusableKeys:["nativeLayout"]})),Gmn(),await Promise.all([Z4t(),fAr(),sPt()]),EAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",uee()?.nativeMenus===!0);const c=document.createElement("div");c.id="editor-root",c.className="volter-part",c.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",t.chromeRoot.appendChild(c),sLe.createRoot(c).render(q.jsx(hun,{}));const d={activeKeymap:()=>dy().keyboard.activeKeymap(),invoke:Ae=>dy().keyboard.invoke(Ae),subscribe:Ae=>dy().keyboard.subscribe(Ae),facts:()=>{const Ae=dy(),Pe=Ae.keyboard.stage();return{surface:Pe.surface,mode:Pe.mode,documentKind:Ae.documents.active()?.kind??null,play:Ae.session.playState()}},report:(Ae,Pe)=>{const be=dy();Ae==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:_Ue,activeSource:()=>{const Ae=dy().documents.active();if(!Ae)return null;const Pe=Ae.kind==="model"&&Ae.id.startsWith("model:")?Ae.id.slice(6):"";return{kind:Ae.kind,path:Pe}},list:()=>l0().map(Ae=>{const Pe=Ae.descriptor.area?Ikr().find(be=>be.id===Ae.descriptor.area):void 0;return{id:Ae.descriptor.id,title:Ae.title,...Pe?{area:{id:Pe.id,place:Pe.place,ratio:Pe.ratio}}:{}}}),activeId:()=>TC()?.descriptor.id??null,subscribe:Ae=>{m=!0;const Pe=o2(Ae),be=Nkr(Ae);return()=>{Pe(),be()}},activate:(Ae,Pe)=>{!m&&GQ()||(Pe?TTr(Ae,Pe):X0(Ae))},close:Ae=>{if(kN(Ae))return;const Pe=l0().find(be=>be.descriptor.id===Ae);Pe&&d.report("warn",`“${Pe.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(Ae,Pe)=>rhn(Ae,Pe)},S={elements:()=>dy().history.elements(),onElement:Ae=>dy().history.onElement(Ae),onInvalidated:Ae=>dy().history.onInvalidated(Ae),changed:()=>dy().history.changed(),focusedResource:()=>dy().history.focusedResource(),focusedDocument:()=>{const Ae=dy().documents.active();return Ae?{id:Ae.id,label:Ae.title}:null},setDelegate:Ae=>dy().history.setDelegate(Ae),report:d.report},k={setProvider:Ae=>dy().files.setProvider(Ae),report:d.report},A={setProvider:Ae=>dy().settings.setProvider(Ae),adapterValues:()=>[...BEr()],workbenchValues:()=>{const Ae=dm?.chromeRoot;if(!Ae)return[];const Pe=getComputedStyle(Ae).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Ymn(Ae)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>PN(),notify:Ae=>{dy().notify(Ae)},subscribe:Ae=>{const Pe=Hye(Ae),be=NDt(Ae);return()=>{Pe(),be()}},report:d.report},F={list:()=>tin().map(Ae=>({id:Ae.id,label:Ae.label,category:Ae.category,...Ae.menu?{menu:Ae.menu}:{}})),invoke:Ae=>nin(Ae),subscribe:Ae=>rin(Ae),setPaletteOpener:Ae=>ein(Ae),setCommandExecutor:Ae=>iin(Ae),report:d.report},D={setDelegate:Ae=>iEr(Ae?{show:Pe=>Ae({...Pe,source:p3r()})}:null)},J={list:()=>$Pt().map(Ae=>({view:Ae.view,title:Ae.title,verbs:Ae.verbs.map(Pe=>({id:Pe.id,...Pe.title?{title:Pe.title}:{}}))})),invoke:(Ae,Pe,be)=>zPt(Ae,Pe,be),subscribe:Ae=>qPt(Ae)},$={list:()=>bC().map((Ae,Pe)=>({id:Ae.id,title:Ae.title,order:Ae.order??Pe})),subscribe:Ae=>{let Pe=bhe();const be=Xye(Ae),X=tUe(()=>{const we=bhe();we!==Pe&&(Pe=we,Ae())});return()=>{be(),X()}},offerBody:(Ae,Pe)=>chn(Ae,Pe)};let G=!0,se=null,pe=null;Trn(()=>G);const ue={setActiveStaticPanel:Ae=>ogt(IVe.find(Pe=>Pe.kind===Ae)?.kind??null),focusCompactInspector:()=>{if(cLt)return!1;const Ae=dm?.center.querySelector('[data-testid="compact-inspector-card"]');return Ae?(Ae.tabIndex=-1,Ae.focus(),ogt("inspector"),!0):!1},setPaneActive:Ae=>{G!==Ae&&(G=Ae)},setImmersive:Ae=>{se?.(),se=null,!(!Ae||!dm)&&(se=G_n({root:dm.chromeRoot,hideChrome:()=>Ae.enter(),showChrome:()=>Ae.exit()}))},setDockCommands:Ae=>{pe?.(),pe=null,Ae&&(pe=pkr({showUtility:Pe=>Ae.showUtility(Pe),toggleUtility:Pe=>Ae.toggleUtility(Pe),ensureUtility:Pe=>Ae.ensureUtility(Pe),closeUtility:Pe=>Ae.closeUtility(Pe),showStaticPanel:Pe=>Ae.showStaticPanel(Pe),setFocus:Pe=>Ae.setFocus(Pe),toggleFocus:()=>Ae.toggleFocus(),captureUtilities:Pe=>{for(const be of Pe)Ae.showUtility(be);return()=>{for(const be of Pe)Ae.closeUtility(be)}},showAuxiliary:()=>ue.report("warn","Undo history has no panel under the VS Code frame: the stack is the workbench's own (U4), reached through Edit → Undo/Redo and the Timeline.")}))},report:(Ae,Pe)=>d.report(Ae,Pe)};return{host:c,keyboard:d,documents:g,history:S,files:k,commands:F,notifications:D,views:J,utilities:$,output:{setProvider:imn},settings:A,status:{list:()=>["left","right"].flatMap(Ae=>yRe(Ae).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:Ae,order:Pe.order??be}))),subscribe:Ae=>R3t(Ae),offerBody:(Ae,Pe)=>lhn(Ae,Pe)},game:ue,offerPart:Qmn}}function mhn(t){const n=Object.keys(t.packages);return g0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),zDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:_hn}}const{mountVolter:kwn}=mhn({id:"game-editor",packages:{"@volter/editor-game":p0r,"@volter/editor-react":_0r,"@volter/editor-threejs":m0r,"@volter/editor-xstate":h0r,"@volter/editor-blender":d0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,T3t as A,b0n as B,C3t as C,E3t as D,M_e as E,B0n as F,DAr as G,uRe as H,Pen as I,gFt as J,DB as K,u0 as L,OC as M,w3t as N,oVe as O,S3t as P,bSn as Q,k3t as R,zwr as S,J2n as T,Yv as U,Ih as V,aBe as W,rYr as X,uvn as Y,Qs as Z,lo as _,XY as a,w2n as a$,ZFt as a0,trn as a1,r9t as a2,L_ as a3,EN as a4,NSn as a5,Ms as a6,dc as a7,Kk as a8,fvn as a9,bRt as aA,Ktn as aB,wf as aC,Y0 as aD,mp as aE,K0n as aF,gy as aG,oq as aH,vMt as aI,G3r as aJ,vSn as aK,_p as aL,pm as aM,Zm as aN,xwn as aO,ive as aP,l0 as aQ,NFt as aR,TD as aS,l0n as aT,WCr as aU,Z0e as aV,BRt as aW,qze as aX,HSn as aY,Zf as aZ,B9t as a_,vC as aa,tyn as ab,aan as ac,_cn as ad,hSn as ae,tVe as af,MB as ag,Zwr as ah,l9t as ai,c2n as aj,S0n as ak,Go as al,iyn as am,Iye as an,ofn as ao,Q0e as ap,rTr as aq,nwn as ar,G0e as as,rq as at,Rze as au,Oze as av,hYr as aw,Ean as ax,b$e as ay,Htn as az,cBe as b,I3r as b$,C2n as b0,X4r as b1,T2n as b2,gC as b3,P$e as b4,NTr as b5,nOe as b6,ig as b7,DFt as b8,xYr as b9,xBe as bA,Jc as bB,t2 as bC,fLe as bD,khn as bE,Jvr as bF,bgt as bG,Iw as bH,NAr as bI,AAr as bJ,n$e as bK,PAr as bL,y0r as bM,cye as bN,JOe as bO,Oyn as bP,Nyn as bQ,ean as bR,evn as bS,Q0n as bT,z3r as bU,ivn as bV,Lhe as bW,l2n as bX,d2n as bY,Ttn as bZ,P3r as b_,i2n as ba,CRt as bb,SRt as bc,ERt as bd,sYr as be,xmn as bf,Cwn as bg,ASn as bh,wRt as bi,bYr as bj,Svn as bk,vLe as bl,YB as bm,uwn as bn,fwn as bo,Hfn as bp,LAr as bq,U0n as br,i$e as bs,vgt as bt,$0n as bu,n$ as bv,hO as bw,S0r as bx,aR as by,_Le as bz,fRe as c,O2n as c$,Kwr as c0,u2n as c1,Stn as c2,c9t as c3,ed as c4,my as c5,fu as c6,L2n as c7,q2n as c8,z2n as c9,QZr as cA,eQr as cB,JRt as cC,HRt as cD,qZr as cE,v2n as cF,HZr as cG,y2n as cH,tQr as cI,F2n as cJ,WZr as cK,Wze as cL,WRt as cM,JZr as cN,DMe as cO,VZr as cP,k2n as cQ,o_e as cR,KZr as cS,ZSt as cT,YSt as cU,YZr as cV,MZr as cW,Jze as cX,AMe as cY,GZr as cZ,M2n as c_,V2n as ca,HSt as cb,N2n as cc,$2n as cd,B2n as ce,nQr as cf,GSt as cg,P2n as ch,jD as ci,PZr as cj,QSt as ck,D2n as cl,rQr as cm,E2n as cn,R2n as co,h2n as cp,g2n as cq,$Zr as cr,U2n as cs,ZZr as ct,zZr as cu,S2n as cv,x2n as cw,j2n as cx,I2n as cy,eve as cz,x3t as d,Exr as d$,b2n as d0,iQr as d1,A2n as d2,dtn as d3,X0 as d4,pxt as d5,sxn as d6,Kye as d7,dR as d8,Lyn as d9,i$ as dA,Tan as dB,xan as dC,$Ve as dD,cxn as dE,w0r as dF,C0r as dG,FTt as dH,cyn as dI,yen as dJ,SSn as dK,mtn as dL,hMt as dM,u2 as dN,e3r as dO,f2n as dP,yMt as dQ,dQ as dR,Rhn as dS,SEr as dT,YTt as dU,SZ as dV,qCr as dW,g4t as dX,yZ as dY,hAt as dZ,AR as d_,Vv as da,Byn as db,M0r as dc,L0r as dd,W3t as de,bZ as df,Cyn as dg,$hn as dh,nCt as di,oCt as dj,Phn as dk,ivr as dl,H0n as dm,G0n as dn,PI as dp,R_ as dq,lwn as dr,gBe as ds,Cm as dt,Ffn as du,i0 as dv,K2n as dw,$Dr as dx,ifn as dy,MRe as dz,b3t as e,kBe as e$,ESr as e0,t$ as e1,Hme as e2,_Ct as e3,N5e as e4,_0n as e5,m0n as e6,rvn as e7,W0 as e8,cvn as e9,zhn as eA,KTr as eB,WSn as eC,ySn as eD,xyn as eE,xSn as eF,JYr as eG,Lze as eH,FRt as eI,v4t as eJ,_tn as eK,SYr as eL,F4t as eM,M5e as eN,Mye as eO,Won as eP,uLe as eQ,Mhn as eR,b0r as eS,N4t as eT,Xon as eU,Hht as eV,jht as eW,c0 as eX,p0n as eY,Can as eZ,BRe as e_,Z2n as ea,OSn as eb,hvn as ec,qhe as ed,M4r as ee,JQr as ef,gvn as eg,v$e as eh,vvn as ei,yvn as ej,n2n as ek,uxn as el,lxn as em,lvn as en,CBe as eo,ahe as ep,Iyn as eq,G0 as er,Vyn as es,YY as et,Hyn as eu,E_e as ev,r0n as ew,aQ as ex,nyn as ey,IC as ez,dRe as f,CSn as f$,h0n as f0,ZCr as f1,Fhn as f2,A0n as f3,k0n as f4,TC as f5,fFe as f6,Tee as f7,AN as f8,Dve as f9,cLe as fA,hLe as fB,q0n as fC,M0n as fD,dwn as fE,hPt as fF,Jhn as fG,F0r as fH,Uhn as fI,Fme as fJ,UOe as fK,cCt as fL,j0n as fM,zyn as fN,Exn as fO,Ban as fP,yxn as fQ,TR as fR,Lxn as fS,vxn as fT,eVe as fU,r2n as fV,DRt as fW,kTr as fX,pTr as fY,axn as fZ,wSn as f_,Nmn as fa,AYr as fb,ND as fc,eTr as fd,GTr as fe,C_e as ff,ptn as fg,x$e as fh,m3r as fi,Sfn as fj,swn as fk,own as fl,iwn as fm,Ave as fn,kN as fo,F0n as fp,J0n as fq,Ewn as fr,Twn as fs,ESn as ft,kSn as fu,E4t as fv,x0n as fw,Nhn as fx,Bhn as fy,dN as fz,A3t as g,ZTt as g$,a0 as g0,TSn as g1,GQ as g2,oxn as g3,XSn as g4,eMt as g5,RRt as g6,VQ as g7,Jfn as g8,tfn as g9,mPt as gA,wnn as gB,wwn as gC,ryn as gD,jFe as gE,w3r as gF,bvn as gG,k0r as gH,a2n as gI,DYr as gJ,Rht as gK,tCt as gL,o2 as gM,K1 as gN,VSn as gO,USn as gP,Gwr as gQ,Qgn as gR,zSn as gS,Zgn as gT,qSn as gU,i9t as gV,sSn as gW,xR as gX,den as gY,enn as gZ,qhn as g_,CR as ga,oYr as gb,o2n as gc,Xtn as gd,qDr as ge,Ig as gf,JSn as gg,x0r as gh,dee as gi,X2n as gj,_Sn as gk,Y2n as gl,Syn as gm,pSn as gn,g4r as go,aSn as gp,X0n as gq,dSn as gr,Y0n as gs,mvn as gt,Dw as gu,of as gv,hR as gw,N3r as gx,Z0n as gy,BSn as gz,r3t as h,f0n as h$,VTt as h0,XTr as h1,rA as h2,kC as h3,tA as h4,Lhn as h5,avn as h6,mBe as h7,tve as h8,m2n as h9,Nht as hA,Vye as hB,BTr as hC,LTr as hD,nCr as hE,Ryn as hF,jyn as hG,Myn as hH,$yn as hI,qyn as hJ,d0n as hK,Pyn as hL,c0n as hM,Ym as hN,h4t as hO,Ayn as hP,Dyn as hQ,SBe as hR,Jye as hS,Fyn as hT,EBe as hU,Tyn as hV,s0n as hW,a0n as hX,she as hY,y0n as hZ,Oht as h_,bCt as ha,Xan as hb,Vxn as hc,TYr as hd,nvn as he,eyn as hf,fyn as hg,myn as hh,vyn as hi,R$ as hj,CD as hk,dyn as hl,lyn as hm,uyn as hn,hyn as ho,HTr as hp,QCr as hq,Iht as hr,hC as hs,DRe as ht,G3t as hu,Eyn as hv,kyn as hw,IRe as hx,PRe as hy,WTr as hz,Ip as i,lLe as i$,XCr as i0,Uyn as i1,y4t as i2,uhe as i3,$Cr as i4,OG as i5,l4t as i6,Y3t as i7,VTr as i8,eCr as i9,aCr as iA,oCr as iB,NG as iC,i0n as iD,v0n as iE,jCr as iF,VCr as iG,zTr as iH,Zyn as iI,Jyn as iJ,fhe as iK,n0n as iL,I5e as iM,qTr as iN,ABe as iO,Gyn as iP,q$ as iQ,Wyn as iR,Xyn as iS,txn as iT,ixn as iU,Eee as iV,AD as iW,jcn as iX,twn as iY,E5e as iZ,Uxn as i_,Yyn as ia,Kyn as ib,Qyn as ic,e0n as id,u0n as ie,$Tr as ig,BCr as ih,u4t as ii,g0n as ij,YTr as ik,o0n as il,t0n as im,rCr as io,k_e as ip,ORe as iq,sCr as ir,iCr as is,YCr as it,tCr as iu,vee as iv,Bye as iw,cCr as ix,kpe as iy,RRe as iz,QAt as j,Mxn as j$,iee as j0,Yfn as j1,_wn as j2,L0n as j3,OAr as j4,DBe as j5,o$ as j6,$Mt as j7,Wxn as j8,s2 as j9,Zin as jA,j9t as jB,HTt as jC,FB as jD,aN as jE,rSn as jF,rwn as jG,X_n as jH,fGr as jI,pGr as jJ,mGr as jK,gSn as jL,Wwr as jM,SVe as jN,Enn as jO,ate as jP,pan as jQ,iwt as jR,wI as jS,zFe as jT,jxn as jU,whn as jV,Ahn as jW,Ehn as jX,Fxn as jY,Chn as jZ,E0r as j_,Jxn as ja,dPt as jb,D3r as jc,lBe as jd,Qwr as je,yht as jf,Uwr as jg,D3t as jh,Fsn as ji,fSn as jj,HI as jk,XMe as jl,oyn as jm,XRt as jn,rve as jo,Dye as jp,lN as jq,oBe as jr,Fye as js,uN as jt,WAr as ju,OBe as jv,vBe as jw,Rye as jx,sBe as jy,e0e as jz,Bwr as k,gR as k$,$an as k0,Txn as k1,wxn as k2,Hon as k3,Bxn as k4,xxn as k5,Han as k6,zxn as k7,pxn as k8,$xn as k9,l6t as kA,lSn as kB,ZSn as kC,avr as kD,wD as kE,J0 as kF,nxt as kG,GAt as kH,Y4 as kI,Dhn as kJ,dLe as kK,NEr as kL,Cve as kM,Eve as kN,$Sn as kO,VMt as kP,WMt as kQ,ewt as kR,$Fe as kS,z_e as kT,qFe as kU,rfn as kV,nUe as kW,Hxn as kX,Qfn as kY,R0n as kZ,mSn as k_,bxn as ka,gxn as kb,_xn as kc,Pxn as kd,hxn as ke,mxn as kf,Sxn as kg,Dxn as kh,Cxn as ki,Ixn as kj,g$e as kk,kxn as kl,fxn as km,qxn as kn,dxn as ko,Nxn as kp,wVe as kq,Axn as kr,qan as ks,Oxn as kt,Rxn as ku,QSn as kv,YSn as kw,exn as kx,cSn as ky,jDr as kz,Zme as l,gwn as l$,NDr as l0,Tve as l1,U$ as l2,eA as l3,mD as l4,iTr as l5,oTr as l6,nTr as l7,Oye as l8,Ohn as l9,rxn as lA,mwn as lB,hwn as lC,kjt as lD,nxn as lE,pyn as lF,Hsn as lG,gyn as lH,cwn as lI,bwn as lJ,W0n as lK,BAr as lL,V0n as lM,byn as lN,_yn as lO,yyn as lP,vwn as lQ,wrn as lR,tvn as lS,AEr as lT,Hhn as lU,Wfn as lV,p2n as lW,_2n as lX,DSn as lY,f9t as lZ,yjt as l_,K0r as la,u3r as lb,f3r as lc,Ihn as ld,pjt as le,syn as lf,Hwr as lg,tTr as lh,ewn as li,Qxn as lj,Xxn as lk,Zxn as ll,Yxn as lm,I0n as ln,$3r as lo,svn as lp,ovn as lq,uSn as lr,zPt as ls,z0n as lt,pwn as lu,Thn as lv,Gxn as lw,Kxn as lx,jhn as ly,Vhn as lz,nQ as m,pbr as m$,Swn as m0,s2n as m1,GSn as m2,Vfn as m3,Vmn as m4,Umn as m5,nq as m6,WDr as m7,wyn as m8,xCt as m9,vje as mA,$At as mB,Uxr as mC,ZI as mD,a1r as mE,kCt as mF,h1r as mG,zme as mH,cht as mI,F_ as mJ,Vme as mK,Ume as mL,Ybr as mM,r2r as mN,yB as mO,Bbr as mP,qbr as mQ,MEt as mR,Hbr as mS,FEt as mT,jbr as mU,Lbr as mV,Cbr as mW,Ebr as mX,S2r as mY,eh as mZ,tbr as m_,LSn as ma,eSn as mb,G2n as mc,tSn as md,LQr as me,HEr as mf,zEr as mg,ove as mh,rrn as mi,w0n as mj,O0n as mk,T0n as ml,E0n as mm,C0n as mn,Ysn as mo,N0n as mp,FSn as mq,MSn as mr,RSn as ms,jSn as mt,DEr as mu,PEr as mv,GRe as mw,SN as mx,KSn as my,ayn as mz,vB as n,Rw as n$,NEt as n0,fbr as n1,abr as n2,IEt as n3,lbr as n4,obr as n5,rbr as n6,mbr as n7,sbr as n8,nbr as n9,Fbr as nA,Ibr as nB,Pbr as nC,Obr as nD,Nbr as nE,a2r as nF,Ubr as nG,Dbr as nH,A2r as nI,d2r as nJ,Mbr as nK,l2r as nL,x2r as nM,Tbr as nN,Qbr as nO,v2r as nP,Xbr as nQ,h2r as nR,REt as nS,Wbr as nT,n2r as nU,i2r as nV,$Et as nW,w2r as nX,y2r as nY,k2r as nZ,T2r as n_,Q1r as na,ebr as nb,hbr as nc,_br as nd,cbr as ne,ibr as nf,dbr as ng,bye as nh,ubr as ni,qEt as nj,D2r as nk,Jbr as nl,t2r as nm,g2r as nn,s2r as no,zbr as np,Sbr as nq,wbr as nr,bLe as ns,f2r as nt,qCt as nu,m2r as nv,p2r as nw,E2r as nx,vbr as ny,Rbr as nz,qwr as o,sSr as o$,c2r as o0,P2r as o1,u2r as o2,Sye as o3,M_ as o4,b2r as o5,Gbr as o6,C2r as o7,_2r as o8,BEt as o9,nkt as oA,dgn as oB,fgn as oC,pgn as oD,ugn as oE,cgn as oF,KEt as oG,XEt as oH,gSr as oI,tSr as oJ,VCt as oK,JCt as oL,Ogn as oM,Sgn as oN,skt as oO,zEt as oP,HEt as oQ,zCt as oR,UCt as oS,cSr as oT,kgn as oU,hSr as oV,$2r as oW,q2r as oX,eQ as oY,qk as oZ,nRe as o_,vu as oa,kbr as ob,xbr as oc,bbr as od,Kbr as oe,CLe as of,Zbr as og,e2r as oh,Abr as oi,o2r as oj,Ghn as ok,ui as ol,agn as om,sgn as on,gbr as oo,Jmt as op,lgn as oq,Y2r as or,mSr as os,ikt as ot,okt as ou,J2r as ov,U2r as ow,Mgn as ox,bSr as oy,rkt as oz,ZAt as p,Fgn as p$,B2r as p0,z2r as p1,W2r as p2,xgn as p3,ekt as p4,tkt as p5,F2r as p6,R2r as p7,j2r as p8,M2r as p9,Ngn as pA,L2r as pB,Ign as pC,M$ as pD,hye as pE,gye as pF,jgn as pG,_gn as pH,qgn as pI,ygn as pJ,Lgn as pK,Tgn as pL,ySr as pM,nSr as pN,HCt as pO,KCt as pP,WCt as pQ,GCt as pR,yye as pS,vye as pT,Egn as pU,ckt as pV,_Sr as pW,aSr as pX,N2r as pY,xye as pZ,wSr as p_,akt as pa,QEt as pb,$gn as pc,ukt as pd,Dgn as pe,iSr as pf,QZ as pg,YI as ph,O2r as pi,Cgn as pj,lkt as pk,kLe as pl,lSr as pm,qme as pn,tQ as po,iRe as pp,rSr as pq,GEt as pr,Agn as ps,mgn as pt,Q2r as pu,ggn as pv,Rgn as pw,hgn as px,uSr as py,X2r as pz,jwr as q,pAt as q$,vSr as q0,G2r as q1,Bgn as q2,dSr as q3,pSr as q4,Pgn as q5,fSr as q6,wgn as q7,V2r as q8,H2r as q9,OEt as qA,$br as qB,Vbr as qC,xSr as qD,Hmt as qE,Gmt as qF,Yhn as qG,Z1r as qH,I2r as qI,ngn as qJ,ogn as qK,rgn as qL,ign as qM,E1r as qN,k1r as qO,C1r as qP,Xhn as qQ,Khn as qR,ybr as qS,Ugn as qT,zgn as qU,ILe as qV,GLe as qW,KLe as qX,XLe as qY,dAt as qZ,cAt as q_,YEt as qa,K2r as qb,vgn as qc,Z2r as qd,oSr as qe,ELe as qf,VEt as qg,UEt as qh,JEt as qi,WEt as qj,eSr as qk,ZEt as ql,bgn as qm,sA as qn,$S as qo,Jme as qp,TSr as qq,Qhn as qr,tgn as qs,SSr as qt,Zhn as qu,egn as qv,w1r as qw,T1r as qx,eRe as qy,sD as qz,dy as r,oAt as r$,ULe as r0,JLe as r1,YLe as r2,zLe as r3,VLe as r4,FLe as r5,MLe as r6,OAt as r7,iBe as r8,kye as r9,vAt as rA,FAt as rB,RLe as rC,uAt as rD,rBe as rE,sAt as rF,EAt as rG,j$ as rH,Tye as rI,tBe as rJ,nBe as rK,DAt as rL,qAt as rM,MAt as rN,Fw as rO,Eye as rP,bAt as rQ,j_ as rR,NAt as rS,iAt as rT,LAt as rU,wAt as rV,yAt as rW,Lu as rX,jLe as rY,wye as rZ,aD as r_,hee as ra,kAt as rb,mAt as rc,WLe as rd,NLe as re,OLe as rf,rQ as rg,Vgn as rh,TAt as ri,xAt as rj,fht as rk,zAt as rl,Wme as rm,$Le as rn,qLe as ro,Xkt as rp,Gkt as rq,eAt as rr,Zkt as rs,gAt as rt,uht as ru,HLe as rv,BLe as rw,BAt as rx,SAt as ry,nAt as rz,t3t as s,ASr as s$,Cye as s0,lAt as s1,fAt as s2,LLe as s3,_At as s4,PLe as s5,AAt as s6,lht as s7,xxr as s8,oxr as s9,uxr as sA,WSr as sB,oRe as sC,mxr as sD,yxr as sE,QLe as sF,exr as sG,rxr as sH,Wxr as sI,cxr as sJ,Cxr as sK,QSr as sL,kxr as sM,Pxr as sN,txr as sO,Ixr as sP,Vxr as sQ,jxr as sR,GSr as sS,Oxr as sT,ZLe as sU,IAt as sV,aAt as sW,Kme as sX,Fxr as sY,Gme as sZ,kSr as s_,sxr as sa,gxr as sb,RAt as sc,qxr as sd,nxr as se,ixr as sf,Lxr as sg,KSr as sh,XSr as si,Txr as sj,NSr as sk,RSr as sl,zxr as sm,axr as sn,BSr as so,HSr as sp,ISr as sq,OSr as sr,CAt as ss,Rxr as st,pxr as su,_xr as sv,Wgn as sw,$Sr as sx,dxr as sy,fxr as sz,unn as t,nSn as t$,Dxr as t0,Xme as t1,PAt as t2,JAt as t3,$xr as t4,jAt as t5,VAt as t6,MSr as t7,LSr as t8,FSr as t9,jmt as tA,Mme as tB,gvr as tC,hvr as tD,PG as tE,dCt as tF,fCt as tG,bvr as tH,vvr as tI,kwn as tJ,Whn as tK,Hgn as tL,Ggn as tM,Kgn as tN,Xgn as tO,Ygn as tP,OEr as tQ,D0n as tR,P0n as tS,dvn as tT,pvn as tU,_vn as tV,t2n as tW,W2n as tX,H2n as tY,VQr as tZ,Q2n as t_,jSr as ta,DSr as tb,PSr as tc,Nxr as td,Jgn as te,lxr as tf,Jxr as tg,Mxr as th,UAt as ti,bxr as tj,Bxr as tk,eBe as tl,hxr as tm,vxr as tn,YSr as to,Sxr as tp,JSr as tq,qSr as tr,zSr as ts,VSr as tt,USr as tu,wxr as tv,ZSr as tw,Axr as tx,yvr as ty,lCt as tz,Pa as u,iSn as u0,oSn as u1,PSn as u2,ISn as u3,xrn as u4,ywn as u5,Gd as v,bo as w,Pg as x,Pp as y,awn as z};
|