@volter/game-editor 0.5.111 → 0.5.113
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 +2177 -2177
- package/dist/assets/{AssetBudgetPanel-bAupz88s.js → AssetBudgetPanel-YOmIrgrb.js} +3 -3
- package/dist/assets/{AudioViewer-CQ5i0sqh.js → AudioViewer-bTwqa-Sq.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-DYOf1iuv.js → CanvasBoardDocument-DH0GumqR.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-DdW-6-P6.js → CanvasSceneViewport-GSbXiEc2.js} +1 -1
- package/dist/assets/{ColorInput-BbZePcoW.js → ColorInput-CM13COOy.js} +1 -1
- package/dist/assets/{ColorPicker-ZCQfoKnw.js → ColorPicker-EVo4ngxp.js} +1 -1
- package/dist/assets/{EntityModelDocument-DVK0IVd_.js → EntityModelDocument-BTYbMslU.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-CwIXIrF0.js → EnvironmentAssetDocument-CxncdHY1.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-D_qya3Ig.js → GameplaySessionTimeline-PDuA7cCk.js} +1 -1
- package/dist/assets/{ImageViewer-Cfs_40NV.js → ImageViewer-Dr9tOsGR.js} +1 -1
- package/dist/assets/InspectorObjectPreview-CmjfAk0I.js +1 -0
- package/dist/assets/{JsonAssetDocument-99jBhhmk.js → JsonAssetDocument-95S-d0FJ.js} +1 -1
- package/dist/assets/{LiveModuleDocument-Dl5VGMB4.js → LiveModuleDocument-tqAYWVCZ.js} +1 -1
- package/dist/assets/{LutAssetDocument-5ouR-h-W.js → LutAssetDocument-DOpqQnUe.js} +1 -1
- package/dist/assets/{ModelAssetDocument-0YP8CLjF.js → ModelAssetDocument-DrWymVJX.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-B6EVY_ZH.js → NonThreeAuthoringBootstrap-Gnetb5kf.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-B5IxZycD.js → Object3DDocumentToolbar-LEaER56N.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-CgifoYVE.js +2 -0
- package/dist/assets/{Object3DPreview-E81OnLKY.js → Object3DPreview-CI9SLEn2.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-CrgCBa3x.js → OnlineAssetDetail-C1_UGp0X.js} +1 -1
- package/dist/assets/{PlayBar-B60kaU1V.js → PlayBar-BqFW5mT2.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-MSQtJ_Z3.js → QuarksAssetDocument-B1-XXOIo.js} +1 -1
- package/dist/assets/{ReactCanvasControls-Dc5zCUT9.js → ReactCanvasControls-BF1bVCnc.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-B077HGww.js → RootSelectionOverlay-BF32ngZd.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-TpRIHvr1.js → ShaderAssetDocument-Dp1QXqID.js} +1 -1
- package/dist/assets/{ShadowEditor-DV3nK6mc.js → ShadowEditor-4Db4i5w5.js} +1 -1
- package/dist/assets/{SourceAssetViewer-Dawor1Iu.js → SourceAssetViewer-BmlLDth6.js} +1 -1
- package/dist/assets/{StageHost-DHOA7Fjl.js → StageHost-BQL5IEe5.js} +2 -2
- package/dist/assets/{StoryPreviewMount-CI_-6GSI.js → StoryPreviewMount-wz2HTXNK.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-DFc5NTeM.js → ThreeBoardDocument-DEAY51YS.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-B9n7e1ah.js → ThreeIsolationSceneContent-BTsDcsEk.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-D9yRYXUH.js → ToolObject3DPreview-DwuMA8jQ.js} +1 -1
- package/dist/assets/{Toolbar-C2oWqmoE.js → Toolbar-D1TipTFF.js} +1 -1
- package/dist/assets/{TransientHint-Sxme-xvC.js → TransientHint-DzC7ZR7m.js} +1 -1
- package/dist/assets/{VideoViewer-Dkfz15uC.js → VideoViewer-Dh6AS4So.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-4R5nlQgL.js → ViewportShadingMenu-B3YlrMIP.js} +1 -1
- package/dist/assets/{active-ingest-CqL5EgXV.js → active-ingest-DyPN4pXx.js} +2 -2
- package/dist/assets/{animation-clock-Cmfj6SD6.js → animation-clock-Cgc__YFh.js} +1 -1
- package/dist/assets/{animation-mixers.service-BOsyfXwP.js → animation-mixers.service-gxCtRrOy.js} +1 -1
- package/dist/assets/{animation-timeline.utility-CJEflb93.js → animation-timeline.utility-DB9Ux44B.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-Cq8duqsp.js → asset-budget-asset.menu-B00KTyex.js} +1 -1
- package/dist/assets/{asset-budget.action-5nHAtvW2.js → asset-budget.action-DBNBL_EX.js} +1 -1
- package/dist/assets/{asset-budget.document-CX5FvczQ.js → asset-budget.document-BdNi2KSS.js} +1 -1
- package/dist/assets/{asset-budget.menu-BdGhNV4r.js → asset-budget.menu-B5ac_4XU.js} +1 -1
- package/dist/assets/{asset-editor-persistence-DaYfW31_.js → asset-editor-persistence-BB9WAcxO.js} +1 -1
- package/dist/assets/{asset-loaders-C399YlHO.js → asset-loaders-BIr1M5-7.js} +1 -1
- package/dist/assets/{asset-preview-j90MweIO.js → asset-preview-SYBnd0Vm.js} +1 -1
- package/dist/assets/{audio-unlock.service-Dp9He34b.js → audio-unlock.service-DzxNWnKh.js} +1 -1
- package/dist/assets/{audio.utility-CyqJbM1O.js → audio.utility-B-NT_pSF.js} +1 -1
- package/dist/assets/autoplay.service-BOi_pnfg.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-CnWPdC1Q.js → babylon-authoring-adapter-ClEvING-.js} +1 -1
- package/dist/assets/{binding-resolver-BXphDCM5.js → binding-resolver-DrkSEcWH.js} +2 -2
- package/dist/assets/blender-emscripten-engine-CRz1C2s0.js +2 -0
- package/dist/assets/{blender-node-editor.document-CXx2qHR3.js → blender-node-editor.document-BLudqWaR.js} +1 -1
- package/dist/assets/{blender-properties-tab-D9Q053TO.js → blender-properties-tab-CgQrdCmF.js} +1 -1
- package/dist/assets/{blender-runtime-host-D_QBYZ7F.js → blender-runtime-host-DzGwnLBS.js} +1 -1
- package/dist/assets/{blender-runtime-skin-C-MmFKPY.js → blender-runtime-skin-C2nxKTQ1.js} +1 -1
- package/dist/assets/{blender-runtime.document-Byj95WvX.js → blender-runtime.document-DF4Kd_X3.js} +1 -1
- package/dist/assets/{blender-screenshot.menu-D-pdEuVU.js → blender-screenshot.menu-CgmIjtZz.js} +1 -1
- package/dist/assets/{blender-timeline.document-DcXWTjQl.js → blender-timeline.document-C4mTn6aP.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-B901oH9E.js → blender-uv-editor.document-CJAzjOUQ.js} +1 -1
- package/dist/assets/{blender-version.status-DpBwE4R6.js → blender-version.status-D7gCX70i.js} +1 -1
- package/dist/assets/{blender-wali-engine-DRlkIoxZ.js → blender-wali-engine-BmVwcYs-.js} +1 -1
- package/dist/assets/{blender.command-ClcEtyho.js → blender.command-B6fKa6tA.js} +1 -1
- package/dist/assets/{board-guides-Bi0XcSub.js → board-guides-CxjOETvX.js} +1 -1
- package/dist/assets/{bridge.command-BtJkJBe1.js → bridge.command-a-jcQB8T.js} +3 -3
- package/dist/assets/{browserAll-Dp9DArp2.js → browserAll-BuXe7m07.js} +1 -1
- package/dist/assets/{build-player.document-C1VNd3YO.js → build-player.document-BD0PnuJ8.js} +1 -1
- package/dist/assets/{build-profiles.document-BC7F3qzN.js → build-profiles.document-CVkrs6H4.js} +1 -1
- package/dist/assets/{build-progress.status-CGFDtJ24.js → build-progress.status-FeI4UjwE.js} +1 -1
- package/dist/assets/{build-session-l8PbHJfy.js → build-session-DgvoUFRy.js} +1 -1
- package/dist/assets/{build.action-BHnM15O4.js → build.action-De0QZn5x.js} +1 -1
- package/dist/assets/{build.command-DTTVx3Wu.js → build.command-Etx4MsuF.js} +1 -1
- package/dist/assets/{build.header-C2S6ep41.js → build.header-CrYpkM9P.js} +1 -1
- package/dist/assets/{build.menu-e5l_Kb4b.js → build.menu-DblGKZpN.js} +1 -1
- package/dist/assets/{build.service-xT03i3nJ.js → build.service-CnNOfCLi.js} +1 -1
- package/dist/assets/{camera-D69U5X8F.js → camera-BfeEfKS0.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-BdU6XbLE.js → camera-runtime.inspector-Cz9u-_ud.js} +1 -1
- package/dist/assets/{canvas-design-mount-CysxVENA.js → canvas-design-mount-Dw9d5RCT.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-9fi2F1yV.js → canvas-entry-runtime-C2NiPlg5.js} +2 -2
- package/dist/assets/{canvas-preview-frames-Wb2Bog86.js → canvas-preview-frames-DgjyhrhI.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-Btqzx6zj.js → canvas-story-capture.service-DJNBPJ5i.js} +2 -2
- package/dist/assets/{capability-coverage-D-0PxPrZ.js → capability-coverage-DR7JrSFb.js} +1 -1
- package/dist/assets/{collaboration-presence-CKyRGpSR.js → collaboration-presence-CANQ_L1j.js} +1 -1
- package/dist/assets/{collider-BZqWPfKu.js → collider-DfVDH8FN.js} +1 -1
- package/dist/assets/{component-board.service-HYyGjJmx.js → component-board.service-CeMs1Lk8.js} +2 -2
- package/dist/assets/{component-board.service-CJZjsXi4.js → component-board.service-DVoLrHrs.js} +2 -2
- package/dist/assets/{component-board.service-CvtkARCk.js → component-board.service-kbY79QZo.js} +2 -2
- package/dist/assets/{component-contracts.service-0C85dPhO.js → component-contracts.service-MNL4lwbm.js} +1 -1
- package/dist/assets/{component-instance-root-BKRR39Wd.js → component-instance-root-Cau6CbHE.js} +1 -1
- package/dist/assets/{component-verbs.command-BopukkQ4.js → component-verbs.command-qIVRD_Xw.js} +1 -1
- package/dist/assets/{component-verbs.service-B7WfghCI.js → component-verbs.service-B5JxoJav.js} +1 -1
- package/dist/assets/{config-DVIp_KbH.js → config-RCXzlzsa.js} +2 -2
- package/dist/assets/{configurations-BIy9skGW.js → configurations-IGbOtv8A.js} +1 -1
- package/dist/assets/{connection.status-kXEe2KXG.js → connection.status-ByfpCgpC.js} +1 -1
- package/dist/assets/{constraints.inspector-BjxPhIKb.js → constraints.inspector-uzln0fl-.js} +1 -1
- package/dist/assets/{content-bounds-DbuPrpc-.js → content-bounds-D-AXJalq.js} +1 -1
- package/dist/assets/{contract-system-adapters-ETU93T1B.js → contract-system-adapters-DFS6S5jR.js} +1 -1
- package/dist/assets/{coverage.service-BiNZeB5G.js → coverage.service-CVsV-Ujp.js} +1 -1
- package/dist/assets/{create-runtime-D1bZzRpc.js → create-runtime-SfhwBdX4.js} +1 -1
- package/dist/assets/{curve-Mw8uZ4II.js → curve-o1Gq54K5.js} +1 -1
- package/dist/assets/{data-asset-CNuXlcV3.js → data-asset-BHGaqife.js} +1 -1
- package/dist/assets/{data-ref-Dwai_Sjk.js → data-ref-BAsRympT.js} +1 -1
- package/dist/assets/{debug-bridge-BkGUUY7U.js → debug-bridge-CP_QGmkP.js} +1 -1
- package/dist/assets/{debug-registry-BnLWZePq.js → debug-registry-CKJW2aaQ.js} +1 -1
- package/dist/assets/{deferred-ingest-play-fhFUuU4a.js → deferred-ingest-play-NdjNkEVn.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-Dvwz9h1v.js → design-time-canvas-mount-DkXsU3H1.js} +2 -2
- package/dist/assets/{design-time-layers-C13ZYvbJ.js → design-time-layers-BV3mP1Sf.js} +1 -1
- package/dist/assets/{design-time-mount.service-D36tnAbD.js → design-time-mount.service-BFusXbnS.js} +2 -2
- package/dist/assets/{design-time-mount.service-B1-e6BVR.js → design-time-mount.service-BrbX9-Z0.js} +2 -2
- package/dist/assets/{design-time-react-mount-BnS39JM3.js → design-time-react-mount-BYKVfWQS.js} +1 -1
- package/dist/assets/{document-preview-three-BOO6W0ea.js → document-preview-three-BOP4aWm7.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-rcBbBeHf.js → dom-authoring-adapter-R0NT6Dgv.js} +1 -1
- package/dist/assets/{draco3d-D1lzBVDH.js → draco3d-B28c7B_w.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-DlkY1-MJ.js → edit-mode-audio.service-D4hfjqDu.js} +1 -1
- package/dist/assets/{edit-mode-authoring-aQOcoK_S.js → edit-mode-authoring-FKyNiefy.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-Augb6zRU.js → edit-mode-networking.service-BixjLG2r.js} +1 -1
- package/dist/assets/{editor-api-BZq-wfw9.js → editor-api-B8AYtjAH.js} +1 -1
- package/dist/assets/{editor-layers-cylPsVa_.js → editor-layers-L_zFs_uY.js} +1 -1
- package/dist/assets/{editor-shell-store-BbdX1Nk_.js → editor-shell-store-DOiPmqow.js} +1 -1
- package/dist/assets/{entity-object-6SA98e-d.js → entity-object-CvrkMcCz.js} +1 -1
- package/dist/assets/{extend-C7QwHAIX.js → extend-Kvra-g2p.js} +1 -1
- package/dist/assets/{fork-menu-IzUmklT-.js → fork-menu-BuRnpNg9.js} +1 -1
- package/dist/assets/{frame-debugger-store-DnnDRluY.js → frame-debugger-store-Bz-SsB7V.js} +1 -1
- package/dist/assets/{game-contract-seams-BNsMlazd.js → game-contract-seams-gtPhkpZH.js} +1 -1
- package/dist/assets/{game-css-scope-transform-88RxvxOt.js → game-css-scope-transform-BJ-6sqe3.js} +1 -1
- package/dist/assets/{game-document.service-DIr-ORkq.js → game-document.service-Dtsjp-QD.js} +1 -1
- package/dist/assets/{game-eval.command-CC7Uvoj2.js → game-eval.command-Bx_q6yCj.js} +1 -1
- package/dist/assets/{game-module-access-AhDZaDcg.js → game-module-access-C8FuQkAK.js} +1 -1
- package/dist/assets/{game-network-9it10cBz.js → game-network-BfrYV3Wu.js} +3 -3
- package/dist/assets/{gameplay-export-CUQR8Pfl.js → gameplay-export-CagiJo3l.js} +1 -1
- package/dist/assets/{gameplay-replay-CkkM7FGY.js → gameplay-replay-BGDvgIWD.js} +1 -1
- package/dist/assets/{gameplay.command-BDiztUu_.js → gameplay.command-C1gvtyuv.js} +1 -1
- package/dist/assets/{generation-jobs-0zZosJvW.js → generation-jobs-B3vV9DA5.js} +1 -1
- package/dist/assets/{generation.service-CiXYopxx.js → generation.service-CAQ3QEXE.js} +1 -1
- package/dist/assets/{generations-Bz4lh-Ex.js → generations-maNAZ6ie.js} +1 -1
- package/dist/assets/{generations.status-COcMSjup.js → generations.status-BHOoDM64.js} +1 -1
- package/dist/assets/{hierarchy-marks-Bu95zpZR.js → hierarchy-marks-BBOKHySh.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-CPArQZDh.js → hosted-asset-materialization-1nbID23w.js} +1 -1
- package/dist/assets/{index-DoNxQyzZ.js → index-2-K3RgL5.js} +2 -2
- package/dist/assets/{index-DIXwqDKu.js → index-BNk1xsv9.js} +1 -1
- package/dist/assets/{index-D6AX1fN7.js → index-BUrCxsh5.js} +1 -1
- package/dist/assets/{index-10BuYjLq.js → index-CIQueasL.js} +1 -1
- package/dist/assets/{index-DUp7NK7m.js → index-CokH1Dgb.js} +1 -1
- package/dist/assets/{index-DWv69g4y.js → index-D7-TEN6k.js} +1 -1
- package/dist/assets/{index-f4TucW0A.js → index-DV2EMzou.js} +1 -1
- package/dist/assets/{index-C6arl-gg.js → index-DxZ4l0Lx.js} +7 -7
- package/dist/assets/{index-DrtlwuOm.js → index-y3CKXb3j.js} +1 -1
- package/dist/assets/{inference-diagnostics-KiAwx9GD.js → inference-diagnostics-5lf-ZIbs.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-QyepDdQb.js → ingest-boot-viewport-D4jEOuoN.js} +1 -1
- package/dist/assets/{ingest-siblings-B8th8IFl.js → ingest-siblings-FkhDSlt8.js} +1 -1
- package/dist/assets/{ingest-source-persistence-6Y7txaZJ.js → ingest-source-persistence-Ci1cjdJ9.js} +1 -1
- package/dist/assets/{ingest.service-DwIN9437.js → ingest.service-DCcj8m5Y.js} +1 -1
- package/dist/assets/{inspect-BuzOAJBe.js → inspect-CR7QdMOn.js} +1 -1
- package/dist/assets/instances.command-BvUqb2mS.js +1 -0
- package/dist/assets/{json-history-resource-BYpHdKQG.js → json-history-resource-C5b3fL6s.js} +1 -1
- package/dist/assets/{layered-pick-DcR7BSdS.js → layered-pick-BxRnQHJy.js} +1 -1
- package/dist/assets/{light-BebXVC05.js → light-DCa8P1uY.js} +1 -1
- package/dist/assets/{live-project-verbs-ON5loZ1Q.js → live-project-verbs-De2cikPw.js} +1 -1
- package/dist/assets/{machine.document-aK8akRSr.js → machine.document-ZHRCTuWw.js} +1 -1
- package/dist/assets/{machines.finder--KUMe7ft.js → machines.finder-_EknWXAa.js} +1 -1
- package/dist/assets/{material-BsuLJWFa.js → material-CKTGcoVC.js} +1 -1
- package/dist/assets/{material-factory-DySAGpO5.js → material-factory-Dqmsa3qq.js} +1 -1
- package/dist/assets/{mesh-C584NDrF.js → mesh-D7E7Tpno.js} +1 -1
- package/dist/assets/{model-asset-sections.service-Ei80bTEx.js → model-asset-sections.service-BODa7-eZ.js} +1 -1
- package/dist/assets/{model-inspection-HHsUDRbr.js → model-inspection-C3HZSfTa.js} +1 -1
- package/dist/assets/{model-thumbnail-DyrMbiQX.js → model-thumbnail-DU5Hb25u.js} +1 -1
- package/dist/assets/{models.finder-CYRONBj0.js → models.finder-DGHllLJN.js} +1 -1
- package/dist/assets/{module-mode-DtokuzsC.js → module-mode-D94Fe5TK.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-Dwq4QJe4.js → mount-canvas-ingest-root-C7z5voqs.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-DjZPHSeV.js → mount-dom-ingest-root-DQe5ADSt.js} +2 -2
- package/dist/assets/{mount-ingest-root-CmKiIL0n.js → mount-ingest-root-Cux7Vat0.js} +2 -2
- package/dist/assets/{mount-manifest-Cz2WbqCT.js → mount-manifest-DA9vvNwK.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-BAhAR7Ue.js → mount-three-ingest-root-DdLSbSi_.js} +1 -1
- package/dist/assets/{mounted-authoring-BVEmt4Tv.js → mounted-authoring-CdPS27uW.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-BTYPhoe7.js → mounted-story-viewport-source-smY_3Xvs.js} +1 -1
- package/dist/assets/{native-debug-module-jcvJdzVp.js → native-debug-module-D3XVzf2G.js} +1 -1
- package/dist/assets/{navigation-Cct1xjoc.js → navigation-BL2K8g78.js} +1 -1
- package/dist/assets/{navmesh.menu-DtjJRJU5.js → navmesh.menu-yn3UhjtF.js} +1 -1
- package/dist/assets/{navmesh.service-CvnEsnqm.js → navmesh.service-Be0ucoLP.js} +1 -1
- package/dist/assets/network-observer.service-BS91UFhk.js +1 -0
- package/dist/assets/{network.utility-C5XP8XSy.js → network.utility-7WMTdKbC.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-CTwGgyV5.js → object3d-document-session-registry-BOhbeWPh.js} +2 -2
- package/dist/assets/{oid-transform-DTEc887G.js → oid-transform-D1XfG014.js} +1 -1
- package/dist/assets/{particles-BLIrylrd.js → particles-Cry0sotq.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-BNCKxBIf.js → pixi-authoring-adapter-D4r0NNmF.js} +1 -1
- package/dist/assets/{pixi-live-write-target-lwYfIA9h.js → pixi-live-write-target-CBs8-AZJ.js} +1 -1
- package/dist/assets/{play.command-BPVhF7ll.js → play.command-Dr0f3V-I.js} +2 -2
- package/dist/assets/{presentation-12C2FWeB.js → presentation-DZPpkAZH.js} +1 -1
- package/dist/assets/{product-C8MuWNVK.js → product-Ds7m0MXl.js} +1 -1
- package/dist/assets/{profiler.action-BONmLa2c.js → profiler.action-hX-xAN1Q.js} +1 -1
- package/dist/assets/{profiler.menu-Bf0kLJgQ.js → profiler.menu-DII7IA6d.js} +1 -1
- package/dist/assets/{profiler.utility-B3cJtsqI.js → profiler.utility-BaEdm9wI.js} +1 -1
- package/dist/assets/{project-authoring-session-DYu6Vw61.js → project-authoring-session-0PLEfHVB.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-YyMKBmgV.js → properties-bone-constraints.inspector-bnTZA2Sx.js} +1 -1
- package/dist/assets/{properties-bone.inspector-BkReBT3S.js → properties-bone.inspector-Ba_BALxK.js} +1 -1
- package/dist/assets/{properties-collection.inspector-BovPD8v1.js → properties-collection.inspector-BB7SCk6k.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-C1aJGigk.js → properties-constraints.inspector-QvPC5CKU.js} +1 -1
- package/dist/assets/{properties-data.inspector-uJwVw8dp.js → properties-data.inspector-C8DURz4h.js} +1 -1
- package/dist/assets/{properties-material.inspector-CKLvO3oB.js → properties-material.inspector-BevMJr27.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-w4pP0syM.js → properties-modifiers.inspector-Y5pMiksE.js} +1 -1
- package/dist/assets/{properties-object.inspector-BaDw-i8B.js → properties-object.inspector-CQ42THXn.js} +1 -1
- package/dist/assets/{properties-output.inspector-BkFTWPgm.js → properties-output.inspector-Bt_7itt6.js} +1 -1
- package/dist/assets/{properties-particles.inspector-CNGW6Syt.js → properties-particles.inspector-Bh8XwGWa.js} +1 -1
- package/dist/assets/{properties-physics.inspector-Dmj_2LXD.js → properties-physics.inspector-C9Kg9opR.js} +1 -1
- package/dist/assets/{properties-render.inspector-DXuF3hXo.js → properties-render.inspector-D0QyE0hB.js} +1 -1
- package/dist/assets/{properties-scene.inspector-zIOybkJm.js → properties-scene.inspector-1MvLgJS8.js} +1 -1
- package/dist/assets/{properties-texture.inspector-Cw7_kD_k.js → properties-texture.inspector-DEavbeV5.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-KTvg6jxp.js → properties-view-layer.inspector-CLgXfOvJ.js} +1 -1
- package/dist/assets/{properties-world.inspector-C2z6VkUL.js → properties-world.inspector-Czxm5_qb.js} +1 -1
- package/dist/assets/{r3f-design-session-H_re3CvL.js → r3f-design-session-Ds-Lh4CE.js} +2 -2
- package/dist/assets/{r3f-physics-binding-DscNNQbO.js → r3f-physics-binding-Ddy2AMqs.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-Szo1Cs_7.js → r3f-source-authoring-adapter-IyBCACL1.js} +1 -1
- package/dist/assets/{react-canvas-navigation-EwFdCgr9.js → react-canvas-navigation-DJjAqkef.js} +1 -1
- package/dist/assets/{react-inspector.service-DhSXnL44.js → react-inspector.service-CSk2kWPq.js} +1 -1
- package/dist/assets/{react-story-board-D5nEBzHW.js → react-story-board-Bcx-zIef.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-BF6QF4Ai.js → react-three-rapier.esm-1NxU3dq9.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CHxMN1Va.js → react-world-authoring-adapter-OePxORCc.js} +1 -1
- package/dist/assets/{realm-services-BLc5oNKC.js → realm-services-DpinxOxM.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-D6VniZvh.js → reflection-probe-capture.inspector-C_6oDrHo.js} +1 -1
- package/dist/assets/{registry-xhjJs815.js → registry-BS9FkzwE.js} +1 -1
- package/dist/assets/{relative-import-specifier-DrFdqAeb.js → relative-import-specifier-D6hnbTcT.js} +1 -1
- package/dist/assets/{render-env-BCPdsKA4.js → render-env-C1fESfcu.js} +1 -1
- package/dist/assets/{render-features--0TO8Kgf.js → render-features-DHKbJ7Fz.js} +1 -1
- package/dist/assets/{render-settings-DjQfSasM.js → render-settings-ClSYLEFT.js} +1 -1
- package/dist/assets/{resolve-three-Bcsgyhyp.js → resolve-three-Bbo0SWwc.js} +3 -3
- package/dist/assets/{root-seam-contract-RYd0OOes.js → root-seam-contract-XS-29MWj.js} +1 -1
- package/dist/assets/{run-selection-LhEBCVGi.js → run-selection-DLf4qvaj.js} +1 -1
- package/dist/assets/{scene-capture-BIRqPhuK.js → scene-capture-L3kI0vHP.js} +1 -1
- package/dist/assets/{scene-document.service-TfAugRy2.js → scene-document.service-BghK8Rt9.js} +2 -2
- package/dist/assets/{scene-framing-nKt2uw8d.js → scene-framing-BWych0aQ.js} +1 -1
- package/dist/assets/{seeded-random-DVNNXGgL.js → seeded-random-Ce4p3AkI.js} +1 -1
- package/dist/assets/{session-BfHWkUIf.js → session-CAnO1WpE.js} +16 -3
- package/dist/assets/{setup-renderer-EWFHz43d.js → setup-renderer-DxcHRzSg.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-BfZL6kIn.js → source-object3d-authoring-adapter-CUFQCDZj.js} +1 -1
- package/dist/assets/{source-persistence-backend-jPCITiRY.js → source-persistence-backend-BsZyLz63.js} +1 -1
- package/dist/assets/{stage-keyboard-CoHej2w7.js → stage-keyboard-Bfxkwdni.js} +1 -1
- package/dist/assets/{stage-overlay-set-Ca76l3Qx.js → stage-overlay-set-bbNN2SNO.js} +1 -1
- package/dist/assets/{stage-presence-markers-xPVn5wYi.js → stage-presence-markers-C8xYcF2L.js} +1 -1
- package/dist/assets/{stage-transform-tools-tv1GrWWx.js → stage-transform-tools-p5sisbub.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-D3zf1lK5.js → standard-viewport-dressing-I7UKATya.js} +1 -1
- package/dist/assets/{state-watch.action-CcKlZ2UY.js → state-watch.action-CAqCjd3J.js} +1 -1
- package/dist/assets/{state-watch.menu-CfX0vVzK.js → state-watch.menu-DWN-p-a3.js} +1 -1
- package/dist/assets/{state-watch.utility-CAFS9E8i.js → state-watch.utility-CMGyVLnH.js} +1 -1
- package/dist/assets/{story-capture-CQDQ6ceq.js → story-capture-BGhtcQBF.js} +1 -1
- package/dist/assets/{story-documents-BsCz4cYg.js → story-documents-DaK12Qjv.js} +1 -1
- package/dist/assets/{story-documents.service-BiPDdw6-.js → story-documents.service-CMNLzj5f.js} +1 -1
- package/dist/assets/{story-documents.service-DNBQcU85.js → story-documents.service-fChFb24G.js} +1 -1
- package/dist/assets/{story-media-presence-D4r3ux6s.js → story-media-presence-2zp3uRLL.js} +1 -1
- package/dist/assets/{story-pixi-preview-BdrEc99w.js → story-pixi-preview-hxfq6ofD.js} +1 -1
- package/dist/assets/{story-presentation-R3d3k1LX.js → story-presentation-C_FXa1VN.js} +1 -1
- package/dist/assets/{story-three-preview-2eZhMyGq.js → story-three-preview-uQ3ADzPv.js} +2 -2
- package/dist/assets/{studio-environment-Bu8zJYfs.js → studio-environment-B1C4moYZ.js} +1 -1
- package/dist/assets/{surface-state-iqvzpdI3.js → surface-state-BZNvmNKu.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-fghyi8Iv.js → syntactic-prop-specs-BA6l20Yy.js} +1 -1
- package/dist/assets/{team-playtest.service-jsLP6oYl.js → team-playtest.service-C5Vi2OJZ.js} +1 -1
- package/dist/assets/{three-authoring-adapter-DHzYD2um.js → three-authoring-adapter-BckRZAFC.js} +1 -1
- package/dist/assets/three-authoring.service-K1UPw3op.js +2 -0
- package/dist/assets/{three-ingest-runtime-DnLI0CbD.js → three-ingest-runtime-DZKrRIHE.js} +1 -1
- package/dist/assets/{three-integration-DllJ3ocV.js → three-integration-iaJQ46tu.js} +2 -2
- package/dist/assets/three-integration.service-DYpZ_rFP.js +1 -0
- package/dist/assets/{three-CUyDAz4o.js → three-oA8NOIIL.js} +1 -1
- package/dist/assets/{three-projection-core-Cr_G136G.js → three-projection-core-BDAHFfdE.js} +1 -1
- package/dist/assets/{three-state-Y0Lj3YRW.js → three-state-BV7x8kw3.js} +1 -1
- package/dist/assets/{three-story-capture.service-BwHJcDgw.js → three-story-capture.service-CaUSNiDk.js} +2 -2
- package/dist/assets/{three-story-model-BxXXVpjW.js → three-story-model-B6IgeeuY.js} +1 -1
- package/dist/assets/{three-viewport-presentation-C03geDOa.js → three-viewport-presentation-CKn-D0y1.js} +1 -1
- package/dist/assets/{transform-mode-request-CTyYhcR7.js → transform-mode-request-APlKqsfP.js} +1 -1
- package/dist/assets/{transport-strip-C5eYwwWc.js → transport-strip-C-sBBXum.js} +1 -1
- package/dist/assets/transport.header-CxVZN4ZW.js +1 -0
- package/dist/assets/{tuples-CWSKPWYu.js → tuples-vz7GNWYe.js} +1 -1
- package/dist/assets/{ui-board-document-DsPpTbRf.js → ui-board-document-C5xsL6QI.js} +2 -2
- package/dist/assets/{user-data-B0zGjFCx.js → user-data-BWhINAlG.js} +1 -1
- package/dist/assets/{utility-view-state--9kNEUqG.js → utility-view-state-DUssk2Y5.js} +1 -1
- package/dist/assets/{viewport-door-BYc5x1R6.js → viewport-door-D_nXAmUt.js} +1 -1
- package/dist/assets/{viewport-root-presentation-Do2ApQ2Z.js → viewport-root-presentation-DKZfgm-u.js} +1 -1
- package/dist/assets/{viewport-surface-status-7HsBeVul.js → viewport-surface-status-BK9OGt3f.js} +1 -1
- package/dist/assets/{webworkerAll-B4YS4ShL.js → webworkerAll-Du9ligfF.js} +1 -1
- package/dist/assets/worker-BXLmYZTK.js +2 -0
- package/dist/assets/{workspace-arrangement-fbEjJgLC.js → workspace-arrangement-BgwQc-qT.js} +1 -1
- package/dist/assets/{world-documents-Dfz5UHlQ.js → world-documents-DeHr136o.js} +1 -1
- package/dist/assets/{world-root-stage-binding-Yr9vCZgJ.js → world-root-stage-binding-BM10opvf.js} +1 -1
- package/dist/assets/{xstate-animation-binding-DVeg6K5M.js → xstate-animation-binding-B_oh3YqN.js} +1 -1
- package/dist/assets/{xstate-animation-meta-Ct8E8pwC.js → xstate-animation-meta-DJXYGNX1.js} +1 -1
- package/dist-node/cli.js +25 -27
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-CZGUVXl6.js +0 -1
- package/dist/assets/Object3DDocumentViewport-BCQBFvo8.js +0 -2
- package/dist/assets/autoplay.service-YRbIL-c1.js +0 -1
- package/dist/assets/blender-emscripten-engine-DrQ7iKAw.js +0 -2
- package/dist/assets/instances.command-CGjpGtsn.js +0 -1
- package/dist/assets/network-observer.service-QgI7uDnk.js +0 -1
- package/dist/assets/three-authoring.service-DGp-G2mb.js +0 -2
- package/dist/assets/three-integration.service-Cns0bkbp.js +0 -1
- package/dist/assets/transport.header-BdJfBfsH.js +0 -1
- package/dist/assets/worker-CIByxsbl.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-CXx2qHR3.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-D_QBYZ7F.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-DbuPrpc-.js","assets/hierarchy-marks-Bu95zpZR.js","assets/workspace-arrangement-fbEjJgLC.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-DcXWTjQl.js","assets/blender-runtime-skin-C-MmFKPY.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-B901oH9E.js","assets/blender-runtime.document-Byj95WvX.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-BYc5x1R6.js","assets/object3d-document-session-registry-CTwGgyV5.js","assets/blender-screenshot.menu-D-pdEuVU.js","assets/blender-version.status-DpBwE4R6.js","assets/blender.command-ClcEtyho.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-CYRONBj0.js","assets/properties-bone-constraints.inspector-YyMKBmgV.js","assets/blender-properties-tab-D9Q053TO.js","assets/ColorPicker-ZCQfoKnw.js","assets/properties-constraints.inspector-C1aJGigk.js","assets/properties-bone.inspector-BkReBT3S.js","assets/properties-collection.inspector-BovPD8v1.js","assets/properties-data.inspector-uJwVw8dp.js","assets/properties-material.inspector-CKLvO3oB.js","assets/properties-modifiers.inspector-w4pP0syM.js","assets/properties-object.inspector-BaDw-i8B.js","assets/properties-output.inspector-BkFTWPgm.js","assets/properties-particles.inspector-CNGW6Syt.js","assets/properties-physics.inspector-Dmj_2LXD.js","assets/properties-render.inspector-DXuF3hXo.js","assets/properties-scene.inspector-zIOybkJm.js","assets/properties-texture.inspector-Cw7_kD_k.js","assets/properties-view-layer.inspector-KTvg6jxp.js","assets/properties-world.inspector-C2z6VkUL.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-Cq8duqsp.js","assets/AssetBudgetPanel-bAupz88s.js","assets/asset-loaders-C399YlHO.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-5nHAtvW2.js","assets/asset-budget.document-CX5FvczQ.js","assets/asset-budget.menu-BdGhNV4r.js","assets/audio-unlock.service-Dp9He34b.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-QgI7uDnk.js","assets/game-network-9it10cBz.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-jcvJdzVp.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BnLWZePq.js","assets/contract-system-adapters-ETU93T1B.js","assets/game-contract-seams-BNsMlazd.js","assets/seeded-random-DVNNXGgL.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-ON5loZ1Q.js","assets/capability-coverage-D-0PxPrZ.js","assets/edit-mode-authoring-aQOcoK_S.js","assets/json-history-resource-BYpHdKQG.js","assets/binding-resolver-BXphDCM5.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-BLc5oNKC.js","assets/canvas-entry-runtime-9fi2F1yV.js","assets/three-ingest-runtime-DnLI0CbD.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-CqL5EgXV.js","assets/ingest-source-persistence-6Y7txaZJ.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-Do2ApQ2Z.js","assets/mounted-authoring-BVEmt4Tv.js","assets/entity-object-6SA98e-d.js","assets/user-data-B0zGjFCx.js","assets/three-CUyDAz4o.js","assets/editor-layers-cylPsVa_.js","assets/component-instance-root-BKRR39Wd.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-DHzYD2um.js","assets/source-persistence-backend-jPCITiRY.js","assets/three-projection-core-Cr_G136G.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-DscNNQbO.js","assets/deferred-ingest-play-fhFUuU4a.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CHxMN1Va.js","assets/board-guides-Bi0XcSub.js","assets/relative-import-specifier-DrFdqAeb.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-BuzOAJBe.js","assets/inference-diagnostics-KiAwx9GD.js","assets/writer-tw6EcuVO.js","assets/three-state-Y0Lj3YRW.js","assets/editor-shell-store-BbdX1Nk_.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-CyqJbM1O.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-YRbIL-c1.js","assets/bridge.command-BtJkJBe1.js","assets/gameplay-replay-CkkM7FGY.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-BkGUUY7U.js","assets/build-profiles.document-BC7F3qzN.js","assets/build-session-l8PbHJfy.js","assets/configurations-BIy9skGW.js","assets/build-player.document-C1VNd3YO.js","assets/build-progress.status-CGFDtJ24.js","assets/build.action-BHnM15O4.js","assets/build.command-DTTVx3Wu.js","assets/build.header-C2S6ep41.js","assets/build.menu-e5l_Kb4b.js","assets/build.service-xT03i3nJ.js","assets/connection.status-kXEe2KXG.js","assets/coverage.service-BiNZeB5G.js","assets/edit-mode-audio.service-DlkY1-MJ.js","assets/edit-mode-networking.service-Augb6zRU.js","assets/game-document.service-DIr-ORkq.js","assets/frame-debugger-store-DnnDRluY.js","assets/utility-view-state--9kNEUqG.js","assets/PlayBar-B60kaU1V.js","assets/run-selection-LhEBCVGi.js","assets/presentation-12C2FWeB.js","assets/surface-state-iqvzpdI3.js","assets/game-eval.command-CC7Uvoj2.js","assets/game-module-access-AhDZaDcg.js","assets/gameplay.command-BDiztUu_.js","assets/generation.service-CiXYopxx.js","assets/model-thumbnail-DyrMbiQX.js","assets/studio-environment-Bu8zJYfs.js","assets/generation-jobs-0zZosJvW.js","assets/generation-CdOATubd.css","assets/generations.status-COcMSjup.js","assets/ingest.service-DwIN9437.js","assets/registry-xhjJs815.js","assets/mount-ingest-root-CmKiIL0n.js","assets/instances.command-CGjpGtsn.js","assets/navmesh.menu-DtjJRJU5.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-CvnEsnqm.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-C5XP8XSy.js","assets/play.command-BPVhF7ll.js","assets/profiler.action-BONmLa2c.js","assets/profiler.menu-Bf0kLJgQ.js","assets/profiler.utility-B3cJtsqI.js","assets/scene-document.service-TfAugRy2.js","assets/Object3DDocumentViewport-BCQBFvo8.js","assets/viewport-surface-status-7HsBeVul.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-CcKlZ2UY.js","assets/state-watch.menu-CfX0vVzK.js","assets/state-watch.utility-CAFS9E8i.js","assets/team-playtest.service-jsLP6oYl.js","assets/collaboration-presence-CKyRGpSR.js","assets/transport.header-BdJfBfsH.js","assets/component-board.service-CvtkARCk.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-D4r3ux6s.js","assets/design-time-mount.service-B1-e6BVR.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-CJZjsXi4.js","assets/design-time-mount.service-D36tnAbD.js","assets/react-inspector.service-DhSXnL44.js","assets/ShadowEditor-DV3nK6mc.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-rcBbBeHf.js","assets/story-documents.service-BiPDdw6-.js","assets/story-documents-BsCz4cYg.js","assets/StoryPreviewMount-CI_-6GSI.js","assets/camera-runtime.inspector-BdU6XbLE.js","assets/component-board.service-HYyGjJmx.js","assets/component-verbs.command-BopukkQ4.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-IzUmklT-.js","assets/component-verbs.service-B7WfghCI.js","assets/constraints.inspector-BjxPhIKb.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-Ei80bTEx.js","assets/model-inspection-HHsUDRbr.js","assets/source-object3d-authoring-adapter-BfZL6kIn.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-D6VniZvh.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-DNBQcU85.js","assets/standard-viewport-dressing-D3zf1lK5.js","assets/mounted-story-viewport-source-BTYPhoe7.js","assets/story-three-preview-2eZhMyGq.js","assets/asset-preview-j90MweIO.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-BxXXVpjW.js","assets/r3f-source-authoring-adapter-Szo1Cs_7.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-DTEc887G.js","assets/three-authoring.service-DGp-G2mb.js","assets/three-story-capture.service-BwHJcDgw.js","assets/canvas-story-capture.service-Btqzx6zj.js","assets/component-contracts.service-0C85dPhO.js","assets/three-integration.service-Cns0bkbp.js","assets/three-integration-DllJ3ocV.js","assets/layered-pick-DcR7BSdS.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-BOsyfXwP.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-CJEflb93.js","assets/transport-strip-C5eYwwWc.js","assets/machines.finder--KUMe7ft.js","assets/machine.document-aK8akRSr.js","assets/GameplaySessionTimeline-D_qya3Ig.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-CQ5i0sqh.js","assets/ImageViewer-Cfs_40NV.js","assets/VideoViewer-Dkfz15uC.js","assets/JsonAssetDocument-99jBhhmk.js","assets/OnlineAssetDetail-CrgCBa3x.js","assets/asset-editor-persistence-DaYfW31_.js","assets/SourceAssetViewer-Dawor1Iu.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-CPArQZDh.js","assets/NonThreeAuthoringBootstrap-B6EVY_ZH.js","assets/project-authoring-session-DYu6Vw61.js","assets/story-capture-CQDQ6ceq.js","assets/react-story-board-D5nEBzHW.js","assets/story-presentation-R3d3k1LX.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 i0r}from"./index-FUuS4qwW.js";import{a as nLe}from"./client-DNXj_opT.js";import{g as iLe,a as o0r,c as kmt}from"./_commonjsHelpers-D6-XlEtG.js";function s0r(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 a0r="modulepreload",c0r=function(t){return"/"+t},Amt={},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=c0r(A),A in Amt)return;Amt[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":a0r,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)})},l0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-CXx2qHR3.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-DcXWTjQl.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-B901oH9E.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-Byj95WvX.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-D-pdEuVU.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-DpBwE4R6.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-ClcEtyho.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-CYRONBj0.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-YyMKBmgV.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-BkReBT3S.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-BovPD8v1.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-C1aJGigk.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-uJwVw8dp.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-CKLvO3oB.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-w4pP0syM.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-BaDw-i8B.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-BkFTWPgm.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-CNGW6Syt.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-Dmj_2LXD.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-DXuF3hXo.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-zIOybkJm.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-Cw7_kD_k.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-KTvg6jxp.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-C2z6VkUL.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"),[])}],u0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-Cq8duqsp.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-5nHAtvW2.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-CX5FvczQ.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-BdGhNV4r.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-Dp9He34b.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-QgI7uDnk.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-CyqJbM1O.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-YRbIL-c1.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-BtJkJBe1.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-BC7F3qzN.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-C1VNd3YO.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-CGFDtJ24.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-BHnM15O4.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-DTTVx3Wu.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-C2S6ep41.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-e5l_Kb4b.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-xT03i3nJ.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-kXEe2KXG.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-BiNZeB5G.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-DlkY1-MJ.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-Augb6zRU.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-DIr-ORkq.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-CC7Uvoj2.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-BDiztUu_.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-CiXYopxx.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-COcMSjup.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-DwIN9437.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-CGjpGtsn.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-DtjJRJU5.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-CvnEsnqm.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-C5XP8XSy.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-BPVhF7ll.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-BONmLa2c.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-Bf0kLJgQ.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-B3cJtsqI.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-TfAugRy2.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-CcKlZ2UY.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-CfX0vVzK.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-CAFS9E8i.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-jsLP6oYl.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-BdJfBfsH.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-CvtkARCk.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-B1-e6BVR.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-CJZjsXi4.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-D36tnAbD.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-DhSXnL44.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-BiPDdw6-.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-BdU6XbLE.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-HYyGjJmx.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-BopukkQ4.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-B7WfghCI.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-BjxPhIKb.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-Ei80bTEx.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-D6VniZvh.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-DNBQcU85.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-DGp-G2mb.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-BwHJcDgw.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-Btqzx6zj.js"),__vite__mapDeps([243,3,2,4,1,20,21,22,23]))}],f0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-0C85dPhO.js"),__vite__mapDeps([244,240,135,126,3,2,4,1,20,21,22,23]))}],d0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-Cns0bkbp.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-BOsyfXwP.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-CJEflb93.js"),__vite__mapDeps([251,1,2,252,3,4,20,21,22,23]))}],p0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder--KUMe7ft.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-aK8akRSr.js"),__vite__mapDeps([254,1,2,3,4,20,21,22,23]))}];let HY=null;const $Oe=new Set;function uee(){return HY}function _0r(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 $Oe)n()}function PTt(t){return $Oe.add(t),()=>$Oe.delete(t)}/*!
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-BLudqWaR.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-DzGwnLBS.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-AXJalq.js","assets/hierarchy-marks-BBOKHySh.js","assets/workspace-arrangement-BgwQc-qT.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-C4mTn6aP.js","assets/blender-runtime-skin-C2nxKTQ1.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-CJAzjOUQ.js","assets/blender-runtime.document-DF4Kd_X3.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-D_nXAmUt.js","assets/object3d-document-session-registry-BOhbeWPh.js","assets/blender-screenshot.menu-CgmIjtZz.js","assets/blender-version.status-D7gCX70i.js","assets/blender.command-B6fKa6tA.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-DGHllLJN.js","assets/properties-bone-constraints.inspector-bnTZA2Sx.js","assets/blender-properties-tab-CgQrdCmF.js","assets/ColorPicker-EVo4ngxp.js","assets/properties-constraints.inspector-QvPC5CKU.js","assets/properties-bone.inspector-Ba_BALxK.js","assets/properties-collection.inspector-BB7SCk6k.js","assets/properties-data.inspector-C8DURz4h.js","assets/properties-material.inspector-BevMJr27.js","assets/properties-modifiers.inspector-Y5pMiksE.js","assets/properties-object.inspector-CQ42THXn.js","assets/properties-output.inspector-Bt_7itt6.js","assets/properties-particles.inspector-Bh8XwGWa.js","assets/properties-physics.inspector-C9Kg9opR.js","assets/properties-render.inspector-D0QyE0hB.js","assets/properties-scene.inspector-1MvLgJS8.js","assets/properties-texture.inspector-DEavbeV5.js","assets/properties-view-layer.inspector-CLgXfOvJ.js","assets/properties-world.inspector-Czxm5_qb.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-B00KTyex.js","assets/AssetBudgetPanel-YOmIrgrb.js","assets/asset-loaders-BIr1M5-7.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-DBNBL_EX.js","assets/asset-budget.document-BdNi2KSS.js","assets/asset-budget.menu-B5ac_4XU.js","assets/audio-unlock.service-DzxNWnKh.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-BS91UFhk.js","assets/game-network-BfrYV3Wu.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-D3XVzf2G.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-CKJW2aaQ.js","assets/contract-system-adapters-DFS6S5jR.js","assets/game-contract-seams-gtPhkpZH.js","assets/seeded-random-Ce4p3AkI.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-De2cikPw.js","assets/capability-coverage-DR7JrSFb.js","assets/edit-mode-authoring-FKyNiefy.js","assets/json-history-resource-C5b3fL6s.js","assets/binding-resolver-DrkSEcWH.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-DpinxOxM.js","assets/canvas-entry-runtime-C2NiPlg5.js","assets/three-ingest-runtime-DZKrRIHE.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-DyPN4pXx.js","assets/ingest-source-persistence-Ci1cjdJ9.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-DKZfgm-u.js","assets/mounted-authoring-CdPS27uW.js","assets/entity-object-CvrkMcCz.js","assets/user-data-BWhINAlG.js","assets/three-oA8NOIIL.js","assets/editor-layers-L_zFs_uY.js","assets/component-instance-root-Cau6CbHE.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-BckRZAFC.js","assets/source-persistence-backend-BsZyLz63.js","assets/three-projection-core-BDAHFfdE.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-Ddy2AMqs.js","assets/deferred-ingest-play-NdjNkEVn.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-OePxORCc.js","assets/board-guides-CxjOETvX.js","assets/relative-import-specifier-D6hnbTcT.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-CR7QdMOn.js","assets/inference-diagnostics-5lf-ZIbs.js","assets/writer-tw6EcuVO.js","assets/three-state-BV7x8kw3.js","assets/editor-shell-store-DOiPmqow.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-B-NT_pSF.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-BOi_pnfg.js","assets/bridge.command-a-jcQB8T.js","assets/gameplay-replay-BGDvgIWD.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-CP_QGmkP.js","assets/build-profiles.document-CVkrs6H4.js","assets/build-session-DgvoUFRy.js","assets/configurations-IGbOtv8A.js","assets/build-player.document-BD0PnuJ8.js","assets/build-progress.status-FeI4UjwE.js","assets/build.action-De0QZn5x.js","assets/build.command-Etx4MsuF.js","assets/build.header-CrYpkM9P.js","assets/build.menu-DblGKZpN.js","assets/build.service-CnNOfCLi.js","assets/connection.status-ByfpCgpC.js","assets/coverage.service-CVsV-Ujp.js","assets/edit-mode-audio.service-D4hfjqDu.js","assets/edit-mode-networking.service-BixjLG2r.js","assets/game-document.service-Dtsjp-QD.js","assets/frame-debugger-store-Bz-SsB7V.js","assets/utility-view-state-DUssk2Y5.js","assets/PlayBar-BqFW5mT2.js","assets/run-selection-DLf4qvaj.js","assets/presentation-DZPpkAZH.js","assets/surface-state-BZNvmNKu.js","assets/game-eval.command-Bx_q6yCj.js","assets/game-module-access-C8FuQkAK.js","assets/gameplay.command-C1gvtyuv.js","assets/generation.service-CAQ3QEXE.js","assets/model-thumbnail-DU5Hb25u.js","assets/studio-environment-B1C4moYZ.js","assets/generation-jobs-B3vV9DA5.js","assets/generation-CdOATubd.css","assets/generations.status-BHOoDM64.js","assets/ingest.service-DCcj8m5Y.js","assets/registry-BS9FkzwE.js","assets/mount-ingest-root-Cux7Vat0.js","assets/instances.command-BvUqb2mS.js","assets/navmesh.menu-yn3UhjtF.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-Be0ucoLP.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-7WMTdKbC.js","assets/play.command-Dr0f3V-I.js","assets/profiler.action-hX-xAN1Q.js","assets/profiler.menu-DII7IA6d.js","assets/profiler.utility-BaEdm9wI.js","assets/scene-document.service-BghK8Rt9.js","assets/Object3DDocumentViewport-CgifoYVE.js","assets/viewport-surface-status-BK9OGt3f.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-CAqCjd3J.js","assets/state-watch.menu-DWN-p-a3.js","assets/state-watch.utility-CMGyVLnH.js","assets/team-playtest.service-C5Vi2OJZ.js","assets/collaboration-presence-CANQ_L1j.js","assets/transport.header-CxVZN4ZW.js","assets/component-board.service-kbY79QZo.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-2zp3uRLL.js","assets/design-time-mount.service-BrbX9-Z0.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-DVoLrHrs.js","assets/design-time-mount.service-BFusXbnS.js","assets/react-inspector.service-CSk2kWPq.js","assets/ShadowEditor-4Db4i5w5.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-R0NT6Dgv.js","assets/story-documents.service-CMNLzj5f.js","assets/story-documents-DaK12Qjv.js","assets/StoryPreviewMount-wz2HTXNK.js","assets/camera-runtime.inspector-Cz9u-_ud.js","assets/component-board.service-CeMs1Lk8.js","assets/component-verbs.command-qIVRD_Xw.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-BuRnpNg9.js","assets/component-verbs.service-B5JxoJav.js","assets/constraints.inspector-uzln0fl-.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-BODa7-eZ.js","assets/model-inspection-C3HZSfTa.js","assets/source-object3d-authoring-adapter-CUFQCDZj.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-C_6oDrHo.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-fChFb24G.js","assets/standard-viewport-dressing-I7UKATya.js","assets/mounted-story-viewport-source-smY_3Xvs.js","assets/story-three-preview-uQ3ADzPv.js","assets/asset-preview-SYBnd0Vm.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-B6IgeeuY.js","assets/r3f-source-authoring-adapter-IyBCACL1.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-D1XfG014.js","assets/three-authoring.service-K1UPw3op.js","assets/three-story-capture.service-CaUSNiDk.js","assets/canvas-story-capture.service-DJNBPJ5i.js","assets/component-contracts.service-MNL4lwbm.js","assets/three-integration.service-DYpZ_rFP.js","assets/three-integration-iaJQ46tu.js","assets/layered-pick-BxRnQHJy.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-gxCtRrOy.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-DB9Ux44B.js","assets/transport-strip-C-sBBXum.js","assets/machines.finder-_EknWXAa.js","assets/machine.document-ZHRCTuWw.js","assets/GameplaySessionTimeline-PDuA7cCk.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-bTwqa-Sq.js","assets/ImageViewer-Dr9tOsGR.js","assets/VideoViewer-Dh6AS4So.js","assets/JsonAssetDocument-95S-d0FJ.js","assets/OnlineAssetDetail-C1_UGp0X.js","assets/asset-editor-persistence-BB9WAcxO.js","assets/SourceAssetViewer-BmlLDth6.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-1nbID23w.js","assets/NonThreeAuthoringBootstrap-Gnetb5kf.js","assets/project-authoring-session-0PLEfHVB.js","assets/story-capture-BGhtcQBF.js","assets/react-story-board-Bcx-zIef.js","assets/story-presentation-C_FXa1VN.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 i0r}from"./index-FUuS4qwW.js";import{a as nLe}from"./client-DNXj_opT.js";import{g as iLe,a as o0r,c as kmt}from"./_commonjsHelpers-D6-XlEtG.js";function s0r(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 a0r="modulepreload",c0r=function(t){return"/"+t},Amt={},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=c0r(A),A in Amt)return;Amt[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":a0r,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)})},l0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-BLudqWaR.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-C4mTn6aP.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-CJAzjOUQ.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-DF4Kd_X3.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-CgmIjtZz.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-D7gCX70i.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-B6fKa6tA.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-DGHllLJN.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-bnTZA2Sx.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-Ba_BALxK.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-BB7SCk6k.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-QvPC5CKU.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-C8DURz4h.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-BevMJr27.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-Y5pMiksE.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-CQ42THXn.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-Bt_7itt6.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-Bh8XwGWa.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-C9Kg9opR.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-D0QyE0hB.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-1MvLgJS8.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-DEavbeV5.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-CLgXfOvJ.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-Czxm5_qb.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"),[])}],u0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-B00KTyex.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-DBNBL_EX.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-BdNi2KSS.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-B5ac_4XU.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-DzxNWnKh.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-BS91UFhk.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-B-NT_pSF.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-BOi_pnfg.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-a-jcQB8T.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-CVkrs6H4.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-BD0PnuJ8.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-FeI4UjwE.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-De0QZn5x.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-Etx4MsuF.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-CrYpkM9P.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-DblGKZpN.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-CnNOfCLi.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-ByfpCgpC.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-CVsV-Ujp.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-D4hfjqDu.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-BixjLG2r.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-Dtsjp-QD.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-Bx_q6yCj.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-C1gvtyuv.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-CAQ3QEXE.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-BHOoDM64.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-DCcj8m5Y.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-BvUqb2mS.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-yn3UhjtF.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-Be0ucoLP.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-7WMTdKbC.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-Dr0f3V-I.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-hX-xAN1Q.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-DII7IA6d.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-BaEdm9wI.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-BghK8Rt9.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-CAqCjd3J.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-DWN-p-a3.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-CMGyVLnH.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-C5Vi2OJZ.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-CxVZN4ZW.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-kbY79QZo.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-BrbX9-Z0.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-DVoLrHrs.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-BFusXbnS.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-CSk2kWPq.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-CMNLzj5f.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-Cz9u-_ud.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-CeMs1Lk8.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-qIVRD_Xw.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-B5JxoJav.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-uzln0fl-.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-BODa7-eZ.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-C_6oDrHo.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-fChFb24G.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-K1UPw3op.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-CaUSNiDk.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-DJNBPJ5i.js"),__vite__mapDeps([243,3,2,4,1,20,21,22,23]))}],f0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-MNL4lwbm.js"),__vite__mapDeps([244,240,135,126,3,2,4,1,20,21,22,23]))}],d0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-DYpZ_rFP.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-gxCtRrOy.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-DB9Ux44B.js"),__vite__mapDeps([251,1,2,252,3,4,20,21,22,23]))}],p0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-_EknWXAa.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-ZHRCTuWw.js"),__vite__mapDeps([254,1,2,3,4,20,21,22,23]))}];let HY=null;const $Oe=new Set;function uee(){return HY}function _0r(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 $Oe)n()}function PTt(t){return $Oe.add(t),()=>$Oe.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(De,Pe)=>Ce(J,De,Pe)};let m;const g=ZB,S=!ZOe.jitless,A=S&&SCt.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?REt([],G,J,$,D,t):J):s(J,$):(J.issues.push({expected:"object",code:"invalid_type",input:G,inst:t}),J)}});function Gmt(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=>!MO(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 xLe=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=>Gmt(k,d,t,m)):Gmt(S,d,t,m)}});function Kmt(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 r2r=ui("$ZodXor",(t,n)=>{xLe.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=>Kmt(k,d,t,m)):Kmt(S,d,t,m)}}),n2r=ui("$ZodDiscriminatedUnion",(t,n)=>{n.inclusive=!1,xLe.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)}}),i2r=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])=>Xmt(s,k,A)):Xmt(s,m,g)}});function eRe(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=eRe(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=eRe(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 Xmt(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}),MO(t))return t;const g=eRe(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 FEt=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 o2r=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"&&SLe.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}}),s2r=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])=>{Ymt(F,D,s,g,d,t,c)})):Ymt(k,A,s,g,d,t,c)}return m.length?Promise.all(m).then(()=>s):s}});function Ymt(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 a2r=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=>Zmt(k,s))):Zmt(S,s)}return m.length?Promise.all(m).then(()=>s):s}});function Zmt(t,n){t.issues.length&&n.issues.push(...t.issues),n.value.add(t.value)}const c2r=ui("$ZodEnum",(t,n)=>{vu.init(t,n);const s=yLe(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}}),l2r=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}}),u2r=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}}),f2r=ui("$ZodTransform",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe(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 Qmt(t,n){return t.issues.length&&n===void 0?{issues:[],value:void 0}:t}const MEt=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=>Qmt(m,s.value)):Qmt(d,s.value)}return s.value===void 0?s:n.innerType._zod.run(s,c)}}),d2r=ui("$ZodExactOptional",(t,n)=>{MEt.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)}),p2r=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)}),_2r=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=>eht(m,n)):eht(d,n)}});function eht(t,n){return t.value===void 0&&(t.value=n.defaultValue),t}const m2r=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))}),h2r=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=>tht(m,t)):tht(d,t)}});function tht(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 g2r=ui("$ZodSuccess",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe("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)}}),y2r=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)}}),v2r=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)}),b2r=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 jEt=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 S2r=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(rht):rht(d)}});function rht(t){return t.value=Object.freeze(t.value),t}const x2r=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||xCt.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)}),w2r=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?Umt(t._def.input,c):c,m=Reflect.apply(s,this,d);return t._def.output?Umt(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 Jmt(t._def.input,c):c,m=await Reflect.apply(s,this,d);return t._def.output?await Jmt(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 FEt({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)),T2r=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))}),C2r=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)}),E2r=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=>nht(m,s,c,t));nht(d,s,c,t)}});function nht(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 iht;const rgn=Symbol("ZodOutput"),ngn=Symbol("ZodInput");class k2r{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 A2r(){return new k2r}(iht=globalThis).__zod_globalRegistry??(iht.__zod_globalRegistry=A2r());const sD=globalThis.__zod_globalRegistry;function D2r(t,n){return new t({type:"string",...Jo(n)})}function ign(t,n){return new t({type:"string",coerce:!0,...Jo(n)})}function LEt(t,n){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Jo(n)})}function tRe(t,n){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Jo(n)})}function BEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Jo(n)})}function $Et(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Jo(n)})}function qEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Jo(n)})}function zEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Jo(n)})}function wLe(t,n){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Jo(n)})}function VEt(t,n){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Jo(n)})}function UEt(t,n){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Jo(n)})}function JEt(t,n){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Jo(n)})}function WEt(t,n){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Jo(n)})}function HEt(t,n){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Jo(n)})}function GEt(t,n){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Jo(n)})}function KEt(t,n){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Jo(n)})}function XEt(t,n){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Jo(n)})}function YEt(t,n){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Jo(n)})}function P2r(t,n){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Jo(n)})}function ZEt(t,n){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Jo(n)})}function QEt(t,n){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Jo(n)})}function ekt(t,n){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Jo(n)})}function tkt(t,n){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Jo(n)})}function rkt(t,n){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Jo(n)})}function nkt(t,n){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Jo(n)})}const ogn={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function I2r(t,n){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Jo(n)})}function N2r(t,n){return new t({type:"string",format:"date",check:"string_format",...Jo(n)})}function O2r(t,n){return new t({type:"string",format:"time",check:"string_format",precision:null,...Jo(n)})}function R2r(t,n){return new t({type:"string",format:"duration",check:"string_format",...Jo(n)})}function F2r(t,n){return new t({type:"number",checks:[],...Jo(n)})}function sgn(t,n){return new t({type:"number",coerce:!0,checks:[],...Jo(n)})}function M2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Jo(n)})}function j2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Jo(n)})}function L2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Jo(n)})}function B2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Jo(n)})}function $2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Jo(n)})}function q2r(t,n){return new t({type:"boolean",...Jo(n)})}function agn(t,n){return new t({type:"boolean",coerce:!0,...Jo(n)})}function z2r(t,n){return new t({type:"bigint",...Jo(n)})}function cgn(t,n){return new t({type:"bigint",coerce:!0,...Jo(n)})}function V2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Jo(n)})}function U2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Jo(n)})}function J2r(t,n){return new t({type:"symbol",...Jo(n)})}function W2r(t,n){return new t({type:"undefined",...Jo(n)})}function H2r(t,n){return new t({type:"null",...Jo(n)})}function G2r(t){return new t({type:"any"})}function K2r(t){return new t({type:"unknown"})}function X2r(t,n){return new t({type:"never",...Jo(n)})}function Y2r(t,n){return new t({type:"void",...Jo(n)})}function Z2r(t,n){return new t({type:"date",...Jo(n)})}function lgn(t,n){return new t({type:"date",coerce:!0,...Jo(n)})}function Q2r(t,n){return new t({type:"nan",...Jo(n)})}function QZ(t,n){return new kEt({check:"less_than",...Jo(n),value:t,inclusive:!1})}function XI(t,n){return new kEt({check:"less_than",...Jo(n),value:t,inclusive:!0})}function eQ(t,n){return new AEt({check:"greater_than",...Jo(n),value:t,inclusive:!1})}function qk(t,n){return new AEt({check:"greater_than",...Jo(n),value:t,inclusive:!0})}function ugn(t){return eQ(0,t)}function fgn(t){return QZ(0,t)}function dgn(t){return XI(0,t)}function pgn(t){return qk(0,t)}function rRe(t,n){return new X1r({check:"multiple_of",...Jo(n),value:t})}function TLe(t,n){return new Q1r({check:"max_size",...Jo(n),maximum:t})}function tQ(t,n){return new ebr({check:"min_size",...Jo(n),minimum:t})}function ikt(t,n){return new tbr({check:"size_equals",...Jo(n),size:t})}function okt(t,n){return new rbr({check:"max_length",...Jo(n),maximum:t})}function qme(t,n){return new nbr({check:"min_length",...Jo(n),minimum:t})}function skt(t,n){return new ibr({check:"length_equals",...Jo(n),length:t})}function eSr(t,n){return new obr({check:"string_format",format:"regex",...Jo(n),pattern:t})}function tSr(t){return new sbr({check:"string_format",format:"lowercase",...Jo(t)})}function rSr(t){return new abr({check:"string_format",format:"uppercase",...Jo(t)})}function nSr(t,n){return new cbr({check:"string_format",format:"includes",...Jo(n),includes:t})}function iSr(t,n){return new lbr({check:"string_format",format:"starts_with",...Jo(n),prefix:t})}function oSr(t,n){return new ubr({check:"string_format",format:"ends_with",...Jo(n),suffix:t})}function _gn(t,n,s){return new fbr({check:"property",property:t,schema:n,...Jo(s)})}function sSr(t,n){return new dbr({check:"mime_type",mime:t,...Jo(n)})}function M$(t){return new pbr({check:"overwrite",tx:t})}function aSr(t){return M$(n=>n.normalize(t))}function cSr(){return M$(t=>t.trim())}function lSr(){return M$(t=>t.toLowerCase())}function uSr(){return M$(t=>t.toUpperCase())}function fSr(){return M$(t=>bCt(t))}function dSr(t,n,s){return new t({type:"array",element:n,...Jo(s)})}function mgn(t,n,s){return new t({type:"union",options:n,...Jo(s)})}function hgn(t,n,s){return new t({type:"union",options:n,inclusive:!1,...Jo(s)})}function ggn(t,n,s,c){return new t({type:"union",options:s,discriminator:n,...Jo(c)})}function ygn(t,n,s){return new t({type:"intersection",left:n,right:s})}function vgn(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 bgn(t,n,s,c){return new t({type:"record",keyType:n,valueType:s,...Jo(c)})}function Sgn(t,n,s,c){return new t({type:"map",keyType:n,valueType:s,...Jo(c)})}function xgn(t,n,s){return new t({type:"set",valueType:n,...Jo(s)})}function wgn(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 Tgn(t,n,s){return new t({type:"enum",entries:n,...Jo(s)})}function Cgn(t,n,s){return new t({type:"literal",values:Array.isArray(n)?n:[n],...Jo(s)})}function pSr(t,n){return new t({type:"file",...Jo(n)})}function Egn(t,n){return new t({type:"transform",transform:n})}function kgn(t,n){return new t({type:"optional",innerType:n})}function Agn(t,n){return new t({type:"nullable",innerType:n})}function Dgn(t,n,s){return new t({type:"default",innerType:n,get defaultValue(){return typeof s=="function"?s():pye(s)}})}function Pgn(t,n,s){return new t({type:"nonoptional",innerType:n,...Jo(s)})}function Ign(t,n){return new t({type:"success",innerType:n})}function Ngn(t,n,s){return new t({type:"catch",innerType:n,catchValue:typeof s=="function"?s:()=>s})}function Ogn(t,n,s){return new t({type:"pipe",in:n,out:s})}function Rgn(t,n){return new t({type:"readonly",innerType:n})}function Fgn(t,n,s){return new t({type:"template_literal",parts:n,...Jo(s)})}function Mgn(t,n){return new t({type:"lazy",getter:n})}function jgn(t,n){return new t({type:"promise",innerType:n})}function _Sr(t,n,s){const c=Jo(s);return c.abort??(c.abort=!0),new t({type:"custom",check:"custom",fn:n,...c})}function mSr(t,n,s){return new t({type:"custom",check:"custom",fn:n,...Jo(s)})}function hSr(t){const n=gSr(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 gSr(t,n){const s=new eh({check:"custom",...Jo(n)});return s._zod.check=t,s}function ySr(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 vSr(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 bSr(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??jEt,k=t.Boolean??IEt,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 SSr=(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)},xSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},akt=(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=xSr[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}))])}},ckt=(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)},lkt=(t,n,s,c)=>{s.type="boolean"},ukt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},fkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},dkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},pkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},_kt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},mkt=(t,n,s,c)=>{s.not={}},hkt=(t,n,s,c)=>{},gkt=(t,n,s,c)=>{},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},vkt=(t,n,s,c)=>{const d=t._zod.def,m=yLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},bkt=(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},Skt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},xkt=(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},wkt=(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)},Tkt=(t,n,s,c)=>{s.type="boolean"},Ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Ekt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},kkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Akt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Pkt=(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"]})},Ikt=(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)},CLe=(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},Nkt=(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},Okt=(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)},Rkt=(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)}},Fkt=(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"}]},Mkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},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.default=JSON.parse(JSON.stringify(d.defaultValue))},Lkt=(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)))},Bkt=(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},$kt=(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},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.readOnly=!0},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},ELe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Vkt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},oht={string:akt,number:ckt,boolean:lkt,bigint:ukt,symbol:fkt,null:dkt,undefined:pkt,void:_kt,never:mkt,any:hkt,unknown:gkt,date:ykt,enum:vkt,literal:bkt,nan:Skt,template_literal:xkt,file:wkt,success:Tkt,custom:Ckt,function:Ekt,transform:kkt,map:Akt,set:Dkt,array:Pkt,object:Ikt,union:CLe,intersection:Nkt,tuple:Okt,record:Rkt,nullable:Fkt,nonoptional:Mkt,default:jkt,prefault:Lkt,catch:Bkt,pipe:$kt,readonly:qkt,promise:zkt,optional:ELe,lazy:Vkt};function wSr(t,n){if("_idmap"in t){const c=t,d=zme({...n,processors:oht}),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:oht});return F_(t,s),Vme(s,t),Ume(s,t)}const Ukt=ui("ZodISODateTime",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function Jkt(t){return I2r(Ukt,t)}const Wkt=ui("ZodISODate",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function Hkt(t){return N2r(Wkt,t)}const Gkt=ui("ZodISOTime",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function Kkt(t){return O2r(Gkt,t)}const Xkt=ui("ZodISODuration",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function Ykt(t){return R2r(Xkt,t)}const Lgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Wkt,ZodISODateTime:Ukt,ZodISODuration:Xkt,ZodISOTime:Gkt,date:Hkt,datetime:Jkt,duration:Ykt,time:Kkt},Symbol.toStringTag,{value:"Module"})),Zkt=(t,n)=>{jCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>S1r(t,s)},flatten:{value:s=>b1r(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}}})},Bgn=ui("ZodError",Zkt),Fw=ui("ZodError",Zkt,{Parent:Error}),TSr=hye(Fw),CSr=gye(Fw),ESr=yye(Fw),kSr=vye(Fw),ASr=LCt(Fw),DSr=BCt(Fw),PSr=$Ct(Fw),ISr=qCt(Fw),NSr=zCt(Fw),OSr=VCt(Fw),RSr=UCt(Fw),FSr=JCt(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=SSr(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)=>TSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>ESr(t,s,c),t.parseAsync=async(s,c)=>CSr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>kSr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>ASr(t,s,c),t.decode=(s,c)=>DSr(t,s,c),t.encodeAsync=async(s,c)=>PSr(t,s,c),t.decodeAsync=async(s,c)=>ISr(t,s,c),t.safeEncode=(s,c)=>NSr(t,s,c),t.safeDecode=(s,c)=>OSr(t,s,c),t.safeEncodeAsync=async(s,c)=>RSr(t,s,c),t.safeDecodeAsync=async(s,c)=>FSr(t,s,c),t.refine=(s,c)=>t.check(BAt(s,c)),t.superRefine=s=>t.check($At(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Gme(t),t.exactOptional=()=>SAt(t),t.nullable=()=>Kme(t),t.nullish=()=>Gme(Kme(t)),t.nonoptional=s=>kAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>XLe(t,s),t.transform=s=>Xme(t,YLe(s)),t.default=s=>TAt(t,s),t.prefault=s=>EAt(t,s),t.catch=s=>PAt(t,s),t.pipe=s=>Xme(t,s),t.readonly=()=>OAt(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)),kLe=ui("_ZodString",(t,n)=>{Sye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>akt(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(eSr(...c)),t.includes=(...c)=>t.check(nSr(...c)),t.startsWith=(...c)=>t.check(iSr(...c)),t.endsWith=(...c)=>t.check(oSr(...c)),t.min=(...c)=>t.check(qme(...c)),t.max=(...c)=>t.check(okt(...c)),t.length=(...c)=>t.check(skt(...c)),t.nonempty=(...c)=>t.check(qme(1,...c)),t.lowercase=c=>t.check(tSr(c)),t.uppercase=c=>t.check(rSr(c)),t.trim=()=>t.check(cSr()),t.normalize=(...c)=>t.check(aSr(...c)),t.toLowerCase=()=>t.check(lSr()),t.toUpperCase=()=>t.check(uSr()),t.slugify=()=>t.check(fSr())}),ALe=ui("ZodString",(t,n)=>{Sye.init(t,n),kLe.init(t,n),t.email=s=>t.check(LEt(DLe,s)),t.url=s=>t.check(wLe(wye,s)),t.jwt=s=>t.check(nkt(ULe,s)),t.emoji=s=>t.check(VEt(PLe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.uuid=s=>t.check(BEt(aD,s)),t.uuidv4=s=>t.check($Et(aD,s)),t.uuidv6=s=>t.check(qEt(aD,s)),t.uuidv7=s=>t.check(zEt(aD,s)),t.nanoid=s=>t.check(UEt(ILe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.cuid=s=>t.check(JEt(NLe,s)),t.cuid2=s=>t.check(WEt(OLe,s)),t.ulid=s=>t.check(HEt(RLe,s)),t.base64=s=>t.check(ekt(qLe,s)),t.base64url=s=>t.check(tkt(zLe,s)),t.xid=s=>t.check(GEt(FLe,s)),t.ksuid=s=>t.check(KEt(MLe,s)),t.ipv4=s=>t.check(XEt(jLe,s)),t.ipv6=s=>t.check(YEt(LLe,s)),t.cidrv4=s=>t.check(ZEt(BLe,s)),t.cidrv6=s=>t.check(QEt($Le,s)),t.e164=s=>t.check(rkt(VLe,s)),t.datetime=s=>t.check(Jkt(s)),t.date=s=>t.check(Hkt(s)),t.time=s=>t.check(Kkt(s)),t.duration=s=>t.check(Ykt(s))});function bo(t){return D2r(ALe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),kLe.init(t,n)}),DLe=ui("ZodEmail",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function MSr(t){return LEt(DLe,t)}const Wme=ui("ZodGUID",(t,n)=>{hbr.init(t,n),j_.init(t,n)});function jSr(t){return tRe(Wme,t)}const aD=ui("ZodUUID",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function LSr(t){return BEt(aD,t)}function BSr(t){return $Et(aD,t)}function $Sr(t){return qEt(aD,t)}function qSr(t){return zEt(aD,t)}const wye=ui("ZodURL",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function zSr(t){return wLe(wye,t)}function VSr(t){return wLe(wye,{protocol:/^https?$/,hostname:uEt,...Jo(t)})}const PLe=ui("ZodEmoji",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function USr(t){return VEt(PLe,t)}const ILe=ui("ZodNanoID",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function JSr(t){return UEt(ILe,t)}const NLe=ui("ZodCUID",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function WSr(t){return JEt(NLe,t)}const OLe=ui("ZodCUID2",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return WEt(OLe,t)}const RLe=ui("ZodULID",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function GSr(t){return HEt(RLe,t)}const FLe=ui("ZodXID",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function KSr(t){return GEt(FLe,t)}const MLe=ui("ZodKSUID",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function XSr(t){return KEt(MLe,t)}const jLe=ui("ZodIPv4",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function YSr(t){return XEt(jLe,t)}const Qkt=ui("ZodMAC",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function ZSr(t){return P2r(Qkt,t)}const LLe=ui("ZodIPv6",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function QSr(t){return YEt(LLe,t)}const BLe=ui("ZodCIDRv4",(t,n)=>{Rbr.init(t,n),j_.init(t,n)});function exr(t){return ZEt(BLe,t)}const $Le=ui("ZodCIDRv6",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function txr(t){return QEt($Le,t)}const qLe=ui("ZodBase64",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function rxr(t){return ekt(qLe,t)}const zLe=ui("ZodBase64URL",(t,n)=>{Lbr.init(t,n),j_.init(t,n)});function nxr(t){return tkt(zLe,t)}const VLe=ui("ZodE164",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function ixr(t){return rkt(VLe,t)}const ULe=ui("ZodJWT",(t,n)=>{qbr.init(t,n),j_.init(t,n)});function oxr(t){return nkt(ULe,t)}const hee=ui("ZodCustomStringFormat",(t,n)=>{zbr.init(t,n),j_.init(t,n)});function sxr(t,n,s={}){return xye(hee,t,n,s)}function axr(t){return xye(hee,"hostname",lEt,t)}function cxr(t){return xye(hee,"hex",CEt,t)}function lxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=K1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return xye(hee,c,d,n)}const JLe=ui("ZodNumber",(t,n)=>{PEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ckt(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(XI(c,d)),t.max=(c,d)=>t.check(XI(c,d)),t.int=c=>t.check(nRe(c)),t.safe=c=>t.check(nRe(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(XI(0,c)),t.multipleOf=(c,d)=>t.check(rRe(c,d)),t.step=(c,d)=>t.check(rRe(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 F2r(JLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Vbr.init(t,n),JLe.init(t,n)});function nRe(t){return M2r(j$,t)}function uxr(t){return j2r(j$,t)}function fxr(t){return L2r(j$,t)}function dxr(t){return B2r(j$,t)}function pxr(t){return $2r(j$,t)}const WLe=ui("ZodBoolean",(t,n)=>{IEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>lkt(t,s,c)});function _y(t){return q2r(WLe,t)}const HLe=ui("ZodBigInt",(t,n)=>{NEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ukt(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(XI(c,d)),t.max=(c,d)=>t.check(XI(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(XI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(rRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function _xr(t){return z2r(HLe,t)}const GLe=ui("ZodBigIntFormat",(t,n)=>{Ubr.init(t,n),HLe.init(t,n)});function mxr(t){return V2r(GLe,t)}function hxr(t){return U2r(GLe,t)}const eAt=ui("ZodSymbol",(t,n)=>{Jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>fkt(t,s)});function gxr(t){return J2r(eAt,t)}const tAt=ui("ZodUndefined",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s)});function yxr(t){return W2r(tAt,t)}const rAt=ui("ZodNull",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s,c)});function nAt(t){return H2r(rAt,t)}const iAt=ui("ZodAny",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt()});function vxr(){return G2r(iAt)}const oAt=ui("ZodUnknown",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt()});function t$(){return K2r(oAt)}const sAt=ui("ZodNever",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s,c)});function KLe(t){return X2r(sAt,t)}const aAt=ui("ZodVoid",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt(t,s)});function bxr(t){return Y2r(aAt,t)}const cAt=ui("ZodDate",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ykt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(XI(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 Sxr(t){return Z2r(cAt,t)}const lAt=ui("ZodArray",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(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(okt(s,c)),t.length=(s,c)=>t.check(skt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return dSr(lAt,t,n)}function xxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const Tye=ui("ZodObject",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(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:KLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>DCt(t,s),t.safeExtend=s=>PCt(t,s),t.merge=s=>ICt(t,s),t.pick=s=>kCt(t,s),t.omit=s=>ACt(t,s),t.partial=(...s)=>NCt(ZLe,t,s[0]),t.required=(...s)=>OCt(QLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new Tye(s)}function wxr(t,n){return new Tye({type:"object",shape:t,catchall:KLe(),...Jo(n)})}function Txr(t,n){return new Tye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Cye=ui("ZodUnion",(t,n)=>{xLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function AR(t,n){return new Cye({type:"union",options:t,...Jo(n)})}const uAt=ui("ZodXor",(t,n)=>{Cye.init(t,n),r2r.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function Cxr(t,n){return new uAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const fAt=ui("ZodDiscriminatedUnion",(t,n)=>{Cye.init(t,n),n2r.init(t,n)});function dAt(t,n,s){return new fAt({type:"union",options:n,discriminator:t,...Jo(s)})}const pAt=ui("ZodIntersection",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d)});function XLe(t,n){return new pAt({type:"intersection",left:t,right:n})}const _At=ui("ZodTuple",(t,n)=>{FEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(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 _At({type:"tuple",items:t,rest:m,...Jo(d)})}const Eye=ui("ZodRecord",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(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 Exr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Eye({type:"record",keyType:c,valueType:n,...Jo(s)})}function kxr(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const mAt=ui("ZodMap",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(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(TLe(...s)),t.size=(...s)=>t.check(ikt(...s))});function Axr(t,n,s){return new mAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const hAt=ui("ZodSet",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s),t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(TLe(...s)),t.size=(...s)=>t.check(ikt(...s))});function Dxr(t,n){return new hAt({type:"set",valueType:t,...Jo(n)})}const rQ=ui("ZodEnum",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>vkt(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 Pxr(t,n){return new rQ({type:"enum",entries:t,...Jo(n)})}const gAt=ui("ZodLiteral",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt(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 gAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const yAt=ui("ZodFile",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s,c),t.min=(s,c)=>t.check(tQ(s,c)),t.max=(s,c)=>t.check(TLe(s,c)),t.mime=(s,c)=>t.check(sSr(Array.isArray(s)?s:[s],c))});function Ixr(t){return pSr(yAt,t)}const vAt=ui("ZodTransform",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe(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 YLe(t){return new vAt({type:"transform",transform:t})}const ZLe=ui("ZodOptional",(t,n)=>{MEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new ZLe({type:"optional",innerType:t})}const bAt=ui("ZodExactOptional",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function SAt(t){return new bAt({type:"optional",innerType:t})}const xAt=ui("ZodNullable",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Kme(t){return new xAt({type:"nullable",innerType:t})}function Nxr(t){return Gme(Kme(t))}const wAt=ui("ZodDefault",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function TAt(t,n){return new wAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const CAt=ui("ZodPrefault",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function EAt(t,n){return new CAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const QLe=ui("ZodNonOptional",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function kAt(t,n){return new QLe({type:"nonoptional",innerType:t,...Jo(n)})}const AAt=ui("ZodSuccess",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Oxr(t){return new AAt({type:"success",innerType:t})}const DAt=ui("ZodCatch",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Bkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function PAt(t,n){return new DAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const IAt=ui("ZodNaN",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s)});function Rxr(t){return Q2r(IAt,t)}const eBe=ui("ZodPipe",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.in=n.in,t.out=n.out});function Xme(t,n){return new eBe({type:"pipe",in:t,out:n})}const tBe=ui("ZodCodec",(t,n)=>{eBe.init(t,n),jEt.init(t,n)});function Fxr(t,n,s){return new tBe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const NAt=ui("ZodReadonly",(t,n)=>{S2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>qkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function OAt(t){return new NAt({type:"readonly",innerType:t})}const RAt=ui("ZodTemplateLiteral",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(t,s,c)});function Mxr(t,n){return new RAt({type:"template_literal",parts:t,...Jo(n)})}const FAt=ui("ZodLazy",(t,n)=>{C2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Vkt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function MAt(t){return new FAt({type:"lazy",getter:t})}const jAt=ui("ZodPromise",(t,n)=>{T2r.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 jxr(t){return new jAt({type:"promise",innerType:t})}const LAt=ui("ZodFunction",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s)});function sht(t){return new LAt({type:"function",input:Array.isArray(t?.input)?Hme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const kye=ui("ZodCustom",(t,n)=>{E2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s)});function Lxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function YI(t,n){return _Sr(kye,t??(()=>!0),n)}function BAt(t,n={}){return mSr(kye,t,n)}function $At(t){return hSr(t)}const Bxr=ySr,$xr=vSr;function qxr(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 zxr=(...t)=>bSr({Codec:tBe,Boolean:WLe,String:ALe},...t);function Vxr(t){const n=MAt(()=>AR([bo(t),fu(),_y(),nAt(),Gd(n),wD(bo(),n)]));return n}function qAt(t,n){return Xme(YLe(t),n)}const $gn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:iAt,ZodArray:lAt,ZodBase64:qLe,ZodBase64URL:zLe,ZodBigInt:HLe,ZodBigIntFormat:GLe,ZodBoolean:WLe,ZodCIDRv4:BLe,ZodCIDRv6:$Le,ZodCUID:NLe,ZodCUID2:OLe,ZodCatch:DAt,ZodCodec:tBe,ZodCustom:kye,ZodCustomStringFormat:hee,ZodDate:cAt,ZodDefault:wAt,ZodDiscriminatedUnion:fAt,ZodE164:VLe,ZodEmail:DLe,ZodEmoji:PLe,ZodEnum:rQ,ZodExactOptional:bAt,ZodFile:yAt,ZodFunction:LAt,ZodGUID:Wme,ZodIPv4:jLe,ZodIPv6:LLe,ZodIntersection:pAt,ZodJWT:ULe,ZodKSUID:MLe,ZodLazy:FAt,ZodLiteral:gAt,ZodMAC:Qkt,ZodMap:mAt,ZodNaN:IAt,ZodNanoID:ILe,ZodNever:sAt,ZodNonOptional:QLe,ZodNull:rAt,ZodNullable:xAt,ZodNumber:JLe,ZodNumberFormat:j$,ZodObject:Tye,ZodOptional:ZLe,ZodPipe:eBe,ZodPrefault:CAt,ZodPromise:jAt,ZodReadonly:NAt,ZodRecord:Eye,ZodSet:hAt,ZodString:ALe,ZodStringFormat:j_,ZodSuccess:AAt,ZodSymbol:eAt,ZodTemplateLiteral:RAt,ZodTransform:vAt,ZodTuple:_At,ZodType:Lu,ZodULID:RLe,ZodURL:wye,ZodUUID:aD,ZodUndefined:tAt,ZodUnion:Cye,ZodUnknown:oAt,ZodVoid:aAt,ZodXID:FLe,ZodXor:uAt,_ZodString:kLe,_default:TAt,_function:sht,any:vxr,array:Gd,base64:rxr,base64url:nxr,bigint:_xr,boolean:_y,catch:PAt,check:Lxr,cidrv4:exr,cidrv6:txr,codec:Fxr,cuid:WSr,cuid2:HSr,custom:YI,date:Sxr,describe:Bxr,discriminatedUnion:dAt,e164:ixr,email:MSr,emoji:USr,enum:ed,exactOptional:SAt,file:Ixr,float32:uxr,float64:fxr,function:sht,guid:jSr,hash:lxr,hex:cxr,hostname:axr,httpUrl:VSr,instanceof:qxr,int:nRe,int32:dxr,int64:mxr,intersection:XLe,ipv4:YSr,ipv6:QSr,json:Vxr,jwt:oxr,keyof:xxr,ksuid:XSr,lazy:MAt,literal:Pg,looseObject:Txr,looseRecord:kxr,mac:ZSr,map:Axr,meta:$xr,nan:Rxr,nanoid:JSr,nativeEnum:Pxr,never:KLe,nonoptional:kAt,null:nAt,nullable:Kme,nullish:Nxr,number:fu,object:Pa,optional:Gme,partialRecord:Exr,pipe:Xme,prefault:EAt,preprocess:qAt,promise:jxr,readonly:OAt,record:wD,refine:BAt,set:Dxr,strictObject:wxr,string:bo,stringFormat:sxr,stringbool:zxr,success:Oxr,superRefine:$At,symbol:gxr,templateLiteral:Mxr,transform:YLe,tuple:Hme,uint32:pxr,uint64:hxr,ulid:GSr,undefined:yxr,union:AR,unknown:t$,url:zSr,uuid:LSr,uuidv4:BSr,uuidv6:$Sr,uuidv7:qSr,void:bxr,xid:KSr,xor:Cxr},Symbol.toStringTag,{value:"Module"})),aht={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 qgn(t){$S({customError:t})}function zgn(){return $S().customError}var cht;cht||(cht={});const lht=ed(["mock","live"]),Uxr=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()}),Jxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Wxr=Pa({overageEnabled:_y(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:_y(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Hxr=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()}),Gxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Kxr=Pa({name:bo().min(1),verified:_y(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Xxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Kxr).max(50)}),Yxr=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 Zxr=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()}))}),Qxr=dAt("authenticated",[Pa({authenticated:Pg(!1),backend:lht}),Pa({authenticated:Pg(!0),backend:lht,user:Gxr,organizations:Gd(Xxr).max(100).optional(),plan:Uxr,credits:Jxr,spendPolicy:Wxr,alerts:Gd(Hxr).max(100).optional(),entitlements:Pa({generation:_y(),dailyJobs:fu().int().positive().optional()})})]),ewr=ed(["auto","mock","managed","byok"]),zAt=ed(["fal","tripo","worldlabs","openrouter"]),twr=Pa({enabled:_y(),provider:Pg("openrouter"),model:bo().trim().min(1).max(256)}),rwr=ed(["environment","system","session","none"]),nwr=Pa({provider:zAt,label:bo().min(1),environmentVariable:bo().min(1),configured:_y(),source:rwr,editable:_y(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),iwr=Pa({provider:zAt,ok:Pg(!0),testedAt:bo().datetime()});function owr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const Aye=XLe(Qxr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Pg(!0),managed:_y(),byok:_y(),byokProviders:Gd(bo().min(1))}),preferredRoute:ewr,providerCredentials:Gd(nwr),codingInference:twr}));function swr(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(swr(n,s))}function CN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return CN(t,n),await t.json()}const uht="volter.collaboration.participant.v1",awr="volter.collaboration.remote-share.v1",iRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function cwr(){if(iRe?.participantId)return iRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(uht);if(n)return n;globalThis.localStorage?.setItem(uht,t)}catch{}return t}const VAt=cwr(),L$=(()=>{try{return globalThis.localStorage?.getItem(awr)==="1"}catch{return!1}})(),lwr=iRe?.displayName||"Local editor",uwr=Symbol.for("volter.collaboration.revision"),oRe=globalThis[uwr]??={value:0};function UAt(t){Number.isInteger(t)&&t>=oRe.value&&(oRe.value=t)}function Dw(){return{participantId:VAt,expectedRevision:oRe.value}}const fwr={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$=fwr,JAt=0,sRe=null;const aRe=new Set;function lR(t,n=null){if(!(sRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,sRe=n,JAt++;for(const s of aRe)s()}}async function WAt(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 WAt(c,`${n} ${t} failed`);return lR(d),d}function rBe(){return r$}function nBe(){return owr(r$)}function cN(){return JAt}function Tpe(){return sRe}function Dye(t){return aRe.add(t),()=>aRe.delete(t)}async function fht(){try{const t=await WAt(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 dwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),pwr=t=>NC("/__editor/account/twin-session","POST",{email:t}),_wr=()=>NC("/__editor/account/session","DELETE"),mwr=t=>NC("/__editor/account/spend-policy","PUT",t),hwr=()=>NC("/__editor/account/alerts/read","POST"),gwr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),ywr=t=>NC("/__editor/account/coding-inference","PUT",t);async function vwr(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 bwr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),Swr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function xwr(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 iwr.parse(s)}const dht=t=>NC("/__editor/account/plan","PUT",{action:t});async function HAt(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 wwr=t=>HAt("/__editor/account/checkout",{plan:t}),Twr=t=>HAt("/__editor/account/credits",{packId:t});async function Cwr(){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 Yxr.array().parse(n.entries??[])}async function Ewr(){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 Zxr.parse(n)}async function kwr(){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 Awr(){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 Dwr(){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 Pwr(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 Iwr(){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 Nwr(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 Owr(){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))):fht().catch(()=>{});const n=window.setInterval(()=>void fht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function GAt(t){return t?XAt(t)?null:t:null}function Rwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function KAt(t){return t&&XAt(t)?t:null}function XAt(t){return t.keyedBy==="display"}const Vgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:KAt,nodeKeyedPhysics:GAt,physicsOwnerOf:Rwr},Symbol.toStringTag,{value:"Module"})),Fwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},iBe=Object.keys(Fwr);function Mwr(){const t={};for(const n of iBe)t[n]=0;return t}const jwr={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},oBe=Object.keys(jwr);function Lwr(t){const n={};for(const s of oBe)n[s]=t[s]!==void 0;return n}const Ugn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:oBe,WRITE_ANCHOR_KINDS:iBe,emptyWriteAnchorKindCounts:Mwr,measureAuthoringProviders:Lwr},Symbol.toStringTag,{value:"Module"})),Bwr=["claim","shape","operation","effect","round-trip"],Yme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function YAt(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}:YAt(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 ZAt{#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 $wr(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($wr({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 Jgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:Bwr,SeamEvidenceLedger:ZAt,defineSeamShape:Ip,gradeSeamCarrier:Zme,gradeSeamEvidence:nQ,inspectSeamShape:vB,seamStageAtLeast:YAt},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"}}),cRe=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"}}),QAt=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),e3t=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"}}),t3t=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"}}),r3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),n3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),i3t=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"}}),o3t=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"}}),s3t=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"}}),a3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),c3t=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"}}),l3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),u3t=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"}}),f3t=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"}}),d3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),p3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),_3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),m3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),lRe={selection:QAt,transforms:e3t,inspector:t3t,assetSubject:r3t,related:n3t,instances:i3t,structure:o3t,persistence:s3t,pickable:a3t,rects:u3t,boxEdit:f3t,text:d3t,colorSample:p3t,stories:c3t,truth:_3t,spatialHandles:m3t,assetDrop:l3t},Wgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:l3t,ASSET_SUBJECT_PROVIDER_SHAPE:r3t,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:lRe,BOX_EDIT_PROVIDER_SHAPE:f3t,COLOR_SAMPLE_PROVIDER_SHAPE:p3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:i3t,HIERARCHY_PROVIDER_SHAPE:cRe,INSPECTOR_PROVIDER_SHAPE:t3t,PERSISTENCE_PROVIDER_SHAPE:s3t,PICK_PROVIDER_SHAPE:a3t,RECT_PROVIDER_SHAPE:u3t,RELATED_SUBJECTS_PROVIDER_SHAPE:n3t,SELECTION_PROVIDER_SHAPE:QAt,SPATIAL_HANDLES_PROVIDER_SHAPE:m3t,STORIES_PROVIDER_SHAPE:c3t,STRUCTURE_PROVIDER_SHAPE:o3t,TEXT_PROVIDER_SHAPE:d3t,TRANSFORM_PROVIDER_SHAPE:e3t,TRUTH_PROVIDER_SHAPE:_3t},Symbol.toStringTag,{value:"Module"})),uRe=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"}}),h3t=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"}}),g3t=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"}}),y3t=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"}}),v3t=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"}}),b3t=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"}}),S3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),x3t=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"}}),w3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),T3t={networking:y3t,navigation:v3t,audio:b3t,camera:S3t,debug:x3t,renderDebug:w3t},Hgn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:b3t,CAMERA_ADAPTER_SHAPE:S3t,DEBUG_ADAPTER_SHAPE:x3t,NAVIGATION_ADAPTER_SHAPE:v3t,NETWORKING_ADAPTER_SHAPE:y3t,PHYSICS_2D_ADAPTER_SHAPE:g3t,PHYSICS_ADAPTER_SHAPE:h3t,RENDER_DEBUG_ADAPTER_SHAPE:w3t,SYSTEM_ADAPTERS_SHAPE:uRe,SYSTEM_PROVIDER_SHAPES:T3t},Symbol.toStringTag,{value:"Module"})),sBe=new ZAt;function qwr(t){sBe.record(t)}const pht=new WeakMap;let zwr=1;function C3t(t){const n=pht.get(t);if(n)return n;const s=`system-${zwr++}`;return pht.set(t,s),s}function Vwr(t){const n=t.epoch??C3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?KAt(t.adapter)?g3t:h3t:T3t[t.slot],m=[...vB({prefix:"system",value:c,shape:uRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...sBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Zme({seam:s,subject:t.subject,epoch:n,required:uRe[t.slot].required,receipts:m,shape:d})}let qS={},iQ=null,aBe=null;const Qme=new Set,ehe=new Set,fRe=new Set;let cBe=0;function dRe(){for(const t of fRe)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]))){cBe++;for(const c of ehe)c()}}const LS=new Map;let x_e=null,E3t=0;const pRe=new Set,lBe="";function k3t(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=Vwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function ZI(){return x_e!==null&&LS.has(x_e)?x_e:LS.keys().next().value??null}function nhe(){E3t++;for(const t of pRe)t()}function Uwr(t){const n=ZI();if(x_e=t,n!==ZI()){nhe(),cBe++;for(const s of Qme)s();for(const s of ehe)s()}}function Ggn(){return ZI()}function Jwr(t){return pRe.add(t),()=>pRe.delete(t)}function Kgn(){return E3t}function Pye(){const t=ZI();return(t===null?void 0:LS.get(t))??qS}function Wwr(t,n=lBe){const s=ZI(),c=Iye(),d=Nye(),m=Oye();if(t){k3t(t,n),LS.set(n,t),qS=t,the(c),rhe(d,m),dRe(),s!==ZI()&&nhe();return}LS.delete(n),qS=LS.values().next().value??{},the(c),rhe(d,m),dRe(),s!==ZI()&&nhe()}function Hwr(){for(const t of[...LS.keys()])Wwr(null,t);Uwr(null)}function Xgn(t,n=lBe){const s=Iye(),c=Nye(),d=Oye(),m=LS.get(n);k3t(t,n),LS.set(n,t),qS===m&&(qS=t),the(s),rhe(c,d),dRe(),ZI()===n&&nhe()}function Ygn(){return qS}function Gwr(t){return fRe.add(t),()=>fRe.delete(t)}function Kwr(){return[...LS.keys()]}function _ht(t){const n=t.filter(d=>d!==lBe),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 mht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Xwr(t){const n=Kwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new mht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${_ht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new mht(`${n.length} instances are live (${_ht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function Zgn(){return GAt(qS.physics)}function Ywr(){return qS.camera??null}function Iye(){return qS.networking??aBe??null}function Zwr(){return Pye().networking??aBe??null}function Qwr(t){return Qme.add(t),()=>Qme.delete(t)}function Qgn(t){const n=Iye();aBe=t,the(n)}function eyn(){return qS.debug??null}function tyn(t){const n=Nye(),s=Oye();iQ=t,rhe(n,s)}function Nye(){return qS.audio??iQ}function eTr(){return Pye().audio??iQ}function tTr(t){return ehe.add(t),()=>ehe.delete(t)}function rTr(){return cBe}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 nTr(){return qS.renderDebug??null}function ryn(){return Pye().renderDebug??null}let A3t=null;const _Re=new Set;function nyn(t){A3t=t;for(const n of _Re)n()}function Rye(){return A3t?.()??null}function Fye(t){_Re.add(t);const n=Jwr(t);return()=>{_Re.delete(t),n()}}function lN(){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 xO=[],iTr=0,D3t=0;const mRe=new Set;function hht(){D3t++;for(const t of mRe)t()}function P3t(t){return mRe.add(t),()=>{mRe.delete(t)}}function ght(){return D3t}function Z4(t){if(xO.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:iTr++};return xO=[...xO,n],hht(),()=>{xO.includes(n)&&(xO=xO.filter(s=>s!==n),hht())}}function hRe(t){const n=s=>[...xO].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,I3t=0;const gRe=new Set;function yht(){I3t++;for(const t of gRe)t()}function N3t(t){return gRe.add(t),()=>gRe.delete(t)}function yRe(){return I3t}function uBe(){return w_e}function oTr(t){const n=Symbol(t.documentId);return w_e={...t,token:n},yht(),()=>{w_e?.token===n&&(w_e=null,yht())}}function sTr(){Ye.useSyncExternalStore(N3t,yRe);const t=uBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const aTr=Mye();function cTr(){aTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:sTr}))})}cTr();let bB=null,O3t=0;const vRe=new Set;function vht(){O3t+=1;for(const t of vRe)t()}function lTr(t){return vRe.add(t),()=>{vRe.delete(t)}}function bht(){return O3t}function uTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},vht(),()=>{bB?.token===s&&(bB=null,vht())}}function bRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const uN=new Map,SRe=new Map;function R3t(){typeof window>"u"||window.parent===window||uN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...uN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&R3t()});let Nc=null,fBe=null;function dBe(){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 F3t(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 fTr(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 dTr(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=fTr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=pTr({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:fBe}}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 Sht(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 pTr(t){return[Cpe("workspace-sync",t.workspaceSyncMs),Cpe("reveal-schedule",t.revealScheduleMs),Sht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),Sht("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 iyn(t,n=Date.now()){const s=(SRe.get(t)??0)+1;SRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:dTr(d,n)};return Nc=null,uN.set(t,m),wht(),xht(),m}return uN.set(t,c),wht(),xht(),c}let xRe=new Set;const wRe=new Set;function xht(){R3t();for(const t of wRe)t()}function _Tr(t){return wRe.add(t),()=>wRe.delete(t)}function wht(){uN.size!==0&&M3t()}function M3t(){const t=xRe;xRe=new Set;for(const n of t)n()}let Tht=!1;function mTr(){Tht||typeof document>"u"||(Tht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&M3t()}))}function jye(){return uN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(mTr(),new Promise(t=>xRe.add(t)))}function hTr(){return[...uN.values()]}function gTr(t){dBe()&&(Nc=F3t(t,Date.now(),{}))}function oyn(t,n={}){if(!dBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=F3t(t,s,n),Nc.boardBuildStartedAtMs=s}function syn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function ayn(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 cyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function lyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function uyn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function fyn(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 dyn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function pyn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function _yn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function myn(t){Nc&&Nc.stories.push(t)}function hyn(){return Nc?.documentId??null}function yTr(t){dBe()&&(fBe=t)}function vTr(){uN.clear(),SRe.clear(),Nc=null,fBe=null}const bTr=["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 Cht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let j3t=0;const TRe=new Set,A5e=new Set,pBe=new Map,XO=new Map;function wC(){j3t++;for(const t of TRe)t()}function o2(t){return TRe.add(t),()=>{TRe.delete(t)}}function K1(){return j3t}function l0(){return hp}function Pp(){return i2}function CRe(){return oQ}function STr(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&&gTr(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 xTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&EN(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(xTr(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&&Cht(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&&Cht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(sQ(t),wC()),!0):!1}function L3t(){uR=null}function wTr(t){if(X0(t)){uR=null;return}uR=t}function EN(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),pBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{A5e.delete(t)}}function B3t(){if(hp.length===0&&i2===null)return;const t=hp;sQ(null),hp=[],oQ=null,zk=null,pBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function TTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function gyn(t){XO.has(t)&&wC()}async function CTr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=pBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function ETr(){return i2?CTr(i2):Promise.resolve(null)}function yyn(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 $3t(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 _Be(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?_Be(i2):null}const kTr={adapter:null,nodeId:null};function ATr(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 mBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return oTr({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 TTr(t,()=>S.current?.()??kTr)},[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=ATr(k);return Ye.useEffect(()=>{if(n)return uTr(t,()=>A.current)},[n,t,F]),null}function DTr({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(mBe,{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 PTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:DTr,AssetEditorSubject:mBe},Symbol.toStringTag,{value:"Module"})),T_e=new Map,ERe=new Set;function Eht(){for(const t of ERe)t()}function vyn(t){const n=Object.entries(t);for(const[s,c]of n)T_e.set(s,c);return Eht(),()=>{for(const[s,c]of n)T_e.get(s)===c&&T_e.delete(s);Eht()}}function ITr(t){return T_e.get(t)??null}function NTr(t){return ERe.add(t),()=>{ERe.delete(t)}}function OTr(t){return q.jsx(mBe,{...t})}const kht=new Map;function RTr(t){const n=kht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>ITr(t),[]),m=Ye.useSyncExternalStore(NTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,kht.set(t,s),s}const hBe=new Proxy(Object.freeze({AssetDocument:OTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):RTr(n)}}),Aht=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)"}}),FTr=["classic","glass"],MTr=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 jTr(){return ihe??=[...MTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ihe}function LTr(t){return ohe.add(t),()=>ohe.delete(t)}function BTr(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"&&(FTr.includes(t)||SB.has(t))}function $Tr(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??Aht.shape,elevation:d?.elevation??Aht.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 qTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},zTr={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 q3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Epe(t),alignItems:n?qTr[n]:void 0,justifyContent:s?zTr[s]:void 0,padding:Epe(c),paddingInline:Epe(d),paddingBlock:Epe(m),...g}}function gee(t,n){return n?`${t} ${n}`:t}function z3t({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-stack",t),style:q3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-inline",t),style:q3t(n)})}function byn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:gee("volter-spacer",t)})}function VTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:gee("volter-divider",n)})}function UTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:gee("volter-actions",n),gap:2,align:"center",children:t})}function V3t(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:V3t("volter-text",g)})});function Syn({className:t,...n}){return q.jsx("kbd",{...n,className:V3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function kRe({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 ARe({titleId:t,title:n,description:s}){return q.jsxs(z3t,{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 U3t({className:t,...n}){return q.jsx(z3t,{...n,className:B$("volter-dialog-body",t)})}function DRe({children:t,className:n,...s}){return q.jsx(UTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function xyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function wyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function Tyn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function Cyn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function gBe(t,n){return n?`${t} ${n}`:t}function JTr({className:t,...n}){return q.jsx("div",{...n,className:gBe("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:gBe("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 Eyn({className:t,...n}){return q.jsx("label",{...n,className:gBe("volter-field-label",t)})}const kyn=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 WTr({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 HTr({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 Ayn({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 Dyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Pyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function Dht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function Iyn({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 J3t(t,n){return n?`${t} ${n}`:t}const Nyn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:J3t("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()}})}),Oyn=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:J3t("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 Pht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-toolbar-group",t)})}function Iht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:yee("volter-toolbar-divider",t.className)})}function Ryn({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 Fyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-split-button",t)})}function W3t(t,n){return n?`${t} ${n}`:t}const Myn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:W3t("volter-tree",s)})}),jyn=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:W3t("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 H3t(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 PRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function GTr(t){PRe(t)[0]?.focus()}function Nht(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 fN=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&&PRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!Nht(A.current,J)&&!Nht(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=PRe(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 yBe=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 vBe({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 De=t.current;if(!De||!F)return;const Pe=De.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?H3t({...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 De=t.current;if(!De||!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(De),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,GTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(she,{children:q.jsx(fN,{...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 Lyn({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(vBe,{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})}),dm=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"},Oht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},KTr="#579EFF",XTr="rgba(87,158,255,0.15)",D5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},bBe="#d8dee9",SBe="rgba(216,222,233,0.18)",G3t="#FF6B6B",K3t="#e0a030",X3t="#4caf50",Y3t="rgba(76,175,80,0.15)",Z3t="rgba(255,107,107,0.15)",Q3t="rgba(224,160,48,0.12)",e4t="rgba(255,107,107,0.06)",t4t="rgba(0,0,0,0.5)",r4t="#ff79c6",n4t="rgba(255,121,198,0.08)",i4t="#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)"},xBe={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)"},Byn="var(--volter-accent)",$yn="var(--volter-accent-muted)",qyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},E_e="var(--volter-danger)",zyn="var(--volter-warn)",Vyn="var(--volter-success)",Uyn="var(--volter-success-muted)",Jyn="var(--volter-danger-muted)",Wyn="var(--volter-warn-muted)",Hyn="var(--volter-danger-faint)",Gyn="var(--volter-scrim)",Kyn="var(--volter-dynamic)",Xyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},o4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},wBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...YTr,...t.density?.control},font:{...QTr,...t.density?.font},icon:{...ZTr,...t.density?.icon},chrome:{...o4t,...t.density?.chrome}}}const YTr={compact:20,default:24,comfortable:28},I5e={resting:1,active:2},ZTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},QTr={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"}},Yyn="var(--volter-font-sans)",Zyn="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)"},Qyn={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)"},Rht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},e0n={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)"}},t0n="var(--volter-focus-ring)",eCr=["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:Oht[1],strong:Oht[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:KTr,muted:XTr},semantic:{danger:G3t,dangerMuted:Z3t,dangerFaint:e4t,warning:K3t,warningMuted:Q3t,success:X3t,successMuted:Y3t,dynamic:r4t,dynamicMuted:n4t,instance:i4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:t4t},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}},tCr={...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:bBe,muted:SBe}}},rCr={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)"}},IRe={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:bBe,muted:SBe},semantic:{danger:G3t,dangerMuted:Z3t,dangerFaint:e4t,warning:K3t,warningMuted:Q3t,success:X3t,successMuted:Y3t,dynamic:r4t,dynamicMuted:n4t,instance:i4t},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}},nCr=(()=>{const{treatment:t,...n}=IRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...IRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:t4t}}})(),NRe={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:bBe,muted:SBe},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},iCr=(()=>{const{treatment:t,...n}=NRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...NRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),s4t={"graphite-dark":i$,"graphite-neutral":tCr,"midnight-high-contrast":rCr,"glass-dark":IRe,"glass-dark-lite":nCr,"liquid-glass":NRe,"liquid-glass-lite":iCr};function oCr(t){return typeof t=="string"&&Object.hasOwn(s4t,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 sCr(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 aCr(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 Fht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Mht(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 ORe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function cCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function lCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function uCr(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 fCr=.6,dCr=.5;function che(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/fCr).toFixed(3)))})`}function a4t(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 pCr(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 _Cr(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/dCr).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 mCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function hCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function gCr(t){return t?"17px":"var(--volter-radius-md)"}function yCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function vCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function bCr(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 SCr(t){return Uye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function c4t(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 l4t(t){if(!c4t(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 xCr(t){return Uye(t)?"var(--volter-content-primary)":c4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function wCr(t){return Uye(t)?"color-mix(in srgb, currentColor 30%, transparent)":l4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function TCr(t){return Uye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function CCr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function ECr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":bCr(t,.82)??"var(--volter-accent)"}function kCr(t){const n=t?.edgeSpecular??0;return n<=0?"none":a4t({...t,edgeSpecular:n*.4})}function ACr(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 u4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function f4t(t){return u4t(t?.textShadowOpacity??0)}function DCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:u4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??ORe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:f4t(t.treatment),frostBg:ORe(t.treatment)}}function PCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":NCr(t.color.surface.chrome,.9):t.color.surface.chrome}function ICr(t){return t.color.surface.panel}function NCr(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 jht(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 OCr(t){return t.color.boundary.area??t.color.boundary.default}function RCr(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 FCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function MCr(t){const n=DCr(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":aCr(t.treatment),"--volter-surface-sticky":Fht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Fht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Mht(t.treatment),"--volter-content-frost-filter":Mht(t.treatment),"--volter-content-frost-bg":ORe(t.treatment),"--volter-input-surface":cCr(s),"--volter-input-border":lCr(s),"--volter-input-shadow":uCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":a4t(t.treatment),"--volter-card-specular-sheen":pCr(t.treatment),"--volter-card-specular-shadow":_Cr(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":ACr(t.treatment),"--volter-island-surface":mCr(t),"--volter-island-backdrop-filter":hCr(t),"--volter-island-radius":gCr(s),"--volter-island-border-color":yCr(s),"--volter-island-shadow":vCr(s),"--volter-island-specular-ring":kCr(t.treatment),"--volter-selection-bg":SCr(t),"--volter-content-on-selection":xCr(t),"--volter-selection-border":wCr(t),"--volter-selection-indicator":TCr(t),"--volter-island-control-radius":CCr(s),"--volter-island-primary-bg":ECr(t),"--volter-content-text-shadow":f4t(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":PCr(t),"--volter-glass-regular-backdrop-filter":jht(t.treatment),"--volter-glass-regular-panel-bg":ICr(t),"--volter-glass-regular-panel-backdrop-filter":jht(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":OCr(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":FCr(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":RCr(t.color.surface.panel,t.color.content.primary),...l4t(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(wBe.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":sCr(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 RRe="volter-editor-theme";function jCr(t,n=i$){t.classList.add(RRe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(MCr(n)))t.style.setProperty(s,c)}const r0n={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},n0n={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},d4t=Ye.createContext(null);function LCr(){return Ye.useContext(d4t)}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)})}),TBe=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)})}),p4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),i0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),o0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",BCr={id:hC,title:"Editor"},wB=new Map;let lhe=null,cQ=hC;const FRe=new Set;function MRe(){for(const t of FRe)t()}function s0n(){return lhe??=[BCr,...[...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 $Cr(t){if(vee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),lhe=null,MRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),lhe=null,MRe())}}function uhe(){return cQ}function fhe(t){const n=vee(t)?t:hC;n!==cQ&&(cQ=n,MRe())}function CBe(t){return FRe.add(t),()=>FRe.delete(t)}function _4t(t){return cQ===hC?null:wB.get(cQ)?.glyphs[t]??null}const Lht={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)"},Bht={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(CBe,uhe,uhe);const k=_4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Bht[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:Lht[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(i0r,{...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:Lht[n],color:Bht[s],...m}})}function m4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?jTt:YTt,size:n,tone:s,...c?{style:c}:{}})}function a0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?NTt:fLe,size:n,tone:s})}function Eg(t,n){return{...n,iconName:t}}const Kk={action:{add:eCt,close:lLe,delete:RTt,search:OTt,refresh:nvr,undo:VOe,redo:Pmt,build:Z0r,export:rvr,select:Imt},transport:{play:M0r,pause:evr,restart:Pmt,stop:FTt,step:B0r},content:{project:qOe,folder:fee,file:VTt,source:dLe,scene:_Le,entity:aR,component:GB,camera:cye,light:sLe,image:iB,audio:uLe,data:MTt,code:aLe,stateMachine:BTt},status:{success:cLe,info:R$,warning:dee,error:zTt,visible:oLe,hidden:pLe,locked:Fme,unlocked:zOe},viewport:{zoomIn:x0r,zoomOut:b0r,pan:N0r,frame:y0r,projection:Eg("viewport-projection",E5e),projectionOrthographic:Eg("viewport-orthographic",E5e),camera:Eg("viewport-camera",Dmt),cameraView:Eg("viewport-camera-view",Dmt),cameraLocked:Eg("viewport-camera-locked",Fme),cameraUnlocked:Eg("viewport-camera-unlocked",zOe),gizmos:Eg("viewport-gizmos",L0r)},modeling:{extrude:Eg("mesh-extrude",$Tt),inset:Eg("mesh-inset",Y0r),bevel:Eg("mesh-bevel",ivr),loopCut:Eg("mesh-loop-cut",w0r),knife:Eg("mesh-knife",H0r),smooth:Eg("mesh-smooth",v0r),shrinkFatten:Eg("mesh-shrink-fatten",UTt),subdivide:Eg("mesh-subdivide",j0r)},tool:{extension:GB,select:Eg("tool-select-box",Imt),move:WTt,rotate:ITt,scale:Eg("tool-scale",C0r),transform:Eg("tool-transform",O0r),snap:F0r,frame:QTt,grid:E5e,profiler:XTt},panel:{outliner:Eg("outliner",rCt),properties:Eg("properties",HTt),"folder-open":qOe,"cubes-stacked":JTt,users:T0r,list:vZ,"rotate-left":VOe}};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=LCr();Ye.useEffect(()=>{if(!D)return;const we=pe.current;we&&(we.focus(),we.select())},[D]);const Ce=t===null,De=t??0,Pe=Ce?"—":Number.isFinite(De)?De.toFixed(d):0 .toFixed(d),be=we=>{if(m)return;se.current={startX:we.clientX,startVal:De,dragging:!1,gesture:!1,lastVal:De};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 qCr={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"},zCr={...qCr,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:{...zCr,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 VCr({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(m4t,{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 UCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function JCr(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 WCr(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 mO({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()},De=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=JCr(c,X,we)?c:UCr(c);pe(WCr(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,De(d)},onMouseLeave:()=>{A.current=!1,Ce()},onFocusCapture:()=>{F.current=!0,De(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 HCr({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},c0n=Go.typography.sans,l0n=Go.typography.mono;function u0n(t,n){t.onChange(n)}function f0n(t,n){(t.onChangeEnd??t.onChange)(n)}const d0n={display:"flex",alignItems:"center",gap:4},p0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},GCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},KCr=72;function _0n({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 m0n(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,$ht={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 XCr({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:$ht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:$ht,"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(dm,{"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:lLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function jRe({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,LRe=new Set;let h4t=0;function qht(){h4t+=1;for(const t of LRe)t()}function h0n(t,n){return A_e.set(t,n),qht(),()=>{A_e.get(t)===n&&(A_e.delete(t),qht())}}function EBe(t){return LRe.add(t),()=>LRe.delete(t)}function o$(){return h4t}function s2(t){return t?A_e.get(t)??null:null}const QL=new Map;function g0n(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 YCr(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 g4t=0;function y4t(){g4t+=1;for(const t of[...TB])t()}function ZCr(t,n){return xZ.set(t,n),y4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function QCr(t){xZ.has(t)&&y4t()}function eEr(t){return TB.add(t),()=>{TB.delete(t)}}function zht(){return g4t}function lQ(t){return xZ.get(t)}function v4t(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 b4t(t){dhe.add(t);for(const n of[...D_e])n();return()=>{dhe.delete(t)}}function S4t(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 kBe(t){if(YCr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let BRe=null;const ZY=new Map;let YO=[];function tEr(t){if(BRe=t,!t)return;const n=YO;YO=[];for(const s of n)x4t(t,s)}function x4t(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 rEr=0;function s$(t){const n=t.id??`notification-${++rEr}`,s={...t,id:n};return BRe?x4t(BRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>ABe(n))}function ABe(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 nEr(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 iEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function oEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function sEr(){try{const t={sessions:await iEr()},n=nEr(t.sessions,Xk.sessions,P_e),s=n.sessionId;n.latestAppeared&&(phe=!0),P_e=s;const c=s?await oEr(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=sEr().finally(()=>{RG=null,I_e&&(I_e=!1,uQ())}),RG)}function aEr(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 cEr(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 lEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));phe=Xk.liveEdgeMs-n<250,_he({...Xk,cursorMs:n})}const w4t={getSnapshot:()=>Xk,subscribe:aEr,select:cEr,seek:lEr,refresh:uQ};let T4t=null;const $Re=new Set,y0n={getSnapshot:()=>T4t,subscribe(t){return $Re.add(t),()=>$Re.delete(t)}};function v0n(t){T4t=t;for(const n of $Re)try{n()}catch{}}let ZO={phase:null,at:0,run:0},dN=ZO;const qRe=new Map;let C4t=null;function uEr(t){C4t=t,E4t(ZO)}function E4t(t){ZO=t;try{C4t?.(t)}catch{}}function fQ(){const t=[...qRe.values()].at(-1),n=t?{...t,run:dN.run}:dN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||E4t(n)}function b0n(t=Date.now()){return dN={phase:null,at:t,run:dN.run+1},fQ(),ZO.run}function S0n(t,n=Date.now()){dN={phase:t,at:n,run:dN.run},fQ()}function x0n(t=Date.now()){dN={phase:null,at:t,run:dN.run},fQ()}function DBe(t,n=Date.now()){const s=Symbol();return qRe.set(s,{phase:t.slice(0,160),at:n}),fQ(),()=>{qRe.delete(s)&&fQ()}}const fEr=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-D_qya3Ig.js"),__vite__mapDeps([255,1,2,3,4,20,21,143,128,144,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class PBe 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 dEr({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=(De,Pe)=>{if(se)return;const be=De instanceof Error?De:new Error(String(De));console.error(`[tools] ${J.current} crashed while rendering:`,be,Pe?.componentStack),A(be),$.current&&b4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=nLe.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:hBe,account:nBe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:DBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:w4t}:{play:Rye()},...s?{documentId:s,publishContext:Ce=>ZCr(s,Ce)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ye.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});G.render(s?Ye.createElement(pEr,{documentId:s},ue):ue)},[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 pEr({documentId:t,children:n}){return Ye.useEffect(()=>b4t(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,cN,cN),g=Ye.useSyncExternalStore(Fye,lN,lN),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(fEr,{})}):null,q.jsx(PBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(dEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function _Er({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Dye,cN,cN),Ye.useSyncExternalStore(Fye,lN,lN);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(PBe,{file:s,children:q.jsx(Zvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:hBe,account:nBe(),play:Rye(),node:S,nodeId:g,adapter:m})})})})}const mEr=Symbol("volter.inspection.mixed");function zRe(t){return t===mEr}function IBe(t){return t.readonlyReason??"This field is read-only."}function NBe(t){return"column"}function OBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const VRe="preview",Vht="transform",R5e="properties",k4t="stories",w0n="story-args",T0n="Story Args";function Uht(t){return`group:${t}`}const A4t=100,hEr=1e3,dQ=2e3,D4t=3e3,gEr=4e3,yEr=5e3,vEr={nullSubjectId:null};function P4t(t){return"sections"in t}const N_e=[];let I4t=0;const URe=new Set;function Jht(){I4t++;for(const t of URe)t()}function bEr(t){return URe.add(t),()=>{URe.delete(t)}}function Wht(){return I4t}function N4t(t){return N_e.push(t),Jht(),()=>{const n=N_e.indexOf(t);n>=0&&(N_e.splice(n,1),Jht())}}function Hht(t,n,s=vEr){return N_e.filter(c=>c.match(t,n,s))}function O4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const SEr=1e3;class xEr{_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>SEr){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 xEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Ght=1e3,Kht=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 SSr=(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)},xSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},akt=(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=xSr[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}))])}},ckt=(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)},lkt=(t,n,s,c)=>{s.type="boolean"},ukt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},fkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},dkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},pkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},_kt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},mkt=(t,n,s,c)=>{s.not={}},hkt=(t,n,s,c)=>{},gkt=(t,n,s,c)=>{},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},vkt=(t,n,s,c)=>{const d=t._zod.def,m=yLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},bkt=(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},Skt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},xkt=(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},wkt=(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)},Tkt=(t,n,s,c)=>{s.type="boolean"},Ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Ekt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},kkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Akt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Pkt=(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"]})},Ikt=(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)},CLe=(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},Nkt=(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},Okt=(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)},Rkt=(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)}},Fkt=(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"}]},Mkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},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.default=JSON.parse(JSON.stringify(d.defaultValue))},Lkt=(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)))},Bkt=(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},$kt=(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},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.readOnly=!0},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},ELe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Vkt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},oht={string:akt,number:ckt,boolean:lkt,bigint:ukt,symbol:fkt,null:dkt,undefined:pkt,void:_kt,never:mkt,any:hkt,unknown:gkt,date:ykt,enum:vkt,literal:bkt,nan:Skt,template_literal:xkt,file:wkt,success:Tkt,custom:Ckt,function:Ekt,transform:kkt,map:Akt,set:Dkt,array:Pkt,object:Ikt,union:CLe,intersection:Nkt,tuple:Okt,record:Rkt,nullable:Fkt,nonoptional:Mkt,default:jkt,prefault:Lkt,catch:Bkt,pipe:$kt,readonly:qkt,promise:zkt,optional:ELe,lazy:Vkt};function wSr(t,n){if("_idmap"in t){const c=t,d=zme({...n,processors:oht}),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:oht});return F_(t,s),Vme(s,t),Ume(s,t)}const Ukt=ui("ZodISODateTime",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function Jkt(t){return I2r(Ukt,t)}const Wkt=ui("ZodISODate",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function Hkt(t){return N2r(Wkt,t)}const Gkt=ui("ZodISOTime",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function Kkt(t){return O2r(Gkt,t)}const Xkt=ui("ZodISODuration",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function Ykt(t){return R2r(Xkt,t)}const Lgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Wkt,ZodISODateTime:Ukt,ZodISODuration:Xkt,ZodISOTime:Gkt,date:Hkt,datetime:Jkt,duration:Ykt,time:Kkt},Symbol.toStringTag,{value:"Module"})),Zkt=(t,n)=>{jCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>S1r(t,s)},flatten:{value:s=>b1r(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}}})},Bgn=ui("ZodError",Zkt),Fw=ui("ZodError",Zkt,{Parent:Error}),TSr=hye(Fw),CSr=gye(Fw),ESr=yye(Fw),kSr=vye(Fw),ASr=LCt(Fw),DSr=BCt(Fw),PSr=$Ct(Fw),ISr=qCt(Fw),NSr=zCt(Fw),OSr=VCt(Fw),RSr=UCt(Fw),FSr=JCt(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=SSr(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)=>TSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>ESr(t,s,c),t.parseAsync=async(s,c)=>CSr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>kSr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>ASr(t,s,c),t.decode=(s,c)=>DSr(t,s,c),t.encodeAsync=async(s,c)=>PSr(t,s,c),t.decodeAsync=async(s,c)=>ISr(t,s,c),t.safeEncode=(s,c)=>NSr(t,s,c),t.safeDecode=(s,c)=>OSr(t,s,c),t.safeEncodeAsync=async(s,c)=>RSr(t,s,c),t.safeDecodeAsync=async(s,c)=>FSr(t,s,c),t.refine=(s,c)=>t.check(BAt(s,c)),t.superRefine=s=>t.check($At(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Gme(t),t.exactOptional=()=>SAt(t),t.nullable=()=>Kme(t),t.nullish=()=>Gme(Kme(t)),t.nonoptional=s=>kAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>XLe(t,s),t.transform=s=>Xme(t,YLe(s)),t.default=s=>TAt(t,s),t.prefault=s=>EAt(t,s),t.catch=s=>PAt(t,s),t.pipe=s=>Xme(t,s),t.readonly=()=>OAt(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)),kLe=ui("_ZodString",(t,n)=>{Sye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>akt(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(eSr(...c)),t.includes=(...c)=>t.check(nSr(...c)),t.startsWith=(...c)=>t.check(iSr(...c)),t.endsWith=(...c)=>t.check(oSr(...c)),t.min=(...c)=>t.check(qme(...c)),t.max=(...c)=>t.check(okt(...c)),t.length=(...c)=>t.check(skt(...c)),t.nonempty=(...c)=>t.check(qme(1,...c)),t.lowercase=c=>t.check(tSr(c)),t.uppercase=c=>t.check(rSr(c)),t.trim=()=>t.check(cSr()),t.normalize=(...c)=>t.check(aSr(...c)),t.toLowerCase=()=>t.check(lSr()),t.toUpperCase=()=>t.check(uSr()),t.slugify=()=>t.check(fSr())}),ALe=ui("ZodString",(t,n)=>{Sye.init(t,n),kLe.init(t,n),t.email=s=>t.check(LEt(DLe,s)),t.url=s=>t.check(wLe(wye,s)),t.jwt=s=>t.check(nkt(ULe,s)),t.emoji=s=>t.check(VEt(PLe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.uuid=s=>t.check(BEt(aD,s)),t.uuidv4=s=>t.check($Et(aD,s)),t.uuidv6=s=>t.check(qEt(aD,s)),t.uuidv7=s=>t.check(zEt(aD,s)),t.nanoid=s=>t.check(UEt(ILe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.cuid=s=>t.check(JEt(NLe,s)),t.cuid2=s=>t.check(WEt(OLe,s)),t.ulid=s=>t.check(HEt(RLe,s)),t.base64=s=>t.check(ekt(qLe,s)),t.base64url=s=>t.check(tkt(zLe,s)),t.xid=s=>t.check(GEt(FLe,s)),t.ksuid=s=>t.check(KEt(MLe,s)),t.ipv4=s=>t.check(XEt(jLe,s)),t.ipv6=s=>t.check(YEt(LLe,s)),t.cidrv4=s=>t.check(ZEt(BLe,s)),t.cidrv6=s=>t.check(QEt($Le,s)),t.e164=s=>t.check(rkt(VLe,s)),t.datetime=s=>t.check(Jkt(s)),t.date=s=>t.check(Hkt(s)),t.time=s=>t.check(Kkt(s)),t.duration=s=>t.check(Ykt(s))});function bo(t){return D2r(ALe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),kLe.init(t,n)}),DLe=ui("ZodEmail",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function MSr(t){return LEt(DLe,t)}const Wme=ui("ZodGUID",(t,n)=>{hbr.init(t,n),j_.init(t,n)});function jSr(t){return tRe(Wme,t)}const aD=ui("ZodUUID",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function LSr(t){return BEt(aD,t)}function BSr(t){return $Et(aD,t)}function $Sr(t){return qEt(aD,t)}function qSr(t){return zEt(aD,t)}const wye=ui("ZodURL",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function zSr(t){return wLe(wye,t)}function VSr(t){return wLe(wye,{protocol:/^https?$/,hostname:uEt,...Jo(t)})}const PLe=ui("ZodEmoji",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function USr(t){return VEt(PLe,t)}const ILe=ui("ZodNanoID",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function JSr(t){return UEt(ILe,t)}const NLe=ui("ZodCUID",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function WSr(t){return JEt(NLe,t)}const OLe=ui("ZodCUID2",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return WEt(OLe,t)}const RLe=ui("ZodULID",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function GSr(t){return HEt(RLe,t)}const FLe=ui("ZodXID",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function KSr(t){return GEt(FLe,t)}const MLe=ui("ZodKSUID",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function XSr(t){return KEt(MLe,t)}const jLe=ui("ZodIPv4",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function YSr(t){return XEt(jLe,t)}const Qkt=ui("ZodMAC",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function ZSr(t){return P2r(Qkt,t)}const LLe=ui("ZodIPv6",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function QSr(t){return YEt(LLe,t)}const BLe=ui("ZodCIDRv4",(t,n)=>{Rbr.init(t,n),j_.init(t,n)});function exr(t){return ZEt(BLe,t)}const $Le=ui("ZodCIDRv6",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function txr(t){return QEt($Le,t)}const qLe=ui("ZodBase64",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function rxr(t){return ekt(qLe,t)}const zLe=ui("ZodBase64URL",(t,n)=>{Lbr.init(t,n),j_.init(t,n)});function nxr(t){return tkt(zLe,t)}const VLe=ui("ZodE164",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function ixr(t){return rkt(VLe,t)}const ULe=ui("ZodJWT",(t,n)=>{qbr.init(t,n),j_.init(t,n)});function oxr(t){return nkt(ULe,t)}const hee=ui("ZodCustomStringFormat",(t,n)=>{zbr.init(t,n),j_.init(t,n)});function sxr(t,n,s={}){return xye(hee,t,n,s)}function axr(t){return xye(hee,"hostname",lEt,t)}function cxr(t){return xye(hee,"hex",CEt,t)}function lxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=K1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return xye(hee,c,d,n)}const JLe=ui("ZodNumber",(t,n)=>{PEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ckt(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(XI(c,d)),t.max=(c,d)=>t.check(XI(c,d)),t.int=c=>t.check(nRe(c)),t.safe=c=>t.check(nRe(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(XI(0,c)),t.multipleOf=(c,d)=>t.check(rRe(c,d)),t.step=(c,d)=>t.check(rRe(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 F2r(JLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Vbr.init(t,n),JLe.init(t,n)});function nRe(t){return M2r(j$,t)}function uxr(t){return j2r(j$,t)}function fxr(t){return L2r(j$,t)}function dxr(t){return B2r(j$,t)}function pxr(t){return $2r(j$,t)}const WLe=ui("ZodBoolean",(t,n)=>{IEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>lkt(t,s,c)});function _y(t){return q2r(WLe,t)}const HLe=ui("ZodBigInt",(t,n)=>{NEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ukt(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(XI(c,d)),t.max=(c,d)=>t.check(XI(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(XI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(rRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function _xr(t){return z2r(HLe,t)}const GLe=ui("ZodBigIntFormat",(t,n)=>{Ubr.init(t,n),HLe.init(t,n)});function mxr(t){return V2r(GLe,t)}function hxr(t){return U2r(GLe,t)}const eAt=ui("ZodSymbol",(t,n)=>{Jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>fkt(t,s)});function gxr(t){return J2r(eAt,t)}const tAt=ui("ZodUndefined",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s)});function yxr(t){return W2r(tAt,t)}const rAt=ui("ZodNull",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s,c)});function nAt(t){return H2r(rAt,t)}const iAt=ui("ZodAny",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt()});function vxr(){return G2r(iAt)}const oAt=ui("ZodUnknown",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt()});function t$(){return K2r(oAt)}const sAt=ui("ZodNever",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s,c)});function KLe(t){return X2r(sAt,t)}const aAt=ui("ZodVoid",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt(t,s)});function bxr(t){return Y2r(aAt,t)}const cAt=ui("ZodDate",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ykt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(XI(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 Sxr(t){return Z2r(cAt,t)}const lAt=ui("ZodArray",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(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(okt(s,c)),t.length=(s,c)=>t.check(skt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return dSr(lAt,t,n)}function xxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const Tye=ui("ZodObject",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(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:KLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>DCt(t,s),t.safeExtend=s=>PCt(t,s),t.merge=s=>ICt(t,s),t.pick=s=>kCt(t,s),t.omit=s=>ACt(t,s),t.partial=(...s)=>NCt(ZLe,t,s[0]),t.required=(...s)=>OCt(QLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new Tye(s)}function wxr(t,n){return new Tye({type:"object",shape:t,catchall:KLe(),...Jo(n)})}function Txr(t,n){return new Tye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Cye=ui("ZodUnion",(t,n)=>{xLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function AR(t,n){return new Cye({type:"union",options:t,...Jo(n)})}const uAt=ui("ZodXor",(t,n)=>{Cye.init(t,n),r2r.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function Cxr(t,n){return new uAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const fAt=ui("ZodDiscriminatedUnion",(t,n)=>{Cye.init(t,n),n2r.init(t,n)});function dAt(t,n,s){return new fAt({type:"union",options:n,discriminator:t,...Jo(s)})}const pAt=ui("ZodIntersection",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d)});function XLe(t,n){return new pAt({type:"intersection",left:t,right:n})}const _At=ui("ZodTuple",(t,n)=>{FEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(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 _At({type:"tuple",items:t,rest:m,...Jo(d)})}const Eye=ui("ZodRecord",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(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 Exr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Eye({type:"record",keyType:c,valueType:n,...Jo(s)})}function kxr(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const mAt=ui("ZodMap",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(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(TLe(...s)),t.size=(...s)=>t.check(ikt(...s))});function Axr(t,n,s){return new mAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const hAt=ui("ZodSet",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s),t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(TLe(...s)),t.size=(...s)=>t.check(ikt(...s))});function Dxr(t,n){return new hAt({type:"set",valueType:t,...Jo(n)})}const rQ=ui("ZodEnum",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>vkt(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 Pxr(t,n){return new rQ({type:"enum",entries:t,...Jo(n)})}const gAt=ui("ZodLiteral",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt(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 gAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const yAt=ui("ZodFile",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s,c),t.min=(s,c)=>t.check(tQ(s,c)),t.max=(s,c)=>t.check(TLe(s,c)),t.mime=(s,c)=>t.check(sSr(Array.isArray(s)?s:[s],c))});function Ixr(t){return pSr(yAt,t)}const vAt=ui("ZodTransform",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe(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 YLe(t){return new vAt({type:"transform",transform:t})}const ZLe=ui("ZodOptional",(t,n)=>{MEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new ZLe({type:"optional",innerType:t})}const bAt=ui("ZodExactOptional",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function SAt(t){return new bAt({type:"optional",innerType:t})}const xAt=ui("ZodNullable",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Kme(t){return new xAt({type:"nullable",innerType:t})}function Nxr(t){return Gme(Kme(t))}const wAt=ui("ZodDefault",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function TAt(t,n){return new wAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const CAt=ui("ZodPrefault",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function EAt(t,n){return new CAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const QLe=ui("ZodNonOptional",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function kAt(t,n){return new QLe({type:"nonoptional",innerType:t,...Jo(n)})}const AAt=ui("ZodSuccess",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Oxr(t){return new AAt({type:"success",innerType:t})}const DAt=ui("ZodCatch",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Bkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function PAt(t,n){return new DAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const IAt=ui("ZodNaN",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s)});function Rxr(t){return Q2r(IAt,t)}const eBe=ui("ZodPipe",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.in=n.in,t.out=n.out});function Xme(t,n){return new eBe({type:"pipe",in:t,out:n})}const tBe=ui("ZodCodec",(t,n)=>{eBe.init(t,n),jEt.init(t,n)});function Fxr(t,n,s){return new tBe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const NAt=ui("ZodReadonly",(t,n)=>{S2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>qkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function OAt(t){return new NAt({type:"readonly",innerType:t})}const RAt=ui("ZodTemplateLiteral",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(t,s,c)});function Mxr(t,n){return new RAt({type:"template_literal",parts:t,...Jo(n)})}const FAt=ui("ZodLazy",(t,n)=>{C2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Vkt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function MAt(t){return new FAt({type:"lazy",getter:t})}const jAt=ui("ZodPromise",(t,n)=>{T2r.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 jxr(t){return new jAt({type:"promise",innerType:t})}const LAt=ui("ZodFunction",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s)});function sht(t){return new LAt({type:"function",input:Array.isArray(t?.input)?Hme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const kye=ui("ZodCustom",(t,n)=>{E2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s)});function Lxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function YI(t,n){return _Sr(kye,t??(()=>!0),n)}function BAt(t,n={}){return mSr(kye,t,n)}function $At(t){return hSr(t)}const Bxr=ySr,$xr=vSr;function qxr(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 zxr=(...t)=>bSr({Codec:tBe,Boolean:WLe,String:ALe},...t);function Vxr(t){const n=MAt(()=>AR([bo(t),fu(),_y(),nAt(),Gd(n),wD(bo(),n)]));return n}function qAt(t,n){return Xme(YLe(t),n)}const $gn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:iAt,ZodArray:lAt,ZodBase64:qLe,ZodBase64URL:zLe,ZodBigInt:HLe,ZodBigIntFormat:GLe,ZodBoolean:WLe,ZodCIDRv4:BLe,ZodCIDRv6:$Le,ZodCUID:NLe,ZodCUID2:OLe,ZodCatch:DAt,ZodCodec:tBe,ZodCustom:kye,ZodCustomStringFormat:hee,ZodDate:cAt,ZodDefault:wAt,ZodDiscriminatedUnion:fAt,ZodE164:VLe,ZodEmail:DLe,ZodEmoji:PLe,ZodEnum:rQ,ZodExactOptional:bAt,ZodFile:yAt,ZodFunction:LAt,ZodGUID:Wme,ZodIPv4:jLe,ZodIPv6:LLe,ZodIntersection:pAt,ZodJWT:ULe,ZodKSUID:MLe,ZodLazy:FAt,ZodLiteral:gAt,ZodMAC:Qkt,ZodMap:mAt,ZodNaN:IAt,ZodNanoID:ILe,ZodNever:sAt,ZodNonOptional:QLe,ZodNull:rAt,ZodNullable:xAt,ZodNumber:JLe,ZodNumberFormat:j$,ZodObject:Tye,ZodOptional:ZLe,ZodPipe:eBe,ZodPrefault:CAt,ZodPromise:jAt,ZodReadonly:NAt,ZodRecord:Eye,ZodSet:hAt,ZodString:ALe,ZodStringFormat:j_,ZodSuccess:AAt,ZodSymbol:eAt,ZodTemplateLiteral:RAt,ZodTransform:vAt,ZodTuple:_At,ZodType:Lu,ZodULID:RLe,ZodURL:wye,ZodUUID:aD,ZodUndefined:tAt,ZodUnion:Cye,ZodUnknown:oAt,ZodVoid:aAt,ZodXID:FLe,ZodXor:uAt,_ZodString:kLe,_default:TAt,_function:sht,any:vxr,array:Gd,base64:rxr,base64url:nxr,bigint:_xr,boolean:_y,catch:PAt,check:Lxr,cidrv4:exr,cidrv6:txr,codec:Fxr,cuid:WSr,cuid2:HSr,custom:YI,date:Sxr,describe:Bxr,discriminatedUnion:dAt,e164:ixr,email:MSr,emoji:USr,enum:ed,exactOptional:SAt,file:Ixr,float32:uxr,float64:fxr,function:sht,guid:jSr,hash:lxr,hex:cxr,hostname:axr,httpUrl:VSr,instanceof:qxr,int:nRe,int32:dxr,int64:mxr,intersection:XLe,ipv4:YSr,ipv6:QSr,json:Vxr,jwt:oxr,keyof:xxr,ksuid:XSr,lazy:MAt,literal:Pg,looseObject:Txr,looseRecord:kxr,mac:ZSr,map:Axr,meta:$xr,nan:Rxr,nanoid:JSr,nativeEnum:Pxr,never:KLe,nonoptional:kAt,null:nAt,nullable:Kme,nullish:Nxr,number:fu,object:Pa,optional:Gme,partialRecord:Exr,pipe:Xme,prefault:EAt,preprocess:qAt,promise:jxr,readonly:OAt,record:wD,refine:BAt,set:Dxr,strictObject:wxr,string:bo,stringFormat:sxr,stringbool:zxr,success:Oxr,superRefine:$At,symbol:gxr,templateLiteral:Mxr,transform:YLe,tuple:Hme,uint32:pxr,uint64:hxr,ulid:GSr,undefined:yxr,union:AR,unknown:t$,url:zSr,uuid:LSr,uuidv4:BSr,uuidv6:$Sr,uuidv7:qSr,void:bxr,xid:KSr,xor:Cxr},Symbol.toStringTag,{value:"Module"})),aht={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 qgn(t){$S({customError:t})}function zgn(){return $S().customError}var cht;cht||(cht={});const lht=ed(["mock","live"]),Uxr=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()}),Jxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Wxr=Pa({overageEnabled:_y(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:_y(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Hxr=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()}),Gxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Kxr=Pa({name:bo().min(1),verified:_y(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Xxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Kxr).max(50)}),Yxr=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 Zxr=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()}))}),Qxr=dAt("authenticated",[Pa({authenticated:Pg(!1),backend:lht}),Pa({authenticated:Pg(!0),backend:lht,user:Gxr,organizations:Gd(Xxr).max(100).optional(),plan:Uxr,credits:Jxr,spendPolicy:Wxr,alerts:Gd(Hxr).max(100).optional(),entitlements:Pa({generation:_y(),dailyJobs:fu().int().positive().optional()})})]),ewr=ed(["auto","mock","managed","byok"]),zAt=ed(["fal","tripo","worldlabs","openrouter"]),twr=Pa({enabled:_y(),provider:Pg("openrouter"),model:bo().trim().min(1).max(256)}),rwr=ed(["environment","system","session","none"]),nwr=Pa({provider:zAt,label:bo().min(1),environmentVariable:bo().min(1),configured:_y(),source:rwr,editable:_y(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),iwr=Pa({provider:zAt,ok:Pg(!0),testedAt:bo().datetime()});function owr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const Aye=XLe(Qxr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Pg(!0),managed:_y(),byok:_y(),byokProviders:Gd(bo().min(1))}),preferredRoute:ewr,providerCredentials:Gd(nwr),codingInference:twr}));function swr(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(swr(n,s))}function CN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return CN(t,n),await t.json()}const uht="volter.collaboration.participant.v1",awr="volter.collaboration.remote-share.v1",iRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function cwr(){if(iRe?.participantId)return iRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(uht);if(n)return n;globalThis.localStorage?.setItem(uht,t)}catch{}return t}const VAt=cwr(),L$=(()=>{try{return globalThis.localStorage?.getItem(awr)==="1"}catch{return!1}})(),lwr=iRe?.displayName||"Local editor",uwr=Symbol.for("volter.collaboration.revision"),oRe=globalThis[uwr]??={value:0};function UAt(t){Number.isInteger(t)&&t>=oRe.value&&(oRe.value=t)}function Dw(){return{participantId:VAt,expectedRevision:oRe.value}}const fwr={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$=fwr,JAt=0,sRe=null;const aRe=new Set;function lR(t,n=null){if(!(sRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,sRe=n,JAt++;for(const s of aRe)s()}}async function WAt(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 WAt(c,`${n} ${t} failed`);return lR(d),d}function rBe(){return r$}function nBe(){return owr(r$)}function cN(){return JAt}function Tpe(){return sRe}function Dye(t){return aRe.add(t),()=>aRe.delete(t)}async function fht(){try{const t=await WAt(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 dwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),pwr=t=>NC("/__editor/account/twin-session","POST",{email:t}),_wr=()=>NC("/__editor/account/session","DELETE"),mwr=t=>NC("/__editor/account/spend-policy","PUT",t),hwr=()=>NC("/__editor/account/alerts/read","POST"),gwr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),ywr=t=>NC("/__editor/account/coding-inference","PUT",t);async function vwr(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 bwr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),Swr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function xwr(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 iwr.parse(s)}const dht=t=>NC("/__editor/account/plan","PUT",{action:t});async function HAt(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 wwr=t=>HAt("/__editor/account/checkout",{plan:t}),Twr=t=>HAt("/__editor/account/credits",{packId:t});async function Cwr(){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 Yxr.array().parse(n.entries??[])}async function Ewr(){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 Zxr.parse(n)}async function kwr(){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 Awr(){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 Dwr(){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 Pwr(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 Iwr(){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 Nwr(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 Owr(){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))):fht().catch(()=>{});const n=window.setInterval(()=>void fht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function GAt(t){return t?XAt(t)?null:t:null}function Rwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function KAt(t){return t&&XAt(t)?t:null}function XAt(t){return t.keyedBy==="display"}const Vgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:KAt,nodeKeyedPhysics:GAt,physicsOwnerOf:Rwr},Symbol.toStringTag,{value:"Module"})),Fwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},iBe=Object.keys(Fwr);function Mwr(){const t={};for(const n of iBe)t[n]=0;return t}const jwr={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},oBe=Object.keys(jwr);function Lwr(t){const n={};for(const s of oBe)n[s]=t[s]!==void 0;return n}const Ugn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:oBe,WRITE_ANCHOR_KINDS:iBe,emptyWriteAnchorKindCounts:Mwr,measureAuthoringProviders:Lwr},Symbol.toStringTag,{value:"Module"})),Bwr=["claim","shape","operation","effect","round-trip"],Yme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function YAt(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}:YAt(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 ZAt{#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 $wr(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($wr({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 Jgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:Bwr,SeamEvidenceLedger:ZAt,defineSeamShape:Ip,gradeSeamCarrier:Zme,gradeSeamEvidence:nQ,inspectSeamShape:vB,seamStageAtLeast:YAt},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"}}),cRe=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"}}),QAt=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),e3t=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"}}),t3t=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"}}),r3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),n3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),i3t=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"}}),o3t=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"}}),s3t=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"}}),a3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),c3t=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"}}),l3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),u3t=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"}}),f3t=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"}}),d3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),p3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),_3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),m3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),lRe={selection:QAt,transforms:e3t,inspector:t3t,assetSubject:r3t,related:n3t,instances:i3t,structure:o3t,persistence:s3t,pickable:a3t,rects:u3t,boxEdit:f3t,text:d3t,colorSample:p3t,stories:c3t,truth:_3t,spatialHandles:m3t,assetDrop:l3t},Wgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:l3t,ASSET_SUBJECT_PROVIDER_SHAPE:r3t,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:lRe,BOX_EDIT_PROVIDER_SHAPE:f3t,COLOR_SAMPLE_PROVIDER_SHAPE:p3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:i3t,HIERARCHY_PROVIDER_SHAPE:cRe,INSPECTOR_PROVIDER_SHAPE:t3t,PERSISTENCE_PROVIDER_SHAPE:s3t,PICK_PROVIDER_SHAPE:a3t,RECT_PROVIDER_SHAPE:u3t,RELATED_SUBJECTS_PROVIDER_SHAPE:n3t,SELECTION_PROVIDER_SHAPE:QAt,SPATIAL_HANDLES_PROVIDER_SHAPE:m3t,STORIES_PROVIDER_SHAPE:c3t,STRUCTURE_PROVIDER_SHAPE:o3t,TEXT_PROVIDER_SHAPE:d3t,TRANSFORM_PROVIDER_SHAPE:e3t,TRUTH_PROVIDER_SHAPE:_3t},Symbol.toStringTag,{value:"Module"})),uRe=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"}}),h3t=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"}}),g3t=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"}}),y3t=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"}}),v3t=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"}}),b3t=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"}}),S3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),x3t=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"}}),w3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),T3t={networking:y3t,navigation:v3t,audio:b3t,camera:S3t,debug:x3t,renderDebug:w3t},Hgn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:b3t,CAMERA_ADAPTER_SHAPE:S3t,DEBUG_ADAPTER_SHAPE:x3t,NAVIGATION_ADAPTER_SHAPE:v3t,NETWORKING_ADAPTER_SHAPE:y3t,PHYSICS_2D_ADAPTER_SHAPE:g3t,PHYSICS_ADAPTER_SHAPE:h3t,RENDER_DEBUG_ADAPTER_SHAPE:w3t,SYSTEM_ADAPTERS_SHAPE:uRe,SYSTEM_PROVIDER_SHAPES:T3t},Symbol.toStringTag,{value:"Module"})),sBe=new ZAt;function qwr(t){sBe.record(t)}const pht=new WeakMap;let zwr=1;function C3t(t){const n=pht.get(t);if(n)return n;const s=`system-${zwr++}`;return pht.set(t,s),s}function Vwr(t){const n=t.epoch??C3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?KAt(t.adapter)?g3t:h3t:T3t[t.slot],m=[...vB({prefix:"system",value:c,shape:uRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...sBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Zme({seam:s,subject:t.subject,epoch:n,required:uRe[t.slot].required,receipts:m,shape:d})}let qS={},iQ=null,aBe=null;const Qme=new Set,ehe=new Set,fRe=new Set;let cBe=0;function dRe(){for(const t of fRe)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]))){cBe++;for(const c of ehe)c()}}const LS=new Map;let x_e=null,E3t=0;const pRe=new Set,lBe="";function k3t(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=Vwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function ZI(){return x_e!==null&&LS.has(x_e)?x_e:LS.keys().next().value??null}function nhe(){E3t++;for(const t of pRe)t()}function Uwr(t){const n=ZI();if(x_e=t,n!==ZI()){nhe(),cBe++;for(const s of Qme)s();for(const s of ehe)s()}}function Ggn(){return ZI()}function Jwr(t){return pRe.add(t),()=>pRe.delete(t)}function Kgn(){return E3t}function Pye(){const t=ZI();return(t===null?void 0:LS.get(t))??qS}function Wwr(t,n=lBe){const s=ZI(),c=Iye(),d=Nye(),m=Oye();if(t){k3t(t,n),LS.set(n,t),qS=t,the(c),rhe(d,m),dRe(),s!==ZI()&&nhe();return}LS.delete(n),qS=LS.values().next().value??{},the(c),rhe(d,m),dRe(),s!==ZI()&&nhe()}function Hwr(){for(const t of[...LS.keys()])Wwr(null,t);Uwr(null)}function Xgn(t,n=lBe){const s=Iye(),c=Nye(),d=Oye(),m=LS.get(n);k3t(t,n),LS.set(n,t),qS===m&&(qS=t),the(s),rhe(c,d),dRe(),ZI()===n&&nhe()}function Ygn(){return qS}function Gwr(t){return fRe.add(t),()=>fRe.delete(t)}function Kwr(){return[...LS.keys()]}function _ht(t){const n=t.filter(d=>d!==lBe),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 mht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Xwr(t){const n=Kwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new mht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${_ht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new mht(`${n.length} instances are live (${_ht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function Zgn(){return GAt(qS.physics)}function Ywr(){return qS.camera??null}function Iye(){return qS.networking??aBe??null}function Zwr(){return Pye().networking??aBe??null}function Qwr(t){return Qme.add(t),()=>Qme.delete(t)}function Qgn(t){const n=Iye();aBe=t,the(n)}function eyn(){return qS.debug??null}function tyn(t){const n=Nye(),s=Oye();iQ=t,rhe(n,s)}function Nye(){return qS.audio??iQ}function eTr(){return Pye().audio??iQ}function tTr(t){return ehe.add(t),()=>ehe.delete(t)}function rTr(){return cBe}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 nTr(){return qS.renderDebug??null}function ryn(){return Pye().renderDebug??null}let A3t=null;const _Re=new Set;function nyn(t){A3t=t;for(const n of _Re)n()}function Rye(){return A3t?.()??null}function Fye(t){_Re.add(t);const n=Jwr(t);return()=>{_Re.delete(t),n()}}function lN(){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 xO=[],iTr=0,D3t=0;const mRe=new Set;function hht(){D3t++;for(const t of mRe)t()}function P3t(t){return mRe.add(t),()=>{mRe.delete(t)}}function ght(){return D3t}function Z4(t){if(xO.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:iTr++};return xO=[...xO,n],hht(),()=>{xO.includes(n)&&(xO=xO.filter(s=>s!==n),hht())}}function hRe(t){const n=s=>[...xO].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,I3t=0;const gRe=new Set;function yht(){I3t++;for(const t of gRe)t()}function N3t(t){return gRe.add(t),()=>gRe.delete(t)}function yRe(){return I3t}function uBe(){return w_e}function oTr(t){const n=Symbol(t.documentId);return w_e={...t,token:n},yht(),()=>{w_e?.token===n&&(w_e=null,yht())}}function sTr(){Ye.useSyncExternalStore(N3t,yRe);const t=uBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const aTr=Mye();function cTr(){aTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:sTr}))})}cTr();let bB=null,O3t=0;const vRe=new Set;function vht(){O3t+=1;for(const t of vRe)t()}function lTr(t){return vRe.add(t),()=>{vRe.delete(t)}}function bht(){return O3t}function uTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},vht(),()=>{bB?.token===s&&(bB=null,vht())}}function bRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const uN=new Map,SRe=new Map;function R3t(){typeof window>"u"||window.parent===window||uN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...uN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&R3t()});let Nc=null,fBe=null;function dBe(){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 F3t(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 fTr(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 dTr(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=fTr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=pTr({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:fBe}}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 Sht(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 pTr(t){return[Cpe("workspace-sync",t.workspaceSyncMs),Cpe("reveal-schedule",t.revealScheduleMs),Sht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),Sht("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 iyn(t,n=Date.now()){const s=(SRe.get(t)??0)+1;SRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:dTr(d,n)};return Nc=null,uN.set(t,m),wht(),xht(),m}return uN.set(t,c),wht(),xht(),c}let xRe=new Set;const wRe=new Set;function xht(){R3t();for(const t of wRe)t()}function _Tr(t){return wRe.add(t),()=>wRe.delete(t)}function wht(){uN.size!==0&&M3t()}function M3t(){const t=xRe;xRe=new Set;for(const n of t)n()}let Tht=!1;function mTr(){Tht||typeof document>"u"||(Tht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&M3t()}))}function jye(){return uN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(mTr(),new Promise(t=>xRe.add(t)))}function hTr(){return[...uN.values()]}function gTr(t){dBe()&&(Nc=F3t(t,Date.now(),{}))}function oyn(t,n={}){if(!dBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=F3t(t,s,n),Nc.boardBuildStartedAtMs=s}function syn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function ayn(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 cyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function lyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function uyn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function fyn(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 dyn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function pyn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function _yn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function myn(t){Nc&&Nc.stories.push(t)}function hyn(){return Nc?.documentId??null}function yTr(t){dBe()&&(fBe=t)}function vTr(){uN.clear(),SRe.clear(),Nc=null,fBe=null}const bTr=["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 Cht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let j3t=0;const TRe=new Set,A5e=new Set,pBe=new Map,XO=new Map;function wC(){j3t++;for(const t of TRe)t()}function o2(t){return TRe.add(t),()=>{TRe.delete(t)}}function K1(){return j3t}function l0(){return hp}function Pp(){return i2}function CRe(){return oQ}function STr(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&&gTr(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 xTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&EN(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(xTr(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&&Cht(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&&Cht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(sQ(t),wC()),!0):!1}function L3t(){uR=null}function wTr(t){if(X0(t)){uR=null;return}uR=t}function EN(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),pBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{A5e.delete(t)}}function B3t(){if(hp.length===0&&i2===null)return;const t=hp;sQ(null),hp=[],oQ=null,zk=null,pBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function TTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function gyn(t){XO.has(t)&&wC()}async function CTr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=pBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function ETr(){return i2?CTr(i2):Promise.resolve(null)}function yyn(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 $3t(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 _Be(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?_Be(i2):null}const kTr={adapter:null,nodeId:null};function ATr(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 mBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return oTr({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 TTr(t,()=>S.current?.()??kTr)},[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=ATr(k);return Ye.useEffect(()=>{if(n)return uTr(t,()=>A.current)},[n,t,F]),null}function DTr({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(mBe,{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 PTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:DTr,AssetEditorSubject:mBe},Symbol.toStringTag,{value:"Module"})),T_e=new Map,ERe=new Set;function Eht(){for(const t of ERe)t()}function vyn(t){const n=Object.entries(t);for(const[s,c]of n)T_e.set(s,c);return Eht(),()=>{for(const[s,c]of n)T_e.get(s)===c&&T_e.delete(s);Eht()}}function ITr(t){return T_e.get(t)??null}function NTr(t){return ERe.add(t),()=>{ERe.delete(t)}}function OTr(t){return q.jsx(mBe,{...t})}const kht=new Map;function RTr(t){const n=kht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>ITr(t),[]),m=Ye.useSyncExternalStore(NTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,kht.set(t,s),s}const hBe=new Proxy(Object.freeze({AssetDocument:OTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):RTr(n)}}),Aht=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)"}}),FTr=["classic","glass"],MTr=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 jTr(){return ihe??=[...MTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ihe}function LTr(t){return ohe.add(t),()=>ohe.delete(t)}function BTr(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"&&(FTr.includes(t)||SB.has(t))}function $Tr(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??Aht.shape,elevation:d?.elevation??Aht.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 qTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},zTr={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 q3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Epe(t),alignItems:n?qTr[n]:void 0,justifyContent:s?zTr[s]:void 0,padding:Epe(c),paddingInline:Epe(d),paddingBlock:Epe(m),...g}}function gee(t,n){return n?`${t} ${n}`:t}function z3t({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-stack",t),style:q3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-inline",t),style:q3t(n)})}function byn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:gee("volter-spacer",t)})}function VTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:gee("volter-divider",n)})}function UTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:gee("volter-actions",n),gap:2,align:"center",children:t})}function V3t(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:V3t("volter-text",g)})});function Syn({className:t,...n}){return q.jsx("kbd",{...n,className:V3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function kRe({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 ARe({titleId:t,title:n,description:s}){return q.jsxs(z3t,{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 U3t({className:t,...n}){return q.jsx(z3t,{...n,className:B$("volter-dialog-body",t)})}function DRe({children:t,className:n,...s}){return q.jsx(UTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function xyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function wyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function Tyn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function Cyn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function gBe(t,n){return n?`${t} ${n}`:t}function JTr({className:t,...n}){return q.jsx("div",{...n,className:gBe("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:gBe("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 Eyn({className:t,...n}){return q.jsx("label",{...n,className:gBe("volter-field-label",t)})}const kyn=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 WTr({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 HTr({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 Ayn({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 Dyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Pyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function Dht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function Iyn({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 J3t(t,n){return n?`${t} ${n}`:t}const Nyn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:J3t("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()}})}),Oyn=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:J3t("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 Pht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-toolbar-group",t)})}function Iht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:yee("volter-toolbar-divider",t.className)})}function Ryn({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 Fyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-split-button",t)})}function W3t(t,n){return n?`${t} ${n}`:t}const Myn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:W3t("volter-tree",s)})}),jyn=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:W3t("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 H3t(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 PRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function GTr(t){PRe(t)[0]?.focus()}function Nht(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 fN=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&&PRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!Nht(A.current,J)&&!Nht(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=PRe(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 yBe=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 vBe({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 De=t.current;if(!De||!F)return;const Pe=De.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?H3t({...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 De=t.current;if(!De||!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(De),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,GTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(she,{children:q.jsx(fN,{...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 Lyn({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(vBe,{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})}),dm=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"},Oht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},KTr="#579EFF",XTr="rgba(87,158,255,0.15)",D5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},bBe="#d8dee9",SBe="rgba(216,222,233,0.18)",G3t="#FF6B6B",K3t="#e0a030",X3t="#4caf50",Y3t="rgba(76,175,80,0.15)",Z3t="rgba(255,107,107,0.15)",Q3t="rgba(224,160,48,0.12)",e4t="rgba(255,107,107,0.06)",t4t="rgba(0,0,0,0.5)",r4t="#ff79c6",n4t="rgba(255,121,198,0.08)",i4t="#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)"},xBe={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)"},Byn="var(--volter-accent)",$yn="var(--volter-accent-muted)",qyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},E_e="var(--volter-danger)",zyn="var(--volter-warn)",Vyn="var(--volter-success)",Uyn="var(--volter-success-muted)",Jyn="var(--volter-danger-muted)",Wyn="var(--volter-warn-muted)",Hyn="var(--volter-danger-faint)",Gyn="var(--volter-scrim)",Kyn="var(--volter-dynamic)",Xyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},o4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},wBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...YTr,...t.density?.control},font:{...QTr,...t.density?.font},icon:{...ZTr,...t.density?.icon},chrome:{...o4t,...t.density?.chrome}}}const YTr={compact:20,default:24,comfortable:28},I5e={resting:1,active:2},ZTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},QTr={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"}},Yyn="var(--volter-font-sans)",Zyn="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)"},Qyn={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)"},Rht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},e0n={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)"}},t0n="var(--volter-focus-ring)",eCr=["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:Oht[1],strong:Oht[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:KTr,muted:XTr},semantic:{danger:G3t,dangerMuted:Z3t,dangerFaint:e4t,warning:K3t,warningMuted:Q3t,success:X3t,successMuted:Y3t,dynamic:r4t,dynamicMuted:n4t,instance:i4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:t4t},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}},tCr={...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:bBe,muted:SBe}}},rCr={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)"}},IRe={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:bBe,muted:SBe},semantic:{danger:G3t,dangerMuted:Z3t,dangerFaint:e4t,warning:K3t,warningMuted:Q3t,success:X3t,successMuted:Y3t,dynamic:r4t,dynamicMuted:n4t,instance:i4t},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}},nCr=(()=>{const{treatment:t,...n}=IRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...IRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:t4t}}})(),NRe={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:bBe,muted:SBe},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},iCr=(()=>{const{treatment:t,...n}=NRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...NRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),s4t={"graphite-dark":i$,"graphite-neutral":tCr,"midnight-high-contrast":rCr,"glass-dark":IRe,"glass-dark-lite":nCr,"liquid-glass":NRe,"liquid-glass-lite":iCr};function oCr(t){return typeof t=="string"&&Object.hasOwn(s4t,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 sCr(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 aCr(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 Fht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Mht(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 ORe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function cCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function lCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function uCr(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 fCr=.6,dCr=.5;function che(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/fCr).toFixed(3)))})`}function a4t(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 pCr(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 _Cr(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/dCr).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 mCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function hCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function gCr(t){return t?"17px":"var(--volter-radius-md)"}function yCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function vCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function bCr(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 SCr(t){return Uye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function c4t(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 l4t(t){if(!c4t(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 xCr(t){return Uye(t)?"var(--volter-content-primary)":c4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function wCr(t){return Uye(t)?"color-mix(in srgb, currentColor 30%, transparent)":l4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function TCr(t){return Uye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function CCr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function ECr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":bCr(t,.82)??"var(--volter-accent)"}function kCr(t){const n=t?.edgeSpecular??0;return n<=0?"none":a4t({...t,edgeSpecular:n*.4})}function ACr(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 u4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function f4t(t){return u4t(t?.textShadowOpacity??0)}function DCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:u4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??ORe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:f4t(t.treatment),frostBg:ORe(t.treatment)}}function PCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":NCr(t.color.surface.chrome,.9):t.color.surface.chrome}function ICr(t){return t.color.surface.panel}function NCr(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 jht(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 OCr(t){return t.color.boundary.area??t.color.boundary.default}function RCr(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 FCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function MCr(t){const n=DCr(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":aCr(t.treatment),"--volter-surface-sticky":Fht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Fht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Mht(t.treatment),"--volter-content-frost-filter":Mht(t.treatment),"--volter-content-frost-bg":ORe(t.treatment),"--volter-input-surface":cCr(s),"--volter-input-border":lCr(s),"--volter-input-shadow":uCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":a4t(t.treatment),"--volter-card-specular-sheen":pCr(t.treatment),"--volter-card-specular-shadow":_Cr(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":ACr(t.treatment),"--volter-island-surface":mCr(t),"--volter-island-backdrop-filter":hCr(t),"--volter-island-radius":gCr(s),"--volter-island-border-color":yCr(s),"--volter-island-shadow":vCr(s),"--volter-island-specular-ring":kCr(t.treatment),"--volter-selection-bg":SCr(t),"--volter-content-on-selection":xCr(t),"--volter-selection-border":wCr(t),"--volter-selection-indicator":TCr(t),"--volter-island-control-radius":CCr(s),"--volter-island-primary-bg":ECr(t),"--volter-content-text-shadow":f4t(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":PCr(t),"--volter-glass-regular-backdrop-filter":jht(t.treatment),"--volter-glass-regular-panel-bg":ICr(t),"--volter-glass-regular-panel-backdrop-filter":jht(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":OCr(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":FCr(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":RCr(t.color.surface.panel,t.color.content.primary),...l4t(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(wBe.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":sCr(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 RRe="volter-editor-theme";function jCr(t,n=i$){t.classList.add(RRe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(MCr(n)))t.style.setProperty(s,c)}const r0n={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},n0n={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},d4t=Ye.createContext(null);function LCr(){return Ye.useContext(d4t)}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)})}),TBe=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)})}),p4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),i0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),o0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",BCr={id:hC,title:"Editor"},wB=new Map;let lhe=null,cQ=hC;const FRe=new Set;function MRe(){for(const t of FRe)t()}function s0n(){return lhe??=[BCr,...[...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 $Cr(t){if(vee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),lhe=null,MRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),lhe=null,MRe())}}function uhe(){return cQ}function fhe(t){const n=vee(t)?t:hC;n!==cQ&&(cQ=n,MRe())}function CBe(t){return FRe.add(t),()=>FRe.delete(t)}function _4t(t){return cQ===hC?null:wB.get(cQ)?.glyphs[t]??null}const Lht={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)"},Bht={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(CBe,uhe,uhe);const k=_4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Bht[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:Lht[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(i0r,{...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:Lht[n],color:Bht[s],...m}})}function m4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?jTt:YTt,size:n,tone:s,...c?{style:c}:{}})}function a0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?NTt:fLe,size:n,tone:s})}function Eg(t,n){return{...n,iconName:t}}const Kk={action:{add:eCt,close:lLe,delete:RTt,search:OTt,refresh:nvr,undo:VOe,redo:Pmt,build:Z0r,export:rvr,select:Imt},transport:{play:M0r,pause:evr,restart:Pmt,stop:FTt,step:B0r},content:{project:qOe,folder:fee,file:VTt,source:dLe,scene:_Le,entity:aR,component:GB,camera:cye,light:sLe,image:iB,audio:uLe,data:MTt,code:aLe,stateMachine:BTt},status:{success:cLe,info:R$,warning:dee,error:zTt,visible:oLe,hidden:pLe,locked:Fme,unlocked:zOe},viewport:{zoomIn:x0r,zoomOut:b0r,pan:N0r,frame:y0r,projection:Eg("viewport-projection",E5e),projectionOrthographic:Eg("viewport-orthographic",E5e),camera:Eg("viewport-camera",Dmt),cameraView:Eg("viewport-camera-view",Dmt),cameraLocked:Eg("viewport-camera-locked",Fme),cameraUnlocked:Eg("viewport-camera-unlocked",zOe),gizmos:Eg("viewport-gizmos",L0r)},modeling:{extrude:Eg("mesh-extrude",$Tt),inset:Eg("mesh-inset",Y0r),bevel:Eg("mesh-bevel",ivr),loopCut:Eg("mesh-loop-cut",w0r),knife:Eg("mesh-knife",H0r),smooth:Eg("mesh-smooth",v0r),shrinkFatten:Eg("mesh-shrink-fatten",UTt),subdivide:Eg("mesh-subdivide",j0r)},tool:{extension:GB,select:Eg("tool-select-box",Imt),move:WTt,rotate:ITt,scale:Eg("tool-scale",C0r),transform:Eg("tool-transform",O0r),snap:F0r,frame:QTt,grid:E5e,profiler:XTt},panel:{outliner:Eg("outliner",rCt),properties:Eg("properties",HTt),"folder-open":qOe,"cubes-stacked":JTt,users:T0r,list:vZ,"rotate-left":VOe}};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=LCr();Ye.useEffect(()=>{if(!D)return;const we=pe.current;we&&(we.focus(),we.select())},[D]);const Ce=t===null,De=t??0,Pe=Ce?"—":Number.isFinite(De)?De.toFixed(d):0 .toFixed(d),be=we=>{if(m)return;se.current={startX:we.clientX,startVal:De,dragging:!1,gesture:!1,lastVal:De};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 qCr={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"},zCr={...qCr,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:{...zCr,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 VCr({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(m4t,{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 UCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function JCr(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 WCr(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 mO({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()},De=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=JCr(c,X,we)?c:UCr(c);pe(WCr(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,De(d)},onMouseLeave:()=>{A.current=!1,Ce()},onFocusCapture:()=>{F.current=!0,De(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 HCr({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},c0n=Go.typography.sans,l0n=Go.typography.mono;function u0n(t,n){t.onChange(n)}function f0n(t,n){(t.onChangeEnd??t.onChange)(n)}const d0n={display:"flex",alignItems:"center",gap:4},p0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},GCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},KCr=72;function _0n({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 m0n(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,$ht={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 XCr({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:$ht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:$ht,"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(dm,{"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:lLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function jRe({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,LRe=new Set;let h4t=0;function qht(){h4t+=1;for(const t of LRe)t()}function h0n(t,n){return A_e.set(t,n),qht(),()=>{A_e.get(t)===n&&(A_e.delete(t),qht())}}function EBe(t){return LRe.add(t),()=>LRe.delete(t)}function o$(){return h4t}function s2(t){return t?A_e.get(t)??null:null}const QL=new Map;function g0n(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 YCr(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 g4t=0;function y4t(){g4t+=1;for(const t of[...TB])t()}function ZCr(t,n){return xZ.set(t,n),y4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function QCr(t){xZ.has(t)&&y4t()}function eEr(t){return TB.add(t),()=>{TB.delete(t)}}function zht(){return g4t}function lQ(t){return xZ.get(t)}function v4t(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 b4t(t){dhe.add(t);for(const n of[...D_e])n();return()=>{dhe.delete(t)}}function S4t(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 kBe(t){if(YCr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let BRe=null;const ZY=new Map;let YO=[];function tEr(t){if(BRe=t,!t)return;const n=YO;YO=[];for(const s of n)x4t(t,s)}function x4t(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 rEr=0;function s$(t){const n=t.id??`notification-${++rEr}`,s={...t,id:n};return BRe?x4t(BRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>ABe(n))}function ABe(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 nEr(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 iEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function oEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function sEr(){try{const t={sessions:await iEr()},n=nEr(t.sessions,Xk.sessions,P_e),s=n.sessionId;n.latestAppeared&&(phe=!0),P_e=s;const c=s?await oEr(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=sEr().finally(()=>{RG=null,I_e&&(I_e=!1,uQ())}),RG)}function aEr(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 cEr(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 lEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));phe=Xk.liveEdgeMs-n<250,_he({...Xk,cursorMs:n})}const w4t={getSnapshot:()=>Xk,subscribe:aEr,select:cEr,seek:lEr,refresh:uQ};let T4t=null;const $Re=new Set,y0n={getSnapshot:()=>T4t,subscribe(t){return $Re.add(t),()=>$Re.delete(t)}};function v0n(t){T4t=t;for(const n of $Re)try{n()}catch{}}let ZO={phase:null,at:0,run:0},dN=ZO;const qRe=new Map;let C4t=null;function uEr(t){C4t=t,E4t(ZO)}function E4t(t){ZO=t;try{C4t?.(t)}catch{}}function fQ(){const t=[...qRe.values()].at(-1),n=t?{...t,run:dN.run}:dN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||E4t(n)}function b0n(t=Date.now()){return dN={phase:null,at:t,run:dN.run+1},fQ(),ZO.run}function S0n(t,n=Date.now()){dN={phase:t,at:n,run:dN.run},fQ()}function x0n(t=Date.now()){dN={phase:null,at:t,run:dN.run},fQ()}function DBe(t,n=Date.now()){const s=Symbol();return qRe.set(s,{phase:t.slice(0,160),at:n}),fQ(),()=>{qRe.delete(s)&&fQ()}}const fEr=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-PDuA7cCk.js"),__vite__mapDeps([255,1,2,3,4,20,21,143,128,144,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class PBe 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 dEr({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=(De,Pe)=>{if(se)return;const be=De instanceof Error?De:new Error(String(De));console.error(`[tools] ${J.current} crashed while rendering:`,be,Pe?.componentStack),A(be),$.current&&b4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=nLe.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:hBe,account:nBe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:DBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:w4t}:{play:Rye()},...s?{documentId:s,publishContext:Ce=>ZCr(s,Ce)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ye.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});G.render(s?Ye.createElement(pEr,{documentId:s},ue):ue)},[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 pEr({documentId:t,children:n}){return Ye.useEffect(()=>b4t(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,cN,cN),g=Ye.useSyncExternalStore(Fye,lN,lN),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(fEr,{})}):null,q.jsx(PBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(dEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function _Er({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Dye,cN,cN),Ye.useSyncExternalStore(Fye,lN,lN);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(PBe,{file:s,children:q.jsx(Zvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:hBe,account:nBe(),play:Rye(),node:S,nodeId:g,adapter:m})})})})}const mEr=Symbol("volter.inspection.mixed");function zRe(t){return t===mEr}function IBe(t){return t.readonlyReason??"This field is read-only."}function NBe(t){return"column"}function OBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const VRe="preview",Vht="transform",R5e="properties",k4t="stories",w0n="story-args",T0n="Story Args";function Uht(t){return`group:${t}`}const A4t=100,hEr=1e3,dQ=2e3,D4t=3e3,gEr=4e3,yEr=5e3,vEr={nullSubjectId:null};function P4t(t){return"sections"in t}const N_e=[];let I4t=0;const URe=new Set;function Jht(){I4t++;for(const t of URe)t()}function bEr(t){return URe.add(t),()=>{URe.delete(t)}}function Wht(){return I4t}function N4t(t){return N_e.push(t),Jht(),()=>{const n=N_e.indexOf(t);n>=0&&(N_e.splice(n,1),Jht())}}function Hht(t,n,s=vEr){return N_e.filter(c=>c.match(t,n,s))}function O4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const SEr=1e3;class xEr{_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>SEr){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 xEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Ght=1e3,Kht=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 wEr(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>Ght?`${s.slice(0,Ght)}…`:s}function JRe(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 wEr(k)}}),m=s.slice(c);return m.length===0?d:`${d} ${m.map(CB).join(" ")}`}function TEr(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 WRe(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=wYr(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">${h4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Age=new Set;function hZr(t){return Age.add(t),()=>{Age.delete(t)}}function gZr(){try{window.focus()}catch{}if(Age.size===0){window.location.reload();return}for(const t of[...Age])t()}function yZr(t,n,s={}){t.addEventListener("tab-refocus",c=>uZr(c)),t.addEventListener("tab-yield",c=>fZr(n,c)),t.addEventListener("tab-close",()=>mZr(n,s)),t.addEventListener("tab-adopt",()=>gZr())}const $k="/__editor",vZr=globalThis,md=vZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Q0e=VAt,bZr=lwr;function SZr(t,n,s){md?.reportPhase?.(t,n,s)}function xZr(t){md?.reportCensus?.(t)}function wZr(){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 TZr(){const t=new URLSearchParams({clientId:xC,participantId:Q0e,displayName:bZr});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 $Rt=new Set(["editor-command"]);function qRt(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 CZr(t){P$!==t&&(P$=t,yZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),qRt(t,n=>!$Rt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(TZr()),md&&(md.source=kw)));const t=kw;CZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),$Rt.has(c)&&qRt(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 EZr(){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 kZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=Bze(c=>{c!==null&&c.reason!=="server-gone"&&wZr()}),s=DZr();return()=>{s(),n(),t.close()}}const AZr=5;function DZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=AZr||(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;O4t(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 PZr=2e3,IZr={"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(IZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function bN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function NZr(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(zSt,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,PZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(zSt,m)}function OZr(t){bN("tab-route",{clientId:xC,participantId:Q0e,route:t})}function $ze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function RZr(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 $ze(s)}}async function eve(t,n){if(t!=="public")return RZr(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 $ze(s)}}async function zRt(){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 $ze(t)}}function d2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class USt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function JSt(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 qze(t,n){return`${t}:${n}`}function p2n(t,n){return Dge.get(qze(t,n))??null}function _2n(t){return Pge.add(t),()=>Pge.delete(t)}async function m2n(){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(qze(s.source,s.id),`/${s.path}`);for(const s of Pge)s()}catch{}}async function h2n(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 g2n(t,n){return FZr(t,n)}async function FZr(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 USt("offline",m instanceof Error?m.message:JSt("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 USt(g,m?.error??JSt(g))}return(await c.json()).files}async function y2n(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 v2n(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(qze(t.source,t.id),`/${s.path}`);for(const c of Pge)c()}return s}async function b2n(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 S2n(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 x2n(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 MZr(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 jZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw qFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw qFe(`HTTP ${t.status}`);try{CN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return MZr(await t.json())}catch{return null}}async function zze(){const t=await jZr();if(!t)throw w4r();return T4r(t),t}async function LZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function w2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,"Could not remove recent project")}const WSt={reopenLastProject:!1};async function BZr(){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:WSt.reopenLastProject}}catch{return{...WSt}}}async function T2n(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 C2n(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 E2n(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 k2n(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 A2n(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 CMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,`Could not reveal ${t}`)}async function D2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return CN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function Vze(){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 P2n(){const t=await Vze();return t.status==="project"?t.project:null}async function I2n(t){const n=await zze(),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 qFe(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"&&b4r(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&&w$e(d.config,n),d}function tve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function $Zr(t){try{const n=await fetch(tve(t));if(n.ok)return await n.text()}catch{}return null}async function EMe(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 qZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function VRt(t){try{const n=await fetch(tve(t),{method:"HEAD"});return n.ok?qZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function zZr(t){return await VRt(t)==="present"}async function N2n(t,n,s){try{const c=s==="base64"?O4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function URt(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 O2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function VZr(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 UZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let HSt=!1;async function JZr(t,n={}){try{const s=await iPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return CN(s,"Could not save editor state"),!0}catch(s){return HSt||(HSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Ige=null;async function JRt(){for(;fZ;){const t=fZ;fZ=null,await bN("state",{...t,_clientId:xC})}Ige=null,fZ&&(Ige=JRt())}function GSt(t){return fZ=t,Ige??=JRt(),Ige}async function WZr(t){await bN("command-received",{_requestId:t,_clientId:xC})}async function o_e(t){await bN("command-listener",{_clientId:xC,attached:t})}let HZr=0;function GZr(t){const n=++HZr;SZr(t.phase,xC,n),bN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function KSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await NZr(t,m):await bN("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 R2n(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 F2n(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 M2n(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 j2n(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 L2n(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 B2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function $2n(){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 KZr(){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 WRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function XZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function YZr(){const t=await BR("");return WRt(t)}async function ZZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function XSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function QZr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function eQr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return WRt(n).worktrees}async function tQr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Nge=null;const kMe=new Set,AMe=new Set;function rQr(t){Nge=t;for(const n of kMe)n(t);for(const n of AMe)n()}function Ih(){return Nge}function q2n(t){return kMe.add(t),Nge&&t(Nge),()=>{kMe.delete(t)}}function s_e(t){return AMe.add(t),()=>{AMe.delete(t)}}const nA="references",HRt=["public",nA],Uze=`/project-game-static/${nA}/`;function Oge(t,n){return`${t}/${n}`}function rve(t,n){return t===nA?`${Uze}${n}`:`/${n}`}function nQr(t){return t.startsWith(Uze)}function iQr(t){const n=t.startsWith("/")?t:`/${t}`;if(nQr(n))return Oge(nA,n.slice(Uze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function GRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(oQr,{assetPath:t,kind:n,sizeBytes:s},t)}function oQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=iQr(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("/"),De=Ce.pop();return eve(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===De)?.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 rOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>PTr),void 0)).AssetEditorShell})),sQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-CQ5i0sqh.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).AudioViewer})),aQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-Cfs_40NV.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).ImageViewer})),cQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-Dkfz15uC.js"),__vite__mapDeps([259,1,2,3,4,20,21,22,23]))).VideoViewer})),lQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-99jBhhmk.js").then(n=>n.a),__vite__mapDeps([260,1,2,3,4,20,21]))).JsonAssetDocument})),YSt=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-CrgCBa3x.js"),__vite__mapDeps([261,1,2,3,4,20,21,262,22,23]))).OnlineAssetDetail})),uQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-Dawor1Iu.js"),__vite__mapDeps([263,1,2,3,4,20,21,260,257,22,23,258]))).SourceAssetViewer})),G1=new Map,KRt=new Map,nOe=new Map;let XRt=0;const DMe=new Set;function nR(){XRt++;for(const t of DMe)t()}function fQr(t){return DMe.add(t),()=>{DMe.delete(t)}}function dQr(){return XRt}function pQr(t){return G1.get(t)}function YRt(t){return G1.has(t)}function _Qr(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 Jze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&nOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};_Qr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:SQr,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=nOe.get(S);nOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function sN(t,n,s={}){const c=XYr(t),{frameName:d}=Z0e(t),m=KRt.get(AO(t))??t;return Jze(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 zZr(s)?!1:(sN(s,c),!0)}});async function ZRt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=_Be(t);return s?n!=="model"||s.adapter!==null:!1},PR)}kN({id:"asset-editor:entity",owner:"asset-documents",open:(t,{entityId:n,title:s})=>Jze(`asset-editor:entity:${n}`,s,{assetPath:"",kind:"model",entityId:n},{origin:`entity:${n}`})});kN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Oze(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:sN(s,ZSt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":ZSt(n.assetKind,n.path??"");if(!await ZRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await kBe(t)}});function ZSt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??mQr(n)}function mQr(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 hQr(t,n){const s=sZr(n);return Jze(`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 gQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function yQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=AO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===AO(n.oldPath)){const d=`/${AO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),KRt.set(AO(d),t),$3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>AO(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=>AO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function vQr(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 iOe(t){return{id:"source",title:"Source",icon:GTt,order:dQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function bQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(rOe,{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=vQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(rOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:J0r,order:dQ,body:{kind:"custom",render:()=>q.jsx(YSt,{online:k,mode:"inspector",onResolved:A=>gQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(YSt,{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(tOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(tOe,{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(tOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(uQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(lQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[iOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(aQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(cQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(sQr,{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(rOe,{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:GTt,order:dQ,body:{kind:"custom",render:()=>q.jsx(GRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[iOe(n)]:[]]:[iOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function SQr({documentId:t,active:n}){Ye.useSyncExternalStore(fQr,dQr),Ye.useEffect(()=>{const c=d=>{yQr(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:xBe[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(bQr,{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 AO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const QRt=["three","pixi","dom","babylon","phaser"],Wze=Object.freeze({up:"y",groundHeight:0}),eFt=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(),xQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),wQr=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(QRt).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(iBe)).describe("Anchor kinds this region’s writer serves"),basis:xQr.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(eFt).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(),TQr=AR([Pg("manifest-roots"),Gd(wQr).min(1)]),CQr=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(eFt).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."}),EQr=wD(bo().min(1),CQr).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 Hze(t,n={}){return t.map(s=>({...AQr(s),...kQr(n[s.id])}))}function kQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function tFt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function AQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Wze;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",DQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),PQr=AR([Pa({kind:Pg("root-mount")}).strict(),Pa({kind:Pg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:_y().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()]),QSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),IQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:_y(),reach:PQr,source:QSt.optional(),isolationSetup:QSt.optional(),finder:bo().min(1).optional()}).strict(),NQr=Pa({entries:Gd(IQr).optional(),find:Gd(DQr).optional(),default:bo().min(1).optional()}).strict(),rFt=["command","state"],OQr="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.",RQr=Pa({id:bo().min(1),kind:ed(rFt,{error:()=>OQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:YI(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"}),FQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],MQr=Pa({root:bo().min(1),actions:YI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:YI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:YI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),jQr=Pa({Layout:YI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:YI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:YI(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(),LQr="`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.",nFt=Pa({editor:jQr.optional(),regions:TQr.optional(),regionIncludes:EQr.optional(),documents:NQr.optional(),observation:Gd(RQr).optional(),input:MQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:LQr});function Gze(t={}){const n=nFt.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 DO(t={}){return Gze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:UQ},{finder:"prefabsFromStories"}]}})}function PMe(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 Gze(t)}const z2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:FQr,AdapterDefinitionSchema:nFt,EXPORTED_COMPOSITION_REGIONS:UQ,NATIVE_REGION_BASIS:Wze,OBSERVATION_KINDS:rFt,SUBSTRATE_NAMES:QRt,defineAdapter:Gze,nativeAdapter:DO,parseAdapterDefinition:PMe,regionsFromManifestRoots:Hze,unmatchedRegionIncludeIds:tFt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Kze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Xze(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 Kze(s)}function iFt(){return[...MZ.keys()]}function oFt(t,n){const s=MZ.get(t.finder);if(!s){const d=iFt();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 V2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Xze,registerFinder:Kze,registeredFinderNames:iFt,runRegisteredFinder:oFt},Symbol.toStringTag,{value:"Module"}));function ext(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 oOe={exports:{}};const BQr={},$Qr=Object.freeze(Object.defineProperty({__proto__:null,default:BQr},Symbol.toStringTag,{value:"Module"})),wI=o0r($Qr);var txt;function qQr(){return txt||(txt=1,(function(t){var n={};/*! *****************************************************************************
|
|
942
|
+
</style><main><div class="brand-mark">${h4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Age=new Set;function hZr(t){return Age.add(t),()=>{Age.delete(t)}}function gZr(){try{window.focus()}catch{}if(Age.size===0){window.location.reload();return}for(const t of[...Age])t()}function yZr(t,n,s={}){t.addEventListener("tab-refocus",c=>uZr(c)),t.addEventListener("tab-yield",c=>fZr(n,c)),t.addEventListener("tab-close",()=>mZr(n,s)),t.addEventListener("tab-adopt",()=>gZr())}const $k="/__editor",vZr=globalThis,md=vZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Q0e=VAt,bZr=lwr;function SZr(t,n,s){md?.reportPhase?.(t,n,s)}function xZr(t){md?.reportCensus?.(t)}function wZr(){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 TZr(){const t=new URLSearchParams({clientId:xC,participantId:Q0e,displayName:bZr});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 $Rt=new Set(["editor-command"]);function qRt(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 CZr(t){P$!==t&&(P$=t,yZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),qRt(t,n=>!$Rt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(TZr()),md&&(md.source=kw)));const t=kw;CZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),$Rt.has(c)&&qRt(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 EZr(){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 kZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=Bze(c=>{c!==null&&c.reason!=="server-gone"&&wZr()}),s=DZr();return()=>{s(),n(),t.close()}}const AZr=5;function DZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=AZr||(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;O4t(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 PZr=2e3,IZr={"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(IZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function bN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function NZr(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(zSt,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,PZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(zSt,m)}function OZr(t){bN("tab-route",{clientId:xC,participantId:Q0e,route:t})}function $ze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function RZr(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 $ze(s)}}async function eve(t,n){if(t!=="public")return RZr(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 $ze(s)}}async function zRt(){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 $ze(t)}}function d2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class USt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function JSt(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 qze(t,n){return`${t}:${n}`}function p2n(t,n){return Dge.get(qze(t,n))??null}function _2n(t){return Pge.add(t),()=>Pge.delete(t)}async function m2n(){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(qze(s.source,s.id),`/${s.path}`);for(const s of Pge)s()}catch{}}async function h2n(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 g2n(t,n){return FZr(t,n)}async function FZr(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 USt("offline",m instanceof Error?m.message:JSt("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 USt(g,m?.error??JSt(g))}return(await c.json()).files}async function y2n(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 v2n(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(qze(t.source,t.id),`/${s.path}`);for(const c of Pge)c()}return s}async function b2n(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 S2n(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 x2n(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 MZr(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 jZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw qFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw qFe(`HTTP ${t.status}`);try{CN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return MZr(await t.json())}catch{return null}}async function zze(){const t=await jZr();if(!t)throw w4r();return T4r(t),t}async function LZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function w2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,"Could not remove recent project")}const WSt={reopenLastProject:!1};async function BZr(){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:WSt.reopenLastProject}}catch{return{...WSt}}}async function T2n(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 C2n(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 E2n(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 k2n(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 A2n(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 CMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,`Could not reveal ${t}`)}async function D2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return CN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function Vze(){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 P2n(){const t=await Vze();return t.status==="project"?t.project:null}async function I2n(t){const n=await zze(),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 qFe(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"&&b4r(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&&w$e(d.config,n),d}function tve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function $Zr(t){try{const n=await fetch(tve(t));if(n.ok)return await n.text()}catch{}return null}async function EMe(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 qZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function VRt(t){try{const n=await fetch(tve(t),{method:"HEAD"});return n.ok?qZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function zZr(t){return await VRt(t)==="present"}async function N2n(t,n,s){try{const c=s==="base64"?O4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function URt(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 O2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function VZr(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 UZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let HSt=!1;async function JZr(t,n={}){try{const s=await iPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return CN(s,"Could not save editor state"),!0}catch(s){return HSt||(HSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Ige=null;async function JRt(){for(;fZ;){const t=fZ;fZ=null,await bN("state",{...t,_clientId:xC})}Ige=null,fZ&&(Ige=JRt())}function GSt(t){return fZ=t,Ige??=JRt(),Ige}async function WZr(t){await bN("command-received",{_requestId:t,_clientId:xC})}async function o_e(t){await bN("command-listener",{_clientId:xC,attached:t})}let HZr=0;function GZr(t){const n=++HZr;SZr(t.phase,xC,n),bN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function KSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await NZr(t,m):await bN("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 R2n(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 F2n(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 M2n(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 j2n(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 L2n(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 B2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function $2n(){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 KZr(){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 WRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function XZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function YZr(){const t=await BR("");return WRt(t)}async function ZZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function XSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function QZr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function eQr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return WRt(n).worktrees}async function tQr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Nge=null;const kMe=new Set,AMe=new Set;function rQr(t){Nge=t;for(const n of kMe)n(t);for(const n of AMe)n()}function Ih(){return Nge}function q2n(t){return kMe.add(t),Nge&&t(Nge),()=>{kMe.delete(t)}}function s_e(t){return AMe.add(t),()=>{AMe.delete(t)}}const nA="references",HRt=["public",nA],Uze=`/project-game-static/${nA}/`;function Oge(t,n){return`${t}/${n}`}function rve(t,n){return t===nA?`${Uze}${n}`:`/${n}`}function nQr(t){return t.startsWith(Uze)}function iQr(t){const n=t.startsWith("/")?t:`/${t}`;if(nQr(n))return Oge(nA,n.slice(Uze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function GRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(oQr,{assetPath:t,kind:n,sizeBytes:s},t)}function oQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=iQr(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("/"),De=Ce.pop();return eve(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===De)?.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 rOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>PTr),void 0)).AssetEditorShell})),sQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-bTwqa-Sq.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).AudioViewer})),aQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-Dr9tOsGR.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).ImageViewer})),cQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-Dh6AS4So.js"),__vite__mapDeps([259,1,2,3,4,20,21,22,23]))).VideoViewer})),lQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-95S-d0FJ.js").then(n=>n.a),__vite__mapDeps([260,1,2,3,4,20,21]))).JsonAssetDocument})),YSt=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-C1_UGp0X.js"),__vite__mapDeps([261,1,2,3,4,20,21,262,22,23]))).OnlineAssetDetail})),uQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-BmlLDth6.js"),__vite__mapDeps([263,1,2,3,4,20,21,260,257,22,23,258]))).SourceAssetViewer})),G1=new Map,KRt=new Map,nOe=new Map;let XRt=0;const DMe=new Set;function nR(){XRt++;for(const t of DMe)t()}function fQr(t){return DMe.add(t),()=>{DMe.delete(t)}}function dQr(){return XRt}function pQr(t){return G1.get(t)}function YRt(t){return G1.has(t)}function _Qr(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 Jze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&nOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};_Qr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:SQr,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=nOe.get(S);nOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function sN(t,n,s={}){const c=XYr(t),{frameName:d}=Z0e(t),m=KRt.get(AO(t))??t;return Jze(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 zZr(s)?!1:(sN(s,c),!0)}});async function ZRt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=_Be(t);return s?n!=="model"||s.adapter!==null:!1},PR)}kN({id:"asset-editor:entity",owner:"asset-documents",open:(t,{entityId:n,title:s})=>Jze(`asset-editor:entity:${n}`,s,{assetPath:"",kind:"model",entityId:n},{origin:`entity:${n}`})});kN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Oze(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:sN(s,ZSt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":ZSt(n.assetKind,n.path??"");if(!await ZRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await kBe(t)}});function ZSt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??mQr(n)}function mQr(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 hQr(t,n){const s=sZr(n);return Jze(`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 gQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function yQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=AO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===AO(n.oldPath)){const d=`/${AO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),KRt.set(AO(d),t),$3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>AO(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=>AO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function vQr(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 iOe(t){return{id:"source",title:"Source",icon:GTt,order:dQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function bQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(rOe,{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=vQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(rOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:J0r,order:dQ,body:{kind:"custom",render:()=>q.jsx(YSt,{online:k,mode:"inspector",onResolved:A=>gQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(YSt,{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(tOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(tOe,{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(tOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(uQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(lQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[iOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(aQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(cQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(sQr,{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(rOe,{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:GTt,order:dQ,body:{kind:"custom",render:()=>q.jsx(GRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[iOe(n)]:[]]:[iOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function SQr({documentId:t,active:n}){Ye.useSyncExternalStore(fQr,dQr),Ye.useEffect(()=>{const c=d=>{yQr(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:xBe[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(bQr,{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 AO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const QRt=["three","pixi","dom","babylon","phaser"],Wze=Object.freeze({up:"y",groundHeight:0}),eFt=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(),xQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),wQr=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(QRt).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(iBe)).describe("Anchor kinds this region’s writer serves"),basis:xQr.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(eFt).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(),TQr=AR([Pg("manifest-roots"),Gd(wQr).min(1)]),CQr=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(eFt).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."}),EQr=wD(bo().min(1),CQr).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 Hze(t,n={}){return t.map(s=>({...AQr(s),...kQr(n[s.id])}))}function kQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function tFt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function AQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Wze;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",DQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),PQr=AR([Pa({kind:Pg("root-mount")}).strict(),Pa({kind:Pg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:_y().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()]),QSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),IQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:_y(),reach:PQr,source:QSt.optional(),isolationSetup:QSt.optional(),finder:bo().min(1).optional()}).strict(),NQr=Pa({entries:Gd(IQr).optional(),find:Gd(DQr).optional(),default:bo().min(1).optional()}).strict(),rFt=["command","state"],OQr="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.",RQr=Pa({id:bo().min(1),kind:ed(rFt,{error:()=>OQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:YI(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"}),FQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],MQr=Pa({root:bo().min(1),actions:YI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:YI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:YI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),jQr=Pa({Layout:YI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:YI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:YI(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(),LQr="`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.",nFt=Pa({editor:jQr.optional(),regions:TQr.optional(),regionIncludes:EQr.optional(),documents:NQr.optional(),observation:Gd(RQr).optional(),input:MQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:LQr});function Gze(t={}){const n=nFt.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 DO(t={}){return Gze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:UQ},{finder:"prefabsFromStories"}]}})}function PMe(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 Gze(t)}const z2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:FQr,AdapterDefinitionSchema:nFt,EXPORTED_COMPOSITION_REGIONS:UQ,NATIVE_REGION_BASIS:Wze,OBSERVATION_KINDS:rFt,SUBSTRATE_NAMES:QRt,defineAdapter:Gze,nativeAdapter:DO,parseAdapterDefinition:PMe,regionsFromManifestRoots:Hze,unmatchedRegionIncludeIds:tFt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Kze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Xze(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 Kze(s)}function iFt(){return[...MZ.keys()]}function oFt(t,n){const s=MZ.get(t.finder);if(!s){const d=iFt();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 V2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Xze,registerFinder:Kze,registeredFinderNames:iFt,runRegisteredFinder:oFt},Symbol.toStringTag,{value:"Module"}));function ext(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 oOe={exports:{}};const BQr={},$Qr=Object.freeze(Object.defineProperty({__proto__:null,default:BQr},Symbol.toStringTag,{value:"Module"})),wI=o0r($Qr);var txt;function qQr(){return txt||(txt=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 @@ ${Nen(g)}`)}const m={manifestVersion:d.manifestVersion,name:d.name,version:d.ver
|
|
|
1396
1396
|
`)}function zFt(t){return qFt(t,Array.from(t.styleSheets))}function ern(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?"":qFt(t,c)}async function trn(t){await t.fonts.ready;let n=zFt(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 rrn(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 fVe(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 VFt(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,...nrn(t,c)])s.has(m)||(s.add(m),n.push(m))}return n}function nrn(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))irn(F,t)&&d.add(F)}return Array.from(d).reverse()}function irn(t,n){return t instanceof HTMLElement&&(t===n||n.contains(t))&&fVe(t)!==null}function UFt(t){const n=[];for(let s=t.parentElement;s;s=s.parentElement)n.unshift(s);return n}function orn(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 srn(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 arn(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 JFt(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?rrn(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??zFt(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=jFt();if(A){const se=t.ownerDocument.createElement("style");se.textContent=A,g.appendChild(se)}if(!m){const se=ern(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);arn(se,pe,S),orn(se,pe),srn(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:uOe(t.ownerDocument,qe);(!Pt||Pt.src!==bt)&&c?.snapshots?.imgs.set(qe,{src:bt,url:Wt}),Wt&&X.setAttribute("src",Wt)});const De=[...se instanceof HTMLVideoElement?[se]:[],...Array.from(se.querySelectorAll("video"))];[...pe instanceof HTMLVideoElement?[pe]:[],...Array.from(pe.querySelectorAll("video"))].forEach((X,we)=>{const qe=De[we];if(!qe||qe.readyState<2||qe.videoWidth<=0)return;const bt=uOe(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?uOe(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 crn={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(`${crn[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,lrn=24,dVe=.9;function WFt(t,n){return[t[n*4]??0,t[n*4+1]??0,t[n*4+2]??0]}function urn(t,n){const s=new Map;for(let m=0;m<n;m++){const[g,S,k]=WFt(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 frn(t,n,s){let c=0;for(let d=0;d<n;d++){const m=WFt(t,d);Math.max(Math.abs(m[0]-s[0]),Math.abs(m[1]-s[1]),Math.abs(m[2]-s[2]))<=lrn&&(c+=1)}return c}function HFt(t,n,s=dVe){const{mean:c,distinctRegions:d}=urn(t,n),m=Math.round(frn(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 HMe(t,n,s=dVe){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 HFt(m.data,X4*X4,s)}catch{return null}}async function GFt(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 KFt(t,n){return await ZQ(t),(n?.presentsOnCanvas??t.querySelectorAll("canvas").length>0)||await new Promise(c=>setTimeout(c,650)),await GFt(t),await ZQ(t),GMe(t,2,n??{})}const XFt=.03;function YFt(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 ZFt(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 drn(t,n,s,c){let d;try{d=t.getImageData(0,0,n,s)}catch{return{kind:"ok"}}const m=n*s,g=YFt(d.data,m),S=g>XFt;return c>0&&(S||ZFt(d.data,m))?{kind:"retry"}:S?{kind:"blank",transparentFraction:g}:{kind:"ok"}}function prn(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 GMe(t,n,s){const c=t.ownerDocument.createElement("canvas"),d=await QFt(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=prn(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),GMe(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 De=getComputedStyle(t).backgroundColor;De&&De!=="transparent"&&De!=="rgba(0, 0, 0, 0)"&&(Ce.fillStyle=De,Ce.fillRect(0,0,ue.width,ue.height)),Ce.drawImage(c,$,G,ue.width,ue.height,0,0,ue.width,ue.height);const Pe=HMe(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=drn(S,m,g,n);if(D.kind==="retry")return await new Promise(J=>setTimeout(J,300)),await ZQ(t),GMe(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=HMe(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 hxt(t,n,s,c=1,d=1){for(const m of n){const g=fVe(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 QFt(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&&hxt(k,UFt(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??VFt(t);hxt(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=JFt(t,d/g,m/S,{includeDocumentStyles:s?.includeDocumentStyles,projectRoot:s?.projectRoot,documentCssText:s?.includeDocumentStyles?await trn(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 _rn=Object.freeze(Object.defineProperty({__proto__:null,CaptureLayerError:HI,FLATNESS_GRID:X4,FLATNESS_WARN_AT:dVe,OVERLAY_CACHE_MAX_AGE_MS:LFt,OVERLAY_REBUILD_COST_MULTIPLIER:$Ft,OVERLAY_REBUILD_FLOOR_MS:BFt,TRANSPARENT_PIXEL_LIMIT:XFt,ancestorBackdrops:UFt,buildOverlaySvg:JFt,capturePlayComposite:KFt,createImageSnapshotCache:Ztn,createOverlayFrameCache:Qtn,drawPlayCompositeFrame:QFt,hasExcessNearBlackPixels:ZFt,isRootCanvas:ove,measureFlatness:HFt,opaqueBackgroundColor:fVe,rootSurfaceBackdrops:VFt,sampleFlatness:HMe,transparentPixelFraction:YFt,waitForFiniteMotion:GFt,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=sDt();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 mrn(t){return aCt(ste(t),window.location.href)}let $I=[],hrn=0,e9t=0;const KMe=new Set;function XMe(){e9t++;for(const t of KMe)t()}function t9t(){XMe()}function YMe(){return X1()}function pVe(){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 r9t(){for(const{session:t}of $I){const n=t.restartRequired?.()??null;if(n!==null)return n}return null}function n9t(){(X1().find(s=>(s.restartRequired?.()??null)!==null)??X1().find(s=>s.mounted()&&s.restart))?.restart?.()}function _Ve(){for(const t of X1()){if(!t.mounted())continue;const n=t.frameCanvas?.()??null;if(n)return n}return null}function mVe(t){for(const n of X1())if(!(!n.mounted()||!n.snapshotFrame)&&n.frameCanvas?.()===t)return n.snapshotFrame();return null}function hVe(t){for(const n of X1()){if(!n.mounted()||!n.command)continue;const s=n.command(t);if(s)return s}return null}function gVe(){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 yVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.coverage?.()??null;if(n)return n}return null}function vVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.authoringRefusal?.()??null;if(n!==null)return n}return null}function i9t(t){return X1().find(s=>s.mounted()&&s.remount)?.remount?.(t)??null}function o9t(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:hrn++};return $I=[...$I,n],XMe(),()=>{$I=$I.filter(s=>s!==n),XMe()}}function X1(){return[...$I].sort((t,n)=>(t.session.priority??0)-(n.session.priority??0)||t.seq-n.seq).map(t=>t.session)}function bVe(){return X1().some(t=>t.mounted())}function ave(){return X1().some(t=>t.playing())}function SVe(){for(const t of X1())t.stop()}function s9t(t){for(const n of X1()){const s=n.instanceContainer(t);if(s)return s}return null}function xVe(t){return KMe.add(t),()=>KMe.delete(t)}function a9t(){return e9t}const grn=Object.freeze(Object.defineProperty({__proto__:null,anyLiveSessionMounted:bVe,anyLiveSessionPlaying:ave,dispatchLiveCommand:hVe,liveAuthoringRefusal:vVe,liveCoverage:yVe,liveFrameCanvas:_Ve,liveInstanceContainer:s9t,liveRestartRequired:r9t,liveRunWindow:pVe,liveScenes:gVe,liveSessions:YMe,liveSessionsVersion:a9t,liveSurface:sve,notifyLiveSessionsChanged:t9t,registerLiveSession:o9t,remountLiveSelection:i9t,restartLiveSession:n9t,snapshotLiveFrame:mVe,stopAllLiveSessions:SVe,subscribeLiveSessions:xVe},Symbol.toStringTag,{value:"Module"}));async function c9t(t){const n=mVe(t);return n||qtn(t)}function yrn(t){const n=t;return n&&typeof n.toDataURL=="function"?n:null}const vrn=Object.freeze(Object.defineProperty({__proto__:null,liveCanvasFrame:c9t,readablePngSource:yrn},Symbol.toStringTag,{value:"Module"}));let qZ=null;function brn(){if(!qZ)return!0;try{return qZ()}catch{return!0}}function Srn(t){return qZ=t,()=>{qZ===t&&(qZ=null)}}const l9t=new WeakMap;function ASn(t,n){l9t.set(t,n)}function u9t(t){for(const n of Array.from(t.querySelectorAll("iframe"))){const s=l9t.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&&(CRe()===null||n.dataset.workspaceViewId===CRe()))??null}const ZMe=["document","header","shelf","rail","outliner","content","utility","menubar"],xrn={rail:{part:"properties",view:"volter.properties",title:"Properties"},outliner:{part:"outliner",view:"volter.outliner",title:"Outliner"},content:{part:"content",view:"volter.content",title:"Content"}},wrn={header:{prefix:"document-header",title:"header strip"},shelf:{prefix:"document-shelf",title:"tool shelf"}};function wVe(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=u9t(t.container)?.container;return s&&!n.includes(s)&&n.push(s),n}function Trn(t){return document.querySelector(`[data-volter-part="${t}"]`)}function Crn(){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 Ern(){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 krn(t){if(t==="utility")return Crn();if(t==="menubar")return Ern();const n=t==="rail"||t==="outliner"||t==="content"?xrn[t]:null;if(n){const s=Trn(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 Arn(t)}function Arn(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=wrn[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 gxt(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: ${ZMe.filter(s=>s!==t.name).map(s=>`'${s}'`).join(", ")} (pass \`{ scope }\`). The rest of the page is deliberately unreachable.`)}const yxt=400,vxt="rgb(1, 2, 3)",Drn="rgba(0, 0, 0, 0)";function Prn(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=vxt,t.appendChild(d);try{d.style.backgroundColor=`var(${n})`;const m=getComputedStyle(d).backgroundColor.trim();return m===vxt||m===Drn?s:m}finally{d.remove()}}function Irn(t,n){const s=getComputedStyle(t),c={};for(const d of n)c[d]=d.startsWith("--")?Prn(t,d):s.getPropertyValue(Nrn(d)).trim();return c}function Nrn(t){return t.includes("-")?t:t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function bxt(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>yxt?`${k.slice(0,yxt)}…`: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:Irn(c,s)}:{}}}function mme(t,n,s){const c=d9t(t,n),d=c[s];if(!d)throw gxt(t,`${JSON.stringify(n)} matched ${c.length} element(s), so index ${s} does not exist`);if(!wVe(t).some(m=>m.contains(d)))throw gxt(t,`${JSON.stringify(n)} resolved outside the document's container`);return d}function Orn(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 TVe(t){let n=t;for(;n&&!(n.hasAttribute("tabindex")||n.tabIndex>=0||n.isContentEditable);)n=n.parentElement;(n??t).focus({preventScroll:!0})}function f9t(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1]}}function Rrn(t,n){const{clientX:s,clientY:c}=f9t(t,n);return t.ownerDocument.elementFromPoint(s,c)??t}async function Frn(t,n=1,s,c={},d){const m={...Orn(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)),TVe(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 Mrn(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 QMe=null;function jrn(){const t=QMe;if(t===null)throw new Error("Nothing is held: release lets go of a drag that `hold: true` left pressed, and none is.");return QMe=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 Lrn(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)),TVe(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 De=Ce/J,Pe=F(pe[0]+(ue[0]-pe[0])*De,pe[1]+(ue[1]-pe[1])*De);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){QMe={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 Brn(t,n){if(n)return n;const s=document.activeElement;return s instanceof HTMLElement&&wVe(t).some(c=>c.contains(s))?s:t.container}function d9t(t,n){try{return wVe(t).flatMap(s=>Array.from(s.querySelectorAll(n)))}catch(s){throw new Error(`Invalid selector ${JSON.stringify(n)}: ${String(s)}`)}}function fOe(t,n){const s=n.selector===void 0?null:mme(t,n.selector,n.index??0);return Brn(t,s)}const $rn={" ":"Space","`":"Backquote","-":"Minus","=":"Equal","[":"BracketLeft","]":"BracketRight","\\":"Backslash",";":"Semicolon","'":"Quote",",":"Comma",".":"Period","/":"Slash"};function qrn(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:$rn[t]??t}const zrn={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 Vrn(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]):zrn[t]??0}function Urn(t){const n=t===void 0?null:/^Numpad([0-9])$/.exec(t);return n?96+Number(n[1]):t==="NumpadDecimal"?110:null}function Sxt(t,n){const s=new KeyboardEvent(t,Jrn(n)),c=Urn(n.code)??Vrn(n.key);return Object.defineProperty(s,"keyCode",{get:()=>c}),Object.defineProperty(s,"which",{get:()=>c}),s}function Jrn(t){return{key:t.key,code:t.code??qrn(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 Wrn(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 dOe=["query","click","drag","release","key","paste","select","type"];function Hrn(t){const n=t?.action;if(!dOe.includes(n))throw new Error(`Unknown document-probe action ${JSON.stringify(n)}. This door has exactly ${dOe.length} verbs: ${dOe.join(", ")} (\`editor.document.*\`).`);const s=t.scope??"document";if(!ZMe.includes(s))throw new Error(`Unknown scope ${JSON.stringify(s)}. This door addresses exactly these surfaces: ${ZMe.map(c=>`'${c}'`).join(", ")}.`);return krn(s)}async function Grn(t){const n=Hrn(t);if(Pp()===a0&&brn()&&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:[bxt(d,0)]});switch(t.action){case"query":{const d=d9t(n,t.selector);return{scope:s,matched:d.length,elements:d.slice(0,t.limit??25).map((m,g)=>bxt(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:Rrn(d,m);return await Frn(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:f9t(d,m)),c(g)}case"type":{const d=fOe(n,t);return Mrn(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 Lrn(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(jrn());case"key":{const d=fOe(n,t);document.activeElement instanceof Node&&d.contains(document.activeElement)||TVe(d);const m=document.activeElement,g=m instanceof HTMLElement&&d.contains(m)?m:d;return g.dispatchEvent(Sxt("keydown",t)),t.holdMs&&await new Promise(S=>setTimeout(S,t.holdMs)),g.dispatchEvent(Sxt("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 Wrn(d,t.value),c(d)}case"paste":{const d=fOe(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 xxt="editor-chrome-root";function Krn(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 ztn(n,s)??c9t(n)}}async function Xrn(t,n){const s=document.getElementById(xxt);if(!s)throw new Error(`The editor chrome root (#${xxt}) 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 KFt(c,{canvasFrame:Krn(d),includeDocumentStyles:!0,size:g}),view:ste(t),size:g,scale:d}}function ate(){return ave()}function DSn(){return!ate()}const zge=new Set;function Yrn(t,n){const s={collect:t,reusableKeys:n?.reusableKeys??[]};return zge.add(s),()=>{zge.delete(s)}}function Zrn(t=null){const n={};for(const s of zge)Object.assign(n,s.collect(t));return n}function Qrn(){const t=[];for(const n of zge)t.push(...n.reusableKeys);return t}let VZ=null;const GI=[];function enn(t){if(VZ=t,GI.length!==0)for(const n of GI.splice(0,GI.length))n.resolve(t)}function tnn(){return new Promise((t,n)=>{GI.push({resolve:t,reject:n})})}function rnn(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 wxt(){return VZ}function nnn(t,n){const s=[],c=[];for(const d of t.rows){const m=inn(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 inn(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 onn=5e3,snn=350,Txt=240;let c_e=null;function ann(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:snn,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:Txt,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:Txt,easing:"ease-out"}),window.setTimeout(S,onn)}const cnn=new Set(["raw","url","worker","sharedworker","inline","init"]),lnn=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],unn=/\.stories\.[cm]?[jt]sx?$/i;function fnn(t){let n;try{n=new URL(t,"http://volter.invalid")}catch{return null}return{path:n.pathname,query:n.search}}function dnn(t){const n=new URLSearchParams(t);for(const s of n.keys())if(cnn.has(s))return!0;return!1}function pnn(t,n,s){if(t.startTime<s)return null;const c=fnn(t.name);if(!c)return null;const{path:d,query:m}=c;if(!d.includes(n)||!lnn.some(A=>d.endsWith(A))||unn.test(d)||d.endsWith("/volter.adapter.ts")||dnn(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 _nn(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=pnn(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 PSn(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 p9t(){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=[],VO=null,$B=[];function ISn(){$B=[],Gk?.disconnect(),Gk=null,QQ=[];const t=p9t();if(!t){VO=null;return}VO=t.now(),typeof PerformanceObserver<"u"&&(Gk=new PerformanceObserver(n=>{QQ.push(...n.getEntries())}),Gk.observe({type:"resource"}))}function NSn(t){const n=p9t();if(!n||VO===null)return VO=null,$B;const s=Gk?[...QQ,...Gk.takeRecords()]:n.getEntriesByType("resource");return Gk?.disconnect(),Gk=null,QQ=[],$B=_nn(s,{projectRoot:t,since:VO}),VO=null,$B}function mnn(){return $B}function OSn(){Gk?.disconnect(),Gk=null,QQ=[],$B=[],VO=null}const eje=new Set;let jY=null;function hnn(t){return eje.add(t),()=>{eje.delete(t)}}function gnn(){return jY||(jY=Promise.all([...eje].map(t=>Promise.resolve().then(t))).then(()=>{}).finally(()=>{jY=null}),jY)}const ynn=500;function Cxt(t){const n=globalThis,s=n.requestIdleCallback;if(typeof s=="function"){const d=s.call(globalThis,t,{timeout:ynn});return()=>n.cancelIdleCallback?.call(globalThis,d)}const c=setTimeout(t,0);return()=>clearTimeout(c)}const hme=new Map;function RSn(t,n){return hme.set(t,n),()=>{hme.get(t)===n&&hme.delete(t)}}function vnn(){return Object.fromEntries([...hme].map(([t,n])=>[t,n()]))}let _9t=null;function FSn(t){_9t=t}function bnn(){return _9t}const Snn=["three","canvas","dom"];function Ext(t){return t.provenance?.source==="boundary"}function xnn(t){return Snn.includes(t)?t:null}function wnn(){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=dPt();if(!d)return c?[c]:[];if(d instanceof hy){const g=d.childAdapters().filter(S=>S.role==="world"&&!Ext(S.adapter)).map(S=>({worldId:S.worldId,surface:xnn(S.kind),adapter:S.adapter}));return c?[c,...g.filter(S=>S.worldId!==n)]:g}if(Ext(d)||d===bnn())return c?[c]:[];const m={worldId:"root",surface:sve(),adapter:d};return c?[c,m]:[m]}const qB=new Map,tje=new Set;let m9t=0;function kxt(){m9t++;for(const t of tje)t()}function MSn(t){return qB.set(t.id,t),kxt(),()=>{qB.get(t.id)===t&&(qB.delete(t.id),kxt())}}function jSn(t){return t?qB.get(t)??null:null}function Tnn(){return[...qB.values()]}function LSn(t){if(t===null)return null;for(const n of qB.values())if(n.kind==="game"&&n.instanceId===t)return n;return null}function BSn(t){return tje.add(t),()=>tje.delete(t)}function $Sn(){return m9t}function CVe(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 Cnn(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 h9t(t){return t.filter(n=>n.failsafeEligible&&n.inlineHiding!==null)}function Enn(t){return t.some(n=>n.hiddenBy!==null)?h9t(t).length>0:null}const knn=4e3;function Ann(t){const n=t.deadlineMs??knn;if(t.framesProduced<=0)return{fire:!1};if(t.hiddenForMs===null||t.hiddenForMs<n)return{fire:!1};if(CVe(t.canvases)===null)return{fire:!1};const s=[...h9t(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 qSn(t){return gme.set(t.id,t),()=>{gme.get(t.id)===t&&gme.delete(t.id)}}function Dnn(){return[...gme.values()]}const pOe=10,l_e=5e3;function Pnn(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 Inn(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 Nnn(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 Onn(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>=pOe?{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 ${pOe}fps floor`,cause:`the visible tab is rendering below the ${pOe}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 Rnn(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 g9t={"edit-mode-static":Pnn,"single-root-scene":Inn,"canvas-revealed":Nnn,"visible-tab-fps-floor":Onn,"play-drew-a-frame":Rnn},Fnn=Object.keys(g9t);function Mnn(t){return Fnn.map(n=>({id:n,...g9t[n](t)}))}function jnn(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 rje=new Set;function Lnn(t){return rje.add(t),()=>{rje.delete(t)}}function Bnn(){for(const t of[...rje])try{t()}catch(n){Qs.error(`a session-sample subscriber threw: ${String(n)}`,"invariant")}}const $nn=5e3;let Aw={frames:0,since:0},UZ=null,zB=null,oR=null;const JZ=new Map;function qnn(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 znn="editor-canvas";function Vnn(t){const n=t.style;return n.display==="none"?"display":n.visibility==="hidden"?"visibility":n.opacity!==""&&Number.parseFloat(n.opacity)===0?"opacity":null}function y9t(){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:qnn(n),inlineHiding:Vnn(n),failsafeEligible:c!==znn&&!n.closest(".monaco-editor")}})}function Unn(){const t=Tnn();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 PO=new Map,LY=new Map;function Jnn(){const t=Dnn(),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 PO.delete(d),{id:d,label:m,advanced:null,unavailable:`its content clock threw: ${String(J)}`,...k}}if(A===null)return PO.delete(d),{id:d,label:m,advanced:null,unavailable:"its content clock is temporarily unavailable",...k};const F=A,D=PO.get(d);return PO.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[...PO.keys()])n.has(c)||PO.delete(c);for(const c of[...LY.keys()])n.has(c)||LY.delete(c);return s}function Wnn(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,...Unn()}:null;return{mode:n?"play":"edit",loops:[...YMe().map(g=>({name:`${g.id} session`,running:g.mounted()})),...YMe().map(g=>({name:`${g.id} playing`,running:g.playing()}))],designTimeSurfaces:Jnn(),presentedThreeRoots:dPt()?wnn().filter(g=>g.surface==="three").map(g=>g.worldId):null,...(()=>{const g=y9t();return{canvasHiddenBy:CVe(g),canvasHidesItself:Enn(g),hiddenCanvases:Cnn(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 v9t(){return Mnn(Wnn())}let mB=null;const Axt=new WeakSet;function Hnn(t,n){const s=CVe(t);if(s==null){mB=null;return}if(mB===null){mB=n;return}const c=Ann({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||Axt.has(d)||(Axt.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 Gnn(){const t=v9t();for(const n of t){const s=jnn(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 Knn(){if(zB!==null)return Dxt;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),Bnn(),Hnn(y9t(),Date.now()),Gnn(),Aw={frames:0,since:Date.now()}},$nn),Dxt}function Xnn(){Aw={frames:0,since:zB===null?0:Date.now()},oR=null,mB=null,JZ.clear(),PO.clear()}function Dxt(){UZ!==null&&cancelAnimationFrame(UZ),zB!==null&&clearInterval(zB),UZ=null,zB=null,Aw={frames:0,since:0},oR=null,mB=null,JZ.clear()}let nje=null;function Ynn(t){nje=t}function EVe(){return nje?(nje(),!0):!1}let kVe=[];const ije=new Set;function Pxt(t){kVe=t;for(const n of ije)n()}function Znn(){return kVe}function Qnn(t){return ije.add(t),()=>ije.delete(t)}function ein(t){const n=kVe.find(s=>s.id===t);return n?(n.run(),!0):!1}let eee=null;function tin(t){eee=t}function rin(t){eee&&Promise.resolve(eee(`${t}.focus`)).catch(()=>{})}const nin=/^volter\.([^.]+)\.(.+)$/;async function iin(t,n){if(eee)return await eee(t,n);const s=nin.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(()=>m4r);return{invokeViewVerb:d}},[]);return c(s[1],s[2],n)}const AVe=[{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 oin(t){const{liveCanvasFrame:n}=await lo(async()=>{const{liveCanvasFrame:s}=await Promise.resolve().then(()=>vrn);return{liveCanvasFrame:s}},void 0);return n(t)}async function sin(...t){const{capturePlayComposite:n}=await lo(async()=>{const{capturePlayComposite:s}=await Promise.resolve().then(()=>_rn);return{capturePlayComposite:s}},void 0);return n(...t)}async function Ixt(){return lo(()=>Promise.resolve().then(()=>QDt),void 0)}async function ain(){return lo(()=>Promise.resolve().then(()=>ccn),void 0)}function cin(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 lin(t){if(t){if(!bC().some(n=>n.id===t)){const n=t.startsWith(Mme);if(n&&(await(await Ixt()).refreshProjectToolContributions(),await cin(t)),!bC().some(s=>s.id===t)){const s=bC().map(d=>d.id),c=n?(await Ixt()).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 b9t(t){const n=AVe.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(qBe(s),!await CC(()=>sDt()===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 uin(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 fin(t){let n=!1;if(await CC(()=>(n=VMe(t.id),n||dxt(t.id)!==null),PR),n)return Pp();const s=dxt(t.id);throw s?new Error(s):new Error(`World document is not registered: ${t.id}`)}async function din(t,n){const s=g=>g.filter(S=>S.id===n||S.label===n);let c=[];if(!await CC(()=>{const g=_Be(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 pin(t,n){const s=await Yye(n.kind,t,n);if(s!==null)return s;let c=!1;if(await CC(()=>(c=SN(n.id)||X0(n.id),c||pxt(n.id)!==null),PR),c)return n.story!==void 0&&await din(n.id,n.story),n.id;const d=pxt(n.id);throw d?new Error(d):new Error(`Workspace document is not available: ${n.id}`)}async function _in(t,n){const s=await Yye(n.kind,t,n);if(s===null){const{kind:c,...d}=n,m=xkr();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 min(t){const n=okr();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 hin(t,n){if(!n)return Pp();if(!gvr(n.kind))throw new Error(`present-view does not know the document kind "${String(n.kind)}". An EditorView addresses a document by one of: ${oCt.join(", ")}. `+min(String(n.kind)));switch(n.kind){case"scene":return uin();case"world":return fin(n);case"asset":case"tool":case"document":case"story":case"project-tool":case"generation":return _in(t,n);case"workspace":return pin(t,n)}}function gin(t){const n=t.indexOf(",");return{base64:n>=0?t.slice(n+1):t,mimeType:"image/png"}}const Nxt=cve;function yin(t,n,s){if(!s?.degenerate)return null;const c=_Ve();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 S9t(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{...gin(J),document:g,view:m,source:"object3d-document"}}const k=c.id===a0?s9t()??Nxt(c.id):Nxt(c.id);if(!k)throw new Error(`Active document surface is not mounted: ${c.id}`);const A=u9t(k),F=await sin(A?.container??k,{canvasFrame:A?.canvasFrame??oin,includeDocumentStyles:c.id!==a0&&!A}),D=yin(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 vin="workspace:scene";function bin(t){return s2(t)??s2(vin)}function Sin(t,n,s,c){const d=s2(n),m=bin(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)?kAr(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=>!Rmt.includes(F));if(c.length>0)throw new Error(`present-view does not know ${c.map(F=>`"${F}"`).join(", ")}. An EditorView carries: ${Rmt.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)}.`);QBe(n.style)}if(n.workspace!==void 0){if(!kB(n.workspace))throw new Error(`present-view requires a workspace of ${WBe().join(", ")}, got ${String(n.workspace)}.`);if(zS()!==n.workspace){const F=xDt();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 hin(t,n.document);await lin(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),Sin(t,g,n,m),n.panel!==void 0&&await b9t(n.panel);const k=aCt(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 ain()).showEditorPresentationNotice({presented:A,previousView:d}),A}const Uge=new Map;let x9t=0;const oje=new Set;function w9t(){x9t+=1;for(const t of oje)t()}function xin(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}),w9t())}function win(t){Uge.delete(t)&&w9t()}function Tin(t){const n=[];for(const s of Uge.values())s.assetPath===t&&n.push(...s.actions);return n}function Cin(t){return oje.add(t),()=>oje.delete(t)}function Oxt(){return x9t}const Ein=[],Rxt=new Set;let kin=0;function Ain(t){for(const n of Ein)if(n.match(t))return n;return null}function Din(t){return Rxt.add(t),()=>{Rxt.delete(t)}}function Fxt(){return kin}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=[],sje=new Set,BY=new Map;let T9t=0;function _Oe(){T9t++;for(const t of sje)t()}function Pin(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(_Oe)),_Oe(),()=>{const s=eD.indexOf(t);s<0||(eD.splice(s,1),BY.get(t)?.(),BY.delete(t),_Oe())}}const Iin=[];function Nin(){return eD.length===0?Iin:eD}function C9t(t){return sje.add(t),()=>{sje.delete(t)}}function Jge(){return T9t}function E9t(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 Oin(){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 Rin(t,n){return Ye.useEffect(()=>()=>win(t),[t]),Ye.useCallback(s=>{n!==null&&xin(t,n,s)},[t,n])}function Fin({id:t,title:n,file:s,tool:c,Component:d}){Ye.useSyncExternalStore(K0e,zQ),Ye.useSyncExternalStore(Dye,cN,cN),Ye.useSyncExternalStore(Fye,lN,lN);const m=Oin(),g=Rin(t,m?.path??null),S=Ye.useRef(null),k=Ye.useCallback(F=>{S.current?.(),S.current=F===null?null:DBe(`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:{...GCr,marginBottom:4},children:[q.jsx(dc,{icon:Kk.tool.extension,tone:"muted",style:{marginRight:4}}),n]}),q.jsx(PBe,{file:s,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:hBe,account:nBe(),play:Rye(),asset:m,setActions:g,notify:A,work:k})})]})}function Min(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 k9t=32,aje=new Set,Mxt=new Map,jxt=new Map;let sR=null,WZ=null,A9t=0,cje=0,VB=0,xN=0,Lxt=!1,pD={url:null,progress:0,playing:!1};function jin(){for(const t of aje)t()}function I$(t){pD.url===t.url&&pD.playing===t.playing&&Math.abs(pD.progress-t.progress)<.002||(pD=t,jin())}function DVe(){return sR??=new AudioContext,sR}function Lin(){if(Lxt||typeof window>"u")return;Lxt=!0;const t=()=>{if(!sR)return;const n=pD.url,s=xN;sR.resume().then(()=>{n&&s===xN&&!WZ&&sR?.state==="running"&&I9t(n,s)})};window.addEventListener("pointerdown",t,{capture:!0}),window.addEventListener("keydown",t,{capture:!0})}function PVe(){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 D9t(){if(VB=0,!pD.playing||!sR||cje<=0)return;const t=Math.min(1,(sR.currentTime-A9t)/cje);I$({url:pD.url,progress:t,playing:t<1}),t<1&&typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(D9t))}function Bin(t,n,s){if(s!==xN)return;PVe();const c=DVe(),d=c.createBufferSource(),m=c.createGain();m.gain.value=1,d.buffer=t,d.connect(m),m.connect(c.destination),d.onended=()=>{s===xN&&I$({url:n,progress:1,playing:!1})},d.start(),WZ=d,A9t=c.currentTime,cje=t.duration,I$({url:n,progress:0,playing:!0}),typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(D9t))}async function P9t(t){const n=Mxt.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 DVe().decodeAudioData(d.slice(0))})().catch(()=>null);return Mxt.set(t,s),s}async function I9t(t,n){Lin();const s=await P9t(t);if(n!==xN)return;if(!s){I$({url:t,progress:0,playing:!1});return}const c=DVe();c.state==="suspended"&&(await c.resume(),n!==xN)||c.state==="running"&&Bin(s,t,n)}function $in(t){return aje.add(t),()=>aje.delete(t)}function qin(){return pD}function zin(t){const n=++xN;PVe(),I$({url:t,progress:0,playing:!0}),I9t(t,n)}function Vin(t){t&&pD.url!==t||(xN+=1,PVe(),I$({url:null,progress:0,playing:!1}))}function Uin(t,n=k9t){const s=`${t}#${n}`,c=jxt.get(s);if(c)return c;const d=P9t(t).then(m=>m?Min(m.getChannelData(0),n):Array.from({length:n},()=>0));return jxt.set(s,d),d}let _Z=[];function zSn(t){return _Z=[..._Z,t],()=>{_Z=_Z.filter(n=>n!==t)}}function N9t(t){return _Z.find(n=>n.accepts(t))??null}const IVe={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)"},Jin={folder:fee,model:z0r,prefab:GB,component:aLe,audio:uLe,image:P0r,video:$0r,json:dLe,unknown:VTt,source:nCt};function vD({kind:t,size:n=24}){return q.jsx(dc,{icon:Jin[t],style:{fontSize:n,color:IVe[t]}})}const Win=100,Hin=50,Gin=new ZPt(t=>{const n=N9t(t);return n?n.render(t):Promise.reject(new Error(`No model preview loader for ${t}.`))},2);function O9t(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 E$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=Gin.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 R9t({url:t}){const n=O9t(t,Win);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:IVe.model,borderRadius:"50%"}})})}function Kin({url:t,name:n}){const[s,c]=Ye.useState(()=>Array.from({length:k9t},()=>.15)),d=Ye.useSyncExternalStore($in,qin);Ye.useEffect(()=>{let S=!1;return Uin(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=IVe[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 F9t(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 VSn(t,n,s,c,d){return t==="fit"?F9t(n,s,c,d):t}function Xin(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=rZr(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 M9t({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?F9t(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||Xin(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 j9t={fontSize:11,color:Zf[3],marginBottom:2},Yin={fontSize:11,color:Zf[1],wordBreak:"break-all"};function mOe({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 zDt().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(Fin,{id:s.id,title:s.title,file:s.file,tool:s.tool,Component:s.Component},`${s.id}:${s.version}`):null})}function Bxt(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:j9t,children:t}),q.jsx("div",{style:Yin,children:n})]})}function Zin({asset:t}){const n=t.capabilities?.editor==="environment";Ye.useSyncExternalStore(C9t,Jge,Jge);const s=t.componentPreview,c=s?E9t({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:xBe.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(eon,{path:t.path,name:t.name}):t.kind==="video"?q.jsx(Qin,{path:t.path}):t.kind==="model"?q.jsx(R9t,{url:t.path}):q.jsx(wR,{kind:t.kind,name:t.name,variant:"cell"})})}function Qin({path:t}){return q.jsx("video",{src:t,muted:!0,preload:"metadata",style:{width:"100%",height:"100%",objectFit:"contain"}})}function eon({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(`/${MRt(s)}`).then(S=>S.ok?S.text():null).then(S=>{if(g||!S)return;const k=Lze(S);m(k?.frames.find(A=>A.name===c)??null)}).catch(()=>{g||m(null)}),()=>{g=!0}},[c,s]),d?q.jsx(M9t,{sheetUrl:`/${s}`,frame:d,maxEdge:96}):q.jsx("img",{src:t.split("#")[0],alt:n,style:{width:"100%",height:"100%",objectFit:"contain"}})}function ton({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(`/${MRt(c)}`).then(S=>S.ok?S.text():null).then(S=>{if(m||!S)return;const k=Lze(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 ron(){Ye.useSyncExternalStore(Din,Fxt,Fxt);const t=X0e();if(!t)return null;const n=Ain(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(mOe,{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(GRt,{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(mOe,{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(ton,{asset:t}),q.jsx("div",{style:{...j9t,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:Bxt(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:Bxt(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(mOe,{asset:t})]})}function non(t){return Tin(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 ion(){const t=X0e();if(t===null)return null;const n=Lye();return n&&(n.adapter!==null||n.nodeId!==null)?null:{quickActions:non(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:VRe,title:"Preview",icon:iB,order:A4t,body:{kind:"preview",render:()=>q.jsx(Zin,{asset:t})}},{id:"asset-selection",title:"Asset",icon:R$,order:dQ,body:{kind:"custom",render:()=>q.jsx(ron,{})},keepMounted:!0}]}}const oon={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 son(t){const n=oon[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 aon={ok:q0r,gap:zTt,na:ovr,info:R$},con={ok:Go.semantic.success,gap:Go.semantic.warning,na:Go.content.dim,info:Go.content.dim};function lon({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:con[t.status],paddingTop:1},children:q.jsx(dc,{icon:aon[t.status]})}),q.jsxs("div",{style:{minWidth:0},children:[q.jsx("div",{style:{color:Go.content.primary,fontWeight:600},children:son(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 uon({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(lon,{row:s},s.seam))]})}function fon(t){return{id:"ingest-coverage",title:"Ingest coverage",icon:XTt,order:9e3,description:`${t.summary.gaps} gap${t.summary.gaps===1?"":"s"}`,defaultOpen:!0,testId:"ingest-coverage-section",body:{kind:"custom",render:()=>q.jsx(uon,{report:t}),data:{summary:t.summary,rows:t.rows}}}}function don(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 L9t="inspectorPresentation";function pon(t){return t==="card"||t==="column"||t==="properties"}function $xt(){const t=a3r(L9t);if(!t||typeof t!="object")return{};const n={};for(const[s,c]of Object.entries(t))pon(c)&&(n[s]=c);return n}let UB=null,lve=0;const UO=new Set;let hOe=null;nPt().then(()=>{UB=null,lve++;for(const t of UO)t()});function _on(){lve++;for(const t of UO)t()}function B9t(){if(UB===null){if(!s3r())return $xt();UB=$xt()}return UB}function lje(t){return B9t()[t]??null}function NVe(t,n){if(rin("volter.properties"),lje(t)!==n){UB={...B9t(),[t]:n},lve++,c3r(L9t,UB);for(const s of UO)s()}}function mon(t){return UO.size===0&&(hOe=r3r(_on)),UO.add(t),()=>{UO.delete(t),UO.size===0&&(hOe?.(),hOe=null)}}function qxt(){return lve}function hon(t,n,s=null){return n??s??t}function $9t(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 uje(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function gon(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?uje(d.kind):null}function yon(t){const n=uBe();if(n!==null&&n.documentId===Pp())return"asset-lab";const{adapter:s,surface:c}=Cm(t);if(c)return c;if(s instanceof hy){const d=s.childAdapters(),m=d.length===1?uje(d[0]?.kind??""):null;if(m)return m;const g=gon(s,t);if(g)return g}return uje(sve()??"")??"three"}function von({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 q9t(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 bon([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,De=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,De),we,0]}function OVe(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]=bon(S);return[k*bD,A*bD,F*bD]}function Son(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:q9t(s[0]/bD,s[1]/bD,s[2]/bD)}:{...c,[n]:[s[0],s[1],s[2]]}}function xon(t,n,s){const c=OVe(t.rotation);return c[n]=s,{position:[...t.position],rotation:q9t(c[0]/bD,c[1]/bD,c[2]/bD),scale:[...t.scale]}}const won={x:"#e0726d",y:"#83bd66",z:"#6390dd"};function gOe({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:won[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 Ton({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?.(xon(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(JTr,{children:[q.jsx(gOe,{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(gOe,{axes:t==="2d"?[{axis:2,name:"z"}]:A,label:t==="2d"?"Rotation (degrees)":"Rotation",testidPrefix:"ingest-rotation",values:OVe(n.rotation),step:1,precision:1,...$("rotation"),onBegin:m,onPreview:g&&J(g),onCommit:J(S)}),q.jsx(gOe,{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 zxt(t){return t.revertsTo===void 0?`Revert ${t.label} to default`:`Revert ${t.label} to ${t.revertsTo}`}function Con({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(p4t,{...c,ref:g,value:d??t,onChange:A=>{S.current===null&&(S.current=t),m(A.target.value),s?.(A.target.value)}})}async function z9t(t,n=HRt){const s=await Promise.all(n.map(c=>Eon(t,c)));return{assets:s.flatMap(c=>c.assets),failedListings:s.flatMap(c=>c.failedListings)}}async function Eon(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 kon(t,n){const s=t.filter(S=>S.root==="public"),c=Aon(s),d=(await Promise.all(c.map(async S=>{const k=await n(S.path);if(!k)return null;const A=Lze(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=Vxt(S.path);for(const F of YYr(k.image))m.add(A?`${A}/${F}`:F);for(const F of s)wMe(F.path)===wMe(S.path)&&m.add(F.path)}const g=d.flatMap(({sidecar:S,parsed:k})=>{const A=Vxt(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 Aon(t){const n=new Map;for(const s of t){if(!/\.json$/i.test(s.path))continue;const c=wMe(s.path),d=n.get(c);(!d||BSt(s.path)>BSt(d.path))&&n.set(c,s)}return[...n.values()]}function Vxt(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function V9t(t){const n=ig(t).kind;return n==="model"||n==="image"||n==="video"||n==="audio"?n:"other"}function Don(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 Pon(t){return(t.surface==="three"?0:t.surface==="canvas"?10:t.surface==="dom"?20:30)+(t.exported?0:4)}const Ion=1e4,Non={paths:[],failures:[]};let $Y=null;async function Oon(){const t=await z9t(eve,["public"]);return{paths:t.assets.filter(n=>V9t(n.entry.name)==="image").map(n=>n.path).sort((n,s)=>n.localeCompare(s)),failures:t.failedListings}}function Ron(){const t=Date.now();return(!$Y||t-$Y.at>Ion)&&($Y={at:t,scan:Oon().catch(n=>($Y=null,{paths:[],failures:[n instanceof Error?n.message:String(n)]}))}),$Y.scan}function Fon(t){const[n,s]=Ye.useState(Non);return Ye.useEffect(()=>{let c=!0;return Ron().then(d=>{c&&s(d)}),()=>{c=!1}},[t]),n}const Mon={width:64},Uxt={width:KCr,fontSize:"var(--volter-font-md)",color:Go.content.muted};function AI(t){return`ingest-prop-${t.replace(/\./g,"-")}`}function jon({field:t,io:n,value:s}){const{paths:c,failures:d}=Fon(!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(XCr,{testId:AI(t.path),value:s,options:c,previewUrlFor:F=>`/${F}`,disabled:t.readonly,note:k??A,onChange:S})}function Lon({field:t,io:n}){const s=t,c=n.get(s.path),d=zRe(c)?void 0:c,m=s.defaulted===!0&&d===void 0,g=s.readonly?IBe(s):void 0,S=s.resettable?q.jsx(dm,{"data-testid":`ingest-revert-${s.path.replace(/\./g,"-")}`,"aria-label":zxt(s),title:zxt(s),onClick:()=>n.remove?.(s.path),children:q.jsx(dc,{icon:VOe})}):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?{...Uxt,color:Go.content.dim}:Uxt,title:g??(s.defaulted?`${s.label} — default (not set here)`:s.label),children:s.label}),s.type==="color"?q.jsx(Con,{"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(jRe,{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:Mon}):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(HCr,{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(jon,{field:s,io:n,value:typeof d=="string"?d:""}):s.type==="json"?q.jsx(TBe,{"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(jRe,{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 U9t({fields:t,io:n}){return q.jsx(q.Fragment,{children:t.map(s=>q.jsx(Lon,{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 Bon=Ye.lazy(()=>lo(()=>import("./InspectorCanvasPreview-BrFjhoiD.js"),__vite__mapDeps([264,1,2,3,4])).then(t=>({default:t.InspectorCanvasPreview})));function USn({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 $on({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 qon({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(Bon,{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 zon(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Von(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:zon(d),properties:c.get(d)}))}}function Uon(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 Jon=14,Won=[[/physic|rigid|collid/i,U0r],[/material/i,g0r],[/light/i,sLe],[/camera/i,cye],[/audio|sound|music/i,uLe],[/player|character|humanoid|person/i,V0r],[/anim|state|machine/i,BTt]];function Hon(t){for(const[n,s]of Won)if(n.test(t))return s;return GB}function Gon(t){return n=>Ye.createElement($on,{source:t.picture.source,entry:t.picture.entry,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Kon(t){return n=>Ye.createElement(qon,{capture:t.capture,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Xon(t){return t.media?t.media.preview?t.media.preview({displayName:t.displayName,previewKey:t.previewKey,actions:t.actions}):null:t.canvasCapture?Kon({capture:t.canvasCapture,previewKey:t.previewKey,actions:t.actions}):t.picture?Gon({picture:t.picture,previewKey:t.previewKey,actions:t.actions}):null}function yOe(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 Yon={position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]};function Zon(t,n,s,c){if(P4t(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 J9t(t,n,s,c){const d=new Set,m=new Map,g=[];for(const S of t){const k=Zon(S,n,s,c).filter(F=>!d.has(F.id)),A=(P4t(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 W9t(t,n,s){return s===void 0?[...t]:t.filter(c=>n.get(c.id)===s.owner||s.builtins.includes(c.id))}function fje(t){const{adapter:n,nullSubject:s}=t,{sections:c,claimed:d,owners:m}=J9t(n?t.contributions??[]:[],n,null,null),g=W9t([...(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:NBe(t.surface)},quickActions:s?.quickActions??[],related:[],sections:g}}function Qon(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 esn(t){const{adapter:n,nodeId:s,node:c,contributions:d,onEdit:m}=t;if(s===null)return fje({nullSubject:t.nullSubject??null,surface:t.surface,contributions:d,adapter:n,rail:t.rail});const{sections:g,claimed:S,owners:k}=J9t(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=yPt(n,s,en,ii);return m(),No},...n.inspector?.remove?{remove:en=>{const ii=F3r(n,s,en);return m(),ii}}:{}},F=n.inspector?.properties(s)??[],D=F.find(en=>en.path==="name"),{ungrouped:J,groups:$}=Von(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?oLe:pLe,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:$Tt,placement:"identity",run:async()=>{await hPt(n,s),m()}});const Pe=new Map;Pe.set(R5e,se);for(const en of $)Pe.set(Uht(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?E9t({name:qe,path:X?.anchored===!0?X.file:"",surface:"canvas"}):null,Pt=ue.filter(en=>en.placement==="preview"),Wt=Xon({media:we,canvasCapture:t.canvasPreview,picture:bt,displayName:c?.label??s,previewKey:s,actions:Pt});!S.has(VRe)&&Wt!==null&&be.push({id:VRe,title:"Preview",icon:aR,order:A4t,body:{kind:"preview",render:Wt}});const zt=Uon(n,s),ft=!S.has(Vht)&&zt!==null,tr=ft?$.find(en=>en.name==="Transform")?.properties??[]:[];if(ft){const en=n.transforms?.get(s)??Yon,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:OVe(en.rotation),scale:[...en.scale]};be.push({id:Vht,title:"Transform",icon:WTt,order:hEr,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[yOe(En)],set:(En,cs)=>{if(!n.transforms)return;const On=Son(en,yOe(En),cs);jFe(n,s),z_e(n,s,On);const ji=LFe(n,s);return m(),ji},...n.transforms?.remove?{remove:En=>{const cs=mPt(n,s,yOe(En));return m(),cs}}:{}}},render:()=>[Ye.createElement(Ton,{key:"channels",dimensions:zt,transform:en,readOnly:!n.capabilities.transform,channelEditability:No,...ii?.note?{note:ii.note}:{},onBegin:()=>{jFe(n,s)},onPreview:En=>{z_e(n,s,En)},onCommit:En=>{z_e(n,s,En),LFe(n,s),m()}}),...tr.length>0?[Ye.createElement(U9t,{key:"rows",fields:tr,io:A})]:[]]}})}S.has(R5e)||(se.length>0&&be.push({id:R5e,title:"Properties",icon:HTt,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:Uht(en.groupId),title:en.name,icon:Hon(en.name),order:D4t+ii,description:No>0?`${No} set of ${en.properties.length}`:`${en.properties.length} properties`,defaultOpen:No>0&&en.properties.length<=Jon,testId:`ingest-group-${en.groupId}`,body:{kind:"fields",fields:en.properties,io:A}})}));const Qt=t.stories;!S.has(k4t)&&Qt&&be.push(tsn(Qt)),be.push(...g.map(en=>Qon(en,A,Pe))),be.sort((en,ii)=>en.order-ii.order);const Tt=W9t(be,k,t.rail),vn=EPt(n,s),Yr=kPt(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:NBe(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 tsn(t){return{id:k4t,title:t.title??"Stories",icon:_Le,order:gEr,body:{kind:"custom",render:()=>Ye.createElement(von,{stories:t.stories,activeStoryId:t.activeStoryId,onApplyStory:t.onApplyStory,isolation:t.isolation,unavailableReason:t.unavailableReason??null})}}}const rsn=["project-tool","tool-contribution"];function nsn(t){const{activeDocumentKind:n,documentSelection:s}=t;return n===null||!rsn.includes(n)?!1:s===null}function Jxt(t){const{subject:n,surface:s,available:c,override:d,workspaceDefault:m=null,columnShown:g=!0}=t,S=n.presentation.preferred??NBe(),k=hon(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 H9t="game";function isn(t){const n=t.projectName?.trim();return{id:H9t,title:n&&n.length>0?n:"Game",kindLabel:"Game",...t.instanceName?{note:{text:t.instanceName}}:{},sections:[]}}function JSn(t){return S$e({match:()=>Pp()===a0,describe:()=>isn(t())})}const osn=3,ssn=Object.freeze({none:!0});function asn(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>=osn)return{kind:"opaque",type:Wxt(t)};if(Array.isArray(t))return t.map(m=>tee(m,n+1));const c=t;if(!asn(c))return{kind:"opaque",type:Wxt(c)};const d={};for(const[m,g]of Object.entries(c))g!==void 0&&(d[m]=tee(g,n+1));return d}function Wxt(t){return t.constructor?.name??"object"}function Hxt(t,n){let s;try{s=n.get(t.path)}catch{s=void 0}return{path:t.path,label:t.label,type:t.type,...zRe(s)?{mixed:!0}:{},...!zRe(s)&&s!==void 0?{value:tee(s)}:{},...t.defaulted!==void 0?{defaulted:t.defaulted}:{},...t.readonly!==void 0?{readonly:t.readonly}:{},...t.readonly?{readonlyReason:IBe(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 Gxt(t){const n={};for(const[s,c]of Object.entries(t))c!==void 0&&(n[s]=tee(c));return n}function csn(t){const n=t.body;if(n.kind==="fields")return{kind:"fields",fields:n.fields.map(s=>Hxt(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:Gxt(n.data)};if(n.kind==="custom"&&n.editable!==void 0){const s=n.editable;return{kind:"fields",fields:s.fields.map(c=>Hxt(c,s.io)),...n.data!==void 0?{data:Gxt(n.data)}:{}}}return{kind:n.kind,id:t.id,title:t.title}}function lsn(t){return{id:t.id,title:t.title,order:t.order,...t.description!==void 0?{description:t.description}:{},body:csn(t)}}function usn(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(lsn)}}const Kxt=new WeakMap;function fsn(t){if(!t.capture)return null;const n=Kxt.get(t);if(n)return n;const s=async c=>t.capture?.(c)??null;return Kxt.set(t,s),s}function dsn(t){return typeof t.previewImage=="function"}function psn(t,n,s){if(!n)return null;if(s==="asset-lab"){const d=s2(Pp());return d?fsn(d):null}let c=t;if(t instanceof hy){const d=t.ownerOf(n);c=t.childAdapters().find(m=>m.worldId===d)?.adapter??t}return dsn(c)?d=>c.previewImage(n,d,d):null}function _sn(){const t=Pp();if(t===null)return null;const n=Etn(t);if(n===void 0)return null;const s=PN(n.kind);return s===void 0||s.inspectorRail!=="owned"?null:{rail:{owner:s.owner,builtins:s.inspectorBuiltins??[]}}}function msn(t){const{store:n,adapter:s,documentSelection:c,surface:d}=t,m=ion();if(m!==null)return{subject:fje({nullSubject:m,surface:d}),available:!0};const g=don(c,n.selectedEntityIds,s),S=g?s.hierarchy.node(g):null;if(g!==null&&S===null)return{subject:fje({nullSubject:null,surface:d}),available:!1};const k=()=>n.notifyIngestEdit(),A=g?null:a4r({adapter:s,surface:d,store:n,onEdit:k}),F=g?S?Hht(S,s):[]:Hht(null,s,{nullSubjectId:A?.id??null}),D=g?Oze(s,g):null;return{subject:esn({adapter:s,nodeId:g,node:S,surface:d,contributions:F,...g?{}:{nullSubject:A},media:d==="asset-lab"?null:D,canvasPreview:psn(s,g,d),assetDocument:D?.assetDocument??null,stories:r4r(s,S,g),..._sn()??{},...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=yon(t),{adapter:s,documentSelection:c}=Cm(t),d=msn({store:t,adapter:s,documentSelection:c,surface:n}),{subject:m}=d,g=d.available&&(m.id!==H9t||m.sections.length>0)&&!nsn({activeDocumentKind:TC()?.descriptor.kind??null,documentSelection:c}),S=Pp()===a0?yVe():null;if(S){const k=fon(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 Jxt({subject:A,surface:n,available:!0,override:lje(n),workspaceDefault:mD().inspector??null,columnShown:Cgt("properties")!==!1})}return Jxt({subject:m,surface:n,available:g,override:lje(n),workspaceDefault:mD().inspector??null,columnShown:Cgt("properties")!==!1})}function dve(t){const{subject:n,surface:s,presentation:c,available:d}=fve(t);return d?usn(n,{surface:s,presentation:c}):ssn}async function hsn(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 gsn(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 ysn(t,n,s){const c=G9t(t,n);gsn(c.field,s);const d=await c.io.set(n,s)??Lhe;return{subject:dve(t),write:d}}function G9t(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: ${IBe(S.field)}`);return S}class dje extends Error{constructor(n){super(n),this.name="InspectionRemovalUnavailableError"}}async function vsn(t,n){const s=G9t(t,n);if(s.field.resettable!==!0)throw new dje(`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 dje(`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 RVe=new Map;let K9t=[];const pje=new Set;function X9t(){K9t=[...RVe.values()];for(const t of pje)t()}function WSn(t){return pje.add(t),()=>pje.delete(t)}function HSn(t){RVe.set(t.rootId,t),X9t()}function GSn(t){RVe.delete(t)&&X9t()}function Y9t(){return K9t}function bsn(){const t=Y9t();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 Ssn(t){return t.liveMounted?t.livePlaying?t.storePlayState==="paused"?"paused":"playing":"paused":"stopped"}async function xsn(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 wsn(t){let n=VQ().length>0;const s=IRt(()=>{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(){fkr(Wge)}function _ve(){vC(Wge)}const Hge=new Map;function KSn(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 XSn(t){Hge.delete(t)}function Tsn(){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 Csn=new Set(["state","stateAll","providers","commands","events","snapshot"]);function Esn(t){if(t.type!=="bridge-call")return[];const n=t.method;if(typeof n!="string"||!Csn.has(n))return[];const s=t.instance;try{const c=Xwr(s).debug;if(c===void 0)return[];const d=[C3t(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 ksn(t,n,s){const c=Esn(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":Kvr(t.type)??Hvr(t.type),playFullReport:n&&!d&&c.length>0?"explicit":n&&t.type==="bridge-call"&&t.method==="invoke"?"if-content-changed":"none"}}function Asn(t,n,s,c){return t==="none"?!1:!(t==="if-content-changed"&&n==="none"&&s===c)}function Xxt(t,n){const s=nq(t);return s.hierarchy.node(n)!==null||Oze(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 vOe(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 Dsn(){return typeof document>"u"?null:{visibility:document.visibilityState,focused:document.hasFocus(),reportedAt:Date.now()}}const Psn=["entities","entityCount","ontologyInvariants"];function Isn(t){const n={...t};for(const s of Psn)delete n[s];for(const s of Qrn())delete n[s];return{...n,_statePatch:!0}}function Yxt(t,n=null){const s=VQ(),c=Pp(),d=Mze(t),m=w4t.getSnapshot(),g=n?.entities??Y0e(t);return{playState:Ssn({storePlayState:t.playState,liveMounted:bVe(),livePlaying:ave()}),mountFailures:s.map(S=>({...S})),storyFailures:rq().flatMap(S=>S.ok?[]:[{modulePath:S.modulePath,error:S.error}]),moduleSplits:mnn().map(S=>({path:S.path,urls:[...S.urls]})),adapter:u0(),readiness:Y9t().map(S=>({...S})),readinessWarning:bsn(),worldAdoption:Tsn().map(S=>({...S})),presence:Dsn(),pageErrors:Nsn(),consoleErrors:Osn(),sessionErrors:Rsn(),sessionWarnings:Fsn(),rendererResources:{...vnn()},ontologyInvariants:n?.ontologyInvariants??v9t().map(S=>({...S})),...Zrn(n),selectedEntityId:d[0]??null,selectedEntityIds:d,selectedCreationSite:UYr(t),selectedWriteAnchorKind:JYr(t),activeViewportTab:t.activeViewportTab,activeDocumentId:c,activeUtilityId:lkr(),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&&YRt(S)?S:"__inspector__"})(),entityCount:g.length,savePath:Fze(t),saveState:NRt(t),entities:g,viewportActivationTimings:hTr()}}function Z9t(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 FVe(t){const n=pVe();return!n||t<n.startedAt?!1:n.endedAt===null||t<=n.endedAt}function Nsn(){return Qs.getEntries().filter(t=>t.level==="error"&&t.source==="runtime"&&FVe(t.timestamp)).slice(-100).map(t=>t.count>1?`${t.message} (×${t.count})`:t.message)}const Zxt=200;function Osn(){return MVe(Qs.getEntries().filter(t=>t.level==="error"&&t.source!=="runtime"&&FVe(t.timestamp)))}function MVe(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>Zxt?`${c.message.slice(0,Zxt)}…`:c.message;return`${d}${g}${m}`});return{count:n,recent:s}}function Rsn(){return MVe(Qs.getEntries().filter(t=>t.level==="error"&&!FVe(t.timestamp)))}function Fsn(){return MVe(Qs.getEntries().filter(t=>t.level==="warn"))}async function Msn(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 v4t(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 jsn(t,n,s){if(HYr(n.type),EYr()&&n.type!=="stop")return{ok:!1,error:"Video export owns this paused run. Stop it to cancel before another command."};const c=hVe(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 GYr(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 Z9t(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 gnn(),{ok:!0};case"select":{const g=n.id??null;if(g!==null){const S=Xxt(t,g);if(S)return{ok:!1,error:S}}vOe(t,g?[g]:[],s);break}case"select-multiple":{const g=n.ids;for(const S of g){const k=Xxt(t,S);if(k)return{ok:!1,error:k}}vOe(t,g,s);break}case"select-all":{vOe(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 b9t(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=sN(n.path,g);if(!await ZRt(S,g))return{ok:!1,error:`Asset document did not finish mounting its Inspector: ${S}`};break}case"close-asset-tab":{const g=n.key;YRt(g)&&EN(g);break}case"toggle-command-palette":EVe();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 ${WBe().join(", ")}, got ${String(g)}.`};if(zS()===g)return{ok:!0,data:{workspace:g,applied:!0}};const S=xDt().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)}.`};QBe(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}"`} (${mgt(g).join("; ")}).`,data:{style:k,differences:mgt(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."};e$e(S,k)}const A=n.preset;return A!==void 0&&(typeof A!="string"||!DAr(S,A))?{ok:!1,error:`viewport-presentation \`preset\` must be one of: ${ggt().map(F=>F.id).join(", ")||"(none registered)"}.`}:{ok:!0,data:{presentation:t$e(S),binding:M_e(S),bound:OAr(),lastDraw:NAr(S),presets:CAr().map(F=>F.id),viewPresets:ggt().map(F=>F.id),environmentImages:LAr().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)?(PDt(g),{ok:!0,data:{material:_N(),style:Nhe()}}):{ok:!1,error:`set-appearance material must be one of ${jTr().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 hsn(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 iin(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=wxt();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:nnn(g,{playState:t.playState,activeViewportTab:t.activeViewportTab})}}}case"expand-hierarchy-all":case"collapse-hierarchy-all":{const g=n.type==="expand-hierarchy-all",S=wxt();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=tnn();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 ysn(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 vsn(t,g);return{ok:!0,data:{subject:S.subject,write:S.write}}}catch(g){return g instanceof dje?{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=Mze(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 p$e(S,A):await jhe(S,D())}};case"duplicate":{if(A.length>1&&$.duplicateMany)return{ok:!0,data:{write:await SPt(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 _$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=m$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 Grn(n.step)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"capture-active-document":{const g=VDr(n);if("error"in g)return{ok:!1,error:g.error};try{n.view&&await Vge(t,n.view);const S=await S9t(t,g.size);return ann(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 Xrn(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&&PN(J.kind)===void 0):void 0,A=S?async J=>await i9t(J)??{ok:!1,error:"No running lane can remount with a selection."}:void 0,D=(k?await xsn(k,{scenes:gVe,activateGameDocument:()=>X0(a0),gameDocumentId:a0,...A?{remountSelection:A}:{}}):null)??await $tn(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 Msn(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 Lsn(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=Yxt(t),d=t.contentVersion,GSt(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=Cxt(()=>{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()?(Asn(en,vn,t.contentVersion,d)&&(vn==="explicit"?G():vn==="if-content-changed"?se(Yr??t.contentVersion):ue(Yr)),!0):!1,De=(vn="always",Yr="none",en=null)=>{if(i_e()!==null)return;if(c===null){F();return}const ii=Yxt(t,c);c=ii,GSt(Isn(ii)),vn!=="none"&&(Ce(Yr,en,vn)||(J(),$(),g=!1,!(vn==="if-content-changed"&&t.contentVersion===d)&&D===null&&(D=Cxt(()=>{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,De(Yr?"always":"if-content-changed",en&&t.playState==="playing"?"explicit":"none")}))},qe=()=>we(!1),bt=()=>we(!0),Pt=t.subscribe(qe),Wt=xVe(bt),zt=OC(bt),ft=_Tr(bt);F(),o_e(!0),uEr(GZr),s.addEventListener("open",()=>{De("if-content-changed"),o_e(i_e()===null)});const tr=Bze(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=cZr(No,String(Yr.type));en&&KSt(en,!1,En);return}en&&WZr(en);let gn;jsn(t,Yr,{deferPresentation:En=>{gn=En},...n?{history:n}:{}}).catch(En=>Z9t(Yr,En)).then(En=>{if(en){const On=KSt(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=ksn(Yr,En.ok,m);De(cs.derived,cs.playFullReport,ii)})}catch{}}),s.addEventListener("project-changed",()=>{window.location.reload()});const Qt=()=>De();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 Bsn(t,n,s){return Ye.createContext(s)}const LD=Bsn(void 0,"EditorContext",null);function $sn({runtime:t,children:n}){const s=Ye.useMemo(()=>({begin:()=>{},end:()=>{}}),[]);return q.jsx(LD.Provider,{value:t,children:q.jsx(d4t.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 YSn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorStats must be used within <EditorProvider>");return t.stats}function qsn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorInit must be used within <EditorProvider>");return t.initPromise}function Q9t(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryService must be used within <EditorProvider>");return t.session.history}function zsn(){return Ye.useContext(LD)?.session.history??null}function ZSn(){return Ye.useContext(LD)?.store??null}function QSn(){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 eMt(){const t=mve();return Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot)}function Vsn(t,n){return t==="selection"&&n==="selection"?"selection":"content"}class Usn{_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=Vsn(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 Jsn{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 Wsn(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 Hsn{constructor(n,s={}){this.projectIdentity=n,this.history=new EDr(s),this.historyCommands=new Jsn(this.history),this.releaseLimitNotices=Wsn(this.history)}history;historyCommands;releaseLimitNotices;dispose(){this.releaseLimitNotices(),this.historyCommands.dispose(),this.history.dispose()}}function Gsn(){return tMt}let tMt=Promise.resolve();function rMt(){const t=Ksn();return tMt=t.then(()=>{},()=>{}),t}async function Ksn(){await nMt()}async function nMt(){const t=wf();if(t){Qs.log(`Opened project: ${t.config.name}`,"project");return}try{const n=await TFt();n&&Qs.log(`Opened project: ${n.config.name}`,"project")}catch{}}const iMt=Object.freeze(Object.defineProperty({__proto__:null,bootstrapProject:rMt,initProject:nMt,projectBootstrapSettled:Gsn},Symbol.toStringTag,{value:"Module"}));function bOe(t){return Promise.reject(new Error(`This editor tier cannot ${t}.`))}const oMt={openPersistence:()=>bOe("persist Asset Lab documents"),replaceSource:()=>bOe("write project source"),saveThumbnailFraming:()=>bOe("write project thumbnail framing")};let yme=oMt;function Xsn(t){if(yme!==t){if(yme!==oMt)throw new Error("An Object3D document write policy is already installed.");yme=t}}function Ysn(){return yme}function Zsn(){let t=0;const n=async()=>{const c=++t,d=wf();if(d)try{const m=await Vze();if(m.status!=="project"||m.project.path!==d.rootPath)return;const g=m.project.config;if(c!==t||wf()!==d)return;mLe({...d,config:g})}catch(m){c===t&&wf()===d&&console.error("[project] Could not refresh project declarations:",m)}},s=_en(()=>void n());return()=>{t++,s()}}function Qsn(){return $vr(()=>{SVe(),A3r(null),Hwr(),Xnn(),vTr(),B3t(),Ttn(),oD()})}async function ean(){typeof performance<"u"&&performance.getEntriesByType("navigation").length>0&&await Promise.race([jye(),new Promise(n=>setTimeout(n,5e3))]),await mN()}function tan(){ean();const t=IC(()=>void mN()),n=gFt(()=>void mN());return()=>{t(),n()}}const ran={tools:[],contributions:[],loadErrors:[]};let sMt=ran,aMt=0;const _je=new Set;function Qxt(t){sMt=t,aMt++;for(const n of _je)n()}function N$(){return sMt}function nan(){return aMt}function cMt(t){return _je.add(t),()=>_je.delete(t)}async function HZ(){try{const t=await fetch("/__editor/project-tools"),n=await L_(t,"Catalog request failed");return Qxt(n),n}catch(t){const n={tools:[],contributions:[],loadErrors:[{sourcePath:"package.json#volter.tools",message:t instanceof Error?t.message:String(t)}]};return Qxt(n),n}}async function ian(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 oan(){HZ();const t=IC(()=>void HZ()),n=gFt(()=>void HZ());return()=>{t(),n()}}const Gge=new Map;function san(t,n){if(n===null){Gge.delete(t);return}Gge.set(t,n),aan()}const ewt=128;let mZ=[],GZ=null,lMt=0,vme=!1;function aan(){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&&(lMt+=1),mZ.push({start:s.startTime,duration:c}),mZ.length>ewt&&(mZ=mZ.slice(-ewt))}}),t.observe({type:"longtask",buffered:!0})}catch{return()=>{}}return vme=!0,()=>{t.disconnect(),vme=!1}}function can(){return vme?{longestTaskMs:GZ===null?null:Math.round(GZ),tasksOver100ms:lMt}:null}function lan(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,callsOver5s:d.callsOver5s,callsOver30s:d.callsOver30s,lastCallLongestTaskMs:g===null?null:Math.round(g),wasmMemoryMB:d.wasmMemoryMB}}return n}function twt(t){return!("unavailable"in t)}function uan(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 fan=5e3,dan=4,pan=1024*1024;function SOe(t){return Math.round(t/pan*100)/100}function _an(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*dan;return{heapUsedMB:twt(n)?SOe(n.usedBytes):null,heapLimitMB:twt(n)&&n.limitBytes!==null?SOe(n.limitBytes):null,mountEpochs:t.mountEpochs(),canvases:s.length,canvasMB:SOe(g),...d===null?{}:{workerCalls:d},...m===null?{}:{stalls:m},...c===null?{}:{textures:c.textures,geometries:c.geometries,...c.programs===null?{}:{programs:c.programs}}}}function man(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 han(){return{heap:()=>uan(),mountEpochs:()=>man(performance.getEntriesByType("resource")),canvases:()=>[...document.querySelectorAll("canvas")],rendererCounts:()=>nTr()?.memorySnapshot?.().counts??null,workerCalls:()=>lan(),stalls:()=>can()}}let uMt=null;function exn(){return uMt}function gan(t){const n=t.sources??han(),s=t.hidden??(()=>document.visibilityState==="hidden"),c=()=>{if(s())return;const m=_an(n);uMt=m,t.report(m)};c();const d=setInterval(c,t.intervalMs??fan);return()=>clearInterval(d)}function yan({children:t}){const n=Ye.useRef(null);n.current||(n.current=new Usn({followsWorkspaceFocus:!0}),rQr(n.current));const s=Ye.useRef(null);if(!s.current){const g=wf();s.current=new Hsn(g?.rootPath??"unknown-project")}n.current.attachHistory(s.current.history),Xsn(zDr);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=rMt()),Ye.useEffect(()=>Lsn(n.current,s.current.historyCommands),[]),Ye.useEffect(()=>tan(),[]),Ye.useEffect(()=>oan(),[]),Ye.useEffect(()=>atn(),[]),Ye.useEffect(()=>Zsn(),[]),Ye.useEffect(()=>Qsn(),[]),Ye.useEffect(()=>Ltn(),[]),Ye.useEffect(()=>gan({report:xZr}),[]);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($sn,{runtime:{store:n.current,stats:c.current,initPromise:d.current,session:s.current},children:t})}const Kge={x:0,y:0,zoom:1};function txn(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 mje=new Set,rxn={get:()=>van(),setView:(t,n,s)=>jVe(t,n,s),setPan:(t,n)=>dMt(t,n),setZoom:t=>ban(t),reset:()=>pMt(),subscribe:t=>San(t)};function fMt(){for(const t of mje)t()}function van(){return n2}function jVe(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},fMt())}function dMt(t,n){jVe(t,n,n2.zoom)}function ban(t){jVe(n2.x,n2.y,t)}function nxn(t,n){dMt(n2.x+t,n2.y+n)}function pMt(){n2.x===0&&n2.y===0&&n2.zoom===1||(n2=Kge,fMt())}function San(t){return mje.add(t),()=>mje.delete(t)}function ixn(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 xan=new Set(["opacity","zIndex","flexGrow","flexShrink","fontWeight","lineHeight"]);function wan(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 oxn(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 sxn(t,n){return typeof n!="number"?n:n===0||xan.has(t)?String(n):`${n}px`}const Tan={hidden:!1,interactive:!1,pickLock:!1},_Mt=new Map;function hve(t){return _Mt.get(t)??Tan}function LVe(t,n){_Mt.set(t,{...hve(t),...n})}function oq(t){return hve(t).hidden}function Can(t,n){LVe(t,{hidden:n})}function Ean(t){Can(t,!oq(t))}function mMt(t){return hve(t).interactive}function kan(t,n){LVe(t,{interactive:n})}function Aan(t){kan(t,!mMt(t))}function hMt(t){return hve(t).pickLock}function Dan(t,n){LVe(t,{pickLock:n})}function Pan(t){Dan(t,!hMt(t))}const rwt=8,wN=8,axn=[{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 cxn(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/rwt)*rwt}function gMt(t,n,s,c,d){let m=Math.max(wN,iA(n.width+t,s)),g=null;return c.length&&(g=vve(n.x+m,c,d),g&&(m=Math.max(wN,g.edge-n.x))),{value:m,match:g}}function yMt(t,n,s,c,d){const m=n.x+n.width;let g=Math.max(wN,iA(n.width-t,s)),S=null;return c.length&&(S=vve(m-g,c,d),S&&(g=Math.max(wN,m-S.edge))),{value:g,eastEdge:m,match:S}}function vMt(t,n,s,c,d){let m=Math.max(wN,iA(n.height+t,s)),g=null;return c.length&&(g=vve(n.y+m,c,d),g&&(m=Math.max(wN,g.edge-n.y))),{value:m,match:g}}function bMt(t,n,s,c,d){const m=n.y+n.height;let g=Math.max(wN,iA(n.height-t,s)),S=null;return c.length&&(S=vve(m-g,c,d),S&&(g=Math.max(wN,m-S.edge))),{value:g,southEdge:m,match:S}}function Ian(t,n,s,c,d,m,g){if(t==="e"||t==="ne"||t==="se")return{width:gMt(n,s,d,m,g).value};if(t==="w"||t==="nw"||t==="sw"){const{value:S,eastEdge:k}=yMt(n,s,d,m,g);return c?{width:S,x:k-S}:{width:S}}return{}}function Nan(t,n,s,c,d,m,g){if(t==="s"||t==="sw"||t==="se")return{height:vMt(n,s,d,m,g).value};if(t==="n"||t==="nw"||t==="ne"){const{value:S,southEdge:k}=bMt(n,s,d,m,g);return c?{height:S,y:k-S}:{height:S}}return{}}function lxn(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{...Ian(t,n,c,d,m,A,S),...Nan(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 uxn(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 fxn(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 dxn(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 pxn(t,n,s,c,d="both",m=!1,g=TR,S={},k=Ran){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}:nwt(A.x,A.width,F,g),G=d==="x"?{value:A.y,match:null}:nwt(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 Oan(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,De=d;for(const Pe of J){const be=Math.abs(pe-Pe)*ue;be<=De&&(De=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 _xn(t,n,s){const{smart:c,grid:d}=s;let m=t;return n&&c.enabled!==s.invert&&(c.sides||c.center)&&(m=Oan(t,n,c.sides,c.center,s.threshold)),n&&Math.abs(Uan(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 mxn(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 Ran={parent:!0,others:!0,guides:!0};function nwt(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 hxn(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=gMt(n,c,!1,J,g).match:k&&(G=yMt(n,c,!1,J,g).match);let se=null;return A?se=vMt(s,c,!1,$,g).match:F&&(se=bMt(s,c,!1,$,g).match),nee(c,G,se)}function gxn(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 RN(t,n){if(t instanceof hy){const s=t.ownerOf(n);return s?t.childAdapters().find(c=>c.worldId===s)?.adapter??null:null}return t}const iwt=new WeakMap;function Fan(t){const n=t.boxEdit;if(!n)return null;const s=iwt.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 iwt.set(t,{provider:n,recorded:c}),c}function Man(t,n){return RN(t,n)?.rects?.rect(n)??null}function jan(t,n){const s=RN(t,n);return s?Fan(s):null}function yxn(t,n){return RN(t,n)?.rects?.contextRects?.(n)}function vxn(t,n){return RN(t,n)?.structure??null}function bxn(t,n){return RN(t,n)?.text??null}function Sxn(t,n){return RN(t,n)?.colorSample??null}function xxn(t,n){const s=RN(t,n);return s?.rects?j3r(s):null}function wxn(t){const n=t instanceof hy?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 Lan(t,n){const s=c=>{const d=t.inspector?.get(n,`style.${c}`);return wan(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 Ban=4;function Txn(t,n){const s=D=>D>0?D:Ban,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 $an(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 Cxn(t,n,s,c){const d=$an(t,n,s),m=Math.max(0,Math.round(c+d));return{[t]:m}}function Exn(t,n,s){return{x:t.x+n,y:t.y+s,width:t.width,height:t.height}}const xOe=3;function SO(t,n){return n==="x"?t.x+t.width/2:t.y+t.height/2}function qan(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 zan(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=xOe/2;return s?{x:n-m,y:c,width:xOe,height:d-c}:{x:c,y:n-m,width:d-c,height:xOe}}function kxn(t,n){if(t.length===0)return null;const s=Math.max(...t.map(J=>SO(J.rect,"x")))-Math.min(...t.map(J=>SO(J.rect,"x"))),c=Math.max(...t.map(J=>SO(J.rect,"y")))-Math.min(...t.map(J=>SO(J.rect,"y"))),d=s>=c,m=d?"x":"y",g=[...t].sort((J,$)=>SO(J.rect,m)-SO($.rect,m)),S=d?n.x:n.y;let k=0;for(;k<g.length&&SO(g[k].rect,m)<S;)k++;const A=k<g.length?g[k].id:null,F=qan(g,k,d),D=zan(g,F,d);return{beforeSiblingId:A,index:k,marker:D}}function Axn(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 Dxn(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 wOe(t,n,s){const c=t?.get(n,s);return typeof c=="string"&&c.length>0?c:null}function Pxn(t,n){const s=wOe(t.inspector,n,"style.position");let c=null;const d=t.hierarchy.node(n)?.parentId??null;if(d){const m=wOe(t.inspector,d,"style.display");m==="flex"||m==="inline-flex"?c=`flex ${(wOe(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 Ixn(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 Nxn(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 Oxn(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 Van(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 Rxn(t,n){return RN(t,n)?.rects?.frame?.(n)??null}function Fxn(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 Uan(t){return Math.atan2(t.tr.y-t.tl.y,t.tr.x-t.tl.x)}function SMt(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 xMt(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 Mxn(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 jxn(t,n){const{s,t:c}=xMt(n);return SMt(t,s,c)}function owt(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 Lxn(t,n,s,c,d,m=!1){const g=owt(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=xMt(n),$=SMt(t,1-J.s,1-J.t),G=owt(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 swt=!1;const wMt=new Set(["viewport","hierarchy","inspector","asset-browser","workspace","global"]);let TMt="viewport";const CMt="editorActiveHotkeyScope";function Bxn(){const t=document.documentElement.dataset[CMt];return t&&wMt.has(t)?t:TMt}function CR(t){TMt=t,document.documentElement.dataset[CMt]=t}const Jan="data-editor-app-undo";function awt(t){return t instanceof Element&&t.closest(`[${Jan}]`)!==null}function hje(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 Wan(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&&wMt.has(s))return s}return null}function cwt(t){const n=Wan(t);n&&CR(n)}const TOe=[];function lwt(t){return TOe.push(...t),()=>{for(const n of t){const s=TOe.indexOf(n);s>=0&&TOe.splice(s,1)}}}function Han(){swt||(window.addEventListener("pointerdown",cwt,!0),window.addEventListener("focusin",cwt,!0),swt=!0)}const KZ=new Map;let EMt=0;const gje=new Set;function uwt(){EMt++;for(const t of gje)t()}function Gan(t){return KZ.set(t.id,t),uwt(),()=>{KZ.get(t.id)===t&&(KZ.delete(t.id),uwt())}}function Kan(){return[...KZ.values()]}function Xan(){return EMt}function Yan(t){return gje.add(t),()=>gje.delete(t)}function BVe(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 Mze(t)}async function $Ve(t){const n=BD(t);n.length!==0&&await s0e(Cm(t).adapter,n)}async function qVe(t){const n=BD(t);n.length!==0&&await a0e(Cm(t).adapter,n)}async function zVe(t){const n=Cm(t).adapter,s=BD(t)[0],c=s?n.hierarchy.node(s)?.parentId??null:null;await c0e(n,c)}let fwt=Promise.resolve();function bve(t){const n=fwt.then(()=>Zan(t));return fwt=n.then(()=>{},()=>{}),n}async function Zan(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 SPt(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 p$e(s,n);else{const d=new Map(pPt(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 Qan(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 ecn(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 tcn(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=jan(d,m);if(!g)continue;const S=Man(d,m);if(!S)continue;const k=d.inspector?.get(m,"style.position"),A=k==="absolute"||k==="fixed",F=Lan(d,m),D=Van(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 rcn(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(Gan({id:t,run:d=>c.action(d??new KeyboardEvent("keydown")),scope:rcn(c.scope),...s?{enabled:s}:{}})),BBe(t).map(d=>({...c,...d}))}function kMt(t){const n=()=>{const g=[],S=bme;bme=g;try{return{rows:t(),actions:g}}finally{bme=S}};let s=n(),c=lwt(s.rows);const d=()=>{c();for(const g of s.actions)g()},m=Kye(()=>{d(),s=n(),c=lwt(s.rows)});return()=>{m(),d()}}function ncn(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=kMt(()=>[...pp("edit.redo",{scope:"global",allowInEditable:!0,when:m=>!hje(m.target)||awt(m.target),action:c}),...pp("edit.undo",{scope:"global",allowInEditable:!0,when:m=>!hje(m.target)||awt(m.target),action:s}),...pp("edit.copy",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void $Ve(t)}),...pp("edit.cut",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void qVe(t)}),...pp("edit.paste",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void zVe(t)}),...pp("edit.duplicate",{scope:Tw,action:()=>void bve(t)}),...pp("edit.group",{scope:Tw,action:()=>void tcn(t)}),...pp("edit.wrap",{scope:Tw,action:()=>Qan(t)}),...pp("edit.unwrap",{scope:Tw,action:()=>ecn(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,pPt(m))}}),...pp("edit.deselectAll",{scope:Tw,action:()=>c0(Cm(t).adapter,[])}),...pp("edit.save",{scope:"global",allowInEditable:!0,action:()=>{ETr().then(m=>{m===null&&RRt(t)})}}),...pp("view.resetPan",{scope:"viewport",action:()=>pMt()}),...pp("edit.enterScope",{scope:Tw,when:()=>t.playState==="stopped",frameEnabled:()=>t.playState==="stopped",action:()=>{H3r(Cm(t).adapter)}}),...pp("edit.delete",{scope:Tw,action:()=>void Sve(t)}),...pp("edit.exitScopeOrDeselect",{scope:Tw,when:()=>J3r()!==null||t.playState==="stopped",frameEnabled:()=>!0,action:()=>{const m=Cm(t).adapter;if(!W3r(m)){if(t.playState!=="stopped"){SVe();return}t.select(null)}}}),...pp("view.commandPalette",{scope:"global",action:()=>{EVe()||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:()=>zBe()}),...pp("workspace.cycleNext",{scope:"global",action:()=>{Che(1)}}),...pp("workspace.cyclePrevious",{scope:"global",action:()=>{Che(-1)}})]);return Han(),d}function icn(t){return kMt(()=>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 VVe(){dkr("undo-history")}function ocn(){const t=()=>VVe();return window.addEventListener("editor:show-history-tab",t),()=>window.removeEventListener("editor:show-history-tab",t)}let yje=null,AMt=0;const vje=new Set;function UVe(t){if(yje!==t){yje=t,AMt++;for(const n of vje)n()}}function DMt(){return yje}function scn(t){UVe(t)}function PMt(){UVe(null)}function IMt(t){return vje.add(t),()=>vje.delete(t)}function bje(){return AMt}function acn(){UVe(null)}const ccn=Object.freeze(Object.defineProperty({__proto__:null,__resetEditorPresentationNoticeForTest:acn,clearEditorPresentationNotice:PMt,editorPresentationNotice:DMt,editorPresentationNoticeVersion:bje,showEditorPresentationNotice:scn,subscribeEditorPresentationNotice:IMt},Symbol.toStringTag,{value:"Module"})),dwt="agent-presented-view";function lcn(){const t=Yv();Ye.useSyncExternalStore(IMt,bje,bje);const n=DMt();return Ye.useEffect(()=>{if(!n){ABe(dwt);return}s$({id:dwt,tone:"info",title:"Agent presented this view.",...n.presented.warnings.length>0?{detail:n.presented.warnings.join(" ")}:{},onDismiss:PMt,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 ucn(t){Ye.useEffect(()=>{const n=htn(),s=()=>xtn(t.playState!=="stopped");s();const c=t.subscribe(s);return()=>{c(),n(),B3t()}},[t])}const iee={console:{id:"console",title:"Console"},lightExplorer:{id:"light-explorer",title:"Light Explorer"}},fcn={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(fcn)];const dcn={info:Go.content.primary,warn:Go.semantic.warning,error:Go.semantic.danger},pwt={scene:"#78dce8",physics:"#ff6188",animation:"#a9dc76",network:"#fc9867",audio:"#ab9df2",ai:"#ffd866",input:"#78dce8",core:Go.content.primary},_wt={info:R$,warn:ZTt,error:LTt};function pcn(){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 De=Ce.metadata?.instanceId;if(typeof De!="string"||De.length===0)continue;const Pe=Ce.metadata?.instanceName;D.set(De,typeof Pe=="string"&&Pe.length>0?Pe:`Instance ${De}`)}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:De,clientHeight:Pe}=S.current;A(De-Ce-Pe<20)},G=Ce=>{g(De=>({...De,[Ce]:!De[Ce]}))},se=Ce=>{const De=new Date(Ce);return`${De.getHours().toString().padStart(2,"0")}:${De.getMinutes().toString().padStart(2,"0")}:${De.getSeconds().toString().padStart(2,"0")}`},pe=Ce=>{c0(Y0(t),[Ce]),BVe("viewport.frameSelection")},ue=Qs.counts;return q.jsxs(HTr,{className:"volter-console",children:[q.jsxs(n$,{label:"Console filters",compact:!0,children:[q.jsx(dm,{"aria-label":"Clear console",size:"compact",onClick:()=>Qs.clear(),title:"Clear console",children:q.jsx(dc,{icon:RTt,size:"xs"})}),q.jsx(Iht,{}),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,De])=>q.jsx("option",{value:Ce,children:De},Ce))]}),q.jsx(Iht,{}),["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:_wt[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 De=Ce.metadata?.entityId!=null?String(Ce.metadata.entityId):null,Pe=(De?Y0(t).hierarchy.node(De)?.label:null)||De,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:dcn[Ce.level]},children:[q.jsx("span",{style:{color:Go.content.dim,marginRight:6,flexShrink:0},children:se(Ce.timestamp)}),q.jsx(dc,{icon:_wt[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:`${pwt[Ce.subsystem]??Go.content.muted}22`,color:pwt[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,De&&q.jsxs("span",{onClick:()=>pe(De),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 _cn={enabled:"visible",color:"light.color",intensity:"light.intensity",range:"light.distance",shadows:"shadow.cast"};function NMt(t){const n=[],s=t;return W$(t.hierarchy,c=>{c.kind==="light"&&n.push(c)},{extraChildren:c=>s.internalChildren?.(c)}),n}function $xn(t){return NMt(t).length}function OMt(t,n){return t.find(s=>s.path===_cn[n])??null}function qY(t,n,s,c,d){const m=OMt(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 mwt=t=>typeof t=="boolean",mcn=t=>typeof t=="string",hwt=t=>typeof t=="number"&&Number.isFinite(t);function hcn(t){return NMt(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",mwt),color:qY(t,n.id,s,"color",mcn),intensity:qY(t,n.id,s,"intensity",hwt),range:qY(t,n.id,s,"range",hwt),shadows:qY(t,n.id,s,"shadows",mwt)}})}function gcn(t,n,s,c){if(!t.inspector)return 0;let d=0;for(const m of n){let g=null;try{g=OMt(t.inspector.properties(m),s)}catch{continue}!g||g.readonly||(yPt(t,m,g.path,c),d++)}return d}function ycn(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 gwt(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"?R0r:tvr,size:"xs"}):null]})}function xve(){return q.jsx("span",{className:"volter-light-explorer-unavailable",children:"—"})}function vcn({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 bcn({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(p4t,{"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 ywt({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 Scn({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 xcn({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(vcn,{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=>{Tcn(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(bcn,{row:t,edit:g})}),q.jsx("td",{children:q.jsx(ywt,{row:t,field:"intensity",step:.1,edit:g})}),q.jsx("td",{children:q.jsx(ywt,{row:t,field:"range",step:.5,edit:g})}),q.jsx("td",{children:q.jsx(Scn,{row:t,edit:g})})]})}function wcn(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 Tcn(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 Ccn(){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=hcn(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=ycn(gwt(Pe,S),gwt(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"))},De=(Pe,be,X)=>{const we=wcn(Pe,pe,se);gcn(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(xcn,{row:Pe,adapter:n,visibleRows:se,selected:pe,selectionAnchor:D,edit:De},Pe.id))})]}),se.length===0?q.jsx("div",{className:"volter-light-explorer-empty",children:"No lights match the current filters."}):null]})]})}const Ecn=Mye();function kcn(){const{error:t,warn:n}=Qs.counts;return t>0?{count:t+n,severity:"error"}:n>0?{count:n,severity:"warn"}:null}function Acn(){Ecn.ensure(t=>{t(cFe({...iee.console,order:-100,Content:pcn,badge:kcn,subscribeBadge:Qs.subscribe,badgeSnapshot:Qs.getSnapshot,visibleByDefault:!1,closeable:!0})),t(cFe({...iee.lightExplorer,order:21,Content:Ccn,visibleByDefault:!1,closeable:!0}))})}const Sme=new Map,xme=new Map,Sje=new Set;let RMt=0;function FMt(){RMt++;for(const t of[...Sje])t()}function qxn(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}),FMt())}function MMt(t){return Sme.get(t)??null}function zxn(t){return xme.get(t)??null}function Dcn(t,n){(xme.get(t)??null)!==n&&(n===null?xme.delete(t):xme.set(t,n),FMt())}function jMt(t){return Sje.add(t),()=>{Sje.delete(t)}}function Xge(){return RMt}const Pcn=5742335;function LMt(t,n,s){return t<<16|n<<8|s}function vwt(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:LMt(c[0],c[1],c[2])}function oee(t){const n=vwt(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,vwt(String(s.fillStyle))):null}function dA(t){return typeof document>"u"?null:t?.closest(`.${RRe}`)??document.querySelector(`.${RRe}`)}function bwt(t){const n=Math.round((t>>16&255)*.42),s=Math.round((t>>8&255)*.42),c=Math.round((t&255)*.42);return LMt(n,s,c)}function Ng(t,n){return t&&typeof getComputedStyle<"u"?getComputedStyle(t).getPropertyValue(n).trim():""}const BMt={"--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=BMt[n];return(s?Ng(t,s):"")||Ng(t,n)}function Vxn(t){const n=dA(t),s=see(n,"--volter-viewport-selection")||Ng(n,"--volter-accent"),c=oee(s||i$.color.accent.default)??Pcn,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:bwt(c),...d===null?{}:{active:{visible:d,hidden:bwt(d)}},...m===""&&S===""&&!Number.isFinite(g)?{}:{outline:{style:m==="crisp"?"crisp":"soft",width:Number.isFinite(g)&&g>0?g:null,hidden:S!=="false"}}}}function Uxn(t){return $Mt(t).background!==null}function Jxn(t){const n=$Mt(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 $Mt(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 Wxn(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 Hxn(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 Gxn(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 Kxn(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 Xxn(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 qMt(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 Icn(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 xje=null;function Ncn(t){return VMt(null,()=>{xje=qMt(),t()})}function Swt(){return xje??=qMt(),xje}let wje=null;function zMt(){const t=dA();return JSON.stringify([wBe.map(n=>Ng(t,`--volter-viewport-word-${n}`)),Ng(t,"--volter-viewport-word-helpers")])}function Ocn(t){return VMt(null,()=>{wje=zMt(),t()})}function xwt(){return wje??=zMt(),wje}function Yxn(){const t=Ye.useSyncExternalStore(Ocn,xwt,xwt);return Ye.useMemo(()=>{const[n,s]=JSON.parse(t),c={};return wBe.forEach((d,m)=>{n[m]&&(c[d]=n[m])}),{shading:c,helpers:s||void 0}},[t])}function Rcn(){const t=Ye.useSyncExternalStore(Ncn,Swt,Swt);return Ye.useMemo(()=>Icn(t),[t])}function VMt(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=Fcn(s,n);return()=>{c.disconnect(),d()}}const u_e=new Set;let YL=null,COe="";function Fcn(t,n){const s=()=>Object.values(BMt).map(c=>Ng(t,c)).join("|");return u_e.add(n),!YL&&typeof document<"u"&&document.head&&(COe=s(),YL=new MutationObserver(()=>{const c=s();if(c!==COe){COe=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 Mcn({documentId:t,runtime:n=!1,island:s=!1,assetPath:c,transformControls:d,children:m}){Ye.useSyncExternalStore(EBe,o$,o$);const g=Ye.useSyncExternalStore(U$,eA,eA);Ye.useSyncExternalStore(jMt,Xge,Xge);const S=MMt(t)?.headerWidth??null,k=Ye.useCallback(F=>Dcn(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 jcn({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 Lcn(t){return t==="game"||t==="scene"||t==="world"?"world":"resource"}function UMt({viewId:t,descriptor:n,active:s,backdrop:c=!1,chrome:d=!0}){const m=n.Content,g=n.Toolbar,S=n.Shelf,k=Lcn(n.kind),A=Yv();Ye.useSyncExternalStore(A.subscribe,A.getShellSnapshot??A.getSnapshot),Ye.useSyncExternalStore(Eee,AD,AD),Ye.useSyncExternalStore(EBe,o$,o$),Ye.useSyncExternalStore(fCt,GOe,GOe);const F=s2(n.id),D=s&&n.kind!=="game"?F?.transformTools?.()??"none":"none",J=F?.TransformTools,$=F?.TransformControls,G=Rcn(),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(jMt,Xge,Xge);const De=MMt(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(Mcn,{documentId:n.id,runtime:n.kind==="game",island:c&&k==="world",assetPath:pQr(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&&De&&Ce&&!pe?r2.createPortal(Ce,De):null,d&&q.jsx(jcn,{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 Bcn(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&&EN(t))}}function $cn({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(EBe,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 eVe(),!ue())return;const De=new Set(l0().map(be=>be.descriptor.id)),Pe=Ce.kind==="asset"?sN(Ce.path,Ce.assetKind??"source",{activate:s}):Ce.kind==="workspace"?De.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=Bcn(Pe,!De.has(Pe)),g(Pe)}})().catch(De=>{ue()&&k(De instanceof Error?De.message:String(De))}),()=>{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(UMt,{descriptor:$.descriptor,active:s,chrome:n}):q.jsx("div",{role:"status",children:"Opening document…"})})}function qcn(){return q.jsxs(Aee,{children:[q.jsx(Dee,{}),q.jsx(Iee,{}),q.jsx(Pee,{})]})}function zcn(){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,lxt,lxt);if(Ye.useEffect(()=>{let g=!1;return eVe().then(()=>{g||c(!0)}),()=>{g=!0}},[]),!s)return q.jsx("div",{role:"status",children:d??"Loading project layout…"});const m=n.Layout??qcn;return q.jsx(m,{playing:t.playState!=="stopped",paused:t.playState==="paused"})}function JVe({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 Tje="account";function JMt(){return ND({id:Tje,title:"Account",kind:"tool-contribution",workspaceRole:"workspace-task",provenance:{origin:"Volter account"},Content:Wcn,closeable:!0,presentation:()=>({kind:"workspace",id:Tje})})}kN({id:"workspace",owner:"account-documents",open:(t,n)=>n.id===Tje?JMt():null});function Vcn(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 Ucn({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:Vcn(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 bwr(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(()=>xwr(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 Swr(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 wwt({busy:t,run:n}){const s=rBe(),[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(Ucn,{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 Twt({busy:t,run:n}){const s=rBe(),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(()=>ywr({...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),vwr({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 Jcn({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 Wcn(){Ye.useSyncExternalStore(Dye,cN,cN);const t=rBe(),[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),[De,Pe]=Ye.useState(!1);Ye.useEffect(()=>{if(t.authenticated||t.backend!=="live"||t.accountEnvironment==="development-twin"){Pe(!1);return}Awr().then(zt=>Pe(zt.device)).catch(()=>Pe(!1))},[t.authenticated,t.backend]),Ye.useEffect(()=>{if(!ue)return;const zt=()=>{Pwr(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=()=>{Nwr(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}Cwr().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}Ewr().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(JVe,{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(()=>pwr(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 Dwr();Ce(zt),window.open(zt.authorizationUrl,"_blank","noopener,noreferrer")}),children:ue?"Waiting for browser sign-in…":"Continue in browser"}),De&&q.jsx(Ms,{variant:"ghost",disabled:D||se!==null||ue!==null,onClick:()=>void be(async()=>{const zt=await Iwr();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(()=>dwr(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(Twt,{busy:D,run:be}),q.jsx(wwt,{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=>mwr({...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(Jcn,{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(_wr),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(()=>dht("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 wwr(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 Twr(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 kwr();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(()=>dht("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(()=>gwr(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(Twt,{busy:D,run:be}),q.jsx(wwt,{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(hwr),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 Hcn(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:()=>qVe(t)}]:[],...A?[{id:"editor.copy",label:"Copy",category:"action",shortcut:Vv("edit.copy"),execute:()=>$Ve(t)}]:[],...D?[{id:"editor.paste",label:"Paste",category:"action",shortcut:Vv("edit.paste"),execute:()=>zVe(t)}]:[]];return[{id:"account.open",label:"Account and Provider Connections",category:"action",execute:()=>{JMt()}},{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:()=>ORt(t)},{id:"editor.deselect",label:"Deselect All",category:"action",shortcut:Vv("edit.deselectAll")??Vv("edit.exitScopeOrDeselect"),execute:()=>jze(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:()=>{zBe()}},...AN().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)}},...Z4t().map($=>({id:`keymap.${$.id}`,label:`Keymap: ${$.title}`,category:"action",execute:()=>{KEr($.id)}})),...OR().map($=>({id:`view.workspaceStyle.${$.id}`,label:`Workspace Style: ${$.title}`,category:"action",execute:()=>{QBe($.id)}})),{id:"view.undoHistory",label:"Undo History",category:"action",execute:()=>{VVe()}},{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:()=>{qBe("asset-library")}}]}function Gcn(t){return Y0e(t).filter(n=>n.id!==NFe).map(n=>({id:`entity:${n.id}`,label:n.name,category:"entity",execute:()=>{jze(t,[n.id]),BVe("viewport.frameSelection")}}))}function Kcn(){return ive().filter(t=>t.category==="canvas").map(({descriptor:t})=>({id:`board:${t.id}`,label:`Open ${t.title}`,category:"action",execute:()=>void SN(t.id)}))}function aN(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 WMt(t){const n=aN(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(aN(n.properties))){const g=aN(m);("default"in g||Array.isArray(n.required)&&n.required.includes(d))&&(c[d]=WMt(g))}return c}return s==="array"?[]:s==="boolean"?!1:s==="number"||s==="integer"?Number(n.minimum??0):""}function Cje(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]/g," ").replace(/^./,n=>n.toUpperCase())}function Xcn({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:Cwt,children:Cje(t)}),g&&q.jsx("span",{style:FO,children:g})]})]});const A=q.jsxs("span",{style:Cwt,children:[Cje(t)," ",!c&&q.jsx("span",{style:Zcn,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:FO,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:FO,children:g})]}):m==="array"&&Yge(aN(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:FO,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:FO,children:g})]})}function HMt({schema:t,value:n,onChange:s,path:c=""}){const d=aN(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=aN(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:Qcn,children:[q.jsx("legend",{style:eln,children:Cje(g)}),typeof k.description=="string"&&q.jsx("p",{style:{...FO,marginTop:0},children:k.description}),q.jsx(HMt,{schema:k,value:aN(n[g]),onChange:F,path:c?`${c}.${g}`:g})]},g):q.jsx(Xcn,{name:c?`${c}.${g}`:g,schema:k,value:n[g],required:m.has(g),onChange:F},g)})})}function Ycn({schema:t,value:n,onChange:s}){const c=aN(t);return c.properties?q.jsx(HMt,{schema:c,value:n,onChange:s}):q.jsx("div",{style:FO,children:"This schema has no form-compatible fields."})}const VY={display:"grid",gap:5},Cwt={color:Zf[1],fontWeight:600,fontSize:"var(--volter-font-sm)"},Zcn={color:Zf[3],fontWeight:400,marginLeft:5},FO={display:"block",color:Zf[2],fontSize:"var(--volter-font-sm)",lineHeight:1.4},d_e={boxSizing:"border-box",width:"100%"},Qcn={margin:0,padding:14,border:"1px solid var(--volter-boundary-default)",borderRadius:"var(--volter-radius-md)"},eln={padding:"0 6px",color:Zf[1],fontWeight:600},Zge="project-tools",Eje="project-tool:";function tln(t){return`${Eje}${t}`}function wve(){ND({id:Zge,title:"Project Tools",kind:"project-tool",workspaceRole:"workspace-reference",Content:GMt,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:tln(t),title:n.summary||n.name,kind:"project-tool",workspaceRole:"workspace-reference",provenance:{sourcePath:n.sourcePath,origin:n.name},Content:GMt,closeable:!0,presentation:()=>({kind:"project-tool",name:t}),persist:()=>({name:t})}),!0)}kN({id:"workspace",owner:"project-tool-documents",open:(t,n)=>n.id!==Zge?null:(wve(),Zge)});kN({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 rln(){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 Ewt({value:t}){return q.jsx("pre",{style:sln,children:JSON.stringify(t,null,2)})}function GMt({documentId:t}){Ye.useSyncExternalStore(cMt,nan),Ye.useSyncExternalStore(u2,rA);const n=N$(),s=t.startsWith(Eje)?t.slice(Eje.length):null,c=s?n.tools.find(d=>d.name===s):null;return s?c?q.jsx(nln,{tool:c},c.name):q.jsx("div",{style:kje,children:"This tool is no longer available."}):q.jsxs("div",{style:kje,"data-testid":"project-tools-catalog",children:[q.jsx("h2",{style:KMt,children:"Project Tools"}),q.jsxs("p",{style:{...Aje,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:XMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:d.summary}),q.jsx("span",{style:YMt,children:"Open"})]}),q.jsx("code",{style:{color:Zf[2],fontSize:"var(--volter-font-sm)"},children:d.name}),q.jsx("span",{style:iln,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:Aje,children:"No project tools registered."}),n.loadErrors.map(d=>q.jsxs("div",{style:Qge,children:[d.sourcePath,": ",d.message]},`${d.sourcePath}:${d.message}`)),s$e().map(d=>q.jsxs("div",{style:Qge,children:[d.entryPath,": ",d.error]},`${d.entryPath}:${d.error}`))]})}function nln({tool:t}){const n=kC().filter(se=>se.tool?.name===t.name),s=WMt(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 ian(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:kje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:KMt,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:Aje,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:XMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:YMt,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(Ycn,{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:EOe,children:"Advanced JSON"}),q.jsx(TBe,{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:oln}),q.jsxs("details",{children:[q.jsx("summary",{style:EOe,children:"Input schema"}),q.jsx(Ewt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:EOe,children:"Result"}),q.jsx(Ewt,{value:S})]})]})}const kje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},KMt={margin:"0 0 6px",fontSize:20},Aje={color:Zf[2],fontSize:"var(--volter-font-sm)"},EOe={display:"block",margin:"14px 0 6px",color:Zf[1]},XMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},YMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},iln={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"},oln={width:"100%",boxSizing:"border-box",resize:"vertical"},sln={overflow:"auto",padding:10,background:xBe.inset,border:`1px solid ${ahe[1]}`,borderRadius:aQ.sm,color:Zf[2]};function aln(t,n,s){const c=Hcn(t,n,s),d=[...rln(),...Kcn(),...Tkr()],m=Gcn(t),g=mCt().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,...uln(),...m]}const cln=["view","window","debug","tools","help"],lln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function uln(){return cln.flatMap(t=>jme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${lln[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 fln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function dln(){const t=Yv(),n=mve(),s=eMt(),c=Ye.useSyncExternalStore(hLe,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(NDt,Phe,Phe),g=Ye.useSyncExternalStore(Kye,mhe,mhe),S=Ye.useMemo(()=>aln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=fln(S);A!==k.current&&(k.current=A,Pxt(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,Pxt([])},[]),null}let ZMt=[];const Dje=new Set;function pln(t){return Dje.add(t),()=>Dje.delete(t)}function _ln(){return ZMt}function mln(){for(const t of Dje)t()}function hln(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 gln(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(hln(s),"assets");ZMt=n,mln()}async function yln(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 ian(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:kje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:KMt,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:Aje,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:XMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:YMt,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(Ycn,{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:EOe,children:"Advanced JSON"}),q.jsx(TBe,{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:oln}),q.jsxs("details",{children:[q.jsx("summary",{style:EOe,children:"Input schema"}),q.jsx(Ewt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:EOe,children:"Result"}),q.jsx(Ewt,{value:S})]})]})}const kje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},KMt={margin:"0 0 6px",fontSize:20},Aje={color:Zf[2],fontSize:"var(--volter-font-sm)"},EOe={display:"block",margin:"14px 0 6px",color:Zf[1]},XMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},YMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},iln={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"},oln={width:"100%",boxSizing:"border-box",resize:"vertical"},sln={overflow:"auto",padding:10,background:xBe.inset,border:`1px solid ${ahe[1]}`,borderRadius:aQ.sm,color:Zf[2]};function aln(t,n,s){const c=Hcn(t,n,s),d=[...rln(),...Kcn(),...Tkr()],m=Gcn(t),g=mCt().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,...uln(),...m]}const cln=["view","window","debug","tools","help"],lln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function uln(){return cln.flatMap(t=>jme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${lln[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 fln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function dln(){const t=Yv(),n=mve(),s=eMt(),c=Ye.useSyncExternalStore(hLe,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(NDt,Phe,Phe),g=Ye.useSyncExternalStore(Kye,mhe,mhe),S=Ye.useMemo(()=>aln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=fln(S);A!==k.current&&(k.current=A,Pxt(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,Pxt([])},[]),null}let ZMt=[];const Dje=new Set;function pln(t){return Dje.add(t),()=>Dje.delete(t)}function _ln(){return ZMt}function mln(){for(const t of Dje)t()}function hln(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 gln(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(hln(s),"assets");ZMt=n,mln()}async function yln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-1nbID23w.js");return{materializeDeclaredAssetPacks:c}},__vite__mapDeps([265,105,3,2,4,1,20,21,22,23])),s=await n(t);gln(s)}catch(n){Qs.error(`Retrying asset materialization failed before any entry was attempted: ${n instanceof Error?n.message:String(n)}`,"assets")}}let QMt={kind:"quiet"},ejt=0;const Pje=new Set;function vln(){return QMt}function bln(t){QMt=t,ejt+=1;for(const n of Pje)n()}function Sln(t){return Pje.add(t),()=>Pje.delete(t)}function kwt(){return ejt}const xln=()=>()=>{},Awt=()=>null;function wln(){const t=Yv(),n=zsn();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Ye.useSyncExternalStore(n?.subscribe??xln,n?.getSnapshot??Awt,n?.getSnapshot??Awt);const s=NRt(t);if(s==="saved")return null;const c=Fze(t),d=s==="failed",m=d?VYr(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 RRt(t),title:S,children:[q.jsx("span",{className:"volter-save-status-dot"}),g.label]})}function Tln(){Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const t=Qs.counts,n=[{id:"info",icon:R$,label:"message",count:t.info},{id:"warn",icon:ZTt,label:"warning",count:t.warn},{id:"error",icon:LTt,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 Cln(t){return[...t.map(s=>`"${s.worldId}" (${s.kind} / ${s.identity}) — ${s.message}`),"See the Console for the full trace."].join(`
|
|
1400
1400
|
`)}function Eln(){const t=Ye.useSyncExternalStore(IRt,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:Cln(t),children:t.length===1?"1 world failed to mount":`${t.length} worlds failed to mount`})}function kln(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 Aln(){const t=Ye.useSyncExternalStore(pln,_ln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),yln(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:kln(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 Dln(){const t=ekr(),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 Pln(){Ye.useSyncExternalStore(Sln,kwt,kwt);const t=vln();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 Iln(){Ye.useSyncExternalStore(Xye,bkr);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 Nln=Mye();function Oln(){Nln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Pln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:wln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:Tln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:Eln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Aln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Dln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:Iln}))})}const Rln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-B6EVY_ZH.js"),__vite__mapDeps([266,3,2,4,267,92,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Fln(){const t=Yv(),n=Q9t(),s=mve();return Ye.use(qsn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),ucn(t),Ye.useEffect(()=>Oln(),[]),Ye.useEffect(()=>Acn(),[]),Ye.useEffect(()=>wsn(n),[n]),Ye.useEffect(()=>ocn(),[]),Ye.useEffect(()=>wkr(),[t]),Ye.useEffect(()=>Dtn(),[t]),Ye.useEffect(()=>W4r(n),[n]),Ye.useEffect(()=>ncn(t,s),[t,s]),Ye.useEffect(()=>kYr(t),[t]),Ye.useEffect(()=>pen(()=>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(Rln,{store:t})}),q.jsx(zcn,{}),q.jsx(lcn,{}),q.jsx(dln,{})]})}const Mln=3,jln=1e4,Lln=4e3;function Bln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Dwt(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 $ln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function tjt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function qln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!tjt(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 zln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Vln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&tjt(t,s)?"resume":zln(t,s)?"reload":t?.project?"none":"offer-reload"}const eye="volter.editor.orphaned-tab.v1";function Uln(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 Jln(t){return JSON.stringify(t)}function Wln(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 Hln=720*60*1e3;function Gln(t,n){const s=n-t.at;return s>=0&&s<=Hln}function WVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Kln(t,n=WVe()){try{n?.setItem(eye,Jln(t))}catch{}}function Xln(t=WVe()){if(!t)return null;try{const n=Uln(t.getItem(eye));return t.removeItem(eye),n}catch{return null}}function Yln(t=WVe()){try{t?.removeItem(eye)}catch{}}function Zln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function Qln(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>grn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function eun(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef(Bln(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,LRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Kln({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 Qln()},A=(pe,ue,Ce)=>{switch(Vln(s.current.bootIdentity,pe)){case"resume":{c.current=null,aZr(),Yln(),s.current=Dwt(s.current,pe,ue,Ce),n({kind:"quiet"});return}case"reload":if(d.current)return;window.location.reload();return;case"offer-reload":n(De=>De.kind==="void"&&!De.reloadOffered?{...De,reloadOffered:!0}:De);return;default:return}},F=async()=>{const pe=await VZr(),ue=EZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Dwt(s.current,pe,ue,Ce);const De=qln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:Mln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:jln,bootIdentity:s.current.bootIdentity,lastIdentity:s.current.lastIdentity});if(De.status==="void"&&De.reason!==null){await k(De.reason);return}n(De.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=$ln(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,Lln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{bln(t);const m=Zln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){ABe(kOe);return}if(t.kind==="degraded"){s$({id:kOe,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:kOe,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 kOe="editor-lease",tun="0.5.111",run={version:tun},nun="0.5.111",iun={version:nun},rjt=iun.version,oun=run.version;function sun({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?sPt(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?cLe:X0r,"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 Ije({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(JVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(sun,{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",rjt," · Engine v",oun]})})]})})}function aun({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(JVe,{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 cun 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 Aln(){const t=Ye.useSyncExternalStore(pln,_ln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),yln(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:kln(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 Dln(){const t=ekr(),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 Pln(){Ye.useSyncExternalStore(Sln,kwt,kwt);const t=vln();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 Iln(){Ye.useSyncExternalStore(Xye,bkr);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 Nln=Mye();function Oln(){Nln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Pln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:wln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:Tln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:Eln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Aln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Dln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:Iln}))})}const Rln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-Gnetb5kf.js"),__vite__mapDeps([266,3,2,4,267,92,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Fln(){const t=Yv(),n=Q9t(),s=mve();return Ye.use(qsn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),ucn(t),Ye.useEffect(()=>Oln(),[]),Ye.useEffect(()=>Acn(),[]),Ye.useEffect(()=>wsn(n),[n]),Ye.useEffect(()=>ocn(),[]),Ye.useEffect(()=>wkr(),[t]),Ye.useEffect(()=>Dtn(),[t]),Ye.useEffect(()=>W4r(n),[n]),Ye.useEffect(()=>ncn(t,s),[t,s]),Ye.useEffect(()=>kYr(t),[t]),Ye.useEffect(()=>pen(()=>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(Rln,{store:t})}),q.jsx(zcn,{}),q.jsx(lcn,{}),q.jsx(dln,{})]})}const Mln=3,jln=1e4,Lln=4e3;function Bln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Dwt(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 $ln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function tjt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function qln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!tjt(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 zln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Vln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&tjt(t,s)?"resume":zln(t,s)?"reload":t?.project?"none":"offer-reload"}const eye="volter.editor.orphaned-tab.v1";function Uln(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 Jln(t){return JSON.stringify(t)}function Wln(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 Hln=720*60*1e3;function Gln(t,n){const s=n-t.at;return s>=0&&s<=Hln}function WVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Kln(t,n=WVe()){try{n?.setItem(eye,Jln(t))}catch{}}function Xln(t=WVe()){if(!t)return null;try{const n=Uln(t.getItem(eye));return t.removeItem(eye),n}catch{return null}}function Yln(t=WVe()){try{t?.removeItem(eye)}catch{}}function Zln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function Qln(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>grn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function eun(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef(Bln(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,LRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Kln({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 Qln()},A=(pe,ue,Ce)=>{switch(Vln(s.current.bootIdentity,pe)){case"resume":{c.current=null,aZr(),Yln(),s.current=Dwt(s.current,pe,ue,Ce),n({kind:"quiet"});return}case"reload":if(d.current)return;window.location.reload();return;case"offer-reload":n(De=>De.kind==="void"&&!De.reloadOffered?{...De,reloadOffered:!0}:De);return;default:return}},F=async()=>{const pe=await VZr(),ue=EZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Dwt(s.current,pe,ue,Ce);const De=qln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:Mln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:jln,bootIdentity:s.current.bootIdentity,lastIdentity:s.current.lastIdentity});if(De.status==="void"&&De.reason!==null){await k(De.reason);return}n(De.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=$ln(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,Lln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{bln(t);const m=Zln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){ABe(kOe);return}if(t.kind==="degraded"){s$({id:kOe,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:kOe,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 kOe="editor-lease",tun="0.5.113",run={version:tun},nun="0.5.113",iun={version:nun},rjt=iun.version,oun=run.version;function sun({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?sPt(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?cLe:X0r,"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 Ije({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(JVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(sun,{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",rjt," · Engine v",oun]})})]})})}function aun({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(JVe,{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 cun 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(Ije,{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(eun,{})]})}function lun(t){const n=t instanceof Error?t.message:String(t);return t instanceof AC?{status:"error",message:n,recovery:t.recovery}:t instanceof T$e?{status:"error",message:n,report:t.report}:{status:"error",message:n}}const uun=8e3;function fun(t=Men,n=uun){return new Promise((s,c)=>{const d=window.setTimeout(()=>{c(new KPt(n))},n);t().then(m=>{window.clearTimeout(d),s(m)},m=>{window.clearTimeout(d),c(m)})})}const dun=3;function pun(){const[t,n]=Ye.useState({status:"detecting",waitingSince:null}),[s,c]=Ye.useState(0);Ye.useEffect(()=>Owr(),[]),Ye.useEffect(()=>kZr(),[]),Ye.useEffect(()=>hZr(()=>c(k=>k+1)),[]),Ye.useEffect(()=>{let k=!1,A,F=0;const D=Date.now();n({status:"detecting",waitingSince:null});const J=()=>{fun().then($=>{k||n($?{status:"ready",project:$}:{status:"no-project"})},$=>{if(k)return;F+=1;const G=P4r($,F);if(G.kind==="terminal"){const pe=lun($),ue=pe.recovery&&"verbs"in pe.recovery?sPt(pe.recovery.verbs):null;Qs.error(`Startup failed: ${pe.message}${ue?` Run: ${ue}`:""}`,"editor"),n(pe);return}const se=$ instanceof Error?$.message:String($);F===dun&&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"&&OZr(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=$Pt(S)},[S]),t.status==="detecting"?q.jsx(p_e,{children:q.jsx(aun,{wait:t.waitingSince===null?void 0:{seconds:m,detail:t.lastError}})}):t.status==="no-project"?q.jsx(p_e,{children:q.jsx(Ije,{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(Ije,{error:{message:t.message,...t.recovery?{recovery:t.recovery}:{}},report:t.report,onRetry:()=>c(k=>k+1)})}):q.jsx(p_e,{children:q.jsx(yan,{children:q.jsx(cun,{children:q.jsx(Fln,{})})})})}function HVe(t){Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Eee,AD,AD),Ye.useSyncExternalStore(Fye,lN,lN),Ye.useSyncExternalStore(mon,qxt,qxt),Ye.useSyncExternalStore(U$,vhe,vhe),Ye.useSyncExternalStore(bEr,Wht,Wht),Ye.useSyncExternalStore(Cin,Oxt,Oxt),Ye.useSyncExternalStore(K0e,zQ,zQ),Ye.useSyncExternalStore(N3t,yRe,yRe),Ye.useSyncExternalStore(lTr,bht,bht),Ye.useSyncExternalStore(eEr,zht,zht);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,njt=0;const Nje=new Set;function _un(){return DI}function Pwt(){return njt}function mun(t){return Nje.add(t),()=>Nje.delete(t)}function Iwt(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,njt+=1;for(const s of Nje)s()}}function hun(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 ijt=Ye.createContext(null);function gun({actions:t,children:n}){return q.jsx(ijt.Provider,{value:t,children:n})}function yun(){return Ye.useContext(ijt)}function RC(t,n){return{...n,iconName:t}}const vun=RC("outliner-object",aR),bun=RC("outliner-light",sLe),Sun=RC("outliner-camera",cye),xun=RC("outliner-audio",W0r),AOe=RC("outliner-data",A0r),Nwt=RC("outliner-mesh",aR),wun={three:vun,react:aLe,canvas:iCt,scene:_Le,mesh:Nwt,"skinned-mesh":Nwt,"mesh-data":AOe,"three-source":AOe,"model-asset":AOe,light:bun,camera:Sun,audio:xun,"reflection-probe":tCt,group:WOe,object:qTt,component:GB,img:iB,a:I0r,ul:vZ,ol:vZ,li:vZ,button:UOe,sprite:iB,animatedsprite:KTt,nineslicesprite:iB,tilingsprite:iB,text:G0r,graphics:UOe,container:WOe},Tun=RC("outliner-render-on",cye),Cun=RC("outliner-render-off",E0r),Eun=RC("outliner-exclude-on",k0r),kun=RC("outliner-exclude-off",UOe),Aun=/^blender-[a-z0-9-]+$/;function XZ(t,n=qTt){const s=wun[t];return s||(Aun.test(t)?RC(t,n):n)}const Dun=new Set(["mesh-data","blender-material-data","blender-shapekey-data","blender-texture-data","blender-image-data"]),Pun=["blender-outliner-data-","blender-light-","blender-lightprobe-"];function ojt(t){return t===void 0?!1:Dun.has(t)?!0:Pun.some(n=>t.startsWith(n))}function Oje(t){return t.body.kind==="fields"?q.jsx(U9t,{fields:t.body.fields,io:t.body.io}):t.body.render()}function GVe({action:t}){return q.jsx(dm,{"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 KVe(t){return t.related.find(n=>n.id.startsWith("definition:"))??null}function Iun(t){return t.related.filter(n=>!n.id.startsWith("creation-site:")&&!n.id.startsWith("definition:"))}function XVe({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:Q0r}),q.jsx("span",{style:{maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title})]})}function sjt({subject:t}){const n=Iun(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 Rje(t){const n=_4t(t.iconName);if(n)return`${n.path}|${n.tonedPath??""}`;const s=t.icon[4];return Array.isArray(s)?s.join("|"):s}function ajt({subject:t,onJump:n}){const s=$9t(t);return Ye.useSyncExternalStore(CBe,uhe,uhe),s.length<5||new Set(s.map(c=>Rje(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(dm,{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 Nun({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 YVe({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(jRe,{"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 cjt({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=KVe(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(YVe,{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}),OBe(t,"identity").map(c=>q.jsx(GVe,{action:c},c.id)),s&&q.jsx(XVe,{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 Oun({subject:t}){const n=t.identity;if(!n)return q.jsx(cjt,{subject:t});const s=KVe(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})}),OBe(t,"identity").map(g=>q.jsx(GVe,{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(YVe,{subject:t}),s&&q.jsx(XVe,{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 Run({section:t}){return q.jsx("div",{"data-testid":t.testId,"data-inspector-section":t.id,children:q.jsx(VCr,{label:t.title,icon:t.icon,description:t.description,collapsible:!0,defaultOpen:t.defaultOpen??!0,children:Oje(t)})})}function Fun({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(cjt,{subject:t}),q.jsx(ajt,{subject:t,onJump:s}),q.jsx(sjt,{subject:t}),q.jsx("div",{ref:n,children:t.sections.map(c=>q.jsx(Ye.Fragment,{children:q.jsx(Run,{section:c})},c.id))})]})}const __e=new Map;let Owt=null;function Mun({subject:t}){const n=$9t(t),s=__e.get(t.id)??Owt,[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),Owt=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(dm,{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(Oun,{subject:t}),q.jsx(sjt,{subject:t}),g?q.jsx("div",{"data-testid":g.testId,"data-inspector-section":g.id,children:Oje(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:Oje(k)},k.id))]})]})})}function tye(t){const n=t.sections[0]?.icon;return n?Rje(n)===Rje(JOe)?aR:n:aR}function jun({subject:t,surface:n}){const s=yun(),c=t.sections.find(k=>k.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null,m=KVe(t),g=n?()=>NVe(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(dm,{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:S0r})}),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(Nun,{render:d?d.render:null,glyph:tye(t),subjectKey:t.id})}),S?q.jsxs("div",{className:"volter-mini-inspector-identity",children:[q.jsx(YVe,{subject:t}),OBe(t,"identity").map(k=>q.jsx(GVe,{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(ajt,{subject:t,onJump:()=>g?.()}),m&&q.jsx("div",{className:"volter-mini-inspector-actions",children:q.jsx(XVe,{link:m})})]})}function Lun({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(dm,{"data-testid":"inspector-fab-clear-selection","aria-label":"Clear selection",title:"Clear selection",onClick:s,children:q.jsx(dc,{icon:lLe})})]})}const m_e=new Map;function Rwt({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(jun,{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(Mun,{subject:t}):q.jsx(Fun,{subject:t})})}const Bun=250;let ljt=0,UY=null;const wme=new Set;function $un(){ljt++;for(const t of wme)t()}function ZVe(t){return wme.add(t),UY===null&&(UY=setInterval($un,Bun)),()=>{wme.delete(t),wme.size===0&&UY!==null&&(clearInterval(UY),UY=null)}}function qun(){return ljt}function ujt(t){return Ye.useSyncExternalStore(ZVe,t,t)}function zun({presentation:t,surface:n}){const s=vVe(),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(dm,{size:"compact","data-testid":"inspector-expand","aria-label":"Expand inspector to side panel",title:"Expand inspector to side panel",onClick:()=>NVe(n,"column"),children:q.jsx(dc,{icon:UTt})})}):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 QVe(){const t=Yv();ujt(()=>Ywr());const n=HVe(t),{adapter:s}=Cm(t);return n.available?s.capabilities.inspectorFields?q.jsx(Rwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):n.subject.identity!==null||n.subject.sections.length>0?q.jsx(Rwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):l$()?q.jsx(zun,{presentation:n.presentation,surface:n.surface}):null:null}function Vun({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:()=>NVe(t,"column"),children:"Show it here"})]})})}const fjt=260,djt=360,aee=16,Uun=200,pjt=220,Fje=54,Jun=52,Wun={maxWidth:fjt,maxHeight:djt,minSize:Uun,margin:aee},Hun={right:aee,bottom:aee},Gun={maxWidth:pjt,maxHeight:Fje,minSize:Fje,margin:aee};function Kun(t,n,s){return hun(t,s?Gun:Wun,n)}function Xun(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(K0e,zQ,zQ),Ye.useSyncExternalStore(mun,Pwt,Pwt);const n=_un(),[s,c]=Ye.useState(!1),{subject:d}=HVe(t),m=Ye.useCallback(()=>{oD();const{adapter:S}=Cm(t);c0(S,[])||t.select(null)},[t]),g=n?Kun(n,Hun,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:Jun,width:s?pjt:fjt,height:s?Fje:djt},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(Lun,{subject:d,onExpand:()=>c(!1),onClear:m}):q.jsx(gun,{actions:{minimize:()=>c(!0)},children:q.jsx(QVe,{})})})})}let Yun=1;const Fwt=new WeakMap;function Zun(t){if(!t)return 0;const n=Fwt.get(t);if(n!==void 0)return n;const s=Yun++;return Fwt.set(t,s),s}function eUe(t){const n=Y0(t);return n instanceof hy?n.childAdapters().find(c=>c.kind==="three"&&c.adapter.capabilities.transform)?.worldId??null:null}function Qun(t){const n=Y0(t);if(!(n instanceof hy))return!0;if(!n.childAdapters().some(d=>d.kind==="three"))return!1;const c=eUe(t);return c===null?!0:!oq(c)}const efn="/__editor/collaboration",Mwt=["participants","presence","messages","revisions","audit","team-test"];let KI=null;const Mje=new Set,jje=new Set;let jwt=0;function h_e(t){KI=t,UAt(t.revision);for(const n of Mje)n(t);if(t.revision>jwt){jwt=t.revision;for(const n of jje)n(t.revision)}}async function Lje(t,n){const s=await fetch(`${efn}${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 tfn(){return KI}let g_e=null,y_e=0;function _jt(){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,Lje("").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 Mwt)n.addEventListener(`collaboration-${g}`,m);Lje("").then(h_e).catch(()=>{}),g_e=()=>{n.removeEventListener("collaboration-snapshot",s);for(const g of Mwt)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 rfn(t){Mje.add(t),KI&&t(KI);const n=_jt();return()=>{Mje.delete(t),n()}}function Zxn(t){jje.add(t);const n=_jt();let s=!1;return()=>{s||(s=!0,jje.delete(t),n())}}async function Qxn(t){await Lje("/presence",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({participantId:Q0e,presence:t})})}const Lwt=500,mjt=()=>{};function nfn(t,n){if(n===mjt)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++<Lwt;){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>Lwt)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 ifn(t,n,s){for(const c of n)c.more||s(c.node.id)&&t.set(c.node.id,!1);return t}function ofn(t,n){for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n)return s.worldId;return t.ownerOf(n)}function sfn(t,n,s){if(!(t instanceof hy))return!0;const c=ofn(t,s);return c===null?!1:n.every(d=>t.ownerOf(d)===c)}const afn="This world's structure comes from its own source, which the editor can't rewrite here — reparenting is not wired for it.",cfn="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 Bwt(t){return t.hasStructureWritePath?t.targetIsInternal?cfn:null:afn}const lfn=400,hjt="volter.projectLocalState";let JB=null,JY=null,ER={},Bje=!1,WB=null;function gjt(){return Em()}function lte(){const t=gjt();if(JB===t)return Promise.resolve();if(JY)return JY.then(()=>lte());const n=l$e(),s=n?Promise.resolve(ufn(n.get(hjt))):UZr();return JY=Promise.all([s,K4t()]).then(([c])=>{ER=c&&typeof c=="object"?{...c}:{},JB=t}).catch(()=>{ER={},JB=t}).finally(()=>{JY=null}),JY}function ute(){return JB===gjt()}function Cve(t){if(ute())return ER[t]}function tUe(t=!1){if(WB!==null&&(clearTimeout(WB),WB=null),!Bje)return;Bje=!1;const n=l$e();n?n.store(hjt,JSON.stringify(ER)):JZr(ER,{leaving:t})}function ufn(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},Bje=!0,WB!==null&&clearTimeout(WB),WB=setTimeout(tUe,lfn)};ute()?s():lte().then(s)}function ffn(){tUe(!0)}IC(()=>{wf()&<e()});i3r(()=>{JB!==null&&(tUe(),JB=null,wf()&<e())});typeof window<"u"&&window.addEventListener("pagehide",ffn);const yjt="hierarchyExpansion",O$=new Map;let $wt=!1;function rUe(){if($wt||!ute())return;$wt=!0;const t=Cve(yjt)??{};for(const[n,s]of Object.entries(t))O$.set(n,new Map(Object.entries(s)))}function vjt(){const t={};for(const[n,s]of O$)t[n]=Object.fromEntries(s);Eve(yjt,t)}function dfn(t,n){return rUe(),O$.get(t)?.get(n)}function qwt(t,n){rUe();let s=O$.get(t);s||(s=new Map,O$.set(t,s));for(const[c,d]of n)s.set(c,d);vjt()}function pfn(t){rUe(),O$.delete(t),vjt()}let rye=null;const $je=new Set;function _fn(){return rye}function mfn(t){return $je.add(t),()=>{$je.delete(t)}}function bjt(t){if(rye!==t){rye=t;for(const n of $je)n()}}function hfn(t){rye===t&&bjt(null)}const gfn=500,zwt=new Set,cee=new Set;function ewn(t){return cee.has(t)}function twn(t){return cee.delete(t)?!1:(cee.add(t),!0)}function rwn(){return cee}function yfn(t,n=cee){if(typeof t.internalChildren!="function"||n.size===0)return{hierarchy:t.hierarchy,isInternal:()=>!1,revealRootIds:zwt,internalIds:zwt};const s=new Map,c=new Map,d=new Set,m=(S,k)=>{if(k>gfn||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 vfn(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,bfn="__more__:",Sjt=500;function Sfn(t,n,s){return t?Math.max(nye,n.get(s)??nye):Number.POSITIVE_INFINITY}function xfn(t,n,s,c,d){return{node:{id:`${bfn}${t}`,label:"",kind:"object",parentId:s,childIds:[]},depth:n,pathKey:`${t}/__more__`,hasChildren:!1,hiddenByCollapse:c,more:{parentPathKey:t,hidden:d}}}function Vwt(t,n,s=new Map,c=!1){const d=[],m=new Set,g=(S,k,A,F)=>{if(m.has(S.id)||k>Sjt)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,Sfn(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(xfn(A,k+1,S.id,$,S.childIds.length-G))};return t.roots().forEach((S,k)=>{g(S,0,`r${k}`,!1)}),d}function wfn(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>Sjt){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 Uwt(t){return`${t.pathKey}:${t.node.id}`}function Tfn(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 Cfn(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 DOe{#e=null;#t;computeCount=0;get current(){return this.#t}read(n,s){if(this.#e!==null&&Cfn(this.#e,n))return this.#t;const c=s(this.#t);return this.#e=n,this.#t=c,this.computeCount+=1,c}}class Efn{#e=new DOe;#t=new DOe;#i=new DOe;#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 kfn(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 nUe(t){const n=t.split("."),s=[];for(let c=1;c<n.length;c++)s.push(n.slice(0,c).join("."));return s}function Jwt(t,n){const s=new Set;for(const c of n)for(const d of t.pathKeysByNodeId.get(c)??[])for(const m of nUe(d)){const g=t.nodeIdByPathKey.get(m);g&&s.add(g)}return s}function Afn(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 Dfn(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 Pfn=["position","rotation","scale"];function Ifn(t){const n=t.role==="component"&&!!t.typeLabel;return{label:t.label,typeSuffix:n?t.typeLabel:null}}const iUe={locked:!1};function Nfn(t){let n;for(const s of Pfn){const c=t(s);if(!c||c.writable)return iUe;s==="position"&&(n=c.reason)}return n===void 0?{locked:!0}:{locked:!0,reason:n}}class Ofn{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?Nfn(S=>m(c,S)):iUe;return this.entries.set(c,g),g}}const Rfn={draggable:!0,renamable:!0,writable:!0,searchable:!0},Ffn={draggable:!1,renamable:!1,writable:!0,searchable:!0},Mfn={draggable:!1,renamable:!1,writable:!1,searchable:!1};function oUe(t){return t.internal?Mfn:t.structural?Ffn:Rfn}function jfn(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 Lfn{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?jfn(n.diagnosticsFor(c)):null;return this.entries.set(c,m),m}}const Tme=new Map;function nwn(t){return Tme.set(t.documentId,t),()=>{Tme.get(t.documentId)===t&&Tme.delete(t.documentId)}}function Bfn(t){return Tme.get(t)??null}function $fn(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 qfn(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 zfn(t,n){const s=[...n];if(s.length===0)return null;if(t instanceof hy)return qfn(t,s);const c=$fn(t,s);return c?{...c,adapter:t}:null}function Vfn(t,n){return!n||n.worldId!==null&&oq(n.worldId)?!1:n.kind!=="three"||n.worldId===null?!0:eUe(t)===n.worldId}const YZ=new Map;let xjt=0;const qje=new Set;function Wwt(){xjt++;for(const t of[...qje])t()}function iwn(t,n){const s={store:n};return YZ.set(t,s),Wwt(),()=>{YZ.get(t)===s&&(YZ.delete(t),Wwt())}}function Ufn(t){return t===null?null:YZ.get(t)?.store??null}function own(t){for(const[n,s]of YZ)if(s.store===t)return n;return null}function swn(t){return qje.add(t),()=>{qje.delete(t)}}function awn(){return xjt}const rB=new Map;function cwn(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 wjt={count:0,surface:null,visible:!1};function Jfn(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function Hwt(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 Wfn(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=Hwt(s?.kind);return c.kind!=="unknown"?c:Hwt(n.descriptor.kind)}function Hfn(t){return t instanceof hy?t.childAdapters().some(n=>n.kind==="three"):!t.rects&&typeof t.hierarchy.object3D=="function"}function zje(t,n,s,c){const d=Y0(t),m=Qun(t)&&Hfn(d)?"three":null,g=t.playState,S=t.selectedEntityIds.size;if(S===0)return{documentId:n,chrome:c,subject:s,surface:m,selection:wjt,play:g};const k=zfn(d,t.selectedEntityIds);return{documentId:n,chrome:c,subject:s,surface:m,selection:{count:S,surface:Jfn(k?.kind),visible:Vfn(t,k)},play:g}}function Gfn(t,n,s="document"){const c=Wfn(n);if(rB.has(n))return{...zje(t,n,c,s),surface:"canvas"};const d=Bfn(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:wjt,play:t.playState}:zje(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 Kfn(t){const n=Pp();return n!==null?Gfn(t,n):zje(t,null,{kind:"unknown"},"document")}function Xfn(t){return Ufn(Pp())??t}function Yfn(t){return t.surface!=="three"?!1:t.selection.count===0?!0:t.selection.surface==="three"&&t.selection.visible}function lwn(t){return Yfn(t)?uCt(t.documentId)===null?"gizmo":"modal":"none"}function uwn(t){return t.surface==="three"&&t.selection.count>0&&t.selection.surface==="three"&&t.selection.visible}function Tjt(t){return t.chrome==="embedded"||t.subject.kind==="story"||t.subject.kind==="artifact"}function fwn(t,n){return Tjt(t)?!0:t.subject.kind==="data"&&!n}function dwn(t){return t.chrome==="document"&&Tjt(t)}let Cme=null;const iye=new Set;function pwn(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 Zfn(t){return iye.add(t),()=>{iye.delete(t)}}const POe="application/x-editor-asset",IOe="application/x-hierarchy-reorder";function NOe(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:o4t.treeRow}const hZ="var(--volter-tree-indent)";function Eme(t){return`calc(${hZ} * ${t})`}const Gwt=5;function Qfn(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 edn=[],tdn=6,rdn=8,ndn=2400;function idn(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 odn=300,sdn=new Map,adn={folder:fee,document:dLe,story:KTt,component:GB,instance:WOe,boundary:dee};function cdn(t){return t.role==="root"?XZ(t.kind,iCt):t.role==="entity"||t.role==="element"?XZ(t.kind):(t.role?adn[t.role]:void 0)??XZ(t.kind)}const Cjt=new Set(["folder","root","document","story","boundary"]);function ldn(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 udn(t,n){return n===null?t.hierarchy.roots().map(s=>s.id):t.hierarchy.node(n)?.childIds??[]}function sUe(t,n){if(!(t instanceof hy))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 sUe(t,n)!==null}function aUe(t,n){return t instanceof hy&&t.isOrganizationNode(n)}function Ejt(t,n){if(!(t instanceof hy))return t;const s=t.ownerOf(n);return t.childAdapters().find(c=>c.worldId===s)?.adapter??t}function Kwt(t,n){return n===void 0?t.structure!==void 0:Ejt(t,n).structure!==void 0}function fdn(t,n,s){return kme(t,n)||aUe(t,n)||s!==void 0&&Cjt.has(s)}function ddn(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=fdn(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=>ojt(m.get(J)));s.set(g.node.id,g.node.defaultExpanded??(!D&&(A||F<=1||k?.childIds.length===1)))}return s}function pdn(t,n,s){const c=new Set;for(const d of t)if(!(d.more||!oUe({structural:!1,internal:s(d.node.id)}).searchable)&&d.node.label.toLowerCase().includes(n)){c.add(d.pathKey);for(const m of nUe(d.pathKey))c.add(m)}return c}function _dn(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 mdn({value:t,onChange:n}){const s=Ye.useRef(null);return q.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",flex:`0 1 var(${gdn}, ${hdn}px)`,minWidth:ydn},children:[q.jsx(dc,{icon:OTt,"aria-hidden":"true",style:{position:"absolute",left:vdn,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(${Sdn}, ${bdn}px)`,paddingRight:xdn}})]})}const hdn=64,gdn="--volter-hierarchy-search-basis",ydn=56,vdn=2,bdn=21,Sdn="--volter-hierarchy-search-text-inset",xdn=2;function wdn({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(dm,{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:YTt,"aria-hidden":"true",style:{fontSize:"var(--volter-icon-xs)"}})}),c&&q.jsxs(fN,{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 Tdn({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(mdn,{value:n,onChange:s}),q.jsx(wdn,{onCollapseAll:m,onResetExpansion:g,onExpandAll:S}),q.jsx(Edn,{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 Cdn({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(H3t({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=Ejt(n,t.nodeId).structure,ue=!!pe,Ce=n.inspector?.get(t.nodeId,"name")!==void 0,De=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=De&&(we?.writable??!0),Pt=be&&(qe?.writable??!0),Wt=[...Xfn(s).selectedEntityIds],zt=Wt.includes(t.nodeId)?Wt:[t.nodeId],ft=Q3r(EPt(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=oUe({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:()=>{m$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 p3r({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(fN,{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(m4t,{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:Rht.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:Rht.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 Edn({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:eCt,style:{fontSize:"var(--volter-font-sm)"}})," ",q.jsx(dc,{icon:fLe,style:{fontSize:"var(--volter-font-xs)"}})]}),s&&q.jsx(fN,{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 kdn({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 Xwt(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 kjt(t,n){return t.length===n.length&&t.every((s,c)=>s===n[c])}function Adn(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&&kjt(s.childIds,c.childIds)&&s.crossSurfaceId===c.crossSurfaceId&&s.crossSurfaceParentId===c.crossSurfaceParentId&&s.crossSurfaceOrder===c.crossSurfaceOrder&&s.crossSurfaceGroupLabel===c.crossSurfaceGroupLabel}function Ddn(t,n){return Adn(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&&kjt(t.remoteSelectionColors,n.remoteSelectionColors)}const Pdn=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:De,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=sUe(s,Qt.id),en=Yr!==null,ii=aUe(s,Qt.id),No=en||ii||Qt.role!==void 0&&Cjt.has(Qt.role),gn=oUe({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?mMt(Yr.worldId):!1,dl=Yr?hMt(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=Ifn(Qt),Sl=No?0:s.instances?.describe(Qt.id)?.overrides.length??0,Rl=No?iUe: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,tdn).map(Ao=>s.hierarchy.node(Ao)).filter(Ao=>Ao!==null&&ojt(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"&&VMe(Yr.worldId),Qt.role==="story"){const ia=s instanceof hy?s.ownerOf(Qt.id):null;ia&&VMe(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(Dht,{position:"before",style:{left:Eme(Tt)}}),k==="after"&&q.jsx(Dht,{position:"after",style:{left:Eme(Tt)}}),Qfn(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?Gwt:0,bottom:Ao.ends?Gwt:0}},Ao.column)),vn?q.jsx(dm,{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(),De(n,Ao.altKey)},title:"Expand/collapse (Option/Alt-click applies to the branch)",className:"volter-tree-caret",children:q.jsx(dc,{icon:S?NTt:fLe,"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:tCt,"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:cdn(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:[Xwt(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:Xwt(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(dm,{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:zOe,"aria-hidden":"true"})}),tr&&(Ni&&gn.writable?q.jsx(dm,{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?kun:Eun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),(On||en)&&gn.writable&&q.jsx(dm,{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?(Ean(Yr.worldId),c.notifyIngestEdit()):(s.inspector.set(Qt.id,"visible",!bu),c.notifyIngestEdit())},children:q.jsx(dc,{icon:bu?oLe:pLe,"aria-hidden":"true"})}),ft==="viewport+render"&&(Pn&&gn.writable?q.jsx(dm,{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?Tun:Cun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),Yr&&q.jsx(dm,{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(),Aan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:avr,"aria-hidden":"true"})}),Yr&&q.jsx(dm,{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(),Pan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:QTt,"aria-hidden":"true"})})]})},Ddn);function Idn({store:t,adapter:n}){Ye.useSyncExternalStore(t.subscribe,t.getSnapshot);const s=Ye.useDeferredValue(t.contentVersion);Ye.useSyncExternalStore(V3r,U3r),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(tfn());Ye.useEffect(()=>n.subscribe?.(()=>{k.current=t.getSnapshot(),S()}),[n,t]),Ye.useEffect(()=>rfn(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 Ofn),$=Ye.useRef(new Lfn),G=t.hierarchyRowFacetVersion,se=eUe(t),[pe,ue]=Ye.useState(""),Ce=Ye.useSyncExternalStore(mfn,_fn,()=>null),[De,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(DDt,pgt,pgt).includes("outliner")?"outliner":void 0,Yr=Ye.useRef(new Map),en=Ye.useRef(new Map),ii=Ye.useRef(new Efn),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=nfn(n,oye()?.marks(n.hierarchy)??mjt),Cs=yfn(Jn),lc=idn(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?wfn(lc,zi.structuralRows,Et.changedParentIds):null)??Vwt(lc,new Set),pr=vfn(ifn(ddn(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:kfn(In)}}),{marked:dl,internals:bu,hierarchyView:Al,structuralRows:Ku,defaultExpansion:pl}=Au,gs=zi=>en.current.get(zi)??dfn(_a,zi)??pl.get(zi)??!0,Xu=En.current;if(Xu?.adapter!==n||Xu.selection!==fa){for(const Jn of Jwt(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&&(D3r()||t.playState!=="stopped"),Rl=_dn(Yr.current,Sl?Afn(Au.index,Nt):sdn),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 nUe(zi.pathKey))Jn.delete(Cs)}return{scopeRow:zi,effectiveCollapsedPaths:Jn}}),{scopeRow:tu,effectiveCollapsedPaths:Wc}=mi,Ao=ii.current.browse([Au,mi,Ja,Sl,Sl?Dfn(Rl):""],()=>{const zi=Vwt(Al,Wc,Rl,Sl),Jn=Ja?pdn(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=sUe(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||ndn,Id=NOe(Tt.current),{start:ea,end:Pu}=ia.length>odn?Tfn(ia.length,tr,gp,Id,rdn):{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);qwt(_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(()=>(enn(Oc),()=>rnn(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);qwt(Cs.projectIdentity,Nu),No.current+=1,ji()},[]),mt=Ye.useCallback(()=>{en.current.clear();for(const zi of Jwt(Au.index,Nt))en.current.set(zi,!0);pfn(_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=>{K3r(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=NOe(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(IOe,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(IOe),Cs=zi.dataTransfer.types.includes(POe);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=NOe(Tt.current),Ie=Math.floor(Fl/Yu);if(Ie>=ia.length){qe(null),Pt(!0),Jn&&Wt&&(ft.current=Bwt({hasStructureWritePath:Kwt(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=Bwt({hasStructureWritePath:Jn?Kwt(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)||ldn(Ur,Wt,n))return;if(!sfn(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(IOe);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=udn(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),_$e(n,Li,Ei);return}const Yu=zi.dataTransfer.getData(POe);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)&&BFe(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)&&BFe(n,In,Ie.path,Et)}catch{}},[we,bt,ia,n]),Iu=kPt(n)??"Untitled";return q.jsxs(Jye,{name:null,hideHeader:!0,onPointerDown:()=>CR("hierarchy"),onDragOver:zi=>{zi.dataTransfer.types.includes(POe)&&(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(Tdn,{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:()=>Rgt(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:()=>Rgt(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(kdn,{row:zi,onReveal:xt},Uwt(zi)):q.jsx(Pdn,{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)??edn},Uwt(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}})]}),De&&(()=>{const zi=Al.node(De.nodeId),Jn=zi?kme(n,zi.id)||aUe(n,zi.id):!1;return q.jsx(Cdn,{state:De,adapter:n,store:t,isGroupNode:Jn,isInternal:bu.isInternal(De.nodeId),onRename:X,onClose:()=>Pe(null)})})()]})}function Ajt(){const t=Yv(),[,n]=Ye.useReducer(c=>c+1,0);Ye.useSyncExternalStore(o2,K1),Ye.useSyncExternalStore(Eee,AD),Ye.useSyncExternalStore(Zfn,oye);const{adapter:s}=Cm(t);return Ye.useEffect(()=>s.subscribe?.(n),[s]),q.jsx(Idn,{store:t,adapter:s},Zun(s))}function Ndn(){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=eMt(),k=Ye.useSyncExternalStore(u2,CFe,CFe);Ye.useSyncExternalStore(yDt,whe,whe),Ye.useSyncExternalStore(Kye,mhe,mhe),Ye.useSyncExternalStore(NDt,Phe,Phe),Ye.useSyncExternalStore(hLe,YB,YB);const A=De=>{const Pe=jme(De);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(cMt,N$,N$),D=Ye.useSyncExternalStore(SDt,zS,zS),[J,$]=Ye.useState(null);ujt(()=>J?Wvr():"");const G=Ye.useRef(null),se=Ye.useRef({}),pe=De=>se.current[De]??={current:null},ue=De=>()=>{$(null),Promise.resolve().then(De).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(VVe),children:"Undo History…"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:c.length===0||!s?.cut||!(s.canCopy?.(c)??!0),onSelect:ue(()=>qVe(t)),children:"Cut"}),q.jsx(Jc,{disabled:c.length===0||!s?.copy||!(s.canCopy?.(c)??!0),onSelect:ue(()=>$Ve(t)),children:"Copy"}),q.jsx(Jc,{disabled:!s?.paste||!(s.canPaste?.(m)??!0),onSelect:ue(()=>zVe(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(()=>ORt(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(()=>EVe()),children:"Command Palette…"}),q.jsx(Jc,{onSelect:ue(async()=>{const De=mrn(t);try{await navigator.clipboard.writeText(De),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(zBe),children:"Toggle Focus Mode"}),A("view")]}),window:q.jsxs(q.Fragment,{children:[AN().filter(De=>Uk(De.id)).map(De=>q.jsxs(Jc,{role:"menuitemradio","aria-checked":D===De.id,"data-testid":`workspace-${De.id}`,title:De.description,onSelect:ue(()=>a2(De.id)),children:[q.jsx(dc,{icon:Kk.status.success,style:{opacity:D===De.id?1:0}}),"Workspace: ",De.title]},De.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(()=>qBe("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(De=>q.jsx(Jc,{onSelect:ue(()=>{De.point==="workspace.document"?tA(De.id):vC(`tool:${De.id}`)}),children:De.title},De.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(De=>Ce[De]!==null).map(De=>q.jsxs("div",{ref:pe(De),style:{position:"relative"},children:[q.jsx(yBe,{"data-testid":`app-menu-${De}`,"aria-haspopup":"menu","aria-expanded":J===De,onClick:()=>$(Pe=>Pe===De?null:De),onKeyDown:Pe=>{Pe.key==="ArrowDown"&&(Pe.preventDefault(),$(De))},onPointerEnter:()=>{J&&$(De)},style:{textTransform:"capitalize"},children:De}),J===De&&q.jsx(vBe,{anchorRef:pe(De),dismissBoundaryRef:pe(De),align:"start",gap:0,clamp:!0,autoFocusFirst:!0,onDismiss:()=>{const Pe=G.current?.querySelector(`[data-testid="app-menu-${De}"]`);$(null),requestAnimationFrame(()=>Pe?.focus())},style:{minWidth:190},children:Ce[De]})]},De))})}const Odn=new Map,Ywt=new Set;let Rdn=0;function Fdn(t){return Odn.get(t)??Mdn}const Mdn=[];function jdn(t){return Ywt.add(t),()=>Ywt.delete(t)}function Zwt(){return Rdn}function Ame({slot:t}){return Ye.useSyncExternalStore(jdn,Zwt,Zwt),q.jsx(q.Fragment,{children:Fdn(t).map(n=>q.jsx(n.Content,{},n.owner))})}const IO=[],Vje=new Set;let Djt=0;function Qwt(){Djt++;for(const t of Vje)t()}function Ldn(t){const n=IO.findIndex(s=>s.owner===t.owner);return n>=0&&IO.splice(n,1),IO.push(t),IO.sort((s,c)=>(s.order??0)-(c.order??0)),Qwt(),()=>{const s=IO.indexOf(t);s<0||(IO.splice(s,1),Qwt())}}async function Bdn(t){const n=new Set,s=[];for(const c of IO){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 $dn(t){return Vje.add(t),()=>{Vje.delete(t)}}function eTt(){return Djt}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 qdn(){const t=await fetch("/__editor/git/status");return L_(t,"Git status failed")}function zdn(t){return pA("/git/checkpoint",{method:"POST",body:JSON.stringify(t)})}function Vdn(t){return pA("/git/publish",{method:"POST",...t?{signal:t}:{}})}function tTt(t){return pA("/git/stage",{method:"POST",body:JSON.stringify(t)})}function Udn(t){return pA("/git/fetch",{method:"POST",...t?{signal:t}:{}})}function Jdn(t){return pA("/git/update",{method:"POST",...t?{signal:t}:{}})}function rTt(t){return pA("/git/rebase",{method:"POST",body:JSON.stringify({action:t})})}function Wdn(){return pA("/git/readiness",{method:"POST"})}function Hdn(t){return pA("/git/pull-request",{method:"POST",body:JSON.stringify(t)})}function Gdn(){return pA("/git/pull-request/status")}function Kdn(t){return pA("/git/pull-request/merge",{method:"POST",...t?{signal:t}:{}})}function Xdn(){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(()=>{qdn().then(we=>{m(we),S(we.changed.map(qe=>qe.path))}).catch(we=>n(String(we)))},[]);const De=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{De(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),Hdn({title:we}).then(qe=>{De(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),Kdn(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(()=>tTt({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(()=>tTt({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(()=>rTt("continue"),"Rebase continued."),children:"Continue rebase"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>rTt("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(()=>zdn({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(Udn,"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(Vdn,"Branch published.","Publishing"),children:"Publish"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||!d.baseRef,onClick:()=>void Pe(Jdn,"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 Wdn().then(we=>{De(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 Gdn().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(kRe,{labelledBy:"volter-pull-request-title-heading",onDismiss:()=>se(null),children:[q.jsx(ARe,{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(U3t,{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(DRe,{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(kRe,{labelledBy:"volter-merge-pr-heading",onDismiss:()=>ue(!1),children:[q.jsx(ARe,{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(DRe,{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"})]})]})]})}Ldn({owner:"editor-core:supercode",harnesses:async()=>XZr()});const Ydn={worktrees:[],branches:[]};function Zdn(t){return`agent/${t.toLocaleLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,42)||"task"}`}function Qdn({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($dn,eTt,eTt);return Ye.useEffect(()=>{let Ce=!0;return Bdn(A).then(De=>{Ce&&(J(De),G(Pe=>De.some(be=>be.id===Pe)?Pe:De[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(TBe,{"aria-label":"Task for the agent",placeholder:"Describe a bounded task…",value:c,onChange:Ce=>{const De=Ce.target.value;d(De),S||g(Zdn(De))}}),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),QZr({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 epn(t){return t.replace(/[\\/]$/,"").split(/[\\/]/).at(-1)??t}function tpn(t){const n=t.current?["Current worktree"]:[epn(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=cUe(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 cUe(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 rpn(t){return t.kind==="agent"?"AI":t.displayName.split(/\s+/).slice(0,2).map(n=>n[0]?.toLocaleUpperCase()??"").join("")}function nTt({worktree:t}){const n=cUe(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:rpn(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 iTt(t,...n){const s=t.trim().toLocaleLowerCase();return!s||n.some(c=>c?.toLocaleLowerCase().includes(s))}function oTt(t,n){return[+!t.current,Math.min(...cUe(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 npn(t){return(n,s)=>{const c=oTt(n,t),d=oTt(s,t);return c.reduce((g,S,k)=>g||S-(d[k]??0),0)||(n.branch??n.root).localeCompare(s.branch??s.root)}}function ipn(){const[t,n]=Ye.useState(Ydn),[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 YZr()),A(null)}catch($){A($ instanceof Error?$.message:String($))}finally{J||m(!1)}},[]);return Ye.useEffect(()=>{if(L$)return;let J=!0;return KZr().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 opn(){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}=ipn();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(npn(Ce)).filter(ft=>iTt(c,ft.branch,ft.root)),be=S.branches.filter(ft=>!ft.worktreeId&&iTt(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(yBe,{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:h0r}),se?.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"}),se&&q.jsx(nTt,{worktree:se})]}),n&&q.jsxs(vBe,{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:ITt})})]}),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,()=>ZZr(ft.worktreeId),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:ft.current&&q.jsx(dc,{icon:cLe})}),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…":tpn(ft)})]}),q.jsx(nTt,{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}`,()=>tQr(ft.worktreeId,ft.sessions[0].sessionId),()=>s(!1)),children:q.jsx(dc,{icon:FTt})}),!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}`,()=>eQr(ft.worktreeId),()=>s(!1)),children:q.jsx(dc,{icon:nCt})})]},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,()=>XSt(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",()=>XSt(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(Qdn,{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(Xdn,{})]}),D&&q.jsx(_p,{as:"div",variant:"caption",tone:"danger",role:"alert",className:"volter-worktree-error",children:D})]})]})}function spn({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(yBe,{"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(opn,{}),q.jsx(bZ,{onPointerDown:()=>c(!1),className:"volter-project-app-menus",children:q.jsx(Ndn,{})})]}),q.jsx(apn,{}),s&&q.jsxs(fN,{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",rjt]}),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),CMe(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(cpn,{})}),q.jsx(bZ,{className:"volter-project-header-right",justify:"end",align:"center",children:q.jsx(Ame,{slot:"header-trailing"})})]})}function apn(){Ye.useSyncExternalStore(U$,vhe,vhe),Ye.useSyncExternalStore(yDt,whe,whe);const t=Ye.useSyncExternalStore(SDt,zS,zS);if(mD().workspaceTabs!=="shown")return null;const n=AN().filter(s=>Uk(s.id));return q.jsxs(q.Fragment,{children:[q.jsx(VTr,{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 cpn(){Ye.useSyncExternalStore(hLe,YB,YB);const t=zvr();return t.length===0?null:q.jsx(q.Fragment,{children:t.map(({id:n,Component:s})=>q.jsx(s,{documentId:""},n))})}function lpn({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 upn(t,n){return window.confirm(n)}const fpn=4,dpn=4,ppn=24,_pn=4,mpn=3,hpn=new Set(["model","image"]),gpn=new Set(["glb","gltf","fbx","obj","dae","stl","ply","spz","bvh","3ds"]);function ypn(t){const n=t.lastIndexOf(".");return n>0&&gpn.has(t.slice(n+1).toLowerCase())}const vpn=new Set(["audio","video","prefab","json"]);function Pjt(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 lUe(t){return t.replace(/^(?:\.\/|\/)+/,"").replace(/\/+$/,"")}function bpn(t,n){const s=t?n.slice(t.length+1):n;return s.split("/",1)[0]??s}function sTt(t,n){return t.tier-n.tier||t.depth-n.depth||t.seq-n.seq}function Spn(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 xpn(t,n){const s=[...t].sort(sTt),c=[],d=new Set;for(const m of[1,2]){const g=s.filter(S=>S.tier===m);Spn(g,c,d,n)}return c.sort(sTt),c.map(({path:m,name:g,kind:S})=>({path:m,name:g,kind:S}))}function wpn(t){return hpn.has(t)?1:vpn.has(t)?2:0}function Tpn(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=ypn(d.name)?"model":ig(d.name).kind,S=wpn(g);S!==0&&t.candidates.push({path:m,name:d.name,kind:g,tier:S,depth:n.depth,seq:t.seq++,subtree:bpn(t.base,m)})}}async function Cpn(t,n,s={}){const c=s.listAssets??eve,d=s.maxItems??fpn,m=s.maxListings??ppn,g=Pjt(s.listConcurrency??_pn),S=lUe(n),k={base:S,maxDepth:s.maxDepth??dpn,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}Tpn(k,pe,ue.entries,G)}F=G}return{items:xpn(k.candidates,d),totalAssets:k.totalAssets,scannedAll:!k.truncated&&k.failedListings===0,failedListings:k.failedListings}}const Ijt="\0",JO=new Map,Epn=Pjt(mpn);function kpn(t,n,s){const c=`${t}${Ijt}${lUe(n)}`,d=JO.get(c);if(d)return d;const m=Epn(()=>Cpn(t,n,s));JO.set(c,m);const g=()=>{JO.get(c)===m&&JO.delete(c)};return m.then(S=>{(S.failedListings>0||S.items.length===0&&S.totalAssets===0)&&g()},g),m}function Apn(t,n){return t===n||t===""||n===""||t.startsWith(`${n}/`)||n.startsWith(`${t}/`)}function aTt(t){if(t===void 0){JO.clear();return}const n=lUe(t);for(const s of[...JO.keys()]){const c=s.slice(s.indexOf(Ijt)+1);Apn(c,n)&&JO.delete(s)}}function Uje(t,n="$"){return typeof t=="string"?[{path:n,value:t}]:Array.isArray(t)?t.flatMap((s,c)=>Uje(s,`${n}[${c}]`)):!t||typeof t!="object"?[]:Object.entries(t).flatMap(([s,c])=>Uje(c,`${n}.${s}`))}function Dpn(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 Ppn(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=Dpn(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 Uje(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 Njt(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 Njt(t,m)):/\.json$|\.gltf$/i.test(m)?c.push({path:m,text:await t.read(m)}):c.push({path:m})}return c}async function Ipn(t,n){return Ppn({assetPath:n,files:await Njt(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 OOe(t,n){for(const s of n)if(await t.exists(s))throw new Error(`An asset already exists at ${s}.`)}async function Npn(t,n){const s=k$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 OOe(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 OOe(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 OOe(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 Opn=320,Rpn=180,Fpn="document-preview-v4",gZ=new Map,Mpn=new ZPt(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,cTt,ROe=null;const WY=new Set;async function Ojt(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 Ojt(d.path)):c.push(`${d.path}:${d.size??0}:${d.mtime??0}`);return c}async function jpn(){const t=wf()?.rootPath;return cTt!==t&&(cTt=t,ZZ=null),ZZ??=Promise.all([URt([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 EMe(s)??""}`))),Ojt("")]).then(([n,s])=>Rjt([...n,...s].sort().join(`
|
|
1404
1404
|
`))),ZZ}function Lpn(t){return WY.add(t),ROe??=Dg.watch(n=>{if(n.path===PB){YPt();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&&(ROe?.(),ROe=null,ZZ=null)}}async function Bpn(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=Mpn.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 Rjt(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 $pn(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 lTt(t,n="image/png"){const s=new Uint8Array(t.byteLength);return s.set(t),URL.createObjectURL(new Blob([s.buffer],{type:n}))}async function qpn(t){const n=await E$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 zpn(t,n,s,c){const d=wf()?.rootPath??"no-project",m=await qpn(t),g=JSON.stringify({projectId:d,documentId:t,recipe:Fpn,revision:n.revision(),dependencies:await jpn(),camera:m});c.throwIfAborted();const S=await Rjt(g),k=`.volter/cache/document-previews/${S}.png`;if(s===0&&await Dg.exists(k))return lTt(await Dg.readBytes(k));const A=await Bpn(S,c,()=>n.capture({width:Opn,height:Rpn,...m?{camera:m}:{}}));c.throwIfAborted();const F=$pn(A);return await Dg.write(k,F.bytes),lTt(F.bytes,F.mime)}function Vpn({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 De=null;const Pe=()=>{pe.current?.abort(),J(!0),De&&clearTimeout(De),De=setTimeout(()=>k(we=>we+1),750)},be=n.subscribe(Pe),X=Lpn(Pe);return()=>{De&&clearTimeout(De),be(),X()}},[n]),Ye.useEffect(()=>()=>{ue.current?.startsWith("blob:")&&URL.revokeObjectURL(ue.current)},[]),Ye.useEffect(()=>{const De=se.current;if(!De)return;const Pe=new IntersectionObserver(([be])=>G(be?.isIntersecting??!1));return Pe.observe(De),()=>Pe.disconnect()},[]),Ye.useEffect(()=>{if(!$)return;const De=new AbortController;pe.current=De;const Pe=Ce.current.previewRevision!==s||Ce.current.retry!==A?1:0;return g(null),J(!0),zpn(t,n,Pe,De.signal).then(be=>{if(De.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=>{De.signal.aborted||(g(be instanceof Error?be.message:String(be)),J(!1))}),()=>De.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:De=>{De.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 Fjt(t,n){return rve(t,n.path)}function Upn({root:t,item:n}){const[s,c]=Ye.useState(!1);return s?q.jsx(vD,{kind:"image",size:14}):q.jsx("img",{src:Fjt(t,n),alt:n.name,loading:"lazy",onError:()=>c(!0)})}function Jpn({root:t,item:n}){const s=O9t(Fjt(t,n),Hin);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 Wpn({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(Upn,{root:t,item:n}):n.kind==="model"?q.jsx(Jpn,{root:t,item:n}):q.jsx(wR,{kind:n.kind,name:n.name,variant:"cell"})}function Hpn({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 kpn(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:qOe,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(Wpn,{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 Mjt="contentBrowser";function Jje(t){return t.type==="directory"?"folder":ig(t.name).kind}function Gpn(t,n,s){return rve(t,n?`${n}/${s}`:s)}function Kpn(t,n,s){return n?`/${n}/${s}`:`/${s}`}function Xpn(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Wje(t){const n=ig(t);return n.importable?n.runtimeReady?"healthy":"source-only":"unsupported"}const Ypn=640,uTt={scope:"content",root:"public",currentPath:"",viewMode:"grid",sort:"relevance",filter:"all",density:96,expanded:["public"],treeVisibility:"auto",facets:["component"]};function Zpn(){try{const t=Cve(Mjt)??{},n=t.viewMode,s=t.treeVisibility,c=t.scope,d=t.root;return{...uTt,...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 uTt}}const Qpn={listAssets:eve,listProjectComponents:zRt},FOe="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.",e_n=new Set(["component","scene","canvas","model","image","video","audio","other"]);function t_n(t){const n=t.charAt(0).toUpperCase()+t.slice(1);return n.endsWith("s")?n:`${n}s`}async function fTt(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 Ysn().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 r_n(t){return t.component.surface==="three"?"3d":t.component.surface==="canvas"?"2d":"ui"}function n_n(t){const n={"3d":"3D","2d":"2D",ui:"UI"};return["3d","2d","ui"].flatMap(s=>{const c=t.filter(d=>d.source==="component"&&r_n(d)===s);return c.length>0?[{id:`prefabs-${s}`,label:n[s],headingLevel:"category",entries:c}]:[]})}function i_n(t,n,s){return n==="files"?[{id:"files",label:null,headingLevel:null,entries:[...t]}]:s.length===1&&s[0]==="component"?n_n(t):t.length>0?[{id:"content",label:null,headingLevel:null,entries:[...t]}]:[]}function jjt(t){return t.source==="available"?t.available.category:t.source==="component"?t.component.contentKind??"component":t.source==="document"?t.document.kind:V9t(t.name)}function o_n(t){return t.source==="component"?t.component.contentKind??"component":t.source==="available"||t.source==="document"?"source":Jje(t.entry)}function WO(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function s_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(Gpn(t.root,d,s.name),k)}}function Ljt(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":Xpn(t.entry.size)}function a_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=Ljt(t);return n?`${t.name}
|
|
1408
1408
|
${n}`:t.name}function c_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 dTt(t){return t.source==="asset"?Don({path:t.path,root:t.root,entry:t.entry}):t.source==="available"||t.source==="document"?10:Pon(t.component)-100}function l_n(t,n){const s=dTt(t),c=dTt(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 pTt(t,n){return t===void 0?n===void 0?0:1:n===void 0?-1:n-t}function u_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 pTt(t.entry.size,n.entry.size);if(s==="modified"&&t.entry.modifiedAt!==n.entry.modifiedAt)return pTt(t.entry.modifiedAt,n.entry.modifiedAt);if(s==="type"){const c=Jje(t.entry).localeCompare(Jje(n.entry));if(c!==0)return c}if(s==="health"){const c=Wje(t.name).localeCompare(Wje(n.name));if(c!==0)return c}return HB(t,n)}function f_n(t,n,s){return s==="relevance"?l_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):u_n(t,n,s)}function d_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=jjt(t);return n.facets.includes(s)}return n.scope==="content"||c_n(t,n.filter,n.shownPath)}const p_n={width:"100%",minWidth:0,padding:0,textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:3},__n={width:"100%",minWidth:0,minHeight:28,padding:"3px 6px",textAlign:"left",display:"flex",flexDirection:"row",alignItems:"center",gap:7};function m_n(t){const n=new Map;if(!t.assetSubject)return n;const s=t.assetSubject.entries?.()??R3r(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 h_n=()=>()=>{},g_n=()=>0;function y_n({sheetUrl:t,frame:n}){return q.jsx(M9t,{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 v_n({item:t,kind:n,assetUrl:s,grid:c,folderPath:d,previewRevision:m}){const g=s;if(n==="folder")return c?q.jsx(Hpn,{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(Kin,{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(Vpn,{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(y_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"||N9t(s)?q.jsx(R9t,{url:s}):["prefab","json"].includes(n)?q.jsx(wR,{kind:n,name:t.name}):q.jsx(vD,{kind:n})}function b_n({item:t,selected:n,onDragStart:s,onSelect:c,onOpen:d,onContextMenu:m,viewMode:g,previewRevision:S,showPath:k}){const A=o_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=a_n(t),se=F?F.type==="directory"||D?.placeable?D?.placeable?"grab":"pointer":"default":"pointer",pe=Ljt(t),ue=t.source==="component"?t.path:t.source==="asset"?Oge(t.root,WO(t.path)).replace(/\/$/,""):WO(t.path)||"public",Ce=k?`${ue} · ${pe}`:pe,De=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&&zin(J)},onPointerLeave:()=>{A==="audio"&&J&&Vin(J)},onDragStart:Pe=>s(Pe,t),onDragEnd:w3r,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:{...De?p_n:__n,borderRadius:aQ.sm,cursor:se,userSelect:"none"},children:[q.jsxs("div",{className:"volter-project-asset-entry__preview","data-testid":"asset-entry-preview",style:{...De?{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(v_n,{item:t,kind:A,assetUrl:J,grid:De,folderPath:$,previewRevision:S}),De&&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:{...De?{fontSize:10,lineHeight:"13px",minHeight:26,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2}:{fontSize:11,lineHeight:"18px",flex:1},overflow:"hidden",textOverflow:"ellipsis",whiteSpace:De?"normal":"nowrap",color:Zf[1],minWidth:0},children:t.name}),!De&&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 S_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:De,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=WO(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(Pht,{children:[q.jsx(mO,{text:"Content grid",position:"top",children:q.jsx(dm,{"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:svr})})}),q.jsx(mO,{text:"Browse grid",position:"top",children:q.jsx(dm,{"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:MTt})})}),q.jsx(mO,{text:"Browse list",position:"top",children:q.jsx(dm,{"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(mO,{text:m?"Close search":"Search",position:"top",children:q.jsx(dm,{"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(mO,{text:A?"Hide folders":"Show folders",position:"top",children:q.jsx(dm,{"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:rCt})})}),q.jsx(mO,{text:"Back",position:"top",children:q.jsx(dm,{"data-testid":"asset-back","aria-label":"Back",disabled:!c,onClick:()=>$(d,Tt),children:q.jsx(dc,{icon:K0r})})}),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(Pht,{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=>!e_n.has(en)).sort().map(en=>[en,t_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(mO,{text:"More asset actions",position:"top",children:q.jsx(dm,{"aria-label":"More asset actions","aria-expanded":ft,"aria-haspopup":"menu",onClick:()=>tr(en=>!en),children:q.jsx(dc,{icon:m0r})})}),ft&&q.jsxs(fN,{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),De()},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 x_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=HRt.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(dm,{className:"volter-asset-tree-toggle","aria-label":`${k?"Collapse":"Expand"} ${A}`,"aria-expanded":k,onClick:()=>t.onExpanded(S),children:q.jsx(dc,{icon:jTt,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 w_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>=Ypn)};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 T_n({services:t=Qpn}){const n=Yv(),s=typeof n.subscribe=="function"?n.subscribe:h_n,c=typeof n.getSnapshot=="function"?n.getSnapshot:g_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=Q9t(),F=Ye.useSyncExternalStore(u2,rA,rA),D=Ye.useSyncExternalStore(C9t,Jge,Jge),J=F.filter(pr=>pr.point==="workspace.document"&&pr.tool?.generation?.role==="submit"),$=Ye.useMemo(Zpn,[]),[G,se]=Ye.useState($.root),[pe,ue]=Ye.useState($.scope),[Ce,De]=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}=w_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(wtn,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(Mjt,{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([z9t(t.listAssets),t.listProjectComponents()]),Ei=await kon(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=>{De([pr])},[]),Ds=Ye.useCallback(pr=>{en(pr),pr||De(Ur=>Ur.length>0?Ur:["component"])},[]),Oc=ii.path,Ze=Ye.useMemo(()=>m_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=Nin().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"?tVe(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=>d_n(Li,{query:pr,scope:pe,facets:Ce,filter:Pt,shownPath:Oc})),Ei=pe==="files"&&qe==="relevance"?"name":qe;return[...Ur].sort((Li,uc)=>f_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(jjt(Ur));return pr},[mt]),eo=Ye.useMemo(()=>i_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. ${FOe}`);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:Kpn(G,WO(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:Wje(Li.name),selectionCount:Ei.size,...pr.path.startsWith("asset-library/local")?{sourcePath:"Asset Library provenance metadata"}:{}}),pr.root!=="public")return;const Lo=pr.path;Ipn(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){hQr(pr.authoringAsset.id,pr.authoringAsset.subject);return}pr.contentSource.open(n,pr.contentEntry,pr.name);return}if(pr.source==="available"){SN(pr.available.descriptor.id);return}if(pr.source==="document"){if(pr.document.kind==="scene"){const Ur=OFt(pr.document.id);Ur.ok||Qs.error(Ur.error,"scene");return}ID(pr.document)||sN(`/${pr.path}`,PFt(pr.document));return}s_n(pr,{currentRoot:G,currentPath:pr.source==="asset"?WO(pr.path):"",navigate:Ls,openAsset:(Ur,Ei)=>sN(Ur,Ei)})},[G,Ls,n]),Ps=Ye.useCallback(pr=>{if(Dc(Ur=>Ur+1),gp.current.clear(),pr?.length)for(const Ur of pr)aTt(Ur);else aTt();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&&sN(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 Npn(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&&upn("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. ${FOe}`);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=WO(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. ${FOe}`);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=WO(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]&&CMe(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(!hje(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(x_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(S_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:()=>De([]),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(b_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(WTr,{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(fN,{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),fTt(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),fTt(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(fN,{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]&&CMe(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 C_n={agent:()=>q.jsx(Ame,{slot:"panel:agent"}),"project-work":()=>q.jsx(Ame,{slot:"panel:project-work"}),hierarchy:Ajt,assets:({dependencies:t})=>q.jsx(T_n,{services:t?.assets}),"asset-library":()=>q.jsx(Ame,{slot:"panel:asset-library"}),inspector:QVe};class E_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 k_n=AVe.map(t=>{const n=C_n[t.kind],s=c=>q.jsx(E_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function A_n(t){return k_n.find(n=>n.kind===t)}function D_n({kind:t,dependencies:n}){const{Content:s}=A_n(t);return q.jsx(s,{dependencies:n})}const P_n=250;function I_n(){const t=F4t(),n=N_n();return()=>{n(),t()}}function N_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&&bN("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,P_n))});return bN("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],_wn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),sye=1e-9,Bjt=1e5;function O_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>Bjt){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 R_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>Bjt){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 _Tt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class F_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=_Tt(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=_Tt(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"?O_n(c,s,this._range):R_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},M_n=150;class mwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new F_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()},M_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,Hje=new Set;function mTt(){for(const t of[...Hje])t()}function hwn(t,n){return Dme.set(t,n),mTt(),()=>{Dme.get(t)===n&&(Dme.delete(t),mTt())}}function j_n(t){return t===null?null:Dme.get(t)??null}function L_n(t){return Hje.add(t),()=>{Hje.delete(t)}}let Pme=null;function gwn(t){return Pme=t,()=>{Pme===t&&(Pme=null)}}function kve(){return Pme}const $jt="__volterWorkspacePersistenceSuppressed";function qjt(){return globalThis}function zjt(t){qjt()[$jt]=t}function B_n(){return qjt()[$jt]===!0}function Vjt(){return(xee()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Ujt={phase:"idle",flightDone:!1,gameReady:!1};function $_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 q_n(t,n){if(n==="stop")return Ujt;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 $_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 z_n=450,V_n=220,Jjt=250;function U_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${z_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${V_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Jjt}ms`)}let SD=null;function J_n(t){return SD=t,typeof document<"u"&&U_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Wjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function W_n(){return Qk?.state.phase??"idle"}const Ime=new Set;function Hjt(){if(Ime.size===0)return;const t=[...Ime];Ime.clear();for(const n of t)n()}function H_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Ime.add(t)}function G_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=q_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),G_n(n,Jjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&kve()?.settle(),Hjt()))}function K_n(){X_n({immersive:Vjt()})}function X_n(t){if(Qk&&uUe(),!t.immersive)return;const n=Wjt();zjt(!0);const s={state:Ujt,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 Y_n(t,n){(!t||!n)&&uUe()}function Z_n(t){const n=Qk;n&&(n.flying&&t&&kve()?.track(t),gB("game-ready"))}function uUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Hjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&kve()?.end(),SD?.showChrome(!Wjt()),zjt(!1)}}const Gje=new Set;let Gjt=null;function Kjt(){return wf()?.rootPath??null}function Q_n(t){Gje.add(t);const n=Kjt();return n!==null&&Gjt===n&&t(),()=>{Gje.delete(t)}}async function ywn(){Gjt=Kjt();for(const t of[...Gje])await t()}function emn(){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 Kje=null;function tmn(t){Kje=t}function hTt(){if(!Kje)throw new Error("The workbench Output service is not connected.");return Kje}function rmn(){lDr(Pp),l4r({output:{write:(...t)=>hTt().write(...t),show:t=>hTt().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:o9t,mounted:bVe,playing:ave,runWindow:pVe,restartRequired:r9t,restart:n9t,subscribe:xVe,version:a9t,notifyChanged:t9t,snapshotFrame:mVe,frameCanvas:_Ve,authoringRefusal:vVe,dispatch:hVe,scenes:gVe,surface:sve,coverage:yVe},viewport:{transition:{begin:K_n,ready:Z_n,end:uUe,onSettled:H_n,phase:W_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:DBe,reportFacet:Yrn,onSample:Lnn,onCommandDispatched:WYr,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=>Bze(n=>{n!==null&&t()}),onBeforeClose:hnn,reportWorkerCallMeter:san},project:{documentTable:Uen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:Q_n},notify:t=>s$(t),systems:{inspected:Pye,subscribe:Gwr,inspectedNetworking:Zwr,subscribeNetworking:Qwr,inspectedAudio:()=>eTr()??null,subscribeAudio:tTr,audioVersion:rTr},availability:{subscribe:ZVe,version:qun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Yye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:gtn,acquire:Stn,release:iVe,open:iq,container:ytn,setContainer:vtn,releaseContainer:btn}},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:v4t,contextChanged:QCr,captureActive:t=>{const n=Ih();return n?S9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>j_n(t),subscribe:L_n},projectLocalState:{ready:ute,read:Cve,write:Eve,projectRootPath:()=>wf()?.rootPath??null},history:{record:o6t,setDelegate:aDr,onElement:fDr,invalidate:dDr,onInvalidated:pDr,changed:cDr,elements:uDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?zYr(s)??Fze(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=i6t(t),s=s_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:F4r,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:REr,get:$Er,set:zEr,inspect:X4t,subscribe:t=>{const n=W4t(t),s=See(t);return()=>{n(),s()}}},keyboard:{actions:()=>Kan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>Z4t().map(({id:t,title:n})=>({id:t,title:n,chords:iDt(t)})),activeKeymap:dR,invoke:t=>BVe(t),subscribe:t=>{const n=Yan(t),s=Kye(t),c=s_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Xan()+K1(),stage:()=>{const t=Ih();return t?{surface:Kfn(t).surface,mode:emn()}:{surface:null,mode:null}},bindActions:icn,chordsFor:BBe,shortcutFor:t=>Vv(t)??null}})}let nmn=0,lee=null;const Xje=new Set;function gTt(t){const n={generation:++nmn,promise:t,active:!0};lee=n;for(const s of Xje)s(n);return Xje.clear(),n}function imn(){const t=lee;return t?.active?Promise.resolve(t):new Promise(n=>Xje.add(n))}async function fUe(){for(;;){const t=await imn();if(await t.promise,lee===t&&t.active)return}}const Xjt=16,omn=300,smn=1e4,Yjt="workspace";function amn(){const t=Cve(Yjt);return!t||t.version!==Xjt?null:t}function cmn(t){Eve(Yjt,t)}function lmn(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=PAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function umn(){const t={};let n=!1;for(const s of mDt()){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 fmn(){const t=[];for(const s of l0()){const c=lmn(s);c&&t.push(c)}const n=umn();return{version:Xjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function dmn(t,n,s){for(const c of _Dt(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 yTt(t){if(!t)return!1;const n=!GQ();return SN(t,n)?!0:ptn.has(t)?(DFt(t),n&&wTr(t),!0):n&&X0(t)}function pmn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of mDt())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 _mn(t){const n=new Set;for(const s of t)for(const c of _Dt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function mmn(t,n){const s=n?.documents;if(pmn(t,s),!s||s.open.length===0){yTt(s?.activeId??null);return}await _mn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&IAr(c.id,d),await dmn(t,c,s.activeId)}yTt(s.activeId)}function Zjt(t){if(!ute()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=gTt(Ce);return Promise.all([lte(),eVe()]).then(()=>{if(se){ue();return}pe=Zjt(t),De.active=!1,fUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=amn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Okr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!(B_n()||t.playState!==void 0&&t.playState!=="stopped")&&cmn(fmn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,omn)},S=()=>m();let k=null;const A=typeof window<"u"&&cCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():mN().catch(()=>{}),D=F.then(()=>A?void 0:mmn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},smn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(FAr(g)),window.addEventListener("pagehide",S))}),G=gTt($);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 hmn(t){Ye.useEffect(()=>{const n=cCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return fUe().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 vTt="volter:stale-chunk-reload";function gmn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(vTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(vTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function ymn(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 vwn(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 bwn extends Error{name="StoryMediumMismatch"}function Swn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Nme=new Map;function xwn(t,n){return Nme.set(t,n),()=>{Nme.get(t)===n&&Nme.delete(t)}}function vmn(t){return Nme.get(t)??null}function bmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${Smn(n[c])}`);return`${t}|${s.join("&")}`}function Smn(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,bTt=new WeakMap;let STt=Promise.resolve(),xTt=null,xmn=1;function wmn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function Tmn(){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 Cmn(){return xTt??=Tmn(),xTt}function Emn(t){const n=bTt.get(t);if(n!==void 0)return n;const s=xmn++;return bTt.set(t,s),s}function kmn(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=STt.then(async()=>{await Cmn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=vmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return STt=g.then(()=>{},()=>{}),S_e.set(t,g),g.then(S=>{aye.set(t,S),S_e.delete(t)},()=>S_e.delete(t)),g}function Amn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${bmn(n.id,n.args)}:${Emn(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)),!!wmn())return kmn(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",Dmn="story:docs";function Pmn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function Imn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Amn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Nmn="story",Omn={id:Nmn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Pmn(c,t.surface))continue;const d=ERt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:G0e,Thumbnail:Imn,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 wTt(t){return SYr(t.name,t.sourcePath)}const Rmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:wTt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=wTt(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 Fmn(){let t=0,n=!1;const s=S=>{const k=++t;_Yr(),jye().then(()=>{if(!(n||k!==t))return CYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=EFt(),m=IC(()=>s()),g=hen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const Qjt="story",MOe=new Set,jOe=new Set;function Mmn(t){const n=bRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function LOe(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??Mmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function jmn(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(Dmn,t,c);const d=Ize({modulePath:s.modulePath,regions:Pze()});return d.medium===void 0?(pYr(s.modulePath,d.reason),null):CD(d.medium==="three"?Ave:Dve,t,c)}function TTt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function Lmn(){return kN({id:Qjt,owner:"./story-opener",open:(t,n)=>{const s=LOe(n);return s?jmn(t,n,s):(n.modulePath?MOe.add(n.modulePath):n.storyId!==void 0&&(jOe.add(n.storyId),yYr()&&TTt(n.storyId)),null)},settle:async()=>{await LDr();const t=[...MOe],n=[...jOe];if(MOe.clear(),jOe.clear(),await Promise.all(t.map(s=>xYr(wf(),s))),n.length!==0){await vYr();for(const s of n)LOe({storyId:s})||TTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=LOe(n);if(!(!s||Ize({modulePath:s.modulePath,regions:Pze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const Bmn={actions:()=>{if(!sgt(Dve)&&!sgt(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 n0().workspace.open({kind:Qjt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>G0e(t)};function $mn(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 qmn(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 zmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Vmn(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 $Zr("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=$mn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=qmn(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-CQDQ6ceq.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 Umn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Vmn}};function Jmn(){const t=Pin(Omn),n=ymn(Rmn),s=Lmn(),c=hCt(Bmn),d=yCt(zmn,Umn),m=Fmn(),g=G0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const Wmn=[["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"]],Hmn=[["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 CTt(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 Gmn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of Wmn){const g=CTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Hmn){const m=CTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let xm=null,eLt=0;const Yje=new Set;function Kmn(t){return Yje.add(t),()=>Yje.delete(t)}function ETt(){return eLt}const BOe=new Map;function tLt(t,n){BOe.get(t)?.disconnect(),BOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;t3r(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),BOe.set(t,c)}function Xmn(t,n){if(xm){if(n===null){if(xm[t]?.isConnected)return}else if(xm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...xm};delete s[t],xm=s}else n!==null&&(xm={...xm,[t]:n});n!==null&&rLt(t,n),tLt(t,n),eLt+=1;for(const s of Yje)s()}}function rLt(t,n){n.dataset.volterPart=t}const HO=new Map;let nLt=0;const Zje=new Set,iLt=new Set;let kTt=!1;function ATt(){for(const t of l0())iLt.add(t.descriptor.id)}function Ymn(t){kTt||(kTt=!0,o2(ATt)),ATt(),!(!t||iLt.has(t))&&(Atn(t)||DFt(t,!1))}function Zmn(t,n){if(n){if(!HO.delete(t.id))return}else{HO.has(t.id)||Ymn(t.documentId);const s=HO.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;HO.set(t.id,{...t})}nLt+=1;for(const s of[...Zje])s()}function Qmn(t){return Zje.add(t),()=>{Zje.delete(t)}}function DTt(){return nLt}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 ehn({children:t}){return q.jsx(q.Fragment,{children:t})}function thn(){return xm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(spn,{})}),xm.header):null}function rhn(){return null}function nhn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return bjt(n),()=>hfn(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(Ajt,{})})]})}const Ome=new Map,Qje=new Set;let eLe=0;function ihn(t,n){if(n){if(Ome.get(t)===n)return;n.dataset.volterUtility=t,Ome.set(t,n)}else if(!Ome.delete(t))return;eLe++;for(const s of Qje)s()}const Rme=new Map,tLe=new Set;let rLe=0;function ohn(t,n){if(n){if(Rme.get(t)===n)return;Rme.set(t,n)}else if(!Rme.delete(t))return;rLe++;for(const s of tLe)s()}function shn(){return Ye.useSyncExternalStore(P3t,ght,ght),Ye.useSyncExternalStore(t=>(tLe.add(t),()=>tLe.delete(t)),()=>rLe,()=>rLe),q.jsx(q.Fragment,{children:[...hRe("left"),...hRe("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 ahn(){return Ye.useSyncExternalStore(Xye,bhe,bhe),Ye.useSyncExternalStore(t=>(Qje.add(t),()=>Qje.delete(t)),()=>eLe,()=>eLe),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(lpn,{utility:t})}),n)},t.id):null})})}function chn({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(UMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Xun,{})]}),g)}let oLt=!0;function lhn({arrangement:t,immersivePlay:n}){const s=Yv();hmn(s);const c=HVe(s);Ye.useLayoutEffect(()=>{oLt=c.column},[c.column]);const d=HO.get(CRe()??"")?.element??xm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Iwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Iwt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Qmn,DTt,DTt),Ye.useSyncExternalStore(Kmn,ETt,ETt),Ye.useLayoutEffect(()=>{const F=akr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),Mkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(See,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{Y_n(m,Vjt())},[m,n,g]),Ye.useEffect(()=>Zjt(s),[s]),!xm)return null;const S=xm.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:[...HO.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...HO.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(chn,{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"})}),xm.center),xm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(nhn,{})}),xm.outliner),xm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(QVe,{}):q.jsx(Vun,{surface:c.surface})}),xm.properties),xm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(D_n,{kind:"assets"})}),xm.content),q.jsx(ahn,{}),q.jsx(shn,{})]})}async function uhn(t,n={}){xm=t,n.workspaceStorage&&n3r(n.workspaceStorage),f3r();for(const[De,Pe]of Object.entries(t))Pe&&rLt(De,Pe),tLt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",RPt({Frame:ehn,Header:thn,Footer:rhn,Workspace:lhn,Document:$cn}),I_n(),Knn();const s=Xln();s&&Gln(s,Date.now())&&Qs.warn(Wln(s,Date.now()),"editor"),gmn(),FDr(),rmn(),Jmn(),await Promise.all([K4t(),cAr(),nPt()]),wAr(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),nLe.createRoot(c).render(q.jsx(pun,{}));const d={activeKeymap:()=>n0().keyboard.activeKeymap(),invoke:De=>n0().keyboard.invoke(De),subscribe:De=>n0().keyboard.subscribe(De),facts:()=>{const De=n0(),Pe=De.keyboard.stage();return{surface:Pe.surface,mode:Pe.mode,documentKind:De.documents.active()?.kind??null,play:De.session.playState()}},report:(De,Pe)=>{const be=n0();De==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:fUe,activeSource:()=>{const De=n0().documents.active();if(!De)return null;const Pe=De.kind==="model"&&De.id.startsWith("model:")?De.id.slice(6):"";return{kind:De.kind,path:Pe}},list:()=>l0().map(De=>{const Pe=De.descriptor.area?Akr().find(be=>be.id===De.descriptor.area):void 0;return{id:De.descriptor.id,title:De.title,...Pe?{area:{id:Pe.id,place:Pe.place,ratio:Pe.ratio}}:{}}}),activeId:()=>TC()?.descriptor.id??null,subscribe:De=>{m=!0;const Pe=o2(De),be=Dkr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&GQ()||(Pe?STr(De,Pe):X0(De))},close:De=>{if(EN(De))return;const Pe=l0().find(be=>be.descriptor.id===De);Pe&&d.report("warn",`“${Pe.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(De,Pe)=>Zmn(De,Pe)},S={elements:()=>n0().history.elements(),onElement:De=>n0().history.onElement(De),onInvalidated:De=>n0().history.onInvalidated(De),changed:()=>n0().history.changed(),focusedResource:()=>n0().history.focusedResource(),focusedDocument:()=>{const De=n0().documents.active();return De?{id:De.id,label:De.title}:null},setDelegate:De=>n0().history.setDelegate(De),report:d.report},k={setProvider:De=>n0().files.setProvider(De),report:d.report},A={setProvider:De=>n0().settings.setProvider(De),adapterValues:()=>[...MEr()],workbenchValues:()=>{const De=xm?.chromeRoot;if(!De)return[];const Pe=getComputedStyle(De).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Gmn(De)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>DN(),notify:De=>{n0().notify(De)},subscribe:De=>{const Pe=Hye(De),be=DDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Znn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>ein(De),subscribe:De=>Qnn(De),setPaletteOpener:De=>Ynn(De),setCommandExecutor:De=>tin(De),report:d.report},D={setDelegate:De=>tEr(De?{show:Pe=>De({...Pe,source:u3r()})}:null)},J={list:()=>jPt().map(De=>({view:De.view,title:De.title,verbs:De.verbs.map(Pe=>({id:Pe.id,...Pe.title?{title:Pe.title}:{}}))})),invoke:(De,Pe,be)=>BPt(De,Pe,be),subscribe:De=>LPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=bhe();const be=Xye(De),X=ZVe(()=>{const we=bhe();we!==Pe&&(Pe=we,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>ihn(De,Pe)};let G=!0,se=null,pe=null;Srn(()=>G);const ue={setActiveStaticPanel:De=>rgt(AVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(oLt)return!1;const De=xm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),rgt("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!xm)&&(se=J_n({root:xm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=ukr({showUtility:Pe=>De.showUtility(Pe),toggleUtility:Pe=>De.toggleUtility(Pe),ensureUtility:Pe=>De.ensureUtility(Pe),closeUtility:Pe=>De.closeUtility(Pe),showStaticPanel:Pe=>De.showStaticPanel(Pe),setFocus:Pe=>De.setFocus(Pe),toggleFocus:()=>De.toggleFocus(),captureUtilities:Pe=>{for(const be of Pe)De.showUtility(be);return()=>{for(const be of Pe)De.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:(De,Pe)=>d.report(De,Pe)};return{host:c,keyboard:d,documents:g,history:S,files:k,commands:F,notifications:D,views:J,utilities:$,output:{setProvider:tmn},settings:A,status:{list:()=>["left","right"].flatMap(De=>hRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>P3t(De),offerBody:(De,Pe)=>ohn(De,Pe)},game:ue,offerPart:Xmn}}function fhn(t){const n=Object.keys(t.packages);return _0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),BDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:uhn}}const{mountVolter:wwn}=fhn({id:"game-editor",packages:{"@volter/editor-game":u0r,"@volter/editor-react":f0r,"@volter/editor-threejs":d0r,"@volter/editor-xstate":p0r,"@volter/editor-blender":l0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,b3t as A,h0n as B,S3t as C,x3t as D,M_e as E,F0n as F,EAr as G,cRe as H,ken as I,_Ft as J,DB as K,u0 as L,OC as M,v3t as N,rVe as O,g3t as P,hSn as Q,w3t as R,Bwr as S,q2n as T,Yv as U,Ih as V,iBe as W,QXr as X,svn as Y,Qs as Z,lo as _,XY as a,v2n as a$,KFt as a0,Ztn as a1,QFt as a2,L_ as a3,CN as a4,ASn as a5,Ms as a6,dc as a7,Kk as a8,avn as a9,gRt as aA,Wtn as aB,wf as aC,Y0 as aD,mp as aE,J0n as aF,hy as aG,oq as aH,hMt as aI,J3r as aJ,mSn as aK,_p as aL,dm as aM,Zm as aN,ywn as aO,ive as aP,l0 as aQ,DFt as aR,TD as aS,o0n as aT,VCr as aU,Z0e as aV,MRt as aW,Lze as aX,VSn as aY,Zf as aZ,M9t as a_,vC as aa,Ygn as ab,ian as ac,fcn as ad,dSn as ae,Zze as af,MB as ag,Kwr as ah,s9t as ai,i2n as aj,g0n as ak,Go as al,eyn as am,Iye as an,rfn as ao,Q0e as ap,Qwr as aq,Qxn as ar,G0e as as,rq as at,Ize as au,Pze as av,pYr as aw,wan as ax,g$e as ay,Utn as az,oBe as b,A3r as b$,S2n as b0,H4r as b1,b2n as b2,gC as b3,k$e as b4,DTr as b5,tOe as b6,ig as b7,EFt as b8,vYr as b9,vBe as bA,Jc as bB,t2 as bC,cLe as bD,whn as bE,zvr as bF,ggt as bG,Iw as bH,DAr as bI,CAr as bJ,e$e as bK,kAr as bL,m0r as bM,cye as bN,VOe as bO,Dyn as bP,Ayn as bQ,Ysn as bR,X0n as bS,K0n as bT,B3r as bU,evn as bV,Lhe as bW,o2n as bX,c2n as bY,Stn as bZ,k3r as b_,e2n as ba,xRt as bb,yRt as bc,wRt as bd,nYr as be,vmn as bf,Swn as bg,TSn as bh,bRt as bi,gYr as bj,gvn as bk,hLe as bl,YB as bm,swn as bn,awn as bo,Ufn as bp,FAr as bq,$0n as br,t$e as bs,hgt as bt,M0n as bu,n$ as bv,mO as bw,y0r as bx,aR as by,fLe as bz,lRe as c,D2n as c$,Wwr as c0,s2n as c1,ytn as c2,o9t as c3,ed as c4,_y as c5,fu as c6,R2n as c7,j2n as c8,L2n as c9,XZr as cA,YZr as cB,zRt as cC,URt as cD,LZr as cE,m2n as cF,UZr as cG,_2n as cH,ZZr as cI,I2n as cJ,VZr as cK,Vze as cL,VRt as cM,zZr as cN,EMe as cO,$Zr as cP,w2n as cQ,o_e as cR,WZr as cS,KSt as cT,GSt as cU,GZr as cV,OZr as cW,zze as cX,CMe as cY,JZr as cZ,N2n as c_,B2n as ca,USt as cb,A2n as cc,M2n as cd,F2n as ce,eQr as cf,JSt as cg,E2n as ch,jD as ci,kZr as cj,XSt as ck,C2n as cl,QZr as cm,x2n as cn,P2n as co,d2n as cp,p2n as cq,jZr as cr,$2n as cs,KZr as ct,BZr as cu,g2n as cv,y2n as cw,O2n as cx,k2n as cy,eve as cz,y3t as d,wxr as d$,h2n as d0,tQr as d1,T2n as d2,ltn as d3,X0 as d4,uxt as d5,rxn as d6,Kye as d7,dR as d8,Ryn as d9,i$ as dA,San as dB,van as dC,jVe as dD,ixn as dE,b0r as dF,x0r as dG,ITt as dH,iyn as dI,men as dJ,gSn as dK,dtn as dL,pMt as dM,u2 as dN,YAr as dO,a2n as dP,mMt as dQ,dQ as dR,Phn as dS,yEr as dT,HTt as dU,SZ as dV,LCr as dW,p4t as dX,yZ as dY,dAt as dZ,AR as d_,Vv as da,Fyn as db,O0r as dc,F0r as dd,z3t as de,bZ as df,Syn as dg,Mhn as dh,QTt as di,tCt as dj,Ehn as dk,tvr as dl,V0n as dm,U0n as dn,PI as dp,R_ as dq,own as dr,_Be as ds,Cm as dt,Nfn as du,i0 as dv,J2n as dw,jDr as dx,tfn as dy,RRe as dz,h3t as e,TBe as e$,wSr as e0,t$ as e1,Hme as e2,uCt as e3,N5e as e4,u0n as e5,f0n as e6,Z0n as e7,W0 as e8,ivn as e9,Lhn as eA,WTr as eB,zSn as eC,_Sn as eD,yyn as eE,ySn as eF,zYr as eG,Fze as eH,NRt as eI,m4t as eJ,ftn as eK,yYr as eL,N4t as eM,R5e as eN,Mye as eO,Von as eP,aLe as eQ,Nhn as eR,g0r as eS,D4t as eT,Hon as eU,Uht as eV,Rht as eW,c0 as eX,l0n as eY,xan as eZ,jRe as e_,G2n as ea,DSn as eb,dvn as ec,qhe as ed,O4r as ee,zQr as ef,pvn as eg,h$e as eh,mvn as ei,_vn as ej,Qbn as ek,sxn as el,oxn as em,ovn as en,xBe as eo,ahe as ep,kyn as eq,G0 as er,Byn as es,YY as et,Vyn as eu,E_e as ev,Zyn as ew,aQ as ex,Qgn as ey,IC as ez,uRe as f,SSn as f$,d0n as f0,KCr as f1,Ihn as f2,T0n as f3,w0n as f4,TC as f5,cFe as f6,Tee as f7,kN as f8,Dve as f9,oLe as fA,pLe as fB,j0n as fC,N0n as fD,cwn as fE,pPt as fF,qhn as fG,N0r as fH,$hn as fI,Fme as fJ,zOe as fK,iCt as fL,O0n as fM,Lyn as fN,xxn as fO,Man as fP,_xn as fQ,TR as fR,Rxn as fS,mxn as fT,Yze as fU,Zbn as fV,ERt as fW,TTr as fX,uTr as fY,nxn as fZ,vSn as f_,Dmn as fa,CYr as fb,ND as fc,Ywr as fd,JTr as fe,C_e as ff,utn as fg,v$e as fh,d3r as fi,yfn as fj,rwn as fk,twn as fl,ewn as fm,Ave as fn,EN as fo,I0n as fp,q0n as fq,xwn as fr,bwn as fs,xSn as ft,wSn as fu,w4t as fv,y0n as fw,Ahn as fx,Fhn as fy,fN as fz,T3t as g,GTt as g$,a0 as g0,bSn as g1,GQ as g2,txn as g3,WSn as g4,Y9t as g5,IRt as g6,VQ as g7,zfn as g8,Zun as g9,dPt as gA,bnn as gB,vwn as gC,Zgn as gD,RFe as gE,b3r as gF,hvn as gG,T0r as gH,n2n as gI,EYr as gJ,Iht as gK,YTt as gL,o2 as gM,K1 as gN,BSn as gO,$Sn as gP,Jwr as gQ,Kgn as gR,LSn as gS,Ggn as gT,jSn as gU,t9t as gV,rSn as gW,xR as gX,len as gY,Yrn as gZ,jhn as g_,CR as ga,rYr as gb,t2n as gc,Htn as gd,LDr as ge,Ig as gf,qSn as gg,v0r as gh,dee as gi,W2n as gj,uSn as gk,H2n as gl,gyn as gm,lSn as gn,_4r as go,nSn as gp,W0n as gq,cSn as gr,H0n as gs,fvn as gt,Dw as gu,of as gv,hR as gw,D3r as gx,G0n as gy,FSn as gz,ZAt as h,a0n as h$,BTt as h0,HTr as h1,rA as h2,kC as h3,tA as h4,Rhn as h5,nvn as h6,dBe as h7,tve as h8,f2n as h9,Dht as hA,Vye as hB,MTr as hC,FTr as hD,eCr as hE,Pyn as hF,Oyn as hG,Nyn as hH,Myn as hI,jyn as hJ,c0n as hK,Eyn as hL,i0n as hM,Ym as hN,d4t as hO,Tyn as hP,Cyn as hQ,yBe as hR,Jye as hS,Iyn as hT,wBe as hU,byn as hV,r0n as hW,n0n as hX,she as hY,_0n as hZ,Pht as h_,hCt as ha,Han as hb,Bxn as hc,SYr as hd,Q0n as he,Xgn as hf,ayn as hg,fyn as hh,myn as hi,R$ as hj,CD as hk,cyn as hl,oyn as hm,syn as hn,dyn as ho,UTr as hp,XCr as hq,Aht as hr,hC as hs,kRe as ht,U3t as hu,xyn as hv,wyn as hw,DRe as hx,ARe as hy,VTr as hz,Ip as i,sLe as i$,HCr as i0,$yn as i1,_4t as i2,uhe as i3,jCr as i4,OG as i5,o4t as i6,H3t as i7,$Tr as i8,YTr as i9,iCr as iA,rCr as iB,NG as iC,e0n as iD,m0n as iE,RCr as iF,$Cr as iG,BTr as iH,Gyn as iI,qyn as iJ,fhe as iK,Qyn as iL,I5e as iM,LTr as iN,CBe as iO,Uyn as iP,q$ as iQ,zyn as iR,Wyn as iS,YSn as iT,exn as iU,Eee as iV,AD as iW,Rcn as iX,Yxn as iY,E5e as iZ,$xn as i_,Hyn as ia,Jyn as ib,Kyn as ic,Xyn as id,s0n as ie,jTr as ig,MCr as ih,s4t as ii,p0n as ij,GTr as ik,t0n as il,Yyn as im,QTr as io,k_e as ip,IRe as iq,nCr as ir,tCr as is,GCr as it,ZTr as iu,vee as iv,Bye as iw,oCr as ix,kpe as iy,NRe as iz,KAt as j,Nxn as j$,iee as j0,Gfn as j1,uwn as j2,R0n as j3,PAr as j4,EBe as j5,o$ as j6,jMt as j7,zxn as j8,s2 as j9,Kin as jA,R9t as jB,VTt as jC,FB as jD,sN as jE,Z2n as jF,Zxn as jG,H_n as jH,cGr as jI,uGr as jJ,dGr as jK,pSn as jL,Vwr as jM,yVe as jN,wnn as jO,ate as jP,uan as jQ,twt as jR,wI as jS,BFe as jT,Oxn as jU,vhn as jV,Thn as jW,xhn as jX,Ixn as jY,Shn as jZ,w0r as j_,qxn as ja,lPt as jb,E3r as jc,sBe as jd,Xwr as je,mht as jf,qwr as jg,C3t as jh,Nsn as ji,aSn as jj,HI as jk,HMe as jl,tyn as jm,HRt as jn,rve as jo,Dye as jp,cN as jq,rBe as jr,Fye as js,lN as jt,VAr as ju,PBe as jv,hBe as jw,Rye as jx,nBe as jy,e0e as jz,Mwr as k,gR as k$,jan as k0,bxn as k1,vxn as k2,Uon as k3,Fxn as k4,yxn as k5,Uan as k6,Lxn as k7,lxn as k8,Mxn as k9,s6t as kA,oSn as kB,GSn as kC,ivr as kD,wD as kE,J0 as kF,ext as kG,UAt as kH,Y4 as kI,Chn as kJ,lLe as kK,DEr as kL,Cve as kM,Eve as kN,MSn as kO,$Mt as kP,VMt as kQ,Yxt as kR,jFe as kS,z_e as kT,LFe as kU,Qun as kV,eUe as kW,Vxn as kX,Xfn as kY,P0n as kZ,fSn as k_,hxn as ka,pxn as kb,uxn as kc,Exn as kd,dxn as ke,fxn as kf,gxn as kg,Cxn as kh,Sxn as ki,kxn as kj,_$e as kk,wxn as kl,axn as km,jxn as kn,cxn as ko,Axn as kp,bVe as kq,Txn as kr,Lan as ks,Dxn as kt,Pxn as ku,KSn as kv,HSn as kw,XSn as kx,iSn as ky,RDr as kz,Zme as l,pwn as l$,DDr as l0,Tve as l1,U$ as l2,eA as l3,mD as l4,tTr as l5,rTr as l6,eTr as l7,Oye as l8,Dhn as l9,ZSn as lA,fwn as lB,dwn as lC,Tjt as lD,QSn as lE,lyn as lF,Usn as lG,pyn as lH,iwn as lI,hwn as lJ,z0n as lK,MAr as lL,B0n as lM,hyn as lN,uyn as lO,_yn as lP,mwn as lQ,brn as lR,Y0n as lS,CEr as lT,Vhn as lU,Vfn as lV,l2n as lW,u2n as lX,CSn as lY,c9t as lZ,mjt as l_,W0r as la,a3r as lb,c3r as lc,khn as ld,ujt as le,ryn as lf,Uwr as lg,Zwr as lh,BPt as li,Xxn as lj,Kxn as lk,Wxn as ll,Gxn as lm,Hxn as ln,k0n as lo,j3r as lp,rvn as lq,tvn as lr,sSn as ls,L0n as lt,lwn as lu,bhn as lv,Uxn as lw,Jxn as lx,Ohn as ly,Bhn as lz,nQ as m,ubr as m$,gwn as m0,r2n as m1,USn as m2,$fn as m3,$mn as m4,qmn as m5,nq as m6,VDr as m7,vyn as m8,yCt as m9,hje as mA,MAt as mB,qxr as mC,YI as mD,i1r as mE,wCt as mF,p1r as mG,zme as mH,oht as mI,F_ as mJ,Vme as mK,Ume as mL,Gbr as mM,Qbr as mN,yB as mO,Mbr as mP,Lbr as mQ,NEt as mR,Ubr as mS,IEt as mT,Rbr as mU,Fbr as mV,xbr as mW,wbr as mX,y2r as mY,eh as mZ,Z1r as m_,RSn as ma,X2n as mb,U2n as mc,Y2n as md,FQr as me,UEr as mf,BEr as mg,ove as mh,Qtn as mi,v0n as mj,D0n as mk,b0n as ml,x0n as mm,S0n as mn,Gsn as mo,A0n as mp,ISn as mq,NSn as mr,PSn as ms,OSn as mt,EEr as mu,kEr as mv,JRe as mw,bN as mx,JSn as my,nyn as mz,vB as n,Rw as n$,AEt as n0,cbr as n1,ibr as n2,kEt as n3,sbr as n4,rbr as n5,Q1r as n6,dbr as n7,nbr as n8,ebr as n9,Nbr as nA,Abr as nB,kbr as nC,Pbr as nD,Dbr as nE,i2r as nF,qbr as nG,Ebr as nH,C2r as nI,l2r as nJ,Obr as nK,s2r as nL,v2r as nM,Sbr as nN,Xbr as nO,h2r as nP,Hbr as nQ,p2r as nR,PEt as nS,Vbr as nT,e2r as nU,t2r as nV,MEt as nW,b2r as nX,m2r as nY,T2r as nZ,S2r as n_,X1r as na,Y1r as nb,pbr as nc,fbr as nd,obr as ne,tbr as nf,lbr as ng,bye as nh,abr as ni,jEt as nj,E2r as nk,zbr as nl,Zbr as nm,_2r as nn,n2r as no,Bbr as np,ybr as nq,bbr as nr,gLe as ns,c2r as nt,jCt as nu,d2r as nv,u2r as nw,w2r as nx,hbr as ny,Ibr as nz,Lwr as o,nSr as o$,o2r as o0,k2r as o1,a2r as o2,Sye as o3,M_ as o4,g2r as o5,Jbr as o6,x2r as o7,f2r as o8,FEt as o9,QEt as oA,cgn as oB,agn as oC,lgn as oD,sgn as oE,ign as oF,JEt as oG,WEt as oH,_Sr as oI,Z2r as oJ,BCt as oK,qCt as oL,Dgn as oM,ggn as oN,rkt as oO,LEt as oP,VEt as oQ,LCt as oR,$Ct as oS,oSr as oT,wgn as oU,pSr as oV,j2r as oW,L2r as oX,eQ as oY,qk as oZ,tRe as o_,vu as oa,Tbr as ob,vbr as oc,gbr as od,Wbr as oe,xLe as of,Kbr as og,Ybr as oh,Cbr as oi,r2r as oj,Uhn as ok,ui as ol,ngn as om,rgn as on,_br as oo,zmt as op,ogn as oq,G2r as or,dSr as os,ekt as ot,tkt as ou,z2r as ov,q2r as ow,Ngn as ox,gSr as oy,ZEt as oz,GAt as p,Ign as p$,M2r as p0,B2r as p1,V2r as p2,ygn as p3,XEt as p4,YEt as p5,N2r as p6,I2r as p7,R2r as p8,O2r as p9,Agn as pA,F2r as pB,kgn as pC,M$ as pD,hye as pE,gye as pF,Ogn as pG,ugn as pH,jgn as pI,_gn as pJ,Rgn as pK,bgn as pL,mSr as pM,eSr as pN,VCt as pO,JCt as pP,zCt as pQ,UCt as pR,yye as pS,vye as pT,xgn as pU,ikt as pV,fSr as pW,iSr as pX,D2r as pY,xye as pZ,bSr as p_,nkt as pa,KEt as pb,Mgn as pc,skt as pd,Cgn as pe,tSr as pf,QZ as pg,XI as ph,P2r as pi,Sgn as pj,okt as pk,TLe as pl,sSr as pm,qme as pn,tQ as po,rRe as pp,Q2r as pq,UEt as pr,Tgn as ps,fgn as pt,X2r as pu,pgn as pv,Pgn as pw,dgn as px,aSr as py,H2r as pz,Rwr as q,lAt as q$,hSr as q0,J2r as q1,Fgn as q2,lSr as q3,uSr as q4,Egn as q5,cSr as q6,vgn as q7,$2r as q8,U2r as q9,DEt as qA,jbr as qB,$br as qC,vSr as qD,Umt as qE,Jmt as qF,Hhn as qG,K1r as qH,A2r as qI,Qhn as qJ,tgn as qK,Zhn as qL,egn as qM,w1r as qN,T1r as qO,x1r as qP,Whn as qQ,Jhn as qR,mbr as qS,$gn as qT,Lgn as qU,ALe as qV,JLe as qW,WLe as qX,HLe as qY,cAt as qZ,iAt as q_,HEt as qa,W2r as qb,mgn as qc,K2r as qd,rSr as qe,wLe as qf,BEt as qg,$Et as qh,qEt as qi,zEt as qj,Y2r as qk,GEt as ql,hgn as qm,sA as qn,$S as qo,Jme as qp,SSr as qq,Khn as qr,Yhn as qs,ySr as qt,Ghn as qu,Xhn as qv,b1r as qw,S1r as qx,ZOe as qy,sD as qz,n0 as r,tAt as r$,qLe as r0,zLe as r1,GLe as r2,BLe as r3,$Le as r4,NLe as r5,OLe as r6,DAt as r7,tBe as r8,kye as r9,mAt as rA,IAt as rB,ILe as rC,sAt as rD,QLe as rE,rAt as rF,xAt as rG,j$ as rH,Tye as rI,ZLe as rJ,eBe as rK,CAt as rL,jAt as rM,NAt as rN,Fw as rO,Eye as rP,hAt as rQ,j_ as rR,AAt as rS,eAt as rT,RAt as rU,vAt as rV,_At as rW,Lu as rX,RLe as rY,wye as rZ,aD as r_,hee as ra,wAt as rb,fAt as rc,VLe as rd,DLe as re,PLe as rf,rQ as rg,Bgn as rh,bAt as ri,yAt as rj,cht as rk,LAt as rl,Wme as rm,jLe as rn,LLe as ro,Wkt as rp,Ukt as rq,Xkt as rr,Gkt as rs,pAt as rt,aht as ru,ULe as rv,MLe as rw,FAt as rx,gAt as ry,Qkt as rz,YAt as s,CSr as s$,Cye as s0,oAt as s1,aAt as s2,FLe as s3,uAt as s4,kLe as s5,TAt as s6,sht as s7,vxr as s8,rxr as s9,axr as sA,VSr as sB,nRe as sC,dxr as sD,mxr as sE,XLe as sF,YSr as sG,QSr as sH,Vxr as sI,oxr as sJ,xxr as sK,XSr as sL,Txr as sM,kxr as sN,ZSr as sO,Axr as sP,$xr as sQ,Rxr as sR,JSr as sS,Pxr as sT,KLe as sU,kAt as sV,nAt as sW,Kme as sX,Nxr as sY,Gme as sZ,TSr as s_,nxr as sa,_xr as sb,PAt as sc,Lxr as sd,exr as se,txr as sf,Fxr as sg,WSr as sh,HSr as si,Sxr as sj,DSr as sk,ISr as sl,Bxr as sm,ixr as sn,MSr as so,USr as sp,ASr as sq,PSr as sr,SAt as ss,Ixr as st,uxr as su,fxr as sv,zgn as sw,jSr as sx,lxr as sy,cxr as sz,ann as t,Q2n as t$,Exr as t0,Xme as t1,EAt as t2,qAt as t3,jxr as t4,OAt as t5,BAt as t6,OSr as t7,FSr as t8,NSr as t9,Rmt as tA,Mme as tB,_vr as tC,pvr as tD,PG as tE,cCt as tF,aCt as tG,gvr as tH,hvr as tI,wwn as tJ,zhn as tK,Vgn as tL,Ugn as tM,Jgn as tN,Wgn as tO,Hgn as tP,PEr as tQ,C0n as tR,E0n as tS,cvn as tT,lvn as tU,uvn as tV,Ybn as tW,z2n as tX,V2n as tY,$Qr as tZ,K2n as t_,RSr as ta,ESr as tb,kSr as tc,Dxr as td,qgn as te,sxr as tf,zxr as tg,Oxr as th,$At as ti,gxr as tj,Mxr as tk,YLe as tl,pxr as tm,hxr as tn,GSr as to,yxr as tp,zSr as tq,LSr as tr,BSr as ts,$Sr as tt,qSr as tu,bxr as tv,KSr as tw,Cxr as tx,mvr as ty,oCt as tz,Pa as u,eSn as u0,tSn as u1,ESn as u2,kSn as u3,vrn as u4,_wn as u5,Gd as v,bo as w,Pg as x,Pp as y,nwn 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 k_n=AVe.map(t=>{const n=C_n[t.kind],s=c=>q.jsx(E_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function A_n(t){return k_n.find(n=>n.kind===t)}function D_n({kind:t,dependencies:n}){const{Content:s}=A_n(t);return q.jsx(s,{dependencies:n})}const P_n=250;function I_n(){const t=F4t(),n=N_n();return()=>{n(),t()}}function N_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&&bN("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,P_n))});return bN("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],_wn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),sye=1e-9,Bjt=1e5;function O_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>Bjt){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 R_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>Bjt){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 _Tt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class F_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=_Tt(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=_Tt(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"?O_n(c,s,this._range):R_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},M_n=150;class mwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new F_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()},M_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,Hje=new Set;function mTt(){for(const t of[...Hje])t()}function hwn(t,n){return Dme.set(t,n),mTt(),()=>{Dme.get(t)===n&&(Dme.delete(t),mTt())}}function j_n(t){return t===null?null:Dme.get(t)??null}function L_n(t){return Hje.add(t),()=>{Hje.delete(t)}}let Pme=null;function gwn(t){return Pme=t,()=>{Pme===t&&(Pme=null)}}function kve(){return Pme}const $jt="__volterWorkspacePersistenceSuppressed";function qjt(){return globalThis}function zjt(t){qjt()[$jt]=t}function B_n(){return qjt()[$jt]===!0}function Vjt(){return(xee()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Ujt={phase:"idle",flightDone:!1,gameReady:!1};function $_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 q_n(t,n){if(n==="stop")return Ujt;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 $_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 z_n=450,V_n=220,Jjt=250;function U_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${z_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${V_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Jjt}ms`)}let SD=null;function J_n(t){return SD=t,typeof document<"u"&&U_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Wjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function W_n(){return Qk?.state.phase??"idle"}const Ime=new Set;function Hjt(){if(Ime.size===0)return;const t=[...Ime];Ime.clear();for(const n of t)n()}function H_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Ime.add(t)}function G_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=q_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),G_n(n,Jjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&kve()?.settle(),Hjt()))}function K_n(){X_n({immersive:Vjt()})}function X_n(t){if(Qk&&uUe(),!t.immersive)return;const n=Wjt();zjt(!0);const s={state:Ujt,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 Y_n(t,n){(!t||!n)&&uUe()}function Z_n(t){const n=Qk;n&&(n.flying&&t&&kve()?.track(t),gB("game-ready"))}function uUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Hjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&kve()?.end(),SD?.showChrome(!Wjt()),zjt(!1)}}const Gje=new Set;let Gjt=null;function Kjt(){return wf()?.rootPath??null}function Q_n(t){Gje.add(t);const n=Kjt();return n!==null&&Gjt===n&&t(),()=>{Gje.delete(t)}}async function ywn(){Gjt=Kjt();for(const t of[...Gje])await t()}function emn(){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 Kje=null;function tmn(t){Kje=t}function hTt(){if(!Kje)throw new Error("The workbench Output service is not connected.");return Kje}function rmn(){lDr(Pp),l4r({output:{write:(...t)=>hTt().write(...t),show:t=>hTt().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:o9t,mounted:bVe,playing:ave,runWindow:pVe,restartRequired:r9t,restart:n9t,subscribe:xVe,version:a9t,notifyChanged:t9t,snapshotFrame:mVe,frameCanvas:_Ve,authoringRefusal:vVe,dispatch:hVe,scenes:gVe,surface:sve,coverage:yVe},viewport:{transition:{begin:K_n,ready:Z_n,end:uUe,onSettled:H_n,phase:W_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:DBe,reportFacet:Yrn,onSample:Lnn,onCommandDispatched:WYr,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=>Bze(n=>{n!==null&&t()}),onBeforeClose:hnn,reportWorkerCallMeter:san},project:{documentTable:Uen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:Q_n},notify:t=>s$(t),systems:{inspected:Pye,subscribe:Gwr,inspectedNetworking:Zwr,subscribeNetworking:Qwr,inspectedAudio:()=>eTr()??null,subscribeAudio:tTr,audioVersion:rTr},availability:{subscribe:ZVe,version:qun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Yye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:gtn,acquire:Stn,release:iVe,open:iq,container:ytn,setContainer:vtn,releaseContainer:btn}},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:v4t,contextChanged:QCr,captureActive:t=>{const n=Ih();return n?S9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>j_n(t),subscribe:L_n},projectLocalState:{ready:ute,read:Cve,write:Eve,projectRootPath:()=>wf()?.rootPath??null},history:{record:o6t,setDelegate:aDr,onElement:fDr,invalidate:dDr,onInvalidated:pDr,changed:cDr,elements:uDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?zYr(s)??Fze(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=i6t(t),s=s_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:F4r,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:REr,get:$Er,set:zEr,inspect:X4t,subscribe:t=>{const n=W4t(t),s=See(t);return()=>{n(),s()}}},keyboard:{actions:()=>Kan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>Z4t().map(({id:t,title:n})=>({id:t,title:n,chords:iDt(t)})),activeKeymap:dR,invoke:t=>BVe(t),subscribe:t=>{const n=Yan(t),s=Kye(t),c=s_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Xan()+K1(),stage:()=>{const t=Ih();return t?{surface:Kfn(t).surface,mode:emn()}:{surface:null,mode:null}},bindActions:icn,chordsFor:BBe,shortcutFor:t=>Vv(t)??null}})}let nmn=0,lee=null;const Xje=new Set;function gTt(t){const n={generation:++nmn,promise:t,active:!0};lee=n;for(const s of Xje)s(n);return Xje.clear(),n}function imn(){const t=lee;return t?.active?Promise.resolve(t):new Promise(n=>Xje.add(n))}async function fUe(){for(;;){const t=await imn();if(await t.promise,lee===t&&t.active)return}}const Xjt=16,omn=300,smn=1e4,Yjt="workspace";function amn(){const t=Cve(Yjt);return!t||t.version!==Xjt?null:t}function cmn(t){Eve(Yjt,t)}function lmn(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=PAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function umn(){const t={};let n=!1;for(const s of mDt()){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 fmn(){const t=[];for(const s of l0()){const c=lmn(s);c&&t.push(c)}const n=umn();return{version:Xjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function dmn(t,n,s){for(const c of _Dt(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 yTt(t){if(!t)return!1;const n=!GQ();return SN(t,n)?!0:ptn.has(t)?(DFt(t),n&&wTr(t),!0):n&&X0(t)}function pmn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of mDt())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 _mn(t){const n=new Set;for(const s of t)for(const c of _Dt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function mmn(t,n){const s=n?.documents;if(pmn(t,s),!s||s.open.length===0){yTt(s?.activeId??null);return}await _mn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&IAr(c.id,d),await dmn(t,c,s.activeId)}yTt(s.activeId)}function Zjt(t){if(!ute()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=gTt(Ce);return Promise.all([lte(),eVe()]).then(()=>{if(se){ue();return}pe=Zjt(t),De.active=!1,fUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=amn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Okr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!(B_n()||t.playState!==void 0&&t.playState!=="stopped")&&cmn(fmn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,omn)},S=()=>m();let k=null;const A=typeof window<"u"&&cCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():mN().catch(()=>{}),D=F.then(()=>A?void 0:mmn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},smn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(FAr(g)),window.addEventListener("pagehide",S))}),G=gTt($);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 hmn(t){Ye.useEffect(()=>{const n=cCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return fUe().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 vTt="volter:stale-chunk-reload";function gmn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(vTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(vTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function ymn(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 vwn(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 bwn extends Error{name="StoryMediumMismatch"}function Swn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Nme=new Map;function xwn(t,n){return Nme.set(t,n),()=>{Nme.get(t)===n&&Nme.delete(t)}}function vmn(t){return Nme.get(t)??null}function bmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${Smn(n[c])}`);return`${t}|${s.join("&")}`}function Smn(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,bTt=new WeakMap;let STt=Promise.resolve(),xTt=null,xmn=1;function wmn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function Tmn(){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 Cmn(){return xTt??=Tmn(),xTt}function Emn(t){const n=bTt.get(t);if(n!==void 0)return n;const s=xmn++;return bTt.set(t,s),s}function kmn(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=STt.then(async()=>{await Cmn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=vmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return STt=g.then(()=>{},()=>{}),S_e.set(t,g),g.then(S=>{aye.set(t,S),S_e.delete(t)},()=>S_e.delete(t)),g}function Amn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${bmn(n.id,n.args)}:${Emn(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)),!!wmn())return kmn(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",Dmn="story:docs";function Pmn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function Imn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Amn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Nmn="story",Omn={id:Nmn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Pmn(c,t.surface))continue;const d=ERt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:G0e,Thumbnail:Imn,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 wTt(t){return SYr(t.name,t.sourcePath)}const Rmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:wTt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=wTt(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 Fmn(){let t=0,n=!1;const s=S=>{const k=++t;_Yr(),jye().then(()=>{if(!(n||k!==t))return CYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=EFt(),m=IC(()=>s()),g=hen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const Qjt="story",MOe=new Set,jOe=new Set;function Mmn(t){const n=bRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function LOe(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??Mmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function jmn(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(Dmn,t,c);const d=Ize({modulePath:s.modulePath,regions:Pze()});return d.medium===void 0?(pYr(s.modulePath,d.reason),null):CD(d.medium==="three"?Ave:Dve,t,c)}function TTt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function Lmn(){return kN({id:Qjt,owner:"./story-opener",open:(t,n)=>{const s=LOe(n);return s?jmn(t,n,s):(n.modulePath?MOe.add(n.modulePath):n.storyId!==void 0&&(jOe.add(n.storyId),yYr()&&TTt(n.storyId)),null)},settle:async()=>{await LDr();const t=[...MOe],n=[...jOe];if(MOe.clear(),jOe.clear(),await Promise.all(t.map(s=>xYr(wf(),s))),n.length!==0){await vYr();for(const s of n)LOe({storyId:s})||TTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=LOe(n);if(!(!s||Ize({modulePath:s.modulePath,regions:Pze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const Bmn={actions:()=>{if(!sgt(Dve)&&!sgt(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 n0().workspace.open({kind:Qjt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>G0e(t)};function $mn(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 qmn(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 zmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Vmn(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 $Zr("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=$mn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=qmn(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-BGhtcQBF.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 Umn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Vmn}};function Jmn(){const t=Pin(Omn),n=ymn(Rmn),s=Lmn(),c=hCt(Bmn),d=yCt(zmn,Umn),m=Fmn(),g=G0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const Wmn=[["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"]],Hmn=[["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 CTt(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 Gmn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of Wmn){const g=CTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Hmn){const m=CTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let xm=null,eLt=0;const Yje=new Set;function Kmn(t){return Yje.add(t),()=>Yje.delete(t)}function ETt(){return eLt}const BOe=new Map;function tLt(t,n){BOe.get(t)?.disconnect(),BOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;t3r(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),BOe.set(t,c)}function Xmn(t,n){if(xm){if(n===null){if(xm[t]?.isConnected)return}else if(xm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...xm};delete s[t],xm=s}else n!==null&&(xm={...xm,[t]:n});n!==null&&rLt(t,n),tLt(t,n),eLt+=1;for(const s of Yje)s()}}function rLt(t,n){n.dataset.volterPart=t}const HO=new Map;let nLt=0;const Zje=new Set,iLt=new Set;let kTt=!1;function ATt(){for(const t of l0())iLt.add(t.descriptor.id)}function Ymn(t){kTt||(kTt=!0,o2(ATt)),ATt(),!(!t||iLt.has(t))&&(Atn(t)||DFt(t,!1))}function Zmn(t,n){if(n){if(!HO.delete(t.id))return}else{HO.has(t.id)||Ymn(t.documentId);const s=HO.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;HO.set(t.id,{...t})}nLt+=1;for(const s of[...Zje])s()}function Qmn(t){return Zje.add(t),()=>{Zje.delete(t)}}function DTt(){return nLt}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 ehn({children:t}){return q.jsx(q.Fragment,{children:t})}function thn(){return xm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(spn,{})}),xm.header):null}function rhn(){return null}function nhn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return bjt(n),()=>hfn(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(Ajt,{})})]})}const Ome=new Map,Qje=new Set;let eLe=0;function ihn(t,n){if(n){if(Ome.get(t)===n)return;n.dataset.volterUtility=t,Ome.set(t,n)}else if(!Ome.delete(t))return;eLe++;for(const s of Qje)s()}const Rme=new Map,tLe=new Set;let rLe=0;function ohn(t,n){if(n){if(Rme.get(t)===n)return;Rme.set(t,n)}else if(!Rme.delete(t))return;rLe++;for(const s of tLe)s()}function shn(){return Ye.useSyncExternalStore(P3t,ght,ght),Ye.useSyncExternalStore(t=>(tLe.add(t),()=>tLe.delete(t)),()=>rLe,()=>rLe),q.jsx(q.Fragment,{children:[...hRe("left"),...hRe("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 ahn(){return Ye.useSyncExternalStore(Xye,bhe,bhe),Ye.useSyncExternalStore(t=>(Qje.add(t),()=>Qje.delete(t)),()=>eLe,()=>eLe),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(lpn,{utility:t})}),n)},t.id):null})})}function chn({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(UMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Xun,{})]}),g)}let oLt=!0;function lhn({arrangement:t,immersivePlay:n}){const s=Yv();hmn(s);const c=HVe(s);Ye.useLayoutEffect(()=>{oLt=c.column},[c.column]);const d=HO.get(CRe()??"")?.element??xm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Iwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Iwt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Qmn,DTt,DTt),Ye.useSyncExternalStore(Kmn,ETt,ETt),Ye.useLayoutEffect(()=>{const F=akr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),Mkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(See,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{Y_n(m,Vjt())},[m,n,g]),Ye.useEffect(()=>Zjt(s),[s]),!xm)return null;const S=xm.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:[...HO.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...HO.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(chn,{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"})}),xm.center),xm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(nhn,{})}),xm.outliner),xm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(QVe,{}):q.jsx(Vun,{surface:c.surface})}),xm.properties),xm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(D_n,{kind:"assets"})}),xm.content),q.jsx(ahn,{}),q.jsx(shn,{})]})}async function uhn(t,n={}){xm=t,n.workspaceStorage&&n3r(n.workspaceStorage),f3r();for(const[De,Pe]of Object.entries(t))Pe&&rLt(De,Pe),tLt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",RPt({Frame:ehn,Header:thn,Footer:rhn,Workspace:lhn,Document:$cn}),I_n(),Knn();const s=Xln();s&&Gln(s,Date.now())&&Qs.warn(Wln(s,Date.now()),"editor"),gmn(),FDr(),rmn(),Jmn(),await Promise.all([K4t(),cAr(),nPt()]),wAr(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),nLe.createRoot(c).render(q.jsx(pun,{}));const d={activeKeymap:()=>n0().keyboard.activeKeymap(),invoke:De=>n0().keyboard.invoke(De),subscribe:De=>n0().keyboard.subscribe(De),facts:()=>{const De=n0(),Pe=De.keyboard.stage();return{surface:Pe.surface,mode:Pe.mode,documentKind:De.documents.active()?.kind??null,play:De.session.playState()}},report:(De,Pe)=>{const be=n0();De==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:fUe,activeSource:()=>{const De=n0().documents.active();if(!De)return null;const Pe=De.kind==="model"&&De.id.startsWith("model:")?De.id.slice(6):"";return{kind:De.kind,path:Pe}},list:()=>l0().map(De=>{const Pe=De.descriptor.area?Akr().find(be=>be.id===De.descriptor.area):void 0;return{id:De.descriptor.id,title:De.title,...Pe?{area:{id:Pe.id,place:Pe.place,ratio:Pe.ratio}}:{}}}),activeId:()=>TC()?.descriptor.id??null,subscribe:De=>{m=!0;const Pe=o2(De),be=Dkr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&GQ()||(Pe?STr(De,Pe):X0(De))},close:De=>{if(EN(De))return;const Pe=l0().find(be=>be.descriptor.id===De);Pe&&d.report("warn",`“${Pe.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(De,Pe)=>Zmn(De,Pe)},S={elements:()=>n0().history.elements(),onElement:De=>n0().history.onElement(De),onInvalidated:De=>n0().history.onInvalidated(De),changed:()=>n0().history.changed(),focusedResource:()=>n0().history.focusedResource(),focusedDocument:()=>{const De=n0().documents.active();return De?{id:De.id,label:De.title}:null},setDelegate:De=>n0().history.setDelegate(De),report:d.report},k={setProvider:De=>n0().files.setProvider(De),report:d.report},A={setProvider:De=>n0().settings.setProvider(De),adapterValues:()=>[...MEr()],workbenchValues:()=>{const De=xm?.chromeRoot;if(!De)return[];const Pe=getComputedStyle(De).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Gmn(De)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>DN(),notify:De=>{n0().notify(De)},subscribe:De=>{const Pe=Hye(De),be=DDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Znn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>ein(De),subscribe:De=>Qnn(De),setPaletteOpener:De=>Ynn(De),setCommandExecutor:De=>tin(De),report:d.report},D={setDelegate:De=>tEr(De?{show:Pe=>De({...Pe,source:u3r()})}:null)},J={list:()=>jPt().map(De=>({view:De.view,title:De.title,verbs:De.verbs.map(Pe=>({id:Pe.id,...Pe.title?{title:Pe.title}:{}}))})),invoke:(De,Pe,be)=>BPt(De,Pe,be),subscribe:De=>LPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=bhe();const be=Xye(De),X=ZVe(()=>{const we=bhe();we!==Pe&&(Pe=we,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>ihn(De,Pe)};let G=!0,se=null,pe=null;Srn(()=>G);const ue={setActiveStaticPanel:De=>rgt(AVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(oLt)return!1;const De=xm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),rgt("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!xm)&&(se=J_n({root:xm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=ukr({showUtility:Pe=>De.showUtility(Pe),toggleUtility:Pe=>De.toggleUtility(Pe),ensureUtility:Pe=>De.ensureUtility(Pe),closeUtility:Pe=>De.closeUtility(Pe),showStaticPanel:Pe=>De.showStaticPanel(Pe),setFocus:Pe=>De.setFocus(Pe),toggleFocus:()=>De.toggleFocus(),captureUtilities:Pe=>{for(const be of Pe)De.showUtility(be);return()=>{for(const be of Pe)De.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:(De,Pe)=>d.report(De,Pe)};return{host:c,keyboard:d,documents:g,history:S,files:k,commands:F,notifications:D,views:J,utilities:$,output:{setProvider:tmn},settings:A,status:{list:()=>["left","right"].flatMap(De=>hRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>P3t(De),offerBody:(De,Pe)=>ohn(De,Pe)},game:ue,offerPart:Xmn}}function fhn(t){const n=Object.keys(t.packages);return _0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),BDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:uhn}}const{mountVolter:wwn}=fhn({id:"game-editor",packages:{"@volter/editor-game":u0r,"@volter/editor-react":f0r,"@volter/editor-threejs":d0r,"@volter/editor-xstate":p0r,"@volter/editor-blender":l0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,b3t as A,h0n as B,S3t as C,x3t as D,M_e as E,F0n as F,EAr as G,cRe as H,ken as I,_Ft as J,DB as K,u0 as L,OC as M,v3t as N,rVe as O,g3t as P,hSn as Q,w3t as R,Bwr as S,q2n as T,Yv as U,Ih as V,iBe as W,QXr as X,svn as Y,Qs as Z,lo as _,XY as a,v2n as a$,KFt as a0,Ztn as a1,QFt as a2,L_ as a3,CN as a4,ASn as a5,Ms as a6,dc as a7,Kk as a8,avn as a9,gRt as aA,Wtn as aB,wf as aC,Y0 as aD,mp as aE,J0n as aF,hy as aG,oq as aH,hMt as aI,J3r as aJ,mSn as aK,_p as aL,dm as aM,Zm as aN,ywn as aO,ive as aP,l0 as aQ,DFt as aR,TD as aS,o0n as aT,VCr as aU,Z0e as aV,MRt as aW,Lze as aX,VSn as aY,Zf as aZ,M9t as a_,vC as aa,Ygn as ab,ian as ac,fcn as ad,dSn as ae,Zze as af,MB as ag,Kwr as ah,s9t as ai,i2n as aj,g0n as ak,Go as al,eyn as am,Iye as an,rfn as ao,Q0e as ap,Qwr as aq,Qxn as ar,G0e as as,rq as at,Ize as au,Pze as av,pYr as aw,wan as ax,g$e as ay,Utn as az,oBe as b,A3r as b$,S2n as b0,H4r as b1,b2n as b2,gC as b3,k$e as b4,DTr as b5,tOe as b6,ig as b7,EFt as b8,vYr as b9,vBe as bA,Jc as bB,t2 as bC,cLe as bD,whn as bE,zvr as bF,ggt as bG,Iw as bH,DAr as bI,CAr as bJ,e$e as bK,kAr as bL,m0r as bM,cye as bN,VOe as bO,Dyn as bP,Ayn as bQ,Ysn as bR,X0n as bS,K0n as bT,B3r as bU,evn as bV,Lhe as bW,o2n as bX,c2n as bY,Stn as bZ,k3r as b_,e2n as ba,xRt as bb,yRt as bc,wRt as bd,nYr as be,vmn as bf,Swn as bg,TSn as bh,bRt as bi,gYr as bj,gvn as bk,hLe as bl,YB as bm,swn as bn,awn as bo,Ufn as bp,FAr as bq,$0n as br,t$e as bs,hgt as bt,M0n as bu,n$ as bv,mO as bw,y0r as bx,aR as by,fLe as bz,lRe as c,D2n as c$,Wwr as c0,s2n as c1,ytn as c2,o9t as c3,ed as c4,_y as c5,fu as c6,R2n as c7,j2n as c8,L2n as c9,XZr as cA,YZr as cB,zRt as cC,URt as cD,LZr as cE,m2n as cF,UZr as cG,_2n as cH,ZZr as cI,I2n as cJ,VZr as cK,Vze as cL,VRt as cM,zZr as cN,EMe as cO,$Zr as cP,w2n as cQ,o_e as cR,WZr as cS,KSt as cT,GSt as cU,GZr as cV,OZr as cW,zze as cX,CMe as cY,JZr as cZ,N2n as c_,B2n as ca,USt as cb,A2n as cc,M2n as cd,F2n as ce,eQr as cf,JSt as cg,E2n as ch,jD as ci,kZr as cj,XSt as ck,C2n as cl,QZr as cm,x2n as cn,P2n as co,d2n as cp,p2n as cq,jZr as cr,$2n as cs,KZr as ct,BZr as cu,g2n as cv,y2n as cw,O2n as cx,k2n as cy,eve as cz,y3t as d,wxr as d$,h2n as d0,tQr as d1,T2n as d2,ltn as d3,X0 as d4,uxt as d5,rxn as d6,Kye as d7,dR as d8,Ryn as d9,i$ as dA,San as dB,van as dC,jVe as dD,ixn as dE,b0r as dF,x0r as dG,ITt as dH,iyn as dI,men as dJ,gSn as dK,dtn as dL,pMt as dM,u2 as dN,YAr as dO,a2n as dP,mMt as dQ,dQ as dR,Phn as dS,yEr as dT,HTt as dU,SZ as dV,LCr as dW,p4t as dX,yZ as dY,dAt as dZ,AR as d_,Vv as da,Fyn as db,O0r as dc,F0r as dd,z3t as de,bZ as df,Syn as dg,Mhn as dh,QTt as di,tCt as dj,Ehn as dk,tvr as dl,V0n as dm,U0n as dn,PI as dp,R_ as dq,own as dr,_Be as ds,Cm as dt,Nfn as du,i0 as dv,J2n as dw,jDr as dx,tfn as dy,RRe as dz,h3t as e,TBe as e$,wSr as e0,t$ as e1,Hme as e2,uCt as e3,N5e as e4,u0n as e5,f0n as e6,Z0n as e7,W0 as e8,ivn as e9,Lhn as eA,WTr as eB,zSn as eC,_Sn as eD,yyn as eE,ySn as eF,zYr as eG,Fze as eH,NRt as eI,m4t as eJ,ftn as eK,yYr as eL,N4t as eM,R5e as eN,Mye as eO,Von as eP,aLe as eQ,Nhn as eR,g0r as eS,D4t as eT,Hon as eU,Uht as eV,Rht as eW,c0 as eX,l0n as eY,xan as eZ,jRe as e_,G2n as ea,DSn as eb,dvn as ec,qhe as ed,O4r as ee,zQr as ef,pvn as eg,h$e as eh,mvn as ei,_vn as ej,Qbn as ek,sxn as el,oxn as em,ovn as en,xBe as eo,ahe as ep,kyn as eq,G0 as er,Byn as es,YY as et,Vyn as eu,E_e as ev,Zyn as ew,aQ as ex,Qgn as ey,IC as ez,uRe as f,SSn as f$,d0n as f0,KCr as f1,Ihn as f2,T0n as f3,w0n as f4,TC as f5,cFe as f6,Tee as f7,kN as f8,Dve as f9,oLe as fA,pLe as fB,j0n as fC,N0n as fD,cwn as fE,pPt as fF,qhn as fG,N0r as fH,$hn as fI,Fme as fJ,zOe as fK,iCt as fL,O0n as fM,Lyn as fN,xxn as fO,Man as fP,_xn as fQ,TR as fR,Rxn as fS,mxn as fT,Yze as fU,Zbn as fV,ERt as fW,TTr as fX,uTr as fY,nxn as fZ,vSn as f_,Dmn as fa,CYr as fb,ND as fc,Ywr as fd,JTr as fe,C_e as ff,utn as fg,v$e as fh,d3r as fi,yfn as fj,rwn as fk,twn as fl,ewn as fm,Ave as fn,EN as fo,I0n as fp,q0n as fq,xwn as fr,bwn as fs,xSn as ft,wSn as fu,w4t as fv,y0n as fw,Ahn as fx,Fhn as fy,fN as fz,T3t as g,GTt as g$,a0 as g0,bSn as g1,GQ as g2,txn as g3,WSn as g4,Y9t as g5,IRt as g6,VQ as g7,zfn as g8,Zun as g9,dPt as gA,bnn as gB,vwn as gC,Zgn as gD,RFe as gE,b3r as gF,hvn as gG,T0r as gH,n2n as gI,EYr as gJ,Iht as gK,YTt as gL,o2 as gM,K1 as gN,BSn as gO,$Sn as gP,Jwr as gQ,Kgn as gR,LSn as gS,Ggn as gT,jSn as gU,t9t as gV,rSn as gW,xR as gX,len as gY,Yrn as gZ,jhn as g_,CR as ga,rYr as gb,t2n as gc,Htn as gd,LDr as ge,Ig as gf,qSn as gg,v0r as gh,dee as gi,W2n as gj,uSn as gk,H2n as gl,gyn as gm,lSn as gn,_4r as go,nSn as gp,W0n as gq,cSn as gr,H0n as gs,fvn as gt,Dw as gu,of as gv,hR as gw,D3r as gx,G0n as gy,FSn as gz,ZAt as h,a0n as h$,BTt as h0,HTr as h1,rA as h2,kC as h3,tA as h4,Rhn as h5,nvn as h6,dBe as h7,tve as h8,f2n as h9,Dht as hA,Vye as hB,MTr as hC,FTr as hD,eCr as hE,Pyn as hF,Oyn as hG,Nyn as hH,Myn as hI,jyn as hJ,c0n as hK,Eyn as hL,i0n as hM,Ym as hN,d4t as hO,Tyn as hP,Cyn as hQ,yBe as hR,Jye as hS,Iyn as hT,wBe as hU,byn as hV,r0n as hW,n0n as hX,she as hY,_0n as hZ,Pht as h_,hCt as ha,Han as hb,Bxn as hc,SYr as hd,Q0n as he,Xgn as hf,ayn as hg,fyn as hh,myn as hi,R$ as hj,CD as hk,cyn as hl,oyn as hm,syn as hn,dyn as ho,UTr as hp,XCr as hq,Aht as hr,hC as hs,kRe as ht,U3t as hu,xyn as hv,wyn as hw,DRe as hx,ARe as hy,VTr as hz,Ip as i,sLe as i$,HCr as i0,$yn as i1,_4t as i2,uhe as i3,jCr as i4,OG as i5,o4t as i6,H3t as i7,$Tr as i8,YTr as i9,iCr as iA,rCr as iB,NG as iC,e0n as iD,m0n as iE,RCr as iF,$Cr as iG,BTr as iH,Gyn as iI,qyn as iJ,fhe as iK,Qyn as iL,I5e as iM,LTr as iN,CBe as iO,Uyn as iP,q$ as iQ,zyn as iR,Wyn as iS,YSn as iT,exn as iU,Eee as iV,AD as iW,Rcn as iX,Yxn as iY,E5e as iZ,$xn as i_,Hyn as ia,Jyn as ib,Kyn as ic,Xyn as id,s0n as ie,jTr as ig,MCr as ih,s4t as ii,p0n as ij,GTr as ik,t0n as il,Yyn as im,QTr as io,k_e as ip,IRe as iq,nCr as ir,tCr as is,GCr as it,ZTr as iu,vee as iv,Bye as iw,oCr as ix,kpe as iy,NRe as iz,KAt as j,Nxn as j$,iee as j0,Gfn as j1,uwn as j2,R0n as j3,PAr as j4,EBe as j5,o$ as j6,jMt as j7,zxn as j8,s2 as j9,Kin as jA,R9t as jB,VTt as jC,FB as jD,sN as jE,Z2n as jF,Zxn as jG,H_n as jH,cGr as jI,uGr as jJ,dGr as jK,pSn as jL,Vwr as jM,yVe as jN,wnn as jO,ate as jP,uan as jQ,twt as jR,wI as jS,BFe as jT,Oxn as jU,vhn as jV,Thn as jW,xhn as jX,Ixn as jY,Shn as jZ,w0r as j_,qxn as ja,lPt as jb,E3r as jc,sBe as jd,Xwr as je,mht as jf,qwr as jg,C3t as jh,Nsn as ji,aSn as jj,HI as jk,HMe as jl,tyn as jm,HRt as jn,rve as jo,Dye as jp,cN as jq,rBe as jr,Fye as js,lN as jt,VAr as ju,PBe as jv,hBe as jw,Rye as jx,nBe as jy,e0e as jz,Mwr as k,gR as k$,jan as k0,bxn as k1,vxn as k2,Uon as k3,Fxn as k4,yxn as k5,Uan as k6,Lxn as k7,lxn as k8,Mxn as k9,s6t as kA,oSn as kB,GSn as kC,ivr as kD,wD as kE,J0 as kF,ext as kG,UAt as kH,Y4 as kI,Chn as kJ,lLe as kK,DEr as kL,Cve as kM,Eve as kN,MSn as kO,$Mt as kP,VMt as kQ,Yxt as kR,jFe as kS,z_e as kT,LFe as kU,Qun as kV,eUe as kW,Vxn as kX,Xfn as kY,P0n as kZ,fSn as k_,hxn as ka,pxn as kb,uxn as kc,Exn as kd,dxn as ke,fxn as kf,gxn as kg,Cxn as kh,Sxn as ki,kxn as kj,_$e as kk,wxn as kl,axn as km,jxn as kn,cxn as ko,Axn as kp,bVe as kq,Txn as kr,Lan as ks,Dxn as kt,Pxn as ku,KSn as kv,HSn as kw,XSn as kx,iSn as ky,RDr as kz,Zme as l,pwn as l$,DDr as l0,Tve as l1,U$ as l2,eA as l3,mD as l4,tTr as l5,rTr as l6,eTr as l7,Oye as l8,Dhn as l9,ZSn as lA,fwn as lB,dwn as lC,Tjt as lD,QSn as lE,lyn as lF,Usn as lG,pyn as lH,iwn as lI,hwn as lJ,z0n as lK,MAr as lL,B0n as lM,hyn as lN,uyn as lO,_yn as lP,mwn as lQ,brn as lR,Y0n as lS,CEr as lT,Vhn as lU,Vfn as lV,l2n as lW,u2n as lX,CSn as lY,c9t as lZ,mjt as l_,W0r as la,a3r as lb,c3r as lc,khn as ld,ujt as le,ryn as lf,Uwr as lg,Zwr as lh,BPt as li,Xxn as lj,Kxn as lk,Wxn as ll,Gxn as lm,Hxn as ln,k0n as lo,j3r as lp,rvn as lq,tvn as lr,sSn as ls,L0n as lt,lwn as lu,bhn as lv,Uxn as lw,Jxn as lx,Ohn as ly,Bhn as lz,nQ as m,ubr as m$,gwn as m0,r2n as m1,USn as m2,$fn as m3,$mn as m4,qmn as m5,nq as m6,VDr as m7,vyn as m8,yCt as m9,hje as mA,MAt as mB,qxr as mC,YI as mD,i1r as mE,wCt as mF,p1r as mG,zme as mH,oht as mI,F_ as mJ,Vme as mK,Ume as mL,Gbr as mM,Qbr as mN,yB as mO,Mbr as mP,Lbr as mQ,NEt as mR,Ubr as mS,IEt as mT,Rbr as mU,Fbr as mV,xbr as mW,wbr as mX,y2r as mY,eh as mZ,Z1r as m_,RSn as ma,X2n as mb,U2n as mc,Y2n as md,FQr as me,UEr as mf,BEr as mg,ove as mh,Qtn as mi,v0n as mj,D0n as mk,b0n as ml,x0n as mm,S0n as mn,Gsn as mo,A0n as mp,ISn as mq,NSn as mr,PSn as ms,OSn as mt,EEr as mu,kEr as mv,JRe as mw,bN as mx,JSn as my,nyn as mz,vB as n,Rw as n$,AEt as n0,cbr as n1,ibr as n2,kEt as n3,sbr as n4,rbr as n5,Q1r as n6,dbr as n7,nbr as n8,ebr as n9,Nbr as nA,Abr as nB,kbr as nC,Pbr as nD,Dbr as nE,i2r as nF,qbr as nG,Ebr as nH,C2r as nI,l2r as nJ,Obr as nK,s2r as nL,v2r as nM,Sbr as nN,Xbr as nO,h2r as nP,Hbr as nQ,p2r as nR,PEt as nS,Vbr as nT,e2r as nU,t2r as nV,MEt as nW,b2r as nX,m2r as nY,T2r as nZ,S2r as n_,X1r as na,Y1r as nb,pbr as nc,fbr as nd,obr as ne,tbr as nf,lbr as ng,bye as nh,abr as ni,jEt as nj,E2r as nk,zbr as nl,Zbr as nm,_2r as nn,n2r as no,Bbr as np,ybr as nq,bbr as nr,gLe as ns,c2r as nt,jCt as nu,d2r as nv,u2r as nw,w2r as nx,hbr as ny,Ibr as nz,Lwr as o,nSr as o$,o2r as o0,k2r as o1,a2r as o2,Sye as o3,M_ as o4,g2r as o5,Jbr as o6,x2r as o7,f2r as o8,FEt as o9,QEt as oA,cgn as oB,agn as oC,lgn as oD,sgn as oE,ign as oF,JEt as oG,WEt as oH,_Sr as oI,Z2r as oJ,BCt as oK,qCt as oL,Dgn as oM,ggn as oN,rkt as oO,LEt as oP,VEt as oQ,LCt as oR,$Ct as oS,oSr as oT,wgn as oU,pSr as oV,j2r as oW,L2r as oX,eQ as oY,qk as oZ,tRe as o_,vu as oa,Tbr as ob,vbr as oc,gbr as od,Wbr as oe,xLe as of,Kbr as og,Ybr as oh,Cbr as oi,r2r as oj,Uhn as ok,ui as ol,ngn as om,rgn as on,_br as oo,zmt as op,ogn as oq,G2r as or,dSr as os,ekt as ot,tkt as ou,z2r as ov,q2r as ow,Ngn as ox,gSr as oy,ZEt as oz,GAt as p,Ign as p$,M2r as p0,B2r as p1,V2r as p2,ygn as p3,XEt as p4,YEt as p5,N2r as p6,I2r as p7,R2r as p8,O2r as p9,Agn as pA,F2r as pB,kgn as pC,M$ as pD,hye as pE,gye as pF,Ogn as pG,ugn as pH,jgn as pI,_gn as pJ,Rgn as pK,bgn as pL,mSr as pM,eSr as pN,VCt as pO,JCt as pP,zCt as pQ,UCt as pR,yye as pS,vye as pT,xgn as pU,ikt as pV,fSr as pW,iSr as pX,D2r as pY,xye as pZ,bSr as p_,nkt as pa,KEt as pb,Mgn as pc,skt as pd,Cgn as pe,tSr as pf,QZ as pg,XI as ph,P2r as pi,Sgn as pj,okt as pk,TLe as pl,sSr as pm,qme as pn,tQ as po,rRe as pp,Q2r as pq,UEt as pr,Tgn as ps,fgn as pt,X2r as pu,pgn as pv,Pgn as pw,dgn as px,aSr as py,H2r as pz,Rwr as q,lAt as q$,hSr as q0,J2r as q1,Fgn as q2,lSr as q3,uSr as q4,Egn as q5,cSr as q6,vgn as q7,$2r as q8,U2r as q9,DEt as qA,jbr as qB,$br as qC,vSr as qD,Umt as qE,Jmt as qF,Hhn as qG,K1r as qH,A2r as qI,Qhn as qJ,tgn as qK,Zhn as qL,egn as qM,w1r as qN,T1r as qO,x1r as qP,Whn as qQ,Jhn as qR,mbr as qS,$gn as qT,Lgn as qU,ALe as qV,JLe as qW,WLe as qX,HLe as qY,cAt as qZ,iAt as q_,HEt as qa,W2r as qb,mgn as qc,K2r as qd,rSr as qe,wLe as qf,BEt as qg,$Et as qh,qEt as qi,zEt as qj,Y2r as qk,GEt as ql,hgn as qm,sA as qn,$S as qo,Jme as qp,SSr as qq,Khn as qr,Yhn as qs,ySr as qt,Ghn as qu,Xhn as qv,b1r as qw,S1r as qx,ZOe as qy,sD as qz,n0 as r,tAt as r$,qLe as r0,zLe as r1,GLe as r2,BLe as r3,$Le as r4,NLe as r5,OLe as r6,DAt as r7,tBe as r8,kye as r9,mAt as rA,IAt as rB,ILe as rC,sAt as rD,QLe as rE,rAt as rF,xAt as rG,j$ as rH,Tye as rI,ZLe as rJ,eBe as rK,CAt as rL,jAt as rM,NAt as rN,Fw as rO,Eye as rP,hAt as rQ,j_ as rR,AAt as rS,eAt as rT,RAt as rU,vAt as rV,_At as rW,Lu as rX,RLe as rY,wye as rZ,aD as r_,hee as ra,wAt as rb,fAt as rc,VLe as rd,DLe as re,PLe as rf,rQ as rg,Bgn as rh,bAt as ri,yAt as rj,cht as rk,LAt as rl,Wme as rm,jLe as rn,LLe as ro,Wkt as rp,Ukt as rq,Xkt as rr,Gkt as rs,pAt as rt,aht as ru,ULe as rv,MLe as rw,FAt as rx,gAt as ry,Qkt as rz,YAt as s,CSr as s$,Cye as s0,oAt as s1,aAt as s2,FLe as s3,uAt as s4,kLe as s5,TAt as s6,sht as s7,vxr as s8,rxr as s9,axr as sA,VSr as sB,nRe as sC,dxr as sD,mxr as sE,XLe as sF,YSr as sG,QSr as sH,Vxr as sI,oxr as sJ,xxr as sK,XSr as sL,Txr as sM,kxr as sN,ZSr as sO,Axr as sP,$xr as sQ,Rxr as sR,JSr as sS,Pxr as sT,KLe as sU,kAt as sV,nAt as sW,Kme as sX,Nxr as sY,Gme as sZ,TSr as s_,nxr as sa,_xr as sb,PAt as sc,Lxr as sd,exr as se,txr as sf,Fxr as sg,WSr as sh,HSr as si,Sxr as sj,DSr as sk,ISr as sl,Bxr as sm,ixr as sn,MSr as so,USr as sp,ASr as sq,PSr as sr,SAt as ss,Ixr as st,uxr as su,fxr as sv,zgn as sw,jSr as sx,lxr as sy,cxr as sz,ann as t,Q2n as t$,Exr as t0,Xme as t1,EAt as t2,qAt as t3,jxr as t4,OAt as t5,BAt as t6,OSr as t7,FSr as t8,NSr as t9,Rmt as tA,Mme as tB,_vr as tC,pvr as tD,PG as tE,cCt as tF,aCt as tG,gvr as tH,hvr as tI,wwn as tJ,zhn as tK,Vgn as tL,Ugn as tM,Jgn as tN,Wgn as tO,Hgn as tP,PEr as tQ,C0n as tR,E0n as tS,cvn as tT,lvn as tU,uvn as tV,Ybn as tW,z2n as tX,V2n as tY,$Qr as tZ,K2n as t_,RSr as ta,ESr as tb,kSr as tc,Dxr as td,qgn as te,sxr as tf,zxr as tg,Oxr as th,$At as ti,gxr as tj,Mxr as tk,YLe as tl,pxr as tm,hxr as tn,GSr as to,yxr as tp,zSr as tq,LSr as tr,BSr as ts,$Sr as tt,qSr as tu,bxr as tv,KSr as tw,Cxr as tx,mvr as ty,oCt as tz,Pa as u,eSn as u0,tSn as u1,ESn as u2,kSn as u3,vrn as u4,_wn as u5,Gd as v,bo as w,Pg as x,Pp as y,nwn as z};
|