@volter/game-editor 0.5.74 → 0.5.75
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 +2134 -2134
- package/dist/assets/{AssetBudgetPanel-CsScls8k.js → AssetBudgetPanel-CE18ck0x.js} +3 -3
- package/dist/assets/{AudioViewer-C0KaLINZ.js → AudioViewer-CcL-aNBd.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-BH0U2FK3.js → CanvasBoardDocument-uwU0bfJA.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-VALiHtss.js → CanvasSceneViewport-DgzPJJkc.js} +1 -1
- package/dist/assets/{ColorInput-BSiPDtkN.js → ColorInput-DwLu76ZD.js} +1 -1
- package/dist/assets/{EntityModelDocument-DBZeMkXS.js → EntityModelDocument-DrpizTG_.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-D3gH_Q1o.js → EnvironmentAssetDocument-BkDbRyDk.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-BZENnCEM.js → GameplaySessionTimeline-lxx-w1ya.js} +1 -1
- package/dist/assets/{ImageViewer-Z077ZBuk.js → ImageViewer-280O0PlP.js} +1 -1
- package/dist/assets/InspectorObjectPreview-BCGUkGwH.js +1 -0
- package/dist/assets/{JsonAssetDocument-DjtYdDni.js → JsonAssetDocument-Fen8_TJ3.js} +1 -1
- package/dist/assets/{LiveModuleDocument-BQmh8NEJ.js → LiveModuleDocument-DcAvzW88.js} +1 -1
- package/dist/assets/{LutAssetDocument-B3e7mHdw.js → LutAssetDocument-BLlhFO6d.js} +1 -1
- package/dist/assets/{ModelAssetDocument-BVIUx7AO.js → ModelAssetDocument-Bz24yrEK.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-DAjTxCUk.js → NonThreeAuthoringBootstrap-Co881phq.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-CMFUQpit.js → Object3DDocumentToolbar-xXXySp6z.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-ChZBISII.js +2 -0
- package/dist/assets/{Object3DPreview-BeQ3dNgr.js → Object3DPreview-DNx1_6NB.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-DouLFaxd.js → OnlineAssetDetail-BO_qsMXe.js} +1 -1
- package/dist/assets/{PlayBar-DlSAPez7.js → PlayBar-CGjjGuF8.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-Ci_5RdOh.js → QuarksAssetDocument-DzGTZwpm.js} +1 -1
- package/dist/assets/{ReactCanvasControls-pLDTjk7f.js → ReactCanvasControls-Bmd55pBo.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-C2jDNhWx.js → RootSelectionOverlay-BwwoR4b9.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-D6DXBZAt.js → ShaderAssetDocument-CNe1tl7L.js} +1 -1
- package/dist/assets/{ShadowEditor-BUdib-46.js → ShadowEditor-D0QiV1M7.js} +1 -1
- package/dist/assets/{SourceAssetViewer-FrL5IQpU.js → SourceAssetViewer-CPiZgKck.js} +1 -1
- package/dist/assets/{StageHost-DiXV3rVP.js → StageHost-Dbo3tKK3.js} +2 -2
- package/dist/assets/{StoryPreviewMount-uYhyt63h.js → StoryPreviewMount-BHsmVp-C.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-BvnPu_Kt.js → ThreeBoardDocument-D7c4KS7l.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-C53huaHh.js → ThreeIsolationSceneContent-Cg0KkL73.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-wGS0d8hq.js → ToolObject3DPreview-_N8jhg02.js} +1 -1
- package/dist/assets/{Toolbar-wCXICaZA.js → Toolbar-DDYWRWnH.js} +1 -1
- package/dist/assets/{TransientHint-BRrfIPg5.js → TransientHint-BLksXwdR.js} +1 -1
- package/dist/assets/{VideoViewer-CtoaUhoP.js → VideoViewer-BYLY0WdG.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-DPFcOOlk.js → ViewportShadingMenu-DX7Xsut9.js} +1 -1
- package/dist/assets/{active-ingest-DCi6B_Mk.js → active-ingest-CEa53vF0.js} +2 -2
- package/dist/assets/{animation-clock-DnR5BQwQ.js → animation-clock-Bmz7JDnw.js} +1 -1
- package/dist/assets/{animation-mixers.service-Bjfda5Bu.js → animation-mixers.service-DomnndP0.js} +1 -1
- package/dist/assets/{animation-timeline.utility-9mLK9gMs.js → animation-timeline.utility-BqoUox48.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-cZSz-LwL.js → asset-budget-asset.menu-CETgSkxJ.js} +1 -1
- package/dist/assets/{asset-budget.action-CGVMjOi0.js → asset-budget.action-DwzCiMG2.js} +1 -1
- package/dist/assets/{asset-budget.document-D9L-2haO.js → asset-budget.document-CUuV3lCl.js} +1 -1
- package/dist/assets/{asset-budget.menu-CUpLs9iu.js → asset-budget.menu-Cc6MA-wa.js} +1 -1
- package/dist/assets/{asset-editor-persistence-BVmO7_Y0.js → asset-editor-persistence-BT0v4tAq.js} +1 -1
- package/dist/assets/{asset-loaders-PVkGGJJI.js → asset-loaders-5kIo3uwb.js} +1 -1
- package/dist/assets/{asset-preview-D9R6R903.js → asset-preview-DrnuNAvs.js} +1 -1
- package/dist/assets/{audio-unlock.service-D-GbYty7.js → audio-unlock.service-JqPgkpU5.js} +1 -1
- package/dist/assets/{audio.utility-E-qzBR6D.js → audio.utility-CG29gFjH.js} +1 -1
- package/dist/assets/autoplay.service-CsXisBg-.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-C3VOiksD.js → babylon-authoring-adapter-ClTj2MC3.js} +1 -1
- package/dist/assets/{binding-resolver-CqJs8FS9.js → binding-resolver-CTLBEZNC.js} +2 -2
- package/dist/assets/{blender-node-editor.document-CPNUVCnn.js → blender-node-editor.document-Cf9QRXXV.js} +1 -1
- package/dist/assets/{blender-properties-tab-CiHoYK6t.js → blender-properties-tab-DkDEWTru.js} +1 -1
- package/dist/assets/{blender-runtime-host-CoT0G0_R.js → blender-runtime-host-BrSuddiJ.js} +1 -1
- package/dist/assets/{blender-runtime-skin-CGNNV3xn.js → blender-runtime-skin-BugpRcn0.js} +1 -1
- package/dist/assets/{blender-runtime.document-CJEk-94B.js → blender-runtime.document-DLWi2-0I.js} +1 -1
- package/dist/assets/{blender-timeline.document-DP_MuhM4.js → blender-timeline.document-DjN0BpnX.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-Cggq1dTC.js → blender-uv-editor.document-D6WYt2QC.js} +1 -1
- package/dist/assets/{blender-version.status-C_G5uv7j.js → blender-version.status-CJF052X7.js} +1 -1
- package/dist/assets/{blender.command-CzTbMFTm.js → blender.command-BKo8PfAE.js} +1 -1
- package/dist/assets/{board-guides-CFM0Dzzw.js → board-guides-DvGa-v8v.js} +1 -1
- package/dist/assets/{bridge.command-DWZKDU4z.js → bridge.command-BhkhHZGM.js} +3 -3
- package/dist/assets/{browserAll-Bt1yuPoY.js → browserAll-CPJT6e1H.js} +1 -1
- package/dist/assets/{build-player.document-CSLA4B-I.js → build-player.document-DmpwrRTe.js} +1 -1
- package/dist/assets/{build-profiles.document-vZR8N8Zc.js → build-profiles.document-DJcpRRoj.js} +1 -1
- package/dist/assets/{build-progress.status-mGqJ9OWi.js → build-progress.status-BOGJAonH.js} +1 -1
- package/dist/assets/{build-session-BEJL-4uT.js → build-session-DcZvicW6.js} +1 -1
- package/dist/assets/{build.action-Co8P_po0.js → build.action-CKNJFKFa.js} +1 -1
- package/dist/assets/{build.command-Cqtmjck3.js → build.command--0UXYA7h.js} +1 -1
- package/dist/assets/{build.header-PNcqwkk1.js → build.header-BUUIrt6i.js} +1 -1
- package/dist/assets/{build.menu-BNxEplbC.js → build.menu-CamwcePv.js} +1 -1
- package/dist/assets/{build.service-CkuUEkU3.js → build.service-otobfdtq.js} +1 -1
- package/dist/assets/{camera-KZ9xGSi8.js → camera-CNDzfNdN.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-_IdxJC2q.js → camera-runtime.inspector-C3kGIZal.js} +1 -1
- package/dist/assets/{canvas-design-mount-BQJAuFty.js → canvas-design-mount-Dcz3UbWk.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-C4V45HMi.js → canvas-entry-runtime-CB0dWiqf.js} +2 -2
- package/dist/assets/{canvas-preview-frames-BwQjAyYt.js → canvas-preview-frames-C_AwHp0A.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-Dj4pAbC9.js → canvas-story-capture.service-wxtp-uMy.js} +2 -2
- package/dist/assets/{capability-coverage-4xMPa566.js → capability-coverage-BW0jhUWf.js} +1 -1
- package/dist/assets/{collaboration-presence-CiEcKLpo.js → collaboration-presence-CGBoCEYM.js} +1 -1
- package/dist/assets/{collider-DVAc7Hmk.js → collider-D3AE4y5o.js} +1 -1
- package/dist/assets/{component-board.service-DLoxCk73.js → component-board.service-BsaSzxqY.js} +2 -2
- package/dist/assets/{component-board.service-DK6MwEZa.js → component-board.service-aRqXx_hL.js} +2 -2
- package/dist/assets/{component-board.service-CJDzogke.js → component-board.service-e3DqXFbP.js} +2 -2
- package/dist/assets/{component-contracts.service-BOe_0crY.js → component-contracts.service-uvgs1KbX.js} +1 -1
- package/dist/assets/{component-instance-root-CgmR0Q36.js → component-instance-root-CuhMBeTq.js} +1 -1
- package/dist/assets/{component-verbs.command-BOAaWue3.js → component-verbs.command-CTjRTrvO.js} +1 -1
- package/dist/assets/{component-verbs.service-DAwiNhNc.js → component-verbs.service-DrMc8AK6.js} +1 -1
- package/dist/assets/{config-B64a1eb5.js → config-CDinmkBz.js} +2 -2
- package/dist/assets/{configurations-BQSxxjbY.js → configurations-B45jigJP.js} +1 -1
- package/dist/assets/{connection.status-C4CA3tnt.js → connection.status-WWrI2jAY.js} +1 -1
- package/dist/assets/{constraints.inspector-CWxVm4K9.js → constraints.inspector-bup7b7MV.js} +1 -1
- package/dist/assets/{content-bounds-DUlT_Bs_.js → content-bounds-MIXkclKI.js} +1 -1
- package/dist/assets/{contract-system-adapters-CEuzOynM.js → contract-system-adapters-Cgl3IHIO.js} +1 -1
- package/dist/assets/{coverage.service-HqZrm5L7.js → coverage.service-v4iKehOw.js} +1 -1
- package/dist/assets/{create-runtime-Cr_aiT6l.js → create-runtime-CO8JmCX7.js} +1 -1
- package/dist/assets/{curve-KeLD-yBc.js → curve-D17Op6q4.js} +1 -1
- package/dist/assets/{data-asset-CACLoAiF.js → data-asset-DDdEHQgH.js} +1 -1
- package/dist/assets/{data-ref-DHnlpkfW.js → data-ref-CUYCUCMM.js} +1 -1
- package/dist/assets/{debug-bridge-DAVwvCKX.js → debug-bridge-Bcgo-vKv.js} +1 -1
- package/dist/assets/{debug-registry-B6pk-yrQ.js → debug-registry-DWXKHjIJ.js} +1 -1
- package/dist/assets/{deferred-ingest-play-GNKwMor5.js → deferred-ingest-play-Ck7KAYWK.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-BDyTbqGy.js → design-time-canvas-mount-MsbDbVsh.js} +2 -2
- package/dist/assets/{design-time-layers-DWdxyEke.js → design-time-layers-Be9HqnEr.js} +1 -1
- package/dist/assets/{design-time-mount.service-DH5WMBig.js → design-time-mount.service-C-jPEtUV.js} +2 -2
- package/dist/assets/{design-time-mount.service-CwYVzkTW.js → design-time-mount.service-CYWk8whR.js} +2 -2
- package/dist/assets/{design-time-react-mount-D_Njd_-Z.js → design-time-react-mount-DC_O5p5I.js} +1 -1
- package/dist/assets/{document-preview-three-l_JD_wOQ.js → document-preview-three-BojNfjbb.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-NjpTX82H.js → dom-authoring-adapter-_VzZnXUh.js} +1 -1
- package/dist/assets/{draco3d-uD30kmRz.js → draco3d-BC6NIjGw.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-Bc1dJyur.js → edit-mode-audio.service-A9fphO_d.js} +1 -1
- package/dist/assets/{edit-mode-authoring-D4gF7ToY.js → edit-mode-authoring-DbOPyppg.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-CSJCwcxW.js → edit-mode-networking.service-D1-i4xGa.js} +1 -1
- package/dist/assets/{editor-api-oWEXcLGi.js → editor-api-DGGJOWUU.js} +1 -1
- package/dist/assets/{editor-layers-BGId-Uru.js → editor-layers-C-4kqPi7.js} +1 -1
- package/dist/assets/{editor-shell-store-DhM6KcjO.js → editor-shell-store-BqJU8Lu8.js} +1 -1
- package/dist/assets/{entity-object-B77fPnTJ.js → entity-object-S9jvlW_s.js} +1 -1
- package/dist/assets/{extend-12Z0hbsT.js → extend-Cz3c0C9r.js} +1 -1
- package/dist/assets/{fork-menu-BKv-e4vf.js → fork-menu-BU6hKn6d.js} +1 -1
- package/dist/assets/{frame-debugger-store-QZzA9Bp6.js → frame-debugger-store-B7Jbgb39.js} +1 -1
- package/dist/assets/{game-contract-seams-Bk8NMwX4.js → game-contract-seams-6S6C0ztA.js} +1 -1
- package/dist/assets/{game-css-scope-transform-Qi5A4od1.js → game-css-scope-transform-BOzH2ruv.js} +1 -1
- package/dist/assets/{game-document.service-DwyngEP1.js → game-document.service-mNiqtEZ5.js} +1 -1
- package/dist/assets/{game-eval.command-D3GcSNpZ.js → game-eval.command-GZ5edKXO.js} +1 -1
- package/dist/assets/{game-module-access-DcIMKmZ-.js → game-module-access-CpqKQme4.js} +1 -1
- package/dist/assets/{game-network-BRvp9Eya.js → game-network-1JI7uhYb.js} +3 -3
- package/dist/assets/{gameplay-export-DjEgXlLD.js → gameplay-export-Bxd_nkX7.js} +1 -1
- package/dist/assets/{gameplay-replay-DIU5Uql2.js → gameplay-replay-DP8qTwre.js} +1 -1
- package/dist/assets/{gameplay.command-Ckhbu_et.js → gameplay.command-t7Wb_wt1.js} +1 -1
- package/dist/assets/{generation-jobs-BDAepEao.js → generation-jobs-BDqluDvk.js} +1 -1
- package/dist/assets/{generation.service-BZIxaVg0.js → generation.service-C5VhRZs7.js} +1 -1
- package/dist/assets/{generations-fYwLNwQr.js → generations-Oeo95nlK.js} +1 -1
- package/dist/assets/{generations.status-DpWkrjr7.js → generations.status-BBfdbcRX.js} +1 -1
- package/dist/assets/{hierarchy-marks-BCrDKK5y.js → hierarchy-marks-DolK8jzJ.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-D_yDzOYA.js → hosted-asset-materialization-B8i0ftt_.js} +1 -1
- package/dist/assets/{index-GlGBb8bs.js → index-BhRaFrvZ.js} +1 -1
- package/dist/assets/{index-Bwl4ql-8.js → index-BiOfwZ_V.js} +1 -1
- package/dist/assets/{index-TYz8swQz.js → index-BlaTbgwf.js} +1 -1
- package/dist/assets/{index-DjHJiUGa.js → index-CBmGldaZ.js} +1 -1
- package/dist/assets/{index-D7q9yQaD.js → index-CjZtvEN7.js} +1 -1
- package/dist/assets/{index-B0ciEDFT.js → index-DDurbNnD.js} +2 -2
- package/dist/assets/{index-Bn8WGRJh.js → index-DMsonpRx.js} +7 -7
- package/dist/assets/{index-CLC0lyS8.js → index-DRJx_jIw.js} +1 -1
- package/dist/assets/{index-CaD5TSVW.js → index-DmMBT64l.js} +1 -1
- package/dist/assets/{inference-diagnostics-BPtSODNJ.js → inference-diagnostics-CUavJjuI.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-CYTzGsEC.js → ingest-boot-viewport-I9xll7ou.js} +1 -1
- package/dist/assets/{ingest-siblings-0jNvfYjJ.js → ingest-siblings-D3iJi2A3.js} +1 -1
- package/dist/assets/{ingest-source-persistence-C-gTDfvH.js → ingest-source-persistence-B0NaYeRY.js} +1 -1
- package/dist/assets/{ingest.service-PL_jFRLE.js → ingest.service-BfpZUDne.js} +1 -1
- package/dist/assets/{inspect-C1HaQduW.js → inspect-D4blh5_a.js} +1 -1
- package/dist/assets/instances.command-BSFguDo-.js +1 -0
- package/dist/assets/{json-history-resource-DiN_PLbn.js → json-history-resource-BF-O43PD.js} +1 -1
- package/dist/assets/{layered-pick-Bkf0E_UR.js → layered-pick-Ch1BjtVF.js} +1 -1
- package/dist/assets/{light-nmEsK8JV.js → light-BISMkAGI.js} +1 -1
- package/dist/assets/{live-project-verbs-H6S9jMp9.js → live-project-verbs-DWfBuVx7.js} +1 -1
- package/dist/assets/{machine.document-DbzwF7ct.js → machine.document-BVuE_ug9.js} +1 -1
- package/dist/assets/{machines.finder-CLK23edR.js → machines.finder-XiuiCI4a.js} +1 -1
- package/dist/assets/{material-BX0tqR9K.js → material-BWQT3b7E.js} +1 -1
- package/dist/assets/{material-factory-KdJxeWsR.js → material-factory-CtwX6ST-.js} +1 -1
- package/dist/assets/{mesh-Dtrk7lEY.js → mesh-DqW2WH9I.js} +1 -1
- package/dist/assets/{model-asset-sections.service-B6kG8uli.js → model-asset-sections.service-CQJHkahR.js} +1 -1
- package/dist/assets/{model-inspection-Cus72-UK.js → model-inspection-3opJce7d.js} +1 -1
- package/dist/assets/{model-thumbnail-Dm3TXja5.js → model-thumbnail-DOixylZe.js} +1 -1
- package/dist/assets/{models.finder-BoFyTirM.js → models.finder-CxsWV9l2.js} +1 -1
- package/dist/assets/{module-mode-Dm9xepU7.js → module-mode-DSM_f5Yj.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-Erg3xO7k.js → mount-canvas-ingest-root-T_0LysL3.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-CBfy8dZF.js → mount-dom-ingest-root-BiUuiBav.js} +2 -2
- package/dist/assets/{mount-ingest-root-COum-c-U.js → mount-ingest-root-YqfeOphI.js} +2 -2
- package/dist/assets/{mount-manifest-DvUJ-fD8.js → mount-manifest-2gQEO6hq.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-C1auHtuC.js → mount-three-ingest-root-C9DspkVR.js} +1 -1
- package/dist/assets/{mounted-authoring-Cjmi_MYm.js → mounted-authoring-D8pHcD_a.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-pTjqNWJx.js → mounted-story-viewport-source-8HwyvYy_.js} +1 -1
- package/dist/assets/{native-debug-module-C_1Fna30.js → native-debug-module-BAc7TBPq.js} +1 -1
- package/dist/assets/{navigation-Um6Fjogv.js → navigation-eQVmzrez.js} +1 -1
- package/dist/assets/{navmesh.menu-Bx1y_DLx.js → navmesh.menu-Dox4LQK_.js} +1 -1
- package/dist/assets/{navmesh.service-B1EYycZ8.js → navmesh.service-DmjvxUHo.js} +1 -1
- package/dist/assets/network-observer.service-DRvBwR_w.js +1 -0
- package/dist/assets/{network.utility-DHcZnsaE.js → network.utility-CP9zYWoP.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-DsJV3XhY.js → object3d-document-session-registry-DLF9rgwj.js} +2 -2
- package/dist/assets/{oid-transform-DEzhk73d.js → oid-transform-DAnbWV6K.js} +1 -1
- package/dist/assets/{particles-BnGOaZUs.js → particles-OkjoBjQp.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-qsxp_Kpv.js → pixi-authoring-adapter-DMl8lJFO.js} +1 -1
- package/dist/assets/{pixi-live-write-target-Br2X6vrk.js → pixi-live-write-target-BHVRq1GT.js} +1 -1
- package/dist/assets/{play.command-Cak08ygG.js → play.command-B7RVwcUr.js} +2 -2
- package/dist/assets/{presentation-Dr2MWsec.js → presentation-D4z-Nsdr.js} +1 -1
- package/dist/assets/{product-DunxREWh.js → product-CfXoCObK.js} +1 -1
- package/dist/assets/{profiler.action-BIaSMoN-.js → profiler.action-CNgUtOxQ.js} +1 -1
- package/dist/assets/{profiler.menu-CHe06CnG.js → profiler.menu-jrOIDPTc.js} +1 -1
- package/dist/assets/{profiler.utility-CSNVq8T0.js → profiler.utility-Cggg6w6h.js} +1 -1
- package/dist/assets/{project-authoring-session-Ck0Fj3Y4.js → project-authoring-session-Nq3PmtK1.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-kiKXCgM2.js → properties-bone-constraints.inspector-D8BkuaXW.js} +1 -1
- package/dist/assets/{properties-bone.inspector-DRJ4OpS_.js → properties-bone.inspector-DTTNuOd1.js} +1 -1
- package/dist/assets/{properties-collection.inspector-quSRs0rk.js → properties-collection.inspector-NOoFLq1f.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-Cv0-5ePa.js → properties-constraints.inspector-DYIiaZNb.js} +1 -1
- package/dist/assets/{properties-data.inspector-CKX81zhT.js → properties-data.inspector-TMysZKfR.js} +1 -1
- package/dist/assets/{properties-material.inspector-BRSPtk7G.js → properties-material.inspector-Dtqbi5V4.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-oiF88g6g.js → properties-modifiers.inspector-S-GctzLY.js} +1 -1
- package/dist/assets/{properties-object.inspector-DemtGtHR.js → properties-object.inspector-CQ3XCQuN.js} +1 -1
- package/dist/assets/{properties-output.inspector-qXRflac7.js → properties-output.inspector-Dn2MZbl3.js} +1 -1
- package/dist/assets/{properties-particles.inspector-DMTFYXtX.js → properties-particles.inspector-CSA-4Kfj.js} +1 -1
- package/dist/assets/{properties-physics.inspector-Cbnh5FYf.js → properties-physics.inspector-D4vzWubU.js} +1 -1
- package/dist/assets/{properties-render.inspector-Cf4fmFmw.js → properties-render.inspector-Copw_ptH.js} +1 -1
- package/dist/assets/{properties-scene.inspector-Dlhwx1Jk.js → properties-scene.inspector-oanShDZ2.js} +1 -1
- package/dist/assets/{properties-texture.inspector-CFPpgdvS.js → properties-texture.inspector-B7GcTM9I.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-D-3cHcyN.js → properties-view-layer.inspector-BeeSv6ln.js} +1 -1
- package/dist/assets/{properties-world.inspector-CGV5u2vS.js → properties-world.inspector-DymYbQG6.js} +1 -1
- package/dist/assets/{r3f-design-session-BITr59zE.js → r3f-design-session-CrRJO5C4.js} +2 -2
- package/dist/assets/{r3f-physics-binding-BATEkxoi.js → r3f-physics-binding-DrjAxMEm.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-eyquaeRl.js → r3f-source-authoring-adapter-DbvQNrK7.js} +1 -1
- package/dist/assets/{react-canvas-navigation-DjaqyL9B.js → react-canvas-navigation-C5hLe1sH.js} +1 -1
- package/dist/assets/{react-inspector.service-Bpta2-vk.js → react-inspector.service-o6-PRw8z.js} +1 -1
- package/dist/assets/{react-story-board-C_L09deC.js → react-story-board-COo6rUfn.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-qv3CPTWM.js → react-three-rapier.esm-Q83AB366.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-BUU8rhRd.js → react-world-authoring-adapter-CI1sk6F6.js} +1 -1
- package/dist/assets/{realm-services-ugwrIrZB.js → realm-services-CoCivh2s.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-B5kTVv5X.js → reflection-probe-capture.inspector-DfCsQR94.js} +1 -1
- package/dist/assets/{registry-DLJHmJyM.js → registry-BXZTLQHf.js} +1 -1
- package/dist/assets/{relative-import-specifier-CbIyU_9J.js → relative-import-specifier-C6rJbXKw.js} +1 -1
- package/dist/assets/{render-env-D0fWD_Cg.js → render-env-C7ytOPzW.js} +1 -1
- package/dist/assets/{render-features-C1XRxw0r.js → render-features-1RxcHk6L.js} +1 -1
- package/dist/assets/{render-settings-TEF5i9i9.js → render-settings-Bi_X7ET1.js} +1 -1
- package/dist/assets/{resolve-three-BB2QWODF.js → resolve-three-fQS0EhsO.js} +3 -3
- package/dist/assets/{root-seam-contract-AH-4qn4f.js → root-seam-contract-T0Os3lMG.js} +1 -1
- package/dist/assets/{run-selection-D1vl12vH.js → run-selection-BQzUtW8L.js} +1 -1
- package/dist/assets/{scene-capture-C29siFao.js → scene-capture-BYhV7vRB.js} +1 -1
- package/dist/assets/{scene-document.service-BWVnNGp-.js → scene-document.service-BA4Ivx3I.js} +2 -2
- package/dist/assets/{scene-framing-C7Dmipw4.js → scene-framing-DmIN3HFq.js} +1 -1
- package/dist/assets/{seeded-random-BMbOsD5m.js → seeded-random-MSFUDgJ4.js} +1 -1
- package/dist/assets/{setup-renderer-CCCYtTqV.js → setup-renderer-kDlv1zGC.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-Cbbs0YjZ.js → source-object3d-authoring-adapter-CX-1jWDi.js} +1 -1
- package/dist/assets/{source-persistence-backend-B2YaNBbK.js → source-persistence-backend-cM6_hFF1.js} +1 -1
- package/dist/assets/{stage-keyboard-DKyfSZqk.js → stage-keyboard-q5MkxENL.js} +1 -1
- package/dist/assets/{stage-overlay-set-BuEpVdEB.js → stage-overlay-set-Ctlg0HA-.js} +1 -1
- package/dist/assets/{stage-presence-markers-BW_-0aHa.js → stage-presence-markers-CeUZ108k.js} +1 -1
- package/dist/assets/{stage-transform-tools-CUIBDpNf.js → stage-transform-tools-Do0dhEK4.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-oljtBXBW.js → standard-viewport-dressing-DaUVwoH4.js} +1 -1
- package/dist/assets/{state-watch.action-CPr8pgP6.js → state-watch.action-DnO9j_lB.js} +1 -1
- package/dist/assets/{state-watch.menu-B6E9vQpQ.js → state-watch.menu-DBm7nAtn.js} +1 -1
- package/dist/assets/{state-watch.utility-ClzOeKvw.js → state-watch.utility-CtsdHhcg.js} +1 -1
- package/dist/assets/{story-capture-CKMQHZc4.js → story-capture-BTklfaD3.js} +1 -1
- package/dist/assets/{story-documents-QD7pHb4e.js → story-documents-BDGEJZ0g.js} +1 -1
- package/dist/assets/{story-documents.service-3jggyYD4.js → story-documents.service-0i_8h_3B.js} +1 -1
- package/dist/assets/{story-documents.service-0heuocG2.js → story-documents.service-IuCs9FoR.js} +1 -1
- package/dist/assets/{story-media-presence-BSzcVOx8.js → story-media-presence-BBD2w0nO.js} +1 -1
- package/dist/assets/{story-pixi-preview-Bwbu5lsq.js → story-pixi-preview-V3jj9e_j.js} +1 -1
- package/dist/assets/{story-presentation-C3wR7htg.js → story-presentation-5ksxI-cK.js} +1 -1
- package/dist/assets/{story-three-preview-BiiW5BTL.js → story-three-preview-DLneHHqJ.js} +2 -2
- package/dist/assets/{studio-environment-7oYW17Ie.js → studio-environment-DzXPzh3M.js} +1 -1
- package/dist/assets/{surface-state-_ZZJugmc.js → surface-state-IkyRZBV7.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-AHbdK98K.js → syntactic-prop-specs-Bko1JHCr.js} +1 -1
- package/dist/assets/{team-playtest.service-BfGMrLe2.js → team-playtest.service-CTiYMUn7.js} +1 -1
- package/dist/assets/{three-BiLYjlR0.js → three-CKv5ucoa.js} +1 -1
- package/dist/assets/{three-authoring-adapter-DlqC-T90.js → three-authoring-adapter-C7fn0FHE.js} +1 -1
- package/dist/assets/three-authoring.service-cV0zOT1n.js +2 -0
- package/dist/assets/{three-ingest-runtime-BsCSoTG8.js → three-ingest-runtime-Cw0ElzJG.js} +1 -1
- package/dist/assets/{three-integration-DxXySCHZ.js → three-integration-Qc9a7zSz.js} +2 -2
- package/dist/assets/three-integration.service-DvBW98ZW.js +1 -0
- package/dist/assets/{three-projection-core-C0R8NXF5.js → three-projection-core-D26OWHpV.js} +1 -1
- package/dist/assets/{three-state-28vYMAez.js → three-state-TqrpCspu.js} +1 -1
- package/dist/assets/{three-story-capture.service-VJ7oB7Ak.js → three-story-capture.service-CMxC0Cuu.js} +2 -2
- package/dist/assets/{three-story-model-yxM6xIDL.js → three-story-model-DJPp75up.js} +1 -1
- package/dist/assets/{three-viewport-presentation-PqEhvDqp.js → three-viewport-presentation-D3qj3E-Q.js} +1 -1
- package/dist/assets/{transform-mode-request-gml8dpK4.js → transform-mode-request-CLLg1QQA.js} +1 -1
- package/dist/assets/{transport-strip-DgeWfqo0.js → transport-strip-Cdx4Ln5g.js} +1 -1
- package/dist/assets/transport.header-D4XVOwJA.js +1 -0
- package/dist/assets/{tuples-BbhqWWKC.js → tuples-CZHjGrdQ.js} +1 -1
- package/dist/assets/{ui-board-document-DcZ0WHEL.js → ui-board-document-B_g7xkDJ.js} +2 -2
- package/dist/assets/{user-data-DX18I5LS.js → user-data-BsgiyhZb.js} +1 -1
- package/dist/assets/{utility-view-state-CV4sNyaf.js → utility-view-state-Aza1mypE.js} +1 -1
- package/dist/assets/{viewport-door-C_XkG4b1.js → viewport-door-D7E51csI.js} +1 -1
- package/dist/assets/{viewport-root-presentation-h3E0Xsra.js → viewport-root-presentation-DtrhPv-6.js} +1 -1
- package/dist/assets/{viewport-surface-status-OxaV9weN.js → viewport-surface-status-Cieefesr.js} +1 -1
- package/dist/assets/{webworkerAll-DtOnnkrI.js → webworkerAll-DJ5jfNlk.js} +1 -1
- package/dist/assets/{workspace-arrangement-Dg7zIkwR.js → workspace-arrangement-CHzaISez.js} +1 -1
- package/dist/assets/{world-documents-DAcA8wNx.js → world-documents-PDNNMgyx.js} +1 -1
- package/dist/assets/{world-root-stage-binding-CHamVnwM.js → world-root-stage-binding-C9ukgtlZ.js} +1 -1
- package/dist/assets/{xstate-animation-binding-DQkf6q6S.js → xstate-animation-binding-W5-Rb-KL.js} +1 -1
- package/dist/assets/{xstate-animation-meta-DFSFf8d4.js → xstate-animation-meta-C5PJ3icJ.js} +1 -1
- package/dist-node/cli.js +19 -17
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-uhttAefh.js +0 -1
- package/dist/assets/Object3DDocumentViewport-9yg2UH4I.js +0 -2
- package/dist/assets/autoplay.service-DFqlxmS0.js +0 -1
- package/dist/assets/instances.command-CNhLn9a9.js +0 -1
- package/dist/assets/network-observer.service-CnOV9u6I.js +0 -1
- package/dist/assets/three-authoring.service-DZWsZPqx.js +0 -2
- package/dist/assets/three-integration.service-BgzJ-hPW.js +0 -1
- package/dist/assets/transport.header-eMf7tt0a.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-CPNUVCnn.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-CoT0G0_R.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-DUlT_Bs_.js","assets/hierarchy-marks-BCrDKK5y.js","assets/workspace-arrangement-Dg7zIkwR.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-DP_MuhM4.js","assets/blender-runtime-skin-CGNNV3xn.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-Cggq1dTC.js","assets/blender-runtime.document-CJEk-94B.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-C_XkG4b1.js","assets/blender-version.status-C_G5uv7j.js","assets/blender.command-CzTbMFTm.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-BoFyTirM.js","assets/properties-bone-constraints.inspector-kiKXCgM2.js","assets/blender-properties-tab-CiHoYK6t.js","assets/properties-constraints.inspector-Cv0-5ePa.js","assets/properties-bone.inspector-DRJ4OpS_.js","assets/properties-collection.inspector-quSRs0rk.js","assets/properties-data.inspector-CKX81zhT.js","assets/properties-material.inspector-BRSPtk7G.js","assets/properties-modifiers.inspector-oiF88g6g.js","assets/properties-object.inspector-DemtGtHR.js","assets/properties-output.inspector-qXRflac7.js","assets/properties-particles.inspector-DMTFYXtX.js","assets/properties-physics.inspector-Cbnh5FYf.js","assets/properties-render.inspector-Cf4fmFmw.js","assets/properties-scene.inspector-Dlhwx1Jk.js","assets/properties-texture.inspector-CFPpgdvS.js","assets/properties-view-layer.inspector-D-3cHcyN.js","assets/properties-world.inspector-CGV5u2vS.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-cZSz-LwL.js","assets/AssetBudgetPanel-CsScls8k.js","assets/asset-loaders-PVkGGJJI.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-CGVMjOi0.js","assets/asset-budget.document-D9L-2haO.js","assets/asset-budget.menu-CUpLs9iu.js","assets/audio-unlock.service-D-GbYty7.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-CnOV9u6I.js","assets/game-network-BRvp9Eya.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-C_1Fna30.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-B6pk-yrQ.js","assets/contract-system-adapters-CEuzOynM.js","assets/game-contract-seams-Bk8NMwX4.js","assets/seeded-random-BMbOsD5m.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-H6S9jMp9.js","assets/capability-coverage-4xMPa566.js","assets/edit-mode-authoring-D4gF7ToY.js","assets/json-history-resource-DiN_PLbn.js","assets/binding-resolver-CqJs8FS9.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-ugwrIrZB.js","assets/canvas-entry-runtime-C4V45HMi.js","assets/three-ingest-runtime-BsCSoTG8.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-DCi6B_Mk.js","assets/ingest-source-persistence-C-gTDfvH.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-h3E0Xsra.js","assets/mounted-authoring-Cjmi_MYm.js","assets/entity-object-B77fPnTJ.js","assets/user-data-DX18I5LS.js","assets/three-BiLYjlR0.js","assets/editor-layers-BGId-Uru.js","assets/component-instance-root-CgmR0Q36.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-DlqC-T90.js","assets/source-persistence-backend-B2YaNBbK.js","assets/three-projection-core-C0R8NXF5.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-BATEkxoi.js","assets/deferred-ingest-play-GNKwMor5.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-BUU8rhRd.js","assets/board-guides-CFM0Dzzw.js","assets/relative-import-specifier-CbIyU_9J.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-C1HaQduW.js","assets/inference-diagnostics-BPtSODNJ.js","assets/writer-tw6EcuVO.js","assets/three-state-28vYMAez.js","assets/editor-shell-store-DhM6KcjO.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-E-qzBR6D.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-DFqlxmS0.js","assets/bridge.command-DWZKDU4z.js","assets/gameplay-replay-DIU5Uql2.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-DAVwvCKX.js","assets/build-profiles.document-vZR8N8Zc.js","assets/build-session-BEJL-4uT.js","assets/configurations-BQSxxjbY.js","assets/build-player.document-CSLA4B-I.js","assets/build-progress.status-mGqJ9OWi.js","assets/build.action-Co8P_po0.js","assets/build.command-Cqtmjck3.js","assets/build.header-PNcqwkk1.js","assets/build.menu-BNxEplbC.js","assets/build.service-CkuUEkU3.js","assets/connection.status-C4CA3tnt.js","assets/coverage.service-HqZrm5L7.js","assets/edit-mode-audio.service-Bc1dJyur.js","assets/edit-mode-networking.service-CSJCwcxW.js","assets/game-document.service-DwyngEP1.js","assets/frame-debugger-store-QZzA9Bp6.js","assets/utility-view-state-CV4sNyaf.js","assets/PlayBar-DlSAPez7.js","assets/run-selection-D1vl12vH.js","assets/presentation-Dr2MWsec.js","assets/surface-state-_ZZJugmc.js","assets/game-eval.command-D3GcSNpZ.js","assets/game-module-access-DcIMKmZ-.js","assets/gameplay.command-Ckhbu_et.js","assets/generation.service-BZIxaVg0.js","assets/model-thumbnail-Dm3TXja5.js","assets/studio-environment-7oYW17Ie.js","assets/generation-jobs-BDAepEao.js","assets/generation-CdOATubd.css","assets/generations.status-DpWkrjr7.js","assets/ingest.service-PL_jFRLE.js","assets/registry-DLJHmJyM.js","assets/mount-ingest-root-COum-c-U.js","assets/instances.command-CNhLn9a9.js","assets/navmesh.menu-Bx1y_DLx.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-B1EYycZ8.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-DHcZnsaE.js","assets/play.command-Cak08ygG.js","assets/profiler.action-BIaSMoN-.js","assets/profiler.menu-CHe06CnG.js","assets/profiler.utility-CSNVq8T0.js","assets/scene-document.service-BWVnNGp-.js","assets/Object3DDocumentViewport-9yg2UH4I.js","assets/viewport-surface-status-OxaV9weN.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-CPr8pgP6.js","assets/state-watch.menu-B6E9vQpQ.js","assets/state-watch.utility-ClzOeKvw.js","assets/team-playtest.service-BfGMrLe2.js","assets/collaboration-presence-CiEcKLpo.js","assets/transport.header-eMf7tt0a.js","assets/component-board.service-DK6MwEZa.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-BSzcVOx8.js","assets/design-time-mount.service-CwYVzkTW.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-CJDzogke.js","assets/design-time-mount.service-DH5WMBig.js","assets/react-inspector.service-Bpta2-vk.js","assets/ShadowEditor-BUdib-46.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-NjpTX82H.js","assets/story-documents.service-0heuocG2.js","assets/story-documents-QD7pHb4e.js","assets/StoryPreviewMount-uYhyt63h.js","assets/camera-runtime.inspector-_IdxJC2q.js","assets/component-board.service-DLoxCk73.js","assets/component-verbs.command-BOAaWue3.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-BKv-e4vf.js","assets/component-verbs.service-DAwiNhNc.js","assets/constraints.inspector-CWxVm4K9.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-B6kG8uli.js","assets/model-inspection-Cus72-UK.js","assets/source-object3d-authoring-adapter-Cbbs0YjZ.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-B5kTVv5X.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-3jggyYD4.js","assets/standard-viewport-dressing-oljtBXBW.js","assets/mounted-story-viewport-source-pTjqNWJx.js","assets/story-three-preview-BiiW5BTL.js","assets/asset-preview-D9R6R903.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-yxM6xIDL.js","assets/r3f-source-authoring-adapter-eyquaeRl.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-DEzhk73d.js","assets/three-authoring.service-DZWsZPqx.js","assets/three-story-capture.service-VJ7oB7Ak.js","assets/canvas-story-capture.service-Dj4pAbC9.js","assets/component-contracts.service-BOe_0crY.js","assets/three-integration.service-BgzJ-hPW.js","assets/three-integration-DxXySCHZ.js","assets/layered-pick-Bkf0E_UR.js","assets/root-stacking-BEd9ZvxC.js","assets/object3d-document-session-registry-DsJV3XhY.js","assets/animation-mixers.service-Bjfda5Bu.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-9mLK9gMs.js","assets/transport-strip-DgeWfqo0.js","assets/machines.finder-CLK23edR.js","assets/machine.document-DbzwF7ct.js","assets/GameplaySessionTimeline-BZENnCEM.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-C0KaLINZ.js","assets/ImageViewer-Z077ZBuk.js","assets/VideoViewer-CtoaUhoP.js","assets/JsonAssetDocument-DjtYdDni.js","assets/OnlineAssetDetail-DouLFaxd.js","assets/asset-editor-persistence-BVmO7_Y0.js","assets/SourceAssetViewer-FrL5IQpU.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-D_yDzOYA.js","assets/NonThreeAuthoringBootstrap-DAjTxCUk.js","assets/project-authoring-session-Ck0Fj3Y4.js","assets/story-capture-CKMQHZc4.js","assets/react-story-board-C_L09deC.js","assets/story-presentation-C3wR7htg.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as Ze,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtime-DPjLkJKQ.js";import{r as MS}from"./index-CtzuWnCS.js";import{F as Wyr}from"./index-FUuS4qwW.js";import{a as Kje}from"./client-DNXj_opT.js";import{g as Xje,a as Hyr,c as bmt}from"./_commonjsHelpers-D6-XlEtG.js";function Gyr(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 Kyr="modulepreload",Xyr=function(t){return"/"+t},Smt={},fo=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=Xyr(A),A in Smt)return;Smt[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":Kyr,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)})},Yyr=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>fo(()=>import("./blender-node-editor.document-CPNUVCnn.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:()=>fo(()=>import("./blender-timeline.document-DP_MuhM4.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:()=>fo(()=>import("./blender-uv-editor.document-Cggq1dTC.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:()=>fo(()=>import("./blender-runtime.document-CJEk-94B.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>fo(()=>import("./blender-version.status-C_G5uv7j.js"),__vite__mapDeps([31,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>fo(()=>import("./blender.command-CzTbMFTm.js"),__vite__mapDeps([32,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:()=>fo(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>fo(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>fo(()=>import("./blender.status-BMETIbb2.js"),__vite__mapDeps([33,1,2]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>fo(()=>import("./blender.style-DaIh9SiA.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>fo(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([34,35]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>fo(()=>import("./models.finder-BoFyTirM.js"),__vite__mapDeps([36,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>fo(()=>import("./properties-bone-constraints.inspector-kiKXCgM2.js"),__vite__mapDeps([37,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,39,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>fo(()=>import("./properties-bone.inspector-DRJ4OpS_.js"),__vite__mapDeps([40,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>fo(()=>import("./properties-collection.inspector-quSRs0rk.js"),__vite__mapDeps([41,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>fo(()=>import("./properties-constraints.inspector-Cv0-5ePa.js"),__vite__mapDeps([39,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>fo(()=>import("./properties-data.inspector-CKX81zhT.js"),__vite__mapDeps([42,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>fo(()=>import("./properties-material.inspector-BRSPtk7G.js"),__vite__mapDeps([43,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>fo(()=>import("./properties-modifiers.inspector-oiF88g6g.js"),__vite__mapDeps([44,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>fo(()=>import("./properties-object.inspector-DemtGtHR.js"),__vite__mapDeps([45,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>fo(()=>import("./properties-output.inspector-qXRflac7.js"),__vite__mapDeps([46,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>fo(()=>import("./properties-particles.inspector-DMTFYXtX.js"),__vite__mapDeps([47,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>fo(()=>import("./properties-physics.inspector-Cbnh5FYf.js"),__vite__mapDeps([48,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>fo(()=>import("./properties-render.inspector-Cf4fmFmw.js"),__vite__mapDeps([49,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>fo(()=>import("./properties-scene.inspector-Dlhwx1Jk.js"),__vite__mapDeps([50,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>fo(()=>import("./properties-texture.inspector-CFPpgdvS.js"),__vite__mapDeps([51,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>fo(()=>import("./properties-view-layer.inspector-D-3cHcyN.js"),__vite__mapDeps([52,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>fo(()=>import("./properties-world.inspector-CGV5u2vS.js"),__vite__mapDeps([53,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>fo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([54,35]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>fo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([55,35]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>fo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([56,35]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>fo(()=>import("./texture.layout-DASpHVht.js"),[])}],Zyr=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>fo(()=>import("./asset-budget-asset.menu-cZSz-LwL.js"),__vite__mapDeps([57,58,1,2,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>fo(()=>import("./asset-budget.action-CGVMjOi0.js"),__vite__mapDeps([68,58,1,2,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>fo(()=>import("./asset-budget.document-D9L-2haO.js"),__vite__mapDeps([69,1,2,58,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>fo(()=>import("./asset-budget.menu-CUpLs9iu.js"),__vite__mapDeps([70,58,1,2,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>fo(()=>import("./audio-unlock.service-D-GbYty7.js"),__vite__mapDeps([71,72,8,73,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>fo(()=>import("./network-observer.service-CnOV9u6I.js"),__vite__mapDeps([74,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>fo(()=>import("./audio.utility-E-qzBR6D.js"),__vite__mapDeps([136,1,2,3,4,20,21,137,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>fo(()=>import("./autoplay.service-DFqlxmS0.js"),__vite__mapDeps([138,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>fo(()=>import("./bridge.command-DWZKDU4z.js"),__vite__mapDeps([139,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135,140,141,142,143]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>fo(()=>import("./build-profiles.document-vZR8N8Zc.js"),__vite__mapDeps([144,1,2,3,4,20,21,145,146,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>fo(()=>import("./build-player.document-CSLA4B-I.js"),__vite__mapDeps([147,1,2,3,4,145,146,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>fo(()=>import("./build-progress.status-mGqJ9OWi.js"),__vite__mapDeps([148,1,2,3,4,145,146,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>fo(()=>import("./build.action-Co8P_po0.js"),__vite__mapDeps([149,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>fo(()=>import("./build.command-Cqtmjck3.js"),__vite__mapDeps([150,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>fo(()=>import("./build.header-PNcqwkk1.js"),__vite__mapDeps([151,1,2,3,4,20,21,145,146,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>fo(()=>import("./build.menu-BNxEplbC.js"),__vite__mapDeps([152,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>fo(()=>import("./build.service-CkuUEkU3.js"),__vite__mapDeps([153,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>fo(()=>import("./connection.status-C4CA3tnt.js"),__vite__mapDeps([154,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>fo(()=>import("./coverage.service-HqZrm5L7.js"),__vite__mapDeps([155,88,82,3,2,4,1,20,21,22,23,87]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>fo(()=>import("./edit-mode-audio.service-Bc1dJyur.js"),__vite__mapDeps([156,72,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/edit-mode-networking.service.ts",load:()=>fo(()=>import("./edit-mode-networking.service-CSJCwcxW.js"),__vite__mapDeps([157,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>fo(()=>import("./game-document.service-DwyngEP1.js"),__vite__mapDeps([158,1,2,3,4,20,21,159,137,160,161,146,162,75,76,77,78,79,80,81,82,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135,163,164]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>fo(()=>import("./game-eval.command-D3GcSNpZ.js"),__vite__mapDeps([165,166,3,2,4,1,20,21,22,23,142,105,82,88,106,81,75,76,77,78,79,80,83,73,84,85,7,8,86,87,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/game.layout.ts",load:()=>fo(()=>import("./game.layout-CBASrvQu.js"),[])},{entryPath:"@volter/editor-game/contributions/gameplay.command.ts",load:()=>fo(()=>import("./gameplay.command-Ckhbu_et.js"),__vite__mapDeps([167,142,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>fo(()=>import("./generation.service-BZIxaVg0.js"),__vite__mapDeps([168,1,2,3,4,169,13,170,112,19,65,7,8,66,67,9,10,11,12,20,21,171,22,23,172]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>fo(()=>import("./generations.status-DpWkrjr7.js"),__vite__mapDeps([173,1,2,3,4,20,21,171,22,23]))},{entryPath:"@volter/editor-game/contributions/godot.style.ts",load:()=>fo(()=>import("./godot.style-NCC0Pm-A.js"),[])},{entryPath:"@volter/editor-game/contributions/godot.view.ts",load:()=>fo(()=>import("./godot.view-DinHwC_o.js"),[])},{entryPath:"@volter/editor-game/contributions/ingest.service.ts",load:()=>fo(()=>import("./ingest.service-PL_jFRLE.js"),__vite__mapDeps([174,175,176,105,82,3,2,4,1,20,21,22,23,88,106,81,133,134,14,7,8,15,114,19,112,111,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>fo(()=>import("./instances.command-CNhLn9a9.js"),__vite__mapDeps([177,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>fo(()=>import("./navmesh.menu-Bx1y_DLx.js"),__vite__mapDeps([178,179,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>fo(()=>import("./navmesh.service-B1EYycZ8.js"),__vite__mapDeps([180,62,63,179,29,181,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>fo(()=>import("./network.utility-DHcZnsaE.js"),__vite__mapDeps([182,1,2,75,76,77,78,79,80,81,82,3,4,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>fo(()=>import("./play.command-Cak08ygG.js"),__vite__mapDeps([183,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135,142,162,146]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>fo(()=>import("./profiler.action-BIaSMoN-.js"),__vite__mapDeps([184,160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>fo(()=>import("./profiler.menu-CHe06CnG.js"),__vite__mapDeps([185,160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>fo(()=>import("./profiler.utility-CSNVq8T0.js"),__vite__mapDeps([186,1,2,160,3,4,20,21,159,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>fo(()=>import("./scene-document.service-BWVnNGp-.js"),__vite__mapDeps([187,1,2,188,3,4,189,20,21,190,133,134,14,7,8,15,114,19,22,23,112,111,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>fo(()=>import("./state-watch.action-CPr8pgP6.js"),__vite__mapDeps([191,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>fo(()=>import("./state-watch.menu-B6E9vQpQ.js"),__vite__mapDeps([192,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>fo(()=>import("./state-watch.utility-ClzOeKvw.js"),__vite__mapDeps([193,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>fo(()=>import("./team-playtest.service-BfGMrLe2.js"),__vite__mapDeps([194,195,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>fo(()=>import("./transport.header-eMf7tt0a.js"),__vite__mapDeps([196,1,2,3,4,161,146,162,75,76,77,78,79,80,81,82,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/unity.style.ts",load:()=>fo(()=>import("./unity.style-BUZD1vdX.js"),[])},{entryPath:"@volter/editor-game/contributions/unity.view.ts",load:()=>fo(()=>import("./unity.view--n1Xt50A.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.style.ts",load:()=>fo(()=>import("./unreal.style-Cqf-hEzT.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.view.ts",load:()=>fo(()=>import("./unreal.view-CKSsDgA8.js"),[])},{entryPath:"@volter/editor-game/contributions/canvas/component-board.service.ts",load:()=>fo(()=>import("./component-board.service-DK6MwEZa.js"),__vite__mapDeps([197,198,199,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas/design-time-mount.service.ts",load:()=>fo(()=>import("./design-time-mount.service-CwYVzkTW.js"),__vite__mapDeps([200,201,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>fo(()=>import("./component-board.service-CJDzogke.js").then(t=>t.c),__vite__mapDeps([202,198,199]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>fo(()=>import("./design-time-mount.service-DH5WMBig.js"),__vite__mapDeps([203,201,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>fo(()=>import("./react-inspector.service-Bpta2-vk.js"),__vite__mapDeps([204,1,2,3,4,20,21,205,127,206,130,131,207,90,126,128,129,132,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>fo(()=>import("./story-documents.service-0heuocG2.js"),__vite__mapDeps([208,209,1,2,3,4,20,21,163,164,210,108,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>fo(()=>import("./camera-runtime.inspector-_IdxJC2q.js"),__vite__mapDeps([211,1,2,29,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-board.service.ts",load:()=>fo(()=>import("./component-board.service-DLoxCk73.js"),__vite__mapDeps([212,198,199,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>fo(()=>import("./component-verbs.command-BOAaWue3.js"),__vite__mapDeps([213,214,215,134,14,7,8,15,114,19,3,2,4,1,20,21,22,23,112,111,29,133]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>fo(()=>import("./component-verbs.service-DAwiNhNc.js"),__vite__mapDeps([216,215,214,134,14,7,8,15,114,19,3,2,4,1,20,21,22,23,112,111,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>fo(()=>import("./constraints.inspector-CWxVm4K9.js"),__vite__mapDeps([217,1,2,29,115,112,19,218,62,63,3,4,20,21,133,134,14,7,8,15,114,22,23,111]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>fo(()=>import("./model-asset-sections.service-B6kG8uli.js"),__vite__mapDeps([219,1,2,29,220,112,19,8,221,114,3,4,20,21,22,23,113,115,111,116,119,222,122,62,63,223]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>fo(()=>import("./reflection-probe-capture.inspector-B5kTVv5X.js"),__vite__mapDeps([224,1,2,29,225,62,63,3,4,20,21,133,134,14,7,8,15,114,19,22,23,112,111]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>fo(()=>import("./story-documents.service-3jggyYD4.js"),__vite__mapDeps([226,1,2,188,3,4,189,20,21,164,227,17,18,19,8,114,22,23,9,7,10,11,12,112,228,229,230,13,170,65,66,67,231,232,85,86,233,129,234,209,163,210,108,235,115,236,128,119,113,111,29,116,131,214,237,132,123,122,62,63]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>fo(()=>import("./three-authoring.service-DZWsZPqx.js"),__vite__mapDeps([238,201,89,90,117,115,112,19,118,106,119,114,3,2,4,1,20,21,22,23,113,111,29,116,8,120,62,63,121,122,84,123,134,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>fo(()=>import("./three-story-capture.service-VJ7oB7Ak.js"),__vite__mapDeps([239,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas-story-capture.service.ts",load:()=>fo(()=>import("./canvas-story-capture.service-Dj4pAbC9.js"),__vite__mapDeps([240,3,2,4,1,20,21,22,23]))}],Qyr=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>fo(()=>import("./component-contracts.service-BOe_0crY.js"),__vite__mapDeps([241,237,132,123,3,2,4,1,20,21,22,23]))}],e0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>fo(()=>import("./three-integration.service-BgzJ-hPW.js"),__vite__mapDeps([242,243,181,13,7,8,6,9,10,11,12,244,245,112,19,1,2,3,4,169,170,65,66,67,246,133,134,14,15,114,20,21,22,23,111,29,18,115,30,17,230,231]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>fo(()=>import("./animation-mixers.service-Bjfda5Bu.js"),__vite__mapDeps([247,248,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>fo(()=>import("./animation-timeline.utility-9mLK9gMs.js"),__vite__mapDeps([249,1,2,250,3,4,20,21,22,23]))}],t0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>fo(()=>import("./machines.finder-CLK23edR.js"),__vite__mapDeps([251,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>fo(()=>import("./machine.document-DbzwF7ct.js"),__vite__mapDeps([252,1,2,3,4,20,21,22,23]))}];let HY=null;const ROe=new Set;function lee(){return HY}function r0r(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 ROe)n()}function STt(t){return ROe.add(t),()=>ROe.delete(t)}/*!
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-Cf9QRXXV.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-BrSuddiJ.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-MIXkclKI.js","assets/hierarchy-marks-DolK8jzJ.js","assets/workspace-arrangement-CHzaISez.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-DjN0BpnX.js","assets/blender-runtime-skin-BugpRcn0.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-D6WYt2QC.js","assets/blender-runtime.document-DLWi2-0I.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-D7E51csI.js","assets/blender-version.status-CJF052X7.js","assets/blender.command-BKo8PfAE.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-CxsWV9l2.js","assets/properties-bone-constraints.inspector-D8BkuaXW.js","assets/blender-properties-tab-DkDEWTru.js","assets/properties-constraints.inspector-DYIiaZNb.js","assets/properties-bone.inspector-DTTNuOd1.js","assets/properties-collection.inspector-NOoFLq1f.js","assets/properties-data.inspector-TMysZKfR.js","assets/properties-material.inspector-Dtqbi5V4.js","assets/properties-modifiers.inspector-S-GctzLY.js","assets/properties-object.inspector-CQ3XCQuN.js","assets/properties-output.inspector-Dn2MZbl3.js","assets/properties-particles.inspector-CSA-4Kfj.js","assets/properties-physics.inspector-D4vzWubU.js","assets/properties-render.inspector-Copw_ptH.js","assets/properties-scene.inspector-oanShDZ2.js","assets/properties-texture.inspector-B7GcTM9I.js","assets/properties-view-layer.inspector-BeeSv6ln.js","assets/properties-world.inspector-DymYbQG6.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-CETgSkxJ.js","assets/AssetBudgetPanel-CE18ck0x.js","assets/asset-loaders-5kIo3uwb.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-DwzCiMG2.js","assets/asset-budget.document-CUuV3lCl.js","assets/asset-budget.menu-Cc6MA-wa.js","assets/audio-unlock.service-JqPgkpU5.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-DRvBwR_w.js","assets/game-network-1JI7uhYb.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-BAc7TBPq.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-DWXKHjIJ.js","assets/contract-system-adapters-Cgl3IHIO.js","assets/game-contract-seams-6S6C0ztA.js","assets/seeded-random-MSFUDgJ4.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-DWfBuVx7.js","assets/capability-coverage-BW0jhUWf.js","assets/edit-mode-authoring-DbOPyppg.js","assets/json-history-resource-BF-O43PD.js","assets/binding-resolver-CTLBEZNC.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-CoCivh2s.js","assets/canvas-entry-runtime-CB0dWiqf.js","assets/three-ingest-runtime-Cw0ElzJG.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-CEa53vF0.js","assets/ingest-source-persistence-B0NaYeRY.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-DtrhPv-6.js","assets/mounted-authoring-D8pHcD_a.js","assets/entity-object-S9jvlW_s.js","assets/user-data-BsgiyhZb.js","assets/three-CKv5ucoa.js","assets/editor-layers-C-4kqPi7.js","assets/component-instance-root-CuhMBeTq.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-C7fn0FHE.js","assets/source-persistence-backend-cM6_hFF1.js","assets/three-projection-core-D26OWHpV.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-DrjAxMEm.js","assets/deferred-ingest-play-Ck7KAYWK.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CI1sk6F6.js","assets/board-guides-DvGa-v8v.js","assets/relative-import-specifier-C6rJbXKw.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-D4blh5_a.js","assets/inference-diagnostics-CUavJjuI.js","assets/writer-tw6EcuVO.js","assets/three-state-TqrpCspu.js","assets/editor-shell-store-BqJU8Lu8.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-CG29gFjH.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-CsXisBg-.js","assets/bridge.command-BhkhHZGM.js","assets/gameplay-replay-DP8qTwre.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-Bcgo-vKv.js","assets/build-profiles.document-DJcpRRoj.js","assets/build-session-DcZvicW6.js","assets/configurations-B45jigJP.js","assets/build-player.document-DmpwrRTe.js","assets/build-progress.status-BOGJAonH.js","assets/build.action-CKNJFKFa.js","assets/build.command--0UXYA7h.js","assets/build.header-BUUIrt6i.js","assets/build.menu-CamwcePv.js","assets/build.service-otobfdtq.js","assets/connection.status-WWrI2jAY.js","assets/coverage.service-v4iKehOw.js","assets/edit-mode-audio.service-A9fphO_d.js","assets/edit-mode-networking.service-D1-i4xGa.js","assets/game-document.service-mNiqtEZ5.js","assets/frame-debugger-store-B7Jbgb39.js","assets/utility-view-state-Aza1mypE.js","assets/PlayBar-CGjjGuF8.js","assets/run-selection-BQzUtW8L.js","assets/presentation-D4z-Nsdr.js","assets/surface-state-IkyRZBV7.js","assets/game-eval.command-GZ5edKXO.js","assets/game-module-access-CpqKQme4.js","assets/gameplay.command-t7Wb_wt1.js","assets/generation.service-C5VhRZs7.js","assets/model-thumbnail-DOixylZe.js","assets/studio-environment-DzXPzh3M.js","assets/generation-jobs-BDqluDvk.js","assets/generation-CdOATubd.css","assets/generations.status-BBfdbcRX.js","assets/ingest.service-BfpZUDne.js","assets/registry-BXZTLQHf.js","assets/mount-ingest-root-YqfeOphI.js","assets/instances.command-BSFguDo-.js","assets/navmesh.menu-Dox4LQK_.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-DmjvxUHo.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-CP9zYWoP.js","assets/play.command-B7RVwcUr.js","assets/profiler.action-CNgUtOxQ.js","assets/profiler.menu-jrOIDPTc.js","assets/profiler.utility-Cggg6w6h.js","assets/scene-document.service-BA4Ivx3I.js","assets/Object3DDocumentViewport-ChZBISII.js","assets/viewport-surface-status-Cieefesr.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-DnO9j_lB.js","assets/state-watch.menu-DBm7nAtn.js","assets/state-watch.utility-CtsdHhcg.js","assets/team-playtest.service-CTiYMUn7.js","assets/collaboration-presence-CGBoCEYM.js","assets/transport.header-D4XVOwJA.js","assets/component-board.service-aRqXx_hL.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-BBD2w0nO.js","assets/design-time-mount.service-CYWk8whR.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-e3DqXFbP.js","assets/design-time-mount.service-C-jPEtUV.js","assets/react-inspector.service-o6-PRw8z.js","assets/ShadowEditor-D0QiV1M7.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-_VzZnXUh.js","assets/story-documents.service-IuCs9FoR.js","assets/story-documents-BDGEJZ0g.js","assets/StoryPreviewMount-BHsmVp-C.js","assets/camera-runtime.inspector-C3kGIZal.js","assets/component-board.service-BsaSzxqY.js","assets/component-verbs.command-CTjRTrvO.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-BU6hKn6d.js","assets/component-verbs.service-DrMc8AK6.js","assets/constraints.inspector-bup7b7MV.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-CQJHkahR.js","assets/model-inspection-3opJce7d.js","assets/source-object3d-authoring-adapter-CX-1jWDi.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-DfCsQR94.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-0i_8h_3B.js","assets/standard-viewport-dressing-DaUVwoH4.js","assets/mounted-story-viewport-source-8HwyvYy_.js","assets/story-three-preview-DLneHHqJ.js","assets/asset-preview-DrnuNAvs.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-DJPp75up.js","assets/r3f-source-authoring-adapter-DbvQNrK7.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-DAnbWV6K.js","assets/three-authoring.service-cV0zOT1n.js","assets/three-story-capture.service-CMxC0Cuu.js","assets/canvas-story-capture.service-wxtp-uMy.js","assets/component-contracts.service-uvgs1KbX.js","assets/three-integration.service-DvBW98ZW.js","assets/three-integration-Qc9a7zSz.js","assets/layered-pick-Ch1BjtVF.js","assets/root-stacking-BEd9ZvxC.js","assets/object3d-document-session-registry-DLF9rgwj.js","assets/animation-mixers.service-DomnndP0.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-BqoUox48.js","assets/transport-strip-Cdx4Ln5g.js","assets/machines.finder-XiuiCI4a.js","assets/machine.document-BVuE_ug9.js","assets/GameplaySessionTimeline-lxx-w1ya.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-CcL-aNBd.js","assets/ImageViewer-280O0PlP.js","assets/VideoViewer-BYLY0WdG.js","assets/JsonAssetDocument-Fen8_TJ3.js","assets/OnlineAssetDetail-BO_qsMXe.js","assets/asset-editor-persistence-BT0v4tAq.js","assets/SourceAssetViewer-CPiZgKck.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-B8i0ftt_.js","assets/NonThreeAuthoringBootstrap-Co881phq.js","assets/project-authoring-session-Nq3PmtK1.js","assets/story-capture-BTklfaD3.js","assets/react-story-board-COo6rUfn.js","assets/story-presentation-5ksxI-cK.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as Ze,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtime-DPjLkJKQ.js";import{r as MS}from"./index-CtzuWnCS.js";import{F as Wyr}from"./index-FUuS4qwW.js";import{a as Kje}from"./client-DNXj_opT.js";import{g as Xje,a as Hyr,c as bmt}from"./_commonjsHelpers-D6-XlEtG.js";function Gyr(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 Kyr="modulepreload",Xyr=function(t){return"/"+t},Smt={},fo=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=Xyr(A),A in Smt)return;Smt[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":Kyr,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)})},Yyr=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>fo(()=>import("./blender-node-editor.document-Cf9QRXXV.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:()=>fo(()=>import("./blender-timeline.document-DjN0BpnX.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:()=>fo(()=>import("./blender-uv-editor.document-D6WYt2QC.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:()=>fo(()=>import("./blender-runtime.document-DLWi2-0I.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>fo(()=>import("./blender-version.status-CJF052X7.js"),__vite__mapDeps([31,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>fo(()=>import("./blender.command-BKo8PfAE.js"),__vite__mapDeps([32,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:()=>fo(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>fo(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>fo(()=>import("./blender.status-BMETIbb2.js"),__vite__mapDeps([33,1,2]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>fo(()=>import("./blender.style-DaIh9SiA.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>fo(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([34,35]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>fo(()=>import("./models.finder-CxsWV9l2.js"),__vite__mapDeps([36,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>fo(()=>import("./properties-bone-constraints.inspector-D8BkuaXW.js"),__vite__mapDeps([37,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,39,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>fo(()=>import("./properties-bone.inspector-DTTNuOd1.js"),__vite__mapDeps([40,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>fo(()=>import("./properties-collection.inspector-NOoFLq1f.js"),__vite__mapDeps([41,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>fo(()=>import("./properties-constraints.inspector-DYIiaZNb.js"),__vite__mapDeps([39,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>fo(()=>import("./properties-data.inspector-TMysZKfR.js"),__vite__mapDeps([42,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>fo(()=>import("./properties-material.inspector-Dtqbi5V4.js"),__vite__mapDeps([43,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>fo(()=>import("./properties-modifiers.inspector-S-GctzLY.js"),__vite__mapDeps([44,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>fo(()=>import("./properties-object.inspector-CQ3XCQuN.js"),__vite__mapDeps([45,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>fo(()=>import("./properties-output.inspector-Dn2MZbl3.js"),__vite__mapDeps([46,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>fo(()=>import("./properties-particles.inspector-CSA-4Kfj.js"),__vite__mapDeps([47,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>fo(()=>import("./properties-physics.inspector-D4vzWubU.js"),__vite__mapDeps([48,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>fo(()=>import("./properties-render.inspector-Copw_ptH.js"),__vite__mapDeps([49,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>fo(()=>import("./properties-scene.inspector-oanShDZ2.js"),__vite__mapDeps([50,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>fo(()=>import("./properties-texture.inspector-B7GcTM9I.js"),__vite__mapDeps([51,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>fo(()=>import("./properties-view-layer.inspector-BeeSv6ln.js"),__vite__mapDeps([52,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>fo(()=>import("./properties-world.inspector-DymYbQG6.js"),__vite__mapDeps([53,38,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>fo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([54,35]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>fo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([55,35]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>fo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([56,35]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>fo(()=>import("./texture.layout-DASpHVht.js"),[])}],Zyr=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>fo(()=>import("./asset-budget-asset.menu-CETgSkxJ.js"),__vite__mapDeps([57,58,1,2,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>fo(()=>import("./asset-budget.action-DwzCiMG2.js"),__vite__mapDeps([68,58,1,2,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>fo(()=>import("./asset-budget.document-CUuV3lCl.js"),__vite__mapDeps([69,1,2,58,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>fo(()=>import("./asset-budget.menu-Cc6MA-wa.js"),__vite__mapDeps([70,58,1,2,3,4,20,21,59,60,7,8,61,62,63,64,65,66,67,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>fo(()=>import("./audio-unlock.service-JqPgkpU5.js"),__vite__mapDeps([71,72,8,73,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>fo(()=>import("./network-observer.service-DRvBwR_w.js"),__vite__mapDeps([74,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>fo(()=>import("./audio.utility-CG29gFjH.js"),__vite__mapDeps([136,1,2,3,4,20,21,137,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>fo(()=>import("./autoplay.service-CsXisBg-.js"),__vite__mapDeps([138,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>fo(()=>import("./bridge.command-BhkhHZGM.js"),__vite__mapDeps([139,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135,140,141,142,143]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>fo(()=>import("./build-profiles.document-DJcpRRoj.js"),__vite__mapDeps([144,1,2,3,4,20,21,145,146,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>fo(()=>import("./build-player.document-DmpwrRTe.js"),__vite__mapDeps([147,1,2,3,4,145,146,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>fo(()=>import("./build-progress.status-BOGJAonH.js"),__vite__mapDeps([148,1,2,3,4,145,146,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>fo(()=>import("./build.action-CKNJFKFa.js"),__vite__mapDeps([149,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>fo(()=>import("./build.command--0UXYA7h.js"),__vite__mapDeps([150,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>fo(()=>import("./build.header-BUUIrt6i.js"),__vite__mapDeps([151,1,2,3,4,20,21,145,146,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>fo(()=>import("./build.menu-CamwcePv.js"),__vite__mapDeps([152,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>fo(()=>import("./build.service-otobfdtq.js"),__vite__mapDeps([153,145,146,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>fo(()=>import("./connection.status-WWrI2jAY.js"),__vite__mapDeps([154,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>fo(()=>import("./coverage.service-v4iKehOw.js"),__vite__mapDeps([155,88,82,3,2,4,1,20,21,22,23,87]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>fo(()=>import("./edit-mode-audio.service-A9fphO_d.js"),__vite__mapDeps([156,72,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/edit-mode-networking.service.ts",load:()=>fo(()=>import("./edit-mode-networking.service-D1-i4xGa.js"),__vite__mapDeps([157,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>fo(()=>import("./game-document.service-mNiqtEZ5.js"),__vite__mapDeps([158,1,2,3,4,20,21,159,137,160,161,146,162,75,76,77,78,79,80,81,82,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135,163,164]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>fo(()=>import("./game-eval.command-GZ5edKXO.js"),__vite__mapDeps([165,166,3,2,4,1,20,21,22,23,142,105,82,88,106,81,75,76,77,78,79,80,83,73,84,85,7,8,86,87,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/game.layout.ts",load:()=>fo(()=>import("./game.layout-CBASrvQu.js"),[])},{entryPath:"@volter/editor-game/contributions/gameplay.command.ts",load:()=>fo(()=>import("./gameplay.command-t7Wb_wt1.js"),__vite__mapDeps([167,142,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>fo(()=>import("./generation.service-C5VhRZs7.js"),__vite__mapDeps([168,1,2,3,4,169,13,170,112,19,65,7,8,66,67,9,10,11,12,20,21,171,22,23,172]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>fo(()=>import("./generations.status-BBfdbcRX.js"),__vite__mapDeps([173,1,2,3,4,20,21,171,22,23]))},{entryPath:"@volter/editor-game/contributions/godot.style.ts",load:()=>fo(()=>import("./godot.style-NCC0Pm-A.js"),[])},{entryPath:"@volter/editor-game/contributions/godot.view.ts",load:()=>fo(()=>import("./godot.view-DinHwC_o.js"),[])},{entryPath:"@volter/editor-game/contributions/ingest.service.ts",load:()=>fo(()=>import("./ingest.service-BfpZUDne.js"),__vite__mapDeps([174,175,176,105,82,3,2,4,1,20,21,22,23,88,106,81,133,134,14,7,8,15,114,19,112,111,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>fo(()=>import("./instances.command-BSFguDo-.js"),__vite__mapDeps([177,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>fo(()=>import("./navmesh.menu-Dox4LQK_.js"),__vite__mapDeps([178,179,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>fo(()=>import("./navmesh.service-DmjvxUHo.js"),__vite__mapDeps([180,62,63,179,29,181,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>fo(()=>import("./network.utility-CP9zYWoP.js"),__vite__mapDeps([182,1,2,75,76,77,78,79,80,81,82,3,4,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>fo(()=>import("./play.command-B7RVwcUr.js"),__vite__mapDeps([183,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135,142,162,146]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>fo(()=>import("./profiler.action-CNgUtOxQ.js"),__vite__mapDeps([184,160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>fo(()=>import("./profiler.menu-jrOIDPTc.js"),__vite__mapDeps([185,160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>fo(()=>import("./profiler.utility-Cggg6w6h.js"),__vite__mapDeps([186,1,2,160,3,4,20,21,159,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>fo(()=>import("./scene-document.service-BA4Ivx3I.js"),__vite__mapDeps([187,1,2,188,3,4,189,20,21,190,133,134,14,7,8,15,114,19,22,23,112,111,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>fo(()=>import("./state-watch.action-DnO9j_lB.js"),__vite__mapDeps([191,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>fo(()=>import("./state-watch.menu-DBm7nAtn.js"),__vite__mapDeps([192,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>fo(()=>import("./state-watch.utility-CtsdHhcg.js"),__vite__mapDeps([193,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>fo(()=>import("./team-playtest.service-CTiYMUn7.js"),__vite__mapDeps([194,195,75,76,77,2,78,79,80,81,82,3,4,1,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>fo(()=>import("./transport.header-D4XVOwJA.js"),__vite__mapDeps([196,1,2,3,4,161,146,162,75,76,77,78,79,80,81,82,20,21,22,23,83,73,84,85,7,8,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,15,101,102,103,104,105,106,107,108,109,110,111,112,19,29,113,114,115,116,117,118,119,120,62,63,121,122,123,124,125,126,127,128,129,130,131,132,133,134,14,30,135]))},{entryPath:"@volter/editor-game/contributions/unity.style.ts",load:()=>fo(()=>import("./unity.style-BUZD1vdX.js"),[])},{entryPath:"@volter/editor-game/contributions/unity.view.ts",load:()=>fo(()=>import("./unity.view--n1Xt50A.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.style.ts",load:()=>fo(()=>import("./unreal.style-Cqf-hEzT.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.view.ts",load:()=>fo(()=>import("./unreal.view-CKSsDgA8.js"),[])},{entryPath:"@volter/editor-game/contributions/canvas/component-board.service.ts",load:()=>fo(()=>import("./component-board.service-aRqXx_hL.js"),__vite__mapDeps([197,198,199,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas/design-time-mount.service.ts",load:()=>fo(()=>import("./design-time-mount.service-CYWk8whR.js"),__vite__mapDeps([200,201,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>fo(()=>import("./component-board.service-e3DqXFbP.js").then(t=>t.c),__vite__mapDeps([202,198,199]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>fo(()=>import("./design-time-mount.service-C-jPEtUV.js"),__vite__mapDeps([203,201,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>fo(()=>import("./react-inspector.service-o6-PRw8z.js"),__vite__mapDeps([204,1,2,3,4,20,21,205,127,206,130,131,207,90,126,128,129,132,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>fo(()=>import("./story-documents.service-IuCs9FoR.js"),__vite__mapDeps([208,209,1,2,3,4,20,21,163,164,210,108,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>fo(()=>import("./camera-runtime.inspector-C3kGIZal.js"),__vite__mapDeps([211,1,2,29,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-board.service.ts",load:()=>fo(()=>import("./component-board.service-BsaSzxqY.js"),__vite__mapDeps([212,198,199,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>fo(()=>import("./component-verbs.command-CTjRTrvO.js"),__vite__mapDeps([213,214,215,134,14,7,8,15,114,19,3,2,4,1,20,21,22,23,112,111,29,133]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>fo(()=>import("./component-verbs.service-DrMc8AK6.js"),__vite__mapDeps([216,215,214,134,14,7,8,15,114,19,3,2,4,1,20,21,22,23,112,111,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>fo(()=>import("./constraints.inspector-bup7b7MV.js"),__vite__mapDeps([217,1,2,29,115,112,19,218,62,63,3,4,20,21,133,134,14,7,8,15,114,22,23,111]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>fo(()=>import("./model-asset-sections.service-CQJHkahR.js"),__vite__mapDeps([219,1,2,29,220,112,19,8,221,114,3,4,20,21,22,23,113,115,111,116,119,222,122,62,63,223]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>fo(()=>import("./reflection-probe-capture.inspector-DfCsQR94.js"),__vite__mapDeps([224,1,2,29,225,62,63,3,4,20,21,133,134,14,7,8,15,114,19,22,23,112,111]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>fo(()=>import("./story-documents.service-0i_8h_3B.js"),__vite__mapDeps([226,1,2,188,3,4,189,20,21,164,227,17,18,19,8,114,22,23,9,7,10,11,12,112,228,229,230,13,170,65,66,67,231,232,85,86,233,129,234,209,163,210,108,235,115,236,128,119,113,111,29,116,131,214,237,132,123,122,62,63]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>fo(()=>import("./three-authoring.service-cV0zOT1n.js"),__vite__mapDeps([238,201,89,90,117,115,112,19,118,106,119,114,3,2,4,1,20,21,22,23,113,111,29,116,8,120,62,63,121,122,84,123,134,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>fo(()=>import("./three-story-capture.service-CMxC0Cuu.js"),__vite__mapDeps([239,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas-story-capture.service.ts",load:()=>fo(()=>import("./canvas-story-capture.service-wxtp-uMy.js"),__vite__mapDeps([240,3,2,4,1,20,21,22,23]))}],Qyr=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>fo(()=>import("./component-contracts.service-uvgs1KbX.js"),__vite__mapDeps([241,237,132,123,3,2,4,1,20,21,22,23]))}],e0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>fo(()=>import("./three-integration.service-DvBW98ZW.js"),__vite__mapDeps([242,243,181,13,7,8,6,9,10,11,12,244,245,112,19,1,2,3,4,169,170,65,66,67,246,133,134,14,15,114,20,21,22,23,111,29,18,115,30,17,230,231]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>fo(()=>import("./animation-mixers.service-DomnndP0.js"),__vite__mapDeps([247,248,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>fo(()=>import("./animation-timeline.utility-BqoUox48.js"),__vite__mapDeps([249,1,2,250,3,4,20,21,22,23]))}],t0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>fo(()=>import("./machines.finder-XiuiCI4a.js"),__vite__mapDeps([251,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>fo(()=>import("./machine.document-BVuE_ug9.js"),__vite__mapDeps([252,1,2,3,4,20,21,22,23]))}];let HY=null;const ROe=new Set;function lee(){return HY}function r0r(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 ROe)n()}function STt(t){return ROe.add(t),()=>ROe.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 Ze,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=!WOe.jitless,A=S&&dCt.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?CEt([],G,J,$,D,t):J):s(J,$):(J.issues.push({expected:"object",code:"invalid_type",input:G,inst:t}),J)}});function qmt(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 _Le=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=>aye(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=>qmt(k,d,t,m)):qmt(S,d,t,m)}});function zmt(t,n,s,c){const d=t.filter(m=>m.issues.length===0);return d.length===1?(n.value=d[0].value,n):(d.length===0?n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:t.map(m=>m.issues.map(g=>Nw(g,c,$S())))}):n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:[],inclusive:!1}),n)}const Vbr=ui("$ZodXor",(t,n)=>{_Le.init(t,n),n.inclusive=!1;const s=n.options.length===1,c=n.options[0]._zod.run;t._zod.parse=(d,m)=>{if(s)return c(d,m);let g=!1;const S=[];for(const k of n.options){const A=k._zod.run({value:d.value,issues:[]},m);A instanceof Promise?(S.push(A),g=!0):S.push(A)}return g?Promise.all(S).then(k=>zmt(k,d,t,m)):zmt(S,d,t,m)}}),Ubr=ui("$ZodDiscriminatedUnion",(t,n)=>{n.inclusive=!1,_Le.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=dee(()=>{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)}}),Jbr=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])=>Vmt(s,k,A)):Vmt(s,m,g)}});function GOe(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=GOe(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=GOe(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 Vmt(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=GOe(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 EEt=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=>vpe(J,c,A))):vpe(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($=>vpe($,c,A))):vpe(J,c,A)}}return g.length?Promise.all(g).then(()=>c):c}});function vpe(t,n,s){t.issues.length&&n.issues.push(...mC(s,t.issues)),n.value[s]=t.value}const Wbr=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"&&pLe.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}}),Hbr=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])=>{Umt(F,D,s,g,d,t,c)})):Umt(k,A,s,g,d,t,c)}return m.length?Promise.all(m).then(()=>s):s}});function Umt(t,n,s,c,d,m,g){t.issues.length&&(Fme.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&&(Fme.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 Gbr=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=>Jmt(k,s))):Jmt(S,s)}return m.length?Promise.all(m).then(()=>s):s}});function Jmt(t,n){t.issues.length&&n.issues.push(...t.issues),n.value.add(t.value)}const Kbr=ui("$ZodEnum",(t,n)=>{vu.init(t,n);const s=uLe(n.entries),c=new Set(s);t._zod.values=c,t._zod.pattern=new RegExp(`^(${s.filter(d=>Fme.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}}),Xbr=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}}),Ybr=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}}),Zbr=ui("$ZodTransform",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new lLe(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 Wmt(t,n){return t.issues.length&&n===void 0?{issues:[],value:void 0}:t}const kEt=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(`^(${aye(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=>Wmt(m,s.value)):Wmt(d,s.value)}return s.value===void 0?s:n.innerType._zod.run(s,c)}}),Qbr=ui("$ZodExactOptional",(t,n)=>{kEt.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)}),e2r=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(`^(${aye(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)}),t2r=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=>Hmt(m,n)):Hmt(d,n)}});function Hmt(t,n){return t.value===void 0&&(t.value=n.defaultValue),t}const r2r=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))}),n2r=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=>Gmt(m,t)):Gmt(d,t)}});function Gmt(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 i2r=ui("$ZodSuccess",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new lLe("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)}}),o2r=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)}}),s2r=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)}),a2r=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=>bpe(g,n.in,c)):bpe(m,n.in,c)}const d=n.in._zod.run(s,c);return d instanceof Promise?d.then(m=>bpe(m,n.out,c)):bpe(d,n.out,c)}});function bpe(t,n,s){return t.issues.length?(t.aborted=!0,t):n._zod.run({value:t.value,issues:t.issues},s)}const AEt=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=>Spe(g,n,c)):Spe(m,n,c)}else{const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>Spe(g,n,c)):Spe(m,n,c)}}});function Spe(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=>xpe(t,m,n.out,s)):xpe(t,d,n.out,s)}else{const d=n.reverseTransform(t.value,t);return d instanceof Promise?d.then(m=>xpe(t,m,n.in,s)):xpe(t,d,n.in,s)}}function xpe(t,n,s,c){return t.issues.length?(t.aborted=!0,t):s._zod.run({value:n,issues:t.issues},c)}const c2r=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(Kmt):Kmt(d)}});function Kmt(t){return t.value=Object.freeze(t.value),t}const l2r=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||pCt.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)}),u2r=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?jmt(t._def.input,c):c,m=Reflect.apply(s,this,d);return t._def.output?jmt(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 Lmt(t._def.input,c):c,m=await Reflect.apply(s,this,d);return t._def.output?await Lmt(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 EEt({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)),f2r=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))}),d2r=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)}),p2r=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=>Xmt(m,s,c,t));Xmt(d,s,c,t)}});function Xmt(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 Ymt;const jhn=Symbol("ZodOutput"),Lhn=Symbol("ZodInput");class _2r{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 m2r(){return new _2r}(Ymt=globalThis).__zod_globalRegistry??(Ymt.__zod_globalRegistry=m2r());const sD=globalThis.__zod_globalRegistry;function h2r(t,n){return new t({type:"string",...Jo(n)})}function Bhn(t,n){return new t({type:"string",coerce:!0,...Jo(n)})}function DEt(t,n){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Jo(n)})}function KOe(t,n){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Jo(n)})}function PEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Jo(n)})}function IEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Jo(n)})}function NEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Jo(n)})}function OEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Jo(n)})}function mLe(t,n){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Jo(n)})}function REt(t,n){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Jo(n)})}function FEt(t,n){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Jo(n)})}function MEt(t,n){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Jo(n)})}function jEt(t,n){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Jo(n)})}function LEt(t,n){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Jo(n)})}function BEt(t,n){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Jo(n)})}function $Et(t,n){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Jo(n)})}function qEt(t,n){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Jo(n)})}function zEt(t,n){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Jo(n)})}function g2r(t,n){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Jo(n)})}function VEt(t,n){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Jo(n)})}function UEt(t,n){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Jo(n)})}function JEt(t,n){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Jo(n)})}function WEt(t,n){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Jo(n)})}function HEt(t,n){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Jo(n)})}function GEt(t,n){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Jo(n)})}const $hn={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function y2r(t,n){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Jo(n)})}function v2r(t,n){return new t({type:"string",format:"date",check:"string_format",...Jo(n)})}function b2r(t,n){return new t({type:"string",format:"time",check:"string_format",precision:null,...Jo(n)})}function S2r(t,n){return new t({type:"string",format:"duration",check:"string_format",...Jo(n)})}function x2r(t,n){return new t({type:"number",checks:[],...Jo(n)})}function qhn(t,n){return new t({type:"number",coerce:!0,checks:[],...Jo(n)})}function w2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Jo(n)})}function T2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Jo(n)})}function C2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Jo(n)})}function E2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Jo(n)})}function k2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Jo(n)})}function A2r(t,n){return new t({type:"boolean",...Jo(n)})}function zhn(t,n){return new t({type:"boolean",coerce:!0,...Jo(n)})}function D2r(t,n){return new t({type:"bigint",...Jo(n)})}function Vhn(t,n){return new t({type:"bigint",coerce:!0,...Jo(n)})}function P2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Jo(n)})}function I2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Jo(n)})}function N2r(t,n){return new t({type:"symbol",...Jo(n)})}function O2r(t,n){return new t({type:"undefined",...Jo(n)})}function R2r(t,n){return new t({type:"null",...Jo(n)})}function F2r(t){return new t({type:"any"})}function M2r(t){return new t({type:"unknown"})}function j2r(t,n){return new t({type:"never",...Jo(n)})}function L2r(t,n){return new t({type:"void",...Jo(n)})}function B2r(t,n){return new t({type:"date",...Jo(n)})}function Uhn(t,n){return new t({type:"date",coerce:!0,...Jo(n)})}function $2r(t,n){return new t({type:"nan",...Jo(n)})}function ZZ(t,n){return new yEt({check:"less_than",...Jo(n),value:t,inclusive:!1})}function XI(t,n){return new yEt({check:"less_than",...Jo(n),value:t,inclusive:!0})}function QZ(t,n){return new vEt({check:"greater_than",...Jo(n),value:t,inclusive:!1})}function qk(t,n){return new vEt({check:"greater_than",...Jo(n),value:t,inclusive:!0})}function Jhn(t){return QZ(0,t)}function Whn(t){return ZZ(0,t)}function Hhn(t){return XI(0,t)}function Ghn(t){return qk(0,t)}function XOe(t,n){return new j1r({check:"multiple_of",...Jo(n),value:t})}function hLe(t,n){return new $1r({check:"max_size",...Jo(n),maximum:t})}function eQ(t,n){return new q1r({check:"min_size",...Jo(n),minimum:t})}function KEt(t,n){return new z1r({check:"size_equals",...Jo(n),size:t})}function XEt(t,n){return new V1r({check:"max_length",...Jo(n),maximum:t})}function jme(t,n){return new U1r({check:"min_length",...Jo(n),minimum:t})}function YEt(t,n){return new J1r({check:"length_equals",...Jo(n),length:t})}function q2r(t,n){return new W1r({check:"string_format",format:"regex",...Jo(n),pattern:t})}function z2r(t){return new H1r({check:"string_format",format:"lowercase",...Jo(t)})}function V2r(t){return new G1r({check:"string_format",format:"uppercase",...Jo(t)})}function U2r(t,n){return new K1r({check:"string_format",format:"includes",...Jo(n),includes:t})}function J2r(t,n){return new X1r({check:"string_format",format:"starts_with",...Jo(n),prefix:t})}function W2r(t,n){return new Y1r({check:"string_format",format:"ends_with",...Jo(n),suffix:t})}function Khn(t,n,s){return new Z1r({check:"property",property:t,schema:n,...Jo(s)})}function H2r(t,n){return new Q1r({check:"mime_type",mime:t,...Jo(n)})}function M$(t){return new ebr({check:"overwrite",tx:t})}function G2r(t){return M$(n=>n.normalize(t))}function K2r(){return M$(t=>t.trim())}function X2r(){return M$(t=>t.toLowerCase())}function Y2r(){return M$(t=>t.toUpperCase())}function Z2r(){return M$(t=>fCt(t))}function Q2r(t,n,s){return new t({type:"array",element:n,...Jo(s)})}function Xhn(t,n,s){return new t({type:"union",options:n,...Jo(s)})}function Yhn(t,n,s){return new t({type:"union",options:n,inclusive:!1,...Jo(s)})}function Zhn(t,n,s,c){return new t({type:"union",options:s,discriminator:n,...Jo(c)})}function Qhn(t,n,s){return new t({type:"intersection",left:n,right:s})}function egn(t,n,s,c){const d=s instanceof vu,m=d?c:s,g=d?s:null;return new t({type:"tuple",items:n,rest:g,...Jo(m)})}function tgn(t,n,s,c){return new t({type:"record",keyType:n,valueType:s,...Jo(c)})}function rgn(t,n,s,c){return new t({type:"map",keyType:n,valueType:s,...Jo(c)})}function ngn(t,n,s){return new t({type:"set",valueType:n,...Jo(s)})}function ign(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 ogn(t,n,s){return new t({type:"enum",entries:n,...Jo(s)})}function sgn(t,n,s){return new t({type:"literal",values:Array.isArray(n)?n:[n],...Jo(s)})}function eSr(t,n){return new t({type:"file",...Jo(n)})}function agn(t,n){return new t({type:"transform",transform:n})}function cgn(t,n){return new t({type:"optional",innerType:n})}function lgn(t,n){return new t({type:"nullable",innerType:n})}function ugn(t,n,s){return new t({type:"default",innerType:n,get defaultValue(){return typeof s=="function"?s():cye(s)}})}function fgn(t,n,s){return new t({type:"nonoptional",innerType:n,...Jo(s)})}function dgn(t,n){return new t({type:"success",innerType:n})}function pgn(t,n,s){return new t({type:"catch",innerType:n,catchValue:typeof s=="function"?s:()=>s})}function _gn(t,n,s){return new t({type:"pipe",in:n,out:s})}function mgn(t,n){return new t({type:"readonly",innerType:n})}function hgn(t,n,s){return new t({type:"template_literal",parts:n,...Jo(s)})}function ggn(t,n){return new t({type:"lazy",getter:n})}function ygn(t,n){return new t({type:"promise",innerType:n})}function tSr(t,n,s){const c=Jo(s);return c.abort??(c.abort=!0),new t({type:"custom",check:"custom",fn:n,...c})}function rSr(t,n,s){return new t({type:"custom",check:"custom",fn:n,...Jo(s)})}function nSr(t){const n=iSr(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 iSr(t,n){const s=new eh({check:"custom",...Jo(n)});return s._zod.check=t,s}function oSr(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 sSr(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 aSr(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??AEt,k=t.Boolean??xEt,A=t.String??hye,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 gye(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 Lme(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 Bme(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 $me(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:qme(n,"input",t.processors),output:qme(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 cSr=(t,n={})=>s=>{const c=Lme({...s,processors:n});return F_(t,c),Bme(c,t),$me(c,t)},qme=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=Lme({...d??{},target:m,io:n,processors:s});return F_(t,g),Bme(g,t),$me(g,t)},lSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ZEt=(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=lSr[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}))])}},QEt=(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)},ekt=(t,n,s,c)=>{s.type="boolean"},tkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},rkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},nkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},ikt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},okt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},skt=(t,n,s,c)=>{s.not={}},akt=(t,n,s,c)=>{},ckt=(t,n,s,c)=>{},lkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},ukt=(t,n,s,c)=>{const d=t._zod.def,m=uLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},fkt=(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},dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},pkt=(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},_kt=(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)},mkt=(t,n,s,c)=>{s.type="boolean"},hkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},gkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},vkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},bkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Skt=(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"]})},xkt=(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)},gLe=(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},wkt=(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},Tkt=(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)},Ckt=(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)}},Ekt=(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"}]},kkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Akt=(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))},Dkt=(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)))},Pkt=(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},Ikt=(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},Nkt=(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},Okt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},yLe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Rkt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},Zmt={string:ZEt,number:QEt,boolean:ekt,bigint:tkt,symbol:rkt,null:nkt,undefined:ikt,void:okt,never:skt,any:akt,unknown:ckt,date:lkt,enum:ukt,literal:fkt,nan:dkt,template_literal:pkt,file:_kt,success:mkt,custom:hkt,function:gkt,transform:ykt,map:vkt,set:bkt,array:Skt,object:xkt,union:gLe,intersection:wkt,tuple:Tkt,record:Ckt,nullable:Ekt,nonoptional:kkt,default:Akt,prefault:Dkt,catch:Pkt,pipe:Ikt,readonly:Nkt,promise:Okt,optional:yLe,lazy:Rkt};function uSr(t,n){if("_idmap"in t){const c=t,d=Lme({...n,processors:Zmt}),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;Bme(d,F),g[A]=$me(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=Lme({...n,processors:Zmt});return F_(t,s),Bme(s,t),$me(s,t)}const Fkt=ui("ZodISODateTime",(t,n)=>{_br.init(t,n),j_.init(t,n)});function Mkt(t){return y2r(Fkt,t)}const jkt=ui("ZodISODate",(t,n)=>{mbr.init(t,n),j_.init(t,n)});function Lkt(t){return v2r(jkt,t)}const Bkt=ui("ZodISOTime",(t,n)=>{hbr.init(t,n),j_.init(t,n)});function $kt(t){return b2r(Bkt,t)}const qkt=ui("ZodISODuration",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function zkt(t){return S2r(qkt,t)}const vgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:jkt,ZodISODateTime:Fkt,ZodISODuration:qkt,ZodISOTime:Bkt,date:Lkt,datetime:Mkt,duration:zkt,time:$kt},Symbol.toStringTag,{value:"Module"})),Vkt=(t,n)=>{ACt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>c1r(t,s)},flatten:{value:s=>a1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,Rme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,Rme,2)}},isEmpty:{get(){return t.issues.length===0}}})},bgn=ui("ZodError",Vkt),Fw=ui("ZodError",Vkt,{Parent:Error}),fSr=fye(Fw),dSr=dye(Fw),pSr=pye(Fw),_Sr=_ye(Fw),mSr=DCt(Fw),hSr=PCt(Fw),gSr=ICt(Fw),ySr=NCt(Fw),vSr=OCt(Fw),bSr=RCt(Fw),SSr=FCt(Fw),xSr=MCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:qme(t,"input"),output:qme(t,"output")}}),t.toJSONSchema=cSr(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)=>fSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>pSr(t,s,c),t.parseAsync=async(s,c)=>dSr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>_Sr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>mSr(t,s,c),t.decode=(s,c)=>hSr(t,s,c),t.encodeAsync=async(s,c)=>gSr(t,s,c),t.decodeAsync=async(s,c)=>ySr(t,s,c),t.safeEncode=(s,c)=>vSr(t,s,c),t.safeDecode=(s,c)=>bSr(t,s,c),t.safeEncodeAsync=async(s,c)=>SSr(t,s,c),t.safeDecodeAsync=async(s,c)=>xSr(t,s,c),t.refine=(s,c)=>t.check(PAt(s,c)),t.superRefine=s=>t.check(IAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Ume(t),t.exactOptional=()=>dAt(t),t.nullable=()=>Jme(t),t.nullish=()=>Ume(Jme(t)),t.nonoptional=s=>yAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>zLe(t,s),t.transform=s=>Wme(t,VLe(s)),t.default=s=>mAt(t,s),t.prefault=s=>gAt(t,s),t.catch=s=>SAt(t,s),t.pipe=s=>Wme(t,s),t.readonly=()=>TAt(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)),vLe=ui("_ZodString",(t,n)=>{hye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ZEt(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(q2r(...c)),t.includes=(...c)=>t.check(U2r(...c)),t.startsWith=(...c)=>t.check(J2r(...c)),t.endsWith=(...c)=>t.check(W2r(...c)),t.min=(...c)=>t.check(jme(...c)),t.max=(...c)=>t.check(XEt(...c)),t.length=(...c)=>t.check(YEt(...c)),t.nonempty=(...c)=>t.check(jme(1,...c)),t.lowercase=c=>t.check(z2r(c)),t.uppercase=c=>t.check(V2r(c)),t.trim=()=>t.check(K2r()),t.normalize=(...c)=>t.check(G2r(...c)),t.toLowerCase=()=>t.check(X2r()),t.toUpperCase=()=>t.check(Y2r()),t.slugify=()=>t.check(Z2r())}),bLe=ui("ZodString",(t,n)=>{hye.init(t,n),vLe.init(t,n),t.email=s=>t.check(DEt(SLe,s)),t.url=s=>t.check(mLe(yye,s)),t.jwt=s=>t.check(GEt(MLe,s)),t.emoji=s=>t.check(REt(xLe,s)),t.guid=s=>t.check(KOe(zme,s)),t.uuid=s=>t.check(PEt(aD,s)),t.uuidv4=s=>t.check(IEt(aD,s)),t.uuidv6=s=>t.check(NEt(aD,s)),t.uuidv7=s=>t.check(OEt(aD,s)),t.nanoid=s=>t.check(FEt(wLe,s)),t.guid=s=>t.check(KOe(zme,s)),t.cuid=s=>t.check(MEt(TLe,s)),t.cuid2=s=>t.check(jEt(CLe,s)),t.ulid=s=>t.check(LEt(ELe,s)),t.base64=s=>t.check(JEt(OLe,s)),t.base64url=s=>t.check(WEt(RLe,s)),t.xid=s=>t.check(BEt(kLe,s)),t.ksuid=s=>t.check($Et(ALe,s)),t.ipv4=s=>t.check(qEt(DLe,s)),t.ipv6=s=>t.check(zEt(PLe,s)),t.cidrv4=s=>t.check(VEt(ILe,s)),t.cidrv6=s=>t.check(UEt(NLe,s)),t.e164=s=>t.check(HEt(FLe,s)),t.datetime=s=>t.check(Mkt(s)),t.date=s=>t.check(Lkt(s)),t.time=s=>t.check($kt(s)),t.duration=s=>t.check(zkt(s))});function bo(t){return h2r(bLe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),vLe.init(t,n)}),SLe=ui("ZodEmail",(t,n)=>{obr.init(t,n),j_.init(t,n)});function wSr(t){return DEt(SLe,t)}const zme=ui("ZodGUID",(t,n)=>{nbr.init(t,n),j_.init(t,n)});function TSr(t){return KOe(zme,t)}const aD=ui("ZodUUID",(t,n)=>{ibr.init(t,n),j_.init(t,n)});function CSr(t){return PEt(aD,t)}function ESr(t){return IEt(aD,t)}function kSr(t){return NEt(aD,t)}function ASr(t){return OEt(aD,t)}const yye=ui("ZodURL",(t,n)=>{sbr.init(t,n),j_.init(t,n)});function DSr(t){return mLe(yye,t)}function PSr(t){return mLe(yye,{protocol:/^https?$/,hostname:tEt,...Jo(t)})}const xLe=ui("ZodEmoji",(t,n)=>{abr.init(t,n),j_.init(t,n)});function ISr(t){return REt(xLe,t)}const wLe=ui("ZodNanoID",(t,n)=>{cbr.init(t,n),j_.init(t,n)});function NSr(t){return FEt(wLe,t)}const TLe=ui("ZodCUID",(t,n)=>{lbr.init(t,n),j_.init(t,n)});function OSr(t){return MEt(TLe,t)}const CLe=ui("ZodCUID2",(t,n)=>{ubr.init(t,n),j_.init(t,n)});function RSr(t){return jEt(CLe,t)}const ELe=ui("ZodULID",(t,n)=>{fbr.init(t,n),j_.init(t,n)});function FSr(t){return LEt(ELe,t)}const kLe=ui("ZodXID",(t,n)=>{dbr.init(t,n),j_.init(t,n)});function MSr(t){return BEt(kLe,t)}const ALe=ui("ZodKSUID",(t,n)=>{pbr.init(t,n),j_.init(t,n)});function jSr(t){return $Et(ALe,t)}const DLe=ui("ZodIPv4",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function LSr(t){return qEt(DLe,t)}const Ukt=ui("ZodMAC",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function BSr(t){return g2r(Ukt,t)}const PLe=ui("ZodIPv6",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function $Sr(t){return zEt(PLe,t)}const ILe=ui("ZodCIDRv4",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function qSr(t){return VEt(ILe,t)}const NLe=ui("ZodCIDRv6",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function zSr(t){return UEt(NLe,t)}const OLe=ui("ZodBase64",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function VSr(t){return JEt(OLe,t)}const RLe=ui("ZodBase64URL",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function USr(t){return WEt(RLe,t)}const FLe=ui("ZodE164",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function JSr(t){return HEt(FLe,t)}const MLe=ui("ZodJWT",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function WSr(t){return GEt(MLe,t)}const mee=ui("ZodCustomStringFormat",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function HSr(t,n,s={}){return gye(mee,t,n,s)}function GSr(t){return gye(mee,"hostname",eEt,t)}function KSr(t){return gye(mee,"hex",hEt,t)}function XSr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=M1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return gye(mee,c,d,n)}const jLe=ui("ZodNumber",(t,n)=>{SEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>QEt(t,c,d),t.gt=(c,d)=>t.check(QZ(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(ZZ(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(YOe(c)),t.safe=c=>t.check(YOe(c)),t.positive=c=>t.check(QZ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(ZZ(0,c)),t.nonpositive=c=>t.check(XI(0,c)),t.multipleOf=(c,d)=>t.check(XOe(c,d)),t.step=(c,d)=>t.check(XOe(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 x2r(jLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Pbr.init(t,n),jLe.init(t,n)});function YOe(t){return w2r(j$,t)}function YSr(t){return T2r(j$,t)}function ZSr(t){return C2r(j$,t)}function QSr(t){return E2r(j$,t)}function exr(t){return k2r(j$,t)}const LLe=ui("ZodBoolean",(t,n)=>{xEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ekt(t,s,c)});function _y(t){return A2r(LLe,t)}const BLe=ui("ZodBigInt",(t,n)=>{wEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>tkt(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(QZ(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(ZZ(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(QZ(BigInt(0),c)),t.negative=c=>t.check(ZZ(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(XOe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function txr(t){return D2r(BLe,t)}const $Le=ui("ZodBigIntFormat",(t,n)=>{Ibr.init(t,n),BLe.init(t,n)});function rxr(t){return P2r($Le,t)}function nxr(t){return I2r($Le,t)}const Jkt=ui("ZodSymbol",(t,n)=>{Nbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>rkt(t,s)});function ixr(t){return N2r(Jkt,t)}const Wkt=ui("ZodUndefined",(t,n)=>{Obr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ikt(t,s)});function oxr(t){return O2r(Wkt,t)}const Hkt=ui("ZodNull",(t,n)=>{Rbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>nkt(t,s,c)});function Gkt(t){return R2r(Hkt,t)}const Kkt=ui("ZodAny",(t,n)=>{Fbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>akt()});function sxr(){return F2r(Kkt)}const Xkt=ui("ZodUnknown",(t,n)=>{Mbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ckt()});function t$(){return M2r(Xkt)}const Ykt=ui("ZodNever",(t,n)=>{jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>skt(t,s,c)});function qLe(t){return j2r(Ykt,t)}const Zkt=ui("ZodVoid",(t,n)=>{Lbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>okt(t,s)});function axr(t){return L2r(Zkt,t)}const Qkt=ui("ZodDate",(t,n)=>{Bbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>lkt(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 cxr(t){return B2r(Qkt,t)}const eAt=ui("ZodArray",(t,n)=>{$br.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check(jme(s,c)),t.nonempty=s=>t.check(jme(1,s)),t.max=(s,c)=>t.check(XEt(s,c)),t.length=(s,c)=>t.check(YEt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return Q2r(eAt,t,n)}function lxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const vye=ui("ZodObject",(t,n)=>{zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(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:qLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>bCt(t,s),t.safeExtend=s=>SCt(t,s),t.merge=s=>xCt(t,s),t.pick=s=>yCt(t,s),t.omit=s=>vCt(t,s),t.partial=(...s)=>wCt(ULe,t,s[0]),t.required=(...s)=>TCt(JLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new vye(s)}function uxr(t,n){return new vye({type:"object",shape:t,catchall:qLe(),...Jo(n)})}function fxr(t,n){return new vye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const bye=ui("ZodUnion",(t,n)=>{_Le.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gLe(t,s,c,d),t.options=n.options});function AR(t,n){return new bye({type:"union",options:t,...Jo(n)})}const tAt=ui("ZodXor",(t,n)=>{bye.init(t,n),Vbr.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gLe(t,s,c,d),t.options=n.options});function dxr(t,n){return new tAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const rAt=ui("ZodDiscriminatedUnion",(t,n)=>{bye.init(t,n),Ubr.init(t,n)});function nAt(t,n,s){return new rAt({type:"union",options:n,discriminator:t,...Jo(s)})}const iAt=ui("ZodIntersection",(t,n)=>{Jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s,c,d)});function zLe(t,n){return new iAt({type:"intersection",left:t,right:n})}const oAt=ui("ZodTuple",(t,n)=>{EEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Vme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new oAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Sye=ui("ZodRecord",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Sye({type:"record",keyType:t,valueType:n,...Jo(s)})}function pxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Sye({type:"record",keyType:c,valueType:n,...Jo(s)})}function _xr(t,n,s){return new Sye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const sAt=ui("ZodMap",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>vkt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(hLe(...s)),t.size=(...s)=>t.check(KEt(...s))});function mxr(t,n,s){return new sAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const aAt=ui("ZodSet",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt(t,s),t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(hLe(...s)),t.size=(...s)=>t.check(KEt(...s))});function hxr(t,n){return new aAt({type:"set",valueType:t,...Jo(n)})}const tQ=ui("ZodEnum",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ukt(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 tQ({...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 tQ({...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 tQ({type:"enum",entries:s,...Jo(n)})}function gxr(t,n){return new tQ({type:"enum",entries:t,...Jo(n)})}const cAt=ui("ZodLiteral",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>fkt(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 Dg(t,n){return new cAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const lAt=ui("ZodFile",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt(t,s,c),t.min=(s,c)=>t.check(eQ(s,c)),t.max=(s,c)=>t.check(hLe(s,c)),t.mime=(s,c)=>t.check(H2r(Array.isArray(s)?s:[s],c))});function yxr(t){return eSr(lAt,t)}const uAt=ui("ZodTransform",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new lLe(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 VLe(t){return new uAt({type:"transform",transform:t})}const ULe=ui("ZodOptional",(t,n)=>{kEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>yLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Ume(t){return new ULe({type:"optional",innerType:t})}const fAt=ui("ZodExactOptional",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>yLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function dAt(t){return new fAt({type:"optional",innerType:t})}const pAt=ui("ZodNullable",(t,n)=>{e2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Jme(t){return new pAt({type:"nullable",innerType:t})}function vxr(t){return Ume(Jme(t))}const _At=ui("ZodDefault",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function mAt(t,n){return new _At({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():cye(n)}})}const hAt=ui("ZodPrefault",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function gAt(t,n){return new hAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():cye(n)}})}const JLe=ui("ZodNonOptional",(t,n)=>{n2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function yAt(t,n){return new JLe({type:"nonoptional",innerType:t,...Jo(n)})}const vAt=ui("ZodSuccess",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function bxr(t){return new vAt({type:"success",innerType:t})}const bAt=ui("ZodCatch",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function SAt(t,n){return new bAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const xAt=ui("ZodNaN",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s)});function Sxr(t){return $2r(xAt,t)}const WLe=ui("ZodPipe",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s,c,d),t.in=n.in,t.out=n.out});function Wme(t,n){return new WLe({type:"pipe",in:t,out:n})}const HLe=ui("ZodCodec",(t,n)=>{WLe.init(t,n),AEt.init(t,n)});function xxr(t,n,s){return new HLe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const wAt=ui("ZodReadonly",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function TAt(t){return new wAt({type:"readonly",innerType:t})}const CAt=ui("ZodTemplateLiteral",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s,c)});function wxr(t,n){return new CAt({type:"template_literal",parts:t,...Jo(n)})}const EAt=ui("ZodLazy",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function kAt(t){return new EAt({type:"lazy",getter:t})}const AAt=ui("ZodPromise",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Txr(t){return new AAt({type:"promise",innerType:t})}const DAt=ui("ZodFunction",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt(t,s)});function Qmt(t){return new DAt({type:"function",input:Array.isArray(t?.input)?Vme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const xye=ui("ZodCustom",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt(t,s)});function Cxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function YI(t,n){return tSr(xye,t??(()=>!0),n)}function PAt(t,n={}){return rSr(xye,t,n)}function IAt(t){return nSr(t)}const Exr=oSr,kxr=sSr;function Axr(t,n={}){const s=new xye({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 Dxr=(...t)=>aSr({Codec:HLe,Boolean:LLe,String:bLe},...t);function Pxr(t){const n=kAt(()=>AR([bo(t),fu(),_y(),Gkt(),Gd(n),wD(bo(),n)]));return n}function NAt(t,n){return Wme(VLe(t),n)}const Sgn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:Kkt,ZodArray:eAt,ZodBase64:OLe,ZodBase64URL:RLe,ZodBigInt:BLe,ZodBigIntFormat:$Le,ZodBoolean:LLe,ZodCIDRv4:ILe,ZodCIDRv6:NLe,ZodCUID:TLe,ZodCUID2:CLe,ZodCatch:bAt,ZodCodec:HLe,ZodCustom:xye,ZodCustomStringFormat:mee,ZodDate:Qkt,ZodDefault:_At,ZodDiscriminatedUnion:rAt,ZodE164:FLe,ZodEmail:SLe,ZodEmoji:xLe,ZodEnum:tQ,ZodExactOptional:fAt,ZodFile:lAt,ZodFunction:DAt,ZodGUID:zme,ZodIPv4:DLe,ZodIPv6:PLe,ZodIntersection:iAt,ZodJWT:MLe,ZodKSUID:ALe,ZodLazy:EAt,ZodLiteral:cAt,ZodMAC:Ukt,ZodMap:sAt,ZodNaN:xAt,ZodNanoID:wLe,ZodNever:Ykt,ZodNonOptional:JLe,ZodNull:Hkt,ZodNullable:pAt,ZodNumber:jLe,ZodNumberFormat:j$,ZodObject:vye,ZodOptional:ULe,ZodPipe:WLe,ZodPrefault:hAt,ZodPromise:AAt,ZodReadonly:wAt,ZodRecord:Sye,ZodSet:aAt,ZodString:bLe,ZodStringFormat:j_,ZodSuccess:vAt,ZodSymbol:Jkt,ZodTemplateLiteral:CAt,ZodTransform:uAt,ZodTuple:oAt,ZodType:Lu,ZodULID:ELe,ZodURL:yye,ZodUUID:aD,ZodUndefined:Wkt,ZodUnion:bye,ZodUnknown:Xkt,ZodVoid:Zkt,ZodXID:kLe,ZodXor:tAt,_ZodString:vLe,_default:mAt,_function:Qmt,any:sxr,array:Gd,base64:VSr,base64url:USr,bigint:txr,boolean:_y,catch:SAt,check:Cxr,cidrv4:qSr,cidrv6:zSr,codec:xxr,cuid:OSr,cuid2:RSr,custom:YI,date:cxr,describe:Exr,discriminatedUnion:nAt,e164:JSr,email:wSr,emoji:ISr,enum:ed,exactOptional:dAt,file:yxr,float32:YSr,float64:ZSr,function:Qmt,guid:TSr,hash:XSr,hex:KSr,hostname:GSr,httpUrl:PSr,instanceof:Axr,int:YOe,int32:QSr,int64:rxr,intersection:zLe,ipv4:LSr,ipv6:$Sr,json:Pxr,jwt:WSr,keyof:lxr,ksuid:jSr,lazy:kAt,literal:Dg,looseObject:fxr,looseRecord:_xr,mac:BSr,map:mxr,meta:kxr,nan:Sxr,nanoid:NSr,nativeEnum:gxr,never:qLe,nonoptional:yAt,null:Gkt,nullable:Jme,nullish:vxr,number:fu,object:Pa,optional:Ume,partialRecord:pxr,pipe:Wme,prefault:gAt,preprocess:NAt,promise:Txr,readonly:TAt,record:wD,refine:PAt,set:hxr,strictObject:uxr,string:bo,stringFormat:HSr,stringbool:Dxr,success:bxr,superRefine:IAt,symbol:ixr,templateLiteral:wxr,transform:VLe,tuple:Vme,uint32:exr,uint64:nxr,ulid:FSr,undefined:oxr,union:AR,unknown:t$,url:DSr,uuid:CSr,uuidv4:ESr,uuidv6:kSr,uuidv7:ASr,void:axr,xid:MSr,xor:dxr},Symbol.toStringTag,{value:"Module"})),eht={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 xgn(t){$S({customError:t})}function wgn(){return $S().customError}var tht;tht||(tht={});const rht=ed(["mock","live"]),Ixr=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()}),Nxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Oxr=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()}),Rxr=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()}),Fxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Mxr=Pa({name:bo().min(1),verified:_y(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),jxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Mxr).max(50)}),Lxr=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 Bxr=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()}))}),$xr=nAt("authenticated",[Pa({authenticated:Dg(!1),backend:rht}),Pa({authenticated:Dg(!0),backend:rht,user:Fxr,organizations:Gd(jxr).max(100).optional(),plan:Ixr,credits:Nxr,spendPolicy:Oxr,alerts:Gd(Rxr).max(100).optional(),entitlements:Pa({generation:_y(),dailyJobs:fu().int().positive().optional()})})]),qxr=ed(["auto","mock","managed","byok"]),OAt=ed(["fal","tripo","worldlabs","openrouter"]),zxr=Pa({enabled:_y(),provider:Dg("openrouter"),model:bo().trim().min(1).max(256)}),Vxr=ed(["environment","system","session","none"]),Uxr=Pa({provider:OAt,label:bo().min(1),environmentVariable:bo().min(1),configured:_y(),source:Vxr,editable:_y(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),Jxr=Pa({provider:OAt,ok:Dg(!0),testedAt:bo().datetime()});function Wxr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const wye=zLe($xr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Dg(!0),managed:_y(),byok:_y(),byokProviders:Gd(bo().min(1))}),preferredRoute:qxr,providerCredentials:Gd(Uxr),codingInference:zxr}));function Hxr(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(Hxr(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 nht="volter.collaboration.participant.v1",Gxr="volter.collaboration.remote-share.v1",ZOe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function Kxr(){if(ZOe?.participantId)return ZOe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(nht);if(n)return n;globalThis.localStorage?.setItem(nht,t)}catch{}return t}const RAt=Kxr(),L$=(()=>{try{return globalThis.localStorage?.getItem(Gxr)==="1"}catch{return!1}})(),Xxr=ZOe?.displayName||"Local editor",Yxr=Symbol.for("volter.collaboration.revision"),QOe=globalThis[Yxr]??={value:0};function FAt(t){Number.isInteger(t)&&t>=QOe.value&&(QOe.value=t)}function Dw(){return{participantId:RAt,expectedRevision:QOe.value}}const Zxr={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$=Zxr,MAt=0,eRe=null;const tRe=new Set;function lR(t,n=null){if(!(eRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,eRe=n,MAt++;for(const s of tRe)s()}}async function jAt(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 wye.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 jAt(c,`${n} ${t} failed`);return lR(d),d}function GLe(){return r$}function KLe(){return Wxr(r$)}function cN(){return MAt}function wpe(){return eRe}function Tye(t){return tRe.add(t),()=>tRe.delete(t)}async function iht(){try{const t=await jAt(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 Qxr=t=>NC("/__editor/account/mock-session","POST",{email:t}),ewr=t=>NC("/__editor/account/twin-session","POST",{email:t}),twr=()=>NC("/__editor/account/session","DELETE"),rwr=t=>NC("/__editor/account/spend-policy","PUT",t),nwr=()=>NC("/__editor/account/alerts/read","POST"),iwr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),owr=t=>NC("/__editor/account/coding-inference","PUT",t);async function swr(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 awr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),cwr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function lwr(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 Jxr.parse(s)}const oht=t=>NC("/__editor/account/plan","PUT",{action:t});async function LAt(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(wye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const uwr=t=>LAt("/__editor/account/checkout",{plan:t}),fwr=t=>LAt("/__editor/account/credits",{packId:t});async function dwr(){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 Lxr.array().parse(n.entries??[])}async function pwr(){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 Bxr.parse(n)}async function _wr(){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 mwr(){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 hwr(){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 gwr(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(wye.parse(s.account)),!0}async function ywr(){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 vwr(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(wye.parse(s.account)),!0}function bwr(){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))):iht().catch(()=>{});const n=window.setInterval(()=>void iht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function BAt(t){return t?qAt(t)?null:t:null}function Swr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function $At(t){return t&&qAt(t)?t:null}function qAt(t){return t.keyedBy==="display"}const Tgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:$At,nodeKeyedPhysics:BAt,physicsOwnerOf:Swr},Symbol.toStringTag,{value:"Module"})),xwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},XLe=Object.keys(xwr);function wwr(){const t={};for(const n of XLe)t[n]=0;return t}const Twr={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},YLe=Object.keys(Twr);function Cwr(t){const n={};for(const s of YLe)n[s]=t[s]!==void 0;return n}const Cgn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:YLe,WRITE_ANCHOR_KINDS:XLe,emptyWriteAnchorKindCounts:wwr,measureAuthoringProviders:Cwr},Symbol.toStringTag,{value:"Module"})),Ewr=["claim","shape","operation","effect","round-trip"],Hme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function zAt(t,n){return Hme[t]>=Hme[n]}function rQ(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||Hme[g.stage]>=Hme[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}:zAt(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 VAt{#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 rQ({...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 Pp(){return t=>t}function kwr(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(kwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Gme(t){const n=rQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=rQ({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 Egn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:Ewr,SeamEvidenceLedger:VAt,defineSeamShape:Pp,gradeSeamCarrier:Gme,gradeSeamEvidence:rQ,inspectSeamShape:vB,seamStageAtLeast:zAt},Symbol.toStringTag,{value:"Module"})),XY=Pp()({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"}}),rRe=Pp()({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"}}),UAt=Pp()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),JAt=Pp()({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"}}),WAt=Pp()({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"}}),HAt=Pp()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),GAt=Pp()({links:{optional:!1,kind:"function",required:"operation"}}),KAt=Pp()({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"}}),XAt=Pp()({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"}}),YAt=Pp()({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"}}),ZAt=Pp()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),QAt=Pp()({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"}}),e3t=Pp()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),t3t=Pp()({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"}}),r3t=Pp()({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"}}),n3t=Pp()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),i3t=Pp()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),o3t=Pp()({resolve:{optional:!1,kind:"function",required:"operation"}}),s3t=Pp()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),nRe={selection:UAt,transforms:JAt,inspector:WAt,assetSubject:HAt,related:GAt,instances:KAt,structure:XAt,persistence:YAt,pickable:ZAt,rects:t3t,boxEdit:r3t,text:n3t,colorSample:i3t,stories:QAt,truth:o3t,spatialHandles:s3t,assetDrop:e3t},kgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:e3t,ASSET_SUBJECT_PROVIDER_SHAPE:HAt,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:nRe,BOX_EDIT_PROVIDER_SHAPE:r3t,COLOR_SAMPLE_PROVIDER_SHAPE:i3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:KAt,HIERARCHY_PROVIDER_SHAPE:rRe,INSPECTOR_PROVIDER_SHAPE:WAt,PERSISTENCE_PROVIDER_SHAPE:YAt,PICK_PROVIDER_SHAPE:ZAt,RECT_PROVIDER_SHAPE:t3t,RELATED_SUBJECTS_PROVIDER_SHAPE:GAt,SELECTION_PROVIDER_SHAPE:UAt,SPATIAL_HANDLES_PROVIDER_SHAPE:s3t,STORIES_PROVIDER_SHAPE:QAt,STRUCTURE_PROVIDER_SHAPE:XAt,TEXT_PROVIDER_SHAPE:n3t,TRANSFORM_PROVIDER_SHAPE:JAt,TRUTH_PROVIDER_SHAPE:o3t},Symbol.toStringTag,{value:"Module"})),iRe=Pp()({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"}}),a3t=Pp()({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"}}),c3t=Pp()({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"}}),l3t=Pp()({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"}}),u3t=Pp()({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"}}),f3t=Pp()({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"}}),d3t=Pp()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),p3t=Pp()({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"}}),_3t=Pp()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),m3t={networking:l3t,navigation:u3t,audio:f3t,camera:d3t,debug:p3t,renderDebug:_3t},Agn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:f3t,CAMERA_ADAPTER_SHAPE:d3t,DEBUG_ADAPTER_SHAPE:p3t,NAVIGATION_ADAPTER_SHAPE:u3t,NETWORKING_ADAPTER_SHAPE:l3t,PHYSICS_2D_ADAPTER_SHAPE:c3t,PHYSICS_ADAPTER_SHAPE:a3t,RENDER_DEBUG_ADAPTER_SHAPE:_3t,SYSTEM_ADAPTERS_SHAPE:iRe,SYSTEM_PROVIDER_SHAPES:m3t},Symbol.toStringTag,{value:"Module"})),ZLe=new VAt;function Awr(t){ZLe.record(t)}const sht=new WeakMap;let Dwr=1;function h3t(t){const n=sht.get(t);if(n)return n;const s=`system-${Dwr++}`;return sht.set(t,s),s}function Pwr(t){const n=t.epoch??h3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?$At(t.adapter)?c3t:a3t:m3t[t.slot],m=[...vB({prefix:"system",value:c,shape:iRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...ZLe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Gme({seam:s,subject:t.subject,epoch:n,required:iRe[t.slot].required,receipts:m,shape:d})}let qS={},nQ=null,QLe=null;const Kme=new Set,Xme=new Set,oRe=new Set;let eBe=0;function sRe(){for(const t of oRe)t()}function Yme(t){if(t!==Eye())for(const n of Kme)n()}function Zme(t,n){const s=Aye();if(!(t===kye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){eBe++;for(const c of Xme)c()}}const LS=new Map;let b_e=null,g3t=0;const aRe=new Set,tBe="";function y3t(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=Pwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function ZI(){return b_e!==null&&LS.has(b_e)?b_e:LS.keys().next().value??null}function Qme(){g3t++;for(const t of aRe)t()}function Iwr(t){const n=ZI();if(b_e=t,n!==ZI()){Qme(),eBe++;for(const s of Kme)s();for(const s of Xme)s()}}function Dgn(){return ZI()}function Nwr(t){return aRe.add(t),()=>aRe.delete(t)}function Pgn(){return g3t}function Cye(){const t=ZI();return(t===null?void 0:LS.get(t))??qS}function Owr(t,n=tBe){const s=ZI(),c=Eye(),d=kye(),m=Aye();if(t){y3t(t,n),LS.set(n,t),qS=t,Yme(c),Zme(d,m),sRe(),s!==ZI()&&Qme();return}LS.delete(n),qS=LS.values().next().value??{},Yme(c),Zme(d,m),sRe(),s!==ZI()&&Qme()}function Rwr(){for(const t of[...LS.keys()])Owr(null,t);Iwr(null)}function Ign(t,n=tBe){const s=Eye(),c=kye(),d=Aye(),m=LS.get(n);y3t(t,n),LS.set(n,t),qS===m&&(qS=t),Yme(s),Zme(c,d),sRe(),ZI()===n&&Qme()}function Ngn(){return qS}function Fwr(t){return oRe.add(t),()=>oRe.delete(t)}function Mwr(){return[...LS.keys()]}function aht(t){const n=t.filter(d=>d!==tBe),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 cht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function jwr(t){const n=Mwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new cht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${aht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new cht(`${n.length} instances are live (${aht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function Ogn(){return BAt(qS.physics)}function Lwr(){return qS.camera??null}function Eye(){return qS.networking??QLe??null}function Bwr(){return Cye().networking??QLe??null}function $wr(t){return Kme.add(t),()=>Kme.delete(t)}function Rgn(t){const n=Eye();QLe=t,Yme(n)}function Fgn(){return qS.debug??null}function Mgn(t){const n=kye(),s=Aye();nQ=t,Zme(n,s)}function kye(){return qS.audio??nQ}function qwr(){return Cye().audio??nQ}function zwr(t){return Xme.add(t),()=>Xme.delete(t)}function Vwr(){return eBe}function Aye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&nQ&&t.add(nQ),[...t]}function Uwr(){return qS.renderDebug??null}function jgn(){return Cye().renderDebug??null}let v3t=null;const cRe=new Set;function Lgn(t){v3t=t;for(const n of cRe)n()}function Dye(){return v3t?.()??null}function Pye(t){cRe.add(t);const n=Nwr(t);return()=>{cRe.delete(t),n()}}function lN(){const t=Dye();return t?`play:${t.instanceId}`:"stopped"}function Iye(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=[],Jwr=0,b3t=0;const lRe=new Set;function lht(){b3t++;for(const t of lRe)t()}function S3t(t){return lRe.add(t),()=>{lRe.delete(t)}}function uht(){return b3t}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:Jwr++};return xO=[...xO,n],lht(),()=>{xO.includes(n)&&(xO=xO.filter(s=>s!==n),lht())}}function uRe(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 S_e=null,x3t=0;const fRe=new Set;function fht(){x3t++;for(const t of fRe)t()}function w3t(t){return fRe.add(t),()=>fRe.delete(t)}function dRe(){return x3t}function rBe(){return S_e}function Wwr(t){const n=Symbol(t.documentId);return S_e={...t,token:n},fht(),()=>{S_e?.token===n&&(S_e=null,fht())}}function Hwr(){Ze.useSyncExternalStore(w3t,dRe);const t=rBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const Gwr=Iye();function Kwr(){Gwr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:Hwr}))})}Kwr();let bB=null,T3t=0;const pRe=new Set;function dht(){T3t+=1;for(const t of pRe)t()}function Xwr(t){return pRe.add(t),()=>{pRe.delete(t)}}function pht(){return T3t}function Ywr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},dht(),()=>{bB?.token===s&&(bB=null,dht())}}function _Re(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const uN=new Map,mRe=new Map;function C3t(){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"&&C3t()});let Nc=null,nBe=null;function iBe(){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 E3t(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 Zwr(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 Qwr(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=Zwr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=eTr({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:nBe}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Tpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function _ht(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 eTr(t){return[Tpe("workspace-sync",t.workspaceSyncMs),Tpe("reveal-schedule",t.revealScheduleMs),_ht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),_ht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Tpe("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),Tpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function Bgn(t,n=Date.now()){const s=(mRe.get(t)??0)+1;mRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:Qwr(d,n)};return Nc=null,uN.set(t,m),hht(),mht(),m}return uN.set(t,c),hht(),mht(),c}let hRe=new Set;const gRe=new Set;function mht(){C3t();for(const t of gRe)t()}function tTr(t){return gRe.add(t),()=>gRe.delete(t)}function hht(){uN.size!==0&&k3t()}function k3t(){const t=hRe;hRe=new Set;for(const n of t)n()}let ght=!1;function rTr(){ght||typeof document>"u"||(ght=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&k3t()}))}function Nye(){return uN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(rTr(),new Promise(t=>hRe.add(t)))}function nTr(){return[...uN.values()]}function iTr(t){iBe()&&(Nc=E3t(t,Date.now(),{}))}function $gn(t,n={}){if(!iBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=E3t(t,s,n),Nc.boardBuildStartedAtMs=s}function qgn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function zgn(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 Vgn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function Ugn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function Jgn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function Wgn(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 Hgn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function Ggn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function Kgn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function Xgn(t){Nc&&Nc.stories.push(t)}function Ygn(){return Nc?.documentId??null}function oTr(t){iBe()&&(nBe=t)}function sTr(){uN.clear(),mRe.clear(),Nc=null,nBe=null}const aTr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,n2=null,iQ=null,uR=null;function yht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let A3t=0;const yRe=new Set,x5e=new Set,oBe=new Map,XO=new Map;function wC(){A3t++;for(const t of yRe)t()}function i2(t){return yRe.add(t),()=>{yRe.delete(t)}}function K1(){return A3t}function l0(){return hp}function e_(){return n2}function vRe(){return iQ}function cTr(t,n){X0(t)&&iQ!==n&&(iQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===n2)??null}function oQ(t){if(t===n2)return;t&&iTr(t);const n=hp.find(c=>c.descriptor.id===n2);n2=t,iQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function lTr(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(lTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||n2===null)&&oQ(t.id),s&&yht(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&&n2!==t.id&&(oQ(t.id),m=!0),m&&wC(),s&&yht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(n2!==t&&(oQ(t),wC()),!0):!1}function D3t(){uR=null}function uTr(t){if(X0(t)){uR=null;return}uR=t}function EN(t,n={}){if(x5e.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;x5e.add(t);try{if(n2===t){const m=s>0?hp[s-1]:hp[s+1]??null;oQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),oBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{x5e.delete(t)}}function P3t(){if(hp.length===0&&n2===null)return;const t=hp;oQ(null),hp=[],iQ=null,zk=null,oBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function fTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function Zgn(t){XO.has(t)&&wC()}async function dTr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=oBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function pTr(){return n2?dTr(n2):Promise.resolve(null)}function Qgn(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 I3t(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 sBe(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 Oye(){return n2?sBe(n2):null}const _Tr={adapter:null,nodeId:null};function mTr(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 aBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ze.useEffect(()=>{if(n)return Wwr({documentId:t,title:c,type:s,...m?{status:m}:{}})},[n,t,m,c,s]);const S=Ze.useRef(g);S.current=g,Ze.useEffect(()=>{if(n)return fTr(t,()=>S.current?.()??_Tr)},[n,t]);const k={id:t,title:c,kindLabel:s,...m?{note:{text:m,testId:"asset-editor-status"}}:{},sections:d??[]},A=Ze.useRef(k);A.current=k;const F=mTr(k);return Ze.useEffect(()=>{if(n)return Ywr(t,()=>A.current)},[n,t,F]),null}function hTr({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(aBe,{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 gTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:hTr,AssetEditorSubject:aBe},Symbol.toStringTag,{value:"Module"})),x_e=new Map,bRe=new Set;function vht(){for(const t of bRe)t()}function eyn(t){const n=Object.entries(t);for(const[s,c]of n)x_e.set(s,c);return vht(),()=>{for(const[s,c]of n)x_e.get(s)===c&&x_e.delete(s);vht()}}function yTr(t){return x_e.get(t)??null}function vTr(t){return bRe.add(t),()=>{bRe.delete(t)}}function bTr(t){return q.jsx(aBe,{...t})}const bht=new Map;function STr(t){const n=bht.get(t);if(n)return n;function s(c){const d=Ze.useCallback(()=>yTr(t),[]),m=Ze.useSyncExternalStore(vTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,bht.set(t,s),s}const cBe=new Proxy(Object.freeze({AssetDocument:bTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):STr(n)}}),Sht=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)"}}),xTr=["classic","glass"],wTr=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 ehe=null;const the=new Set;function TTr(){return ehe??=[...wTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ehe}function CTr(t){return the.add(t),()=>the.delete(t)}function ETr(t){if(Rye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),ehe=null;for(const n of the)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),ehe=null;for(const n of the)n()}}}function Rye(t){return typeof t=="string"&&(xTr.includes(t)||SB.has(t))}function kTr(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??Sht.shape,elevation:d?.elevation??Sht.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 ATr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},DTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Cpe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function N3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Cpe(t),alignItems:n?ATr[n]:void 0,justifyContent:s?DTr[s]:void 0,padding:Cpe(c),paddingInline:Cpe(d),paddingBlock:Cpe(m),...g}}function hee(t,n){return n?`${t} ${n}`:t}function O3t({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-stack",t),style:N3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-inline",t),style:N3t(n)})}function tyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:hee("volter-spacer",t)})}function PTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:hee("volter-divider",n)})}function ITr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:hee("volter-actions",n),gap:2,align:"center",children:t})}function R3t(t,n){return n?`${t} ${n}`:t}const _p=Ze.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:R3t("volter-text",g)})});function ryn({className:t,...n}){return q.jsx("kbd",{...n,className:R3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function SRe({labelledBy:t,onDismiss:n,size:s="default",variant:c="default",className:d,...m}){const[g]=Ze.useState(()=>typeof document>"u"?null:document.querySelector(".volter-editor-theme")),S=Ze.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"}}),MS.createPortal(k,g)]}):k}function xRe({titleId:t,title:n,description:s}){return q.jsxs(O3t,{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 F3t({className:t,...n}){return q.jsx(O3t,{...n,className:B$("volter-dialog-body",t)})}function wRe({children:t,className:n,...s}){return q.jsx(ITr,{...s,className:B$("volter-dialog-footer",n),children:t})}function nyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function iyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function oyn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function syn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function lBe(t,n){return n?`${t} ${n}`:t}function NTr({className:t,...n}){return q.jsx("div",{...n,className:lBe("volter-field-group",t)})}function w_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:lBe("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 ayn({className:t,...n}){return q.jsx("label",{...n,className:lBe("volter-field-label",t)})}const cyn=Ze.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 OTr({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 RTr({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 lyn({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 uyn=Ze.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function fyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function xht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function dyn({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 M3t(t,n){return n?`${t} ${n}`:t}const pyn=Ze.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:M3t("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()}})}),_yn=Ze.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:M3t("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 gee(t,n){return n?`${t} ${n}`:t}const n$=Ze.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:gee("volter-toolbar",d)})});function wht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-toolbar-group",t)})}function Tht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:gee("volter-toolbar-divider",t.className)})}function myn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:gee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function hyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-split-button",t)})}function j3t(t,n){return n?`${t} ${n}`:t}const gyn=Ze.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:j3t("volter-tree",s)})}),yyn=Ze.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:j3t("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 L3t(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 Fye(t,n){return n?`${t} ${n}`:t}function TRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function FTr(t){TRe(t)[0]?.focus()}const fN=Ze.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ze.useRef(null);return Ze.useImperativeHandle(k,()=>A.current),Ze.useEffect(()=>{c&&TRe(A.current)[0]?.focus()},[c]),Ze.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!A.current?.contains(J)&&!d?.current?.contains(J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:Fye("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=TRe(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=Ze.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:Fye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:Fye("volter-menu-separator",t.className)})}const uBe=Ze.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:Fye("volter-menu-trigger",n)})});function rhe({children:t}){const n=Ze.useRef(null),[s,c]=Ze.useState(null),d=Ze.useId();return Ze.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?MS.createPortal(q.jsx("div",{"data-volter-portal-content":d,style:{display:"contents"},children:t}),s):null]})}function fBe({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]=Ze.useState(null),[J,$]=Ze.useState(null),G=Ze.useRef(null),se=Ze.useRef(!0),pe=Ze.useRef(!1),ue=Ze.useCallback(()=>{const De=t.current;if(!De||!F)return;const Pe=De.getBoundingClientRect(),be=F.getBoundingClientRect(),Te=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},$e=m?L3t({...Te,width:be.width,height:be.height}):Te,bt=G.current;bt?.left===$e.left&&bt.top===$e.top||(G.current=$e,$($e))},[n,t,m,d,F,s]);Ze.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 Te=se.current&&F.contains(document.activeElement);window.removeEventListener("resize",ue),document.removeEventListener("scroll",ue,!0),cancelAnimationFrame(Pe),X?.disconnect(),Te&&queueMicrotask(()=>t.current?.focus())}},[t,F,ue]),Ze.useLayoutEffect(()=>{!c||pe.current||!F||!J||(pe.current=!0,FTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(rhe,{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 vyn({label:t,children:n,gap:s=0,...c}){const[d,m]=Ze.useState(!1),g=Ze.useRef(null),S=Ze.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(fBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ze.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=Ze.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"},Cht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},MTr="#579EFF",jTr="rgba(87,158,255,0.15)",w5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},dBe="#d8dee9",pBe="rgba(216,222,233,0.18)",B3t="#FF6B6B",$3t="#e0a030",q3t="#4caf50",z3t="rgba(76,175,80,0.15)",V3t="rgba(255,107,107,0.15)",U3t="rgba(224,160,48,0.12)",J3t="rgba(255,107,107,0.06)",W3t="rgba(0,0,0,0.5)",H3t="#ff79c6",G3t="rgba(255,121,198,0.08)",K3t="#22b8d6",Mye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',jye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',T5e={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)"},_Be={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)"},nhe={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)",Syn="var(--volter-accent-muted)",xyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},T_e="var(--volter-danger)",wyn="var(--volter-warn)",Tyn="var(--volter-success)",Cyn="var(--volter-success-muted)",Eyn="var(--volter-danger-muted)",kyn="var(--volter-warn-muted)",Ayn="var(--volter-danger-faint)",Dyn="var(--volter-scrim)",Pyn="var(--volter-dynamic)",Iyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},X3t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},mBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Zp(t){return{control:{...LTr,...t.density?.control},font:{...$Tr,...t.density?.font},icon:{...BTr,...t.density?.icon},chrome:{...X3t,...t.density?.chrome}}}const LTr={compact:20,default:24,comfortable:28},C5e={resting:1,active:2},BTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},$Tr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},C_e={regular:400,semibold:600,bold:700},Epe={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"}},Nyn="var(--volter-font-sans)",Oyn="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},sQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},Ryn={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)"},Eht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},Fyn={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)"}},Myn="var(--volter-focus-ring)",qTr=["outliner","properties"],Lye=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:Cht[1],strong:Cht[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:MTr,muted:jTr},semantic:{danger:B3t,dangerMuted:V3t,dangerFaint:J3t,warning:$3t,warningMuted:U3t,success:q3t,successMuted:z3t,dynamic:H3t,dynamicMuted:G3t,instance:K3t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:W3t},typography:{sans:Mye,mono:jye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:T5e.sm,medium:T5e.md,large:T5e.lg}},zTr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:w5e[1],muted:w5e[2],dim:w5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:dBe,muted:pBe}}},VTr={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:Mye,mono:jye},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)"}},CRe={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:dBe,muted:pBe},semantic:{danger:B3t,dangerMuted:V3t,dangerFaint:J3t,warning:$3t,warningMuted:U3t,success:q3t,successMuted:z3t,dynamic:H3t,dynamicMuted:G3t,instance:K3t},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:Mye,mono:jye},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}},UTr=(()=>{const{treatment:t,...n}=CRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...CRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:W3t}}})(),ERe={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:dBe,muted:pBe},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:Mye,mono:jye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},JTr=(()=>{const{treatment:t,...n}=ERe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...ERe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),Y3t={"graphite-dark":i$,"graphite-neutral":zTr,"midnight-high-contrast":VTr,"glass-dark":CRe,"glass-dark-lite":UTr,"liquid-glass":ERe,"liquid-glass-lite":JTr};function WTr(t){return typeof t=="string"&&Object.hasOwn(Y3t,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 HTr(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 GTr(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 kht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Aht(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 kRe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function KTr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function XTr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function YTr(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 ZTr=.6,QTr=.5;function ihe(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/ZTr).toFixed(3)))})`}function Z3t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ihe(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 eCr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ihe(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function tCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${ihe(.28,n)}`),c.push(`inset 0 -1px 1px ${ihe(.1,n)}`)),s>0){const d=m=>`${Number((m*s/QTr).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 rCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function nCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function iCr(t){return t?"17px":"var(--volter-radius-md)"}function oCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function sCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function aCr(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 Bye(t){return q$(t)}function cCr(t){return Bye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function Q3t(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 e4t(t){if(!Q3t(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 lCr(t){return Bye(t)?"var(--volter-content-primary)":Q3t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function uCr(t){return Bye(t)?"color-mix(in srgb, currentColor 30%, transparent)":e4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function fCr(t){return Bye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function dCr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function pCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":aCr(t,.82)??"var(--volter-accent)"}function _Cr(t){const n=t?.edgeSpecular??0;return n<=0?"none":Z3t({...t,edgeSpecular:n*.4})}function mCr(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 t4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function r4t(t){return t4t(t?.textShadowOpacity??0)}function hCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:t4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??kRe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:r4t(t.treatment),frostBg:kRe(t.treatment)}}function gCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":vCr(t.color.surface.chrome,.9):t.color.surface.chrome}function yCr(t){return t.color.surface.panel}function vCr(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 Dht(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 bCr(t){return t.color.boundary.area??t.color.boundary.default}function SCr(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 xCr(t){const n=Zp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function wCr(t){const n=hCr(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":GTr(t.treatment),"--volter-surface-sticky":kht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":kht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Aht(t.treatment),"--volter-content-frost-filter":Aht(t.treatment),"--volter-content-frost-bg":kRe(t.treatment),"--volter-input-surface":KTr(s),"--volter-input-border":XTr(s),"--volter-input-shadow":YTr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":Z3t(t.treatment),"--volter-card-specular-sheen":eCr(t.treatment),"--volter-card-specular-shadow":tCr(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":mCr(t.treatment),"--volter-island-surface":rCr(t),"--volter-island-backdrop-filter":nCr(t),"--volter-island-radius":iCr(s),"--volter-island-border-color":oCr(s),"--volter-island-shadow":sCr(s),"--volter-island-specular-ring":_Cr(t.treatment),"--volter-selection-bg":cCr(t),"--volter-content-on-selection":lCr(t),"--volter-selection-border":uCr(t),"--volter-selection-indicator":fCr(t),"--volter-island-control-radius":dCr(s),"--volter-island-primary-bg":pCr(t),"--volter-content-text-shadow":r4t(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":gCr(t),"--volter-glass-regular-backdrop-filter":Dht(t.treatment),"--volter-glass-regular-panel-bg":yCr(t),"--volter-glass-regular-panel-backdrop-filter":Dht(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":bCr(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":xCr(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":SCr(t.color.surface.panel,t.color.content.primary),...e4t(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(mBe.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(Lye.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":`${C5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":HTr(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":`${Zp(t).chrome.commandBar}px`,"--volter-panel-header-height":`${Zp(t).chrome.panelHeader}px`,"--volter-local-toolbar-height":`${Zp(t).chrome.localToolbar}px`,"--volter-tree-row-height":`${Zp(t).chrome.treeRow}px`,"--volter-tree-indent":`${Zp(t).chrome.treeIndent}px`,"--volter-status-bar-height":`${Zp(t).chrome.statusBar}px`,"--volter-tool-size":`${Zp(t).chrome.toolSize}px`,"--volter-tool-width":`${Zp(t).chrome.toolWidth}px`,"--volter-tool-gap":`${Zp(t).chrome.toolGap}px`,"--volter-area-seam-width":`${Zp(t).chrome.areaSeam}px`,"--volter-control-compact-height":`${Zp(t).control.compact}px`,"--volter-control-default-height":`${Zp(t).control.default}px`,"--volter-control-comfortable-height":`${Zp(t).control.comfortable}px`,"--volter-stroke-resting":`${C5e.resting}px`,"--volter-stroke-active":`${C5e.active}px`,"--volter-font-xs":`${Zp(t).font.xs}px`,"--volter-font-sm":`${Zp(t).font.sm}px`,"--volter-font-base":`${Zp(t).font.base}px`,"--volter-font-md":`${Zp(t).font.md}px`,"--volter-font-lg":`${Zp(t).font.lg}px`,"--volter-font-xl":`${Zp(t).font.xl}px`,"--volter-font-2xl":`${Zp(t).font["2xl"]}px`,"--volter-icon-xs":`${Zp(t).icon.xs}px`,"--volter-icon-sm":`${Zp(t).icon.sm}px`,"--volter-icon-md":`${Zp(t).icon.md}px`,"--volter-icon-lg":`${Zp(t).icon.lg}px`,"--volter-icon-xl":`${Zp(t).icon.xl}px`,"--volter-icon-2xl":`${Zp(t).icon["2xl"]}px`,"--volter-font-heading":`${Zp(t).font.heading}px`,"--volter-font-weight-regular":String(C_e.regular),"--volter-font-weight-semibold":String(C_e.semibold),"--volter-font-weight-bold":String(C_e.bold),"--volter-leading-tight":String(Epe.tight),"--volter-leading-snug":String(Epe.snug),"--volter-leading-normal":String(Epe.normal),"--volter-leading-relaxed":String(Epe.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 ARe="volter-editor-theme";function TCr(t,n=i$){t.classList.add(ARe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(wCr(n)))t.style.setProperty(s,c)}const jyn={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},Lyn={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},n4t=Ze.createContext(null);function CCr(){return Ze.useContext(n4t)}function DR(t,n){return n?`${t} ${n}`:t}const Zm=Ze.forwardRef(function({className:n,type:s="text",...c},d){return q.jsx("input",{...c,ref:d,type:s,className:DR("volter-input",n)})}),Iw=Ze.forwardRef(function({className:n,...s},c){return q.jsx("select",{...s,ref:c,className:DR("volter-select",n)})}),hBe=Ze.forwardRef(function({className:n,...s},c){return q.jsx("textarea",{...s,ref:c,className:DR("volter-input volter-textarea",n)})}),TD=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"checkbox",className:DR("volter-checkbox",n)})}),i4t=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),Byn=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),$yn=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",ECr={id:hC,title:"Editor"},wB=new Map;let ohe=null,aQ=hC;const DRe=new Set;function PRe(){for(const t of DRe)t()}function qyn(){return ohe??=[ECr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],ohe}function yee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function kCr(t){if(yee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),ohe=null,PRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),ohe=null,PRe())}}function she(){return aQ}function ahe(t){const n=yee(t)?t:hC;n!==aQ&&(aQ=n,PRe())}function gBe(t){return DRe.add(t),()=>DRe.delete(t)}function o4t(t){return aQ===hC?null:wB.get(aQ)?.glyphs[t]??null}const Pht={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)"},Iht={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}){Ze.useSyncExternalStore(gBe,she,she);const k=o4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Iht[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:Pht[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(Wyr,{...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:Pht[n],color:Iht[s],...m}})}function s4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?ATt:zTt,size:n,tone:s,...c?{style:c}:{}})}function zyn({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?wTt:nLe,size:n,tone:s})}function fy(t,n){return{...n,iconName:t}}const Kk={action:{add:JTt,close:tLe,delete:CTt,search:TTt,refresh:U0r,undo:jOe,redo:wmt,build:B0r,export:V0r,select:Tmt},transport:{play:T0r,pause:q0r,restart:wmt,stop:ETt,step:E0r},content:{project:FOe,folder:uee,file:RTt,source:iLe,scene:sLe,entity:aR,component:GB,camera:nye,light:Zje,image:iB,audio:rLe,data:kTt,code:Qje,stateMachine:PTt},status:{success:eLe,info:R$,warning:fee,error:OTt,visible:Yje,hidden:oLe,locked:Ime,unlocked:MOe},viewport:{zoomIn:u0r,zoomOut:c0r,pan:b0r,frame:s0r,projection:fy("viewport-projection",b5e),projectionOrthographic:fy("viewport-orthographic",b5e),camera:fy("viewport-camera",xmt),cameraView:fy("viewport-camera-view",xmt),cameraLocked:fy("viewport-camera-locked",Ime),cameraUnlocked:fy("viewport-camera-unlocked",MOe)},modeling:{extrude:fy("mesh-extrude",ITt),inset:fy("mesh-inset",L0r),bevel:fy("mesh-bevel",J0r),loopCut:fy("mesh-loop-cut",f0r),knife:fy("mesh-knife",R0r),smooth:fy("mesh-smooth",a0r),shrinkFatten:fy("mesh-shrink-fatten",FTt),subdivide:fy("mesh-subdivide",C0r)},tool:{extension:GB,select:fy("tool-select-box",Tmt),move:jTt,rotate:xTt,scale:fy("tool-scale",p0r),transform:fy("tool-transform",S0r),snap:w0r,frame:UTt,grid:b5e,profiler:qTt},panel:{outliner:fy("outliner",HTt),properties:fy("properties",LTt),"folder-open":FOe,"cubes-stacked":MTt,users:d0r,list:vZ,"rotate-left":jOe}};function SZ({value:t,onChange:n,onChangeEnd:s,step:c=.1,precision:d=3,disabled:m=!1,label:g,labelColor:S,style:k,testId:A,title:F}){const[D,J]=Ze.useState(!1),[$,G]=Ze.useState(""),se=Ze.useRef({startX:0,startVal:0,dragging:!1,gesture:!1,lastVal:0}),pe=Ze.useRef(null),ue=CCr();Ze.useEffect(()=>{if(!D)return;const Te=pe.current;Te&&(Te.focus(),Te.select())},[D]);const Ce=t===null,De=t??0,Pe=Ce?"—":Number.isFinite(De)?De.toFixed(d):0 .toFixed(d),be=Te=>{if(m)return;se.current={startX:Te.clientX,startVal:De,dragging:!1,gesture:!1,lastVal:De};const $e=It=>{const Wt=It.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",$e),window.removeEventListener("pointerup",bt),se.current.gesture&&ue?.end(),se.current.dragging?s?.(se.current.lastVal):(J(!0),G(Ce?"":Pe))};window.addEventListener("pointermove",$e),window.addEventListener("pointerup",bt)},X=()=>{J(!1);const Te=Number.parseFloat($);Number.isFinite(Te)&&(n(Te),s?.(Te))};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:Te=>G(Te.target.value),onBlur:X,onKeyDown:Te=>{Te.key==="Enter"&&X(),Te.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 ACr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:C_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},DCr={...ACr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function $ye({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:{...DCr,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 PCr({label:t,icon:n,description:s,actions:c,collapsible:d=!0,defaultOpen:m=!0,children:g}){const[S,k]=Ze.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(s4t,{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 ICr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function NCr(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 OCr(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=Ze.useId(),g=Ze.useRef(null),S=Ze.useRef(null),k=Ze.useRef(null),A=Ze.useRef(!1),F=Ze.useRef(!1),[D,J]=Ze.useState(!1),[$,G]=Ze.useState(null),[se,pe]=Ze.useState({left:0,top:0,ready:!1});Ze.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ze.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)};Ze.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),Te=S.current?.getBoundingClientRect();if(!X||!Te)return;const $e=NCr(c,X,Te)?c:ICr(c);pe(OCr($e,X,Te))};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(Ze.isValidElement(s)){const be=[s.props["aria-describedby"],D?m:null].filter(Boolean).join(" ");Pe=Ze.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&&$&&MS.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 RCr({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 E5e={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},Vyn=Go.typography.sans,Uyn=Go.typography.mono;function Jyn(t,n){t.onChange(n)}function Wyn(t,n){(t.onChangeEnd??t.onChange)(n)}const Hyn={display:"flex",alignItems:"center",gap:4},Gyn={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},FCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},MCr=72;function Kyn({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 Xyn(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 k5e=22,Nht={width:k5e,height:k5e,flex:`0 0 ${k5e}px`,borderRadius:E5e.radiusSmall,border:`1px solid ${E5e.border}`,background:E5e.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 jCr({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:Nht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:Nht,"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:tLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function IRe({value:t,onCommit:n,onKeyDown:s,onFocus:c,...d}){const[m,g]=Ze.useState(null),S=Ze.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 E_e=new Map,NRe=new Set;let a4t=0;function Oht(){a4t+=1;for(const t of NRe)t()}function Yyn(t,n){return E_e.set(t,n),Oht(),()=>{E_e.get(t)===n&&(E_e.delete(t),Oht())}}function yBe(t){return NRe.add(t),()=>NRe.delete(t)}function o$(){return a4t}function o2(t){return t?E_e.get(t)??null:null}const QL=new Map;function Zyn(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 LCr(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,che=new Set,k_e=new Set;let c4t=0;function l4t(){c4t+=1;for(const t of[...TB])t()}function BCr(t,n){return xZ.set(t,n),l4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function $Cr(t){xZ.has(t)&&l4t()}function qCr(t){return TB.add(t),()=>{TB.delete(t)}}function Rht(){return c4t}function cQ(t){return xZ.get(t)}function u4t(t,n=1e4){const s=cQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=cQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function f4t(t){che.add(t);for(const n of[...k_e])n();return()=>{che.delete(t)}}function d4t(t,n=1e4){return che.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{che.has(t)&&(clearTimeout(d),k_e.delete(c),s(!0))},d=setTimeout(()=>{k_e.delete(c),s(!1)},n);k_e.add(c)})}async function vBe(t){if(LCr(t)&&!await CC(()=>o2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let ORe=null;const ZY=new Map;let YO=[];function zCr(t){if(ORe=t,!t)return;const n=YO;YO=[];for(const s of n)p4t(t,s)}function p4t(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 VCr=0;function s$(t){const n=t.id??`notification-${++VCr}`,s={...t,id:n};return ORe?p4t(ORe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>bBe(n))}function bBe(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},lhe=!0,kpe=null,A_e=null,RG=null,D_e=!1;const QY=new Set;function UCr(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 uhe(t){Xk=t;for(const n of QY)n()}async function JCr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function WCr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function HCr(){try{const t={sessions:await JCr()},n=UCr(t.sessions,Xk.sessions,A_e),s=n.sessionId;n.latestAppeared&&(lhe=!0),A_e=s;const c=s?await WCr(s):null;if(A_e!==s){D_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=lhe?m:Math.min(Xk.cursorMs,m);uhe({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){uhe({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function lQ(){return RG?(D_e=!0,RG):(RG=HCr().finally(()=>{RG=null,D_e&&(D_e=!1,lQ())}),RG)}function GCr(t){return QY.add(t),QY.size===1&&(lQ(),kpe=window.setInterval(()=>void lQ(),1e3)),()=>{QY.delete(t),QY.size===0&&kpe!==null&&(window.clearInterval(kpe),kpe=null)}}function KCr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(A_e=n.id,lhe=!0,uhe({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),lQ())}function XCr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));lhe=Xk.liveEdgeMs-n<250,uhe({...Xk,cursorMs:n})}const _4t={getSnapshot:()=>Xk,subscribe:GCr,select:KCr,seek:XCr,refresh:lQ};let m4t=null;const RRe=new Set,Qyn={getSnapshot:()=>m4t,subscribe(t){return RRe.add(t),()=>RRe.delete(t)}};function e0n(t){m4t=t;for(const n of RRe)try{n()}catch{}}let ZO={phase:null,at:0,run:0},dN=ZO;const FRe=new Map;let h4t=null;function YCr(t){h4t=t,g4t(ZO)}function g4t(t){ZO=t;try{h4t?.(t)}catch{}}function uQ(){const t=[...FRe.values()].at(-1),n=t?{...t,run:dN.run}:dN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||g4t(n)}function t0n(t=Date.now()){return dN={phase:null,at:t,run:dN.run+1},uQ(),ZO.run}function r0n(t,n=Date.now()){dN={phase:t,at:n,run:dN.run},uQ()}function n0n(t=Date.now()){dN={phase:null,at:t,run:dN.run},uQ()}function SBe(t,n=Date.now()){const s=Symbol();return FRe.set(s,{phase:t.slice(0,160),at:n}),uQ(),()=>{FRe.delete(s)&&uQ()}}const ZCr=Ze.lazy(()=>fo(()=>import("./GameplaySessionTimeline-BZENnCEM.js"),__vite__mapDeps([253,1,2,3,4,20,21,140,125,141,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class xBe extends Ze.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 QCr({contribution:t,Component:n,documentId:s,active:c,document:d,accountRevision:m,playKey:g}){const S=Ze.useRef(null),[k,A]=Ze.useState(null),F=Ze.useRef(null),D=Ze.useRef(null),J=Ze.useRef(t.file);J.current=t.file;const $=Ze.useRef(s);return $.current=s,Ze.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&&f4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=Kje.createRoot(ue,{onUncaughtError:pe});return F.current=Ce,()=>{se=!0,F.current=null,D.current?.(),D.current=null,queueMicrotask(()=>{Ce.unmount(),ue.remove()})}},[]),Ze.useEffect(()=>{const G=F.current;if(!G)return;A(null);const se={contributionId:t.id,client:Kye(),surfaces:cBe,account:KLe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:SBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:_4t}:{play:Dye()},...s?{documentId:s,publishContext:Ce=>BCr(s,Ce)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ze.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});G.render(s?Ze.createElement(eEr,{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 eEr({documentId:t,children:n}){return Ze.useEffect(()=>f4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ze.useSyncExternalStore(Tye,cN,cN),g=Ze.useSyncExternalStore(Pye,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(Ze.Suspense,{fallback:null,children:q.jsx(ZCr,{})}):null,q.jsx(xBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(QCr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function tEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ze.useSyncExternalStore(Tye,cN,cN),Ze.useSyncExternalStore(Pye,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(xBe,{file:s,children:q.jsx(Bvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:Kye(),surfaces:cBe,account:KLe(),play:Dye(),node:S,nodeId:g,adapter:m})})})})}const rEr=Symbol("volter.inspection.mixed");function MRe(t){return t===rEr}function wBe(t){return t.readonlyReason??"This field is read-only."}function TBe(t){return"column"}function CBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const jRe="preview",Fht="transform",A5e="properties",y4t="stories",i0n="story-args",o0n="Story Args";function Mht(t){return`group:${t}`}const v4t=100,nEr=1e3,fQ=2e3,b4t=3e3,iEr=4e3,oEr=5e3,sEr={nullSubjectId:null};function S4t(t){return"sections"in t}const P_e=[];let x4t=0;const LRe=new Set;function jht(){x4t++;for(const t of LRe)t()}function aEr(t){return LRe.add(t),()=>{LRe.delete(t)}}function Lht(){return x4t}function w4t(t){return P_e.push(t),jht(),()=>{const n=P_e.indexOf(t);n>=0&&(P_e.splice(n,1),jht())}}function Bht(t,n,s=sEr){return P_e.filter(c=>c.match(t,n,s))}function T4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const cEr=1e3;class lEr{_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>cEr){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 ea=new lEr;typeof window<"u"&&(window.__volterEditorConsole=ea);const $ht=1e3,qht=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 $me(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:qme(n,"input",t.processors),output:qme(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 cSr=(t,n={})=>s=>{const c=Lme({...s,processors:n});return F_(t,c),Bme(c,t),$me(c,t)},qme=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=Lme({...d??{},target:m,io:n,processors:s});return F_(t,g),Bme(g,t),$me(g,t)},lSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ZEt=(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=lSr[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}))])}},QEt=(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)},ekt=(t,n,s,c)=>{s.type="boolean"},tkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},rkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},nkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},ikt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},okt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},skt=(t,n,s,c)=>{s.not={}},akt=(t,n,s,c)=>{},ckt=(t,n,s,c)=>{},lkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},ukt=(t,n,s,c)=>{const d=t._zod.def,m=uLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},fkt=(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},dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},pkt=(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},_kt=(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)},mkt=(t,n,s,c)=>{s.type="boolean"},hkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},gkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},vkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},bkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Skt=(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"]})},xkt=(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)},gLe=(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},wkt=(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},Tkt=(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)},Ckt=(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)}},Ekt=(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"}]},kkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Akt=(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))},Dkt=(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)))},Pkt=(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},Ikt=(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},Nkt=(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},Okt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},yLe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Rkt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},Zmt={string:ZEt,number:QEt,boolean:ekt,bigint:tkt,symbol:rkt,null:nkt,undefined:ikt,void:okt,never:skt,any:akt,unknown:ckt,date:lkt,enum:ukt,literal:fkt,nan:dkt,template_literal:pkt,file:_kt,success:mkt,custom:hkt,function:gkt,transform:ykt,map:vkt,set:bkt,array:Skt,object:xkt,union:gLe,intersection:wkt,tuple:Tkt,record:Ckt,nullable:Ekt,nonoptional:kkt,default:Akt,prefault:Dkt,catch:Pkt,pipe:Ikt,readonly:Nkt,promise:Okt,optional:yLe,lazy:Rkt};function uSr(t,n){if("_idmap"in t){const c=t,d=Lme({...n,processors:Zmt}),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;Bme(d,F),g[A]=$me(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=Lme({...n,processors:Zmt});return F_(t,s),Bme(s,t),$me(s,t)}const Fkt=ui("ZodISODateTime",(t,n)=>{_br.init(t,n),j_.init(t,n)});function Mkt(t){return y2r(Fkt,t)}const jkt=ui("ZodISODate",(t,n)=>{mbr.init(t,n),j_.init(t,n)});function Lkt(t){return v2r(jkt,t)}const Bkt=ui("ZodISOTime",(t,n)=>{hbr.init(t,n),j_.init(t,n)});function $kt(t){return b2r(Bkt,t)}const qkt=ui("ZodISODuration",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function zkt(t){return S2r(qkt,t)}const vgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:jkt,ZodISODateTime:Fkt,ZodISODuration:qkt,ZodISOTime:Bkt,date:Lkt,datetime:Mkt,duration:zkt,time:$kt},Symbol.toStringTag,{value:"Module"})),Vkt=(t,n)=>{ACt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>c1r(t,s)},flatten:{value:s=>a1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,Rme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,Rme,2)}},isEmpty:{get(){return t.issues.length===0}}})},bgn=ui("ZodError",Vkt),Fw=ui("ZodError",Vkt,{Parent:Error}),fSr=fye(Fw),dSr=dye(Fw),pSr=pye(Fw),_Sr=_ye(Fw),mSr=DCt(Fw),hSr=PCt(Fw),gSr=ICt(Fw),ySr=NCt(Fw),vSr=OCt(Fw),bSr=RCt(Fw),SSr=FCt(Fw),xSr=MCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:qme(t,"input"),output:qme(t,"output")}}),t.toJSONSchema=cSr(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)=>fSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>pSr(t,s,c),t.parseAsync=async(s,c)=>dSr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>_Sr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>mSr(t,s,c),t.decode=(s,c)=>hSr(t,s,c),t.encodeAsync=async(s,c)=>gSr(t,s,c),t.decodeAsync=async(s,c)=>ySr(t,s,c),t.safeEncode=(s,c)=>vSr(t,s,c),t.safeDecode=(s,c)=>bSr(t,s,c),t.safeEncodeAsync=async(s,c)=>SSr(t,s,c),t.safeDecodeAsync=async(s,c)=>xSr(t,s,c),t.refine=(s,c)=>t.check(PAt(s,c)),t.superRefine=s=>t.check(IAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Ume(t),t.exactOptional=()=>dAt(t),t.nullable=()=>Jme(t),t.nullish=()=>Ume(Jme(t)),t.nonoptional=s=>yAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>zLe(t,s),t.transform=s=>Wme(t,VLe(s)),t.default=s=>mAt(t,s),t.prefault=s=>gAt(t,s),t.catch=s=>SAt(t,s),t.pipe=s=>Wme(t,s),t.readonly=()=>TAt(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)),vLe=ui("_ZodString",(t,n)=>{hye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ZEt(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(q2r(...c)),t.includes=(...c)=>t.check(U2r(...c)),t.startsWith=(...c)=>t.check(J2r(...c)),t.endsWith=(...c)=>t.check(W2r(...c)),t.min=(...c)=>t.check(jme(...c)),t.max=(...c)=>t.check(XEt(...c)),t.length=(...c)=>t.check(YEt(...c)),t.nonempty=(...c)=>t.check(jme(1,...c)),t.lowercase=c=>t.check(z2r(c)),t.uppercase=c=>t.check(V2r(c)),t.trim=()=>t.check(K2r()),t.normalize=(...c)=>t.check(G2r(...c)),t.toLowerCase=()=>t.check(X2r()),t.toUpperCase=()=>t.check(Y2r()),t.slugify=()=>t.check(Z2r())}),bLe=ui("ZodString",(t,n)=>{hye.init(t,n),vLe.init(t,n),t.email=s=>t.check(DEt(SLe,s)),t.url=s=>t.check(mLe(yye,s)),t.jwt=s=>t.check(GEt(MLe,s)),t.emoji=s=>t.check(REt(xLe,s)),t.guid=s=>t.check(KOe(zme,s)),t.uuid=s=>t.check(PEt(aD,s)),t.uuidv4=s=>t.check(IEt(aD,s)),t.uuidv6=s=>t.check(NEt(aD,s)),t.uuidv7=s=>t.check(OEt(aD,s)),t.nanoid=s=>t.check(FEt(wLe,s)),t.guid=s=>t.check(KOe(zme,s)),t.cuid=s=>t.check(MEt(TLe,s)),t.cuid2=s=>t.check(jEt(CLe,s)),t.ulid=s=>t.check(LEt(ELe,s)),t.base64=s=>t.check(JEt(OLe,s)),t.base64url=s=>t.check(WEt(RLe,s)),t.xid=s=>t.check(BEt(kLe,s)),t.ksuid=s=>t.check($Et(ALe,s)),t.ipv4=s=>t.check(qEt(DLe,s)),t.ipv6=s=>t.check(zEt(PLe,s)),t.cidrv4=s=>t.check(VEt(ILe,s)),t.cidrv6=s=>t.check(UEt(NLe,s)),t.e164=s=>t.check(HEt(FLe,s)),t.datetime=s=>t.check(Mkt(s)),t.date=s=>t.check(Lkt(s)),t.time=s=>t.check($kt(s)),t.duration=s=>t.check(zkt(s))});function bo(t){return h2r(bLe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),vLe.init(t,n)}),SLe=ui("ZodEmail",(t,n)=>{obr.init(t,n),j_.init(t,n)});function wSr(t){return DEt(SLe,t)}const zme=ui("ZodGUID",(t,n)=>{nbr.init(t,n),j_.init(t,n)});function TSr(t){return KOe(zme,t)}const aD=ui("ZodUUID",(t,n)=>{ibr.init(t,n),j_.init(t,n)});function CSr(t){return PEt(aD,t)}function ESr(t){return IEt(aD,t)}function kSr(t){return NEt(aD,t)}function ASr(t){return OEt(aD,t)}const yye=ui("ZodURL",(t,n)=>{sbr.init(t,n),j_.init(t,n)});function DSr(t){return mLe(yye,t)}function PSr(t){return mLe(yye,{protocol:/^https?$/,hostname:tEt,...Jo(t)})}const xLe=ui("ZodEmoji",(t,n)=>{abr.init(t,n),j_.init(t,n)});function ISr(t){return REt(xLe,t)}const wLe=ui("ZodNanoID",(t,n)=>{cbr.init(t,n),j_.init(t,n)});function NSr(t){return FEt(wLe,t)}const TLe=ui("ZodCUID",(t,n)=>{lbr.init(t,n),j_.init(t,n)});function OSr(t){return MEt(TLe,t)}const CLe=ui("ZodCUID2",(t,n)=>{ubr.init(t,n),j_.init(t,n)});function RSr(t){return jEt(CLe,t)}const ELe=ui("ZodULID",(t,n)=>{fbr.init(t,n),j_.init(t,n)});function FSr(t){return LEt(ELe,t)}const kLe=ui("ZodXID",(t,n)=>{dbr.init(t,n),j_.init(t,n)});function MSr(t){return BEt(kLe,t)}const ALe=ui("ZodKSUID",(t,n)=>{pbr.init(t,n),j_.init(t,n)});function jSr(t){return $Et(ALe,t)}const DLe=ui("ZodIPv4",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function LSr(t){return qEt(DLe,t)}const Ukt=ui("ZodMAC",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function BSr(t){return g2r(Ukt,t)}const PLe=ui("ZodIPv6",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function $Sr(t){return zEt(PLe,t)}const ILe=ui("ZodCIDRv4",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function qSr(t){return VEt(ILe,t)}const NLe=ui("ZodCIDRv6",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function zSr(t){return UEt(NLe,t)}const OLe=ui("ZodBase64",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function VSr(t){return JEt(OLe,t)}const RLe=ui("ZodBase64URL",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function USr(t){return WEt(RLe,t)}const FLe=ui("ZodE164",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function JSr(t){return HEt(FLe,t)}const MLe=ui("ZodJWT",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function WSr(t){return GEt(MLe,t)}const mee=ui("ZodCustomStringFormat",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function HSr(t,n,s={}){return gye(mee,t,n,s)}function GSr(t){return gye(mee,"hostname",eEt,t)}function KSr(t){return gye(mee,"hex",hEt,t)}function XSr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=M1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return gye(mee,c,d,n)}const jLe=ui("ZodNumber",(t,n)=>{SEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>QEt(t,c,d),t.gt=(c,d)=>t.check(QZ(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(ZZ(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(YOe(c)),t.safe=c=>t.check(YOe(c)),t.positive=c=>t.check(QZ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(ZZ(0,c)),t.nonpositive=c=>t.check(XI(0,c)),t.multipleOf=(c,d)=>t.check(XOe(c,d)),t.step=(c,d)=>t.check(XOe(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 x2r(jLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Pbr.init(t,n),jLe.init(t,n)});function YOe(t){return w2r(j$,t)}function YSr(t){return T2r(j$,t)}function ZSr(t){return C2r(j$,t)}function QSr(t){return E2r(j$,t)}function exr(t){return k2r(j$,t)}const LLe=ui("ZodBoolean",(t,n)=>{xEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ekt(t,s,c)});function _y(t){return A2r(LLe,t)}const BLe=ui("ZodBigInt",(t,n)=>{wEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>tkt(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(QZ(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(ZZ(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(QZ(BigInt(0),c)),t.negative=c=>t.check(ZZ(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(XOe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function txr(t){return D2r(BLe,t)}const $Le=ui("ZodBigIntFormat",(t,n)=>{Ibr.init(t,n),BLe.init(t,n)});function rxr(t){return P2r($Le,t)}function nxr(t){return I2r($Le,t)}const Jkt=ui("ZodSymbol",(t,n)=>{Nbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>rkt(t,s)});function ixr(t){return N2r(Jkt,t)}const Wkt=ui("ZodUndefined",(t,n)=>{Obr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ikt(t,s)});function oxr(t){return O2r(Wkt,t)}const Hkt=ui("ZodNull",(t,n)=>{Rbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>nkt(t,s,c)});function Gkt(t){return R2r(Hkt,t)}const Kkt=ui("ZodAny",(t,n)=>{Fbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>akt()});function sxr(){return F2r(Kkt)}const Xkt=ui("ZodUnknown",(t,n)=>{Mbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ckt()});function t$(){return M2r(Xkt)}const Ykt=ui("ZodNever",(t,n)=>{jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>skt(t,s,c)});function qLe(t){return j2r(Ykt,t)}const Zkt=ui("ZodVoid",(t,n)=>{Lbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>okt(t,s)});function axr(t){return L2r(Zkt,t)}const Qkt=ui("ZodDate",(t,n)=>{Bbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>lkt(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 cxr(t){return B2r(Qkt,t)}const eAt=ui("ZodArray",(t,n)=>{$br.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check(jme(s,c)),t.nonempty=s=>t.check(jme(1,s)),t.max=(s,c)=>t.check(XEt(s,c)),t.length=(s,c)=>t.check(YEt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return Q2r(eAt,t,n)}function lxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const vye=ui("ZodObject",(t,n)=>{zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(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:qLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>bCt(t,s),t.safeExtend=s=>SCt(t,s),t.merge=s=>xCt(t,s),t.pick=s=>yCt(t,s),t.omit=s=>vCt(t,s),t.partial=(...s)=>wCt(ULe,t,s[0]),t.required=(...s)=>TCt(JLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new vye(s)}function uxr(t,n){return new vye({type:"object",shape:t,catchall:qLe(),...Jo(n)})}function fxr(t,n){return new vye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const bye=ui("ZodUnion",(t,n)=>{_Le.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gLe(t,s,c,d),t.options=n.options});function AR(t,n){return new bye({type:"union",options:t,...Jo(n)})}const tAt=ui("ZodXor",(t,n)=>{bye.init(t,n),Vbr.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gLe(t,s,c,d),t.options=n.options});function dxr(t,n){return new tAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const rAt=ui("ZodDiscriminatedUnion",(t,n)=>{bye.init(t,n),Ubr.init(t,n)});function nAt(t,n,s){return new rAt({type:"union",options:n,discriminator:t,...Jo(s)})}const iAt=ui("ZodIntersection",(t,n)=>{Jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s,c,d)});function zLe(t,n){return new iAt({type:"intersection",left:t,right:n})}const oAt=ui("ZodTuple",(t,n)=>{EEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Vme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new oAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Sye=ui("ZodRecord",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Sye({type:"record",keyType:t,valueType:n,...Jo(s)})}function pxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Sye({type:"record",keyType:c,valueType:n,...Jo(s)})}function _xr(t,n,s){return new Sye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const sAt=ui("ZodMap",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>vkt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(hLe(...s)),t.size=(...s)=>t.check(KEt(...s))});function mxr(t,n,s){return new sAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const aAt=ui("ZodSet",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt(t,s),t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(hLe(...s)),t.size=(...s)=>t.check(KEt(...s))});function hxr(t,n){return new aAt({type:"set",valueType:t,...Jo(n)})}const tQ=ui("ZodEnum",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ukt(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 tQ({...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 tQ({...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 tQ({type:"enum",entries:s,...Jo(n)})}function gxr(t,n){return new tQ({type:"enum",entries:t,...Jo(n)})}const cAt=ui("ZodLiteral",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>fkt(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 Dg(t,n){return new cAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const lAt=ui("ZodFile",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt(t,s,c),t.min=(s,c)=>t.check(eQ(s,c)),t.max=(s,c)=>t.check(hLe(s,c)),t.mime=(s,c)=>t.check(H2r(Array.isArray(s)?s:[s],c))});function yxr(t){return eSr(lAt,t)}const uAt=ui("ZodTransform",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new lLe(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 VLe(t){return new uAt({type:"transform",transform:t})}const ULe=ui("ZodOptional",(t,n)=>{kEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>yLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Ume(t){return new ULe({type:"optional",innerType:t})}const fAt=ui("ZodExactOptional",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>yLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function dAt(t){return new fAt({type:"optional",innerType:t})}const pAt=ui("ZodNullable",(t,n)=>{e2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Jme(t){return new pAt({type:"nullable",innerType:t})}function vxr(t){return Ume(Jme(t))}const _At=ui("ZodDefault",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function mAt(t,n){return new _At({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():cye(n)}})}const hAt=ui("ZodPrefault",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function gAt(t,n){return new hAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():cye(n)}})}const JLe=ui("ZodNonOptional",(t,n)=>{n2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function yAt(t,n){return new JLe({type:"nonoptional",innerType:t,...Jo(n)})}const vAt=ui("ZodSuccess",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function bxr(t){return new vAt({type:"success",innerType:t})}const bAt=ui("ZodCatch",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function SAt(t,n){return new bAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const xAt=ui("ZodNaN",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s)});function Sxr(t){return $2r(xAt,t)}const WLe=ui("ZodPipe",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s,c,d),t.in=n.in,t.out=n.out});function Wme(t,n){return new WLe({type:"pipe",in:t,out:n})}const HLe=ui("ZodCodec",(t,n)=>{WLe.init(t,n),AEt.init(t,n)});function xxr(t,n,s){return new HLe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const wAt=ui("ZodReadonly",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function TAt(t){return new wAt({type:"readonly",innerType:t})}const CAt=ui("ZodTemplateLiteral",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s,c)});function wxr(t,n){return new CAt({type:"template_literal",parts:t,...Jo(n)})}const EAt=ui("ZodLazy",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function kAt(t){return new EAt({type:"lazy",getter:t})}const AAt=ui("ZodPromise",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Txr(t){return new AAt({type:"promise",innerType:t})}const DAt=ui("ZodFunction",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt(t,s)});function Qmt(t){return new DAt({type:"function",input:Array.isArray(t?.input)?Vme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const xye=ui("ZodCustom",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt(t,s)});function Cxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function YI(t,n){return tSr(xye,t??(()=>!0),n)}function PAt(t,n={}){return rSr(xye,t,n)}function IAt(t){return nSr(t)}const Exr=oSr,kxr=sSr;function Axr(t,n={}){const s=new xye({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 Dxr=(...t)=>aSr({Codec:HLe,Boolean:LLe,String:bLe},...t);function Pxr(t){const n=kAt(()=>AR([bo(t),fu(),_y(),Gkt(),Gd(n),wD(bo(),n)]));return n}function NAt(t,n){return Wme(VLe(t),n)}const Sgn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:Kkt,ZodArray:eAt,ZodBase64:OLe,ZodBase64URL:RLe,ZodBigInt:BLe,ZodBigIntFormat:$Le,ZodBoolean:LLe,ZodCIDRv4:ILe,ZodCIDRv6:NLe,ZodCUID:TLe,ZodCUID2:CLe,ZodCatch:bAt,ZodCodec:HLe,ZodCustom:xye,ZodCustomStringFormat:mee,ZodDate:Qkt,ZodDefault:_At,ZodDiscriminatedUnion:rAt,ZodE164:FLe,ZodEmail:SLe,ZodEmoji:xLe,ZodEnum:tQ,ZodExactOptional:fAt,ZodFile:lAt,ZodFunction:DAt,ZodGUID:zme,ZodIPv4:DLe,ZodIPv6:PLe,ZodIntersection:iAt,ZodJWT:MLe,ZodKSUID:ALe,ZodLazy:EAt,ZodLiteral:cAt,ZodMAC:Ukt,ZodMap:sAt,ZodNaN:xAt,ZodNanoID:wLe,ZodNever:Ykt,ZodNonOptional:JLe,ZodNull:Hkt,ZodNullable:pAt,ZodNumber:jLe,ZodNumberFormat:j$,ZodObject:vye,ZodOptional:ULe,ZodPipe:WLe,ZodPrefault:hAt,ZodPromise:AAt,ZodReadonly:wAt,ZodRecord:Sye,ZodSet:aAt,ZodString:bLe,ZodStringFormat:j_,ZodSuccess:vAt,ZodSymbol:Jkt,ZodTemplateLiteral:CAt,ZodTransform:uAt,ZodTuple:oAt,ZodType:Lu,ZodULID:ELe,ZodURL:yye,ZodUUID:aD,ZodUndefined:Wkt,ZodUnion:bye,ZodUnknown:Xkt,ZodVoid:Zkt,ZodXID:kLe,ZodXor:tAt,_ZodString:vLe,_default:mAt,_function:Qmt,any:sxr,array:Gd,base64:VSr,base64url:USr,bigint:txr,boolean:_y,catch:SAt,check:Cxr,cidrv4:qSr,cidrv6:zSr,codec:xxr,cuid:OSr,cuid2:RSr,custom:YI,date:cxr,describe:Exr,discriminatedUnion:nAt,e164:JSr,email:wSr,emoji:ISr,enum:ed,exactOptional:dAt,file:yxr,float32:YSr,float64:ZSr,function:Qmt,guid:TSr,hash:XSr,hex:KSr,hostname:GSr,httpUrl:PSr,instanceof:Axr,int:YOe,int32:QSr,int64:rxr,intersection:zLe,ipv4:LSr,ipv6:$Sr,json:Pxr,jwt:WSr,keyof:lxr,ksuid:jSr,lazy:kAt,literal:Dg,looseObject:fxr,looseRecord:_xr,mac:BSr,map:mxr,meta:kxr,nan:Sxr,nanoid:NSr,nativeEnum:gxr,never:qLe,nonoptional:yAt,null:Gkt,nullable:Jme,nullish:vxr,number:fu,object:Pa,optional:Ume,partialRecord:pxr,pipe:Wme,prefault:gAt,preprocess:NAt,promise:Txr,readonly:TAt,record:wD,refine:PAt,set:hxr,strictObject:uxr,string:bo,stringFormat:HSr,stringbool:Dxr,success:bxr,superRefine:IAt,symbol:ixr,templateLiteral:wxr,transform:VLe,tuple:Vme,uint32:exr,uint64:nxr,ulid:FSr,undefined:oxr,union:AR,unknown:t$,url:DSr,uuid:CSr,uuidv4:ESr,uuidv6:kSr,uuidv7:ASr,void:axr,xid:MSr,xor:dxr},Symbol.toStringTag,{value:"Module"})),eht={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 xgn(t){$S({customError:t})}function wgn(){return $S().customError}var tht;tht||(tht={});const rht=ed(["mock","live"]),Ixr=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()}),Nxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Oxr=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()}),Rxr=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()}),Fxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Mxr=Pa({name:bo().min(1),verified:_y(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),jxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Mxr).max(50)}),Lxr=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 Bxr=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()}))}),$xr=nAt("authenticated",[Pa({authenticated:Dg(!1),backend:rht}),Pa({authenticated:Dg(!0),backend:rht,user:Fxr,organizations:Gd(jxr).max(100).optional(),plan:Ixr,credits:Nxr,spendPolicy:Oxr,alerts:Gd(Rxr).max(100).optional(),entitlements:Pa({generation:_y(),dailyJobs:fu().int().positive().optional()})})]),qxr=ed(["auto","mock","managed","byok"]),OAt=ed(["fal","tripo","worldlabs","openrouter"]),zxr=Pa({enabled:_y(),provider:Dg("openrouter"),model:bo().trim().min(1).max(256)}),Vxr=ed(["environment","system","session","none"]),Uxr=Pa({provider:OAt,label:bo().min(1),environmentVariable:bo().min(1),configured:_y(),source:Vxr,editable:_y(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),Jxr=Pa({provider:OAt,ok:Dg(!0),testedAt:bo().datetime()});function Wxr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const wye=zLe($xr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Dg(!0),managed:_y(),byok:_y(),byokProviders:Gd(bo().min(1))}),preferredRoute:qxr,providerCredentials:Gd(Uxr),codingInference:zxr}));function Hxr(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(Hxr(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 nht="volter.collaboration.participant.v1",Gxr="volter.collaboration.remote-share.v1",ZOe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function Kxr(){if(ZOe?.participantId)return ZOe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(nht);if(n)return n;globalThis.localStorage?.setItem(nht,t)}catch{}return t}const RAt=Kxr(),L$=(()=>{try{return globalThis.localStorage?.getItem(Gxr)==="1"}catch{return!1}})(),Xxr=ZOe?.displayName||"Local editor",Yxr=Symbol.for("volter.collaboration.revision"),QOe=globalThis[Yxr]??={value:0};function FAt(t){Number.isInteger(t)&&t>=QOe.value&&(QOe.value=t)}function Dw(){return{participantId:RAt,expectedRevision:QOe.value}}const Zxr={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$=Zxr,MAt=0,eRe=null;const tRe=new Set;function lR(t,n=null){if(!(eRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,eRe=n,MAt++;for(const s of tRe)s()}}async function jAt(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 wye.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 jAt(c,`${n} ${t} failed`);return lR(d),d}function GLe(){return r$}function KLe(){return Wxr(r$)}function cN(){return MAt}function wpe(){return eRe}function Tye(t){return tRe.add(t),()=>tRe.delete(t)}async function iht(){try{const t=await jAt(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 Qxr=t=>NC("/__editor/account/mock-session","POST",{email:t}),ewr=t=>NC("/__editor/account/twin-session","POST",{email:t}),twr=()=>NC("/__editor/account/session","DELETE"),rwr=t=>NC("/__editor/account/spend-policy","PUT",t),nwr=()=>NC("/__editor/account/alerts/read","POST"),iwr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),owr=t=>NC("/__editor/account/coding-inference","PUT",t);async function swr(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 awr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),cwr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function lwr(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 Jxr.parse(s)}const oht=t=>NC("/__editor/account/plan","PUT",{action:t});async function LAt(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(wye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const uwr=t=>LAt("/__editor/account/checkout",{plan:t}),fwr=t=>LAt("/__editor/account/credits",{packId:t});async function dwr(){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 Lxr.array().parse(n.entries??[])}async function pwr(){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 Bxr.parse(n)}async function _wr(){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 mwr(){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 hwr(){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 gwr(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(wye.parse(s.account)),!0}async function ywr(){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 vwr(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(wye.parse(s.account)),!0}function bwr(){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))):iht().catch(()=>{});const n=window.setInterval(()=>void iht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function BAt(t){return t?qAt(t)?null:t:null}function Swr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function $At(t){return t&&qAt(t)?t:null}function qAt(t){return t.keyedBy==="display"}const Tgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:$At,nodeKeyedPhysics:BAt,physicsOwnerOf:Swr},Symbol.toStringTag,{value:"Module"})),xwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},XLe=Object.keys(xwr);function wwr(){const t={};for(const n of XLe)t[n]=0;return t}const Twr={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},YLe=Object.keys(Twr);function Cwr(t){const n={};for(const s of YLe)n[s]=t[s]!==void 0;return n}const Cgn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:YLe,WRITE_ANCHOR_KINDS:XLe,emptyWriteAnchorKindCounts:wwr,measureAuthoringProviders:Cwr},Symbol.toStringTag,{value:"Module"})),Ewr=["claim","shape","operation","effect","round-trip"],Hme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function zAt(t,n){return Hme[t]>=Hme[n]}function rQ(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||Hme[g.stage]>=Hme[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}:zAt(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 VAt{#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 rQ({...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 Pp(){return t=>t}function kwr(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(kwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Gme(t){const n=rQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=rQ({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 Egn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:Ewr,SeamEvidenceLedger:VAt,defineSeamShape:Pp,gradeSeamCarrier:Gme,gradeSeamEvidence:rQ,inspectSeamShape:vB,seamStageAtLeast:zAt},Symbol.toStringTag,{value:"Module"})),XY=Pp()({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"}}),rRe=Pp()({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"}}),UAt=Pp()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),JAt=Pp()({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"}}),WAt=Pp()({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"}}),HAt=Pp()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),GAt=Pp()({links:{optional:!1,kind:"function",required:"operation"}}),KAt=Pp()({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"}}),XAt=Pp()({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"}}),YAt=Pp()({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"}}),ZAt=Pp()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),QAt=Pp()({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"}}),e3t=Pp()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),t3t=Pp()({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"}}),r3t=Pp()({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"}}),n3t=Pp()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),i3t=Pp()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),o3t=Pp()({resolve:{optional:!1,kind:"function",required:"operation"}}),s3t=Pp()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),nRe={selection:UAt,transforms:JAt,inspector:WAt,assetSubject:HAt,related:GAt,instances:KAt,structure:XAt,persistence:YAt,pickable:ZAt,rects:t3t,boxEdit:r3t,text:n3t,colorSample:i3t,stories:QAt,truth:o3t,spatialHandles:s3t,assetDrop:e3t},kgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:e3t,ASSET_SUBJECT_PROVIDER_SHAPE:HAt,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:nRe,BOX_EDIT_PROVIDER_SHAPE:r3t,COLOR_SAMPLE_PROVIDER_SHAPE:i3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:KAt,HIERARCHY_PROVIDER_SHAPE:rRe,INSPECTOR_PROVIDER_SHAPE:WAt,PERSISTENCE_PROVIDER_SHAPE:YAt,PICK_PROVIDER_SHAPE:ZAt,RECT_PROVIDER_SHAPE:t3t,RELATED_SUBJECTS_PROVIDER_SHAPE:GAt,SELECTION_PROVIDER_SHAPE:UAt,SPATIAL_HANDLES_PROVIDER_SHAPE:s3t,STORIES_PROVIDER_SHAPE:QAt,STRUCTURE_PROVIDER_SHAPE:XAt,TEXT_PROVIDER_SHAPE:n3t,TRANSFORM_PROVIDER_SHAPE:JAt,TRUTH_PROVIDER_SHAPE:o3t},Symbol.toStringTag,{value:"Module"})),iRe=Pp()({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"}}),a3t=Pp()({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"}}),c3t=Pp()({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"}}),l3t=Pp()({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"}}),u3t=Pp()({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"}}),f3t=Pp()({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"}}),d3t=Pp()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),p3t=Pp()({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"}}),_3t=Pp()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),m3t={networking:l3t,navigation:u3t,audio:f3t,camera:d3t,debug:p3t,renderDebug:_3t},Agn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:f3t,CAMERA_ADAPTER_SHAPE:d3t,DEBUG_ADAPTER_SHAPE:p3t,NAVIGATION_ADAPTER_SHAPE:u3t,NETWORKING_ADAPTER_SHAPE:l3t,PHYSICS_2D_ADAPTER_SHAPE:c3t,PHYSICS_ADAPTER_SHAPE:a3t,RENDER_DEBUG_ADAPTER_SHAPE:_3t,SYSTEM_ADAPTERS_SHAPE:iRe,SYSTEM_PROVIDER_SHAPES:m3t},Symbol.toStringTag,{value:"Module"})),ZLe=new VAt;function Awr(t){ZLe.record(t)}const sht=new WeakMap;let Dwr=1;function h3t(t){const n=sht.get(t);if(n)return n;const s=`system-${Dwr++}`;return sht.set(t,s),s}function Pwr(t){const n=t.epoch??h3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?$At(t.adapter)?c3t:a3t:m3t[t.slot],m=[...vB({prefix:"system",value:c,shape:iRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...ZLe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Gme({seam:s,subject:t.subject,epoch:n,required:iRe[t.slot].required,receipts:m,shape:d})}let qS={},nQ=null,QLe=null;const Kme=new Set,Xme=new Set,oRe=new Set;let eBe=0;function sRe(){for(const t of oRe)t()}function Yme(t){if(t!==Eye())for(const n of Kme)n()}function Zme(t,n){const s=Aye();if(!(t===kye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){eBe++;for(const c of Xme)c()}}const LS=new Map;let b_e=null,g3t=0;const aRe=new Set,tBe="";function y3t(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=Pwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function ZI(){return b_e!==null&&LS.has(b_e)?b_e:LS.keys().next().value??null}function Qme(){g3t++;for(const t of aRe)t()}function Iwr(t){const n=ZI();if(b_e=t,n!==ZI()){Qme(),eBe++;for(const s of Kme)s();for(const s of Xme)s()}}function Dgn(){return ZI()}function Nwr(t){return aRe.add(t),()=>aRe.delete(t)}function Pgn(){return g3t}function Cye(){const t=ZI();return(t===null?void 0:LS.get(t))??qS}function Owr(t,n=tBe){const s=ZI(),c=Eye(),d=kye(),m=Aye();if(t){y3t(t,n),LS.set(n,t),qS=t,Yme(c),Zme(d,m),sRe(),s!==ZI()&&Qme();return}LS.delete(n),qS=LS.values().next().value??{},Yme(c),Zme(d,m),sRe(),s!==ZI()&&Qme()}function Rwr(){for(const t of[...LS.keys()])Owr(null,t);Iwr(null)}function Ign(t,n=tBe){const s=Eye(),c=kye(),d=Aye(),m=LS.get(n);y3t(t,n),LS.set(n,t),qS===m&&(qS=t),Yme(s),Zme(c,d),sRe(),ZI()===n&&Qme()}function Ngn(){return qS}function Fwr(t){return oRe.add(t),()=>oRe.delete(t)}function Mwr(){return[...LS.keys()]}function aht(t){const n=t.filter(d=>d!==tBe),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 cht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function jwr(t){const n=Mwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new cht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${aht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new cht(`${n.length} instances are live (${aht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function Ogn(){return BAt(qS.physics)}function Lwr(){return qS.camera??null}function Eye(){return qS.networking??QLe??null}function Bwr(){return Cye().networking??QLe??null}function $wr(t){return Kme.add(t),()=>Kme.delete(t)}function Rgn(t){const n=Eye();QLe=t,Yme(n)}function Fgn(){return qS.debug??null}function Mgn(t){const n=kye(),s=Aye();nQ=t,Zme(n,s)}function kye(){return qS.audio??nQ}function qwr(){return Cye().audio??nQ}function zwr(t){return Xme.add(t),()=>Xme.delete(t)}function Vwr(){return eBe}function Aye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&nQ&&t.add(nQ),[...t]}function Uwr(){return qS.renderDebug??null}function jgn(){return Cye().renderDebug??null}let v3t=null;const cRe=new Set;function Lgn(t){v3t=t;for(const n of cRe)n()}function Dye(){return v3t?.()??null}function Pye(t){cRe.add(t);const n=Nwr(t);return()=>{cRe.delete(t),n()}}function lN(){const t=Dye();return t?`play:${t.instanceId}`:"stopped"}function Iye(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=[],Jwr=0,b3t=0;const lRe=new Set;function lht(){b3t++;for(const t of lRe)t()}function S3t(t){return lRe.add(t),()=>{lRe.delete(t)}}function uht(){return b3t}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:Jwr++};return xO=[...xO,n],lht(),()=>{xO.includes(n)&&(xO=xO.filter(s=>s!==n),lht())}}function uRe(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 S_e=null,x3t=0;const fRe=new Set;function fht(){x3t++;for(const t of fRe)t()}function w3t(t){return fRe.add(t),()=>fRe.delete(t)}function dRe(){return x3t}function rBe(){return S_e}function Wwr(t){const n=Symbol(t.documentId);return S_e={...t,token:n},fht(),()=>{S_e?.token===n&&(S_e=null,fht())}}function Hwr(){Ze.useSyncExternalStore(w3t,dRe);const t=rBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const Gwr=Iye();function Kwr(){Gwr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:Hwr}))})}Kwr();let bB=null,T3t=0;const pRe=new Set;function dht(){T3t+=1;for(const t of pRe)t()}function Xwr(t){return pRe.add(t),()=>{pRe.delete(t)}}function pht(){return T3t}function Ywr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},dht(),()=>{bB?.token===s&&(bB=null,dht())}}function _Re(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const uN=new Map,mRe=new Map;function C3t(){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"&&C3t()});let Nc=null,nBe=null;function iBe(){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 E3t(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 Zwr(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 Qwr(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=Zwr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=eTr({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:nBe}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Tpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function _ht(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 eTr(t){return[Tpe("workspace-sync",t.workspaceSyncMs),Tpe("reveal-schedule",t.revealScheduleMs),_ht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),_ht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Tpe("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),Tpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function Bgn(t,n=Date.now()){const s=(mRe.get(t)??0)+1;mRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:Qwr(d,n)};return Nc=null,uN.set(t,m),hht(),mht(),m}return uN.set(t,c),hht(),mht(),c}let hRe=new Set;const gRe=new Set;function mht(){C3t();for(const t of gRe)t()}function tTr(t){return gRe.add(t),()=>gRe.delete(t)}function hht(){uN.size!==0&&k3t()}function k3t(){const t=hRe;hRe=new Set;for(const n of t)n()}let ght=!1;function rTr(){ght||typeof document>"u"||(ght=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&k3t()}))}function Nye(){return uN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(rTr(),new Promise(t=>hRe.add(t)))}function nTr(){return[...uN.values()]}function iTr(t){iBe()&&(Nc=E3t(t,Date.now(),{}))}function $gn(t,n={}){if(!iBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=E3t(t,s,n),Nc.boardBuildStartedAtMs=s}function qgn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function zgn(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 Vgn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function Ugn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function Jgn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function Wgn(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 Hgn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function Ggn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function Kgn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function Xgn(t){Nc&&Nc.stories.push(t)}function Ygn(){return Nc?.documentId??null}function oTr(t){iBe()&&(nBe=t)}function sTr(){uN.clear(),mRe.clear(),Nc=null,nBe=null}const aTr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,n2=null,iQ=null,uR=null;function yht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let A3t=0;const yRe=new Set,x5e=new Set,oBe=new Map,XO=new Map;function wC(){A3t++;for(const t of yRe)t()}function i2(t){return yRe.add(t),()=>{yRe.delete(t)}}function K1(){return A3t}function l0(){return hp}function e_(){return n2}function vRe(){return iQ}function cTr(t,n){X0(t)&&iQ!==n&&(iQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===n2)??null}function oQ(t){if(t===n2)return;t&&iTr(t);const n=hp.find(c=>c.descriptor.id===n2);n2=t,iQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function lTr(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(lTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||n2===null)&&oQ(t.id),s&&yht(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&&n2!==t.id&&(oQ(t.id),m=!0),m&&wC(),s&&yht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(n2!==t&&(oQ(t),wC()),!0):!1}function D3t(){uR=null}function uTr(t){if(X0(t)){uR=null;return}uR=t}function EN(t,n={}){if(x5e.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;x5e.add(t);try{if(n2===t){const m=s>0?hp[s-1]:hp[s+1]??null;oQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),oBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{x5e.delete(t)}}function P3t(){if(hp.length===0&&n2===null)return;const t=hp;oQ(null),hp=[],iQ=null,zk=null,oBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function fTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function Zgn(t){XO.has(t)&&wC()}async function dTr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=oBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function pTr(){return n2?dTr(n2):Promise.resolve(null)}function Qgn(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 I3t(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 sBe(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 Oye(){return n2?sBe(n2):null}const _Tr={adapter:null,nodeId:null};function mTr(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 aBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ze.useEffect(()=>{if(n)return Wwr({documentId:t,title:c,type:s,...m?{status:m}:{}})},[n,t,m,c,s]);const S=Ze.useRef(g);S.current=g,Ze.useEffect(()=>{if(n)return fTr(t,()=>S.current?.()??_Tr)},[n,t]);const k={id:t,title:c,kindLabel:s,...m?{note:{text:m,testId:"asset-editor-status"}}:{},sections:d??[]},A=Ze.useRef(k);A.current=k;const F=mTr(k);return Ze.useEffect(()=>{if(n)return Ywr(t,()=>A.current)},[n,t,F]),null}function hTr({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(aBe,{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 gTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:hTr,AssetEditorSubject:aBe},Symbol.toStringTag,{value:"Module"})),x_e=new Map,bRe=new Set;function vht(){for(const t of bRe)t()}function eyn(t){const n=Object.entries(t);for(const[s,c]of n)x_e.set(s,c);return vht(),()=>{for(const[s,c]of n)x_e.get(s)===c&&x_e.delete(s);vht()}}function yTr(t){return x_e.get(t)??null}function vTr(t){return bRe.add(t),()=>{bRe.delete(t)}}function bTr(t){return q.jsx(aBe,{...t})}const bht=new Map;function STr(t){const n=bht.get(t);if(n)return n;function s(c){const d=Ze.useCallback(()=>yTr(t),[]),m=Ze.useSyncExternalStore(vTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,bht.set(t,s),s}const cBe=new Proxy(Object.freeze({AssetDocument:bTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):STr(n)}}),Sht=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)"}}),xTr=["classic","glass"],wTr=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 ehe=null;const the=new Set;function TTr(){return ehe??=[...wTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ehe}function CTr(t){return the.add(t),()=>the.delete(t)}function ETr(t){if(Rye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),ehe=null;for(const n of the)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),ehe=null;for(const n of the)n()}}}function Rye(t){return typeof t=="string"&&(xTr.includes(t)||SB.has(t))}function kTr(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??Sht.shape,elevation:d?.elevation??Sht.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 ATr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},DTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Cpe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function N3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Cpe(t),alignItems:n?ATr[n]:void 0,justifyContent:s?DTr[s]:void 0,padding:Cpe(c),paddingInline:Cpe(d),paddingBlock:Cpe(m),...g}}function hee(t,n){return n?`${t} ${n}`:t}function O3t({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-stack",t),style:N3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-inline",t),style:N3t(n)})}function tyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:hee("volter-spacer",t)})}function PTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:hee("volter-divider",n)})}function ITr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:hee("volter-actions",n),gap:2,align:"center",children:t})}function R3t(t,n){return n?`${t} ${n}`:t}const _p=Ze.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:R3t("volter-text",g)})});function ryn({className:t,...n}){return q.jsx("kbd",{...n,className:R3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function SRe({labelledBy:t,onDismiss:n,size:s="default",variant:c="default",className:d,...m}){const[g]=Ze.useState(()=>typeof document>"u"?null:document.querySelector(".volter-editor-theme")),S=Ze.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"}}),MS.createPortal(k,g)]}):k}function xRe({titleId:t,title:n,description:s}){return q.jsxs(O3t,{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 F3t({className:t,...n}){return q.jsx(O3t,{...n,className:B$("volter-dialog-body",t)})}function wRe({children:t,className:n,...s}){return q.jsx(ITr,{...s,className:B$("volter-dialog-footer",n),children:t})}function nyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function iyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function oyn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function syn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function lBe(t,n){return n?`${t} ${n}`:t}function NTr({className:t,...n}){return q.jsx("div",{...n,className:lBe("volter-field-group",t)})}function w_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:lBe("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 ayn({className:t,...n}){return q.jsx("label",{...n,className:lBe("volter-field-label",t)})}const cyn=Ze.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 OTr({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 RTr({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 lyn({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 uyn=Ze.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function fyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function xht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function dyn({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 M3t(t,n){return n?`${t} ${n}`:t}const pyn=Ze.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:M3t("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()}})}),_yn=Ze.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:M3t("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 gee(t,n){return n?`${t} ${n}`:t}const n$=Ze.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:gee("volter-toolbar",d)})});function wht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-toolbar-group",t)})}function Tht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:gee("volter-toolbar-divider",t.className)})}function myn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:gee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function hyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-split-button",t)})}function j3t(t,n){return n?`${t} ${n}`:t}const gyn=Ze.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:j3t("volter-tree",s)})}),yyn=Ze.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:j3t("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 L3t(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 Fye(t,n){return n?`${t} ${n}`:t}function TRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function FTr(t){TRe(t)[0]?.focus()}const fN=Ze.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ze.useRef(null);return Ze.useImperativeHandle(k,()=>A.current),Ze.useEffect(()=>{c&&TRe(A.current)[0]?.focus()},[c]),Ze.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!A.current?.contains(J)&&!d?.current?.contains(J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:Fye("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=TRe(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=Ze.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:Fye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:Fye("volter-menu-separator",t.className)})}const uBe=Ze.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:Fye("volter-menu-trigger",n)})});function rhe({children:t}){const n=Ze.useRef(null),[s,c]=Ze.useState(null),d=Ze.useId();return Ze.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?MS.createPortal(q.jsx("div",{"data-volter-portal-content":d,style:{display:"contents"},children:t}),s):null]})}function fBe({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]=Ze.useState(null),[J,$]=Ze.useState(null),G=Ze.useRef(null),se=Ze.useRef(!0),pe=Ze.useRef(!1),ue=Ze.useCallback(()=>{const De=t.current;if(!De||!F)return;const Pe=De.getBoundingClientRect(),be=F.getBoundingClientRect(),Te=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},$e=m?L3t({...Te,width:be.width,height:be.height}):Te,bt=G.current;bt?.left===$e.left&&bt.top===$e.top||(G.current=$e,$($e))},[n,t,m,d,F,s]);Ze.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 Te=se.current&&F.contains(document.activeElement);window.removeEventListener("resize",ue),document.removeEventListener("scroll",ue,!0),cancelAnimationFrame(Pe),X?.disconnect(),Te&&queueMicrotask(()=>t.current?.focus())}},[t,F,ue]),Ze.useLayoutEffect(()=>{!c||pe.current||!F||!J||(pe.current=!0,FTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(rhe,{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 vyn({label:t,children:n,gap:s=0,...c}){const[d,m]=Ze.useState(!1),g=Ze.useRef(null),S=Ze.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(fBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ze.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=Ze.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"},Cht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},MTr="#579EFF",jTr="rgba(87,158,255,0.15)",w5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},dBe="#d8dee9",pBe="rgba(216,222,233,0.18)",B3t="#FF6B6B",$3t="#e0a030",q3t="#4caf50",z3t="rgba(76,175,80,0.15)",V3t="rgba(255,107,107,0.15)",U3t="rgba(224,160,48,0.12)",J3t="rgba(255,107,107,0.06)",W3t="rgba(0,0,0,0.5)",H3t="#ff79c6",G3t="rgba(255,121,198,0.08)",K3t="#22b8d6",Mye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',jye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',T5e={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)"},_Be={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)"},nhe={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)",Syn="var(--volter-accent-muted)",xyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},T_e="var(--volter-danger)",wyn="var(--volter-warn)",Tyn="var(--volter-success)",Cyn="var(--volter-success-muted)",Eyn="var(--volter-danger-muted)",kyn="var(--volter-warn-muted)",Ayn="var(--volter-danger-faint)",Dyn="var(--volter-scrim)",Pyn="var(--volter-dynamic)",Iyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},X3t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},mBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Zp(t){return{control:{...LTr,...t.density?.control},font:{...$Tr,...t.density?.font},icon:{...BTr,...t.density?.icon},chrome:{...X3t,...t.density?.chrome}}}const LTr={compact:20,default:24,comfortable:28},C5e={resting:1,active:2},BTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},$Tr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},C_e={regular:400,semibold:600,bold:700},Epe={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"}},Nyn="var(--volter-font-sans)",Oyn="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},sQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},Ryn={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)"},Eht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},Fyn={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)"}},Myn="var(--volter-focus-ring)",qTr=["outliner","properties"],Lye=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:Cht[1],strong:Cht[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:MTr,muted:jTr},semantic:{danger:B3t,dangerMuted:V3t,dangerFaint:J3t,warning:$3t,warningMuted:U3t,success:q3t,successMuted:z3t,dynamic:H3t,dynamicMuted:G3t,instance:K3t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:W3t},typography:{sans:Mye,mono:jye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:T5e.sm,medium:T5e.md,large:T5e.lg}},zTr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:w5e[1],muted:w5e[2],dim:w5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:dBe,muted:pBe}}},VTr={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:Mye,mono:jye},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)"}},CRe={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:dBe,muted:pBe},semantic:{danger:B3t,dangerMuted:V3t,dangerFaint:J3t,warning:$3t,warningMuted:U3t,success:q3t,successMuted:z3t,dynamic:H3t,dynamicMuted:G3t,instance:K3t},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:Mye,mono:jye},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}},UTr=(()=>{const{treatment:t,...n}=CRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...CRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:W3t}}})(),ERe={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:dBe,muted:pBe},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:Mye,mono:jye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},JTr=(()=>{const{treatment:t,...n}=ERe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...ERe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),Y3t={"graphite-dark":i$,"graphite-neutral":zTr,"midnight-high-contrast":VTr,"glass-dark":CRe,"glass-dark-lite":UTr,"liquid-glass":ERe,"liquid-glass-lite":JTr};function WTr(t){return typeof t=="string"&&Object.hasOwn(Y3t,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 HTr(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 GTr(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 kht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Aht(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 kRe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function KTr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function XTr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function YTr(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 ZTr=.6,QTr=.5;function ihe(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/ZTr).toFixed(3)))})`}function Z3t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ihe(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 eCr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ihe(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function tCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${ihe(.28,n)}`),c.push(`inset 0 -1px 1px ${ihe(.1,n)}`)),s>0){const d=m=>`${Number((m*s/QTr).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 rCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function nCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function iCr(t){return t?"17px":"var(--volter-radius-md)"}function oCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function sCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function aCr(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 Bye(t){return q$(t)}function cCr(t){return Bye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function Q3t(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 e4t(t){if(!Q3t(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 lCr(t){return Bye(t)?"var(--volter-content-primary)":Q3t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function uCr(t){return Bye(t)?"color-mix(in srgb, currentColor 30%, transparent)":e4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function fCr(t){return Bye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function dCr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function pCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":aCr(t,.82)??"var(--volter-accent)"}function _Cr(t){const n=t?.edgeSpecular??0;return n<=0?"none":Z3t({...t,edgeSpecular:n*.4})}function mCr(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 t4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function r4t(t){return t4t(t?.textShadowOpacity??0)}function hCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:t4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??kRe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:r4t(t.treatment),frostBg:kRe(t.treatment)}}function gCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":vCr(t.color.surface.chrome,.9):t.color.surface.chrome}function yCr(t){return t.color.surface.panel}function vCr(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 Dht(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 bCr(t){return t.color.boundary.area??t.color.boundary.default}function SCr(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 xCr(t){const n=Zp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function wCr(t){const n=hCr(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":GTr(t.treatment),"--volter-surface-sticky":kht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":kht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Aht(t.treatment),"--volter-content-frost-filter":Aht(t.treatment),"--volter-content-frost-bg":kRe(t.treatment),"--volter-input-surface":KTr(s),"--volter-input-border":XTr(s),"--volter-input-shadow":YTr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":Z3t(t.treatment),"--volter-card-specular-sheen":eCr(t.treatment),"--volter-card-specular-shadow":tCr(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":mCr(t.treatment),"--volter-island-surface":rCr(t),"--volter-island-backdrop-filter":nCr(t),"--volter-island-radius":iCr(s),"--volter-island-border-color":oCr(s),"--volter-island-shadow":sCr(s),"--volter-island-specular-ring":_Cr(t.treatment),"--volter-selection-bg":cCr(t),"--volter-content-on-selection":lCr(t),"--volter-selection-border":uCr(t),"--volter-selection-indicator":fCr(t),"--volter-island-control-radius":dCr(s),"--volter-island-primary-bg":pCr(t),"--volter-content-text-shadow":r4t(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":gCr(t),"--volter-glass-regular-backdrop-filter":Dht(t.treatment),"--volter-glass-regular-panel-bg":yCr(t),"--volter-glass-regular-panel-backdrop-filter":Dht(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":bCr(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":xCr(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":SCr(t.color.surface.panel,t.color.content.primary),...e4t(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(mBe.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(Lye.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":`${C5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":HTr(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":`${Zp(t).chrome.commandBar}px`,"--volter-panel-header-height":`${Zp(t).chrome.panelHeader}px`,"--volter-local-toolbar-height":`${Zp(t).chrome.localToolbar}px`,"--volter-tree-row-height":`${Zp(t).chrome.treeRow}px`,"--volter-tree-indent":`${Zp(t).chrome.treeIndent}px`,"--volter-status-bar-height":`${Zp(t).chrome.statusBar}px`,"--volter-tool-size":`${Zp(t).chrome.toolSize}px`,"--volter-tool-width":`${Zp(t).chrome.toolWidth}px`,"--volter-tool-gap":`${Zp(t).chrome.toolGap}px`,"--volter-area-seam-width":`${Zp(t).chrome.areaSeam}px`,"--volter-control-compact-height":`${Zp(t).control.compact}px`,"--volter-control-default-height":`${Zp(t).control.default}px`,"--volter-control-comfortable-height":`${Zp(t).control.comfortable}px`,"--volter-stroke-resting":`${C5e.resting}px`,"--volter-stroke-active":`${C5e.active}px`,"--volter-font-xs":`${Zp(t).font.xs}px`,"--volter-font-sm":`${Zp(t).font.sm}px`,"--volter-font-base":`${Zp(t).font.base}px`,"--volter-font-md":`${Zp(t).font.md}px`,"--volter-font-lg":`${Zp(t).font.lg}px`,"--volter-font-xl":`${Zp(t).font.xl}px`,"--volter-font-2xl":`${Zp(t).font["2xl"]}px`,"--volter-icon-xs":`${Zp(t).icon.xs}px`,"--volter-icon-sm":`${Zp(t).icon.sm}px`,"--volter-icon-md":`${Zp(t).icon.md}px`,"--volter-icon-lg":`${Zp(t).icon.lg}px`,"--volter-icon-xl":`${Zp(t).icon.xl}px`,"--volter-icon-2xl":`${Zp(t).icon["2xl"]}px`,"--volter-font-heading":`${Zp(t).font.heading}px`,"--volter-font-weight-regular":String(C_e.regular),"--volter-font-weight-semibold":String(C_e.semibold),"--volter-font-weight-bold":String(C_e.bold),"--volter-leading-tight":String(Epe.tight),"--volter-leading-snug":String(Epe.snug),"--volter-leading-normal":String(Epe.normal),"--volter-leading-relaxed":String(Epe.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 ARe="volter-editor-theme";function TCr(t,n=i$){t.classList.add(ARe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(wCr(n)))t.style.setProperty(s,c)}const jyn={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},Lyn={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},n4t=Ze.createContext(null);function CCr(){return Ze.useContext(n4t)}function DR(t,n){return n?`${t} ${n}`:t}const Zm=Ze.forwardRef(function({className:n,type:s="text",...c},d){return q.jsx("input",{...c,ref:d,type:s,className:DR("volter-input",n)})}),Iw=Ze.forwardRef(function({className:n,...s},c){return q.jsx("select",{...s,ref:c,className:DR("volter-select",n)})}),hBe=Ze.forwardRef(function({className:n,...s},c){return q.jsx("textarea",{...s,ref:c,className:DR("volter-input volter-textarea",n)})}),TD=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"checkbox",className:DR("volter-checkbox",n)})}),i4t=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),Byn=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),$yn=Ze.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",ECr={id:hC,title:"Editor"},wB=new Map;let ohe=null,aQ=hC;const DRe=new Set;function PRe(){for(const t of DRe)t()}function qyn(){return ohe??=[ECr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],ohe}function yee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function kCr(t){if(yee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),ohe=null,PRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),ohe=null,PRe())}}function she(){return aQ}function ahe(t){const n=yee(t)?t:hC;n!==aQ&&(aQ=n,PRe())}function gBe(t){return DRe.add(t),()=>DRe.delete(t)}function o4t(t){return aQ===hC?null:wB.get(aQ)?.glyphs[t]??null}const Pht={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)"},Iht={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}){Ze.useSyncExternalStore(gBe,she,she);const k=o4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Iht[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:Pht[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(Wyr,{...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:Pht[n],color:Iht[s],...m}})}function s4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?ATt:zTt,size:n,tone:s,...c?{style:c}:{}})}function zyn({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?wTt:nLe,size:n,tone:s})}function fy(t,n){return{...n,iconName:t}}const Kk={action:{add:JTt,close:tLe,delete:CTt,search:TTt,refresh:U0r,undo:jOe,redo:wmt,build:B0r,export:V0r,select:Tmt},transport:{play:T0r,pause:q0r,restart:wmt,stop:ETt,step:E0r},content:{project:FOe,folder:uee,file:RTt,source:iLe,scene:sLe,entity:aR,component:GB,camera:nye,light:Zje,image:iB,audio:rLe,data:kTt,code:Qje,stateMachine:PTt},status:{success:eLe,info:R$,warning:fee,error:OTt,visible:Yje,hidden:oLe,locked:Ime,unlocked:MOe},viewport:{zoomIn:u0r,zoomOut:c0r,pan:b0r,frame:s0r,projection:fy("viewport-projection",b5e),projectionOrthographic:fy("viewport-orthographic",b5e),camera:fy("viewport-camera",xmt),cameraView:fy("viewport-camera-view",xmt),cameraLocked:fy("viewport-camera-locked",Ime),cameraUnlocked:fy("viewport-camera-unlocked",MOe)},modeling:{extrude:fy("mesh-extrude",ITt),inset:fy("mesh-inset",L0r),bevel:fy("mesh-bevel",J0r),loopCut:fy("mesh-loop-cut",f0r),knife:fy("mesh-knife",R0r),smooth:fy("mesh-smooth",a0r),shrinkFatten:fy("mesh-shrink-fatten",FTt),subdivide:fy("mesh-subdivide",C0r)},tool:{extension:GB,select:fy("tool-select-box",Tmt),move:jTt,rotate:xTt,scale:fy("tool-scale",p0r),transform:fy("tool-transform",S0r),snap:w0r,frame:UTt,grid:b5e,profiler:qTt},panel:{outliner:fy("outliner",HTt),properties:fy("properties",LTt),"folder-open":FOe,"cubes-stacked":MTt,users:d0r,list:vZ,"rotate-left":jOe}};function SZ({value:t,onChange:n,onChangeEnd:s,step:c=.1,precision:d=3,disabled:m=!1,label:g,labelColor:S,style:k,testId:A,title:F}){const[D,J]=Ze.useState(!1),[$,G]=Ze.useState(""),se=Ze.useRef({startX:0,startVal:0,dragging:!1,gesture:!1,lastVal:0}),pe=Ze.useRef(null),ue=CCr();Ze.useEffect(()=>{if(!D)return;const Te=pe.current;Te&&(Te.focus(),Te.select())},[D]);const Ce=t===null,De=t??0,Pe=Ce?"—":Number.isFinite(De)?De.toFixed(d):0 .toFixed(d),be=Te=>{if(m)return;se.current={startX:Te.clientX,startVal:De,dragging:!1,gesture:!1,lastVal:De};const $e=It=>{const Wt=It.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",$e),window.removeEventListener("pointerup",bt),se.current.gesture&&ue?.end(),se.current.dragging?s?.(se.current.lastVal):(J(!0),G(Ce?"":Pe))};window.addEventListener("pointermove",$e),window.addEventListener("pointerup",bt)},X=()=>{J(!1);const Te=Number.parseFloat($);Number.isFinite(Te)&&(n(Te),s?.(Te))};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:Te=>G(Te.target.value),onBlur:X,onKeyDown:Te=>{Te.key==="Enter"&&X(),Te.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 ACr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:C_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},DCr={...ACr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function $ye({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:{...DCr,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 PCr({label:t,icon:n,description:s,actions:c,collapsible:d=!0,defaultOpen:m=!0,children:g}){const[S,k]=Ze.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(s4t,{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 ICr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function NCr(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 OCr(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=Ze.useId(),g=Ze.useRef(null),S=Ze.useRef(null),k=Ze.useRef(null),A=Ze.useRef(!1),F=Ze.useRef(!1),[D,J]=Ze.useState(!1),[$,G]=Ze.useState(null),[se,pe]=Ze.useState({left:0,top:0,ready:!1});Ze.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ze.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)};Ze.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),Te=S.current?.getBoundingClientRect();if(!X||!Te)return;const $e=NCr(c,X,Te)?c:ICr(c);pe(OCr($e,X,Te))};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(Ze.isValidElement(s)){const be=[s.props["aria-describedby"],D?m:null].filter(Boolean).join(" ");Pe=Ze.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&&$&&MS.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 RCr({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 E5e={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},Vyn=Go.typography.sans,Uyn=Go.typography.mono;function Jyn(t,n){t.onChange(n)}function Wyn(t,n){(t.onChangeEnd??t.onChange)(n)}const Hyn={display:"flex",alignItems:"center",gap:4},Gyn={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},FCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},MCr=72;function Kyn({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 Xyn(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 k5e=22,Nht={width:k5e,height:k5e,flex:`0 0 ${k5e}px`,borderRadius:E5e.radiusSmall,border:`1px solid ${E5e.border}`,background:E5e.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 jCr({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:Nht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:Nht,"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:tLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function IRe({value:t,onCommit:n,onKeyDown:s,onFocus:c,...d}){const[m,g]=Ze.useState(null),S=Ze.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 E_e=new Map,NRe=new Set;let a4t=0;function Oht(){a4t+=1;for(const t of NRe)t()}function Yyn(t,n){return E_e.set(t,n),Oht(),()=>{E_e.get(t)===n&&(E_e.delete(t),Oht())}}function yBe(t){return NRe.add(t),()=>NRe.delete(t)}function o$(){return a4t}function o2(t){return t?E_e.get(t)??null:null}const QL=new Map;function Zyn(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 LCr(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,che=new Set,k_e=new Set;let c4t=0;function l4t(){c4t+=1;for(const t of[...TB])t()}function BCr(t,n){return xZ.set(t,n),l4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function $Cr(t){xZ.has(t)&&l4t()}function qCr(t){return TB.add(t),()=>{TB.delete(t)}}function Rht(){return c4t}function cQ(t){return xZ.get(t)}function u4t(t,n=1e4){const s=cQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=cQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function f4t(t){che.add(t);for(const n of[...k_e])n();return()=>{che.delete(t)}}function d4t(t,n=1e4){return che.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{che.has(t)&&(clearTimeout(d),k_e.delete(c),s(!0))},d=setTimeout(()=>{k_e.delete(c),s(!1)},n);k_e.add(c)})}async function vBe(t){if(LCr(t)&&!await CC(()=>o2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let ORe=null;const ZY=new Map;let YO=[];function zCr(t){if(ORe=t,!t)return;const n=YO;YO=[];for(const s of n)p4t(t,s)}function p4t(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 VCr=0;function s$(t){const n=t.id??`notification-${++VCr}`,s={...t,id:n};return ORe?p4t(ORe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>bBe(n))}function bBe(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},lhe=!0,kpe=null,A_e=null,RG=null,D_e=!1;const QY=new Set;function UCr(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 uhe(t){Xk=t;for(const n of QY)n()}async function JCr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function WCr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function HCr(){try{const t={sessions:await JCr()},n=UCr(t.sessions,Xk.sessions,A_e),s=n.sessionId;n.latestAppeared&&(lhe=!0),A_e=s;const c=s?await WCr(s):null;if(A_e!==s){D_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=lhe?m:Math.min(Xk.cursorMs,m);uhe({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){uhe({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function lQ(){return RG?(D_e=!0,RG):(RG=HCr().finally(()=>{RG=null,D_e&&(D_e=!1,lQ())}),RG)}function GCr(t){return QY.add(t),QY.size===1&&(lQ(),kpe=window.setInterval(()=>void lQ(),1e3)),()=>{QY.delete(t),QY.size===0&&kpe!==null&&(window.clearInterval(kpe),kpe=null)}}function KCr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(A_e=n.id,lhe=!0,uhe({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),lQ())}function XCr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));lhe=Xk.liveEdgeMs-n<250,uhe({...Xk,cursorMs:n})}const _4t={getSnapshot:()=>Xk,subscribe:GCr,select:KCr,seek:XCr,refresh:lQ};let m4t=null;const RRe=new Set,Qyn={getSnapshot:()=>m4t,subscribe(t){return RRe.add(t),()=>RRe.delete(t)}};function e0n(t){m4t=t;for(const n of RRe)try{n()}catch{}}let ZO={phase:null,at:0,run:0},dN=ZO;const FRe=new Map;let h4t=null;function YCr(t){h4t=t,g4t(ZO)}function g4t(t){ZO=t;try{h4t?.(t)}catch{}}function uQ(){const t=[...FRe.values()].at(-1),n=t?{...t,run:dN.run}:dN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||g4t(n)}function t0n(t=Date.now()){return dN={phase:null,at:t,run:dN.run+1},uQ(),ZO.run}function r0n(t,n=Date.now()){dN={phase:t,at:n,run:dN.run},uQ()}function n0n(t=Date.now()){dN={phase:null,at:t,run:dN.run},uQ()}function SBe(t,n=Date.now()){const s=Symbol();return FRe.set(s,{phase:t.slice(0,160),at:n}),uQ(),()=>{FRe.delete(s)&&uQ()}}const ZCr=Ze.lazy(()=>fo(()=>import("./GameplaySessionTimeline-lxx-w1ya.js"),__vite__mapDeps([253,1,2,3,4,20,21,140,125,141,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class xBe extends Ze.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 QCr({contribution:t,Component:n,documentId:s,active:c,document:d,accountRevision:m,playKey:g}){const S=Ze.useRef(null),[k,A]=Ze.useState(null),F=Ze.useRef(null),D=Ze.useRef(null),J=Ze.useRef(t.file);J.current=t.file;const $=Ze.useRef(s);return $.current=s,Ze.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&&f4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=Kje.createRoot(ue,{onUncaughtError:pe});return F.current=Ce,()=>{se=!0,F.current=null,D.current?.(),D.current=null,queueMicrotask(()=>{Ce.unmount(),ue.remove()})}},[]),Ze.useEffect(()=>{const G=F.current;if(!G)return;A(null);const se={contributionId:t.id,client:Kye(),surfaces:cBe,account:KLe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:SBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:_4t}:{play:Dye()},...s?{documentId:s,publishContext:Ce=>BCr(s,Ce)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ze.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});G.render(s?Ze.createElement(eEr,{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 eEr({documentId:t,children:n}){return Ze.useEffect(()=>f4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ze.useSyncExternalStore(Tye,cN,cN),g=Ze.useSyncExternalStore(Pye,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(Ze.Suspense,{fallback:null,children:q.jsx(ZCr,{})}):null,q.jsx(xBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(QCr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function tEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ze.useSyncExternalStore(Tye,cN,cN),Ze.useSyncExternalStore(Pye,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(xBe,{file:s,children:q.jsx(Bvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:Kye(),surfaces:cBe,account:KLe(),play:Dye(),node:S,nodeId:g,adapter:m})})})})}const rEr=Symbol("volter.inspection.mixed");function MRe(t){return t===rEr}function wBe(t){return t.readonlyReason??"This field is read-only."}function TBe(t){return"column"}function CBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const jRe="preview",Fht="transform",A5e="properties",y4t="stories",i0n="story-args",o0n="Story Args";function Mht(t){return`group:${t}`}const v4t=100,nEr=1e3,fQ=2e3,b4t=3e3,iEr=4e3,oEr=5e3,sEr={nullSubjectId:null};function S4t(t){return"sections"in t}const P_e=[];let x4t=0;const LRe=new Set;function jht(){x4t++;for(const t of LRe)t()}function aEr(t){return LRe.add(t),()=>{LRe.delete(t)}}function Lht(){return x4t}function w4t(t){return P_e.push(t),jht(),()=>{const n=P_e.indexOf(t);n>=0&&(P_e.splice(n,1),jht())}}function Bht(t,n,s=sEr){return P_e.filter(c=>c.match(t,n,s))}function T4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const cEr=1e3;class lEr{_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>cEr){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 ea=new lEr;typeof window<"u"&&(window.__volterEditorConsole=ea);const $ht=1e3,qht=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 uEr(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>$ht?`${s.slice(0,$ht)}…`:s}function BRe(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 uEr(k)}}),m=s.slice(c);return m.length===0?d:`${d} ${m.map(CB).join(" ")}`}function fEr(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=Ze.captureOwnerStack?.();return c?`${n}
|
|
47
47
|
Owner stack:${c}`:n}catch{return n}}function $Re(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=uYr(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">${n4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Tge=new Set;function nZr(t){return Tge.add(t),()=>{Tge.delete(t)}}function iZr(){try{window.focus()}catch{}if(Tge.size===0){window.location.reload();return}for(const t of[...Tge])t()}function oZr(t,n,s={}){t.addEventListener("tab-refocus",c=>YYr(c)),t.addEventListener("tab-yield",c=>ZYr(n,c)),t.addEventListener("tab-close",()=>rZr(n,s)),t.addEventListener("tab-adopt",()=>iZr())}const $k="/__editor",sZr=globalThis,md=sZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,G0e=RAt,aZr=Xxr;function cZr(t,n,s){md?.reportPhase?.(t,n,s)}function lZr(t){md?.reportCensus?.(t)}function uZr(){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 fZr(){const t=new URLSearchParams({clientId:xC,participantId:G0e,displayName:aZr});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 IRt=new Set(["editor-command"]);function NRt(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 dZr(t){P$!==t&&(P$=t,oZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),NRt(t,n=>!IRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(fZr()),md&&(md.source=kw)));const t=kw;dZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),IRt.has(c)&&NRt(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 pZr(){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 _Zr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=Ize(c=>{c!==null&&c.reason!=="server-gone"&&uZr()}),s=hZr();return()=>{s(),n(),t.close()}}const mZr=5;function hZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=mZr||(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;T4t(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 gZr=2e3,yZr={"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(yZr[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 vZr(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(RSt,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,gZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(RSt,m)}function bZr(t){bN("tab-route",{clientId:xC,participantId:G0e,route:t})}function Nze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function SZr(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 Nze(s)}}async function K0e(t,n){if(t!=="public")return SZr(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 Nze(s)}}async function ORt(){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 Nze(t)}}function Hbn(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class MSt 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 Cge=new Map,Ege=new Set;function Oze(t,n){return`${t}:${n}`}function Gbn(t,n){return Cge.get(Oze(t,n))??null}function Kbn(t){return Ege.add(t),()=>Ege.delete(t)}async function Xbn(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Cge.clear();for(const s of n.downloaded)Cge.set(Oze(s.source,s.id),`/${s.path}`);for(const s of Ege)s()}catch{}}async function Ybn(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 Zbn(t,n){return xZr(t,n)}async function xZr(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 MSt("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 MSt(g,m?.error??jSt(g))}return(await c.json()).files}async function Qbn(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 e2n(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){Cge.set(Oze(t.source,t.id),`/${s.path}`);for(const c of Ege)c()}return s}async function t2n(t){const n=await fetch(`${Jl}/asset-library/history/capture`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetPath:t})});of(n,"Asset history capture failed");const s=await n.json();if(!n.ok||!s.token)throw new Error(s.error??`Asset history capture failed (${n.status}).`);return s.token}async function r2n(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 n2n(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 wZr(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 TZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw FFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw FFe(`HTTP ${t.status}`);try{CN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return wZr(await t.json())}catch{return null}}async function Rze(){const t=await TZr();if(!t)throw u4r();return f4r(t),t}async function CZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function i2n(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 LSt={reopenLastProject:!1};async function EZr(){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:LSt.reopenLastProject}}catch{return{...LSt}}}async function o2n(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 s2n(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 a2n(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 c2n(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 l2n(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 vMe(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 u2n(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 Fze(){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 f2n(){const t=await Fze();return t.status==="project"?t.project:null}async function d2n(t){const n=await Rze(),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 FFe(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"&&a4r(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&&m$e(d.config,n),d}function X0e(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function kZr(t){try{const n=await fetch(X0e(t));if(n.ok)return await n.text()}catch{}return null}async function bMe(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 AZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function RRt(t){try{const n=await fetch(X0e(t),{method:"HEAD"});return n.ok?AZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function DZr(t){return await RRt(t)==="present"}async function p2n(t,n,s){try{const c=s==="base64"?b4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function FRt(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 _2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function PZr(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 IZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let BSt=!1;async function NZr(t,n={}){try{const s=await KDt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return CN(s,"Could not save editor state"),!0}catch(s){return BSt||(BSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,kge=null;async function MRt(){for(;fZ;){const t=fZ;fZ=null,await bN("state",{...t,_clientId:xC})}kge=null,fZ&&(kge=MRt())}function $St(t){return fZ=t,kge??=MRt(),kge}async function OZr(t){await bN("command-received",{_requestId:t,_clientId:xC})}async function i_e(t){await bN("command-listener",{_clientId:xC,attached:t})}let RZr=0;function FZr(t){const n=++RZr;cZr(t.phase,xC,n),bN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function qSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await vZr(t,m):await bN("command-result",m)}async function rte(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 m2n(t,n){const s=await fetch(`${Jl}/recording/start`,{...n?{signal:n}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});return rte(s,"start")}async function h2n(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 rte(m,"DOM event upload")}async function g2n(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 rte(m,"replay asset upload")}async function y2n(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 rte(m,"chunk upload")}async function v2n(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 rte(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 S2n(){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 MZr(){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 jRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function jZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function LZr(){const t=await BR("");return jRt(t)}async function BZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function zSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function $Zr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function qZr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return jRt(n).worktrees}async function zZr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Age=null;const SMe=new Set,xMe=new Set;function VZr(t){Age=t;for(const n of SMe)n(t);for(const n of xMe)n()}function Ih(){return Age}function x2n(t){return SMe.add(t),Age&&t(Age),()=>{SMe.delete(t)}}function o_e(t){return xMe.add(t),()=>{xMe.delete(t)}}const nA="references",LRt=["public",nA],Mze=`/project-game-static/${nA}/`;function Dge(t,n){return`${t}/${n}`}function Y0e(t,n){return t===nA?`${Mze}${n}`:`/${n}`}function UZr(t){return t.startsWith(Mze)}function JZr(t){const n=t.startsWith("/")?t:`/${t}`;if(UZr(n))return Dge(nA,n.slice(Mze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function BRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(WZr,{assetPath:t,kind:n,sizeBytes:s},t)}function WZr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=JZr(c),[g,S]=Ze.useState(s),[k,A]=Ze.useState(null),[F,D]=Ze.useState(null);Ze.useEffect(()=>{if(s!==void 0){S(s);return}let pe=!1;const[ue,...Ce]=m.split("/"),De=Ce.pop();return K0e(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===De)?.size)}),()=>{pe=!0}},[m,s]),Ze.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 X7e=Ze.lazy(async()=>({default:(await fo(()=>Promise.resolve().then(()=>gTr),void 0)).AssetEditorShell})),HZr=Ze.lazy(async()=>({default:(await fo(()=>import("./AudioViewer-C0KaLINZ.js"),__vite__mapDeps([255,1,2,3,4,20,21,22,23]))).AudioViewer})),GZr=Ze.lazy(async()=>({default:(await fo(()=>import("./ImageViewer-Z077ZBuk.js"),__vite__mapDeps([256,1,2,3,4,20,21,22,23]))).ImageViewer})),KZr=Ze.lazy(async()=>({default:(await fo(()=>import("./VideoViewer-CtoaUhoP.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).VideoViewer})),XZr=Ze.lazy(async()=>({default:(await fo(()=>import("./JsonAssetDocument-DjtYdDni.js").then(n=>n.a),__vite__mapDeps([258,1,2,3,4,20,21]))).JsonAssetDocument})),VSt=Ze.lazy(async()=>({default:(await fo(()=>import("./OnlineAssetDetail-DouLFaxd.js"),__vite__mapDeps([259,1,2,3,4,20,21,260,22,23]))).OnlineAssetDetail})),YZr=Ze.lazy(async()=>({default:(await fo(()=>import("./SourceAssetViewer-FrL5IQpU.js"),__vite__mapDeps([261,1,2,3,4,20,21,258,255,22,23,256]))).SourceAssetViewer})),G1=new Map,$Rt=new Map,Y7e=new Map;let qRt=0;const wMe=new Set;function nR(){qRt++;for(const t of wMe)t()}function ZZr(t){return wMe.add(t),()=>{wMe.delete(t)}}function QZr(){return qRt}function eQr(t){return G1.get(t)}function zRt(t){return G1.has(t)}function tQr(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&&Y7e.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};tQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:cQr,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=Y7e.get(S);Y7e.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function sN(t,n,s={}){const c=jYr(t),{frameName:d}=H0e(t),m=$Rt.get(AO(t))??t;return jze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}wee({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 DZr(s)?!1:(sN(s,c),!0)}});async function VRt(t,n){return CC(()=>{if(e_()!==t)return!1;const s=sBe(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=Cze(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,USt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":USt(n.assetKind,n.path??"");if(!await VRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await vBe(t)}});function USt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??rQr(n)}function rQr(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 nQr(t,n){const s=HYr(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 iQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function oQr(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}),$Rt.set(AO(d),t),I3t(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 sQr(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 Z7e(t){return{id:"source",title:"Source",icon:BTt,order:fQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function aQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(X7e,{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:T_e},children:n.unavailableReason})});const c=sQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(X7e,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:N0r,order:fQ,body:{kind:"custom",render:()=>q.jsx(VSt,{online:k,mode:"inspector",onResolved:A=>iQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(VSt,{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:T_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(K7e,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(K7e,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:T_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(K7e,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(YZr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(XZr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[Z7e(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(GZr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(KZr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(HZr,{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(X7e,{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:BTt,order:fQ,body:{kind:"custom",render:()=>q.jsx(BRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[Z7e(n)]:[]]:[Z7e(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function cQr({documentId:t,active:n}){Ze.useSyncExternalStore(ZZr,QZr),Ze.useEffect(()=>{const c=d=>{oQr(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:_Be[1]},children:s?q.jsx(Ze.Suspense,{fallback:q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"Loading asset viewer…"}),children:q.jsx(aQr,{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 URt=["three","pixi","dom","babylon","phaser"],Lze=Object.freeze({up:"y",groundHeight:0}),JRt=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(),lQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),uQr=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(URt).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(XLe)).describe("Anchor kinds this region’s writer serves"),basis:lQr.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(JRt).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(),fQr=AR([Dg("manifest-roots"),Gd(uQr).min(1)]),dQr=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(JRt).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."}),pQr=wD(bo().min(1),dQr).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 Bze(t,n={}){return t.map(s=>({...mQr(s),..._Qr(n[s.id])}))}function _Qr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function WRt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function mQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Lze;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 VQ="exported-composition-regions",hQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),gQr=AR([Pa({kind:Dg("root-mount")}).strict(),Pa({kind:Dg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:_y().optional()}).strict(),Pa({kind:Dg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Dg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Dg("none"),reason:bo().min(1)}).strict()]),JSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),yQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:_y(),reach:gQr,source:JSt.optional(),isolationSetup:JSt.optional(),finder:bo().min(1).optional()}).strict(),vQr=Pa({entries:Gd(yQr).optional(),find:Gd(hQr).optional(),default:bo().min(1).optional()}).strict(),HRt=["command","state"],bQr="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.",SQr=Pa({id:bo().min(1),kind:ed(HRt,{error:()=>bQr}),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"}),xQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],wQr=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(),TQr=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(),CQr="`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.",GRt=Pa({editor:TQr.optional(),regions:fQr.optional(),regionIncludes:pQr.optional(),documents:vQr.optional(),observation:Gd(SQr).optional(),input:wQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:CQr});function $ze(t={}){const n=GRt.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 $ze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:VQ},{finder:"prefabsFromStories"}]}})}function TMe(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 $ze(t)}const w2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:xQr,AdapterDefinitionSchema:GRt,EXPORTED_COMPOSITION_REGIONS:VQ,NATIVE_REGION_BASIS:Lze,OBSERVATION_KINDS:HRt,SUBSTRATE_NAMES:URt,defineAdapter:$ze,nativeAdapter:DO,parseAdapterDefinition:TMe,regionsFromManifestRoots:Bze,unmatchedRegionIncludeIds:WRt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function qze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function zze(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 qze(s)}function KRt(){return[...MZ.keys()]}function XRt(t,n){const s=MZ.get(t.finder);if(!s){const d=KRt();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 T2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:zze,registerFinder:qze,registeredFinderNames:KRt,runRegisteredFinder:XRt},Symbol.toStringTag,{value:"Module"}));function WSt(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 Q7e={exports:{}};const EQr={},kQr=Object.freeze(Object.defineProperty({__proto__:null,default:EQr},Symbol.toStringTag,{value:"Module"})),wI=Hyr(kQr);var HSt;function AQr(){return HSt||(HSt=1,(function(t){var n={};/*! *****************************************************************************
|
|
942
|
+
</style><main><div class="brand-mark">${n4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Tge=new Set;function nZr(t){return Tge.add(t),()=>{Tge.delete(t)}}function iZr(){try{window.focus()}catch{}if(Tge.size===0){window.location.reload();return}for(const t of[...Tge])t()}function oZr(t,n,s={}){t.addEventListener("tab-refocus",c=>YYr(c)),t.addEventListener("tab-yield",c=>ZYr(n,c)),t.addEventListener("tab-close",()=>rZr(n,s)),t.addEventListener("tab-adopt",()=>iZr())}const $k="/__editor",sZr=globalThis,md=sZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,G0e=RAt,aZr=Xxr;function cZr(t,n,s){md?.reportPhase?.(t,n,s)}function lZr(t){md?.reportCensus?.(t)}function uZr(){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 fZr(){const t=new URLSearchParams({clientId:xC,participantId:G0e,displayName:aZr});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 IRt=new Set(["editor-command"]);function NRt(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 dZr(t){P$!==t&&(P$=t,oZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),NRt(t,n=>!IRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(fZr()),md&&(md.source=kw)));const t=kw;dZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),IRt.has(c)&&NRt(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 pZr(){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 _Zr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=Ize(c=>{c!==null&&c.reason!=="server-gone"&&uZr()}),s=hZr();return()=>{s(),n(),t.close()}}const mZr=5;function hZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=mZr||(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;T4t(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 gZr=2e3,yZr={"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(yZr[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 vZr(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(RSt,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,gZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(RSt,m)}function bZr(t){bN("tab-route",{clientId:xC,participantId:G0e,route:t})}function Nze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function SZr(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 Nze(s)}}async function K0e(t,n){if(t!=="public")return SZr(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 Nze(s)}}async function ORt(){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 Nze(t)}}function Hbn(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class MSt 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 Cge=new Map,Ege=new Set;function Oze(t,n){return`${t}:${n}`}function Gbn(t,n){return Cge.get(Oze(t,n))??null}function Kbn(t){return Ege.add(t),()=>Ege.delete(t)}async function Xbn(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Cge.clear();for(const s of n.downloaded)Cge.set(Oze(s.source,s.id),`/${s.path}`);for(const s of Ege)s()}catch{}}async function Ybn(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 Zbn(t,n){return xZr(t,n)}async function xZr(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 MSt("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 MSt(g,m?.error??jSt(g))}return(await c.json()).files}async function Qbn(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 e2n(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){Cge.set(Oze(t.source,t.id),`/${s.path}`);for(const c of Ege)c()}return s}async function t2n(t){const n=await fetch(`${Jl}/asset-library/history/capture`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({assetPath:t})});of(n,"Asset history capture failed");const s=await n.json();if(!n.ok||!s.token)throw new Error(s.error??`Asset history capture failed (${n.status}).`);return s.token}async function r2n(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 n2n(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 wZr(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 TZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw FFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw FFe(`HTTP ${t.status}`);try{CN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return wZr(await t.json())}catch{return null}}async function Rze(){const t=await TZr();if(!t)throw u4r();return f4r(t),t}async function CZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function i2n(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 LSt={reopenLastProject:!1};async function EZr(){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:LSt.reopenLastProject}}catch{return{...LSt}}}async function o2n(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 s2n(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 a2n(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 c2n(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 l2n(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 vMe(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 u2n(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 Fze(){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 f2n(){const t=await Fze();return t.status==="project"?t.project:null}async function d2n(t){const n=await Rze(),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 FFe(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"&&a4r(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&&m$e(d.config,n),d}function X0e(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function kZr(t){try{const n=await fetch(X0e(t));if(n.ok)return await n.text()}catch{}return null}async function bMe(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 AZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function RRt(t){try{const n=await fetch(X0e(t),{method:"HEAD"});return n.ok?AZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function DZr(t){return await RRt(t)==="present"}async function p2n(t,n,s){try{const c=s==="base64"?b4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function FRt(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 _2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function PZr(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 IZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let BSt=!1;async function NZr(t,n={}){try{const s=await KDt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return CN(s,"Could not save editor state"),!0}catch(s){return BSt||(BSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,kge=null;async function MRt(){for(;fZ;){const t=fZ;fZ=null,await bN("state",{...t,_clientId:xC})}kge=null,fZ&&(kge=MRt())}function $St(t){return fZ=t,kge??=MRt(),kge}async function OZr(t){await bN("command-received",{_requestId:t,_clientId:xC})}async function i_e(t){await bN("command-listener",{_clientId:xC,attached:t})}let RZr=0;function FZr(t){const n=++RZr;cZr(t.phase,xC,n),bN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function qSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await vZr(t,m):await bN("command-result",m)}async function rte(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 m2n(t,n){const s=await fetch(`${Jl}/recording/start`,{...n?{signal:n}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});return rte(s,"start")}async function h2n(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 rte(m,"DOM event upload")}async function g2n(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 rte(m,"replay asset upload")}async function y2n(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 rte(m,"chunk upload")}async function v2n(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 rte(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 S2n(){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 MZr(){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 jRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function jZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function LZr(){const t=await BR("");return jRt(t)}async function BZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function zSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function $Zr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function qZr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return jRt(n).worktrees}async function zZr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Age=null;const SMe=new Set,xMe=new Set;function VZr(t){Age=t;for(const n of SMe)n(t);for(const n of xMe)n()}function Ih(){return Age}function x2n(t){return SMe.add(t),Age&&t(Age),()=>{SMe.delete(t)}}function o_e(t){return xMe.add(t),()=>{xMe.delete(t)}}const nA="references",LRt=["public",nA],Mze=`/project-game-static/${nA}/`;function Dge(t,n){return`${t}/${n}`}function Y0e(t,n){return t===nA?`${Mze}${n}`:`/${n}`}function UZr(t){return t.startsWith(Mze)}function JZr(t){const n=t.startsWith("/")?t:`/${t}`;if(UZr(n))return Dge(nA,n.slice(Mze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function BRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(WZr,{assetPath:t,kind:n,sizeBytes:s},t)}function WZr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=JZr(c),[g,S]=Ze.useState(s),[k,A]=Ze.useState(null),[F,D]=Ze.useState(null);Ze.useEffect(()=>{if(s!==void 0){S(s);return}let pe=!1;const[ue,...Ce]=m.split("/"),De=Ce.pop();return K0e(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===De)?.size)}),()=>{pe=!0}},[m,s]),Ze.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 X7e=Ze.lazy(async()=>({default:(await fo(()=>Promise.resolve().then(()=>gTr),void 0)).AssetEditorShell})),HZr=Ze.lazy(async()=>({default:(await fo(()=>import("./AudioViewer-CcL-aNBd.js"),__vite__mapDeps([255,1,2,3,4,20,21,22,23]))).AudioViewer})),GZr=Ze.lazy(async()=>({default:(await fo(()=>import("./ImageViewer-280O0PlP.js"),__vite__mapDeps([256,1,2,3,4,20,21,22,23]))).ImageViewer})),KZr=Ze.lazy(async()=>({default:(await fo(()=>import("./VideoViewer-BYLY0WdG.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).VideoViewer})),XZr=Ze.lazy(async()=>({default:(await fo(()=>import("./JsonAssetDocument-Fen8_TJ3.js").then(n=>n.a),__vite__mapDeps([258,1,2,3,4,20,21]))).JsonAssetDocument})),VSt=Ze.lazy(async()=>({default:(await fo(()=>import("./OnlineAssetDetail-BO_qsMXe.js"),__vite__mapDeps([259,1,2,3,4,20,21,260,22,23]))).OnlineAssetDetail})),YZr=Ze.lazy(async()=>({default:(await fo(()=>import("./SourceAssetViewer-CPiZgKck.js"),__vite__mapDeps([261,1,2,3,4,20,21,258,255,22,23,256]))).SourceAssetViewer})),G1=new Map,$Rt=new Map,Y7e=new Map;let qRt=0;const wMe=new Set;function nR(){qRt++;for(const t of wMe)t()}function ZZr(t){return wMe.add(t),()=>{wMe.delete(t)}}function QZr(){return qRt}function eQr(t){return G1.get(t)}function zRt(t){return G1.has(t)}function tQr(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&&Y7e.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};tQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:cQr,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=Y7e.get(S);Y7e.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function sN(t,n,s={}){const c=jYr(t),{frameName:d}=H0e(t),m=$Rt.get(AO(t))??t;return jze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}wee({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 DZr(s)?!1:(sN(s,c),!0)}});async function VRt(t,n){return CC(()=>{if(e_()!==t)return!1;const s=sBe(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=Cze(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,USt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":USt(n.assetKind,n.path??"");if(!await VRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await vBe(t)}});function USt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??rQr(n)}function rQr(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 nQr(t,n){const s=HYr(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 iQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function oQr(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}),$Rt.set(AO(d),t),I3t(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 sQr(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 Z7e(t){return{id:"source",title:"Source",icon:BTt,order:fQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function aQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(X7e,{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:T_e},children:n.unavailableReason})});const c=sQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(X7e,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:N0r,order:fQ,body:{kind:"custom",render:()=>q.jsx(VSt,{online:k,mode:"inspector",onResolved:A=>iQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(VSt,{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:T_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(K7e,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(K7e,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:T_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(K7e,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(YZr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(XZr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[Z7e(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(GZr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(KZr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(HZr,{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(X7e,{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:BTt,order:fQ,body:{kind:"custom",render:()=>q.jsx(BRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[Z7e(n)]:[]]:[Z7e(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function cQr({documentId:t,active:n}){Ze.useSyncExternalStore(ZZr,QZr),Ze.useEffect(()=>{const c=d=>{oQr(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:_Be[1]},children:s?q.jsx(Ze.Suspense,{fallback:q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"Loading asset viewer…"}),children:q.jsx(aQr,{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 URt=["three","pixi","dom","babylon","phaser"],Lze=Object.freeze({up:"y",groundHeight:0}),JRt=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(),lQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),uQr=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(URt).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(XLe)).describe("Anchor kinds this region’s writer serves"),basis:lQr.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(JRt).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(),fQr=AR([Dg("manifest-roots"),Gd(uQr).min(1)]),dQr=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(JRt).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."}),pQr=wD(bo().min(1),dQr).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 Bze(t,n={}){return t.map(s=>({...mQr(s),..._Qr(n[s.id])}))}function _Qr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function WRt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function mQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Lze;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 VQ="exported-composition-regions",hQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),gQr=AR([Pa({kind:Dg("root-mount")}).strict(),Pa({kind:Dg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:_y().optional()}).strict(),Pa({kind:Dg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Dg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Dg("none"),reason:bo().min(1)}).strict()]),JSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),yQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:_y(),reach:gQr,source:JSt.optional(),isolationSetup:JSt.optional(),finder:bo().min(1).optional()}).strict(),vQr=Pa({entries:Gd(yQr).optional(),find:Gd(hQr).optional(),default:bo().min(1).optional()}).strict(),HRt=["command","state"],bQr="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.",SQr=Pa({id:bo().min(1),kind:ed(HRt,{error:()=>bQr}),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"}),xQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],wQr=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(),TQr=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(),CQr="`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.",GRt=Pa({editor:TQr.optional(),regions:fQr.optional(),regionIncludes:pQr.optional(),documents:vQr.optional(),observation:Gd(SQr).optional(),input:wQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:CQr});function $ze(t={}){const n=GRt.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 $ze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:VQ},{finder:"prefabsFromStories"}]}})}function TMe(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 $ze(t)}const w2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:xQr,AdapterDefinitionSchema:GRt,EXPORTED_COMPOSITION_REGIONS:VQ,NATIVE_REGION_BASIS:Lze,OBSERVATION_KINDS:HRt,SUBSTRATE_NAMES:URt,defineAdapter:$ze,nativeAdapter:DO,parseAdapterDefinition:TMe,regionsFromManifestRoots:Bze,unmatchedRegionIncludeIds:WRt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function qze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function zze(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 qze(s)}function KRt(){return[...MZ.keys()]}function XRt(t,n){const s=MZ.get(t.finder);if(!s){const d=KRt();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 T2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:zze,registerFinder:qze,registeredFinderNames:KRt,runRegisteredFinder:XRt},Symbol.toStringTag,{value:"Module"}));function WSt(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 Q7e={exports:{}};const EQr={},kQr=Object.freeze(Object.defineProperty({__proto__:null,default:EQr},Symbol.toStringTag,{value:"Module"})),wI=Hyr(kQr);var HSt;function AQr(){return HSt||(HSt=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 @@ ${ven(g)}`)}const m={manifestVersion:d.manifestVersion,name:d.name,version:d.ver
|
|
|
1396
1396
|
`)}function OFt(t){return NFt(t,Array.from(t.styleSheets))}function qtn(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?"":NFt(t,c)}async function ztn(t){await t.fonts.ready;let n=OFt(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 Vtn(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 nVe(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 RFt(t){const n=[],s=new Set;for(const c of Array.from(t.querySelectorAll("canvas"))){if(!eve(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,...Utn(t,c)])s.has(m)||(s.add(m),n.push(m))}return n}function Utn(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))Jtn(F,t)&&d.add(F)}return Array.from(d).reverse()}function Jtn(t,n){return t instanceof HTMLElement&&(t===n||n.contains(t))&&nVe(t)!==null}function FFt(t){const n=[];for(let s=t.parentElement;s;s=s.parentElement)n.unshift(s);return n}function Wtn(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 Htn(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 Gtn(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 MFt(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?Vtn(t,g):g.style.background="transparent";const S=c?.transparentBackdrops;if(S?.has(t)&&(g.style.background="transparent"),t.closest(`[${XQ}]`)&&g.setAttribute(XQ,""),m){const se=c?.documentCssText??OFt(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=AFt();if(A){const se=t.ownerDocument.createElement("style");se.textContent=A,g.appendChild(se)}if(!m){const se=qtn(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);Gtn(se,pe,S),Wtn(se,pe),Htn(se,pe);const ue=[...se instanceof HTMLImageElement?[se]:[],...Array.from(se.querySelectorAll("img"))];[...pe instanceof HTMLImageElement?[pe]:[],...Array.from(pe.querySelectorAll("img"))].forEach((X,Te)=>{const $e=ue[Te];if(!$e?.complete||$e.naturalWidth<=0||$e.naturalHeight<=0)return;const bt=$e.currentSrc||$e.src,It=c?.snapshots?.imgs.get($e),Wt=It&&It.src===bt?It.url:iOe(t.ownerDocument,$e);(!It||It.src!==bt)&&c?.snapshots?.imgs.set($e,{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,Te)=>{const $e=De[Te];if(!$e||$e.readyState<2||$e.videoWidth<=0)return;const bt=iOe(t.ownerDocument,$e);if(!bt)return;const It=t.ownerDocument.createElement("img");It.setAttribute("src",bt),It.setAttribute("style",X.getAttribute("style")??""),X.replaceWith(It)});const be=Array.from(se.querySelectorAll("canvas"));Array.from(pe.querySelectorAll("canvas")).forEach((X,Te)=>{const $e=be[Te];if($e&&eve($e)){X.remove();return}const bt=$e?c?.canvasPixels?.get($e):void 0,It=bt?iOe(t.ownerDocument,bt):null;if(!It){X.remove();return}const Wt=t.ownerDocument.createElement("img");Wt.setAttribute("src",It),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 Ktn={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(`${Ktn[n]} capture failed — ${c}`),this.name="CaptureLayerError",this.layer=n}}function jge(t,n){return n instanceof HI?n:new HI(t,n)}const X4=32,Xtn=24,iVe=.9;function jFt(t,n){return[t[n*4]??0,t[n*4+1]??0,t[n*4+2]??0]}function Ytn(t,n){const s=new Map;for(let m=0;m<n;m++){const[g,S,k]=jFt(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 Ztn(t,n,s){let c=0;for(let d=0;d<n;d++){const m=jFt(t,d);Math.max(Math.abs(m[0]-s[0]),Math.abs(m[1]-s[1]),Math.abs(m[2]-s[2]))<=Xtn&&(c+=1)}return c}function LFt(t,n,s=iVe){const{mean:c,distinctRegions:d}=Ytn(t,n),m=Math.round(Ztn(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 qMe(t,n,s=iVe){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 LFt(m.data,X4*X4,s)}catch{return null}}async function BFt(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 YQ(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 $Ft(t,n){return await YQ(t),(n?.presentsOnCanvas??t.querySelectorAll("canvas").length>0)||await new Promise(c=>setTimeout(c,650)),await BFt(t),await YQ(t),zMe(t,2,n??{})}const qFt=.03;function zFt(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 VFt(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 Qtn(t,n,s,c){let d;try{d=t.getImageData(0,0,n,s)}catch{return{kind:"ok"}}const m=n*s,g=zFt(d.data,m),S=g>qFt;return c>0&&(S||VFt(d.data,m))?{kind:"retry"}:S?{kind:"blank",transparentFraction:g}:{kind:"ok"}}function ern(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 zMe(t,n,s){const c=t.ownerDocument.createElement("canvas"),d=await UFt(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=ern(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(Te=>setTimeout(Te,300)),await YQ(t),zMe(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=qMe(ue,t.ownerDocument);let be;try{be=ue.toDataURL("image/png")}catch(Te){throw jge("composite-output",Te)}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=Qtn(S,m,g,n);if(D.kind==="retry")return await new Promise(J=>setTimeout(J,300)),await YQ(t),zMe(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=qMe(c,t.ownerDocument);let A;try{A=c.toDataURL("image/png")}catch(D){throw jge("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 cxt(t,n,s,c=1,d=1){for(const m of n){const g=nVe(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 UFt(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&&cxt(k,FFt(t),c,g,S);const F=Array.from(t.querySelectorAll("canvas")).some(se=>!eve(se))?null:s?.overlayCache?.take(t,d,m),D=F?.backdrops??RFt(t);cxt(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 jge("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=MFt(t,d/g,m/S,{includeDocumentStyles:s?.includeDocumentStyles,projectRoot:s?.projectRoot,documentCssText:s?.includeDocumentStyles?await ztn(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 jge("dom-overlay",se)}return{canvases:J.length,domOverlays:G}}const trn=Object.freeze(Object.defineProperty({__proto__:null,CaptureLayerError:HI,FLATNESS_GRID:X4,FLATNESS_WARN_AT:iVe,OVERLAY_CACHE_MAX_AGE_MS:DFt,OVERLAY_REBUILD_COST_MULTIPLIER:IFt,OVERLAY_REBUILD_FLOOR_MS:PFt,TRANSPARENT_PIXEL_LIMIT:qFt,ancestorBackdrops:FFt,buildOverlaySvg:MFt,capturePlayComposite:$Ft,createImageSnapshotCache:Btn,createOverlayFrameCache:$tn,drawPlayCompositeFrame:UFt,hasExcessNearBlackPixels:VFt,isRootCanvas:eve,measureFlatness:LFt,opaqueBackgroundColor:nVe,rootSurfaceBackdrops:RFt,sampleFlatness:qMe,transparentPixelFraction:zFt,waitForFiniteMotion:BFt,waitForPaint:YQ},Symbol.toStringTag,{value:"Module"}));function ote(t){const n=TC(),s=n?.descriptor.presentation?.()??void 0,c=o2(n?.descriptor.id),d=Oye(),m=c?.selection?c.selection.read():d?.adapter?.selection?.get()??(c?[...t.selectedEntityIds]:[]),g=c?.read()??void 0,S=Y4t();return{version:1,workspace:zS(),...Ahe()===null?{}:{style:Ahe()},keymap:dR(),...s?{document:s}:{},...m.length>0?{selection:{ids:[...m]}}:{},...g?{viewport:g}:{},...S?{panel:S}:{}}}function rrn(t){return ZTt(ote(t),window.location.href)}let $I=[],nrn=0,JFt=0;const VMe=new Set;function UMe(){JFt++;for(const t of VMe)t()}function WFt(){UMe()}function JMe(){return X1()}function oVe(){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 HFt(){for(const{session:t}of $I){const n=t.restartRequired?.()??null;if(n!==null)return n}return null}function GFt(){(X1().find(s=>(s.restartRequired?.()??null)!==null)??X1().find(s=>s.mounted()&&s.restart))?.restart?.()}function sVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.frameCanvas?.()??null;if(n)return n}return null}function aVe(t){for(const n of X1())if(!(!n.mounted()||!n.snapshotFrame)&&n.frameCanvas?.()===t)return n.snapshotFrame();return null}function cVe(t){for(const n of X1()){if(!n.mounted()||!n.command)continue;const s=n.command(t);if(s)return s}return null}function lVe(){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 tve(){for(const t of X1()){if(!t.mounted())continue;const n=t.surface?.()??null;if(n)return n}return null}function uVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.coverage?.()??null;if(n)return n}return null}function fVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.authoringRefusal?.()??null;if(n!==null)return n}return null}function KFt(t){return X1().find(s=>s.mounted()&&s.remount)?.remount?.(t)??null}function XFt(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:nrn++};return $I=[...$I,n],UMe(),()=>{$I=$I.filter(s=>s!==n),UMe()}}function X1(){return[...$I].sort((t,n)=>(t.session.priority??0)-(n.session.priority??0)||t.seq-n.seq).map(t=>t.session)}function dVe(){return X1().some(t=>t.mounted())}function rve(){return X1().some(t=>t.playing())}function pVe(){for(const t of X1())t.stop()}function YFt(t){for(const n of X1()){const s=n.instanceContainer(t);if(s)return s}return null}function _Ve(t){return VMe.add(t),()=>VMe.delete(t)}function ZFt(){return JFt}const irn=Object.freeze(Object.defineProperty({__proto__:null,anyLiveSessionMounted:dVe,anyLiveSessionPlaying:rve,dispatchLiveCommand:cVe,liveAuthoringRefusal:fVe,liveCoverage:uVe,liveFrameCanvas:sVe,liveInstanceContainer:YFt,liveRestartRequired:HFt,liveRunWindow:oVe,liveScenes:lVe,liveSessions:JMe,liveSessionsVersion:ZFt,liveSurface:tve,notifyLiveSessionsChanged:WFt,registerLiveSession:XFt,remountLiveSelection:KFt,restartLiveSession:GFt,snapshotLiveFrame:aVe,stopAllLiveSessions:pVe,subscribeLiveSessions:_Ve},Symbol.toStringTag,{value:"Module"}));async function QFt(t){const n=aVe(t);return n||Atn(t)}function orn(t){const n=t;return n&&typeof n.toDataURL=="function"?n:null}const srn=Object.freeze(Object.defineProperty({__proto__:null,liveCanvasFrame:QFt,readablePngSource:orn},Symbol.toStringTag,{value:"Module"}));let qZ=null;function arn(){if(!qZ)return!0;try{return qZ()}catch{return!0}}function crn(t){return qZ=t,()=>{qZ===t&&(qZ=null)}}const e9t=new WeakMap;function lSn(t,n){e9t.set(t,n)}function t9t(t){for(const n of Array.from(t.querySelectorAll("iframe"))){const s=e9t.get(n),c=s?.container();if(s&&c)return{container:c,canvasFrame:s.canvasFrame}}return null}function mVe(t){return Array.from(document.querySelectorAll("[data-workspace-document-id]")).find(n=>n.dataset.workspaceDocumentId===t&&(vRe()===null||n.dataset.workspaceViewId===vRe()))??null}const WMe=["document","header","shelf","rail","outliner","content","utility"],lrn={rail:{part:"properties",view:"volter.properties",title:"Properties"},outliner:{part:"outliner",view:"volter.outliner",title:"Outliner"},content:{part:"content",view:"volter.content",title:"Content"}},urn={header:{prefix:"document-header",title:"header strip"},shelf:{prefix:"document-shelf",title:"tool shelf"}};function hVe(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=t9t(t.container)?.container;return s&&!n.includes(s)&&n.push(s),n}function frn(t){return document.querySelector(`[data-volter-part="${t}"]`)}function drn(){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 prn(t){if(t==="utility")return drn();const n=t==="rail"||t==="outliner"||t==="content"?lrn[t]:null;if(n){const s=frn(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 _rn(t)}function _rn(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=e_()??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=mVe(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=urn[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 lxt(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: ${WMe.filter(s=>s!==t.name).map(s=>`'${s}'`).join(", ")} (pass \`{ scope }\`). The rest of the page is deliberately unreachable.`)}const uxt=400,fxt="rgb(1, 2, 3)",mrn="rgba(0, 0, 0, 0)";function hrn(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=fxt,t.appendChild(d);try{d.style.backgroundColor=`var(${n})`;const m=getComputedStyle(d).backgroundColor.trim();return m===fxt||m===mrn?s:m}finally{d.remove()}}function grn(t,n){const s=getComputedStyle(t),c={};for(const d of n)c[d]=d.startsWith("--")?hrn(t,d):s.getPropertyValue(yrn(d)).trim();return c}function yrn(t){return t.includes("-")?t:t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function dxt(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>uxt?`${k.slice(0,uxt)}…`: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:grn(c,s)}:{}}}function pme(t,n,s){const c=i9t(t,n),d=c[s];if(!d)throw lxt(t,`${JSON.stringify(n)} matched ${c.length} element(s), so index ${s} does not exist`);if(!hVe(t).some(m=>m.contains(d)))throw lxt(t,`${JSON.stringify(n)} resolved outside the document's container`);return d}function vrn(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 gVe(t){let n=t;for(;n&&!(n.hasAttribute("tabindex")||n.tabIndex>=0||n.isContentEditable);)n=n.parentElement;(n??t).focus({preventScroll:!0})}function r9t(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1]}}function brn(t,n){const{clientX:s,clientY:c}=r9t(t,n);return t.ownerDocument.elementFromPoint(s,c)??t}function Srn(t,n=1,s,c={},d){const m={...vrn(t,s),...d,...c},g=Math.max(1,Math.round(n));n9t(t,()=>{for(let S=1;S<=g;S++){const k={...m,detail:S},A={...m,buttons:0,detail:S};t.dispatchEvent(new PointerEvent("pointerdown",{...k,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",k)),gVe(t),t.dispatchEvent(new PointerEvent("pointerup",{...A,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mouseup",A)),t.dispatchEvent(new MouseEvent("click",A))}g>=2&&t.dispatchEvent(new MouseEvent("dblclick",{...m,buttons:0,detail:g}))})}function xrn(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 n9t(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}}function wrn(t,n,s,c,d={},m=[],g=0){const S=t.getBoundingClientRect(),k=g===0?1:g===2?2:4,A=(D,J)=>({bubbles:!0,cancelable:!0,composed:!0,view:window,clientX:S.x+S.width*D,clientY:S.y+S.height*J,button:g,buttons:k,altKey:d.altKey??!1,ctrlKey:d.ctrlKey??!1,metaKey:d.metaKey??!1,shiftKey:d.shiftKey??!1}),F=A(n[0],n[1]);n9t(t,()=>{t.dispatchEvent(new PointerEvent("pointermove",{...F,button:-1,buttons:0,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",{...F,buttons:0})),t.dispatchEvent(new PointerEvent("pointerdown",{...F,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",F)),gVe(t);const D=Math.max(1,Math.round(c)),J=[n,...m,s];for(let G=0;G+1<J.length;G++){const se=J[G],pe=J[G+1];for(let ue=1;ue<=D;ue++){const Ce=ue/D,De=A(se[0]+(pe[0]-se[0])*Ce,se[1]+(pe[1]-se[1])*Ce);t.dispatchEvent(new PointerEvent("pointermove",{...De,button:-1,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",De))}}const $={...A(s[0],s[1]),buttons:0};t.dispatchEvent(new PointerEvent("pointerup",{...$,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mouseup",$)),g===2?t.dispatchEvent(new MouseEvent("contextmenu",$)):g===0&&n[0]===s[0]&&n[1]===s[1]&&t.dispatchEvent(new MouseEvent("click",$))})}function Trn(t,n){if(n)return n;const s=document.activeElement;return s instanceof HTMLElement&&hVe(t).some(c=>c.contains(s))?s:t.container}function i9t(t,n){try{return hVe(t).flatMap(s=>Array.from(s.querySelectorAll(n)))}catch(s){throw new Error(`Invalid selector ${JSON.stringify(n)}: ${String(s)}`)}}function oOe(t,n){const s=n.selector===void 0?null:pme(t,n.selector,n.index??0);return Trn(t,s)}const Crn={" ":"Space","`":"Backquote","-":"Minus","=":"Equal","[":"BracketLeft","]":"BracketRight","\\":"Backslash",";":"Semicolon","'":"Quote",",":"Comma",".":"Period","/":"Slash"};function Ern(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:Crn[t]??t}const krn={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 Arn(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]):krn[t]??0}function Drn(t){const n=t===void 0?null:/^Numpad([0-9])$/.exec(t);return n?96+Number(n[1]):t==="NumpadDecimal"?110:null}function pxt(t,n){const s=new KeyboardEvent(t,Prn(n)),c=Drn(n.code)??Arn(n.key);return Object.defineProperty(s,"keyCode",{get:()=>c}),Object.defineProperty(s,"which",{get:()=>c}),s}function Prn(t){return{key:t.key,code:t.code??Ern(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 Irn(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 sOe=["query","click","drag","key","paste","select","type"];function Nrn(t){const n=t?.action;if(!sOe.includes(n))throw new Error(`Unknown document-probe action ${JSON.stringify(n)}. This door has exactly ${sOe.length} verbs: ${sOe.join(", ")} (\`editor.document.*\`).`);const s=t.scope??"document";if(!WMe.includes(s))throw new Error(`Unknown scope ${JSON.stringify(s)}. This door addresses exactly these surfaces: ${WMe.map(c=>`'${c}'`).join(", ")}.`);return prn(s)}async function Orn(t){const n=Nrn(t);if(e_()===a0&&arn()&&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:[dxt(d,0)]});switch(t.action){case"query":{const d=i9t(n,t.selector);return{scope:s,matched:d.length,elements:d.slice(0,t.limit??25).map((m,g)=>dxt(m,g,t.styles))}}case"click":{const d=pme(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:brn(d,m);return Srn(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:r9t(d,m)),c(g)}case"type":{const d=oOe(n,t);return xrn(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=pme(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 wrn(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),c(d)}case"key":{const d=oOe(n,t);document.activeElement instanceof Node&&d.contains(document.activeElement)||gVe(d);const m=document.activeElement,g=m instanceof HTMLElement&&d.contains(m)?m:d;return g.dispatchEvent(pxt("keydown",t)),t.holdMs&&await new Promise(S=>setTimeout(S,t.holdMs)),g.dispatchEvent(pxt("keyup",t)),c(d)}case"select":{const d=pme(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 Irn(d,t.value),c(d)}case"paste":{const d=oOe(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 _xt="editor-chrome-root";function Rrn(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 Dtn(n,s)??QFt(n)}}async function Frn(t,n){const s=document.getElementById(_xt);if(!s)throw new Error(`The editor chrome root (#${_xt}) is not mounted, so there is no editor page to photograph.`);let c=s;if(n?.region==="document"){const k=e_(),A=k?mVe(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 $Ft(c,{canvasFrame:Rrn(d),includeDocumentStyles:!0,size:g}),view:ote(t),size:g,scale:d}}function ste(){return rve()}function uSn(){return!ste()}const Lge=new Set;function Mrn(t,n){const s={collect:t,reusableKeys:n?.reusableKeys??[]};return Lge.add(s),()=>{Lge.delete(s)}}function jrn(t=null){const n={};for(const s of Lge)Object.assign(n,s.collect(t));return n}function Lrn(){const t=[];for(const n of Lge)t.push(...n.reusableKeys);return t}let zZ=null;const GI=[];function Brn(t){if(zZ=t,GI.length!==0)for(const n of GI.splice(0,GI.length))n.resolve(t)}function $rn(){return new Promise((t,n)=>{GI.push({resolve:t,reject:n})})}function qrn(t){zZ===t&&(zZ=null,GI.length!==0&&queueMicrotask(()=>{if(!(zZ!==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 mxt(){return zZ}function zrn(t,n){const s=[],c=[];for(const d of t.rows){const m=Vrn(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 Vrn(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 Urn=new Set(["raw","url","worker","sharedworker","inline","init"]),Jrn=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],Wrn=/\.stories\.[cm]?[jt]sx?$/i;function Hrn(t){let n;try{n=new URL(t,"http://volter.invalid")}catch{return null}return{path:n.pathname,query:n.search}}function Grn(t){const n=new URLSearchParams(t);for(const s of n.keys())if(Urn.has(s))return!0;return!1}function Krn(t,n,s){if(t.startTime<s)return null;const c=Hrn(t.name);if(!c)return null;const{path:d,query:m}=c;if(!d.includes(n)||!Jrn.some(A=>d.endsWith(A))||Wrn.test(d)||d.endsWith("/volter.adapter.ts")||Grn(m))return null;const g=new URLSearchParams(m),S=g.get(Pge)??"";g.delete(Pge);const k=g.toString();return{group:`${S}\0${d}`,path:d,url:`${d}${k?`?${k}`:""}`}}function Xrn(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=Krn(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 fSn(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 o9t(){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,ZQ=[],VO=null,$B=[];function dSn(){$B=[],Gk?.disconnect(),Gk=null,ZQ=[];const t=o9t();if(!t){VO=null;return}VO=t.now(),typeof PerformanceObserver<"u"&&(Gk=new PerformanceObserver(n=>{ZQ.push(...n.getEntries())}),Gk.observe({type:"resource"}))}function pSn(t){const n=o9t();if(!n||VO===null)return VO=null,$B;const s=Gk?[...ZQ,...Gk.takeRecords()]:n.getEntriesByType("resource");return Gk?.disconnect(),Gk=null,ZQ=[],$B=Xrn(s,{projectRoot:t,since:VO}),VO=null,$B}function Yrn(){return $B}function _Sn(){Gk?.disconnect(),Gk=null,ZQ=[],$B=[],VO=null}const HMe=new Set;let jY=null;function Zrn(t){return HMe.add(t),()=>{HMe.delete(t)}}function Qrn(){return jY||(jY=Promise.all([...HMe].map(t=>Promise.resolve().then(t))).then(()=>{}).finally(()=>{jY=null}),jY)}const enn=500;function hxt(t){const n=globalThis,s=n.requestIdleCallback;if(typeof s=="function"){const d=s.call(globalThis,t,{timeout:enn});return()=>n.cancelIdleCallback?.call(globalThis,d)}const c=setTimeout(t,0);return()=>clearTimeout(c)}const _me=new Map;function mSn(t,n){return _me.set(t,n),()=>{_me.get(t)===n&&_me.delete(t)}}function tnn(){return Object.fromEntries([..._me].map(([t,n])=>[t,n()]))}let s9t=null;function hSn(t){s9t=t}function rnn(){return s9t}const nnn=["three","canvas","dom"];function gxt(t){return t.provenance?.source==="boundary"}function inn(t){return nnn.includes(t)?t:null}function onn(){const t=Oye(),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=nPt();if(!d)return c?[c]:[];if(d instanceof hy){const g=d.childAdapters().filter(S=>S.role==="world"&&!gxt(S.adapter)).map(S=>({worldId:S.worldId,surface:inn(S.kind),adapter:S.adapter}));return c?[c,...g.filter(S=>S.worldId!==n)]:g}if(gxt(d)||d===rnn())return c?[c]:[];const m={worldId:"root",surface:tve(),adapter:d};return c?[c,m]:[m]}const qB=new Map,GMe=new Set;let a9t=0;function yxt(){a9t++;for(const t of GMe)t()}function gSn(t){return qB.set(t.id,t),yxt(),()=>{qB.get(t.id)===t&&(qB.delete(t.id),yxt())}}function ySn(t){return t?qB.get(t)??null:null}function snn(){return[...qB.values()]}function vSn(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 GMe.add(t),()=>GMe.delete(t)}function SSn(){return a9t}function yVe(t){return t.length===0?void 0:t.some(s=>s.hiddenBy===null)?null:[...t].sort((s,c)=>c.area-s.area)[0]?.hiddenBy??null}function ann(t){return t.filter(n=>n.hiddenBy!==null).sort((n,s)=>s.area-n.area).map(n=>`${n.label} (${n.hiddenBy}, ${n.inlineHiding===null?"from an ancestor or a stylesheet":n.failsafeEligible?"its own inline style, unowned":"its own inline style, by a declared owner"}, ${Math.round(n.area)}px²)`)}function c9t(t){return t.filter(n=>n.failsafeEligible&&n.inlineHiding!==null)}function cnn(t){return t.some(n=>n.hiddenBy!==null)?c9t(t).length>0:null}const lnn=4e3;function unn(t){const n=t.deadlineMs??lnn;if(t.framesProduced<=0)return{fire:!1};if(t.hiddenForMs===null||t.hiddenForMs<n)return{fire:!1};if(yVe(t.canvases)===null)return{fire:!1};const s=[...c9t(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 mme=new Map;function xSn(t){return mme.set(t.id,t),()=>{mme.get(t.id)===t&&mme.delete(t.id)}}function fnn(){return[...mme.values()]}const aOe=10,a_e=5e3;function dnn(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 pnn(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 _nn(t){return t.canvasHiddenBy===void 0?{status:"unmeasured",detail:"no canvas was found to measure",fix:"the session vitals collector must enumerate this session’s canvases before this can be checked"}:t.framesProduced===null?{status:"unmeasured",detail:"nothing sampled whether frames are being produced",fix:"the session vitals collector must run its frame sampler before this can be checked"}:t.canvasHiddenBy===null?{status:"ok",detail:"this session presents a revealed canvas"}:t.framesProduced===0?{status:"ok",detail:`every canvas is hidden (largest: ${t.canvasHiddenBy}) and nothing is drawing — not the failsafe's case`}:t.canvasHidesItself===!1?{status:"ok",detail:`every canvas is hidden but none is hiding ITSELF — the workspace is showing a non-canvas document, which is what the user opened: ${(t.hiddenCanvases??[]).join("; ")}`}:{status:"violation",detail:`${t.framesProduced} frame(s) produced in ${t.sampleWindowMs??0}ms while every canvas is hidden and one hides ITSELF: ${(t.hiddenCanvases??[]).join("; ")}`,cause:`frames are being produced while every canvas is hidden and one hides itself (${t.canvasHiddenBy})`,missing:"the session is burning frames onto a surface nobody can see — the user is looking at an empty viewport while every instrument reports a healthy, rendering session",fix:"reveal the canvas as soon as it produces frames — the bounded failsafe in `coverage/canvas-reveal.ts` does it for inline hiding on the canvas itself and says so loudly; hiding from an ancestor or a stylesheet is its owner’s to undo"}}function mnn(t){return t.directManipulationExpected===!1?{status:"ok",detail:"browser automation is rendering evidence — no person is waiting on direct manipulation"}:t.tabVisible?t.fps===null?{status:"unmeasured",detail:t.fpsUnavailable??"no frame-rate sample exists",fix:"the session vitals collector must sample frame cadence while the tab is visible"}:t.fps>=aOe?{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 ${aOe}fps floor`,cause:`the visible tab is rendering below the ${aOe}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 hnn(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<a_e?{status:"ok",detail:`play started ${t.play.startedMsAgo}ms ago and has not drawn yet — inside the ${a_e}ms deadline`}:{status:"violation",detail:`play started ${t.play.startedMsAgo}ms ago and has drawn no frame (deadline ${a_e}ms)`,cause:`play started and no frame has drawn within the ${a_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 l9t={"edit-mode-static":dnn,"single-root-scene":pnn,"canvas-revealed":_nn,"visible-tab-fps-floor":mnn,"play-drew-a-frame":hnn},gnn=Object.keys(l9t);function ynn(t){return gnn.map(n=>({id:n,...l9t[n](t)}))}function vnn(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 KMe=new Set;function bnn(t){return KMe.add(t),()=>{KMe.delete(t)}}function Snn(){for(const t of[...KMe])try{t()}catch(n){ea.error(`a session-sample subscriber threw: ${String(n)}`,"invariant")}}const xnn=5e3;let Aw={frames:0,since:0},VZ=null,zB=null,oR=null;const UZ=new Map;function wnn(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 Tnn="editor-canvas";function Cnn(t){const n=t.style;return n.display==="none"?"display":n.visibility==="hidden"?"visibility":n.opacity!==""&&Number.parseFloat(n.opacity)===0?"opacity":null}function u9t(){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:wnn(n),inlineHiding:Cnn(n),failsafeEligible:c!==Tnn&&!n.closest(".monaco-editor")}})}function Enn(){const t=snn();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 knn(){const t=fnn(),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 Ann(t=Date.now()){const n=ste(),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,...Enn()}:null;return{mode:n?"play":"edit",loops:[...JMe().map(g=>({name:`${g.id} session`,running:g.mounted()})),...JMe().map(g=>({name:`${g.id} playing`,running:g.playing()}))],designTimeSurfaces:knn(),presentedThreeRoots:nPt()?onn().filter(g=>g.surface==="three").map(g=>g.worldId):null,...(()=>{const g=u9t();return{canvasHiddenBy:yVe(g),canvasHidesItself:cnn(g),hiddenCanvases:ann(g)}})(),framesProduced:Aw.since===0?null:c,sampleWindowMs:Aw.since===0?null:s,tabVisible:!document.hidden,directManipulationExpected:navigator.webdriver!==!0,fps:d,fpsUnavailable:d===null?Aw.since===0?"the frame sampler has not opened a window yet":"no frame was produced in the sample window":null,play:m}}function f9t(){return ynn(Ann())}let mB=null;const vxt=new WeakSet;function Dnn(t,n){const s=yVe(t);if(s==null){mB=null;return}if(mB===null){mB=n;return}const c=unn({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||vxt.has(d)||(vxt.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"),ea.error(c.ledger,"invariant"))}function Pnn(){const t=f9t();for(const n of t){const s=vnn(n);if(!s){UZ.delete(n.id);continue}if(n.id==="visible-tab-fps-floor"){const c=(UZ.get(n.id)??0)+1;if(UZ.set(n.id,c),c<3)continue}ea.warn(s,"invariant")}return t}function Inn(){if(zB!==null)return bxt;Aw={frames:0,since:Date.now()};const t=()=>{Aw.frames++,VZ=requestAnimationFrame(t)};return VZ=requestAnimationFrame(t),zB=setInterval(()=>{const n=ste();n&&oR===null&&(oR=Date.now()),n||(oR=null),Snn(),Dnn(u9t(),Date.now()),Pnn(),Aw={frames:0,since:Date.now()}},xnn),bxt}function Nnn(){Aw={frames:0,since:zB===null?0:Date.now()},oR=null,mB=null,UZ.clear(),PO.clear()}function bxt(){VZ!==null&&cancelAnimationFrame(VZ),zB!==null&&clearInterval(zB),VZ=null,zB=null,Aw={frames:0,since:0},oR=null,mB=null,UZ.clear()}let XMe=null;function Onn(t){XMe=t}function vVe(){return XMe?(XMe(),!0):!1}let bVe=[];const YMe=new Set;function Sxt(t){bVe=t;for(const n of YMe)n()}function Rnn(){return bVe}function Fnn(t){return YMe.add(t),()=>YMe.delete(t)}function Mnn(t){const n=bVe.find(s=>s.id===t);return n?(n.run(),!0):!1}let QQ=null;function jnn(t){QQ=t}function Lnn(t){QQ&&Promise.resolve(QQ(`${t}.focus`)).catch(()=>{})}const Bnn=/^volter\.([^.]+)\.(.+)$/;async function $nn(t,n){if(QQ)return await QQ(t,n);const s=Bnn.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 fo(async()=>{const{invokeViewVerb:d}=await Promise.resolve().then(()=>r4r);return{invokeViewVerb:d}},[]);return c(s[1],s[2],n)}const SVe=[{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 qnn(t){const{liveCanvasFrame:n}=await fo(async()=>{const{liveCanvasFrame:s}=await Promise.resolve().then(()=>srn);return{liveCanvasFrame:s}},void 0);return n(t)}async function znn(...t){const{capturePlayComposite:n}=await fo(async()=>{const{capturePlayComposite:s}=await Promise.resolve().then(()=>trn);return{capturePlayComposite:s}},void 0);return n(...t)}async function xxt(){return fo(()=>Promise.resolve().then(()=>UDt),void 0)}async function Vnn(){return fo(()=>Promise.resolve().then(()=>Uan),void 0)}function Unn(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=Jye(()=>{bC().some(g=>g.id===t)&&m()}),bC().some(g=>g.id===t)?m():c=window.setTimeout(m,n)})}async function Jnn(t){if(t){if(!bC().some(n=>n.id===t)){const n=t.startsWith(Nme);if(n&&(await(await xxt()).refreshProjectToolContributions(),await Unn(t)),!bC().some(s=>s.id===t)){const s=bC().map(d=>d.id),c=n?(await xxt()).contributionFailureHint(t.slice(Nme.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 d9t(t){const n=SVe.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(OBe(s),!await CC(()=>Y4t()===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 Wnn(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 Hnn(t){let n=!1;if(await CC(()=>(n=jMe(t.id),n||ixt(t.id)!==null),PR),n)return e_();const s=ixt(t.id);throw s?new Error(s):new Error(`World document is not registered: ${t.id}`)}async function Gnn(t,n){const s=g=>g.filter(S=>S.id===n||S.label===n);let c=[];if(!await CC(()=>{const g=sBe(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 Knn(t,n){const s=await Wye(n.kind,t,n);if(s!==null)return s;let c=!1;if(await CC(()=>(c=SN(n.id)||X0(n.id),c||oxt(n.id)!==null),PR),c)return n.story!==void 0&&await Gnn(n.id,n.story),n.id;const d=oxt(n.id);throw d?new Error(d):new Error(`Workspace document is not available: ${n.id}`)}async function Xnn(t,n){const s=await Wye(n.kind,t,n);if(s===null){const{kind:c,...d}=n,m=lkr();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 Ynn(t){const n=WEr();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 Znn(t,n){if(!n)return e_();if(!ivr(n.kind))throw new Error(`present-view does not know the document kind "${String(n.kind)}". An EditorView addresses a document by one of: ${XTt.join(", ")}. `+Ynn(String(n.kind)));switch(n.kind){case"scene":return Wnn();case"world":return Hnn(n);case"asset":case"tool":case"document":case"story":case"project-tool":case"generation":return Xnn(t,n);case"workspace":return Knn(t,n)}}function Qnn(t){const n=t.indexOf(",");return{base64:n>=0?t.slice(n+1):t,mimeType:"image/png"}}const wxt=mVe;function ein(t,n,s){if(!s?.degenerate)return null;const c=sVe();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 p9t(t,n){const s=TC();if(!s)throw new Error("No active editor document to capture.");const{descriptor:c,title:d}=s,m=ote(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=o2(c.id);if(S?.capture){const J=S.capture(n);if(!J)throw new Error(`Object3D document could not be captured: ${c.id}`);return{...Qnn(J),document:g,view:m,source:"object3d-document"}}const k=c.id===a0?YFt()??wxt(c.id):wxt(c.id);if(!k)throw new Error(`Active document surface is not mounted: ${c.id}`);const A=t9t(k),F=await znn(A?.container??k,{canvasFrame:A?.canvasFrame??qnn,includeDocumentStyles:c.id!==a0&&!A}),D=ein(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 tin="workspace:scene";function rin(t){return o2(t)??o2(tin)}function nin(t,n,s,c){const d=o2(n),m=rin(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&&R_e(n)?_Ar(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 Bge(t,n,s={}){if(n?.version!==1)throw new Error("present-view requires EditorView version 1.");const c=Object.keys(n).filter(F=>!kmt.includes(F));if(c.length>0)throw new Error(`present-view does not know ${c.map(F=>`"${F}"`).join(", ")}. An EditorView carries: ${kmt.join(", ")}. A document's own address (kind, and the fields that kind reads) goes under "document".`);const d=ote(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)}.`);JBe(n.style)}if(n.workspace!==void 0){if(!kB(n.workspace))throw new Error(`present-view requires a workspace of ${LBe().join(", ")}, got ${String(n.workspace)}.`);if(zS()!==n.workspace){const F=pDt();s2(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 Znn(t,n.document);await Jnn(n.utility);const S=o2(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&&e_()!==g&&X0(g),nin(t,g,n,m),n.panel!==void 0&&await d9t(n.panel);const k=ZTt(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 Vnn()).showEditorPresentationNotice({presented:A,previousView:d}),A}const $ge=new Map;let _9t=0;const ZMe=new Set;function m9t(){_9t+=1;for(const t of ZMe)t()}function iin(t,n,s){const c=$ge.get(t);c&&c.assetPath===n&&c.actions.length===s.length&&c.actions.every((d,m)=>d===s[m])||($ge.set(t,{assetPath:n,actions:s}),m9t())}function oin(t){$ge.delete(t)&&m9t()}function sin(t){const n=[];for(const s of $ge.values())s.assetPath===t&&n.push(...s.actions);return n}function ain(t){return ZMe.add(t),()=>ZMe.delete(t)}function Txt(){return _9t}const cin=[],Cxt=new Set;let lin=0;function uin(t){for(const n of cin)if(n.match(t))return n;return null}function fin(t){return Cxt.add(t),()=>{Cxt.delete(t)}}function Ext(){return lin}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=[],QMe=new Set,BY=new Map;let h9t=0;function cOe(){h9t++;for(const t of QMe)t()}function din(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(cOe)),cOe(),()=>{const s=eD.indexOf(t);s<0||(eD.splice(s,1),BY.get(t)?.(),BY.delete(t),cOe())}}const pin=[];function _in(){return eD.length===0?pin:eD}function g9t(t){return QMe.add(t),()=>{QMe.delete(t)}}function qge(){return h9t}function y9t(t){for(const n of eD){const s=n.entries({components:[t],surface:null})[0];if(s)return{source:n,entry:s}}return null}function min(){const t=J0e();return t?{path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}}:null}function hin(t,n){return Ze.useEffect(()=>()=>oin(t),[t]),Ze.useCallback(s=>{n!==null&&iin(t,n,s)},[t,n])}function gin({id:t,title:n,file:s,tool:c,Component:d}){Ze.useSyncExternalStore(U0e,qQ),Ze.useSyncExternalStore(Tye,cN,cN),Ze.useSyncExternalStore(Pye,lN,lN);const m=min(),g=hin(t,m?.path??null),S=Ze.useRef(null),k=Ze.useCallback(F=>{S.current?.(),S.current=F===null?null:SBe(`building ${F.replace(/^building /,"")}`)},[]);Ze.useEffect(()=>()=>S.current?.(),[]);const A=Ze.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:{...FCr,marginBottom:4},children:[q.jsx(dc,{icon:Kk.tool.extension,tone:"muted",style:{marginRight:4}}),n]}),q.jsx(xBe,{file:s,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:Kye(),surfaces:cBe,account:KLe(),play:Dye(),asset:m,setActions:g,notify:A,work:k})})]})}function yin(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 v9t=32,eje=new Set,kxt=new Map,Axt=new Map;let sR=null,JZ=null,b9t=0,tje=0,VB=0,xN=0,Dxt=!1,pD={url:null,progress:0,playing:!1};function vin(){for(const t of eje)t()}function I$(t){pD.url===t.url&&pD.playing===t.playing&&Math.abs(pD.progress-t.progress)<.002||(pD=t,vin())}function xVe(){return sR??=new AudioContext,sR}function bin(){if(Dxt||typeof window>"u")return;Dxt=!0;const t=()=>{if(!sR)return;const n=pD.url,s=xN;sR.resume().then(()=>{n&&s===xN&&!JZ&&sR?.state==="running"&&w9t(n,s)})};window.addEventListener("pointerdown",t,{capture:!0}),window.addEventListener("keydown",t,{capture:!0})}function wVe(){if(VB&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(VB),VB=0,!JZ)return;const t=JZ;JZ=null,t.onended=null;try{t.stop()}catch{}t.disconnect()}function S9t(){if(VB=0,!pD.playing||!sR||tje<=0)return;const t=Math.min(1,(sR.currentTime-b9t)/tje);I$({url:pD.url,progress:t,playing:t<1}),t<1&&typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(S9t))}function Sin(t,n,s){if(s!==xN)return;wVe();const c=xVe(),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(),JZ=d,b9t=c.currentTime,tje=t.duration,I$({url:n,progress:0,playing:!0}),typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(S9t))}async function x9t(t){const n=kxt.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 xVe().decodeAudioData(d.slice(0))})().catch(()=>null);return kxt.set(t,s),s}async function w9t(t,n){bin();const s=await x9t(t);if(n!==xN)return;if(!s){I$({url:t,progress:0,playing:!1});return}const c=xVe();c.state==="suspended"&&(await c.resume(),n!==xN)||c.state==="running"&&Sin(s,t,n)}function xin(t){return eje.add(t),()=>eje.delete(t)}function win(){return pD}function Tin(t){const n=++xN;wVe(),I$({url:t,progress:0,playing:!0}),w9t(t,n)}function Cin(t){t&&pD.url!==t||(xN+=1,wVe(),I$({url:null,progress:0,playing:!1}))}function Ein(t,n=v9t){const s=`${t}#${n}`,c=Axt.get(s);if(c)return c;const d=x9t(t).then(m=>m?yin(m.getChannelData(0),n):Array.from({length:n},()=>0));return Axt.set(s,d),d}let _Z=[];function wSn(t){return _Z=[..._Z,t],()=>{_Z=_Z.filter(n=>n!==t)}}function T9t(t){return _Z.find(n=>n.accepts(t))??null}const TVe={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)"},kin={folder:uee,model:D0r,prefab:GB,component:Qje,audio:rLe,image:y0r,video:k0r,json:iLe,unknown:RTt,source:GTt};function vD({kind:t,size:n=24}){return q.jsx(dc,{icon:kin[t],style:{fontSize:n,color:TVe[t]}})}const Ain=100,Din=50,Pin=new VPt(t=>{const n=T9t(t);return n?n.render(t):Promise.reject(new Error(`No model preview loader for ${t}.`))},2);function C9t(t,n){const[s,c]=Ze.useState(null),[d,m]=Ze.useState(!1),[g,S]=Ze.useState(null),[k,A]=Ze.useState(!1);Ze.useEffect(()=>{c(null),m(!1),S(null),A(!1)},[t]),Ze.useEffect(()=>{let D=!1,J=null;return y$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=Pin.request(t,n),J.promise}).then($=>{!D&&$&&c($)}).catch(()=>{D||m(!0)}),()=>{D=!0,J?.cancel()}},[k,n,t]);const F=Ze.useCallback(()=>{S(null),A(!0)},[]);return{src:g??s,fromManifest:g!==null,failed:d,rejectManifest:F}}function E9t({url:t}){const n=C9t(t,Ain);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 ${nhe[2]}`,borderTopColor:TVe.model,borderRadius:"50%"}})})}function Iin({url:t,name:n}){const[s,c]=Ze.useState(()=>Array.from({length:v9t},()=>.15)),d=Ze.useSyncExternalStore(xin,win);Ze.useEffect(()=>{let S=!1;return Ein(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=TVe[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 k9t(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 TSn(t,n,s,c,d){return t==="fit"?k9t(n,s,c,d):t}function Nin(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=VYr(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 A9t({sheetUrl:t,frame:n,scale:s,maxEdge:c}){const d=Ze.useRef(null),m=Math.max(1,n.sourceWidth??n.width),g=Math.max(1,n.sourceHeight??n.height),S=c!=null?k9t(m,g,c,c):s??1,k=Math.max(1,Math.round(m*S)),A=Math.max(1,Math.round(g*S));return Ze.useEffect(()=>{const F=d.current;if(!F)return;const D=new Image;let J=!1;return D.onload=()=>{J||Nin(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 D9t={fontSize:11,color:Zf[3],marginBottom:2},Oin={fontSize:11,color:Zf[1],wordBreak:"break-all"};function lOe({asset:t}){Ze.useSyncExternalStore(l2,rA,rA);const n={path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}};return ODt().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(gin,{id:s.id,title:s.title,file:s.file,tool:s.tool,Component:s.Component},`${s.id}:${s.version}`):null})}function Pxt(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:D9t,children:t}),q.jsx("div",{style:Oin,children:n})]})}function Rin({asset:t}){const n=t.capabilities?.editor==="environment";Ze.useSyncExternalStore(g9t,qge,qge);const s=t.componentPreview,c=s?y9t({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:_Be.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(Min,{path:t.path,name:t.name}):t.kind==="video"?q.jsx(Fin,{path:t.path}):t.kind==="model"?q.jsx(E9t,{url:t.path}):q.jsx(wR,{kind:t.kind,name:t.name,variant:"cell"})})}function Fin({path:t}){return q.jsx("video",{src:t,muted:!0,preload:"metadata",style:{width:"100%",height:"100%",objectFit:"contain"}})}function Min({path:t,name:n}){const{sheetPath:s,frameName:c}=H0e(t),[d,m]=Ze.useState(null);return Ze.useEffect(()=>{if(!c){m(null);return}let g=!1;return fetch(`/${kRt(s)}`).then(S=>S.ok?S.text():null).then(S=>{if(g||!S)return;const k=Pze(S);m(k?.frames.find(A=>A.name===c)??null)}).catch(()=>{g||m(null)}),()=>{g=!0}},[c,s]),d?q.jsx(A9t,{sheetUrl:`/${s}`,frame:d,maxEdge:96}):q.jsx("img",{src:t.split("#")[0],alt:n,style:{width:"100%",height:"100%",objectFit:"contain"}})}function jin({asset:t}){const[n,s]=Ze.useState(null),{sheetPath:c,frameName:d}=H0e(t.path);return Ze.useEffect(()=>{if(s(null),t.kind!=="image"||t.capabilities?.editor==="environment")return;let m=!1;if(d)return fetch(`/${kRt(c)}`).then(S=>S.ok?S.text():null).then(S=>{if(m||!S)return;const k=Pze(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 Lin(){Ze.useSyncExternalStore(fin,Ext,Ext);const t=J0e();if(!t)return null;const n=uin(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 ${nhe[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(n.View,{asset:t}),q.jsx(lOe,{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(BRt,{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(lOe,{asset:t})]}):q.jsxs("div",{"data-testid":"inspector-asset-selection",style:{pointerEvents:"auto",padding:8,borderBottom:`1px solid ${nhe[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(jin,{asset:t}),q.jsx("div",{style:{...D9t,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:Pxt(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:Pxt(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(lOe,{asset:t})]})}function Bin(t){return sin(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 $in(){const t=J0e();if(t===null)return null;const n=Oye();return n&&(n.adapter!==null||n.nodeId!==null)?null:{quickActions:Bin(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:jRe,title:"Preview",icon:iB,order:v4t,body:{kind:"preview",render:()=>q.jsx(Rin,{asset:t})}},{id:"asset-selection",title:"Asset",icon:R$,order:fQ,body:{kind:"custom",render:()=>q.jsx(Lin,{})},keepMounted:!0}]}}const qin={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 zin(t){const n=qin[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 Vin={ok:A0r,gap:OTt,na:W0r,info:R$},Uin={ok:Go.semantic.success,gap:Go.semantic.warning,na:Go.content.dim,info:Go.content.dim};function Jin({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:Uin[t.status],paddingTop:1},children:q.jsx(dc,{icon:Vin[t.status]})}),q.jsxs("div",{style:{minWidth:0},children:[q.jsx("div",{style:{color:Go.content.primary,fontWeight:600},children:zin(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 Win({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(Jin,{row:s},s.seam))]})}function Hin(t){return{id:"ingest-coverage",title:"Ingest coverage",icon:qTt,order:9e3,description:`${t.summary.gaps} gap${t.summary.gaps===1?"":"s"}`,defaultOpen:!0,testId:"ingest-coverage-section",body:{kind:"custom",render:()=>q.jsx(Win,{report:t}),data:{summary:t.summary,rows:t.rows}}}}function Gin(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 P9t="inspectorPresentation";function Kin(t){return t==="card"||t==="column"||t==="properties"}function Ixt(){const t=GAr(P9t);if(!t||typeof t!="object")return{};const n={};for(const[s,c]of Object.entries(t))Kin(c)&&(n[s]=c);return n}let UB=null,nve=0;const UO=new Set;let uOe=null;GDt().then(()=>{UB=null,nve++;for(const t of UO)t()});function Xin(){nve++;for(const t of UO)t()}function I9t(){if(UB===null){if(!HAr())return Ixt();UB=Ixt()}return UB}function rje(t){return I9t()[t]??null}function CVe(t,n){if(Lnn("volter.properties"),rje(t)!==n){UB={...I9t(),[t]:n},nve++,KAr(P9t,UB);for(const s of UO)s()}}function Yin(t){return UO.size===0&&(uOe=VAr(Xin)),UO.add(t),()=>{UO.delete(t),UO.size===0&&(uOe?.(),uOe=null)}}function Nxt(){return nve}function Zin(t,n,s=null){return n??s??t}function N9t(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 nje(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function Qin(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?nje(d.kind):null}function eon(t){const n=rBe();if(n!==null&&n.documentId===e_())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?nje(d[0]?.kind??""):null;if(m)return m;const g=Qin(s,t);if(g)return g}return nje(tve()??"")??"three"}function ton({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 O9t(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 ron([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),Te=Math.asin(Math.min(Math.max(Ce,-1),1));return Math.abs(Ce)<.9999999?[Math.atan2(-Pe,X),Te,Math.atan2(-ue,pe)]:[Math.atan2(be,De),Te,0]}function EVe(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]=ron(S);return[k*bD,A*bD,F*bD]}function non(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:O9t(s[0]/bD,s[1]/bD,s[2]/bD)}:{...c,[n]:[s[0],s[1],s[2]]}}function ion(t,n,s){const c=EVe(t.rotation);return c[n]=s,{position:[...t.position],rotation:O9t(c[0]/bD,c[1]/bD,c[2]/bD),scale:[...t.scale]}}const oon={x:"#e0726d",y:"#83bd66",z:"#6390dd"};function fOe({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]=Ze.useState(null),$=Ze.useRef(!1);return q.jsx(w_e,{label:n,style:{padding:"4px 8px"},children:t.map(({axis:G,name:se})=>q.jsx(SZ,{testId:`${c}-${se}`,label:se,labelColor:oon[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 son({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?.(ion(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(NTr,{children:[q.jsx(fOe,{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(fOe,{axes:t==="2d"?[{axis:2,name:"z"}]:A,label:t==="2d"?"Rotation (degrees)":"Rotation",testidPrefix:"ingest-rotation",values:EVe(n.rotation),step:1,precision:1,...$("rotation"),onBegin:m,onPreview:g&&J(g),onCommit:J(S)}),q.jsx(fOe,{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 Oxt(t){return t.revertsTo===void 0?`Revert ${t.label} to default`:`Revert ${t.label} to ${t.revertsTo}`}function aon({value:t,onCommit:n,onPreview:s,...c}){const[d,m]=Ze.useState(null),g=Ze.useRef(null),S=Ze.useRef(null),k=Ze.useRef({draft:d,onCommit:n});return k.current={draft:d,onCommit:n},Ze.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(i4t,{...c,ref:g,value:d??t,onChange:A=>{S.current===null&&(S.current=t),m(A.target.value),s?.(A.target.value)}})}async function R9t(t,n=LRt){const s=await Promise.all(n.map(c=>con(t,c)));return{assets:s.flatMap(c=>c.assets),failedListings:s.flatMap(c=>c.failedListings)}}async function con(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 lon(t,n){const s=t.filter(S=>S.root==="public"),c=uon(s),d=(await Promise.all(c.map(async S=>{const k=await n(S.path);if(!k)return null;const A=Pze(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=Rxt(S.path);for(const F of LYr(k.image))m.add(A?`${A}/${F}`:F);for(const F of s)gMe(F.path)===gMe(S.path)&&m.add(F.path)}const g=d.flatMap(({sidecar:S,parsed:k})=>{const A=Rxt(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 uon(t){const n=new Map;for(const s of t){if(!/\.json$/i.test(s.path))continue;const c=gMe(s.path),d=n.get(c);(!d||ISt(s.path)>ISt(d.path))&&n.set(c,s)}return[...n.values()]}function Rxt(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function F9t(t){const n=ig(t).kind;return n==="model"||n==="image"||n==="video"||n==="audio"?n:"other"}function fon(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 don(t){return(t.surface==="three"?0:t.surface==="canvas"?10:t.surface==="dom"?20:30)+(t.exported?0:4)}const pon=1e4,_on={paths:[],failures:[]};let $Y=null;async function mon(){const t=await R9t(K0e,["public"]);return{paths:t.assets.filter(n=>F9t(n.entry.name)==="image").map(n=>n.path).sort((n,s)=>n.localeCompare(s)),failures:t.failedListings}}function hon(){const t=Date.now();return(!$Y||t-$Y.at>pon)&&($Y={at:t,scan:mon().catch(n=>($Y=null,{paths:[],failures:[n instanceof Error?n.message:String(n)]}))}),$Y.scan}function gon(t){const[n,s]=Ze.useState(_on);return Ze.useEffect(()=>{let c=!0;return hon().then(d=>{c&&s(d)}),()=>{c=!1}},[t]),n}const yon={width:64},Fxt={width:MCr,fontSize:"var(--volter-font-md)",color:Go.content.muted};function AI(t){return`ingest-prop-${t.replace(/\./g,"-")}`}function von({field:t,io:n,value:s}){const{paths:c,failures:d}=gon(!0),[m,g]=Ze.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(jCr,{testId:AI(t.path),value:s,options:c,previewUrlFor:F=>`/${F}`,disabled:t.readonly,note:k??A,onChange:S})}function bon({field:t,io:n}){const s=t,c=n.get(s.path),d=MRe(c)?void 0:c,m=s.defaulted===!0&&d===void 0,g=s.readonly?wBe(s):void 0,S=s.resettable?q.jsx(dm,{"data-testid":`ingest-revert-${s.path.replace(/\./g,"-")}`,"aria-label":Oxt(s),title:Oxt(s),onClick:()=>n.remove?.(s.path),children:q.jsx(dc,{icon:jOe})}):null;return s.type==="boolean"?q.jsxs("label",{title:g,style:{display:"flex",gap:6,alignItems:"center",padding:"6px 8px",fontSize:"var(--volter-font-md)"},children:[q.jsx(TD,{"data-testid":AI(s.path),checked:!!d,ref:k=>{k&&(k.indeterminate=m)},disabled:s.readonly,onChange:k=>n.set(s.path,k.target.checked)}),q.jsx("span",{style:s.defaulted?{color:Go.content.dim}:void 0,children:s.label}),S]}):q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px"},children:[q.jsx("span",{style:s.defaulted?{...Fxt,color:Go.content.dim}:Fxt,title:g??(s.defaulted?`${s.label} — default (not set here)`:s.label),children:s.label}),s.type==="color"?q.jsx(aon,{"data-testid":s.path==="material.color"?"ingest-color":AI(s.path),value:d??"#ffffff",disabled:s.readonly,onCommit:k=>n.set(s.path,k),onPreview:k=>n.preview?.(s.path,k)}):s.type==="number"?q.jsx(IRe,{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:yon}):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(RCr,{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(von,{field:s,io:n,value:typeof d=="string"?d:""}):s.type==="json"?q.jsx(hBe,{"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(IRe,{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 M9t({fields:t,io:n}){return q.jsx(q.Fragment,{children:t.map(s=>q.jsx(bon,{field:s,io:n},s.path))})}function ive(t){const[n,s]=Ze.useState(null);return Ze.useEffect(()=>{let c=0;const d=requestAnimationFrame(()=>{c=requestAnimationFrame(()=>s(t))});return()=>{cancelAnimationFrame(d),cancelAnimationFrame(c)}},[t]),n===t}const Son=Ze.lazy(()=>fo(()=>import("./InspectorCanvasPreview-BrFjhoiD.js"),__vite__mapDeps([262,1,2,3,4])).then(t=>({default:t.InspectorCanvasPreview})));function CSn({picture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=ive(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(Ze.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 xon({source:t,entry:n,previewKey:s,actions:c,mode:d="section"}){const m=d==="thumbnail",g=ive(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 won({capture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=ive(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(Ze.Suspense,{fallback:null,children:q.jsx(Son,{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 Ton(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Con(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:Ton(d),properties:c.get(d)}))}}function Eon(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 kon=14,Aon=[[/physic|rigid|collid/i,I0r],[/material/i,o0r],[/light/i,Zje],[/camera/i,nye],[/audio|sound|music/i,rLe],[/player|character|humanoid|person/i,P0r],[/anim|state|machine/i,PTt]];function Don(t){for(const[n,s]of Aon)if(n.test(t))return s;return GB}function Pon(t){return n=>Ze.createElement(xon,{source:t.picture.source,entry:t.picture.entry,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Ion(t){return n=>Ze.createElement(won,{capture:t.capture,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Non(t){return t.media?t.media.preview?t.media.preview({displayName:t.displayName,previewKey:t.previewKey,actions:t.actions}):null:t.canvasCapture?Ion({capture:t.canvasCapture,previewKey:t.previewKey,actions:t.actions}):t.picture?Pon({picture:t.picture,previewKey:t.previewKey,actions:t.actions}):null}function dOe(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 Oon={position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]};function Ron(t,n,s,c){if(S4t(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:()=>Ze.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=Ron(S,n,s,c).filter(F=>!d.has(F.id)),A=(S4t(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 L9t(t,n,s){return s===void 0?[...t]:t.filter(c=>n.get(c.id)===s.owner||s.builtins.includes(c.id))}function ije(t){const{adapter:n,nullSubject:s}=t,{sections:c,claimed:d,owners:m}=j9t(n?t.contributions??[]:[],n,null,null),g=L9t([...(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:TBe(t.surface)},quickActions:s?.quickActions??[],related:[],sections:g}}function Fon(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 Mon(t){const{adapter:n,nodeId:s,node:c,contributions:d,onEdit:m}=t;if(s===null)return ije({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=lPt(n,s,en,ii);return m(),No},...n.inspector?.remove?{remove:en=>{const ii=x3r(n,s,en);return m(),ii}}:{}},F=n.inspector?.properties(s)??[],D=F.find(en=>en.path==="name"),{ungrouped:J,groups:$}=Con(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?Yje:oLe,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:ITt,placement:"identity",run:async()=>{await aPt(n,s),m()}});const Pe=new Map;Pe.set(A5e,se);for(const en of $)Pe.set(Mht(en.groupId),en.properties);const be=[],X=n.truth?.resolve(s,"position").site??null,Te=t.media,$e=c?.typeLabel??c?.label??s,bt=t.surface==="canvas"&&Te===null&&t.stories?y9t({name:$e,path:X?.anchored===!0?X.file:"",surface:"canvas"}):null,It=ue.filter(en=>en.placement==="preview"),Wt=Non({media:Te,canvasCapture:t.canvasPreview,picture:bt,displayName:c?.label??s,previewKey:s,actions:It});!S.has(jRe)&&Wt!==null&&be.push({id:jRe,title:"Preview",icon:aR,order:v4t,body:{kind:"preview",render:Wt}});const zt=Eon(n,s),ft=!S.has(Fht)&&zt!==null,tr=ft?$.find(en=>en.name==="Transform")?.properties??[]:[];if(ft){const en=n.transforms?.get(s)??Oon,ii=Te?.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:EVe(en.rotation),scale:[...en.scale]};be.push({id:Fht,title:"Transform",icon:jTt,order:nEr,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[dOe(En)],set:(En,cs)=>{if(!n.transforms)return;const On=non(en,dOe(En),cs);IFe(n,s),$_e(n,s,On);const ji=NFe(n,s);return m(),ji},...n.transforms?.remove?{remove:En=>{const cs=sPt(n,s,dOe(En));return m(),cs}}:{}}},render:()=>[Ze.createElement(son,{key:"channels",dimensions:zt,transform:en,readOnly:!n.capabilities.transform,channelEditability:No,...ii?.note?{note:ii.note}:{},onBegin:()=>{IFe(n,s)},onPreview:En=>{$_e(n,s,En)},onCommit:En=>{$_e(n,s,En),NFe(n,s),m()}}),...tr.length>0?[Ze.createElement(M9t,{key:"rows",fields:tr,io:A})]:[]]}})}S.has(A5e)||(se.length>0&&be.push({id:A5e,title:"Properties",icon:LTt,order:fQ,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:Mht(en.groupId),title:en.name,icon:Don(en.name),order:b4t+ii,description:No>0?`${No} set of ${en.properties.length}`:`${en.properties.length} properties`,defaultOpen:No>0&&en.properties.length<=kon,testId:`ingest-group-${en.groupId}`,body:{kind:"fields",fields:en.properties,io:A}})}));const Qt=t.stories;!S.has(y4t)&&Qt&&be.push(jon(Qt)),be.push(...g.map(en=>Fon(en,A,Pe))),be.sort((en,ii)=>en.order-ii.order);const Tt=L9t(be,k,t.rail),vn=gPt(n,s),Yr=yPt(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:TBe(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 jon(t){return{id:y4t,title:t.title??"Stories",icon:sLe,order:iEr,body:{kind:"custom",render:()=>Ze.createElement(ton,{stories:t.stories,activeStoryId:t.activeStoryId,onApplyStory:t.onApplyStory,isolation:t.isolation,unavailableReason:t.unavailableReason??null})}}}const Lon=["project-tool","tool-contribution"];function Bon(t){const{activeDocumentKind:n,documentSelection:s}=t;return n===null||!Lon.includes(n)?!1:s===null}function Mxt(t){const{subject:n,surface:s,available:c,override:d,workspaceDefault:m=null,columnShown:g=!0}=t,S=n.presentation.preferred??TBe(),k=Zin(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 B9t="game";function $on(t){const n=t.projectName?.trim();return{id:B9t,title:n&&n.length>0?n:"Game",kindLabel:"Game",...t.instanceName?{note:{text:t.instanceName}}:{},sections:[]}}function ESn(t){return p$e({match:()=>e_()===a0,describe:()=>$on(t())})}const qon=3,zon=Object.freeze({none:!0});function Von(t){const n=Object.getPrototypeOf(t);return n===Object.prototype||n===null}function eee(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>=qon)return{kind:"opaque",type:jxt(t)};if(Array.isArray(t))return t.map(m=>eee(m,n+1));const c=t;if(!Von(c))return{kind:"opaque",type:jxt(c)};const d={};for(const[m,g]of Object.entries(c))g!==void 0&&(d[m]=eee(g,n+1));return d}function jxt(t){return t.constructor?.name??"object"}function Lxt(t,n){let s;try{s=n.get(t.path)}catch{s=void 0}return{path:t.path,label:t.label,type:t.type,...MRe(s)?{mixed:!0}:{},...!MRe(s)&&s!==void 0?{value:eee(s)}:{},...t.defaulted!==void 0?{defaulted:t.defaulted}:{},...t.readonly!==void 0?{readonly:t.readonly}:{},...t.readonly?{readonlyReason:wBe(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=>eee(c))}:{}}}function Bxt(t){const n={};for(const[s,c]of Object.entries(t))c!==void 0&&(n[s]=eee(c));return n}function Uon(t){const n=t.body;if(n.kind==="fields")return{kind:"fields",fields:n.fields.map(s=>Lxt(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:Bxt(n.data)};if(n.kind==="custom"&&n.editable!==void 0){const s=n.editable;return{kind:"fields",fields:s.fields.map(c=>Lxt(c,s.io)),...n.data!==void 0?{data:Bxt(n.data)}:{}}}return{kind:n.kind,id:t.id,title:t.title}}function Jon(t){return{id:t.id,title:t.title,order:t.order,...t.description!==void 0?{description:t.description}:{},body:Uon(t)}}function Won(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(Jon)}}const $xt=new WeakMap;function Hon(t){if(!t.capture)return null;const n=$xt.get(t);if(n)return n;const s=async c=>t.capture?.(c)??null;return $xt.set(t,s),s}function Gon(t){return typeof t.previewImage=="function"}function Kon(t,n,s){if(!n)return null;if(s==="asset-lab"){const d=o2(e_());return d?Hon(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 Gon(c)?d=>c.previewImage(n,d,d):null}function Xon(){const t=e_();if(t===null)return null;const n=ptn(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 Yon(t){const{store:n,adapter:s,documentSelection:c,surface:d}=t,m=$in();if(m!==null)return{subject:ije({nullSubject:m,surface:d}),available:!0};const g=Gin(c,n.selectedEntityIds,s),S=g?s.hierarchy.node(g):null;if(g!==null&&S===null)return{subject:ije({nullSubject:null,surface:d}),available:!1};const k=()=>n.notifyIngestEdit(),A=g?null:G3r({adapter:s,surface:d,store:n,onEdit:k}),F=g?S?Bht(S,s):[]:Bht(null,s,{nullSubjectId:A?.id??null}),D=g?Cze(s,g):null;return{subject:Mon({adapter:s,nodeId:g,node:S,surface:d,contributions:F,...g?{}:{nullSubject:A},media:d==="asset-lab"?null:D,canvasPreview:Kon(s,g,d),assetDocument:D?.assetDocument??null,stories:V3r(s,S,g),...Xon()??{},...c===null&&g!==null&&n.selectedEntityIds.size>1?{alsoSelected:n.selectedEntityIds.size-1}:{},onEdit:k}),available:g!==null||A!==null||F.length>0}}function ove(t){const n=eon(t),{adapter:s,documentSelection:c}=Cm(t),d=Yon({store:t,adapter:s,documentSelection:c,surface:n}),{subject:m}=d,g=d.available&&(m.id!==B9t||m.sections.length>0)&&!Bon({activeDocumentKind:TC()?.descriptor.kind??null,documentSelection:c}),S=e_()===a0?uVe():null;if(S){const k=Hin(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 Mxt({subject:A,surface:n,available:!0,override:rje(n),workspaceDefault:mD().inspector??null,columnShown:ggt("properties")!==!1})}return Mxt({subject:m,surface:n,available:g,override:rje(n),workspaceDefault:mD().inspector??null,columnShown:ggt("properties")!==!1})}function sve(t){const{subject:n,surface:s,presentation:c,available:d}=ove(t);return d?Won(n,{surface:s,presentation:c}):zon}async function Zon(t,n){const{subject:s,available:c}=ove(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(),sve(t)}function Qon(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 esn(t,n,s){const c=$9t(t,n);Qon(c.field,s);const d=await c.io.set(n,s)??Rhe;return{subject:sve(t),write:d}}function $9t(t,n){const{subject:s,available:c}=ove(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: ${wBe(S.field)}`);return S}class oje extends Error{constructor(n){super(n),this.name="InspectionRemovalUnavailableError"}}async function tsn(t,n){const s=$9t(t,n);if(s.field.resettable!==!0)throw new oje(`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 oje(`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)??Rhe;return{subject:sve(t),write:c}}const kVe=new Map;let q9t=[];const sje=new Set;function z9t(){q9t=[...kVe.values()];for(const t of sje)t()}function kSn(t){return sje.add(t),()=>sje.delete(t)}function ASn(t){kVe.set(t.rootId,t),z9t()}function DSn(t){kVe.delete(t)&&z9t()}function V9t(){return q9t}function rsn(){const t=V9t();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 nsn(t){return t.liveMounted?t.livePlaying?t.storePlayState==="paused"?"paused":"playing":"paused":"stopped"}async function isn(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 zge="console";function osn(t){let n=zQ().length>0;const s=xRt(()=>{const m=zQ().length>0;m&&!n&&mD().drawer!=="hidden"&&vC(zge),n=m});let c=t.getSnapshot().lastError!==null;const d=t.subscribe(()=>{const m=t.getSnapshot().lastError,g=m!==null;g&&!c&&(ea.error(`Source write rolled back: ${m.message} (${m.code})`,"history"),mD().drawer!=="hidden"&&vC(zge)),c=g});return()=>{s(),d()}}function ave(){ZEr(zge)}function cve(){vC(zge)}const Vge=new Map;function PSn(t){return n=>{if(n.phase==="adopted"){Vge.set(t,{source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[]});return}const s=Vge.get(t);s&&s.alternates.push({sceneId:n.sceneId,cameraId:n.cameraId,sameRenderer:n.sameRenderer,drawCount:n.drawCount})}}function ISn(t){Vge.delete(t)}function ssn(){return[...Vge].map(([t,n])=>({rootId:t,source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[...n.alternates],...n.alternates.length>0?{ambiguity:`"${t}" rendered ${n.alternates.length} other world(s) after the one the editor adopted (${n.source}: ${n.sceneId}). The adopted world is unchanged; if the editor is showing the wrong scene, one of these is it: `+n.alternates.map(s=>`${s.sceneId}${s.sameRenderer?"":" (a SECOND renderer)"}`).join(", ")}:{}}))}const asn=new Set(["state","stateAll","providers","commands","events","snapshot"]);function csn(t){if(t.type!=="bridge-call")return[];const n=t.method;if(typeof n!="string"||!asn.has(n))return[];const s=t.instance;try{const c=jwr(s).debug;if(c===void 0)return[];const d=[h3t(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 lsn(t,n,s){const c=csn(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":Mvr(t.type)??Rvr(t.type),playFullReport:n&&!d&&c.length>0?"explicit":n&&t.type==="bridge-call"&&t.method==="invoke"?"if-content-changed":"none"}}function usn(t,n,s,c){return t==="none"?!1:!(t==="if-content-changed"&&n==="none"&&s===c)}function qxt(t,n){const s=nq(t);return s.hierarchy.node(n)!==null||Cze(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 pOe(t,n,s){const c=o2(e_())?.selection;if(c){c.apply(n);return}const d=t.applySelectionBeforePresentation(n);s?.deferPresentation?s.deferPresentation(d):setTimeout(d,0)}function fsn(){return typeof document>"u"?null:{visibility:document.visibilityState,focused:document.hasFocus(),reportedAt:Date.now()}}const dsn=["entities","entityCount","ontologyInvariants"];function psn(t){const n={...t};for(const s of dsn)delete n[s];for(const s of Lrn())delete n[s];return{...n,_statePatch:!0}}function zxt(t,n=null){const s=zQ(),c=e_(),d=Aze(t),m=_4t.getSnapshot(),g=n?.entities??W0e(t);return{playState:nsn({storePlayState:t.playState,liveMounted:dVe(),livePlaying:rve()}),mountFailures:s.map(S=>({...S})),storyFailures:rq().flatMap(S=>S.ok?[]:[{modulePath:S.modulePath,error:S.error}]),moduleSplits:Yrn().map(S=>({path:S.path,urls:[...S.urls]})),adapter:u0(),readiness:V9t().map(S=>({...S})),readinessWarning:rsn(),worldAdoption:ssn().map(S=>({...S})),presence:fsn(),pageErrors:_sn(),consoleErrors:msn(),sessionErrors:hsn(),sessionWarnings:gsn(),rendererResources:{...tnn()},ontologyInvariants:n?.ontologyInvariants??f9t().map(S=>({...S})),...jrn(n),selectedEntityId:d[0]??null,selectedEntityIds:d,selectedCreationSite:IYr(t),selectedWriteAnchorKind:NYr(t),activeViewportTab:t.activeViewportTab,activeDocumentId:c,activeUtilityId:XEr(),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:Q0e().map(S=>({id:S.descriptor.id,category:S.category,default:S.default})),activeTabKey:(()=>{const S=e_();return S&&zRt(S)?S:"__inspector__"})(),entityCount:g.length,savePath:kze(t),saveState:wRt(t),entities:g,viewportActivationTimings:nTr()}}function U9t(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 AVe(t){const n=oVe();return!n||t<n.startedAt?!1:n.endedAt===null||t<=n.endedAt}function _sn(){return ea.getEntries().filter(t=>t.level==="error"&&t.source==="runtime"&&AVe(t.timestamp)).slice(-100).map(t=>t.count>1?`${t.message} (×${t.count})`:t.message)}const Vxt=200;function msn(){return DVe(ea.getEntries().filter(t=>t.level==="error"&&t.source!=="runtime"&&AVe(t.timestamp)))}function DVe(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>Vxt?`${c.message.slice(0,Vxt)}…`:c.message;return`${d}${g}${m}`});return{count:n,recent:s}}function hsn(){return DVe(ea.getEntries().filter(t=>t.level==="error"&&!AVe(t.timestamp)))}function gsn(){return DVe(ea.getEntries().filter(t=>t.level==="warn"))}async function ysn(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=e_();if(!s)return{ok:!1,error:"document-script: no document is active",data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE"}};await u4t(s);const c=cQ(s);if(e_()!==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 vsn(t,n,s){if(RYr(n.type),pYr()&&n.type!=="stop")return{ok:!1,error:"Video export owns this paused run. Stop it to cancel before another command."};const c=cVe(n);if(c)return c;if(n.type==="play"||n.type==="restart"){const g=zQ();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 FYr(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 U9t(n,g)}if(!sye(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 Qrn(),{ok:!0};case"select":{const g=n.id??null;if(g!==null){const S=qxt(t,g);if(S)return{ok:!1,error:S}}pOe(t,g?[g]:[],s);break}case"select-multiple":{const g=n.ids;for(const S of g){const k=qxt(t,S);if(k)return{ok:!1,error:k}}pOe(t,g,s);break}case"select-all":{pOe(t,W0e(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 d9t(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 VRt(S,g))return{ok:!1,error:`Asset document did not finish mounting its Inspector: ${S}`};break}case"close-asset-tab":{const g=n.key;zRt(g)&&EN(g);break}case"toggle-command-palette":vVe();break;case"toggle-console":ave();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 ${LBe().join(", ")}, got ${String(g)}.`};if(zS()===g)return{ok:!0,data:{workspace:g,applied:!0}};const S=pDt().then(()=>!0);s2(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)}.`};JBe(g);const k=Ahe();return k!==g?{ok:!1,error:`set-style applied "${g}" but the editor is wearing ${k===null?"a custom mix of axes":`"${k}"`} (${agt(g).join("; ")}).`,data:{style:k,differences:agt(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=R_e(g)===null&&R_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."};WBe(S,k)}const A=n.preset;return A!==void 0&&(typeof A!="string"||!hAr(S,A))?{ok:!1,error:`viewport-presentation \`preset\` must be one of: ${lgt().map(F=>F.id).join(", ")||"(none registered)"}.`}:{ok:!0,data:{presentation:HBe(S),binding:R_e(S),bound:bAr(),lastDraw:vAr(S),presets:dAr().map(F=>F.id),viewPresets:lgt().map(F=>F.id),environmentImages:CAr().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."}:Rye(g)?(SDt(g),{ok:!0,data:{material:_N(),style:Ahe()}}):{ok:!1,error:`set-appearance material must be one of ${TTr().map(k=>k.id).join(", ")}, got ${String(g)}.`}}case"present-view":try{return{ok:!0,data:{...await Bge(t,n.view)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"current-view":return{ok:!0,data:{view:ote(t)}};case"inspect":return{ok:!0,data:{subject:sve(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 Zon(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 $nn(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=mxt();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:zrn(g,{playState:t.playState,activeViewportTab:t.activeViewportTab})}}}case"expand-hierarchy-all":case"collapse-hierarchy-all":{const g=n.type==="expand-hierarchy-all",S=mxt();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=$rn();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 esn(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 tsn(t,g);return{ok:!0,data:{subject:S.subject,write:S.write}}}catch(g){return g instanceof oje?{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=Aze(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=Xye(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 o$e(S,A):await Ohe(S,D())}};case"duplicate":{if(A.length>1&&$.duplicateMany)return{ok:!0,data:{write:await dPt(S,A)}};const G=Yye(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 s$e(S,D(),G)}}}case"wrap":return $.wrap?{ok:!0,data:{write:await Zye(S,D(),J("tag"))}}:{ok:!1,error:"structure-op: this adapter has no `wrap`."};case"unwrap":return $.unwrap?{ok:!0,data:{write:await Qye(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=e0e(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=a$e(S,D());return{ok:!0,data:{ids:G.ids,write:await G.ack}}}case"copy":return $.copy?{ok:!0,data:{copied:await t0e(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 r0e(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 n0e(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 Orn(n.step)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"capture-active-document":{const g=PDr(n);if("error"in g)return{ok:!1,error:g.error};try{return n.view&&await Bge(t,n.view),{ok:!0,data:{...await p9t(t,g.size)}}}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 Frn(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=ste(),k=S?u0()?.scenes.entries.find(J=>J.id===g&&PN(J.kind)===void 0):void 0,A=S?async J=>await KFt(J)??{ok:!1,error:"No running lane can remount with a selection."}:void 0,D=(k?await isn(k,{scenes:lVe,activateGameDocument:()=>X0(a0),gameDocumentId:a0,...A?{remountSelection:A}:{}}):null)??await ktn(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 ysn(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 bsn(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=()=>{n_e()===null&&(c=zxt(t),d=t.contentVersion,$St(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=hxt(()=>{D=null,g=!1,F()})},250)},se=vn=>{if(t.contentVersion!==vn){G();return}$(),k=vn,A=setTimeout($,1e3)},pe=()=>ste()&&t.playState==="playing",ue=vn=>{(vn!==null||k!==null&&t.contentVersion!==k||g&&t.contentVersion!==d)&&G()},Ce=(vn,Yr,en)=>pe()?(usn(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(n_e()!==null)return;if(c===null){F();return}const ii=zxt(t,c);c=ii,$St(psn(ii)),vn!=="none"&&(Ce(Yr,en,vn)||(J(),$(),g=!1,!(vn==="if-content-changed"&&t.contentVersion===d)&&D===null&&(D=hxt(()=>{D=null,F()}))))};let Pe=!1,be=!1,X=t.playState;const Te=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")}))},$e=()=>Te(!1),bt=()=>Te(!0),It=t.subscribe($e),Wt=_Ve(bt),zt=OC(bt),ft=tTr(bt);F(),i_e(!0),YCr(FZr),s.addEventListener("open",()=>{De("if-content-changed"),i_e(n_e()===null)});const tr=Ize(vn=>{i_e(vn===null)});s.addEventListener("editor-command",vn=>{try{const Yr=JSON.parse(vn.data),en=Yr._requestId,ii=t.contentVersion,No=n_e();if(No!==null){const En=KYr(No,String(Yr.type));en&&qSt(en,!1,En);return}en&&OZr(en);let gn;vsn(t,Yr,{deferPresentation:En=>{gn=En},...n?{history:n}:{}}).catch(En=>U9t(Yr,En)).then(En=>{if(en){const On=qSt(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=lsn(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),()=>{i_e(!1),D?.(),D=null,S!==null&&clearTimeout(S),S=null,$(),tr(),It(),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 Ssn(t,n,s){return Ze.createContext(s)}const LD=Ssn(void 0,"EditorContext",null);function xsn({runtime:t,children:n}){const s=Ze.useMemo(()=>({begin:()=>{},end:()=>{}}),[]);return q.jsx(LD.Provider,{value:t,children:q.jsx(n4t.Provider,{value:s,children:q.jsx(Ze.Suspense,{children:n})})})}function Yv(){const t=Ze.useContext(LD);if(!t)throw new Error("useEditorStore must be used within <EditorProvider>");return t.store}function NSn(){const t=Ze.useContext(LD);if(!t)throw new Error("useEditorStats must be used within <EditorProvider>");return t.stats}function wsn(){const t=Ze.useContext(LD);if(!t)throw new Error("useEditorInit must be used within <EditorProvider>");return t.initPromise}function J9t(){const t=Ze.useContext(LD);if(!t)throw new Error("useHistoryService must be used within <EditorProvider>");return t.session.history}function Tsn(){return Ze.useContext(LD)?.session.history??null}function OSn(){return Ze.useContext(LD)?.store??null}function RSn(){return Ze.useContext(LD)?.stats??null}function lve(){const t=Ze.useContext(LD);if(!t)throw new Error("useHistoryCommands must be used within <EditorProvider>");return t.session.historyCommands}function W9t(){const t=lve();return Ze.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot)}function Csn(t,n){return t==="selection"&&n==="selection"?"selection":"content"}class Esn{_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;i2(()=>{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;_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 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()}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=Csn(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&&e_()===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 ksn{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 Asn(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),ea.warn(c.message,"history"))),d!==s&&(s=d,d&&ea.warn(d.message,"history"))})}class Dsn{constructor(n,s={}){this.projectIdentity=n,this.history=new pDr(s),this.historyCommands=new ksn(this.history),this.releaseLimitNotices=Asn(this.history)}history;historyCommands;releaseLimitNotices;dispose(){this.releaseLimitNotices(),this.historyCommands.dispose(),this.history.dispose()}}function Psn(){return H9t}let H9t=Promise.resolve();function G9t(){const t=Isn();return H9t=t.then(()=>{},()=>{}),t}async function Isn(){await K9t()}async function K9t(){const t=wf();if(t){ea.log(`Opened project: ${t.config.name}`,"project");return}try{const n=await mFt();n&&ea.log(`Opened project: ${n.config.name}`,"project")}catch{}}const X9t=Object.freeze(Object.defineProperty({__proto__:null,bootstrapProject:G9t,initProject:K9t,projectBootstrapSettled:Psn},Symbol.toStringTag,{value:"Module"}));function _Oe(t){return Promise.reject(new Error(`This editor tier cannot ${t}.`))}const Y9t={openPersistence:()=>_Oe("persist Asset Lab documents"),replaceSource:()=>_Oe("write project source"),saveThumbnailFraming:()=>_Oe("write project thumbnail framing")};let hme=Y9t;function Nsn(t){if(hme!==t){if(hme!==Y9t)throw new Error("An Object3D document write policy is already installed.");hme=t}}function Osn(){return hme}function Rsn(){let t=0;const n=async()=>{const c=++t,d=wf();if(d)try{const m=await Fze();if(m.status!=="project"||m.project.path!==d.rootPath)return;const g=m.project.config;if(c!==t||wf()!==d)return;aLe({...d,config:g})}catch(m){c===t&&wf()===d&&console.error("[project] Could not refresh project declarations:",m)}},s=ten(()=>void n());return()=>{t++,s()}}function Fsn(){return kvr(()=>{pVe(),m3r(null),Rwr(),Nnn(),sTr(),P3t(),ftn(),oD()})}async function Msn(){typeof performance<"u"&&performance.getEntriesByType("navigation").length>0&&await Promise.race([Nye(),new Promise(n=>setTimeout(n,5e3))]),await mN()}function jsn(){Msn();const t=IC(()=>void mN()),n=cFt(()=>void mN());return()=>{t(),n()}}const Lsn={tools:[],contributions:[],loadErrors:[]};let Z9t=Lsn,Q9t=0;const aje=new Set;function Uxt(t){Z9t=t,Q9t++;for(const n of aje)n()}function N$(){return Z9t}function Bsn(){return Q9t}function eMt(t){return aje.add(t),()=>aje.delete(t)}async function WZ(){try{const t=await fetch("/__editor/project-tools"),n=await L_(t,"Catalog request failed");return Uxt(n),n}catch(t){const n={tools:[],contributions:[],loadErrors:[{sourcePath:"package.json#volter.tools",message:t instanceof Error?t.message:String(t)}]};return Uxt(n),n}}async function $sn(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 qsn(){WZ();const t=IC(()=>void WZ()),n=cFt(()=>void WZ());return()=>{t(),n()}}const Uge=new Map;function zsn(t,n){if(n===null){Uge.delete(t);return}Uge.set(t,n),Vsn()}const Jxt=128;let mZ=[],HZ=null,tMt=0,gme=!1;function Vsn(){if(gme)return()=>{};if(typeof PerformanceObserver>"u")return()=>{};let t;try{t=new PerformanceObserver(n=>{for(const s of n.getEntries()){const c=s.duration;(HZ===null||c>HZ)&&(HZ=c),c>=100&&(tMt+=1),mZ.push({start:s.startTime,duration:c}),mZ.length>Jxt&&(mZ=mZ.slice(-Jxt))}}),t.observe({type:"longtask",buffered:!0})}catch{return()=>{}}return gme=!0,()=>{t.disconnect(),gme=!1}}function Usn(){return gme?{longestTaskMs:HZ===null?null:Math.round(HZ),tasksOver100ms:tMt}:null}function Jsn(t=performance.now()){if(Uge.size===0)return null;const n={};for(const[s,c]of Uge){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 Wxt(t){return!("unavailable"in t)}function Wsn(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 Hsn=5e3,Gsn=4,Ksn=1024*1024;function mOe(t){return Math.round(t/Ksn*100)/100}function Xsn(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*Gsn;return{heapUsedMB:Wxt(n)?mOe(n.usedBytes):null,heapLimitMB:Wxt(n)&&n.limitBytes!==null?mOe(n.limitBytes):null,mountEpochs:t.mountEpochs(),canvases:s.length,canvasMB:mOe(g),...d===null?{}:{workerCalls:d},...m===null?{}:{stalls:m},...c===null?{}:{textures:c.textures,geometries:c.geometries,...c.programs===null?{}:{programs:c.programs}}}}function Ysn(t){const n=new Set;for(const s of t)try{const c=new URL(s.name,"http://volter.invalid").searchParams.get(Pge);c!==null&&c.length>0&&n.add(c)}catch{}return n.size}function Zsn(){return{heap:()=>Wsn(),mountEpochs:()=>Ysn(performance.getEntriesByType("resource")),canvases:()=>[...document.querySelectorAll("canvas")],rendererCounts:()=>Uwr()?.memorySnapshot?.().counts??null,workerCalls:()=>Jsn(),stalls:()=>Usn()}}let rMt=null;function FSn(){return rMt}function Qsn(t){const n=t.sources??Zsn(),s=t.hidden??(()=>document.visibilityState==="hidden"),c=()=>{if(s())return;const m=Xsn(n);rMt=m,t.report(m)};c();const d=setInterval(c,t.intervalMs??Hsn);return()=>clearInterval(d)}function ean({children:t}){const n=Ze.useRef(null);n.current||(n.current=new Esn({followsWorkspaceFocus:!0}),VZr(n.current));const s=Ze.useRef(null);if(!s.current){const g=wf();s.current=new Dsn(g?.rootPath??"unknown-project")}n.current.attachHistory(s.current.history),Nsn(DDr);const c=Ze.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=Ze.useRef(null);d.current||(d.current=G9t()),Ze.useEffect(()=>bsn(n.current,s.current.historyCommands),[]),Ze.useEffect(()=>jsn(),[]),Ze.useEffect(()=>qsn(),[]),Ze.useEffect(()=>Gen(),[]),Ze.useEffect(()=>Rsn(),[]),Ze.useEffect(()=>Fsn(),[]),Ze.useEffect(()=>Ctn(),[]),Ze.useEffect(()=>Qsn({report:lZr}),[]);const m=Ze.useRef(!1);return Ze.useEffect(()=>{m.current=!0;const g=s.current;return()=>{m.current=!1,queueMicrotask(()=>{m.current||g.dispose()})}},[]),q.jsx(xsn,{runtime:{store:n.current,stats:c.current,initPromise:d.current,session:s.current},children:t})}const Jge={x:0,y:0,zoom:1};function MSn(t=Jge){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=Jge,c())},subscribe:d=>(s.add(d),()=>s.delete(d))}}let r2=Jge;const cje=new Set,jSn={get:()=>tan(),setView:(t,n,s)=>PVe(t,n,s),setPan:(t,n)=>iMt(t,n),setZoom:t=>ran(t),reset:()=>oMt(),subscribe:t=>nan(t)};function nMt(){for(const t of cje)t()}function tan(){return r2}function PVe(t,n,s){const c=Math.min(4,Math.max(.1,s));r2.x===t&&r2.y===n&&r2.zoom===c||(r2={x:t,y:n,zoom:c},nMt())}function iMt(t,n){PVe(t,n,r2.zoom)}function ran(t){PVe(r2.x,r2.y,t)}function LSn(t,n){iMt(r2.x+t,r2.y+n)}function oMt(){r2.x===0&&r2.y===0&&r2.zoom===1||(r2=Jge,nMt())}function nan(t){return cje.add(t),()=>cje.delete(t)}function BSn(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 ian=new Set(["opacity","zIndex","flexGrow","flexShrink","fontWeight","lineHeight"]);function oan(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 $Sn(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 qSn(t,n){return typeof n!="number"?n:n===0||ian.has(t)?String(n):`${n}px`}const san={hidden:!1,interactive:!1,pickLock:!1},sMt=new Map;function uve(t){return sMt.get(t)??san}function IVe(t,n){sMt.set(t,{...uve(t),...n})}function oq(t){return uve(t).hidden}function aan(t,n){IVe(t,{hidden:n})}function can(t){aan(t,!oq(t))}function aMt(t){return uve(t).interactive}function lan(t,n){IVe(t,{interactive:n})}function uan(t){lan(t,!aMt(t))}function cMt(t){return uve(t).pickLock}function fan(t,n){IVe(t,{pickLock:n})}function dan(t){fan(t,!cMt(t))}const Hxt=8,wN=8,zSn=[{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 VSn(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/Hxt)*Hxt}function lMt(t,n,s,c,d){let m=Math.max(wN,iA(n.width+t,s)),g=null;return c.length&&(g=pve(n.x+m,c,d),g&&(m=Math.max(wN,g.edge-n.x))),{value:m,match:g}}function uMt(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=pve(m-g,c,d),S&&(g=Math.max(wN,m-S.edge))),{value:g,eastEdge:m,match:S}}function fMt(t,n,s,c,d){let m=Math.max(wN,iA(n.height+t,s)),g=null;return c.length&&(g=pve(n.y+m,c,d),g&&(m=Math.max(wN,g.edge-n.y))),{value:m,match:g}}function dMt(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=pve(m-g,c,d),S&&(g=Math.max(wN,m-S.edge))),{value:g,southEdge:m,match:S}}function pan(t,n,s,c,d,m,g){if(t==="e"||t==="ne"||t==="se")return{width:lMt(n,s,d,m,g).value};if(t==="w"||t==="nw"||t==="sw"){const{value:S,eastEdge:k}=uMt(n,s,d,m,g);return c?{width:S,x:k-S}:{width:S}}return{}}function _an(t,n,s,c,d,m,g){if(t==="s"||t==="sw"||t==="se")return{height:fMt(n,s,d,m,g).value};if(t==="n"||t==="nw"||t==="ne"){const{value:S,southEdge:k}=dMt(n,s,d,m,g);return c?{height:S,y:k-S}:{height:S}}return{}}function USn(t,n,s,c,d,m,g,S=TR){const k=!m&&g?ate(g):null,A=k?fve(k):[],F=k?dve(k):[];return{...pan(t,n,c,d,m,A,S),..._an(t,s,c,d,m,F,S)}}const TR=4;function ate(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 fve(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 dve(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 tee(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 pve(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 JSn(t,n,s,c,d){let m=iA(s.x+t,c),g=iA(s.y+n,c);if(!c&&d){const S=ate(d);m=tee(m,s.width,fve(S),TR).value,g=tee(g,s.height,dve(S),TR).value}return{x:m,y:g}}function WSn(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:ree({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:ree({x:se.x,y:se.y,width:0,height:0},D,J),position:se}}function ree(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 HSn(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=ate(d),A=tee(g,s.width,fve(k),m).match,F=tee(S,s.height,dve(k),m).match,D={x:g,y:S,width:s.width,height:s.height};return ree(D,A,F)}function GSn(t,n,s,c,d="both",m=!1,g=TR,S={},k=han){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=ate(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}:Gxt(A.x,A.width,F,g),G=d==="x"?{value:A.y,match:null}:Gxt(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:ree(se,$.match,G.match)}}function man(t,n,s,c,d){const m=n.tr.x-n.tl.x,g=n.tr.y-n.tl.y,S=n.bl.x-n.tl.x,k=n.bl.y-n.tl.y,A=m*k-g*S;if(Math.abs(A)<1e-9)return t;const F=t.x-n.tl.x,D=t.y-n.tl.y,J=[...s?[0,1]:[],...c?[.5]:[]],$=(pe,ue)=>{let Ce=pe,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 KSn(t,n,s){const{smart:c,grid:d}=s;let m=t;return n&&c.enabled!==s.invert&&(c.sides||c.center)&&(m=man(t,n,c.sides,c.center,s.threshold)),n&&Math.abs(Ean(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 XSn(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 han={parent:!0,others:!0,guides:!0};function Gxt(t,n,s,c){const d=tee(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 YSn(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=ate(m),J=fve(D),$=dve(D);let G=null;S?G=lMt(n,c,!1,J,g).match:k&&(G=uMt(n,c,!1,J,g).match);let se=null;return A?se=fMt(s,c,!1,$,g).match:F&&(se=dMt(s,c,!1,$,g).match),ree(c,G,se)}function ZSn(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 Kxt=new WeakMap;function gan(t){const n=t.boxEdit;if(!n)return null;const s=Kxt.get(t);if(s?.provider===n)return s.recorded;const c={begin:d=>Pg({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)=>Pg({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=>Pg({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=>Pg({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=>Pg({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 Kxt.set(t,{provider:n,recorded:c}),c}function yan(t,n){return RN(t,n)?.rects?.rect(n)??null}function van(t,n){const s=RN(t,n);return s?gan(s):null}function QSn(t,n){return RN(t,n)?.rects?.contextRects?.(n)}function exn(t,n){return RN(t,n)?.structure??null}function txn(t,n){return RN(t,n)?.text??null}function rxn(t,n){return RN(t,n)?.colorSample??null}function nxn(t,n){const s=RN(t,n);return s?.rects?T3r(s):null}function ixn(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 ban(t,n){const s=c=>{const d=t.inspector?.get(n,`style.${c}`);return oan(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 San=4;function oxn(t,n){const s=D=>D>0?D:San,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 xan(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 sxn(t,n,s,c){const d=xan(t,n,s),m=Math.max(0,Math.round(c+d));return{[t]:m}}function axn(t,n,s){return{x:t.x+n,y:t.y+s,width:t.width,height:t.height}}const hOe=3;function SO(t,n){return n==="x"?t.x+t.width/2:t.y+t.height/2}function wan(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 Tan(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=hOe/2;return s?{x:n-m,y:c,width:hOe,height:d-c}:{x:c,y:n-m,width:d-c,height:hOe}}function cxn(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=wan(g,k,d),D=Tan(g,F,d);return{beforeSiblingId:A,index:k,marker:D}}function lxn(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 uxn(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 gOe(t,n,s){const c=t?.get(n,s);return typeof c=="string"&&c.length>0?c:null}function fxn(t,n){const s=gOe(t.inspector,n,"style.position");let c=null;const d=t.hierarchy.node(n)?.parentId??null;if(d){const m=gOe(t.inspector,d,"style.display");m==="flex"||m==="inline-flex"?c=`flex ${(gOe(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 dxn(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 pxn(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 _xn(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 Can(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 mxn(t,n){return RN(t,n)?.rects?.frame?.(n)??null}function hxn(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 Ean(t){return Math.atan2(t.tr.y-t.tl.y,t.tr.x-t.tl.x)}function pMt(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 _Mt(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 gxn(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 yxn(t,n){const{s,t:c}=_Mt(n);return pMt(t,s,c)}function Xxt(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 vxn(t,n,s,c,d,m=!1){const g=Xxt(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=_Mt(n),$=pMt(t,1-J.s,1-J.t),G=Xxt(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 Yxt=!1;const mMt=new Set(["viewport","hierarchy","inspector","asset-browser","workspace","global"]);let hMt="viewport";const gMt="editorActiveHotkeyScope";function bxn(){const t=document.documentElement.dataset[gMt];return t&&mMt.has(t)?t:hMt}function CR(t){hMt=t,document.documentElement.dataset[gMt]=t}const kan="data-editor-app-undo";function Zxt(t){return t instanceof Element&&t.closest(`[${kan}]`)!==null}function lje(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 Aan(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&&mMt.has(s))return s}return null}function Qxt(t){const n=Aan(t);n&&CR(n)}const yOe=[];function ewt(t){return yOe.push(...t),()=>{for(const n of t){const s=yOe.indexOf(n);s>=0&&yOe.splice(s,1)}}}function Dan(){Yxt||(window.addEventListener("pointerdown",Qxt,!0),window.addEventListener("focusin",Qxt,!0),Yxt=!0)}const GZ=new Map;let yMt=0;const uje=new Set;function twt(){yMt++;for(const t of uje)t()}function Pan(t){return GZ.set(t.id,t),twt(),()=>{GZ.get(t.id)===t&&(GZ.delete(t.id),twt())}}function Ian(){return[...GZ.values()]}function Nan(){return yMt}function Oan(t){return uje.add(t),()=>uje.delete(t)}function NVe(t){const n=GZ.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 Aze(t)}async function OVe(t){const n=BD(t);n.length!==0&&await t0e(Cm(t).adapter,n)}async function RVe(t){const n=BD(t);n.length!==0&&await r0e(Cm(t).adapter,n)}async function FVe(t){const n=Cm(t).adapter,s=BD(t)[0],c=s?n.hierarchy.node(s)?.parentId??null:null;await n0e(n,c)}let rwt=Promise.resolve();function _ve(t){const n=rwt.then(()=>Ran(t));return rwt=n.then(()=>{},()=>{}),n}async function Ran(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 dPt(s,n);if(m&&!m.persisted){i0(m.destination);return}}else for(const m of n){const g=await Yye(s,m).ack;if(g&&!g.persisted){i0(g.destination);return}}i0(`Duplicated ${d}`)}async function mve(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter,c=s.structure;if(c)if(c.removeMany)await o$e(s,n);else{const d=new Map(iPt(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 Ohe(s,g)}}async function Fan(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 Zye(s,d)}async function Man(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 Qye(s,d)}async function jan(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;s.structure?.group&&await e0e(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=van(d,m);if(!g)continue;const S=yan(d,m);if(!S)continue;const k=d.inspector?.get(m,"style.position"),A=k==="absolute"||k==="fixed",F=ban(d,m),D=Can(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 Lan(t){const n=Array.isArray(t)?t:[t];return n.includes("global")?"global":n.length===1&&n[0]==="viewport"?"stage":"panel"}let yme=null;function pp(t,n){const{frameEnabled:s,...c}=n;return yme?.push(Pan({id:t,run:d=>c.action(d??new KeyboardEvent("keydown")),scope:Lan(c.scope),...s?{enabled:s}:{}})),IBe(t).map(d=>({...c,...d}))}function vMt(t){const n=()=>{const g=[],S=yme;yme=g;try{return{rows:t(),actions:g}}finally{yme=S}};let s=n(),c=ewt(s.rows);const d=()=>{c();for(const g of s.actions)g()},m=Uye(()=>{d(),s=n(),c=ewt(s.rows)});return()=>{m(),d()}}function Ban(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=vMt(()=>[...pp("edit.redo",{scope:"global",allowInEditable:!0,when:m=>!lje(m.target)||Zxt(m.target),action:c}),...pp("edit.undo",{scope:"global",allowInEditable:!0,when:m=>!lje(m.target)||Zxt(m.target),action:s}),...pp("edit.copy",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void OVe(t)}),...pp("edit.cut",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void RVe(t)}),...pp("edit.paste",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void FVe(t)}),...pp("edit.duplicate",{scope:Tw,action:()=>void _ve(t)}),...pp("edit.group",{scope:Tw,action:()=>void jan(t)}),...pp("edit.wrap",{scope:Tw,action:()=>Fan(t)}),...pp("edit.unwrap",{scope:Tw,action:()=>Man(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,iPt(m))}}),...pp("edit.deselectAll",{scope:Tw,action:()=>c0(Cm(t).adapter,[])}),...pp("edit.save",{scope:"global",allowInEditable:!0,action:()=>{pTr().then(m=>{m===null&&CRt(t)})}}),...pp("view.resetPan",{scope:"viewport",action:()=>oMt()}),...pp("edit.enterScope",{scope:Tw,when:()=>t.playState==="stopped",frameEnabled:()=>t.playState==="stopped",action:()=>{R3r(Cm(t).adapter)}}),...pp("edit.delete",{scope:Tw,action:()=>void mve(t)}),...pp("edit.exitScopeOrDeselect",{scope:Tw,when:()=>N3r()!==null||t.playState==="stopped",frameEnabled:()=>!0,action:()=>{const m=Cm(t).adapter;if(!O3r(m)){if(t.playState!=="stopped"){pVe();return}t.select(null)}}}),...pp("view.commandPalette",{scope:"global",action:()=>{vVe()||ea.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:()=>ave()}),...pp("view.focusMode",{scope:"global",action:()=>RBe()}),...pp("workspace.cycleNext",{scope:"global",action:()=>{She(1)}}),...pp("workspace.cyclePrevious",{scope:"global",action:()=>{She(-1)}})]);return Dan(),d}function $an(t){return vMt(()=>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 MVe(){QEr("undo-history")}function qan(){const t=()=>MVe();return window.addEventListener("editor:show-history-tab",t),()=>window.removeEventListener("editor:show-history-tab",t)}let fje=null,bMt=0;const dje=new Set;function jVe(t){if(fje!==t){fje=t,bMt++;for(const n of dje)n()}}function SMt(){return fje}function zan(t){jVe(t)}function xMt(){jVe(null)}function wMt(t){return dje.add(t),()=>dje.delete(t)}function pje(){return bMt}function Van(){jVe(null)}const Uan=Object.freeze(Object.defineProperty({__proto__:null,__resetEditorPresentationNoticeForTest:Van,clearEditorPresentationNotice:xMt,editorPresentationNotice:SMt,editorPresentationNoticeVersion:pje,showEditorPresentationNotice:zan,subscribeEditorPresentationNotice:wMt},Symbol.toStringTag,{value:"Module"})),nwt="agent-presented-view";function Jan(){const t=Yv();Ze.useSyncExternalStore(wMt,pje,pje);const n=SMt();return Ze.useEffect(()=>{if(!n){bBe(nwt);return}s$({id:nwt,tone:"info",title:"Agent presented this view.",...n.presented.warnings.length>0?{detail:n.presented.warnings.join(" ")}:{},onDismiss:xMt,actions:[{label:"Copy Link",keeps:!0,run:()=>{Promise.resolve().then(()=>navigator.clipboard.writeText(n.presented.url)).catch(()=>{ea.warn("Could not copy the view link to the clipboard.","editor")})}},{label:"Return",primary:!0,run:()=>{Bge(t,n.previousView,{origin:"return"}).catch(s=>{ea.error(`Could not return to the previous editor view: ${s instanceof Error?s.message:String(s)}`,"editor")})}}]})},[n,t]),null}function Wan(t){Ze.useEffect(()=>{const n=ntn(),s=()=>ltn(t.playState!=="stopped");s();const c=t.subscribe(s);return()=>{c(),n(),P3t()}},[t])}const nee={console:{id:"console",title:"Console"},lightExplorer:{id:"light-explorer",title:"Light Explorer"}},Han={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(nee),...Object.values(Han)];const Gan={info:Go.content.primary,warn:Go.semantic.warning,error:Go.semantic.danger},iwt={scene:"#78dce8",physics:"#ff6188",animation:"#a9dc76",network:"#fc9867",audio:"#ab9df2",ai:"#ffd866",input:"#78dce8",core:Go.content.primary},owt={info:R$,warn:VTt,error:DTt};function Kan(){const t=Yv();Ze.useSyncExternalStore(ea.subscribe,ea.getSnapshot);const[n,s]=Ze.useState(""),[c,d]=Ze.useState("all"),[m,g]=Ze.useState({info:!0,warn:!0,error:!0}),S=Ze.useRef(null),[k,A]=Ze.useState(!0),F=ea.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())));Ze.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]),NVe("viewport.frameSelection")},ue=ea.counts;return q.jsxs(RTr,{className:"volter-console",children:[q.jsxs(n$,{label:"Console filters",compact:!0,children:[q.jsx(dm,{"aria-label":"Clear console",size:"compact",onClick:()=>ea.clear(),title:"Clear console",children:q.jsx(dc,{icon:CTt,size:"xs"})}),q.jsx(Tht,{}),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(Tht,{}),["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:owt[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:Gan[Ce.level]},children:[q.jsx("span",{style:{color:Go.content.dim,marginRight:6,flexShrink:0},children:se(Ce.timestamp)}),q.jsx(dc,{icon:owt[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:`${iwt[Ce.subsystem]??Go.content.muted}22`,color:iwt[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 Xan={enabled:"visible",color:"light.color",intensity:"light.intensity",range:"light.distance",shadows:"shadow.cast"};function TMt(t){const n=[],s=t;return W$(t.hierarchy,c=>{c.kind==="light"&&n.push(c)},{extraChildren:c=>s.internalChildren?.(c)}),n}function Sxn(t){return TMt(t).length}function CMt(t,n){return t.find(s=>s.path===Xan[n])??null}function qY(t,n,s,c,d){const m=CMt(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 swt=t=>typeof t=="boolean",Yan=t=>typeof t=="string",awt=t=>typeof t=="number"&&Number.isFinite(t);function Zan(t){return TMt(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",swt),color:qY(t,n.id,s,"color",Yan),intensity:qY(t,n.id,s,"intensity",awt),range:qY(t,n.id,s,"range",awt),shadows:qY(t,n.id,s,"shadows",swt)}})}function Qan(t,n,s,c){if(!t.inspector)return 0;let d=0;for(const m of n){let g=null;try{g=CMt(t.inspector.properties(m),s)}catch{continue}!g||g.readonly||(lPt(t,m,g.path,c),d++)}return d}function ecn(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 cwt(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"?x0r:z0r,size:"xs"}):null]})}function hve(){return q.jsx("span",{className:"volter-light-explorer-unavailable",children:"—"})}function tcn({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(hve,{})}function rcn({row:t,edit:n}){return!t.color.supported||!t.color.value?q.jsx(hve,{}):q.jsxs("div",{className:"volter-light-explorer-color",children:[q.jsx(i4t,{"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 lwt({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(hve,{})}function ncn({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(hve,{})}function icn({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(tcn,{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=>{scn(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(rcn,{row:t,edit:g})}),q.jsx("td",{children:q.jsx(lwt,{row:t,field:"intensity",step:.1,edit:g})}),q.jsx("td",{children:q.jsx(lwt,{row:t,field:"range",step:.5,edit:g})}),q.jsx("td",{children:q.jsx(ncn,{row:t,edit:g})})]})}function ocn(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 scn(t,n,s,c,d,m){if(!t.selection)return;const g=t.selection.get();if(d&&c){const S=n.findIndex(A=>A.id===c),k=n.findIndex(A=>A.id===s);if(S>=0&&k>=0){const A=n.slice(Math.min(S,k),Math.max(S,k)+1).map(F=>F.id);c0(t,m?[...new Set([...g,...A])]:A,{intent:"exact"});return}}if(m){c0(t,g.includes(s)?g.filter(S=>S!==s):[...g,s],{intent:"exact"});return}c0(t,[s],{intent:"exact"})}function acn(){const t=Yv();Ze.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot),Ze.useSyncExternalStore(i2,K1,K1),Ze.useSyncExternalStore(Cee,AD,AD);const{adapter:n}=Cm(t),[,s]=Ze.useReducer(Pe=>Pe+1,0);Ze.useEffect(()=>n.subscribe?.(s),[n]);const[c,d]=Ze.useState(""),[m,g]=Ze.useState("all"),[S,k]=Ze.useState("name"),[A,F]=Ze.useState("ascending"),D=Ze.useRef(null),J=Zan(n),$=Ze.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=ecn(cwt(Pe,S),cwt(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 Te=ocn(Pe,pe,se);Qan(n,Te,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(icn,{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 ccn=Iye();function lcn(){const{error:t,warn:n}=ea.counts;return t>0?{count:t+n,severity:"error"}:n>0?{count:n,severity:"warn"}:null}function ucn(){ccn.ensure(t=>{t(rFe({...nee.console,order:-100,Content:Kan,badge:lcn,subscribeBadge:ea.subscribe,badgeSnapshot:ea.getSnapshot,visibleByDefault:!1,closeable:!0})),t(rFe({...nee.lightExplorer,order:21,Content:acn,visibleByDefault:!1,closeable:!0}))})}const fcn=5742335;function EMt(t,n,s){return t<<16|n<<8|s}function uwt(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:EMt(c[0],c[1],c[2])}function iee(t){const n=uwt(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,uwt(String(s.fillStyle))):null}function dA(t){return typeof document>"u"?null:t?.closest(`.${ARe}`)??document.querySelector(`.${ARe}`)}function fwt(t){const n=Math.round((t>>16&255)*.42),s=Math.round((t>>8&255)*.42),c=Math.round((t&255)*.42);return EMt(n,s,c)}function Ig(t,n){return t&&typeof getComputedStyle<"u"?getComputedStyle(t).getPropertyValue(n).trim():""}const kMt={"--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 oee(t,n){const s=kMt[n];return(s?Ig(t,s):"")||Ig(t,n)}function xxn(t){const n=dA(t),s=oee(n,"--volter-viewport-selection")||Ig(n,"--volter-accent"),c=iee(s||i$.color.accent.default)??fcn,d=iee(oee(n,"--volter-viewport-active")),m=Ig(n,"--volter-viewport-outline-style"),g=Number.parseFloat(Ig(n,"--volter-viewport-outline-width")),S=Ig(n,"--volter-viewport-outline-hidden");return{visible:c,hidden:fwt(c),...d===null?{}:{active:{visible:d,hidden:fwt(d)}},...m===""&&S===""&&!Number.isFinite(g)?{}:{outline:{style:m==="crisp"?"crisp":"soft",width:Number.isFinite(g)&&g>0?g:null,hidden:S!=="false"}}}}function wxn(t){return AMt(t).background!==null}function Txn(t){const n=AMt(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 AMt(t){const n=dA(t),s=c=>{const d=oee(n,c);return d?iee(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=Ig(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 Cxn(t){const n=dA(t),s=m=>{const g=oee(n,m);return g?iee(g):null},c=m=>{const g=Ig(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")(Ig(n,"--volter-viewport-navigation-gizmo")),navigationCorner:Ig(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 Exn(t){const n=Ig(dA(t),"--volter-viewport-gizmo-size");if(!n)return null;const s=Number.parseFloat(n);return Number.isFinite(s)&&s>0?s:null}function kxn(t){const n=dA(t),s=(d,m)=>{const g=Number.parseFloat(Ig(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 Axn(t){const n=dA(t),s=oee(n,"--volter-viewport-wire"),c=Number.parseFloat(Ig(n,"--volter-viewport-wire-opacity"));return{color:s?iee(s):null,opacity:Number.isFinite(c)?c:null}}function Dxn(t){const n=dA(t),s=Number.parseFloat(Ig(n,"--volter-viewport-selection-box-width"));return{edges:Ig(n,"--volter-viewport-selection-box")==="edges",frame:Ig(n,"--volter-viewport-selection-box-frame")==="object"?"object":"world",lineWidth:Number.isFinite(s)&&s>0?s:null}}function DMt(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=>Ig(n,s)).join("|")}function dcn(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 _je=null;function pcn(t){return IMt(null,()=>{_je=DMt(),t()})}function dwt(){return _je??=DMt(),_je}let mje=null;function PMt(){const t=dA();return JSON.stringify([mBe.map(n=>Ig(t,`--volter-viewport-word-${n}`)),Ig(t,"--volter-viewport-word-helpers")])}function _cn(t){return IMt(null,()=>{mje=PMt(),t()})}function pwt(){return mje??=PMt(),mje}function Pxn(){const t=Ze.useSyncExternalStore(_cn,pwt,pwt);return Ze.useMemo(()=>{const[n,s]=JSON.parse(t),c={};return mBe.forEach((d,m)=>{n[m]&&(c[d]=n[m])}),{shading:c,helpers:s||void 0}},[t])}function mcn(){const t=Ze.useSyncExternalStore(pcn,dwt,dwt);return Ze.useMemo(()=>dcn(t),[t])}function IMt(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=hcn(s,n);return()=>{c.disconnect(),d()}}const c_e=new Set;let YL=null,vOe="";function hcn(t,n){const s=()=>Object.values(kMt).map(c=>Ig(t,c)).join("|");return c_e.add(n),!YL&&typeof document<"u"&&document.head&&(vOe=s(),YL=new MutationObserver(()=>{const c=s();if(c!==vOe){vOe=c;for(const d of[...c_e])d()}}),YL.observe(document.head,{childList:!0,subtree:!0,characterData:!0})),()=>{c_e.delete(n),c_e.size===0&&YL&&(YL.disconnect(),YL=null)}}function gcn({documentId:t,runtime:n=!1,island:s=!1,assetPath:c,transformControls:d,children:m}){Ze.useSyncExternalStore(yBe,o$,o$);const g=Ze.useSyncExternalStore(U$,eA,eA),S=o2(t)?.HeaderControls;return!m&&!S&&!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,S?q.jsx(Ze.Suspense,{fallback:null,children:q.jsx(S,{documentId:t,...c&&!c.startsWith("online:")?{assetPath:c}:{}})}):null]})}function ycn({documentId:t,children:n}){const s=Ze.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 vcn(t){return t==="game"||t==="scene"||t==="world"?"world":"resource"}function NMt({viewId:t,descriptor:n,active:s,backdrop:c=!1,chrome:d=!0}){const m=n.Content,g=n.Toolbar,S=n.Shelf,k=vcn(n.kind),A=Yv();Ze.useSyncExternalStore(A.subscribe,A.getShellSnapshot??A.getSnapshot),Ze.useSyncExternalStore(Cee,AD,AD),Ze.useSyncExternalStore(yBe,o$,o$),Ze.useSyncExternalStore(rCt,zOe,zOe);const F=o2(n.id),D=s&&n.kind!=="game"?F?.transformTools?.()??"none":"none",J=F?.TransformTools,$=F?.TransformControls,G=mcn(),se=d&&F!==null&&F!==void 0&&!c,pe=se&&G.bar!=="none"&&G.tools!=="shelf",ue=Ze.useSyncExternalStore(U$,eA,eA).includes("shelf:hidden"),Ce=D==="none"||!J?null:q.jsx(Ze.Suspense,{fallback:null,children:q.jsx(J,{documentId:n.id})}),De=se&&G.bar!=="none",Pe=!De||G.display==="corner"?null:G.display==="bar-start"?"start":"end",be=pe?G.tools==="bar-start"?"start":"end":null,X=De&&G.transformControls==="bar"&&D==="gizmo"&&$!==void 0,Te=X?be??Pe??"start":null,$e=bt=>q.jsxs("div",{className:"volter-stage-bar-group","data-edge":bt,children:[Pe===bt?q.jsx("div",{className:"volter-stage-bar-slot","data-stage-bar-slot":"display"}):null,be===bt?Ce:null,Te===bt&&$?q.jsx(Ze.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(gcn,{documentId:n.id,runtime:n.kind==="game",island:c&&k==="world",assetPath:eQr(n.id)?.assetPath,transformControls:D==="gizmo"&&$&&!X?q.jsx(Ze.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}),De?q.jsxs("div",{className:"volter-stage-bar","data-form":G.bar,role:"toolbar","aria-label":"Viewport",children:[$e("start"),$e("end")]}):null,d&&q.jsx(ycn,{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 l_e=new Map;function bcn(t,n){const s=Em();let c=l_e.get(t);(!c||c.project!==s)&&(c={project:s,count:0,created:n},l_e.set(t,c)),c.count++;const d=c;return()=>{l_e.get(t)!==d||--d.count>0||(l_e.delete(t),d.created&&Em()===d.project&&EN(t))}}function Scn({document:t,chrome:n=!0,active:s=!0,onReady:c}){const d=Yv(),[m,g]=Ze.useState(null),[S,k]=Ze.useState(null),A=JSON.stringify(t),F=Ze.useRef(c);F.current=c;const D=Ze.useRef(null);Ze.useSyncExternalStore(i2,K1,K1);const J=Ze.useSyncExternalStore(yBe,o$,o$);Ze.useEffect(()=>{let G=!1,se;const pe=Em(),ue=()=>!G&&Em()===pe,Ce=JSON.parse(A);return g(null),k(null),(async()=>{if(await Wze(),!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 Wye(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]),Ze.useEffect(()=>{!m||!s||X0(m)},[m,s]),Ze.useEffect(()=>{if(!m)return;const G=o2(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(NMt,{descriptor:$.descriptor,active:s,chrome:n}):q.jsx("div",{role:"status",children:"Opening document…"})})}function xcn(){return q.jsxs(kee,{children:[q.jsx(Aee,{}),q.jsx(Pee,{}),q.jsx(Dee,{})]})}function wcn(){const t=Yv();Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=Ze.useSyncExternalStore(zye,c$,c$),[s,c]=Ze.useState(!1),d=Ze.useSyncExternalStore(OC,txt,txt);if(Ze.useEffect(()=>{let g=!1;return Wze().then(()=>{g||c(!0)}),()=>{g=!0}},[]),!s)return q.jsx("div",{role:"status",children:d??"Loading project layout…"});const m=n.Layout??xcn;return q.jsx(m,{playing:t.playState!=="stopped",paused:t.playState==="paused"})}function LVe({size:t=64}){return q.jsx("img",{src:lee()?.logo??mR.logo,width:t,height:t,alt:"","aria-hidden":"true","data-testid":"volter-logo",style:{display:"block"}})}const hje="account";function OMt(){return ND({id:hje,title:"Account",kind:"tool-contribution",workspaceRole:"workspace-task",provenance:{origin:"Volter account"},Content:kcn,closeable:!0,presentation:()=>({kind:"workspace",id:hje})})}kN({id:"workspace",owner:"account-documents",open:(t,n)=>n.id===hje?OMt():null});function Tcn(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 Ccn({provider:t,busy:n,run:s,editing:c,removing:d,onEdit:m,onStopEditing:g,onRemoveIntent:S}){const[k,A]=Ze.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:Tcn(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 awr(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(()=>lwr(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 cwr(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 _wt({busy:t,run:n}){const s=GLe(),[c,d]=Ze.useState(null),[m,g]=Ze.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(Ccn,{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 mwt({busy:t,run:n}){const s=GLe(),c=s.codingInference,[d,m]=Ze.useState(c.model),[g,S]=Ze.useState(null),[k,A]=Ze.useState(null);Ze.useEffect(()=>m(c.model),[c.model]),Ze.useEffect(()=>{S(null),A(null)},[d,s.preferredRoute]);const F=D=>n(()=>owr({...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),swr({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 Ecn({plan:t}){const n=t.status.replace("_"," "),s=t.status==="active"||n.toLowerCase()===t.name.trim().toLowerCase();return q.jsxs("span",{className:"volter-account-plan-chips",children:[q.jsxs("span",{className:"volter-chip","data-tone":"accent",children:[t.name," plan"]}),!s&&q.jsx("span",{className:"volter-chip","data-tone":t.status==="cancelling"?"warn":void 0,children:n}),(t.renewsAt||t.endsAt)&&q.jsxs("span",{className:"volter-chip",children:[t.endsAt?"Access ends":"Renews"," ",new Date(t.endsAt??t.renewsAt).toLocaleDateString()]})]})}function kcn(){Ze.useSyncExternalStore(Tye,cN,cN);const t=GLe(),[n,s]=Ze.useState("builder@example.test"),[c,d]=Ze.useState([]),[m,g]=Ze.useState(null),[S,k]=Ze.useState("creator"),[A,F]=Ze.useState(""),[D,J]=Ze.useState(!1),[$,G]=Ze.useState(null),[se,pe]=Ze.useState(null),[ue,Ce]=Ze.useState(null),[De,Pe]=Ze.useState(!1);Ze.useEffect(()=>{if(t.authenticated||t.backend!=="live"||t.accountEnvironment==="development-twin"){Pe(!1);return}mwr().then(zt=>Pe(zt.device)).catch(()=>Pe(!1))},[t.authenticated,t.backend]),Ze.useEffect(()=>{if(!ue)return;const zt=()=>{gwr(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]),Ze.useEffect(()=>{if(!se)return;const zt=()=>{vwr(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]),Ze.useEffect(()=>{if(!t.authenticated){d([]);return}dwr().then(d).catch(()=>d([]))},[t.authenticated,t.authenticated?t.user.id:"signed-out",t.authenticated?t.credits.used:0]),Ze.useEffect(()=>{if(!t.authenticated){g(null);return}pwr().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(LVe,{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(()=>ewr(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 hwr();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 ywr();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(()=>Qxr(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(mwt,{busy:D,run:be}),q.jsx(_wt,{busy:D,run:be}),($||wpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??wpe()})]})});const X=t.credits.included+t.credits.purchased,Te=X===0?0:Math.min(100,t.credits.used/X*100),$e=X===0?0:Math.max(0,Math.min(100-Te,t.credits.reserved/X*100)),bt=X>0&&t.credits.used>X,It=t.backend==="mock"||t.entitlements.generation,Wt=zt=>rwr({...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(Ecn,{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(twr),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(()=>oht("resume")),children:"Resume subscription"})]}),!It&&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||!It,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||!It||S===t.plan.id||S==="free",onClick:()=>void be(async()=>{const zt=await uwr(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(Te),"aria-valuemin":0,"aria-valuemax":100,"data-state":bt?"over":void 0,children:[q.jsx("span",{className:"volter-meter-fill",style:{width:`${Te}%`}}),$e>0&&q.jsx("span",{className:"volter-meter-fill","data-part":"reserved",style:{left:`${Te}%`,width:`${$e}%`}})]}),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||!It,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||!It,onClick:()=>void be(async()=>{const zt=m.creditPacks[A],ft=await fwr(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 _wr();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(()=>oht("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(()=>iwr(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(mwt,{busy:D,run:be}),q.jsx(_wt,{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(nwr),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))})]}),($||wpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??wpe()})]})]})}function Acn(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:()=>RVe(t)}]:[],...A?[{id:"editor.copy",label:"Copy",category:"action",shortcut:Vv("edit.copy"),execute:()=>OVe(t)}]:[],...D?[{id:"editor.paste",label:"Paste",category:"action",shortcut:Vv("edit.paste"),execute:()=>FVe(t)}]:[]];return[{id:"account.open",label:"Account and Provider Connections",category:"action",execute:()=>{OMt()}},{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:()=>_ve(t)},{id:"editor.delete",label:"Delete Selected",category:"action",shortcut:Vv("edit.delete"),execute:()=>mve(t)},{id:"editor.select-all",label:"Select All",category:"action",shortcut:Vv("edit.selectAll"),execute:()=>TRt(t)},{id:"editor.deselect",label:"Deselect All",category:"action",shortcut:Vv("edit.deselectAll")??Vv("edit.exitScopeOrDeselect"),execute:()=>Dze(t,[])},{id:"toggle.console",label:"Toggle Console",category:"action",shortcut:Vv("view.toggleConsole"),execute:()=>{ave()}},{id:"view.focusMode",label:"Toggle Focus Mode",category:"action",shortcut:Vv("view.focusMode"),execute:()=>{RBe()}},...AN().map($=>({id:`workspace.${$.id}`,label:`Workspace: ${$.title}`,category:"action",execute:()=>{Uk($.id)&&s2($.id)}})),{id:"workspace.cycleNext",label:"Next Workspace",category:"action",shortcut:Vv("workspace.cycleNext"),execute:()=>{She(1)}},{id:"workspace.cyclePrevious",label:"Previous Workspace",category:"action",shortcut:Vv("workspace.cyclePrevious"),execute:()=>{She(-1)}},...V4t().map($=>({id:`keymap.${$.id}`,label:`Keymap: ${$.title}`,category:"action",execute:()=>{MEr($.id)}})),...OR().map($=>({id:`view.workspaceStyle.${$.id}`,label:`Workspace Style: ${$.title}`,category:"action",execute:()=>{JBe($.id)}})),{id:"view.undoHistory",label:"Undo History",category:"action",execute:()=>{MVe()}},{id:"view.lightExplorer",label:"Open Light Explorer",category:"action",execute:()=>vC(nee.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:()=>{OBe("asset-library")}}]}function Dcn(t){return W0e(t).filter(n=>n.id!==EFe).map(n=>({id:`entity:${n.id}`,label:n.name,category:"entity",execute:()=>{Dze(t,[n.id]),NVe("viewport.frameSelection")}}))}function Pcn(){return Q0e().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 Wge(t){const n=t.type;if(typeof n=="string")return n;if(Array.isArray(n))return n.find(s=>s!=="null")}function RMt(t){const n=aN(t);if("default"in n)return structuredClone(n.default);const s=Wge(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]=RMt(g))}return c}return s==="array"?[]:s==="boolean"?!1:s==="number"||s==="integer"?Number(n.minimum??0):""}function gje(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]/g," ").replace(/^./,n=>n.toUpperCase())}function Icn({name:t,schema:n,value:s,required:c,onChange:d}){const m=Wge(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:hwt,children:gje(t)}),g&&q.jsx("span",{style:FO,children:g})]})]});const A=q.jsxs("span",{style:hwt,children:[gje(t)," ",!c&&q.jsx("span",{style:Ocn,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:u_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:u_e}),g&&q.jsx("span",{style:FO,children:g})]}):m==="array"&&Wge(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:u_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:u_e}),g&&q.jsx("span",{style:FO,children:g})]})}function FMt({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=Wge(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:Rcn,children:[q.jsx("legend",{style:Fcn,children:gje(g)}),typeof k.description=="string"&&q.jsx("p",{style:{...FO,marginTop:0},children:k.description}),q.jsx(FMt,{schema:k,value:aN(n[g]),onChange:F,path:c?`${c}.${g}`:g})]},g):q.jsx(Icn,{name:c?`${c}.${g}`:g,schema:k,value:n[g],required:m.has(g),onChange:F},g)})})}function Ncn({schema:t,value:n,onChange:s}){const c=aN(t);return c.properties?q.jsx(FMt,{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},hwt={color:Zf[1],fontWeight:600,fontSize:"var(--volter-font-sm)"},Ocn={color:Zf[3],fontWeight:400,marginLeft:5},FO={display:"block",color:Zf[2],fontSize:"var(--volter-font-sm)",lineHeight:1.4},u_e={boxSizing:"border-box",width:"100%"},Rcn={margin:0,padding:14,border:"1px solid var(--volter-boundary-default)",borderRadius:"var(--volter-radius-md)"},Fcn={padding:"0 6px",color:Zf[1],fontWeight:600},Hge="project-tools",yje="project-tool:";function Mcn(t){return`${yje}${t}`}function gve(){ND({id:Hge,title:"Project Tools",kind:"project-tool",workspaceRole:"workspace-reference",Content:MMt,closeable:!0,presentation:()=>({kind:"workspace",id:Hge}),persist:()=>({catalog:!0})})}function yve(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:Mcn(t),title:n.summary||n.name,kind:"project-tool",workspaceRole:"workspace-reference",provenance:{sourcePath:n.sourcePath,origin:n.name},Content:MMt,closeable:!0,presentation:()=>({kind:"project-tool",name:t}),persist:()=>({name:t})}),!0)}kN({id:"workspace",owner:"project-tool-documents",open:(t,n)=>n.id!==Hge?null:(gve(),Hge)});kN({id:"project-tool",owner:"project-tool-documents",open:(t,n)=>yve(n.name)?e_():null,settle:async t=>{if(await WZ().catch(()=>{}),!await CC(()=>N$().tools.some(n=>n.name===t.name)))throw new Error(`Project tool is not registered: ${t.name}`)}});wee({kind:"project-tool",owner:"project-tool-documents",prepare:()=>WZ().then(()=>{},()=>{}),restore:({state:t})=>{const n=t;return n?.catalog===!0?(gve(),!0):typeof n?.name=="string"&&yve(n.name)}});function jcn(){return[{id:"project-tools:open",label:"Open Project Tools",category:"action",execute:()=>gve()},...N$().tools.map(t=>({id:`project-tool:${t.name}`,label:`Run: ${t.summary||t.name}`,category:"action",execute:()=>void yve(t.name)}))]}function gwt({value:t}){return q.jsx("pre",{style:qcn,children:JSON.stringify(t,null,2)})}function MMt({documentId:t}){Ze.useSyncExternalStore(eMt,Bsn),Ze.useSyncExternalStore(l2,rA);const n=N$(),s=t.startsWith(yje)?t.slice(yje.length):null,c=s?n.tools.find(d=>d.name===s):null;return s?c?q.jsx(Lcn,{tool:c},c.name):q.jsx("div",{style:vje,children:"This tool is no longer available."}):q.jsxs("div",{style:vje,"data-testid":"project-tools-catalog",children:[q.jsx("h2",{style:jMt,children:"Project Tools"}),q.jsxs("p",{style:{...bje,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:()=>yve(d.name),"data-testid":`project-command-card:${d.name}`,children:[q.jsxs("span",{style:LMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:d.summary}),q.jsx("span",{style:BMt,children:"Open"})]}),q.jsx("code",{style:{color:Zf[2],fontSize:"var(--volter-font-sm)"},children:d.name}),q.jsx("span",{style:Bcn,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:bje,children:"No project tools registered."}),n.loadErrors.map(d=>q.jsxs("div",{style:Gge,children:[d.sourcePath,": ",d.message]},`${d.sourcePath}:${d.message}`)),ZBe().map(d=>q.jsxs("div",{style:Gge,children:[d.entryPath,": ",d.error]},`${d.entryPath}:${d.error}`))]})}function Lcn({tool:t}){const n=kC().filter(se=>se.tool?.name===t.name),s=RMt(t.inputSchema),[c,d]=Ze.useState(s&&typeof s=="object"&&!Array.isArray(s)?s:{}),[m,g]=Ze.useState(()=>JSON.stringify(c,null,2)),[S,k]=Ze.useState(null),[A,F]=Ze.useState(!1),[D,J]=Ze.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 $sn(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:vje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:jMt,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:bje,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:LMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:BMt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Gge,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(Ncn,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Gge,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:bOe,children:"Advanced JSON"}),q.jsx(hBe,{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:$cn}),q.jsxs("details",{children:[q.jsx("summary",{style:bOe,children:"Input schema"}),q.jsx(gwt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:bOe,children:"Result"}),q.jsx(gwt,{value:S})]})]})}const vje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},jMt={margin:"0 0 6px",fontSize:20},bje={color:Zf[2],fontSize:"var(--volter-font-sm)"},bOe={display:"block",margin:"14px 0 6px",color:Zf[1]},LMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},BMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},Bcn={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Gge={marginTop:10,color:T_e,whiteSpace:"pre-wrap"},$cn={width:"100%",boxSizing:"border-box",resize:"vertical"},qcn={overflow:"auto",padding:10,background:_Be.inset,border:`1px solid ${nhe[1]}`,borderRadius:sQ.sm,color:Zf[2]};function zcn(t,n,s){const c=Acn(t,n,s),d=[...jcn(),...Pcn(),...fkr()],m=Dcn(t),g=sCt().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,...Jcn(),...m]}const Vcn=["view","window","debug","tools","help"],Ucn={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function Jcn(){return Vcn.flatMap(t=>Ome(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${Ucn[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 Wcn(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function Hcn(){const t=Yv(),n=lve(),s=W9t(),c=Ze.useSyncExternalStore(cLe,YB,YB),d=Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ze.useSyncExternalStore(wDt,Ehe,Ehe),g=Ze.useSyncExternalStore(Uye,fhe,fhe),S=Ze.useMemo(()=>zcn(t,n,s),[t,n,s,c,d,m,g]),k=Ze.useRef(null);return Ze.useEffect(()=>{const A=Wcn(S);A!==k.current&&(k.current=A,Sxt(S.map(F=>({id:F.id,label:F.label,category:F.category,run:F.execute,...F.menu?{menu:F.menu}:{}}))))},[S]),Ze.useEffect(()=>()=>{k.current=null,Sxt([])},[]),null}let $Mt=[];const Sje=new Set;function Gcn(t){return Sje.add(t),()=>Sje.delete(t)}function Kcn(){return $Mt}function Xcn(){for(const t of Sje)t()}function Ycn(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 Zcn(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)ea.error(Ycn(s),"assets");$Mt=n,Xcn()}async function Qcn(t){try{const{materializeDeclaredAssetPacks:n}=await fo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-
|
|
1399
|
+
Run ${t.name}?`)){F(!0);try{k(await $sn(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:vje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:jMt,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:bje,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:LMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:BMt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Gge,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(Ncn,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Gge,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:bOe,children:"Advanced JSON"}),q.jsx(hBe,{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:$cn}),q.jsxs("details",{children:[q.jsx("summary",{style:bOe,children:"Input schema"}),q.jsx(gwt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:bOe,children:"Result"}),q.jsx(gwt,{value:S})]})]})}const vje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},jMt={margin:"0 0 6px",fontSize:20},bje={color:Zf[2],fontSize:"var(--volter-font-sm)"},bOe={display:"block",margin:"14px 0 6px",color:Zf[1]},LMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},BMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},Bcn={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Gge={marginTop:10,color:T_e,whiteSpace:"pre-wrap"},$cn={width:"100%",boxSizing:"border-box",resize:"vertical"},qcn={overflow:"auto",padding:10,background:_Be.inset,border:`1px solid ${nhe[1]}`,borderRadius:sQ.sm,color:Zf[2]};function zcn(t,n,s){const c=Acn(t,n,s),d=[...jcn(),...Pcn(),...fkr()],m=Dcn(t),g=sCt().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,...Jcn(),...m]}const Vcn=["view","window","debug","tools","help"],Ucn={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function Jcn(){return Vcn.flatMap(t=>Ome(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${Ucn[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 Wcn(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function Hcn(){const t=Yv(),n=lve(),s=W9t(),c=Ze.useSyncExternalStore(cLe,YB,YB),d=Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ze.useSyncExternalStore(wDt,Ehe,Ehe),g=Ze.useSyncExternalStore(Uye,fhe,fhe),S=Ze.useMemo(()=>zcn(t,n,s),[t,n,s,c,d,m,g]),k=Ze.useRef(null);return Ze.useEffect(()=>{const A=Wcn(S);A!==k.current&&(k.current=A,Sxt(S.map(F=>({id:F.id,label:F.label,category:F.category,run:F.execute,...F.menu?{menu:F.menu}:{}}))))},[S]),Ze.useEffect(()=>()=>{k.current=null,Sxt([])},[]),null}let $Mt=[];const Sje=new Set;function Gcn(t){return Sje.add(t),()=>Sje.delete(t)}function Kcn(){return $Mt}function Xcn(){for(const t of Sje)t()}function Ycn(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 Zcn(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)ea.error(Ycn(s),"assets");$Mt=n,Xcn()}async function Qcn(t){try{const{materializeDeclaredAssetPacks:n}=await fo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-B8i0ftt_.js");return{materializeDeclaredAssetPacks:c}},__vite__mapDeps([263,102,3,2,4,1,20,21,22,23])),s=await n(t);Zcn(s)}catch(n){ea.error(`Retrying asset materialization failed before any entry was attempted: ${n instanceof Error?n.message:String(n)}`,"assets")}}let qMt={kind:"quiet"},zMt=0;const xje=new Set;function eln(){return qMt}function tln(t){qMt=t,zMt+=1;for(const n of xje)n()}function rln(t){return xje.add(t),()=>xje.delete(t)}function ywt(){return zMt}const nln=()=>()=>{},vwt=()=>null;function iln(){const t=Yv(),n=Tsn();Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Ze.useSyncExternalStore(n?.subscribe??nln,n?.getSnapshot??vwt,n?.getSnapshot??vwt);const s=wRt(t);if(s==="saved")return null;const c=kze(t),d=s==="failed",m=d?PYr(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?cve():void CRt(t),title:S,children:[q.jsx("span",{className:"volter-save-status-dot"}),g.label]})}function oln(){Ze.useSyncExternalStore(ea.subscribe,ea.getSnapshot);const t=ea.counts,n=[{id:"info",icon:R$,label:"message",count:t.info},{id:"warn",icon:VTt,label:"warning",count:t.warn},{id:"error",icon:DTt,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:()=>cve(),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 sln(t){return[...t.map(s=>`"${s.worldId}" (${s.kind} / ${s.identity}) — ${s.message}`),"See the Console for the full trace."].join(`
|
|
1400
1400
|
`)}function aln(){const t=Ze.useSyncExternalStore(xRt,zQ);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:()=>cve(),title:sln(t),children:t.length===1?"1 world failed to mount":`${t.length} worlds failed to mount`})}function cln(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 lln(){const t=Ze.useSyncExternalStore(Gcn,Kcn),[n,s]=Ze.useState(!1),c=Ze.useCallback(()=>{s(!0),Qcn(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:()=>cve(),title:cln(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 uln(){const t=qEr(),n=Yv();if(Ze.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 fln(){Ze.useSyncExternalStore(rln,ywt,ywt);const t=eln();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 dln(){Ze.useSyncExternalStore(Jye,akr);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 pln=Iye();function _ln(){pln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:fln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:iln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:oln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:aln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:lln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:uln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:dln}))})}const mln=Ze.lazy(async()=>({default:(await fo(()=>import("./NonThreeAuthoringBootstrap-DAjTxCUk.js"),__vite__mapDeps([264,3,2,4,265,89,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function hln(){const t=Yv(),n=J9t(),s=lve();return Ze.use(wsn()),Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Wan(t),Ze.useEffect(()=>_ln(),[]),Ze.useEffect(()=>ucn(),[]),Ze.useEffect(()=>osn(n),[n]),Ze.useEffect(()=>qan(),[]),Ze.useEffect(()=>ukr(),[t]),Ze.useEffect(()=>htn(),[t]),Ze.useEffect(()=>O4r(n),[n]),Ze.useEffect(()=>Ban(t,s),[t,s]),Ze.useEffect(()=>_Yr(t),[t]),Ze.useEffect(()=>een(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),c=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:c}))),[]),q.jsxs(q.Fragment,{children:[q.jsx(Ze.Suspense,{fallback:null,children:q.jsx(mln,{store:t})}),q.jsx(wcn,{}),q.jsx(Jan,{}),q.jsx(Hcn,{})]})}const gln=3,yln=1e4,vln=4e3;function bln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function bwt(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 Sln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function VMt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function xln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!VMt(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 wln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Tln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&VMt(t,s)?"resume":wln(t,s)?"reload":t?.project?"none":"offer-reload"}const Kge="volter.editor.orphaned-tab.v1";function Cln(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 Eln(t){return JSON.stringify(t)}function kln(t,n){const s=Math.max(0,Math.round((n-t.at)/1e3)),c=s<90?`${s}s ago`:s<5400?`${Math.round(s/60)}m ago`:`${Math.round(s/3600)}h ago`,d=t.project?` on ${t.project}`:"";return`A previous editor window at this address lost its server ${c}${d} and was left orphaned. If that window is still open it is a stale snapshot — nothing in it is saved and every click in it hangs on retries. Close it; this window is the live one.`}const Aln=720*60*1e3;function Dln(t,n){const s=n-t.at;return s>=0&&s<=Aln}function BVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Pln(t,n=BVe()){try{n?.setItem(Kge,Eln(t))}catch{}}function Iln(t=BVe()){if(!t)return null;try{const n=Cln(t.getItem(Kge));return t.removeItem(Kge),n}catch{return null}}function Nln(t=BVe()){try{t?.removeItem(Kge)}catch{}}function Oln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function Rln(){try{const{stopAllLiveSessions:t}=await fo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>irn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function Fln(){const[t,n]=Ze.useState({kind:"quiet"}),s=Ze.useRef(bln(Date.now())),c=Ze.useRef(null),d=Ze.useRef(!1);return Ze.useEffect(()=>{let m=!1,g=null;const S=()=>{g!==null&&(clearInterval(g),g=null)},k=async pe=>{c.current=pe,DRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Pln({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 Rln()},A=(pe,ue,Ce)=>{switch(Tln(s.current.bootIdentity,pe)){case"resume":{c.current=null,GYr(),Nln(),s.current=bwt(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 PZr(),ue=pZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=bwt(s.current,pe,ue,Ce);const De=xln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:gln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:yln,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=Sln(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,vln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ze.useEffect(()=>{tln(t);const m=Oln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){bBe(SOe);return}if(t.kind==="degraded"){s$({id:SOe,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:SOe,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 SOe="editor-lease",Mln="0.5.74",jln={version:Mln},Lln="0.5.74",Bln={version:Lln},UMt=Bln.version,$ln=jln.version;function qln({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?YDt(t.recovery.verbs):null,[m,g]=Ze.useState(!1);return Ze.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:fee})}),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?eLe:j0r,"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 wje({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(LVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(qln,{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",UMt," · Engine v",$ln]})})]})})}function zln({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(LVe,{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 Vln extends Ze.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){ea.error(`Editor chrome crashed while the command listener stayed attached: ${n.message}
|
|
1401
|
+
`)}function lln(){const t=Ze.useSyncExternalStore(Gcn,Kcn),[n,s]=Ze.useState(!1),c=Ze.useCallback(()=>{s(!0),Qcn(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:()=>cve(),title:cln(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 uln(){const t=qEr(),n=Yv();if(Ze.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 fln(){Ze.useSyncExternalStore(rln,ywt,ywt);const t=eln();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 dln(){Ze.useSyncExternalStore(Jye,akr);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 pln=Iye();function _ln(){pln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:fln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:iln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:oln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:aln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:lln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:uln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:dln}))})}const mln=Ze.lazy(async()=>({default:(await fo(()=>import("./NonThreeAuthoringBootstrap-Co881phq.js"),__vite__mapDeps([264,3,2,4,265,89,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function hln(){const t=Yv(),n=J9t(),s=lve();return Ze.use(wsn()),Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Wan(t),Ze.useEffect(()=>_ln(),[]),Ze.useEffect(()=>ucn(),[]),Ze.useEffect(()=>osn(n),[n]),Ze.useEffect(()=>qan(),[]),Ze.useEffect(()=>ukr(),[t]),Ze.useEffect(()=>htn(),[t]),Ze.useEffect(()=>O4r(n),[n]),Ze.useEffect(()=>Ban(t,s),[t,s]),Ze.useEffect(()=>_Yr(t),[t]),Ze.useEffect(()=>een(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),c=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:c}))),[]),q.jsxs(q.Fragment,{children:[q.jsx(Ze.Suspense,{fallback:null,children:q.jsx(mln,{store:t})}),q.jsx(wcn,{}),q.jsx(Jan,{}),q.jsx(Hcn,{})]})}const gln=3,yln=1e4,vln=4e3;function bln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function bwt(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 Sln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function VMt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function xln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!VMt(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 wln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Tln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&VMt(t,s)?"resume":wln(t,s)?"reload":t?.project?"none":"offer-reload"}const Kge="volter.editor.orphaned-tab.v1";function Cln(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 Eln(t){return JSON.stringify(t)}function kln(t,n){const s=Math.max(0,Math.round((n-t.at)/1e3)),c=s<90?`${s}s ago`:s<5400?`${Math.round(s/60)}m ago`:`${Math.round(s/3600)}h ago`,d=t.project?` on ${t.project}`:"";return`A previous editor window at this address lost its server ${c}${d} and was left orphaned. If that window is still open it is a stale snapshot — nothing in it is saved and every click in it hangs on retries. Close it; this window is the live one.`}const Aln=720*60*1e3;function Dln(t,n){const s=n-t.at;return s>=0&&s<=Aln}function BVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Pln(t,n=BVe()){try{n?.setItem(Kge,Eln(t))}catch{}}function Iln(t=BVe()){if(!t)return null;try{const n=Cln(t.getItem(Kge));return t.removeItem(Kge),n}catch{return null}}function Nln(t=BVe()){try{t?.removeItem(Kge)}catch{}}function Oln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function Rln(){try{const{stopAllLiveSessions:t}=await fo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>irn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function Fln(){const[t,n]=Ze.useState({kind:"quiet"}),s=Ze.useRef(bln(Date.now())),c=Ze.useRef(null),d=Ze.useRef(!1);return Ze.useEffect(()=>{let m=!1,g=null;const S=()=>{g!==null&&(clearInterval(g),g=null)},k=async pe=>{c.current=pe,DRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Pln({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 Rln()},A=(pe,ue,Ce)=>{switch(Tln(s.current.bootIdentity,pe)){case"resume":{c.current=null,GYr(),Nln(),s.current=bwt(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 PZr(),ue=pZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=bwt(s.current,pe,ue,Ce);const De=xln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:gln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:yln,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=Sln(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,vln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ze.useEffect(()=>{tln(t);const m=Oln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){bBe(SOe);return}if(t.kind==="degraded"){s$({id:SOe,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:SOe,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 SOe="editor-lease",Mln="0.5.75",jln={version:Mln},Lln="0.5.75",Bln={version:Lln},UMt=Bln.version,$ln=jln.version;function qln({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?YDt(t.recovery.verbs):null,[m,g]=Ze.useState(!1);return Ze.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:fee})}),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?eLe:j0r,"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 wje({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(LVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(qln,{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",UMt," · Engine v",$ln]})})]})})}function zln({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(LVe,{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 Vln extends Ze.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){ea.error(`Editor chrome crashed while the command listener stayed attached: ${n.message}
|
|
1402
1402
|
${s.componentStack??""}`,"editor")}render(){return this.state.error?q.jsx(wje,{error:{message:`The editor surface crashed: ${this.state.error.message}`},onRetry:()=>this.setState({error:null})}):this.props.children}}function f_e({children:t}){return q.jsxs(q.Fragment,{children:[t,q.jsx(Fln,{})]})}function Uln(t){const n=t instanceof Error?t.message:String(t);return t instanceof AC?{status:"error",message:n,recovery:t.recovery}:t instanceof h$e?{status:"error",message:n,report:t.report}:{status:"error",message:n}}const Jln=8e3;function Wln(t=wen,n=Jln){return new Promise((s,c)=>{const d=window.setTimeout(()=>{c(new $Pt(n))},n);t().then(m=>{window.clearTimeout(d),s(m)},m=>{window.clearTimeout(d),c(m)})})}const Hln=3;function Gln(){const[t,n]=Ze.useState({status:"detecting",waitingSince:null}),[s,c]=Ze.useState(0);Ze.useEffect(()=>bwr(),[]),Ze.useEffect(()=>_Zr(),[]),Ze.useEffect(()=>nZr(()=>c(k=>k+1)),[]),Ze.useEffect(()=>{let k=!1,A,F=0;const D=Date.now();n({status:"detecting",waitingSince:null});const J=()=>{Wln().then($=>{k||n($?{status:"ready",project:$}:{status:"no-project"})},$=>{if(k)return;F+=1;const G=g4r($,F);if(G.kind==="terminal"){const pe=Uln($),ue=pe.recovery&&"verbs"in pe.recovery?YDt(pe.recovery.verbs):null;ea.error(`Startup failed: ${pe.message}${ue?` Run: ${ue}`:""}`,"editor"),n(pe);return}const se=$ instanceof Error?$.message:String($);F===Hln&&ea.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]=Ze.useState(0);Ze.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]),Ze.useEffect(()=>{t.status!=="detecting"&&bZr(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 Ze.useEffect(()=>{document.title=IPt(S)},[S]),t.status==="detecting"?q.jsx(f_e,{children:q.jsx(zln,{wait:t.waitingSince===null?void 0:{seconds:m,detail:t.lastError}})}):t.status==="no-project"?q.jsx(f_e,{children:q.jsx(wje,{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(f_e,{children:q.jsx(wje,{error:{message:t.message,...t.recovery?{recovery:t.recovery}:{}},report:t.report,onRetry:()=>c(k=>k+1)})}):q.jsx(f_e,{children:q.jsx(ean,{children:q.jsx(Vln,{children:q.jsx(hln,{})})})})}function $Ve(t){Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot,t.getShellSnapshot),Ze.useSyncExternalStore(i2,K1,K1),Ze.useSyncExternalStore(Cee,AD,AD),Ze.useSyncExternalStore(Pye,lN,lN),Ze.useSyncExternalStore(Yin,Nxt,Nxt),Ze.useSyncExternalStore(U$,mhe,mhe),Ze.useSyncExternalStore(aEr,Lht,Lht),Ze.useSyncExternalStore(ain,Txt,Txt),Ze.useSyncExternalStore(U0e,qQ,qQ),Ze.useSyncExternalStore(w3t,dRe,dRe),Ze.useSyncExternalStore(Xwr,pht,pht),Ze.useSyncExternalStore(qCr,Rht,Rht);const[,n]=Ze.useReducer(d=>d+1,0),{adapter:s}=Cm(t),c=Ze.useRef({broad:t.getSnapshot(),shell:t.getShellSnapshot()});return c.current={broad:t.getSnapshot(),shell:t.getShellSnapshot()},Ze.useEffect(()=>{const d=s.subscribe;if(d)return Pg({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]),ove(t)}let DI=null,JMt=0;const Tje=new Set;function Kln(){return DI}function Swt(){return JMt}function Xln(t){return Tje.add(t),()=>Tje.delete(t)}function xwt(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,JMt+=1;for(const s of Tje)s()}}function Yln(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 WMt=Ze.createContext(null);function Zln({actions:t,children:n}){return q.jsx(WMt.Provider,{value:t,children:n})}function Qln(){return Ze.useContext(WMt)}function RC(t,n){return{...n,iconName:t}}const eun=RC("outliner-object",aR),tun=RC("outliner-light",Zje),run=RC("outliner-camera",nye),nun=RC("outliner-audio",O0r),xOe=RC("outliner-data",h0r),wwt=RC("outliner-mesh",aR),iun={three:eun,react:Qje,canvas:KTt,scene:sLe,mesh:wwt,"skinned-mesh":wwt,"mesh-data":xOe,"three-source":xOe,"model-asset":xOe,light:tun,camera:run,audio:nun,"reflection-probe":WTt,group:$Oe,object:NTt,component:GB,img:iB,a:v0r,ul:vZ,ol:vZ,li:vZ,button:LOe,sprite:iB,animatedsprite:$Tt,nineslicesprite:iB,tilingsprite:iB,text:F0r,graphics:LOe,container:$Oe},oun=RC("outliner-render-on",nye),sun=RC("outliner-render-off",_0r),aun=RC("outliner-exclude-on",m0r),cun=RC("outliner-exclude-off",LOe),lun=/^blender-[a-z0-9-]+$/;function KZ(t,n=NTt){const s=iun[t];return s||(lun.test(t)?RC(t,n):n)}const uun=new Set(["mesh-data","blender-material-data","blender-shapekey-data","blender-texture-data","blender-image-data"]),fun=["blender-outliner-data-","blender-light-","blender-lightprobe-"];function HMt(t){return t===void 0?!1:uun.has(t)?!0:fun.some(n=>t.startsWith(n))}function Cje(t){return t.body.kind==="fields"?q.jsx(M9t,{fields:t.body.fields,io:t.body.io}):t.body.render()}function qVe({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 zVe(t){return t.related.find(n=>n.id.startsWith("definition:"))??null}function dun(t){return t.related.filter(n=>!n.id.startsWith("creation-site:")&&!n.id.startsWith("definition:"))}function VVe({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:$0r}),q.jsx("span",{style:{maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title})]})}function GMt({subject:t}){const n=dun(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 Eje(t){const n=o4t(t.iconName);if(n)return`${n.path}|${n.tonedPath??""}`;const s=t.icon[4];return Array.isArray(s)?s.join("|"):s}function KMt({subject:t,onJump:n}){const s=N9t(t);return Ze.useSyncExternalStore(gBe,she,she),s.length<5||new Set(s.map(c=>Eje(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 pun({render:t,glyph:n,subjectKey:s}){const c=ive(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 UVe({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(IRe,{"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 XMt({subject:t}){const n=t.identity;if(!n)return q.jsxs("div",{style:{padding:12},children:[q.jsx("div",{style:{fontSize:"var(--volter-font-md)",fontWeight:600},children:t.title}),t.hint&&q.jsx("div",{"data-testid":"inspector-subject-hint",style:{marginTop:4,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:t.hint})]});const s=zVe(t);return q.jsxs("div",{className:"volter-inspector-identity",style:{padding:`${G0[1]} ${G0[4]}`,borderBottom:"1px solid var(--volter-structural-divider)"},children:[q.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[q.jsx(UVe,{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}),CBe(t,"identity").map(c=>q.jsx(qVe,{action:c},c.id)),s&&q.jsx(VVe,{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 _un({subject:t}){const n=t.identity;if(!n)return q.jsx(XMt,{subject:t});const s=zVe(t),c=n.kind?KZ(n.kind,Xge(t)):Xge(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})}),CBe(t,"identity").map(g=>q.jsx(qVe,{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(UVe,{subject:t}),s&&q.jsx(VVe,{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 mun({section:t}){return q.jsx("div",{"data-testid":t.testId,"data-inspector-section":t.id,children:q.jsx(PCr,{label:t.title,icon:t.icon,description:t.description,collapsible:!0,defaultOpen:t.defaultOpen??!0,children:Cje(t)})})}function hun({subject:t}){const n=Ze.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(XMt,{subject:t}),q.jsx(KMt,{subject:t,onJump:s}),q.jsx(GMt,{subject:t}),q.jsx("div",{ref:n,children:t.sections.map(c=>q.jsx(Ze.Fragment,{children:q.jsx(mun,{section:c})},c.id))})]})}const d_e=new Map;let Twt=null;function gun({subject:t}){const n=N9t(t),s=d_e.get(t.id)??Twt,[c,d]=Ze.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),d_e.size>200&&d_e.clear(),d_e.set(t.id,k),Twt=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(Ze.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(_un,{subject:t}),q.jsx(GMt,{subject:t}),g?q.jsx("div",{"data-testid":g.testId,"data-inspector-section":g.id,children:Cje(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:Cje(k)},k.id))]})]})})}function Xge(t){const n=t.sections[0]?.icon;return n?Eje(n)===Eje(BOe)?aR:n:aR}function yun({subject:t,surface:n}){const s=Qln(),c=t.sections.find(k=>k.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null,m=zVe(t),g=n?()=>CVe(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:l0r})}),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(pun,{render:d?d.render:null,glyph:Xge(t),subjectKey:t.id})}),S?q.jsxs("div",{className:"volter-mini-inspector-identity",children:[q.jsx(UVe,{subject:t}),CBe(t,"identity").map(k=>q.jsx(qVe,{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(KMt,{subject:t,onJump:()=>g?.()}),m&&q.jsx("div",{className:"volter-mini-inspector-actions",children:q.jsx(VVe,{link:m})})]})}function vun({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:Xge(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:tLe})})]})}const p_e=new Map;function Cwt({subject:t,presentation:n,surface:s}){const c=t.id,d=Ze.useCallback(m=>{m&&(m.scrollTop=p_e.get(c)??0)},[c]);return n==="card"?q.jsx(yun,{subject:t,...s?{surface:s}:{}}):q.jsx($ye,{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=>{p_e.size>200&&p_e.clear(),p_e.set(c,m.currentTarget.scrollTop)},children:n==="properties"?q.jsx(gun,{subject:t}):q.jsx(hun,{subject:t})})}const bun=250;let YMt=0,UY=null;const vme=new Set;function Sun(){YMt++;for(const t of vme)t()}function JVe(t){return vme.add(t),UY===null&&(UY=setInterval(Sun,bun)),()=>{vme.delete(t),vme.size===0&&UY!==null&&(clearInterval(UY),UY=null)}}function xun(){return YMt}function ZMt(t){return Ze.useSyncExternalStore(JVe,t,t)}function wun({presentation:t,surface:n}){const s=fVe(),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:()=>CVe(n,"column"),children:q.jsx(dc,{icon:FTt})})}):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($ye,{name:"Inspector (nothing to author)",hideHeader:!0,className:"volter-content-frost","data-testid":"inspector-panel",onPointerDown:()=>CR("inspector"),children:c})}function WVe(){const t=Yv();ZMt(()=>Lwr());const n=$Ve(t),{adapter:s}=Cm(t);return n.available?s.capabilities.inspectorFields?q.jsx(Cwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):n.subject.identity!==null||n.subject.sections.length>0?q.jsx(Cwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):l$()?q.jsx(wun,{presentation:n.presentation,surface:n.surface}):null:null}function Tun({surface:t}){return q.jsx($ye,{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:()=>CVe(t,"column"),children:"Show it here"})]})})}const QMt=260,ejt=360,see=16,Cun=200,tjt=220,kje=54,Eun=52,kun={maxWidth:QMt,maxHeight:ejt,minSize:Cun,margin:see},Aun={right:see,bottom:see},Dun={maxWidth:tjt,maxHeight:kje,minSize:kje,margin:see};function Pun(t,n,s){return Yln(t,s?Dun:kun,n)}function Iun(){const t=Yv();Ze.useSyncExternalStore(t.subscribe,t.getShellSnapshot),Ze.useSyncExternalStore(i2,K1,K1),Ze.useSyncExternalStore(U0e,qQ,qQ),Ze.useSyncExternalStore(Xln,Swt,Swt);const n=Kln(),[s,c]=Ze.useState(!1),{subject:d}=$Ve(t),m=Ze.useCallback(()=>{oD();const{adapter:S}=Cm(t);c0(S,[])||t.select(null)},[t]),g=n?Pun(n,Aun,s):null;return q.jsx("div",{style:{position:"absolute",...g?{left:g.left,top:g.top,width:g.width,height:g.height}:{right:see,bottom:Eun,width:s?tjt:QMt,height:s?kje:ejt},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(vun,{subject:d,onExpand:()=>c(!1),onClear:m}):q.jsx(Zln,{actions:{minimize:()=>c(!0)},children:q.jsx(WVe,{})})})})}let Nun=1;const Ewt=new WeakMap;function Oun(t){if(!t)return 0;const n=Ewt.get(t);if(n!==void 0)return n;const s=Nun++;return Ewt.set(t,s),s}function HVe(t){const n=Y0(t);return n instanceof hy?n.childAdapters().find(c=>c.kind==="three"&&c.adapter.capabilities.transform)?.worldId??null:null}function Run(t){const n=Y0(t);if(!(n instanceof hy))return!0;if(!n.childAdapters().some(d=>d.kind==="three"))return!1;const c=HVe(t);return c===null?!0:!oq(c)}const Fun="/__editor/collaboration",kwt=["participants","presence","messages","revisions","audit","team-test"];let KI=null;const Aje=new Set,Dje=new Set;let Awt=0;function __e(t){KI=t,FAt(t.revision);for(const n of Aje)n(t);if(t.revision>Awt){Awt=t.revision;for(const n of Dje)n(t.revision)}}async function Pje(t,n){const s=await fetch(`${Fun}${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 Mun(){return KI}let m_e=null,h_e=0;function rjt(){if(h_e++,!m_e){const n=jD(),s=g=>{try{__e(JSON.parse(g.data))}catch{}};let c=!1;const d=()=>{c||(c=!0,Pje("").then(__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;__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 kwt)n.addEventListener(`collaboration-${g}`,m);Pje("").then(__e).catch(()=>{}),m_e=()=>{n.removeEventListener("collaboration-snapshot",s);for(const g of kwt)n.removeEventListener(`collaboration-${g}`,m);n.close()}}let t=!1;return()=>{t||(t=!0,h_e--,h_e<=0&&(h_e=0,m_e?.(),m_e=null))}}function jun(t){Aje.add(t),KI&&t(KI);const n=rjt();return()=>{Aje.delete(t),n()}}function Ixn(t){Dje.add(t);const n=rjt();let s=!1;return()=>{s||(s=!0,Dje.delete(t),n())}}async function Nxn(t){await Pje("/presence",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({participantId:G0e,presence:t})})}const Dwt=500,njt=()=>{};function Lun(t,n){if(n===njt)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++<Dwt;){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>Dwt)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 Bun(t,n,s){for(const c of n)c.more||s(c.node.id)&&t.set(c.node.id,!1);return t}function $un(t,n){for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n)return s.worldId;return t.ownerOf(n)}function qun(t,n,s){if(!(t instanceof hy))return!0;const c=$un(t,s);return c===null?!1:n.every(d=>t.ownerOf(d)===c)}const zun="This world's structure comes from its own source, which the editor can't rewrite here — reparenting is not wired for it.",Vun="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 Pwt(t){return t.hasStructureWritePath?t.targetIsInternal?Vun:null:zun}const Uun=400,ijt="volter.projectLocalState";let JB=null,JY=null,ER={},Ije=!1,WB=null;function ojt(){return Em()}function cte(){const t=ojt();if(JB===t)return Promise.resolve();if(JY)return JY.then(()=>cte());const n=t$e(),s=n?Promise.resolve(Jun(n.get(ijt))):IZr();return JY=Promise.all([s,$4t()]).then(([c])=>{ER=c&&typeof c=="object"?{...c}:{},JB=t}).catch(()=>{ER={},JB=t}).finally(()=>{JY=null}),JY}function lte(){return JB===ojt()}function vve(t){if(lte())return ER[t]}function GVe(t=!1){if(WB!==null&&(clearTimeout(WB),WB=null),!Ije)return;Ije=!1;const n=t$e();n?n.store(ijt,JSON.stringify(ER)):NZr(ER,{leaving:t})}function Jun(t){if(!t)return{};try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}catch{return{}}}function bve(t,n){const s=()=>{ER={...ER,[t]:n},Ije=!0,WB!==null&&clearTimeout(WB),WB=setTimeout(GVe,Uun)};lte()?s():cte().then(s)}function Wun(){GVe(!0)}IC(()=>{wf()&&cte()});JAr(()=>{JB!==null&&(GVe(),JB=null,wf()&&cte())});typeof window<"u"&&window.addEventListener("pagehide",Wun);const sjt="hierarchyExpansion",O$=new Map;let Iwt=!1;function KVe(){if(Iwt||!lte())return;Iwt=!0;const t=vve(sjt)??{};for(const[n,s]of Object.entries(t))O$.set(n,new Map(Object.entries(s)))}function ajt(){const t={};for(const[n,s]of O$)t[n]=Object.fromEntries(s);bve(sjt,t)}function Hun(t,n){return KVe(),O$.get(t)?.get(n)}function Nwt(t,n){KVe();let s=O$.get(t);s||(s=new Map,O$.set(t,s));for(const[c,d]of n)s.set(c,d);ajt()}function Gun(t){KVe(),O$.delete(t),ajt()}let Yge=null;const Nje=new Set;function Kun(){return Yge}function Xun(t){return Nje.add(t),()=>{Nje.delete(t)}}function cjt(t){if(Yge!==t){Yge=t;for(const n of Nje)n()}}function Yun(t){Yge===t&&cjt(null)}const Zun=500,Owt=new Set,aee=new Set;function Oxn(t){return aee.has(t)}function Rxn(t){return aee.delete(t)?!1:(aee.add(t),!0)}function Fxn(){return aee}function Qun(t,n=aee){if(typeof t.internalChildren!="function"||n.size===0)return{hierarchy:t.hierarchy,isInternal:()=>!1,revealRootIds:Owt,internalIds:Owt};const s=new Map,c=new Map,d=new Set,m=(S,k)=>{if(k>Zun||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 efn(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 Zge=20,tfn="__more__:",ljt=500;function rfn(t,n,s){return t?Math.max(Zge,n.get(s)??Zge):Number.POSITIVE_INFINITY}function nfn(t,n,s,c,d){return{node:{id:`${tfn}${t}`,label:"",kind:"object",parentId:s,childIds:[]},depth:n,pathKey:`${t}/__more__`,hasChildren:!1,hiddenByCollapse:c,more:{parentPathKey:t,hidden:d}}}function Rwt(t,n,s=new Map,c=!1){const d=[],m=new Set,g=(S,k,A,F)=>{if(m.has(S.id)||k>ljt)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,rfn(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(nfn(A,k+1,S.id,$,S.childIds.length-G))};return t.roots().forEach((S,k)=>{g(S,0,`r${k}`,!1)}),d}function ifn(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>ljt){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 Fwt(t){return`${t.pathKey}:${t.node.id}`}function ofn(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 sfn(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 wOe{#e=null;#t;computeCount=0;get current(){return this.#t}read(n,s){if(this.#e!==null&&sfn(this.#e,n))return this.#t;const c=s(this.#t);return this.#e=n,this.#t=c,this.computeCount+=1,c}}class afn{#e=new wOe;#t=new wOe;#i=new wOe;#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 cfn(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 XVe(t){const n=t.split("."),s=[];for(let c=1;c<n.length;c++)s.push(n.slice(0,c).join("."));return s}function Mwt(t,n){const s=new Set;for(const c of n)for(const d of t.pathKeysByNodeId.get(c)??[])for(const m of XVe(d)){const g=t.nodeIdByPathKey.get(m);g&&s.add(g)}return s}function lfn(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 ufn(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 ffn=["position","rotation","scale"];function dfn(t){const n=t.role==="component"&&!!t.typeLabel;return{label:t.label,typeSuffix:n?t.typeLabel:null}}const YVe={locked:!1};function pfn(t){let n;for(const s of ffn){const c=t(s);if(!c||c.writable)return YVe;s==="position"&&(n=c.reason)}return n===void 0?{locked:!0}:{locked:!0,reason:n}}class _fn{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?pfn(S=>m(c,S)):YVe;return this.entries.set(c,g),g}}const mfn={draggable:!0,renamable:!0,writable:!0,searchable:!0},hfn={draggable:!1,renamable:!1,writable:!0,searchable:!0},gfn={draggable:!1,renamable:!1,writable:!1,searchable:!1};function ZVe(t){return t.internal?gfn:t.structural?hfn:mfn}function yfn(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 vfn{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?yfn(n.diagnosticsFor(c)):null;return this.entries.set(c,m),m}}const bme=new Map;function Mxn(t){return bme.set(t.documentId,t),()=>{bme.get(t.documentId)===t&&bme.delete(t.documentId)}}function bfn(t){return bme.get(t)??null}function Sfn(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 xfn(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 wfn(t,n){const s=[...n];if(s.length===0)return null;if(t instanceof hy)return xfn(t,s);const c=Sfn(t,s);return c?{...c,adapter:t}:null}function Tfn(t,n){return!n||n.worldId!==null&&oq(n.worldId)?!1:n.kind!=="three"||n.worldId===null?!0:HVe(t)===n.worldId}const XZ=new Map;let ujt=0;const Oje=new Set;function jwt(){ujt++;for(const t of[...Oje])t()}function jxn(t,n){const s={store:n};return XZ.set(t,s),jwt(),()=>{XZ.get(t)===s&&(XZ.delete(t),jwt())}}function Cfn(t){return t===null?null:XZ.get(t)?.store??null}function Lxn(t){for(const[n,s]of XZ)if(s.store===t)return n;return null}function Bxn(t){return Oje.add(t),()=>{Oje.delete(t)}}function $xn(){return ujt}const rB=new Map;function qxn(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 fjt={count:0,surface:null,visible:!1};function Efn(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function Lwt(t){switch(t){case"scene":case"world":return{kind:"composition"};case"story":return{kind:"story"};case"asset":return{kind:"artifact"};case"document":return{kind:"data"};default:return{kind:"unknown"}}}function kfn(t){if(t===null)return{kind:"unknown"};const n=l0().find(d=>d.descriptor.id===t);if(!n)return{kind:"unknown"};const s=n.descriptor.presentation?.()??null,c=Lwt(s?.kind);return c.kind!=="unknown"?c:Lwt(n.descriptor.kind)}function Afn(t){return t instanceof hy?t.childAdapters().some(n=>n.kind==="three"):!t.rects&&typeof t.hierarchy.object3D=="function"}function Rje(t,n,s,c){const d=Y0(t),m=Run(t)&&Afn(d)?"three":null,g=t.playState,S=t.selectedEntityIds.size;if(S===0)return{documentId:n,chrome:c,subject:s,surface:m,selection:fjt,play:g};const k=wfn(d,t.selectedEntityIds);return{documentId:n,chrome:c,subject:s,surface:m,selection:{count:S,surface:Efn(k?.kind),visible:Tfn(t,k)},play:g}}function Dfn(t,n,s="document"){const c=kfn(n);if(rB.has(n))return{...Rje(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:fjt,play:t.playState}:Rje(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 Pfn(t){const n=e_();return n!==null?Dfn(t,n):Rje(t,null,{kind:"unknown"},"document")}function Ifn(t){return Cfn(e_())??t}function Nfn(t){return t.surface!=="three"?!1:t.selection.count===0?!0:t.selection.surface==="three"&&t.selection.visible}function zxn(t){return Nfn(t)?tCt(t.documentId)===null?"gizmo":"modal":"none"}function Vxn(t){return t.surface==="three"&&t.selection.count>0&&t.selection.surface==="three"&&t.selection.visible}function djt(t){return t.chrome==="embedded"||t.subject.kind==="story"||t.subject.kind==="artifact"}function Uxn(t,n){return djt(t)?!0:t.subject.kind==="data"&&!n}function Jxn(t){return t.chrome==="document"&&djt(t)}let Sme=null;const Qge=new Set;function Wxn(t){Sme=t;for(const n of Qge)n();return()=>{if(Sme===t){Sme=null;for(const n of Qge)n()}}}function eye(){return Sme}function Ofn(t){return Qge.add(t),()=>{Qge.delete(t)}}const TOe="application/x-editor-asset",COe="application/x-hierarchy-reorder";function EOe(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:X3t.treeRow}const hZ="var(--volter-tree-indent)";function xme(t){return`calc(${hZ} * ${t})`}const Bwt=5;function Rfn(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 Ffn=[],Mfn=6,jfn=8,Lfn=2400;function Bfn(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 $fn=300,qfn=new Map,zfn={folder:uee,document:iLe,story:$Tt,component:GB,instance:$Oe,boundary:fee};function Vfn(t){return t.role==="root"?KZ(t.kind,KTt):t.role==="entity"||t.role==="element"?KZ(t.kind):(t.role?zfn[t.role]:void 0)??KZ(t.kind)}const pjt=new Set(["folder","root","document","story","boundary"]);function Ufn(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 Jfn(t,n){return n===null?t.hierarchy.roots().map(s=>s.id):t.hierarchy.node(n)?.childIds??[]}function QVe(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 wme(t,n){return QVe(t,n)!==null}function eUe(t,n){return t instanceof hy&&t.isOrganizationNode(n)}function _jt(t,n){if(!(t instanceof hy))return t;const s=t.ownerOf(n);return t.childAdapters().find(c=>c.worldId===s)?.adapter??t}function $wt(t,n){return n===void 0?t.structure!==void 0:_jt(t,n).structure!==void 0}function Wfn(t,n,s){return wme(t,n)||eUe(t,n)||s!==void 0&&pjt.has(s)}function Hfn(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=Wfn(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=>HMt(m.get(J)));s.set(g.node.id,g.node.defaultExpanded??(!D&&(A||F<=1||k?.childIds.length===1)))}return s}function Gfn(t,n,s){const c=new Set;for(const d of t)if(!(d.more||!ZVe({structural:!1,internal:s(d.node.id)}).searchable)&&d.node.label.toLowerCase().includes(n)){c.add(d.pathKey);for(const m of XVe(d.pathKey))c.add(m)}return c}function Kfn(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 Xfn({value:t,onChange:n}){const s=Ze.useRef(null);return q.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",flex:`0 1 var(${Zfn}, ${Yfn}px)`,minWidth:Qfn},children:[q.jsx(dc,{icon:TTt,"aria-hidden":"true",style:{position:"absolute",left:edn,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(${rdn}, ${tdn}px)`,paddingRight:ndn}})]})}const Yfn=64,Zfn="--volter-hierarchy-search-basis",Qfn=56,edn=2,tdn=21,rdn="--volter-hierarchy-search-text-inset",ndn=2;function idn({onCollapseAll:t,onResetExpansion:n,onExpandAll:s}){const[c,d]=Ze.useState(!1),m=Ze.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:zTt,"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 odn({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(Xfn,{value:n,onChange:s}),q.jsx(idn,{onCollapseAll:m,onResetExpansion:g,onExpandAll:S}),q.jsx(adn,{adapter:c,parentId:d})]});return t?MS.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 sdn({state:t,adapter:n,store:s,isGroupNode:c,isInternal:d,onRename:m,onClose:g}){const S=Ze.useRef(null),[k,A]=Ze.useState({left:t.x,top:t.y});Ze.useLayoutEffect(()=>{const Yr=S.current;if(!Yr)return;const en=Yr.getBoundingClientRect();A(L3t({top:t.y,left:t.x,width:en.width,height:en.height}))},[t.x,t.y]);const[F,D]=Ze.useState(!1),J=Ze.useRef(!1);Ze.useEffect(()=>{F&&(J.current=!1)},[F]),Ze.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=_jt(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,Te=n.inspector?.editability?.(t.nodeId,"locked"),$e=n.inspector?.editability?.(t.nodeId,"visible"),bt=De&&(Te?.writable??!0),It=be&&($e?.writable??!0),Wt=[...Ifn(s).selectedEntityIds],zt=Wt.includes(t.nodeId)?Wt:[t.nodeId],ft=$3r(gPt(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=ZVe({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:()=>{r0e(n,zt),g()}}),Tt.push({label:"Copy",testId:"hierarchy-context-menu-copy",...pe?.copy&&(n.structure?.canCopy?.(zt)??!0)?{}:{disabledReason:tr},action:()=>{t0e(n,zt),g()}}),Tt.push({label:"Paste",testId:"hierarchy-context-menu-paste",...pe?.paste&&(n.structure?.canPaste?.($.parentId)??!0)?{}:{disabledReason:Qt},action:()=>{n0e(n,$.parentId),g()}}),Tt.push({label:"Duplicate",testId:"hierarchy-context-menu-duplicate",...ue?{}:{disabledReason:ft},action:()=>{Wt.length>1&&Wt.includes(t.nodeId)?_ve(s):Yye(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:()=>{e0e(n,Wt).ack,g()}}),pe?.ungroup&&pe.canUngroup?.(t.nodeId)&&Tt.push({label:"Ungroup",testId:"hierarchy-context-menu-ungroup",action:()=>{a$e(n,t.nodeId).ack,g()}}),pe?.wrap&&Tt.push({label:"Wrap",testId:"hierarchy-context-menu-wrap",action:()=>{Zye(n,t.nodeId),g()}}),pe?.unwrap&&Tt.push({label:"Unwrap",testId:"hierarchy-context-menu-unwrap",action:()=>{Qye(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",...It?{}:{disabledReason:$e?.reason??ft},action:()=>{n.inspector.set(t.nodeId,"visible",!X),s.notifyIngestEdit(),g()}}),Tt.push({label:Pe?"Unlock":"Lock",...bt?{}:{disabledReason:Te?.reason??ft},action:()=>{n.inspector.set(t.nodeId,"locked",!Pe),s.notifyIngestEdit(),g()}});for(const Yr of e3r({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)?mve(s):n.structure.remove(t.nodeId),g()}})}return q.jsx(rhe,{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(s4t,{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,Xye(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:Eht.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:Eht.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 adn({adapter:t,parentId:n}){const[s,c]=Ze.useState(!1),d=Ze.useRef(null),m=Ze.useRef(!1),g=t.structure?.creatableKinds?.(n)??[],S=n?t.hierarchy.node(n)?.label:null;return Ze.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:JTt,style:{fontSize:"var(--volter-font-sm)"}})," ",q.jsx(dc,{icon:nLe,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,Xye(t,k.kind,n??void 0).ack,c(!1))},children:k.label},k.kind))})]})}function cdn({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:xme(t.depth+1)},children:["… ",s," more"]})}function qwt(t,n){if(!n)return t;const s=t.toLowerCase(),c=n.toLowerCase(),d=[];let m=0,g=s.indexOf(c,m);if(g<0)return t;let S=0;for(;g>=0;)g>m&&d.push(t.slice(m,g)),d.push(q.jsx("mark",{"data-testid":"ingest-row-search-highlight",style:{background:Go.semantic.warning,color:Go.surface.shell,borderRadius:Go.shape.small},children:t.slice(g,g+c.length)},S++)),m=g+c.length,g=s.indexOf(c,m);return m<t.length&&d.push(t.slice(m)),d}function mjt(t,n){return t.length===n.length&&t.every((s,c)=>s===n[c])}function ldn(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&&mjt(s.childIds,c.childIds)&&s.crossSurfaceId===c.crossSurfaceId&&s.crossSurfaceParentId===c.crossSurfaceParentId&&s.crossSurfaceOrder===c.crossSurfaceOrder&&s.crossSurfaceGroupLabel===c.crossSurfaceGroupLabel}function udn(t,n){return ldn(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&&mjt(t.remoteSelectionColors,n.remoteSelectionColors)}const fdn=Ze.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:Te,onClick:$e,onEnterScope:bt,remoteSelectionColors:It,typeSuffixShown:Wt,instanceRuleShown:zt,restrictionColumns:ft,excludeColumnShown:tr}){const{node:Qt,depth:Tt,hasChildren:vn}=n,Yr=QVe(s,Qt.id),en=Yr!==null,ii=eUe(s,Qt.id),No=en||ii||Qt.role!==void 0&&pjt.has(Qt.role),gn=ZVe({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),Ip=Yr?oq(Yr.worldId):!1,Au=Yr?aMt(Yr.worldId):!1,dl=Yr?cMt(Yr.worldId):!1,bu=en?!Ip: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=dfn(Qt),Sl=No?0:s.instances?.describe(Qt.id)?.overrides.length??0,Rl=No?YVe:se.summaryFor(s,ue,Qt.id),mi=No?null:pe.badgeFor(s,ue,Qt.id),tu=No?null:eye()?.detail(s,Qt.id,c)??null,Wc=S&&vn?Qt.childIds.slice(0,Mfn).map(Ao=>s.hierarchy.node(Ao)).filter(Ao=>Ao!==null&&HMt(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":It.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=>Te(Ao,Qt.id),onClick:Ao=>{if(Yr?.role==="world"&&jMe(Yr.worldId),Qt.role==="story"){const ia=s instanceof hy?s.ownerOf(Qt.id):null;ia&&jMe(ia),s.stories?.apply(Qt.id,Qt.id)}$e(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:xme(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(xht,{position:"before",style:{left:xme(Tt)}}),k==="after"&&q.jsx(xht,{position:"after",style:{left:xme(Tt)}}),Rfn(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?Bwt:0,bottom:Ao.ends?Bwt: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?wTt:nLe,"aria-hidden":"true"})}):q.jsx("span",{"data-testid":"ingest-row-caret","aria-hidden":"true",style:{width:hZ,flexShrink:0}}),It.length>0&&q.jsx("span",{className:"volter-tree-remote-selection",role:"img",title:`Selected by ${It.length} collaborator${It.length===1?"":"s"}`,"aria-label":"Selected by a collaborator",children:It.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:WTt,"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:Vfn(Qt),"aria-hidden":"true"})}),g?q.jsx(Zm,{autoFocus:!0,defaultValue:Qt.label,onBlur:Ao=>{s.inspector.set(Qt.id,"name",Ao.currentTarget.value),c.notifyIngestEdit(),Pe("")},onKeyDown:Ao=>{Ao.key==="Enter"&&(s.inspector.set(Qt.id,"name",Ao.currentTarget.value),c.notifyIngestEdit(),Pe("")),Ao.key==="Escape"&&Pe("")},onClick:Ao=>Ao.stopPropagation(),"data-variant":"tree-edit",style:{flex:1,minWidth:0}}):q.jsxs("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[$r.typeSuffix?q.jsxs("span",{"data-testid":"hierarchy-instance-label",...Wt?{}:{title:`Component instance of <${$r.typeSuffix}>`},style:{textDecorationLine:zt?d?"var(--volter-tree-active-name-underline)":"underline":"none",textDecorationStyle:"dotted",textDecorationColor:Go.semantic.instance,textUnderlineOffset:"3px",...d?{color:m?Go.content.active:Go.content.selected}:{}},children:[qwt(Qt.label,G),!Wt&&Sl>0?"*":""]}):q.jsx("span",{"data-testid":"hierarchy-plain-label",style:d?{color:m?Go.content.active:Go.content.selected}:void 0,children:qwt(Qt.label,G)}),Wc.map(Ao=>q.jsx("span",{className:"volter-tree-datablock","data-active":m?"true":void 0,title:`${Ao.kind}: ${Ao.label}`,children:q.jsx(dc,{icon:KZ(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:fee,"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:Ime,"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?Ime:MOe,"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?cun:aun,"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?(can(Yr.worldId),c.notifyIngestEdit()):(s.inspector.set(Qt.id,"visible",!bu),c.notifyIngestEdit())},children:q.jsx(dc,{icon:bu?Yje:oLe,"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?oun:sun,"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(),uan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:G0r,"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(),dan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:UTt,"aria-hidden":"true"})})]})},udn);function ddn({store:t,adapter:n}){Ze.useSyncExternalStore(t.subscribe,t.getSnapshot);const s=Ze.useDeferredValue(t.contentVersion);Ze.useSyncExternalStore(P3r,I3r),Ze.useSyncExternalStore(U$,eA,eA);const c=mD().hierarchyTypeSuffix!=="hidden",d=mD().hierarchyInstanceRule!=="hidden",m=mD().hierarchyRestrictions??"select+viewport",[g,S]=Ze.useReducer(zi=>zi+1,0),k=Ze.useRef(t.getSnapshot());k.current=t.getSnapshot();const[A,F]=Ze.useState(Mun());Ze.useEffect(()=>n.subscribe?.(()=>{k.current=t.getSnapshot(),S()}),[n,t]),Ze.useEffect(()=>jun(F),[]);const D=Ze.useMemo(()=>{const zi=new Map;for(const Jn of A?.participants??[])if(Jn.participantId!==G0e)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=Ze.useRef(new _fn),$=Ze.useRef(new vfn),G=t.hierarchyRowFacetVersion,se=HVe(t),[pe,ue]=Ze.useState(""),Ce=Ze.useSyncExternalStore(Xun,Kun,()=>null),[De,Pe]=Ze.useState(null),[be,X]=Ze.useState(null),[Te,$e]=Ze.useState(null),[bt,It]=Ze.useState(!1),[Wt,zt]=Ze.useState(null),ft=Ze.useRef(null),[tr,Qt]=Ze.useState(0),Tt=Ze.useRef(null),vn=Ze.useSyncExternalStore(bDt,ogt,ogt).includes("outliner")?"outliner":void 0,Yr=Ze.useRef(new Map),en=Ze.useRef(new Map),ii=Ze.useRef(new afn),No=Ze.useRef(0),gn=Ze.useRef(null),En=Ze.useRef(null),cs=Ze.useRef(null),On=Ze.useRef(null),[,ji]=Ze.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=Ze.useMemo(()=>new Set(fa===""?[]:fa.split("\0")),[fa]),Bc=Pn.at(-1)??null,Ni=i0e(n),Dc=Ni.at(-1)??null,vc=Ze.useRef("");Ze.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,Ip=[n,s,g],Au=Tf.structural(Ip,zi=>{const Jn=Lun(n,eye()?.marks(n.hierarchy)??njt),Cs=Qun(Jn),lc=Bfn(Cs.hierarchy),Nu=eye()?.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?ifn(lc,zi.structuralRows,Et.changedParentIds):null)??Rwt(lc,new Set),pr=efn(Bun(Hfn(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:cfn(In)}}),{marked:dl,internals:bu,hierarchyView:Al,structuralRows:Ku,defaultExpansion:pl}=Au,gs=zi=>en.current.get(zi)??Hun(_a,zi)??pl.get(zi)??!0,Xu=En.current;if(Xu?.adapter!==n||Xu.selection!==fa){for(const Jn of Mwt(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&&(h3r()||t.playState!=="stopped"),Rl=Kfn(Yr.current,Sl?lfn(Au.index,Nt):qfn),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 XVe(zi.pathKey))Jn.delete(Cs)}return{scopeRow:zi,effectiveCollapsedPaths:Jn}}),{scopeRow:tu,effectiveCollapsedPaths:Wc}=mi,Ao=ii.current.browse([Au,mi,Ja,Sl,Sl?ufn(Rl):""],()=>{const zi=Rwt(Al,Wc,Rl,Sl),Jn=Ja?Gfn(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(wme(n,Fl.node.id))return!0;let Yu=Fl.node.parentId;for(;Yu;){const Ie=QVe(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=Ze.useMemo(()=>ia.some(zi=>!zi.more&&n.inspector?.get(zi.node.id,"exclude")!==void 0),[ia,n,g,s]);Ze.useEffect(()=>{Qt(0),Tt.current&&(Tt.current.scrollTop=0)},[Ja]);const gp=Tt.current?.clientHeight||Lfn,Id=EOe(Tt.current),{start:Qs,end:Pu}=ia.length>$fn?ofn(ia.length,tr,gp,Id,jfn):{start:0,end:ia.length},Ls=ia.slice(Qs,Pu),Ff=Qs*Id,Hs=(ia.length-Pu)*Id,Ds=Ze.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);Nwt(_a,Jn),No.current+=1,ji()},[_a,Ku]),Oc={rows:ia,window:{start:Qs,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)};Ze.useEffect(()=>(Brn(Oc),()=>qrn(Oc)),[Oc]);const Ye=Ze.useRef({adapter:n,rows:ia,selectedIds:Nt,structuralRows:Ku,isExpanded:$r,projectIdentity:_a});Ye.current={adapter:n,rows:ia,selectedIds:Nt,structuralRows:Ku,isExpanded:$r,projectIdentity:_a};const jt=Ze.useCallback((zi,Jn)=>{const Cs=Ye.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);Nwt(Cs.projectIdentity,Nu),No.current+=1,ji()},[]),mt=Ze.useCallback(()=>{en.current.clear();for(const zi of Mwt(Au.index,Nt))en.current.set(zi,!0);Gun(_a),No.current+=1,ji()},[_a,fa,Au]),xt=Ze.useCallback(zi=>{const Jn=Yr.current;Jn.set(zi,(Jn.get(zi)??Zge)+Zge),No.current+=1,ji()},[]),xr=Ze.useCallback(zi=>{M3r(n,zi)},[n,t]);Ze.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=EOe(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=Ze.useCallback((zi,Jn)=>{const Cs=Ye.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=Ze.useCallback((zi,Jn)=>{const Cs=Ye.current.selectedIds,lc=Cs.has(Jn)?[...Cs]:[Jn];zt(lc),zi.dataTransfer.effectAllowed="move",zi.dataTransfer.setData(COe,JSON.stringify(lc)),zi.dataTransfer.setData("text/plain",Jn)},[]),bi=Ze.useCallback((zi,Jn)=>{Pe({x:zi.clientX,y:zi.clientY,nodeId:Jn})},[]),ta=Ze.useCallback(zi=>{const Jn=zi.dataTransfer.types.includes(COe),Cs=zi.dataTransfer.types.includes(TOe);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=EOe(Tt.current),Ie=Math.floor(Fl/Yu);if(Ie>=ia.length){$e(null),It(!0),Jn&&Wt&&(ft.current=Pwt({hasStructureWritePath:$wt(n,Wt[0]),targetIsInternal:!1}));return}It(!1);const Et=Ie>=0?ia[Ie]:void 0;if(!Et||Et.more){$e(null);return}const Nr=Pwt({hasStructureWritePath:Jn?$wt(n,Et.node.id):!0,targetIsInternal:bu.isInternal(Et.node.id)});if(Nr!==null){ft.current=Nr,$e(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)||Ufn(Ur,Wt,n))return;if(!qun(n,Wt,Ur)){$e(null);return}}if(wme(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"){$e(null);return}$e({nodeId:Et.node.id,zone:pr})},[ia,Wt,n,bu]),ic=Ze.useCallback(()=>{$e(null),It(!1),zt(null),ft.current=null},[]),Ps=Ze.useCallback(zi=>{zi.preventDefault(),zi.stopPropagation();const Jn=Te,Cs=bt,lc=ft.current;if($e(null),It(!1),zt(null),ft.current=null,lc!==null){i0(lc);return}const Nu=n.structure,Fl=zi.dataTransfer.getData(COe);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=Jfn(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),s$e(n,Li,Ei);return}const Yu=zi.dataTransfer.getData(TOe);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)&&OFe(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)&&OFe(n,In,Ie.path,Et)}catch{}},[Te,bt,ia,n]),Iu=yPt(n)??"Untitled";return q.jsxs($ye,{name:null,hideHeader:!0,onPointerDown:()=>CR("hierarchy"),onDragOver:zi=>{zi.dataTransfer.types.includes(TOe)&&(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(odn,{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:()=>Egt(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:()=>Egt(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)||($e(null),It(!1))},children:[q.jsx("div",{"data-testid":"game-hierarchy-spacer-top",style:{height:Ff}}),Ls.map((zi,Jn)=>zi.more?q.jsx(cdn,{row:zi,onReveal:xt},Fwt(zi)):q.jsx(fdn,{row:zi,rowIndex:Qs+Jn,prevDepth:ia[Qs+Jn-1]?.depth??-1,nextDepth:ia[Qs+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:Te&&Te.nodeId===zi.node.id?Te.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)??Ffn},Fwt(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?wme(n,zi.id)||eUe(n,zi.id):!1;return q.jsx(sdn,{state:De,adapter:n,store:t,isGroupNode:Jn,isInternal:bu.isInternal(De.nodeId),onRename:X,onClose:()=>Pe(null)})})()]})}function hjt(){const t=Yv(),[,n]=Ze.useReducer(c=>c+1,0);Ze.useSyncExternalStore(i2,K1),Ze.useSyncExternalStore(Cee,AD),Ze.useSyncExternalStore(Ofn,eye);const{adapter:s}=Cm(t);return Ze.useEffect(()=>s.subscribe?.(n),[s]),q.jsx(ddn,{store:t,adapter:s},Oun(s))}function pdn(){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=lve(),S=W9t(),k=Ze.useSyncExternalStore(l2,vFe,vFe);Ze.useSyncExternalStore(lDt,vhe,vhe),Ze.useSyncExternalStore(Uye,fhe,fhe),Ze.useSyncExternalStore(wDt,Ehe,Ehe),Ze.useSyncExternalStore(cLe,YB,YB);const A=De=>{const Pe=Ome(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(()=>void be.execute({})),children:typeof be.label=="function"?be.label():be.label},be.id))]})},F=Ze.useSyncExternalStore(eMt,N$,N$),D=Ze.useSyncExternalStore(dDt,zS,zS),[J,$]=Ze.useState(null);ZMt(()=>J?Ovr():"");const G=Ze.useRef(null),se=Ze.useRef({}),pe=De=>se.current[De]??={current:null};Ze.useEffect(()=>{if(!J)return;const De=Pe=>{G.current?.contains(Pe.target)||$(null)};return document.addEventListener("pointerdown",De),()=>document.removeEventListener("pointerdown",De)},[J]);const ue=De=>()=>{$(null),De()},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(MVe),children:"Undo History…"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:c.length===0||!s?.cut||!(s.canCopy?.(c)??!0),onSelect:ue(()=>RVe(t)),children:"Cut"}),q.jsx(Jc,{disabled:c.length===0||!s?.copy||!(s.canCopy?.(c)??!0),onSelect:ue(()=>OVe(t)),children:"Copy"}),q.jsx(Jc,{disabled:!s?.paste||!(s.canPaste?.(m)??!0),onSelect:ue(()=>FVe(t)),children:"Paste"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void _ve(t)),children:"Duplicate"}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void mve(t)),children:"Delete"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(()=>TRt(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(()=>vVe()),children:"Command Palette…"}),q.jsx(Jc,{onSelect:ue(async()=>{const De=rrn(t);try{await navigator.clipboard.writeText(De),ea.log("Copied a link to the current editor view.","editor")}catch(Pe){ea.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(RBe),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(()=>s2(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(ave),children:"Console"}),q.jsx(Jc,{onSelect:ue(()=>vC(nee.lightExplorer.id)),children:"Light Explorer"}),q.jsx(Jc,{onSelect:ue(()=>OBe("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(()=>gve()),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:Ome("help").length>0?A("help"):null};return q.jsx("div",{ref:G,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(uBe,{"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(fBe,{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 _dn=new Map,zwt=new Set;let mdn=0;function hdn(t){return _dn.get(t)??gdn}const gdn=[];function ydn(t){return zwt.add(t),()=>zwt.delete(t)}function Vwt(){return mdn}function Tme({slot:t}){return Ze.useSyncExternalStore(ydn,Vwt,Vwt),q.jsx(q.Fragment,{children:hdn(t).map(n=>q.jsx(n.Content,{},n.owner))})}const IO=[],Fje=new Set;let gjt=0;function Uwt(){gjt++;for(const t of Fje)t()}function vdn(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)),Uwt(),()=>{const s=IO.indexOf(t);s<0||(IO.splice(s,1),Uwt())}}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 Sdn(t){return Fje.add(t),()=>{Fje.delete(t)}}function Jwt(){return gjt}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 xdn(){const t=await fetch("/__editor/git/status");return L_(t,"Git status failed")}function wdn(t){return pA("/git/checkpoint",{method:"POST",body:JSON.stringify(t)})}function Tdn(t){return pA("/git/publish",{method:"POST",...t?{signal:t}:{}})}function Wwt(t){return pA("/git/stage",{method:"POST",body:JSON.stringify(t)})}function Cdn(t){return pA("/git/fetch",{method:"POST",...t?{signal:t}:{}})}function Edn(t){return pA("/git/update",{method:"POST",...t?{signal:t}:{}})}function Hwt(t){return pA("/git/rebase",{method:"POST",body:JSON.stringify({action:t})})}function kdn(){return pA("/git/readiness",{method:"POST"})}function Adn(t){return pA("/git/pull-request",{method:"POST",body:JSON.stringify(t)})}function Ddn(){return pA("/git/pull-request/status")}function Pdn(t){return pA("/git/pull-request/merge",{method:"POST",...t?{signal:t}:{}})}function Idn(){const[t,n]=Ze.useState(null),[s,c]=Ze.useState(!1),[d,m]=Ze.useState(null),[g,S]=Ze.useState([]),[k,A]=Ze.useState(""),[F,D]=Ze.useState(null),[J,$]=Ze.useState(null),[G,se]=Ze.useState(null),[pe,ue]=Ze.useState(!1),Ce=Ze.useRef(null);Ze.useEffect(()=>{xdn().then(Te=>{m(Te),S(Te.changed.map($e=>$e.path))}).catch(Te=>n(String(Te)))},[]);const De=Te=>{m(Te),S($e=>$e.filter(bt=>Te.changed.some(It=>It.path===bt)))},Pe=async(Te,$e,bt)=>{const It=new AbortController;Ce.current=It,$(bt??null),c(!0),n(null),D(null);try{De(await Te(It.signal)),D($e)}catch(Wt){n(Wt instanceof Error?Wt.message:String(Wt))}finally{Ce.current===It&&(Ce.current=null),$(null),c(!1)}},be=Te=>{se(null),Adn({title:Te}).then($e=>{De($e.status),D(`Pull request: ${$e.url}`)}).catch($e=>n(String($e)))},X=()=>{ue(!1);const Te=new AbortController;Ce.current=Te,$("Merging pull request"),c(!0),Pdn(Te.signal).then($e=>D(`Merged pull request: ${$e.url}`)).catch($e=>n(String($e))).finally(()=>{Ce.current===Te&&(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(Te=>{const $e=d.hunks.filter(bt=>bt.path===Te.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 ${Te.path} in checkpoint`,checked:g.includes(Te.path),onChange:bt=>S(It=>bt.target.checked?[...It,Te.path]:It.filter(Wt=>Wt!==Te.path))}),q.jsxs("code",{style:{minWidth:0,flex:1},children:[Te.index,Te.worktree," ",Te.path]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>Wwt({path:Te.path,staged:Te.index!==" "&&Te.index!=="?"}),Te.index!==" "&&Te.index!=="?"?`Unstaged ${Te.path}.`:`Staged ${Te.path}.`),children:Te.index!==" "&&Te.index!=="?"?"Unstage file":"Stage file"})]}),$e.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(()=>Wwt({path:bt.path,hunkId:bt.id,staged:bt.staged}),bt.staged?"Hunk unstaged.":"Hunk staged."),children:bt.staged?"Unstage hunk":"Stage hunk"})]},bt.id))]},Te.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(()=>Hwt("continue"),"Rebase continued."),children:"Continue rebase"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>Hwt("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:Te=>A(Te.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(()=>wdn({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(Cdn,"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(Tdn,"Branch published.","Publishing"),children:"Publish"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||!d.baseRef,onClick:()=>void Pe(Edn,"Branch rebased onto its base.","Fetching and rebasing"),children:"Update from base"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s,onClick:()=>void kdn().then(Te=>{De(Te.status),D(Te.ready?"Merge-ready; no merge was performed.":Te.reasons.join(" "))}).catch(Te=>n(String(Te))),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 Ddn().then(Te=>D(Te.available?`PR ${Te.state??"open"} · ${Te.mergeState??"status unknown"} · checks ${Te.checks?.passed??0} passed/${Te.checks?.pending??0} pending/${Te.checks?.failed??0} failed${Te.reviewDecision?` · review ${Te.reviewDecision}`:""}${Te.url?` · ${Te.url}`:""}`:Te.reason??"No pull request found.")).catch(Te=>n(String(Te))),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(Te=>q.jsxs("span",{title:`${Te.author} · ${Te.authoredAt}`,children:[q.jsx("code",{children:Te.shortSha})," · ",Te.subject]},Te.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(SRe,{labelledBy:"volter-pull-request-title-heading",onDismiss:()=>se(null),children:[q.jsx(xRe,{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(F3t,{children:q.jsx(Zm,{"aria-label":"Pull request title",autoFocus:!0,value:G,onChange:Te=>se(Te.target.value),onKeyDown:Te=>{Te.key!=="Enter"||!G.trim()||(Te.preventDefault(),be(G.trim()))}})}),q.jsxs(wRe,{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(SRe,{labelledBy:"volter-merge-pr-heading",onDismiss:()=>ue(!1),children:[q.jsx(xRe,{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(wRe,{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"})]})]})]})}vdn({owner:"editor-core:supercode",harnesses:async()=>jZr()});const Ndn={worktrees:[],branches:[]};function Odn(t){return`agent/${t.toLocaleLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,42)||"task"}`}function Rdn({currentLabel:t,onDone:n,onError:s}){const[c,d]=Ze.useState(""),[m,g]=Ze.useState("agent/task"),[S,k]=Ze.useState(!1),[A,F]=Ze.useState("worktree"),[D,J]=Ze.useState([]),[$,G]=Ze.useState(""),[se,pe]=Ze.useState(!1),ue=Ze.useSyncExternalStore(Sdn,Jwt,Jwt);return Ze.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(hBe,{"aria-label":"Task for the agent",placeholder:"Describe a bounded task…",value:c,onChange:Ce=>{const De=Ce.target.value;d(De),S||g(Odn(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),$Zr({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 Fdn(t){return t.replace(/[\\/]$/,"").split(/[\\/]/).at(-1)??t}function Mdn(t){const n=t.current?["Current worktree"]:[Fdn(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=tUe(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 tUe(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 jdn(t){return t.kind==="agent"?"AI":t.displayName.split(/\s+/).slice(0,2).map(n=>n[0]?.toLocaleUpperCase()??"").join("")}function Gwt({worktree:t}){const n=tUe(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:jdn(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 Kwt(t,...n){const s=t.trim().toLocaleLowerCase();return!s||n.some(c=>c?.toLocaleLowerCase().includes(s))}function Xwt(t,n){return[+!t.current,Math.min(...tUe(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 Ldn(t){return(n,s)=>{const c=Xwt(n,t),d=Xwt(s,t);return c.reduce((g,S,k)=>g||S-(d[k]??0),0)||(n.branch??n.root).localeCompare(s.branch??s.root)}}function Bdn(){const[t,n]=Ze.useState(Ndn),[s,c]=Ze.useState({branch:null,worktreeId:null}),[d,m]=Ze.useState(!1),[g,S]=Ze.useState(null),[k,A]=Ze.useState(null),F=Ze.useCallback(async(J=!1)=>{J||m(!0);try{n(await LZr()),A(null)}catch($){A($ instanceof Error?$.message:String($))}finally{J||m(!1)}},[]);return Ze.useEffect(()=>{if(L$)return;let J=!0;return MZr().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 $dn(){const t=Ze.useRef(null),[n,s]=Ze.useState(!1),[c,d]=Ze.useState(""),[m,g]=Ze.useState(!1),{state:S,sessionIdentity:k,loading:A,busy:F,error:D,setError:J,refresh:$,run:G}=Bdn();if(Ze.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(Ldn(Ce)).filter(ft=>Kwt(c,ft.branch,ft.root)),be=S.branches.filter(ft=>!ft.worktreeId&&Kwt(c,ft.name)),X=Pe.slice(0,c.trim()?30:10),Te=be.slice(0,c.trim()?50:20),$e=Pe.length-X.length,bt=be.length-Te.length,It=c.trim(),Wt=S.branches.some(ft=>ft.name===It),zt=Pe.length>0||be.length>0;return q.jsxs("div",{className:"volter-worktree-switcher",children:[q.jsxs(uBe,{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:i0r}),se?.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"}),se&&q.jsx(Gwt,{worktree:se})]}),n&&q.jsxs(fBe,{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:xTt})})]}),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,()=>BZr(ft.worktreeId),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:ft.current&&q.jsx(dc,{icon:eLe})}),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…":Mdn(ft)})]}),q.jsx(Gwt,{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}`,()=>zZr(ft.worktreeId,ft.sessions[0].sessionId),()=>s(!1)),children:q.jsx(dc,{icon:ETt})}),!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}`,()=>qZr(ft.worktreeId),()=>s(!1)),children:q.jsx(dc,{icon:GTt})})]},ft.worktreeId)}),$e>0&&q.jsxs(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-more",children:[$e," more worktrees — search to narrow"]})]}),Te.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"}),Te.map(ft=>q.jsxs(Jc,{className:"volter-worktree-menu-item",disabled:F!==null,onSelect:()=>void G(ft.name,()=>zSt(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 ",It?"matches":"branches"," — search to narrow"]})]}),!A&&!zt&&!It&&q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-empty",children:"No branches found."})]}),It&&!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",()=>zSt(It),()=>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 “",It,"”"]}),q.jsx("span",{className:"volter-worktree-row-detail",children:F==="create"?"Creating worktree…":`From ${pe}, in a new worktree`})]})]})]}),!It&&q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),m?q.jsx(Rdn,{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(Idn,{})]}),D&&q.jsx(_p,{as:"div",variant:"caption",tone:"danger",role:"alert",className:"volter-worktree-error",children:D})]})]})}function qdn({transport:t}){const[,n]=Ze.useReducer(D=>D+1,0);Ze.useEffect(()=>IC(n),[]);const[s,c]=Ze.useState(!1),d=Ze.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 Ze.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:[lee()?.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(uBe,{"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($dn,{}),q.jsx(bZ,{onPointerDown:()=>c(!1),className:"volter-project-app-menus",children:q.jsx(pdn,{})})]}),q.jsx(zdn,{}),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",UMt]}),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),vMe(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(Vdn,{})}),q.jsx(bZ,{className:"volter-project-header-right",justify:"end",align:"center",children:q.jsx(Tme,{slot:"header-trailing"})})]})}function zdn(){Ze.useSyncExternalStore(U$,mhe,mhe),Ze.useSyncExternalStore(lDt,vhe,vhe);const t=Ze.useSyncExternalStore(dDt,zS,zS);if(mD().workspaceTabs!=="shown")return null;const n=AN().filter(s=>Uk(s.id));return q.jsxs(q.Fragment,{children:[q.jsx(PTr,{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:()=>s2(s.id),children:s.title},s.id))})]})}function Vdn(){Ze.useSyncExternalStore(cLe,YB,YB);const t=Dvr();return t.length===0?null:q.jsx(q.Fragment,{children:t.map(({id:n,Component:s})=>q.jsx(s,{documentId:""},n))})}function Udn({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 Jdn(t,n){return window.confirm(n)}const Wdn=4,Hdn=4,Gdn=24,Kdn=4,Xdn=3,Ydn=new Set(["model","image"]),Zdn=new Set(["glb","gltf","fbx","obj","dae","stl","ply","spz","bvh","3ds"]);function Qdn(t){const n=t.lastIndexOf(".");return n>0&&Zdn.has(t.slice(n+1).toLowerCase())}const epn=new Set(["audio","video","prefab","json"]);function yjt(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 rUe(t){return t.replace(/^(?:\.\/|\/)+/,"").replace(/\/+$/,"")}function tpn(t,n){const s=t?n.slice(t.length+1):n;return s.split("/",1)[0]??s}function Ywt(t,n){return t.tier-n.tier||t.depth-n.depth||t.seq-n.seq}function rpn(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 npn(t,n){const s=[...t].sort(Ywt),c=[],d=new Set;for(const m of[1,2]){const g=s.filter(S=>S.tier===m);rpn(g,c,d,n)}return c.sort(Ywt),c.map(({path:m,name:g,kind:S})=>({path:m,name:g,kind:S}))}function ipn(t){return Ydn.has(t)?1:epn.has(t)?2:0}function opn(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=Qdn(d.name)?"model":ig(d.name).kind,S=ipn(g);S!==0&&t.candidates.push({path:m,name:d.name,kind:g,tier:S,depth:n.depth,seq:t.seq++,subtree:tpn(t.base,m)})}}async function spn(t,n,s={}){const c=s.listAssets??K0e,d=s.maxItems??Wdn,m=s.maxListings??Gdn,g=yjt(s.listConcurrency??Kdn),S=rUe(n),k={base:S,maxDepth:s.maxDepth??Hdn,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}opn(k,pe,ue.entries,G)}F=G}return{items:npn(k.candidates,d),totalAssets:k.totalAssets,scannedAll:!k.truncated&&k.failedListings===0,failedListings:k.failedListings}}const vjt="\0",JO=new Map,apn=yjt(Xdn);function cpn(t,n,s){const c=`${t}${vjt}${rUe(n)}`,d=JO.get(c);if(d)return d;const m=apn(()=>spn(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 lpn(t,n){return t===n||t===""||n===""||t.startsWith(`${n}/`)||n.startsWith(`${t}/`)}function Zwt(t){if(t===void 0){JO.clear();return}const n=rUe(t);for(const s of[...JO.keys()]){const c=s.slice(s.indexOf(vjt)+1);lpn(c,n)&&JO.delete(s)}}function Mje(t,n="$"){return typeof t=="string"?[{path:n,value:t}]:Array.isArray(t)?t.flatMap((s,c)=>Mje(s,`${n}[${c}]`)):!t||typeof t!="object"?[]:Object.entries(t).flatMap(([s,c])=>Mje(c,`${n}.${s}`))}function upn(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 fpn(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=upn(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 Mje(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 bjt(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 bjt(t,m)):/\.json$|\.gltf$/i.test(m)?c.push({path:m,text:await t.read(m)}):c.push({path:m})}return c}async function dpn(t,n){return fpn({assetPath:n,files:await bjt(t)})}function g_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 kOe(t,n){for(const s of n)if(await t.exists(s))throw new Error(`An asset already exists at ${s}.`)}async function ppn(t,n){const s=v$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 kOe(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 kOe(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&&g_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)g_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&&g_e({type:"delete",paths:c}),d}case"import":{const c=t.files.map(m=>({path:K4(m.path),data:m.bytes}));await kOe(n.backend,c.map(m=>m.path));const d=await s.mutate(c,{label:`Import ${c.length} asset${c.length===1?"":"s"}`});return d&&g_e({type:"change",paths:c.map(m=>m.path)}),d}}}const _pn=320,mpn=180,hpn="document-preview-v4",gZ=new Map,gpn=new VPt(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 YZ=null,Qwt,AOe=null;const WY=new Set;async function Sjt(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 Sjt(d.path)):c.push(`${d.path}:${d.size??0}:${d.mtime??0}`);return c}async function ypn(){const t=wf()?.rootPath;return Qwt!==t&&(Qwt=t,YZ=null),YZ??=Promise.all([FRt([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 bMe(s)??""}`))),Sjt("")]).then(([n,s])=>xjt([...n,...s].sort().join(`
|
|
1404
1404
|
`))),YZ}function vpn(t){return WY.add(t),AOe??=Ag.watch(n=>{if(n.path===PB){zPt();for(const s of WY)s();return}if(!(!/^(src|public|\.storybook)\//.test(n.path)&&n.path!==xR&&n.path!=="volter.adapter.ts")){YZ=null;for(const s of WY)s()}}),()=>{WY.delete(t),WY.size===0&&(AOe?.(),AOe=null,YZ=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=gpn.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 xjt(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 Spn(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 eTt(t,n="image/png"){const s=new Uint8Array(t.byteLength);return s.set(t),URL.createObjectURL(new Blob([s.buffer],{type:n}))}async function xpn(t){const n=await y$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 wpn(t,n,s,c){const d=wf()?.rootPath??"no-project",m=await xpn(t),g=JSON.stringify({projectId:d,documentId:t,recipe:hpn,revision:n.revision(),dependencies:await ypn(),camera:m});c.throwIfAborted();const S=await xjt(g),k=`.volter/cache/document-previews/${S}.png`;if(s===0&&await Ag.exists(k))return eTt(await Ag.readBytes(k));const A=await bpn(S,c,()=>n.capture({width:_pn,height:mpn,...m?{camera:m}:{}}));c.throwIfAborted();const F=Spn(A);return await Ag.write(k,F.bytes),eTt(F.bytes,F.mime)}function Tpn({documentId:t,source:n,previewRevision:s}){const[c,d]=Ze.useState(null),[m,g]=Ze.useState(null),[S,k]=Ze.useState(0),[A,F]=Ze.useState(0),[D,J]=Ze.useState(!0),[$,G]=Ze.useState(!1),se=Ze.useRef(null),pe=Ze.useRef(null),ue=Ze.useRef(null),Ce=Ze.useRef({previewRevision:s,retry:A});return Ze.useEffect(()=>{let De=null;const Pe=()=>{pe.current?.abort(),J(!0),De&&clearTimeout(De),De=setTimeout(()=>k(Te=>Te+1),750)},be=n.subscribe(Pe),X=vpn(Pe);return()=>{De&&clearTimeout(De),be(),X()}},[n]),Ze.useEffect(()=>()=>{ue.current?.startsWith("blob:")&&URL.revokeObjectURL(ue.current)},[]),Ze.useEffect(()=>{const De=se.current;if(!De)return;const Pe=new IntersectionObserver(([be])=>G(be?.isIntersecting??!1));return Pe.observe(De),()=>Pe.disconnect()},[]),Ze.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),wpn(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 wjt(t,n){return Y0e(t,n.path)}function Cpn({root:t,item:n}){const[s,c]=Ze.useState(!1);return s?q.jsx(vD,{kind:"image",size:14}):q.jsx("img",{src:wjt(t,n),alt:n.name,loading:"lazy",onError:()=>c(!0)})}function Epn({root:t,item:n}){const s=C9t(wjt(t,n),Din);return s.failed?q.jsx(vD,{kind:"model",size:14}):s.src?q.jsx("img",{src:s.src,alt:n.name,"data-fit":"contain",onError:s.fromManifest?s.rejectManifest:void 0}):null}function kpn({root:t,item:n}){return ig(n.name).editor==="environment"?q.jsx(wR,{kind:"image",name:n.name,variant:"cell"}):n.kind==="image"?q.jsx(Cpn,{root:t,item:n}):n.kind==="model"?q.jsx(Epn,{root:t,item:n}):q.jsx(wR,{kind:n.kind,name:n.name,variant:"cell"})}function Apn({root:t,folderPath:n,revision:s}){const[c,d]=Ze.useState(null);if(Ze.useEffect(()=>{d(null)},[t,n]),Ze.useEffect(()=>{let g=!1;return cpn(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:FOe,className:"volter-folder-preview__empty-glyph"}),q.jsx("span",{className:"volter-folder-preview__empty-caption",children:"Empty"})]})});const m=c.scannedAll?`${c.totalAssets}`:`${c.totalAssets}+`;return c.items.length===0?q.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview-plain","aria-hidden":"true",children:[q.jsx("div",{className:"volter-folder-preview__fallback",children:q.jsx(vD,{kind:"folder"})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]}):q.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview","aria-hidden":"true",children:[q.jsx("div",{className:"volter-folder-preview__grid","data-count":c.items.length,children:c.items.map(g=>q.jsx("div",{className:"volter-folder-preview__cell",children:q.jsx(kpn,{root:t,item:g})},g.path))}),q.jsx("span",{className:"volter-folder-preview__chip",children:q.jsx(dc,{icon:uee})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]})}const Tjt="contentBrowser";function jje(t){return t.type==="directory"?"folder":ig(t.name).kind}function Dpn(t,n,s){return Y0e(t,n?`${n}/${s}`:s)}function Ppn(t,n,s){return n?`/${n}/${s}`:`/${s}`}function Ipn(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Lje(t){const n=ig(t);return n.importable?n.runtimeReady?"healthy":"source-only":"unsupported"}const Npn=640,tTt={scope:"content",root:"public",currentPath:"",viewMode:"grid",sort:"relevance",filter:"all",density:96,expanded:["public"],treeVisibility:"auto",facets:["component"]};function Opn(){try{const t=vve(Tjt)??{},n=t.viewMode,s=t.treeVisibility,c=t.scope,d=t.root;return{...tTt,...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 tTt}}const Rpn={listAssets:K0e,listProjectComponents:ORt},DOe="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.",Fpn=new Set(["component","scene","canvas","model","image","video","audio","other"]);function Mpn(t){const n=t.charAt(0).toUpperCase()+t.slice(1);return n.endsWith("s")?n:`${n}s`}async function rTt(t,n){if(!n&&e_()!==t)throw new Error("Open this scene as the active document before using its current view.");const s=o2(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 Osn().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 jpn(t){return t.component.surface==="three"?"3d":t.component.surface==="canvas"?"2d":"ui"}function Lpn(t){const n={"3d":"3D","2d":"2D",ui:"UI"};return["3d","2d","ui"].flatMap(s=>{const c=t.filter(d=>d.source==="component"&&jpn(d)===s);return c.length>0?[{id:`prefabs-${s}`,label:n[s],headingLevel:"category",entries:c}]:[]})}function Bpn(t,n,s){return n==="files"?[{id:"files",label:null,headingLevel:null,entries:[...t]}]:s.length===1&&s[0]==="component"?Lpn(t):t.length>0?[{id:"content",label:null,headingLevel:null,entries:[...t]}]:[]}function Cjt(t){return t.source==="available"?t.available.category:t.source==="component"?t.component.contentKind??"component":t.source==="document"?t.document.kind:F9t(t.name)}function $pn(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 qpn(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(Dpn(t.root,d,s.name),k)}}function Ejt(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":Ipn(t.entry.size)}function zpn(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=Ejt(t);return n?`${t.name}
|
|
1408
1408
|
${n}`:t.name}function Vpn(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 nTt(t){return t.source==="asset"?fon({path:t.path,root:t.root,entry:t.entry}):t.source==="available"||t.source==="document"?10:don(t.component)-100}function Upn(t,n){const s=nTt(t),c=nTt(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 iTt(t,n){return t===void 0?n===void 0?0:1:n===void 0?-1:n-t}function Jpn(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 iTt(t.entry.size,n.entry.size);if(s==="modified"&&t.entry.modifiedAt!==n.entry.modifiedAt)return iTt(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=Lje(t.name).localeCompare(Lje(n.name));if(c!==0)return c}return HB(t,n)}function Wpn(t,n,s){return s==="relevance"?Upn(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):Jpn(t,n,s)}function Hpn(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=Cjt(t);return n.facets.includes(s)}return n.scope==="content"||Vpn(t,n.filter,n.shownPath)}const Gpn={width:"100%",minWidth:0,padding:0,textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:3},Kpn={width:"100%",minWidth:0,minHeight:28,padding:"3px 6px",textAlign:"left",display:"flex",flexDirection:"row",alignItems:"center",gap:7};function Xpn(t){const n=new Map;if(!t.assetSubject)return n;const s=t.assetSubject.entries?.()??S3r(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 Ypn=()=>()=>{},Zpn=()=>0;function Qpn({sheetUrl:t,frame:n}){return q.jsx(A9t,{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 e_n({item:t,kind:n,assetUrl:s,grid:c,folderPath:d,previewRevision:m}){const g=s;if(n==="folder")return c?q.jsx(Apn,{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(Iin,{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(Tpn,{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(Qpn,{sheetUrl:`/${t.spritesheet.sheetPath}`,frame:t.spritesheet}):q.jsx("img",{src:g,alt:t.name,style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:sQ.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:sQ.sm}}):n==="model"||T9t(s)?q.jsx(E9t,{url:s}):["prefab","json"].includes(n)?q.jsx(wR,{kind:n,name:t.name}):q.jsx(vD,{kind:n})}function t_n({item:t,selected:n,onDragStart:s,onSelect:c,onOpen:d,onContextMenu:m,viewMode:g,previewRevision:S,showPath:k}){const A=$pn(t),F=t.source==="asset"?t.entry:null,D=F?.type==="file"?ig(F.name):null,J=t.source==="asset"?Y0e(t.root,t.path):"",$=t.path,G=zpn(t),se=F?F.type==="directory"||D?.placeable?D?.placeable?"grab":"pointer":"default":"pointer",pe=Ejt(t),ue=t.source==="component"?t.path:t.source==="asset"?Dge(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&&Tin(J)},onPointerLeave:()=>{A==="audio"&&J&&Cin(J)},onDragStart:Pe=>s(Pe,t),onDragEnd:u3r,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?Gpn:Kpn,borderRadius:sQ.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:sQ.sm,pointerEvents:"none",position:"relative"},children:[q.jsx(e_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 r_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:Te,generationTools:$e,onGenerate:bt}){const It=Ze.useRef(null),Wt=Ze.useRef(!0),zt=Ze.useRef(null),[ft,tr]=Ze.useState(!1),Qt=c?c.split("/"):[],Tt=WO(c),vn=d===nA?"References":"Files",Yr=()=>{se(""),G(!1)};return Ze.useEffect(()=>{if(!ft)return;const en=ii=>{It.current?.contains(ii.target)||tr(!1)};return document.addEventListener("pointerdown",en),()=>document.removeEventListener("pointerdown",en)},[ft]),Ze.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(wht,{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:H0r})})}),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:kTt})})}),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:HTt})})}),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:M0r})})}),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(wht,{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=>!Fpn.has(en)).sort().map(en=>[en,Mpn(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:It,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:n0r})})}),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"}),$e.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),Te()},children:"Refresh"})]})]})]})]})}function n_n(t){const[n,s]=Ze.useState(new Map);Ze.useEffect(()=>{s(new Map)},[t.revision]),Ze.useEffect(()=>{for(const d of t.expanded){if(n.has(d))continue;const m=LRt.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:ATt,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:uee}),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 i_n(t){const n=Ze.useRef(null),[s,c]=Ze.useState(t),[d,m]=Ze.useState(!0);Ze.useLayoutEffect(()=>{const k=n.current;if(!k)return;const A=D=>{D>0&&m(D>=Npn)};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=Ze.useCallback(()=>{c(g?"hidden":"shown")},[g]);return{browserRef:n,treeVisibility:s,treeVisible:g,toggleTreeVisibility:S}}function o_n({services:t=Rpn}){const n=Yv(),s=typeof n.subscribe=="function"?n.subscribe:Ypn,c=typeof n.getSnapshot=="function"?n.getSnapshot:Zpn,d=typeof n.getShellSnapshot=="function"?n.getShellSnapshot:c,m=Ze.useSyncExternalStore(s,d,d),g=Ze.useSyncExternalStore(Cee,AD,AD),S=Ze.useSyncExternalStore(i2,K1,K1),k=Ze.useRef(n);k.current=n;const A=J9t(),F=Ze.useSyncExternalStore(l2,rA,rA),D=Ze.useSyncExternalStore(g9t,qge,qge),J=F.filter(pr=>pr.point==="workspace.document"&&pr.tool?.generation?.role==="submit"),$=Ze.useMemo(Opn,[]),[G,se]=Ze.useState($.root),[pe,ue]=Ze.useState($.scope),[Ce,De]=Ze.useState($.facets),[Pe,be]=Ze.useState($.currentPath),[X,Te]=Ze.useState($.viewMode),[$e,bt]=Ze.useState($.scope==="content"?"relevance":"name"),[It,Wt]=Ze.useState("all"),[zt,ft]=Ze.useState($.density),{browserRef:tr,treeVisibility:Qt,treeVisible:Tt,toggleTreeVisibility:vn}=i_n($.treeVisibility),[Yr,en]=Ze.useState(!1),[ii,No]=Ze.useState({path:$.currentPath,entries:[]}),[gn,En]=Ze.useState([]),[cs,On]=Ze.useState([]),ji=Ze.useSyncExternalStore(utn,Q0e),Ja=Ze.useSyncExternalStore(OC,u0,u0),[_a,Pn]=Ze.useState(!1),[js,fa]=Ze.useState([]),[Nt,Bc]=Ze.useState(new Set($.expanded)),[Ni,Dc]=Ze.useState(0),[vc,Tf]=Ze.useState(0),[Ip,Au]=Ze.useState(""),[dl,bu]=Ze.useState(new Set),[Al,Ku]=Ze.useState(null),[pl,gs]=Ze.useState(null),[Xu,$r]=Ze.useState(""),Sl=Ze.useCallback(pr=>{$r(pr.initial),gs(pr)},[]),[Rl,mi]=Ze.useState(!1),[tu,Wc]=Ze.useState(null),[Ao,ia]=Ze.useState(null),Du=Ze.useRef(null),gp=Ze.useRef(new Map),Id=Ze.useRef("");Ze.useEffect(()=>{bve(Tjt,{scope:pe,root:G,facets:Ce,currentPath:Pe,viewMode:X,sort:$e,filter:It,density:zt,expanded:[...Nt],treeVisibility:Qt})},[Pe,G,zt,Nt,Ce,It,pe,$e,Qt,X]);const Qs=Ze.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]);Ze.useEffect(()=>{Qs(G,Pe)},[G,Pe,Qs]);const Pu=Ze.useCallback(async()=>{Pn(!0);try{const[pr,Ur]=await Promise.all([R9t(t.listAssets),t.listProjectComponents()]),Ei=await lon(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]);Ze.useEffect(()=>{pe==="content"&&Pu()},[Pu,pe]);const Ls=Ze.useCallback((pr,Ur)=>{se(pr),be(Ur),bu(new Set),Wc(null),oD(),Au(""),en(!1)},[]),Ff=Ze.useCallback(pr=>{ue(pr),bt(pr==="content"?"relevance":"name"),Wt("all"),bu(new Set),Wc(null),oD()},[]),Hs=Ze.useCallback(pr=>{De([pr])},[]),Ds=Ze.useCallback(pr=>{en(pr),pr||De(Ur=>Ur.length>0?Ur:["component"])},[]),Oc=ii.path,Ye=Ze.useMemo(()=>Xpn(Cm(k.current).adapter),[g,m,S]),jt=Ze.useMemo(()=>Cm(k.current).surface,[g,m,S]),mt=Ze.useMemo(()=>{if(pe==="content"){const pr=new Map(cs.map(Li=>[`${Li.path}:${Li.name}`,Li])),Ur=_in().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=Ye.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"?Hze(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,Ye,cs,gn,D,G,ii,pe]),xt=pe==="content"?js[0]??null:ii.failure??null,xr=Ze.useMemo(()=>{const pr=Ip.toLowerCase(),Ur=mt.filter(Li=>Hpn(Li,{query:pr,scope:pe,facets:Ce,filter:It,shownPath:Oc})),Ei=pe==="files"&&$e==="relevance"?"name":$e;return[...Ur].sort((Li,uc)=>Wpn(Li,uc,Ei))},[mt,Ce,Oc,It,pe,Ip,$e]),Vn=Ze.useMemo(()=>{const pr=new Set;for(const Ur of mt)pr.add(Cjt(Ur));return pr},[mt]),eo=Ze.useMemo(()=>Bpn(xr,pe,Ce),[Ce,xr,pe]),bi=Ze.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. ${DOe}`);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:Ppn(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=Ze.useCallback((pr,Ur)=>{let Ei=new Set;if(Ur.shiftKey&&tu){const Np=xr.findIndex(Rh=>Rh.key===tu),ls=xr.findIndex(Rh=>Rh.key===pr.key);if(Np>=0&&ls>=0){const[Rh,Gi]=Np<ls?[Np,ls]:[ls,Np];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=Y0e(pr.root,pr.path);if(BI({path:Nd,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Lje(Li.name),selectionCount:Ei.size,...pr.path.startsWith("asset-library/local")?{sourcePath:"Asset Library provenance metadata"}:{}}),pr.root!=="public")return;const Lo=pr.path;dpn(gR(),Lo).then(Np=>{const ls=Nd;J0e()?.path===ls&&BI({path:ls,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Np.health.status==="healthy"?"healthy":uc.runtimeReady?"unsupported":"source-only",healthCodes:Np.health.codes,dependencies:Np.dependencies,references:Np.references,selectionCount:Ei.size})}).catch(()=>{})},[xr,dl,tu]),ic=Ze.useCallback(pr=>{if(pr.source==="component"){if(pr.authoringAsset){nQr(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=TFt(pr.document.id);Ur.ok||ea.error(Ur.error,"scene");return}ID(pr.document)||sN(`/${pr.path}`,SFt(pr.document));return}qpn(pr,{currentRoot:G,currentPath:pr.source==="asset"?WO(pr.path):"",navigate:Ls,openAsset:(Ur,Ei)=>sN(Ur,Ei)})},[G,Ls,n]),Ps=Ze.useCallback(pr=>{if(Dc(Ur=>Ur+1),gp.current.clear(),pr?.length)for(const Ur of pr)Zwt(Ur);else Zwt();Tf(Ur=>Ur+1),Qs(G,Pe),pe==="content"&&Pu()},[G,Pe,Pu,Qs,pe]);Ze.useEffect(()=>{const pr=Ur=>Ps(Ur.detail?.paths);return window.addEventListener("editor:assets-changed",pr),()=>window.removeEventListener("editor:assets-changed",pr)},[Ps]),Ze.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=Ze.useMemo(()=>mt.filter(pr=>dl.has(pr.key)),[mt,dl]),zi=Ze.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"&&pr.root==="public"?[pr.path]:[]),[Iu]),Jn=Ze.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"?[Dge(pr.root,pr.path)]:[]),[Iu]);Ze.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=Ze.useCallback(async pr=>{await ppn(pr,{backend:gR(),history:A}),gp.current.clear(),G==="public"&&await Qs(G,Pe),pe==="content"&&await Pu()},[Pe,G,Pu,Qs,A,pe]),lc=Ze.useCallback(async()=>{zi.length!==0&&Jdn("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=Ze.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=Ze.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=Ze.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=Ze.useCallback(pr=>{if(!(pr.source!=="asset"||pr.entry.type!=="file")){if(pr.root!=="public"){i0(`${pr.name} is reference material. ${DOe}`);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=Ze.useCallback(async pr=>{if(pr.source!=="asset"||pr.entry.type!=="file")return;if(pr.root!=="public"){i0(`${pr.name} is reference material. ${DOe}`);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=Ze.useCallback(pr=>{Bc(Ur=>{const Ei=new Set(Ur);return Ei.has(pr)?Ei.delete(pr):Ei.add(pr),Ei})},[]);Ze.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]&&vMe(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(!lje(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(n_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(r_n,{availableFacets:Vn,scope:pe,facets:Ce,currentPath:Pe,currentRoot:G,searchOpen:Yr,searchQuery:Ip,viewMode:X,density:zt,treeVisible:Tt,onScopeChange:Ff,onFacetToggle:Hs,onFacetsClear:()=>De([]),onNavigate:Ls,onSearchOpenChange:Ds,onSearchQueryChange:Au,onViewModeChange:Te,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(t_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(OTr,{compact:!0,style:{gridColumn:"1 / -1"},icon:q.jsx(dc,{icon:xt?Kk.status.warning:Ip?Kk.action.search:Kk.content.folder}),title:_a?"Finding project content…":xt?"Listing failed":Ip?"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}`:Ip?"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(rhe,{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),rTt(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),rTt(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(rhe,{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"}),Ome("asset").map(pr=>{const Ur=Ao.item.source==="asset"&&Ao.item.entry.type==="file",Ei=Ao.item.source==="asset"?{assetPath:Dge(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]&&vMe(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 s_n={agent:()=>q.jsx(Tme,{slot:"panel:agent"}),"project-work":()=>q.jsx(Tme,{slot:"panel:project-work"}),hierarchy:hjt,assets:({dependencies:t})=>q.jsx(o_n,{services:t?.assets}),"asset-library":()=>q.jsx(Tme,{slot:"panel:asset-library"}),inspector:WVe};class a_n extends Ze.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){ea.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 c_n=SVe.map(t=>{const n=s_n[t.kind],s=c=>q.jsx(a_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function l_n(t){return c_n.find(n=>n.kind===t)}function u_n({kind:t,dependencies:n}){const{Content:s}=l_n(t);return q.jsx(s,{dependencies:n})}const f_n=250;function d_n(){const t=E4t(),n=p_n();return()=>{n(),t()}}function p_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of ea.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=ea.subscribe(()=>{if(s)return;const g=ea.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,f_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],Hxn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),tye=1e-9,kjt=1e5;function __n(t,n,s){const c=s.end-s.start,d=s.loop&&c>tye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+tye){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>kjt){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 m_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>tye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+tye){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>kjt){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 oTt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class h_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=oTt(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=oTt(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"?__n(c,s,this._range):m_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 y_e={start:0,end:0,fps:30},g_n=150;class Gxn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new h_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:y_e.start,end:y_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??y_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()},g_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()??y_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 Cme=new Map,Bje=new Set;function sTt(){for(const t of[...Bje])t()}function Kxn(t,n){return Cme.set(t,n),sTt(),()=>{Cme.get(t)===n&&(Cme.delete(t),sTt())}}function y_n(t){return t===null?null:Cme.get(t)??null}function v_n(t){return Bje.add(t),()=>{Bje.delete(t)}}let Eme=null;function Xxn(t){return Eme=t,()=>{Eme===t&&(Eme=null)}}function Sve(){return Eme}const Ajt="__volterWorkspacePersistenceSuppressed";function Djt(){return globalThis}function Pjt(t){Djt()[Ajt]=t}function b_n(){return Djt()[Ajt]===!0}function Ijt(){return(See()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Njt={phase:"idle",flightDone:!1,gameReady:!1};function S_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 x_n(t,n){if(n==="stop")return Njt;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 S_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 w_n=450,T_n=220,Ojt=250;function C_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${w_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${T_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Ojt}ms`)}let SD=null;function E_n(t){return SD=t,typeof document<"u"&&C_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Rjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function k_n(){return Qk?.state.phase??"idle"}const kme=new Set;function Fjt(){if(kme.size===0)return;const t=[...kme];kme.clear();for(const n of t)n()}function A_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}kme.add(t)}function D_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=x_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),D_n(n,Ojt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&Sve()?.settle(),Fjt()))}function P_n(){I_n({immersive:Ijt()})}function I_n(t){if(Qk&&nUe(),!t.immersive)return;const n=Rjt();Pjt(!0);const s={state:Njt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=Sve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function N_n(t,n){(!t||!n)&&nUe()}function O_n(t){const n=Qk;n&&(n.flying&&t&&Sve()?.track(t),gB("game-ready"))}function nUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Fjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&Sve()?.end(),SD?.showChrome(!Rjt()),Pjt(!1)}}const $je=new Set;let Mjt=null;function jjt(){return wf()?.rootPath??null}function R_n(t){$je.add(t);const n=jjt();return n!==null&&Mjt===n&&t(),()=>{$je.delete(t)}}async function Yxn(){Mjt=jjt();for(const t of[...$je])await t()}function F_n(){const t=e_();if(t===null)return null;const n=cQ(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 qje=null;function M_n(t){qje=t}function aTt(){if(!qje)throw new Error("The workbench Output service is not connected.");return qje}function j_n(){X4r(e_),X3r({output:{write:(...t)=>aTt().write(...t),show:t=>aTt().show(t)},console:{log:(t,n)=>ea.log(t,n),warn:(t,n)=>ea.warn(t,n),error:(t,n)=>ea.error(t,n)},live:{register:XFt,mounted:dVe,playing:rve,runWindow:oVe,restartRequired:HFt,restart:GFt,subscribe:_Ve,version:ZFt,notifyChanged:WFt,snapshotFrame:aVe,frameCanvas:sVe,authoringRefusal:fVe,dispatch:cVe,scenes:lVe,surface:tve,coverage:uVe},viewport:{transition:{begin:P_n,ready:O_n,end:nUe,onSettled:A_n,phase:k_n}},hierarchy:{subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:SBe,reportFacet:Mrn,onSample:bnn,onCommandDispatched:OYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>Ize(n=>{n!==null&&t()}),onBeforeClose:Zrn,reportWorkerCallMeter:zsn},project:{documentTable:Ien,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:R_n},notify:t=>s$(t),systems:{inspected:Cye,subscribe:Fwr,inspectedNetworking:Bwr,subscribeNetworking:$wr,inspectedAudio:()=>qwr()??null,subscribeAudio:zwr,audioVersion:Vwr},availability:{subscribe:JVe,version:xun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Wye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:itn,acquire:ctn,release:Xze,open:iq,container:otn,setContainer:stn,releaseContainer:atn}},documents:{activeId:e_,active:()=>{const t=TC();return t?{id:t.descriptor.id,kind:t.descriptor.kind,title:t.title}:null},subscribe:i2,version:K1,context:cQ,waitForContext:u4t,contextChanged:$Cr,captureActive:t=>{const n=Ih();return n?p9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>y_n(t),subscribe:v_n},projectLocalState:{ready:lte,read:vve,write:bve,projectRootPath:()=>wf()?.rootPath??null},history:{record:XPt,setDelegate:G4r,onElement:Z4r,invalidate:Q4r,onInvalidated:eDr,changed:K4r,elements:Y4r,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?DYr(s)??kze(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=KPt(t),s=o_e(t),c=Ih()?.projectHistory?.subscribe(t),d=i2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:x4r,read:t=>Ag.read(t),readBytes:t=>Ag.readBytes(t),write:(t,n)=>Ag.write(t,n),exists:t=>Ag.exists(t),list:t=>Ag.list(t),watch:t=>Ag.watch(t)},settings:{setProvider:SEr,get:kEr,set:DEr,inspect:q4t,subscribe:t=>{const n=j4t(t),s=bee(t);return()=>{n(),s()}}},keyboard:{actions:()=>Ian().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>V4t().map(({id:t,title:n})=>({id:t,title:n,chords:K4t(t)})),activeKeymap:dR,invoke:t=>NVe(t),subscribe:t=>{const n=Oan(t),s=Uye(t),c=o_e(t),d=Ih()?.subscribe(t),m=i2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Nan()+K1(),stage:()=>{const t=Ih();return t?{surface:Pfn(t).surface,mode:F_n()}:{surface:null,mode:null}},bindActions:$an,chordsFor:IBe,shortcutFor:t=>Vv(t)??null}})}let L_n=0,cee=null;const zje=new Set;function cTt(t){const n={generation:++L_n,promise:t,active:!0};cee=n;for(const s of zje)s(n);return zje.clear(),n}function B_n(){const t=cee;return t?.active?Promise.resolve(t):new Promise(n=>zje.add(n))}async function iUe(){for(;;){const t=await B_n();if(await t.promise,cee===t&&t.active)return}}const Ljt=16,$_n=300,q_n=1e4,Bjt="workspace";function z_n(){const t=vve(Bjt);return!t||t.version!==Ljt?null:t}function V_n(t){bve(Bjt,t)}function U_n(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=gAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function J_n(){const t={};let n=!1;for(const s of sDt()){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 W_n(){const t=[];for(const s of l0()){const c=U_n(s);c&&t.push(c)}const n=J_n();return{version:Ljt,workspace:zS(),documents:{open:t,activeId:e_(),...n?{kinds:n}:{}}}}async function H_n(t,n,s){for(const c of oDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!HQ(),store:t}))return!0}catch{}return!1}function lTt(t){if(!t)return!1;const n=!HQ();return SN(t,n)?!0:etn.has(t)?(bFt(t),n&&uTr(t),!0):n&&X0(t)}function G_n(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of sDt())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 K_n(t){const n=new Set;for(const s of t)for(const c of oDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function X_n(t,n){const s=n?.documents;if(G_n(t,s),!s||s.open.length===0){lTt(s?.activeId??null);return}await K_n(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&yAr(c.id,d),await H_n(t,c,s.activeId)}lTt(s.activeId)}function $jt(t){if(!lte()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=cTt(Ce);return Promise.all([cte(),Wze()]).then(()=>{if(se){ue();return}pe=$jt(t),De.active=!1,iUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=z_n();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?s2(n.workspace):(n?.workspace&&bkr(n.workspace),s2(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")&&V_n(W_n())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,$_n)},S=()=>m();let k=null;const A=typeof window<"u"&&QTt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():mN().catch(()=>{}),D=F.then(()=>A?void 0:X_n(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},q_n))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(i2(g)),d.push(xAr(g)),window.addEventListener("pagehide",S))}),G=cTt($);return()=>{s=!0,G.active=!1,cee===G&&(cee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function Y_n(t){Ze.useEffect(()=>{const n=QTt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return iUe().then(()=>{if(d())return Bge(t,n,{updateUrl:!1,origin:"link"})}).catch(m=>{ea.error(`Could not restore shared editor view: ${m instanceof Error?m.message:String(m)}`,"editor")}),()=>{s=!0}},[t])}const uTt="volter:stale-chunk-reload";function Z_n(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(uTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(uTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function Q_n(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 Zxn(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)){ea.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 Qxn extends Error{name="StoryMediumMismatch"}function ewn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Ame=new Map;function twn(t,n){return Ame.set(t,n),()=>{Ame.get(t)===n&&Ame.delete(t)}}function emn(t){return Ame.get(t)??null}function tmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${rmn(n[c])}`);return`${t}|${s.join("&")}`}function rmn(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 rye=new Map,v_e=new Map,fTt=new WeakMap;let dTt=Promise.resolve(),pTt=null,nmn=1;function imn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function omn(){await Promise.race([Nye(),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 smn(){return pTt??=omn(),pTt}function amn(t){const n=fTt.get(t);if(n!==void 0)return n;const s=nmn++;return fTt.set(t,s),s}function cmn(t,n,s,c){const d=rye.get(t);if(d)return Promise.resolve(d);const m=v_e.get(t);if(m)return m;const g=dTt.then(async()=>{await smn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=emn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return dTt=g.then(()=>{},()=>{}),v_e.set(t,g),g.then(S=>{rye.set(t,S),v_e.delete(t)},()=>v_e.delete(t)),g}function lmn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${tmn(n.id,n.args)}:${amn(m)}:${s}:${c}x${d}`,[S,k]=Ze.useState(()=>rye.get(g)),[A,F]=Ze.useState(!1);return Ze.useEffect(()=>{let D=!1;if(F(!1),k(rye.get(g)),!!imn())return cmn(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 xve="story:three",wve="story:isolated",umn="story:docs";function fmn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function dmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(lmn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const pmn="story",_mn={id:pmn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!fmn(c,t.surface))continue;const d=gRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:V0e,Thumbnail:dmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?xve:wve,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function _Tt(t){return cYr(t.name,t.sourcePath)}const mmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:_Tt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=_Tt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(xve,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(wve,s.store,{modulePath:c.modulePath,storyName:c.name});return}ea.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 hmn(){let t=0,n=!1;const s=S=>{const k=++t;tYr(),Nye().then(()=>{if(!(n||k!==t))return dYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=gFt(),m=IC(()=>s()),g=nen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const qjt="story",POe=new Set,IOe=new Set;function gmn(t){const n=fRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function NOe(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??gmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function ymn(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(umn,t,c);const d=wze({modulePath:s.modulePath,regions:xze()});return d.medium===void 0?(eYr(s.modulePath,d.reason),null):CD(d.medium==="three"?xve:wve,t,c)}function mTt(t){ea.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function vmn(){return kN({id:qjt,owner:"./story-opener",open:(t,n)=>{const s=NOe(n);return s?ymn(t,n,s):(n.modulePath?POe.add(n.modulePath):n.storyId!==void 0&&(IOe.add(n.storyId),oYr()&&mTt(n.storyId)),null)},settle:async()=>{await CDr();const t=[...POe],n=[...IOe];if(POe.clear(),IOe.clear(),await Promise.all(t.map(s=>lYr(wf(),s))),n.length!==0){await sYr();for(const s of n)NOe({storyId:s})||mTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=NOe(n);if(!(!s||wze({modulePath:s.modulePath,regions:xze()}).medium!=="three")&&!await CC(()=>o2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const bmn={actions:()=>{if(!Zht(wve)&&!Zht(xve))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=>V0e(t)};function Smn(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 xmn(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 wmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Tmn(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 kZr("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=Smn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=xmn(nB,t.pose);if(typeof k=="string")return{ok:!1,error:k};const{captureProjectStoryVariants:A}=await fo(async()=>{const{captureProjectStoryVariants:D}=await import("./story-capture-CKMQHZc4.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([266,267,1,2,3,4,20,21,231,210,268,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 Cmn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Tmn}};function Emn(){const t=din(_mn),n=Q_n(mmn),s=vmn(),c=aCt(bmn),d=lCt(wmn,Cmn),m=hmn(),g=V0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const kmn=[["descriptionForeground","--volter-content-dim"],["disabledForeground","--volter-content-placeholder"],["errorForeground","--volter-danger"],["focusBorder","--volter-accent"],["selection.background","--volter-accent","99"],["sash.hoverBorder","--volter-accent"],["menubar.selectionBackground","--volter-accent"],["menubar.selectionForeground","--volter-content-on-accent"],["menu.selectionBackground","--volter-accent"],["menu.selectionForeground","--volter-content-on-accent"],["editorGroupHeader.tabsBackground","--volter-surface-chrome"],["editorGroup.dropBackground","--volter-accent","66"],["tab.inactiveBackground","--volter-surface-chrome"],["tab.inactiveForeground","--volter-content-dim"],["editor.background","--volter-surface-chrome"],["editorLineNumber.foreground","--volter-content-placeholder"],["editor.selectionBackground","--volter-accent","99"],["editorGutter.background","--volter-surface-chrome"],["panelTitle.inactiveForeground","--volter-content-dim"],["list.activeSelectionBackground","--volter-accent"],["list.activeSelectionForeground","--volter-content-on-accent"],["list.focusOutline","--volter-accent"],["list.dropBackground","--volter-accent","66"],["button.background","--volter-accent"],["button.foreground","--volter-content-on-accent"],["checkbox.selectBackground","--volter-accent"],["input.background","--volter-surface-chrome"],["input.placeholderForeground","--volter-content-placeholder"],["inputOption.activeBackground","--volter-accent"],["inputOption.activeForeground","--volter-content-on-accent"],["inputValidation.errorBorder","--volter-danger"],["badge.background","--volter-accent"],["badge.foreground","--volter-content-on-accent"],["progressBar.background","--volter-accent"],["quickInputList.focusBackground","--volter-accent"],["quickInputList.focusForeground","--volter-content-on-accent"],["notificationsErrorIcon.foreground","--volter-danger"],["notificationsWarningIcon.foreground","--volter-warn"],["notificationsInfoIcon.foreground","--volter-accent"],["terminal.background","--volter-surface-chrome"],["commandCenter.background","--volter-surface-chrome"],["volter.view.background","--volter-surface-panel"],["foreground","--volter-content-primary"],["icon.foreground","--volter-content-muted"],["widget.border","--volter-boundary-default"],["titleBar.activeBackground","--volter-surface-shell"],["titleBar.inactiveBackground","--volter-surface-shell"],["titleBar.activeForeground","--volter-content-muted"],["titleBar.border","--volter-surface-shell"],["activityBar.background","--volter-surface-shell"],["activityBar.foreground","--volter-content-primary"],["activityBar.inactiveForeground","--volter-content-dim"],["activityBar.border","--volter-surface-shell"],["activityBar.activeBorder","--volter-accent"],["statusBar.background","--volter-surface-shell"],["statusBar.foreground","--volter-content-muted"],["statusBar.border","--volter-surface-shell"],["sideBar.background","--volter-surface-panel"],["sideBar.foreground","--volter-content-primary"],["sideBar.border","--volter-boundary-default"],["sideBarSectionHeader.background","--volter-surface-chrome"],["panel.background","--volter-surface-panel"],["panel.border","--volter-boundary-default"],["editorGroup.border","--volter-boundary-default"],["editorGroupHeader.tabsBorder","--volter-boundary-default"],["tab.activeBackground","--volter-surface-panel"],["tab.activeForeground","--volter-content-primary"],["tab.border","--volter-boundary-default"],["menu.background","--volter-widget-menu"],["menu.foreground","--volter-content-menu"],["menu.border","--volter-boundary-default"],["dropdown.background","--volter-widget-menu"],["dropdown.border","--volter-boundary-default"],["input.foreground","--volter-content-primary"],["input.border","--volter-boundary-default"]],Amn=[["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 hTt(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 Dmn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of kmn){const g=hTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Amn){const m=hTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let xm=null,zjt=0;const Vje=new Set;function Pmn(t){return Vje.add(t),()=>Vje.delete(t)}function gTt(){return zjt}const OOe=new Map;function Vjt(t,n){OOe.get(t)?.disconnect(),OOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;zAr(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),OOe.set(t,c)}function Imn(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&&Ujt(t,n),Vjt(t,n),zjt+=1;for(const s of Vje)s()}}function Ujt(t,n){n.dataset.volterPart=t}const HO=new Map;let Jjt=0;const Uje=new Set,Wjt=new Set;let yTt=!1;function vTt(){for(const t of l0())Wjt.add(t.descriptor.id)}function Nmn(t){yTt||(yTt=!0,i2(vTt)),vTt(),!(!t||Wjt.has(t))&&(mtn(t)||bFt(t,!1))}function Omn(t,n){if(n){if(!HO.delete(t.id))return}else{HO.has(t.id)||Nmn(t.documentId);const s=HO.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;HO.set(t.id,{...t})}Jjt+=1;for(const s of[...Uje])s()}function Rmn(t){return Uje.add(t),()=>{Uje.delete(t)}}function bTt(){return Jjt}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 Fmn({children:t}){return q.jsx(q.Fragment,{children:t})}function Mmn(){return xm?MS.createPortal(q.jsx(GO,{center:!0,children:q.jsx(qdn,{})}),xm.header):null}function jmn(){return null}function Lmn(){const t=Ze.useRef(null);return Ze.useEffect(()=>{const n=t.current;if(n)return cjt(n),()=>Yun(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(hjt,{})})]})}const Dme=new Map,Jje=new Set;let Wje=0;function Bmn(t,n){if(n){if(Dme.get(t)===n)return;n.dataset.volterUtility=t,Dme.set(t,n)}else if(!Dme.delete(t))return;Wje++;for(const s of Jje)s()}const Pme=new Map,Hje=new Set;let Gje=0;function $mn(t,n){if(n){if(Pme.get(t)===n)return;Pme.set(t,n)}else if(!Pme.delete(t))return;Gje++;for(const s of Hje)s()}function qmn(){return Ze.useSyncExternalStore(S3t,uht,uht),Ze.useSyncExternalStore(t=>(Hje.add(t),()=>Hje.delete(t)),()=>Gje,()=>Gje),q.jsx(q.Fragment,{children:[...uRe("left"),...uRe("right")].map(t=>{const n=Pme.get(t.id);if(!n)return null;const s=t.Content;return q.jsx(Ze.Fragment,{children:MS.createPortal(q.jsx(s,{}),n)},t.id)})})}function zmn(){return Ze.useSyncExternalStore(Jye,hhe,hhe),Ze.useSyncExternalStore(t=>(Jje.add(t),()=>Jje.delete(t)),()=>Wje,()=>Wje),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Dme.get(t.id);return n?q.jsx(Ze.Fragment,{children:MS.createPortal(q.jsx(GO,{children:q.jsx(Udn,{utility:t})}),n)},t.id):null})})}function Vmn({descriptor:t,viewId:n,slot:s,parking:c,visible:d,inspector:m}){const[g]=Ze.useState(()=>document.createElement("div"));return Ze.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]),Ze.useLayoutEffect(()=>((s??c).appendChild(g),()=>g.remove()),[g,s,c]),MS.createPortal(q.jsxs(GO,{children:[q.jsx(NMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Iun,{})]}),g)}let Hjt=!0;function Umn({arrangement:t,immersivePlay:n}){const s=Yv();Y_n(s);const c=$Ve(s);Ze.useLayoutEffect(()=>{Hjt=c.column},[c.column]);const d=HO.get(vRe()??"")?.element??xm?.center;Ze.useLayoutEffect(()=>{if(!d)return;const F=()=>xwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),xwt(null)}},[d]),Ze.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ze.useSyncExternalStore(i2,K1,K1),Ze.useSyncExternalStore(Rmn,bTt,bTt),Ze.useSyncExternalStore(Pmn,gTt,gTt),Ze.useLayoutEffect(()=>{const F=GEr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&s2(t.id),wkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ze.useSyncExternalStore(bee,NR).play?.keepPanelsVisible;if(Ze.useEffect(()=>{N_n(m,Ijt())},[m,n,g]),Ze.useEffect(()=>$jt(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(Vmn,{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&&MS.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),xm.center),xm.outliner&&MS.createPortal(q.jsx(GO,{children:q.jsx(Lmn,{})}),xm.outliner),xm.properties&&MS.createPortal(q.jsx(GO,{children:c.column?q.jsx(WVe,{}):q.jsx(Tun,{surface:c.surface})}),xm.properties),xm.content&&MS.createPortal(q.jsx(GO,{children:q.jsx(u_n,{kind:"assets"})}),xm.content),q.jsx(zmn,{}),q.jsx(qmn,{})]})}async function Jmn(t,n={}){xm=t,n.workspaceStorage&&UAr(n.workspaceStorage),ZAr();for(const[De,Pe]of Object.entries(t))Pe&&Ujt(De,Pe),Vjt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",CPt({Frame:Fmn,Header:Mmn,Footer:jmn,Workspace:Umn,Document:Scn}),d_n(),Inn();const s=Iln();s&&Dln(s,Date.now())&&ea.warn(kln(s,Date.now()),"editor"),Z_n(),xDr(),j_n(),Emn(),await Promise.all([$4t(),Kkr(),GDt()]),uAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",lee()?.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),Kje.createRoot(c).render(q.jsx(Gln,{}));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:iUe,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?mkr().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=i2(De),be=hkr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&HQ()||(Pe?cTr(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)=>Omn(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:()=>[...wEr()],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",Dmn(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=zye(De),be=bDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Rnn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>Mnn(De),subscribe:De=>Fnn(De),setPaletteOpener:De=>Onn(De),setCommandExecutor:De=>jnn(De),report:d.report},D={setDelegate:De=>zCr(De?{show:Pe=>De({...Pe,source:YAr()})}:null)},J={list:()=>APt().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)=>PPt(De,Pe,be),subscribe:De=>DPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=hhe();const be=Jye(De),X=JVe(()=>{const Te=hhe();Te!==Pe&&(Pe=Te,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>Bmn(De,Pe)};let G=!0,se=null,pe=null;crn(()=>G);const ue={setActiveStaticPanel:De=>Ght(SVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(Hjt)return!1;const De=xm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),Ght("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!xm)&&(se=E_n({root:xm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=YEr({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:M_n},settings:A,status:{list:()=>["left","right"].flatMap(De=>uRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>S3t(De),offerBody:(De,Pe)=>$mn(De,Pe)},game:ue,offerPart:Imn}}function Wmn(t){const n=Object.keys(t.packages);return r0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),PDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:Jmn}}const{mountVolter:rwn}=Wmn({id:"game-editor",packages:{"@volter/editor-game":Zyr,"@volter/editor-react":Qyr,"@volter/editor-threejs":e0r,"@volter/editor-xstate":t0r,"@volter/editor-blender":Yyr},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{lSn as $,f3t as A,DB as B,d3t as C,p3t as D,u0 as E,OC as F,Gze as G,rRe as H,Y2n as I,x2n as J,Yv as K,Ih as L,$Xr as M,u3t as N,ea as O,c3t as P,Jl as Q,_3t as R,Ewr as S,q0n as T,$Ft as U,Btn as V,XLe as W,UFt as X,L_ as Y,CN as Z,fo as _,XY as a,r2n as a$,Ms as a0,dc as a1,Kk as a2,z0n as a3,vC as a4,Ngn as a5,$sn as a6,Han as a7,H2n as a8,Uze as a9,hy as aA,oq as aB,cMt as aC,N3r as aD,X2n as aE,Mxn as aF,Yyn as aG,R_e as aH,h0n as aI,pAr as aJ,_p as aK,dm as aL,Zm as aM,Yxn as aN,Q0e as aO,l0 as aP,bFt as aQ,TD as aR,$yn as aS,PCr as aT,H0e as aU,kRt as aV,Pze as aW,TSn as aX,Zf as aY,A9t as aZ,e2n as a_,MB as aa,Mwr as ab,YFt as ac,Bbn as ad,Zyn as ae,Go as af,Fgn as ag,Eye as ah,jun as ai,G0e as aj,$wr as ak,Nxn as al,V0e as am,rq as an,wze as ao,xze as ap,eYr as aq,oan as ar,l$e as as,Itn as at,cRt as au,Otn as av,wf as aw,Y0 as ax,mp as ay,E0n as az,YLe as b,_2n as b$,R4r as b0,t2n as b1,gC as b2,v$e as b3,hTr as b4,K7e as b5,ig as b6,gFt as b7,sYr as b8,Fbn as b9,fu as bA,m2n as bB,y2n as bC,v2n as bD,b2n as bE,MSt as bF,l2n as bG,g2n as bH,h2n as bI,qZr as bJ,jSt as bK,a2n as bL,jD as bM,_Zr as bN,zSt as bO,s2n as bP,$Zr as bQ,n2n as bR,f2n as bS,Hbn as bT,Gbn as bU,TZr as bV,S2n as bW,MZr as bX,EZr as bY,Zbn as bZ,Qbn as b_,pRt as ba,lRt as bb,_Rt as bc,UXr as bd,emn as be,ewn as bf,oSn as bg,fRt as bh,iYr as bi,Z0n as bj,I0n as bk,P0n as bl,E3r as bm,F0n as bn,Rhe as bo,$bn as bp,Vbn as bq,ctn as br,_3r as bs,m3r as bt,Owr as bu,qbn as bv,otn as bw,XFt as bx,ed as by,_y as bz,nRe as c,R_ as c$,c2n as c0,K0e as c1,jZr as c2,LZr as c3,ORt as c4,FRt as c5,CZr as c6,Xbn as c7,IZr as c8,Kbn as c9,jSn as cA,Uye as cB,dR as cC,myn as cD,mO as cE,Vv as cF,hyn as cG,S0r as cH,w0r as cI,nLe as cJ,uyn as cK,O3t as cL,bZ as cM,ryn as cN,n$ as cO,ghn as cP,aR as cQ,fBe as cR,Jc as cS,eLe as cT,UTt as cU,WTt as cV,ahn as cW,z0r as cX,T0n as cY,C0n as cZ,PI as c_,BZr as ca,d2n as cb,PZr as cc,Fze as cd,RRt as ce,DZr as cf,bMe as cg,kZr as ch,i2n as ci,i_e as cj,OZr as ck,qSt as cl,$St as cm,FZr as cn,bZr as co,Rze as cp,vMe as cq,NZr as cr,p2n as cs,u2n as ct,Ybn as cu,zZr as cv,o2n as cw,Xen as cx,X0 as cy,rxt as cz,l3t as d,uSr as d$,Lxn as d0,sBe as d1,Cm as d2,pfn as d3,i0 as d4,E2n as d5,TDr as d6,Mun as d7,ARe as d8,i$ as d9,i4t as dA,cLe as dB,YB as dC,Bxn as dD,$xn as dE,Cfn as dF,xAr as dG,S0n as dH,HBe as dI,cgt as dJ,g0n as dK,ihn as dL,Dvr as dM,lgt as dN,hAr as dO,dAr as dP,WBe as dQ,_Ar as dR,n0r as dS,nye as dT,jOe as dU,lyn as dV,Osn as dW,yZ as dX,nAt as dY,AR as dZ,uxr as d_,nan as da,tan as db,PVe as dc,BSn as dd,c0r as de,u0r as df,s0r as dg,Iw as dh,xTt as di,t2 as dj,Bgn as dk,ren as dl,Z2n as dm,Qen as dn,oMt as dp,l2 as dq,LAr as dr,zbn as ds,aMt as dt,fQ as du,fhn as dv,oEr as dw,LTt as dx,SZ as dy,CCr as dz,a3t as e,dhn as e$,t$ as e0,Vme as e1,tCt as e2,O0n as e3,W0 as e4,B0n as e5,D2n as e6,uSn as e7,H0n as e8,jhe as e9,Qgn as eA,Q2n as eB,DYr as eC,kze as eD,wRt as eE,s4t as eF,Zen as eG,oYr as eH,w4t as eI,A5e as eJ,Iye as eK,Con as eL,Qje as eM,phn as eN,o0r as eO,b4t as eP,Don as eQ,Mht as eR,E5e as eS,Eht as eT,c0 as eU,Uyn as eV,ian as eW,IRe as eX,hBe as eY,Hyn as eZ,MCr as e_,b4r as ea,DQr as eb,G0n as ec,c$e as ed,X0n as ee,K0n as ef,Rbn as eg,qSn as eh,$Sn as ei,$0n as ej,_Be as ek,nhe as el,cyn as em,G0 as en,byn as eo,YY as ep,Tyn as eq,T_e as er,Oyn as es,sQ as et,Rgn as eu,IC as ev,vhn as ew,OTr as ex,wSn as ey,K2n as ez,iRe as f,V9t as f$,o0n as f0,i0n as f1,TC as f2,rFe as f3,wee as f4,kN as f5,wve as f6,umn as f7,dYr as f8,ND as f9,xhn as fA,b0r as fB,Shn as fC,Ime as fD,MOe as fE,KTt as fF,_0n as fG,vyn as fH,nxn as fI,yan as fJ,KSn as fK,TR as fL,mxn as fM,XSn as fN,Vze as fO,Obn as fP,gRt as fQ,fTr as fR,Ywr as fS,LSn as fT,eSn as fU,rSn as fV,a0 as fW,tSn as fX,HQ as fY,MSn as fZ,kSn as f_,Lwr as fa,NTr as fb,w_e as fc,Yen as fd,f$e as fe,QAr as ff,Qun as fg,Fxn as fh,Rxn as fi,Oxn as fj,xve as fk,EN as fl,d0n as fm,x0n as fn,twn as fo,Qxn as fp,nSn as fq,iSn as fr,_4t as fs,Qyn as ft,lhn as fu,hhn as fv,y0n as fw,p0n as fx,qxn as fy,iPt as fz,m3t as g,rA as g$,xRt as g0,zQ as g1,wfn as g2,Oun as g3,CR as g4,VXr as g5,Mbn as g6,Rtn as g7,CDr as g8,Pg as g9,Ogn as gA,AFe as gB,a3r as gC,Y0n as gD,d0r as gE,Lbn as gF,pYr as gG,Tht as gH,zTt as gI,i2 as gJ,K1 as gK,bSn as gL,SSn as gM,Nwr as gN,Pgn as gO,vSn as gP,Dgn as gQ,ySn as gR,WFt as gS,j2n as gT,xR as gU,XQr as gV,Mrn as gW,yhn as gX,BTt as gY,PTt as gZ,RTr as g_,xSn as ga,a0r as gb,fee as gc,k2n as gd,J2n as ge,A2n as gf,Zgn as gg,U2n as gh,fN as gi,Yje as gj,oLe as gk,t4r as gl,L2n as gm,k0n as gn,V2n as go,A0n as gp,W0n as gq,Dw as gr,of as gs,hR as gt,h3r as gu,D0n as gv,hSn as gw,nPt as gx,rnn as gy,Zxn as gz,VAt as h,zyn as h$,kC as h0,tA as h1,mhn as h2,L0n as h3,iBe as h4,X0e as h5,Wbn as h6,aCt as h7,Dan as h8,bxn as h9,PTr as hA,xht as hB,Lye as hC,wTr as hD,xTr as hE,qTr as hF,fyn as hG,_yn as hH,pyn as hI,gyn as hJ,yyn as hK,Vyn as hL,ayn as hM,Byn as hN,Ym as hO,n4t as hP,oyn as hQ,syn as hR,$ye as hS,dyn as hT,mBe as hU,tyn as hV,jyn as hW,Lyn as hX,rhe as hY,Kyn as hZ,wht as h_,cYr as ha,R0n as hb,Ign as hc,m0n as hd,uBe as he,zgn as hf,Wgn as hg,Xgn as hh,R$ as hi,CD as hj,Vgn as hk,$gn as hl,qgn as hm,Hgn as hn,Wyn as ho,Jyn as hp,ITr as hq,jCr as hr,Sht as hs,hC as ht,SRe as hu,F3t as hv,nyn as hw,iyn as hx,wRe as hy,xRe as hz,Pp as i,Zje as i$,RCr as i0,Syn as i1,o4t as i2,she as i3,TCr as i4,OG as i5,X3t as i6,L3t as i7,kTr as i8,LTr as i9,JTr as iA,VTr as iB,NG as iC,Fyn as iD,Xyn as iE,SCr as iF,kCr as iG,ETr as iH,Dyn as iI,xyn as iJ,ahe as iK,Ryn as iL,C5e as iM,CTr as iN,gBe as iO,Cyn as iP,q$ as iQ,wyn as iR,kyn as iS,NSn as iT,FSn as iU,Cee as iV,AD as iW,mcn as iX,Pxn as iY,b5e as iZ,Sxn as i_,Ayn as ia,Eyn as ib,Pyn as ic,Iyn as id,qyn as ie,TTr as ig,wCr as ih,Y3t as ii,Gyn as ij,FTr as ik,Myn as il,Nyn as im,$Tr as io,C_e as ip,CRe as iq,UTr as ir,zTr as is,FCr as it,BTr as iu,yee as iv,Rye as iw,WTr as ix,Epe as iy,ERe as iz,$At as j,vxn as j$,nee as j0,Dfn as j1,Vxn as j2,ePt as j3,p3r as j4,ZLe as j5,jwr as j6,cht as j7,Awr as j8,h3t as j9,KHr as jA,YHr as jB,QHr as jC,G2n as jD,Pwr as jE,uVe as jF,onn as jG,ste as jH,Wsn as jI,Wxt as jJ,wI as jK,OFe as jL,_xn as jM,ehn as jN,ohn as jO,nhn as jP,dxn as jQ,rhn as jR,f0r as jS,pxn as jT,van as jU,txn as jV,exn as jW,Eon as jX,hxn as jY,QSn as jZ,Ean as j_,_sn as ja,z2n as jb,HI as jc,qMe as jd,Mgn as je,LRt as jf,Y0e as jg,Tye as jh,cN as ji,GLe as jj,Pye as jk,lN as jl,PAr as jm,xBe as jn,cBe as jo,Dye as jp,KLe as jq,Kye as jr,Iin as js,E9t as jt,RTt as ju,FB as jv,sN as jw,O2n as jx,Ixn as jy,A_n as jz,wwr as k,qwr as k$,USn as k0,gxn as k1,YSn as k2,GSn as k3,JSn as k4,axn as k5,HSn as k6,WSn as k7,ZSn as k8,sxn as k9,shn as kA,tLe as kB,hEr as kC,vve as kD,bve as kE,gSn as kF,AMt as kG,IMt as kH,zxt as kI,IFe as kJ,$_e as kK,NFe as kL,Run as kM,HVe as kN,xxn as kO,Ifn as kP,f0n as kQ,J0r as kR,W2n as kS,gR as kT,hDr as kU,yve as kV,U$ as kW,eA as kX,mD as kY,zwr as kZ,Vwr as k_,rxn as ka,cxn as kb,s$e as kc,ixn as kd,zSn as ke,yxn as kf,VSn as kg,lxn as kh,dVe as ki,oxn as kj,ban as kk,uxn as kl,fxn as km,PSn as kn,ASn as ko,ISn as kp,B2n as kq,SDr as kr,YPt as ks,$2n as kt,DSn as ku,wD as kv,J0 as kw,WSt as kx,FAt as ky,Y4 as kz,Gme as l,Gxn as l$,Aye as l0,uhn as l1,O0r as l2,GAr as l3,KAr as l4,chn as l5,ZMt as l6,jgn as l7,Iwr as l8,Bwr as l9,eyn as lA,lCt as lB,mSn as lC,v0n as lD,zxn as lE,thn as lF,wxn as lG,Txn as lH,_hn as lI,bhn as lJ,OSn as lK,Uxn as lL,Jxn as lM,djt as lN,RSn as lO,Ugn as lP,Esn as lQ,Ggn as lR,jxn as lS,Kxn as lT,w0n as lU,wAr as lV,gAr as lW,b0n as lX,Ygn as lY,Jgn as lZ,Kgn as l_,PPt as la,Dxn as lb,Axn as lc,Cxn as ld,kxn as le,Exn as lf,c0n as lg,T3r as lh,j0n as li,M0n as lj,q2n as lk,Tfn as ll,Ubn as lm,Jbn as ln,sSn as lo,QFt as lp,njt as lq,Wxn as lr,Xxn as ls,jbn as lt,CSn as lu,Sfn as lv,Smn as lw,xmn as lx,nq as ly,PDr as lz,rQ as m,$1r as m$,arn as m0,N0n as m1,dEr as m2,Thn as m3,I2n as m4,C2n as m5,N2n as m6,xQr as m7,IEr as m8,EEr as m9,Lme as mA,Zmt as mB,F_ as mC,Bme as mD,$me as mE,Fbr as mF,$br as mG,yB as mH,wbr as mI,Cbr as mJ,wEt as mK,Ibr as mL,xEt as mM,Sbr as mN,xbr as mO,lbr as mP,ubr as mQ,o2r as mR,eh as mS,B1r as mT,Y1r as mU,vEt as mV,K1r as mW,J1r as mX,yEt as mY,H1r as mZ,V1r as m_,eve as ma,$tn as mb,e0n as mc,u0n as md,t0n as me,n0n as mf,r0n as mg,Psn as mh,l0n as mi,dSn as mj,pSn as mk,fSn as ml,_Sn as mm,pEr as mn,_Er as mo,BRe as mp,bN as mq,ESn as mr,Lgn as ms,lje as mt,kAt as mu,Axr as mv,YI as mw,Jvr as mx,_Ct as my,e1r as mz,vB as n,Nbr as n$,Q1r as n0,U1r as n1,q1r as n2,j1r as n3,L1r as n4,ebr as n5,Z1r as n6,W1r as n7,z1r as n8,X1r as n9,pbr as nA,d2r as nB,Xbr as nC,bbr as nD,Hbr as nE,s2r as nF,cbr as nG,jbr as nH,n2r as nI,Rbr as nJ,e2r as nK,SEt as nL,Pbr as nM,qbr as nN,zbr as nO,kEt as nP,a2r as nQ,r2r as nR,f2r as nS,c2r as nT,Rw as nU,Wbr as nV,_2r as nW,Gbr as nX,hye as nY,M_ as nZ,i2r as n_,mye as na,G1r as nb,AEt as nc,p2r as nd,Dbr as ne,Bbr as nf,t2r as ng,Ubr as nh,Ebr as ni,obr as nj,abr as nk,lLe as nl,Kbr as nm,ACt as nn,Qbr as no,Ybr as np,u2r as nq,nbr as nr,ybr as ns,vbr as nt,mbr as nu,_br as nv,gbr as nw,hbr as nx,Jbr as ny,Abr as nz,Cwr as o,v2r as o$,l2r as o0,Zbr as o1,EEt as o2,vu as o3,fbr as o4,sbr as o5,ibr as o6,Obr as o7,_Le as o8,Mbr as o9,jEt as oA,tSr as oB,B2r as oC,PCt as oD,NCt as oE,ugn as oF,Zhn as oG,HEt as oH,DEt as oI,REt as oJ,DCt as oK,ICt as oL,W2r as oM,ign as oN,eSr as oO,T2r as oP,C2r as oQ,QZ as oR,qk as oS,KOe as oT,U2r as oU,w2r as oV,E2r as oW,P2r as oX,Qhn as oY,qEt as oZ,zEt as o_,Lbr as oa,dbr as ob,Vbr as oc,Chn as od,ui as oe,Lhn as of,jhn as og,tbr as oh,Fmt as oi,$hn as oj,F2r as ok,Q2r as ol,JEt as om,WEt as on,D2r as oo,A2r as op,pgn as oq,iSr as or,VEt as os,UEt as ot,Vhn as ou,zhn as ov,Uhn as ow,qhn as ox,Bhn as oy,MEt as oz,BAt as p,K2r as p$,y2r as p0,S2r as p1,b2r as p2,GEt as p3,$Et as p4,ggn as p5,YEt as p6,sgn as p7,z2r as p8,ZZ as p9,Jhn as pA,ygn as pB,Khn as pC,mgn as pD,tgn as pE,rSr as pF,q2r as pG,RCt as pH,MCt as pI,OCt as pJ,FCt as pK,pye as pL,_ye as pM,ngn as pN,KEt as pO,Z2r as pP,J2r as pQ,h2r as pR,gye as pS,aSr as pT,dgn as pU,nSr as pV,N2r as pW,hgn as pX,X2r as pY,Y2r as pZ,agn as p_,XI as pa,g2r as pb,rgn as pc,XEt as pd,hLe as pe,H2r as pf,jme as pg,eQ as ph,XOe as pi,$2r as pj,FEt as pk,ogn as pl,Whn as pm,j2r as pn,Ghn as po,fgn as pp,Hhn as pq,G2r as pr,R2r as ps,lgn as pt,x2r as pu,cgn as pv,M$ as pw,fye as px,dye as py,_gn as pz,Swr as q,CLe as q$,egn as q0,k2r as q1,I2r as q2,LEt as q3,O2r as q4,Xhn as q5,M2r as q6,V2r as q7,mLe as q8,PEt as q9,M1r as qA,m2r as qB,Rhn as qC,Mhn as qD,Ohn as qE,Fhn as qF,u1r as qG,f1r as qH,l1r as qI,khn as qJ,Ehn as qK,rbr as qL,Sgn as qM,vgn as qN,bLe as qO,jLe as qP,LLe as qQ,BLe as qR,Qkt as qS,Kkt as qT,eAt as qU,OLe as qV,RLe as qW,$Le as qX,ILe as qY,NLe as qZ,TLe as q_,IEt as qa,NEt as qb,OEt as qc,L2r as qd,BEt as qe,Yhn as qf,sA as qg,$S as qh,qme as qi,cSr as qj,Phn as qk,Nhn as ql,oSr as qm,Dhn as qn,Ihn as qo,a1r as qp,c1r as qq,WOe as qr,sD as qs,bEt as qt,Tbr as qu,kbr as qv,sSr as qw,jmt as qx,Lmt as qy,Ahn as qz,n0 as r,mAt as r$,bAt as r0,HLe as r1,xye as r2,mee as r3,_At as r4,rAt as r5,FLe as r6,SLe as r7,xLe as r8,tQ as r9,j$ as rA,vye as rB,ULe as rC,WLe as rD,hAt as rE,AAt as rF,wAt as rG,Fw as rH,Sye as rI,aAt as rJ,j_ as rK,vAt as rL,Jkt as rM,CAt as rN,uAt as rO,oAt as rP,Lu as rQ,ELe as rR,yye as rS,aD as rT,Wkt as rU,bye as rV,Xkt as rW,Zkt as rX,kLe as rY,tAt as rZ,vLe as r_,bgn as ra,fAt as rb,lAt as rc,tht as rd,DAt as re,zme as rf,DLe as rg,PLe as rh,jkt as ri,Fkt as rj,qkt as rk,Bkt as rl,iAt as rm,eht as rn,MLe as ro,ALe as rp,EAt as rq,cAt as rr,Ukt as rs,sAt as rt,xAt as ru,wLe as rv,Ykt as rw,JLe as rx,Hkt as ry,pAt as rz,zAt as s,PAt as s$,Qmt as s0,sxr as s1,VSr as s2,USr as s3,txr as s4,SAt as s5,Cxr as s6,qSr as s7,zSr as s8,xxr as s9,$Sr as sA,Pxr as sB,WSr as sC,lxr as sD,jSr as sE,fxr as sF,_xr as sG,BSr as sH,mxr as sI,kxr as sJ,Sxr as sK,NSr as sL,gxr as sM,qLe as sN,yAt as sO,Gkt as sP,Jme as sQ,vxr as sR,Ume as sS,fSr as sT,dSr as sU,pxr as sV,Wme as sW,gAt as sX,NAt as sY,Txr as sZ,TAt as s_,OSr as sa,RSr as sb,cxr as sc,hSr as sd,ySr as se,Exr as sf,JSr as sg,wSr as sh,ISr as si,mSr as sj,gSr as sk,dAt as sl,yxr as sm,YSr as sn,ZSr as so,wgn as sp,TSr as sq,XSr as sr,KSr as ss,GSr as st,PSr as su,YOe as sv,QSr as sw,rxr as sx,zLe as sy,LSr as sz,Pa as t,bSr as t0,xSr as t1,vSr as t2,SSr as t3,pSr as t4,_Sr as t5,hxr as t6,xgn as t7,HSr as t8,Dxr as t9,ivr as tA,nvr as tB,rwn as tC,whn as tD,Tgn as tE,Cgn as tF,Egn as tG,kgn as tH,Agn as tI,gEr as tJ,s0n as tK,a0n as tL,V0n as tM,U0n as tN,J0n as tO,Nbn as tP,w2n as tQ,T2n as tR,kQr as tS,P2n as tT,R2n as tU,F2n as tV,M2n as tW,aSn as tX,cSn as tY,srn as tZ,Hxn as t_,bxr as ta,IAt as tb,ixr as tc,wxr as td,VLe as te,exr as tf,nxr as tg,FSr as th,oxr as ti,DSr as tj,CSr as tk,ESr as tl,kSr as tm,ASr as tn,axr as to,MSr as tp,dxr as tq,rvr as tr,XTt as ts,kmt as tt,Nme as tu,tvr as tv,evr as tw,PG as tx,QTt as ty,ZTt as tz,Gd as u,bo as v,Dg as w,e_ as x,_en as y,oFt 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 c_n=SVe.map(t=>{const n=s_n[t.kind],s=c=>q.jsx(a_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function l_n(t){return c_n.find(n=>n.kind===t)}function u_n({kind:t,dependencies:n}){const{Content:s}=l_n(t);return q.jsx(s,{dependencies:n})}const f_n=250;function d_n(){const t=E4t(),n=p_n();return()=>{n(),t()}}function p_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of ea.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=ea.subscribe(()=>{if(s)return;const g=ea.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,f_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],Hxn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),tye=1e-9,kjt=1e5;function __n(t,n,s){const c=s.end-s.start,d=s.loop&&c>tye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+tye){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>kjt){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 m_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>tye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+tye){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>kjt){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 oTt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class h_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=oTt(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=oTt(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"?__n(c,s,this._range):m_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 y_e={start:0,end:0,fps:30},g_n=150;class Gxn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new h_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:y_e.start,end:y_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??y_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()},g_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()??y_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 Cme=new Map,Bje=new Set;function sTt(){for(const t of[...Bje])t()}function Kxn(t,n){return Cme.set(t,n),sTt(),()=>{Cme.get(t)===n&&(Cme.delete(t),sTt())}}function y_n(t){return t===null?null:Cme.get(t)??null}function v_n(t){return Bje.add(t),()=>{Bje.delete(t)}}let Eme=null;function Xxn(t){return Eme=t,()=>{Eme===t&&(Eme=null)}}function Sve(){return Eme}const Ajt="__volterWorkspacePersistenceSuppressed";function Djt(){return globalThis}function Pjt(t){Djt()[Ajt]=t}function b_n(){return Djt()[Ajt]===!0}function Ijt(){return(See()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Njt={phase:"idle",flightDone:!1,gameReady:!1};function S_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 x_n(t,n){if(n==="stop")return Njt;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 S_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 w_n=450,T_n=220,Ojt=250;function C_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${w_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${T_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Ojt}ms`)}let SD=null;function E_n(t){return SD=t,typeof document<"u"&&C_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Rjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function k_n(){return Qk?.state.phase??"idle"}const kme=new Set;function Fjt(){if(kme.size===0)return;const t=[...kme];kme.clear();for(const n of t)n()}function A_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}kme.add(t)}function D_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=x_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),D_n(n,Ojt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&Sve()?.settle(),Fjt()))}function P_n(){I_n({immersive:Ijt()})}function I_n(t){if(Qk&&nUe(),!t.immersive)return;const n=Rjt();Pjt(!0);const s={state:Njt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=Sve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function N_n(t,n){(!t||!n)&&nUe()}function O_n(t){const n=Qk;n&&(n.flying&&t&&Sve()?.track(t),gB("game-ready"))}function nUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Fjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&Sve()?.end(),SD?.showChrome(!Rjt()),Pjt(!1)}}const $je=new Set;let Mjt=null;function jjt(){return wf()?.rootPath??null}function R_n(t){$je.add(t);const n=jjt();return n!==null&&Mjt===n&&t(),()=>{$je.delete(t)}}async function Yxn(){Mjt=jjt();for(const t of[...$je])await t()}function F_n(){const t=e_();if(t===null)return null;const n=cQ(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 qje=null;function M_n(t){qje=t}function aTt(){if(!qje)throw new Error("The workbench Output service is not connected.");return qje}function j_n(){X4r(e_),X3r({output:{write:(...t)=>aTt().write(...t),show:t=>aTt().show(t)},console:{log:(t,n)=>ea.log(t,n),warn:(t,n)=>ea.warn(t,n),error:(t,n)=>ea.error(t,n)},live:{register:XFt,mounted:dVe,playing:rve,runWindow:oVe,restartRequired:HFt,restart:GFt,subscribe:_Ve,version:ZFt,notifyChanged:WFt,snapshotFrame:aVe,frameCanvas:sVe,authoringRefusal:fVe,dispatch:cVe,scenes:lVe,surface:tve,coverage:uVe},viewport:{transition:{begin:P_n,ready:O_n,end:nUe,onSettled:A_n,phase:k_n}},hierarchy:{subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:SBe,reportFacet:Mrn,onSample:bnn,onCommandDispatched:OYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>Ize(n=>{n!==null&&t()}),onBeforeClose:Zrn,reportWorkerCallMeter:zsn},project:{documentTable:Ien,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:R_n},notify:t=>s$(t),systems:{inspected:Cye,subscribe:Fwr,inspectedNetworking:Bwr,subscribeNetworking:$wr,inspectedAudio:()=>qwr()??null,subscribeAudio:zwr,audioVersion:Vwr},availability:{subscribe:JVe,version:xun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Wye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:itn,acquire:ctn,release:Xze,open:iq,container:otn,setContainer:stn,releaseContainer:atn}},documents:{activeId:e_,active:()=>{const t=TC();return t?{id:t.descriptor.id,kind:t.descriptor.kind,title:t.title}:null},subscribe:i2,version:K1,context:cQ,waitForContext:u4t,contextChanged:$Cr,captureActive:t=>{const n=Ih();return n?p9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>y_n(t),subscribe:v_n},projectLocalState:{ready:lte,read:vve,write:bve,projectRootPath:()=>wf()?.rootPath??null},history:{record:XPt,setDelegate:G4r,onElement:Z4r,invalidate:Q4r,onInvalidated:eDr,changed:K4r,elements:Y4r,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?DYr(s)??kze(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=KPt(t),s=o_e(t),c=Ih()?.projectHistory?.subscribe(t),d=i2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:x4r,read:t=>Ag.read(t),readBytes:t=>Ag.readBytes(t),write:(t,n)=>Ag.write(t,n),exists:t=>Ag.exists(t),list:t=>Ag.list(t),watch:t=>Ag.watch(t)},settings:{setProvider:SEr,get:kEr,set:DEr,inspect:q4t,subscribe:t=>{const n=j4t(t),s=bee(t);return()=>{n(),s()}}},keyboard:{actions:()=>Ian().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>V4t().map(({id:t,title:n})=>({id:t,title:n,chords:K4t(t)})),activeKeymap:dR,invoke:t=>NVe(t),subscribe:t=>{const n=Oan(t),s=Uye(t),c=o_e(t),d=Ih()?.subscribe(t),m=i2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Nan()+K1(),stage:()=>{const t=Ih();return t?{surface:Pfn(t).surface,mode:F_n()}:{surface:null,mode:null}},bindActions:$an,chordsFor:IBe,shortcutFor:t=>Vv(t)??null}})}let L_n=0,cee=null;const zje=new Set;function cTt(t){const n={generation:++L_n,promise:t,active:!0};cee=n;for(const s of zje)s(n);return zje.clear(),n}function B_n(){const t=cee;return t?.active?Promise.resolve(t):new Promise(n=>zje.add(n))}async function iUe(){for(;;){const t=await B_n();if(await t.promise,cee===t&&t.active)return}}const Ljt=16,$_n=300,q_n=1e4,Bjt="workspace";function z_n(){const t=vve(Bjt);return!t||t.version!==Ljt?null:t}function V_n(t){bve(Bjt,t)}function U_n(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=gAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function J_n(){const t={};let n=!1;for(const s of sDt()){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 W_n(){const t=[];for(const s of l0()){const c=U_n(s);c&&t.push(c)}const n=J_n();return{version:Ljt,workspace:zS(),documents:{open:t,activeId:e_(),...n?{kinds:n}:{}}}}async function H_n(t,n,s){for(const c of oDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!HQ(),store:t}))return!0}catch{}return!1}function lTt(t){if(!t)return!1;const n=!HQ();return SN(t,n)?!0:etn.has(t)?(bFt(t),n&&uTr(t),!0):n&&X0(t)}function G_n(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of sDt())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 K_n(t){const n=new Set;for(const s of t)for(const c of oDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function X_n(t,n){const s=n?.documents;if(G_n(t,s),!s||s.open.length===0){lTt(s?.activeId??null);return}await K_n(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&yAr(c.id,d),await H_n(t,c,s.activeId)}lTt(s.activeId)}function $jt(t){if(!lte()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=cTt(Ce);return Promise.all([cte(),Wze()]).then(()=>{if(se){ue();return}pe=$jt(t),De.active=!1,iUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=z_n();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?s2(n.workspace):(n?.workspace&&bkr(n.workspace),s2(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")&&V_n(W_n())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,$_n)},S=()=>m();let k=null;const A=typeof window<"u"&&QTt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():mN().catch(()=>{}),D=F.then(()=>A?void 0:X_n(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},q_n))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(i2(g)),d.push(xAr(g)),window.addEventListener("pagehide",S))}),G=cTt($);return()=>{s=!0,G.active=!1,cee===G&&(cee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function Y_n(t){Ze.useEffect(()=>{const n=QTt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return iUe().then(()=>{if(d())return Bge(t,n,{updateUrl:!1,origin:"link"})}).catch(m=>{ea.error(`Could not restore shared editor view: ${m instanceof Error?m.message:String(m)}`,"editor")}),()=>{s=!0}},[t])}const uTt="volter:stale-chunk-reload";function Z_n(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(uTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(uTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function Q_n(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 Zxn(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)){ea.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 Qxn extends Error{name="StoryMediumMismatch"}function ewn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Ame=new Map;function twn(t,n){return Ame.set(t,n),()=>{Ame.get(t)===n&&Ame.delete(t)}}function emn(t){return Ame.get(t)??null}function tmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${rmn(n[c])}`);return`${t}|${s.join("&")}`}function rmn(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 rye=new Map,v_e=new Map,fTt=new WeakMap;let dTt=Promise.resolve(),pTt=null,nmn=1;function imn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function omn(){await Promise.race([Nye(),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 smn(){return pTt??=omn(),pTt}function amn(t){const n=fTt.get(t);if(n!==void 0)return n;const s=nmn++;return fTt.set(t,s),s}function cmn(t,n,s,c){const d=rye.get(t);if(d)return Promise.resolve(d);const m=v_e.get(t);if(m)return m;const g=dTt.then(async()=>{await smn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=emn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return dTt=g.then(()=>{},()=>{}),v_e.set(t,g),g.then(S=>{rye.set(t,S),v_e.delete(t)},()=>v_e.delete(t)),g}function lmn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${tmn(n.id,n.args)}:${amn(m)}:${s}:${c}x${d}`,[S,k]=Ze.useState(()=>rye.get(g)),[A,F]=Ze.useState(!1);return Ze.useEffect(()=>{let D=!1;if(F(!1),k(rye.get(g)),!!imn())return cmn(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 xve="story:three",wve="story:isolated",umn="story:docs";function fmn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function dmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(lmn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const pmn="story",_mn={id:pmn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!fmn(c,t.surface))continue;const d=gRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:V0e,Thumbnail:dmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?xve:wve,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function _Tt(t){return cYr(t.name,t.sourcePath)}const mmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:_Tt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=_Tt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(xve,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(wve,s.store,{modulePath:c.modulePath,storyName:c.name});return}ea.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 hmn(){let t=0,n=!1;const s=S=>{const k=++t;tYr(),Nye().then(()=>{if(!(n||k!==t))return dYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=gFt(),m=IC(()=>s()),g=nen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const qjt="story",POe=new Set,IOe=new Set;function gmn(t){const n=fRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function NOe(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??gmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function ymn(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(umn,t,c);const d=wze({modulePath:s.modulePath,regions:xze()});return d.medium===void 0?(eYr(s.modulePath,d.reason),null):CD(d.medium==="three"?xve:wve,t,c)}function mTt(t){ea.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function vmn(){return kN({id:qjt,owner:"./story-opener",open:(t,n)=>{const s=NOe(n);return s?ymn(t,n,s):(n.modulePath?POe.add(n.modulePath):n.storyId!==void 0&&(IOe.add(n.storyId),oYr()&&mTt(n.storyId)),null)},settle:async()=>{await CDr();const t=[...POe],n=[...IOe];if(POe.clear(),IOe.clear(),await Promise.all(t.map(s=>lYr(wf(),s))),n.length!==0){await sYr();for(const s of n)NOe({storyId:s})||mTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=NOe(n);if(!(!s||wze({modulePath:s.modulePath,regions:xze()}).medium!=="three")&&!await CC(()=>o2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const bmn={actions:()=>{if(!Zht(wve)&&!Zht(xve))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=>V0e(t)};function Smn(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 xmn(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 wmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Tmn(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 kZr("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=Smn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=xmn(nB,t.pose);if(typeof k=="string")return{ok:!1,error:k};const{captureProjectStoryVariants:A}=await fo(async()=>{const{captureProjectStoryVariants:D}=await import("./story-capture-BTklfaD3.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([266,267,1,2,3,4,20,21,231,210,268,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 Cmn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Tmn}};function Emn(){const t=din(_mn),n=Q_n(mmn),s=vmn(),c=aCt(bmn),d=lCt(wmn,Cmn),m=hmn(),g=V0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const kmn=[["descriptionForeground","--volter-content-dim"],["disabledForeground","--volter-content-placeholder"],["errorForeground","--volter-danger"],["focusBorder","--volter-accent"],["selection.background","--volter-accent","99"],["sash.hoverBorder","--volter-accent"],["menubar.selectionBackground","--volter-accent"],["menubar.selectionForeground","--volter-content-on-accent"],["menu.selectionBackground","--volter-accent"],["menu.selectionForeground","--volter-content-on-accent"],["editorGroupHeader.tabsBackground","--volter-surface-chrome"],["editorGroup.dropBackground","--volter-accent","66"],["tab.inactiveBackground","--volter-surface-chrome"],["tab.inactiveForeground","--volter-content-dim"],["editor.background","--volter-surface-chrome"],["editorLineNumber.foreground","--volter-content-placeholder"],["editor.selectionBackground","--volter-accent","99"],["editorGutter.background","--volter-surface-chrome"],["panelTitle.inactiveForeground","--volter-content-dim"],["list.activeSelectionBackground","--volter-accent"],["list.activeSelectionForeground","--volter-content-on-accent"],["list.focusOutline","--volter-accent"],["list.dropBackground","--volter-accent","66"],["button.background","--volter-accent"],["button.foreground","--volter-content-on-accent"],["checkbox.selectBackground","--volter-accent"],["input.background","--volter-surface-chrome"],["input.placeholderForeground","--volter-content-placeholder"],["inputOption.activeBackground","--volter-accent"],["inputOption.activeForeground","--volter-content-on-accent"],["inputValidation.errorBorder","--volter-danger"],["badge.background","--volter-accent"],["badge.foreground","--volter-content-on-accent"],["progressBar.background","--volter-accent"],["quickInputList.focusBackground","--volter-accent"],["quickInputList.focusForeground","--volter-content-on-accent"],["notificationsErrorIcon.foreground","--volter-danger"],["notificationsWarningIcon.foreground","--volter-warn"],["notificationsInfoIcon.foreground","--volter-accent"],["terminal.background","--volter-surface-chrome"],["commandCenter.background","--volter-surface-chrome"],["volter.view.background","--volter-surface-panel"],["foreground","--volter-content-primary"],["icon.foreground","--volter-content-muted"],["widget.border","--volter-boundary-default"],["titleBar.activeBackground","--volter-surface-shell"],["titleBar.inactiveBackground","--volter-surface-shell"],["titleBar.activeForeground","--volter-content-muted"],["titleBar.border","--volter-surface-shell"],["activityBar.background","--volter-surface-shell"],["activityBar.foreground","--volter-content-primary"],["activityBar.inactiveForeground","--volter-content-dim"],["activityBar.border","--volter-surface-shell"],["activityBar.activeBorder","--volter-accent"],["statusBar.background","--volter-surface-shell"],["statusBar.foreground","--volter-content-muted"],["statusBar.border","--volter-surface-shell"],["sideBar.background","--volter-surface-panel"],["sideBar.foreground","--volter-content-primary"],["sideBar.border","--volter-boundary-default"],["sideBarSectionHeader.background","--volter-surface-chrome"],["panel.background","--volter-surface-panel"],["panel.border","--volter-boundary-default"],["editorGroup.border","--volter-boundary-default"],["editorGroupHeader.tabsBorder","--volter-boundary-default"],["tab.activeBackground","--volter-surface-panel"],["tab.activeForeground","--volter-content-primary"],["tab.border","--volter-boundary-default"],["menu.background","--volter-widget-menu"],["menu.foreground","--volter-content-menu"],["menu.border","--volter-boundary-default"],["dropdown.background","--volter-widget-menu"],["dropdown.border","--volter-boundary-default"],["input.foreground","--volter-content-primary"],["input.border","--volter-boundary-default"]],Amn=[["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 hTt(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 Dmn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of kmn){const g=hTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Amn){const m=hTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let xm=null,zjt=0;const Vje=new Set;function Pmn(t){return Vje.add(t),()=>Vje.delete(t)}function gTt(){return zjt}const OOe=new Map;function Vjt(t,n){OOe.get(t)?.disconnect(),OOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;zAr(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),OOe.set(t,c)}function Imn(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&&Ujt(t,n),Vjt(t,n),zjt+=1;for(const s of Vje)s()}}function Ujt(t,n){n.dataset.volterPart=t}const HO=new Map;let Jjt=0;const Uje=new Set,Wjt=new Set;let yTt=!1;function vTt(){for(const t of l0())Wjt.add(t.descriptor.id)}function Nmn(t){yTt||(yTt=!0,i2(vTt)),vTt(),!(!t||Wjt.has(t))&&(mtn(t)||bFt(t,!1))}function Omn(t,n){if(n){if(!HO.delete(t.id))return}else{HO.has(t.id)||Nmn(t.documentId);const s=HO.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;HO.set(t.id,{...t})}Jjt+=1;for(const s of[...Uje])s()}function Rmn(t){return Uje.add(t),()=>{Uje.delete(t)}}function bTt(){return Jjt}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 Fmn({children:t}){return q.jsx(q.Fragment,{children:t})}function Mmn(){return xm?MS.createPortal(q.jsx(GO,{center:!0,children:q.jsx(qdn,{})}),xm.header):null}function jmn(){return null}function Lmn(){const t=Ze.useRef(null);return Ze.useEffect(()=>{const n=t.current;if(n)return cjt(n),()=>Yun(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(hjt,{})})]})}const Dme=new Map,Jje=new Set;let Wje=0;function Bmn(t,n){if(n){if(Dme.get(t)===n)return;n.dataset.volterUtility=t,Dme.set(t,n)}else if(!Dme.delete(t))return;Wje++;for(const s of Jje)s()}const Pme=new Map,Hje=new Set;let Gje=0;function $mn(t,n){if(n){if(Pme.get(t)===n)return;Pme.set(t,n)}else if(!Pme.delete(t))return;Gje++;for(const s of Hje)s()}function qmn(){return Ze.useSyncExternalStore(S3t,uht,uht),Ze.useSyncExternalStore(t=>(Hje.add(t),()=>Hje.delete(t)),()=>Gje,()=>Gje),q.jsx(q.Fragment,{children:[...uRe("left"),...uRe("right")].map(t=>{const n=Pme.get(t.id);if(!n)return null;const s=t.Content;return q.jsx(Ze.Fragment,{children:MS.createPortal(q.jsx(s,{}),n)},t.id)})})}function zmn(){return Ze.useSyncExternalStore(Jye,hhe,hhe),Ze.useSyncExternalStore(t=>(Jje.add(t),()=>Jje.delete(t)),()=>Wje,()=>Wje),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Dme.get(t.id);return n?q.jsx(Ze.Fragment,{children:MS.createPortal(q.jsx(GO,{children:q.jsx(Udn,{utility:t})}),n)},t.id):null})})}function Vmn({descriptor:t,viewId:n,slot:s,parking:c,visible:d,inspector:m}){const[g]=Ze.useState(()=>document.createElement("div"));return Ze.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]),Ze.useLayoutEffect(()=>((s??c).appendChild(g),()=>g.remove()),[g,s,c]),MS.createPortal(q.jsxs(GO,{children:[q.jsx(NMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Iun,{})]}),g)}let Hjt=!0;function Umn({arrangement:t,immersivePlay:n}){const s=Yv();Y_n(s);const c=$Ve(s);Ze.useLayoutEffect(()=>{Hjt=c.column},[c.column]);const d=HO.get(vRe()??"")?.element??xm?.center;Ze.useLayoutEffect(()=>{if(!d)return;const F=()=>xwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),xwt(null)}},[d]),Ze.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ze.useSyncExternalStore(i2,K1,K1),Ze.useSyncExternalStore(Rmn,bTt,bTt),Ze.useSyncExternalStore(Pmn,gTt,gTt),Ze.useLayoutEffect(()=>{const F=GEr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&s2(t.id),wkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ze.useSyncExternalStore(bee,NR).play?.keepPanelsVisible;if(Ze.useEffect(()=>{N_n(m,Ijt())},[m,n,g]),Ze.useEffect(()=>$jt(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(Vmn,{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&&MS.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),xm.center),xm.outliner&&MS.createPortal(q.jsx(GO,{children:q.jsx(Lmn,{})}),xm.outliner),xm.properties&&MS.createPortal(q.jsx(GO,{children:c.column?q.jsx(WVe,{}):q.jsx(Tun,{surface:c.surface})}),xm.properties),xm.content&&MS.createPortal(q.jsx(GO,{children:q.jsx(u_n,{kind:"assets"})}),xm.content),q.jsx(zmn,{}),q.jsx(qmn,{})]})}async function Jmn(t,n={}){xm=t,n.workspaceStorage&&UAr(n.workspaceStorage),ZAr();for(const[De,Pe]of Object.entries(t))Pe&&Ujt(De,Pe),Vjt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",CPt({Frame:Fmn,Header:Mmn,Footer:jmn,Workspace:Umn,Document:Scn}),d_n(),Inn();const s=Iln();s&&Dln(s,Date.now())&&ea.warn(kln(s,Date.now()),"editor"),Z_n(),xDr(),j_n(),Emn(),await Promise.all([$4t(),Kkr(),GDt()]),uAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",lee()?.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),Kje.createRoot(c).render(q.jsx(Gln,{}));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:iUe,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?mkr().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=i2(De),be=hkr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&HQ()||(Pe?cTr(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)=>Omn(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:()=>[...wEr()],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",Dmn(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=zye(De),be=bDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Rnn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>Mnn(De),subscribe:De=>Fnn(De),setPaletteOpener:De=>Onn(De),setCommandExecutor:De=>jnn(De),report:d.report},D={setDelegate:De=>zCr(De?{show:Pe=>De({...Pe,source:YAr()})}:null)},J={list:()=>APt().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)=>PPt(De,Pe,be),subscribe:De=>DPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=hhe();const be=Jye(De),X=JVe(()=>{const Te=hhe();Te!==Pe&&(Pe=Te,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>Bmn(De,Pe)};let G=!0,se=null,pe=null;crn(()=>G);const ue={setActiveStaticPanel:De=>Ght(SVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(Hjt)return!1;const De=xm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),Ght("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!xm)&&(se=E_n({root:xm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=YEr({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:M_n},settings:A,status:{list:()=>["left","right"].flatMap(De=>uRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>S3t(De),offerBody:(De,Pe)=>$mn(De,Pe)},game:ue,offerPart:Imn}}function Wmn(t){const n=Object.keys(t.packages);return r0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),PDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:Jmn}}const{mountVolter:rwn}=Wmn({id:"game-editor",packages:{"@volter/editor-game":Zyr,"@volter/editor-react":Qyr,"@volter/editor-threejs":e0r,"@volter/editor-xstate":t0r,"@volter/editor-blender":Yyr},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{lSn as $,f3t as A,DB as B,d3t as C,p3t as D,u0 as E,OC as F,Gze as G,rRe as H,Y2n as I,x2n as J,Yv as K,Ih as L,$Xr as M,u3t as N,ea as O,c3t as P,Jl as Q,_3t as R,Ewr as S,q0n as T,$Ft as U,Btn as V,XLe as W,UFt as X,L_ as Y,CN as Z,fo as _,XY as a,r2n as a$,Ms as a0,dc as a1,Kk as a2,z0n as a3,vC as a4,Ngn as a5,$sn as a6,Han as a7,H2n as a8,Uze as a9,hy as aA,oq as aB,cMt as aC,N3r as aD,X2n as aE,Mxn as aF,Yyn as aG,R_e as aH,h0n as aI,pAr as aJ,_p as aK,dm as aL,Zm as aM,Yxn as aN,Q0e as aO,l0 as aP,bFt as aQ,TD as aR,$yn as aS,PCr as aT,H0e as aU,kRt as aV,Pze as aW,TSn as aX,Zf as aY,A9t as aZ,e2n as a_,MB as aa,Mwr as ab,YFt as ac,Bbn as ad,Zyn as ae,Go as af,Fgn as ag,Eye as ah,jun as ai,G0e as aj,$wr as ak,Nxn as al,V0e as am,rq as an,wze as ao,xze as ap,eYr as aq,oan as ar,l$e as as,Itn as at,cRt as au,Otn as av,wf as aw,Y0 as ax,mp as ay,E0n as az,YLe as b,_2n as b$,R4r as b0,t2n as b1,gC as b2,v$e as b3,hTr as b4,K7e as b5,ig as b6,gFt as b7,sYr as b8,Fbn as b9,fu as bA,m2n as bB,y2n as bC,v2n as bD,b2n as bE,MSt as bF,l2n as bG,g2n as bH,h2n as bI,qZr as bJ,jSt as bK,a2n as bL,jD as bM,_Zr as bN,zSt as bO,s2n as bP,$Zr as bQ,n2n as bR,f2n as bS,Hbn as bT,Gbn as bU,TZr as bV,S2n as bW,MZr as bX,EZr as bY,Zbn as bZ,Qbn as b_,pRt as ba,lRt as bb,_Rt as bc,UXr as bd,emn as be,ewn as bf,oSn as bg,fRt as bh,iYr as bi,Z0n as bj,I0n as bk,P0n as bl,E3r as bm,F0n as bn,Rhe as bo,$bn as bp,Vbn as bq,ctn as br,_3r as bs,m3r as bt,Owr as bu,qbn as bv,otn as bw,XFt as bx,ed as by,_y as bz,nRe as c,R_ as c$,c2n as c0,K0e as c1,jZr as c2,LZr as c3,ORt as c4,FRt as c5,CZr as c6,Xbn as c7,IZr as c8,Kbn as c9,jSn as cA,Uye as cB,dR as cC,myn as cD,mO as cE,Vv as cF,hyn as cG,S0r as cH,w0r as cI,nLe as cJ,uyn as cK,O3t as cL,bZ as cM,ryn as cN,n$ as cO,ghn as cP,aR as cQ,fBe as cR,Jc as cS,eLe as cT,UTt as cU,WTt as cV,ahn as cW,z0r as cX,T0n as cY,C0n as cZ,PI as c_,BZr as ca,d2n as cb,PZr as cc,Fze as cd,RRt as ce,DZr as cf,bMe as cg,kZr as ch,i2n as ci,i_e as cj,OZr as ck,qSt as cl,$St as cm,FZr as cn,bZr as co,Rze as cp,vMe as cq,NZr as cr,p2n as cs,u2n as ct,Ybn as cu,zZr as cv,o2n as cw,Xen as cx,X0 as cy,rxt as cz,l3t as d,uSr as d$,Lxn as d0,sBe as d1,Cm as d2,pfn as d3,i0 as d4,E2n as d5,TDr as d6,Mun as d7,ARe as d8,i$ as d9,i4t as dA,cLe as dB,YB as dC,Bxn as dD,$xn as dE,Cfn as dF,xAr as dG,S0n as dH,HBe as dI,cgt as dJ,g0n as dK,ihn as dL,Dvr as dM,lgt as dN,hAr as dO,dAr as dP,WBe as dQ,_Ar as dR,n0r as dS,nye as dT,jOe as dU,lyn as dV,Osn as dW,yZ as dX,nAt as dY,AR as dZ,uxr as d_,nan as da,tan as db,PVe as dc,BSn as dd,c0r as de,u0r as df,s0r as dg,Iw as dh,xTt as di,t2 as dj,Bgn as dk,ren as dl,Z2n as dm,Qen as dn,oMt as dp,l2 as dq,LAr as dr,zbn as ds,aMt as dt,fQ as du,fhn as dv,oEr as dw,LTt as dx,SZ as dy,CCr as dz,a3t as e,dhn as e$,t$ as e0,Vme as e1,tCt as e2,O0n as e3,W0 as e4,B0n as e5,D2n as e6,uSn as e7,H0n as e8,jhe as e9,Qgn as eA,Q2n as eB,DYr as eC,kze as eD,wRt as eE,s4t as eF,Zen as eG,oYr as eH,w4t as eI,A5e as eJ,Iye as eK,Con as eL,Qje as eM,phn as eN,o0r as eO,b4t as eP,Don as eQ,Mht as eR,E5e as eS,Eht as eT,c0 as eU,Uyn as eV,ian as eW,IRe as eX,hBe as eY,Hyn as eZ,MCr as e_,b4r as ea,DQr as eb,G0n as ec,c$e as ed,X0n as ee,K0n as ef,Rbn as eg,qSn as eh,$Sn as ei,$0n as ej,_Be as ek,nhe as el,cyn as em,G0 as en,byn as eo,YY as ep,Tyn as eq,T_e as er,Oyn as es,sQ as et,Rgn as eu,IC as ev,vhn as ew,OTr as ex,wSn as ey,K2n as ez,iRe as f,V9t as f$,o0n as f0,i0n as f1,TC as f2,rFe as f3,wee as f4,kN as f5,wve as f6,umn as f7,dYr as f8,ND as f9,xhn as fA,b0r as fB,Shn as fC,Ime as fD,MOe as fE,KTt as fF,_0n as fG,vyn as fH,nxn as fI,yan as fJ,KSn as fK,TR as fL,mxn as fM,XSn as fN,Vze as fO,Obn as fP,gRt as fQ,fTr as fR,Ywr as fS,LSn as fT,eSn as fU,rSn as fV,a0 as fW,tSn as fX,HQ as fY,MSn as fZ,kSn as f_,Lwr as fa,NTr as fb,w_e as fc,Yen as fd,f$e as fe,QAr as ff,Qun as fg,Fxn as fh,Rxn as fi,Oxn as fj,xve as fk,EN as fl,d0n as fm,x0n as fn,twn as fo,Qxn as fp,nSn as fq,iSn as fr,_4t as fs,Qyn as ft,lhn as fu,hhn as fv,y0n as fw,p0n as fx,qxn as fy,iPt as fz,m3t as g,rA as g$,xRt as g0,zQ as g1,wfn as g2,Oun as g3,CR as g4,VXr as g5,Mbn as g6,Rtn as g7,CDr as g8,Pg as g9,Ogn as gA,AFe as gB,a3r as gC,Y0n as gD,d0r as gE,Lbn as gF,pYr as gG,Tht as gH,zTt as gI,i2 as gJ,K1 as gK,bSn as gL,SSn as gM,Nwr as gN,Pgn as gO,vSn as gP,Dgn as gQ,ySn as gR,WFt as gS,j2n as gT,xR as gU,XQr as gV,Mrn as gW,yhn as gX,BTt as gY,PTt as gZ,RTr as g_,xSn as ga,a0r as gb,fee as gc,k2n as gd,J2n as ge,A2n as gf,Zgn as gg,U2n as gh,fN as gi,Yje as gj,oLe as gk,t4r as gl,L2n as gm,k0n as gn,V2n as go,A0n as gp,W0n as gq,Dw as gr,of as gs,hR as gt,h3r as gu,D0n as gv,hSn as gw,nPt as gx,rnn as gy,Zxn as gz,VAt as h,zyn as h$,kC as h0,tA as h1,mhn as h2,L0n as h3,iBe as h4,X0e as h5,Wbn as h6,aCt as h7,Dan as h8,bxn as h9,PTr as hA,xht as hB,Lye as hC,wTr as hD,xTr as hE,qTr as hF,fyn as hG,_yn as hH,pyn as hI,gyn as hJ,yyn as hK,Vyn as hL,ayn as hM,Byn as hN,Ym as hO,n4t as hP,oyn as hQ,syn as hR,$ye as hS,dyn as hT,mBe as hU,tyn as hV,jyn as hW,Lyn as hX,rhe as hY,Kyn as hZ,wht as h_,cYr as ha,R0n as hb,Ign as hc,m0n as hd,uBe as he,zgn as hf,Wgn as hg,Xgn as hh,R$ as hi,CD as hj,Vgn as hk,$gn as hl,qgn as hm,Hgn as hn,Wyn as ho,Jyn as hp,ITr as hq,jCr as hr,Sht as hs,hC as ht,SRe as hu,F3t as hv,nyn as hw,iyn as hx,wRe as hy,xRe as hz,Pp as i,Zje as i$,RCr as i0,Syn as i1,o4t as i2,she as i3,TCr as i4,OG as i5,X3t as i6,L3t as i7,kTr as i8,LTr as i9,JTr as iA,VTr as iB,NG as iC,Fyn as iD,Xyn as iE,SCr as iF,kCr as iG,ETr as iH,Dyn as iI,xyn as iJ,ahe as iK,Ryn as iL,C5e as iM,CTr as iN,gBe as iO,Cyn as iP,q$ as iQ,wyn as iR,kyn as iS,NSn as iT,FSn as iU,Cee as iV,AD as iW,mcn as iX,Pxn as iY,b5e as iZ,Sxn as i_,Ayn as ia,Eyn as ib,Pyn as ic,Iyn as id,qyn as ie,TTr as ig,wCr as ih,Y3t as ii,Gyn as ij,FTr as ik,Myn as il,Nyn as im,$Tr as io,C_e as ip,CRe as iq,UTr as ir,zTr as is,FCr as it,BTr as iu,yee as iv,Rye as iw,WTr as ix,Epe as iy,ERe as iz,$At as j,vxn as j$,nee as j0,Dfn as j1,Vxn as j2,ePt as j3,p3r as j4,ZLe as j5,jwr as j6,cht as j7,Awr as j8,h3t as j9,KHr as jA,YHr as jB,QHr as jC,G2n as jD,Pwr as jE,uVe as jF,onn as jG,ste as jH,Wsn as jI,Wxt as jJ,wI as jK,OFe as jL,_xn as jM,ehn as jN,ohn as jO,nhn as jP,dxn as jQ,rhn as jR,f0r as jS,pxn as jT,van as jU,txn as jV,exn as jW,Eon as jX,hxn as jY,QSn as jZ,Ean as j_,_sn as ja,z2n as jb,HI as jc,qMe as jd,Mgn as je,LRt as jf,Y0e as jg,Tye as jh,cN as ji,GLe as jj,Pye as jk,lN as jl,PAr as jm,xBe as jn,cBe as jo,Dye as jp,KLe as jq,Kye as jr,Iin as js,E9t as jt,RTt as ju,FB as jv,sN as jw,O2n as jx,Ixn as jy,A_n as jz,wwr as k,qwr as k$,USn as k0,gxn as k1,YSn as k2,GSn as k3,JSn as k4,axn as k5,HSn as k6,WSn as k7,ZSn as k8,sxn as k9,shn as kA,tLe as kB,hEr as kC,vve as kD,bve as kE,gSn as kF,AMt as kG,IMt as kH,zxt as kI,IFe as kJ,$_e as kK,NFe as kL,Run as kM,HVe as kN,xxn as kO,Ifn as kP,f0n as kQ,J0r as kR,W2n as kS,gR as kT,hDr as kU,yve as kV,U$ as kW,eA as kX,mD as kY,zwr as kZ,Vwr as k_,rxn as ka,cxn as kb,s$e as kc,ixn as kd,zSn as ke,yxn as kf,VSn as kg,lxn as kh,dVe as ki,oxn as kj,ban as kk,uxn as kl,fxn as km,PSn as kn,ASn as ko,ISn as kp,B2n as kq,SDr as kr,YPt as ks,$2n as kt,DSn as ku,wD as kv,J0 as kw,WSt as kx,FAt as ky,Y4 as kz,Gme as l,Gxn as l$,Aye as l0,uhn as l1,O0r as l2,GAr as l3,KAr as l4,chn as l5,ZMt as l6,jgn as l7,Iwr as l8,Bwr as l9,eyn as lA,lCt as lB,mSn as lC,v0n as lD,zxn as lE,thn as lF,wxn as lG,Txn as lH,_hn as lI,bhn as lJ,OSn as lK,Uxn as lL,Jxn as lM,djt as lN,RSn as lO,Ugn as lP,Esn as lQ,Ggn as lR,jxn as lS,Kxn as lT,w0n as lU,wAr as lV,gAr as lW,b0n as lX,Ygn as lY,Jgn as lZ,Kgn as l_,PPt as la,Dxn as lb,Axn as lc,Cxn as ld,kxn as le,Exn as lf,c0n as lg,T3r as lh,j0n as li,M0n as lj,q2n as lk,Tfn as ll,Ubn as lm,Jbn as ln,sSn as lo,QFt as lp,njt as lq,Wxn as lr,Xxn as ls,jbn as lt,CSn as lu,Sfn as lv,Smn as lw,xmn as lx,nq as ly,PDr as lz,rQ as m,$1r as m$,arn as m0,N0n as m1,dEr as m2,Thn as m3,I2n as m4,C2n as m5,N2n as m6,xQr as m7,IEr as m8,EEr as m9,Lme as mA,Zmt as mB,F_ as mC,Bme as mD,$me as mE,Fbr as mF,$br as mG,yB as mH,wbr as mI,Cbr as mJ,wEt as mK,Ibr as mL,xEt as mM,Sbr as mN,xbr as mO,lbr as mP,ubr as mQ,o2r as mR,eh as mS,B1r as mT,Y1r as mU,vEt as mV,K1r as mW,J1r as mX,yEt as mY,H1r as mZ,V1r as m_,eve as ma,$tn as mb,e0n as mc,u0n as md,t0n as me,n0n as mf,r0n as mg,Psn as mh,l0n as mi,dSn as mj,pSn as mk,fSn as ml,_Sn as mm,pEr as mn,_Er as mo,BRe as mp,bN as mq,ESn as mr,Lgn as ms,lje as mt,kAt as mu,Axr as mv,YI as mw,Jvr as mx,_Ct as my,e1r as mz,vB as n,Nbr as n$,Q1r as n0,U1r as n1,q1r as n2,j1r as n3,L1r as n4,ebr as n5,Z1r as n6,W1r as n7,z1r as n8,X1r as n9,pbr as nA,d2r as nB,Xbr as nC,bbr as nD,Hbr as nE,s2r as nF,cbr as nG,jbr as nH,n2r as nI,Rbr as nJ,e2r as nK,SEt as nL,Pbr as nM,qbr as nN,zbr as nO,kEt as nP,a2r as nQ,r2r as nR,f2r as nS,c2r as nT,Rw as nU,Wbr as nV,_2r as nW,Gbr as nX,hye as nY,M_ as nZ,i2r as n_,mye as na,G1r as nb,AEt as nc,p2r as nd,Dbr as ne,Bbr as nf,t2r as ng,Ubr as nh,Ebr as ni,obr as nj,abr as nk,lLe as nl,Kbr as nm,ACt as nn,Qbr as no,Ybr as np,u2r as nq,nbr as nr,ybr as ns,vbr as nt,mbr as nu,_br as nv,gbr as nw,hbr as nx,Jbr as ny,Abr as nz,Cwr as o,v2r as o$,l2r as o0,Zbr as o1,EEt as o2,vu as o3,fbr as o4,sbr as o5,ibr as o6,Obr as o7,_Le as o8,Mbr as o9,jEt as oA,tSr as oB,B2r as oC,PCt as oD,NCt as oE,ugn as oF,Zhn as oG,HEt as oH,DEt as oI,REt as oJ,DCt as oK,ICt as oL,W2r as oM,ign as oN,eSr as oO,T2r as oP,C2r as oQ,QZ as oR,qk as oS,KOe as oT,U2r as oU,w2r as oV,E2r as oW,P2r as oX,Qhn as oY,qEt as oZ,zEt as o_,Lbr as oa,dbr as ob,Vbr as oc,Chn as od,ui as oe,Lhn as of,jhn as og,tbr as oh,Fmt as oi,$hn as oj,F2r as ok,Q2r as ol,JEt as om,WEt as on,D2r as oo,A2r as op,pgn as oq,iSr as or,VEt as os,UEt as ot,Vhn as ou,zhn as ov,Uhn as ow,qhn as ox,Bhn as oy,MEt as oz,BAt as p,K2r as p$,y2r as p0,S2r as p1,b2r as p2,GEt as p3,$Et as p4,ggn as p5,YEt as p6,sgn as p7,z2r as p8,ZZ as p9,Jhn as pA,ygn as pB,Khn as pC,mgn as pD,tgn as pE,rSr as pF,q2r as pG,RCt as pH,MCt as pI,OCt as pJ,FCt as pK,pye as pL,_ye as pM,ngn as pN,KEt as pO,Z2r as pP,J2r as pQ,h2r as pR,gye as pS,aSr as pT,dgn as pU,nSr as pV,N2r as pW,hgn as pX,X2r as pY,Y2r as pZ,agn as p_,XI as pa,g2r as pb,rgn as pc,XEt as pd,hLe as pe,H2r as pf,jme as pg,eQ as ph,XOe as pi,$2r as pj,FEt as pk,ogn as pl,Whn as pm,j2r as pn,Ghn as po,fgn as pp,Hhn as pq,G2r as pr,R2r as ps,lgn as pt,x2r as pu,cgn as pv,M$ as pw,fye as px,dye as py,_gn as pz,Swr as q,CLe as q$,egn as q0,k2r as q1,I2r as q2,LEt as q3,O2r as q4,Xhn as q5,M2r as q6,V2r as q7,mLe as q8,PEt as q9,M1r as qA,m2r as qB,Rhn as qC,Mhn as qD,Ohn as qE,Fhn as qF,u1r as qG,f1r as qH,l1r as qI,khn as qJ,Ehn as qK,rbr as qL,Sgn as qM,vgn as qN,bLe as qO,jLe as qP,LLe as qQ,BLe as qR,Qkt as qS,Kkt as qT,eAt as qU,OLe as qV,RLe as qW,$Le as qX,ILe as qY,NLe as qZ,TLe as q_,IEt as qa,NEt as qb,OEt as qc,L2r as qd,BEt as qe,Yhn as qf,sA as qg,$S as qh,qme as qi,cSr as qj,Phn as qk,Nhn as ql,oSr as qm,Dhn as qn,Ihn as qo,a1r as qp,c1r as qq,WOe as qr,sD as qs,bEt as qt,Tbr as qu,kbr as qv,sSr as qw,jmt as qx,Lmt as qy,Ahn as qz,n0 as r,mAt as r$,bAt as r0,HLe as r1,xye as r2,mee as r3,_At as r4,rAt as r5,FLe as r6,SLe as r7,xLe as r8,tQ as r9,j$ as rA,vye as rB,ULe as rC,WLe as rD,hAt as rE,AAt as rF,wAt as rG,Fw as rH,Sye as rI,aAt as rJ,j_ as rK,vAt as rL,Jkt as rM,CAt as rN,uAt as rO,oAt as rP,Lu as rQ,ELe as rR,yye as rS,aD as rT,Wkt as rU,bye as rV,Xkt as rW,Zkt as rX,kLe as rY,tAt as rZ,vLe as r_,bgn as ra,fAt as rb,lAt as rc,tht as rd,DAt as re,zme as rf,DLe as rg,PLe as rh,jkt as ri,Fkt as rj,qkt as rk,Bkt as rl,iAt as rm,eht as rn,MLe as ro,ALe as rp,EAt as rq,cAt as rr,Ukt as rs,sAt as rt,xAt as ru,wLe as rv,Ykt as rw,JLe as rx,Hkt as ry,pAt as rz,zAt as s,PAt as s$,Qmt as s0,sxr as s1,VSr as s2,USr as s3,txr as s4,SAt as s5,Cxr as s6,qSr as s7,zSr as s8,xxr as s9,$Sr as sA,Pxr as sB,WSr as sC,lxr as sD,jSr as sE,fxr as sF,_xr as sG,BSr as sH,mxr as sI,kxr as sJ,Sxr as sK,NSr as sL,gxr as sM,qLe as sN,yAt as sO,Gkt as sP,Jme as sQ,vxr as sR,Ume as sS,fSr as sT,dSr as sU,pxr as sV,Wme as sW,gAt as sX,NAt as sY,Txr as sZ,TAt as s_,OSr as sa,RSr as sb,cxr as sc,hSr as sd,ySr as se,Exr as sf,JSr as sg,wSr as sh,ISr as si,mSr as sj,gSr as sk,dAt as sl,yxr as sm,YSr as sn,ZSr as so,wgn as sp,TSr as sq,XSr as sr,KSr as ss,GSr as st,PSr as su,YOe as sv,QSr as sw,rxr as sx,zLe as sy,LSr as sz,Pa as t,bSr as t0,xSr as t1,vSr as t2,SSr as t3,pSr as t4,_Sr as t5,hxr as t6,xgn as t7,HSr as t8,Dxr as t9,ivr as tA,nvr as tB,rwn as tC,whn as tD,Tgn as tE,Cgn as tF,Egn as tG,kgn as tH,Agn as tI,gEr as tJ,s0n as tK,a0n as tL,V0n as tM,U0n as tN,J0n as tO,Nbn as tP,w2n as tQ,T2n as tR,kQr as tS,P2n as tT,R2n as tU,F2n as tV,M2n as tW,aSn as tX,cSn as tY,srn as tZ,Hxn as t_,bxr as ta,IAt as tb,ixr as tc,wxr as td,VLe as te,exr as tf,nxr as tg,FSr as th,oxr as ti,DSr as tj,CSr as tk,ESr as tl,kSr as tm,ASr as tn,axr as to,MSr as tp,dxr as tq,rvr as tr,XTt as ts,kmt as tt,Nme as tu,tvr as tv,evr as tw,PG as tx,QTt as ty,ZTt as tz,Gd as u,bo as v,Dg as w,e_ as x,_en as y,oFt as z};
|