@volter/game-editor 0.5.133 → 0.5.135
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 +2204 -2204
- package/dist/assets/{AssetBudgetPanel-BnRU2kQB.js → AssetBudgetPanel-DHDxdcjI.js} +3 -3
- package/dist/assets/{AudioViewer-APY_kwxf.js → AudioViewer-BNZQHDg4.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-C_UNDzXm.js → CanvasBoardDocument-hKTAuRey.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-n-h94wHo.js → CanvasSceneViewport-C2K4aFsE.js} +1 -1
- package/dist/assets/{ColorInput-wbKatDDA.js → ColorInput-BiEIV7ay.js} +1 -1
- package/dist/assets/{ColorPicker-CJ09zfEX.js → ColorPicker-tL7QuZuq.js} +1 -1
- package/dist/assets/{EntityModelDocument-1iHP5Yws.js → EntityModelDocument-5D4_EJ1V.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-Cqj5d6_6.js → EnvironmentAssetDocument-DGwonjpr.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-DykRF4LC.js → GameplaySessionTimeline-aU04h32D.js} +1 -1
- package/dist/assets/{ImageViewer-DwbhIBCP.js → ImageViewer-B_EV4B-Y.js} +1 -1
- package/dist/assets/InspectorObjectPreview-BWtsOURe.js +1 -0
- package/dist/assets/{JsonAssetDocument-B6gQHP_k.js → JsonAssetDocument-CI-VEvHK.js} +1 -1
- package/dist/assets/{LiveModuleDocument-SBoCwIoE.js → LiveModuleDocument-A55_Ap0w.js} +1 -1
- package/dist/assets/{LutAssetDocument-BuWiW1Aw.js → LutAssetDocument-C0D23zLT.js} +1 -1
- package/dist/assets/{ModelAssetDocument-BXkgYOqI.js → ModelAssetDocument-C2Iwdl51.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-6pJucZf5.js → NonThreeAuthoringBootstrap-CcN-v_vU.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-ALMB9mRe.js → Object3DDocumentToolbar-CmQ2FwOD.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-nrhxhWxf.js +2 -0
- package/dist/assets/{Object3DPreview-CJApeNHw.js → Object3DPreview-BdNrtrgI.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-Cd8JLsmA.js → OnlineAssetDetail-Bt3SSxk5.js} +1 -1
- package/dist/assets/{PlayBar-DGrUfgBZ.js → PlayBar-IaADBOOU.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-C5v0bZtn.js → QuarksAssetDocument-DIruslou.js} +1 -1
- package/dist/assets/{ReactCanvasControls-M_9_8r5E.js → ReactCanvasControls-BpPOAB1i.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-D2hkUn8m.js → RootSelectionOverlay-Bha7b7g8.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-BmUKEHj6.js → ShaderAssetDocument-DvHNu5O2.js} +1 -1
- package/dist/assets/{ShadowEditor-DS5CSZPa.js → ShadowEditor-LF5W34RB.js} +1 -1
- package/dist/assets/{SourceAssetViewer-B2ZVLQeS.js → SourceAssetViewer-CuinHm6v.js} +1 -1
- package/dist/assets/StageHost-C8sptoIR.js +2 -0
- package/dist/assets/{StoryPreviewMount-BKzvcFEZ.js → StoryPreviewMount-BMTtfMsu.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-Cmnf4bFN.js → ThreeBoardDocument-1LIOqdcA.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-Bvf6_SKQ.js → ThreeIsolationSceneContent-D-viEHX8.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-ODzhSGUY.js → ToolObject3DPreview-CoSjBUeM.js} +1 -1
- package/dist/assets/{Toolbar-Q6UFDDfz.js → Toolbar-BCviZ4hw.js} +1 -1
- package/dist/assets/{TransientHint-nzWtXMB3.js → TransientHint-xKLY44J3.js} +1 -1
- package/dist/assets/{VideoViewer-Yew5uBNv.js → VideoViewer-Ccuo8SbQ.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-DzKK2NTI.js → ViewportShadingMenu-2cP_H7Ma.js} +1 -1
- package/dist/assets/{active-ingest-B7Bx6Kjy.js → active-ingest-5EEDH3if.js} +2 -2
- package/dist/assets/{animation-clock-ua6aqPSU.js → animation-clock-D9LB5smr.js} +1 -1
- package/dist/assets/{animation-mixers.service-CzIth3sy.js → animation-mixers.service-CpAQO3GY.js} +1 -1
- package/dist/assets/{animation-timeline.utility-DX06Ydcc.js → animation-timeline.utility-BI25zuOA.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-Dz9btntn.js → asset-budget-asset.menu-cpAHllXs.js} +1 -1
- package/dist/assets/{asset-budget.action-BaYK7AMY.js → asset-budget.action-D91HsFo6.js} +1 -1
- package/dist/assets/{asset-budget.document-nfLfGypF.js → asset-budget.document-DKhAbxa-.js} +1 -1
- package/dist/assets/{asset-budget.menu-ButY7KmH.js → asset-budget.menu-Dv_hRhqg.js} +1 -1
- package/dist/assets/{asset-editor-persistence-C02issMD.js → asset-editor-persistence-DvrmJ4jX.js} +1 -1
- package/dist/assets/{asset-loaders-DH3zQQyY.js → asset-loaders-DmsTVRFA.js} +1 -1
- package/dist/assets/{asset-preview-CUSDAKVD.js → asset-preview-DVSFT7SS.js} +1 -1
- package/dist/assets/{audio-unlock.service-BfHkRn4Q.js → audio-unlock.service-D_hgqktK.js} +1 -1
- package/dist/assets/{audio.utility-DnYmvJaJ.js → audio.utility-BZi7S3On.js} +1 -1
- package/dist/assets/autoplay.service-t1c91HxR.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-CMds1oHl.js → babylon-authoring-adapter-BJIGsMEZ.js} +1 -1
- package/dist/assets/{binding-resolver-DAZbNLvl.js → binding-resolver-yBwth89-.js} +2 -2
- package/dist/assets/blender-motion-worker-ECrqnoHW.js +1 -0
- package/dist/assets/{blender-node-editor.document-Cn_RaJd_.js → blender-node-editor.document-DolFex2j.js} +1 -1
- package/dist/assets/{blender-properties-tab-DRdodc8X.js → blender-properties-tab-Be5MXZig.js} +1 -1
- package/dist/assets/{blender-runtime-host-BLx1pw_g.js → blender-runtime-host-BQ22-Fpm.js} +1 -1
- package/dist/assets/{blender-runtime-skin-cc-flxJ4.js → blender-runtime-skin-DKHV6b2q.js} +43 -43
- package/dist/assets/{blender-runtime.document-D4Ay0UIU.js → blender-runtime.document-L66K1h2q.js} +2 -2
- package/dist/assets/{blender-screenshot.menu-BKeeQIpY.js → blender-screenshot.menu-B_olV65B.js} +1 -1
- package/dist/assets/{blender-timeline.document-VBQuZfml.js → blender-timeline.document-OeW12fJm.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-3P89aBqA.js → blender-uv-editor.document-CCE1_Fjr.js} +1 -1
- package/dist/assets/{blender-version.status-DhwfFeCK.js → blender-version.status-CcNWuPxA.js} +1 -1
- package/dist/assets/{blender.command-wYCfmF07.js → blender.command-gGyT3A0Q.js} +1 -1
- package/dist/assets/{board-guides-DhqfTj5n.js → board-guides-CIhq0Sbd.js} +1 -1
- package/dist/assets/{bridge.command-DsDiqGCg.js → bridge.command-Du9l4KRx.js} +3 -3
- package/dist/assets/{browserAll-DOR1aAYd.js → browserAll-DEgvPd5A.js} +1 -1
- package/dist/assets/{build-player.document-CjucTAel.js → build-player.document-yRmbh7W2.js} +1 -1
- package/dist/assets/{build-profiles.document-OSj4WtI6.js → build-profiles.document-D2MP3imJ.js} +1 -1
- package/dist/assets/{build-progress.status-DpFB4xx7.js → build-progress.status-QY6WMyc4.js} +1 -1
- package/dist/assets/{build-session-5PJwpLFV.js → build-session-DC5GZ3DQ.js} +1 -1
- package/dist/assets/{build.action-KWfvGCPe.js → build.action-B7wUwNnJ.js} +1 -1
- package/dist/assets/{build.command-BDvxmPia.js → build.command-BWsI5Ueg.js} +1 -1
- package/dist/assets/{build.header-DZdsvA42.js → build.header-tZ0wvQLR.js} +1 -1
- package/dist/assets/{build.menu-DnRnkEAP.js → build.menu-B5JhkoT1.js} +1 -1
- package/dist/assets/{build.service-D4LFhhty.js → build.service-DU0G9SvZ.js} +1 -1
- package/dist/assets/{camera-C6YJy8Z5.js → camera-B16bx30W.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-CzHA8sdx.js → camera-runtime.inspector--8LumKgx.js} +1 -1
- package/dist/assets/{canvas-design-mount-Csy3XYVZ.js → canvas-design-mount-DLpUud4y.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-BO4oWzG7.js → canvas-entry-runtime-Btln7THA.js} +2 -2
- package/dist/assets/{canvas-preview-frames-D4WhZx86.js → canvas-preview-frames-hUiRfTNo.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-VWrbKO8n.js → canvas-story-capture.service-D4Uk1AxK.js} +2 -2
- package/dist/assets/{capability-coverage-BVGLH6f3.js → capability-coverage-3wZkRo7W.js} +1 -1
- package/dist/assets/{collaboration-presence-BxAjjabG.js → collaboration-presence-CCL71T0o.js} +1 -1
- package/dist/assets/{collider-D6Z5sU1J.js → collider-CbxsgmWL.js} +1 -1
- package/dist/assets/{component-board.service-FV3r_rY1.js → component-board.service-CXwworM0.js} +2 -2
- package/dist/assets/{component-board.service-BPJ1jCbB.js → component-board.service-ChMB-pU1.js} +2 -2
- package/dist/assets/{component-board.service-BN9KXIEI.js → component-board.service-CwevhTxY.js} +2 -2
- package/dist/assets/{component-contracts.service-6QSOPpXN.js → component-contracts.service-B3Yrn-qm.js} +1 -1
- package/dist/assets/{component-instance-root-BoFJeP3p.js → component-instance-root-DsmCGX40.js} +1 -1
- package/dist/assets/{component-verbs.command-2-turNau.js → component-verbs.command-BXQ96Jx4.js} +1 -1
- package/dist/assets/{component-verbs.service-DfUDkdGk.js → component-verbs.service-ByTx_24k.js} +1 -1
- package/dist/assets/{config-Bztkil1G.js → config-CmlogGx1.js} +2 -2
- package/dist/assets/{configurations-DuojTa-o.js → configurations-Dm-0m9Xo.js} +1 -1
- package/dist/assets/{connection.status-CGSGpay5.js → connection.status-BXgUyNWa.js} +1 -1
- package/dist/assets/{constraints.inspector-CCdKAdlH.js → constraints.inspector-29yLh17h.js} +1 -1
- package/dist/assets/{content-bounds-Co-PYlfQ.js → content-bounds-CKyqwWXn.js} +1 -1
- package/dist/assets/{contract-system-adapters-Dyt4JsZ2.js → contract-system-adapters-kobU6S3P.js} +1 -1
- package/dist/assets/{coverage.service-DkqUci3V.js → coverage.service-BxQTn5sd.js} +1 -1
- package/dist/assets/{create-runtime-DNZHaW7E.js → create-runtime-BGWCDacY.js} +1 -1
- package/dist/assets/{curve-Q4ixuhFA.js → curve-BiV0q4A3.js} +1 -1
- package/dist/assets/{data-asset-PPdHjKmp.js → data-asset-DdXXV51u.js} +1 -1
- package/dist/assets/{data-ref-C6iWA_I5.js → data-ref-DtKM0ekt.js} +1 -1
- package/dist/assets/{debug-bridge-pOOsQYPl.js → debug-bridge-jmCDlPiX.js} +1 -1
- package/dist/assets/{debug-registry-BMJTM1HD.js → debug-registry-Be63j2Mr.js} +1 -1
- package/dist/assets/{deferred-ingest-play-nOdDr56P.js → deferred-ingest-play-D1FWeSDi.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-69gW0Lse.js → design-time-canvas-mount-C2ZWDlkZ.js} +2 -2
- package/dist/assets/{design-time-layers-e7s2mfFg.js → design-time-layers-BQa8hlgL.js} +1 -1
- package/dist/assets/{design-time-mount.service-XiqsUVLQ.js → design-time-mount.service-CVJWtupB.js} +2 -2
- package/dist/assets/{design-time-mount.service-BlVPZvQM.js → design-time-mount.service-CvGlSAKG.js} +2 -2
- package/dist/assets/{design-time-react-mount-DEUIOsob.js → design-time-react-mount-COx2oYkW.js} +1 -1
- package/dist/assets/{document-preview-three-CJkokdk6.js → document-preview-three-CbIS_Aca.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DcCpYSGq.js → dom-authoring-adapter-tQBQ_1xs.js} +1 -1
- package/dist/assets/{draco3d-DZIK4PnL.js → draco3d-C_nv0vSu.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-D--lxJv-.js → edit-mode-audio.service-NlZIq_ZD.js} +1 -1
- package/dist/assets/{edit-mode-authoring-DvttMmGa.js → edit-mode-authoring-DbcZXYOM.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-C2I6_G9e.js → edit-mode-networking.service-BYO3SvM8.js} +1 -1
- package/dist/assets/{editor-api-C8B9DKXH.js → editor-api-DU9Nbpm5.js} +1 -1
- package/dist/assets/{editor-layers-QQ71XEXw.js → editor-layers-_Gcy52mS.js} +1 -1
- package/dist/assets/{editor-shell-store-CaTC9o0j.js → editor-shell-store-DcbczB-I.js} +1 -1
- package/dist/assets/{entity-object-gLXLhu07.js → entity-object-hOX0jkMo.js} +1 -1
- package/dist/assets/{extend-BAs8mBac.js → extend-BFa8yX2b.js} +1 -1
- package/dist/assets/{fork-menu-YtIgQlm6.js → fork-menu-DnlFd3lk.js} +1 -1
- package/dist/assets/{frame-debugger-store-BCva72ZS.js → frame-debugger-store-DvIUfGjd.js} +1 -1
- package/dist/assets/{game-contract-seams-BpZs1yjv.js → game-contract-seams-CB0AOLdl.js} +1 -1
- package/dist/assets/{game-css-scope-transform-rixXd3RE.js → game-css-scope-transform-BePfCj3N.js} +1 -1
- package/dist/assets/{game-document.service-BI067uXs.js → game-document.service-Y4MCpEG2.js} +1 -1
- package/dist/assets/{game-eval.command-BWsYFDdH.js → game-eval.command-DLlHsT-7.js} +1 -1
- package/dist/assets/{game-module-access-BVnu_YF6.js → game-module-access-nUAwk1dj.js} +1 -1
- package/dist/assets/{game-network-YNnA__rm.js → game-network-BNeDxziF.js} +3 -3
- package/dist/assets/{gameplay-export-CYs9Zf28.js → gameplay-export-Bo-oK6Gq.js} +1 -1
- package/dist/assets/{gameplay-replay-onLTM9_v.js → gameplay-replay-0cZ9wkDO.js} +1 -1
- package/dist/assets/{gameplay.command-BL9yIUkk.js → gameplay.command-rqy8cEAf.js} +1 -1
- package/dist/assets/{generation-jobs-IpL1oPd3.js → generation-jobs-DNAW8eNU.js} +1 -1
- package/dist/assets/{generation.service-B8Nhb_tQ.js → generation.service-CR9vGnlh.js} +1 -1
- package/dist/assets/{generations-IQHXLtg8.js → generations-gowHWx4e.js} +1 -1
- package/dist/assets/{generations.status-BkLggMhB.js → generations.status-Dhp03MBg.js} +1 -1
- package/dist/assets/{hierarchy-marks-C9FKSQHH.js → hierarchy-marks-DYUvG4lt.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-sdG-aTgR.js → hosted-asset-materialization-ick1zhVG.js} +1 -1
- package/dist/assets/{index-BGKXoVeu.js → index-B0UXNGe3.js} +1 -1
- package/dist/assets/{index-Dw9Rpena.js → index-BJd--nme.js} +1 -1
- package/dist/assets/{index-B-vtuqkx.js → index-BSF96KzC.js} +1 -1
- package/dist/assets/{index-CcrH9u0V.js → index-By7rtNst.js} +1 -1
- package/dist/assets/{index-nySnA9Ug.js → index-C6b9kkV0.js} +7 -7
- package/dist/assets/{index-CkjrzX4P.js → index-CIJAwE7l.js} +2 -2
- package/dist/assets/{index-6X2RM7YY.js → index-Cq-3G_01.js} +1 -1
- package/dist/assets/{index-DoSChd6Z.js → index-Cvqad4qf.js} +1 -1
- package/dist/assets/{index-Bug1xbYx.js → index-DN_ydMe4.js} +1 -1
- package/dist/assets/{inference-diagnostics-DuPm6O0g.js → inference-diagnostics-DNhFOXFZ.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BlkNjuqD.js → ingest-boot-viewport-Di4Sb09a.js} +1 -1
- package/dist/assets/{ingest-siblings-B8-3Jax7.js → ingest-siblings-BmG05Dep.js} +1 -1
- package/dist/assets/{ingest-source-persistence-Bgpi9aX2.js → ingest-source-persistence-Dz_7hVqh.js} +1 -1
- package/dist/assets/{ingest.service-CiB-mBHW.js → ingest.service-BGGBXhbP.js} +1 -1
- package/dist/assets/{inspect-ecnGo6h9.js → inspect-BRJFBB2z.js} +1 -1
- package/dist/assets/instances.command-q-B_dgED.js +1 -0
- package/dist/assets/{json-history-resource-Dp7Ra99p.js → json-history-resource-D4GYZYcB.js} +1 -1
- package/dist/assets/{layered-pick-B0x-Imc-.js → layered-pick-D1CaaJD4.js} +1 -1
- package/dist/assets/{light-CqVkPR2u.js → light-DY_lN4WQ.js} +1 -1
- package/dist/assets/{live-project-verbs-BPKYAVhO.js → live-project-verbs-BVyxYNhA.js} +1 -1
- package/dist/assets/{machine.document-vhHf8j8j.js → machine.document-ChSDKagD.js} +1 -1
- package/dist/assets/{machines.finder-CYGcoUpx.js → machines.finder-zJZEKJbn.js} +1 -1
- package/dist/assets/{material-C0kJ03PJ.js → material-DOuhah-I.js} +1 -1
- package/dist/assets/{material-factory-BYajdLke.js → material-factory-DCAwUIMb.js} +1 -1
- package/dist/assets/{mesh-CQC683US.js → mesh-BBgqQ4tw.js} +1 -1
- package/dist/assets/{model-asset-sections.service-Dh79mFYs.js → model-asset-sections.service-D5_Qnu8F.js} +1 -1
- package/dist/assets/{model-inspection-KJJ116pG.js → model-inspection-Ce70HeHy.js} +1 -1
- package/dist/assets/{model-thumbnail-Cx5Eb_fd.js → model-thumbnail-oBpbFAcj.js} +1 -1
- package/dist/assets/{models.finder-DIkds1Nj.js → models.finder-DnEKW1nB.js} +1 -1
- package/dist/assets/{module-mode-CPoFoRzV.js → module-mode-Z2Pw8_cG.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-BrZ0PEjk.js → mount-canvas-ingest-root-q8qGzO0M.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-BcP-acNo.js → mount-dom-ingest-root-mqtEmyUH.js} +2 -2
- package/dist/assets/{mount-ingest-root-Wf5fhTMH.js → mount-ingest-root-CnknLsAH.js} +2 -2
- package/dist/assets/{mount-manifest-CXdSgRBq.js → mount-manifest-RVw-dK1A.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-VINQZrMq.js → mount-three-ingest-root-B4T-Y3Qv.js} +1 -1
- package/dist/assets/{mounted-authoring-D7_0P8Yg.js → mounted-authoring-BW8axnm4.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-esB5WiW7.js → mounted-story-viewport-source-bf12XIaz.js} +1 -1
- package/dist/assets/{native-debug-module-DiyEiCfH.js → native-debug-module-Be_Zu0XE.js} +1 -1
- package/dist/assets/{navigation-CCfxrKnm.js → navigation-U-2TvMMp.js} +1 -1
- package/dist/assets/{navmesh.menu-3oJTvzhD.js → navmesh.menu-Dwv0BlFc.js} +1 -1
- package/dist/assets/{navmesh.service-CIqD64Ey.js → navmesh.service-D0WfDvfc.js} +1 -1
- package/dist/assets/network-observer.service-Bp4Pp-ZK.js +1 -0
- package/dist/assets/{network.utility-CEASCNxw.js → network.utility-DqtzEO6P.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-B46cPnBb.js → object3d-document-session-registry--r1BseN3.js} +2 -2
- package/dist/assets/{oid-transform-BzFi809X.js → oid-transform-i2EGkRgu.js} +1 -1
- package/dist/assets/{particles-er7NMOfH.js → particles-B-kl7baZ.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-DJcOr94r.js → pixi-authoring-adapter-B0XPfm9f.js} +1 -1
- package/dist/assets/{pixi-live-write-target-DhHlW0I4.js → pixi-live-write-target-DKSUcwat.js} +1 -1
- package/dist/assets/{play.command-CMH6uH3C.js → play.command-ov-jkz3c.js} +2 -2
- package/dist/assets/{presentation-DfHrJ94Q.js → presentation-DHSxfQfh.js} +1 -1
- package/dist/assets/{product-KBRPPO6a.js → product-CCDSVopY.js} +1 -1
- package/dist/assets/{profiler.action-Bc7TMkqb.js → profiler.action-CoEPogPx.js} +1 -1
- package/dist/assets/{profiler.menu-BcZq6Rmy.js → profiler.menu-HOvnHzpD.js} +1 -1
- package/dist/assets/{profiler.utility-CksJa-lj.js → profiler.utility-DArumoBa.js} +1 -1
- package/dist/assets/{project-authoring-session-C9_9Hb8-.js → project-authoring-session-OdoqMUaI.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-31lt8g6y.js → properties-bone-constraints.inspector-B6sFLmg_.js} +1 -1
- package/dist/assets/{properties-bone.inspector-FxL_XMOQ.js → properties-bone.inspector-Cq0j1Tg_.js} +1 -1
- package/dist/assets/{properties-collection.inspector-DhcrjTYn.js → properties-collection.inspector-DYMwSmQY.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-Coe1A1Dd.js → properties-constraints.inspector-CX5gxqju.js} +1 -1
- package/dist/assets/{properties-data.inspector-YKEhk2KI.js → properties-data.inspector-cL1TZwxI.js} +1 -1
- package/dist/assets/{properties-material.inspector-B2UhDK1n.js → properties-material.inspector-DU1wOJce.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-uOwwcmRf.js → properties-modifiers.inspector-CmO1PZIA.js} +1 -1
- package/dist/assets/{properties-object.inspector-D8kiIU1x.js → properties-object.inspector-CFvqMWdn.js} +1 -1
- package/dist/assets/{properties-output.inspector-RaoeccQZ.js → properties-output.inspector-DC-O8hue.js} +1 -1
- package/dist/assets/{properties-particles.inspector-D0Jb5Ts7.js → properties-particles.inspector-DfWIbmzQ.js} +1 -1
- package/dist/assets/{properties-physics.inspector-BIubmBiu.js → properties-physics.inspector-xx8ml3qs.js} +1 -1
- package/dist/assets/{properties-render.inspector-BPamVV35.js → properties-render.inspector-C8Hq7knh.js} +1 -1
- package/dist/assets/{properties-scene.inspector-B2mjYWyc.js → properties-scene.inspector-CCGXsMCm.js} +1 -1
- package/dist/assets/{properties-texture.inspector-iH7Hdsai.js → properties-texture.inspector-CLWq44Va.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-BXjmwWhZ.js → properties-view-layer.inspector-Bpry4Iqh.js} +1 -1
- package/dist/assets/{properties-world.inspector-CUhszQm_.js → properties-world.inspector-nHZ1JkkY.js} +1 -1
- package/dist/assets/{r3f-design-session-BT_FNbxu.js → r3f-design-session-Cirrj19r.js} +2 -2
- package/dist/assets/{r3f-physics-binding-BWdDgRxd.js → r3f-physics-binding-DsYLHa6f.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-B0E5IqBw.js → r3f-source-authoring-adapter-C0STpGb7.js} +1 -1
- package/dist/assets/{react-canvas-navigation-Dr5dRfTS.js → react-canvas-navigation-DijWKFG_.js} +1 -1
- package/dist/assets/{react-inspector.service-BiPd_duU.js → react-inspector.service-CS-ZEU5N.js} +1 -1
- package/dist/assets/{react-story-board-CdtjLDYv.js → react-story-board-BMNsbya2.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-BRNjkQwe.js → react-three-rapier.esm-CN0eNYep.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-BydYut9T.js → react-world-authoring-adapter-4FofK2_S.js} +1 -1
- package/dist/assets/{realm-services-BsB1S4Eh.js → realm-services-CnW99EpW.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-Ci5hFo5Q.js → reflection-probe-capture.inspector-Dgy-8-1h.js} +1 -1
- package/dist/assets/{registry-BiYDDckl.js → registry-CmQvHjp6.js} +1 -1
- package/dist/assets/{relative-import-specifier-CwidALJP.js → relative-import-specifier-Dk9yRpxL.js} +1 -1
- package/dist/assets/{render-env-BchkLjDP.js → render-env-O4VU4xhx.js} +1 -1
- package/dist/assets/{render-features-BYXvPGUA.js → render-features-ChdWrVy0.js} +1 -1
- package/dist/assets/{render-settings-DGLz2Ame.js → render-settings-BCZAvPJi.js} +1 -1
- package/dist/assets/{resolve-three-DetBiJb1.js → resolve-three-Dck88bio.js} +3 -3
- package/dist/assets/{root-seam-contract-bbvHIRf5.js → root-seam-contract-ChFKhMGt.js} +1 -1
- package/dist/assets/{run-selection-BBeVaGgf.js → run-selection-C6EqhdoA.js} +1 -1
- package/dist/assets/{scene-capture-B1qVmZZy.js → scene-capture-Bui4ruWh.js} +1 -1
- package/dist/assets/{scene-document.service-CkqKSFhN.js → scene-document.service-DSdvp7Ce.js} +2 -2
- package/dist/assets/{scene-framing-DmGFFnxb.js → scene-framing-DPK5z1LB.js} +1 -1
- package/dist/assets/{seeded-random-DY3-ydOg.js → seeded-random-BJvC1dTR.js} +1 -1
- package/dist/assets/{setup-renderer-C1HERM3i.js → setup-renderer-CwpGLiQN.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-Deft82fS.js → source-object3d-authoring-adapter-Bdq-N_ih.js} +1 -1
- package/dist/assets/{source-persistence-backend-DxRc3Vmw.js → source-persistence-backend-wZj2Qj3g.js} +1 -1
- package/dist/assets/{stage-keyboard-CtFcg-KZ.js → stage-keyboard-CNNJiLBS.js} +1 -1
- package/dist/assets/{stage-overlay-set-DSS29nHE.js → stage-overlay-set-BKAbHMto.js} +1 -1
- package/dist/assets/{stage-presence-markers-CCO8UamH.js → stage-presence-markers-J7TV-MHA.js} +1 -1
- package/dist/assets/{stage-transform-tools-Kdg5eF5v.js → stage-transform-tools-B5kYo-6B.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-DXhgWBOp.js → standard-viewport-dressing-DSi6qJFC.js} +1 -1
- package/dist/assets/{state-watch.action-fSIdJUGZ.js → state-watch.action-DTwXKaRA.js} +1 -1
- package/dist/assets/{state-watch.menu-Bfww1_mP.js → state-watch.menu-BcV_iOZY.js} +1 -1
- package/dist/assets/{state-watch.utility-DUSmbc6X.js → state-watch.utility-LiVERTu5.js} +1 -1
- package/dist/assets/{story-capture-BxgNeexV.js → story-capture-Bp8iYZLe.js} +1 -1
- package/dist/assets/{story-documents-C1oR_8cj.js → story-documents-f3Ug4YBp.js} +1 -1
- package/dist/assets/{story-documents.service-BS2hN2Ce.js → story-documents.service-CO7oQCl7.js} +1 -1
- package/dist/assets/{story-documents.service-uV8KFn9S.js → story-documents.service-XIecBTKZ.js} +1 -1
- package/dist/assets/{story-media-presence-COUd6cak.js → story-media-presence-CZDChC1Q.js} +1 -1
- package/dist/assets/{story-pixi-preview-C5xQCGuv.js → story-pixi-preview-DVY_KTxj.js} +1 -1
- package/dist/assets/{story-presentation-CMvpmKUb.js → story-presentation-CNwvXmP8.js} +1 -1
- package/dist/assets/{story-three-preview-e0faozfl.js → story-three-preview-EAGsWdvg.js} +2 -2
- package/dist/assets/{studio-environment-B2vsjqle.js → studio-environment-DPyvNCMf.js} +1 -1
- package/dist/assets/{surface-state-tKDJ4ZAb.js → surface-state-DDvqISvA.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-jY7NkRtv.js → syntactic-prop-specs-Xrvbz2vw.js} +1 -1
- package/dist/assets/{team-playtest.service-BptLup8r.js → team-playtest.service-ak53AQFu.js} +1 -1
- package/dist/assets/{three-DNjStL2y.js → three-CJgQeY1W.js} +1 -1
- package/dist/assets/{three-authoring-adapter-DFD9SKE4.js → three-authoring-adapter-D-iyhWwy.js} +1 -1
- package/dist/assets/three-authoring.service-BphzI5K_.js +2 -0
- package/dist/assets/{three-ingest-runtime-elb0lM0i.js → three-ingest-runtime-BjO_n3E-.js} +1 -1
- package/dist/assets/{three-integration-D-x0z186.js → three-integration-YGBUQAWW.js} +2 -2
- package/dist/assets/three-integration.service-CC5Hzqn_.js +1 -0
- package/dist/assets/{three-projection-core-C_GCcPfW.js → three-projection-core-BjkdjllS.js} +1 -1
- package/dist/assets/{three-state-BU_Et2fb.js → three-state-CvU5OXTi.js} +1 -1
- package/dist/assets/{three-story-capture.service-BcBLj5Ns.js → three-story-capture.service-DikE7JrC.js} +2 -2
- package/dist/assets/{three-story-model-DvgpSf5W.js → three-story-model-aKieakmn.js} +1 -1
- package/dist/assets/{three-viewport-presentation-DU4LbXCX.js → three-viewport-presentation-5zDCaTKw.js} +1 -1
- package/dist/assets/{transform-mode-request-C9geEmE8.js → transform-mode-request-05CQoTKg.js} +1 -1
- package/dist/assets/{transport-strip-C8yTDVnw.js → transport-strip-B0VIsVkq.js} +1 -1
- package/dist/assets/transport.header-CAvPxCpi.js +1 -0
- package/dist/assets/{tuples-CHM9-MeZ.js → tuples-BteMo3KQ.js} +1 -1
- package/dist/assets/{ui-board-document-B2BrHCE_.js → ui-board-document-CB4DQEPW.js} +2 -2
- package/dist/assets/{user-data-BiloulL-.js → user-data-DKfhN35w.js} +1 -1
- package/dist/assets/{utility-view-state-BHfsAN18.js → utility-view-state-DZ2ujJyw.js} +1 -1
- package/dist/assets/{viewport-door-CJXG2Jxo.js → viewport-door-BrYqbiwp.js} +1 -1
- package/dist/assets/{viewport-root-presentation-B13UVzkf.js → viewport-root-presentation-DqFPo19p.js} +1 -1
- package/dist/assets/{viewport-surface-status-BfoaH0c4.js → viewport-surface-status-BCnAK4lN.js} +1 -1
- package/dist/assets/{webworkerAll-D0rFmNNP.js → webworkerAll-Zn2-KQph.js} +1 -1
- package/dist/assets/{workspace-arrangement-BzOJBZHz.js → workspace-arrangement-BoYqL0C2.js} +1 -1
- package/dist/assets/{world-documents-SfK4cE7-.js → world-documents-CzkDHYwW.js} +1 -1
- package/dist/assets/{world-root-stage-binding-B_eeaou9.js → world-root-stage-binding-vmgZxCgc.js} +1 -1
- package/dist/assets/{xstate-animation-binding-CJyISi6P.js → xstate-animation-binding-C3RIk_KM.js} +1 -1
- package/dist/assets/{xstate-animation-meta-CphrXz7c.js → xstate-animation-meta-CWXGLmNW.js} +1 -1
- package/dist-node/cli.js +18 -18
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-mo9bGLDT.js +0 -1
- package/dist/assets/Object3DDocumentViewport-eDH3ZPyb.js +0 -2
- package/dist/assets/StageHost-DnZzSENp.js +0 -2
- package/dist/assets/autoplay.service-dVunBDzc.js +0 -1
- package/dist/assets/instances.command-BUjh8RK6.js +0 -1
- package/dist/assets/network-observer.service-fJ2m395K.js +0 -1
- package/dist/assets/three-authoring.service-CssoVcQx.js +0 -2
- package/dist/assets/three-integration.service-CVpXIvOr.js +0 -1
- package/dist/assets/transport.header-CMkmHYNe.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-Cn_RaJd_.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-BLx1pw_g.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-Co-PYlfQ.js","assets/hierarchy-marks-C9FKSQHH.js","assets/workspace-arrangement-BzOJBZHz.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-VBQuZfml.js","assets/blender-runtime-skin-cc-flxJ4.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-3P89aBqA.js","assets/blender-runtime.document-D4Ay0UIU.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-CJXG2Jxo.js","assets/object3d-document-session-registry-B46cPnBb.js","assets/blender-screenshot.menu-BKeeQIpY.js","assets/blender-version.status-DhwfFeCK.js","assets/blender.command-wYCfmF07.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-DIkds1Nj.js","assets/properties-bone-constraints.inspector-31lt8g6y.js","assets/blender-properties-tab-DRdodc8X.js","assets/ColorPicker-CJ09zfEX.js","assets/properties-constraints.inspector-Coe1A1Dd.js","assets/properties-bone.inspector-FxL_XMOQ.js","assets/properties-collection.inspector-DhcrjTYn.js","assets/properties-data.inspector-YKEhk2KI.js","assets/properties-material.inspector-B2UhDK1n.js","assets/properties-modifiers.inspector-uOwwcmRf.js","assets/properties-object.inspector-D8kiIU1x.js","assets/properties-output.inspector-RaoeccQZ.js","assets/properties-particles.inspector-D0Jb5Ts7.js","assets/properties-physics.inspector-BIubmBiu.js","assets/properties-render.inspector-BPamVV35.js","assets/properties-scene.inspector-B2mjYWyc.js","assets/properties-texture.inspector-iH7Hdsai.js","assets/properties-view-layer.inspector-BXjmwWhZ.js","assets/properties-world.inspector-CUhszQm_.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-Dz9btntn.js","assets/AssetBudgetPanel-BnRU2kQB.js","assets/asset-loaders-DH3zQQyY.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-BaYK7AMY.js","assets/asset-budget.document-nfLfGypF.js","assets/asset-budget.menu-ButY7KmH.js","assets/audio-unlock.service-BfHkRn4Q.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-fJ2m395K.js","assets/game-network-YNnA__rm.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-DiyEiCfH.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BMJTM1HD.js","assets/contract-system-adapters-Dyt4JsZ2.js","assets/game-contract-seams-BpZs1yjv.js","assets/seeded-random-DY3-ydOg.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/index-DzuOGwVB.js","assets/live-project-verbs-BPKYAVhO.js","assets/capability-coverage-BVGLH6f3.js","assets/edit-mode-authoring-DvttMmGa.js","assets/json-history-resource-Dp7Ra99p.js","assets/binding-resolver-DAZbNLvl.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-BsB1S4Eh.js","assets/canvas-entry-runtime-BO4oWzG7.js","assets/three-ingest-runtime-elb0lM0i.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-B7Bx6Kjy.js","assets/ingest-source-persistence-Bgpi9aX2.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-B13UVzkf.js","assets/mounted-authoring-D7_0P8Yg.js","assets/entity-object-gLXLhu07.js","assets/user-data-BiloulL-.js","assets/three-DNjStL2y.js","assets/editor-layers-QQ71XEXw.js","assets/component-instance-root-BoFJeP3p.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-DFD9SKE4.js","assets/source-persistence-backend-DxRc3Vmw.js","assets/three-projection-core-C_GCcPfW.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-BWdDgRxd.js","assets/deferred-ingest-play-nOdDr56P.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-BydYut9T.js","assets/board-guides-DhqfTj5n.js","assets/relative-import-specifier-CwidALJP.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-ecnGo6h9.js","assets/inference-diagnostics-DuPm6O0g.js","assets/writer-tw6EcuVO.js","assets/three-state-BU_Et2fb.js","assets/editor-shell-store-CaTC9o0j.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-DnYmvJaJ.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-dVunBDzc.js","assets/bridge.command-DsDiqGCg.js","assets/gameplay-replay-onLTM9_v.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-pOOsQYPl.js","assets/build-profiles.document-OSj4WtI6.js","assets/build-session-5PJwpLFV.js","assets/configurations-DuojTa-o.js","assets/build-player.document-CjucTAel.js","assets/build-progress.status-DpFB4xx7.js","assets/build.action-KWfvGCPe.js","assets/build.command-BDvxmPia.js","assets/build.header-DZdsvA42.js","assets/build.menu-DnRnkEAP.js","assets/build.service-D4LFhhty.js","assets/connection.status-CGSGpay5.js","assets/coverage.service-DkqUci3V.js","assets/edit-mode-audio.service-D--lxJv-.js","assets/edit-mode-networking.service-C2I6_G9e.js","assets/game-document.service-BI067uXs.js","assets/frame-debugger-store-BCva72ZS.js","assets/utility-view-state-BHfsAN18.js","assets/PlayBar-DGrUfgBZ.js","assets/run-selection-BBeVaGgf.js","assets/presentation-DfHrJ94Q.js","assets/surface-state-tKDJ4ZAb.js","assets/game-eval.command-BWsYFDdH.js","assets/game-module-access-BVnu_YF6.js","assets/gameplay.command-BL9yIUkk.js","assets/generation.service-B8Nhb_tQ.js","assets/model-thumbnail-Cx5Eb_fd.js","assets/studio-environment-B2vsjqle.js","assets/generation-jobs-IpL1oPd3.js","assets/generation-CdOATubd.css","assets/generations.status-BkLggMhB.js","assets/ingest.service-CiB-mBHW.js","assets/registry-BiYDDckl.js","assets/mount-ingest-root-Wf5fhTMH.js","assets/instances.command-BUjh8RK6.js","assets/navmesh.menu-3oJTvzhD.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-CIqD64Ey.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-CEASCNxw.js","assets/play.command-CMH6uH3C.js","assets/profiler.action-Bc7TMkqb.js","assets/profiler.menu-BcZq6Rmy.js","assets/profiler.utility-CksJa-lj.js","assets/scene-document.service-CkqKSFhN.js","assets/Object3DDocumentViewport-eDH3ZPyb.js","assets/viewport-surface-status-BfoaH0c4.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-fSIdJUGZ.js","assets/state-watch.menu-Bfww1_mP.js","assets/state-watch.utility-DUSmbc6X.js","assets/team-playtest.service-BptLup8r.js","assets/collaboration-presence-BxAjjabG.js","assets/transport.header-CMkmHYNe.js","assets/component-board.service-FV3r_rY1.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-COUd6cak.js","assets/design-time-mount.service-XiqsUVLQ.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-BN9KXIEI.js","assets/design-time-mount.service-BlVPZvQM.js","assets/react-inspector.service-BiPd_duU.js","assets/ShadowEditor-DS5CSZPa.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-DcCpYSGq.js","assets/story-documents.service-BS2hN2Ce.js","assets/story-documents-C1oR_8cj.js","assets/StoryPreviewMount-BKzvcFEZ.js","assets/camera-runtime.inspector-CzHA8sdx.js","assets/component-board.service-BPJ1jCbB.js","assets/component-verbs.command-2-turNau.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-YtIgQlm6.js","assets/component-verbs.service-DfUDkdGk.js","assets/constraints.inspector-CCdKAdlH.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-Dh79mFYs.js","assets/model-inspection-KJJ116pG.js","assets/source-object3d-authoring-adapter-Deft82fS.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-Ci5hFo5Q.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-uV8KFn9S.js","assets/standard-viewport-dressing-DXhgWBOp.js","assets/mounted-story-viewport-source-esB5WiW7.js","assets/story-three-preview-e0faozfl.js","assets/asset-preview-CUSDAKVD.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-DvgpSf5W.js","assets/r3f-source-authoring-adapter-B0E5IqBw.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-BzFi809X.js","assets/three-authoring.service-CssoVcQx.js","assets/three-story-capture.service-BcBLj5Ns.js","assets/canvas-story-capture.service-VWrbKO8n.js","assets/component-contracts.service-6QSOPpXN.js","assets/three-integration.service-CVpXIvOr.js","assets/three-integration-D-x0z186.js","assets/layered-pick-B0x-Imc-.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-CzIth3sy.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-DX06Ydcc.js","assets/transport-strip-C8yTDVnw.js","assets/machines.finder-CYGcoUpx.js","assets/machine.document-vhHf8j8j.js","assets/GameplaySessionTimeline-DykRF4LC.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-APY_kwxf.js","assets/ImageViewer-DwbhIBCP.js","assets/VideoViewer-Yew5uBNv.js","assets/JsonAssetDocument-B6gQHP_k.js","assets/OnlineAssetDetail-Cd8JLsmA.js","assets/asset-editor-persistence-C02issMD.js","assets/SourceAssetViewer-B2ZVLQeS.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-sdG-aTgR.js","assets/NonThreeAuthoringBootstrap-6pJucZf5.js","assets/project-authoring-session-C9_9Hb8-.js","assets/story-capture-BxgNeexV.js","assets/react-story-board-CdtjLDYv.js","assets/story-presentation-CMvpmKUb.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as Ye,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtime-DPjLkJKQ.js";import{r as r2}from"./index-CtzuWnCS.js";import{F as o0r}from"./index-FUuS4qwW.js";import{a as nLe}from"./client-DNXj_opT.js";import{g as iLe,a as s0r,c as kmt}from"./_commonjsHelpers-D6-XlEtG.js";function a0r(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 c0r="modulepreload",l0r=function(t){return"/"+t},Amt={},lo=function(n,s,c){let d=Promise.resolve();if(s&&s.length>0){let g=function(A){return Promise.all(A.map(F=>Promise.resolve(F).then(D=>({status:"fulfilled",value:D}),D=>({status:"rejected",reason:D}))))};document.getElementsByTagName("link");const S=document.querySelector("meta[property=csp-nonce]"),k=S?.nonce||S?.getAttribute("nonce");d=g(s.map(A=>{if(A=l0r(A),A in Amt)return;Amt[A]=!0;const F=A.endsWith(".css"),D=F?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${A}"]${D}`))return;const J=document.createElement("link");if(J.rel=F?"stylesheet":c0r,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)})},u0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-Cn_RaJd_.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-timeline.document.tsx",load:()=>lo(()=>import("./blender-timeline.document-VBQuZfml.js"),__vite__mapDeps([24,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-uv-editor.document.tsx",load:()=>lo(()=>import("./blender-uv-editor.document-3P89aBqA.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-runtime.document.tsx",load:()=>lo(()=>import("./blender-runtime.document-D4Ay0UIU.js"),__vite__mapDeps([28,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,29,30,31,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-screenshot.menu.ts",load:()=>lo(()=>import("./blender-screenshot.menu-BKeeQIpY.js"),__vite__mapDeps([32,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>lo(()=>import("./blender-version.status-DhwfFeCK.js"),__vite__mapDeps([33,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>lo(()=>import("./blender.command-wYCfmF07.js"),__vite__mapDeps([34,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.environment.ts",load:()=>lo(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>lo(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>lo(()=>import("./blender.status-BMETIbb2.js"),__vite__mapDeps([35,1,2]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>lo(()=>import("./blender.style-DaIh9SiA.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>lo(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([36,37]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>lo(()=>import("./models.finder-DIkds1Nj.js"),__vite__mapDeps([38,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-bone-constraints.inspector-31lt8g6y.js"),__vite__mapDeps([39,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,42,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>lo(()=>import("./properties-bone.inspector-FxL_XMOQ.js"),__vite__mapDeps([43,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>lo(()=>import("./properties-collection.inspector-DhcrjTYn.js"),__vite__mapDeps([44,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-constraints.inspector-Coe1A1Dd.js"),__vite__mapDeps([42,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>lo(()=>import("./properties-data.inspector-YKEhk2KI.js"),__vite__mapDeps([45,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>lo(()=>import("./properties-material.inspector-B2UhDK1n.js"),__vite__mapDeps([46,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>lo(()=>import("./properties-modifiers.inspector-uOwwcmRf.js"),__vite__mapDeps([47,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>lo(()=>import("./properties-object.inspector-D8kiIU1x.js"),__vite__mapDeps([48,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>lo(()=>import("./properties-output.inspector-RaoeccQZ.js"),__vite__mapDeps([49,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>lo(()=>import("./properties-particles.inspector-D0Jb5Ts7.js"),__vite__mapDeps([50,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>lo(()=>import("./properties-physics.inspector-BIubmBiu.js"),__vite__mapDeps([51,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>lo(()=>import("./properties-render.inspector-BPamVV35.js"),__vite__mapDeps([52,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>lo(()=>import("./properties-scene.inspector-B2mjYWyc.js"),__vite__mapDeps([53,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>lo(()=>import("./properties-texture.inspector-iH7Hdsai.js"),__vite__mapDeps([54,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>lo(()=>import("./properties-view-layer.inspector-BXjmwWhZ.js"),__vite__mapDeps([55,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>lo(()=>import("./properties-world.inspector-CUhszQm_.js"),__vite__mapDeps([56,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>lo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([57,37]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>lo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([58,37]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>lo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([59,37]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>lo(()=>import("./texture.layout-DASpHVht.js"),[])}],f0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-Dz9btntn.js"),__vite__mapDeps([60,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>lo(()=>import("./asset-budget.action-BaYK7AMY.js"),__vite__mapDeps([71,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>lo(()=>import("./asset-budget.document-nfLfGypF.js"),__vite__mapDeps([72,1,2,61,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>lo(()=>import("./asset-budget.menu-ButY7KmH.js"),__vite__mapDeps([73,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>lo(()=>import("./audio-unlock.service-BfHkRn4Q.js"),__vite__mapDeps([74,75,8,76,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>lo(()=>import("./network-observer.service-fJ2m395K.js"),__vite__mapDeps([77,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>lo(()=>import("./audio.utility-DnYmvJaJ.js"),__vite__mapDeps([139,1,2,3,4,20,21,140,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>lo(()=>import("./autoplay.service-dVunBDzc.js"),__vite__mapDeps([141,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>lo(()=>import("./bridge.command-DsDiqGCg.js"),__vite__mapDeps([142,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,143,144,145,146]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>lo(()=>import("./build-profiles.document-OSj4WtI6.js"),__vite__mapDeps([147,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>lo(()=>import("./build-player.document-CjucTAel.js"),__vite__mapDeps([150,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>lo(()=>import("./build-progress.status-DpFB4xx7.js"),__vite__mapDeps([151,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>lo(()=>import("./build.action-KWfvGCPe.js"),__vite__mapDeps([152,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>lo(()=>import("./build.command-BDvxmPia.js"),__vite__mapDeps([153,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>lo(()=>import("./build.header-DZdsvA42.js"),__vite__mapDeps([154,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>lo(()=>import("./build.menu-DnRnkEAP.js"),__vite__mapDeps([155,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>lo(()=>import("./build.service-D4LFhhty.js"),__vite__mapDeps([156,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>lo(()=>import("./connection.status-CGSGpay5.js"),__vite__mapDeps([157,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>lo(()=>import("./coverage.service-DkqUci3V.js"),__vite__mapDeps([158,91,85,3,2,4,1,20,21,22,23,90]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>lo(()=>import("./edit-mode-audio.service-D--lxJv-.js"),__vite__mapDeps([159,75,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/edit-mode-networking.service.ts",load:()=>lo(()=>import("./edit-mode-networking.service-C2I6_G9e.js"),__vite__mapDeps([160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>lo(()=>import("./game-document.service-BI067uXs.js"),__vite__mapDeps([161,1,2,3,4,20,21,162,140,163,164,149,165,78,79,80,81,82,83,84,85,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,166,167]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>lo(()=>import("./game-eval.command-BWsYFDdH.js"),__vite__mapDeps([168,169,3,2,4,1,20,21,22,23,145,108,85,91,109,84,78,79,80,81,82,83,86,76,87,88,7,8,89,90,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/game.layout.ts",load:()=>lo(()=>import("./game.layout-CBASrvQu.js"),[])},{entryPath:"@volter/editor-game/contributions/gameplay.command.ts",load:()=>lo(()=>import("./gameplay.command-BL9yIUkk.js"),__vite__mapDeps([170,145,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>lo(()=>import("./generation.service-B8Nhb_tQ.js"),__vite__mapDeps([171,1,2,3,4,172,13,173,115,19,68,7,8,69,70,9,10,11,12,20,21,174,22,23,175]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>lo(()=>import("./generations.status-BkLggMhB.js"),__vite__mapDeps([176,1,2,3,4,20,21,174,22,23]))},{entryPath:"@volter/editor-game/contributions/godot.style.ts",load:()=>lo(()=>import("./godot.style-NCC0Pm-A.js"),[])},{entryPath:"@volter/editor-game/contributions/godot.view.ts",load:()=>lo(()=>import("./godot.view-DinHwC_o.js"),[])},{entryPath:"@volter/editor-game/contributions/ingest.service.ts",load:()=>lo(()=>import("./ingest.service-CiB-mBHW.js"),__vite__mapDeps([177,178,179,108,85,3,2,4,1,20,21,22,23,91,109,84,136,137,14,7,8,15,117,19,115,114,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>lo(()=>import("./instances.command-BUjh8RK6.js"),__vite__mapDeps([180,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>lo(()=>import("./navmesh.menu-3oJTvzhD.js"),__vite__mapDeps([181,182,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>lo(()=>import("./navmesh.service-CIqD64Ey.js"),__vite__mapDeps([183,65,66,182,29,184,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>lo(()=>import("./network.utility-CEASCNxw.js"),__vite__mapDeps([185,1,2,78,79,80,81,82,83,84,85,3,4,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>lo(()=>import("./play.command-CMH6uH3C.js"),__vite__mapDeps([186,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,145,165,149]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>lo(()=>import("./profiler.action-Bc7TMkqb.js"),__vite__mapDeps([187,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>lo(()=>import("./profiler.menu-BcZq6Rmy.js"),__vite__mapDeps([188,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>lo(()=>import("./profiler.utility-CksJa-lj.js"),__vite__mapDeps([189,1,2,163,3,4,20,21,162,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>lo(()=>import("./scene-document.service-CkqKSFhN.js"),__vite__mapDeps([190,1,2,191,3,4,192,20,21,193,136,137,14,7,8,15,117,19,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>lo(()=>import("./state-watch.action-fSIdJUGZ.js"),__vite__mapDeps([194,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>lo(()=>import("./state-watch.menu-Bfww1_mP.js"),__vite__mapDeps([195,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>lo(()=>import("./state-watch.utility-DUSmbc6X.js"),__vite__mapDeps([196,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>lo(()=>import("./team-playtest.service-BptLup8r.js"),__vite__mapDeps([197,198,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>lo(()=>import("./transport.header-CMkmHYNe.js"),__vite__mapDeps([199,1,2,3,4,164,149,165,78,79,80,81,82,83,84,85,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/unity.style.ts",load:()=>lo(()=>import("./unity.style-BUZD1vdX.js"),[])},{entryPath:"@volter/editor-game/contributions/unity.view.ts",load:()=>lo(()=>import("./unity.view--n1Xt50A.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.style.ts",load:()=>lo(()=>import("./unreal.style-Cqf-hEzT.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.view.ts",load:()=>lo(()=>import("./unreal.view-CKSsDgA8.js"),[])},{entryPath:"@volter/editor-game/contributions/canvas/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-FV3r_rY1.js"),__vite__mapDeps([200,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-XiqsUVLQ.js"),__vite__mapDeps([203,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-BN9KXIEI.js").then(t=>t.c),__vite__mapDeps([205,201,202]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-BlVPZvQM.js"),__vite__mapDeps([206,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>lo(()=>import("./react-inspector.service-BiPd_duU.js"),__vite__mapDeps([207,1,2,3,4,20,21,208,41,130,209,133,134,210,93,129,131,132,135,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-BS2hN2Ce.js"),__vite__mapDeps([211,212,1,2,3,4,20,21,166,167,213,111,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>lo(()=>import("./camera-runtime.inspector-CzHA8sdx.js"),__vite__mapDeps([214,1,2,29,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-BPJ1jCbB.js"),__vite__mapDeps([215,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>lo(()=>import("./component-verbs.command-2-turNau.js"),__vite__mapDeps([216,217,218,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29,136]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>lo(()=>import("./component-verbs.service-DfUDkdGk.js"),__vite__mapDeps([219,218,217,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>lo(()=>import("./constraints.inspector-CCdKAdlH.js"),__vite__mapDeps([220,1,2,29,118,115,19,221,65,66,3,4,20,21,136,137,14,7,8,15,117,22,23,114]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>lo(()=>import("./model-asset-sections.service-Dh79mFYs.js"),__vite__mapDeps([222,1,2,29,223,115,19,8,224,117,3,4,20,21,22,23,116,118,114,119,122,225,125,65,66,226]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>lo(()=>import("./reflection-probe-capture.inspector-Ci5hFo5Q.js"),__vite__mapDeps([227,1,2,29,228,65,66,3,4,20,21,136,137,14,7,8,15,117,19,22,23,115,114]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-uV8KFn9S.js"),__vite__mapDeps([229,1,2,191,3,4,192,20,21,167,230,17,18,19,8,117,22,23,9,7,10,11,12,115,231,232,233,13,173,68,69,70,234,235,88,89,236,132,237,212,166,213,111,238,118,239,131,122,116,114,29,119,134,217,240,135,126,125,65,66]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>lo(()=>import("./three-authoring.service-CssoVcQx.js"),__vite__mapDeps([241,204,92,93,120,118,115,19,121,109,122,117,3,2,4,1,20,21,22,23,116,114,29,119,8,123,65,66,124,125,87,126,137,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>lo(()=>import("./three-story-capture.service-BcBLj5Ns.js"),__vite__mapDeps([242,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas-story-capture.service.ts",load:()=>lo(()=>import("./canvas-story-capture.service-VWrbKO8n.js"),__vite__mapDeps([243,3,2,4,1,20,21,22,23]))}],d0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-6QSOPpXN.js"),__vite__mapDeps([244,240,135,126,3,2,4,1,20,21,22,23]))}],p0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-CVpXIvOr.js"),__vite__mapDeps([245,246,184,13,7,8,6,9,10,11,12,247,248,115,19,1,2,3,4,172,173,68,69,70,31,136,137,14,15,117,20,21,22,23,114,29,18,118,30,17,233,234]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>lo(()=>import("./animation-mixers.service-CzIth3sy.js"),__vite__mapDeps([249,250,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>lo(()=>import("./animation-timeline.utility-DX06Ydcc.js"),__vite__mapDeps([251,1,2,252,3,4,20,21,22,23]))}],_0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-CYGcoUpx.js"),__vite__mapDeps([253,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>lo(()=>import("./machine.document-vhHf8j8j.js"),__vite__mapDeps([254,1,2,3,4,20,21,22,23]))}];let HY=null;const $Oe=new Set;function uee(){return HY}function m0r(t){if(HY!==null&&HY.id!==t.id)throw new Error(`Two products in one page: "${HY.id}" is already composed and "${t.id}" asked to be. A product is the running program; one page runs one.`);HY=t;for(const n of $Oe)n()}function ITt(t){return $Oe.add(t),()=>$Oe.delete(t)}/*!
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-DolFex2j.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-BQ22-Fpm.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-CKyqwWXn.js","assets/hierarchy-marks-DYUvG4lt.js","assets/workspace-arrangement-BoYqL0C2.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-OeW12fJm.js","assets/blender-runtime-skin-DKHV6b2q.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-CCE1_Fjr.js","assets/blender-runtime.document-L66K1h2q.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-BrYqbiwp.js","assets/object3d-document-session-registry--r1BseN3.js","assets/blender-screenshot.menu-B_olV65B.js","assets/blender-version.status-CcNWuPxA.js","assets/blender.command-gGyT3A0Q.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-DnEKW1nB.js","assets/properties-bone-constraints.inspector-B6sFLmg_.js","assets/blender-properties-tab-Be5MXZig.js","assets/ColorPicker-tL7QuZuq.js","assets/properties-constraints.inspector-CX5gxqju.js","assets/properties-bone.inspector-Cq0j1Tg_.js","assets/properties-collection.inspector-DYMwSmQY.js","assets/properties-data.inspector-cL1TZwxI.js","assets/properties-material.inspector-DU1wOJce.js","assets/properties-modifiers.inspector-CmO1PZIA.js","assets/properties-object.inspector-CFvqMWdn.js","assets/properties-output.inspector-DC-O8hue.js","assets/properties-particles.inspector-DfWIbmzQ.js","assets/properties-physics.inspector-xx8ml3qs.js","assets/properties-render.inspector-C8Hq7knh.js","assets/properties-scene.inspector-CCGXsMCm.js","assets/properties-texture.inspector-CLWq44Va.js","assets/properties-view-layer.inspector-Bpry4Iqh.js","assets/properties-world.inspector-nHZ1JkkY.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-cpAHllXs.js","assets/AssetBudgetPanel-DHDxdcjI.js","assets/asset-loaders-DmsTVRFA.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-D91HsFo6.js","assets/asset-budget.document-DKhAbxa-.js","assets/asset-budget.menu-Dv_hRhqg.js","assets/audio-unlock.service-D_hgqktK.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-Bp4Pp-ZK.js","assets/game-network-BNeDxziF.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-Be_Zu0XE.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-Be63j2Mr.js","assets/contract-system-adapters-kobU6S3P.js","assets/game-contract-seams-CB0AOLdl.js","assets/seeded-random-BJvC1dTR.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/index-DzuOGwVB.js","assets/live-project-verbs-BVyxYNhA.js","assets/capability-coverage-3wZkRo7W.js","assets/edit-mode-authoring-DbcZXYOM.js","assets/json-history-resource-D4GYZYcB.js","assets/binding-resolver-yBwth89-.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-CnW99EpW.js","assets/canvas-entry-runtime-Btln7THA.js","assets/three-ingest-runtime-BjO_n3E-.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-5EEDH3if.js","assets/ingest-source-persistence-Dz_7hVqh.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-DqFPo19p.js","assets/mounted-authoring-BW8axnm4.js","assets/entity-object-hOX0jkMo.js","assets/user-data-DKfhN35w.js","assets/three-CJgQeY1W.js","assets/editor-layers-_Gcy52mS.js","assets/component-instance-root-DsmCGX40.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-D-iyhWwy.js","assets/source-persistence-backend-wZj2Qj3g.js","assets/three-projection-core-BjkdjllS.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-DsYLHa6f.js","assets/deferred-ingest-play-D1FWeSDi.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-4FofK2_S.js","assets/board-guides-CIhq0Sbd.js","assets/relative-import-specifier-Dk9yRpxL.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-BRJFBB2z.js","assets/inference-diagnostics-DNhFOXFZ.js","assets/writer-tw6EcuVO.js","assets/three-state-CvU5OXTi.js","assets/editor-shell-store-DcbczB-I.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-BZi7S3On.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-t1c91HxR.js","assets/bridge.command-Du9l4KRx.js","assets/gameplay-replay-0cZ9wkDO.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-jmCDlPiX.js","assets/build-profiles.document-D2MP3imJ.js","assets/build-session-DC5GZ3DQ.js","assets/configurations-Dm-0m9Xo.js","assets/build-player.document-yRmbh7W2.js","assets/build-progress.status-QY6WMyc4.js","assets/build.action-B7wUwNnJ.js","assets/build.command-BWsI5Ueg.js","assets/build.header-tZ0wvQLR.js","assets/build.menu-B5JhkoT1.js","assets/build.service-DU0G9SvZ.js","assets/connection.status-BXgUyNWa.js","assets/coverage.service-BxQTn5sd.js","assets/edit-mode-audio.service-NlZIq_ZD.js","assets/edit-mode-networking.service-BYO3SvM8.js","assets/game-document.service-Y4MCpEG2.js","assets/frame-debugger-store-DvIUfGjd.js","assets/utility-view-state-DZ2ujJyw.js","assets/PlayBar-IaADBOOU.js","assets/run-selection-C6EqhdoA.js","assets/presentation-DHSxfQfh.js","assets/surface-state-DDvqISvA.js","assets/game-eval.command-DLlHsT-7.js","assets/game-module-access-nUAwk1dj.js","assets/gameplay.command-rqy8cEAf.js","assets/generation.service-CR9vGnlh.js","assets/model-thumbnail-oBpbFAcj.js","assets/studio-environment-DPyvNCMf.js","assets/generation-jobs-DNAW8eNU.js","assets/generation-CdOATubd.css","assets/generations.status-Dhp03MBg.js","assets/ingest.service-BGGBXhbP.js","assets/registry-CmQvHjp6.js","assets/mount-ingest-root-CnknLsAH.js","assets/instances.command-q-B_dgED.js","assets/navmesh.menu-Dwv0BlFc.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-D0WfDvfc.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-DqtzEO6P.js","assets/play.command-ov-jkz3c.js","assets/profiler.action-CoEPogPx.js","assets/profiler.menu-HOvnHzpD.js","assets/profiler.utility-DArumoBa.js","assets/scene-document.service-DSdvp7Ce.js","assets/Object3DDocumentViewport-nrhxhWxf.js","assets/viewport-surface-status-BCnAK4lN.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-DTwXKaRA.js","assets/state-watch.menu-BcV_iOZY.js","assets/state-watch.utility-LiVERTu5.js","assets/team-playtest.service-ak53AQFu.js","assets/collaboration-presence-CCL71T0o.js","assets/transport.header-CAvPxCpi.js","assets/component-board.service-CXwworM0.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-CZDChC1Q.js","assets/design-time-mount.service-CVJWtupB.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-CwevhTxY.js","assets/design-time-mount.service-CvGlSAKG.js","assets/react-inspector.service-CS-ZEU5N.js","assets/ShadowEditor-LF5W34RB.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-tQBQ_1xs.js","assets/story-documents.service-CO7oQCl7.js","assets/story-documents-f3Ug4YBp.js","assets/StoryPreviewMount-BMTtfMsu.js","assets/camera-runtime.inspector--8LumKgx.js","assets/component-board.service-ChMB-pU1.js","assets/component-verbs.command-BXQ96Jx4.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-DnlFd3lk.js","assets/component-verbs.service-ByTx_24k.js","assets/constraints.inspector-29yLh17h.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-D5_Qnu8F.js","assets/model-inspection-Ce70HeHy.js","assets/source-object3d-authoring-adapter-Bdq-N_ih.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-Dgy-8-1h.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-XIecBTKZ.js","assets/standard-viewport-dressing-DSi6qJFC.js","assets/mounted-story-viewport-source-bf12XIaz.js","assets/story-three-preview-EAGsWdvg.js","assets/asset-preview-DVSFT7SS.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-aKieakmn.js","assets/r3f-source-authoring-adapter-C0STpGb7.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-i2EGkRgu.js","assets/three-authoring.service-BphzI5K_.js","assets/three-story-capture.service-DikE7JrC.js","assets/canvas-story-capture.service-D4Uk1AxK.js","assets/component-contracts.service-B3Yrn-qm.js","assets/three-integration.service-CC5Hzqn_.js","assets/three-integration-YGBUQAWW.js","assets/layered-pick-D1CaaJD4.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-CpAQO3GY.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-BI25zuOA.js","assets/transport-strip-B0VIsVkq.js","assets/machines.finder-zJZEKJbn.js","assets/machine.document-ChSDKagD.js","assets/GameplaySessionTimeline-aU04h32D.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-BNZQHDg4.js","assets/ImageViewer-B_EV4B-Y.js","assets/VideoViewer-Ccuo8SbQ.js","assets/JsonAssetDocument-CI-VEvHK.js","assets/OnlineAssetDetail-Bt3SSxk5.js","assets/asset-editor-persistence-DvrmJ4jX.js","assets/SourceAssetViewer-CuinHm6v.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-ick1zhVG.js","assets/NonThreeAuthoringBootstrap-CcN-v_vU.js","assets/project-authoring-session-OdoqMUaI.js","assets/story-capture-Bp8iYZLe.js","assets/react-story-board-BMNsbya2.js","assets/story-presentation-CNwvXmP8.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as Ye,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtime-DPjLkJKQ.js";import{r as r2}from"./index-CtzuWnCS.js";import{F as o0r}from"./index-FUuS4qwW.js";import{a as nLe}from"./client-DNXj_opT.js";import{g as iLe,a as s0r,c as kmt}from"./_commonjsHelpers-D6-XlEtG.js";function a0r(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 c0r="modulepreload",l0r=function(t){return"/"+t},Amt={},lo=function(n,s,c){let d=Promise.resolve();if(s&&s.length>0){let g=function(A){return Promise.all(A.map(F=>Promise.resolve(F).then(D=>({status:"fulfilled",value:D}),D=>({status:"rejected",reason:D}))))};document.getElementsByTagName("link");const S=document.querySelector("meta[property=csp-nonce]"),k=S?.nonce||S?.getAttribute("nonce");d=g(s.map(A=>{if(A=l0r(A),A in Amt)return;Amt[A]=!0;const F=A.endsWith(".css"),D=F?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${A}"]${D}`))return;const J=document.createElement("link");if(J.rel=F?"stylesheet":c0r,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)})},u0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-DolFex2j.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-timeline.document.tsx",load:()=>lo(()=>import("./blender-timeline.document-OeW12fJm.js"),__vite__mapDeps([24,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-uv-editor.document.tsx",load:()=>lo(()=>import("./blender-uv-editor.document-CCE1_Fjr.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-runtime.document.tsx",load:()=>lo(()=>import("./blender-runtime.document-L66K1h2q.js"),__vite__mapDeps([28,1,2,25,26,7,8,5,6,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,29,30,31,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-screenshot.menu.ts",load:()=>lo(()=>import("./blender-screenshot.menu-B_olV65B.js"),__vite__mapDeps([32,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>lo(()=>import("./blender-version.status-CcNWuPxA.js"),__vite__mapDeps([33,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>lo(()=>import("./blender.command-gGyT3A0Q.js"),__vite__mapDeps([34,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/blender.environment.ts",load:()=>lo(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>lo(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>lo(()=>import("./blender.status-BMETIbb2.js"),__vite__mapDeps([35,1,2]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>lo(()=>import("./blender.style-DaIh9SiA.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>lo(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([36,37]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>lo(()=>import("./models.finder-DnEKW1nB.js"),__vite__mapDeps([38,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-bone-constraints.inspector-B6sFLmg_.js"),__vite__mapDeps([39,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,42,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>lo(()=>import("./properties-bone.inspector-Cq0j1Tg_.js"),__vite__mapDeps([43,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>lo(()=>import("./properties-collection.inspector-DYMwSmQY.js"),__vite__mapDeps([44,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-constraints.inspector-CX5gxqju.js"),__vite__mapDeps([42,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>lo(()=>import("./properties-data.inspector-cL1TZwxI.js"),__vite__mapDeps([45,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>lo(()=>import("./properties-material.inspector-DU1wOJce.js"),__vite__mapDeps([46,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>lo(()=>import("./properties-modifiers.inspector-CmO1PZIA.js"),__vite__mapDeps([47,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>lo(()=>import("./properties-object.inspector-CFvqMWdn.js"),__vite__mapDeps([48,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>lo(()=>import("./properties-output.inspector-DC-O8hue.js"),__vite__mapDeps([49,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>lo(()=>import("./properties-particles.inspector-DfWIbmzQ.js"),__vite__mapDeps([50,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>lo(()=>import("./properties-physics.inspector-xx8ml3qs.js"),__vite__mapDeps([51,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>lo(()=>import("./properties-render.inspector-C8Hq7knh.js"),__vite__mapDeps([52,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>lo(()=>import("./properties-scene.inspector-CCGXsMCm.js"),__vite__mapDeps([53,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>lo(()=>import("./properties-texture.inspector-CLWq44Va.js"),__vite__mapDeps([54,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>lo(()=>import("./properties-view-layer.inspector-Bpry4Iqh.js"),__vite__mapDeps([55,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>lo(()=>import("./properties-world.inspector-nHZ1JkkY.js"),__vite__mapDeps([56,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,41,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>lo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([57,37]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>lo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([58,37]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>lo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([59,37]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>lo(()=>import("./texture.layout-DASpHVht.js"),[])}],f0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-cpAHllXs.js"),__vite__mapDeps([60,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>lo(()=>import("./asset-budget.action-D91HsFo6.js"),__vite__mapDeps([71,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>lo(()=>import("./asset-budget.document-DKhAbxa-.js"),__vite__mapDeps([72,1,2,61,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>lo(()=>import("./asset-budget.menu-Dv_hRhqg.js"),__vite__mapDeps([73,61,1,2,3,4,20,21,62,63,7,8,64,65,66,67,68,69,70,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>lo(()=>import("./audio-unlock.service-D_hgqktK.js"),__vite__mapDeps([74,75,8,76,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>lo(()=>import("./network-observer.service-Bp4Pp-ZK.js"),__vite__mapDeps([77,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>lo(()=>import("./audio.utility-BZi7S3On.js"),__vite__mapDeps([139,1,2,3,4,20,21,140,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>lo(()=>import("./autoplay.service-t1c91HxR.js"),__vite__mapDeps([141,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>lo(()=>import("./bridge.command-Du9l4KRx.js"),__vite__mapDeps([142,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,143,144,145,146]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>lo(()=>import("./build-profiles.document-D2MP3imJ.js"),__vite__mapDeps([147,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>lo(()=>import("./build-player.document-yRmbh7W2.js"),__vite__mapDeps([150,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>lo(()=>import("./build-progress.status-QY6WMyc4.js"),__vite__mapDeps([151,1,2,3,4,148,149,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>lo(()=>import("./build.action-B7wUwNnJ.js"),__vite__mapDeps([152,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>lo(()=>import("./build.command-BWsI5Ueg.js"),__vite__mapDeps([153,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>lo(()=>import("./build.header-tZ0wvQLR.js"),__vite__mapDeps([154,1,2,3,4,20,21,148,149,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>lo(()=>import("./build.menu-B5JhkoT1.js"),__vite__mapDeps([155,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>lo(()=>import("./build.service-DU0G9SvZ.js"),__vite__mapDeps([156,148,149,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>lo(()=>import("./connection.status-BXgUyNWa.js"),__vite__mapDeps([157,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>lo(()=>import("./coverage.service-BxQTn5sd.js"),__vite__mapDeps([158,91,85,3,2,4,1,20,21,22,23,90]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>lo(()=>import("./edit-mode-audio.service-NlZIq_ZD.js"),__vite__mapDeps([159,75,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/edit-mode-networking.service.ts",load:()=>lo(()=>import("./edit-mode-networking.service-BYO3SvM8.js"),__vite__mapDeps([160,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>lo(()=>import("./game-document.service-Y4MCpEG2.js"),__vite__mapDeps([161,1,2,3,4,20,21,162,140,163,164,149,165,78,79,80,81,82,83,84,85,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,166,167]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>lo(()=>import("./game-eval.command-DLlHsT-7.js"),__vite__mapDeps([168,169,3,2,4,1,20,21,22,23,145,108,85,91,109,84,78,79,80,81,82,83,86,76,87,88,7,8,89,90,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/game.layout.ts",load:()=>lo(()=>import("./game.layout-CBASrvQu.js"),[])},{entryPath:"@volter/editor-game/contributions/gameplay.command.ts",load:()=>lo(()=>import("./gameplay.command-rqy8cEAf.js"),__vite__mapDeps([170,145,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>lo(()=>import("./generation.service-CR9vGnlh.js"),__vite__mapDeps([171,1,2,3,4,172,13,173,115,19,68,7,8,69,70,9,10,11,12,20,21,174,22,23,175]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>lo(()=>import("./generations.status-Dhp03MBg.js"),__vite__mapDeps([176,1,2,3,4,20,21,174,22,23]))},{entryPath:"@volter/editor-game/contributions/godot.style.ts",load:()=>lo(()=>import("./godot.style-NCC0Pm-A.js"),[])},{entryPath:"@volter/editor-game/contributions/godot.view.ts",load:()=>lo(()=>import("./godot.view-DinHwC_o.js"),[])},{entryPath:"@volter/editor-game/contributions/ingest.service.ts",load:()=>lo(()=>import("./ingest.service-BGGBXhbP.js"),__vite__mapDeps([177,178,179,108,85,3,2,4,1,20,21,22,23,91,109,84,136,137,14,7,8,15,117,19,115,114,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>lo(()=>import("./instances.command-q-B_dgED.js"),__vite__mapDeps([180,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>lo(()=>import("./navmesh.menu-Dwv0BlFc.js"),__vite__mapDeps([181,182,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>lo(()=>import("./navmesh.service-D0WfDvfc.js"),__vite__mapDeps([183,65,66,182,29,184,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>lo(()=>import("./network.utility-DqtzEO6P.js"),__vite__mapDeps([185,1,2,78,79,80,81,82,83,84,85,3,4,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>lo(()=>import("./play.command-ov-jkz3c.js"),__vite__mapDeps([186,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138,145,165,149]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>lo(()=>import("./profiler.action-CoEPogPx.js"),__vite__mapDeps([187,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>lo(()=>import("./profiler.menu-HOvnHzpD.js"),__vite__mapDeps([188,163,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>lo(()=>import("./profiler.utility-DArumoBa.js"),__vite__mapDeps([189,1,2,163,3,4,20,21,162,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>lo(()=>import("./scene-document.service-DSdvp7Ce.js"),__vite__mapDeps([190,1,2,191,3,4,192,20,21,193,136,137,14,7,8,15,117,19,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>lo(()=>import("./state-watch.action-DTwXKaRA.js"),__vite__mapDeps([194,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>lo(()=>import("./state-watch.menu-BcV_iOZY.js"),__vite__mapDeps([195,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>lo(()=>import("./state-watch.utility-LiVERTu5.js"),__vite__mapDeps([196,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>lo(()=>import("./team-playtest.service-ak53AQFu.js"),__vite__mapDeps([197,198,78,79,80,2,81,82,83,84,85,3,4,1,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>lo(()=>import("./transport.header-CAvPxCpi.js"),__vite__mapDeps([199,1,2,3,4,164,149,165,78,79,80,81,82,83,84,85,20,21,22,23,86,76,87,88,7,8,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,15,104,105,106,107,108,109,110,111,112,113,114,115,19,29,116,117,118,119,120,121,122,123,65,66,124,125,126,127,128,129,130,131,132,133,134,135,136,137,14,30,138]))},{entryPath:"@volter/editor-game/contributions/unity.style.ts",load:()=>lo(()=>import("./unity.style-BUZD1vdX.js"),[])},{entryPath:"@volter/editor-game/contributions/unity.view.ts",load:()=>lo(()=>import("./unity.view--n1Xt50A.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.style.ts",load:()=>lo(()=>import("./unreal.style-Cqf-hEzT.js"),[])},{entryPath:"@volter/editor-game/contributions/unreal.view.ts",load:()=>lo(()=>import("./unreal.view-CKSsDgA8.js"),[])},{entryPath:"@volter/editor-game/contributions/canvas/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-CXwworM0.js"),__vite__mapDeps([200,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-CVJWtupB.js"),__vite__mapDeps([203,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-CwevhTxY.js").then(t=>t.c),__vite__mapDeps([205,201,202]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-CvGlSAKG.js"),__vite__mapDeps([206,204,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>lo(()=>import("./react-inspector.service-CS-ZEU5N.js"),__vite__mapDeps([207,1,2,3,4,20,21,208,41,130,209,133,134,210,93,129,131,132,135,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-CO7oQCl7.js"),__vite__mapDeps([211,212,1,2,3,4,20,21,166,167,213,111,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>lo(()=>import("./camera-runtime.inspector--8LumKgx.js"),__vite__mapDeps([214,1,2,29,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-ChMB-pU1.js"),__vite__mapDeps([215,201,202,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>lo(()=>import("./component-verbs.command-BXQ96Jx4.js"),__vite__mapDeps([216,217,218,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29,136]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>lo(()=>import("./component-verbs.service-ByTx_24k.js"),__vite__mapDeps([219,218,217,137,14,7,8,15,117,19,3,2,4,1,20,21,22,23,115,114,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>lo(()=>import("./constraints.inspector-29yLh17h.js"),__vite__mapDeps([220,1,2,29,118,115,19,221,65,66,3,4,20,21,136,137,14,7,8,15,117,22,23,114]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>lo(()=>import("./model-asset-sections.service-D5_Qnu8F.js"),__vite__mapDeps([222,1,2,29,223,115,19,8,224,117,3,4,20,21,22,23,116,118,114,119,122,225,125,65,66,226]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>lo(()=>import("./reflection-probe-capture.inspector-Dgy-8-1h.js"),__vite__mapDeps([227,1,2,29,228,65,66,3,4,20,21,136,137,14,7,8,15,117,19,22,23,115,114]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-XIecBTKZ.js"),__vite__mapDeps([229,1,2,191,3,4,192,20,21,167,230,17,18,19,8,117,22,23,9,7,10,11,12,115,231,232,233,13,173,68,69,70,234,235,88,89,236,132,237,212,166,213,111,238,118,239,131,122,116,114,29,119,134,217,240,135,126,125,65,66]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>lo(()=>import("./three-authoring.service-BphzI5K_.js"),__vite__mapDeps([241,204,92,93,120,118,115,19,121,109,122,117,3,2,4,1,20,21,22,23,116,114,29,119,8,123,65,66,124,125,87,126,137,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>lo(()=>import("./three-story-capture.service-DikE7JrC.js"),__vite__mapDeps([242,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/canvas-story-capture.service.ts",load:()=>lo(()=>import("./canvas-story-capture.service-D4Uk1AxK.js"),__vite__mapDeps([243,3,2,4,1,20,21,22,23]))}],d0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-B3Yrn-qm.js"),__vite__mapDeps([244,240,135,126,3,2,4,1,20,21,22,23]))}],p0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-CC5Hzqn_.js"),__vite__mapDeps([245,246,184,13,7,8,6,9,10,11,12,247,248,115,19,1,2,3,4,172,173,68,69,70,31,136,137,14,15,117,20,21,22,23,114,29,18,118,30,17,233,234]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>lo(()=>import("./animation-mixers.service-CpAQO3GY.js"),__vite__mapDeps([249,250,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>lo(()=>import("./animation-timeline.utility-BI25zuOA.js"),__vite__mapDeps([251,1,2,252,3,4,20,21,22,23]))}],_0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-zJZEKJbn.js"),__vite__mapDeps([253,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>lo(()=>import("./machine.document-ChSDKagD.js"),__vite__mapDeps([254,1,2,3,4,20,21,22,23]))}];let HY=null;const $Oe=new Set;function uee(){return HY}function m0r(t){if(HY!==null&&HY.id!==t.id)throw new Error(`Two products in one page: "${HY.id}" is already composed and "${t.id}" asked to be. A product is the running program; one page runs one.`);HY=t;for(const n of $Oe)n()}function ITt(t){return $Oe.add(t),()=>$Oe.delete(t)}/*!
|
|
3
3
|
* Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com
|
|
4
4
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
|
5
5
|
* Copyright 2026 Fonticons, Inc.
|
|
@@ -42,7 +42,7 @@ import{r as Ye,a as _C}from"./index-nmcBqr7Y.js";import{a as q}from"./jsx-runtim
|
|
|
42
42
|
|
|
43
43
|
`)}$.write("payload.value = newResult;"),$.write("return payload;");const Ce=$.compile();return(De,Pe)=>Ce(J,De,Pe)};let m;const g=ZB,S=!ZOe.jitless,A=S&&xCt.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?FEt([],G,J,$,D,t):J):s(J,$):(J.issues.push({expected:"object",code:"invalid_type",input:G,inst:t}),J)}});function Gmt(t,n,s,c){for(const m of t)if(m.issues.length===0)return n.value=m.value,n;const d=t.filter(m=>!jO(m));return d.length===1?(n.value=d[0].value,d[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:t.map(m=>m.issues.map(g=>Nw(g,c,$S())))}),n)}const xLe=ui("$ZodUnion",(t,n)=>{vu.init(t,n),Gu(t._zod,"optin",()=>n.options.some(d=>d._zod.optin==="optional")?"optional":void 0),Gu(t._zod,"optout",()=>n.options.some(d=>d._zod.optout==="optional")?"optional":void 0),Gu(t._zod,"values",()=>{if(n.options.every(d=>d._zod.values))return new Set(n.options.flatMap(d=>Array.from(d._zod.values)))}),Gu(t._zod,"pattern",()=>{if(n.options.every(d=>d._zod.pattern)){const d=n.options.map(m=>m._zod.pattern);return new RegExp(`^(${d.map(m=>dye(m.source)).join("|")})$`)}});const s=n.options.length===1,c=n.options[0]._zod.run;t._zod.parse=(d,m)=>{if(s)return c(d,m);let g=!1;const S=[];for(const k of n.options){const A=k._zod.run({value:d.value,issues:[]},m);if(A instanceof Promise)S.push(A),g=!0;else{if(A.issues.length===0)return A;S.push(A)}}return g?Promise.all(S).then(k=>Gmt(k,d,t,m)):Gmt(S,d,t,m)}});function Kmt(t,n,s,c){const d=t.filter(m=>m.issues.length===0);return d.length===1?(n.value=d[0].value,n):(d.length===0?n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:t.map(m=>m.issues.map(g=>Nw(g,c,$S())))}):n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:[],inclusive:!1}),n)}const n2r=ui("$ZodXor",(t,n)=>{xLe.init(t,n),n.inclusive=!1;const s=n.options.length===1,c=n.options[0]._zod.run;t._zod.parse=(d,m)=>{if(s)return c(d,m);let g=!1;const S=[];for(const k of n.options){const A=k._zod.run({value:d.value,issues:[]},m);A instanceof Promise?(S.push(A),g=!0):S.push(A)}return g?Promise.all(S).then(k=>Kmt(k,d,t,m)):Kmt(S,d,t,m)}}),i2r=ui("$ZodDiscriminatedUnion",(t,n)=>{n.inclusive=!1,xLe.init(t,n);const s=t._zod.parse;Gu(t._zod,"propValues",()=>{const d={};for(const m of n.options){const g=m._zod.propValues;if(!g||Object.keys(g).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(m)}"`);for(const[S,k]of Object.entries(g)){d[S]||(d[S]=new Set);for(const A of k)d[S].add(A)}}return d});const c=pee(()=>{const d=n.options,m=new Map;for(const g of d){const S=g._zod.propValues?.[n.discriminator];if(!S||S.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(g)}"`);for(const k of S){if(m.has(k))throw new Error(`Duplicate discriminator value "${String(k)}"`);m.set(k,g)}}return m});t._zod.parse=(d,m)=>{const g=d.value;if(!ZB(g))return d.issues.push({code:"invalid_type",expected:"object",input:g,inst:t}),d;const S=c.value.get(g?.[n.discriminator]);return S?S._zod.run(d,m):n.unionFallback?s(d,m):(d.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:g,path:[n.discriminator],inst:t}),d)}}),o2r=ui("$ZodIntersection",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value,m=n.left._zod.run({value:d,issues:[]},c),g=n.right._zod.run({value:d,issues:[]},c);return m instanceof Promise||g instanceof Promise?Promise.all([m,g]).then(([k,A])=>Xmt(s,k,A)):Xmt(s,m,g)}});function eRe(t,n){if(t===n)return{valid:!0,data:t};if(t instanceof Date&&n instanceof Date&&+t==+n)return{valid:!0,data:t};if(cR(t)&&cR(n)){const s=Object.keys(n),c=Object.keys(t).filter(m=>s.indexOf(m)!==-1),d={...t,...n};for(const m of c){const g=eRe(t[m],n[m]);if(!g.valid)return{valid:!1,mergeErrorPath:[m,...g.mergeErrorPath]};d[m]=g.data}return{valid:!0,data:d}}if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return{valid:!1,mergeErrorPath:[]};const s=[];for(let c=0;c<t.length;c++){const d=t[c],m=n[c],g=eRe(d,m);if(!g.valid)return{valid:!1,mergeErrorPath:[c,...g.mergeErrorPath]};s.push(g.data)}return{valid:!0,data:s}}return{valid:!1,mergeErrorPath:[]}}function Xmt(t,n,s){const c=new Map;let d;for(const S of n.issues)if(S.code==="unrecognized_keys"){d??(d=S);for(const k of S.keys)c.has(k)||c.set(k,{}),c.get(k).l=!0}else t.issues.push(S);for(const S of s.issues)if(S.code==="unrecognized_keys")for(const k of S.keys)c.has(k)||c.set(k,{}),c.get(k).r=!0;else t.issues.push(S);const m=[...c].filter(([,S])=>S.l&&S.r).map(([S])=>S);if(m.length&&d&&t.issues.push({...d,keys:m}),jO(t))return t;const g=eRe(n.value,s.value);if(!g.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(g.mergeErrorPath)}`);return t.value=g.data,t}const MEt=ui("$ZodTuple",(t,n)=>{vu.init(t,n);const s=n.items;t._zod.parse=(c,d)=>{const m=c.value;if(!Array.isArray(m))return c.issues.push({input:m,inst:t,expected:"tuple",code:"invalid_type"}),c;c.value=[];const g=[],S=[...s].reverse().findIndex(F=>F._zod.optin!=="optional"),k=S===-1?0:s.length-S;if(!n.rest){const F=m.length>s.length,D=m.length<k-1;if(F||D)return c.issues.push({...F?{code:"too_big",maximum:s.length,inclusive:!0}:{code:"too_small",minimum:s.length},input:m,inst:t,origin:"array"}),c}let A=-1;for(const F of s){if(A++,A>=m.length&&A>=k)continue;const D=F._zod.run({value:m[A],issues:[]},d);D instanceof Promise?g.push(D.then(J=>bpe(J,c,A))):bpe(D,c,A)}if(n.rest){const F=m.slice(s.length);for(const D of F){A++;const J=n.rest._zod.run({value:D,issues:[]},d);J instanceof Promise?g.push(J.then($=>bpe($,c,A))):bpe(J,c,A)}}return g.length?Promise.all(g).then(()=>c):c}});function bpe(t,n,s){t.issues.length&&n.issues.push(...mC(s,t.issues)),n.value[s]=t.value}const s2r=ui("$ZodRecord",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;if(!cR(d))return s.issues.push({expected:"record",code:"invalid_type",input:d,inst:t}),s;const m=[],g=n.keyType._zod.values;if(g){s.value={};const S=new Set;for(const A of g)if(typeof A=="string"||typeof A=="number"||typeof A=="symbol"){S.add(typeof A=="number"?A.toString():A);const F=n.valueType._zod.run({value:d[A],issues:[]},c);F instanceof Promise?m.push(F.then(D=>{D.issues.length&&s.issues.push(...mC(A,D.issues)),s.value[A]=D.value})):(F.issues.length&&s.issues.push(...mC(A,F.issues)),s.value[A]=F.value)}let k;for(const A in d)S.has(A)||(k=k??[],k.push(A));k&&k.length>0&&s.issues.push({code:"unrecognized_keys",input:d,inst:t,keys:k})}else{s.value={};for(const S of Reflect.ownKeys(d)){if(S==="__proto__")continue;let k=n.keyType._zod.run({value:S,issues:[]},c);if(k instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof S=="string"&&SLe.test(S)&&k.issues.length){const D=n.keyType._zod.run({value:Number(S),issues:[]},c);if(D instanceof Promise)throw new Error("Async schemas not supported in object keys currently");D.issues.length===0&&(k=D)}if(k.issues.length){n.mode==="loose"?s.value[S]=d[S]:s.issues.push({code:"invalid_key",origin:"record",issues:k.issues.map(D=>Nw(D,c,$S())),input:S,path:[S],inst:t});continue}const F=n.valueType._zod.run({value:d[S],issues:[]},c);F instanceof Promise?m.push(F.then(D=>{D.issues.length&&s.issues.push(...mC(S,D.issues)),s.value[k.value]=D.value})):(F.issues.length&&s.issues.push(...mC(S,F.issues)),s.value[k.value]=F.value)}}return m.length?Promise.all(m).then(()=>s):s}}),a2r=ui("$ZodMap",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;if(!(d instanceof Map))return s.issues.push({expected:"map",code:"invalid_type",input:d,inst:t}),s;const m=[];s.value=new Map;for(const[g,S]of d){const k=n.keyType._zod.run({value:g,issues:[]},c),A=n.valueType._zod.run({value:S,issues:[]},c);k instanceof Promise||A instanceof Promise?m.push(Promise.all([k,A]).then(([F,D])=>{Ymt(F,D,s,g,d,t,c)})):Ymt(k,A,s,g,d,t,c)}return m.length?Promise.all(m).then(()=>s):s}});function Ymt(t,n,s,c,d,m,g){t.issues.length&&(Bme.has(typeof c)?s.issues.push(...mC(c,t.issues)):s.issues.push({code:"invalid_key",origin:"map",input:d,inst:m,issues:t.issues.map(S=>Nw(S,g,$S()))})),n.issues.length&&(Bme.has(typeof c)?s.issues.push(...mC(c,n.issues)):s.issues.push({origin:"map",code:"invalid_element",input:d,inst:m,key:c,issues:n.issues.map(S=>Nw(S,g,$S()))})),s.value.set(t.value,n.value)}const c2r=ui("$ZodSet",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{const d=s.value;if(!(d instanceof Set))return s.issues.push({input:d,inst:t,expected:"set",code:"invalid_type"}),s;const m=[];s.value=new Set;for(const g of d){const S=n.valueType._zod.run({value:g,issues:[]},c);S instanceof Promise?m.push(S.then(k=>Zmt(k,s))):Zmt(S,s)}return m.length?Promise.all(m).then(()=>s):s}});function Zmt(t,n){t.issues.length&&n.issues.push(...t.issues),n.value.add(t.value)}const l2r=ui("$ZodEnum",(t,n)=>{vu.init(t,n);const s=yLe(n.entries),c=new Set(s);t._zod.values=c,t._zod.pattern=new RegExp(`^(${s.filter(d=>Bme.has(typeof d)).map(d=>typeof d=="string"?xD(d):d.toString()).join("|")})$`),t._zod.parse=(d,m)=>{const g=d.value;return c.has(g)||d.issues.push({code:"invalid_value",values:s,input:g,inst:t}),d}}),u2r=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}}),f2r=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}}),d2r=ui("$ZodTransform",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe(t.constructor.name);const d=n.transform(s.value,s);if(c.async)return(d instanceof Promise?d:Promise.resolve(d)).then(g=>(s.value=g,s));if(d instanceof Promise)throw new yB;return s.value=d,s}});function Qmt(t,n){return t.issues.length&&n===void 0?{issues:[],value:void 0}:t}const jEt=ui("$ZodOptional",(t,n)=>{vu.init(t,n),t._zod.optin="optional",t._zod.optout="optional",Gu(t._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,void 0]):void 0),Gu(t._zod,"pattern",()=>{const s=n.innerType._zod.pattern;return s?new RegExp(`^(${dye(s.source)})?$`):void 0}),t._zod.parse=(s,c)=>{if(n.innerType._zod.optin==="optional"){const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>Qmt(m,s.value)):Qmt(d,s.value)}return s.value===void 0?s:n.innerType._zod.run(s,c)}}),p2r=ui("$ZodExactOptional",(t,n)=>{jEt.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)}),_2r=ui("$ZodNullable",(t,n)=>{vu.init(t,n),Gu(t._zod,"optin",()=>n.innerType._zod.optin),Gu(t._zod,"optout",()=>n.innerType._zod.optout),Gu(t._zod,"pattern",()=>{const s=n.innerType._zod.pattern;return s?new RegExp(`^(${dye(s.source)}|null)$`):void 0}),Gu(t._zod,"values",()=>n.innerType._zod.values?new Set([...n.innerType._zod.values,null]):void 0),t._zod.parse=(s,c)=>s.value===null?s:n.innerType._zod.run(s,c)}),m2r=ui("$ZodDefault",(t,n)=>{vu.init(t,n),t._zod.optin="optional",Gu(t._zod,"values",()=>n.innerType._zod.values),t._zod.parse=(s,c)=>{if(c.direction==="backward")return n.innerType._zod.run(s,c);if(s.value===void 0)return s.value=n.defaultValue,s;const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>eht(m,n)):eht(d,n)}});function eht(t,n){return t.value===void 0&&(t.value=n.defaultValue),t}const h2r=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))}),g2r=ui("$ZodNonOptional",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>{const s=n.innerType._zod.values;return s?new Set([...s].filter(c=>c!==void 0)):void 0}),t._zod.parse=(s,c)=>{const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>tht(m,t)):tht(d,t)}});function tht(t,n){return!t.issues.length&&t.value===void 0&&t.issues.push({code:"invalid_type",expected:"nonoptional",input:t.value,inst:n}),t}const y2r=ui("$ZodSuccess",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe("ZodSuccess");const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(m=>(s.value=m.issues.length===0,s)):(s.value=d.issues.length===0,s)}}),v2r=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)}}),b2r=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)}),S2r=ui("$ZodPipe",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>n.in._zod.values),Gu(t._zod,"optin",()=>n.in._zod.optin),Gu(t._zod,"optout",()=>n.out._zod.optout),Gu(t._zod,"propValues",()=>n.in._zod.propValues),t._zod.parse=(s,c)=>{if(c.direction==="backward"){const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>Spe(g,n.in,c)):Spe(m,n.in,c)}const d=n.in._zod.run(s,c);return d instanceof Promise?d.then(m=>Spe(m,n.out,c)):Spe(d,n.out,c)}});function Spe(t,n,s){return t.issues.length?(t.aborted=!0,t):n._zod.run({value:t.value,issues:t.issues},s)}const LEt=ui("$ZodCodec",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>n.in._zod.values),Gu(t._zod,"optin",()=>n.in._zod.optin),Gu(t._zod,"optout",()=>n.out._zod.optout),Gu(t._zod,"propValues",()=>n.in._zod.propValues),t._zod.parse=(s,c)=>{if((c.direction||"forward")==="forward"){const m=n.in._zod.run(s,c);return m instanceof Promise?m.then(g=>xpe(g,n,c)):xpe(m,n,c)}else{const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>xpe(g,n,c)):xpe(m,n,c)}}});function xpe(t,n,s){if(t.issues.length)return t.aborted=!0,t;if((s.direction||"forward")==="forward"){const d=n.transform(t.value,t);return d instanceof Promise?d.then(m=>wpe(t,m,n.out,s)):wpe(t,d,n.out,s)}else{const d=n.reverseTransform(t.value,t);return d instanceof Promise?d.then(m=>wpe(t,m,n.in,s)):wpe(t,d,n.in,s)}}function wpe(t,n,s,c){return t.issues.length?(t.aborted=!0,t):s._zod.run({value:n,issues:t.issues},c)}const x2r=ui("$ZodReadonly",(t,n)=>{vu.init(t,n),Gu(t._zod,"propValues",()=>n.innerType._zod.propValues),Gu(t._zod,"values",()=>n.innerType._zod.values),Gu(t._zod,"optin",()=>n.innerType?._zod?.optin),Gu(t._zod,"optout",()=>n.innerType?._zod?.optout),t._zod.parse=(s,c)=>{if(c.direction==="backward")return n.innerType._zod.run(s,c);const d=n.innerType._zod.run(s,c);return d instanceof Promise?d.then(rht):rht(d)}});function rht(t){return t.value=Object.freeze(t.value),t}const w2r=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||wCt.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)}),T2r=ui("$ZodFunction",(t,n)=>(vu.init(t,n),t._def=n,t._zod.def=n,t.implement=s=>{if(typeof s!="function")throw new Error("implement() must be called with a function");return function(...c){const d=t._def.input?Umt(t._def.input,c):c,m=Reflect.apply(s,this,d);return t._def.output?Umt(t._def.output,m):m}},t.implementAsync=s=>{if(typeof s!="function")throw new Error("implementAsync() must be called with a function");return async function(...c){const d=t._def.input?await Jmt(t._def.input,c):c,m=await Reflect.apply(s,this,d);return t._def.output?await Jmt(t._def.output,m):m}},t._zod.parse=(s,c)=>typeof s.value!="function"?(s.issues.push({code:"invalid_type",expected:"function",input:s.value,inst:t}),s):(t._def.output&&t._def.output._zod.def.type==="promise"?s.value=t.implementAsync(s.value):s.value=t.implement(s.value),s),t.input=(...s)=>{const c=t.constructor;return Array.isArray(s[0])?new c({type:"function",input:new MEt({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)),C2r=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))}),E2r=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)}),k2r=ui("$ZodCustom",(t,n)=>{eh.init(t,n),vu.init(t,n),t._zod.parse=(s,c)=>s,t._zod.check=s=>{const c=s.value,d=n.fn(c);if(d instanceof Promise)return d.then(m=>nht(m,s,c,t));nht(d,s,c,t)}});function nht(t,n,s,c){if(!t){const d={code:"custom",input:s,inst:c,path:[...c._zod.def.path??[]],continue:!c._zod.def.abort};c._zod.def.params&&(d.params=c._zod.def.params),n.issues.push(QB(d))}}var iht;const ign=Symbol("ZodOutput"),ogn=Symbol("ZodInput");class A2r{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 D2r(){return new A2r}(iht=globalThis).__zod_globalRegistry??(iht.__zod_globalRegistry=D2r());const sD=globalThis.__zod_globalRegistry;function P2r(t,n){return new t({type:"string",...Jo(n)})}function sgn(t,n){return new t({type:"string",coerce:!0,...Jo(n)})}function BEt(t,n){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Jo(n)})}function tRe(t,n){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Jo(n)})}function $Et(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Jo(n)})}function qEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Jo(n)})}function zEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Jo(n)})}function VEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Jo(n)})}function wLe(t,n){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Jo(n)})}function UEt(t,n){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Jo(n)})}function JEt(t,n){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Jo(n)})}function WEt(t,n){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Jo(n)})}function HEt(t,n){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Jo(n)})}function GEt(t,n){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Jo(n)})}function KEt(t,n){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Jo(n)})}function XEt(t,n){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Jo(n)})}function YEt(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 I2r(t,n){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Jo(n)})}function QEt(t,n){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Jo(n)})}function ekt(t,n){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Jo(n)})}function tkt(t,n){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Jo(n)})}function rkt(t,n){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Jo(n)})}function nkt(t,n){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Jo(n)})}function ikt(t,n){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Jo(n)})}const agn={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function N2r(t,n){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Jo(n)})}function O2r(t,n){return new t({type:"string",format:"date",check:"string_format",...Jo(n)})}function R2r(t,n){return new t({type:"string",format:"time",check:"string_format",precision:null,...Jo(n)})}function F2r(t,n){return new t({type:"string",format:"duration",check:"string_format",...Jo(n)})}function M2r(t,n){return new t({type:"number",checks:[],...Jo(n)})}function cgn(t,n){return new t({type:"number",coerce:!0,checks:[],...Jo(n)})}function j2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Jo(n)})}function L2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Jo(n)})}function B2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Jo(n)})}function $2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Jo(n)})}function q2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Jo(n)})}function z2r(t,n){return new t({type:"boolean",...Jo(n)})}function lgn(t,n){return new t({type:"boolean",coerce:!0,...Jo(n)})}function V2r(t,n){return new t({type:"bigint",...Jo(n)})}function ugn(t,n){return new t({type:"bigint",coerce:!0,...Jo(n)})}function U2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Jo(n)})}function J2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Jo(n)})}function W2r(t,n){return new t({type:"symbol",...Jo(n)})}function H2r(t,n){return new t({type:"undefined",...Jo(n)})}function G2r(t,n){return new t({type:"null",...Jo(n)})}function K2r(t){return new t({type:"any"})}function X2r(t){return new t({type:"unknown"})}function Y2r(t,n){return new t({type:"never",...Jo(n)})}function Z2r(t,n){return new t({type:"void",...Jo(n)})}function Q2r(t,n){return new t({type:"date",...Jo(n)})}function fgn(t,n){return new t({type:"date",coerce:!0,...Jo(n)})}function eSr(t,n){return new t({type:"nan",...Jo(n)})}function QZ(t,n){return new AEt({check:"less_than",...Jo(n),value:t,inclusive:!1})}function YI(t,n){return new AEt({check:"less_than",...Jo(n),value:t,inclusive:!0})}function eQ(t,n){return new DEt({check:"greater_than",...Jo(n),value:t,inclusive:!1})}function qk(t,n){return new DEt({check:"greater_than",...Jo(n),value:t,inclusive:!0})}function dgn(t){return eQ(0,t)}function pgn(t){return QZ(0,t)}function _gn(t){return YI(0,t)}function mgn(t){return qk(0,t)}function rRe(t,n){return new Y1r({check:"multiple_of",...Jo(n),value:t})}function TLe(t,n){return new ebr({check:"max_size",...Jo(n),maximum:t})}function tQ(t,n){return new tbr({check:"min_size",...Jo(n),minimum:t})}function okt(t,n){return new rbr({check:"size_equals",...Jo(n),size:t})}function skt(t,n){return new nbr({check:"max_length",...Jo(n),maximum:t})}function qme(t,n){return new ibr({check:"min_length",...Jo(n),minimum:t})}function akt(t,n){return new obr({check:"length_equals",...Jo(n),length:t})}function tSr(t,n){return new sbr({check:"string_format",format:"regex",...Jo(n),pattern:t})}function rSr(t){return new abr({check:"string_format",format:"lowercase",...Jo(t)})}function nSr(t){return new cbr({check:"string_format",format:"uppercase",...Jo(t)})}function iSr(t,n){return new lbr({check:"string_format",format:"includes",...Jo(n),includes:t})}function oSr(t,n){return new ubr({check:"string_format",format:"starts_with",...Jo(n),prefix:t})}function sSr(t,n){return new fbr({check:"string_format",format:"ends_with",...Jo(n),suffix:t})}function hgn(t,n,s){return new dbr({check:"property",property:t,schema:n,...Jo(s)})}function aSr(t,n){return new pbr({check:"mime_type",mime:t,...Jo(n)})}function M$(t){return new _br({check:"overwrite",tx:t})}function cSr(t){return M$(n=>n.normalize(t))}function lSr(){return M$(t=>t.trim())}function uSr(){return M$(t=>t.toLowerCase())}function fSr(){return M$(t=>t.toUpperCase())}function dSr(){return M$(t=>SCt(t))}function pSr(t,n,s){return new t({type:"array",element:n,...Jo(s)})}function ggn(t,n,s){return new t({type:"union",options:n,...Jo(s)})}function ygn(t,n,s){return new t({type:"union",options:n,inclusive:!1,...Jo(s)})}function vgn(t,n,s,c){return new t({type:"union",options:s,discriminator:n,...Jo(c)})}function bgn(t,n,s){return new t({type:"intersection",left:n,right:s})}function Sgn(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 xgn(t,n,s,c){return new t({type:"record",keyType:n,valueType:s,...Jo(c)})}function wgn(t,n,s,c){return new t({type:"map",keyType:n,valueType:s,...Jo(c)})}function Tgn(t,n,s){return new t({type:"set",valueType:n,...Jo(s)})}function Cgn(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 Egn(t,n,s){return new t({type:"enum",entries:n,...Jo(s)})}function kgn(t,n,s){return new t({type:"literal",values:Array.isArray(n)?n:[n],...Jo(s)})}function _Sr(t,n){return new t({type:"file",...Jo(n)})}function Agn(t,n){return new t({type:"transform",transform:n})}function Dgn(t,n){return new t({type:"optional",innerType:n})}function Pgn(t,n){return new t({type:"nullable",innerType:n})}function Ign(t,n,s){return new t({type:"default",innerType:n,get defaultValue(){return typeof s=="function"?s():pye(s)}})}function Ngn(t,n,s){return new t({type:"nonoptional",innerType:n,...Jo(s)})}function Ogn(t,n){return new t({type:"success",innerType:n})}function Rgn(t,n,s){return new t({type:"catch",innerType:n,catchValue:typeof s=="function"?s:()=>s})}function Fgn(t,n,s){return new t({type:"pipe",in:n,out:s})}function Mgn(t,n){return new t({type:"readonly",innerType:n})}function jgn(t,n,s){return new t({type:"template_literal",parts:n,...Jo(s)})}function Lgn(t,n){return new t({type:"lazy",getter:n})}function Bgn(t,n){return new t({type:"promise",innerType:n})}function mSr(t,n,s){const c=Jo(s);return c.abort??(c.abort=!0),new t({type:"custom",check:"custom",fn:n,...c})}function hSr(t,n,s){return new t({type:"custom",check:"custom",fn:n,...Jo(s)})}function gSr(t){const n=ySr(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 ySr(t,n){const s=new eh({check:"custom",...Jo(n)});return s._zod.check=t,s}function vSr(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 bSr(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 SSr(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??LEt,k=t.Boolean??NEt,A=t.String??Sye,F=new A({type:"string",error:s.error}),D=new k({type:"boolean",error:s.error}),J=new S({type:"pipe",in:F,out:D,transform:(($,G)=>{let se=$;return s.case!=="sensitive"&&(se=se.toLowerCase()),m.has(se)?!0:g.has(se)?!1:(G.issues.push({code:"invalid_value",expected:"stringbool",values:[...m,...g],input:G.value,inst:J,continue:!1}),{})}),reverseTransform:(($,G)=>$===!0?c[0]||"true":d[0]||"false"),error:s.error});return J}function xye(t,n,s,c={}){const d=Jo(c),m={...Jo(c),check:"string_format",type:"string",format:n,fn:typeof s=="function"?s:S=>s.test(S),...d};return s instanceof RegExp&&(m.pattern=s),new t(m)}function zme(t){let n=t?.target??"draft-2020-12";return n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),{processors:t.processors??{},metadataRegistry:t?.metadata??sD,target:n,unrepresentable:t?.unrepresentable??"throw",override:t?.override??(()=>{}),io:t?.io??"output",counter:0,seen:new Map,cycles:t?.cycles??"ref",reused:t?.reused??"inline",external:t?.external??void 0}}function F_(t,n,s={path:[],schemaPath:[]}){var c;const d=t._zod.def,m=n.seen.get(t);if(m)return m.count++,s.schemaPath.includes(t)&&(m.cycle=s.path),m.schema;const g={schema:{},count:1,cycle:void 0,path:s.path};n.seen.set(t,g);const S=t._zod.toJSONSchema?.();if(S)g.schema=S;else{const F={...s,schemaPath:[...s.schemaPath,t],path:s.path};if(t._zod.processJSONSchema)t._zod.processJSONSchema(n,g.schema,F);else{const J=g.schema,$=n.processors[d.type];if(!$)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${d.type}`);$(t,n,J,F)}const D=t._zod.parent;D&&(g.ref||(g.ref=D),F_(D,n,F),n.seen.get(D).isParent=!0)}const k=n.metadataRegistry.get(t);return k&&Object.assign(g.schema,k),n.io==="input"&&W1(t)&&(delete g.schema.examples,delete g.schema.default),n.io==="input"&&g.schema._prefault&&((c=g.schema).default??(c.default=g.schema._prefault)),delete g.schema._prefault,n.seen.get(t).schema}function Vme(t,n){const s=t.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const c=new Map;for(const g of t.seen.entries()){const S=t.metadataRegistry.get(g[0])?.id;if(S){const k=c.get(S);if(k&&k!==g[0])throw new Error(`Duplicate schema id "${S}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);c.set(S,g[0])}}const d=g=>{const S=t.target==="draft-2020-12"?"$defs":"definitions";if(t.external){const D=t.external.registry.get(g[0])?.id,J=t.external.uri??(G=>G);if(D)return{ref:J(D)};const $=g[1].defId??g[1].schema.id??`schema${t.counter++}`;return g[1].defId=$,{defId:$,ref:`${J("__shared")}#/${S}/${$}`}}if(g[1]===s)return{ref:"#"};const A=`#/${S}/`,F=g[1].schema.id??`__schema${t.counter++}`;return{defId:F,ref:A+F}},m=g=>{if(g[1].schema.$ref)return;const S=g[1],{ref:k,defId:A}=d(g);S.def={...S.schema},A&&(S.defId=A);const F=S.schema;for(const D in F)delete F[D];F.$ref=k};if(t.cycles==="throw")for(const g of t.seen.entries()){const S=g[1];if(S.cycle)throw new Error(`Cycle detected: #/${S.cycle?.join("/")}/<root>
|
|
44
44
|
|
|
45
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of t.seen.entries()){const S=g[1];if(n===g[0]){m(g);continue}if(t.external){const A=t.external.registry.get(g[0])?.id;if(n!==g[0]&&A){m(g);continue}}if(t.metadataRegistry.get(g[0])?.id){m(g);continue}if(S.cycle){m(g);continue}if(S.count>1&&t.reused==="ref"){m(g);continue}}}function Ume(t,n){const s=t.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const c=g=>{const S=t.seen.get(g);if(S.ref===null)return;const k=S.def??S.schema,A={...k},F=S.ref;if(S.ref=null,F){c(F);const J=t.seen.get(F),$=J.schema;if($.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(k.allOf=k.allOf??[],k.allOf.push($)):Object.assign(k,$),Object.assign(k,A),g._zod.parent===F)for(const se in k)se==="$ref"||se==="allOf"||se in A||delete k[se];if($.$ref&&J.def)for(const se in k)se==="$ref"||se==="allOf"||se in J.def&&JSON.stringify(k[se])===JSON.stringify(J.def[se])&&delete k[se]}const D=g._zod.parent;if(D&&D!==F){c(D);const J=t.seen.get(D);if(J?.schema.$ref&&(k.$ref=J.schema.$ref,J.def))for(const $ in k)$==="$ref"||$==="allOf"||$ in J.def&&JSON.stringify(k[$])===JSON.stringify(J.def[$])&&delete k[$]}t.override({zodSchema:g,jsonSchema:k,path:S.path??[]})};for(const g of[...t.seen.entries()].reverse())c(g[0]);const d={};if(t.target==="draft-2020-12"?d.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?d.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?d.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){const g=t.external.registry.get(n)?.id;if(!g)throw new Error("Schema is missing an `id` property");d.$id=t.external.uri(g)}Object.assign(d,s.def??s.schema);const m=t.external?.defs??{};for(const g of t.seen.entries()){const S=g[1];S.def&&S.defId&&(m[S.defId]=S.def)}t.external||Object.keys(m).length>0&&(t.target==="draft-2020-12"?d.$defs=m:d.definitions=m);try{const g=JSON.parse(JSON.stringify(d));return Object.defineProperty(g,"~standard",{value:{...n["~standard"],jsonSchema:{input:Jme(n,"input",t.processors),output:Jme(n,"output",t.processors)}},enumerable:!1,writable:!1}),g}catch{throw new Error("Error converting schema to JSON.")}}function W1(t,n){const s=n??{seen:new Set};if(s.seen.has(t))return!1;s.seen.add(t);const c=t._zod.def;if(c.type==="transform")return!0;if(c.type==="array")return W1(c.element,s);if(c.type==="set")return W1(c.valueType,s);if(c.type==="lazy")return W1(c.getter(),s);if(c.type==="promise"||c.type==="optional"||c.type==="nonoptional"||c.type==="nullable"||c.type==="readonly"||c.type==="default"||c.type==="prefault")return W1(c.innerType,s);if(c.type==="intersection")return W1(c.left,s)||W1(c.right,s);if(c.type==="record"||c.type==="map")return W1(c.keyType,s)||W1(c.valueType,s);if(c.type==="pipe")return W1(c.in,s)||W1(c.out,s);if(c.type==="object"){for(const d in c.shape)if(W1(c.shape[d],s))return!0;return!1}if(c.type==="union"){for(const d of c.options)if(W1(d,s))return!0;return!1}if(c.type==="tuple"){for(const d of c.items)if(W1(d,s))return!0;return!!(c.rest&&W1(c.rest,s))}return!1}const xSr=(t,n={})=>s=>{const c=zme({...s,processors:n});return F_(t,c),Vme(c,t),Ume(c,t)},Jme=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=zme({...d??{},target:m,io:n,processors:s});return F_(t,g),Vme(g,t),Ume(g,t)},wSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ckt=(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=wSr[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}))])}},lkt=(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)},ukt=(t,n,s,c)=>{s.type="boolean"},fkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},pkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},_kt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},mkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},hkt=(t,n,s,c)=>{s.not={}},gkt=(t,n,s,c)=>{},ykt=(t,n,s,c)=>{},vkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},bkt=(t,n,s,c)=>{const d=t._zod.def,m=yLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},Skt=(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},xkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},wkt=(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},Tkt=(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)},Ckt=(t,n,s,c)=>{s.type="boolean"},Ekt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},kkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Akt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Pkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Ikt=(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"]})},Nkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="object",d.properties={};const g=m.shape;for(const A in g)d.properties[A]=F_(g[A],n,{...c,path:[...c.path,"properties",A]});const S=new Set(Object.keys(g)),k=new Set([...S].filter(A=>{const F=m.shape[A]._zod;return n.io==="input"?F.optin===void 0:F.optout===void 0}));k.size>0&&(d.required=Array.from(k)),m.catchall?._zod.def.type==="never"?d.additionalProperties=!1:m.catchall?m.catchall&&(d.additionalProperties=F_(m.catchall,n,{...c,path:[...c.path,"additionalProperties"]})):n.io==="output"&&(d.additionalProperties=!1)},CLe=(t,n,s,c)=>{const d=t._zod.def,m=d.inclusive===!1,g=d.options.map((S,k)=>F_(S,n,{...c,path:[...c.path,m?"oneOf":"anyOf",k]}));m?s.oneOf=g:s.anyOf=g},Okt=(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},Rkt=(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)},Fkt=(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)}},Mkt=(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"}]},jkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Lkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.default=JSON.parse(JSON.stringify(d.defaultValue))},Bkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,n.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(d.defaultValue)))},$kt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType;let g;try{g=d.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},qkt=(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},zkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.readOnly=!0},Vkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},ELe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Ukt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},oht={string:ckt,number:lkt,boolean:ukt,bigint:fkt,symbol:dkt,null:pkt,undefined:_kt,void:mkt,never:hkt,any:gkt,unknown:ykt,date:vkt,enum:bkt,literal:Skt,nan:xkt,template_literal:wkt,file:Tkt,success:Ckt,custom:Ekt,function:kkt,transform:Akt,map:Dkt,set:Pkt,array:Ikt,object:Nkt,union:CLe,intersection:Okt,tuple:Rkt,record:Fkt,nullable:Mkt,nonoptional:jkt,default:Lkt,prefault:Bkt,catch:$kt,pipe:qkt,readonly:zkt,promise:Vkt,optional:ELe,lazy:Ukt};function TSr(t,n){if("_idmap"in t){const c=t,d=zme({...n,processors:oht}),m={};for(const k of c._idmap.entries()){const[A,F]=k;F_(F,d)}const g={},S={registry:c,uri:n?.uri,defs:m};d.external=S;for(const k of c._idmap.entries()){const[A,F]=k;Vme(d,F),g[A]=Ume(d,F)}if(Object.keys(m).length>0){const k=d.target==="draft-2020-12"?"$defs":"definitions";g.__shared={[k]:m}}return{schemas:g}}const s=zme({...n,processors:oht});return F_(t,s),Vme(s,t),Ume(s,t)}const Jkt=ui("ZodISODateTime",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function Wkt(t){return N2r(Jkt,t)}const Hkt=ui("ZodISODate",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function Gkt(t){return O2r(Hkt,t)}const Kkt=ui("ZodISOTime",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function Xkt(t){return R2r(Kkt,t)}const Ykt=ui("ZodISODuration",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function Zkt(t){return F2r(Ykt,t)}const $gn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Hkt,ZodISODateTime:Jkt,ZodISODuration:Ykt,ZodISOTime:Kkt,date:Gkt,datetime:Wkt,duration:Zkt,time:Xkt},Symbol.toStringTag,{value:"Module"})),Qkt=(t,n)=>{LCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>x1r(t,s)},flatten:{value:s=>S1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,Lme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,Lme,2)}},isEmpty:{get(){return t.issues.length===0}}})},qgn=ui("ZodError",Qkt),Fw=ui("ZodError",Qkt,{Parent:Error}),CSr=hye(Fw),ESr=gye(Fw),kSr=yye(Fw),ASr=vye(Fw),DSr=BCt(Fw),PSr=$Ct(Fw),ISr=qCt(Fw),NSr=zCt(Fw),OSr=VCt(Fw),RSr=UCt(Fw),FSr=JCt(Fw),MSr=WCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:Jme(t,"input"),output:Jme(t,"output")}}),t.toJSONSchema=xSr(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)=>CSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>kSr(t,s,c),t.parseAsync=async(s,c)=>ESr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>ASr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>DSr(t,s,c),t.decode=(s,c)=>PSr(t,s,c),t.encodeAsync=async(s,c)=>ISr(t,s,c),t.decodeAsync=async(s,c)=>NSr(t,s,c),t.safeEncode=(s,c)=>OSr(t,s,c),t.safeDecode=(s,c)=>RSr(t,s,c),t.safeEncodeAsync=async(s,c)=>FSr(t,s,c),t.safeDecodeAsync=async(s,c)=>MSr(t,s,c),t.refine=(s,c)=>t.check($At(s,c)),t.superRefine=s=>t.check(qAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Gme(t),t.exactOptional=()=>xAt(t),t.nullable=()=>Kme(t),t.nullish=()=>Gme(Kme(t)),t.nonoptional=s=>AAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>XLe(t,s),t.transform=s=>Xme(t,YLe(s)),t.default=s=>CAt(t,s),t.prefault=s=>kAt(t,s),t.catch=s=>IAt(t,s),t.pipe=s=>Xme(t,s),t.readonly=()=>RAt(t),t.describe=s=>{const c=t.clone();return sD.add(c,{description:s}),c},Object.defineProperty(t,"description",{get(){return sD.get(t)?.description},configurable:!0}),t.meta=(...s)=>{if(s.length===0)return sD.get(t);const c=t.clone();return sD.add(c,s[0]),c},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=s=>s(t),t)),kLe=ui("_ZodString",(t,n)=>{Sye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ckt(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(tSr(...c)),t.includes=(...c)=>t.check(iSr(...c)),t.startsWith=(...c)=>t.check(oSr(...c)),t.endsWith=(...c)=>t.check(sSr(...c)),t.min=(...c)=>t.check(qme(...c)),t.max=(...c)=>t.check(skt(...c)),t.length=(...c)=>t.check(akt(...c)),t.nonempty=(...c)=>t.check(qme(1,...c)),t.lowercase=c=>t.check(rSr(c)),t.uppercase=c=>t.check(nSr(c)),t.trim=()=>t.check(lSr()),t.normalize=(...c)=>t.check(cSr(...c)),t.toLowerCase=()=>t.check(uSr()),t.toUpperCase=()=>t.check(fSr()),t.slugify=()=>t.check(dSr())}),ALe=ui("ZodString",(t,n)=>{Sye.init(t,n),kLe.init(t,n),t.email=s=>t.check(BEt(DLe,s)),t.url=s=>t.check(wLe(wye,s)),t.jwt=s=>t.check(ikt(ULe,s)),t.emoji=s=>t.check(UEt(PLe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.uuid=s=>t.check($Et(aD,s)),t.uuidv4=s=>t.check(qEt(aD,s)),t.uuidv6=s=>t.check(zEt(aD,s)),t.uuidv7=s=>t.check(VEt(aD,s)),t.nanoid=s=>t.check(JEt(ILe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.cuid=s=>t.check(WEt(NLe,s)),t.cuid2=s=>t.check(HEt(OLe,s)),t.ulid=s=>t.check(GEt(RLe,s)),t.base64=s=>t.check(tkt(qLe,s)),t.base64url=s=>t.check(rkt(zLe,s)),t.xid=s=>t.check(KEt(FLe,s)),t.ksuid=s=>t.check(XEt(MLe,s)),t.ipv4=s=>t.check(YEt(jLe,s)),t.ipv6=s=>t.check(ZEt(LLe,s)),t.cidrv4=s=>t.check(QEt(BLe,s)),t.cidrv6=s=>t.check(ekt($Le,s)),t.e164=s=>t.check(nkt(VLe,s)),t.datetime=s=>t.check(Wkt(s)),t.date=s=>t.check(Gkt(s)),t.time=s=>t.check(Xkt(s)),t.duration=s=>t.check(Zkt(s))});function bo(t){return P2r(ALe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),kLe.init(t,n)}),DLe=ui("ZodEmail",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function jSr(t){return BEt(DLe,t)}const Wme=ui("ZodGUID",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function LSr(t){return tRe(Wme,t)}const aD=ui("ZodUUID",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function BSr(t){return $Et(aD,t)}function $Sr(t){return qEt(aD,t)}function qSr(t){return zEt(aD,t)}function zSr(t){return VEt(aD,t)}const wye=ui("ZodURL",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function VSr(t){return wLe(wye,t)}function USr(t){return wLe(wye,{protocol:/^https?$/,hostname:fEt,...Jo(t)})}const PLe=ui("ZodEmoji",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function JSr(t){return UEt(PLe,t)}const ILe=ui("ZodNanoID",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function WSr(t){return JEt(ILe,t)}const NLe=ui("ZodCUID",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return WEt(NLe,t)}const OLe=ui("ZodCUID2",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function GSr(t){return HEt(OLe,t)}const RLe=ui("ZodULID",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function KSr(t){return GEt(RLe,t)}const FLe=ui("ZodXID",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function XSr(t){return KEt(FLe,t)}const MLe=ui("ZodKSUID",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function YSr(t){return XEt(MLe,t)}const jLe=ui("ZodIPv4",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function ZSr(t){return YEt(jLe,t)}const eAt=ui("ZodMAC",(t,n)=>{Rbr.init(t,n),j_.init(t,n)});function QSr(t){return I2r(eAt,t)}const LLe=ui("ZodIPv6",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function exr(t){return ZEt(LLe,t)}const BLe=ui("ZodCIDRv4",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function txr(t){return QEt(BLe,t)}const $Le=ui("ZodCIDRv6",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function rxr(t){return ekt($Le,t)}const qLe=ui("ZodBase64",(t,n)=>{jbr.init(t,n),j_.init(t,n)});function nxr(t){return tkt(qLe,t)}const zLe=ui("ZodBase64URL",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function ixr(t){return rkt(zLe,t)}const VLe=ui("ZodE164",(t,n)=>{$br.init(t,n),j_.init(t,n)});function oxr(t){return nkt(VLe,t)}const ULe=ui("ZodJWT",(t,n)=>{zbr.init(t,n),j_.init(t,n)});function sxr(t){return ikt(ULe,t)}const hee=ui("ZodCustomStringFormat",(t,n)=>{Vbr.init(t,n),j_.init(t,n)});function axr(t,n,s={}){return xye(hee,t,n,s)}function cxr(t){return xye(hee,"hostname",uEt,t)}function lxr(t){return xye(hee,"hex",EEt,t)}function uxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=X1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return xye(hee,c,d,n)}const JLe=ui("ZodNumber",(t,n)=>{IEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>lkt(t,c,d),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.int=c=>t.check(nRe(c)),t.safe=c=>t.check(nRe(c)),t.positive=c=>t.check(eQ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(QZ(0,c)),t.nonpositive=c=>t.check(YI(0,c)),t.multipleOf=(c,d)=>t.check(rRe(c,d)),t.step=(c,d)=>t.check(rRe(c,d)),t.finite=()=>t;const s=t._zod.bag;t.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),t.isFinite=!0,t.format=s.format??null});function fu(t){return M2r(JLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Ubr.init(t,n),JLe.init(t,n)});function nRe(t){return j2r(j$,t)}function fxr(t){return L2r(j$,t)}function dxr(t){return B2r(j$,t)}function pxr(t){return $2r(j$,t)}function _xr(t){return q2r(j$,t)}const WLe=ui("ZodBoolean",(t,n)=>{NEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ukt(t,s,c)});function my(t){return z2r(WLe,t)}const HLe=ui("ZodBigInt",(t,n)=>{OEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>fkt(t,c),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.positive=c=>t.check(eQ(BigInt(0),c)),t.negative=c=>t.check(QZ(BigInt(0),c)),t.nonpositive=c=>t.check(YI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(rRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function mxr(t){return V2r(HLe,t)}const GLe=ui("ZodBigIntFormat",(t,n)=>{Jbr.init(t,n),HLe.init(t,n)});function hxr(t){return U2r(GLe,t)}function gxr(t){return J2r(GLe,t)}const tAt=ui("ZodSymbol",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s)});function yxr(t){return W2r(tAt,t)}const rAt=ui("ZodUndefined",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt(t,s)});function vxr(t){return H2r(rAt,t)}const nAt=ui("ZodNull",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s,c)});function iAt(t){return G2r(nAt,t)}const oAt=ui("ZodAny",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt()});function bxr(){return K2r(oAt)}const sAt=ui("ZodUnknown",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt()});function t$(){return X2r(sAt)}const aAt=ui("ZodNever",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt(t,s,c)});function KLe(t){return Y2r(aAt,t)}const cAt=ui("ZodVoid",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s)});function Sxr(t){return Z2r(cAt,t)}const lAt=ui("ZodDate",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>vkt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(YI(c,d));const s=t._zod.bag;t.minDate=s.minimum?new Date(s.minimum):null,t.maxDate=s.maximum?new Date(s.maximum):null});function xxr(t){return Q2r(lAt,t)}const uAt=ui("ZodArray",(t,n)=>{e2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check(qme(s,c)),t.nonempty=s=>t.check(qme(1,s)),t.max=(s,c)=>t.check(skt(s,c)),t.length=(s,c)=>t.check(akt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return pSr(uAt,t,n)}function wxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const Tye=ui("ZodObject",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d),Gu(t,"shape",()=>n.shape),t.keyof=()=>ed(Object.keys(t._zod.def.shape)),t.catchall=s=>t.clone({...t._zod.def,catchall:s}),t.passthrough=()=>t.clone({...t._zod.def,catchall:t$()}),t.loose=()=>t.clone({...t._zod.def,catchall:t$()}),t.strict=()=>t.clone({...t._zod.def,catchall:KLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>PCt(t,s),t.safeExtend=s=>ICt(t,s),t.merge=s=>NCt(t,s),t.pick=s=>ACt(t,s),t.omit=s=>DCt(t,s),t.partial=(...s)=>OCt(ZLe,t,s[0]),t.required=(...s)=>RCt(QLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new Tye(s)}function Txr(t,n){return new Tye({type:"object",shape:t,catchall:KLe(),...Jo(n)})}function Cxr(t,n){return new Tye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Cye=ui("ZodUnion",(t,n)=>{xLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function AR(t,n){return new Cye({type:"union",options:t,...Jo(n)})}const fAt=ui("ZodXor",(t,n)=>{Cye.init(t,n),n2r.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function Exr(t,n){return new fAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const dAt=ui("ZodDiscriminatedUnion",(t,n)=>{Cye.init(t,n),i2r.init(t,n)});function pAt(t,n,s){return new dAt({type:"union",options:n,discriminator:t,...Jo(s)})}const _At=ui("ZodIntersection",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s,c,d)});function XLe(t,n){return new _At({type:"intersection",left:t,right:n})}const mAt=ui("ZodTuple",(t,n)=>{MEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Hme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new mAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Eye=ui("ZodRecord",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,...Jo(s)})}function kxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Eye({type:"record",keyType:c,valueType:n,...Jo(s)})}function Axr(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const hAt=ui("ZodMap",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(TLe(...s)),t.size=(...s)=>t.check(okt(...s))});function Dxr(t,n,s){return new hAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const gAt=ui("ZodSet",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s),t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(TLe(...s)),t.size=(...s)=>t.check(okt(...s))});function Pxr(t,n){return new gAt({type:"set",valueType:t,...Jo(n)})}const rQ=ui("ZodEnum",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>bkt(t,c,d),t.enum=n.entries,t.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));t.extract=(c,d)=>{const m={};for(const g of c)if(s.has(g))m[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})},t.exclude=(c,d)=>{const m={...n.entries};for(const g of c)if(s.has(g))delete m[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})}});function ed(t,n){const s=Array.isArray(t)?Object.fromEntries(t.map(c=>[c,c])):t;return new rQ({type:"enum",entries:s,...Jo(n)})}function Ixr(t,n){return new rQ({type:"enum",entries:t,...Jo(n)})}const yAt=ui("ZodLiteral",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s,c),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Pg(t,n){return new yAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const vAt=ui("ZodFile",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c),t.min=(s,c)=>t.check(tQ(s,c)),t.max=(s,c)=>t.check(TLe(s,c)),t.mime=(s,c)=>t.check(aSr(Array.isArray(s)?s:[s],c))});function Nxr(t){return _Sr(vAt,t)}const bAt=ui("ZodTransform",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe(t.constructor.name);s.addIssue=m=>{if(typeof m=="string")s.issues.push(QB(m,s.value,n));else{const g=m;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=s.value),g.inst??(g.inst=t),s.issues.push(QB(g))}};const d=n.transform(s.value,s);return d instanceof Promise?d.then(m=>(s.value=m,s)):(s.value=d,s)}});function YLe(t){return new bAt({type:"transform",transform:t})}const ZLe=ui("ZodOptional",(t,n)=>{jEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new ZLe({type:"optional",innerType:t})}const SAt=ui("ZodExactOptional",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function xAt(t){return new SAt({type:"optional",innerType:t})}const wAt=ui("ZodNullable",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Kme(t){return new wAt({type:"nullable",innerType:t})}function Oxr(t){return Gme(Kme(t))}const TAt=ui("ZodDefault",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function CAt(t,n){return new TAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const EAt=ui("ZodPrefault",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Bkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function kAt(t,n){return new EAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const QLe=ui("ZodNonOptional",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function AAt(t,n){return new QLe({type:"nonoptional",innerType:t,...Jo(n)})}const DAt=ui("ZodSuccess",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Rxr(t){return new DAt({type:"success",innerType:t})}const PAt=ui("ZodCatch",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function IAt(t,n){return new PAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const NAt=ui("ZodNaN",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(t,s)});function Fxr(t){return eSr(NAt,t)}const eBe=ui("ZodPipe",(t,n)=>{S2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>qkt(t,s,c,d),t.in=n.in,t.out=n.out});function Xme(t,n){return new eBe({type:"pipe",in:t,out:n})}const tBe=ui("ZodCodec",(t,n)=>{eBe.init(t,n),LEt.init(t,n)});function Mxr(t,n,s){return new tBe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const OAt=ui("ZodReadonly",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>zkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function RAt(t){return new OAt({type:"readonly",innerType:t})}const FAt=ui("ZodTemplateLiteral",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s,c)});function jxr(t,n){return new FAt({type:"template_literal",parts:t,...Jo(n)})}const MAt=ui("ZodLazy",(t,n)=>{E2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ukt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function jAt(t){return new MAt({type:"lazy",getter:t})}const LAt=ui("ZodPromise",(t,n)=>{C2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Vkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Lxr(t){return new LAt({type:"promise",innerType:t})}const BAt=ui("ZodFunction",(t,n)=>{T2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s)});function sht(t){return new BAt({type:"function",input:Array.isArray(t?.input)?Hme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const kye=ui("ZodCustom",(t,n)=>{k2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s)});function Bxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function ZI(t,n){return mSr(kye,t??(()=>!0),n)}function $At(t,n={}){return hSr(kye,t,n)}function qAt(t){return gSr(t)}const $xr=vSr,qxr=bSr;function zxr(t,n={}){const s=new kye({type:"custom",check:"custom",fn:c=>c instanceof t,abort:!0,...Jo(n)});return s._zod.bag.Class=t,s._zod.check=c=>{c.value instanceof t||c.issues.push({code:"invalid_type",expected:t.name,input:c.value,inst:s,path:[...s._zod.def.path??[]]})},s}const Vxr=(...t)=>SSr({Codec:tBe,Boolean:WLe,String:ALe},...t);function Uxr(t){const n=jAt(()=>AR([bo(t),fu(),my(),iAt(),Gd(n),wD(bo(),n)]));return n}function zAt(t,n){return Xme(YLe(t),n)}const zgn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:oAt,ZodArray:uAt,ZodBase64:qLe,ZodBase64URL:zLe,ZodBigInt:HLe,ZodBigIntFormat:GLe,ZodBoolean:WLe,ZodCIDRv4:BLe,ZodCIDRv6:$Le,ZodCUID:NLe,ZodCUID2:OLe,ZodCatch:PAt,ZodCodec:tBe,ZodCustom:kye,ZodCustomStringFormat:hee,ZodDate:lAt,ZodDefault:TAt,ZodDiscriminatedUnion:dAt,ZodE164:VLe,ZodEmail:DLe,ZodEmoji:PLe,ZodEnum:rQ,ZodExactOptional:SAt,ZodFile:vAt,ZodFunction:BAt,ZodGUID:Wme,ZodIPv4:jLe,ZodIPv6:LLe,ZodIntersection:_At,ZodJWT:ULe,ZodKSUID:MLe,ZodLazy:MAt,ZodLiteral:yAt,ZodMAC:eAt,ZodMap:hAt,ZodNaN:NAt,ZodNanoID:ILe,ZodNever:aAt,ZodNonOptional:QLe,ZodNull:nAt,ZodNullable:wAt,ZodNumber:JLe,ZodNumberFormat:j$,ZodObject:Tye,ZodOptional:ZLe,ZodPipe:eBe,ZodPrefault:EAt,ZodPromise:LAt,ZodReadonly:OAt,ZodRecord:Eye,ZodSet:gAt,ZodString:ALe,ZodStringFormat:j_,ZodSuccess:DAt,ZodSymbol:tAt,ZodTemplateLiteral:FAt,ZodTransform:bAt,ZodTuple:mAt,ZodType:Lu,ZodULID:RLe,ZodURL:wye,ZodUUID:aD,ZodUndefined:rAt,ZodUnion:Cye,ZodUnknown:sAt,ZodVoid:cAt,ZodXID:FLe,ZodXor:fAt,_ZodString:kLe,_default:CAt,_function:sht,any:bxr,array:Gd,base64:nxr,base64url:ixr,bigint:mxr,boolean:my,catch:IAt,check:Bxr,cidrv4:txr,cidrv6:rxr,codec:Mxr,cuid:HSr,cuid2:GSr,custom:ZI,date:xxr,describe:$xr,discriminatedUnion:pAt,e164:oxr,email:jSr,emoji:JSr,enum:ed,exactOptional:xAt,file:Nxr,float32:fxr,float64:dxr,function:sht,guid:LSr,hash:uxr,hex:lxr,hostname:cxr,httpUrl:USr,instanceof:zxr,int:nRe,int32:pxr,int64:hxr,intersection:XLe,ipv4:ZSr,ipv6:exr,json:Uxr,jwt:sxr,keyof:wxr,ksuid:YSr,lazy:jAt,literal:Pg,looseObject:Cxr,looseRecord:Axr,mac:QSr,map:Dxr,meta:qxr,nan:Fxr,nanoid:WSr,nativeEnum:Ixr,never:KLe,nonoptional:AAt,null:iAt,nullable:Kme,nullish:Oxr,number:fu,object:Pa,optional:Gme,partialRecord:kxr,pipe:Xme,prefault:kAt,preprocess:zAt,promise:Lxr,readonly:RAt,record:wD,refine:$At,set:Pxr,strictObject:Txr,string:bo,stringFormat:axr,stringbool:Vxr,success:Rxr,superRefine:qAt,symbol:yxr,templateLiteral:jxr,transform:YLe,tuple:Hme,uint32:_xr,uint64:gxr,ulid:KSr,undefined:vxr,union:AR,unknown:t$,url:VSr,uuid:BSr,uuidv4:$Sr,uuidv6:qSr,uuidv7:zSr,void:Sxr,xid:XSr,xor:Exr},Symbol.toStringTag,{value:"Module"})),aht={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Vgn(t){$S({customError:t})}function Ugn(){return $S().customError}var cht;cht||(cht={});const lht=ed(["mock","live"]),Jxr=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()}),Wxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Hxr=Pa({overageEnabled:my(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:my(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Gxr=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()}),Kxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Xxr=Pa({name:bo().min(1),verified:my(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Yxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Xxr).max(50)}),Zxr=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 Qxr=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()}))}),ewr=pAt("authenticated",[Pa({authenticated:Pg(!1),backend:lht}),Pa({authenticated:Pg(!0),backend:lht,user:Kxr,organizations:Gd(Yxr).max(100).optional(),plan:Jxr,credits:Wxr,spendPolicy:Hxr,alerts:Gd(Gxr).max(100).optional(),entitlements:Pa({generation:my(),dailyJobs:fu().int().positive().optional()})})]),twr=ed(["auto","mock","managed","byok"]),VAt=ed(["fal","tripo","worldlabs","openrouter"]),rwr=Pa({enabled:my(),provider:Pg("openrouter"),model:bo().trim().min(1).max(256)}),nwr=ed(["environment","system","session","none"]),iwr=Pa({provider:VAt,label:bo().min(1),environmentVariable:bo().min(1),configured:my(),source:nwr,editable:my(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),owr=Pa({provider:VAt,ok:Pg(!0),testedAt:bo().datetime()});function swr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const Aye=XLe(ewr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Pg(!0),managed:my(),byok:my(),byokProviders:Gd(bo().min(1))}),preferredRoute:twr,providerCredentials:Gd(iwr),codingInference:rwr}));function awr(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(awr(n,s))}function EN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return EN(t,n),await t.json()}const uht="volter.collaboration.participant.v1",cwr="volter.collaboration.remote-share.v1",iRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function lwr(){if(iRe?.participantId)return iRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(uht);if(n)return n;globalThis.localStorage?.setItem(uht,t)}catch{}return t}const UAt=lwr(),L$=(()=>{try{return globalThis.localStorage?.getItem(cwr)==="1"}catch{return!1}})(),uwr=iRe?.displayName||"Local editor",fwr=Symbol.for("volter.collaboration.revision"),oRe=globalThis[fwr]??={value:0};function JAt(t){Number.isInteger(t)&&t>=oRe.value&&(oRe.value=t)}function Dw(){return{participantId:UAt,expectedRevision:oRe.value}}const dwr={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$=dwr,WAt=0,sRe=null;const aRe=new Set;function lR(t,n=null){if(!(sRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,sRe=n,WAt++;for(const s of aRe)s()}}async function HAt(t,n){of(t,n);const s=await t.json();if(!t.ok)throw new Error(typeof s.error=="string"?String(s.error):`Account request failed (${t.status}).`);return Aye.parse(s)}async function NC(t,n,s){const c=await fetch(t,{method:n,...s===void 0?{}:{headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}}),d=await HAt(c,`${n} ${t} failed`);return lR(d),d}function rBe(){return r$}function nBe(){return swr(r$)}function lN(){return WAt}function Tpe(){return sRe}function Dye(t){return aRe.add(t),()=>aRe.delete(t)}async function fht(){try{const t=await HAt(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 pwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),_wr=t=>NC("/__editor/account/twin-session","POST",{email:t}),mwr=()=>NC("/__editor/account/session","DELETE"),hwr=t=>NC("/__editor/account/spend-policy","PUT",t),gwr=()=>NC("/__editor/account/alerts/read","POST"),ywr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),vwr=t=>NC("/__editor/account/coding-inference","PUT",t);async function bwr(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 Swr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),xwr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function wwr(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 owr.parse(s)}const dht=t=>NC("/__editor/account/plan","PUT",{action:t});async function GAt(t,n){const s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","Idempotency-Key":crypto.randomUUID()},body:JSON.stringify(n)});of(s,"Checkout failed");const c=await s.json();if(!s.ok||!c.account)throw new Error(typeof c.error=="string"?c.error:"Checkout failed.");return lR(Aye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const Twr=t=>GAt("/__editor/account/checkout",{plan:t}),Cwr=t=>GAt("/__editor/account/credits",{packId:t});async function Ewr(){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 Zxr.array().parse(n.entries??[])}async function kwr(){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 Qxr.parse(n)}async function Awr(){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 Dwr(){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 Pwr(){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 Iwr(t){const n=await fetch(`/__editor/account/browser-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}async function Nwr(){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 Owr(t){const n=await fetch(`/__editor/account/device-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}function Rwr(){if(L$)return()=>{};const t=new URLSearchParams(window.location.search).get("checkout_id");t?NC("/__editor/account/checkout/confirm","POST",{checkoutId:t}).then(()=>{const s=new URL(window.location.href);s.searchParams.delete("checkout"),s.searchParams.delete("checkout_id"),window.history.replaceState(null,"",`${s.pathname}${s.search}${s.hash}`)}).catch(s=>lR(r$,s instanceof Error?s.message:String(s))):fht().catch(()=>{});const n=window.setInterval(()=>void fht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function KAt(t){return t?YAt(t)?null:t:null}function Fwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function XAt(t){return t&&YAt(t)?t:null}function YAt(t){return t.keyedBy==="display"}const Jgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:XAt,nodeKeyedPhysics:KAt,physicsOwnerOf:Fwr},Symbol.toStringTag,{value:"Module"})),Mwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},iBe=Object.keys(Mwr);function jwr(){const t={};for(const n of iBe)t[n]=0;return t}const Lwr={provenance:!0,selection:!0,transforms:!0,inspector:!0,assetSubject:!0,related:!0,instances:!0,structure:!0,persistence:!0,pickable:!0,rects:!0,boxEdit:!0,text:!0,colorSample:!0,stories:!0,truth:!0,spatialHandles:!0,assetDrop:!0,subscribe:!0},oBe=Object.keys(Lwr);function Bwr(t){const n={};for(const s of oBe)n[s]=t[s]!==void 0;return n}const Wgn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:oBe,WRITE_ANCHOR_KINDS:iBe,emptyWriteAnchorKindCounts:jwr,measureAuthoringProviders:Bwr},Symbol.toStringTag,{value:"Module"})),$wr=["claim","shape","operation","effect","round-trip"],Yme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function ZAt(t,n){return Yme[t]>=Yme[n]}function nQ(t){const{seam:n,subject:s,epoch:c,required:d}=t;if(t.notApplicable!==void 0)return{seam:n,subject:s,epoch:c,required:d,state:"not-applicable",receipt:null,detail:t.notApplicable};let m=null;for(const g of t.receipts)g.seam!==n||g.subject!==s||g.epoch!==c||(!m||Yme[g.stage]>=Yme[m.stage])&&(m=g);return m?m.outcome==="fail"?{seam:n,subject:s,epoch:c,required:d,state:"failed",receipt:m,detail:m.detail}:m.outcome==="absent"?{seam:n,subject:s,epoch:c,required:d,state:"absent",receipt:m,detail:m.detail}: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 QAt{#e=[];record(n){if(!n.seam||!n.subject||!n.epoch||!n.detail.trim())throw new Error("seam evidence requires non-empty seam, subject, epoch, and detail");this.#e.push(n)}receipts(n){return this.#e.filter(s=>(n?.subject===void 0||s.subject===n.subject)&&(n?.epoch===void 0||s.epoch===n.epoch))}verdict(n){return nQ({...n,receipts:this.#e})}clearSubject(n){for(let s=this.#e.length-1;s>=0;s-=1)this.#e[s]?.subject===n&&this.#e.splice(s,1)}clear(){this.#e.length=0}}function Ip(){return t=>t}function qwr(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(qwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Zme(t){const n=nQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=nQ({seam:`${t.seam}.${s}`,subject:t.subject,epoch:t.epoch,required:c.required,receipts:t.receipts});if(!(c.optional&&d.state==="absent")){if(d.state==="failed"||d.state==="absent")return{...n,state:"failed",receipt:d.receipt,detail:`${t.seam} is malformed: ${d.detail}`};if(d.state!=="verified")return{...n,state:"unverified",detail:`${t.seam} has the required shape, but ${d.seam} is unverified: ${d.detail}`}}}return n}const Hgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:$wr,SeamEvidenceLedger:QAt,defineSeamShape:Ip,gradeSeamCarrier:Zme,gradeSeamEvidence:nQ,inspectSeamShape:vB,seamStageAtLeast:ZAt},Symbol.toStringTag,{value:"Module"})),XY=Ip()({capabilities:{optional:!1,kind:"value",required:"shape"},provenance:{optional:!0,kind:"value",required:"shape"},hierarchy:{optional:!1,kind:"value",required:"operation"},selection:{optional:!0,kind:"value",required:"effect"},transforms:{optional:!0,kind:"value",required:"effect"},inspector:{optional:!0,kind:"value",required:"effect"},assetSubject:{optional:!0,kind:"value",required:"operation"},related:{optional:!0,kind:"value",required:"operation"},instances:{optional:!0,kind:"value",required:"effect"},structure:{optional:!0,kind:"value",required:"round-trip"},persistence:{optional:!0,kind:"value",required:"round-trip"},pickable:{optional:!0,kind:"value",required:"operation"},rects:{optional:!0,kind:"value",required:"operation"},boxEdit:{optional:!0,kind:"value",required:"effect"},text:{optional:!0,kind:"value",required:"effect"},colorSample:{optional:!0,kind:"value",required:"operation"},stories:{optional:!0,kind:"value",required:"effect"},truth:{optional:!0,kind:"value",required:"operation"},spatialHandles:{optional:!0,kind:"value",required:"effect"},assetDrop:{optional:!0,kind:"value",required:"round-trip"},subscribe:{optional:!0,kind:"function",required:"effect"}}),cRe=Ip()({roots:{optional:!1,kind:"function",required:"operation"},node:{optional:!1,kind:"function",required:"operation"},crossSurfaceStructureSignature:{optional:!0,kind:"function",required:"operation"},object3D:{optional:!0,kind:"function",required:"operation"},idForObject3D:{optional:!0,kind:"function",required:"operation"}}),e3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),t3t=Ip()({dimensions:{optional:!0,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},editability:{optional:!0,kind:"function",required:"operation"},beginEdit:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},endEdit:{optional:!1,kind:"function",required:"effect"},remove:{optional:!0,kind:"function",required:"round-trip"},sourceCommit:{optional:!0,kind:"value",required:"round-trip"}}),r3t=Ip()({properties:{optional:!1,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},preview:{optional:!0,kind:"function",required:"effect"},editability:{optional:!0,kind:"function",required:"operation"},remove:{optional:!0,kind:"function",required:"round-trip"}}),n3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),i3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),o3t=Ip()({describe:{optional:!1,kind:"function",required:"operation"},openComponent:{optional:!0,kind:"function",required:"effect"},revert:{optional:!1,kind:"function",required:"round-trip"},applyToComponent:{optional:!1,kind:"function",required:"round-trip"}}),s3t=Ip()({create:{optional:!1,kind:"function",required:"round-trip"},remove:{optional:!1,kind:"function",required:"round-trip"},duplicate:{optional:!1,kind:"function",required:"round-trip"},duplicateMany:{optional:!0,kind:"function",required:"round-trip"},reparent:{optional:!1,kind:"function",required:"round-trip"},reorder:{optional:!0,kind:"function",required:"round-trip"},creatableKinds:{optional:!0,kind:"function",required:"operation"},wrap:{optional:!0,kind:"function",required:"round-trip"},unwrap:{optional:!0,kind:"function",required:"round-trip"},group:{optional:!0,kind:"function",required:"round-trip"},ungroup:{optional:!0,kind:"function",required:"round-trip"},canUngroup:{optional:!0,kind:"function",required:"operation"},removeMany:{optional:!0,kind:"function",required:"round-trip"},copy:{optional:!0,kind:"function",required:"effect"},canCopy:{optional:!0,kind:"function",required:"operation"},cut:{optional:!0,kind:"function",required:"round-trip"},paste:{optional:!0,kind:"function",required:"round-trip"},canPaste:{optional:!0,kind:"function",required:"operation"}}),a3t=Ip()({isDirty:{optional:!1,kind:"function",required:"operation"},lastError:{optional:!0,kind:"function",required:"operation"},save:{optional:!1,kind:"function",required:"round-trip"},destination:{optional:!1,kind:"value",required:"shape"},applyExternal:{optional:!0,kind:"function",required:"effect"}}),c3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),l3t=Ip()({storiesFor:{optional:!1,kind:"function",required:"operation"},active:{optional:!1,kind:"function",required:"operation"},apply:{optional:!1,kind:"function",required:"effect"},isolate:{optional:!0,kind:"function",required:"effect"},title:{optional:!0,kind:"value",required:"shape"},unavailable:{optional:!0,kind:"function",required:"operation"}}),u3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),f3t=Ip()({rect:{optional:!1,kind:"function",required:"operation"},contextRects:{optional:!0,kind:"function",required:"operation"},emptyContainers:{optional:!0,kind:"function",required:"operation"},frame:{optional:!0,kind:"function",required:"operation"}}),d3t=Ip()({begin:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},end:{optional:!1,kind:"function",required:"effect"},gizmoOrigin:{optional:!0,kind:"function",required:"operation"},referencePoint:{optional:!0,kind:"function",required:"operation"}}),p3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),_3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),m3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),h3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),lRe={selection:e3t,transforms:t3t,inspector:r3t,assetSubject:n3t,related:i3t,instances:o3t,structure:s3t,persistence:a3t,pickable:c3t,rects:f3t,boxEdit:d3t,text:p3t,colorSample:_3t,stories:l3t,truth:m3t,spatialHandles:h3t,assetDrop:u3t},Ggn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:u3t,ASSET_SUBJECT_PROVIDER_SHAPE:n3t,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:lRe,BOX_EDIT_PROVIDER_SHAPE:d3t,COLOR_SAMPLE_PROVIDER_SHAPE:_3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:o3t,HIERARCHY_PROVIDER_SHAPE:cRe,INSPECTOR_PROVIDER_SHAPE:r3t,PERSISTENCE_PROVIDER_SHAPE:a3t,PICK_PROVIDER_SHAPE:c3t,RECT_PROVIDER_SHAPE:f3t,RELATED_SUBJECTS_PROVIDER_SHAPE:i3t,SELECTION_PROVIDER_SHAPE:e3t,SPATIAL_HANDLES_PROVIDER_SHAPE:h3t,STORIES_PROVIDER_SHAPE:l3t,STRUCTURE_PROVIDER_SHAPE:s3t,TEXT_PROVIDER_SHAPE:p3t,TRANSFORM_PROVIDER_SHAPE:t3t,TRUTH_PROVIDER_SHAPE:m3t},Symbol.toStringTag,{value:"Module"})),uRe=Ip()({physics:{optional:!0,kind:"value",required:"effect"},networking:{optional:!0,kind:"value",required:"operation"},navigation:{optional:!0,kind:"value",required:"operation"},audio:{optional:!0,kind:"value",required:"effect"},camera:{optional:!0,kind:"value",required:"effect"},debug:{optional:!0,kind:"value",required:"operation"},renderDebug:{optional:!0,kind:"value",required:"effect"}}),g3t=Ip()({keyedBy:{optional:!0,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"},debugDraw:{optional:!0,kind:"function",required:"operation"},setDebugDrawEnabled:{optional:!0,kind:"function",required:"effect"},contactPoints:{optional:!0,kind:"function",required:"operation"},colliders:{optional:!0,kind:"function",required:"operation"},previewCollider:{optional:!0,kind:"function",required:"effect"},joints:{optional:!0,kind:"function",required:"operation"},previewJointAnchor:{optional:!0,kind:"function",required:"effect"}}),y3t=Ip()({keyedBy:{optional:!1,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"}}),v3t=Ip()({peers:{optional:!1,kind:"function",required:"operation"},networkId:{optional:!1,kind:"function",required:"operation"},authority:{optional:!1,kind:"function",required:"operation"},editable:{optional:!1,kind:"function",required:"operation"},getConnectionState:{optional:!0,kind:"function",required:"operation"},getRoomInfo:{optional:!0,kind:"function",required:"operation"},getReplicationStats:{optional:!0,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"},getStateSnapshot:{optional:!0,kind:"function",required:"operation"},messageEvents:{optional:!0,kind:"function",required:"operation"},getRates:{optional:!0,kind:"function",required:"operation"},getConditioning:{optional:!0,kind:"function",required:"operation"},setConditioning:{optional:!0,kind:"function",required:"effect"},getServerConfig:{optional:!0,kind:"function",required:"operation"},getPlayerIdentity:{optional:!0,kind:"function",required:"operation"},setPlayerIdentity:{optional:!0,kind:"function",required:"effect"},getTrafficByType:{optional:!0,kind:"function",required:"operation"},sendMessage:{optional:!0,kind:"function",required:"effect"},getConditioningLimits:{optional:!0,kind:"function",required:"operation"},ping:{optional:!0,kind:"function",required:"effect"},inspectServer:{optional:!0,kind:"function",required:"operation"},disconnectClient:{optional:!0,kind:"function",required:"effect"},editServerState:{optional:!0,kind:"function",required:"effect"},deleteServerState:{optional:!0,kind:"function",required:"effect"},sendToClient:{optional:!0,kind:"function",required:"effect"},broadcast:{optional:!0,kind:"function",required:"effect"},disposeRoom:{optional:!0,kind:"function",required:"effect"},stateFieldType:{optional:!0,kind:"function",required:"operation"},clearTraffic:{optional:!0,kind:"function",required:"effect"},getTrafficByEntity:{optional:!0,kind:"function",required:"operation"},isRecording:{optional:!0,kind:"function",required:"operation"},setRecording:{optional:!0,kind:"function",required:"effect"}}),b3t=Ip()({hasNavMesh:{optional:!1,kind:"function",required:"operation"},findPath:{optional:!1,kind:"function",required:"effect"},debugMesh:{optional:!1,kind:"function",required:"operation"},bake:{optional:!0,kind:"function",required:"effect"},exportData:{optional:!0,kind:"function",required:"operation"},clear:{optional:!0,kind:"function",required:"effect"},crowdAgents:{optional:!0,kind:"function",required:"operation"}}),S3t=Ip()({resume:{optional:!0,kind:"function",required:"effect"},setMuted:{optional:!1,kind:"function",required:"effect"},isMuted:{optional:!1,kind:"function",required:"operation"},graphSnapshot:{optional:!0,kind:"function",required:"operation"},transportState:{optional:!0,kind:"function",required:"operation"},acquireMeters:{optional:!0,kind:"function",required:"effect"},acquireRecordingStream:{optional:!0,kind:"function",required:"effect"},renderOffline:{optional:!0,kind:"function",required:"operation"},audioEvents:{optional:!0,kind:"function",required:"operation"}}),x3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),w3t=Ip()({providers:{optional:!1,kind:"function",required:"operation"},state:{optional:!1,kind:"function",required:"operation"},stateAll:{optional:!1,kind:"function",required:"operation"},commands:{optional:!1,kind:"function",required:"operation"},invoke:{optional:!1,kind:"function",required:"effect"},events:{optional:!1,kind:"function",required:"operation"}}),T3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),C3t={networking:v3t,navigation:b3t,audio:S3t,camera:x3t,debug:w3t,renderDebug:T3t},Kgn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:S3t,CAMERA_ADAPTER_SHAPE:x3t,DEBUG_ADAPTER_SHAPE:w3t,NAVIGATION_ADAPTER_SHAPE:b3t,NETWORKING_ADAPTER_SHAPE:v3t,PHYSICS_2D_ADAPTER_SHAPE:y3t,PHYSICS_ADAPTER_SHAPE:g3t,RENDER_DEBUG_ADAPTER_SHAPE:T3t,SYSTEM_ADAPTERS_SHAPE:uRe,SYSTEM_PROVIDER_SHAPES:C3t},Symbol.toStringTag,{value:"Module"})),sBe=new QAt;function zwr(t){sBe.record(t)}const pht=new WeakMap;let Vwr=1;function E3t(t){const n=pht.get(t);if(n)return n;const s=`system-${Vwr++}`;return pht.set(t,s),s}function Uwr(t){const n=t.epoch??E3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?XAt(t.adapter)?y3t:g3t:C3t[t.slot],m=[...vB({prefix:"system",value:c,shape:uRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...sBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Zme({seam:s,subject:t.subject,epoch:n,required:uRe[t.slot].required,receipts:m,shape:d})}let qS={},iQ=null,aBe=null;const Qme=new Set,ehe=new Set,fRe=new Set;let cBe=0;function dRe(){for(const t of fRe)t()}function the(t){if(t!==Iye())for(const n of Qme)n()}function rhe(t,n){const s=Oye();if(!(t===Nye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){cBe++;for(const c of ehe)c()}}const LS=new Map;let x_e=null,k3t=0;const pRe=new Set,lBe="";function A3t(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=Uwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function QI(){return x_e!==null&&LS.has(x_e)?x_e:LS.keys().next().value??null}function nhe(){k3t++;for(const t of pRe)t()}function Jwr(t){const n=QI();if(x_e=t,n!==QI()){nhe(),cBe++;for(const s of Qme)s();for(const s of ehe)s()}}function Xgn(){return QI()}function Wwr(t){return pRe.add(t),()=>pRe.delete(t)}function Ygn(){return k3t}function Pye(){const t=QI();return(t===null?void 0:LS.get(t))??qS}function Hwr(t,n=lBe){const s=QI(),c=Iye(),d=Nye(),m=Oye();if(t){A3t(t,n),LS.set(n,t),qS=t,the(c),rhe(d,m),dRe(),s!==QI()&&nhe();return}LS.delete(n),qS=LS.values().next().value??{},the(c),rhe(d,m),dRe(),s!==QI()&&nhe()}function Gwr(){for(const t of[...LS.keys()])Hwr(null,t);Jwr(null)}function Zgn(t,n=lBe){const s=Iye(),c=Nye(),d=Oye(),m=LS.get(n);A3t(t,n),LS.set(n,t),qS===m&&(qS=t),the(s),rhe(c,d),dRe(),QI()===n&&nhe()}function Qgn(){return qS}function Kwr(t){return fRe.add(t),()=>fRe.delete(t)}function Xwr(){return[...LS.keys()]}function _ht(t){const n=t.filter(d=>d!==lBe),s=t.length>n.length,c=n.map(d=>`"${d}"`);return s&&c.push("the unnamed default (address it with no id at all)"),c.join(", ")}class mht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Ywr(t){const n=Xwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new mht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${_ht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new mht(`${n.length} instances are live (${_ht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function eyn(){return KAt(qS.physics)}function Zwr(){return qS.camera??null}function Iye(){return qS.networking??aBe??null}function Qwr(){return Pye().networking??aBe??null}function eTr(t){return Qme.add(t),()=>Qme.delete(t)}function tyn(t){const n=Iye();aBe=t,the(n)}function ryn(){return qS.debug??null}function nyn(t){const n=Nye(),s=Oye();iQ=t,rhe(n,s)}function Nye(){return qS.audio??iQ}function tTr(){return Pye().audio??iQ}function rTr(t){return ehe.add(t),()=>ehe.delete(t)}function nTr(){return cBe}function Oye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&iQ&&t.add(iQ),[...t]}function iTr(){return qS.renderDebug??null}function iyn(){return Pye().renderDebug??null}let D3t=null;const _Re=new Set;function oyn(t){D3t=t;for(const n of _Re)n()}function Rye(){return D3t?.()??null}function Fye(t){_Re.add(t);const n=Wwr(t);return()=>{_Re.delete(t),n()}}function uN(){const t=Rye();return t?`play:${t.instanceId}`:"stopped"}function Mye(t,n){let s=!1,c=[];const d=()=>{s=!1;const g=c;c=[];for(let S=g.length-1;S>=0;S--)g[S]()};return{ensure(g){if(!s){s=!0;try{g(S=>c.push(S))}catch(S){throw d(),S}}},reset:d}}let wO=[],oTr=0,P3t=0;const mRe=new Set;function hht(){P3t++;for(const t of mRe)t()}function I3t(t){return mRe.add(t),()=>{mRe.delete(t)}}function ght(){return P3t}function Z4(t){if(wO.some(s=>s.contribution.id===t.id))throw new Error(`registerWorkspaceStatus: id "${t.id}" is already registered — status ids key status-bar slots, so they must be unique; unregister the previous contribution first.`);const n={contribution:t,seq:oTr++};return wO=[...wO,n],hht(),()=>{wO.includes(n)&&(wO=wO.filter(s=>s!==n),hht())}}function hRe(t){const n=s=>[...wO].filter(c=>(c.contribution.align??"left")===s).sort((c,d)=>(c.contribution.order??0)-(d.contribution.order??0)||c.seq-d.seq).map(c=>c.contribution);return t?n(t):[...n("left"),...n("right")]}let w_e=null,N3t=0;const gRe=new Set;function yht(){N3t++;for(const t of gRe)t()}function O3t(t){return gRe.add(t),()=>gRe.delete(t)}function yRe(){return N3t}function uBe(){return w_e}function sTr(t){const n=Symbol(t.documentId);return w_e={...t,token:n},yht(),()=>{w_e?.token===n&&(w_e=null,yht())}}function aTr(){Ye.useSyncExternalStore(O3t,yRe);const t=uBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const cTr=Mye();function lTr(){cTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:aTr}))})}lTr();let bB=null,R3t=0;const vRe=new Set;function vht(){R3t+=1;for(const t of vRe)t()}function uTr(t){return vRe.add(t),()=>{vRe.delete(t)}}function bht(){return R3t}function fTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},vht(),()=>{bB?.token===s&&(bB=null,vht())}}function bRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const fN=new Map,SRe=new Map;function F3t(){typeof window>"u"||window.parent===window||fN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...fN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&F3t()});let Nc=null,fBe=null;function dBe(){if(typeof window>"u")return!1;const t=window.__VOLTER_VIEWPORT_TIMINGS__;if(t===!0||t==="1")return!0;try{return new URLSearchParams(window.location.search).get("volterTimings")==="1"}catch{return!1}}function M3t(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 dTr(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 pTr(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=dTr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=_Tr({workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,componentIndexBusyMs:t.componentIndexBusyMs,componentIndexWaitMs:t.componentIndexWaitMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs}).reduce((pe,ue)=>pe+ue.ms,0),se=Math.max(0,n-t.startedAtMs);return{visibilityState:t.visibilityState,startedAtMs:t.startedAtMs,reactActiveAtMs:t.reactActiveAtMs,boardBuildStartedAtMs:t.boardBuildStartedAtMs,boardReadyAtMs:t.boardReadyAtMs,constructStartedAtMs:t.constructStartedAtMs,viewportReadyAtMs:t.viewportReadyAtMs,rafResumeAtMs:t.rafResumeAtMs,firstRenderStartedAtMs:t.firstRenderStartedAtMs,firstFrameAtMs:n,activationKind:J,workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs,firstPaintMs:F,unattributedMs:Math.max(0,se-G),accountedMs:G,candidateCount:t.candidateCount,exhibitCount:t.exhibitCount,skippedCount:t.skippedCount,modulesAlreadyLoaded:t.modulesAlreadyLoaded,stories:t.stories,storyDiscovery:fBe}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Cpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function Sht(t,n,s,c){const d=Math.max(0,n);let m=Math.max(0,s),g=Math.max(0,c);if(m+g>d){const S=d/(m+g);m*=S,g*=S}else m+g<d&&(g+=d-m-g);return{name:t,ms:d,busyMs:m,waitMs:g,kind:"mixed"}}function _Tr(t){return[Cpe("workspace-sync",t.workspaceSyncMs),Cpe("reveal-schedule",t.revealScheduleMs),Sht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),Sht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Cpe("react-commit (board→viewport)",t.reactCommitMs),Yb("webgl-context",t.webglContextMs),Yb("renderer",t.rendererMs),Yb("adapter-setup",t.adapterSetupMs),Yb("ibl-bake (three PMREM)",t.iblBakeMs),Yb("dressing",t.dressingMs),Yb("editor-viewport",t.editorViewportMs),Yb("framing",t.framingMs),Yb("resize-bind",t.resizeBindMs),Yb("viewport-bind",t.viewportBindMs),Cpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function syn(t,n=Date.now()){const s=(SRe.get(t)??0)+1;SRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:pTr(d,n)};return Nc=null,fN.set(t,m),wht(),xht(),m}return fN.set(t,c),wht(),xht(),c}let xRe=new Set;const wRe=new Set;function xht(){F3t();for(const t of wRe)t()}function mTr(t){return wRe.add(t),()=>wRe.delete(t)}function wht(){fN.size!==0&&j3t()}function j3t(){const t=xRe;xRe=new Set;for(const n of t)n()}let Tht=!1;function hTr(){Tht||typeof document>"u"||(Tht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&j3t()}))}function jye(){return fN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(hTr(),new Promise(t=>xRe.add(t)))}function gTr(){return[...fN.values()]}function yTr(t){dBe()&&(Nc=M3t(t,Date.now(),{}))}function ayn(t,n={}){if(!dBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=M3t(t,s,n),Nc.boardBuildStartedAtMs=s}function cyn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function lyn(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 uyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function fyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function dyn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function pyn(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 _yn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function myn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function hyn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function gyn(t){Nc&&Nc.stories.push(t)}function yyn(){return Nc?.documentId??null}function vTr(t){dBe()&&(fBe=t)}function bTr(){fN.clear(),SRe.clear(),Nc=null,fBe=null}const STr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,i2=null,oQ=null,uR=null;function Cht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let L3t=0;const TRe=new Set,A5e=new Set,pBe=new Map,XO=new Map;function wC(){L3t++;for(const t of TRe)t()}function o2(t){return TRe.add(t),()=>{TRe.delete(t)}}function K1(){return L3t}function l0(){return hp}function Pp(){return i2}function CRe(){return oQ}function xTr(t,n){X0(t)&&oQ!==n&&(oQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===i2)??null}function sQ(t){if(t===i2)return;t&&yTr(t);const n=hp.find(c=>c.descriptor.id===i2);i2=t,oQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function wTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&kN(zk),zk=t)}function ND(t,n={}){const s=uR===t.id,c=s||n.activate!==!1,d=hp.find(g=>g.descriptor.id===t.id);if(wTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||i2===null)&&sQ(t.id),s&&Cht(t.id),wC(),t.id;let m=!1;return(d.descriptor.Toolbar!==t.Toolbar||d.descriptor.Shelf!==t.Shelf||d.descriptor.Content!==t.Content)&&(hp=hp.map(g=>{if(g!==d)return g;const{Toolbar:S,Shelf:k,...A}=g.descriptor;return{...g,descriptor:{...A,Content:t.Content,...t.Toolbar?{Toolbar:t.Toolbar}:{},...t.Shelf?{Shelf:t.Shelf}:{}}}}),m=!0),c&&i2!==t.id&&(sQ(t.id),m=!0),m&&wC(),s&&Cht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(sQ(t),wC()),!0):!1}function B3t(){uR=null}function TTr(t){if(X0(t)){uR=null;return}uR=t}function kN(t,n={}){if(A5e.has(t))return!1;const s=hp.findIndex(d=>d.descriptor.id===t);if(s<0)return!1;const c=hp[s];if(c.dirty&&!n.discardDirty)return!1;A5e.add(t);try{if(i2===t){const m=s>0?hp[s-1]:hp[s+1]??null;sQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),pBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{A5e.delete(t)}}function $3t(){if(hp.length===0&&i2===null)return;const t=hp;sQ(null),hp=[],oQ=null,zk=null,pBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function CTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function vyn(t){XO.has(t)&&wC()}async function ETr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=pBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function kTr(){return i2?ETr(i2):Promise.resolve(null)}function byn(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 q3t(t,n){const s=hp.find(c=>c.descriptor.id===t);!s||s.title===n||(hp=hp.map(c=>c.descriptor.id===t?{...c,title:n}:c),wC())}function _Be(t){const n=hp.find(c=>c.descriptor.id===t),s=XO.get(t)??n?.descriptor.selection;if(!s)return null;try{return s()}catch{return null}}function Lye(){return i2?_Be(i2):null}const ATr={adapter:null,nodeId:null};function DTr(t){return JSON.stringify({id:t.id,title:t.title,hint:t.hint,kindLabel:t.kindLabel,note:t.note,sections:t.sections.map(n=>({id:n.id,title:n.title,order:n.order,description:n.description,defaultOpen:n.defaultOpen,testId:n.testId,keepMounted:n.keepMounted,railGroup:n.railGroup,bodyKind:n.body.kind})),quickActions:t.quickActions?.map(n=>({id:n.id,title:n.title,label:n.label,placement:n.placement,pressed:n.pressed,disabled:n.disabled}))})}function mBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return sTr({documentId:t,title:c,type:s,...m?{status:m}:{}})},[n,t,m,c,s]);const S=Ye.useRef(g);S.current=g,Ye.useEffect(()=>{if(n)return CTr(t,()=>S.current?.()??ATr)},[n,t]);const k={id:t,title:c,kindLabel:s,...m?{note:{text:m,testId:"asset-editor-status"}}:{},sections:d??[]},A=Ye.useRef(k);A.current=k;const F=DTr(k);return Ye.useEffect(()=>{if(n)return fTr(t,()=>A.current)},[n,t,F]),null}function PTr({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,fill:g=!1,selection:S,children:k}){return q.jsxs("section",{className:"volter-asset-editor","data-testid":`asset-editor:${s}`,"aria-label":`${c} Asset Editor`,children:[q.jsx(mBe,{documentId:t,active:n,type:s,title:c,sections:d,status:m,selection:S}),q.jsx("main",{className:`volter-asset-editor__viewport${g?" volter-asset-editor__viewport--fill":""}`,children:k})]})}const ITr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:PTr,AssetEditorSubject:mBe},Symbol.toStringTag,{value:"Module"})),T_e=new Map,ERe=new Set;function Eht(){for(const t of ERe)t()}function Syn(t){const n=Object.entries(t);for(const[s,c]of n)T_e.set(s,c);return Eht(),()=>{for(const[s,c]of n)T_e.get(s)===c&&T_e.delete(s);Eht()}}function NTr(t){return T_e.get(t)??null}function OTr(t){return ERe.add(t),()=>{ERe.delete(t)}}function RTr(t){return q.jsx(mBe,{...t})}const kht=new Map;function FTr(t){const n=kht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>NTr(t),[]),m=Ye.useSyncExternalStore(OTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,kht.set(t,s),s}const hBe=new Proxy(Object.freeze({AssetDocument:RTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):FTr(n)}}),Aht=Object.freeze({id:"classic",shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.6)",medium:"0 4px 12px rgba(0,0,0,0.5)",large:"0 8px 32px rgba(0,0,0,0.6)"}}),Ym=Object.freeze({id:"glass",color:{surface:{shell:"#12161f",panel:"rgba(255,255,255,0.06)",chrome:"rgba(255,255,255,0.10)",raised:"rgba(255,255,255,0.16)",inset:"rgba(10,14,22,0.38)",overlay:"rgba(255,255,255,0.08)"},boundary:{default:"rgba(255,255,255,0.22)",strong:"rgba(255,255,255,0.38)"},neutralOverlay:{hover:"color-mix(in srgb, currentColor 10%, transparent)",active:"color-mix(in srgb, currentColor 16%, transparent)"},scrim:"rgba(8,12,20,0.35)"},shape:{small:"4px",medium:"8px",large:"14px",full:"9999px"},elevation:{small:"0 4px 14px -6px rgba(0,0,0,0.45)",medium:"0 8px 24px -10px rgba(0,0,0,0.5)",large:"0 20px 46px -16px rgba(0,0,0,0.55), 0 4px 14px -6px rgba(0,0,0,0.35)"},treatment:{backdropBlurPx:1,backdropSaturation:1.15,edgeSpecular:.7,specularAngleDeg:120,refractionBezelPx:56,refractionThickness:1.25,textShadowOpacity:.72,contentFrostBlurPx:24,ambientLiftOpacity:.07,adaptiveContent:!0,brightTextShadowOpacity:0,brightFrostBg:"rgba(255,255,255,0.3)"},reducedTransparency:{surface:{shell:"#12161f",panel:"#33373e",chrome:"#3d4047",raised:"#4b4e55",inset:"#23272f",overlay:"#383b43"},scrim:"rgba(8,12,20,0.5)"}}),MTr=["classic","glass"],jTr=Object.freeze([{id:"classic",title:"Classic",description:"Opaque editor surfaces with conventional bars and panels."},{id:"glass",title:"Glass",description:"Adaptive clear material with refraction, frost, and floating chrome."}]),SB=new Map;let ihe=null;const ohe=new Set;function LTr(){return ihe??=[...jTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ihe}function BTr(t){return ohe.add(t),()=>ohe.delete(t)}function $Tr(t){if(Bye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),ihe=null;for(const n of ohe)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),ihe=null;for(const n of ohe)n()}}}function Bye(t){return typeof t=="string"&&(MTr.includes(t)||SB.has(t))}function qTr(t,n,s=!1){if(n!=="glass"){const d=SB.get(n);return{id:d?`${t.id}--${d.id}`:t.id,color:t.color,typography:t.typography,shape:d?.shape??Aht.shape,elevation:d?.elevation??Aht.elevation,...d?.density?{density:d.density}:{},...d?.stage?{stage:d.stage}:{},appearance:{material:"classic",transparency:"standard"}}}return{id:`${t.id}--${s?"glass-reduced":"glass"}`,color:{surface:s?Ym.reducedTransparency.surface:Ym.color.surface,boundary:Ym.color.boundary,content:t.color.content,accent:t.color.accent,semantic:t.color.semantic,neutralOverlay:Ym.color.neutralOverlay,scrim:s?Ym.reducedTransparency.scrim:Ym.color.scrim},typography:t.typography,shape:Ym.shape,elevation:Ym.elevation,appearance:{material:"glass",transparency:s?"reduced":"standard"},...s?{}:{treatment:Ym.treatment}}}const zTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},VTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Epe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function z3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Epe(t),alignItems:n?zTr[n]:void 0,justifyContent:s?VTr[s]:void 0,padding:Epe(c),paddingInline:Epe(d),paddingBlock:Epe(m),...g}}function gee(t,n){return n?`${t} ${n}`:t}function V3t({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-stack",t),style:z3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-inline",t),style:z3t(n)})}function xyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:gee("volter-spacer",t)})}function UTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:gee("volter-divider",n)})}function JTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:gee("volter-actions",n),gap:2,align:"center",children:t})}function U3t(t,n){return n?`${t} ${n}`:t}const _p=Ye.forwardRef(function({as:n="span",variant:s="body",tone:c="primary",truncate:d=!1,selectable:m=!1,className:g,...S},k){const A=n;return q.jsx(A,{...S,ref:k,"data-variant":s,"data-tone":c,"data-truncate":d||void 0,"data-selectable":m||void 0,className:U3t("volter-text",g)})});function wyn({className:t,...n}){return q.jsx("kbd",{...n,className:U3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function kRe({labelledBy:t,onDismiss:n,size:s="default",variant:c="default",className:d,...m}){const[g]=Ye.useState(()=>typeof document>"u"?null:document.querySelector(".volter-editor-theme")),S=Ye.useId(),k=q.jsx("div",{"data-volter-portal-content":g?S:void 0,className:"volter-dialog-scrim","data-variant":c,onPointerDown:A=>{A.target===A.currentTarget&&n?.()},children:q.jsx("div",{...m,role:"dialog","aria-modal":"true","aria-labelledby":t,"data-size":s,"data-variant":c,className:B$("volter-dialog",d)})});return g?q.jsxs(q.Fragment,{children:[q.jsx("span",{"data-volter-portal":S,style:{display:"none"}}),r2.createPortal(k,g)]}):k}function ARe({titleId:t,title:n,description:s}){return q.jsxs(V3t,{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 J3t({className:t,...n}){return q.jsx(V3t,{...n,className:B$("volter-dialog-body",t)})}function DRe({children:t,className:n,...s}){return q.jsx(JTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function Tyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function Cyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function Eyn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function kyn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function gBe(t,n){return n?`${t} ${n}`:t}function WTr({className:t,...n}){return q.jsx("div",{...n,className:gBe("volter-field-group",t)})}function C_e({label:t,htmlFor:n,hint:s,compact:c=!1,className:d,children:m,...g}){return q.jsxs("div",{...g,"data-compact":c||void 0,className:gBe("volter-field-row",d),children:[q.jsx("label",{htmlFor:n,className:"volter-field-label",children:t}),q.jsx("div",{className:"volter-field-control",children:m}),s&&q.jsx("div",{className:"volter-field-hint",children:s})]})}function Ayn({className:t,...n}){return q.jsx("label",{...n,className:gBe("volter-field-label",t)})}const Dyn=Ye.forwardRef(function({selected:n=!1,accent:s="bar",className:c,type:d="button",...m},g){return q.jsx("button",{...m,ref:g,type:d,"data-selected":n||void 0,"data-accent":s,className:c?`volter-list-button ${c}`:"volter-list-button"})});function HTr({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 GTr({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 Pyn({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 Iyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Nyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function Dht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function Oyn({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 W3t(t,n){return n?`${t} ${n}`:t}const Ryn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:W3t("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()}})}),Fyn=Ye.forwardRef(function({selected:n=!1,dirty:s=!1,badge:c,className:d,type:m="button",tabIndex:g,children:S,...k},A){return q.jsxs("button",{...k,ref:A,type:m,role:"tab",tabIndex:g??(n?0:-1),"aria-selected":n,"data-selected":n||void 0,className:W3t("volter-tab",d),children:[s&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-tab-dirty",title:"Unsaved","aria-hidden":"true"}),q.jsx("span",{className:"volter-sr-only",children:"Unsaved"})]}),q.jsx("span",{className:"volter-tab-label",children:S}),c!==void 0&&q.jsx("span",{className:"volter-tab-badge",children:c})]})});function yee(t,n){return n?`${t} ${n}`:t}const n$=Ye.forwardRef(function({label:n,compact:s=!1,selectionMode:c="independent",className:d,...m},g){return q.jsx("div",{...m,ref:g,role:"toolbar","aria-label":n,"data-compact":s||void 0,"data-selection-mode":c,className:yee("volter-toolbar",d)})});function Pht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-toolbar-group",t)})}function Iht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:yee("volter-toolbar-divider",t.className)})}function Myn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:yee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function jyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-split-button",t)})}function H3t(t,n){return n?`${t} ${n}`:t}const Lyn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:H3t("volter-tree",s)})}),Byn=Ye.forwardRef(function({level:n=1,selected:s=!1,expanded:c,muted:d=!1,dragging:m=!1,leading:g,actions:S,className:k,children:A,style:F,...D},J){return q.jsxs("div",{...D,ref:J,role:"treeitem",tabIndex:D.tabIndex??-1,"aria-level":n,"aria-selected":s,...c===void 0?{}:{"aria-expanded":c},"data-selected":s||void 0,"data-muted":d||void 0,"data-dragging":m||void 0,className:H3t("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 G3t(t,n=8){const s=window.innerWidth,c=window.innerHeight,d=Math.max(n,s-t.width-n),m=Math.max(n,c-t.height-n);return{left:Math.min(Math.max(t.left,n),d),top:Math.min(Math.max(t.top,n),m)}}function $ye(t,n){return n?`${t} ${n}`:t}function PRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function KTr(t){PRe(t)[0]?.focus()}function Nht(t,n){if(!t)return!1;let s=n;for(;s;){if(t.contains(s))return!0;const d=((s instanceof Element?s:s.parentElement)?.closest("[data-volter-portal-content]")??null)?.getAttribute("data-volter-portal-content");if(!d)return!1;s=document.querySelector(`[data-volter-portal="${CSS.escape(d)}"]`)}return!1}const dN=Ye.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ye.useRef(null);return Ye.useImperativeHandle(k,()=>A.current),Ye.useEffect(()=>{c&&PRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!Nht(A.current,J)&&!Nht(d?.current??null,J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:$ye("volter-menu",n),onKeyDown:F=>{if(g?.(F),F.defaultPrevented)return;if(F.key==="Escape"){F.preventDefault(),m?.("escape");return}if(!["ArrowDown","ArrowUp","Home","End"].includes(F.key))return;F.preventDefault();const D=PRe(F.currentTarget);if(D.length===0)return;const J=D.indexOf(document.activeElement);F.key==="Home"?D[0]?.focus():F.key==="End"?D.at(-1)?.focus():F.key==="ArrowDown"?D[(J+1+D.length)%D.length]?.focus():D[(J-1+D.length)%D.length]?.focus()}})}),Jc=Ye.forwardRef(function({className:n,type:s="button",role:c="menuitem",onClick:d,onSelect:m,...g},S){return q.jsx("button",{...g,ref:S,type:s,role:c,className:$ye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:$ye("volter-menu-separator",t.className)})}const yBe=Ye.forwardRef(function({className:n,type:s="button",...c},d){return q.jsx("button",{...c,ref:d,type:s,"aria-haspopup":c["aria-haspopup"]??"menu",className:$ye("volter-menu-trigger",n)})});function she({children:t}){const n=Ye.useRef(null),[s,c]=Ye.useState(null),d=Ye.useId();return Ye.useLayoutEffect(()=>{c(n.current?.closest(".volter-editor-theme")??null)},[]),q.jsxs(q.Fragment,{children:[q.jsx("span",{ref:n,"data-volter-portal":d,style:{display:"none"}}),s?r2.createPortal(q.jsx("div",{"data-volter-portal-content":d,style:{display:"contents"},children:t}),s):null]})}function vBe({anchorRef:t,align:n="end",side:s="bottom",autoFocusFirst:c=!0,gap:d=4,clamp:m=!1,onDismiss:g,style:S,children:k,...A}){const[F,D]=Ye.useState(null),[J,$]=Ye.useState(null),G=Ye.useRef(null),se=Ye.useRef(!0),pe=Ye.useRef(!1),ue=Ye.useCallback(()=>{const De=t.current;if(!De||!F)return;const Pe=De.getBoundingClientRect(),be=F.getBoundingClientRect(),we=s==="right"||s==="left"?{left:s==="right"?Pe.right+d:Pe.left-d-be.width,top:Pe.top}:{left:n==="end"?Pe.right-be.width:Pe.left,top:s==="top"?Pe.top-d-be.height:Pe.bottom+d},qe=m?G3t({...we,width:be.width,height:be.height}):we,bt=G.current;bt?.left===qe.left&&bt.top===qe.top||(G.current=qe,$(qe))},[n,t,m,d,F,s]);Ye.useLayoutEffect(()=>{const De=t.current;if(!De||!F)return;ue();let Pe=0;const be=()=>{ue(),Pe=requestAnimationFrame(be)};Pe=requestAnimationFrame(be),window.addEventListener("resize",ue),document.addEventListener("scroll",ue,!0);const X=typeof ResizeObserver>"u"?null:new ResizeObserver(ue);return X?.observe(De),X?.observe(F),()=>{const we=se.current&&F.contains(document.activeElement);window.removeEventListener("resize",ue),document.removeEventListener("scroll",ue,!0),cancelAnimationFrame(Pe),X?.disconnect(),we&&queueMicrotask(()=>t.current?.focus())}},[t,F,ue]),Ye.useLayoutEffect(()=>{!c||pe.current||!F||!J||(pe.current=!0,KTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(she,{children:q.jsx(dN,{...A,ref:D,dismissBoundaryRef:t,onDismiss:Ce,style:{...S,position:"fixed",left:J?.left??0,top:J?.top??0,visibility:J?S?.visibility:"hidden"},children:k})})}function $yn({label:t,children:n,gap:s=0,...c}){const[d,m]=Ye.useState(!1),g=Ye.useRef(null),S=Ye.useId(),k=F=>F instanceof Element&&(g.current?.contains(F)===!0||F.closest(`[data-volter-submenu="${S}"]`)!==null),A=F=>{k(F.relatedTarget)||m(!1)};return q.jsxs(q.Fragment,{children:[q.jsxs(Jc,{...c,ref:g,"aria-haspopup":"menu","aria-expanded":d,onPointerEnter:()=>m(!0),onPointerLeave:A,onClick:F=>{F.preventDefault(),m(!0)},onKeyDown:F=>{(F.key==="ArrowRight"||F.key==="Enter"||F.key===" ")&&(F.preventDefault(),m(!0)),F.key==="ArrowLeft"&&m(!1)},children:[q.jsx("span",{style:{flex:1},children:t}),q.jsx("span",{"aria-hidden":"true",style:{paddingInlineStart:"var(--volter-space-4)"},children:"▸"})]}),d&&q.jsx(vBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ye.forwardRef(function({variant:n="secondary",size:s="default",shape:c="default",className:d,type:m="button",...g},S){return q.jsx("button",{...g,ref:S,type:m,className:d?`volter-btn ${d}`:"volter-btn","data-variant":n,"data-size":s,"data-shape":c})}),pm=Ye.forwardRef(function({variant:n="ghost",visibleLabel:s,children:c,...d},m){return q.jsxs(Ms,{...d,ref:m,variant:n,"data-icon":"true","data-label-placement":s===void 0?void 0:"below",children:[c,s!==void 0&&q.jsx("span",{className:"volter-icon-button-label",children:s})]})}),PI={base:0,overlayLow:50,sticky:100,dropdown:1e3,toast:9999,modal:1e4},IG={0:"#1a1a1a",1:"#242424",2:"#2c2c2c",3:"#333333",inset:"#1e1e1e"},Oht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},XTr="#579EFF",YTr="rgba(87,158,255,0.15)",D5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},bBe="#d8dee9",SBe="rgba(216,222,233,0.18)",K3t="#FF6B6B",X3t="#e0a030",Y3t="#4caf50",Z3t="rgba(76,175,80,0.15)",Q3t="rgba(255,107,107,0.15)",e4t="rgba(224,160,48,0.12)",t4t="rgba(255,107,107,0.06)",r4t="rgba(0,0,0,0.5)",n4t="#ff79c6",i4t="rgba(255,121,198,0.08)",o4t="#22b8d6",qye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',zye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',P5e={sm:"0 2px 8px rgba(0,0,0,0.6)",md:"0 4px 12px rgba(0,0,0,0.5)",lg:"0 8px 32px rgba(0,0,0,0.6)"},xBe={0:"var(--volter-surface-shell)",1:"var(--volter-surface-panel)",2:"var(--volter-surface-chrome)",3:"var(--volter-surface-raised)",inset:"var(--volter-surface-inset)"},ahe={1:"var(--volter-boundary-default)",2:"var(--volter-boundary-strong)"},Zf={1:"var(--volter-content-primary)",2:"var(--volter-content-muted)",3:"var(--volter-content-dim)"},qyn="var(--volter-accent)",zyn="var(--volter-accent-muted)",Vyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},E_e="var(--volter-danger)",Uyn="var(--volter-warn)",Jyn="var(--volter-success)",Wyn="var(--volter-success-muted)",Hyn="var(--volter-danger-muted)",Gyn="var(--volter-warn-muted)",Kyn="var(--volter-danger-faint)",Xyn="var(--volter-scrim)",Yyn="var(--volter-dynamic)",Zyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},s4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},wBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...ZTr,...t.density?.control},font:{...eCr,...t.density?.font},icon:{...QTr,...t.density?.icon},chrome:{...s4t,...t.density?.chrome}}}const ZTr={compact:20,default:24,comfortable:28},I5e={resting:1,active:2},QTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},eCr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},k_e={regular:400,semibold:600,bold:700},kpe={tight:1,snug:1.2,normal:1.4,relaxed:1.5},NG={duration:{fast:140,base:180,slow:300},easing:{standard:"cubic-bezier(0.32, 0.72, 0.28, 1)",out:"ease-out"}},Qyn="var(--volter-font-sans)",e0n="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},aQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},t0n={sm:"var(--volter-shadow-sm)",md:"var(--volter-shadow-md)",lg:"var(--volter-shadow-lg)"},YY={xs:"var(--volter-font-xs)",sm:"var(--volter-font-sm)",base:"var(--volter-font-base)",md:"var(--volter-font-md)",lg:"var(--volter-font-lg)",xl:"var(--volter-font-xl)","2xl":"var(--volter-font-2xl)",heading:"var(--volter-font-heading)"},G0={1:"var(--volter-space-1)",2:"var(--volter-space-2)",3:"var(--volter-space-3)",4:"var(--volter-space-4)",5:"var(--volter-space-5)",6:"var(--volter-space-6)",8:"var(--volter-space-8)",10:"var(--volter-space-10)",12:"var(--volter-space-12)"},Rht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},r0n={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)"}},n0n="var(--volter-focus-ring)",tCr=["outliner","properties"],Vye=Object.keys({object:!0,modifier:!0,material:!0,tool:!0,operator:!0,data:!0,scene:!0,collection:!0,select:!0}),i$={id:"graphite-dark",color:{surface:{shell:IG[0],panel:IG[1],chrome:IG[2],raised:IG[3],inset:IG.inset,overlay:"rgba(36,36,36,0.94)"},boundary:{default:Oht[1],strong:Oht[2]},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:XTr,muted:YTr},semantic:{danger:K3t,dangerMuted:Q3t,dangerFaint:t4t,warning:X3t,warningMuted:e4t,success:Y3t,successMuted:Z3t,dynamic:n4t,dynamicMuted:i4t,instance:o4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:r4t},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:P5e.sm,medium:P5e.md,large:P5e.lg}},rCr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:D5e[1],muted:D5e[2],dim:D5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:bBe,muted:SBe}}},nCr={id:"midnight-high-contrast",color:{surface:{shell:"#0b0f14",panel:"#111821",chrome:"#17212c",raised:"#223040",inset:"#080c11",overlay:"rgba(17,24,33,0.96)"},boundary:{default:"#34465a",strong:"#71869d"},content:{primary:"#f2f5f8",muted:"#bdc8d5",dim:"#8493a5",onAccent:"#071019",onBright:{primary:"#071019",muted:"rgba(7,16,25,0.82)",dim:"rgba(7,16,25,0.72)"}},accent:{default:"#65d1ff",muted:"rgba(101,209,255,0.18)"},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.18)",dangerFaint:"rgba(255,123,134,0.08)",warning:"#f3c969",warningMuted:"rgba(243,201,105,0.16)",success:"#62d394",successMuted:"rgba(98,211,148,0.18)",dynamic:"#e889ff",dynamicMuted:"rgba(232,137,255,0.12)",instance:"#a49bff"},neutralOverlay:{hover:"rgba(255,255,255,0.10)",active:"rgba(255,255,255,0.18)"},scrim:"rgba(0,0,0,0.68)"},typography:{sans:qye,mono:zye},shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.72)",medium:"0 6px 18px rgba(0,0,0,0.68)",large:"0 12px 40px rgba(0,0,0,0.76)"}},IRe={id:"glass-dark",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:"rgba(26,26,26,0.88)",panel:"rgba(36,36,36,0.62)",chrome:"rgba(44,44,44,0.68)",raised:"rgba(51,51,51,0.74)",inset:"rgba(30,30,30,0.7)",overlay:"rgba(36,36,36,0.55)"},boundary:{default:"rgba(255,255,255,0.14)",strong:"rgba(255,255,255,0.24)"},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:bBe,muted:SBe},semantic:{danger:K3t,dangerMuted:Q3t,dangerFaint:t4t,warning:X3t,warningMuted:e4t,success:Y3t,successMuted:Z3t,dynamic:n4t,dynamicMuted:i4t,instance:o4t},neutralOverlay:{hover:"color-mix(in srgb, currentColor 9%, transparent)",active:"color-mix(in srgb, currentColor 14%, transparent)"},scrim:"rgba(0,0,0,0.35)"},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:"0 4px 16px rgba(0,0,0,0.55)",medium:"0 8px 28px rgba(0,0,0,0.5)",large:"0 16px 48px rgba(0,0,0,0.55)"},treatment:{backdropBlurPx:14,backdropSaturation:1.3,backdropBrightness:.5,edgeSpecular:.6,specularAngleDeg:120,thickness:.5}},iCr=(()=>{const{treatment:t,...n}=IRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...IRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:r4t}}})(),NRe={id:"liquid-glass",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:Ym.color.surface.shell,panel:Ym.color.surface.panel,chrome:Ym.color.surface.chrome,raised:Ym.color.surface.raised,inset:Ym.color.surface.inset,overlay:Ym.color.surface.overlay},boundary:Ym.color.boundary,content:{primary:"#f2f6fb",muted:"rgba(242,246,251,0.85)",dim:"rgba(242,246,251,0.68)",onAccent:"#0b1526",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:bBe,muted:SBe},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.22)",dangerFaint:"rgba(255,123,134,0.10)",warning:"#ffd35f",warningMuted:"rgba(255,211,95,0.18)",success:"#58e078",successMuted:"rgba(88,224,120,0.20)",dynamic:"#ff8fd8",dynamicMuted:"rgba(255,143,216,0.14)",instance:"#3ad2ea"},neutralOverlay:Ym.color.neutralOverlay,scrim:Ym.color.scrim},typography:{sans:qye,mono:zye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},oCr=(()=>{const{treatment:t,...n}=NRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...NRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),a4t={"graphite-dark":i$,"graphite-neutral":rCr,"midnight-high-contrast":nCr,"glass-dark":IRe,"glass-dark-lite":iCr,"liquid-glass":NRe,"liquid-glass-lite":oCr};function sCr(t){return typeof t=="string"&&Object.hasOwn(a4t,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 aCr(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 cCr(t){if(!t)return"none";const n=[];return t.backdropBlurPx&&n.push(`blur(${t.backdropBlurPx}px)`),t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&n.push(`saturate(${t.backdropSaturation})`),t.backdropBrightness!==void 0&&t.backdropBrightness!==1&&n.push(`brightness(${t.backdropBrightness})`),n.length>0?n.join(" "):"none"}function Fht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Mht(t){const n=t?.contentFrostBlurPx??0;if(n<=0)return"none";const s=[`blur(${n}px)`];return t?.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function ORe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function lCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function uCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function fCr(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 dCr=.6,pCr=.5;function che(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/dCr).toFixed(3)))})`}function c4t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.95)} 0%, ${c(.38)} 16%, ${c(.16)} 40%, ${c(.14)} 60%, ${c(.45)} 84%, ${c(.85)} 100%)`}function _Cr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function mCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${che(.28,n)}`),c.push(`inset 0 -1px 1px ${che(.1,n)}`)),s>0){const d=m=>`${Number((m*s/pCr).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 hCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function gCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function yCr(t){return t?"17px":"var(--volter-radius-md)"}function vCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function bCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function SCr(t,n){const s=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t.color.accent.default);if(!s)return null;const[c,d,m]=[s[1],s[2],s[3]].map(g=>Number.parseInt(g,16));return`rgba(${c},${d},${m},${n})`}function Uye(t){return q$(t)}function xCr(t){return Uye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function l4t(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 u4t(t){if(!l4t(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 wCr(t){return Uye(t)?"var(--volter-content-primary)":l4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function TCr(t){return Uye(t)?"color-mix(in srgb, currentColor 30%, transparent)":u4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function CCr(t){return Uye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function ECr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function kCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":SCr(t,.82)??"var(--volter-accent)"}function ACr(t){const n=t?.edgeSpecular??0;return n<=0?"none":c4t({...t,edgeSpecular:n*.4})}function DCr(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 f4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function d4t(t){return f4t(t?.textShadowOpacity??0)}function PCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:f4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??ORe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:d4t(t.treatment),frostBg:ORe(t.treatment)}}function ICr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":OCr(t.color.surface.chrome,.9):t.color.surface.chrome}function NCr(t){return t.color.surface.panel}function OCr(t,n){const s=/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([0-9.]+)\s*\)$/.exec(t);if(!s)return t;const c=Math.max(Number(s[4]),n);return`rgba(${s[1]},${s[2]},${s[3]},${c})`}function jht(t){if(!t)return"none";const s=[`blur(${Math.max(16,t.contentFrostBlurPx??0)}px)`];return t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function RCr(t){return t.color.boundary.area??t.color.boundary.default}function FCr(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 MCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function jCr(t){const n=PCr(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":cCr(t.treatment),"--volter-surface-sticky":Fht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Fht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Mht(t.treatment),"--volter-content-frost-filter":Mht(t.treatment),"--volter-content-frost-bg":ORe(t.treatment),"--volter-input-surface":lCr(s),"--volter-input-border":uCr(s),"--volter-input-shadow":fCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":c4t(t.treatment),"--volter-card-specular-sheen":_Cr(t.treatment),"--volter-card-specular-shadow":mCr(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":DCr(t.treatment),"--volter-island-surface":hCr(t),"--volter-island-backdrop-filter":gCr(t),"--volter-island-radius":yCr(s),"--volter-island-border-color":vCr(s),"--volter-island-shadow":bCr(s),"--volter-island-specular-ring":ACr(t.treatment),"--volter-selection-bg":xCr(t),"--volter-content-on-selection":wCr(t),"--volter-selection-border":TCr(t),"--volter-selection-indicator":CCr(t),"--volter-island-control-radius":ECr(s),"--volter-island-primary-bg":kCr(t),"--volter-content-text-shadow":d4t(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":ICr(t),"--volter-glass-regular-backdrop-filter":jht(t.treatment),"--volter-glass-regular-panel-bg":NCr(t),"--volter-glass-regular-panel-backdrop-filter":jht(t.treatment),"--volter-glass-dark-frost-panel-bg":"rgba(5,8,13,0.74)","--volter-glass-dark-frost-content-bg":"rgba(5,8,13,0.84)","--volter-scrim-backdrop-filter":t.treatment?"blur(8px)":"none","--volter-boundary-default":t.color.boundary.default,"--volter-boundary-strong":t.color.boundary.strong,"--volter-boundary-area":RCr(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":MCr(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":FCr(t.color.surface.panel,t.color.content.primary),...u4t(t.color.surface.panel)?{"--volter-tree-row-selected-bg":t.color.accent.muted,"--volter-tree-row-active-bg":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-row-active-border":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-datablock-fill":"color-mix(in srgb, var(--volter-category-data, currentColor) 14%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 14%, transparent)"}:{"--volter-tree-row-selected-bg":`color-mix(in srgb, ${t.color.accent.default} 42%, #000)`,"--volter-tree-row-active-bg":`color-mix(in srgb, ${t.color.accent.default} 70%, #000)`,"--volter-tree-row-active-border":"rgb(from var(--volter-tree-row-active-bg) calc(r + 40) calc(g + 40) calc(b + 40))","--volter-tree-datablock-fill":"color-mix(in srgb, color-mix(in srgb, var(--volter-category-data, currentColor) 60%, black) 26%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 24%, transparent)"},"--volter-tree-active-name-underline":t.color.content.active?"none":"underline","--volter-viewport-background":t.color.viewport?.background??"","--volter-viewport-grid":t.color.viewport?.grid??"","--volter-viewport-axis-x":t.color.viewport?.axisX??"","--volter-viewport-axis-y":t.color.viewport?.axisY??"","--volter-viewport-axis-z":t.color.viewport?.axisZ??"","--volter-viewport-wire":t.color.viewport?.wire??"","--volter-viewport-wire-opacity":Zb(t.stage?.wireOpacity),"--volter-viewport-axis-line-width":Zb(t.stage?.axisLineWidth),"--volter-viewport-selection":t.color.viewport?.selection??"","--volter-viewport-active":t.color.viewport?.active??"","--volter-gizmo-x":t.color.gizmo?.x??"","--volter-gizmo-y":t.color.gizmo?.y??"","--volter-gizmo-z":t.color.gizmo?.z??"","--volter-gizmo-navigation-x":t.color.gizmo?.navigationX??"","--volter-gizmo-navigation-y":t.color.gizmo?.navigationY??"","--volter-gizmo-navigation-z":t.color.gizmo?.navigationZ??"","--volter-gizmo-hover":t.color.gizmo?.hover??"","--volter-gizmo-drag":t.color.gizmo?.drag??"","--volter-viewport-gizmo-opacity":Zb(t.stage?.gizmoOpacity),"--volter-viewport-gizmo-arrow-length":Zb(t.stage?.gizmoArrowLength),"--volter-viewport-gizmo-arrow-head":Zb(t.stage?.gizmoArrowHead),"--volter-viewport-gizmo-ring-width":Zb(t.stage?.gizmoRingWidth),"--volter-viewport-navigation-gizmo":t.stage?.navigationGizmo??"","--volter-viewport-navigation-corner":t.stage?.navigationCorner??"","--volter-viewport-navigation-size":Zb(t.stage?.navigationSize),"--volter-viewport-gizmo-highlight-saturation":Zb(t.stage?.gizmoHighlightSaturation),"--volter-viewport-gizmo-highlight-value":Zb(t.stage?.gizmoHighlightValue),"--volter-viewport-gizmo-size":t.stage?.gizmoSize===void 0?"":`${t.stage.gizmoSize}`,"--volter-viewport-grid-line-width":Zb(t.stage?.gridLineWidth),"--volter-viewport-grid-major-width":Zb(t.stage?.gridMajorWidth),"--volter-viewport-grid-major-contrast":Zb(t.stage?.gridMajorContrast),"--volter-viewport-selection-box":t.stage?.selectionBox??"","--volter-viewport-selection-box-frame":t.stage?.selectionBoxFrame??"","--volter-viewport-outline-style":t.stage?.outlineStyle??"","--volter-viewport-outline-width":Zb(t.stage?.outlineWidth),"--volter-viewport-outline-hidden":t.stage?.outlineHidden===void 0?"":`${t.stage.outlineHidden}`,"--volter-viewport-selection-box-width":Zb(t.stage?.selectionBoxWidth),"--volter-viewport-chrome-bar":t.stage?.chrome?.bar??"","--volter-viewport-chrome-view-name":t.stage?.chrome?.viewName??"","--volter-viewport-chrome-tools":t.stage?.chrome?.tools??"","--volter-viewport-chrome-display":t.stage?.chrome?.display??"","--volter-viewport-chrome-transform-controls":t.stage?.chrome?.transformControls??"",...Object.fromEntries(wBe.map(A=>[`--volter-viewport-word-${A}`,t.stage?.words?.shading?.[A]??""])),"--volter-viewport-word-helpers":t.stage?.words?.helpers??"","--volter-widget-regular":c,"--volter-widget-regular-hover":S(c),"--volter-widget-menu":d,"--volter-widget-menu-hover":S(d),"--volter-widget-field":m,"--volter-widget-emboss-shadow":g,...Object.fromEntries(Vye.map(A=>[`--volter-category-${A}`,t.color.category?.[A]??"currentColor"])),"--volter-region-outliner":t.color.region?.outliner??t.color.surface.panel,"--volter-region-outliner-header":t.color.region?.outliner??t.color.surface.chrome,"--volter-region-properties":t.color.region?.properties??t.color.surface.panel,"--volter-region-properties-header":t.color.region?.properties??t.color.surface.chrome,"--volter-font-sans":t.typography.sans,"--volter-font-mono":t.typography.mono,"--volter-radius-sm":t.shape.small,"--volter-radius-md":t.shape.medium,"--volter-radius-lg":t.shape.large,"--volter-radius-full":t.shape.full,"--volter-shadow-sm":t.elevation.small,"--volter-shadow-md":t.elevation.medium,"--volter-shadow-lg":t.elevation.large,"--volter-focus-ring":`${I5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":aCr(t.color.content.muted),"--volter-space-1":`${R_[1]}px`,"--volter-space-2":`${R_[2]}px`,"--volter-space-3":`${R_[3]}px`,"--volter-space-4":`${R_[4]}px`,"--volter-space-5":`${R_[5]}px`,"--volter-space-6":`${R_[6]}px`,"--volter-space-8":`${R_[8]}px`,"--volter-space-10":`${R_[10]}px`,"--volter-space-12":`${R_[12]}px`,"--volter-command-bar-height":`${Qp(t).chrome.commandBar}px`,"--volter-panel-header-height":`${Qp(t).chrome.panelHeader}px`,"--volter-local-toolbar-height":`${Qp(t).chrome.localToolbar}px`,"--volter-tree-row-height":`${Qp(t).chrome.treeRow}px`,"--volter-tree-indent":`${Qp(t).chrome.treeIndent}px`,"--volter-status-bar-height":`${Qp(t).chrome.statusBar}px`,"--volter-tool-size":`${Qp(t).chrome.toolSize}px`,"--volter-tool-width":`${Qp(t).chrome.toolWidth}px`,"--volter-tool-gap":`${Qp(t).chrome.toolGap}px`,"--volter-area-seam-width":`${Qp(t).chrome.areaSeam}px`,"--volter-control-compact-height":`${Qp(t).control.compact}px`,"--volter-control-default-height":`${Qp(t).control.default}px`,"--volter-control-comfortable-height":`${Qp(t).control.comfortable}px`,"--volter-stroke-resting":`${I5e.resting}px`,"--volter-stroke-active":`${I5e.active}px`,"--volter-font-xs":`${Qp(t).font.xs}px`,"--volter-font-sm":`${Qp(t).font.sm}px`,"--volter-font-base":`${Qp(t).font.base}px`,"--volter-font-md":`${Qp(t).font.md}px`,"--volter-font-lg":`${Qp(t).font.lg}px`,"--volter-font-xl":`${Qp(t).font.xl}px`,"--volter-font-2xl":`${Qp(t).font["2xl"]}px`,"--volter-icon-xs":`${Qp(t).icon.xs}px`,"--volter-icon-sm":`${Qp(t).icon.sm}px`,"--volter-icon-md":`${Qp(t).icon.md}px`,"--volter-icon-lg":`${Qp(t).icon.lg}px`,"--volter-icon-xl":`${Qp(t).icon.xl}px`,"--volter-icon-2xl":`${Qp(t).icon["2xl"]}px`,"--volter-font-heading":`${Qp(t).font.heading}px`,"--volter-font-weight-regular":String(k_e.regular),"--volter-font-weight-semibold":String(k_e.semibold),"--volter-font-weight-bold":String(k_e.bold),"--volter-leading-tight":String(kpe.tight),"--volter-leading-snug":String(kpe.snug),"--volter-leading-normal":String(kpe.normal),"--volter-leading-relaxed":String(kpe.relaxed),"--volter-duration-fast":`${NG.duration.fast}ms`,"--volter-duration-base":`${NG.duration.base}ms`,"--volter-duration-slow":`${NG.duration.slow}ms`,"--volter-ease-standard":NG.easing.standard,"--volter-ease-out":NG.easing.out,"--volter-z-base":String(PI.base),"--volter-z-overlay-low":String(PI.overlayLow),"--volter-z-sticky":String(PI.sticky),"--volter-z-dropdown":String(PI.dropdown),"--volter-z-toast":String(PI.toast),"--volter-z-modal":String(PI.modal)}}const RRe="volter-editor-theme";function LCr(t,n=i$){t.classList.add(RRe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(jCr(n)))t.style.setProperty(s,c)}const i0n={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},o0n={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},p4t=Ye.createContext(null);function BCr(){return Ye.useContext(p4t)}function DR(t,n){return n?`${t} ${n}`:t}const Zm=Ye.forwardRef(function({className:n,type:s="text",...c},d){return q.jsx("input",{...c,ref:d,type:s,className:DR("volter-input",n)})}),Iw=Ye.forwardRef(function({className:n,...s},c){return q.jsx("select",{...s,ref:c,className:DR("volter-select",n)})}),TBe=Ye.forwardRef(function({className:n,...s},c){return q.jsx("textarea",{...s,ref:c,className:DR("volter-input volter-textarea",n)})}),TD=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"checkbox",className:DR("volter-checkbox",n)})}),_4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),s0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),a0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",$Cr={id:hC,title:"Editor"},wB=new Map;let lhe=null,cQ=hC;const FRe=new Set;function MRe(){for(const t of FRe)t()}function c0n(){return lhe??=[$Cr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],lhe}function vee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function qCr(t){if(vee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),lhe=null,MRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),lhe=null,MRe())}}function uhe(){return cQ}function fhe(t){const n=vee(t)?t:hC;n!==cQ&&(cQ=n,MRe())}function CBe(t){return FRe.add(t),()=>FRe.delete(t)}function m4t(t){return cQ===hC?null:wB.get(cQ)?.glyphs[t]??null}const Lht={xs:"var(--volter-icon-xs)",sm:"var(--volter-icon-sm)",md:"var(--volter-icon-md)",lg:"var(--volter-icon-lg)",xl:"var(--volter-icon-xl)","2xl":"var(--volter-icon-2xl)"},Bht={current:void 0,primary:Go.content.primary,muted:Go.content.muted,dim:Go.content.dim,accent:Go.accent.default,danger:Go.semantic.danger};function dc({icon:t,size:n="sm",tone:s="current",label:c,className:d,style:m,spin:g=!1,...S}){Ye.useSyncExternalStore(CBe,uhe,uhe);const k=m4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Bht[s]:k.tonedPath?void 0:F,J=A?"currentColor":F??"currentColor";return q.jsxs("svg",{...S,viewBox:k.viewBox??"0 0 16 16","data-volter-tone":A?void 0:k.tone,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{width:"1.25em",height:"1em",overflow:"visible",verticalAlign:"-0.125em",fontSize:Lht[n],color:D,...m},children:[q.jsx("path",{d:k.path,fill:"currentColor"}),k.tonedPath?q.jsx("path",{d:k.tonedPath,fill:J}):null]})}return q.jsx(o0r,{...S,icon:t,fixedWidth:!0,spin:g,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{fontSize:Lht[n],color:Bht[s],...m}})}function h4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?LTt:ZTt,size:n,tone:s,...c?{style:c}:{}})}function l0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?OTt:fLe,size:n,tone:s})}function Eg(t,n){return{...n,iconName:t}}const Kk={action:{add:tCt,close:lLe,delete:FTt,search:RTt,refresh:ivr,undo:VOe,redo:Pmt,build:Q0r,export:nvr,select:Imt},transport:{play:j0r,pause:tvr,restart:Pmt,stop:MTt,step:$0r},content:{project:qOe,folder:fee,file:UTt,source:dLe,scene:_Le,entity:aR,component:GB,camera:cye,light:sLe,image:iB,audio:uLe,data:jTt,code:aLe,stateMachine:$Tt},status:{success:cLe,info:R$,warning:dee,error:VTt,visible:oLe,hidden:pLe,locked:Fme,unlocked:zOe},viewport:{zoomIn:w0r,zoomOut:S0r,pan:O0r,frame:v0r,projection:Eg("viewport-projection",E5e),projectionOrthographic:Eg("viewport-orthographic",E5e),camera:Eg("viewport-camera",Dmt),cameraView:Eg("viewport-camera-view",Dmt),cameraLocked:Eg("viewport-camera-locked",Fme),cameraUnlocked:Eg("viewport-camera-unlocked",zOe),gizmos:Eg("viewport-gizmos",B0r)},modeling:{extrude:Eg("mesh-extrude",qTt),inset:Eg("mesh-inset",Z0r),bevel:Eg("mesh-bevel",ovr),loopCut:Eg("mesh-loop-cut",T0r),knife:Eg("mesh-knife",G0r),smooth:Eg("mesh-smooth",b0r),shrinkFatten:Eg("mesh-shrink-fatten",JTt),subdivide:Eg("mesh-subdivide",L0r)},tool:{extension:GB,select:Eg("tool-select-box",Imt),move:HTt,rotate:NTt,scale:Eg("tool-scale",E0r),transform:Eg("tool-transform",R0r),snap:M0r,frame:eCt,grid:E5e,profiler:YTt},panel:{outliner:Eg("outliner",nCt),properties:Eg("properties",GTt),"folder-open":qOe,"cubes-stacked":WTt,users:C0r,list:vZ,"rotate-left":VOe}};function SZ({value:t,onChange:n,onChangeEnd:s,step:c=.1,precision:d=3,disabled:m=!1,label:g,labelColor:S,style:k,testId:A,title:F}){const[D,J]=Ye.useState(!1),[$,G]=Ye.useState(""),se=Ye.useRef({startX:0,startVal:0,dragging:!1,gesture:!1,lastVal:0}),pe=Ye.useRef(null),ue=BCr();Ye.useEffect(()=>{if(!D)return;const we=pe.current;we&&(we.focus(),we.select())},[D]);const Ce=t===null,De=t??0,Pe=Ce?"—":Number.isFinite(De)?De.toFixed(d):0 .toFixed(d),be=we=>{if(m)return;se.current={startX:we.clientX,startVal:De,dragging:!1,gesture:!1,lastVal:De};const qe=Pt=>{const Wt=Pt.clientX-se.current.startX;if(Math.abs(Wt)>3&&(se.current.dragging=!0),se.current.dragging){se.current.gesture||(se.current.gesture=!0,ue?.begin());const zt=se.current.startVal+Wt*c,ft=Math.round(zt/c)*c;se.current.lastVal=ft,n(ft)}},bt=()=>{window.removeEventListener("pointermove",qe),window.removeEventListener("pointerup",bt),se.current.gesture&&ue?.end(),se.current.dragging?s?.(se.current.lastVal):(J(!0),G(Ce?"":Pe))};window.addEventListener("pointermove",qe),window.addEventListener("pointerup",bt)},X=()=>{J(!1);const we=Number.parseFloat($);Number.isFinite(we)&&(n(we),s?.(we))};return q.jsxs("div",{className:"volter-number-input","data-testid":A,title:F,style:k,children:[g&&q.jsx("span",{className:"volter-number-input-label",style:S?{color:S}:void 0,children:g}),D?q.jsx(Zm,{ref:pe,value:$,onChange:we=>G(we.target.value),onBlur:X,onKeyDown:we=>{we.key==="Enter"&&X(),we.key==="Escape"&&J(!1)},placeholder:Ce?"—":void 0,className:"volter-number-input-editor"}):q.jsx("div",{onPointerDown:be,className:"volter-number-input-scrub","data-mixed":Ce||void 0,"data-disabled":m||void 0,children:Pe})]})}const zCr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:k_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},VCr={...zCr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function Jye({name:t,actions:n,onHeaderClick:s,hideHeader:c=!1,style:d,children:m,...g}){return q.jsxs("div",{...g,style:{display:"flex",flexDirection:"column",pointerEvents:"auto",...d},children:[!c&&q.jsxs("div",{role:s?"button":void 0,tabIndex:s?0:void 0,onClick:s,onKeyDown:s?S=>{S.key==="Enter"&&s()}:void 0,style:{...VCr,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 UCr({label:t,icon:n,description:s,actions:c,collapsible:d=!0,defaultOpen:m=!0,children:g}){const[S,k]=Ye.useState(m),A=q.jsxs("span",{className:"volter-section-title",children:[q.jsx("span",{children:t}),s?q.jsx("small",{children:s}):null]});return q.jsxs("section",{className:"volter-section",children:[q.jsxs("div",{className:"volter-section-header",children:[d?q.jsxs("button",{type:"button",className:"volter-section-trigger","aria-expanded":S,onClick:()=>k(!S),children:[q.jsx(h4t,{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 JCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function WCr(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 HCr(t,n,s){let c=n.left+(n.width-s.width)/2,d=n.top+(n.height-s.height)/2;return t==="top"?d=n.top-s.height-VI:t==="bottom"?d=n.bottom+VI:t==="left"?c=n.left-s.width-VI:c=n.right+VI,{left:Math.max(zI,Math.min(c,window.innerWidth-s.width-zI)),top:Math.max(zI,Math.min(d,window.innerHeight-s.height-zI)),ready:!0}}function hO({text:t,hotkey:n,children:s,position:c="bottom",delay:d=400}){const m=Ye.useId(),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef(null),A=Ye.useRef(!1),F=Ye.useRef(!1),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState({left:0,top:0,ready:!1});Ye.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ye.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const ue=()=>{k.current&&clearTimeout(k.current),k.current=null,J(!1)},Ce=()=>{!A.current&&!F.current&&ue()},De=be=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{pe(X=>({...X,ready:!1})),J(!0)},be)};Ye.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),we=S.current?.getBoundingClientRect();if(!X||!we)return;const qe=WCr(c,X,we)?c:JCr(c);pe(HCr(qe,X,we))};return be(),window.addEventListener("resize",be),window.addEventListener("scroll",be,!0),()=>{window.removeEventListener("resize",be),window.removeEventListener("scroll",be,!0)}},[n,c,t,D]);let Pe=s;if(Ye.isValidElement(s)){const be=[s.props["aria-describedby"],D?m:null].filter(Boolean).join(" ");Pe=Ye.cloneElement(s,be?{"aria-describedby":be}:{})}return q.jsxs("span",{ref:g,className:"volter-tooltip-anchor",onMouseEnter:()=>{A.current=!0,De(d)},onMouseLeave:()=>{A.current=!1,Ce()},onFocusCapture:()=>{F.current=!0,De(0)},onBlurCapture:be=>{be.currentTarget.contains(be.relatedTarget)||(F.current=!1,Ce())},children:[Pe,D&&$&&r2.createPortal(q.jsxs("div",{ref:S,id:m,role:"tooltip",className:"volter-tooltip",style:{left:se.left,top:se.top,visibility:se.ready?"visible":"hidden"},children:[q.jsx("span",{children:t}),n&&q.jsx("kbd",{children:n})]}),$)]})}function GCr({value:t,onChange:n,onAxisChange:s,step:c=.1,disabled:d=!1,testIdPrefix:m}){const g=k=>m?`${m}-${k}`:void 0,S=k=>A=>{if(s)s(k,A);else{const F=[t[0]??0,t[1]??0,t[2]??0];F[k]=A,n(F)}};return q.jsxs("div",{style:{display:"flex",gap:4},children:[q.jsx(SZ,{label:"X",labelColor:"#E06178",value:t[0],onChange:S(0),step:c,disabled:d,style:{flex:1},testId:g("x")}),q.jsx(SZ,{label:"Y",labelColor:"#C2ED66",value:t[1],onChange:S(1),step:c,disabled:d,style:{flex:1},testId:g("y")}),q.jsx(SZ,{label:"Z",labelColor:"#6BABF5",value:t[2],onChange:S(2),step:c,disabled:d,style:{flex:1},testId:g("z")})]})}const N5e={bg:Go.surface.panel,surface:Go.surface.chrome,surfaceHover:Go.surface.raised,border:Go.boundary.default,text:Go.content.primary,textMuted:Go.content.muted,onAccent:Go.content.onAccent,accent:Go.accent.default,neutralHover:Go.neutralOverlay.hover,radiusSmall:Go.shape.small,radiusMedium:Go.shape.medium,inputBg:Go.surface.inset,dynamic:Go.semantic.dynamic,dynamicBg:Go.semantic.dynamicMuted},u0n=Go.typography.sans,f0n=Go.typography.mono;function d0n(t,n){t.onChange(n)}function p0n(t,n){(t.onChangeEnd??t.onChange)(n)}const _0n={display:"flex",alignItems:"center",gap:4},m0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},KCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},XCr=72;function h0n({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 g0n(t){const n=t.match(/^(-?\d+\.?\d*)\s*(px|em|rem|%|vh|vw|deg|s|ms)?$/);if(n)return{num:Number.parseFloat(n[1]??"0"),unit:n[2]||""};const s=Number.parseFloat(t);return{num:Number.isNaN(s)?0:s,unit:""}}const O5e=22,$ht={width:O5e,height:O5e,flex:`0 0 ${O5e}px`,borderRadius:N5e.radiusSmall,border:`1px solid ${N5e.border}`,background:N5e.inputBg,objectFit:"cover",backgroundImage:"linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%),linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%)",backgroundSize:"8px 8px",backgroundPosition:"0 0, 4px 4px"};function YCr({value:t,onChange:n,options:s,previewUrlFor:c,disabled:d,note:m,testId:g}){const S=t&&!s.includes(t)?[t,...s]:s;return q.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0,flex:1},children:[q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,minWidth:0},children:[t?q.jsx("img",{src:c(t),alt:"",style:$ht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:$ht,"aria-hidden":"true"}),q.jsxs(Iw,{"data-testid":g,disabled:d,value:t,title:t||"No texture assigned",onChange:k=>n(k.target.value),style:{flex:1,minWidth:0},children:[q.jsx("option",{value:"",children:"—"}),S.map(k=>q.jsx("option",{value:k,children:k},k))]}),q.jsx(pm,{"data-testid":`${g}-clear`,"aria-label":"Clear this texture slot",title:"Clear this texture slot",disabled:d||!t,onClick:()=>n(""),children:q.jsx(dc,{icon:lLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function jRe({value:t,onCommit:n,onKeyDown:s,onFocus:c,...d}){const[m,g]=Ye.useState(null),S=Ye.useRef(!1),k=()=>{!S.current&&m!==null&&m!==t&&n(m),S.current=!1,g(null)};return q.jsx(Zm,{...d,value:m??t,onFocus:A=>{g(t),c?.(A)},onChange:A=>g(A.target.value),onBlur:k,onKeyDown:A=>{A.key==="Enter"&&A.target.blur(),A.key==="Escape"&&(S.current=!0,A.target.blur()),s?.(A)}})}const A_e=new Map,LRe=new Set;let g4t=0;function qht(){g4t+=1;for(const t of LRe)t()}function y0n(t,n){return A_e.set(t,n),qht(),()=>{A_e.get(t)===n&&(A_e.delete(t),qht())}}function EBe(t){return LRe.add(t),()=>LRe.delete(t)}function o$(){return g4t}function s2(t){return t?A_e.get(t)??null:null}const QL=new Map;function v0n(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 ZCr(t){return(QL.get(t)??0)>0}const PR=1e4;async function CC(t,n=4e3){if(t())return!0;const s=performance.now();return new Promise(c=>{const d=()=>{t()?c(!0):performance.now()-s>=n?c(!1):setTimeout(d,25)};setTimeout(d,0)})}const xZ=new Map,TB=new Set,dhe=new Set,D_e=new Set;let y4t=0;function v4t(){y4t+=1;for(const t of[...TB])t()}function QCr(t,n){return xZ.set(t,n),v4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function eEr(t){xZ.has(t)&&v4t()}function tEr(t){return TB.add(t),()=>{TB.delete(t)}}function zht(){return y4t}function lQ(t){return xZ.get(t)}function b4t(t,n=1e4){const s=lQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=lQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function S4t(t){dhe.add(t);for(const n of[...D_e])n();return()=>{dhe.delete(t)}}function x4t(t,n=1e4){return dhe.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{dhe.has(t)&&(clearTimeout(d),D_e.delete(c),s(!0))},d=setTimeout(()=>{D_e.delete(c),s(!1)},n);D_e.add(c)})}async function kBe(t){if(ZCr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let BRe=null;const ZY=new Map;let YO=[];function rEr(t){if(BRe=t,!t)return;const n=YO;YO=[];for(const s of n)w4t(t,s)}function w4t(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 nEr=0;function s$(t){const n=t.id??`notification-${++nEr}`,s={...t,id:n};return BRe?w4t(BRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>ABe(n))}function ABe(t){const n=ZY.get(t);if(n){n();return}const s=YO.find(c=>c.id===t);s&&(YO=YO.filter(c=>c.id!==t),s.onDismiss?.())}let Xk={sessions:[],selectedSessionId:null,selectedSession:null,cursorMs:0,liveEdgeMs:0,loading:!0,error:null},phe=!0,Ape=null,P_e=null,RG=null,I_e=!1;const QY=new Set;function iEr(t,n,s){const c=t[0]??null;return c!==null&&n.length>0&&!n.some(m=>m.id===c.id)?{sessionId:c.id,latestAppeared:!0}:s&&t.some(m=>m.id===s)?{sessionId:s,latestAppeared:!1}:{sessionId:c?.id??null,latestAppeared:!1}}function _he(t){Xk=t;for(const n of QY)n()}async function oEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function sEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function aEr(){try{const t={sessions:await oEr()},n=iEr(t.sessions,Xk.sessions,P_e),s=n.sessionId;n.latestAppeared&&(phe=!0),P_e=s;const c=s?await sEr(s):null;if(P_e!==s){I_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=phe?m:Math.min(Xk.cursorMs,m);_he({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){_he({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function uQ(){return RG?(I_e=!0,RG):(RG=aEr().finally(()=>{RG=null,I_e&&(I_e=!1,uQ())}),RG)}function cEr(t){return QY.add(t),QY.size===1&&(uQ(),Ape=window.setInterval(()=>void uQ(),1e3)),()=>{QY.delete(t),QY.size===0&&Ape!==null&&(window.clearInterval(Ape),Ape=null)}}function lEr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(P_e=n.id,phe=!0,_he({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),uQ())}function uEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));phe=Xk.liveEdgeMs-n<250,_he({...Xk,cursorMs:n})}const T4t={getSnapshot:()=>Xk,subscribe:cEr,select:lEr,seek:uEr,refresh:uQ};let C4t=null;const $Re=new Set,b0n={getSnapshot:()=>C4t,subscribe(t){return $Re.add(t),()=>$Re.delete(t)}};function S0n(t){C4t=t;for(const n of $Re)try{n()}catch{}}let ZO={phase:null,at:0,run:0},pN=ZO;const qRe=new Map;let E4t=null;function fEr(t){E4t=t,k4t(ZO)}function k4t(t){ZO=t;try{E4t?.(t)}catch{}}function fQ(){const t=[...qRe.values()].at(-1),n=t?{...t,run:pN.run}:pN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||k4t(n)}function x0n(t=Date.now()){return pN={phase:null,at:t,run:pN.run+1},fQ(),ZO.run}function w0n(t,n=Date.now()){pN={phase:t,at:n,run:pN.run},fQ()}function T0n(t=Date.now()){pN={phase:null,at:t,run:pN.run},fQ()}function DBe(t,n=Date.now()){const s=Symbol();return qRe.set(s,{phase:t.slice(0,160),at:n}),fQ(),()=>{qRe.delete(s)&&fQ()}}const dEr=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-DykRF4LC.js"),__vite__mapDeps([255,1,2,3,4,20,21,143,128,144,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class PBe extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){console.error(`[tools] ${this.props.file} crashed while rendering:`,n,s.componentStack)}render(){return this.state.error?q.jsxs("div",{style:{padding:R_[6],fontSize:"var(--volter-font-md)",color:Go.semantic.danger,maxWidth:640},children:[q.jsxs("div",{style:{fontWeight:600,marginBottom:R_[2]},children:["Tool crashed: ",q.jsx("code",{children:this.props.file})]}),q.jsx("div",{style:{whiteSpace:"pre-wrap"},children:String(this.state.error)}),q.jsx("div",{style:{color:Go.content.muted,marginTop:R_[3]},children:"The editor is fine — fix the tool file and save; it reloads in place."})]}):this.props.children}}function pEr({contribution:t,Component:n,documentId:s,active:c,document:d,accountRevision:m,playKey:g}){const S=Ye.useRef(null),[k,A]=Ye.useState(null),F=Ye.useRef(null),D=Ye.useRef(null),J=Ye.useRef(t.file);J.current=t.file;const $=Ye.useRef(s);return $.current=s,Ye.useEffect(()=>{const G=S.current;if(!G)return;let se=!1;A(null);const pe=(De,Pe)=>{if(se)return;const be=De instanceof Error?De:new Error(String(De));console.error(`[tools] ${J.current} crashed while rendering:`,be,Pe?.componentStack),A(be),$.current&&S4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=nLe.createRoot(ue,{onUncaughtError:pe});return F.current=Ce,()=>{se=!0,F.current=null,D.current?.(),D.current=null,queueMicrotask(()=>{Ce.unmount(),ue.remove()})}},[]),Ye.useEffect(()=>{const G=F.current;if(!G)return;A(null);const se={contributionId:t.id,client:e0e(),surfaces:hBe,account:nBe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:DBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:T4t}:{play:Rye()},...s?{documentId:s,publishContext:Ce=>QCr(s,Ce)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ye.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});G.render(s?Ye.createElement(_Er,{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 _Er({documentId:t,children:n}){return Ye.useEffect(()=>S4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ye.useSyncExternalStore(Dye,lN,lN),g=Ye.useSyncExternalStore(Fye,uN,uN),S=t.point==="workspace.analytics"?"gameplay-sessions":g;return q.jsxs("div",{"data-testid":`tool-panel-${t.id}`,style:{flex:1,minHeight:0,overflow:t.point==="workspace.analytics"?"visible":"auto",color:Go.content.primary,display:"flex",flexDirection:"column"},children:[t.point==="workspace.analytics"?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(dEr,{})}):null,q.jsx(PBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(pEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function mEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Dye,lN,lN),Ye.useSyncExternalStore(Fye,uN,uN);const S=g?m.hierarchy.node(g):null;return q.jsx("div",{className:"volter-inspector-tool-section","data-testid":`inspector-tool-${t}`,children:q.jsx(PBe,{file:s,children:q.jsx(Qvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:hBe,account:nBe(),play:Rye(),node:S,nodeId:g,adapter:m})})})})}const hEr=Symbol("volter.inspection.mixed");function zRe(t){return t===hEr}function IBe(t){return t.readonlyReason??"This field is read-only."}function NBe(t){return"column"}function OBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const VRe="preview",Vht="transform",R5e="properties",A4t="stories",C0n="story-args",E0n="Story Args";function Uht(t){return`group:${t}`}const D4t=100,gEr=1e3,dQ=2e3,P4t=3e3,yEr=4e3,vEr=5e3,bEr={nullSubjectId:null};function I4t(t){return"sections"in t}const N_e=[];let N4t=0;const URe=new Set;function Jht(){N4t++;for(const t of URe)t()}function SEr(t){return URe.add(t),()=>{URe.delete(t)}}function Wht(){return N4t}function O4t(t){return N_e.push(t),Jht(),()=>{const n=N_e.indexOf(t);n>=0&&(N_e.splice(n,1),Jht())}}function Hht(t,n,s=bEr){return N_e.filter(c=>c.match(t,n,s))}function R4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const xEr=1e3;class wEr{_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>xEr){const k=this._entries.shift();this.counts[k.level]=Math.max(0,this.counts[k.level]-1)}this._notify()}_notify(){this._version++,!this._notifyScheduled&&(this._notifyScheduled=!0,queueMicrotask(()=>{this._notifyScheduled=!1;for(const n of this._listeners)n()}))}}const Qs=new wEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Ght=1e3,Kht=4e3;function CB(t){try{const n=t;return typeof t=="object"&&n!==null&&typeof n.stack=="string"&&n.stack!==""&&typeof n.message=="string"?n.stack.includes(n.message)?n.stack:`${String(t)}
|
|
45
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const g of t.seen.entries()){const S=g[1];if(n===g[0]){m(g);continue}if(t.external){const A=t.external.registry.get(g[0])?.id;if(n!==g[0]&&A){m(g);continue}}if(t.metadataRegistry.get(g[0])?.id){m(g);continue}if(S.cycle){m(g);continue}if(S.count>1&&t.reused==="ref"){m(g);continue}}}function Ume(t,n){const s=t.seen.get(n);if(!s)throw new Error("Unprocessed schema. This is a bug in Zod.");const c=g=>{const S=t.seen.get(g);if(S.ref===null)return;const k=S.def??S.schema,A={...k},F=S.ref;if(S.ref=null,F){c(F);const J=t.seen.get(F),$=J.schema;if($.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(k.allOf=k.allOf??[],k.allOf.push($)):Object.assign(k,$),Object.assign(k,A),g._zod.parent===F)for(const se in k)se==="$ref"||se==="allOf"||se in A||delete k[se];if($.$ref&&J.def)for(const se in k)se==="$ref"||se==="allOf"||se in J.def&&JSON.stringify(k[se])===JSON.stringify(J.def[se])&&delete k[se]}const D=g._zod.parent;if(D&&D!==F){c(D);const J=t.seen.get(D);if(J?.schema.$ref&&(k.$ref=J.schema.$ref,J.def))for(const $ in k)$==="$ref"||$==="allOf"||$ in J.def&&JSON.stringify(k[$])===JSON.stringify(J.def[$])&&delete k[$]}t.override({zodSchema:g,jsonSchema:k,path:S.path??[]})};for(const g of[...t.seen.entries()].reverse())c(g[0]);const d={};if(t.target==="draft-2020-12"?d.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?d.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?d.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){const g=t.external.registry.get(n)?.id;if(!g)throw new Error("Schema is missing an `id` property");d.$id=t.external.uri(g)}Object.assign(d,s.def??s.schema);const m=t.external?.defs??{};for(const g of t.seen.entries()){const S=g[1];S.def&&S.defId&&(m[S.defId]=S.def)}t.external||Object.keys(m).length>0&&(t.target==="draft-2020-12"?d.$defs=m:d.definitions=m);try{const g=JSON.parse(JSON.stringify(d));return Object.defineProperty(g,"~standard",{value:{...n["~standard"],jsonSchema:{input:Jme(n,"input",t.processors),output:Jme(n,"output",t.processors)}},enumerable:!1,writable:!1}),g}catch{throw new Error("Error converting schema to JSON.")}}function W1(t,n){const s=n??{seen:new Set};if(s.seen.has(t))return!1;s.seen.add(t);const c=t._zod.def;if(c.type==="transform")return!0;if(c.type==="array")return W1(c.element,s);if(c.type==="set")return W1(c.valueType,s);if(c.type==="lazy")return W1(c.getter(),s);if(c.type==="promise"||c.type==="optional"||c.type==="nonoptional"||c.type==="nullable"||c.type==="readonly"||c.type==="default"||c.type==="prefault")return W1(c.innerType,s);if(c.type==="intersection")return W1(c.left,s)||W1(c.right,s);if(c.type==="record"||c.type==="map")return W1(c.keyType,s)||W1(c.valueType,s);if(c.type==="pipe")return W1(c.in,s)||W1(c.out,s);if(c.type==="object"){for(const d in c.shape)if(W1(c.shape[d],s))return!0;return!1}if(c.type==="union"){for(const d of c.options)if(W1(d,s))return!0;return!1}if(c.type==="tuple"){for(const d of c.items)if(W1(d,s))return!0;return!!(c.rest&&W1(c.rest,s))}return!1}const xSr=(t,n={})=>s=>{const c=zme({...s,processors:n});return F_(t,c),Vme(c,t),Ume(c,t)},Jme=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=zme({...d??{},target:m,io:n,processors:s});return F_(t,g),Vme(g,t),Ume(g,t)},wSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ckt=(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=wSr[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}))])}},lkt=(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)},ukt=(t,n,s,c)=>{s.type="boolean"},fkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},pkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},_kt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},mkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},hkt=(t,n,s,c)=>{s.not={}},gkt=(t,n,s,c)=>{},ykt=(t,n,s,c)=>{},vkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},bkt=(t,n,s,c)=>{const d=t._zod.def,m=yLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},Skt=(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},xkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},wkt=(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},Tkt=(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)},Ckt=(t,n,s,c)=>{s.type="boolean"},Ekt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},kkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Akt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Dkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Pkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Ikt=(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"]})},Nkt=(t,n,s,c)=>{const d=s,m=t._zod.def;d.type="object",d.properties={};const g=m.shape;for(const A in g)d.properties[A]=F_(g[A],n,{...c,path:[...c.path,"properties",A]});const S=new Set(Object.keys(g)),k=new Set([...S].filter(A=>{const F=m.shape[A]._zod;return n.io==="input"?F.optin===void 0:F.optout===void 0}));k.size>0&&(d.required=Array.from(k)),m.catchall?._zod.def.type==="never"?d.additionalProperties=!1:m.catchall?m.catchall&&(d.additionalProperties=F_(m.catchall,n,{...c,path:[...c.path,"additionalProperties"]})):n.io==="output"&&(d.additionalProperties=!1)},CLe=(t,n,s,c)=>{const d=t._zod.def,m=d.inclusive===!1,g=d.options.map((S,k)=>F_(S,n,{...c,path:[...c.path,m?"oneOf":"anyOf",k]}));m?s.oneOf=g:s.anyOf=g},Okt=(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},Rkt=(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)},Fkt=(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)}},Mkt=(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"}]},jkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Lkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.default=JSON.parse(JSON.stringify(d.defaultValue))},Bkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,n.io==="input"&&(s._prefault=JSON.parse(JSON.stringify(d.defaultValue)))},$kt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType;let g;try{g=d.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},qkt=(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},zkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType,s.readOnly=!0},Vkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},ELe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Ukt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},oht={string:ckt,number:lkt,boolean:ukt,bigint:fkt,symbol:dkt,null:pkt,undefined:_kt,void:mkt,never:hkt,any:gkt,unknown:ykt,date:vkt,enum:bkt,literal:Skt,nan:xkt,template_literal:wkt,file:Tkt,success:Ckt,custom:Ekt,function:kkt,transform:Akt,map:Dkt,set:Pkt,array:Ikt,object:Nkt,union:CLe,intersection:Okt,tuple:Rkt,record:Fkt,nullable:Mkt,nonoptional:jkt,default:Lkt,prefault:Bkt,catch:$kt,pipe:qkt,readonly:zkt,promise:Vkt,optional:ELe,lazy:Ukt};function TSr(t,n){if("_idmap"in t){const c=t,d=zme({...n,processors:oht}),m={};for(const k of c._idmap.entries()){const[A,F]=k;F_(F,d)}const g={},S={registry:c,uri:n?.uri,defs:m};d.external=S;for(const k of c._idmap.entries()){const[A,F]=k;Vme(d,F),g[A]=Ume(d,F)}if(Object.keys(m).length>0){const k=d.target==="draft-2020-12"?"$defs":"definitions";g.__shared={[k]:m}}return{schemas:g}}const s=zme({...n,processors:oht});return F_(t,s),Vme(s,t),Ume(s,t)}const Jkt=ui("ZodISODateTime",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function Wkt(t){return N2r(Jkt,t)}const Hkt=ui("ZodISODate",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function Gkt(t){return O2r(Hkt,t)}const Kkt=ui("ZodISOTime",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function Xkt(t){return R2r(Kkt,t)}const Ykt=ui("ZodISODuration",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function Zkt(t){return F2r(Ykt,t)}const $gn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Hkt,ZodISODateTime:Jkt,ZodISODuration:Ykt,ZodISOTime:Kkt,date:Gkt,datetime:Wkt,duration:Zkt,time:Xkt},Symbol.toStringTag,{value:"Module"})),Qkt=(t,n)=>{LCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>x1r(t,s)},flatten:{value:s=>S1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,Lme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,Lme,2)}},isEmpty:{get(){return t.issues.length===0}}})},qgn=ui("ZodError",Qkt),Fw=ui("ZodError",Qkt,{Parent:Error}),CSr=hye(Fw),ESr=gye(Fw),kSr=yye(Fw),ASr=vye(Fw),DSr=BCt(Fw),PSr=$Ct(Fw),ISr=qCt(Fw),NSr=zCt(Fw),OSr=VCt(Fw),RSr=UCt(Fw),FSr=JCt(Fw),MSr=WCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:Jme(t,"input"),output:Jme(t,"output")}}),t.toJSONSchema=xSr(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)=>CSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>kSr(t,s,c),t.parseAsync=async(s,c)=>ESr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>ASr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>DSr(t,s,c),t.decode=(s,c)=>PSr(t,s,c),t.encodeAsync=async(s,c)=>ISr(t,s,c),t.decodeAsync=async(s,c)=>NSr(t,s,c),t.safeEncode=(s,c)=>OSr(t,s,c),t.safeDecode=(s,c)=>RSr(t,s,c),t.safeEncodeAsync=async(s,c)=>FSr(t,s,c),t.safeDecodeAsync=async(s,c)=>MSr(t,s,c),t.refine=(s,c)=>t.check($At(s,c)),t.superRefine=s=>t.check(qAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Gme(t),t.exactOptional=()=>xAt(t),t.nullable=()=>Kme(t),t.nullish=()=>Gme(Kme(t)),t.nonoptional=s=>AAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>XLe(t,s),t.transform=s=>Xme(t,YLe(s)),t.default=s=>CAt(t,s),t.prefault=s=>kAt(t,s),t.catch=s=>IAt(t,s),t.pipe=s=>Xme(t,s),t.readonly=()=>RAt(t),t.describe=s=>{const c=t.clone();return sD.add(c,{description:s}),c},Object.defineProperty(t,"description",{get(){return sD.get(t)?.description},configurable:!0}),t.meta=(...s)=>{if(s.length===0)return sD.get(t);const c=t.clone();return sD.add(c,s[0]),c},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=s=>s(t),t)),kLe=ui("_ZodString",(t,n)=>{Sye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ckt(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(tSr(...c)),t.includes=(...c)=>t.check(iSr(...c)),t.startsWith=(...c)=>t.check(oSr(...c)),t.endsWith=(...c)=>t.check(sSr(...c)),t.min=(...c)=>t.check(qme(...c)),t.max=(...c)=>t.check(skt(...c)),t.length=(...c)=>t.check(akt(...c)),t.nonempty=(...c)=>t.check(qme(1,...c)),t.lowercase=c=>t.check(rSr(c)),t.uppercase=c=>t.check(nSr(c)),t.trim=()=>t.check(lSr()),t.normalize=(...c)=>t.check(cSr(...c)),t.toLowerCase=()=>t.check(uSr()),t.toUpperCase=()=>t.check(fSr()),t.slugify=()=>t.check(dSr())}),ALe=ui("ZodString",(t,n)=>{Sye.init(t,n),kLe.init(t,n),t.email=s=>t.check(BEt(DLe,s)),t.url=s=>t.check(wLe(wye,s)),t.jwt=s=>t.check(ikt(ULe,s)),t.emoji=s=>t.check(UEt(PLe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.uuid=s=>t.check($Et(aD,s)),t.uuidv4=s=>t.check(qEt(aD,s)),t.uuidv6=s=>t.check(zEt(aD,s)),t.uuidv7=s=>t.check(VEt(aD,s)),t.nanoid=s=>t.check(JEt(ILe,s)),t.guid=s=>t.check(tRe(Wme,s)),t.cuid=s=>t.check(WEt(NLe,s)),t.cuid2=s=>t.check(HEt(OLe,s)),t.ulid=s=>t.check(GEt(RLe,s)),t.base64=s=>t.check(tkt(qLe,s)),t.base64url=s=>t.check(rkt(zLe,s)),t.xid=s=>t.check(KEt(FLe,s)),t.ksuid=s=>t.check(XEt(MLe,s)),t.ipv4=s=>t.check(YEt(jLe,s)),t.ipv6=s=>t.check(ZEt(LLe,s)),t.cidrv4=s=>t.check(QEt(BLe,s)),t.cidrv6=s=>t.check(ekt($Le,s)),t.e164=s=>t.check(nkt(VLe,s)),t.datetime=s=>t.check(Wkt(s)),t.date=s=>t.check(Gkt(s)),t.time=s=>t.check(Xkt(s)),t.duration=s=>t.check(Zkt(s))});function bo(t){return P2r(ALe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),kLe.init(t,n)}),DLe=ui("ZodEmail",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function jSr(t){return BEt(DLe,t)}const Wme=ui("ZodGUID",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function LSr(t){return tRe(Wme,t)}const aD=ui("ZodUUID",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function BSr(t){return $Et(aD,t)}function $Sr(t){return qEt(aD,t)}function qSr(t){return zEt(aD,t)}function zSr(t){return VEt(aD,t)}const wye=ui("ZodURL",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function VSr(t){return wLe(wye,t)}function USr(t){return wLe(wye,{protocol:/^https?$/,hostname:fEt,...Jo(t)})}const PLe=ui("ZodEmoji",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function JSr(t){return UEt(PLe,t)}const ILe=ui("ZodNanoID",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function WSr(t){return JEt(ILe,t)}const NLe=ui("ZodCUID",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return WEt(NLe,t)}const OLe=ui("ZodCUID2",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function GSr(t){return HEt(OLe,t)}const RLe=ui("ZodULID",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function KSr(t){return GEt(RLe,t)}const FLe=ui("ZodXID",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function XSr(t){return KEt(FLe,t)}const MLe=ui("ZodKSUID",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function YSr(t){return XEt(MLe,t)}const jLe=ui("ZodIPv4",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function ZSr(t){return YEt(jLe,t)}const eAt=ui("ZodMAC",(t,n)=>{Rbr.init(t,n),j_.init(t,n)});function QSr(t){return I2r(eAt,t)}const LLe=ui("ZodIPv6",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function exr(t){return ZEt(LLe,t)}const BLe=ui("ZodCIDRv4",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function txr(t){return QEt(BLe,t)}const $Le=ui("ZodCIDRv6",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function rxr(t){return ekt($Le,t)}const qLe=ui("ZodBase64",(t,n)=>{jbr.init(t,n),j_.init(t,n)});function nxr(t){return tkt(qLe,t)}const zLe=ui("ZodBase64URL",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function ixr(t){return rkt(zLe,t)}const VLe=ui("ZodE164",(t,n)=>{$br.init(t,n),j_.init(t,n)});function oxr(t){return nkt(VLe,t)}const ULe=ui("ZodJWT",(t,n)=>{zbr.init(t,n),j_.init(t,n)});function sxr(t){return ikt(ULe,t)}const hee=ui("ZodCustomStringFormat",(t,n)=>{Vbr.init(t,n),j_.init(t,n)});function axr(t,n,s={}){return xye(hee,t,n,s)}function cxr(t){return xye(hee,"hostname",uEt,t)}function lxr(t){return xye(hee,"hex",EEt,t)}function uxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=X1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return xye(hee,c,d,n)}const JLe=ui("ZodNumber",(t,n)=>{IEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>lkt(t,c,d),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.int=c=>t.check(nRe(c)),t.safe=c=>t.check(nRe(c)),t.positive=c=>t.check(eQ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(QZ(0,c)),t.nonpositive=c=>t.check(YI(0,c)),t.multipleOf=(c,d)=>t.check(rRe(c,d)),t.step=(c,d)=>t.check(rRe(c,d)),t.finite=()=>t;const s=t._zod.bag;t.minValue=Math.max(s.minimum??Number.NEGATIVE_INFINITY,s.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(s.maximum??Number.POSITIVE_INFINITY,s.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(s.format??"").includes("int")||Number.isSafeInteger(s.multipleOf??.5),t.isFinite=!0,t.format=s.format??null});function fu(t){return M2r(JLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{Ubr.init(t,n),JLe.init(t,n)});function nRe(t){return j2r(j$,t)}function fxr(t){return L2r(j$,t)}function dxr(t){return B2r(j$,t)}function pxr(t){return $2r(j$,t)}function _xr(t){return q2r(j$,t)}const WLe=ui("ZodBoolean",(t,n)=>{NEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ukt(t,s,c)});function my(t){return z2r(WLe,t)}const HLe=ui("ZodBigInt",(t,n)=>{OEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>fkt(t,c),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.gt=(c,d)=>t.check(eQ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(QZ(c,d)),t.lte=(c,d)=>t.check(YI(c,d)),t.max=(c,d)=>t.check(YI(c,d)),t.positive=c=>t.check(eQ(BigInt(0),c)),t.negative=c=>t.check(QZ(BigInt(0),c)),t.nonpositive=c=>t.check(YI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(rRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function mxr(t){return V2r(HLe,t)}const GLe=ui("ZodBigIntFormat",(t,n)=>{Jbr.init(t,n),HLe.init(t,n)});function hxr(t){return U2r(GLe,t)}function gxr(t){return J2r(GLe,t)}const tAt=ui("ZodSymbol",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s)});function yxr(t){return W2r(tAt,t)}const rAt=ui("ZodUndefined",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt(t,s)});function vxr(t){return H2r(rAt,t)}const nAt=ui("ZodNull",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt(t,s,c)});function iAt(t){return G2r(nAt,t)}const oAt=ui("ZodAny",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt()});function bxr(){return K2r(oAt)}const sAt=ui("ZodUnknown",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt()});function t$(){return X2r(sAt)}const aAt=ui("ZodNever",(t,n)=>{Ybr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>hkt(t,s,c)});function KLe(t){return Y2r(aAt,t)}const cAt=ui("ZodVoid",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>mkt(t,s)});function Sxr(t){return Z2r(cAt,t)}const lAt=ui("ZodDate",(t,n)=>{Qbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>vkt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(YI(c,d));const s=t._zod.bag;t.minDate=s.minimum?new Date(s.minimum):null,t.maxDate=s.maximum?new Date(s.maximum):null});function xxr(t){return Q2r(lAt,t)}const uAt=ui("ZodArray",(t,n)=>{e2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check(qme(s,c)),t.nonempty=s=>t.check(qme(1,s)),t.max=(s,c)=>t.check(skt(s,c)),t.length=(s,c)=>t.check(akt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return pSr(uAt,t,n)}function wxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const Tye=ui("ZodObject",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d),Gu(t,"shape",()=>n.shape),t.keyof=()=>ed(Object.keys(t._zod.def.shape)),t.catchall=s=>t.clone({...t._zod.def,catchall:s}),t.passthrough=()=>t.clone({...t._zod.def,catchall:t$()}),t.loose=()=>t.clone({...t._zod.def,catchall:t$()}),t.strict=()=>t.clone({...t._zod.def,catchall:KLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>PCt(t,s),t.safeExtend=s=>ICt(t,s),t.merge=s=>NCt(t,s),t.pick=s=>ACt(t,s),t.omit=s=>DCt(t,s),t.partial=(...s)=>OCt(ZLe,t,s[0]),t.required=(...s)=>RCt(QLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new Tye(s)}function Txr(t,n){return new Tye({type:"object",shape:t,catchall:KLe(),...Jo(n)})}function Cxr(t,n){return new Tye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Cye=ui("ZodUnion",(t,n)=>{xLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function AR(t,n){return new Cye({type:"union",options:t,...Jo(n)})}const fAt=ui("ZodXor",(t,n)=>{Cye.init(t,n),n2r.init(t,n),t._zod.processJSONSchema=(s,c,d)=>CLe(t,s,c,d),t.options=n.options});function Exr(t,n){return new fAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const dAt=ui("ZodDiscriminatedUnion",(t,n)=>{Cye.init(t,n),i2r.init(t,n)});function pAt(t,n,s){return new dAt({type:"union",options:n,discriminator:t,...Jo(s)})}const _At=ui("ZodIntersection",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s,c,d)});function XLe(t,n){return new _At({type:"intersection",left:t,right:n})}const mAt=ui("ZodTuple",(t,n)=>{MEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Hme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new mAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Eye=ui("ZodRecord",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,...Jo(s)})}function kxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Eye({type:"record",keyType:c,valueType:n,...Jo(s)})}function Axr(t,n,s){return new Eye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const hAt=ui("ZodMap",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(TLe(...s)),t.size=(...s)=>t.check(okt(...s))});function Dxr(t,n,s){return new hAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const gAt=ui("ZodSet",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s),t.min=(...s)=>t.check(tQ(...s)),t.nonempty=s=>t.check(tQ(1,s)),t.max=(...s)=>t.check(TLe(...s)),t.size=(...s)=>t.check(okt(...s))});function Pxr(t,n){return new gAt({type:"set",valueType:t,...Jo(n)})}const rQ=ui("ZodEnum",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>bkt(t,c,d),t.enum=n.entries,t.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));t.extract=(c,d)=>{const m={};for(const g of c)if(s.has(g))m[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})},t.exclude=(c,d)=>{const m={...n.entries};for(const g of c)if(s.has(g))delete m[g];else throw new Error(`Key ${g} not found in enum`);return new rQ({...n,checks:[],...Jo(d),entries:m})}});function ed(t,n){const s=Array.isArray(t)?Object.fromEntries(t.map(c=>[c,c])):t;return new rQ({type:"enum",entries:s,...Jo(n)})}function Ixr(t,n){return new rQ({type:"enum",entries:t,...Jo(n)})}const yAt=ui("ZodLiteral",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s,c),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Pg(t,n){return new yAt({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const vAt=ui("ZodFile",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s,c),t.min=(s,c)=>t.check(tQ(s,c)),t.max=(s,c)=>t.check(TLe(s,c)),t.mime=(s,c)=>t.check(aSr(Array.isArray(s)?s:[s],c))});function Nxr(t){return _Sr(vAt,t)}const bAt=ui("ZodTransform",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new gLe(t.constructor.name);s.addIssue=m=>{if(typeof m=="string")s.issues.push(QB(m,s.value,n));else{const g=m;g.fatal&&(g.continue=!1),g.code??(g.code="custom"),g.input??(g.input=s.value),g.inst??(g.inst=t),s.issues.push(QB(g))}};const d=n.transform(s.value,s);return d instanceof Promise?d.then(m=>(s.value=m,s)):(s.value=d,s)}});function YLe(t){return new bAt({type:"transform",transform:t})}const ZLe=ui("ZodOptional",(t,n)=>{jEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new ZLe({type:"optional",innerType:t})}const SAt=ui("ZodExactOptional",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ELe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function xAt(t){return new SAt({type:"optional",innerType:t})}const wAt=ui("ZodNullable",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Kme(t){return new wAt({type:"nullable",innerType:t})}function Oxr(t){return Gme(Kme(t))}const TAt=ui("ZodDefault",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function CAt(t,n){return new TAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const EAt=ui("ZodPrefault",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Bkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function kAt(t,n){return new EAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():pye(n)}})}const QLe=ui("ZodNonOptional",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function AAt(t,n){return new QLe({type:"nonoptional",innerType:t,...Jo(n)})}const DAt=ui("ZodSuccess",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Rxr(t){return new DAt({type:"success",innerType:t})}const PAt=ui("ZodCatch",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function IAt(t,n){return new PAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const NAt=ui("ZodNaN",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(t,s)});function Fxr(t){return eSr(NAt,t)}const eBe=ui("ZodPipe",(t,n)=>{S2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>qkt(t,s,c,d),t.in=n.in,t.out=n.out});function Xme(t,n){return new eBe({type:"pipe",in:t,out:n})}const tBe=ui("ZodCodec",(t,n)=>{eBe.init(t,n),LEt.init(t,n)});function Mxr(t,n,s){return new tBe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const OAt=ui("ZodReadonly",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>zkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function RAt(t){return new OAt({type:"readonly",innerType:t})}const FAt=ui("ZodTemplateLiteral",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s,c)});function jxr(t,n){return new FAt({type:"template_literal",parts:t,...Jo(n)})}const MAt=ui("ZodLazy",(t,n)=>{E2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ukt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function jAt(t){return new MAt({type:"lazy",getter:t})}const LAt=ui("ZodPromise",(t,n)=>{C2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Vkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Lxr(t){return new LAt({type:"promise",innerType:t})}const BAt=ui("ZodFunction",(t,n)=>{T2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s)});function sht(t){return new BAt({type:"function",input:Array.isArray(t?.input)?Hme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const kye=ui("ZodCustom",(t,n)=>{k2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s)});function Bxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function ZI(t,n){return mSr(kye,t??(()=>!0),n)}function $At(t,n={}){return hSr(kye,t,n)}function qAt(t){return gSr(t)}const $xr=vSr,qxr=bSr;function zxr(t,n={}){const s=new kye({type:"custom",check:"custom",fn:c=>c instanceof t,abort:!0,...Jo(n)});return s._zod.bag.Class=t,s._zod.check=c=>{c.value instanceof t||c.issues.push({code:"invalid_type",expected:t.name,input:c.value,inst:s,path:[...s._zod.def.path??[]]})},s}const Vxr=(...t)=>SSr({Codec:tBe,Boolean:WLe,String:ALe},...t);function Uxr(t){const n=jAt(()=>AR([bo(t),fu(),my(),iAt(),Gd(n),wD(bo(),n)]));return n}function zAt(t,n){return Xme(YLe(t),n)}const zgn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:oAt,ZodArray:uAt,ZodBase64:qLe,ZodBase64URL:zLe,ZodBigInt:HLe,ZodBigIntFormat:GLe,ZodBoolean:WLe,ZodCIDRv4:BLe,ZodCIDRv6:$Le,ZodCUID:NLe,ZodCUID2:OLe,ZodCatch:PAt,ZodCodec:tBe,ZodCustom:kye,ZodCustomStringFormat:hee,ZodDate:lAt,ZodDefault:TAt,ZodDiscriminatedUnion:dAt,ZodE164:VLe,ZodEmail:DLe,ZodEmoji:PLe,ZodEnum:rQ,ZodExactOptional:SAt,ZodFile:vAt,ZodFunction:BAt,ZodGUID:Wme,ZodIPv4:jLe,ZodIPv6:LLe,ZodIntersection:_At,ZodJWT:ULe,ZodKSUID:MLe,ZodLazy:MAt,ZodLiteral:yAt,ZodMAC:eAt,ZodMap:hAt,ZodNaN:NAt,ZodNanoID:ILe,ZodNever:aAt,ZodNonOptional:QLe,ZodNull:nAt,ZodNullable:wAt,ZodNumber:JLe,ZodNumberFormat:j$,ZodObject:Tye,ZodOptional:ZLe,ZodPipe:eBe,ZodPrefault:EAt,ZodPromise:LAt,ZodReadonly:OAt,ZodRecord:Eye,ZodSet:gAt,ZodString:ALe,ZodStringFormat:j_,ZodSuccess:DAt,ZodSymbol:tAt,ZodTemplateLiteral:FAt,ZodTransform:bAt,ZodTuple:mAt,ZodType:Lu,ZodULID:RLe,ZodURL:wye,ZodUUID:aD,ZodUndefined:rAt,ZodUnion:Cye,ZodUnknown:sAt,ZodVoid:cAt,ZodXID:FLe,ZodXor:fAt,_ZodString:kLe,_default:CAt,_function:sht,any:bxr,array:Gd,base64:nxr,base64url:ixr,bigint:mxr,boolean:my,catch:IAt,check:Bxr,cidrv4:txr,cidrv6:rxr,codec:Mxr,cuid:HSr,cuid2:GSr,custom:ZI,date:xxr,describe:$xr,discriminatedUnion:pAt,e164:oxr,email:jSr,emoji:JSr,enum:ed,exactOptional:xAt,file:Nxr,float32:fxr,float64:dxr,function:sht,guid:LSr,hash:uxr,hex:lxr,hostname:cxr,httpUrl:USr,instanceof:zxr,int:nRe,int32:pxr,int64:hxr,intersection:XLe,ipv4:ZSr,ipv6:exr,json:Uxr,jwt:sxr,keyof:wxr,ksuid:YSr,lazy:jAt,literal:Pg,looseObject:Cxr,looseRecord:Axr,mac:QSr,map:Dxr,meta:qxr,nan:Fxr,nanoid:WSr,nativeEnum:Ixr,never:KLe,nonoptional:AAt,null:iAt,nullable:Kme,nullish:Oxr,number:fu,object:Pa,optional:Gme,partialRecord:kxr,pipe:Xme,prefault:kAt,preprocess:zAt,promise:Lxr,readonly:RAt,record:wD,refine:$At,set:Pxr,strictObject:Txr,string:bo,stringFormat:axr,stringbool:Vxr,success:Rxr,superRefine:qAt,symbol:yxr,templateLiteral:jxr,transform:YLe,tuple:Hme,uint32:_xr,uint64:gxr,ulid:KSr,undefined:vxr,union:AR,unknown:t$,url:VSr,uuid:BSr,uuidv4:$Sr,uuidv6:qSr,uuidv7:zSr,void:Sxr,xid:XSr,xor:Exr},Symbol.toStringTag,{value:"Module"})),aht={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Vgn(t){$S({customError:t})}function Ugn(){return $S().customError}var cht;cht||(cht={});const lht=ed(["mock","live"]),Jxr=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()}),Wxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Hxr=Pa({overageEnabled:my(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:my(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Gxr=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()}),Kxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Xxr=Pa({name:bo().min(1),verified:my(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Yxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Xxr).max(50)}),Zxr=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 Qxr=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()}))}),ewr=pAt("authenticated",[Pa({authenticated:Pg(!1),backend:lht}),Pa({authenticated:Pg(!0),backend:lht,user:Kxr,organizations:Gd(Yxr).max(100).optional(),plan:Jxr,credits:Wxr,spendPolicy:Hxr,alerts:Gd(Gxr).max(100).optional(),entitlements:Pa({generation:my(),dailyJobs:fu().int().positive().optional()})})]),twr=ed(["auto","mock","managed","byok"]),VAt=ed(["fal","tripo","worldlabs","openrouter"]),rwr=Pa({enabled:my(),provider:Pg("openrouter"),model:bo().trim().min(1).max(256)}),nwr=ed(["environment","system","session","none"]),iwr=Pa({provider:VAt,label:bo().min(1),environmentVariable:bo().min(1),configured:my(),source:nwr,editable:my(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),owr=Pa({provider:VAt,ok:Pg(!0),testedAt:bo().datetime()});function swr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const Aye=XLe(ewr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Pg(!0),managed:my(),byok:my(),byokProviders:Gd(bo().min(1))}),preferredRoute:twr,providerCredentials:Gd(iwr),codingInference:rwr}));function awr(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(awr(n,s))}function EN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return EN(t,n),await t.json()}const uht="volter.collaboration.participant.v1",cwr="volter.collaboration.remote-share.v1",iRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function lwr(){if(iRe?.participantId)return iRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(uht);if(n)return n;globalThis.localStorage?.setItem(uht,t)}catch{}return t}const UAt=lwr(),L$=(()=>{try{return globalThis.localStorage?.getItem(cwr)==="1"}catch{return!1}})(),uwr=iRe?.displayName||"Local editor",fwr=Symbol.for("volter.collaboration.revision"),oRe=globalThis[fwr]??={value:0};function JAt(t){Number.isInteger(t)&&t>=oRe.value&&(oRe.value=t)}function Dw(){return{participantId:UAt,expectedRevision:oRe.value}}const dwr={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$=dwr,WAt=0,sRe=null;const aRe=new Set;function lR(t,n=null){if(!(sRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,sRe=n,WAt++;for(const s of aRe)s()}}async function HAt(t,n){of(t,n);const s=await t.json();if(!t.ok)throw new Error(typeof s.error=="string"?String(s.error):`Account request failed (${t.status}).`);return Aye.parse(s)}async function NC(t,n,s){const c=await fetch(t,{method:n,...s===void 0?{}:{headers:{"Content-Type":"application/json"},body:JSON.stringify(s)}}),d=await HAt(c,`${n} ${t} failed`);return lR(d),d}function rBe(){return r$}function nBe(){return swr(r$)}function lN(){return WAt}function Tpe(){return sRe}function Dye(t){return aRe.add(t),()=>aRe.delete(t)}async function fht(){try{const t=await HAt(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 pwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),_wr=t=>NC("/__editor/account/twin-session","POST",{email:t}),mwr=()=>NC("/__editor/account/session","DELETE"),hwr=t=>NC("/__editor/account/spend-policy","PUT",t),gwr=()=>NC("/__editor/account/alerts/read","POST"),ywr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),vwr=t=>NC("/__editor/account/coding-inference","PUT",t);async function bwr(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 Swr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),xwr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function wwr(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 owr.parse(s)}const dht=t=>NC("/__editor/account/plan","PUT",{action:t});async function GAt(t,n){const s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","Idempotency-Key":crypto.randomUUID()},body:JSON.stringify(n)});of(s,"Checkout failed");const c=await s.json();if(!s.ok||!c.account)throw new Error(typeof c.error=="string"?c.error:"Checkout failed.");return lR(Aye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const Twr=t=>GAt("/__editor/account/checkout",{plan:t}),Cwr=t=>GAt("/__editor/account/credits",{packId:t});async function Ewr(){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 Zxr.array().parse(n.entries??[])}async function kwr(){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 Qxr.parse(n)}async function Awr(){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 Dwr(){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 Pwr(){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 Iwr(t){const n=await fetch(`/__editor/account/browser-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}async function Nwr(){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 Owr(t){const n=await fetch(`/__editor/account/device-authorization/${encodeURIComponent(t)}`);of(n,"Sign-in failed");const s=await n.json();if(n.status===202)return!1;if(!n.ok||s.pending!==!1)throw new Error(typeof s.error=="string"?s.error:"Sign-in failed.");return lR(Aye.parse(s.account)),!0}function Rwr(){if(L$)return()=>{};const t=new URLSearchParams(window.location.search).get("checkout_id");t?NC("/__editor/account/checkout/confirm","POST",{checkoutId:t}).then(()=>{const s=new URL(window.location.href);s.searchParams.delete("checkout"),s.searchParams.delete("checkout_id"),window.history.replaceState(null,"",`${s.pathname}${s.search}${s.hash}`)}).catch(s=>lR(r$,s instanceof Error?s.message:String(s))):fht().catch(()=>{});const n=window.setInterval(()=>void fht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function KAt(t){return t?YAt(t)?null:t:null}function Fwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function XAt(t){return t&&YAt(t)?t:null}function YAt(t){return t.keyedBy==="display"}const Jgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:XAt,nodeKeyedPhysics:KAt,physicsOwnerOf:Fwr},Symbol.toStringTag,{value:"Module"})),Mwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},iBe=Object.keys(Mwr);function jwr(){const t={};for(const n of iBe)t[n]=0;return t}const Lwr={provenance:!0,selection:!0,transforms:!0,inspector:!0,assetSubject:!0,related:!0,instances:!0,structure:!0,persistence:!0,pickable:!0,rects:!0,boxEdit:!0,text:!0,colorSample:!0,stories:!0,truth:!0,spatialHandles:!0,assetDrop:!0,subscribe:!0},oBe=Object.keys(Lwr);function Bwr(t){const n={};for(const s of oBe)n[s]=t[s]!==void 0;return n}const Wgn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:oBe,WRITE_ANCHOR_KINDS:iBe,emptyWriteAnchorKindCounts:jwr,measureAuthoringProviders:Bwr},Symbol.toStringTag,{value:"Module"})),$wr=["claim","shape","operation","effect","round-trip"],Yme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function ZAt(t,n){return Yme[t]>=Yme[n]}function nQ(t){const{seam:n,subject:s,epoch:c,required:d}=t;if(t.notApplicable!==void 0)return{seam:n,subject:s,epoch:c,required:d,state:"not-applicable",receipt:null,detail:t.notApplicable};let m=null;for(const g of t.receipts)g.seam!==n||g.subject!==s||g.epoch!==c||(!m||Yme[g.stage]>=Yme[m.stage])&&(m=g);return m?m.outcome==="fail"?{seam:n,subject:s,epoch:c,required:d,state:"failed",receipt:m,detail:m.detail}:m.outcome==="absent"?{seam:n,subject:s,epoch:c,required:d,state:"absent",receipt:m,detail:m.detail}: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 QAt{#e=[];record(n){if(!n.seam||!n.subject||!n.epoch||!n.detail.trim())throw new Error("seam evidence requires non-empty seam, subject, epoch, and detail");this.#e.push(n)}receipts(n){return this.#e.filter(s=>(n?.subject===void 0||s.subject===n.subject)&&(n?.epoch===void 0||s.epoch===n.epoch))}verdict(n){return nQ({...n,receipts:this.#e})}clearSubject(n){for(let s=this.#e.length-1;s>=0;s-=1)this.#e[s]?.subject===n&&this.#e.splice(s,1)}clear(){this.#e.length=0}}function Ip(){return t=>t}function qwr(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(qwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Zme(t){const n=nQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=nQ({seam:`${t.seam}.${s}`,subject:t.subject,epoch:t.epoch,required:c.required,receipts:t.receipts});if(!(c.optional&&d.state==="absent")){if(d.state==="failed"||d.state==="absent")return{...n,state:"failed",receipt:d.receipt,detail:`${t.seam} is malformed: ${d.detail}`};if(d.state!=="verified")return{...n,state:"unverified",detail:`${t.seam} has the required shape, but ${d.seam} is unverified: ${d.detail}`}}}return n}const Hgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:$wr,SeamEvidenceLedger:QAt,defineSeamShape:Ip,gradeSeamCarrier:Zme,gradeSeamEvidence:nQ,inspectSeamShape:vB,seamStageAtLeast:ZAt},Symbol.toStringTag,{value:"Module"})),XY=Ip()({capabilities:{optional:!1,kind:"value",required:"shape"},provenance:{optional:!0,kind:"value",required:"shape"},hierarchy:{optional:!1,kind:"value",required:"operation"},selection:{optional:!0,kind:"value",required:"effect"},transforms:{optional:!0,kind:"value",required:"effect"},inspector:{optional:!0,kind:"value",required:"effect"},assetSubject:{optional:!0,kind:"value",required:"operation"},related:{optional:!0,kind:"value",required:"operation"},instances:{optional:!0,kind:"value",required:"effect"},structure:{optional:!0,kind:"value",required:"round-trip"},persistence:{optional:!0,kind:"value",required:"round-trip"},pickable:{optional:!0,kind:"value",required:"operation"},rects:{optional:!0,kind:"value",required:"operation"},boxEdit:{optional:!0,kind:"value",required:"effect"},text:{optional:!0,kind:"value",required:"effect"},colorSample:{optional:!0,kind:"value",required:"operation"},stories:{optional:!0,kind:"value",required:"effect"},truth:{optional:!0,kind:"value",required:"operation"},spatialHandles:{optional:!0,kind:"value",required:"effect"},assetDrop:{optional:!0,kind:"value",required:"round-trip"},subscribe:{optional:!0,kind:"function",required:"effect"}}),cRe=Ip()({roots:{optional:!1,kind:"function",required:"operation"},node:{optional:!1,kind:"function",required:"operation"},crossSurfaceStructureSignature:{optional:!0,kind:"function",required:"operation"},object3D:{optional:!0,kind:"function",required:"operation"},idForObject3D:{optional:!0,kind:"function",required:"operation"}}),e3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),t3t=Ip()({dimensions:{optional:!0,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},editability:{optional:!0,kind:"function",required:"operation"},beginEdit:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},endEdit:{optional:!1,kind:"function",required:"effect"},remove:{optional:!0,kind:"function",required:"round-trip"},sourceCommit:{optional:!0,kind:"value",required:"round-trip"}}),r3t=Ip()({properties:{optional:!1,kind:"function",required:"operation"},get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},preview:{optional:!0,kind:"function",required:"effect"},editability:{optional:!0,kind:"function",required:"operation"},remove:{optional:!0,kind:"function",required:"round-trip"}}),n3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),i3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),o3t=Ip()({describe:{optional:!1,kind:"function",required:"operation"},openComponent:{optional:!0,kind:"function",required:"effect"},revert:{optional:!1,kind:"function",required:"round-trip"},applyToComponent:{optional:!1,kind:"function",required:"round-trip"}}),s3t=Ip()({create:{optional:!1,kind:"function",required:"round-trip"},remove:{optional:!1,kind:"function",required:"round-trip"},duplicate:{optional:!1,kind:"function",required:"round-trip"},duplicateMany:{optional:!0,kind:"function",required:"round-trip"},reparent:{optional:!1,kind:"function",required:"round-trip"},reorder:{optional:!0,kind:"function",required:"round-trip"},creatableKinds:{optional:!0,kind:"function",required:"operation"},wrap:{optional:!0,kind:"function",required:"round-trip"},unwrap:{optional:!0,kind:"function",required:"round-trip"},group:{optional:!0,kind:"function",required:"round-trip"},ungroup:{optional:!0,kind:"function",required:"round-trip"},canUngroup:{optional:!0,kind:"function",required:"operation"},removeMany:{optional:!0,kind:"function",required:"round-trip"},copy:{optional:!0,kind:"function",required:"effect"},canCopy:{optional:!0,kind:"function",required:"operation"},cut:{optional:!0,kind:"function",required:"round-trip"},paste:{optional:!0,kind:"function",required:"round-trip"},canPaste:{optional:!0,kind:"function",required:"operation"}}),a3t=Ip()({isDirty:{optional:!1,kind:"function",required:"operation"},lastError:{optional:!0,kind:"function",required:"operation"},save:{optional:!1,kind:"function",required:"round-trip"},destination:{optional:!1,kind:"value",required:"shape"},applyExternal:{optional:!0,kind:"function",required:"effect"}}),c3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),l3t=Ip()({storiesFor:{optional:!1,kind:"function",required:"operation"},active:{optional:!1,kind:"function",required:"operation"},apply:{optional:!1,kind:"function",required:"effect"},isolate:{optional:!0,kind:"function",required:"effect"},title:{optional:!0,kind:"value",required:"shape"},unavailable:{optional:!0,kind:"function",required:"operation"}}),u3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),f3t=Ip()({rect:{optional:!1,kind:"function",required:"operation"},contextRects:{optional:!0,kind:"function",required:"operation"},emptyContainers:{optional:!0,kind:"function",required:"operation"},frame:{optional:!0,kind:"function",required:"operation"}}),d3t=Ip()({begin:{optional:!1,kind:"function",required:"effect"},apply:{optional:!1,kind:"function",required:"effect"},end:{optional:!1,kind:"function",required:"effect"},gizmoOrigin:{optional:!0,kind:"function",required:"operation"},referencePoint:{optional:!0,kind:"function",required:"operation"}}),p3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),_3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),m3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),h3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),lRe={selection:e3t,transforms:t3t,inspector:r3t,assetSubject:n3t,related:i3t,instances:o3t,structure:s3t,persistence:a3t,pickable:c3t,rects:f3t,boxEdit:d3t,text:p3t,colorSample:_3t,stories:l3t,truth:m3t,spatialHandles:h3t,assetDrop:u3t},Ggn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:u3t,ASSET_SUBJECT_PROVIDER_SHAPE:n3t,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:lRe,BOX_EDIT_PROVIDER_SHAPE:d3t,COLOR_SAMPLE_PROVIDER_SHAPE:_3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:o3t,HIERARCHY_PROVIDER_SHAPE:cRe,INSPECTOR_PROVIDER_SHAPE:r3t,PERSISTENCE_PROVIDER_SHAPE:a3t,PICK_PROVIDER_SHAPE:c3t,RECT_PROVIDER_SHAPE:f3t,RELATED_SUBJECTS_PROVIDER_SHAPE:i3t,SELECTION_PROVIDER_SHAPE:e3t,SPATIAL_HANDLES_PROVIDER_SHAPE:h3t,STORIES_PROVIDER_SHAPE:l3t,STRUCTURE_PROVIDER_SHAPE:s3t,TEXT_PROVIDER_SHAPE:p3t,TRANSFORM_PROVIDER_SHAPE:t3t,TRUTH_PROVIDER_SHAPE:m3t},Symbol.toStringTag,{value:"Module"})),uRe=Ip()({physics:{optional:!0,kind:"value",required:"effect"},networking:{optional:!0,kind:"value",required:"operation"},navigation:{optional:!0,kind:"value",required:"operation"},audio:{optional:!0,kind:"value",required:"effect"},camera:{optional:!0,kind:"value",required:"effect"},debug:{optional:!0,kind:"value",required:"operation"},renderDebug:{optional:!0,kind:"value",required:"effect"}}),g3t=Ip()({keyedBy:{optional:!0,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"},debugDraw:{optional:!0,kind:"function",required:"operation"},setDebugDrawEnabled:{optional:!0,kind:"function",required:"effect"},contactPoints:{optional:!0,kind:"function",required:"operation"},colliders:{optional:!0,kind:"function",required:"operation"},previewCollider:{optional:!0,kind:"function",required:"effect"},joints:{optional:!0,kind:"function",required:"operation"},previewJointAnchor:{optional:!0,kind:"function",required:"effect"}}),y3t=Ip()({keyedBy:{optional:!1,kind:"value",required:"shape"},ownerOf:{optional:!1,kind:"function",required:"operation"},freeze:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"effect"},unfreeze:{optional:!1,kind:"function",required:"effect"}}),v3t=Ip()({peers:{optional:!1,kind:"function",required:"operation"},networkId:{optional:!1,kind:"function",required:"operation"},authority:{optional:!1,kind:"function",required:"operation"},editable:{optional:!1,kind:"function",required:"operation"},getConnectionState:{optional:!0,kind:"function",required:"operation"},getRoomInfo:{optional:!0,kind:"function",required:"operation"},getReplicationStats:{optional:!0,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"},getStateSnapshot:{optional:!0,kind:"function",required:"operation"},messageEvents:{optional:!0,kind:"function",required:"operation"},getRates:{optional:!0,kind:"function",required:"operation"},getConditioning:{optional:!0,kind:"function",required:"operation"},setConditioning:{optional:!0,kind:"function",required:"effect"},getServerConfig:{optional:!0,kind:"function",required:"operation"},getPlayerIdentity:{optional:!0,kind:"function",required:"operation"},setPlayerIdentity:{optional:!0,kind:"function",required:"effect"},getTrafficByType:{optional:!0,kind:"function",required:"operation"},sendMessage:{optional:!0,kind:"function",required:"effect"},getConditioningLimits:{optional:!0,kind:"function",required:"operation"},ping:{optional:!0,kind:"function",required:"effect"},inspectServer:{optional:!0,kind:"function",required:"operation"},disconnectClient:{optional:!0,kind:"function",required:"effect"},editServerState:{optional:!0,kind:"function",required:"effect"},deleteServerState:{optional:!0,kind:"function",required:"effect"},sendToClient:{optional:!0,kind:"function",required:"effect"},broadcast:{optional:!0,kind:"function",required:"effect"},disposeRoom:{optional:!0,kind:"function",required:"effect"},stateFieldType:{optional:!0,kind:"function",required:"operation"},clearTraffic:{optional:!0,kind:"function",required:"effect"},getTrafficByEntity:{optional:!0,kind:"function",required:"operation"},isRecording:{optional:!0,kind:"function",required:"operation"},setRecording:{optional:!0,kind:"function",required:"effect"}}),b3t=Ip()({hasNavMesh:{optional:!1,kind:"function",required:"operation"},findPath:{optional:!1,kind:"function",required:"effect"},debugMesh:{optional:!1,kind:"function",required:"operation"},bake:{optional:!0,kind:"function",required:"effect"},exportData:{optional:!0,kind:"function",required:"operation"},clear:{optional:!0,kind:"function",required:"effect"},crowdAgents:{optional:!0,kind:"function",required:"operation"}}),S3t=Ip()({resume:{optional:!0,kind:"function",required:"effect"},setMuted:{optional:!1,kind:"function",required:"effect"},isMuted:{optional:!1,kind:"function",required:"operation"},graphSnapshot:{optional:!0,kind:"function",required:"operation"},transportState:{optional:!0,kind:"function",required:"operation"},acquireMeters:{optional:!0,kind:"function",required:"effect"},acquireRecordingStream:{optional:!0,kind:"function",required:"effect"},renderOffline:{optional:!0,kind:"function",required:"operation"},audioEvents:{optional:!0,kind:"function",required:"operation"}}),x3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),w3t=Ip()({providers:{optional:!1,kind:"function",required:"operation"},state:{optional:!1,kind:"function",required:"operation"},stateAll:{optional:!1,kind:"function",required:"operation"},commands:{optional:!1,kind:"function",required:"operation"},invoke:{optional:!1,kind:"function",required:"effect"},events:{optional:!1,kind:"function",required:"operation"}}),T3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),C3t={networking:v3t,navigation:b3t,audio:S3t,camera:x3t,debug:w3t,renderDebug:T3t},Kgn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:S3t,CAMERA_ADAPTER_SHAPE:x3t,DEBUG_ADAPTER_SHAPE:w3t,NAVIGATION_ADAPTER_SHAPE:b3t,NETWORKING_ADAPTER_SHAPE:v3t,PHYSICS_2D_ADAPTER_SHAPE:y3t,PHYSICS_ADAPTER_SHAPE:g3t,RENDER_DEBUG_ADAPTER_SHAPE:T3t,SYSTEM_ADAPTERS_SHAPE:uRe,SYSTEM_PROVIDER_SHAPES:C3t},Symbol.toStringTag,{value:"Module"})),sBe=new QAt;function zwr(t){sBe.record(t)}const pht=new WeakMap;let Vwr=1;function E3t(t){const n=pht.get(t);if(n)return n;const s=`system-${Vwr++}`;return pht.set(t,s),s}function Uwr(t){const n=t.epoch??E3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?XAt(t.adapter)?y3t:g3t:C3t[t.slot],m=[...vB({prefix:"system",value:c,shape:uRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...sBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Zme({seam:s,subject:t.subject,epoch:n,required:uRe[t.slot].required,receipts:m,shape:d})}let qS={},iQ=null,aBe=null;const Qme=new Set,ehe=new Set,fRe=new Set;let cBe=0;function dRe(){for(const t of fRe)t()}function the(t){if(t!==Iye())for(const n of Qme)n()}function rhe(t,n){const s=Oye();if(!(t===Nye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){cBe++;for(const c of ehe)c()}}const LS=new Map;let x_e=null,k3t=0;const pRe=new Set,lBe="";function A3t(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=Uwr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function QI(){return x_e!==null&&LS.has(x_e)?x_e:LS.keys().next().value??null}function nhe(){k3t++;for(const t of pRe)t()}function Jwr(t){const n=QI();if(x_e=t,n!==QI()){nhe(),cBe++;for(const s of Qme)s();for(const s of ehe)s()}}function Xgn(){return QI()}function Wwr(t){return pRe.add(t),()=>pRe.delete(t)}function Ygn(){return k3t}function Pye(){const t=QI();return(t===null?void 0:LS.get(t))??qS}function Hwr(t,n=lBe){const s=QI(),c=Iye(),d=Nye(),m=Oye();if(t){A3t(t,n),LS.set(n,t),qS=t,the(c),rhe(d,m),dRe(),s!==QI()&&nhe();return}LS.delete(n),qS=LS.values().next().value??{},the(c),rhe(d,m),dRe(),s!==QI()&&nhe()}function Gwr(){for(const t of[...LS.keys()])Hwr(null,t);Jwr(null)}function Zgn(t,n=lBe){const s=Iye(),c=Nye(),d=Oye(),m=LS.get(n);A3t(t,n),LS.set(n,t),qS===m&&(qS=t),the(s),rhe(c,d),dRe(),QI()===n&&nhe()}function Qgn(){return qS}function Kwr(t){return fRe.add(t),()=>fRe.delete(t)}function Xwr(){return[...LS.keys()]}function _ht(t){const n=t.filter(d=>d!==lBe),s=t.length>n.length,c=n.map(d=>`"${d}"`);return s&&c.push("the unnamed default (address it with no id at all)"),c.join(", ")}class mht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Ywr(t){const n=Xwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new mht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${_ht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new mht(`${n.length} instances are live (${_ht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function eyn(){return KAt(qS.physics)}function Zwr(){return qS.camera??null}function Iye(){return qS.networking??aBe??null}function Qwr(){return Pye().networking??aBe??null}function eTr(t){return Qme.add(t),()=>Qme.delete(t)}function tyn(t){const n=Iye();aBe=t,the(n)}function ryn(){return qS.debug??null}function nyn(t){const n=Nye(),s=Oye();iQ=t,rhe(n,s)}function Nye(){return qS.audio??iQ}function tTr(){return Pye().audio??iQ}function rTr(t){return ehe.add(t),()=>ehe.delete(t)}function nTr(){return cBe}function Oye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&iQ&&t.add(iQ),[...t]}function iTr(){return qS.renderDebug??null}function iyn(){return Pye().renderDebug??null}let D3t=null;const _Re=new Set;function oyn(t){D3t=t;for(const n of _Re)n()}function Rye(){return D3t?.()??null}function Fye(t){_Re.add(t);const n=Wwr(t);return()=>{_Re.delete(t),n()}}function uN(){const t=Rye();return t?`play:${t.instanceId}`:"stopped"}function Mye(t,n){let s=!1,c=[];const d=()=>{s=!1;const g=c;c=[];for(let S=g.length-1;S>=0;S--)g[S]()};return{ensure(g){if(!s){s=!0;try{g(S=>c.push(S))}catch(S){throw d(),S}}},reset:d}}let wO=[],oTr=0,P3t=0;const mRe=new Set;function hht(){P3t++;for(const t of mRe)t()}function I3t(t){return mRe.add(t),()=>{mRe.delete(t)}}function ght(){return P3t}function Z4(t){if(wO.some(s=>s.contribution.id===t.id))throw new Error(`registerWorkspaceStatus: id "${t.id}" is already registered — status ids key status-bar slots, so they must be unique; unregister the previous contribution first.`);const n={contribution:t,seq:oTr++};return wO=[...wO,n],hht(),()=>{wO.includes(n)&&(wO=wO.filter(s=>s!==n),hht())}}function hRe(t){const n=s=>[...wO].filter(c=>(c.contribution.align??"left")===s).sort((c,d)=>(c.contribution.order??0)-(d.contribution.order??0)||c.seq-d.seq).map(c=>c.contribution);return t?n(t):[...n("left"),...n("right")]}let w_e=null,N3t=0;const gRe=new Set;function yht(){N3t++;for(const t of gRe)t()}function O3t(t){return gRe.add(t),()=>gRe.delete(t)}function yRe(){return N3t}function uBe(){return w_e}function sTr(t){const n=Symbol(t.documentId);return w_e={...t,token:n},yht(),()=>{w_e?.token===n&&(w_e=null,yht())}}function aTr(){Ye.useSyncExternalStore(O3t,yRe);const t=uBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const cTr=Mye();function lTr(){cTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:aTr}))})}lTr();let bB=null,R3t=0;const vRe=new Set;function vht(){R3t+=1;for(const t of vRe)t()}function uTr(t){return vRe.add(t),()=>{vRe.delete(t)}}function bht(){return R3t}function fTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},vht(),()=>{bB?.token===s&&(bB=null,vht())}}function bRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const fN=new Map,SRe=new Map;function F3t(){typeof window>"u"||window.parent===window||fN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...fN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&F3t()});let Nc=null,fBe=null;function dBe(){if(typeof window>"u")return!1;const t=window.__VOLTER_VIEWPORT_TIMINGS__;if(t===!0||t==="1")return!0;try{return new URLSearchParams(window.location.search).get("volterTimings")==="1"}catch{return!1}}function M3t(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 dTr(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 pTr(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=dTr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=_Tr({workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,componentIndexBusyMs:t.componentIndexBusyMs,componentIndexWaitMs:t.componentIndexWaitMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs}).reduce((pe,ue)=>pe+ue.ms,0),se=Math.max(0,n-t.startedAtMs);return{visibilityState:t.visibilityState,startedAtMs:t.startedAtMs,reactActiveAtMs:t.reactActiveAtMs,boardBuildStartedAtMs:t.boardBuildStartedAtMs,boardReadyAtMs:t.boardReadyAtMs,constructStartedAtMs:t.constructStartedAtMs,viewportReadyAtMs:t.viewportReadyAtMs,rafResumeAtMs:t.rafResumeAtMs,firstRenderStartedAtMs:t.firstRenderStartedAtMs,firstFrameAtMs:n,activationKind:J,workspaceSyncMs:s,revealScheduleMs:m,componentIndexMs:t.componentIndexMs,candidateCollectMs:t.candidateCollectMs,storyMountTotalMs:t.storyMountTotalMs,storyMountBusyMs:D.busyMs,storyMountWaitMs:D.waitMs,boundsMs:t.boundsMs,layoutMs:t.layoutMs,assembleMs:t.assembleMs,reactCommitMs:g,webglContextMs:t.webglContextMs,rendererMs:t.rendererMs,adapterSetupMs:t.adapterSetupMs,iblBakeMs:t.iblBakeMs,dressingMs:t.dressingMs,editorViewportMs:t.editorViewportMs,framingMs:t.framingMs,resizeBindMs:t.resizeBindMs,viewportBindMs:t.viewportBindMs,rafWaitMs:A,firstRenderMs:t.firstRenderMs,firstPaintMs:F,unattributedMs:Math.max(0,se-G),accountedMs:G,candidateCount:t.candidateCount,exhibitCount:t.exhibitCount,skippedCount:t.skippedCount,modulesAlreadyLoaded:t.modulesAlreadyLoaded,stories:t.stories,storyDiscovery:fBe}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Cpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function Sht(t,n,s,c){const d=Math.max(0,n);let m=Math.max(0,s),g=Math.max(0,c);if(m+g>d){const S=d/(m+g);m*=S,g*=S}else m+g<d&&(g+=d-m-g);return{name:t,ms:d,busyMs:m,waitMs:g,kind:"mixed"}}function _Tr(t){return[Cpe("workspace-sync",t.workspaceSyncMs),Cpe("reveal-schedule",t.revealScheduleMs),Sht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),Sht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Cpe("react-commit (board→viewport)",t.reactCommitMs),Yb("webgl-context",t.webglContextMs),Yb("renderer",t.rendererMs),Yb("adapter-setup",t.adapterSetupMs),Yb("ibl-bake (three PMREM)",t.iblBakeMs),Yb("dressing",t.dressingMs),Yb("editor-viewport",t.editorViewportMs),Yb("framing",t.framingMs),Yb("resize-bind",t.resizeBindMs),Yb("viewport-bind",t.viewportBindMs),Cpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function syn(t,n=Date.now()){const s=(SRe.get(t)??0)+1;SRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:pTr(d,n)};return Nc=null,fN.set(t,m),wht(),xht(),m}return fN.set(t,c),wht(),xht(),c}let xRe=new Set;const wRe=new Set;function xht(){F3t();for(const t of wRe)t()}function mTr(t){return wRe.add(t),()=>wRe.delete(t)}function wht(){fN.size!==0&&j3t()}function j3t(){const t=xRe;xRe=new Set;for(const n of t)n()}let Tht=!1;function hTr(){Tht||typeof document>"u"||(Tht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&j3t()}))}function jye(){return fN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(hTr(),new Promise(t=>xRe.add(t)))}function gTr(){return[...fN.values()]}function yTr(t){dBe()&&(Nc=M3t(t,Date.now(),{}))}function ayn(t,n={}){if(!dBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=M3t(t,s,n),Nc.boardBuildStartedAtMs=s}function cyn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function lyn(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 uyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function fyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function dyn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function pyn(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 _yn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function myn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function hyn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function gyn(t){Nc&&Nc.stories.push(t)}function yyn(){return Nc?.documentId??null}function vTr(t){dBe()&&(fBe=t)}function bTr(){fN.clear(),SRe.clear(),Nc=null,fBe=null}const STr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,i2=null,oQ=null,uR=null;function Cht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let L3t=0;const TRe=new Set,A5e=new Set,pBe=new Map,XO=new Map;function wC(){L3t++;for(const t of TRe)t()}function o2(t){return TRe.add(t),()=>{TRe.delete(t)}}function K1(){return L3t}function l0(){return hp}function Pp(){return i2}function CRe(){return oQ}function xTr(t,n){X0(t)&&oQ!==n&&(oQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===i2)??null}function sQ(t){if(t===i2)return;t&&yTr(t);const n=hp.find(c=>c.descriptor.id===i2);i2=t,oQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function wTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&kN(zk),zk=t)}function ND(t,n={}){const s=uR===t.id,c=s||n.activate!==!1,d=hp.find(g=>g.descriptor.id===t.id);if(wTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||i2===null)&&sQ(t.id),s&&Cht(t.id),wC(),t.id;let m=!1;return(d.descriptor.Toolbar!==t.Toolbar||d.descriptor.Shelf!==t.Shelf||d.descriptor.Content!==t.Content)&&(hp=hp.map(g=>{if(g!==d)return g;const{Toolbar:S,Shelf:k,...A}=g.descriptor;return{...g,descriptor:{...A,Content:t.Content,...t.Toolbar?{Toolbar:t.Toolbar}:{},...t.Shelf?{Shelf:t.Shelf}:{}}}}),m=!0),c&&i2!==t.id&&(sQ(t.id),m=!0),m&&wC(),s&&Cht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(sQ(t),wC()),!0):!1}function B3t(){uR=null}function TTr(t){if(X0(t)){uR=null;return}uR=t}function kN(t,n={}){if(A5e.has(t))return!1;const s=hp.findIndex(d=>d.descriptor.id===t);if(s<0)return!1;const c=hp[s];if(c.dirty&&!n.discardDirty)return!1;A5e.add(t);try{if(i2===t){const m=s>0?hp[s-1]:hp[s+1]??null;sQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),pBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{A5e.delete(t)}}function $3t(){if(hp.length===0&&i2===null)return;const t=hp;sQ(null),hp=[],oQ=null,zk=null,pBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function CTr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function vyn(t){XO.has(t)&&wC()}async function ETr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=pBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function kTr(){return i2?ETr(i2):Promise.resolve(null)}function byn(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 q3t(t,n){const s=hp.find(c=>c.descriptor.id===t);!s||s.title===n||(hp=hp.map(c=>c.descriptor.id===t?{...c,title:n}:c),wC())}function _Be(t){const n=hp.find(c=>c.descriptor.id===t),s=XO.get(t)??n?.descriptor.selection;if(!s)return null;try{return s()}catch{return null}}function Lye(){return i2?_Be(i2):null}const ATr={adapter:null,nodeId:null};function DTr(t){return JSON.stringify({id:t.id,title:t.title,hint:t.hint,kindLabel:t.kindLabel,note:t.note,sections:t.sections.map(n=>({id:n.id,title:n.title,order:n.order,description:n.description,defaultOpen:n.defaultOpen,testId:n.testId,keepMounted:n.keepMounted,railGroup:n.railGroup,bodyKind:n.body.kind})),quickActions:t.quickActions?.map(n=>({id:n.id,title:n.title,label:n.label,placement:n.placement,pressed:n.pressed,disabled:n.disabled}))})}function mBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return sTr({documentId:t,title:c,type:s,...m?{status:m}:{}})},[n,t,m,c,s]);const S=Ye.useRef(g);S.current=g,Ye.useEffect(()=>{if(n)return CTr(t,()=>S.current?.()??ATr)},[n,t]);const k={id:t,title:c,kindLabel:s,...m?{note:{text:m,testId:"asset-editor-status"}}:{},sections:d??[]},A=Ye.useRef(k);A.current=k;const F=DTr(k);return Ye.useEffect(()=>{if(n)return fTr(t,()=>A.current)},[n,t,F]),null}function PTr({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,fill:g=!1,selection:S,children:k}){return q.jsxs("section",{className:"volter-asset-editor","data-testid":`asset-editor:${s}`,"aria-label":`${c} Asset Editor`,children:[q.jsx(mBe,{documentId:t,active:n,type:s,title:c,sections:d,status:m,selection:S}),q.jsx("main",{className:`volter-asset-editor__viewport${g?" volter-asset-editor__viewport--fill":""}`,children:k})]})}const ITr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:PTr,AssetEditorSubject:mBe},Symbol.toStringTag,{value:"Module"})),T_e=new Map,ERe=new Set;function Eht(){for(const t of ERe)t()}function Syn(t){const n=Object.entries(t);for(const[s,c]of n)T_e.set(s,c);return Eht(),()=>{for(const[s,c]of n)T_e.get(s)===c&&T_e.delete(s);Eht()}}function NTr(t){return T_e.get(t)??null}function OTr(t){return ERe.add(t),()=>{ERe.delete(t)}}function RTr(t){return q.jsx(mBe,{...t})}const kht=new Map;function FTr(t){const n=kht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>NTr(t),[]),m=Ye.useSyncExternalStore(OTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,kht.set(t,s),s}const hBe=new Proxy(Object.freeze({AssetDocument:RTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):FTr(n)}}),Aht=Object.freeze({id:"classic",shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.6)",medium:"0 4px 12px rgba(0,0,0,0.5)",large:"0 8px 32px rgba(0,0,0,0.6)"}}),Ym=Object.freeze({id:"glass",color:{surface:{shell:"#12161f",panel:"rgba(255,255,255,0.06)",chrome:"rgba(255,255,255,0.10)",raised:"rgba(255,255,255,0.16)",inset:"rgba(10,14,22,0.38)",overlay:"rgba(255,255,255,0.08)"},boundary:{default:"rgba(255,255,255,0.22)",strong:"rgba(255,255,255,0.38)"},neutralOverlay:{hover:"color-mix(in srgb, currentColor 10%, transparent)",active:"color-mix(in srgb, currentColor 16%, transparent)"},scrim:"rgba(8,12,20,0.35)"},shape:{small:"4px",medium:"8px",large:"14px",full:"9999px"},elevation:{small:"0 4px 14px -6px rgba(0,0,0,0.45)",medium:"0 8px 24px -10px rgba(0,0,0,0.5)",large:"0 20px 46px -16px rgba(0,0,0,0.55), 0 4px 14px -6px rgba(0,0,0,0.35)"},treatment:{backdropBlurPx:1,backdropSaturation:1.15,edgeSpecular:.7,specularAngleDeg:120,refractionBezelPx:56,refractionThickness:1.25,textShadowOpacity:.72,contentFrostBlurPx:24,ambientLiftOpacity:.07,adaptiveContent:!0,brightTextShadowOpacity:0,brightFrostBg:"rgba(255,255,255,0.3)"},reducedTransparency:{surface:{shell:"#12161f",panel:"#33373e",chrome:"#3d4047",raised:"#4b4e55",inset:"#23272f",overlay:"#383b43"},scrim:"rgba(8,12,20,0.5)"}}),MTr=["classic","glass"],jTr=Object.freeze([{id:"classic",title:"Classic",description:"Opaque editor surfaces with conventional bars and panels."},{id:"glass",title:"Glass",description:"Adaptive clear material with refraction, frost, and floating chrome."}]),SB=new Map;let ihe=null;const ohe=new Set;function LTr(){return ihe??=[...jTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],ihe}function BTr(t){return ohe.add(t),()=>ohe.delete(t)}function $Tr(t){if(Bye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),ihe=null;for(const n of ohe)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),ihe=null;for(const n of ohe)n()}}}function Bye(t){return typeof t=="string"&&(MTr.includes(t)||SB.has(t))}function qTr(t,n,s=!1){if(n!=="glass"){const d=SB.get(n);return{id:d?`${t.id}--${d.id}`:t.id,color:t.color,typography:t.typography,shape:d?.shape??Aht.shape,elevation:d?.elevation??Aht.elevation,...d?.density?{density:d.density}:{},...d?.stage?{stage:d.stage}:{},appearance:{material:"classic",transparency:"standard"}}}return{id:`${t.id}--${s?"glass-reduced":"glass"}`,color:{surface:s?Ym.reducedTransparency.surface:Ym.color.surface,boundary:Ym.color.boundary,content:t.color.content,accent:t.color.accent,semantic:t.color.semantic,neutralOverlay:Ym.color.neutralOverlay,scrim:s?Ym.reducedTransparency.scrim:Ym.color.scrim},typography:t.typography,shape:Ym.shape,elevation:Ym.elevation,appearance:{material:"glass",transparency:s?"reduced":"standard"},...s?{}:{treatment:Ym.treatment}}}const zTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},VTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Epe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function z3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Epe(t),alignItems:n?zTr[n]:void 0,justifyContent:s?VTr[s]:void 0,padding:Epe(c),paddingInline:Epe(d),paddingBlock:Epe(m),...g}}function gee(t,n){return n?`${t} ${n}`:t}function V3t({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-stack",t),style:z3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:gee("volter-inline",t),style:z3t(n)})}function xyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:gee("volter-spacer",t)})}function UTr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:gee("volter-divider",n)})}function JTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:gee("volter-actions",n),gap:2,align:"center",children:t})}function U3t(t,n){return n?`${t} ${n}`:t}const _p=Ye.forwardRef(function({as:n="span",variant:s="body",tone:c="primary",truncate:d=!1,selectable:m=!1,className:g,...S},k){const A=n;return q.jsx(A,{...S,ref:k,"data-variant":s,"data-tone":c,"data-truncate":d||void 0,"data-selectable":m||void 0,className:U3t("volter-text",g)})});function wyn({className:t,...n}){return q.jsx("kbd",{...n,className:U3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function kRe({labelledBy:t,onDismiss:n,size:s="default",variant:c="default",className:d,...m}){const[g]=Ye.useState(()=>typeof document>"u"?null:document.querySelector(".volter-editor-theme")),S=Ye.useId(),k=q.jsx("div",{"data-volter-portal-content":g?S:void 0,className:"volter-dialog-scrim","data-variant":c,onPointerDown:A=>{A.target===A.currentTarget&&n?.()},children:q.jsx("div",{...m,role:"dialog","aria-modal":"true","aria-labelledby":t,"data-size":s,"data-variant":c,className:B$("volter-dialog",d)})});return g?q.jsxs(q.Fragment,{children:[q.jsx("span",{"data-volter-portal":S,style:{display:"none"}}),r2.createPortal(k,g)]}):k}function ARe({titleId:t,title:n,description:s}){return q.jsxs(V3t,{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 J3t({className:t,...n}){return q.jsx(V3t,{...n,className:B$("volter-dialog-body",t)})}function DRe({children:t,className:n,...s}){return q.jsx(JTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function Tyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function Cyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function Eyn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function kyn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function gBe(t,n){return n?`${t} ${n}`:t}function WTr({className:t,...n}){return q.jsx("div",{...n,className:gBe("volter-field-group",t)})}function C_e({label:t,htmlFor:n,hint:s,compact:c=!1,className:d,children:m,...g}){return q.jsxs("div",{...g,"data-compact":c||void 0,className:gBe("volter-field-row",d),children:[q.jsx("label",{htmlFor:n,className:"volter-field-label",children:t}),q.jsx("div",{className:"volter-field-control",children:m}),s&&q.jsx("div",{className:"volter-field-hint",children:s})]})}function Ayn({className:t,...n}){return q.jsx("label",{...n,className:gBe("volter-field-label",t)})}const Dyn=Ye.forwardRef(function({selected:n=!1,accent:s="bar",className:c,type:d="button",...m},g){return q.jsx("button",{...m,ref:g,type:d,"data-selected":n||void 0,"data-accent":s,className:c?`volter-list-button ${c}`:"volter-list-button"})});function HTr({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 GTr({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 Pyn({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 Iyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Nyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function Dht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function Oyn({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 W3t(t,n){return n?`${t} ${n}`:t}const Ryn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:W3t("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()}})}),Fyn=Ye.forwardRef(function({selected:n=!1,dirty:s=!1,badge:c,className:d,type:m="button",tabIndex:g,children:S,...k},A){return q.jsxs("button",{...k,ref:A,type:m,role:"tab",tabIndex:g??(n?0:-1),"aria-selected":n,"data-selected":n||void 0,className:W3t("volter-tab",d),children:[s&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-tab-dirty",title:"Unsaved","aria-hidden":"true"}),q.jsx("span",{className:"volter-sr-only",children:"Unsaved"})]}),q.jsx("span",{className:"volter-tab-label",children:S}),c!==void 0&&q.jsx("span",{className:"volter-tab-badge",children:c})]})});function yee(t,n){return n?`${t} ${n}`:t}const n$=Ye.forwardRef(function({label:n,compact:s=!1,selectionMode:c="independent",className:d,...m},g){return q.jsx("div",{...m,ref:g,role:"toolbar","aria-label":n,"data-compact":s||void 0,"data-selection-mode":c,className:yee("volter-toolbar",d)})});function Pht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-toolbar-group",t)})}function Iht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:yee("volter-toolbar-divider",t.className)})}function Myn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:yee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function jyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:yee("volter-split-button",t)})}function H3t(t,n){return n?`${t} ${n}`:t}const Lyn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:H3t("volter-tree",s)})}),Byn=Ye.forwardRef(function({level:n=1,selected:s=!1,expanded:c,muted:d=!1,dragging:m=!1,leading:g,actions:S,className:k,children:A,style:F,...D},J){return q.jsxs("div",{...D,ref:J,role:"treeitem",tabIndex:D.tabIndex??-1,"aria-level":n,"aria-selected":s,...c===void 0?{}:{"aria-expanded":c},"data-selected":s||void 0,"data-muted":d||void 0,"data-dragging":m||void 0,className:H3t("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 G3t(t,n=8){const s=window.innerWidth,c=window.innerHeight,d=Math.max(n,s-t.width-n),m=Math.max(n,c-t.height-n);return{left:Math.min(Math.max(t.left,n),d),top:Math.min(Math.max(t.top,n),m)}}function $ye(t,n){return n?`${t} ${n}`:t}function PRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function KTr(t){PRe(t)[0]?.focus()}function Nht(t,n){if(!t)return!1;let s=n;for(;s;){if(t.contains(s))return!0;const d=((s instanceof Element?s:s.parentElement)?.closest("[data-volter-portal-content]")??null)?.getAttribute("data-volter-portal-content");if(!d)return!1;s=document.querySelector(`[data-volter-portal="${CSS.escape(d)}"]`)}return!1}const dN=Ye.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ye.useRef(null);return Ye.useImperativeHandle(k,()=>A.current),Ye.useEffect(()=>{c&&PRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!Nht(A.current,J)&&!Nht(d?.current??null,J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:$ye("volter-menu",n),onKeyDown:F=>{if(g?.(F),F.defaultPrevented)return;if(F.key==="Escape"){F.preventDefault(),m?.("escape");return}if(!["ArrowDown","ArrowUp","Home","End"].includes(F.key))return;F.preventDefault();const D=PRe(F.currentTarget);if(D.length===0)return;const J=D.indexOf(document.activeElement);F.key==="Home"?D[0]?.focus():F.key==="End"?D.at(-1)?.focus():F.key==="ArrowDown"?D[(J+1+D.length)%D.length]?.focus():D[(J-1+D.length)%D.length]?.focus()}})}),Jc=Ye.forwardRef(function({className:n,type:s="button",role:c="menuitem",onClick:d,onSelect:m,...g},S){return q.jsx("button",{...g,ref:S,type:s,role:c,className:$ye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:$ye("volter-menu-separator",t.className)})}const yBe=Ye.forwardRef(function({className:n,type:s="button",...c},d){return q.jsx("button",{...c,ref:d,type:s,"aria-haspopup":c["aria-haspopup"]??"menu",className:$ye("volter-menu-trigger",n)})});function she({children:t}){const n=Ye.useRef(null),[s,c]=Ye.useState(null),d=Ye.useId();return Ye.useLayoutEffect(()=>{c(n.current?.closest(".volter-editor-theme")??null)},[]),q.jsxs(q.Fragment,{children:[q.jsx("span",{ref:n,"data-volter-portal":d,style:{display:"none"}}),s?r2.createPortal(q.jsx("div",{"data-volter-portal-content":d,style:{display:"contents"},children:t}),s):null]})}function vBe({anchorRef:t,align:n="end",side:s="bottom",autoFocusFirst:c=!0,gap:d=4,clamp:m=!1,onDismiss:g,style:S,children:k,...A}){const[F,D]=Ye.useState(null),[J,$]=Ye.useState(null),G=Ye.useRef(null),se=Ye.useRef(!0),pe=Ye.useRef(!1),ue=Ye.useCallback(()=>{const De=t.current;if(!De||!F)return;const Pe=De.getBoundingClientRect(),be=F.getBoundingClientRect(),we=s==="right"||s==="left"?{left:s==="right"?Pe.right+d:Pe.left-d-be.width,top:Pe.top}:{left:n==="end"?Pe.right-be.width:Pe.left,top:s==="top"?Pe.top-d-be.height:Pe.bottom+d},qe=m?G3t({...we,width:be.width,height:be.height}):we,bt=G.current;bt?.left===qe.left&&bt.top===qe.top||(G.current=qe,$(qe))},[n,t,m,d,F,s]);Ye.useLayoutEffect(()=>{const De=t.current;if(!De||!F)return;ue();let Pe=0;const be=()=>{ue(),Pe=requestAnimationFrame(be)};Pe=requestAnimationFrame(be),window.addEventListener("resize",ue),document.addEventListener("scroll",ue,!0);const X=typeof ResizeObserver>"u"?null:new ResizeObserver(ue);return X?.observe(De),X?.observe(F),()=>{const we=se.current&&F.contains(document.activeElement);window.removeEventListener("resize",ue),document.removeEventListener("scroll",ue,!0),cancelAnimationFrame(Pe),X?.disconnect(),we&&queueMicrotask(()=>t.current?.focus())}},[t,F,ue]),Ye.useLayoutEffect(()=>{!c||pe.current||!F||!J||(pe.current=!0,KTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(she,{children:q.jsx(dN,{...A,ref:D,dismissBoundaryRef:t,onDismiss:Ce,style:{...S,position:"fixed",left:J?.left??0,top:J?.top??0,visibility:J?S?.visibility:"hidden"},children:k})})}function $yn({label:t,children:n,gap:s=0,...c}){const[d,m]=Ye.useState(!1),g=Ye.useRef(null),S=Ye.useId(),k=F=>F instanceof Element&&(g.current?.contains(F)===!0||F.closest(`[data-volter-submenu="${S}"]`)!==null),A=F=>{k(F.relatedTarget)||m(!1)};return q.jsxs(q.Fragment,{children:[q.jsxs(Jc,{...c,ref:g,"aria-haspopup":"menu","aria-expanded":d,onPointerEnter:()=>m(!0),onPointerLeave:A,onClick:F=>{F.preventDefault(),m(!0)},onKeyDown:F=>{(F.key==="ArrowRight"||F.key==="Enter"||F.key===" ")&&(F.preventDefault(),m(!0)),F.key==="ArrowLeft"&&m(!1)},children:[q.jsx("span",{style:{flex:1},children:t}),q.jsx("span",{"aria-hidden":"true",style:{paddingInlineStart:"var(--volter-space-4)"},children:"▸"})]}),d&&q.jsx(vBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ye.forwardRef(function({variant:n="secondary",size:s="default",shape:c="default",className:d,type:m="button",...g},S){return q.jsx("button",{...g,ref:S,type:m,className:d?`volter-btn ${d}`:"volter-btn","data-variant":n,"data-size":s,"data-shape":c})}),pm=Ye.forwardRef(function({variant:n="ghost",visibleLabel:s,children:c,...d},m){return q.jsxs(Ms,{...d,ref:m,variant:n,"data-icon":"true","data-label-placement":s===void 0?void 0:"below",children:[c,s!==void 0&&q.jsx("span",{className:"volter-icon-button-label",children:s})]})}),PI={base:0,overlayLow:50,sticky:100,dropdown:1e3,toast:9999,modal:1e4},IG={0:"#1a1a1a",1:"#242424",2:"#2c2c2c",3:"#333333",inset:"#1e1e1e"},Oht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},XTr="#579EFF",YTr="rgba(87,158,255,0.15)",D5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},bBe="#d8dee9",SBe="rgba(216,222,233,0.18)",K3t="#FF6B6B",X3t="#e0a030",Y3t="#4caf50",Z3t="rgba(76,175,80,0.15)",Q3t="rgba(255,107,107,0.15)",e4t="rgba(224,160,48,0.12)",t4t="rgba(255,107,107,0.06)",r4t="rgba(0,0,0,0.5)",n4t="#ff79c6",i4t="rgba(255,121,198,0.08)",o4t="#22b8d6",qye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',zye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',P5e={sm:"0 2px 8px rgba(0,0,0,0.6)",md:"0 4px 12px rgba(0,0,0,0.5)",lg:"0 8px 32px rgba(0,0,0,0.6)"},xBe={0:"var(--volter-surface-shell)",1:"var(--volter-surface-panel)",2:"var(--volter-surface-chrome)",3:"var(--volter-surface-raised)",inset:"var(--volter-surface-inset)"},ahe={1:"var(--volter-boundary-default)",2:"var(--volter-boundary-strong)"},Zf={1:"var(--volter-content-primary)",2:"var(--volter-content-muted)",3:"var(--volter-content-dim)"},qyn="var(--volter-accent)",zyn="var(--volter-accent-muted)",Vyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},E_e="var(--volter-danger)",Uyn="var(--volter-warn)",Jyn="var(--volter-success)",Wyn="var(--volter-success-muted)",Hyn="var(--volter-danger-muted)",Gyn="var(--volter-warn-muted)",Kyn="var(--volter-danger-faint)",Xyn="var(--volter-scrim)",Yyn="var(--volter-dynamic)",Zyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},s4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},wBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...ZTr,...t.density?.control},font:{...eCr,...t.density?.font},icon:{...QTr,...t.density?.icon},chrome:{...s4t,...t.density?.chrome}}}const ZTr={compact:20,default:24,comfortable:28},I5e={resting:1,active:2},QTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},eCr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},k_e={regular:400,semibold:600,bold:700},kpe={tight:1,snug:1.2,normal:1.4,relaxed:1.5},NG={duration:{fast:140,base:180,slow:300},easing:{standard:"cubic-bezier(0.32, 0.72, 0.28, 1)",out:"ease-out"}},Qyn="var(--volter-font-sans)",e0n="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},aQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},t0n={sm:"var(--volter-shadow-sm)",md:"var(--volter-shadow-md)",lg:"var(--volter-shadow-lg)"},YY={xs:"var(--volter-font-xs)",sm:"var(--volter-font-sm)",base:"var(--volter-font-base)",md:"var(--volter-font-md)",lg:"var(--volter-font-lg)",xl:"var(--volter-font-xl)","2xl":"var(--volter-font-2xl)",heading:"var(--volter-font-heading)"},G0={1:"var(--volter-space-1)",2:"var(--volter-space-2)",3:"var(--volter-space-3)",4:"var(--volter-space-4)",5:"var(--volter-space-5)",6:"var(--volter-space-6)",8:"var(--volter-space-8)",10:"var(--volter-space-10)",12:"var(--volter-space-12)"},Rht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},r0n={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)"}},n0n="var(--volter-focus-ring)",tCr=["outliner","properties"],Vye=Object.keys({object:!0,modifier:!0,material:!0,tool:!0,operator:!0,data:!0,scene:!0,collection:!0,select:!0}),i$={id:"graphite-dark",color:{surface:{shell:IG[0],panel:IG[1],chrome:IG[2],raised:IG[3],inset:IG.inset,overlay:"rgba(36,36,36,0.94)"},boundary:{default:Oht[1],strong:Oht[2]},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:XTr,muted:YTr},semantic:{danger:K3t,dangerMuted:Q3t,dangerFaint:t4t,warning:X3t,warningMuted:e4t,success:Y3t,successMuted:Z3t,dynamic:n4t,dynamicMuted:i4t,instance:o4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:r4t},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:P5e.sm,medium:P5e.md,large:P5e.lg}},rCr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:D5e[1],muted:D5e[2],dim:D5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:bBe,muted:SBe}}},nCr={id:"midnight-high-contrast",color:{surface:{shell:"#0b0f14",panel:"#111821",chrome:"#17212c",raised:"#223040",inset:"#080c11",overlay:"rgba(17,24,33,0.96)"},boundary:{default:"#34465a",strong:"#71869d"},content:{primary:"#f2f5f8",muted:"#bdc8d5",dim:"#8493a5",onAccent:"#071019",onBright:{primary:"#071019",muted:"rgba(7,16,25,0.82)",dim:"rgba(7,16,25,0.72)"}},accent:{default:"#65d1ff",muted:"rgba(101,209,255,0.18)"},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.18)",dangerFaint:"rgba(255,123,134,0.08)",warning:"#f3c969",warningMuted:"rgba(243,201,105,0.16)",success:"#62d394",successMuted:"rgba(98,211,148,0.18)",dynamic:"#e889ff",dynamicMuted:"rgba(232,137,255,0.12)",instance:"#a49bff"},neutralOverlay:{hover:"rgba(255,255,255,0.10)",active:"rgba(255,255,255,0.18)"},scrim:"rgba(0,0,0,0.68)"},typography:{sans:qye,mono:zye},shape:{small:"3px",medium:"6px",large:"8px",full:"9999px"},elevation:{small:"0 2px 8px rgba(0,0,0,0.72)",medium:"0 6px 18px rgba(0,0,0,0.68)",large:"0 12px 40px rgba(0,0,0,0.76)"}},IRe={id:"glass-dark",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:"rgba(26,26,26,0.88)",panel:"rgba(36,36,36,0.62)",chrome:"rgba(44,44,44,0.68)",raised:"rgba(51,51,51,0.74)",inset:"rgba(30,30,30,0.7)",overlay:"rgba(36,36,36,0.55)"},boundary:{default:"rgba(255,255,255,0.14)",strong:"rgba(255,255,255,0.24)"},content:{primary:xB[1],muted:xB[2],dim:xB[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:bBe,muted:SBe},semantic:{danger:K3t,dangerMuted:Q3t,dangerFaint:t4t,warning:X3t,warningMuted:e4t,success:Y3t,successMuted:Z3t,dynamic:n4t,dynamicMuted:i4t,instance:o4t},neutralOverlay:{hover:"color-mix(in srgb, currentColor 9%, transparent)",active:"color-mix(in srgb, currentColor 14%, transparent)"},scrim:"rgba(0,0,0,0.35)"},typography:{sans:qye,mono:zye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:"0 4px 16px rgba(0,0,0,0.55)",medium:"0 8px 28px rgba(0,0,0,0.5)",large:"0 16px 48px rgba(0,0,0,0.55)"},treatment:{backdropBlurPx:14,backdropSaturation:1.3,backdropBrightness:.5,edgeSpecular:.6,specularAngleDeg:120,thickness:.5}},iCr=(()=>{const{treatment:t,...n}=IRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...IRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:r4t}}})(),NRe={id:"liquid-glass",appearance:{material:"glass",transparency:"standard"},color:{surface:{shell:Ym.color.surface.shell,panel:Ym.color.surface.panel,chrome:Ym.color.surface.chrome,raised:Ym.color.surface.raised,inset:Ym.color.surface.inset,overlay:Ym.color.surface.overlay},boundary:Ym.color.boundary,content:{primary:"#f2f6fb",muted:"rgba(242,246,251,0.85)",dim:"rgba(242,246,251,0.68)",onAccent:"#0b1526",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:bBe,muted:SBe},semantic:{danger:"#ff7b86",dangerMuted:"rgba(255,123,134,0.22)",dangerFaint:"rgba(255,123,134,0.10)",warning:"#ffd35f",warningMuted:"rgba(255,211,95,0.18)",success:"#58e078",successMuted:"rgba(88,224,120,0.20)",dynamic:"#ff8fd8",dynamicMuted:"rgba(255,143,216,0.14)",instance:"#3ad2ea"},neutralOverlay:Ym.color.neutralOverlay,scrim:Ym.color.scrim},typography:{sans:qye,mono:zye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},oCr=(()=>{const{treatment:t,...n}=NRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...NRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),a4t={"graphite-dark":i$,"graphite-neutral":rCr,"midnight-high-contrast":nCr,"glass-dark":IRe,"glass-dark-lite":iCr,"liquid-glass":NRe,"liquid-glass-lite":oCr};function sCr(t){return typeof t=="string"&&Object.hasOwn(a4t,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 aCr(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 cCr(t){if(!t)return"none";const n=[];return t.backdropBlurPx&&n.push(`blur(${t.backdropBlurPx}px)`),t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&n.push(`saturate(${t.backdropSaturation})`),t.backdropBrightness!==void 0&&t.backdropBrightness!==1&&n.push(`brightness(${t.backdropBrightness})`),n.length>0?n.join(" "):"none"}function Fht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Mht(t){const n=t?.contentFrostBlurPx??0;if(n<=0)return"none";const s=[`blur(${n}px)`];return t?.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function ORe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function lCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function uCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function fCr(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 dCr=.6,pCr=.5;function che(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/dCr).toFixed(3)))})`}function c4t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.95)} 0%, ${c(.38)} 16%, ${c(.16)} 40%, ${c(.14)} 60%, ${c(.45)} 84%, ${c(.85)} 100%)`}function _Cr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>che(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function mCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${che(.28,n)}`),c.push(`inset 0 -1px 1px ${che(.1,n)}`)),s>0){const d=m=>`${Number((m*s/pCr).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 hCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function gCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function yCr(t){return t?"17px":"var(--volter-radius-md)"}function vCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function bCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function SCr(t,n){const s=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t.color.accent.default);if(!s)return null;const[c,d,m]=[s[1],s[2],s[3]].map(g=>Number.parseInt(g,16));return`rgba(${c},${d},${m},${n})`}function Uye(t){return q$(t)}function xCr(t){return Uye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function l4t(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 u4t(t){if(!l4t(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 wCr(t){return Uye(t)?"var(--volter-content-primary)":l4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function TCr(t){return Uye(t)?"color-mix(in srgb, currentColor 30%, transparent)":u4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function CCr(t){return Uye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function ECr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function kCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":SCr(t,.82)??"var(--volter-accent)"}function ACr(t){const n=t?.edgeSpecular??0;return n<=0?"none":c4t({...t,edgeSpecular:n*.4})}function DCr(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 f4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function d4t(t){return f4t(t?.textShadowOpacity??0)}function PCr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:f4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??ORe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:d4t(t.treatment),frostBg:ORe(t.treatment)}}function ICr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":OCr(t.color.surface.chrome,.9):t.color.surface.chrome}function NCr(t){return t.color.surface.panel}function OCr(t,n){const s=/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([0-9.]+)\s*\)$/.exec(t);if(!s)return t;const c=Math.max(Number(s[4]),n);return`rgba(${s[1]},${s[2]},${s[3]},${c})`}function jht(t){if(!t)return"none";const s=[`blur(${Math.max(16,t.contentFrostBlurPx??0)}px)`];return t.backdropSaturation!==void 0&&t.backdropSaturation!==1&&s.push(`saturate(${t.backdropSaturation})`),s.join(" ")}function RCr(t){return t.color.boundary.area??t.color.boundary.default}function FCr(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 MCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function jCr(t){const n=PCr(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":cCr(t.treatment),"--volter-surface-sticky":Fht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Fht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Mht(t.treatment),"--volter-content-frost-filter":Mht(t.treatment),"--volter-content-frost-bg":ORe(t.treatment),"--volter-input-surface":lCr(s),"--volter-input-border":uCr(s),"--volter-input-shadow":fCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":c4t(t.treatment),"--volter-card-specular-sheen":_Cr(t.treatment),"--volter-card-specular-shadow":mCr(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":DCr(t.treatment),"--volter-island-surface":hCr(t),"--volter-island-backdrop-filter":gCr(t),"--volter-island-radius":yCr(s),"--volter-island-border-color":vCr(s),"--volter-island-shadow":bCr(s),"--volter-island-specular-ring":ACr(t.treatment),"--volter-selection-bg":xCr(t),"--volter-content-on-selection":wCr(t),"--volter-selection-border":TCr(t),"--volter-selection-indicator":CCr(t),"--volter-island-control-radius":ECr(s),"--volter-island-primary-bg":kCr(t),"--volter-content-text-shadow":d4t(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":ICr(t),"--volter-glass-regular-backdrop-filter":jht(t.treatment),"--volter-glass-regular-panel-bg":NCr(t),"--volter-glass-regular-panel-backdrop-filter":jht(t.treatment),"--volter-glass-dark-frost-panel-bg":"rgba(5,8,13,0.74)","--volter-glass-dark-frost-content-bg":"rgba(5,8,13,0.84)","--volter-scrim-backdrop-filter":t.treatment?"blur(8px)":"none","--volter-boundary-default":t.color.boundary.default,"--volter-boundary-strong":t.color.boundary.strong,"--volter-boundary-area":RCr(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":MCr(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":FCr(t.color.surface.panel,t.color.content.primary),...u4t(t.color.surface.panel)?{"--volter-tree-row-selected-bg":t.color.accent.muted,"--volter-tree-row-active-bg":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-row-active-border":`rgb(from ${t.color.accent.muted} r g b / 1)`,"--volter-tree-datablock-fill":"color-mix(in srgb, var(--volter-category-data, currentColor) 14%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 14%, transparent)"}:{"--volter-tree-row-selected-bg":`color-mix(in srgb, ${t.color.accent.default} 42%, #000)`,"--volter-tree-row-active-bg":`color-mix(in srgb, ${t.color.accent.default} 70%, #000)`,"--volter-tree-row-active-border":"rgb(from var(--volter-tree-row-active-bg) calc(r + 40) calc(g + 40) calc(b + 40))","--volter-tree-datablock-fill":"color-mix(in srgb, color-mix(in srgb, var(--volter-category-data, currentColor) 60%, black) 26%, transparent)","--volter-tree-datablock-border":"color-mix(in srgb, var(--volter-content-primary) 24%, transparent)"},"--volter-tree-active-name-underline":t.color.content.active?"none":"underline","--volter-viewport-background":t.color.viewport?.background??"","--volter-viewport-grid":t.color.viewport?.grid??"","--volter-viewport-axis-x":t.color.viewport?.axisX??"","--volter-viewport-axis-y":t.color.viewport?.axisY??"","--volter-viewport-axis-z":t.color.viewport?.axisZ??"","--volter-viewport-wire":t.color.viewport?.wire??"","--volter-viewport-wire-opacity":Zb(t.stage?.wireOpacity),"--volter-viewport-axis-line-width":Zb(t.stage?.axisLineWidth),"--volter-viewport-selection":t.color.viewport?.selection??"","--volter-viewport-active":t.color.viewport?.active??"","--volter-gizmo-x":t.color.gizmo?.x??"","--volter-gizmo-y":t.color.gizmo?.y??"","--volter-gizmo-z":t.color.gizmo?.z??"","--volter-gizmo-navigation-x":t.color.gizmo?.navigationX??"","--volter-gizmo-navigation-y":t.color.gizmo?.navigationY??"","--volter-gizmo-navigation-z":t.color.gizmo?.navigationZ??"","--volter-gizmo-hover":t.color.gizmo?.hover??"","--volter-gizmo-drag":t.color.gizmo?.drag??"","--volter-viewport-gizmo-opacity":Zb(t.stage?.gizmoOpacity),"--volter-viewport-gizmo-arrow-length":Zb(t.stage?.gizmoArrowLength),"--volter-viewport-gizmo-arrow-head":Zb(t.stage?.gizmoArrowHead),"--volter-viewport-gizmo-ring-width":Zb(t.stage?.gizmoRingWidth),"--volter-viewport-navigation-gizmo":t.stage?.navigationGizmo??"","--volter-viewport-navigation-corner":t.stage?.navigationCorner??"","--volter-viewport-navigation-size":Zb(t.stage?.navigationSize),"--volter-viewport-gizmo-highlight-saturation":Zb(t.stage?.gizmoHighlightSaturation),"--volter-viewport-gizmo-highlight-value":Zb(t.stage?.gizmoHighlightValue),"--volter-viewport-gizmo-size":t.stage?.gizmoSize===void 0?"":`${t.stage.gizmoSize}`,"--volter-viewport-grid-line-width":Zb(t.stage?.gridLineWidth),"--volter-viewport-grid-major-width":Zb(t.stage?.gridMajorWidth),"--volter-viewport-grid-major-contrast":Zb(t.stage?.gridMajorContrast),"--volter-viewport-selection-box":t.stage?.selectionBox??"","--volter-viewport-selection-box-frame":t.stage?.selectionBoxFrame??"","--volter-viewport-outline-style":t.stage?.outlineStyle??"","--volter-viewport-outline-width":Zb(t.stage?.outlineWidth),"--volter-viewport-outline-hidden":t.stage?.outlineHidden===void 0?"":`${t.stage.outlineHidden}`,"--volter-viewport-selection-box-width":Zb(t.stage?.selectionBoxWidth),"--volter-viewport-chrome-bar":t.stage?.chrome?.bar??"","--volter-viewport-chrome-view-name":t.stage?.chrome?.viewName??"","--volter-viewport-chrome-tools":t.stage?.chrome?.tools??"","--volter-viewport-chrome-display":t.stage?.chrome?.display??"","--volter-viewport-chrome-transform-controls":t.stage?.chrome?.transformControls??"",...Object.fromEntries(wBe.map(A=>[`--volter-viewport-word-${A}`,t.stage?.words?.shading?.[A]??""])),"--volter-viewport-word-helpers":t.stage?.words?.helpers??"","--volter-widget-regular":c,"--volter-widget-regular-hover":S(c),"--volter-widget-menu":d,"--volter-widget-menu-hover":S(d),"--volter-widget-field":m,"--volter-widget-emboss-shadow":g,...Object.fromEntries(Vye.map(A=>[`--volter-category-${A}`,t.color.category?.[A]??"currentColor"])),"--volter-region-outliner":t.color.region?.outliner??t.color.surface.panel,"--volter-region-outliner-header":t.color.region?.outliner??t.color.surface.chrome,"--volter-region-properties":t.color.region?.properties??t.color.surface.panel,"--volter-region-properties-header":t.color.region?.properties??t.color.surface.chrome,"--volter-font-sans":t.typography.sans,"--volter-font-mono":t.typography.mono,"--volter-radius-sm":t.shape.small,"--volter-radius-md":t.shape.medium,"--volter-radius-lg":t.shape.large,"--volter-radius-full":t.shape.full,"--volter-shadow-sm":t.elevation.small,"--volter-shadow-md":t.elevation.medium,"--volter-shadow-lg":t.elevation.large,"--volter-focus-ring":`${I5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":aCr(t.color.content.muted),"--volter-space-1":`${R_[1]}px`,"--volter-space-2":`${R_[2]}px`,"--volter-space-3":`${R_[3]}px`,"--volter-space-4":`${R_[4]}px`,"--volter-space-5":`${R_[5]}px`,"--volter-space-6":`${R_[6]}px`,"--volter-space-8":`${R_[8]}px`,"--volter-space-10":`${R_[10]}px`,"--volter-space-12":`${R_[12]}px`,"--volter-command-bar-height":`${Qp(t).chrome.commandBar}px`,"--volter-panel-header-height":`${Qp(t).chrome.panelHeader}px`,"--volter-local-toolbar-height":`${Qp(t).chrome.localToolbar}px`,"--volter-tree-row-height":`${Qp(t).chrome.treeRow}px`,"--volter-tree-indent":`${Qp(t).chrome.treeIndent}px`,"--volter-status-bar-height":`${Qp(t).chrome.statusBar}px`,"--volter-tool-size":`${Qp(t).chrome.toolSize}px`,"--volter-tool-width":`${Qp(t).chrome.toolWidth}px`,"--volter-tool-gap":`${Qp(t).chrome.toolGap}px`,"--volter-area-seam-width":`${Qp(t).chrome.areaSeam}px`,"--volter-control-compact-height":`${Qp(t).control.compact}px`,"--volter-control-default-height":`${Qp(t).control.default}px`,"--volter-control-comfortable-height":`${Qp(t).control.comfortable}px`,"--volter-stroke-resting":`${I5e.resting}px`,"--volter-stroke-active":`${I5e.active}px`,"--volter-font-xs":`${Qp(t).font.xs}px`,"--volter-font-sm":`${Qp(t).font.sm}px`,"--volter-font-base":`${Qp(t).font.base}px`,"--volter-font-md":`${Qp(t).font.md}px`,"--volter-font-lg":`${Qp(t).font.lg}px`,"--volter-font-xl":`${Qp(t).font.xl}px`,"--volter-font-2xl":`${Qp(t).font["2xl"]}px`,"--volter-icon-xs":`${Qp(t).icon.xs}px`,"--volter-icon-sm":`${Qp(t).icon.sm}px`,"--volter-icon-md":`${Qp(t).icon.md}px`,"--volter-icon-lg":`${Qp(t).icon.lg}px`,"--volter-icon-xl":`${Qp(t).icon.xl}px`,"--volter-icon-2xl":`${Qp(t).icon["2xl"]}px`,"--volter-font-heading":`${Qp(t).font.heading}px`,"--volter-font-weight-regular":String(k_e.regular),"--volter-font-weight-semibold":String(k_e.semibold),"--volter-font-weight-bold":String(k_e.bold),"--volter-leading-tight":String(kpe.tight),"--volter-leading-snug":String(kpe.snug),"--volter-leading-normal":String(kpe.normal),"--volter-leading-relaxed":String(kpe.relaxed),"--volter-duration-fast":`${NG.duration.fast}ms`,"--volter-duration-base":`${NG.duration.base}ms`,"--volter-duration-slow":`${NG.duration.slow}ms`,"--volter-ease-standard":NG.easing.standard,"--volter-ease-out":NG.easing.out,"--volter-z-base":String(PI.base),"--volter-z-overlay-low":String(PI.overlayLow),"--volter-z-sticky":String(PI.sticky),"--volter-z-dropdown":String(PI.dropdown),"--volter-z-toast":String(PI.toast),"--volter-z-modal":String(PI.modal)}}const RRe="volter-editor-theme";function LCr(t,n=i$){t.classList.add(RRe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(jCr(n)))t.style.setProperty(s,c)}const i0n={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},o0n={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},p4t=Ye.createContext(null);function BCr(){return Ye.useContext(p4t)}function DR(t,n){return n?`${t} ${n}`:t}const Zm=Ye.forwardRef(function({className:n,type:s="text",...c},d){return q.jsx("input",{...c,ref:d,type:s,className:DR("volter-input",n)})}),Iw=Ye.forwardRef(function({className:n,...s},c){return q.jsx("select",{...s,ref:c,className:DR("volter-select",n)})}),TBe=Ye.forwardRef(function({className:n,...s},c){return q.jsx("textarea",{...s,ref:c,className:DR("volter-input volter-textarea",n)})}),TD=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"checkbox",className:DR("volter-checkbox",n)})}),_4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),s0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),a0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",$Cr={id:hC,title:"Editor"},wB=new Map;let lhe=null,cQ=hC;const FRe=new Set;function MRe(){for(const t of FRe)t()}function c0n(){return lhe??=[$Cr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],lhe}function vee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function qCr(t){if(vee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),lhe=null,MRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),lhe=null,MRe())}}function uhe(){return cQ}function fhe(t){const n=vee(t)?t:hC;n!==cQ&&(cQ=n,MRe())}function CBe(t){return FRe.add(t),()=>FRe.delete(t)}function m4t(t){return cQ===hC?null:wB.get(cQ)?.glyphs[t]??null}const Lht={xs:"var(--volter-icon-xs)",sm:"var(--volter-icon-sm)",md:"var(--volter-icon-md)",lg:"var(--volter-icon-lg)",xl:"var(--volter-icon-xl)","2xl":"var(--volter-icon-2xl)"},Bht={current:void 0,primary:Go.content.primary,muted:Go.content.muted,dim:Go.content.dim,accent:Go.accent.default,danger:Go.semantic.danger};function dc({icon:t,size:n="sm",tone:s="current",label:c,className:d,style:m,spin:g=!1,...S}){Ye.useSyncExternalStore(CBe,uhe,uhe);const k=m4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Bht[s]:k.tonedPath?void 0:F,J=A?"currentColor":F??"currentColor";return q.jsxs("svg",{...S,viewBox:k.viewBox??"0 0 16 16","data-volter-tone":A?void 0:k.tone,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{width:"1.25em",height:"1em",overflow:"visible",verticalAlign:"-0.125em",fontSize:Lht[n],color:D,...m},children:[q.jsx("path",{d:k.path,fill:"currentColor"}),k.tonedPath?q.jsx("path",{d:k.tonedPath,fill:J}):null]})}return q.jsx(o0r,{...S,icon:t,fixedWidth:!0,spin:g,className:d,"aria-hidden":c?void 0:S["aria-hidden"]??"true","aria-label":c,role:c?"img":void 0,style:{fontSize:Lht[n],color:Bht[s],...m}})}function h4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?LTt:ZTt,size:n,tone:s,...c?{style:c}:{}})}function l0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?OTt:fLe,size:n,tone:s})}function Eg(t,n){return{...n,iconName:t}}const Kk={action:{add:tCt,close:lLe,delete:FTt,search:RTt,refresh:ivr,undo:VOe,redo:Pmt,build:Q0r,export:nvr,select:Imt},transport:{play:j0r,pause:tvr,restart:Pmt,stop:MTt,step:$0r},content:{project:qOe,folder:fee,file:UTt,source:dLe,scene:_Le,entity:aR,component:GB,camera:cye,light:sLe,image:iB,audio:uLe,data:jTt,code:aLe,stateMachine:$Tt},status:{success:cLe,info:R$,warning:dee,error:VTt,visible:oLe,hidden:pLe,locked:Fme,unlocked:zOe},viewport:{zoomIn:w0r,zoomOut:S0r,pan:O0r,frame:v0r,projection:Eg("viewport-projection",E5e),projectionOrthographic:Eg("viewport-orthographic",E5e),camera:Eg("viewport-camera",Dmt),cameraView:Eg("viewport-camera-view",Dmt),cameraLocked:Eg("viewport-camera-locked",Fme),cameraUnlocked:Eg("viewport-camera-unlocked",zOe),gizmos:Eg("viewport-gizmos",B0r)},modeling:{extrude:Eg("mesh-extrude",qTt),inset:Eg("mesh-inset",Z0r),bevel:Eg("mesh-bevel",ovr),loopCut:Eg("mesh-loop-cut",T0r),knife:Eg("mesh-knife",G0r),smooth:Eg("mesh-smooth",b0r),shrinkFatten:Eg("mesh-shrink-fatten",JTt),subdivide:Eg("mesh-subdivide",L0r)},tool:{extension:GB,select:Eg("tool-select-box",Imt),move:HTt,rotate:NTt,scale:Eg("tool-scale",E0r),transform:Eg("tool-transform",R0r),snap:M0r,frame:eCt,grid:E5e,profiler:YTt},panel:{outliner:Eg("outliner",nCt),properties:Eg("properties",GTt),"folder-open":qOe,"cubes-stacked":WTt,users:C0r,list:vZ,"rotate-left":VOe}};function SZ({value:t,onChange:n,onChangeEnd:s,step:c=.1,precision:d=3,disabled:m=!1,label:g,labelColor:S,style:k,testId:A,title:F}){const[D,J]=Ye.useState(!1),[$,G]=Ye.useState(""),se=Ye.useRef({startX:0,startVal:0,dragging:!1,gesture:!1,lastVal:0}),pe=Ye.useRef(null),ue=BCr();Ye.useEffect(()=>{if(!D)return;const we=pe.current;we&&(we.focus(),we.select())},[D]);const Ce=t===null,De=t??0,Pe=Ce?"—":Number.isFinite(De)?De.toFixed(d):0 .toFixed(d),be=we=>{if(m)return;se.current={startX:we.clientX,startVal:De,dragging:!1,gesture:!1,lastVal:De};const qe=Pt=>{const Wt=Pt.clientX-se.current.startX;if(Math.abs(Wt)>3&&(se.current.dragging=!0),se.current.dragging){se.current.gesture||(se.current.gesture=!0,ue?.begin());const zt=se.current.startVal+Wt*c,ft=Math.round(zt/c)*c;se.current.lastVal=ft,n(ft)}},bt=()=>{window.removeEventListener("pointermove",qe),window.removeEventListener("pointerup",bt),se.current.gesture&&ue?.end(),se.current.dragging?s?.(se.current.lastVal):(J(!0),G(Ce?"":Pe))};window.addEventListener("pointermove",qe),window.addEventListener("pointerup",bt)},X=()=>{J(!1);const we=Number.parseFloat($);Number.isFinite(we)&&(n(we),s?.(we))};return q.jsxs("div",{className:"volter-number-input","data-testid":A,title:F,style:k,children:[g&&q.jsx("span",{className:"volter-number-input-label",style:S?{color:S}:void 0,children:g}),D?q.jsx(Zm,{ref:pe,value:$,onChange:we=>G(we.target.value),onBlur:X,onKeyDown:we=>{we.key==="Enter"&&X(),we.key==="Escape"&&J(!1)},placeholder:Ce?"—":void 0,className:"volter-number-input-editor"}):q.jsx("div",{onPointerDown:be,className:"volter-number-input-scrub","data-mixed":Ce||void 0,"data-disabled":m||void 0,children:Pe})]})}const zCr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:k_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},VCr={...zCr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function Jye({name:t,actions:n,onHeaderClick:s,hideHeader:c=!1,style:d,children:m,...g}){return q.jsxs("div",{...g,style:{display:"flex",flexDirection:"column",pointerEvents:"auto",...d},children:[!c&&q.jsxs("div",{role:s?"button":void 0,tabIndex:s?0:void 0,onClick:s,onKeyDown:s?S=>{S.key==="Enter"&&s()}:void 0,style:{...VCr,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 UCr({label:t,icon:n,description:s,actions:c,collapsible:d=!0,defaultOpen:m=!0,children:g}){const[S,k]=Ye.useState(m),A=q.jsxs("span",{className:"volter-section-title",children:[q.jsx("span",{children:t}),s?q.jsx("small",{children:s}):null]});return q.jsxs("section",{className:"volter-section",children:[q.jsxs("div",{className:"volter-section-header",children:[d?q.jsxs("button",{type:"button",className:"volter-section-trigger","aria-expanded":S,onClick:()=>k(!S),children:[q.jsx(h4t,{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 JCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function WCr(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 HCr(t,n,s){let c=n.left+(n.width-s.width)/2,d=n.top+(n.height-s.height)/2;return t==="top"?d=n.top-s.height-VI:t==="bottom"?d=n.bottom+VI:t==="left"?c=n.left-s.width-VI:c=n.right+VI,{left:Math.max(zI,Math.min(c,window.innerWidth-s.width-zI)),top:Math.max(zI,Math.min(d,window.innerHeight-s.height-zI)),ready:!0}}function hO({text:t,hotkey:n,children:s,position:c="bottom",delay:d=400}){const m=Ye.useId(),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef(null),A=Ye.useRef(!1),F=Ye.useRef(!1),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState({left:0,top:0,ready:!1});Ye.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ye.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const ue=()=>{k.current&&clearTimeout(k.current),k.current=null,J(!1)},Ce=()=>{!A.current&&!F.current&&ue()},De=be=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{pe(X=>({...X,ready:!1})),J(!0)},be)};Ye.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),we=S.current?.getBoundingClientRect();if(!X||!we)return;const qe=WCr(c,X,we)?c:JCr(c);pe(HCr(qe,X,we))};return be(),window.addEventListener("resize",be),window.addEventListener("scroll",be,!0),()=>{window.removeEventListener("resize",be),window.removeEventListener("scroll",be,!0)}},[n,c,t,D]);let Pe=s;if(Ye.isValidElement(s)){const be=[s.props["aria-describedby"],D?m:null].filter(Boolean).join(" ");Pe=Ye.cloneElement(s,be?{"aria-describedby":be}:{})}return q.jsxs("span",{ref:g,className:"volter-tooltip-anchor",onMouseEnter:()=>{A.current=!0,De(d)},onMouseLeave:()=>{A.current=!1,Ce()},onFocusCapture:()=>{F.current=!0,De(0)},onBlurCapture:be=>{be.currentTarget.contains(be.relatedTarget)||(F.current=!1,Ce())},children:[Pe,D&&$&&r2.createPortal(q.jsxs("div",{ref:S,id:m,role:"tooltip",className:"volter-tooltip",style:{left:se.left,top:se.top,visibility:se.ready?"visible":"hidden"},children:[q.jsx("span",{children:t}),n&&q.jsx("kbd",{children:n})]}),$)]})}function GCr({value:t,onChange:n,onAxisChange:s,step:c=.1,disabled:d=!1,testIdPrefix:m}){const g=k=>m?`${m}-${k}`:void 0,S=k=>A=>{if(s)s(k,A);else{const F=[t[0]??0,t[1]??0,t[2]??0];F[k]=A,n(F)}};return q.jsxs("div",{style:{display:"flex",gap:4},children:[q.jsx(SZ,{label:"X",labelColor:"#E06178",value:t[0],onChange:S(0),step:c,disabled:d,style:{flex:1},testId:g("x")}),q.jsx(SZ,{label:"Y",labelColor:"#C2ED66",value:t[1],onChange:S(1),step:c,disabled:d,style:{flex:1},testId:g("y")}),q.jsx(SZ,{label:"Z",labelColor:"#6BABF5",value:t[2],onChange:S(2),step:c,disabled:d,style:{flex:1},testId:g("z")})]})}const N5e={bg:Go.surface.panel,surface:Go.surface.chrome,surfaceHover:Go.surface.raised,border:Go.boundary.default,text:Go.content.primary,textMuted:Go.content.muted,onAccent:Go.content.onAccent,accent:Go.accent.default,neutralHover:Go.neutralOverlay.hover,radiusSmall:Go.shape.small,radiusMedium:Go.shape.medium,inputBg:Go.surface.inset,dynamic:Go.semantic.dynamic,dynamicBg:Go.semantic.dynamicMuted},u0n=Go.typography.sans,f0n=Go.typography.mono;function d0n(t,n){t.onChange(n)}function p0n(t,n){(t.onChangeEnd??t.onChange)(n)}const _0n={display:"flex",alignItems:"center",gap:4},m0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},KCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},XCr=72;function h0n({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 g0n(t){const n=t.match(/^(-?\d+\.?\d*)\s*(px|em|rem|%|vh|vw|deg|s|ms)?$/);if(n)return{num:Number.parseFloat(n[1]??"0"),unit:n[2]||""};const s=Number.parseFloat(t);return{num:Number.isNaN(s)?0:s,unit:""}}const O5e=22,$ht={width:O5e,height:O5e,flex:`0 0 ${O5e}px`,borderRadius:N5e.radiusSmall,border:`1px solid ${N5e.border}`,background:N5e.inputBg,objectFit:"cover",backgroundImage:"linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%),linear-gradient(45deg,rgba(128,128,128,.35) 25%,transparent 25%,transparent 75%,rgba(128,128,128,.35) 75%)",backgroundSize:"8px 8px",backgroundPosition:"0 0, 4px 4px"};function YCr({value:t,onChange:n,options:s,previewUrlFor:c,disabled:d,note:m,testId:g}){const S=t&&!s.includes(t)?[t,...s]:s;return q.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,minWidth:0,flex:1},children:[q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,minWidth:0},children:[t?q.jsx("img",{src:c(t),alt:"",style:$ht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:$ht,"aria-hidden":"true"}),q.jsxs(Iw,{"data-testid":g,disabled:d,value:t,title:t||"No texture assigned",onChange:k=>n(k.target.value),style:{flex:1,minWidth:0},children:[q.jsx("option",{value:"",children:"—"}),S.map(k=>q.jsx("option",{value:k,children:k},k))]}),q.jsx(pm,{"data-testid":`${g}-clear`,"aria-label":"Clear this texture slot",title:"Clear this texture slot",disabled:d||!t,onClick:()=>n(""),children:q.jsx(dc,{icon:lLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function jRe({value:t,onCommit:n,onKeyDown:s,onFocus:c,...d}){const[m,g]=Ye.useState(null),S=Ye.useRef(!1),k=()=>{!S.current&&m!==null&&m!==t&&n(m),S.current=!1,g(null)};return q.jsx(Zm,{...d,value:m??t,onFocus:A=>{g(t),c?.(A)},onChange:A=>g(A.target.value),onBlur:k,onKeyDown:A=>{A.key==="Enter"&&A.target.blur(),A.key==="Escape"&&(S.current=!0,A.target.blur()),s?.(A)}})}const A_e=new Map,LRe=new Set;let g4t=0;function qht(){g4t+=1;for(const t of LRe)t()}function y0n(t,n){return A_e.set(t,n),qht(),()=>{A_e.get(t)===n&&(A_e.delete(t),qht())}}function EBe(t){return LRe.add(t),()=>LRe.delete(t)}function o$(){return g4t}function s2(t){return t?A_e.get(t)??null:null}const QL=new Map;function v0n(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 ZCr(t){return(QL.get(t)??0)>0}const PR=1e4;async function CC(t,n=4e3){if(t())return!0;const s=performance.now();return new Promise(c=>{const d=()=>{t()?c(!0):performance.now()-s>=n?c(!1):setTimeout(d,25)};setTimeout(d,0)})}const xZ=new Map,TB=new Set,dhe=new Set,D_e=new Set;let y4t=0;function v4t(){y4t+=1;for(const t of[...TB])t()}function QCr(t,n){return xZ.set(t,n),v4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function eEr(t){xZ.has(t)&&v4t()}function tEr(t){return TB.add(t),()=>{TB.delete(t)}}function zht(){return y4t}function lQ(t){return xZ.get(t)}function b4t(t,n=1e4){const s=lQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=lQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function S4t(t){dhe.add(t);for(const n of[...D_e])n();return()=>{dhe.delete(t)}}function x4t(t,n=1e4){return dhe.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{dhe.has(t)&&(clearTimeout(d),D_e.delete(c),s(!0))},d=setTimeout(()=>{D_e.delete(c),s(!1)},n);D_e.add(c)})}async function kBe(t){if(ZCr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let BRe=null;const ZY=new Map;let YO=[];function rEr(t){if(BRe=t,!t)return;const n=YO;YO=[];for(const s of n)w4t(t,s)}function w4t(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 nEr=0;function s$(t){const n=t.id??`notification-${++nEr}`,s={...t,id:n};return BRe?w4t(BRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>ABe(n))}function ABe(t){const n=ZY.get(t);if(n){n();return}const s=YO.find(c=>c.id===t);s&&(YO=YO.filter(c=>c.id!==t),s.onDismiss?.())}let Xk={sessions:[],selectedSessionId:null,selectedSession:null,cursorMs:0,liveEdgeMs:0,loading:!0,error:null},phe=!0,Ape=null,P_e=null,RG=null,I_e=!1;const QY=new Set;function iEr(t,n,s){const c=t[0]??null;return c!==null&&n.length>0&&!n.some(m=>m.id===c.id)?{sessionId:c.id,latestAppeared:!0}:s&&t.some(m=>m.id===s)?{sessionId:s,latestAppeared:!1}:{sessionId:c?.id??null,latestAppeared:!1}}function _he(t){Xk=t;for(const n of QY)n()}async function oEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function sEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function aEr(){try{const t={sessions:await oEr()},n=iEr(t.sessions,Xk.sessions,P_e),s=n.sessionId;n.latestAppeared&&(phe=!0),P_e=s;const c=s?await sEr(s):null;if(P_e!==s){I_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=phe?m:Math.min(Xk.cursorMs,m);_he({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){_he({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function uQ(){return RG?(I_e=!0,RG):(RG=aEr().finally(()=>{RG=null,I_e&&(I_e=!1,uQ())}),RG)}function cEr(t){return QY.add(t),QY.size===1&&(uQ(),Ape=window.setInterval(()=>void uQ(),1e3)),()=>{QY.delete(t),QY.size===0&&Ape!==null&&(window.clearInterval(Ape),Ape=null)}}function lEr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(P_e=n.id,phe=!0,_he({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),uQ())}function uEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));phe=Xk.liveEdgeMs-n<250,_he({...Xk,cursorMs:n})}const T4t={getSnapshot:()=>Xk,subscribe:cEr,select:lEr,seek:uEr,refresh:uQ};let C4t=null;const $Re=new Set,b0n={getSnapshot:()=>C4t,subscribe(t){return $Re.add(t),()=>$Re.delete(t)}};function S0n(t){C4t=t;for(const n of $Re)try{n()}catch{}}let ZO={phase:null,at:0,run:0},pN=ZO;const qRe=new Map;let E4t=null;function fEr(t){E4t=t,k4t(ZO)}function k4t(t){ZO=t;try{E4t?.(t)}catch{}}function fQ(){const t=[...qRe.values()].at(-1),n=t?{...t,run:pN.run}:pN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||k4t(n)}function x0n(t=Date.now()){return pN={phase:null,at:t,run:pN.run+1},fQ(),ZO.run}function w0n(t,n=Date.now()){pN={phase:t,at:n,run:pN.run},fQ()}function T0n(t=Date.now()){pN={phase:null,at:t,run:pN.run},fQ()}function DBe(t,n=Date.now()){const s=Symbol();return qRe.set(s,{phase:t.slice(0,160),at:n}),fQ(),()=>{qRe.delete(s)&&fQ()}}const dEr=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-aU04h32D.js"),__vite__mapDeps([255,1,2,3,4,20,21,143,128,144,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class PBe extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){console.error(`[tools] ${this.props.file} crashed while rendering:`,n,s.componentStack)}render(){return this.state.error?q.jsxs("div",{style:{padding:R_[6],fontSize:"var(--volter-font-md)",color:Go.semantic.danger,maxWidth:640},children:[q.jsxs("div",{style:{fontWeight:600,marginBottom:R_[2]},children:["Tool crashed: ",q.jsx("code",{children:this.props.file})]}),q.jsx("div",{style:{whiteSpace:"pre-wrap"},children:String(this.state.error)}),q.jsx("div",{style:{color:Go.content.muted,marginTop:R_[3]},children:"The editor is fine — fix the tool file and save; it reloads in place."})]}):this.props.children}}function pEr({contribution:t,Component:n,documentId:s,active:c,document:d,accountRevision:m,playKey:g}){const S=Ye.useRef(null),[k,A]=Ye.useState(null),F=Ye.useRef(null),D=Ye.useRef(null),J=Ye.useRef(t.file);J.current=t.file;const $=Ye.useRef(s);return $.current=s,Ye.useEffect(()=>{const G=S.current;if(!G)return;let se=!1;A(null);const pe=(De,Pe)=>{if(se)return;const be=De instanceof Error?De:new Error(String(De));console.error(`[tools] ${J.current} crashed while rendering:`,be,Pe?.componentStack),A(be),$.current&&S4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=nLe.createRoot(ue,{onUncaughtError:pe});return F.current=Ce,()=>{se=!0,F.current=null,D.current?.(),D.current=null,queueMicrotask(()=>{Ce.unmount(),ue.remove()})}},[]),Ye.useEffect(()=>{const G=F.current;if(!G)return;A(null);const se={contributionId:t.id,client:e0e(),surfaces:hBe,account:nBe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:DBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:T4t}:{play:Rye()},...s?{documentId:s,publishContext:Ce=>QCr(s,Ce)}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}},pe=n??t.Component,ue=Ye.createElement(pe,{...se,...t.tool?{tool:t.tool}:{}});G.render(s?Ye.createElement(_Er,{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 _Er({documentId:t,children:n}){return Ye.useEffect(()=>S4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ye.useSyncExternalStore(Dye,lN,lN),g=Ye.useSyncExternalStore(Fye,uN,uN),S=t.point==="workspace.analytics"?"gameplay-sessions":g;return q.jsxs("div",{"data-testid":`tool-panel-${t.id}`,style:{flex:1,minHeight:0,overflow:t.point==="workspace.analytics"?"visible":"auto",color:Go.content.primary,display:"flex",flexDirection:"column"},children:[t.point==="workspace.analytics"?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(dEr,{})}):null,q.jsx(PBe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(pEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function mEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Dye,lN,lN),Ye.useSyncExternalStore(Fye,uN,uN);const S=g?m.hierarchy.node(g):null;return q.jsx("div",{className:"volter-inspector-tool-section","data-testid":`inspector-tool-${t}`,children:q.jsx(PBe,{file:s,children:q.jsx(Qvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:hBe,account:nBe(),play:Rye(),node:S,nodeId:g,adapter:m})})})})}const hEr=Symbol("volter.inspection.mixed");function zRe(t){return t===hEr}function IBe(t){return t.readonlyReason??"This field is read-only."}function NBe(t){return"column"}function OBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const VRe="preview",Vht="transform",R5e="properties",A4t="stories",C0n="story-args",E0n="Story Args";function Uht(t){return`group:${t}`}const D4t=100,gEr=1e3,dQ=2e3,P4t=3e3,yEr=4e3,vEr=5e3,bEr={nullSubjectId:null};function I4t(t){return"sections"in t}const N_e=[];let N4t=0;const URe=new Set;function Jht(){N4t++;for(const t of URe)t()}function SEr(t){return URe.add(t),()=>{URe.delete(t)}}function Wht(){return N4t}function O4t(t){return N_e.push(t),Jht(),()=>{const n=N_e.indexOf(t);n>=0&&(N_e.splice(n,1),Jht())}}function Hht(t,n,s=bEr){return N_e.filter(c=>c.match(t,n,s))}function R4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const xEr=1e3;class wEr{_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>xEr){const k=this._entries.shift();this.counts[k.level]=Math.max(0,this.counts[k.level]-1)}this._notify()}_notify(){this._version++,!this._notifyScheduled&&(this._notifyScheduled=!0,queueMicrotask(()=>{this._notifyScheduled=!1;for(const n of this._listeners)n()}))}}const Qs=new wEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Ght=1e3,Kht=4e3;function CB(t){try{const n=t;return typeof t=="object"&&n!==null&&typeof n.stack=="string"&&n.stack!==""&&typeof n.message=="string"?n.stack.includes(n.message)?n.stack:`${String(t)}
|
|
46
46
|
${n.stack}`:String(t)}catch{return Object.prototype.toString.call(t)}}function TEr(t){if(typeof t!="object"||t===null)return CB(t);const n=new WeakSet;let s;try{s=JSON.stringify(t,(c,d)=>typeof d!="object"||d===null?d:n.has(d)?"[Circular]":(n.add(d),d))}catch{s=void 0}return s===void 0?CB(t):s.length>Ght?`${s.slice(0,Ght)}…`:s}function JRe(t){if(t.length===0)return"";const[n,...s]=t;if(typeof n!="string"||s.length===0)return t.map(CB).join(" ");let c=0;const d=n.replace(/%([sdifoOjc%])/g,(g,S)=>{if(S==="%")return"%";if(c>=s.length)return g;const k=s[c++];switch(S){case"s":return typeof k=="string"?k:CB(k);case"d":case"i":{if(typeof k=="symbol")return"NaN";if(typeof k=="bigint")return String(k);const A=Number(k);return Number.isFinite(A)?String(Math.trunc(A)):String(A)}case"f":return typeof k=="symbol"?"NaN":String(Number(k));case"c":return"";default:return TEr(k)}}),m=s.slice(c);return m.length===0?d:`${d} ${m.map(CB).join(" ")}`}function CEr(t,n){const s=t[0];if(typeof s!="string"||!/^(Encountered two children with the same key|Each child in a list should have a unique|Maximum update depth exceeded|Cannot update a component)/.test(s))return n;try{const c=Ye.captureOwnerStack?.();return c?`${n}
|
|
47
47
|
Owner stack:${c}`:n}catch{return n}}function WRe(t,n={}){const s=t instanceof Error?`${t.name}: ${t.message}`:CB(t),c=[n.source?`[${n.source}] ${s}`:s],d=n.componentStack?.trim();d&&c.push(`Component stack:
|
|
48
48
|
${d}`),t instanceof Error&&t.stack&&t.stack!==s&&c.push(`JavaScript stack:
|
|
@@ -939,7 +939,7 @@ ${n}`,d=lZ.get(c);if(d)return d;const m=TYr(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">${g4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Age=new Set;function gZr(t){return Age.add(t),()=>{Age.delete(t)}}function yZr(){try{window.focus()}catch{}if(Age.size===0){window.location.reload();return}for(const t of[...Age])t()}function vZr(t,n,s={}){t.addEventListener("tab-refocus",c=>fZr(c)),t.addEventListener("tab-yield",c=>dZr(n,c)),t.addEventListener("tab-close",()=>hZr(n,s)),t.addEventListener("tab-adopt",()=>yZr())}const $k="/__editor",bZr=globalThis,md=bZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Q0e=UAt,SZr=uwr;function xZr(t,n,s){md?.reportPhase?.(t,n,s)}function wZr(t){md?.reportCensus?.(t)}function TZr(){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 CZr(){const t=new URLSearchParams({clientId:xC,participantId:Q0e,displayName:SZr});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 qRt=new Set(["editor-command"]);function zRt(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 EZr(t){P$!==t&&(P$=t,vZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),zRt(t,n=>!qRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(CZr()),md&&(md.source=kw)));const t=kw;EZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),qRt.has(c)&&zRt(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 kZr(){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 AZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=Bze(c=>{c!==null&&c.reason!=="server-gone"&&TZr()}),s=PZr();return()=>{s(),n(),t.close()}}const DZr=5;function PZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=DZr||(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;R4t(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 IZr=2e3,NZr={"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(NZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function SN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function OZr(t,n){const s=kw??md?.source??null;if(!s){await FZ("command-result",n);return}let c;const d=new Promise(A=>{c=A}),m=A=>{const F=A.data;let D=F;if(typeof F=="string")try{D=JSON.parse(F)}catch{}D===t&&c()};s.addEventListener(zSt,m);const g={...n,_awaitCallerReceipt:!0};s.send?.("command-result",g)||await FZ("command-result",g);let S,k=!1;await Promise.race([d.then(()=>{k=!0}),new Promise(A=>{S=setTimeout(A,IZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(zSt,m)}function RZr(t){SN("tab-route",{clientId:xC,participantId:Q0e,route:t})}function $ze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function FZr(t,n){try{const s=new URLSearchParams({root:t,dir:n}),c=await fetch(`${Jl}/assets?${s}`,{cache:"no-store"});return{ok:!0,entries:(await L_(c,`Could not list ${t}/${n} from ${Jl}/assets`)).entries??[]}}catch(s){return $ze(s)}}async function eve(t,n){if(t!=="public")return FZr(t,n);try{return{ok:!0,entries:(await gR().list(n)).map(c=>({name:c.name,type:c.type==="dir"?"directory":"file",...c.size===void 0?{}:{size:c.size},...c.mtime===void 0?{}:{modifiedAt:c.mtime}}))}}catch(s){return $ze(s)}}async function VRt(){try{const t=await fetch(`${Jl}/project-components`,{cache:"no-store"});return{ok:!0,entries:(await L_(t,`Could not list project components from ${Jl}/project-components`)).components??[]}}catch(t){return $ze(t)}}function _2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class USt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function JSt(t){return{offline:"Network delivery is offline. SSD assets remain available.","quota-limited":"The remote provider quota is exhausted. Retry after the provider resets it.","license-blocked":"This delivery is blocked because its license terms are not accepted.",unavailable:"No healthy SSD, cloud, or remote delivery is available for this variant.","provider-error":"The remote provider could not return delivery metadata. Retry the request."}[t]}const Dge=new Map,Pge=new Set;function qze(t,n){return`${t}:${n}`}function m2n(t,n){return Dge.get(qze(t,n))??null}function h2n(t){return Pge.add(t),()=>Pge.delete(t)}async function g2n(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Dge.clear();for(const s of n.downloaded)Dge.set(qze(s.source,s.id),`/${s.path}`);for(const s of Pge)s()}catch{}}async function y2n(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 v2n(t,n){return MZr(t,n)}async function MZr(t,n){const s=new URLSearchParams({source:t,id:n});let c;try{c=await fetch(`${Jl}/asset-library/files?${s}`)}catch(m){throw new USt("offline",m instanceof Error?m.message:JSt("offline"))}if(of(c,"Asset Library file lookup failed"),!c.ok){const m=await c.json().catch(()=>null),g=c.status===403?"license-blocked":c.status===429?"quota-limited":c.status===404?"unavailable":"provider-error";throw new USt(g,m?.error??JSt(g))}return(await c.json()).files}async function b2n(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 S2n(t){const n=await fetch(`${Jl}/asset-library/download`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...t,signal:void 0}),...t.signal?{signal:t.signal}:{}});of(n,"Could not download the asset");const s=await n.json();if(s.ok&&s.path){Dge.set(qze(t.source,t.id),`/${s.path}`);for(const c of Pge)c()}return s}async function x2n(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 w2n(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 T2n(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 jZr(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 LZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw qFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw qFe(`HTTP ${t.status}`);try{EN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return jZr(await t.json())}catch{return null}}async function zze(){const t=await LZr();if(!t)throw T4r();return C4r(t),t}async function BZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function C2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,"Could not remove recent project")}const WSt={reopenLastProject:!1};async function $Zr(){try{const t=await fetch(`${Jl}/launcher-settings`),n=await L_(t,"Could not read launcher settings");return{reopenLastProject:typeof n.reopenLastProject=="boolean"?n.reopenLastProject:WSt.reopenLastProject}}catch{return{...WSt}}}async function E2n(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 k2n(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 D2n(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 P2n(t,n){const s=await fetch(`${Jl}/adapt-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...n})});of(s,`Could not add Volter Editor metadata to ${t}`);const c=await s.json();if(!s.ok||!c.path||!c.writes)throw new Error(c.error??`Could not add Volter Editor metadata to ${t}.`);return{path:c.path,writes:c.writes}}async function CMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,`Could not reveal ${t}`)}async function I2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return EN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function Vze(){let t;try{const s=await fetch(`${Jl}/project`);t=await L_(s,`No answer from ${Jl}/project`)}catch(s){return{status:"unknown",error:s instanceof Error?s.message:String(s)}}if(t.project)return{status:"project",project:t.project};const n=t.serving;return n&&typeof n.path=="string"?{status:"unreadable",path:n.path,error:typeof n.error=="string"?n.error:"unknown error"}:t.project===null?{status:"none"}:{status:"unknown",error:`Unrecognized ${Jl}/project response`}}async function N2n(){const t=await Vze();return t.status==="project"?t.project:null}async function O2n(t){const n=await zze(),s=await fetch(`${Jl}/open-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});let c;try{of(s,`Could not open project at ${t}`),c=await s.json()}catch(m){throw qFe(m instanceof Error?m.message:`HTTP ${s.status} returned an invalid response`)}if(!s.ok){if(c&&typeof c=="object"){const m=c;if(typeof m.error=="string"&&S4r(m.recovery))throw new AC(m.error,m.recovery);if(typeof m.error=="string")throw new Error(m.error)}throw new Error(`Could not open project at ${t}: HTTP ${s.status}`)}const d=c;return d.config&&w$e(d.config,n),d}function tve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function qZr(t){try{const n=await fetch(tve(t));if(n.ok)return await n.text()}catch{}return null}async function EMe(t){try{const n=await fetch(`/__editor/source-file?path=${encodeURIComponent(t.replace(/^\.?\//,""))}`,{cache:"no-store"});if(n.ok)return await n.text()}catch{}return null}function zZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function URt(t){try{const n=await fetch(tve(t),{method:"HEAD"});return n.ok?zZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function VZr(t){return await URt(t)==="present"}async function R2n(t,n,s){try{const c=s==="base64"?R4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function JRt(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 F2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function UZr(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 JZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let HSt=!1;async function WZr(t,n={}){try{const s=await oPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return EN(s,"Could not save editor state"),!0}catch(s){return HSt||(HSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Ige=null;async function WRt(){for(;fZ;){const t=fZ;fZ=null,await SN("state",{...t,_clientId:xC})}Ige=null,fZ&&(Ige=WRt())}function GSt(t){return fZ=t,Ige??=WRt(),Ige}async function HZr(t){await SN("command-received",{_requestId:t,_clientId:xC})}async function o_e(t){await SN("command-listener",{_clientId:xC,attached:t})}let GZr=0;function KZr(t){const n=++GZr;xZr(t.phase,xC,n),SN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function KSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await OZr(t,m):await SN("command-result",m)}async function nte(t,n){of(t,`gameplay recording ${n} failed`);const s=await t.json().catch(()=>({}));if(!t.ok)throw new Error(`gameplay recording ${n} failed: ${typeof s.error=="string"?s.error:`HTTP ${t.status}`}`);return s}async function 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 nte(s,"start")}async function j2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/dom?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"DOM event upload")}async function L2n(t,n,s,c){const d=new URLSearchParams({id:t.id,name:n}),m=await fetch(`${Jl}/recording/asset?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":s.type||"application/octet-stream"},body:s});await nte(m,"replay asset upload")}async function B2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/chunk?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"chunk upload")}async function $2n(t,n,s,c){const d=await fetch(`${Jl}/recording/finish`,{...s?{signal:s}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id,reason:n??null,replay:c??null})});await nte(d,"finish")}async function q2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function z2n(){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 XZr(){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 HRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function YZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function ZZr(){const t=await BR("");return HRt(t)}async function QZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function XSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function eQr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function tQr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return HRt(n).worktrees}async function rQr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Nge=null;const kMe=new Set,AMe=new Set;function nQr(t){Nge=t;for(const n of kMe)n(t);for(const n of AMe)n()}function Ih(){return Nge}function V2n(t){return kMe.add(t),Nge&&t(Nge),()=>{kMe.delete(t)}}function s_e(t){return AMe.add(t),()=>{AMe.delete(t)}}const nA="references",GRt=["public",nA],Uze=`/project-game-static/${nA}/`;function Oge(t,n){return`${t}/${n}`}function rve(t,n){return t===nA?`${Uze}${n}`:`/${n}`}function iQr(t){return t.startsWith(Uze)}function oQr(t){const n=t.startsWith("/")?t:`/${t}`;if(iQr(n))return Oge(nA,n.slice(Uze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function KRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(sQr,{assetPath:t,kind:n,sizeBytes:s},t)}function sQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=oQr(c),[g,S]=Ye.useState(s),[k,A]=Ye.useState(null),[F,D]=Ye.useState(null);Ye.useEffect(()=>{if(s!==void 0){S(s);return}let pe=!1;const[ue,...Ce]=m.split("/"),De=Ce.pop();return eve(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===De)?.size)}),()=>{pe=!0}},[m,s]),Ye.useEffect(()=>{if(A(null),D(null),n==="image"){const ue=new Image;return ue.onload=()=>A({width:ue.naturalWidth,height:ue.naturalHeight}),ue.onerror=()=>D("Image properties could not be read."),ue.src=d,()=>{ue.onload=null,ue.onerror=null}}const pe=document.createElement(n);return pe.preload="metadata",pe.onloadedmetadata=()=>A({...Number.isFinite(pe.duration)?{duration:pe.duration}:{},...pe instanceof HTMLVideoElement?{width:pe.videoWidth,height:pe.videoHeight}:{}}),pe.onerror=()=>D("Media properties could not be read. The file may be missing or unsupported."),pe.src=d,()=>{pe.onloadedmetadata=null,pe.onerror=null,pe.removeAttribute("src"),pe.load()}},[d,n]);const J=k?.width,$=k?.height,G=[];if(J&&$){let pe=J,ue=$;for(;ue;)[pe,ue]=[ue,pe%ue];G.push(["Dimensions",`${J} × ${$} px`],["Aspect ratio",`${J/pe}:${$/pe}`])}k?.duration!==void 0&&G.push(["Duration",`${Number(k.duration.toFixed(3))} s`]);const se=c.split("?")[0].match(/\.([^./]+)$/)?.[1];return se&&G.push(["Format",se.toUpperCase()]),g!==void 0&&G.push(["File size",g<1024?`${g} B`:`${(g/(g<1024*1024?1024:1024*1024)).toFixed(1)} ${g<1024*1024?"KB":"MB"}`]),G.push(["Location",m]),q.jsxs("div",{"data-testid":"media-properties",style:{padding:8,fontSize:12},children:[F?q.jsx("p",{role:"status",style:{color:Zf[2]},children:F}):!k&&q.jsx("p",{role:"status",style:{color:Zf[3]},children:"Reading media properties…"}),q.jsx("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",gap:"10px 12px"},children:G.map(([pe,ue])=>q.jsxs("div",{style:{display:"contents"},children:[q.jsx("dt",{style:{color:Zf[3]},children:pe}),q.jsx("dd",{style:{margin:0,color:Zf[1],overflowWrap:"anywhere"},children:ue})]},pe))})]})}const rOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>ITr),void 0)).AssetEditorShell})),aQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-APY_kwxf.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).AudioViewer})),cQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-DwbhIBCP.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).ImageViewer})),lQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-Yew5uBNv.js"),__vite__mapDeps([259,1,2,3,4,20,21,22,23]))).VideoViewer})),uQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-B6gQHP_k.js").then(n=>n.a),__vite__mapDeps([260,1,2,3,4,20,21]))).JsonAssetDocument})),YSt=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-Cd8JLsmA.js"),__vite__mapDeps([261,1,2,3,4,20,21,262,22,23]))).OnlineAssetDetail})),fQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-B2ZVLQeS.js"),__vite__mapDeps([263,1,2,3,4,20,21,260,257,22,23,258]))).SourceAssetViewer})),G1=new Map,XRt=new Map,nOe=new Map;let YRt=0;const DMe=new Set;function nR(){YRt++;for(const t of DMe)t()}function dQr(t){return DMe.add(t),()=>{DMe.delete(t)}}function pQr(){return YRt}function _Qr(t){return G1.get(t)}function ZRt(t){return G1.has(t)}function mQr(t,n){const s=new Set([...Object.keys(t),...Object.keys(n)]);for(const c of s){const d=t[c],m=n[c];if(d!==m&&JSON.stringify(d)!==JSON.stringify(m))return!1}return!0}function Jze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&nOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};mQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:xQr,closeable:!0,presentation:()=>{const S=G1.get(t);return S?S.entityId?{kind:"asset",entityId:S.entityId,assetKind:"model"}:!S.assetPath||S.online?null:{kind:"asset",path:S.assetPath,assetKind:S.kind}:null},persist:()=>{const S=G1.get(t);if(!(!S?.assetPath||S.online||S.entityId!==void 0))return{path:S.assetPath,assetKind:S.kind}},onActivate:()=>{(s.kind==="image"||s.kind==="video"||s.kind==="audio")&&oD()},onDispose:S=>{G1.delete(S)&&nR();const k=nOe.get(S);nOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function aN(t,n,s={}){const c=YYr(t),{frameName:d}=Z0e(t),m=XRt.get(DO(t))??t;return Jze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}Tee({kind:"asset",owner:"asset-documents",restore:async({state:t})=>{const n=t,s=typeof n?.path=="string"?n.path:null,c=typeof n?.assetKind=="string"?n.assetKind:null;return!s||!c||!await VZr(s)?!1:(aN(s,c),!0)}});async function QRt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=_Be(t);return s?n!=="model"||s.adapter!==null:!1},PR)}AN({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}`})});AN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Oze(Y0(c),n.entityId)?.assetDocument?.open()??null;if(!d)throw new Error(`Scene entity is not available: ${n.entityId}`);return d}const s=n.path;return s===void 0?null:aN(s,ZSt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":ZSt(n.assetKind,n.path??"");if(!await QRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await kBe(t)}});function ZSt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??hQr(n)}function hQr(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 gQr(t,n){const s=aZr(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 yQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function vQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=DO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===DO(n.oldPath)){const d=`/${DO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),XRt.set(DO(d),t),q3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>DO(d)===c)?(G1.set(t,{...s,unavailableReason:`The source ${s.assetPath} was deleted. Undo the deletion or close this editor.`}),nR()):n.type==="change"&&n.paths?.some(d=>DO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function bQr(t){return t.online?"online":ig(t.assetPath).editor==="environment"?"environment":t.kind==="json"?"json":["model","image","video","audio","source"].includes(t.kind)?t.kind:"unsupported"}function iOe(t){return{id:"source",title:"Source",icon:KTt,order:dQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function SQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(rOe,{documentId:t,active:s,type:n.kind,title:n.assetPath.split("/").pop()||"Deleted asset",status:"Source unavailable",children:q.jsx("div",{style:{padding:20,color:E_e},children:n.unavailableReason})});const c=bQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(rOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:W0r,order:dQ,body:{kind:"custom",render:()=>q.jsx(YSt,{online:k,mode:"inspector",onResolved:A=>yQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(YSt,{online:k,mode:"preview"})})}const d=(n.displayName??n.assetPath.split("/").pop())||n.entityId||"Asset",m=`${t}:${n.revision??0}`,g=q.jsxs("div",{style:{padding:20,color:E_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(tOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(tOe,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:E_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(tOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(fQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(uQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[iOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(cQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(lQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(aQr,{assetPath:n.assetPath},m);break;default:S=q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"No viewer available for this asset type."})}return q.jsx(rOe,{documentId:t,active:s,type:c,title:d,fill:c==="image"||c==="video",sections:c==="image"&&!n.assetPath.includes("#")||c==="video"||c==="audio"?[{id:"media-properties",title:"Properties",icon:KTt,order:dQ,body:{kind:"custom",render:()=>q.jsx(KRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[iOe(n)]:[]]:[iOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function xQr({documentId:t,active:n}){Ye.useSyncExternalStore(dQr,pQr),Ye.useEffect(()=>{const c=d=>{vQr(t,d.detail)};return window.addEventListener("editor:asset-mutation",c),()=>window.removeEventListener("editor:asset-mutation",c)},[t]);const s=G1.get(t);return q.jsx("div",{"data-testid":`asset-document:${t}`,style:{flex:1,minHeight:0,overflow:"hidden",pointerEvents:"auto",background:xBe[1]},children:s?q.jsx(Ye.Suspense,{fallback:q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"Loading asset viewer…"}),children:q.jsx(SQr,{id:t,spec:s,active:n})}):q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"This asset document is no longer available."})})}function DO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const eFt=["three","pixi","dom","babylon","phaser"],Wze=Object.freeze({up:"y",groundHeight:0}),tFt=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(),wQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),TQr=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(eFt).describe("Native substrate serving this region, by name"),dialect:bo().min(1).nullable().describe("Dialect writer serving this region, by name; null states outright that the host writes no source here (the region's truth is the game's own code)"),anchors:Gd(ed(iBe)).describe("Anchor kinds this region’s writer serves"),basis:wQr.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(tFt).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(),CQr=AR([Pg("manifest-roots"),Gd(TQr).min(1)]),EQr=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(tFt).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."}),kQr=wD(bo().min(1),EQr).describe("Per-region parameters for the `manifest-roots` rule, keyed by manifest root id: the `include` globs and `mounts` surfaces the mechanical derivation cannot produce");function Hze(t,n={}){return t.map(s=>({...DQr(s),...AQr(n[s.id])}))}function AQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function rFt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function DQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Wze;return s?n==="dom"?{id:t.id,surface:n,substrate:c,dialect:"jsx",anchors:["source-prop","source-structure"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:n==="three"?"r3f":"pixi-react",anchors:["source-prop","source-structure","construction-literal"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:null,anchors:["live-only"],basis:d}}const UQ="exported-composition-regions",PQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),IQr=AR([Pa({kind:Pg("root-mount")}).strict(),Pa({kind:Pg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:my().optional()}).strict(),Pa({kind:Pg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Pg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Pg("none"),reason:bo().min(1)}).strict()]),QSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),NQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:my(),reach:IQr,source:QSt.optional(),isolationSetup:QSt.optional(),finder:bo().min(1).optional()}).strict(),OQr=Pa({entries:Gd(NQr).optional(),find:Gd(PQr).optional(),default:bo().min(1).optional()}).strict(),nFt=["command","state"],RQr="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.",FQr=Pa({id:bo().min(1),kind:ed(nFt,{error:()=>RQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:ZI(t=>typeof t=="function",{message:"observation.answer must be a function evaluated against the mounted game"}).optional()}).strict().refine(t=>t.kind==="command"||t.locus===void 0,{path:["locus"],message:"observation.locus is valid only for a command declaration"}),MQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],jQr=Pa({root:bo().min(1),actions:ZI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:ZI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:ZI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),LQr=Pa({Layout:ZI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","keymap must be an imported KeymapContribution object").optional(),workspace:bo().min(1).optional(),inspector:ed(["column","properties","card"]).optional(),playUtilities:Gd(bo().min(1)).optional()}).strict(),BQr="`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.",iFt=Pa({editor:LQr.optional(),regions:CQr.optional(),regionIncludes:kQr.optional(),documents:OQr.optional(),observation:Gd(FQr).optional(),input:jQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:BQr});function Gze(t={}){const n=iFt.safeParse(t);if(!n.success)throw new Error(`volter.adapter.ts: invalid adapter definition — ${n.error.issues.map(s=>`${s.path.join(".")||"(root)"}: ${s.message}`).join("; ")}`);return Object.freeze({...t.editor?{editor:Object.freeze({...t.editor,...t.editor.playUtilities?{playUtilities:Object.freeze([...t.editor.playUtilities])}:{}})}:{},regions:t.regions??"manifest-roots",regionIncludes:Object.freeze({...t.regionIncludes??{}}),documents:Object.freeze({...t.documents??{}}),observation:Object.freeze([...t.observation??[]]),...t.input?{input:t.input}:{}})}function PO(t={}){return Gze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:UQ},{finder:"prefabsFromStories"}]}})}function PMe(t){if(t===null||typeof t!="object")throw new Error(`volter.adapter.ts must default-export defineAdapter({…}) / nativeAdapter() — got ${t===null?"null":typeof t}`);return Gze(t)}const U2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:MQr,AdapterDefinitionSchema:iFt,EXPORTED_COMPOSITION_REGIONS:UQ,NATIVE_REGION_BASIS:Wze,OBSERVATION_KINDS:nFt,SUBSTRATE_NAMES:eFt,defineAdapter:Gze,nativeAdapter:PO,parseAdapterDefinition:PMe,regionsFromManifestRoots:Hze,unmatchedRegionIncludeIds:rFt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Kze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Xze(t,n){const s=t??{},c=[];(typeof s.name!="string"||s.name.length===0)&&c.push("`name` must be a non-empty string");const d=s.schema;if((!d||typeof d.safeParse!="function")&&c.push("`schema` must be a Zod schema"),typeof s.run!="function"&&c.push("`run(selection, input)` must be a function"),c.length>0)throw new Error(`${n}: not a finder — ${c.join("; ")}`);return Kze(s)}function oFt(){return[...MZ.keys()]}function sFt(t,n){const s=MZ.get(t.finder);if(!s){const d=oFt();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 J2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Xze,registerFinder:Kze,registeredFinderNames:oFt,runRegisteredFinder:sFt},Symbol.toStringTag,{value:"Module"}));function ext(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var oOe={exports:{}};const $Qr={},qQr=Object.freeze(Object.defineProperty({__proto__:null,default:$Qr},Symbol.toStringTag,{value:"Module"})),wI=s0r(qQr);var txt;function zQr(){return txt||(txt=1,(function(t){var n={};/*! *****************************************************************************
|
|
942
|
+
</style><main><div class="brand-mark">${g4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const Age=new Set;function gZr(t){return Age.add(t),()=>{Age.delete(t)}}function yZr(){try{window.focus()}catch{}if(Age.size===0){window.location.reload();return}for(const t of[...Age])t()}function vZr(t,n,s={}){t.addEventListener("tab-refocus",c=>fZr(c)),t.addEventListener("tab-yield",c=>dZr(n,c)),t.addEventListener("tab-close",()=>hZr(n,s)),t.addEventListener("tab-adopt",()=>yZr())}const $k="/__editor",bZr=globalThis,md=bZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Q0e=UAt,SZr=uwr;function xZr(t,n,s){md?.reportPhase?.(t,n,s)}function wZr(t){md?.reportCensus?.(t)}function TZr(){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 CZr(){const t=new URLSearchParams({clientId:xC,participantId:Q0e,displayName:SZr});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 qRt=new Set(["editor-command"]);function zRt(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 EZr(t){P$!==t&&(P$=t,vZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),zRt(t,n=>!qRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(CZr()),md&&(md.source=kw)));const t=kw;EZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),qRt.has(c)&&zRt(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 kZr(){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 AZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=Bze(c=>{c!==null&&c.reason!=="server-gone"&&TZr()}),s=PZr();return()=>{s(),n(),t.close()}}const DZr=5;function PZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=DZr||(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;R4t(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 IZr=2e3,NZr={"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(NZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function SN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function OZr(t,n){const s=kw??md?.source??null;if(!s){await FZ("command-result",n);return}let c;const d=new Promise(A=>{c=A}),m=A=>{const F=A.data;let D=F;if(typeof F=="string")try{D=JSON.parse(F)}catch{}D===t&&c()};s.addEventListener(zSt,m);const g={...n,_awaitCallerReceipt:!0};s.send?.("command-result",g)||await FZ("command-result",g);let S,k=!1;await Promise.race([d.then(()=>{k=!0}),new Promise(A=>{S=setTimeout(A,IZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(zSt,m)}function RZr(t){SN("tab-route",{clientId:xC,participantId:Q0e,route:t})}function $ze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function FZr(t,n){try{const s=new URLSearchParams({root:t,dir:n}),c=await fetch(`${Jl}/assets?${s}`,{cache:"no-store"});return{ok:!0,entries:(await L_(c,`Could not list ${t}/${n} from ${Jl}/assets`)).entries??[]}}catch(s){return $ze(s)}}async function eve(t,n){if(t!=="public")return FZr(t,n);try{return{ok:!0,entries:(await gR().list(n)).map(c=>({name:c.name,type:c.type==="dir"?"directory":"file",...c.size===void 0?{}:{size:c.size},...c.mtime===void 0?{}:{modifiedAt:c.mtime}}))}}catch(s){return $ze(s)}}async function VRt(){try{const t=await fetch(`${Jl}/project-components`,{cache:"no-store"});return{ok:!0,entries:(await L_(t,`Could not list project components from ${Jl}/project-components`)).components??[]}}catch(t){return $ze(t)}}function _2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class USt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function JSt(t){return{offline:"Network delivery is offline. SSD assets remain available.","quota-limited":"The remote provider quota is exhausted. Retry after the provider resets it.","license-blocked":"This delivery is blocked because its license terms are not accepted.",unavailable:"No healthy SSD, cloud, or remote delivery is available for this variant.","provider-error":"The remote provider could not return delivery metadata. Retry the request."}[t]}const Dge=new Map,Pge=new Set;function qze(t,n){return`${t}:${n}`}function m2n(t,n){return Dge.get(qze(t,n))??null}function h2n(t){return Pge.add(t),()=>Pge.delete(t)}async function g2n(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Dge.clear();for(const s of n.downloaded)Dge.set(qze(s.source,s.id),`/${s.path}`);for(const s of Pge)s()}catch{}}async function y2n(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 v2n(t,n){return MZr(t,n)}async function MZr(t,n){const s=new URLSearchParams({source:t,id:n});let c;try{c=await fetch(`${Jl}/asset-library/files?${s}`)}catch(m){throw new USt("offline",m instanceof Error?m.message:JSt("offline"))}if(of(c,"Asset Library file lookup failed"),!c.ok){const m=await c.json().catch(()=>null),g=c.status===403?"license-blocked":c.status===429?"quota-limited":c.status===404?"unavailable":"provider-error";throw new USt(g,m?.error??JSt(g))}return(await c.json()).files}async function b2n(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 S2n(t){const n=await fetch(`${Jl}/asset-library/download`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...t,signal:void 0}),...t.signal?{signal:t.signal}:{}});of(n,"Could not download the asset");const s=await n.json();if(s.ok&&s.path){Dge.set(qze(t.source,t.id),`/${s.path}`);for(const c of Pge)c()}return s}async function x2n(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 w2n(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 T2n(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 jZr(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 LZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw qFe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw qFe(`HTTP ${t.status}`);try{EN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return jZr(await t.json())}catch{return null}}async function zze(){const t=await LZr();if(!t)throw T4r();return C4r(t),t}async function BZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function C2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,"Could not remove recent project")}const WSt={reopenLastProject:!1};async function $Zr(){try{const t=await fetch(`${Jl}/launcher-settings`),n=await L_(t,"Could not read launcher settings");return{reopenLastProject:typeof n.reopenLastProject=="boolean"?n.reopenLastProject:WSt.reopenLastProject}}catch{return{...WSt}}}async function E2n(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 k2n(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 D2n(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 P2n(t,n){const s=await fetch(`${Jl}/adapt-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...n})});of(s,`Could not add Volter Editor metadata to ${t}`);const c=await s.json();if(!s.ok||!c.path||!c.writes)throw new Error(c.error??`Could not add Volter Editor metadata to ${t}.`);return{path:c.path,writes:c.writes}}async function CMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});EN(n,`Could not reveal ${t}`)}async function I2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return EN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function Vze(){let t;try{const s=await fetch(`${Jl}/project`);t=await L_(s,`No answer from ${Jl}/project`)}catch(s){return{status:"unknown",error:s instanceof Error?s.message:String(s)}}if(t.project)return{status:"project",project:t.project};const n=t.serving;return n&&typeof n.path=="string"?{status:"unreadable",path:n.path,error:typeof n.error=="string"?n.error:"unknown error"}:t.project===null?{status:"none"}:{status:"unknown",error:`Unrecognized ${Jl}/project response`}}async function N2n(){const t=await Vze();return t.status==="project"?t.project:null}async function O2n(t){const n=await zze(),s=await fetch(`${Jl}/open-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});let c;try{of(s,`Could not open project at ${t}`),c=await s.json()}catch(m){throw qFe(m instanceof Error?m.message:`HTTP ${s.status} returned an invalid response`)}if(!s.ok){if(c&&typeof c=="object"){const m=c;if(typeof m.error=="string"&&S4r(m.recovery))throw new AC(m.error,m.recovery);if(typeof m.error=="string")throw new Error(m.error)}throw new Error(`Could not open project at ${t}: HTTP ${s.status}`)}const d=c;return d.config&&w$e(d.config,n),d}function tve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function qZr(t){try{const n=await fetch(tve(t));if(n.ok)return await n.text()}catch{}return null}async function EMe(t){try{const n=await fetch(`/__editor/source-file?path=${encodeURIComponent(t.replace(/^\.?\//,""))}`,{cache:"no-store"});if(n.ok)return await n.text()}catch{}return null}function zZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function URt(t){try{const n=await fetch(tve(t),{method:"HEAD"});return n.ok?zZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function VZr(t){return await URt(t)==="present"}async function R2n(t,n,s){try{const c=s==="base64"?R4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function JRt(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 F2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function UZr(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 JZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let HSt=!1;async function WZr(t,n={}){try{const s=await oPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return EN(s,"Could not save editor state"),!0}catch(s){return HSt||(HSt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Ige=null;async function WRt(){for(;fZ;){const t=fZ;fZ=null,await SN("state",{...t,_clientId:xC})}Ige=null,fZ&&(Ige=WRt())}function GSt(t){return fZ=t,Ige??=WRt(),Ige}async function HZr(t){await SN("command-received",{_requestId:t,_clientId:xC})}async function o_e(t){await SN("command-listener",{_clientId:xC,attached:t})}let GZr=0;function KZr(t){const n=++GZr;xZr(t.phase,xC,n),SN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function KSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await OZr(t,m):await SN("command-result",m)}async function nte(t,n){of(t,`gameplay recording ${n} failed`);const s=await t.json().catch(()=>({}));if(!t.ok)throw new Error(`gameplay recording ${n} failed: ${typeof s.error=="string"?s.error:`HTTP ${t.status}`}`);return s}async function 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 nte(s,"start")}async function j2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/dom?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"DOM event upload")}async function L2n(t,n,s,c){const d=new URLSearchParams({id:t.id,name:n}),m=await fetch(`${Jl}/recording/asset?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":s.type||"application/octet-stream"},body:s});await nte(m,"replay asset upload")}async function B2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/chunk?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await nte(m,"chunk upload")}async function $2n(t,n,s,c){const d=await fetch(`${Jl}/recording/finish`,{...s?{signal:s}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id,reason:n??null,replay:c??null})});await nte(d,"finish")}async function q2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function z2n(){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 XZr(){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 HRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function YZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function ZZr(){const t=await BR("");return HRt(t)}async function QZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function XSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function eQr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function tQr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return HRt(n).worktrees}async function rQr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Nge=null;const kMe=new Set,AMe=new Set;function nQr(t){Nge=t;for(const n of kMe)n(t);for(const n of AMe)n()}function Ih(){return Nge}function V2n(t){return kMe.add(t),Nge&&t(Nge),()=>{kMe.delete(t)}}function s_e(t){return AMe.add(t),()=>{AMe.delete(t)}}const nA="references",GRt=["public",nA],Uze=`/project-game-static/${nA}/`;function Oge(t,n){return`${t}/${n}`}function rve(t,n){return t===nA?`${Uze}${n}`:`/${n}`}function iQr(t){return t.startsWith(Uze)}function oQr(t){const n=t.startsWith("/")?t:`/${t}`;if(iQr(n))return Oge(nA,n.slice(Uze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function KRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(sQr,{assetPath:t,kind:n,sizeBytes:s},t)}function sQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=oQr(c),[g,S]=Ye.useState(s),[k,A]=Ye.useState(null),[F,D]=Ye.useState(null);Ye.useEffect(()=>{if(s!==void 0){S(s);return}let pe=!1;const[ue,...Ce]=m.split("/"),De=Ce.pop();return eve(ue,Ce.join("/")).then(Pe=>{!pe&&Pe.ok&&S(Pe.entries.find(be=>be.name===De)?.size)}),()=>{pe=!0}},[m,s]),Ye.useEffect(()=>{if(A(null),D(null),n==="image"){const ue=new Image;return ue.onload=()=>A({width:ue.naturalWidth,height:ue.naturalHeight}),ue.onerror=()=>D("Image properties could not be read."),ue.src=d,()=>{ue.onload=null,ue.onerror=null}}const pe=document.createElement(n);return pe.preload="metadata",pe.onloadedmetadata=()=>A({...Number.isFinite(pe.duration)?{duration:pe.duration}:{},...pe instanceof HTMLVideoElement?{width:pe.videoWidth,height:pe.videoHeight}:{}}),pe.onerror=()=>D("Media properties could not be read. The file may be missing or unsupported."),pe.src=d,()=>{pe.onloadedmetadata=null,pe.onerror=null,pe.removeAttribute("src"),pe.load()}},[d,n]);const J=k?.width,$=k?.height,G=[];if(J&&$){let pe=J,ue=$;for(;ue;)[pe,ue]=[ue,pe%ue];G.push(["Dimensions",`${J} × ${$} px`],["Aspect ratio",`${J/pe}:${$/pe}`])}k?.duration!==void 0&&G.push(["Duration",`${Number(k.duration.toFixed(3))} s`]);const se=c.split("?")[0].match(/\.([^./]+)$/)?.[1];return se&&G.push(["Format",se.toUpperCase()]),g!==void 0&&G.push(["File size",g<1024?`${g} B`:`${(g/(g<1024*1024?1024:1024*1024)).toFixed(1)} ${g<1024*1024?"KB":"MB"}`]),G.push(["Location",m]),q.jsxs("div",{"data-testid":"media-properties",style:{padding:8,fontSize:12},children:[F?q.jsx("p",{role:"status",style:{color:Zf[2]},children:F}):!k&&q.jsx("p",{role:"status",style:{color:Zf[3]},children:"Reading media properties…"}),q.jsx("dl",{style:{margin:0,display:"grid",gridTemplateColumns:"auto minmax(0, 1fr)",gap:"10px 12px"},children:G.map(([pe,ue])=>q.jsxs("div",{style:{display:"contents"},children:[q.jsx("dt",{style:{color:Zf[3]},children:pe}),q.jsx("dd",{style:{margin:0,color:Zf[1],overflowWrap:"anywhere"},children:ue})]},pe))})]})}const rOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>ITr),void 0)).AssetEditorShell})),aQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-BNZQHDg4.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).AudioViewer})),cQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-B_EV4B-Y.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).ImageViewer})),lQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-Ccuo8SbQ.js"),__vite__mapDeps([259,1,2,3,4,20,21,22,23]))).VideoViewer})),uQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-CI-VEvHK.js").then(n=>n.a),__vite__mapDeps([260,1,2,3,4,20,21]))).JsonAssetDocument})),YSt=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-Bt3SSxk5.js"),__vite__mapDeps([261,1,2,3,4,20,21,262,22,23]))).OnlineAssetDetail})),fQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-CuinHm6v.js"),__vite__mapDeps([263,1,2,3,4,20,21,260,257,22,23,258]))).SourceAssetViewer})),G1=new Map,XRt=new Map,nOe=new Map;let YRt=0;const DMe=new Set;function nR(){YRt++;for(const t of DMe)t()}function dQr(t){return DMe.add(t),()=>{DMe.delete(t)}}function pQr(){return YRt}function _Qr(t){return G1.get(t)}function ZRt(t){return G1.has(t)}function mQr(t,n){const s=new Set([...Object.keys(t),...Object.keys(n)]);for(const c of s){const d=t[c],m=n[c];if(d!==m&&JSON.stringify(d)!==JSON.stringify(m))return!1}return!0}function Jze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&nOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};mQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:xQr,closeable:!0,presentation:()=>{const S=G1.get(t);return S?S.entityId?{kind:"asset",entityId:S.entityId,assetKind:"model"}:!S.assetPath||S.online?null:{kind:"asset",path:S.assetPath,assetKind:S.kind}:null},persist:()=>{const S=G1.get(t);if(!(!S?.assetPath||S.online||S.entityId!==void 0))return{path:S.assetPath,assetKind:S.kind}},onActivate:()=>{(s.kind==="image"||s.kind==="video"||s.kind==="audio")&&oD()},onDispose:S=>{G1.delete(S)&&nR();const k=nOe.get(S);nOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function aN(t,n,s={}){const c=YYr(t),{frameName:d}=Z0e(t),m=XRt.get(DO(t))??t;return Jze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}Tee({kind:"asset",owner:"asset-documents",restore:async({state:t})=>{const n=t,s=typeof n?.path=="string"?n.path:null,c=typeof n?.assetKind=="string"?n.assetKind:null;return!s||!c||!await VZr(s)?!1:(aN(s,c),!0)}});async function QRt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=_Be(t);return s?n!=="model"||s.adapter!==null:!1},PR)}AN({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}`})});AN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Oze(Y0(c),n.entityId)?.assetDocument?.open()??null;if(!d)throw new Error(`Scene entity is not available: ${n.entityId}`);return d}const s=n.path;return s===void 0?null:aN(s,ZSt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":ZSt(n.assetKind,n.path??"");if(!await QRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await kBe(t)}});function ZSt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??hQr(n)}function hQr(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 gQr(t,n){const s=aZr(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 yQr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function vQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=DO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===DO(n.oldPath)){const d=`/${DO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),XRt.set(DO(d),t),q3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>DO(d)===c)?(G1.set(t,{...s,unavailableReason:`The source ${s.assetPath} was deleted. Undo the deletion or close this editor.`}),nR()):n.type==="change"&&n.paths?.some(d=>DO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function bQr(t){return t.online?"online":ig(t.assetPath).editor==="environment"?"environment":t.kind==="json"?"json":["model","image","video","audio","source"].includes(t.kind)?t.kind:"unsupported"}function iOe(t){return{id:"source",title:"Source",icon:KTt,order:dQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function SQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(rOe,{documentId:t,active:s,type:n.kind,title:n.assetPath.split("/").pop()||"Deleted asset",status:"Source unavailable",children:q.jsx("div",{style:{padding:20,color:E_e},children:n.unavailableReason})});const c=bQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(rOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:W0r,order:dQ,body:{kind:"custom",render:()=>q.jsx(YSt,{online:k,mode:"inspector",onResolved:A=>yQr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(YSt,{online:k,mode:"preview"})})}const d=(n.displayName??n.assetPath.split("/").pop())||n.entityId||"Asset",m=`${t}:${n.revision??0}`,g=q.jsxs("div",{style:{padding:20,color:E_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(tOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(tOe,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:E_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(tOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(fQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(uQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[iOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(cQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(lQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(aQr,{assetPath:n.assetPath},m);break;default:S=q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"No viewer available for this asset type."})}return q.jsx(rOe,{documentId:t,active:s,type:c,title:d,fill:c==="image"||c==="video",sections:c==="image"&&!n.assetPath.includes("#")||c==="video"||c==="audio"?[{id:"media-properties",title:"Properties",icon:KTt,order:dQ,body:{kind:"custom",render:()=>q.jsx(KRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[iOe(n)]:[]]:[iOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function xQr({documentId:t,active:n}){Ye.useSyncExternalStore(dQr,pQr),Ye.useEffect(()=>{const c=d=>{vQr(t,d.detail)};return window.addEventListener("editor:asset-mutation",c),()=>window.removeEventListener("editor:asset-mutation",c)},[t]);const s=G1.get(t);return q.jsx("div",{"data-testid":`asset-document:${t}`,style:{flex:1,minHeight:0,overflow:"hidden",pointerEvents:"auto",background:xBe[1]},children:s?q.jsx(Ye.Suspense,{fallback:q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"Loading asset viewer…"}),children:q.jsx(SQr,{id:t,spec:s,active:n})}):q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"This asset document is no longer available."})})}function DO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const eFt=["three","pixi","dom","babylon","phaser"],Wze=Object.freeze({up:"y",groundHeight:0}),tFt=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(),wQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),TQr=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(eFt).describe("Native substrate serving this region, by name"),dialect:bo().min(1).nullable().describe("Dialect writer serving this region, by name; null states outright that the host writes no source here (the region's truth is the game's own code)"),anchors:Gd(ed(iBe)).describe("Anchor kinds this region’s writer serves"),basis:wQr.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(tFt).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(),CQr=AR([Pg("manifest-roots"),Gd(TQr).min(1)]),EQr=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(tFt).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."}),kQr=wD(bo().min(1),EQr).describe("Per-region parameters for the `manifest-roots` rule, keyed by manifest root id: the `include` globs and `mounts` surfaces the mechanical derivation cannot produce");function Hze(t,n={}){return t.map(s=>({...DQr(s),...AQr(n[s.id])}))}function AQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function rFt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function DQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Wze;return s?n==="dom"?{id:t.id,surface:n,substrate:c,dialect:"jsx",anchors:["source-prop","source-structure"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:n==="three"?"r3f":"pixi-react",anchors:["source-prop","source-structure","construction-literal"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:null,anchors:["live-only"],basis:d}}const UQ="exported-composition-regions",PQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),IQr=AR([Pa({kind:Pg("root-mount")}).strict(),Pa({kind:Pg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:my().optional()}).strict(),Pa({kind:Pg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Pg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Pg("none"),reason:bo().min(1)}).strict()]),QSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),NQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:my(),reach:IQr,source:QSt.optional(),isolationSetup:QSt.optional(),finder:bo().min(1).optional()}).strict(),OQr=Pa({entries:Gd(NQr).optional(),find:Gd(PQr).optional(),default:bo().min(1).optional()}).strict(),nFt=["command","state"],RQr="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.",FQr=Pa({id:bo().min(1),kind:ed(nFt,{error:()=>RQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:ZI(t=>typeof t=="function",{message:"observation.answer must be a function evaluated against the mounted game"}).optional()}).strict().refine(t=>t.kind==="command"||t.locus===void 0,{path:["locus"],message:"observation.locus is valid only for a command declaration"}),MQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],jQr=Pa({root:bo().min(1),actions:ZI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:ZI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:ZI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),LQr=Pa({Layout:ZI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:ZI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","keymap must be an imported KeymapContribution object").optional(),workspace:bo().min(1).optional(),inspector:ed(["column","properties","card"]).optional(),playUtilities:Gd(bo().min(1)).optional()}).strict(),BQr="`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.",iFt=Pa({editor:LQr.optional(),regions:CQr.optional(),regionIncludes:kQr.optional(),documents:OQr.optional(),observation:Gd(FQr).optional(),input:jQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:BQr});function Gze(t={}){const n=iFt.safeParse(t);if(!n.success)throw new Error(`volter.adapter.ts: invalid adapter definition — ${n.error.issues.map(s=>`${s.path.join(".")||"(root)"}: ${s.message}`).join("; ")}`);return Object.freeze({...t.editor?{editor:Object.freeze({...t.editor,...t.editor.playUtilities?{playUtilities:Object.freeze([...t.editor.playUtilities])}:{}})}:{},regions:t.regions??"manifest-roots",regionIncludes:Object.freeze({...t.regionIncludes??{}}),documents:Object.freeze({...t.documents??{}}),observation:Object.freeze([...t.observation??[]]),...t.input?{input:t.input}:{}})}function PO(t={}){return Gze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:UQ},{finder:"prefabsFromStories"}]}})}function PMe(t){if(t===null||typeof t!="object")throw new Error(`volter.adapter.ts must default-export defineAdapter({…}) / nativeAdapter() — got ${t===null?"null":typeof t}`);return Gze(t)}const U2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:MQr,AdapterDefinitionSchema:iFt,EXPORTED_COMPOSITION_REGIONS:UQ,NATIVE_REGION_BASIS:Wze,OBSERVATION_KINDS:nFt,SUBSTRATE_NAMES:eFt,defineAdapter:Gze,nativeAdapter:PO,parseAdapterDefinition:PMe,regionsFromManifestRoots:Hze,unmatchedRegionIncludeIds:rFt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Kze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Xze(t,n){const s=t??{},c=[];(typeof s.name!="string"||s.name.length===0)&&c.push("`name` must be a non-empty string");const d=s.schema;if((!d||typeof d.safeParse!="function")&&c.push("`schema` must be a Zod schema"),typeof s.run!="function"&&c.push("`run(selection, input)` must be a function"),c.length>0)throw new Error(`${n}: not a finder — ${c.join("; ")}`);return Kze(s)}function oFt(){return[...MZ.keys()]}function sFt(t,n){const s=MZ.get(t.finder);if(!s){const d=oFt();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 J2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Xze,registerFinder:Kze,registeredFinderNames:oFt,runRegisteredFinder:sFt},Symbol.toStringTag,{value:"Module"}));function ext(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var oOe={exports:{}};const $Qr={},qQr=Object.freeze(Object.defineProperty({__proto__:null,default:$Qr},Symbol.toStringTag,{value:"Module"})),wI=s0r(qQr);var txt;function zQr(){return txt||(txt=1,(function(t){var n={};/*! *****************************************************************************
|
|
943
943
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
944
944
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
945
945
|
this file except in compliance with the License. You may obtain a copy of the
|
|
@@ -1396,9 +1396,9 @@ ${Oen(g)}`)}const m={manifestVersion:d.manifestVersion,name:d.name,version:d.ver
|
|
|
1396
1396
|
`)}function VFt(t){return zFt(t,Array.from(t.styleSheets))}function trn(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?"":zFt(t,c)}async function rrn(t){await t.fonts.ready;let n=VFt(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 nrn(t,n){const s=t.ownerDocument.defaultView?.getComputedStyle(t);if(s){for(const c of Array.from(s)){if(!c.startsWith("--"))continue;const d=s.getPropertyValue(c);d&&n.style.setProperty(c,d)}for(const c of["color","color-scheme","font-family","font-size","font-weight","line-height","text-shadow"]){const d=s.getPropertyValue(c);d&&n.style.setProperty(c,d)}}}function fVe(t){const s=t.ownerDocument.defaultView?.getComputedStyle(t)?.backgroundColor;if(!s||s==="transparent")return null;const c=/^rgba?\([^)]*,\s*([\d.]+)\s*\)$/.exec(s)?.[1];return c!==void 0&&Number(c)===0?null:s}function UFt(t){const n=[],s=new Set;for(const c of Array.from(t.querySelectorAll("canvas"))){if(!ove(c))continue;const d=[];for(let m=c.parentElement;m&&(m===t||t.contains(m))&&(d.unshift(m),m!==t);m=m.parentElement);for(const m of[...d,...irn(t,c)])s.has(m)||(s.add(m),n.push(m))}return n}function irn(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))orn(F,t)&&d.add(F)}return Array.from(d).reverse()}function orn(t,n){return t instanceof HTMLElement&&(t===n||n.contains(t))&&fVe(t)!==null}function JFt(t){const n=[];for(let s=t.parentElement;s;s=s.parentElement)n.unshift(s);return n}function srn(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 arn(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 crn(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 WFt(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?nrn(t,g):g.style.background="transparent";const S=c?.transparentBackdrops;if(S?.has(t)&&(g.style.background="transparent"),t.closest(`[${YQ}]`)&&g.setAttribute(YQ,""),m){const se=c?.documentCssText??VFt(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=LFt();if(A){const se=t.ownerDocument.createElement("style");se.textContent=A,g.appendChild(se)}if(!m){const se=trn(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);crn(se,pe,S),srn(se,pe),arn(se,pe);const ue=[...se instanceof HTMLImageElement?[se]:[],...Array.from(se.querySelectorAll("img"))];[...pe instanceof HTMLImageElement?[pe]:[],...Array.from(pe.querySelectorAll("img"))].forEach((X,we)=>{const qe=ue[we];if(!qe?.complete||qe.naturalWidth<=0||qe.naturalHeight<=0)return;const bt=qe.currentSrc||qe.src,Pt=c?.snapshots?.imgs.get(qe),Wt=Pt&&Pt.src===bt?Pt.url:uOe(t.ownerDocument,qe);(!Pt||Pt.src!==bt)&&c?.snapshots?.imgs.set(qe,{src:bt,url:Wt}),Wt&&X.setAttribute("src",Wt)});const De=[...se instanceof HTMLVideoElement?[se]:[],...Array.from(se.querySelectorAll("video"))];[...pe instanceof HTMLVideoElement?[pe]:[],...Array.from(pe.querySelectorAll("video"))].forEach((X,we)=>{const qe=De[we];if(!qe||qe.readyState<2||qe.videoWidth<=0)return;const bt=uOe(t.ownerDocument,qe);if(!bt)return;const Pt=t.ownerDocument.createElement("img");Pt.setAttribute("src",bt),Pt.setAttribute("style",X.getAttribute("style")??""),X.replaceWith(Pt)});const be=Array.from(se.querySelectorAll("canvas"));Array.from(pe.querySelectorAll("canvas")).forEach((X,we)=>{const qe=be[we];if(qe&&ove(qe)){X.remove();return}const bt=qe?c?.canvasPixels?.get(qe):void 0,Pt=bt?uOe(t.ownerDocument,bt):null;if(!Pt){X.remove();return}const Wt=t.ownerDocument.createElement("img");Wt.setAttribute("src",Pt),Wt.setAttribute("style",`${X.getAttribute("style")??""}`);for(const zt of Array.from(X.attributes))Wt.setAttribute(zt.name,zt.value);X.replaceWith(Wt)}),g.appendChild(pe)}const F=new XMLSerializer().serializeToString(g),D=c?.rasterSize?.width??n,J=c?.rasterSize?.height??s,$=D===n&&J===s?"":` viewBox="0 0 ${n} ${s}"`;return{svg:`<svg xmlns="http://www.w3.org/2000/svg" width="${D}" height="${J}"${$}><foreignObject width="100%" height="100%">${F}</foreignObject></svg>`,overlayCount:d.length}}const lrn={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(`${lrn[n]} capture failed — ${c}`),this.name="CaptureLayerError",this.layer=n}}function qge(t,n){return n instanceof HI?n:new HI(t,n)}const X4=32,urn=24,dVe=.9;function HFt(t,n){return[t[n*4]??0,t[n*4+1]??0,t[n*4+2]??0]}function frn(t,n){const s=new Map;for(let m=0;m<n;m++){const[g,S,k]=HFt(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 drn(t,n,s){let c=0;for(let d=0;d<n;d++){const m=HFt(t,d);Math.max(Math.abs(m[0]-s[0]),Math.abs(m[1]-s[1]),Math.abs(m[2]-s[2]))<=urn&&(c+=1)}return c}function GFt(t,n,s=dVe){const{mean:c,distinctRegions:d}=frn(t,n),m=Math.round(drn(t,n,c)/n*1e3)/1e3,g=`#${c.map(A=>A.toString(16).padStart(2,"0")).join("")}`,S=m>=s,k=`this capture is ~${Math.round(m*100)}% one flat surface (${g}) — likely a wall, an empty view, or a buried camera; it is weak evidence.`;return{dominantFraction:m,dominantColor:g,distinctRegions:d,degenerate:S,...S?{warning:k}:{}}}function HMe(t,n,s=dVe){try{const c=n.createElement("canvas");c.width=X4,c.height=X4;const d=c.getContext("2d");if(!d)return null;d.drawImage(t,0,0,X4,X4);const m=d.getImageData(0,0,X4,X4);return GFt(m.data,X4*X4,s)}catch{return null}}async function KFt(t,n=350){if(typeof t.getAnimations!="function")return;const s=t.getAnimations({subtree:!0}).filter(c=>{const d=c.effect?.getComputedTiming().endTime;return typeof d=="number"&&Number.isFinite(d)});s.length!==0&&await Promise.race([Promise.allSettled(s.map(c=>c.finished)),new Promise(c=>setTimeout(c,n))])}async function ZQ(t,n=75){const s=t.ownerDocument.defaultView?.requestAnimationFrame.bind(t.ownerDocument.defaultView);s&&await new Promise(c=>{let d=!1;const m=()=>{d||(d=!0,clearTimeout(g),c())},g=setTimeout(m,n);s(()=>s(m))})}async function XFt(t,n){return await ZQ(t),(n?.presentsOnCanvas??t.querySelectorAll("canvas").length>0)||await new Promise(c=>setTimeout(c,650)),await KFt(t),await ZQ(t),GMe(t,2,n??{})}const YFt=.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 QFt(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 prn(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>YFt;return c>0&&(S||QFt(d.data,m))?{kind:"retry"}:S?{kind:"blank",transparentFraction:g}:{kind:"ok"}}function _rn(t,n,s){let c;try{c=t.getImageData(0,0,n,s)}catch{return{left:0,top:0,right:n,bottom:s}}let d=n,m=s,g=-1,S=-1;const k=c.data;for(let A=0;A<s;A+=1){const F=A*n*4;for(let D=0;D<n;D+=1)k[F+D*4+3]!==0&&(D<d&&(d=D),D>g&&(g=D),A<m&&(m=A),A>S&&(S=A))}return g<0?null:{left:d,top:m,right:g+1,bottom:S+1}}async function GMe(t,n,s){const c=t.ownerDocument.createElement("canvas"),d=await e9t(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=_rn(S,m,g);if(D===null){if(s.allowTransparent)return{base64:c.toDataURL("image/png").split(",")[1],mimeType:"image/png",layers:d};if(n>0)return await new Promise(we=>setTimeout(we,300)),await ZQ(t),GMe(t,n-1,s);throw new HI("dom-overlay","the composite is ~100% fully transparent after two repaints — nothing in it painted a backdrop, so the PNG would read as a flat black frame. This subject's background is painted by an element OUTSIDE what is being photographed (a detached clone carries no ancestors), or its own DOM never mounted.")}const J=16,$=Math.max(0,D.left-J),G=Math.max(0,D.top-J),se=Math.min(m,D.right+J),pe=Math.min(g,D.bottom+J),ue=t.ownerDocument.createElement("canvas");ue.width=Math.max(1,se-$),ue.height=Math.max(1,pe-G);const Ce=ue.getContext("2d");if(!Ce)throw new HI("composite-output","no 2d canvas context");const De=getComputedStyle(t).backgroundColor;De&&De!=="transparent"&&De!=="rgba(0, 0, 0, 0)"&&(Ce.fillStyle=De,Ce.fillRect(0,0,ue.width,ue.height)),Ce.drawImage(c,$,G,ue.width,ue.height,0,0,ue.width,ue.height);const Pe=HMe(ue,t.ownerDocument);let be;try{be=ue.toDataURL("image/png")}catch(we){throw qge("composite-output",we)}const X=be.indexOf(",");return{base64:X>=0?be.slice(X+1):be,mimeType:"image/png",layers:d,...Pe?{flatness:Pe}:{}}}if(d.canvases===0&&d.domOverlays>0&&!s.allowTransparent){const D=prn(S,m,g,n);if(D.kind==="retry")return await new Promise(J=>setTimeout(J,300)),await ZQ(t),GMe(t,n-1,s);if(D.kind==="blank")throw new HI("dom-overlay",`the composite is ~${Math.round(D.transparentFraction*100)}% fully transparent after two repaints — nothing in it painted a backdrop, so the PNG would read as a flat black frame. This subject's background is painted by an element OUTSIDE what is being photographed (a detached clone carries no ancestors), or its own DOM never mounted.`)}const k=HMe(c,t.ownerDocument);let A;try{A=c.toDataURL("image/png")}catch(D){throw qge("composite-output",D)}const F=A.indexOf(",");return{base64:F>=0?A.slice(F+1):A,mimeType:"image/png",layers:d,...k?{flatness:k}:{}}}function hxt(t,n,s,c=1,d=1){for(const m of n){const g=fVe(m);if(!g)continue;const S=m.getBoundingClientRect();t.fillStyle=g,t.fillRect((S.left-s.left)*c,(S.top-s.top)*d,S.width*c,S.height*d)}}async function e9t(t,n,s){const c=t.getBoundingClientRect(),d=Math.max(1,Math.round(s?.size?.width??c.width)),m=Math.max(1,Math.round(s?.size?.height??c.height)),g=s?.size?d/c.width:1,S=s?.size?m/c.height:1;n.width!==d&&(n.width=d),n.height!==m&&(n.height=m);const k=n.getContext("2d");if(!k)throw new HI("composite-output","no 2d canvas context");if(k.clearRect(0,0,d,m),s?.cropToContent!==!0){const se=getComputedStyle(t).backgroundColor;se&&se!=="transparent"&&se!=="rgba(0, 0, 0, 0)"&&(k.fillStyle=se,k.fillRect(0,0,d,m))}s?.includeDocumentStyles&&hxt(k,JFt(t),c,g,S);const F=Array.from(t.querySelectorAll("canvas")).some(se=>!ove(se))?null:s?.overlayCache?.take(t,d,m),D=F?.backdrops??UFt(t);hxt(k,D,c,g,S);const J=Array.from(t.querySelectorAll("canvas")).filter(se=>{const pe=se.getBoundingClientRect();return se.width>0&&se.height>0&&pe.width>0&&pe.height>0}),$=new Map;for(const se of J)try{const pe=se.getBoundingClientRect(),ue=await s?.canvasFrame?.(se)??se;$.set(se,ue),k.drawImage(ue,(pe.left-c.left)*g,(pe.top-c.top)*S,pe.width*g,pe.height*S)}catch(pe){throw qge("canvas",pe)}let G=0;try{if(F)F.image&&k.drawImage(F.image,0,0,d,m),G=F.overlayCount;else{const se=performance.now(),pe=WFt(t,d/g,m/S,{includeDocumentStyles:s?.includeDocumentStyles,projectRoot:s?.projectRoot,documentCssText:s?.includeDocumentStyles?await rrn(t.ownerDocument):void 0,canvasPixels:$,transparentBackdrops:new Set(D),snapshots:s?.snapshots,rasterSize:{width:d,height:m}});if(pe){const ue=new Image;ue.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(pe.svg)}`,await ue.decode(),k.drawImage(ue,0,0,d,m),G=pe.overlayCount,s?.overlayCache?.store(t,d,m,{image:ue,overlayCount:pe.overlayCount,backdrops:D},performance.now()-se)}else s?.overlayCache?.store(t,d,m,{image:null,overlayCount:0,backdrops:D},performance.now()-se)}}catch(se){throw qge("dom-overlay",se)}return{canvases:J.length,domOverlays:G}}const mrn=Object.freeze(Object.defineProperty({__proto__:null,CaptureLayerError:HI,FLATNESS_GRID:X4,FLATNESS_WARN_AT:dVe,OVERLAY_CACHE_MAX_AGE_MS:BFt,OVERLAY_REBUILD_COST_MULTIPLIER:qFt,OVERLAY_REBUILD_FLOOR_MS:$Ft,TRANSPARENT_PIXEL_LIMIT:YFt,ancestorBackdrops:JFt,buildOverlaySvg:WFt,capturePlayComposite:XFt,createImageSnapshotCache:Qtn,createOverlayFrameCache:ern,drawPlayCompositeFrame:e9t,hasExcessNearBlackPixels:QFt,isRootCanvas:ove,measureFlatness:GFt,opaqueBackgroundColor:fVe,rootSurfaceBackdrops:UFt,sampleFlatness:HMe,transparentPixelFraction:ZFt,waitForFiniteMotion:KFt,waitForPaint:ZQ},Symbol.toStringTag,{value:"Module"}));function ste(t){const n=TC(),s=n?.descriptor.presentation?.()??void 0,c=s2(n?.descriptor.id),d=Lye(),m=c?.selection?c.selection.read():d?.adapter?.selection?.get()??(c?[...t.selectedEntityIds]:[]),g=c?.read()??void 0,S=aDt();return{version:1,workspace:zS(),...Nhe()===null?{}:{style:Nhe()},keymap:dR(),...s?{document:s}:{},...m.length>0?{selection:{ids:[...m]}}:{},...g?{viewport:g}:{},...S?{panel:S}:{}}}function hrn(t){return cCt(ste(t),window.location.href)}let $I=[],grn=0,t9t=0;const KMe=new Set;function XMe(){t9t++;for(const t of KMe)t()}function r9t(){XMe()}function YMe(){return X1()}function pVe(){let t=null;for(const{session:n}of $I){const s=n.startedAt?.()??null;s!==null&&(!t||s>t.startedAt)&&(t={startedAt:s,endedAt:n.endedAt?.()??null})}return t}function n9t(){for(const{session:t}of $I){const n=t.restartRequired?.()??null;if(n!==null)return n}return null}function i9t(){(X1().find(s=>(s.restartRequired?.()??null)!==null)??X1().find(s=>s.mounted()&&s.restart))?.restart?.()}function _Ve(){for(const t of X1()){if(!t.mounted())continue;const n=t.frameCanvas?.()??null;if(n)return n}return null}function mVe(t){for(const n of X1())if(!(!n.mounted()||!n.snapshotFrame)&&n.frameCanvas?.()===t)return n.snapshotFrame();return null}function hVe(t){for(const n of X1()){if(!n.mounted()||!n.command)continue;const s=n.command(t);if(s)return s}return null}function gVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.scenes?.()??null;if(n&&typeof n.goToScene=="function")return n}return null}function sve(){for(const t of X1()){if(!t.mounted())continue;const n=t.surface?.()??null;if(n)return n}return null}function yVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.coverage?.()??null;if(n)return n}return null}function vVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.authoringRefusal?.()??null;if(n!==null)return n}return null}function o9t(t){return X1().find(s=>s.mounted()&&s.remount)?.remount?.(t)??null}function s9t(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:grn++};return $I=[...$I,n],XMe(),()=>{$I=$I.filter(s=>s!==n),XMe()}}function X1(){return[...$I].sort((t,n)=>(t.session.priority??0)-(n.session.priority??0)||t.seq-n.seq).map(t=>t.session)}function bVe(){return X1().some(t=>t.mounted())}function ave(){return X1().some(t=>t.playing())}function SVe(){for(const t of X1())t.stop()}function a9t(t){for(const n of X1()){const s=n.instanceContainer(t);if(s)return s}return null}function xVe(t){return KMe.add(t),()=>KMe.delete(t)}function c9t(){return t9t}const yrn=Object.freeze(Object.defineProperty({__proto__:null,anyLiveSessionMounted:bVe,anyLiveSessionPlaying:ave,dispatchLiveCommand:hVe,liveAuthoringRefusal:vVe,liveCoverage:yVe,liveFrameCanvas:_Ve,liveInstanceContainer:a9t,liveRestartRequired:n9t,liveRunWindow:pVe,liveScenes:gVe,liveSessions:YMe,liveSessionsVersion:c9t,liveSurface:sve,notifyLiveSessionsChanged:r9t,registerLiveSession:s9t,remountLiveSelection:o9t,restartLiveSession:i9t,snapshotLiveFrame:mVe,stopAllLiveSessions:SVe,subscribeLiveSessions:xVe},Symbol.toStringTag,{value:"Module"}));async function l9t(t){const n=mVe(t);return n||ztn(t)}function vrn(t){const n=t;return n&&typeof n.toDataURL=="function"?n:null}const brn=Object.freeze(Object.defineProperty({__proto__:null,liveCanvasFrame:l9t,readablePngSource:vrn},Symbol.toStringTag,{value:"Module"}));let qZ=null;function Srn(){if(!qZ)return!0;try{return qZ()}catch{return!0}}function xrn(t){return qZ=t,()=>{qZ===t&&(qZ=null)}}const u9t=new WeakMap;function PSn(t,n){u9t.set(t,n)}function f9t(t){for(const n of Array.from(t.querySelectorAll("iframe"))){const s=u9t.get(n),c=s?.container();if(s&&c)return{container:c,canvasFrame:s.canvasFrame}}return null}function cve(t){return Array.from(document.querySelectorAll("[data-workspace-document-id]")).find(n=>n.dataset.workspaceDocumentId===t&&(CRe()===null||n.dataset.workspaceViewId===CRe()))??null}const ZMe=["document","header","shelf","rail","outliner","content","utility","menubar"],wrn={rail:{part:"properties",view:"volter.properties",title:"Properties"},outliner:{part:"outliner",view:"volter.outliner",title:"Outliner"},content:{part:"content",view:"volter.content",title:"Content"}},Trn={header:{prefix:"document-header",title:"header strip"},shelf:{prefix:"document-shelf",title:"tool shelf"}};function wVe(t){const n=[t.container,...t.extraRoots??[]];for(let c=0;c<n.length;c++)for(const d of n[c].querySelectorAll("[data-volter-portal]")){const m=d.dataset.volterPortal;if(m===void 0)continue;const g=document.querySelector(`[data-volter-portal-content="${CSS.escape(m)}"]`);g&&!n.includes(g)&&n.push(g)}const s=f9t(t.container)?.container;return s&&!n.includes(s)&&n.push(s),n}function Crn(t){return document.querySelector(`[data-volter-part="${t}"]`)}function Ern(){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 krn(){const t=document.querySelector('[data-testid="app-menubar"]');if(!t)throw new Error("The application menus are not on screen, so scope 'menubar' has nothing to reach.");return{container:t,name:"menubar",id:"app-menubar",title:"application menus"}}function Arn(t){if(t==="utility")return Ern();if(t==="menubar")return krn();const n=t==="rail"||t==="outliner"||t==="content"?wrn[t]:null;if(n){const s=Crn(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 Drn(t)}function Drn(t){const n=TC();if(!n)throw new Error(`No active editor document, so scope '${t}' has nothing to reach. The editor's own views are still readable: scope 'outliner', scope 'rail', and scope 'content'.`);const s=Pp()??n.descriptor.id;if(s===a0&&t!=="header")throw new Error("The Game document is out of this door's scope: drive and read a game through its own doors — `game.commands()`/`game.command(n)`/`game.state(n)`, or `page(step)` during play — never through synthetic DOM gestures. Its header strip (the editor's own Play bar and controls) is scope 'header'; the editor's views around it stay readable: scope 'outliner' and scope 'rail'.");const c=cve(s);if(!c)throw new Error(`The active document's surface is not mounted: ${s} (${n.title}). Present it first (\`editor.present\`) and retry.`);const d=c.closest(".volter-dock-document")??c;if(t==="document")return{container:d,name:t,id:s,title:n.title};const m=Trn[t],g=d.querySelector(`[data-testid="${m.prefix}:${s}"]`);if(!g)throw new Error(`The active document "${n.title}" (${s}) draws no ${m.title}, so scope '${t}' has nothing to reach. Its whole box is scope 'document'.`);return{container:g,name:t,id:s,title:`${n.title} — ${m.title}`}}function gxt(t,n){return new Error(`Out of scope: ${n}. This step ran in scope '${t.name}' — "${t.title}" (${t.id}) — and reaches ONLY inside it. The other surfaces are named, not walked to: ${ZMe.filter(s=>s!==t.name).map(s=>`'${s}'`).join(", ")} (pass \`{ scope }\`). The rest of the page is deliberately unreachable.`)}const yxt=400,vxt="rgb(1, 2, 3)",Prn="rgba(0, 0, 0, 0)";function Irn(t,n){const s=getComputedStyle(t).getPropertyValue(n).trim();if(s==="")return"";const d=t.ownerDocument.createElement("span");d.style.position="absolute",d.style.pointerEvents="none",d.style.visibility="hidden",d.style.backgroundColor=vxt,t.appendChild(d);try{d.style.backgroundColor=`var(${n})`;const m=getComputedStyle(d).backgroundColor.trim();return m===vxt||m===Prn?s:m}finally{d.remove()}}function Nrn(t,n){const s=getComputedStyle(t),c={};for(const d of n)c[d]=d.startsWith("--")?Irn(t,d):s.getPropertyValue(Orn(d)).trim();return c}function Orn(t){return t.includes("-")?t:t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function bxt(t,n,s){const c=t,d={};for(const A of Array.from(t.attributes))d[A.name]=A.value;const m=c.getBoundingClientRect(),g=t.value,S=t.checked,k=(c.innerText||t.textContent||"").trim();return{index:n,tag:t.tagName.toLowerCase(),text:k.length>yxt?`${k.slice(0,yxt)}…`:k,attributes:d,rect:{x:m.x,y:m.y,width:m.width,height:m.height},...typeof g=="string"?{value:g}:{},...typeof S=="boolean"?{checked:S}:{},...c.hasAttribute("disabled")?{disabled:!0}:{},...s&&s.length>0?{styles:Nrn(c,s)}:{}}}function mme(t,n,s){const c=p9t(t,n),d=c[s];if(!d)throw gxt(t,`${JSON.stringify(n)} matched ${c.length} element(s), so index ${s} does not exist`);if(!wVe(t).some(m=>m.contains(d)))throw gxt(t,`${JSON.stringify(n)} resolved outside the document's container`);return d}function Rrn(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{bubbles:!0,cancelable:!0,composed:!0,view:t.ownerDocument.defaultView??window,clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1],button:0,buttons:1}}function TVe(t){let n=t;for(;n&&!(n.hasAttribute("tabindex")||n.tabIndex>=0||n.isContentEditable);)n=n.parentElement;(n??t).focus({preventScroll:!0})}function d9t(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1]}}function Frn(t,n){const{clientX:s,clientY:c}=d9t(t,n);return t.ownerDocument.elementFromPoint(s,c)??t}async function Mrn(t,n=1,s,c={},d){const m={...Rrn(t,s),...d,...c},g=Math.max(1,Math.round(n)),S=t.ownerDocument;for(let k=1;k<=g;k++){const A={...m,detail:k},F={...m,buttons:0,detail:k};zZ(t,()=>{t.dispatchEvent(new PointerEvent("pointerdown",{...A,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",A)),TVe(t)}),await new Promise(J=>setTimeout(J,0));const D=t.isConnected?t:S.elementFromPoint(m.clientX??0,m.clientY??0)??S.body;if(zZ(D,()=>{D.dispatchEvent(new PointerEvent("pointerup",{...F,pointerType:"mouse"})),D.dispatchEvent(new MouseEvent("mouseup",F)),D===t&&t.dispatchEvent(new MouseEvent("click",F))}),D!==t)return}g>=2&&zZ(t,()=>t.dispatchEvent(new MouseEvent("dblclick",{...m,buttons:0,detail:g})))}function jrn(t,n,s,c){const d=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t:null;if(!d)throw new Error(`Cannot type into a <${t.tagName.toLowerCase()}>: this verb drives a text field. Click the control that opens one first (the Outliner's rename is a double click — \`click(selector, { clicks: 2 })\`), then \`type\` into the field it puts up.`);const m=t instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,g=Object.getOwnPropertyDescriptor(m,"value")?.set,S=A=>{g?g.call(d,A):d.value=A};d.focus();let k=d.value;s&&k!==""&&(d.select?.(),k="",S(k),d.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0,inputType:"deleteContentBackward"})));for(const A of[...n]){const F={key:A,bubbles:!0,cancelable:!0,composed:!0};d.dispatchEvent(new KeyboardEvent("keydown",F)),k+=A,S(k),d.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0,inputType:"insertText",data:A})),d.dispatchEvent(new KeyboardEvent("keyup",F))}if(c){const A={key:"Enter",code:"Enter",bubbles:!0,cancelable:!0,composed:!0};d.dispatchEvent(new KeyboardEvent("keydown",A)),d.dispatchEvent(new KeyboardEvent("keyup",A))}}function zZ(t,n){const c=(t.ownerDocument.defaultView??window).Element.prototype,d=c.setPointerCapture,m=c.releasePointerCapture;c.setPointerCapture=()=>{},c.releasePointerCapture=()=>{};try{n()}finally{c.setPointerCapture=d,c.releasePointerCapture=m}}let QMe=null;function Lrn(){const t=QMe;if(t===null)throw new Error("Nothing is held: release lets go of a drag that `hold: true` left pressed, and none is.");return QMe=null,zZ(t.element,()=>{t.element.dispatchEvent(new PointerEvent("pointerup",{...t.end,pointerType:"mouse"})),t.element.dispatchEvent(new MouseEvent("mouseup",t.end)),t.button===2&&t.element.dispatchEvent(new MouseEvent("contextmenu",t.end))}),t.element}function Brn(t,n,s,c,d={},m=[],g=0,S=!1){const k=t.getBoundingClientRect(),A=g===0?1:g===2?2:4,F=(J,$)=>({bubbles:!0,cancelable:!0,composed:!0,view:window,clientX:k.x+k.width*J,clientY:k.y+k.height*$,button:g,buttons:A,altKey:d.altKey??!1,ctrlKey:d.ctrlKey??!1,metaKey:d.metaKey??!1,shiftKey:d.shiftKey??!1}),D=F(n[0],n[1]);zZ(t,()=>{t.dispatchEvent(new PointerEvent("pointermove",{...D,button:-1,buttons:0,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",{...D,buttons:0})),t.dispatchEvent(new PointerEvent("pointerdown",{...D,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",D)),TVe(t);const J=Math.max(1,Math.round(c)),$=[n,...m,s];for(let se=0;se+1<$.length;se++){const pe=$[se],ue=$[se+1];for(let Ce=1;Ce<=J;Ce++){const De=Ce/J,Pe=F(pe[0]+(ue[0]-pe[0])*De,pe[1]+(ue[1]-pe[1])*De);t.dispatchEvent(new PointerEvent("pointermove",{...Pe,button:-1,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",Pe))}}const G={...F(s[0],s[1]),buttons:0};if(S){QMe={element:t,end:G,button:g};return}t.dispatchEvent(new PointerEvent("pointerup",{...G,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mouseup",G)),g===2?t.dispatchEvent(new MouseEvent("contextmenu",G)):g===0&&n[0]===s[0]&&n[1]===s[1]&&t.dispatchEvent(new MouseEvent("click",G))})}function $rn(t,n){if(n)return n;const s=document.activeElement;return s instanceof HTMLElement&&wVe(t).some(c=>c.contains(s))?s:t.container}function p9t(t,n){try{return wVe(t).flatMap(s=>Array.from(s.querySelectorAll(n)))}catch(s){throw new Error(`Invalid selector ${JSON.stringify(n)}: ${String(s)}`)}}function fOe(t,n){const s=n.selector===void 0?null:mme(t,n.selector,n.index??0);return $rn(t,s)}const qrn={" ":"Space","`":"Backquote","-":"Minus","=":"Equal","[":"BracketLeft","]":"BracketRight","\\":"Backslash",";":"Semicolon","'":"Quote",",":"Comma",".":"Period","/":"Slash"};function zrn(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:qrn[t]??t}const Vrn={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 Urn(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]):Vrn[t]??0}function Jrn(t){const n=t===void 0?null:/^Numpad([0-9])$/.exec(t);return n?96+Number(n[1]):t==="NumpadDecimal"?110:null}function Sxt(t,n){const s=new KeyboardEvent(t,Wrn(n)),c=Jrn(n.code)??Urn(n.key);return Object.defineProperty(s,"keyCode",{get:()=>c}),Object.defineProperty(s,"which",{get:()=>c}),s}function Wrn(t){return{key:t.key,code:t.code??zrn(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 Hrn(t,n){const s=[...t.options].map(d=>d.value);if(!s.includes(n))throw new Error(`No option with value ${JSON.stringify(n)} on this <select> — it offers ${s.map(d=>JSON.stringify(d)).join(", ")||"(no options)"}. The value is the option's \`value\`, not its label; \`query\` reports both.`);const c=Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype,"value")?.set;c?c.call(t,n):t.value=n,t.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),t.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}const dOe=["query","click","drag","release","key","paste","select","type"];function Grn(t){const n=t?.action;if(!dOe.includes(n))throw new Error(`Unknown document-probe action ${JSON.stringify(n)}. This door has exactly ${dOe.length} verbs: ${dOe.join(", ")} (\`editor.document.*\`).`);const s=t.scope??"document";if(!ZMe.includes(s))throw new Error(`Unknown scope ${JSON.stringify(s)}. This door addresses exactly these surfaces: ${ZMe.map(c=>`'${c}'`).join(", ")}.`);return Arn(s)}async function Krn(t){const n=Grn(t);if(Pp()===a0&&Srn()&&t.action!=="query"&&t.action!=="click"&&t.action!=="select")throw new Error(`'${t.action}' is refused while the Game document holds the keyboard: its events would reach the game. Query, click and select still work; click into a view's field first, or drive the game through the game's own doors.`);const s={name:n.name,id:n.id,title:n.title},c=d=>({scope:s,matched:1,elements:[bxt(d,0)]});switch(t.action){case"query":{const d=p9t(n,t.selector);return{scope:s,matched:d.length,elements:d.slice(0,t.limit??25).map((m,g)=>bxt(m,g,t.styles))}}case"click":{const d=mme(n,t.selector,t.index??0),m=t.at;if(m!==void 0&&!(Array.isArray(m)&&m.length===2&&m.every(S=>typeof S=="number"&&Number.isFinite(S))))throw new Error(`click's \`at\` is [x, y], fractions of the element's box; got ${JSON.stringify(m)}.`);const g=d.ownerDocument===document?d:Frn(d,m);return await Mrn(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:d9t(d,m)),c(g)}case"type":{const d=fOe(n,t);return jrn(d,t.text,t.replace??!0,t.enter??!0),c(d)}case"drag":{if(t.button!==void 0&&![0,1,2].includes(t.button))throw new Error(`Unknown button ${JSON.stringify(t.button)}: 0 primary, 1 middle, 2 secondary.`);const d=mme(n,t.selector,t.index??0),m=d.getBoundingClientRect(),g=[["from",t.from],...(t.via??[]).map((S,k)=>[`via[${k}]`,S]),["to",t.to]];for(const[S,k]of g)if(!k.every(F=>Number.isFinite(F)&&F>=0&&F<=1)&&!(t.leave&&S!=="from"&&k.every(F=>Number.isFinite(F))))throw new Error(`drag ${S} ${JSON.stringify(k)} is not a fraction of the element's box: points are [x, y] from 0 to 1 from its top-left ([0.5, 0.5] is its centre). This element is ${Math.round(m.width)} x ${Math.round(m.height)} px at (${Math.round(m.x)}, ${Math.round(m.y)}); a page pixel px becomes (px - ${Math.round(m.x)}) / ${Math.round(m.width)}.`);return Brn(d,t.from,t.to,t.steps??8,{...t.altKey===void 0?{}:{altKey:t.altKey},...t.ctrlKey===void 0?{}:{ctrlKey:t.ctrlKey},...t.metaKey===void 0?{}:{metaKey:t.metaKey},...t.shiftKey===void 0?{}:{shiftKey:t.shiftKey}},t.via??[],t.button??0,t.hold===!0),c(d)}case"release":return c(Lrn());case"key":{const d=fOe(n,t);document.activeElement instanceof Node&&d.contains(document.activeElement)||TVe(d);const m=document.activeElement,g=m instanceof HTMLElement&&d.contains(m)?m:d;return g.dispatchEvent(Sxt("keydown",t)),t.holdMs&&await new Promise(S=>setTimeout(S,t.holdMs)),g.dispatchEvent(Sxt("keyup",t)),c(d)}case"select":{const d=mme(n,t.selector,t.index??0);if(!(d instanceof HTMLSelectElement))throw new Error(`${JSON.stringify(t.selector)} resolved a <${d.tagName.toLowerCase()}>, not a <select>. This verb sets a dropdown's value; a button or a checkbox takes \`click\`.`);return Hrn(d,t.value),c(d)}case"paste":{const d=fOe(n,t),m=new DataTransfer;return m.setData("text/plain",t.text),d.dispatchEvent(new ClipboardEvent("paste",{bubbles:!0,cancelable:!0,composed:!0,clipboardData:m})),c(d)}}}const xxt="editor-chrome-root";function Xrn(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 Vtn(n,s)??l9t(n)}}async function Yrn(t,n){const s=document.getElementById(xxt);if(!s)throw new Error(`The editor chrome root (#${xxt}) is not mounted, so there is no editor page to photograph.`);let c=s;if(n?.region==="document"){const k=Pp(),A=k?cve(k):null;if(!A)throw new Error("No active document is showing, so there is no document region to photograph.");c=A}const d=n?.scale??window.devicePixelRatio??1,m=c.getBoundingClientRect(),g={width:Math.max(1,Math.round(m.width*d)),height:Math.max(1,Math.round(m.height*d))};return{...await XFt(c,{canvasFrame:Xrn(d),includeDocumentStyles:!0,size:g}),view:ste(t),size:g,scale:d}}function ate(){return ave()}function ISn(){return!ate()}const zge=new Set;function Zrn(t,n){const s={collect:t,reusableKeys:n?.reusableKeys??[]};return zge.add(s),()=>{zge.delete(s)}}function Qrn(t=null){const n={};for(const s of zge)Object.assign(n,s.collect(t));return n}function enn(){const t=[];for(const n of zge)t.push(...n.reusableKeys);return t}let VZ=null;const GI=[];function tnn(t){if(VZ=t,GI.length!==0)for(const n of GI.splice(0,GI.length))n.resolve(t)}function rnn(){return new Promise((t,n)=>{GI.push({resolve:t,reject:n})})}function nnn(t){VZ===t&&(VZ=null,GI.length!==0&&queueMicrotask(()=>{if(!(VZ!==null||GI.length===0))for(const n of GI.splice(0,GI.length))n.reject(new Error("the hierarchy panel (GameHierarchy) unmounted before it published the mutated row tree, so the mutation cannot be acknowledged against a rendered tree. Open the Hierarchy panel in the workspace dock and retry."))}))}function wxt(){return VZ}function inn(t,n){const s=[],c=[];for(const d of t.rows){const m=onn(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 onn(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 snn=5e3,ann=350,Txt=240;let c_e=null;function cnn(t){if(typeof document>"u")return;const n=Pp(),s=n===null?null:cve(n),c=s?.closest(".volter-editor-theme")??document.querySelector(".volter-editor-theme")??document.body,d=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1;if(s&&!d){const k=s.getBoundingClientRect(),A=document.createElement("div");A.dataset.testid="photograph-flash",Object.assign(A.style,{position:"fixed",left:`${k.left}px`,top:`${k.top}px`,width:`${k.width}px`,height:`${k.height}px`,background:"#ffffff",pointerEvents:"none",zIndex:"var(--volter-z-toast)"}),c.append(A),A.animate([{opacity:.85},{opacity:0}],{duration:ann,easing:"ease-out"}).finished.finally(()=>A.remove())}c_e?.remove();const m=document.createElement("button");m.type="button",m.dataset.testid="photograph-notice",m.title="Photograph taken. Click to put it away.",m.setAttribute("aria-label","Photograph taken"),Object.assign(m.style,{position:"fixed",right:"var(--volter-space-4)",bottom:"40px",width:"220px",padding:"0",border:"1px solid var(--volter-selection-border)",borderRadius:"var(--volter-radius-md)",background:"var(--volter-surface-raised)",boxShadow:"var(--volter-shadow-lg)",overflow:"hidden",cursor:"pointer",zIndex:"var(--volter-z-toast)"});const g=document.createElement("img");g.src=`data:image/png;base64,${t}`,g.alt="The photograph just taken of the document",Object.assign(g.style,{display:"block",width:"100%",height:"auto"}),m.append(g),c.append(m),c_e=m;const S=()=>{if(c_e===m&&(c_e=null),!!m.isConnected){if(d){m.remove();return}m.animate([{transform:"translateX(0)"},{transform:"translateX(130%)"}],{duration:Txt,easing:"ease-in",fill:"forwards"}).finished.finally(()=>m.remove())}};m.addEventListener("click",S,{once:!0}),d||m.animate([{transform:"translateX(130%)"},{transform:"translateX(0)"}],{duration:Txt,easing:"ease-out"}),window.setTimeout(S,snn)}const lnn=new Set(["raw","url","worker","sharedworker","inline","init"]),unn=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],fnn=/\.stories\.[cm]?[jt]sx?$/i;function dnn(t){let n;try{n=new URL(t,"http://volter.invalid")}catch{return null}return{path:n.pathname,query:n.search}}function pnn(t){const n=new URLSearchParams(t);for(const s of n.keys())if(lnn.has(s))return!0;return!1}function _nn(t,n,s){if(t.startTime<s)return null;const c=dnn(t.name);if(!c)return null;const{path:d,query:m}=c;if(!d.includes(n)||!unn.some(A=>d.endsWith(A))||fnn.test(d)||d.endsWith("/volter.adapter.ts")||pnn(m))return null;const g=new URLSearchParams(m),S=g.get(Rge)??"";g.delete(Rge);const k=g.toString();return{group:`${S}\0${d}`,path:d,url:`${d}${k?`?${k}`:""}`}}function mnn(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=_nn(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 NSn(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 _9t(){const t=globalThis.performance;if(!t||typeof t!="object")return null;const n=t;return typeof n.now!="function"||typeof n.getEntriesByType!="function"?null:n}let Gk=null,QQ=[],UO=null,$B=[];function OSn(){$B=[],Gk?.disconnect(),Gk=null,QQ=[];const t=_9t();if(!t){UO=null;return}UO=t.now(),typeof PerformanceObserver<"u"&&(Gk=new PerformanceObserver(n=>{QQ.push(...n.getEntries())}),Gk.observe({type:"resource"}))}function RSn(t){const n=_9t();if(!n||UO===null)return UO=null,$B;const s=Gk?[...QQ,...Gk.takeRecords()]:n.getEntriesByType("resource");return Gk?.disconnect(),Gk=null,QQ=[],$B=mnn(s,{projectRoot:t,since:UO}),UO=null,$B}function hnn(){return $B}function FSn(){Gk?.disconnect(),Gk=null,QQ=[],$B=[],UO=null}const eje=new Set;let jY=null;function gnn(t){return eje.add(t),()=>{eje.delete(t)}}function ynn(){return jY||(jY=Promise.all([...eje].map(t=>Promise.resolve().then(t))).then(()=>{}).finally(()=>{jY=null}),jY)}const vnn=500;function Cxt(t){const n=globalThis,s=n.requestIdleCallback;if(typeof s=="function"){const d=s.call(globalThis,t,{timeout:vnn});return()=>n.cancelIdleCallback?.call(globalThis,d)}const c=setTimeout(t,0);return()=>clearTimeout(c)}const hme=new Map;function MSn(t,n){return hme.set(t,n),()=>{hme.get(t)===n&&hme.delete(t)}}function bnn(){return Object.fromEntries([...hme].map(([t,n])=>[t,n()]))}let m9t=null;function jSn(t){m9t=t}function Snn(){return m9t}const xnn=["three","canvas","dom"];function Ext(t){return t.provenance?.source==="boundary"}function wnn(t){return xnn.includes(t)?t:null}function Tnn(){const t=Lye(),n=TC()?.descriptor.provenance?.rootId,s=n?u0()?.regions.find(g=>g.id===n):void 0,c=t?.adapter&&n&&s?{worldId:n,surface:s.surface,adapter:t.adapter}:null,d=pPt();if(!d)return c?[c]:[];if(d instanceof gy){const g=d.childAdapters().filter(S=>S.role==="world"&&!Ext(S.adapter)).map(S=>({worldId:S.worldId,surface:wnn(S.kind),adapter:S.adapter}));return c?[c,...g.filter(S=>S.worldId!==n)]:g}if(Ext(d)||d===Snn())return c?[c]:[];const m={worldId:"root",surface:sve(),adapter:d};return c?[c,m]:[m]}const qB=new Map,tje=new Set;let h9t=0;function kxt(){h9t++;for(const t of tje)t()}function LSn(t){return qB.set(t.id,t),kxt(),()=>{qB.get(t.id)===t&&(qB.delete(t.id),kxt())}}function BSn(t){return t?qB.get(t)??null:null}function Cnn(){return[...qB.values()]}function $Sn(t){if(t===null)return null;for(const n of qB.values())if(n.kind==="game"&&n.instanceId===t)return n;return null}function qSn(t){return tje.add(t),()=>tje.delete(t)}function zSn(){return h9t}function CVe(t){return t.length===0?void 0:t.some(s=>s.hiddenBy===null)?null:[...t].sort((s,c)=>c.area-s.area)[0]?.hiddenBy??null}function Enn(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 g9t(t){return t.filter(n=>n.failsafeEligible&&n.inlineHiding!==null)}function knn(t){return t.some(n=>n.hiddenBy!==null)?g9t(t).length>0:null}const Ann=4e3;function Dnn(t){const n=t.deadlineMs??Ann;if(t.framesProduced<=0)return{fire:!1};if(t.hiddenForMs===null||t.hiddenForMs<n)return{fire:!1};if(CVe(t.canvases)===null)return{fire:!1};const s=[...g9t(t.canvases)].sort((c,d)=>d.area-c.area)[0];return s?{fire:!0,target:s,ledger:`canvas reveal FAILSAFE FIRED — the "${s.label}" canvas was still hidden by its own inline ${s.inlineHiding} (${s.hiddenBy}) ${Math.round(t.hiddenForMs/1e3)}s after frames started arriving, so the editor cleared that style to put the picture on screen. THIS IS A DEFECT, not a feature: the mount path that hid this canvas never ran its own reveal, and the failsafe fires ONCE — a second mount in this state stays blank. Report it upstream with the mount that owns this canvas.`}:{fire:!1}}const gme=new Map;function VSn(t){return gme.set(t.id,t),()=>{gme.get(t.id)===t&&gme.delete(t.id)}}function Pnn(){return[...gme.values()]}const pOe=10,l_e=5e3;function Inn(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 Nnn(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 Onn(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 Rnn(t){return t.directManipulationExpected===!1?{status:"ok",detail:"browser automation is rendering evidence — no person is waiting on direct manipulation"}:t.tabVisible?t.fps===null?{status:"unmeasured",detail:t.fpsUnavailable??"no frame-rate sample exists",fix:"the session vitals collector must sample frame cadence while the tab is visible"}:t.fps>=pOe?{status:"ok",detail:`visible tab rendering at ${t.fps.toFixed(1)}fps`}:{status:"violation",detail:`visible tab rendering at ${t.fps.toFixed(1)}fps, below the ${pOe}fps floor`,cause:`the visible tab is rendering below the ${pOe}fps floor`,missing:"the editor has stopped being a direct-manipulation tool: a drag, a click and a keystroke all land seconds after the user made them",fix:"find the cost with the Profiler’s Overview (long-animation-frame attribution) — main-thread saturation and GPU/compositor cost are separate hunts"}:{status:"ok",detail:"the tab is hidden — a hidden tab is not owed a frame rate"}}function Fnn(t){return t.play===null?{status:"ok",detail:"nothing is playing — the invariant does not apply"}:t.tabVisible?t.play.framesDrawn===null?{status:"unmeasured",detail:t.play.framesUnavailable??"the play session reports no frame count, so nothing can say whether it drew",fix:"the play session’s render loop must expose a frame count (its profiler source carries one only while telemetry is enabled)"}:t.play.framesDrawn>0?{status:"ok",detail:`play has drawn ${t.play.framesDrawn} frame(s)`}:t.play.startedMsAgo<l_e?{status:"ok",detail:`play started ${t.play.startedMsAgo}ms ago and has not drawn yet — inside the ${l_e}ms deadline`}:{status:"violation",detail:`play started ${t.play.startedMsAgo}ms ago and has drawn no frame (deadline ${l_e}ms)`,cause:`play started and no frame has drawn within the ${l_e}ms deadline`,missing:"the user pressed ▶ and the game is not running: the viewport shows whatever was there before, and every other instrument reports a live play session",fix:"find why the run loop never rendered — the console’s own errors from the play session are the first read"}:{status:"ok",detail:"the tab is hidden — the engine hidden-pauses the loop, so no frame is owed"}}const y9t={"edit-mode-static":Inn,"single-root-scene":Nnn,"canvas-revealed":Onn,"visible-tab-fps-floor":Rnn,"play-drew-a-frame":Fnn},Mnn=Object.keys(y9t);function jnn(t){return Mnn.map(n=>({id:n,...y9t[n](t)}))}function Lnn(t){if(t.status!=="violation")return null;const n=[`invariant "${t.id}" VIOLATED — ${t.cause??t.id}`];return t.missing&&n.push(` cost: ${t.missing}`),t.fix&&n.push(` fix: ${t.fix}`),n.join(`
|
|
1397
1397
|
`)}const rje=new Set;function Bnn(t){return rje.add(t),()=>{rje.delete(t)}}function $nn(){for(const t of[...rje])try{t()}catch(n){Qs.error(`a session-sample subscriber threw: ${String(n)}`,"invariant")}}const qnn=5e3;let Aw={frames:0,since:0},UZ=null,zB=null,oR=null;const JZ=new Map;function znn(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 Vnn="editor-canvas";function Unn(t){const n=t.style;return n.display==="none"?"display":n.visibility==="hidden"?"visibility":n.opacity!==""&&Number.parseFloat(n.opacity)===0?"opacity":null}function v9t(){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:znn(n),inlineHiding:Unn(n),failsafeEligible:c!==Vnn&&!n.closest(".monaco-editor")}})}function Jnn(){const t=Cnn();if(t.length===0)return{framesDrawn:null,framesUnavailable:"no render loop registered a performance source, so nothing counts this session’s frames"};let n=null;for(const s of t){const d=s.profiler.getSnapshot().frames.at(-1);d&&(n=Math.max(n??0,d.id))}return n===null?{framesDrawn:null,framesUnavailable:"the registered render loop records no frames (its profiler has neither profiling nor telemetry enabled)"}:{framesDrawn:n,framesUnavailable:null}}const IO=new Map,LY=new Map;function Wnn(){const t=Pnn(),n=new Set,s=t.map(c=>{const{id:d,label:m}=c;n.add(d);let g=null;try{g=c.transportAdvances?.()??null}catch{g=null}const S=LY.get(d);g===null?LY.delete(d):LY.set(d,g);const k=g===null||S===void 0?{}:{transportAdvanced:g!==S};let A;try{A=c.contentClock()}catch(J){return IO.delete(d),{id:d,label:m,advanced:null,unavailable:`its content clock threw: ${String(J)}`,...k}}if(A===null)return IO.delete(d),{id:d,label:m,advanced:null,unavailable:"its content clock is temporarily unavailable",...k};const F=A,D=IO.get(d);return IO.set(d,F),D===void 0?{id:d,label:m,advanced:null,unavailable:"first reading — nothing to compare it against yet",...k}:{id:d,label:m,advanced:F!==D,...k}});for(const c of[...IO.keys()])n.has(c)||IO.delete(c);for(const c of[...LY.keys()])n.has(c)||LY.delete(c);return s}function Hnn(t=Date.now()){const n=ate(),s=Aw.since===0?0:t-Aw.since,c=Aw.frames,d=s>0&&c>0?c*1e3/s:null,m=n?{startedMsAgo:oR===null?0:t-oR,...Jnn()}:null;return{mode:n?"play":"edit",loops:[...YMe().map(g=>({name:`${g.id} session`,running:g.mounted()})),...YMe().map(g=>({name:`${g.id} playing`,running:g.playing()}))],designTimeSurfaces:Wnn(),presentedThreeRoots:pPt()?Tnn().filter(g=>g.surface==="three").map(g=>g.worldId):null,...(()=>{const g=v9t();return{canvasHiddenBy:CVe(g),canvasHidesItself:knn(g),hiddenCanvases:Enn(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 b9t(){return jnn(Hnn())}let mB=null;const Axt=new WeakSet;function Gnn(t,n){const s=CVe(t);if(s==null){mB=null;return}if(mB===null){mB=n;return}const c=Dnn({canvases:t,framesProduced:Aw.frames,hiddenForMs:n-mB});if(!c.fire)return;const d=[...document.querySelectorAll("canvas")].find(m=>(m.getAttribute("data-testid")??m.className)===c.target.label);!d||Axt.has(d)||(Axt.add(d),c.target.inlineHiding==="display"&&d.style.removeProperty("display"),c.target.inlineHiding==="visibility"&&d.style.removeProperty("visibility"),c.target.inlineHiding==="opacity"&&d.style.removeProperty("opacity"),Qs.error(c.ledger,"invariant"))}function Knn(){const t=b9t();for(const n of t){const s=Lnn(n);if(!s){JZ.delete(n.id);continue}if(n.id==="visible-tab-fps-floor"){const c=(JZ.get(n.id)??0)+1;if(JZ.set(n.id,c),c<3)continue}Qs.warn(s,"invariant")}return t}function Xnn(){if(zB!==null)return Dxt;Aw={frames:0,since:Date.now()};const t=()=>{Aw.frames++,UZ=requestAnimationFrame(t)};return UZ=requestAnimationFrame(t),zB=setInterval(()=>{const n=ate();n&&oR===null&&(oR=Date.now()),n||(oR=null),$nn(),Gnn(v9t(),Date.now()),Knn(),Aw={frames:0,since:Date.now()}},qnn),Dxt}function Ynn(){Aw={frames:0,since:zB===null?0:Date.now()},oR=null,mB=null,JZ.clear(),IO.clear()}function Dxt(){UZ!==null&&cancelAnimationFrame(UZ),zB!==null&&clearInterval(zB),UZ=null,zB=null,Aw={frames:0,since:0},oR=null,mB=null,JZ.clear()}let nje=null;function Znn(t){nje=t}function EVe(){return nje?(nje(),!0):!1}let kVe=[];const ije=new Set;function Pxt(t){kVe=t;for(const n of ije)n()}function Qnn(){return kVe}function ein(t){return ije.add(t),()=>ije.delete(t)}function tin(t){const n=kVe.find(s=>s.id===t);return n?(n.run(),!0):!1}let eee=null;function rin(t){eee=t}function nin(t){eee&&Promise.resolve(eee(`${t}.focus`)).catch(()=>{})}const iin=/^volter\.([^.]+)\.(.+)$/;async function oin(t,n){if(eee)return await eee(t,n);const s=iin.exec(t);if(!s)throw new Error(`No command "${t}". Without the Code-OSS frame there is no command service, so the only commands this editor answers are a view's own verbs, spelled volter.<view>.<verb> (for example volter.blender-node-view.view-all).`);const{invokeViewVerb:c}=await lo(async()=>{const{invokeViewVerb:d}=await Promise.resolve().then(()=>h4r);return{invokeViewVerb:d}},[]);return c(s[1],s[2],n)}const AVe=[{kind:"agent",title:"Conversations",hotkeyScope:"workspace",selectableText:!0,icon:"users"},{kind:"project-work",title:"Project work",hotkeyScope:"workspace",selectableText:!0,icon:"list"},{kind:"hierarchy",title:"Hierarchy",hotkeyScope:"hierarchy",selectableText:!1,region:"outliner",icon:"outliner"},{kind:"assets",title:"Content",hotkeyScope:"asset-browser",selectableText:!1,icon:"folder-open"},{kind:"asset-library",title:"Asset Library",hotkeyScope:"asset-browser",selectableText:!1,icon:"cubes-stacked"},{kind:"inspector",title:"Inspector",hotkeyScope:"inspector",selectableText:!1,region:"properties",icon:"properties"}];async function sin(t){const{liveCanvasFrame:n}=await lo(async()=>{const{liveCanvasFrame:s}=await Promise.resolve().then(()=>brn);return{liveCanvasFrame:s}},void 0);return n(t)}async function ain(...t){const{capturePlayComposite:n}=await lo(async()=>{const{capturePlayComposite:s}=await Promise.resolve().then(()=>mrn);return{capturePlayComposite:s}},void 0);return n(...t)}async function Ixt(){return lo(()=>Promise.resolve().then(()=>ePt),void 0)}async function cin(){return lo(()=>Promise.resolve().then(()=>lcn),void 0)}function lin(t,n=5e3){return bC().some(s=>s.id===t)?Promise.resolve():new Promise(s=>{let c=0,d=()=>{};const m=()=>{clearTimeout(c),d(),s()};d=Xye(()=>{bC().some(g=>g.id===t)&&m()}),bC().some(g=>g.id===t)?m():c=window.setTimeout(m,n)})}async function uin(t){if(t){if(!bC().some(n=>n.id===t)){const n=t.startsWith(Mme);if(n&&(await(await Ixt()).refreshProjectToolContributions(),await lin(t)),!bC().some(s=>s.id===t)){const s=bC().map(d=>d.id),c=n?(await Ixt()).contributionFailureHint(t.slice(Mme.length)):"";throw new Error(`Utility is not registered: ${t}.`+c+` Registered utilities: ${s.length>0?s.join(", "):"(none)"}. A project contributes one by exporting a \`workspace.utility\` tool contribution; its view id is \`tool:<contribution-id>\`.`)}}vC(t)}}async function S9t(t){const n=AVe.map(c=>c.kind),s=n.find(c=>c===t);if(!s)throw new Error(`"${t}" is not a panel of this editor. Panels: ${n.join(", ")}.`);if(qBe(s),!await CC(()=>aDt()===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 fin(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 din(t){let n=!1;if(await CC(()=>(n=VMe(t.id),n||dxt(t.id)!==null),PR),n)return Pp();const s=dxt(t.id);throw s?new Error(s):new Error(`World document is not registered: ${t.id}`)}async function pin(t,n){const s=g=>g.filter(S=>S.id===n||S.label===n);let c=[];if(!await CC(()=>{const g=_Be(t)?.adapter?.stories;if(!g)return!1;c=g.storiesFor("");const S=s(c);return S.length===1?(g.apply(S[0].id,S[0].id),!0):c.length>0},PR))throw new Error(`The board mounted no stories provider within the wait window; story ${JSON.stringify(n)} was not applied.`);const m=s(c);if(m.length!==1)throw new Error(m.length===0?`No story matches ${JSON.stringify(n)}. This board's stories: ${c.map(g=>g.label).join(", ")||"(none)"}.`:`${JSON.stringify(n)} is ambiguous (${m.length} stories match) — use the story id: ${m.map(g=>g.id).join(" | ")}`)}async function _in(t,n){const s=await Yye(n.kind,t,n);if(s!==null)return s;let c=!1;if(await CC(()=>(c=xN(n.id)||X0(n.id),c||pxt(n.id)!==null),PR),c)return n.story!==void 0&&await pin(n.id,n.story),n.id;const d=pxt(n.id);throw d?new Error(d):new Error(`Workspace document is not available: ${n.id}`)}async function min(t,n){const s=await Yye(n.kind,t,n);if(s===null){const{kind:c,...d}=n,m=wkr();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 hin(t){const n=skr();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 gin(t,n){if(!n)return Pp();if(!yvr(n.kind))throw new Error(`present-view does not know the document kind "${String(n.kind)}". An EditorView addresses a document by one of: ${sCt.join(", ")}. `+hin(String(n.kind)));switch(n.kind){case"scene":return fin();case"world":return din(n);case"asset":case"tool":case"document":case"story":case"project-tool":case"generation":return min(t,n);case"workspace":return _in(t,n)}}function yin(t){const n=t.indexOf(",");return{base64:n>=0?t.slice(n+1):t,mimeType:"image/png"}}const Nxt=cve;function vin(t,n,s){if(!s?.degenerate)return null;const c=_Ve();return!c||!n.contains(c)?null:`This door photographs the "${t}" document, which for a live three ingest holds the GAME'S own canvas — created without \`preserveDrawingBuffer\`, so its pixels can only be read from inside the game's own render pass. This game did not draw inside that window (a render-on-demand world sitting idle, or a loop the Edit-tab input gate has frozen), so the frame came back BLANK (${s.warning??"essentially one flat colour"}) — a PNG that reads as a real image. The editor's own renderer is drawing this same world in the Scene viewport (the mount adopts the captured scene), so capture \`workspace:scene\` instead — or drive the game until it renders and ask again.`}async function x9t(t,n){const s=TC();if(!s)throw new Error("No active editor document to capture.");const{descriptor:c,title:d}=s,m=ste(t),g={id:c.id,title:d,kind:c.kind,...c.provenance?.sourcePath?{sourcePath:c.provenance.sourcePath}:{},...c.provenance?.rootId?{rootId:c.provenance.rootId}:{}},S=s2(c.id);if(S?.capture){const J=S.capture(n);if(!J)throw new Error(`Object3D document could not be captured: ${c.id}`);return{...yin(J),document:g,view:m,source:"object3d-document"}}const k=c.id===a0?a9t()??Nxt(c.id):Nxt(c.id);if(!k)throw new Error(`Active document surface is not mounted: ${c.id}`);const A=f9t(k),F=await ain(A?.container??k,{canvasFrame:A?.canvasFrame??sin,includeDocumentStyles:c.id!==a0&&!A}),D=vin(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 bin="workspace:scene";function Sin(t){return s2(t)??s2(bin)}function xin(t,n,s,c){const d=s2(n),m=Sin(n);s.selection&&(d?.selection?d.selection.apply(s.selection.ids):t.selectMultiple(s.selection.ids));const g=s.viewport;g?.grid!==void 0&&(n&&M_e(n)?AAr(n,g.grid):c.push("This document draws no grid.")),g?.diagnostic&&!m?.setDiagnostic(g.diagnostic)&&c.push(`Diagnostic ${g.diagnostic} is unavailable for this document.`),g?.camera&&!m?.setCamera(g.camera)&&c.push(typeof g.camera=="string"?`${g.camera==="isometric"?"Isometric":g.camera} camera is unavailable for this document.`:"The camera is unavailable for this document."),s.selection?.focus||g?.frame==="selection"?m?.frame("selection")||c.push("The requested selection could not be framed."):g?.frame==="document"&&(m?.frame("document")||c.push("Document framing is unavailable for this document."))}async function Vge(t,n,s={}){if(n?.version!==1)throw new Error("present-view requires EditorView version 1.");const c=Object.keys(n).filter(F=>!Rmt.includes(F));if(c.length>0)throw new Error(`present-view does not know ${c.map(F=>`"${F}"`).join(", ")}. An EditorView carries: ${Rmt.join(", ")}. A document's own address (kind, and the fields that kind reads) goes under "document".`);const d=ste(t);if(n.style!==void 0){const F=OR().map(D=>D.id);if(!F.includes(n.style))throw new Error(`present-view requires a style of ${F.join(", ")}, got ${String(n.style)}.`);QBe(n.style)}if(n.workspace!==void 0){if(!kB(n.workspace))throw new Error(`present-view requires a workspace of ${WBe().join(", ")}, got ${String(n.workspace)}.`);if(zS()!==n.workspace){const F=wDt();a2(n.workspace),await Promise.race([F,new Promise(D=>setTimeout(D,3e3))])}}const m=[];n.keymap!==void 0&&n.keymap!==dR()&&m.push(`Keymap "${n.keymap}" was not applied — a view reports the keymap, it does not set it. This project is on "${dR()}" (its adapter's declaration, or its own settings).`);const g=await gin(t,n.document);await uin(n.utility);const S=s2(g);if(await S?.prepare?.(),!S?.selection&&n.selection?.ids.length&&(n.document?.kind==="scene"||n.document?.kind==="world")){const F=n.selection.ids;if(!await CC(()=>F.every(J=>Y0(t).hierarchy.node(J)!==null),PR))throw new Error(`Shared view selection is not available: ${F.join(", ")}`)}g&&Pp()!==g&&X0(g),xin(t,g,n,m),n.panel!==void 0&&await S9t(n.panel);const k=cCt(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 cin()).showEditorPresentationNotice({presented:A,previousView:d}),A}const Uge=new Map;let w9t=0;const oje=new Set;function T9t(){w9t+=1;for(const t of oje)t()}function win(t,n,s){const c=Uge.get(t);c&&c.assetPath===n&&c.actions.length===s.length&&c.actions.every((d,m)=>d===s[m])||(Uge.set(t,{assetPath:n,actions:s}),T9t())}function Tin(t){Uge.delete(t)&&T9t()}function Cin(t){const n=[];for(const s of Uge.values())s.assetPath===t&&n.push(...s.actions);return n}function Ein(t){return oje.add(t),()=>oje.delete(t)}function Oxt(){return w9t}const kin=[],Rxt=new Set;let Ain=0;function Din(t){for(const n of kin)if(n.match(t))return n;return null}function Pin(t){return Rxt.add(t),()=>{Rxt.delete(t)}}function Fxt(){return Ain}const O_={open:{id:"project-asset.open",shortcut:"Enter"},rename:{id:"project-asset.rename",shortcut:"F2"},move:{id:"project-asset.move",shortcut:null},duplicate:{id:"project-asset.duplicate",shortcut:"Mod+D"},delete:{id:"project-asset.delete",shortcut:"Delete"},copyPath:{id:"project-asset.copy-path",shortcut:"Mod+Shift+C"},reveal:{id:"project-asset.reveal",shortcut:null},refresh:{id:"project-asset.refresh",shortcut:"Mod+R"},import:{id:"project-asset.import",shortcut:null},createFolder:{id:"project-asset.create-folder",shortcut:"Mod+Shift+N"}},eD=[],sje=new Set,BY=new Map;let C9t=0;function _Oe(){C9t++;for(const t of sje)t()}function Iin(t){const n=eD.findIndex(s=>s.owner===t.owner&&s.id===t.id);if(n>=0){const[s]=eD.splice(n,1);s&&(BY.get(s)?.(),BY.delete(s))}return eD.push(t),eD.sort((s,c)=>(s.order??0)-(c.order??0)),BY.set(t,t.subscribe(_Oe)),_Oe(),()=>{const s=eD.indexOf(t);s<0||(eD.splice(s,1),BY.get(t)?.(),BY.delete(t),_Oe())}}const Nin=[];function Oin(){return eD.length===0?Nin:eD}function E9t(t){return sje.add(t),()=>{sje.delete(t)}}function Jge(){return C9t}function k9t(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 Rin(){const t=X0e();return t?{path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}}:null}function Fin(t,n){return Ye.useEffect(()=>()=>Tin(t),[t]),Ye.useCallback(s=>{n!==null&&win(t,n,s)},[t,n])}function Min({id:t,title:n,file:s,tool:c,Component:d}){Ye.useSyncExternalStore(K0e,zQ),Ye.useSyncExternalStore(Dye,lN,lN),Ye.useSyncExternalStore(Fye,uN,uN);const m=Rin(),g=Fin(t,m?.path??null),S=Ye.useRef(null),k=Ye.useCallback(F=>{S.current?.(),S.current=F===null?null:DBe(`building ${F.replace(/^building /,"")}`)},[]);Ye.useEffect(()=>()=>S.current?.(),[]);const A=Ye.useCallback(F=>s$({...F,id:`contribution:${t}:${F.title}`,...F.tone==="warning"?{fades:!0}:{}}),[t]);return q.jsxs("div",{"data-testid":`asset-inspector-tool-${t}`,style:{padding:8,borderTop:"1px solid var(--volter-structural-divider)",marginTop:4},children:[q.jsxs("div",{style:{...KCr,marginBottom:4},children:[q.jsx(dc,{icon:Kk.tool.extension,tone:"muted",style:{marginRight:4}}),n]}),q.jsx(PBe,{file:s,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:e0e(),surfaces:hBe,account:nBe(),play:Rye(),asset:m,setActions:g,notify:A,work:k})})]})}function jin(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 A9t=32,aje=new Set,Mxt=new Map,jxt=new Map;let sR=null,WZ=null,D9t=0,cje=0,VB=0,wN=0,Lxt=!1,pD={url:null,progress:0,playing:!1};function Lin(){for(const t of aje)t()}function I$(t){pD.url===t.url&&pD.playing===t.playing&&Math.abs(pD.progress-t.progress)<.002||(pD=t,Lin())}function DVe(){return sR??=new AudioContext,sR}function Bin(){if(Lxt||typeof window>"u")return;Lxt=!0;const t=()=>{if(!sR)return;const n=pD.url,s=wN;sR.resume().then(()=>{n&&s===wN&&!WZ&&sR?.state==="running"&&N9t(n,s)})};window.addEventListener("pointerdown",t,{capture:!0}),window.addEventListener("keydown",t,{capture:!0})}function PVe(){if(VB&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(VB),VB=0,!WZ)return;const t=WZ;WZ=null,t.onended=null;try{t.stop()}catch{}t.disconnect()}function P9t(){if(VB=0,!pD.playing||!sR||cje<=0)return;const t=Math.min(1,(sR.currentTime-D9t)/cje);I$({url:pD.url,progress:t,playing:t<1}),t<1&&typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(P9t))}function $in(t,n,s){if(s!==wN)return;PVe();const c=DVe(),d=c.createBufferSource(),m=c.createGain();m.gain.value=1,d.buffer=t,d.connect(m),m.connect(c.destination),d.onended=()=>{s===wN&&I$({url:n,progress:1,playing:!1})},d.start(),WZ=d,D9t=c.currentTime,cje=t.duration,I$({url:n,progress:0,playing:!0}),typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(P9t))}async function I9t(t){const n=Mxt.get(t);if(n)return n;const s=(async()=>{const c=await fetch(t);if(!c.ok)throw new Error(`Audio preview could not read ${t}.`);const d=await c.arrayBuffer();return DVe().decodeAudioData(d.slice(0))})().catch(()=>null);return Mxt.set(t,s),s}async function N9t(t,n){Bin();const s=await I9t(t);if(n!==wN)return;if(!s){I$({url:t,progress:0,playing:!1});return}const c=DVe();c.state==="suspended"&&(await c.resume(),n!==wN)||c.state==="running"&&$in(s,t,n)}function qin(t){return aje.add(t),()=>aje.delete(t)}function zin(){return pD}function Vin(t){const n=++wN;PVe(),I$({url:t,progress:0,playing:!0}),N9t(t,n)}function Uin(t){t&&pD.url!==t||(wN+=1,PVe(),I$({url:null,progress:0,playing:!1}))}function Jin(t,n=A9t){const s=`${t}#${n}`,c=jxt.get(s);if(c)return c;const d=I9t(t).then(m=>m?jin(m.getChannelData(0),n):Array.from({length:n},()=>0));return jxt.set(s,d),d}let _Z=[];function USn(t){return _Z=[..._Z,t],()=>{_Z=_Z.filter(n=>n!==t)}}function O9t(t){return _Z.find(n=>n.accepts(t))??null}const IVe={folder:"var(--volter-asset-icon-folder)",model:"var(--volter-asset-icon-model)",prefab:"var(--volter-asset-icon-prefab)",component:"var(--volter-asset-icon-component)",audio:"var(--volter-asset-icon-audio)",image:"var(--volter-asset-icon-image)",video:"var(--volter-asset-icon-video)",json:"var(--volter-asset-icon-json)",unknown:"var(--volter-asset-icon-unknown)",source:"var(--volter-asset-icon-source)"},Win={folder:fee,model:V0r,prefab:GB,component:aLe,audio:uLe,image:I0r,video:q0r,json:dLe,unknown:UTt,source:iCt};function vD({kind:t,size:n=24}){return q.jsx(dc,{icon:Win[t],style:{fontSize:n,color:IVe[t]}})}const Hin=100,Gin=50,Kin=new QPt(t=>{const n=O9t(t);return n?n.render(t):Promise.reject(new Error(`No model preview loader for ${t}.`))},2);function R9t(t,n){const[s,c]=Ye.useState(null),[d,m]=Ye.useState(!1),[g,S]=Ye.useState(null),[k,A]=Ye.useState(!1);Ye.useEffect(()=>{c(null),m(!1),S(null),A(!1)},[t]),Ye.useEffect(()=>{let D=!1,J=null;return E$e().then($=>{if(D)return;const G=$.status==="ok"?$.manifest.entries[t.replace(/^\/+/,"")]:void 0;if(!k&&G?.path&&(G.state==="generated"||G.state==="upstream")){S(G.path.startsWith("/")?G.path:`/${G.path}`);return}return J=Kin.request(t,n),J.promise}).then($=>{!D&&$&&c($)}).catch(()=>{D||m(!0)}),()=>{D=!0,J?.cancel()}},[k,n,t]);const F=Ye.useCallback(()=>{S(null),A(!0)},[]);return{src:g??s,fromManifest:g!==null,failed:d,rejectManifest:F}}function F9t({url:t}){const n=R9t(t,Hin);return n.failed?q.jsx(vD,{kind:"model"}):n.fromManifest&&n.src?q.jsx("img",{src:n.src,alt:"cached model preview",onError:n.rejectManifest,style:{width:"100%",height:"100%",objectFit:"contain"}}):n.src?q.jsx("img",{src:n.src,alt:"model preview",style:{width:"100%",height:"100%",objectFit:"contain"}}):q.jsx("div",{style:{width:28,height:28,margin:"0 auto",display:"flex",alignItems:"center",justifyContent:"center"},children:q.jsx("div",{className:"volter-anim-spin",style:{width:16,height:16,border:`2px solid ${ahe[2]}`,borderTopColor:IVe.model,borderRadius:"50%"}})})}function Xin({url:t,name:n}){const[s,c]=Ye.useState(()=>Array.from({length:A9t},()=>.15)),d=Ye.useSyncExternalStore(qin,zin);Ye.useEffect(()=>{let S=!1;return Jin(t).then(k=>{S||c(k)}),()=>{S=!0}},[t]);const m=d.url===t,g=m?d.progress:0;return q.jsx("div",{role:"img","aria-label":`${n} waveform preview`,style:{display:"flex",alignItems:"center",gap:1,width:"86%",height:"62%"},children:s.map((S,k)=>{const A=k/s.length<=g;return q.jsx("i",{style:{flex:1,height:`${12+S*88}%`,background:"var(--volter-asset-icon-audio)",opacity:m&&A?1:.28,borderRadius:1}},k)})})}function wR({kind:t,name:n,variant:s="tile"}){const c=IVe[t],d=s==="cell";return t==="audio"?q.jsxs("svg",{role:"img","aria-label":`${n} waveform preview`,viewBox:"0 0 64 48",width:d?"78%":52,height:d?"78%":44,children:[q.jsx("rect",{width:"64",height:"48",rx:"4",fill:"var(--volter-bg-inset)"}),Array.from({length:16},(m,g)=>q.jsx("rect",{x:g*4+1,y:24-g*13%18/2,width:"2",height:g*13%18+3,fill:c},g))]}):q.jsxs("svg",{role:"img","aria-label":`${n} ${t} preview`,viewBox:"0 0 52 48",width:d?"66%":48,height:d?"72%":44,children:[q.jsx("rect",{x:"5",y:"3",width:"42",height:"42",rx:"4",fill:"var(--volter-bg-inset)",stroke:c}),q.jsx("path",{d:"M13 15h26M13 23h18M13 31h22",stroke:c,strokeWidth:"3",strokeLinecap:"round"})]})}function M9t(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 JSn(t,n,s,c,d){return t==="fit"?M9t(n,s,c,d):t}function Yin(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=nZr(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 j9t({sheetUrl:t,frame:n,scale:s,maxEdge:c}){const d=Ye.useRef(null),m=Math.max(1,n.sourceWidth??n.width),g=Math.max(1,n.sourceHeight??n.height),S=c!=null?M9t(m,g,c,c):s??1,k=Math.max(1,Math.round(m*S)),A=Math.max(1,Math.round(g*S));return Ye.useEffect(()=>{const F=d.current;if(!F)return;const D=new Image;let J=!1;return D.onload=()=>{J||Yin(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 L9t={fontSize:11,color:Zf[3],marginBottom:2},Zin={fontSize:11,color:Zf[1],wordBreak:"break-all"};function mOe({asset:t}){Ye.useSyncExternalStore(u2,rA,rA);const n={path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}};return VDt().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(Min,{id:s.id,title:s.title,file:s.file,tool:s.tool,Component:s.Component},`${s.id}:${s.version}`):null})}function Bxt(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ph({label:t,value:n}){return q.jsxs("div",{children:[q.jsx("div",{style:L9t,children:t}),q.jsx("div",{style:Zin,children:n})]})}function Qin({asset:t}){const n=t.capabilities?.editor==="environment";Ye.useSyncExternalStore(E9t,Jge,Jge);const s=t.componentPreview,c=s?k9t({name:t.name,path:s.sourcePath,surface:s.surface}):null;return q.jsx("div",{"data-testid":"inspector-asset-preview",style:{position:"absolute",inset:0,background:xBe.inset,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:c?q.jsx(c.source.Thumbnail,{entry:c.entry,previewRevision:0}):n?q.jsx(wR,{kind:"image",name:t.name,variant:"cell"}):t.kind==="image"?q.jsx(ton,{path:t.path,name:t.name}):t.kind==="video"?q.jsx(eon,{path:t.path}):t.kind==="model"?q.jsx(F9t,{url:t.path}):q.jsx(wR,{kind:t.kind,name:t.name,variant:"cell"})})}function eon({path:t}){return q.jsx("video",{src:t,muted:!0,preload:"metadata",style:{width:"100%",height:"100%",objectFit:"contain"}})}function ton({path:t,name:n}){const{sheetPath:s,frameName:c}=Z0e(t),[d,m]=Ye.useState(null);return Ye.useEffect(()=>{if(!c){m(null);return}let g=!1;return fetch(`/${jRt(s)}`).then(S=>S.ok?S.text():null).then(S=>{if(g||!S)return;const k=Lze(S);m(k?.frames.find(A=>A.name===c)??null)}).catch(()=>{g||m(null)}),()=>{g=!0}},[c,s]),d?q.jsx(j9t,{sheetUrl:`/${s}`,frame:d,maxEdge:96}):q.jsx("img",{src:t.split("#")[0],alt:n,style:{width:"100%",height:"100%",objectFit:"contain"}})}function ron({asset:t}){const[n,s]=Ye.useState(null),{sheetPath:c,frameName:d}=Z0e(t.path);return Ye.useEffect(()=>{if(s(null),t.kind!=="image"||t.capabilities?.editor==="environment")return;let m=!1;if(d)return fetch(`/${jRt(c)}`).then(S=>S.ok?S.text():null).then(S=>{if(m||!S)return;const k=Lze(S)?.frames.find(A=>A.name===d);k&&s({w:k.sourceWidth,h:k.sourceHeight})}).catch(()=>{}),()=>{m=!0};const g=new Image;return g.onload=()=>{m||s({w:g.naturalWidth,h:g.naturalHeight})},g.src=t.path.split("#")[0]??t.path,()=>{m=!0}},[t.capabilities?.editor,t.kind,t.path,d,c]),n?q.jsx(Ph,{label:"Dimensions",value:`${n.w} × ${n.h}`}):null}function non(){Ye.useSyncExternalStore(Pin,Fxt,Fxt);const t=X0e();if(!t)return null;const n=Din(t),s=t.name.includes(".")?t.name.split(".").pop()??"":"";return n?q.jsxs("div",{"data-testid":"inspector-asset-selection",style:{pointerEvents:"auto",borderBottom:`1px solid ${ahe[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(n.View,{asset:t}),q.jsx(mOe,{asset:t})]}):(t.selectionCount??1)===1&&(t.kind==="image"&&!t.path.includes("#")&&t.capabilities?.editor!=="environment"||t.kind==="video"||t.kind==="audio")?q.jsxs(q.Fragment,{children:[q.jsx(KRt,{assetPath:t.path,kind:t.kind,sizeBytes:t.sizeBytes}),q.jsxs("div",{style:{padding:"0 8px",display:"grid",gap:6},children:[t.health&&t.health!=="healthy"&&q.jsx(Ph,{label:"Health",value:t.health}),!!t.healthCodes?.length&&q.jsx(Ph,{label:"Issues",value:t.healthCodes.join(", ")}),t.sourcePath&&q.jsx(Ph,{label:"Imported from",value:t.sourcePath}),!!t.dependencies?.length&&q.jsx(Ph,{label:"Dependencies",value:t.dependencies.join(", ")}),!!t.references?.length&&q.jsx(Ph,{label:"References",value:t.references.map(c=>`${c.ownerPath} ${c.jsonPath}`).join(", ")})]}),q.jsx(mOe,{asset:t})]}):q.jsxs("div",{"data-testid":"inspector-asset-selection",style:{pointerEvents:"auto",padding:8,borderBottom:`1px solid ${ahe[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(ron,{asset:t}),q.jsx("div",{style:{...L9t,marginBottom:0,textTransform:"uppercase"},children:"Asset"}),q.jsx("div",{style:{fontWeight:600,fontSize:12,color:Zf[1],wordBreak:"break-all"},children:t.name}),q.jsx(Ph,{label:"Path",value:t.path}),t.componentPreview&&q.jsx(Ph,{label:"Surface",value:t.componentPreview.surface==="canvas"?"2D / Pixi":t.componentPreview.surface==="three"?"3D / Three":t.componentPreview.surface}),t.selectionCount&&t.selectionCount>1&&q.jsxs(q.Fragment,{children:[q.jsx(Ph,{label:"Selection",value:`${t.selectionCount} assets`}),t.selectionTotalBytes!==void 0&&q.jsx(Ph,{label:"Total size",value:Bxt(t.selectionTotalBytes)}),t.selectionFormats&&q.jsx(Ph,{label:"Formats",value:t.selectionFormats.join(", ")})]}),s&&q.jsx(Ph,{label:"Format",value:s.toUpperCase()}),t.sizeBytes!==void 0&&q.jsx(Ph,{label:"Size",value:Bxt(t.sizeBytes)}),t.capabilities&&q.jsxs(q.Fragment,{children:[q.jsx(Ph,{label:"Runtime readiness",value:t.capabilities.runtimeReady?"Runtime-ready":"Import or conversion required"}),q.jsx(Ph,{label:"Preview",value:t.capabilities.previewable?"Available":"Unsupported"}),q.jsx(Ph,{label:"Placement",value:t.capabilities.placeable?"Placeable":"Not placeable"}),q.jsx(Ph,{label:"Editor",value:FB(t.capabilities)??"No editor"})]}),t.health&&q.jsx(Ph,{label:"Health",value:t.health}),t.healthCodes&&q.jsx(Ph,{label:"Issues",value:t.healthCodes.join(", ")}),t.dependencies&&q.jsx(Ph,{label:"Dependencies",value:t.dependencies.join(", ")||"None"}),t.references&&q.jsx(Ph,{label:"References",value:t.references.map(c=>`${c.ownerPath} ${c.jsonPath}`).join(", ")||"None"}),t.sourcePath&&q.jsx(Ph,{label:"Imported from",value:t.sourcePath}),!t.componentPreview&&q.jsxs("div",{style:{display:"flex",gap:6},children:[q.jsx(Ms,{type:"button","data-command-id":O_.open.id,onClick:()=>window.dispatchEvent(new CustomEvent("editor:open-project-asset",{detail:{path:t.path}})),children:"Open"}),t.selectionCount&&t.selectionCount>1&&q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button","data-command-id":O_.move.id,onClick:()=>window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:O_.move.id}})),children:"Move selected"}),q.jsx(Ms,{type:"button","data-command-id":O_.delete.id,onClick:()=>window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:O_.delete.id}})),children:"Delete selected"})]})]}),q.jsx("div",{style:{fontSize:10,color:Zf[3]},children:"Double-click (or press Enter) in the asset browser to open the full viewer."}),q.jsx(mOe,{asset:t})]})}function ion(t){return Cin(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 oon(){const t=X0e();if(t===null)return null;const n=Lye();return n&&(n.adapter!==null||n.nodeId!==null)?null:{quickActions:ion(t.path),id:`asset:${t.path}`,title:t.name,kindLabel:t.online?`${t.kind} · ${t.online.source}`:t.kind,note:{text:t.sourcePath??t.path,testId:"inspector-asset-path"},sections:[{id:VRe,title:"Preview",icon:iB,order:D4t,body:{kind:"preview",render:()=>q.jsx(Qin,{asset:t})}},{id:"asset-selection",title:"Asset",icon:R$,order:dQ,body:{kind:"custom",render:()=>q.jsx(non,{})},keepMounted:!0}]}}const son={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 aon(t){const n=son[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 con={ok:z0r,gap:VTt,na:svr,info:R$},lon={ok:Go.semantic.success,gap:Go.semantic.warning,na:Go.content.dim,info:Go.content.dim};function uon({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:lon[t.status],paddingTop:1},children:q.jsx(dc,{icon:con[t.status]})}),q.jsxs("div",{style:{minWidth:0},children:[q.jsx("div",{style:{color:Go.content.primary,fontWeight:600},children:aon(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 fon({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(uon,{row:s},s.seam))]})}function don(t){return{id:"ingest-coverage",title:"Ingest coverage",icon:YTt,order:9e3,description:`${t.summary.gaps} gap${t.summary.gaps===1?"":"s"}`,defaultOpen:!0,testId:"ingest-coverage-section",body:{kind:"custom",render:()=>q.jsx(fon,{report:t}),data:{summary:t.summary,rows:t.rows}}}}function pon(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 B9t="inspectorPresentation";function _on(t){return t==="card"||t==="column"||t==="properties"}function $xt(){const t=c3r(B9t);if(!t||typeof t!="object")return{};const n={};for(const[s,c]of Object.entries(t))_on(c)&&(n[s]=c);return n}let UB=null,lve=0;const JO=new Set;let hOe=null;iPt().then(()=>{UB=null,lve++;for(const t of JO)t()});function mon(){lve++;for(const t of JO)t()}function $9t(){if(UB===null){if(!a3r())return $xt();UB=$xt()}return UB}function lje(t){return $9t()[t]??null}function NVe(t,n){if(nin("volter.properties"),lje(t)!==n){UB={...$9t(),[t]:n},lve++,l3r(B9t,UB);for(const s of JO)s()}}function hon(t){return JO.size===0&&(hOe=n3r(mon)),JO.add(t),()=>{JO.delete(t),JO.size===0&&(hOe?.(),hOe=null)}}function qxt(){return lve}function gon(t,n,s=null){return n??s??t}function q9t(t){return t.sections.map(n=>({id:n.id,title:n.title,icon:n.icon,...n.railGroup===void 0?{}:{railGroup:n.railGroup},...n.railDefault===void 0?{}:{railDefault:n.railDefault}}))}function uje(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function yon(t,n){const s=n.selectedEntityId;if(s===null)return null;const c=t.childAdapters(),d=c.find(m=>m.worldId===t.ownerOf(s))??c.find(m=>t.groupNodeId(m.worldId)===s);return d?uje(d.kind):null}function von(t){const n=uBe();if(n!==null&&n.documentId===Pp())return"asset-lab";const{adapter:s,surface:c}=Cm(t);if(c)return c;if(s instanceof gy){const d=s.childAdapters(),m=d.length===1?uje(d[0]?.kind??""):null;if(m)return m;const g=yon(s,t);if(g)return g}return uje(sve()??"")??"three"}function bon({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 z9t(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 Son([t,n,s,c]){const d=t+t,m=n+n,g=s+s,S=t*d,k=t*m,A=t*g,F=n*m,D=n*g,J=s*g,$=c*d,G=c*m,se=c*g,pe=1-(F+J),ue=k-se,Ce=A+G,De=1-(S+J),Pe=D-$,be=D+$,X=1-(S+F),we=Math.asin(Math.min(Math.max(Ce,-1),1));return Math.abs(Ce)<.9999999?[Math.atan2(-Pe,X),we,Math.atan2(-ue,pe)]:[Math.atan2(be,De),we,0]}function OVe(t){const[n,s,c,d]=t,m=n*n+s*s+c*c+d*d,g=Math.sqrt(m),S=m<Number.EPSILON?[0,0,0,1]:[n/g,s/g,c/g,d/g],[k,A,F]=Son(S);return[k*bD,A*bD,F*bD]}function xon(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:z9t(s[0]/bD,s[1]/bD,s[2]/bD)}:{...c,[n]:[s[0],s[1],s[2]]}}function won(t,n,s){const c=OVe(t.rotation);return c[n]=s,{position:[...t.position],rotation:z9t(c[0]/bD,c[1]/bD,c[2]/bD),scale:[...t.scale]}}const Ton={x:"#e0726d",y:"#83bd66",z:"#6390dd"};function gOe({axes:t,label:n,values:s,testidPrefix:c,step:d,precision:m,onBegin:g,onPreview:S,onCommit:k,readOnly:A,readOnlyReason:F}){const[D,J]=Ye.useState(null),$=Ye.useRef(!1);return q.jsx(C_e,{label:n,style:{padding:"4px 8px"},children:t.map(({axis:G,name:se})=>q.jsx(SZ,{testId:`${c}-${se}`,label:se,labelColor:Ton[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 Con({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?.(won(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(WTr,{children:[q.jsx(gOe,{axes:t==="2d"?k:A,label:"Position",testidPrefix:"ingest-position",values:n.position,step:.1,precision:3,...$("position"),onBegin:m,onPreview:g&&D("position",g),onCommit:D("position",S)}),q.jsx(gOe,{axes:t==="2d"?[{axis:2,name:"z"}]:A,label:t==="2d"?"Rotation (degrees)":"Rotation",testidPrefix:"ingest-rotation",values:OVe(n.rotation),step:1,precision:1,...$("rotation"),onBegin:m,onPreview:g&&J(g),onCommit:J(S)}),q.jsx(gOe,{axes:t==="2d"?k:A,label:"Scale",testidPrefix:"ingest-scale",values:n.scale,step:.01,precision:3,...$("scale"),onBegin:m,onPreview:g&&D("scale",g),onCommit:D("scale",S)}),G.map(se=>q.jsx(_p,{"data-testid":"inspector-transform-readonly-reason",variant:"caption",tone:"muted",style:{display:"block",padding:"4px 8px",overflowWrap:"anywhere"},children:se},se)),d&&q.jsx(_p,{"data-testid":"inspector-transform-note",variant:"caption",tone:"muted",style:{display:"block",padding:"4px 8px",overflowWrap:"anywhere"},children:d})]})}function zxt(t){return t.revertsTo===void 0?`Revert ${t.label} to default`:`Revert ${t.label} to ${t.revertsTo}`}function Eon({value:t,onCommit:n,onPreview:s,...c}){const[d,m]=Ye.useState(null),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef({draft:d,onCommit:n});return k.current={draft:d,onCommit:n},Ye.useEffect(()=>{const A=g.current;if(!A)return;const F=()=>{const{draft:D,onCommit:J}=k.current,$=D??A.value;$&&$!==S.current&&J($),S.current=null,m(null)};return A.addEventListener("change",F),()=>A.removeEventListener("change",F)},[]),q.jsx(_4t,{...c,ref:g,value:d??t,onChange:A=>{S.current===null&&(S.current=t),m(A.target.value),s?.(A.target.value)}})}async function V9t(t,n=GRt){const s=await Promise.all(n.map(c=>kon(t,c)));return{assets:s.flatMap(c=>c.assets),failedListings:s.flatMap(c=>c.failedListings)}}async function kon(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 Aon(t,n){const s=t.filter(S=>S.root==="public"),c=Don(s),d=(await Promise.all(c.map(async S=>{const k=await n(S.path);if(!k)return null;const A=Lze(k);return A?{sidecar:S,parsed:A}:null}))).flatMap(S=>S?[S]:[]),m=new Set;for(const{sidecar:S,parsed:k}of d){m.add(S.path);const A=Vxt(S.path);for(const F of ZYr(k.image))m.add(A?`${A}/${F}`:F);for(const F of s)wMe(F.path)===wMe(S.path)&&m.add(F.path)}const g=d.flatMap(({sidecar:S,parsed:k})=>{const A=Vxt(S.path),F=A?`${A}/${k.image}`:k.image;return k.frames.map(D=>({path:`${F}#${D.name}`,root:S.root,entry:{name:`${D.name}.png`,type:"file",...S.entry.size===void 0?{}:{size:S.entry.size},...S.entry.modifiedAt===void 0?{}:{modifiedAt:S.entry.modifiedAt}},spritesheet:{sheetPath:F,x:D.x,y:D.y,width:D.width,height:D.height,rotated:D.rotated,sourceWidth:D.sourceWidth,sourceHeight:D.sourceHeight,trimX:D.trimX,trimY:D.trimY}}))});return[...t.filter(S=>S.root!=="public"||!m.has(S.path)),...g]}function Don(t){const n=new Map;for(const s of t){if(!/\.json$/i.test(s.path))continue;const c=wMe(s.path),d=n.get(c);(!d||BSt(s.path)>BSt(d.path))&&n.set(c,s)}return[...n.values()]}function Vxt(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function U9t(t){const n=ig(t).kind;return n==="model"||n==="image"||n==="video"||n==="audio"?n:"other"}function Pon(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 Ion(t){return(t.surface==="three"?0:t.surface==="canvas"?10:t.surface==="dom"?20:30)+(t.exported?0:4)}const Non=1e4,Oon={paths:[],failures:[]};let $Y=null;async function Ron(){const t=await V9t(eve,["public"]);return{paths:t.assets.filter(n=>U9t(n.entry.name)==="image").map(n=>n.path).sort((n,s)=>n.localeCompare(s)),failures:t.failedListings}}function Fon(){const t=Date.now();return(!$Y||t-$Y.at>Non)&&($Y={at:t,scan:Ron().catch(n=>($Y=null,{paths:[],failures:[n instanceof Error?n.message:String(n)]}))}),$Y.scan}function Mon(t){const[n,s]=Ye.useState(Oon);return Ye.useEffect(()=>{let c=!0;return Fon().then(d=>{c&&s(d)}),()=>{c=!1}},[t]),n}const jon={width:64},Uxt={width:XCr,fontSize:"var(--volter-font-md)",color:Go.content.muted};function AI(t){return`ingest-prop-${t.replace(/\./g,"-")}`}function Lon({field:t,io:n,value:s}){const{paths:c,failures:d}=Mon(!0),[m,g]=Ye.useState(null),S=F=>{g(null),Promise.resolve(n.set(t.path,F===""?null:F)).then(D=>{g(D&&!D.persisted?{forValue:F,text:`Not saved — ${D.destination}. See the editor console for the mechanism.`}:null)})},k=m?.forValue===s?m.text:void 0,A=d.length>0?`${d.length} folder(s) under public/ could not be read — this list may be incomplete.`:void 0;return q.jsx(YCr,{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=zRe(c)?void 0:c,m=s.defaulted===!0&&d===void 0,g=s.readonly?IBe(s):void 0,S=s.resettable?q.jsx(pm,{"data-testid":`ingest-revert-${s.path.replace(/\./g,"-")}`,"aria-label":zxt(s),title:zxt(s),onClick:()=>n.remove?.(s.path),children:q.jsx(dc,{icon:VOe})}):null;return s.type==="boolean"?q.jsxs("label",{title:g,style:{display:"flex",gap:6,alignItems:"center",padding:"6px 8px",fontSize:"var(--volter-font-md)"},children:[q.jsx(TD,{"data-testid":AI(s.path),checked:!!d,ref:k=>{k&&(k.indeterminate=m)},disabled:s.readonly,onChange:k=>n.set(s.path,k.target.checked)}),q.jsx("span",{style:s.defaulted?{color:Go.content.dim}:void 0,children:s.label}),S]}):q.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px"},children:[q.jsx("span",{style:s.defaulted?{...Uxt,color:Go.content.dim}:Uxt,title:g??(s.defaulted?`${s.label} — default (not set here)`:s.label),children:s.label}),s.type==="color"?q.jsx(Eon,{"data-testid":s.path==="material.color"?"ingest-color":AI(s.path),value:d??"#ffffff",disabled:s.readonly,onCommit:k=>n.set(s.path,k),onPreview:k=>n.preview?.(s.path,k)}):s.type==="number"?q.jsx(jRe,{type:"number","data-testid":AI(s.path),disabled:s.readonly,value:typeof d=="number"?String(Math.round(d*1e3)/1e3):"",placeholder:m?"—":void 0,onCommit:k=>{const A=Number.parseFloat(k);Number.isFinite(A)&&n.set(s.path,A)},style:jon}):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(GCr,{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(Lon,{field:s,io:n,value:typeof d=="string"?d:""}):s.type==="json"?q.jsx(TBe,{"data-testid":AI(s.path),"data-variant":"code",disabled:s.readonly,defaultValue:m?"":JSON.stringify(d??null),placeholder:m?"—":void 0,onBlur:k=>{try{n.set(s.path,JSON.parse(k.target.value))}catch{}},style:{width:160}},`${s.path}:${JSON.stringify(d??null)}`):q.jsx(jRe,{type:"text","data-testid":AI(s.path),readOnly:s.readonly,value:String(d??""),placeholder:m?"—":void 0,onCommit:k=>n.set(s.path,k),style:{width:120}}),S]})}function J9t({fields:t,io:n}){return q.jsx(q.Fragment,{children:t.map(s=>q.jsx(Bon,{field:s,io:n},s.path))})}function uve(t){const[n,s]=Ye.useState(null);return Ye.useEffect(()=>{let c=0;const d=requestAnimationFrame(()=>{c=requestAnimationFrame(()=>s(t))});return()=>{cancelAnimationFrame(d),cancelAnimationFrame(c)}},[t]),n===t}const $on=Ye.lazy(()=>lo(()=>import("./InspectorCanvasPreview-BrFjhoiD.js"),__vite__mapDeps([264,1,2,3,4])).then(t=>({default:t.InspectorCanvasPreview})));function WSn({picture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=uve(n);return q.jsxs("div",{"data-testid":d?"inspection-preview-thumbnail":"inspection-preview",style:d?{position:"absolute",inset:0,overflow:"hidden"}:{position:"relative",width:"calc(100% - 24px)",aspectRatio:"1 / 1",flexShrink:0,margin:12,overflow:"hidden",border:"1px solid var(--volter-structural-divider)",borderRadius:"var(--dv-group-border-radius, 8px)"},children:[m&&q.jsx(Ye.Suspense,{fallback:null,children:t()}),!d&&s.map(g=>q.jsx(Ms,{"data-testid":g.id,size:"compact",disabled:g.disabled,title:g.title,onClick:g.run,style:{position:"absolute",right:8,bottom:8},children:g.label},g.id))]})}function qon({source:t,entry:n,previewKey:s,actions:c,mode:d="section"}){const m=d==="thumbnail",g=uve(s);return q.jsxs("div",{"data-testid":m?"inspection-preview-thumbnail":"inspection-preview",style:m?{position:"absolute",inset:0,overflow:"hidden"}:{position:"relative",width:"calc(100% - 24px)",aspectRatio:"1 / 1",flexShrink:0,margin:12,overflow:"hidden",border:"1px solid var(--volter-structural-divider)",borderRadius:"var(--dv-group-border-radius, 8px)"},children:[g&&q.jsx("div",{style:{position:"absolute",inset:0,overflow:"hidden",background:"var(--volter-bg-inset)"},children:q.jsx(t.Thumbnail,{entry:n,previewRevision:0,width:m?96:256,height:m?96:256})}),!m&&c.map(S=>q.jsx(Ms,{"data-testid":S.id,size:"compact",disabled:S.disabled,title:S.title,onClick:S.run,style:{position:"absolute",right:8,bottom:8},children:S.label},S.id))]})}function zon({capture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=uve(n);return q.jsxs("div",{"data-testid":d?"inspection-preview-thumbnail":"inspection-preview",style:d?{position:"absolute",inset:0,overflow:"hidden"}:{position:"relative",width:"calc(100% - 24px)",aspectRatio:"1 / 1",flexShrink:0,margin:12,overflow:"hidden",border:"1px solid var(--volter-structural-divider)",borderRadius:"var(--dv-group-border-radius, 8px)"},children:[m&&q.jsx(Ye.Suspense,{fallback:null,children:q.jsx($on,{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 Von(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Uon(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:Von(d),properties:c.get(d)}))}}function Jon(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 Won=14,Hon=[[/physic|rigid|collid/i,J0r],[/material/i,y0r],[/light/i,sLe],[/camera/i,cye],[/audio|sound|music/i,uLe],[/player|character|humanoid|person/i,U0r],[/anim|state|machine/i,$Tt]];function Gon(t){for(const[n,s]of Hon)if(n.test(t))return s;return GB}function Kon(t){return n=>Ye.createElement(qon,{source:t.picture.source,entry:t.picture.entry,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Xon(t){return n=>Ye.createElement(zon,{capture:t.capture,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Yon(t){return t.media?t.media.preview?t.media.preview({displayName:t.displayName,previewKey:t.previewKey,actions:t.actions}):null:t.canvasCapture?Xon({capture:t.canvasCapture,previewKey:t.previewKey,actions:t.actions}):t.picture?Kon({picture:t.picture,previewKey:t.previewKey,actions:t.actions}):null}function yOe(t){const n=t.slice(10);if(n!=="position"&&n!=="rotation"&&n!=="scale")throw new Error(`The Transform section has no ${JSON.stringify(t)}.`);return n}const Zon={position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]};function Qon(t,n,s,c){if(I4t(t))return t.sections(c,n);const d=t.Section;return[{id:t.id,title:t.title,icon:typeof t.icon=="function"?t.icon(c,n):t.icon,order:t.order,...t.railGroup===void 0?{}:{railGroup:t.railGroup},...t.railDefault===void 0?{}:{railDefault:t.railDefault},body:{kind:"custom",render:()=>Ye.createElement(d,{adapter:n,nodeId:s})}}]}function W9t(t,n,s,c){const d=new Set,m=new Map,g=[];for(const S of t){const k=Qon(S,n,s,c).filter(F=>!d.has(F.id)),A=(I4t(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 H9t(t,n,s){return s===void 0?[...t]:t.filter(c=>n.get(c.id)===s.owner||s.builtins.includes(c.id))}function fje(t){const{adapter:n,nullSubject:s}=t,{sections:c,claimed:d,owners:m}=W9t(n?t.contributions??[]:[],n,null,null),g=H9t([...(s?.sections??[]).filter(S=>!d.has(S.id)),...c].sort((S,k)=>S.order-k.order),m,t.rail);return{id:s?.id??"nothing-selected",title:s?.title??"Nothing selected",identity:s?.kindLabel?{rename:{readOnly:!0,set:()=>{}},kindLabel:s.kindLabel,...s.note?{note:s.note}:{}}:null,...s?.hint?{hint:s.hint}:{},presentation:{preferred:NBe(t.surface)},quickActions:s?.quickActions??[],related:[],sections:g}}function esn(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 tsn(t){const{adapter:n,nodeId:s,node:c,contributions:d,onEdit:m}=t;if(s===null)return fje({nullSubject:t.nullSubject??null,surface:t.surface,contributions:d,adapter:n,rail:t.rail});const{sections:g,claimed:S,owners:k}=W9t(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=vPt(n,s,en,ii);return m(),No},...n.inspector?.remove?{remove:en=>{const ii=M3r(n,s,en);return m(),ii}}:{}},F=n.inspector?.properties(s)??[],D=F.find(en=>en.path==="name"),{ungrouped:J,groups:$}=Uon(F.filter(en=>en.path!=="name")),G=J.find(en=>en.path==="visible"&&en.type==="boolean"),se=G?J.filter(en=>en!==G):J,pe=[...D&&D.readonly!==!0?[D]:[],...G?[G]:[]],ue=[];if(G){const en=A.get(G.path)!==!1,ii=en?"Visible — click to hide":"Hidden — click to show";ue.push({id:"inspector-visibility-toggle",title:ii,icon:en?oLe:pLe,placement:"identity",pressed:!en,disabled:G.readonly===!0,run:async()=>{await A.set(G.path,!en)}})}t.assetDocument&&ue.push({id:"open-asset-editor",title:"Open in Asset Editor",label:"Open in Asset Editor",placement:"preview",run:t.assetDocument.open}),n.transforms?.sourceCommit?.availability(s)?.available&&ue.push({id:"commit-live-transform-source",title:"Commit this live transform to its authored source literal",label:"Commit transform to source",icon:qTt,placement:"identity",run:async()=>{await gPt(n,s),m()}});const Pe=new Map;Pe.set(R5e,se);for(const en of $)Pe.set(Uht(en.groupId),en.properties);const be=[],X=n.truth?.resolve(s,"position").site??null,we=t.media,qe=c?.typeLabel??c?.label??s,bt=t.surface==="canvas"&&we===null&&t.stories?k9t({name:qe,path:X?.anchored===!0?X.file:"",surface:"canvas"}):null,Pt=ue.filter(en=>en.placement==="preview"),Wt=Yon({media:we,canvasCapture:t.canvasPreview,picture:bt,displayName:c?.label??s,previewKey:s,actions:Pt});!S.has(VRe)&&Wt!==null&&be.push({id:VRe,title:"Preview",icon:aR,order:D4t,body:{kind:"preview",render:Wt}});const zt=Jon(n,s),ft=!S.has(Vht)&&zt!==null,tr=ft?$.find(en=>en.name==="Transform")?.properties??[]:[];if(ft){const en=n.transforms?.get(s)??Zon,ii=we?.instanced??null,No=Object.fromEntries(["position","rotation","scale"].map(En=>[En,n.transforms?.editability?.(s,En)??{writable:n.capabilities.transform}])),gn={position:[...en.position],rotation:OVe(en.rotation),scale:[...en.scale]};be.push({id:Vht,title:"Transform",icon:HTt,order:gEr,body:{kind:"custom",data:{...gn,editability:No,...ii?{instanced:ii}:{}},editable:{fields:["position","rotation","scale"].map(En=>{const cs=!n.capabilities.transform||!No[En].writable;return{path:`transform.${En}`,label:En[0].toUpperCase()+En.slice(1),type:"vec3",value:gn[En],readonly:cs,...!cs&&n.transforms?.remove&&No[En].removable===!0?{resettable:!0}:{}}}),io:{get:En=>gn[yOe(En)],set:(En,cs)=>{if(!n.transforms)return;const On=xon(en,yOe(En),cs);jFe(n,s),z_e(n,s,On);const ji=LFe(n,s);return m(),ji},...n.transforms?.remove?{remove:En=>{const cs=hPt(n,s,yOe(En));return m(),cs}}:{}}},render:()=>[Ye.createElement(Con,{key:"channels",dimensions:zt,transform:en,readOnly:!n.capabilities.transform,channelEditability:No,...ii?.note?{note:ii.note}:{},onBegin:()=>{jFe(n,s)},onPreview:En=>{z_e(n,s,En)},onCommit:En=>{z_e(n,s,En),LFe(n,s),m()}}),...tr.length>0?[Ye.createElement(J9t,{key:"rows",fields:tr,io:A})]:[]]}})}S.has(R5e)||(se.length>0&&be.push({id:R5e,title:"Properties",icon:GTt,order:dQ,defaultOpen:!0,body:{kind:"fields",fields:se,io:A}}),$.forEach((en,ii)=>{if(tr.length>0&&en.name==="Transform")return;const No=en.properties.filter(gn=>!gn.defaulted).length;be.push({id:Uht(en.groupId),title:en.name,icon:Gon(en.name),order:P4t+ii,description:No>0?`${No} set of ${en.properties.length}`:`${en.properties.length} properties`,defaultOpen:No>0&&en.properties.length<=Won,testId:`ingest-group-${en.groupId}`,body:{kind:"fields",fields:en.properties,io:A}})}));const Qt=t.stories;!S.has(A4t)&&Qt&&be.push(rsn(Qt)),be.push(...g.map(en=>esn(en,A,Pe))),be.sort((en,ii)=>en.order-ii.order);const Tt=H9t(be,k,t.rail),vn=kPt(n,s),Yr=APt(n);return{id:s,title:c?.label??"",identity:{rename:{readOnly:D===void 0||D.readonly===!0,set:en=>A.set("name",en)},kindLabel:`${c?.typeLabel??c?.kind??""}${vn?` · ${vn.label}`:""}`,...c?.kind?{kind:c.kind}:{},...Yr?{document:{path:Yr,...vn?.detail?{title:vn.detail}:{}}}:{},note:X?.anchored?{text:`${X.kind==="data"?"Level data":"Source"} · ${X.display}`,title:X.kind==="data"?`Placed by record ${X.record} of ${X.file}, the game's own level data`:`Constructed by a \`new\` expression at ${X.file} line ${X.line}, column ${X.col}`,testId:"inspector-creation-site"}:void 0},presentation:{preferred:NBe(t.surface)},...pe.length>0?{editable:{fields:pe,io:A}}:{},...t.alsoSelected?{alsoSelected:t.alsoSelected}:{},quickActions:ue,related:n.related?.links(s)??[],sections:Tt}}function rsn(t){return{id:A4t,title:t.title??"Stories",icon:_Le,order:yEr,body:{kind:"custom",render:()=>Ye.createElement(bon,{stories:t.stories,activeStoryId:t.activeStoryId,onApplyStory:t.onApplyStory,isolation:t.isolation,unavailableReason:t.unavailableReason??null})}}}const nsn=["project-tool","tool-contribution"];function isn(t){const{activeDocumentKind:n,documentSelection:s}=t;return n===null||!nsn.includes(n)?!1:s===null}function Jxt(t){const{subject:n,surface:s,available:c,override:d,workspaceDefault:m=null,columnShown:g=!0}=t,S=n.presentation.preferred??NBe(),k=gon(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 G9t="game";function osn(t){const n=t.projectName?.trim();return{id:G9t,title:n&&n.length>0?n:"Game",kindLabel:"Game",...t.instanceName?{note:{text:t.instanceName}}:{},sections:[]}}function HSn(t){return S$e({match:()=>Pp()===a0,describe:()=>osn(t())})}const ssn=3,asn=Object.freeze({none:!0});function csn(t){const n=Object.getPrototypeOf(t);return n===Object.prototype||n===null}function tee(t,n=0){if(t===null)return null;const s=typeof t;if(s==="string"||s==="boolean")return t;if(s==="number")return Number.isFinite(t)?t===0?0:t:{kind:"opaque",type:"number"};if(s!=="object")return{kind:"opaque",type:s};if(n>=ssn)return{kind:"opaque",type:Wxt(t)};if(Array.isArray(t))return t.map(m=>tee(m,n+1));const c=t;if(!csn(c))return{kind:"opaque",type:Wxt(c)};const d={};for(const[m,g]of Object.entries(c))g!==void 0&&(d[m]=tee(g,n+1));return d}function Wxt(t){return t.constructor?.name??"object"}function Hxt(t,n){let s;try{s=n.get(t.path)}catch{s=void 0}return{path:t.path,label:t.label,type:t.type,...zRe(s)?{mixed:!0}:{},...!zRe(s)&&s!==void 0?{value:tee(s)}:{},...t.defaulted!==void 0?{defaulted:t.defaulted}:{},...t.readonly!==void 0?{readonly:t.readonly}:{},...t.readonly?{readonlyReason:IBe(t)}:{},...t.resettable!==void 0?{resettable:t.resettable}:{},...t.revertsTo!==void 0?{revertsTo:t.revertsTo}:{},...t.group!==void 0?{group:t.group}:{},...t.options!==void 0?{options:t.options.map(c=>tee(c))}:{}}}function Gxt(t){const n={};for(const[s,c]of Object.entries(t))c!==void 0&&(n[s]=tee(c));return n}function lsn(t){const n=t.body;if(n.kind==="fields")return{kind:"fields",fields:n.fields.map(s=>Hxt(s,n.io))};if(n.kind==="custom"&&n.data!==void 0&&n.editable===void 0)return{kind:"custom",id:t.id,title:t.title,data:Gxt(n.data)};if(n.kind==="custom"&&n.editable!==void 0){const s=n.editable;return{kind:"fields",fields:s.fields.map(c=>Hxt(c,s.io)),...n.data!==void 0?{data:Gxt(n.data)}:{}}}return{kind:n.kind,id:t.id,title:t.title}}function usn(t){return{id:t.id,title:t.title,order:t.order,...t.description!==void 0?{description:t.description}:{},body:lsn(t)}}function fsn(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(usn)}}const Kxt=new WeakMap;function dsn(t){if(!t.capture)return null;const n=Kxt.get(t);if(n)return n;const s=async c=>t.capture?.(c)??null;return Kxt.set(t,s),s}function psn(t){return typeof t.previewImage=="function"}function _sn(t,n,s){if(!n)return null;if(s==="asset-lab"){const d=s2(Pp());return d?dsn(d):null}let c=t;if(t instanceof gy){const d=t.ownerOf(n);c=t.childAdapters().find(m=>m.worldId===d)?.adapter??t}return psn(c)?d=>c.previewImage(n,d,d):null}function msn(){const t=Pp();if(t===null)return null;const n=ktn(t);if(n===void 0)return null;const s=IN(n.kind);return s===void 0||s.inspectorRail!=="owned"?null:{rail:{owner:s.owner,builtins:s.inspectorBuiltins??[]}}}function hsn(t){const{store:n,adapter:s,documentSelection:c,surface:d}=t,m=oon();if(m!==null)return{subject:fje({nullSubject:m,surface:d}),available:!0};const g=pon(c,n.selectedEntityIds,s),S=g?s.hierarchy.node(g):null;if(g!==null&&S===null)return{subject:fje({nullSubject:null,surface:d}),available:!1};const k=()=>n.notifyIngestEdit(),A=g?null:c4r({adapter:s,surface:d,store:n,onEdit:k}),F=g?S?Hht(S,s):[]:Hht(null,s,{nullSubjectId:A?.id??null}),D=g?Oze(s,g):null;return{subject:tsn({adapter:s,nodeId:g,node:S,surface:d,contributions:F,...g?{}:{nullSubject:A},media:d==="asset-lab"?null:D,canvasPreview:_sn(s,g,d),assetDocument:D?.assetDocument??null,stories:n4r(s,S,g),...msn()??{},...c===null&&g!==null&&n.selectedEntityIds.size>1?{alsoSelected:n.selectedEntityIds.size-1}:{},onEdit:k}),available:g!==null||A!==null||F.length>0}}function fve(t){const n=von(t),{adapter:s,documentSelection:c}=Cm(t),d=hsn({store:t,adapter:s,documentSelection:c,surface:n}),{subject:m}=d,g=d.available&&(m.id!==G9t||m.sections.length>0)&&!isn({activeDocumentKind:TC()?.descriptor.kind??null,documentSelection:c}),S=Pp()===a0?yVe():null;if(S){const k=don(S),A=g?{...m,sections:[...m.sections.filter(F=>F.id!==k.id),k].sort((F,D)=>F.order-D.order)}:{id:`ingest:${S.summary.worldId}`,title:"Ingested game",identity:null,hint:"This mount exposes no editable scene subject. Coverage below says exactly which editor seams it did earn.",presentation:m.presentation,quickActions:[],related:[],sections:[k]};return Jxt({subject:A,surface:n,available:!0,override:lje(n),workspaceDefault:mD().inspector??null,columnShown:Cgt("properties")!==!1})}return Jxt({subject:m,surface:n,available:g,override:lje(n),workspaceDefault:mD().inspector??null,columnShown:Cgt("properties")!==!1})}function dve(t){const{subject:n,surface:s,presentation:c,available:d}=fve(t);return d?fsn(n,{surface:s,presentation:c}):asn}async function gsn(t,n){const{subject:s,available:c}=fve(t);if(!c)throw new Error("No Inspector subject is active.");const d=s.quickActions.filter(g=>g.id===n);if(d.length!==1){const g=s.quickActions.map(S=>S.id);throw new Error(d.length===0?`Inspector action ${JSON.stringify(n)} is not available. `+(g.length>0?`Available actions: ${g.join(", ")}.`:"This subject exposes no actions."):`Inspector action id ${JSON.stringify(n)} is ambiguous (${d.length} matches).`)}const m=d[0];if(!m||m.disabled)throw new Error(`Inspector action ${JSON.stringify(n)} is disabled.`);return await m.run(),dve(t)}function ysn(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 vsn(t,n,s){const c=K9t(t,n);ysn(c.field,s);const d=await c.io.set(n,s)??Lhe;return{subject:dve(t),write:d}}function K9t(t,n){const{subject:s,available:c}=fve(t);if(!c)throw new Error("No Inspector subject is active.");const d=(s.editable?.fields??[]).filter(k=>k.path===n).map(k=>({field:k,io:s.editable.io})),m=s.sections.flatMap(k=>{const A=k.body,F=A.kind==="fields"?{fields:A.fields,io:A.io}:A.kind==="custom"?A.editable:void 0;return F?F.fields.filter(D=>D.path===n).map(D=>({field:D,io:F.io})):[]}),g=[...d,...m];if(g.length===0)throw new Error(`The active Inspector has no field at ${JSON.stringify(n)}.`);if(g.length>1)throw new Error(`The active Inspector exposes ${JSON.stringify(n)} more than once.`);const S=g[0];if(S.field.readonly)throw new Error(`Inspector field ${JSON.stringify(n)} is read-only: ${IBe(S.field)}`);return S}class dje extends Error{constructor(n){super(n),this.name="InspectionRemovalUnavailableError"}}async function bsn(t,n){const s=K9t(t,n);if(s.field.resettable!==!0)throw new dje(`Inspector field ${JSON.stringify(n)} does not declare itself removable (\`resettable\`), so this lane has no way to express the property's absence. Write a value with \`set-inspection-field\` instead — and note that doing so cannot restore byte-absence for a property an edit ADDED.`);if(!s.io.remove)throw new dje(`The Inspector io that owns ${JSON.stringify(n)} implements no removal door, so the property's authored override cannot be dropped through this editor. The dialect writer that owns this source edit owns removal too; until it does, an edit/revert round trip over this lane is unverifiable at byte level.`);const c=await s.io.remove(n)??Lhe;return{subject:dve(t),write:c}}const RVe=new Map;let X9t=[];const pje=new Set;function Y9t(){X9t=[...RVe.values()];for(const t of pje)t()}function GSn(t){return pje.add(t),()=>pje.delete(t)}function KSn(t){RVe.set(t.rootId,t),Y9t()}function XSn(t){RVe.delete(t)&&Y9t()}function Z9t(){return X9t}function Ssn(){const t=Z9t();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 xsn(t){return t.liveMounted?t.livePlaying?t.storePlayState==="paused"?"paused":"playing":"paused":"stopped"}async function wsn(t,n){switch(t.reach.kind){case"game-contract":{const s=n.scenes();if(!s)return{ok:!1,code:"SCENE_CONTRACT_UNAVAILABLE",error:`open: "${t.id}" is reached through the running game's own scenes contract, and the game running in this session publishes none (\`window.volterGame.scenes\`).`};const c=s.goToScene(t.reach.sceneId);if(!c.ok)return{ok:!1,code:"SCENE_NOT_IN_CONTRACT",error:`open: "${t.id}" — ${c.error}`,known:c.known};const d=await c.settled;return d.error!==void 0?{ok:!1,code:"SCENE_SWITCH_FAILED",error:`open: "${t.id}" — the game's own navigation failed: ${d.error}`}:(n.activateGameDocument(),{ok:!0,documentId:n.gameDocumentId,title:t.label,scene:{requested:d.requested,current:d.current}})}case"root-mount":return n.activateGameDocument()?{ok:!0,documentId:n.gameDocumentId,title:t.label}:{ok:!1,code:"SCENE_DOCUMENT_NOT_MOUNTED",error:`open: "${t.id}" is the running game itself, and no game document is open in this session.`};case"entrypoint-selection":{const s=n.remountSelection,c=t.region;if(!s||c===null)return{ok:!1,code:"SCENE_NOT_OPENABLE_LIVE",error:`open: "${t.id}" sits at the entrypoint's \`${t.reach.selection}\` swap slot, and this session has no live remount for a native swap-slot scene — a running game cannot be sent there in place. Stop the game and open it as a document instead.`};const d=await s({selection:t.reach.selection,key:t.reach.key,regionId:c});return d.ok?(n.activateGameDocument(),{ok:!0,documentId:n.gameDocumentId,title:t.label,scene:{requested:t.reach.key,current:t.reach.key},restart:!0}):{ok:!1,code:"SCENE_SWITCH_FAILED",error:`open: "${t.id}" — remount at \`${t.reach.selection}["${t.reach.key}"]\` failed: ${d.error}`}}case"story":case"none":return null}}const Wge="console";function Tsn(t){let n=VQ().length>0;const s=NRt(()=>{const m=VQ().length>0;m&&!n&&mD().drawer!=="hidden"&&vC(Wge),n=m});let c=t.getSnapshot().lastError!==null;const d=t.subscribe(()=>{const m=t.getSnapshot().lastError,g=m!==null;g&&!c&&(Qs.error(`Source write rolled back: ${m.message} (${m.code})`,"history"),mD().drawer!=="hidden"&&vC(Wge)),c=g});return()=>{s(),d()}}function pve(){dkr(Wge)}function _ve(){vC(Wge)}const Hge=new Map;function YSn(t){return n=>{if(n.phase==="adopted"){Hge.set(t,{source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[]});return}const s=Hge.get(t);s&&s.alternates.push({sceneId:n.sceneId,cameraId:n.cameraId,sameRenderer:n.sameRenderer,drawCount:n.drawCount})}}function ZSn(t){Hge.delete(t)}function Csn(){return[...Hge].map(([t,n])=>({rootId:t,source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[...n.alternates],...n.alternates.length>0?{ambiguity:`"${t}" rendered ${n.alternates.length} other world(s) after the one the editor adopted (${n.source}: ${n.sceneId}). The adopted world is unchanged; if the editor is showing the wrong scene, one of these is it: `+n.alternates.map(s=>`${s.sceneId}${s.sameRenderer?"":" (a SECOND renderer)"}`).join(", ")}:{}}))}const Esn=new Set(["state","stateAll","providers","commands","events","snapshot"]);function ksn(t){if(t.type!=="bridge-call")return[];const n=t.method;if(typeof n!="string"||!Esn.has(n))return[];const s=t.instance;try{const c=Ywr(s).debug;if(c===void 0)return[];const d=[E3t(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 Asn(t,n,s){const c=ksn(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":Xvr(t.type)??Gvr(t.type),playFullReport:n&&!d&&c.length>0?"explicit":n&&t.type==="bridge-call"&&t.method==="invoke"?"if-content-changed":"none"}}function Dsn(t,n,s,c){return t==="none"?!1:!(t==="if-content-changed"&&n==="none"&&s===c)}function Xxt(t,n){const s=nq(t);return s.hierarchy.node(n)!==null||Oze(s,n)!==null?null:`select: no entity with id "${n}" — neither the active authoring adapter's hierarchy nor the live object index owns it, so there is nothing to select. Read the ids that exist with editor.hierarchy() (the rows the panel is rendering) or editor.status().entities.`}function vOe(t,n,s){const c=s2(Pp())?.selection;if(c){c.apply(n);return}const d=t.applySelectionBeforePresentation(n);s?.deferPresentation?s.deferPresentation(d):setTimeout(d,0)}function Psn(){return typeof document>"u"?null:{visibility:document.visibilityState,focused:document.hasFocus(),reportedAt:Date.now()}}const Isn=["entities","entityCount","ontologyInvariants"];function Nsn(t){const n={...t};for(const s of Isn)delete n[s];for(const s of enn())delete n[s];return{...n,_statePatch:!0}}function Yxt(t,n=null){const s=VQ(),c=Pp(),d=Mze(t),m=T4t.getSnapshot(),g=n?.entities??Y0e(t);return{playState:xsn({storePlayState:t.playState,liveMounted:bVe(),livePlaying:ave()}),mountFailures:s.map(S=>({...S})),storyFailures:rq().flatMap(S=>S.ok?[]:[{modulePath:S.modulePath,error:S.error}]),moduleSplits:hnn().map(S=>({path:S.path,urls:[...S.urls]})),adapter:u0(),readiness:Z9t().map(S=>({...S})),readinessWarning:Ssn(),worldAdoption:Csn().map(S=>({...S})),presence:Psn(),pageErrors:Osn(),consoleErrors:Rsn(),sessionErrors:Fsn(),sessionWarnings:Msn(),rendererResources:{...bnn()},ontologyInvariants:n?.ontologyInvariants??b9t().map(S=>({...S})),...Qrn(n),selectedEntityId:d[0]??null,selectedEntityIds:d,selectedCreationSite:JYr(t),selectedWriteAnchorKind:WYr(t),activeViewportTab:t.activeViewportTab,activeDocumentId:c,activeUtilityId:ukr(),gameplaySession:{selectedSessionId:m.selectedSessionId,latestSessionId:m.sessions[0]?.id??null,selectedStatus:m.selectedSession?.status??null,cursorMs:m.cursorMs,liveEdgeMs:m.liveEdgeMs},openDocumentIds:l0().map(S=>S.descriptor.id),availableDocuments:ive().map(S=>({id:S.descriptor.id,category:S.category,default:S.default})),activeTabKey:(()=>{const S=Pp();return S&&ZRt(S)?S:"__inspector__"})(),entityCount:g.length,savePath:Fze(t),saveState:ORt(t),entities:g,viewportActivationTimings:gTr()}}function Q9t(t,n){const s=n instanceof Error?n.message:String(n),c=`editor command "${String(t.type)}" threw: ${s}`;return console.error(c,n),{ok:!1,error:c}}function FVe(t){const n=pVe();return!n||t<n.startedAt?!1:n.endedAt===null||t<=n.endedAt}function Osn(){return Qs.getEntries().filter(t=>t.level==="error"&&t.source==="runtime"&&FVe(t.timestamp)).slice(-100).map(t=>t.count>1?`${t.message} (×${t.count})`:t.message)}const Zxt=200;function Rsn(){return MVe(Qs.getEntries().filter(t=>t.level==="error"&&t.source!=="runtime"&&FVe(t.timestamp)))}function MVe(t){const n=t.reduce((c,d)=>c+d.count,0),s=t.slice(-3).map(c=>{const d=c.source?`[${c.source}] `:"",m=c.count>1?` (×${c.count})`:"",g=c.message.length>Zxt?`${c.message.slice(0,Zxt)}…`:c.message;return`${d}${g}${m}`});return{count:n,recent:s}}function Fsn(){return MVe(Qs.getEntries().filter(t=>t.level==="error"&&!FVe(t.timestamp)))}function Msn(){return MVe(Qs.getEntries().filter(t=>t.level==="warn"))}async function jsn(t){const n=t.src;if(typeof n!="string")return{ok:!1,error:`document-script requires a string "src" (the step's toString())`};const s=Pp();if(!s)return{ok:!1,error:"document-script: no document is active",data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE"}};await b4t(s);const c=lQ(s);if(Pp()!==s)return{ok:!1,error:"document-script: the active document changed while its context was loading",data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE",documentId:s}};if(c===void 0)return{ok:!1,error:`document-script: the active document (${s}) publishes no context to run against — a document opts in through its \`publishContext\` prop (the mesh document publishes its session).`,data:{code:"DOCUMENT_SCRIPT_UNAVAILABLE",documentId:s}};let d;try{d=new Function("ctx","info",`return (${n})(ctx, info)`)}catch(m){return{ok:!1,error:`document-script: failed to reconstruct the step function from source — ${m instanceof Error?m.message:String(m)}`,data:{code:"DOCUMENT_SCRIPT_ERROR"}}}try{const m=await d(c,{documentId:s});return{ok:!0,data:{result:m===void 0?null:m}}}catch(m){return{ok:!1,error:`document-script: step threw — ${m instanceof Error?m.message:String(m)}`,data:{code:"DOCUMENT_SCRIPT_ERROR"}}}}async function Lsn(t,n,s){if(GYr(n.type),kYr()&&n.type!=="stop")return{ok:!1,error:"Video export owns this paused run. Stop it to cancel before another command."};const c=hVe(n);if(c)return c;if(n.type==="play"||n.type==="restart"){const g=VQ();if(g.length>0)return{ok:!1,error:`this project's ${g.length===1?"root":"roots"} did not mount, so there is nothing to ${n.type==="play"?"play":"restart"}: `+g.map(S=>`"${S.worldId}" (${S.identity}) — ${S.message}`).join("; ")}}const d=await KYr(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 Q9t(n,g)}if(!fye(n.type))return{ok:!1,error:`unknown command type "${n.type}" — not one of the editor's own, and no package this project declares contributes it (or the editor page predates this CLI)`,data:{code:"UNKNOWN_COMMAND_TYPE"}};const m=n.type;switch(m){case"session-prepare-close":return await ynn(),{ok:!0};case"select":{const g=n.id??null;if(g!==null){const S=Xxt(t,g);if(S)return{ok:!1,error:S}}vOe(t,g?[g]:[],s);break}case"select-multiple":{const g=n.ids;for(const S of g){const k=Xxt(t,S);if(k)return{ok:!1,error:k}}vOe(t,g,s);break}case"select-all":{vOe(t,Y0e(t).map(g=>g.id),s);break}case"viewport-tab":{const g=n.tab;if(g!=="edit"&&g!=="play")return{ok:!1,error:`viewport-tab requires "edit" or "play", got ${String(g)}.`};const S=l0().map(A=>A.descriptor.id),k=g==="play"?S.find(A=>A===a0):S.find(A=>A==="workspace:scene")??S.find(A=>A!==a0);if(!k||!X0(k))return{ok:!1,error:g==="play"?"viewport-tab play: no Game document is open. Start Play first.":"viewport-tab edit: no document other than Game is open."};break}case"show-panel":try{const g=n.panel;return typeof g!="string"||g.trim()===""?{ok:!1,error:'show-panel requires a non-empty "panel".'}:{ok:!0,data:{panel:await S9t(g)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"active-tab":{const g=n.key;if(g!=="__inspector__"&&!X0(g)){const S=l0().map(k=>k.descriptor.id);return{ok:!1,error:`No open workspace document with id "${g}" — nothing was activated. `+(S.length>0?`Open documents: ${S.join(", ")}.`:"No documents are open in this workspace.")}}break}case"select-asset":{const g=n.path;if(typeof g!="string"||g.trim()==="")return{ok:!1,error:'select-asset requires a non-empty "path".'};const S=g.replace(/^\/+/,""),k=S.split("/").pop()??S,A=ig(k);BI({path:g,name:k,kind:FB(A)??"unknown",capabilities:A,origin:"project"});break}case"open-asset-tab":{const g=n.kind,S=aN(n.path,g);if(!await QRt(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)&&kN(g);break}case"toggle-command-palette":EVe();break;case"toggle-console":pve();break;case"page-reload":return setTimeout(()=>{window.location.reload()},0),{ok:!0,data:{scheduled:!0}};case"set-workspace":{const g=n.workspace;if(!kB(g))return{ok:!1,error:`set-workspace requires one of ${WBe().join(", ")}, got ${String(g)}.`};if(zS()===g)return{ok:!0,data:{workspace:g,applied:!0}};const S=wDt().then(()=>!0);a2(g);const k=await Promise.race([S,new Promise(A=>setTimeout(()=>A(!1),3e3))]);return{ok:!0,data:{workspace:g,applied:k}}}case"set-style":{const g=n.style,S=OR().map(A=>A.id);if(typeof g!="string"||!S.includes(g))return{ok:!1,error:`set-style requires one of ${S.join(", ")}, got ${String(g)}.`};QBe(g);const k=Nhe();return k!==g?{ok:!1,error:`set-style applied "${g}" but the editor is wearing ${k===null?"a custom mix of axes":`"${k}"`} (${mgt(g).join("; ")}).`,data:{style:k,differences:mgt(g)}}:{ok:!0,data:{style:g}}}case"viewport-presentation":{const g=n.documentId;if(typeof g!="string"||g==="")return{ok:!1,error:"viewport-presentation needs a `documentId` (a document stage)."};const S=M_e(g)===null&&M_e(`document:${g}`)!==null?`document:${g}`:g,k=n.layer;if(k!==void 0){if(typeof k!="object"||k===null)return{ok:!1,error:"viewport-presentation `layer` must be a presentation layer object."};e$e(S,k)}const A=n.preset;return A!==void 0&&(typeof A!="string"||!PAr(S,A))?{ok:!1,error:`viewport-presentation \`preset\` must be one of: ${ggt().map(F=>F.id).join(", ")||"(none registered)"}.`}:{ok:!0,data:{presentation:t$e(S),binding:M_e(S),bound:RAr(),lastDraw:OAr(S),presets:EAr().map(F=>F.id),viewPresets:ggt().map(F=>F.id),environmentImages:BAr().map(F=>F.id)}}}case"set-appearance":{const g=n.material;return g===void 0?{ok:!1,error:"set-appearance needs a `material` to set."}:Bye(g)?(IDt(g),{ok:!0,data:{material:mN(),style:Nhe()}}):{ok:!1,error:`set-appearance material must be one of ${LTr().map(k=>k.id).join(", ")}, got ${String(g)}.`}}case"present-view":try{return{ok:!0,data:{...await Vge(t,n.view)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"current-view":return{ok:!0,data:{view:ste(t)}};case"inspect":return{ok:!0,data:{subject:dve(t)}};case"run-inspection-action":try{const g=n.actionId;if(typeof g!="string"||g.trim()==="")throw new Error("run-inspection-action requires a non-empty actionId.");return{ok:!0,data:{subject:await gsn(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 oin(g,n.args);return{ok:!0,data:{result:S===void 0?null:S}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"hierarchy":{const g=wxt();return g===null?{ok:!1,error:"the hierarchy panel (GameHierarchy) is not mounted — no row tree is rendered, so there is nothing to report. Open the Hierarchy panel in the workspace dock and retry."}:{ok:!0,data:{hierarchy:inn(g,{playState:t.playState,activeViewportTab:t.activeViewportTab})}}}case"expand-hierarchy-all":case"collapse-hierarchy-all":{const g=n.type==="expand-hierarchy-all",S=wxt();if(S===null)return{ok:!1,error:`the hierarchy panel (GameHierarchy) is not mounted — no row tree is rendered, so there is nothing to ${g?"expand":"collapse"}. Open the Hierarchy panel in the workspace dock and retry.`};const k=rnn();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 vsn(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 bsn(t,g);return{ok:!0,data:{subject:S.subject,write:S.write}}}catch(g){return g instanceof dje?{ok:!1,error:g.message,data:{code:"REMOVAL_UNAVAILABLE"}}:{ok:!1,error:g instanceof Error?g.message:String(g)}}case"structure-op":try{const g=String(n.op??""),S=Cm(t).adapter,k=Mze(t),A=Array.isArray(n.ids)?n.ids.filter(G=>typeof G=="string"):typeof n.id=="string"&&n.id.trim()!==""?[n.id]:k,F=A[0],D=()=>{if(!F)throw new Error(`structure-op "${g}" needs an id or a selected row.`);return F},J=G=>typeof n[G]=="string"&&n[G].trim()!==""?n[G]:void 0,$=S.structure;if(!$)return{ok:!1,error:"structure-op: the active authoring adapter exposes no structure provider."};switch(g){case"create":{const G=J("kind");if(!G)return{ok:!1,error:'structure-op "create" needs a `kind`.'};const se=t0e(S,G,J("parentId"));return{ok:!0,data:{id:se.id,write:await se.ack}}}case"delete":return{ok:!0,data:{write:A.length>1&&$.removeMany?await p$e(S,A):await jhe(S,D())}};case"duplicate":{if(A.length>1&&$.duplicateMany)return{ok:!0,data:{write:await xPt(S,A)}};const G=r0e(S,D());return{ok:!0,data:{id:G.id,write:await G.ack}}}case"reparent":{const G=J("parentId")??null;return{ok:!0,data:{write:await QO(S,D(),G)}}}case"reorder":{if(!$.reorder)return{ok:!1,error:"structure-op: this adapter has no `reorder`."};const G=J("beforeSiblingId")??null;return{ok:!0,data:{write:await _$e(S,D(),G)}}}case"wrap":return $.wrap?{ok:!0,data:{write:await n0e(S,D(),J("tag"))}}:{ok:!1,error:"structure-op: this adapter has no `wrap`."};case"unwrap":return $.unwrap?{ok:!0,data:{write:await i0e(S,D())}}:{ok:!1,error:"structure-op: this adapter has no `unwrap`."};case"group":{if(!$.group)return{ok:!1,error:"structure-op: this adapter has no `group`."};const G=o0e(S,A);return{ok:!0,data:{id:G.id,write:await G.ack}}}case"ungroup":{if(!$.ungroup)return{ok:!1,error:"structure-op: this adapter has no `ungroup`."};const G=m$e(S,D());return{ok:!0,data:{ids:G.ids,write:await G.ack}}}case"copy":return $.copy?{ok:!0,data:{copied:await s0e(S,A)}}:{ok:!1,error:"structure-op: this adapter has no `copy`."};case"cut":{if(!$.cut)return{ok:!1,error:"structure-op: this adapter has no `cut`."};const G=await a0e(S,A);return G===!1?{ok:!1,error:'structure-op "cut" was refused by the adapter.'}:{ok:!0,data:{write:G}}}case"paste":{if(!$.paste)return{ok:!1,error:"structure-op: this adapter has no `paste`."};const G=J("parentId")??(F?S.hierarchy.node(F)?.parentId??null:null),se=await c0e(S,G);return se===!1?{ok:!1,error:'structure-op "paste" was refused by the adapter.'}:{ok:!0,data:{write:se}}}default:return{ok:!1,error:`structure-op: unknown op ${JSON.stringify(g)}. Known ops: create, delete, duplicate, reparent, reorder, wrap, unwrap, group, ungroup, copy, cut, paste.`}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"document-probe":try{return{ok:!0,data:{...await Krn(n.step)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"capture-active-document":{const g=UDr(n);if("error"in g)return{ok:!1,error:g.error};try{n.view&&await Vge(t,n.view);const S=await x9t(t,g.size);return cnn(S.base64),{ok:!0,data:{...S}}}catch(S){return{ok:!1,error:S instanceof Error?S.message:String(S)}}}case"capture-editor-chrome":{const g=n.scale;if(g!==void 0&&(typeof g!="number"||!(g>0)||g>4))return{ok:!1,error:`capture-editor-chrome: "scale" must be a number greater than 0 and no more than 4 (output pixels per CSS pixel; the frame crosses the relay as base64 PNG). It defaults to the page's own devicePixelRatio.`};const S=n.region;if(S!==void 0&&S!=="page"&&S!=="document")return{ok:!1,error:'capture-editor-chrome: "region" is "page" or "document".'};try{return{ok:!0,data:{...await Yrn(t,{...g===void 0?{}:{scale:g},...S===void 0?{}:{region:S}})}}}catch(k){return{ok:!1,error:k instanceof Error?k.message:String(k)}}}case"document-table":{const g=u0();return g?{ok:!0,data:{default:g.scenes.default??null,entries:g.scenes.entries,pending:g.documentsPending===!0}}:{ok:!1,error:"The project adapter has not resolved yet — no document table to list.",data:{code:"SCENE_TABLE_UNAVAILABLE"}}}case"open":{const g=n.id;if(typeof g!="string"||g.trim()==="")return{ok:!1,error:"open requires a non-empty scene-table entry id."};const S=ate(),k=S?u0()?.scenes.entries.find(J=>J.id===g&&IN(J.kind)===void 0):void 0,A=S?async J=>await o9t(J)??{ok:!1,error:"No running lane can remount with a selection."}:void 0,D=(k?await wsn(k,{scenes:gVe,activateGameDocument:()=>X0(a0),gameDocumentId:a0,...A?{remountSelection:A}:{}}):null)??await qtn(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 jsn(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=()=>{i_e()===null&&(c=Yxt(t),d=t.contentVersion,GSt(c))};let D=null;const J=()=>{S!==null&&(clearTimeout(S),S=null),D?.(),D=null},$=()=>{k=null,A!==null&&clearTimeout(A),A=null},G=()=>{$(),g=!0,J(),S=setTimeout(()=>{S=null,D=Cxt(()=>{D=null,g=!1,F()})},250)},se=vn=>{if(t.contentVersion!==vn){G();return}$(),k=vn,A=setTimeout($,1e3)},pe=()=>ate()&&t.playState==="playing",ue=vn=>{(vn!==null||k!==null&&t.contentVersion!==k||g&&t.contentVersion!==d)&&G()},Ce=(vn,Yr,en)=>pe()?(Dsn(en,vn,t.contentVersion,d)&&(vn==="explicit"?G():vn==="if-content-changed"?se(Yr??t.contentVersion):ue(Yr)),!0):!1,De=(vn="always",Yr="none",en=null)=>{if(i_e()!==null)return;if(c===null){F();return}const ii=Yxt(t,c);c=ii,GSt(Nsn(ii)),vn!=="none"&&(Ce(Yr,en,vn)||(J(),$(),g=!1,!(vn==="if-content-changed"&&t.contentVersion===d)&&D===null&&(D=Cxt(()=>{D=null,F()}))))};let Pe=!1,be=!1,X=t.playState;const we=vn=>{vn&&(be=!0),!Pe&&(Pe=!0,queueMicrotask(()=>{Pe=!1;const Yr=be;be=!1;const en=X!==t.playState;X=t.playState,De(Yr?"always":"if-content-changed",en&&t.playState==="playing"?"explicit":"none")}))},qe=()=>we(!1),bt=()=>we(!0),Pt=t.subscribe(qe),Wt=xVe(bt),zt=OC(bt),ft=mTr(bt);F(),o_e(!0),fEr(KZr),s.addEventListener("open",()=>{De("if-content-changed"),o_e(i_e()===null)});const tr=Bze(vn=>{o_e(vn===null)});s.addEventListener("editor-command",vn=>{try{const Yr=JSON.parse(vn.data),en=Yr._requestId,ii=t.contentVersion,No=i_e();if(No!==null){const En=lZr(No,String(Yr.type));en&&KSt(en,!1,En);return}en&&HZr(en);let gn;Lsn(t,Yr,{deferPresentation:En=>{gn=En},...n?{history:n}:{}}).catch(En=>Q9t(Yr,En)).then(En=>{if(en){const On=KSt(en,En.ok,En.error,En.data,gn!==void 0);if(gn){const ji=()=>window.setTimeout(gn,0);On.then(ji,ji)}}else gn&&window.setTimeout(gn,0);const cs=Asn(Yr,En.ok,m);De(cs.derived,cs.playFullReport,ii)})}catch{}}),s.addEventListener("project-changed",()=>{window.location.reload()});const Qt=()=>De();document.addEventListener("visibilitychange",Qt),window.addEventListener("focus",Qt),window.addEventListener("blur",Qt);const Tt=()=>setTimeout(Qt,0);return window.addEventListener("error",Tt),window.addEventListener("unhandledrejection",Tt),()=>{o_e(!1),D?.(),D=null,S!==null&&clearTimeout(S),S=null,$(),tr(),Pt(),Wt(),zt(),ft(),document.removeEventListener("visibilitychange",Qt),window.removeEventListener("focus",Qt),window.removeEventListener("blur",Qt),window.removeEventListener("error",Tt),window.removeEventListener("unhandledrejection",Tt),s.close()}}function $sn(t,n,s){return Ye.createContext(s)}const LD=$sn(void 0,"EditorContext",null);function qsn({runtime:t,children:n}){const s=Ye.useMemo(()=>({begin:()=>{},end:()=>{}}),[]);return q.jsx(LD.Provider,{value:t,children:q.jsx(p4t.Provider,{value:s,children:q.jsx(Ye.Suspense,{children:n})})})}function Yv(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorStore must be used within <EditorProvider>");return t.store}function QSn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorStats must be used within <EditorProvider>");return t.stats}function zsn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorInit must be used within <EditorProvider>");return t.initPromise}function eMt(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryService must be used within <EditorProvider>");return t.session.history}function Vsn(){return Ye.useContext(LD)?.session.history??null}function exn(){return Ye.useContext(LD)?.store??null}function txn(){return Ye.useContext(LD)?.stats??null}function mve(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryCommands must be used within <EditorProvider>");return t.session.historyCommands}function tMt(){const t=mve();return Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot)}function Usn(t,n){return t==="selection"&&n==="selection"?"selection":"content"}class Jsn{_viewportSelections={edit:new Set,play:new Set};_history=null;_playState="stopped";_playEditRegime=null;_followsWorkspaceFocus;constructor(n={}){if(this._followsWorkspaceFocus=n.followsWorkspaceFocus===!0,!this._followsWorkspaceFocus)return;let s=this.activeViewportTab;o2(()=>{const c=this.activeViewportTab;c!==s&&(s=c,this._notify())})}_listeners=new Set;_deferredNotifyTimer=null;_deferredNotifyScope="content";_version=0;_shellVersion=0;_contentVersion=0;_hierarchyRowFacetVersion=0;subscribe=n=>(this._listeners.add(n),()=>this._listeners.delete(n));getSnapshot=()=>this._version;getShellSnapshot=()=>this._shellVersion;get contentVersion(){return this._contentVersion}get hierarchyRowFacetVersion(){return this._hierarchyRowFacetVersion}get projectHistory(){return this._history}_notify(n="content",s="shell",c=n!=="selection"){this._deferredNotifyTimer!==null&&(clearTimeout(this._deferredNotifyTimer),this._deferredNotifyTimer=null),this._beforeNotify(),this._version++,s==="shell"&&this._shellVersion++,n!=="selection"&&this._contentVersion++,c&&this._hierarchyRowFacetVersion++;for(const d of this._listeners)d()}_transformMode="combined";_transformSpace="world";_snapEnabled=!1;_snapValues={translate:1,rotate:15,scale:.25};_snapToSurface=!1;_rotationSnap=!1;_snap2D={step:8,offsetX:0,offsetY:0,primaryEvery:8,rotationOffset:0,rotationStep:15,scaleStep:.1,relative:!1,pixel:!0};_scaleSnap=!1;_smartSnap={enabled:!1,parent:!0,others:!0,guides:!0,sides:!0,center:!0};_preserveChildrenTransform=!1;_pivotMode="active-element";_gizmoAnchor="auto";_showHelpers=!0;_showGizmos=!0;_helperVisibility={bounds:!1,lights:!0,cameras:!0,colliders:!0,joints:!0,particles:!0,lod:!0,audio:!0,splines:!0,navmesh:!0,constraints:!0,reflectionProbes:!0,triggerVolumes:!0,skeletons:!1,weights:!1,cursor:!0,empties:!0};get transformMode(){return this._transformMode}get transformSpace(){return this._transformSpace}get snapEnabled(){return this._snapEnabled}get snapValues(){return this._snapValues}get snapToSurface(){return this._snapToSurface}get snap2D(){return this._snap2D}setSnap2D(n){this._snap2D={...this._snap2D,...n},this._notify()}get rotationSnap(){return this._rotationSnap}get scaleSnap(){return this._scaleSnap}setRotationSnap(n){this._rotationSnap=n,this._notify()}setScaleSnap(n){this._scaleSnap=n,this._notify()}get smartSnap(){return this._smartSnap}get preserveChildrenTransform(){return this._preserveChildrenTransform}get pivotMode(){return this._pivotMode}get gizmoAnchor(){return this._gizmoAnchor}get showHelpers(){return this._showHelpers}get showGizmos(){return this._showGizmos}get helperVisibility(){return this._helperVisibility}setTransformMode(n){this._transformMode=n,this._notify()}setTransformSpace(n){this._transformSpace=n,this._notify()}toggleSnap(){this._snapEnabled=!this._snapEnabled,this._notify()}setSnapValues(n){this._snapValues={...this._snapValues,...n},this._notify()}setSmartSnap(n){this._smartSnap={...this._smartSnap,...n},this._notify()}toggleSnapToSurface(){this._snapToSurface=!this._snapToSurface,this._notify()}togglePreserveChildrenTransform(){this._preserveChildrenTransform=!this._preserveChildrenTransform,this._notify()}setPivotMode(n){this._pivotMode=n,this._notify()}setGizmoAnchor(n){this._gizmoAnchor=n,this._notify()}toggleGizmos(){this._showGizmos=!this._showGizmos,this._notify()}toggleHelpers(){this._showHelpers=!this._showHelpers,this._notify()}toggleHelperType(n){this._helperVisibility[n]=!this._helperVisibility[n],this._helperVisibility[n]&&(this._showHelpers=!0),this._notify()}_viewportActionListeners=new Set;onViewportAction=n=>(this._viewportActionListeners.add(n),()=>this._viewportActionListeners.delete(n));requestViewportAction(n){for(const s of this._viewportActionListeners)s(n)}focusOnEntity(n){this.requestViewportAction({type:"focus-entity",id:n})}focusOnSelection(){this.requestViewportAction({type:"focus-selection"})}frameAll(){this.requestViewportAction({type:"frame-all"})}zoomView(n){this.requestViewportAction({type:"zoom-view",direction:n})}focusOnScene(){this.requestViewportAction({type:"focus-scene"})}snapSelectionToFloor(){this.requestViewportAction({type:"snap-selection-to-floor"})}setViewPreset(n){this.requestViewportAction({type:"set-view-preset",preset:n})}stepView(n){this.requestViewportAction({type:"step-view",step:n})}toggleCameraView(){this.requestViewportAction({type:"toggle-camera-view"})}toggleProjection(){this.requestViewportAction({type:"toggle-projection"})}setCameraPose(n,s,c){this.requestViewportAction({type:"set-camera-pose",position:n,target:s,...c!==void 0?{fov:c}:{}})}notifyChange(n="content",s="shell",c=n!=="selection"){this._notify(n,s,c)}_notifyDeferred(n="content"){if(this._deferredNotifyTimer!==null){this._deferredNotifyScope=Usn(this._deferredNotifyScope,n);return}this._deferredNotifyScope=n,this._deferredNotifyTimer=setTimeout(()=>{this._deferredNotifyTimer=null;const s=this._deferredNotifyScope;this._deferredNotifyScope="content",this._notify(s)},0)}attachHistory(n){if(this._history!==n){if(this._history)throw new Error("EditorStore is already attached to project history.");this._history=n,this._onHistoryAttached()}}get selectedEntityId(){const n=this._viewportSelections[this.activeViewportTab];return n.size===0?null:[...n].at(-1)}get selectedEntityIds(){return this._viewportSelections[this.activeViewportTab]}get canUndo(){return this._history?.getSnapshot().canUndo??!1}get canRedo(){return this._history?.getSnapshot().canRedo??!1}notifyIngestEdit(){this._notify()}get playState(){return this._playState}_blockedDuringPlay(n){return this._playState==="stopped"?!1:(console.warn(`EditorStore: "${n}" is disabled during play mode — stop the game first.`),!0)}setPlayState(n){const s=this._playState!=="stopped";this._playState=n,n==="stopped"&&s&&this._onPlayStopped(),this._notify()}get playEditRegime(){return this._playEditRegime}setPlayEditRegime(n){this._playEditRegime=n,this._notify()}get activeViewportTab(){return this._followsWorkspaceFocus&&Pp()===a0?"play":"edit"}select(n,s="immediate"){const c=this._viewportSelections[this.activeViewportTab];c.clear(),n&&c.add(n),s==="deferred"?this._notifyDeferred("selection"):this._notify("selection")}selectMultiple(n,s="immediate"){this._viewportSelections[this.activeViewportTab]=new Set(n),s==="deferred"?this._notifyDeferred("selection"):this._notify("selection")}applySelectionBeforePresentation(n){this._viewportSelections[this.activeViewportTab]=new Set(n);let s=!1;return()=>{s||(s=!0,this._notify("selection"))}}addToSelection(n){this._viewportSelections[this.activeViewportTab].add(n),this._notify("selection")}toggleSelection(n){const s=this._viewportSelections[this.activeViewportTab];s.has(n)?s.delete(n):s.add(n),this._notify("selection")}_beforeNotify(){}_onHistoryAttached(){}_onPlayStopped(){}}class Wsn{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 Hsn(t){let n=t.getSnapshot().limitWarning,s=t.getSnapshot().lastEviction;return t.subscribe(()=>{const{limitWarning:c,lastEviction:d}=t.getSnapshot();c!==n&&(n=c,c&&(i0(c.message),Qs.warn(c.message,"history"))),d!==s&&(s=d,d&&Qs.warn(d.message,"history"))})}class Gsn{constructor(n,s={}){this.projectIdentity=n,this.history=new kDr(s),this.historyCommands=new Wsn(this.history),this.releaseLimitNotices=Hsn(this.history)}history;historyCommands;releaseLimitNotices;dispose(){this.releaseLimitNotices(),this.historyCommands.dispose(),this.history.dispose()}}function Ksn(){return rMt}let rMt=Promise.resolve();function nMt(){const t=Xsn();return rMt=t.then(()=>{},()=>{}),t}async function Xsn(){await iMt()}async function iMt(){const t=wf();if(t){Qs.log(`Opened project: ${t.config.name}`,"project");return}try{const n=await CFt();n&&Qs.log(`Opened project: ${n.config.name}`,"project")}catch{}}const oMt=Object.freeze(Object.defineProperty({__proto__:null,bootstrapProject:nMt,initProject:iMt,projectBootstrapSettled:Ksn},Symbol.toStringTag,{value:"Module"}));function bOe(t){return Promise.reject(new Error(`This editor tier cannot ${t}.`))}const sMt={openPersistence:()=>bOe("persist Asset Lab documents"),replaceSource:()=>bOe("write project source"),saveThumbnailFraming:()=>bOe("write project thumbnail framing")};let yme=sMt;function Ysn(t){if(yme!==t){if(yme!==sMt)throw new Error("An Object3D document write policy is already installed.");yme=t}}function Zsn(){return yme}function Qsn(){let t=0;const n=async()=>{const c=++t,d=wf();if(d)try{const m=await Vze();if(m.status!=="project"||m.project.path!==d.rootPath)return;const g=m.project.config;if(c!==t||wf()!==d)return;mLe({...d,config:g})}catch(m){c===t&&wf()===d&&console.error("[project] Could not refresh project declarations:",m)}},s=men(()=>void n());return()=>{t++,s()}}function ean(){return qvr(()=>{SVe(),D3r(null),Gwr(),Ynn(),bTr(),$3t(),Ctn(),oD()})}async function tan(){typeof performance<"u"&&performance.getEntriesByType("navigation").length>0&&await Promise.race([jye(),new Promise(n=>setTimeout(n,5e3))]),await hN()}function ran(){tan();const t=IC(()=>void hN()),n=yFt(()=>void hN());return()=>{t(),n()}}const nan={tools:[],contributions:[],loadErrors:[]};let aMt=nan,cMt=0;const _je=new Set;function Qxt(t){aMt=t,cMt++;for(const n of _je)n()}function N$(){return aMt}function ian(){return cMt}function lMt(t){return _je.add(t),()=>_je.delete(t)}async function HZ(){try{const t=await fetch("/__editor/project-tools"),n=await L_(t,"Catalog request failed");return Qxt(n),n}catch(t){const n={tools:[],contributions:[],loadErrors:[{sourcePath:"package.json#volter.tools",message:t instanceof Error?t.message:String(t)}]};return Qxt(n),n}}async function oan(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 san(){HZ();const t=IC(()=>void HZ()),n=yFt(()=>void HZ());return()=>{t(),n()}}const Gge=new Map;function aan(t,n){if(n===null){Gge.delete(t);return}Gge.set(t,n),can()}const ewt=128;let mZ=[],GZ=null,uMt=0,vme=!1;function can(){if(vme)return()=>{};if(typeof PerformanceObserver>"u")return()=>{};let t;try{t=new PerformanceObserver(n=>{for(const s of n.getEntries()){const c=s.duration;(GZ===null||c>GZ)&&(GZ=c),c>=100&&(uMt+=1),mZ.push({start:s.startTime,duration:c}),mZ.length>ewt&&(mZ=mZ.slice(-ewt))}}),t.observe({type:"longtask",buffered:!0})}catch{return()=>{}}return vme=!0,()=>{t.disconnect(),vme=!1}}function lan(){return vme?{longestTaskMs:GZ===null?null:Math.round(GZ),tasksOver100ms:uMt}:null}function uan(t=performance.now()){if(Gge.size===0)return null;const n={};for(const[s,c]of Gge){const d=c(),m=d.lastCallWindow;let g=null;if(m!==null){const S=m.end??t;for(const k of mZ)k.start+k.duration<m.start||k.start>S||(g===null||k.duration>g)&&(g=k.duration)}n[s]={inFlightMs:d.inFlightMs,lastCallMs:d.lastCallMs,maxCallMs:d.maxCallMs,maxCallLabel:d.maxCallLabel??null,currentPhase:d.currentPhase??null,...d.completedCalls===void 0?{}:{completedCalls:d.completedCalls},callsOver5s:d.callsOver5s,callsOver30s:d.callsOver30s,lastCallLongestTaskMs:g===null?null:Math.round(g),wasmMemoryMB:d.wasmMemoryMB}}return n}function twt(t){return!("unavailable"in t)}function fan(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 dan=5e3,pan=4,_an=1024*1024;function SOe(t){return Math.round(t/_an*100)/100}function man(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*pan;return{heapUsedMB:twt(n)?SOe(n.usedBytes):null,heapLimitMB:twt(n)&&n.limitBytes!==null?SOe(n.limitBytes):null,mountEpochs:t.mountEpochs(),canvases:s.length,canvasMB:SOe(g),...d===null?{}:{workerCalls:d},...m===null?{}:{stalls:m},...c===null?{}:{textures:c.textures,geometries:c.geometries,...c.programs===null?{}:{programs:c.programs}}}}function han(t){const n=new Set;for(const s of t)try{const c=new URL(s.name,"http://volter.invalid").searchParams.get(Rge);c!==null&&c.length>0&&n.add(c)}catch{}return n.size}function gan(){return{heap:()=>fan(),mountEpochs:()=>han(performance.getEntriesByType("resource")),canvases:()=>[...document.querySelectorAll("canvas")],rendererCounts:()=>iTr()?.memorySnapshot?.().counts??null,workerCalls:()=>uan(),stalls:()=>lan()}}let fMt=null;function rxn(){return fMt}function yan(t){const n=t.sources??gan(),s=t.hidden??(()=>document.visibilityState==="hidden"),c=()=>{if(s())return;const m=man(n);fMt=m,t.report(m)};c();const d=setInterval(c,t.intervalMs??dan);return()=>clearInterval(d)}function van({children:t}){const n=Ye.useRef(null);n.current||(n.current=new Jsn({followsWorkspaceFocus:!0}),nQr(n.current));const s=Ye.useRef(null);if(!s.current){const g=wf();s.current=new Gsn(g?.rootPath??"unknown-project")}n.current.attachHistory(s.current.history),Ysn(VDr);const c=Ye.useRef(null);c.current||(c.current={fps:0,frameTime:0,drawCalls:0,triangles:0,cameraPosition:{x:0,y:0,z:0},cameraTarget:{x:0,y:0,z:0}});const d=Ye.useRef(null);d.current||(d.current=nMt()),Ye.useEffect(()=>Bsn(n.current,s.current.historyCommands),[]),Ye.useEffect(()=>ran(),[]),Ye.useEffect(()=>san(),[]),Ye.useEffect(()=>ctn(),[]),Ye.useEffect(()=>Qsn(),[]),Ye.useEffect(()=>ean(),[]),Ye.useEffect(()=>Btn(),[]),Ye.useEffect(()=>yan({report:wZr}),[]);const m=Ye.useRef(!1);return Ye.useEffect(()=>{m.current=!0;const g=s.current;return()=>{m.current=!1,queueMicrotask(()=>{m.current||g.dispose()})}},[]),q.jsx(qsn,{runtime:{store:n.current,stats:c.current,initPromise:d.current,session:s.current},children:t})}const Kge={x:0,y:0,zoom:1};function nxn(t=Kge){let n=t;const s=new Set,c=()=>{for(const d of s)d()};return{get:()=>n,setView:(d,m,g)=>{const S=Math.min(4,Math.max(.1,g));n.x===d&&n.y===m&&n.zoom===S||(n={x:d,y:m,zoom:S},c())},setPan:(d,m)=>{const g=n.zoom;n.x===d&&n.y===m||(n={x:d,y:m,zoom:g},c())},setZoom:d=>{const m=Math.min(4,Math.max(.1,d));n.zoom!==m&&(n={x:n.x,y:n.y,zoom:m},c())},reset:()=>{n.x===0&&n.y===0&&n.zoom===1||(n=Kge,c())},subscribe:d=>(s.add(d),()=>s.delete(d))}}let n2=Kge;const mje=new Set,ixn={get:()=>ban(),setView:(t,n,s)=>jVe(t,n,s),setPan:(t,n)=>pMt(t,n),setZoom:t=>San(t),reset:()=>_Mt(),subscribe:t=>xan(t)};function dMt(){for(const t of mje)t()}function ban(){return n2}function jVe(t,n,s){const c=Math.min(4,Math.max(.1,s));n2.x===t&&n2.y===n&&n2.zoom===c||(n2={x:t,y:n,zoom:c},dMt())}function pMt(t,n){jVe(t,n,n2.zoom)}function San(t){jVe(n2.x,n2.y,t)}function oxn(t,n){pMt(n2.x+t,n2.y+n)}function _Mt(){n2.x===0&&n2.y===0&&n2.zoom===1||(n2=Kge,dMt())}function xan(t){return mje.add(t),()=>mje.delete(t)}function sxn(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 wan=new Set(["opacity","zIndex","flexGrow","flexShrink","fontWeight","lineHeight"]);function Tan(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 axn(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 cxn(t,n){return typeof n!="number"?n:n===0||wan.has(t)?String(n):`${n}px`}const Can={hidden:!1,interactive:!1,pickLock:!1},mMt=new Map;function hve(t){return mMt.get(t)??Can}function LVe(t,n){mMt.set(t,{...hve(t),...n})}function oq(t){return hve(t).hidden}function Ean(t,n){LVe(t,{hidden:n})}function kan(t){Ean(t,!oq(t))}function hMt(t){return hve(t).interactive}function Aan(t,n){LVe(t,{interactive:n})}function Dan(t){Aan(t,!hMt(t))}function gMt(t){return hve(t).pickLock}function Pan(t,n){LVe(t,{pickLock:n})}function Ian(t){Pan(t,!gMt(t))}const rwt=8,TN=8,lxn=[{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 uxn(t,n){const s=t.x+t.width/2,c=t.y+t.height/2;switch(n){case"nw":return{x:t.x,y:t.y};case"n":return{x:s,y:t.y};case"ne":return{x:t.x+t.width,y:t.y};case"w":return{x:t.x,y:c};case"e":return{x:t.x+t.width,y:c};case"sw":return{x:t.x,y:t.y+t.height};case"s":return{x:s,y:t.y+t.height};case"se":return{x:t.x+t.width,y:t.y+t.height}}}function iA(t,n){return n?Math.round(t):Math.round(t/rwt)*rwt}function yMt(t,n,s,c,d){let m=Math.max(TN,iA(n.width+t,s)),g=null;return c.length&&(g=vve(n.x+m,c,d),g&&(m=Math.max(TN,g.edge-n.x))),{value:m,match:g}}function vMt(t,n,s,c,d){const m=n.x+n.width;let g=Math.max(TN,iA(n.width-t,s)),S=null;return c.length&&(S=vve(m-g,c,d),S&&(g=Math.max(TN,m-S.edge))),{value:g,eastEdge:m,match:S}}function bMt(t,n,s,c,d){let m=Math.max(TN,iA(n.height+t,s)),g=null;return c.length&&(g=vve(n.y+m,c,d),g&&(m=Math.max(TN,g.edge-n.y))),{value:m,match:g}}function SMt(t,n,s,c,d){const m=n.y+n.height;let g=Math.max(TN,iA(n.height-t,s)),S=null;return c.length&&(S=vve(m-g,c,d),S&&(g=Math.max(TN,m-S.edge))),{value:g,southEdge:m,match:S}}function Nan(t,n,s,c,d,m,g){if(t==="e"||t==="ne"||t==="se")return{width:yMt(n,s,d,m,g).value};if(t==="w"||t==="nw"||t==="sw"){const{value:S,eastEdge:k}=vMt(n,s,d,m,g);return c?{width:S,x:k-S}:{width:S}}return{}}function Oan(t,n,s,c,d,m,g){if(t==="s"||t==="sw"||t==="se")return{height:bMt(n,s,d,m,g).value};if(t==="n"||t==="nw"||t==="ne"){const{value:S,southEdge:k}=SMt(n,s,d,m,g);return c?{height:S,y:k-S}:{height:S}}return{}}function fxn(t,n,s,c,d,m,g,S=TR){const k=!m&&g?cte(g):null,A=k?gve(k):[],F=k?yve(k):[];return{...Nan(t,n,c,d,m,A,S),...Oan(t,s,c,d,m,F,S)}}const TR=4;function cte(t){return{paddingBox:t.paddingBox??{x:0,y:0,width:0,height:0},siblingRects:(t.siblings??[]).filter(n=>n.width>0&&n.height>0),guideX:t.guideEdges?.x??[],guideY:t.guideEdges?.y??[]}}function gve(t){const n=[{edge:t.paddingBox.x,rect:t.paddingBox},{edge:t.paddingBox.x+t.paddingBox.width,rect:t.paddingBox}];for(const s of t.siblingRects)n.push({edge:s.x,rect:s}),n.push({edge:s.x+s.width,rect:s});for(const s of t.guideX??[])n.push({edge:s,rect:{x:s,y:-1e5,width:0,height:2e5}});return n}function yve(t){const n=[{edge:t.paddingBox.y,rect:t.paddingBox},{edge:t.paddingBox.y+t.paddingBox.height,rect:t.paddingBox}];for(const s of t.siblingRects)n.push({edge:s.y,rect:s}),n.push({edge:s.y+s.height,rect:s});for(const s of t.guideY??[])n.push({edge:s,rect:{x:-1e5,y:s,width:2e5,height:0}});return n}function ree(t,n,s,c){let d=t,m=c,g=null;for(const S of s){const k=Math.abs(t-S.edge);k<=m&&(m=k,d=S.edge,g=S);const A=Math.abs(t+n-S.edge);A<=m&&(m=A,d=S.edge-n,g=S)}return{value:d,match:g}}function vve(t,n,s){let c=null,d=s;for(const m of n){const g=Math.abs(t-m.edge);g<=d&&(d=g,c=m)}return c}function dxn(t,n,s,c,d){let m=iA(s.x+t,c),g=iA(s.y+n,c);if(!c&&d){const S=cte(d);m=ree(m,s.width,gve(S),TR).value,g=ree(g,s.height,yve(S),TR).value}return{x:m,y:g}}function pxn(t,n,s,c,d,m=TR){if(s)return{guides:[],position:t};let g=null,S=m;for(const pe of d?.snapPoints??[]){const ue=Math.hypot(t.x-pe.x,t.y-pe.y);ue<=S&&(S=ue,g=pe)}if(g)return{guides:nee({x:g.x,y:g.y,width:0,height:0},{edge:g.x,rect:n},{edge:g.y,rect:n}),position:g};if(d?.bounded)return{guides:[],position:t};const k=iA(t.x,!1),A=iA(t.y,!1),F=[n,c?.parent,c?.paddingBox,...c?.siblings??[]].filter(pe=>!!pe&&pe.width>0&&pe.height>0);let D=null,J=null,$=m,G=m;for(const pe of F){for(const ue of[pe.x,pe.x+pe.width/2,pe.x+pe.width]){const Ce=Math.abs(k-ue);Ce<=$&&($=Ce,D={edge:ue,rect:pe})}for(const ue of[pe.y,pe.y+pe.height/2,pe.y+pe.height]){const Ce=Math.abs(A-ue);Ce<=G&&(G=Ce,J={edge:ue,rect:pe})}}const se={x:D?.edge??k,y:J?.edge??A};return{guides:nee({x:se.x,y:se.y,width:0,height:0},D,J),position:se}}function nee(t,n,s){const c=[];return n&&c.push({orientation:"vertical",at:n.edge,start:Math.min(t.y,n.rect.y),end:Math.max(t.y+t.height,n.rect.y+n.rect.height)}),s&&c.push({orientation:"horizontal",at:s.edge,start:Math.min(t.x,s.rect.x),end:Math.max(t.x+t.width,s.rect.x+s.rect.width)}),c}function _xn(t,n,s,c,d,m=TR){if(c||!d)return[];const g=iA(s.x+t,!1),S=iA(s.y+n,!1),k=cte(d),A=ree(g,s.width,gve(k),m).match,F=ree(S,s.height,yve(k),m).match,D={x:g,y:S,width:s.width,height:s.height};return nee(D,A,F)}function mxn(t,n,s,c,d="both",m=!1,g=TR,S={},k=Fan){if(m)return{position:t,guides:[]};const A={x:s.x+t.x-n.x,y:s.y+t.y-n.y,width:s.width,height:s.height},F=[],D=[],J=(pe,ue,Ce)=>{F.push({edge:pe.x,rect:pe},{edge:pe.x+pe.width,rect:pe}),D.push({edge:pe.y,rect:pe},{edge:pe.y+pe.height,rect:pe}),F.push({edge:pe.x+pe.width/2,rect:pe}),D.push({edge:pe.y+pe.height/2,rect:pe})};if(c){const pe=cte(c);if(k.parent&&pe.paddingBox.width>0&&pe.paddingBox.height>0&&J(pe.paddingBox),k.others)for(const ue of pe.siblingRects)J(ue)}if(k.guides){for(const pe of[...c?.guideEdges?.x??[],...S.x??[]])F.push({edge:pe,rect:{x:pe,y:A.y,width:0,height:A.height}});for(const pe of[...c?.guideEdges?.y??[],...S.y??[]])D.push({edge:pe,rect:{x:A.x,y:pe,width:A.width,height:0}})}if(F.length===0&&D.length===0)return{position:t,guides:[]};const $=d==="y"?{value:A.x,match:null}:nwt(A.x,A.width,F,g),G=d==="x"?{value:A.y,match:null}:nwt(A.y,A.height,D,g),se={...A,x:$.value,y:G.value};return{position:{x:t.x+se.x-A.x,y:t.y+se.y-A.y},guides:nee(se,$.match,G.match)}}function Ran(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 hxn(t,n,s){const{smart:c,grid:d}=s;let m=t;return n&&c.enabled!==s.invert&&(c.sides||c.center)&&(m=Ran(t,n,c.sides,c.center,s.threshold)),n&&Math.abs(Jan(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 gxn(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 Fan={parent:!0,others:!0,guides:!0};function nwt(t,n,s,c){const d=ree(t,n,s,c);let m=d.value,g=d.match,S=g?Math.abs(m-t):c;for(const k of s){const A=Math.abs(t+n/2-k.edge);A<S&&(S=A,m=k.edge-n/2,g=k)}return{value:m,match:g}}function yxn(t,n,s,c,d,m,g=TR){if(d||!m)return[];const S=t==="e"||t==="ne"||t==="se",k=t==="w"||t==="nw"||t==="sw",A=t==="s"||t==="sw"||t==="se",F=t==="n"||t==="nw"||t==="ne",D=cte(m),J=gve(D),$=yve(D);let G=null;S?G=yMt(n,c,!1,J,g).match:k&&(G=vMt(n,c,!1,J,g).match);let se=null;return A?se=bMt(s,c,!1,$,g).match:F&&(se=SMt(s,c,!1,$,g).match),nee(c,G,se)}function vxn(t,n,s,c,d=15){const m=F=>F*180/Math.PI,g=m(Math.atan2(n.y-t.y,n.x-t.x)),k=m(Math.atan2(s.y-t.y,s.x-t.x))-g;return{rotate:c?k:Math.round(k/d)*d}}function FN(t,n){if(t instanceof gy){const s=t.ownerOf(n);return s?t.childAdapters().find(c=>c.worldId===s)?.adapter??null:null}return t}const iwt=new WeakMap;function Man(t){const n=t.boxEdit;if(!n)return null;const s=iwt.get(t);if(s?.provider===n)return s.recorded;const c={begin:d=>Ig({adapter:t,seam:"editor.boxEdit.begin",stage:"effect",detail:`the world overlay began a box edit for ${d}`,run:()=>n.begin(d)}),apply:(d,m)=>Ig({adapter:t,seam:"editor.boxEdit.apply",stage:"effect",detail:`the world overlay applied a ${Object.keys(m).join(", ")} box patch to ${d}`,run:()=>n.apply(d,m)}),end:d=>Ig({adapter:t,seam:"editor.boxEdit.end",stage:"effect",detail:`the world overlay ended a box edit for ${d}`,run:()=>n.end(d)}),...n.gizmoOrigin?{gizmoOrigin:d=>Ig({adapter:t,seam:"editor.boxEdit.gizmoOrigin",stage:"operation",detail:`the world overlay read the native gizmo origin for ${d}`,run:()=>n.gizmoOrigin?.(d)??null})}:{},...n.referencePoint?{referencePoint:d=>Ig({adapter:t,seam:"editor.boxEdit.referencePoint",stage:"operation",detail:`the world overlay read the native reference point for ${d}`,run:()=>n.referencePoint?.(d)??null})}:{}};return iwt.set(t,{provider:n,recorded:c}),c}function jan(t,n){return FN(t,n)?.rects?.rect(n)??null}function Lan(t,n){const s=FN(t,n);return s?Man(s):null}function bxn(t,n){return FN(t,n)?.rects?.contextRects?.(n)}function Sxn(t,n){return FN(t,n)?.structure??null}function xxn(t,n){return FN(t,n)?.text??null}function wxn(t,n){return FN(t,n)?.colorSample??null}function Txn(t,n){const s=FN(t,n);return s?.rects?L3r(s):null}function Cxn(t){const n=t instanceof gy?t.childAdapters():[{worldId:"",adapter:t}],s=[];for(const{worldId:c,adapter:d}of n)d.rects?.emptyContainers&&(c&&oq(c)||s.push(...d.rects.emptyContainers()));return s}function Ban(t,n){const s=c=>{const d=t.inspector?.get(n,`style.${c}`);return Tan(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 $an=4;function Exn(t,n){const s=D=>D>0?D:$an,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 qan(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 kxn(t,n,s,c){const d=qan(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 xOe=3;function xO(t,n){return n==="x"?t.x+t.width/2:t.y+t.height/2}function zan(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 Van(t,n,s){const c=Math.min(...t.map(g=>s?g.rect.y:g.rect.x)),d=Math.max(...t.map(g=>s?g.rect.y+g.rect.height:g.rect.x+g.rect.width)),m=xOe/2;return s?{x:n-m,y:c,width:xOe,height:d-c}:{x:c,y:n-m,width:d-c,height:xOe}}function Dxn(t,n){if(t.length===0)return null;const s=Math.max(...t.map(J=>xO(J.rect,"x")))-Math.min(...t.map(J=>xO(J.rect,"x"))),c=Math.max(...t.map(J=>xO(J.rect,"y")))-Math.min(...t.map(J=>xO(J.rect,"y"))),d=s>=c,m=d?"x":"y",g=[...t].sort((J,$)=>xO(J.rect,m)-xO($.rect,m)),S=d?n.x:n.y;let k=0;for(;k<g.length&&xO(g[k].rect,m)<S;)k++;const A=k<g.length?g[k].id:null,F=zan(g,k,d),D=Van(g,F,d);return{beforeSiblingId:A,index:k,marker:D}}function Pxn(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 Ixn(t,n){const s=t.x,c=t.x+t.width,d=t.y,m=t.y+t.height,g=n.x,S=n.x+n.width,k=n.y,A=n.y+n.height,F=[];let D=null;if(c<=g?D={x1:c,x2:g}:S<=s&&(D={x1:S,x2:s}),D){const $=Math.max(d,k),G=Math.min(m,A),se=G>$?($+G)/2:((d+m)/2+(k+A)/2)/2;F.push({orientation:"horizontal",x1:D.x1,y1:se,x2:D.x2,y2:se,distance:Math.round(D.x2-D.x1),labelX:(D.x1+D.x2)/2,labelY:se})}let J=null;if(m<=k?J={y1:m,y2:k}:A<=d&&(J={y1:A,y2:d}),J){const $=Math.max(s,g),G=Math.min(c,S),se=G>$?($+G)/2:((s+c)/2+(g+S)/2)/2;F.push({orientation:"vertical",x1:se,y1:J.y1,x2:se,y2:J.y2,distance:Math.round(J.y2-J.y1),labelX:se,labelY:(J.y1+J.y2)/2})}return F}function wOe(t,n,s){const c=t?.get(n,s);return typeof c=="string"&&c.length>0?c:null}function Nxn(t,n){const s=wOe(t.inspector,n,"style.position");let c=null;const d=t.hierarchy.node(n)?.parentId??null;if(d){const m=wOe(t.inspector,d,"style.display");m==="flex"||m==="inline-flex"?c=`flex ${(wOe(t.inspector,d,"style.flexDirection")??"row").startsWith("column")?"col":"row"}`:m==="grid"||m==="inline-grid"?c="grid":m&&(c=m)}return{position:s,parentLayout:c}}function Oxn(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 Rxn(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 Fxn(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 Uan(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 FN(t,n)?.rects?.frame?.(n)??null}function jxn(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 Jan(t){return Math.atan2(t.tr.y-t.tl.y,t.tr.x-t.tl.x)}function xMt(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 wMt(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 Lxn(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 Bxn(t,n){const{s,t:c}=wMt(n);return xMt(t,s,c)}function owt(t,n){const s=t.tr.x-t.tl.x,c=t.tr.y-t.tl.y,d=t.bl.x-t.tl.x,m=t.bl.y-t.tl.y,g=s*m-c*d;return Math.abs(g)<1e-12?{s:0,t:0}:{s:(n.x*m-n.y*d)/g,t:(s*n.y-c*n.x)/g}}function $xn(t,n,s,c,d,m=!1){const g=owt(t,{x:s,y:c}),S=n.includes("e")?1+g.s:n.includes("w")?1-g.s:1,k=n.includes("s")?1+g.t:n.includes("n")?1-g.t:1,A=Math.max(S,k),F=Math.max(.01,m&&n.length===2?A:S),D=Math.max(.01,m&&n.length===2?A:k),J=wMt(n),$=xMt(t,1-J.s,1-J.t),G=owt(t,{x:$.x-d.x,y:$.y-d.y}),se={x:d.x+F*G.s*(t.tr.x-t.tl.x)+D*G.t*(t.bl.x-t.tl.x),y:d.y+F*G.s*(t.tr.y-t.tl.y)+D*G.t*(t.bl.y-t.tl.y)};return{scaleXFactor:F,scaleYFactor:D,originX:d.x+$.x-se.x,originY:d.y+$.y-se.y}}let swt=!1;const TMt=new Set(["viewport","hierarchy","inspector","asset-browser","workspace","global"]);let CMt="viewport";const EMt="editorActiveHotkeyScope";function qxn(){const t=document.documentElement.dataset[EMt];return t&&TMt.has(t)?t:CMt}function CR(t){CMt=t,document.documentElement.dataset[EMt]=t}const Wan="data-editor-app-undo";function awt(t){return t instanceof Element&&t.closest(`[${Wan}]`)!==null}function hje(t){return t instanceof Element?t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t instanceof HTMLElement&&t.isContentEditable?!0:!!t.closest('[contenteditable]:not([contenteditable="false"])'):!1}function Han(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&&TMt.has(s))return s}return null}function cwt(t){const n=Han(t);n&&CR(n)}const TOe=[];function lwt(t){return TOe.push(...t),()=>{for(const n of t){const s=TOe.indexOf(n);s>=0&&TOe.splice(s,1)}}}function Gan(){swt||(window.addEventListener("pointerdown",cwt,!0),window.addEventListener("focusin",cwt,!0),swt=!0)}const KZ=new Map;let kMt=0;const gje=new Set;function uwt(){kMt++;for(const t of gje)t()}function Kan(t){return KZ.set(t.id,t),uwt(),()=>{KZ.get(t.id)===t&&(KZ.delete(t.id),uwt())}}function Xan(){return[...KZ.values()]}function Yan(){return kMt}function Zan(t){return gje.add(t),()=>gje.delete(t)}function BVe(t){const n=KZ.get(t);return!n||n.enabled&&!n.enabled()?!1:(n.run(),!0)}const Tw=["viewport","hierarchy","inspector"];function XL(){return(globalThis.getSelection?.()?.toString()??"").length===0}function BD(t){return Mze(t)}async function $Ve(t){const n=BD(t);n.length!==0&&await s0e(Cm(t).adapter,n)}async function qVe(t){const n=BD(t);n.length!==0&&await a0e(Cm(t).adapter,n)}async function zVe(t){const n=Cm(t).adapter,s=BD(t)[0],c=s?n.hierarchy.node(s)?.parentId??null:null;await c0e(n,c)}let fwt=Promise.resolve();function bve(t){const n=fwt.then(()=>Qan(t));return fwt=n.then(()=>{},()=>{}),n}async function Qan(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 xPt(s,n);if(m&&!m.persisted){i0(m.destination);return}}else for(const m of n){const g=await r0e(s,m).ack;if(g&&!g.persisted){i0(g.destination);return}}i0(`Duplicated ${d}`)}async function Sve(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter,c=s.structure;if(c)if(c.removeMany)await p$e(s,n);else{const d=new Map(_Pt(s).map((g,S)=>[g,S])),m=[...n].sort((g,S)=>(d.get(S)??-1)-(d.get(g)??-1));for(const g of m)await jhe(s,g)}}async function ecn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;if(s.structure?.wrap)for(const d of n)await n0e(s,d)}async function tcn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;if(s.structure?.unwrap)for(const d of n)await i0e(s,d)}async function rcn(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;s.structure?.group&&await o0e(s,n).ack}function TI(t,n,s){const c=BD(t);if(c.length===0)return;const d=Cm(t).adapter;for(const m of c){const g=Lan(d,m);if(!g)continue;const S=jan(d,m);if(!S)continue;const k=d.inspector?.get(m,"style.position"),A=k==="absolute"||k==="fixed",F=Ban(d,m),D=Uan(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 ncn(t){const n=Array.isArray(t)?t:[t];return n.includes("global")?"global":n.length===1&&n[0]==="viewport"?"stage":"panel"}let bme=null;function pp(t,n){const{frameEnabled:s,...c}=n;return bme?.push(Kan({id:t,run:d=>c.action(d??new KeyboardEvent("keydown")),scope:ncn(c.scope),...s?{enabled:s}:{}})),BBe(t).map(d=>({...c,...d}))}function AMt(t){const n=()=>{const g=[],S=bme;bme=g;try{return{rows:t(),actions:g}}finally{bme=S}};let s=n(),c=lwt(s.rows);const d=()=>{c();for(const g of s.actions)g()},m=Kye(()=>{d(),s=n(),c=lwt(s.rows)});return()=>{m(),d()}}function icn(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=AMt(()=>[...pp("edit.redo",{scope:"global",allowInEditable:!0,when:m=>!hje(m.target)||awt(m.target),action:c}),...pp("edit.undo",{scope:"global",allowInEditable:!0,when:m=>!hje(m.target)||awt(m.target),action:s}),...pp("edit.copy",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void $Ve(t)}),...pp("edit.cut",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void qVe(t)}),...pp("edit.paste",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void zVe(t)}),...pp("edit.duplicate",{scope:Tw,action:()=>void bve(t)}),...pp("edit.group",{scope:Tw,action:()=>void rcn(t)}),...pp("edit.wrap",{scope:Tw,action:()=>ecn(t)}),...pp("edit.unwrap",{scope:Tw,action:()=>tcn(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,_Pt(m))}}),...pp("edit.deselectAll",{scope:Tw,action:()=>c0(Cm(t).adapter,[])}),...pp("edit.save",{scope:"global",allowInEditable:!0,action:()=>{kTr().then(m=>{m===null&&FRt(t)})}}),...pp("view.resetPan",{scope:"viewport",action:()=>_Mt()}),...pp("edit.enterScope",{scope:Tw,when:()=>t.playState==="stopped",frameEnabled:()=>t.playState==="stopped",action:()=>{G3r(Cm(t).adapter)}}),...pp("edit.delete",{scope:Tw,action:()=>void Sve(t)}),...pp("edit.exitScopeOrDeselect",{scope:Tw,when:()=>W3r()!==null||t.playState==="stopped",frameEnabled:()=>!0,action:()=>{const m=Cm(t).adapter;if(!H3r(m)){if(t.playState!=="stopped"){SVe();return}t.select(null)}}}),...pp("view.commandPalette",{scope:"global",action:()=>{EVe()||Qs.warn(`The command palette has not handed over its opener yet — run "Volter Editor: Open Workspace" first, or press the workbench's own Show All Commands.`)}}),...pp("view.toggleConsole",{scope:"global",action:()=>pve()}),...pp("view.focusMode",{scope:"global",action:()=>zBe()}),...pp("workspace.cycleNext",{scope:"global",action:()=>{Che(1)}}),...pp("workspace.cyclePrevious",{scope:"global",action:()=>{Che(-1)}})]);return Gan(),d}function ocn(t){return AMt(()=>t.flatMap(n=>{const s=n.enabled;return pp(n.id,{scope:n.scope==="stage"?"viewport":"global",action:c=>n.run(c),...s?{when:()=>s(),frameEnabled:()=>s()}:{}})}))}function VVe(){pkr("undo-history")}function scn(){const t=()=>VVe();return window.addEventListener("editor:show-history-tab",t),()=>window.removeEventListener("editor:show-history-tab",t)}let yje=null,DMt=0;const vje=new Set;function UVe(t){if(yje!==t){yje=t,DMt++;for(const n of vje)n()}}function PMt(){return yje}function acn(t){UVe(t)}function IMt(){UVe(null)}function NMt(t){return vje.add(t),()=>vje.delete(t)}function bje(){return DMt}function ccn(){UVe(null)}const lcn=Object.freeze(Object.defineProperty({__proto__:null,__resetEditorPresentationNoticeForTest:ccn,clearEditorPresentationNotice:IMt,editorPresentationNotice:PMt,editorPresentationNoticeVersion:bje,showEditorPresentationNotice:acn,subscribeEditorPresentationNotice:NMt},Symbol.toStringTag,{value:"Module"})),dwt="agent-presented-view";function ucn(){const t=Yv();Ye.useSyncExternalStore(NMt,bje,bje);const n=PMt();return Ye.useEffect(()=>{if(!n){ABe(dwt);return}s$({id:dwt,tone:"info",title:"Agent presented this view.",...n.presented.warnings.length>0?{detail:n.presented.warnings.join(" ")}:{},onDismiss:IMt,actions:[{label:"Copy Link",keeps:!0,run:()=>{Promise.resolve().then(()=>navigator.clipboard.writeText(n.presented.url)).catch(()=>{Qs.warn("Could not copy the view link to the clipboard.","editor")})}},{label:"Return",primary:!0,run:()=>{Vge(t,n.previousView,{origin:"return"}).catch(s=>{Qs.error(`Could not return to the previous editor view: ${s instanceof Error?s.message:String(s)}`,"editor")})}}]})},[n,t]),null}function fcn(t){Ye.useEffect(()=>{const n=gtn(),s=()=>wtn(t.playState!=="stopped");s();const c=t.subscribe(s);return()=>{c(),n(),$3t()}},[t])}const iee={console:{id:"console",title:"Console"},lightExplorer:{id:"light-explorer",title:"Light Explorer"}},dcn={storyActions:{id:"story-actions",title:"Actions"},storyInteractions:{id:"story-interactions",title:"Interactions"},storyAccessibility:{id:"story-accessibility",title:"Accessibility"},generations:{id:"generations",title:"Generations"}};[...Object.values(iee),...Object.values(dcn)];const pcn={info:Go.content.primary,warn:Go.semantic.warning,error:Go.semantic.danger},pwt={scene:"#78dce8",physics:"#ff6188",animation:"#a9dc76",network:"#fc9867",audio:"#ab9df2",ai:"#ffd866",input:"#78dce8",core:Go.content.primary},_wt={info:R$,warn:QTt,error:BTt};function _cn(){const t=Yv();Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const[n,s]=Ye.useState(""),[c,d]=Ye.useState("all"),[m,g]=Ye.useState({info:!0,warn:!0,error:!0}),S=Ye.useRef(null),[k,A]=Ye.useState(!0),F=Qs.getEntries(),D=new Map;for(const Ce of F){const De=Ce.metadata?.instanceId;if(typeof De!="string"||De.length===0)continue;const Pe=Ce.metadata?.instanceName;D.set(De,typeof Pe=="string"&&Pe.length>0?Pe:`Instance ${De}`)}const J=F.filter(Ce=>!(!m[Ce.level]||c!=="all"&&Ce.metadata?.instanceId!==c||n&&!Ce.message.toLowerCase().includes(n.toLowerCase())));Ye.useEffect(()=>{k&&S.current&&(S.current.scrollTop=S.current.scrollHeight)},[F.length,k]);const $=()=>{if(!S.current)return;const{scrollTop:Ce,scrollHeight:De,clientHeight:Pe}=S.current;A(De-Ce-Pe<20)},G=Ce=>{g(De=>({...De,[Ce]:!De[Ce]}))},se=Ce=>{const De=new Date(Ce);return`${De.getHours().toString().padStart(2,"0")}:${De.getMinutes().toString().padStart(2,"0")}:${De.getSeconds().toString().padStart(2,"0")}`},pe=Ce=>{c0(Y0(t),[Ce]),BVe("viewport.frameSelection")},ue=Qs.counts;return q.jsxs(GTr,{className:"volter-console",children:[q.jsxs(n$,{label:"Console filters",compact:!0,children:[q.jsx(pm,{"aria-label":"Clear console",size:"compact",onClick:()=>Qs.clear(),title:"Clear console",children:q.jsx(dc,{icon:FTt,size:"xs"})}),q.jsx(Iht,{}),q.jsxs(Iw,{"aria-label":"Filter console by game instance",title:"Show messages from all game instances or one inspected instance",value:c,onChange:Ce=>d(Ce.target.value),style:{width:"auto",minWidth:74,height:24,fontSize:11},children:[q.jsx("option",{value:"all",children:"All instances"}),[...D].map(([Ce,De])=>q.jsx("option",{value:Ce,children:De},Ce))]}),q.jsx(Iht,{}),["info","warn","error"].map(Ce=>q.jsxs(Ms,{variant:"ghost",size:"compact","aria-label":`Toggle ${Ce} messages`,"aria-pressed":m[Ce],"data-console-level":Ce,onClick:()=>G(Ce),children:[q.jsx(dc,{icon:_wt[Ce],size:"xs"}),ue[Ce]]},Ce)),q.jsx(Zm,{placeholder:"Filter...",value:n,onChange:Ce=>s(Ce.target.value),className:"volter-console-filter"})]}),q.jsxs("div",{ref:S,onScroll:$,className:"volter-console-list volter-selectable-text",children:[J.length===0&&q.jsx("div",{className:"volter-console-empty",children:"No messages"}),J.map(Ce=>{const De=Ce.metadata?.entityId!=null?String(Ce.metadata.entityId):null,Pe=(De?Y0(t).hierarchy.node(De)?.label:null)||De,be=typeof Ce.metadata?.instanceId=="string"?Ce.metadata.instanceId:null,X=typeof Ce.metadata?.instanceName=="string"?Ce.metadata.instanceName:be?`Instance ${be}`:null;return q.jsxs("div",{className:"volter-console-row","data-level":Ce.level,style:{color:pcn[Ce.level]},children:[q.jsx("span",{style:{color:Go.content.dim,marginRight:6,flexShrink:0},children:se(Ce.timestamp)}),q.jsx(dc,{icon:_wt[Ce.level],style:{fontSize:9,marginTop:4,marginRight:6,flexShrink:0}}),X&&q.jsx("span",{title:be?`Runtime instance ${be}`:void 0,style:{background:Go.accent.muted,color:Go.accent.default,borderRadius:Go.shape.small,padding:"0 4px",fontSize:10,marginRight:6,flexShrink:0},children:X}),Ce.subsystem&&q.jsx("span",{style:{background:`${pwt[Ce.subsystem]??Go.content.muted}22`,color:pwt[Ce.subsystem]??Go.content.muted,borderRadius:Go.shape.small,padding:"0 4px",fontSize:10,marginRight:6,flexShrink:0},children:Ce.subsystem}),q.jsxs("span",{style:{flex:1,wordBreak:"break-word"},children:[Ce.message,De&&q.jsxs("span",{onClick:()=>pe(De),style:{background:Go.semantic.successMuted,color:Go.semantic.success,borderRadius:Go.shape.small,padding:"0 5px",fontSize:10,marginLeft:6,cursor:"pointer",pointerEvents:"auto",display:"inline-flex",alignItems:"center",gap:3},title:`Select and focus "${Pe}"`,children:[q.jsx(dc,{icon:aR,style:{fontSize:8}}),Pe]}),Ce.source&&q.jsxs("span",{style:{color:Go.content.dim,marginLeft:6},children:["[",Ce.source,"]"]})]}),Ce.count>1&&q.jsx("span",{className:"volter-console-count",children:Ce.count})]},Ce.id)})]})]})}const mcn={enabled:"visible",color:"light.color",intensity:"light.intensity",range:"light.distance",shadows:"shadow.cast"};function OMt(t){const n=[],s=t;return W$(t.hierarchy,c=>{c.kind==="light"&&n.push(c)},{extraChildren:c=>s.internalChildren?.(c)}),n}function zxn(t){return OMt(t).length}function RMt(t,n){return t.find(s=>s.path===mcn[n])??null}function qY(t,n,s,c,d){const m=RMt(s,c);if(!m||!t.inspector)return{supported:!1,writable:!1,value:null};let g;try{g=t.inspector.get(n,m.path)}catch{g=void 0}return{supported:!0,writable:m.readonly!==!0,value:d(g)?g:null}}const mwt=t=>typeof t=="boolean",hcn=t=>typeof t=="string",hwt=t=>typeof t=="number"&&Number.isFinite(t);function gcn(t){return OMt(t).map(n=>{let s=[];try{s=t.inspector?.properties(n.id)??[]}catch{}const c=t.hierarchy.object3D?.(n.id)?.type;return{id:n.id,name:n.label,type:n.typeLabel??c??"Light",enabled:qY(t,n.id,s,"enabled",mwt),color:qY(t,n.id,s,"color",hcn),intensity:qY(t,n.id,s,"intensity",hwt),range:qY(t,n.id,s,"range",hwt),shadows:qY(t,n.id,s,"shadows",mwt)}})}function ycn(t,n,s,c){if(!t.inspector)return 0;let d=0;for(const m of n){let g=null;try{g=RMt(t.inspector.properties(m),s)}catch{continue}!g||g.readonly||(vPt(t,m,g.path,c),d++)}return d}function vcn(t,n){return t===null&&n===null?0:t===null?1:n===null?-1:typeof t=="string"&&typeof n=="string"?t.localeCompare(n,void 0,{numeric:!0,sensitivity:"base"}):Number(t)-Number(n)}function gwt(t,n){return n==="name"||n==="type"?t[n]:t[n].value}function zY({label:t,sortKey:n,activeKey:s,direction:c,onSort:d}){const m=n===s;return q.jsxs(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-light-explorer-sort","aria-label":`Sort lights by ${t}`,onClick:()=>d(n),children:[t,m?q.jsx(dc,{icon:c==="ascending"?F0r:rvr,size:"xs"}):null]})}function xve(){return q.jsx("span",{className:"volter-light-explorer-unavailable",children:"—"})}function bcn({row:t,edit:n}){return t.enabled.supported?q.jsx(TD,{"aria-label":`${t.enabled.value?"Disable":"Enable"} ${t.name}`,checked:t.enabled.value??!1,disabled:!t.enabled.writable,onChange:s=>n("enabled",s.target.checked)}):q.jsx(xve,{})}function Scn({row:t,edit:n}){return!t.color.supported||!t.color.value?q.jsx(xve,{}):q.jsxs("div",{className:"volter-light-explorer-color",children:[q.jsx(_4t,{"aria-label":`Color for ${t.name}`,value:t.color.value,disabled:!t.color.writable,onChange:s=>n("color",s.target.value)}),q.jsx("span",{children:t.color.value})]})}function ywt({row:t,field:n,step:s,edit:c}){const d=t[n];return d.supported?q.jsx(SZ,{value:d.value,disabled:!d.writable,precision:2,step:s,onChange:m=>c(n,m)}):q.jsx(xve,{})}function xcn({row:t,edit:n}){return t.shadows.supported?q.jsx(TD,{"aria-label":`Toggle shadows for ${t.name}`,checked:t.shadows.value??!1,disabled:!t.shadows.writable,onChange:s=>n("shadows",s.target.checked)}):q.jsx(xve,{})}function wcn({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(bcn,{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=>{Ccn(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(Scn,{row:t,edit:g})}),q.jsx("td",{children:q.jsx(ywt,{row:t,field:"intensity",step:.1,edit:g})}),q.jsx("td",{children:q.jsx(ywt,{row:t,field:"range",step:.5,edit:g})}),q.jsx("td",{children:q.jsx(xcn,{row:t,edit:g})})]})}function Tcn(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 Ccn(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 Ecn(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Eee,AD,AD);const{adapter:n}=Cm(t),[,s]=Ye.useReducer(Pe=>Pe+1,0);Ye.useEffect(()=>n.subscribe?.(s),[n]);const[c,d]=Ye.useState(""),[m,g]=Ye.useState("all"),[S,k]=Ye.useState("name"),[A,F]=Ye.useState("ascending"),D=Ye.useRef(null),J=gcn(n),$=Ye.useMemo(()=>[...new Set(J.map(Pe=>Pe.type))].sort((Pe,be)=>Pe.localeCompare(be)),[J]),G=c.trim().toLocaleLowerCase(),se=J.filter(Pe=>(m==="all"||Pe.type===m)&&(!G||Pe.name.toLocaleLowerCase().includes(G)||Pe.type.toLocaleLowerCase().includes(G))).sort((Pe,be)=>{const X=vcn(gwt(Pe,S),gwt(be,S));return A==="ascending"?X:-X}),pe=new Set(n.selection?.get()??[]),ue=J.filter(Pe=>pe.has(Pe.id)).length,Ce=Pe=>{Pe===S?F(be=>be==="ascending"?"descending":"ascending"):(k(Pe),F("ascending"))},De=(Pe,be,X)=>{const we=Tcn(Pe,pe,se);ycn(n,we,be,X)>0&&t.notifyIngestEdit()};return q.jsxs("section",{className:"volter-light-explorer","aria-label":"Light Explorer",children:[q.jsxs("div",{className:"volter-light-explorer-toolbar",children:[q.jsx(Zm,{"aria-label":"Search lights",placeholder:"Search lights…",value:c,onChange:Pe=>d(Pe.target.value)}),q.jsxs(Iw,{"aria-label":"Filter lights by type",value:m,onChange:Pe=>g(Pe.target.value),children:[q.jsx("option",{value:"all",children:"All types"}),$.map(Pe=>q.jsx("option",{value:Pe,children:Pe},Pe))]}),q.jsxs("span",{className:"volter-light-explorer-summary",children:[J.length," ",J.length===1?"light":"lights",ue>0?` · ${ue} selected`:""]})]}),J.length===0?q.jsx("div",{className:"volter-light-explorer-empty",children:"The active document does not expose any lights."}):q.jsxs("div",{className:"volter-light-explorer-scroll",children:[q.jsxs("table",{className:"volter-light-explorer-table",children:[q.jsx("thead",{children:q.jsxs("tr",{children:[q.jsx("th",{className:"volter-light-explorer-check-column",scope:"col",children:"On"}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Name",sortKey:"name",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Type",sortKey:"type",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:"Color"}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Intensity",sortKey:"intensity",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Range",sortKey:"range",activeKey:S,direction:A,onSort:Ce})}),q.jsx("th",{scope:"col",children:q.jsx(zY,{label:"Shadows",sortKey:"shadows",activeKey:S,direction:A,onSort:Ce})})]})}),q.jsx("tbody",{children:se.map(Pe=>q.jsx(wcn,{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 kcn=Mye();function Acn(){const{error:t,warn:n}=Qs.counts;return t>0?{count:t+n,severity:"error"}:n>0?{count:n,severity:"warn"}:null}function Dcn(){kcn.ensure(t=>{t(cFe({...iee.console,order:-100,Content:_cn,badge:Acn,subscribeBadge:Qs.subscribe,badgeSnapshot:Qs.getSnapshot,visibleByDefault:!1,closeable:!0})),t(cFe({...iee.lightExplorer,order:21,Content:Ecn,visibleByDefault:!1,closeable:!0}))})}const Sme=new Map,xme=new Map,Sje=new Set;let FMt=0;function MMt(){FMt++;for(const t of[...Sje])t()}function Vxn(t,n){const s=Sme.get(t),c=n===null?null:Math.max(0,Math.round(n.headerWidth));(n===null?s===void 0:s?.headerWidth===c&&s.shelf===n.shelf)||(n===null||c===null?Sme.delete(t):Sme.set(t,{headerWidth:c,shelf:n.shelf}),MMt())}function jMt(t){return Sme.get(t)??null}function Uxn(t){return xme.get(t)??null}function Pcn(t,n){(xme.get(t)??null)!==n&&(n===null?xme.delete(t):xme.set(t,n),MMt())}function LMt(t){return Sje.add(t),()=>{Sje.delete(t)}}function Xge(){return FMt}const Icn=5742335;function BMt(t,n,s){return t<<16|n<<8|s}function vwt(t){const n=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(t.trim())?.[1];if(n){const d=n.length===3?[...n].map(m=>`${m}${m}`).join(""):n;return Number.parseInt(d.slice(0,6),16)}const s=/^rgba?\(\s*(\d+(?:\.\d+)?)\s*(?:,\s*|\s+)(\d+(?:\.\d+)?)\s*(?:,\s*|\s+)(\d+(?:\.\d+)?)/i.exec(t.trim());if(!s)return null;const c=s.slice(1,4).map(d=>Math.round(Number(d)));return c.some(d=>d<0||d>255)?null:BMt(c[0],c[1],c[2])}function oee(t){const n=vwt(t);if(n!==null||typeof document>"u")return n;if(typeof CSS<"u"&&!CSS.supports("color",t))return null;const s=document.createElement("canvas").getContext("2d");return s?(s.fillStyle="#010203",s.fillStyle=t,vwt(String(s.fillStyle))):null}function dA(t){return typeof document>"u"?null:t?.closest(`.${RRe}`)??document.querySelector(`.${RRe}`)}function bwt(t){const n=Math.round((t>>16&255)*.42),s=Math.round((t>>8&255)*.42),c=Math.round((t&255)*.42);return BMt(n,s,c)}function Ng(t,n){return t&&typeof getComputedStyle<"u"?getComputedStyle(t).getPropertyValue(n).trim():""}const $Mt={"--volter-viewport-background":"--vscode-volter-viewport-background","--volter-viewport-grid":"--vscode-volter-viewport-grid","--volter-viewport-axis-x":"--vscode-volter-viewport-axisX","--volter-viewport-axis-y":"--vscode-volter-viewport-axisY","--volter-viewport-axis-z":"--vscode-volter-viewport-axisZ","--volter-viewport-selection":"--vscode-volter-viewport-selection","--volter-viewport-active":"--vscode-volter-viewport-active","--volter-viewport-wire":"--vscode-volter-viewport-wire","--volter-gizmo-x":"--vscode-volter-gizmo-x","--volter-gizmo-y":"--vscode-volter-gizmo-y","--volter-gizmo-z":"--vscode-volter-gizmo-z","--volter-gizmo-navigation-x":"--vscode-volter-gizmo-navigationX","--volter-gizmo-navigation-y":"--vscode-volter-gizmo-navigationY","--volter-gizmo-navigation-z":"--vscode-volter-gizmo-navigationZ","--volter-gizmo-hover":"--vscode-volter-gizmo-hover","--volter-gizmo-drag":"--vscode-volter-gizmo-drag"};function see(t,n){const s=$Mt[n];return(s?Ng(t,s):"")||Ng(t,n)}function Jxn(t){const n=dA(t),s=see(n,"--volter-viewport-selection")||Ng(n,"--volter-accent"),c=oee(s||i$.color.accent.default)??Icn,d=oee(see(n,"--volter-viewport-active")),m=Ng(n,"--volter-viewport-outline-style"),g=Number.parseFloat(Ng(n,"--volter-viewport-outline-width")),S=Ng(n,"--volter-viewport-outline-hidden");return{visible:c,hidden:bwt(c),...d===null?{}:{active:{visible:d,hidden:bwt(d)}},...m===""&&S===""&&!Number.isFinite(g)?{}:{outline:{style:m==="crisp"?"crisp":"soft",width:Number.isFinite(g)&&g>0?g:null,hidden:S!=="false"}}}}function Wxn(t){return qMt(t).background!==null}function Hxn(t){const n=qMt(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 qMt(t){const n=dA(t),s=c=>{const d=see(n,c);return d?oee(d):null};return{background:s("--volter-viewport-background"),grid:s("--volter-viewport-grid"),axisX:s("--volter-viewport-axis-x"),axisY:s("--volter-viewport-axis-y"),axisZ:s("--volter-viewport-axis-z"),axisLineWidth:(()=>{const c=Ng(n,"--volter-viewport-axis-line-width"),d=c?Number.parseFloat(c):Number.NaN;return Number.isFinite(d)?d:null})(),active:s("--volter-viewport-active")}}function Gxn(t){const n=dA(t),s=m=>{const g=see(n,m);return g?oee(g):null},c=m=>{const g=Ng(n,m);if(!g)return null;const S=Number.parseFloat(g);return Number.isFinite(S)?S:null},d=m=>{const g=s(`${m}-x`),S=s(`${m}-y`),k=s(`${m}-z`);return g!==null&&S!==null&&k!==null?[g,S,k]:null};return{axes:d("--volter-gizmo"),navigation:d("--volter-gizmo-navigation"),hover:s("--volter-gizmo-hover"),drag:s("--volter-gizmo-drag"),opacity:c("--volter-viewport-gizmo-opacity"),arrowLength:c("--volter-viewport-gizmo-arrow-length"),arrowHead:c("--volter-viewport-gizmo-arrow-head"),ringWidth:c("--volter-viewport-gizmo-ring-width"),navigationSize:c("--volter-viewport-navigation-size"),background:s("--volter-viewport-background"),navigationForm:(m=>m==="cones"||m==="triad"||m==="godot"?m:"balls")(Ng(n,"--volter-viewport-navigation-gizmo")),navigationCorner:Ng(n,"--volter-viewport-navigation-corner")==="bottom-left"?"bottom-left":"top-right",highlightSaturation:c("--volter-viewport-gizmo-highlight-saturation"),highlightValue:c("--volter-viewport-gizmo-highlight-value")}}function Kxn(t){const n=Ng(dA(t),"--volter-viewport-gizmo-size");if(!n)return null;const s=Number.parseFloat(n);return Number.isFinite(s)&&s>0?s:null}function Xxn(t){const n=dA(t),s=(d,m)=>{const g=Number.parseFloat(Ng(n,d)??"");return Number.isFinite(g)&&g>0?g:m},c=s("--volter-viewport-grid-line-width",1);return{lineWidth:c,majorWidth:s("--volter-viewport-grid-major-width",c),majorContrast:s("--volter-viewport-grid-major-contrast",1)}}function Yxn(t){const n=dA(t),s=see(n,"--volter-viewport-wire"),c=Number.parseFloat(Ng(n,"--volter-viewport-wire-opacity"));return{color:s?oee(s):null,opacity:Number.isFinite(c)?c:null}}function Zxn(t){const n=dA(t),s=Number.parseFloat(Ng(n,"--volter-viewport-selection-box-width"));return{edges:Ng(n,"--volter-viewport-selection-box")==="edges",frame:Ng(n,"--volter-viewport-selection-box-frame")==="object"?"object":"world",lineWidth:Number.isFinite(s)&&s>0?s:null}}function zMt(t){const n=dA(t);return["--volter-viewport-chrome-bar","--volter-viewport-chrome-view-name","--volter-viewport-chrome-tools","--volter-viewport-chrome-display","--volter-viewport-chrome-transform-controls"].map(s=>Ng(n,s)).join("|")}function Ncn(t){const[n,s,c,d,m]=t.split("|"),g=["strip","pills"],S=["menu","gizmo","bar"],k=["bar-start","bar-end"],A=(F,D,J)=>D.includes(F)?F:J;return{bar:A(n,g,"none"),viewName:A(s,S,"text"),tools:A(c,k,"shelf"),display:A(d,k,"corner"),transformControls:m==="bar"?"bar":"header"}}let xje=null;function Ocn(t){return UMt(null,()=>{xje=zMt(),t()})}function Swt(){return xje??=zMt(),xje}let wje=null;function VMt(){const t=dA();return JSON.stringify([wBe.map(n=>Ng(t,`--volter-viewport-word-${n}`)),Ng(t,"--volter-viewport-word-helpers")])}function Rcn(t){return UMt(null,()=>{wje=VMt(),t()})}function xwt(){return wje??=VMt(),wje}function Qxn(){const t=Ye.useSyncExternalStore(Rcn,xwt,xwt);return Ye.useMemo(()=>{const[n,s]=JSON.parse(t),c={};return wBe.forEach((d,m)=>{n[m]&&(c[d]=n[m])}),{shading:c,helpers:s||void 0}},[t])}function Fcn(){const t=Ye.useSyncExternalStore(Ocn,Swt,Swt);return Ye.useMemo(()=>Ncn(t),[t])}function UMt(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=Mcn(s,n);return()=>{c.disconnect(),d()}}const u_e=new Set;let YL=null,COe="";function Mcn(t,n){const s=()=>Object.values($Mt).map(c=>Ng(t,c)).join("|");return u_e.add(n),!YL&&typeof document<"u"&&document.head&&(COe=s(),YL=new MutationObserver(()=>{const c=s();if(c!==COe){COe=c;for(const d of[...u_e])d()}}),YL.observe(document.head,{childList:!0,subtree:!0,characterData:!0})),()=>{u_e.delete(n),u_e.size===0&&YL&&(YL.disconnect(),YL=null)}}function jcn({documentId:t,runtime:n=!1,island:s=!1,assetPath:c,transformControls:d,children:m}){Ye.useSyncExternalStore(EBe,o$,o$);const g=Ye.useSyncExternalStore(U$,eA,eA);Ye.useSyncExternalStore(LMt,Xge,Xge);const S=jMt(t)?.headerWidth??null,k=Ye.useCallback(F=>Pcn(t,F),[t]),A=s2(t)?.HeaderControls;return!m&&!A&&!d||!n&&g.includes("header:hidden")?null:q.jsxs("div",{className:s?"volter-dock-document-toolbar volter-chrome-island volter-glass-island":"volter-dock-document-toolbar","data-runtime-toolbar":n||void 0,"data-island-scale":"compact","data-testid":`document-header:${t}`,children:[m?q.jsx("div",{className:"volter-dock-document-toolbar-own",children:m}):null,d,A?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(A,{documentId:t,...c&&!c.startsWith("online:")?{assetPath:c}:{}})}):null,S===null?null:q.jsx("div",{ref:k,className:"volter-dock-document-toolbar-area","data-testid":`document-header-area:${t}`,style:{flex:"0 0 auto",width:S,alignSelf:"stretch",display:"flex",alignItems:"center",position:"relative",zIndex:1,background:"var(--volter-surface-chrome)"}})]})}function Lcn({documentId:t,children:n}){const s=Ye.useSyncExternalStore(U$,eA,eA);return!n||s.includes("shelf:hidden")?null:q.jsx("div",{className:"volter-dock-document-shelf","data-testid":`document-shelf:${t}`,role:"toolbar","aria-orientation":"vertical","aria-label":"Document tools",children:n})}function Bcn(t){return t==="game"||t==="scene"||t==="world"?"world":"resource"}function JMt({viewId:t,descriptor:n,active:s,backdrop:c=!1,chrome:d=!0}){const m=n.Content,g=n.Toolbar,S=n.Shelf,k=Bcn(n.kind),A=Yv();Ye.useSyncExternalStore(A.subscribe,A.getShellSnapshot??A.getSnapshot),Ye.useSyncExternalStore(Eee,AD,AD),Ye.useSyncExternalStore(EBe,o$,o$),Ye.useSyncExternalStore(dCt,GOe,GOe);const F=s2(n.id),D=s&&n.kind!=="game"?F?.transformTools?.()??"none":"none",J=F?.TransformTools,$=F?.TransformControls,G=Fcn(),se=d&&F!==null&&F!==void 0&&!c,pe=se&&G.bar!=="none"&&G.tools!=="shelf",ue=Ye.useSyncExternalStore(U$,eA,eA).includes("shelf:hidden"),Ce=D==="none"||!J?null:q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(J,{documentId:n.id})});Ye.useSyncExternalStore(LMt,Xge,Xge);const De=jMt(n.id)?.shelf??null,Pe=se&&G.bar!=="none",be=!Pe||G.display==="corner"?null:G.display==="bar-start"?"start":"end",X=pe?G.tools==="bar-start"?"start":"end":null,we=Pe&&G.transformControls==="bar"&&D==="gizmo"&&$!==void 0,qe=we?X??be??"start":null,bt=Pt=>q.jsxs("div",{className:"volter-stage-bar-group","data-edge":Pt,children:[be===Pt?q.jsx("div",{className:"volter-stage-bar-slot","data-stage-bar-slot":"display"}):null,X===Pt?Ce:null,qe===Pt&&$?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx($,{documentId:n.id})}):null]});return q.jsxs("div",{className:"volter-dock-document","data-testid":`workspace-doc:${n.id}`,"data-editor-hotkey-scope":k==="world"?"viewport":"workspace","data-volter-document-family":k,children:[d&&q.jsx(jcn,{documentId:n.id,runtime:n.kind==="game",island:c&&k==="world",assetPath:_Qr(n.id)?.assetPath,transformControls:D==="gizmo"&&$&&!we?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx($,{documentId:n.id})}):null,children:g?q.jsx(g,{documentId:n.id,active:s}):null}),q.jsxs("div",{className:"volter-dock-document-content","data-workspace-document-id":n.id,"data-workspace-view-id":t,"data-volter-stage-bar":se&&G.bar!=="none"?G.bar:void 0,"data-volter-stage-rail":d&&!ue&&(Ce&&!pe||S)?void 0:"empty",children:[q.jsx(m,{documentId:n.id,...t?{viewId:t}:{},active:s}),Pe?q.jsxs("div",{className:"volter-stage-bar","data-form":G.bar,role:"toolbar","aria-label":"Viewport",children:[bt("start"),bt("end")]}):null,d&&!ue&&De&&Ce&&!pe?r2.createPortal(Ce,De):null,d&&q.jsx(Lcn,{documentId:n.id,children:Ce&&!pe||S?q.jsxs(q.Fragment,{children:[pe?null:Ce,S?q.jsx(S,{documentId:n.id,active:s}):null]}):null})]})]})}const f_e=new Map;function $cn(t,n){const s=Em();let c=f_e.get(t);(!c||c.project!==s)&&(c={project:s,count:0,created:n},f_e.set(t,c)),c.count++;const d=c;return()=>{f_e.get(t)!==d||--d.count>0||(f_e.delete(t),d.created&&Em()===d.project&&kN(t))}}function qcn({document:t,chrome:n=!0,active:s=!0,onReady:c}){const d=Yv(),[m,g]=Ye.useState(null),[S,k]=Ye.useState(null),A=JSON.stringify(t),F=Ye.useRef(c);F.current=c;const D=Ye.useRef(null);Ye.useSyncExternalStore(o2,K1,K1);const J=Ye.useSyncExternalStore(EBe,o$,o$);Ye.useEffect(()=>{let G=!1,se;const pe=Em(),ue=()=>!G&&Em()===pe,Ce=JSON.parse(A);return g(null),k(null),(async()=>{if(await eVe(),!ue())return;const De=new Set(l0().map(be=>be.descriptor.id)),Pe=Ce.kind==="asset"?aN(Ce.path,Ce.assetKind??"source",{activate:s}):Ce.kind==="workspace"?De.has(Ce.id)?Ce.id:null:await Yye(Ce.kind,d,{...Ce,activate:s});if(ue()){if(!Pe)throw new Error("The requested layout document is unavailable.");se=$cn(Pe,!De.has(Pe)),g(Pe)}})().catch(De=>{ue()&&k(De instanceof Error?De.message:String(De))}),()=>{G=!0,se?.()}},[d,A]),Ye.useEffect(()=>{!m||!s||X0(m)},[m,s]),Ye.useEffect(()=>{if(!m)return;const G=s2(m);if(!(!G||D.current===G)){D.current=G;try{F.current?.({select(se){const pe=G.idsNamed?.(se)??[];if(pe.length!==1)throw new Error(`Expected one object named "${se}"; found ${pe.length}.`);G.selection?.apply(pe)},transform(se){G.setTransformMode?.(se)},frame(){G.frame("document")}})}catch(se){k(se instanceof Error?se.message:String(se))}}},[m,J]);const $=m?l0().find(G=>G.descriptor.id===m):void 0;return q.jsx("div",{style:{position:"relative",flex:1,minWidth:0,minHeight:0,height:"100%",overflow:"hidden"},children:S?q.jsx("div",{role:"alert",children:S}):$?q.jsx(JMt,{descriptor:$.descriptor,active:s,chrome:n}):q.jsx("div",{role:"status",children:"Opening document…"})})}function zcn(){return q.jsxs(Aee,{children:[q.jsx(Dee,{}),q.jsx(Iee,{}),q.jsx(Pee,{})]})}function Vcn(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=Ye.useSyncExternalStore(Hye,c$,c$),[s,c]=Ye.useState(!1),d=Ye.useSyncExternalStore(OC,lxt,lxt);if(Ye.useEffect(()=>{let g=!1;return eVe().then(()=>{g||c(!0)}),()=>{g=!0}},[]),!s)return q.jsx("div",{role:"status",children:d??"Loading project layout…"});const m=n.Layout??zcn;return q.jsx(m,{playing:t.playState!=="stopped",paused:t.playState==="paused"})}function JVe({size:t=64}){return q.jsx("img",{src:uee()?.logo??mR.logo,width:t,height:t,alt:"","aria-hidden":"true","data-testid":"volter-logo",style:{display:"block"}})}const Tje="account";function WMt(){return ND({id:Tje,title:"Account",kind:"tool-contribution",workspaceRole:"workspace-task",provenance:{origin:"Volter account"},Content:Hcn,closeable:!0,presentation:()=>({kind:"workspace",id:Tje})})}AN({id:"workspace",owner:"account-documents",open:(t,n)=>n.id===Tje?WMt():null});function Ucn(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 Jcn({provider:t,busy:n,run:s,editing:c,removing:d,onEdit:m,onStopEditing:g,onRemoveIntent:S}){const[k,A]=Ye.useState("");return q.jsxs("div",{className:"volter-account-provider","data-configured":t.configured,children:[q.jsx("span",{className:"volter-account-provider-monogram","aria-hidden":"true",children:t.label.slice(0,1)}),q.jsxs("div",{className:"volter-account-provider-main",children:[q.jsxs("div",{className:"volter-account-provider-name",children:[q.jsx("strong",{children:t.label}),t.configured&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-account-provider-dot","aria-hidden":"true"}),q.jsx("span",{className:"volter-account-provider-key",children:t.maskedKey})]})]}),q.jsx("span",{className:"volter-account-provider-source",children:Ucn(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 Swr(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(()=>wwr(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 xwr(t.provider),S(null)},`${t.label} credential removed.`),children:"Confirm remove"}),q.jsx(Ms,{size:"compact",variant:"ghost",disabled:n,onClick:()=>S(null),children:"Cancel"})]})]})]})}function wwt({busy:t,run:n}){const s=rBe(),[c,d]=Ye.useState(null),[m,g]=Ye.useState(null),S=s.providerCredentials.filter(k=>k.configured).length;return q.jsxs("section",{className:"volter-account-card volter-provider-connections",children:[q.jsxs("div",{className:"volter-account-providers-header",children:[q.jsxs("div",{children:[q.jsx("h3",{className:"volter-account-card-title",children:"Provider connections"}),q.jsx("p",{className:"volter-account-card-sub",children:"Keys live in this computer's credential manager — never in project files or the editor UI."})]}),q.jsxs("span",{className:"volter-status-dot","data-state":S>0?"on":"off",children:[S," connected"]})]}),q.jsx("div",{className:"volter-account-provider-list",children:s.providerCredentials.map(k=>q.jsx(Jcn,{provider:k,busy:t,run:n,editing:c===k.provider,removing:m===k.provider,onEdit:()=>{g(null),d(k.provider)},onStopEditing:()=>d(null),onRemoveIntent:g},k.provider))})]})}function Twt({busy:t,run:n}){const s=rBe(),c=s.codingInference,[d,m]=Ye.useState(c.model),[g,S]=Ye.useState(null),[k,A]=Ye.useState(null);Ye.useEffect(()=>m(c.model),[c.model]),Ye.useEffect(()=>{S(null),A(null)},[d,s.preferredRoute]);const F=D=>n(()=>vwr({...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),bwr({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 Wcn({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 Hcn(){Ye.useSyncExternalStore(Dye,lN,lN);const t=rBe(),[n,s]=Ye.useState("builder@example.test"),[c,d]=Ye.useState([]),[m,g]=Ye.useState(null),[S,k]=Ye.useState("creator"),[A,F]=Ye.useState(""),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState(null),[ue,Ce]=Ye.useState(null),[De,Pe]=Ye.useState(!1);Ye.useEffect(()=>{if(t.authenticated||t.backend!=="live"||t.accountEnvironment==="development-twin"){Pe(!1);return}Dwr().then(zt=>Pe(zt.device)).catch(()=>Pe(!1))},[t.authenticated,t.backend]),Ye.useEffect(()=>{if(!ue)return;const zt=()=>{Iwr(ue.authorizationId).then(tr=>{tr&&Ce(null)}).catch(tr=>{G(tr instanceof Error?tr.message:String(tr)),Ce(null)})};zt();const ft=window.setInterval(zt,1e3);return()=>window.clearInterval(ft)},[ue]),Ye.useEffect(()=>{if(!se)return;const zt=()=>{Owr(se.deviceCode).then(tr=>{tr&&pe(null)}).catch(tr=>{G(tr instanceof Error?tr.message:String(tr)),pe(null)})},ft=window.setInterval(zt,Math.max(1,se.intervalSeconds)*1e3);return()=>window.clearInterval(ft)},[se]),Ye.useEffect(()=>{if(!t.authenticated){d([]);return}Ewr().then(d).catch(()=>d([]))},[t.authenticated,t.authenticated?t.user.id:"signed-out",t.authenticated?t.credits.used:0]),Ye.useEffect(()=>{if(!t.authenticated){g(null);return}kwr().then(zt=>{g(zt);const ft=["creator","max","ultra"].find(tr=>tr!==t.plan.id);k(ft??"creator"),F(Object.keys(zt.creditPacks)[0]??"")}).catch(()=>g(null))},[t.authenticated,t.authenticated?t.user.id:"signed-out"]);const be=async(zt,ft)=>{J(!0),G(null);try{await zt(),ft&&G(ft)}catch(tr){G(tr instanceof Error?tr.message:String(tr))}finally{J(!1)}};if(!t.authenticated)return q.jsx("div",{className:"volter-account","data-testid":"account-document",children:q.jsxs("div",{className:"volter-account-signin-stack",children:[q.jsxs("div",{className:"volter-account-signin-hero",children:[q.jsx("span",{className:"volter-account-signin-mark","aria-hidden":"true",children:q.jsx(JVe,{size:52})}),q.jsx("h1",{className:"volter-account-signin-title",children:"Sign in to Volter Editor"})]}),t.accountEnvironment==="development-twin"?q.jsxs("form",{className:"volter-account-card volter-account-signin-card",onSubmit:zt=>{zt.preventDefault(),be(()=>_wr(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 Pwr();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 Nwr();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(()=>pwr(n),"Signed in to the zero-charge local account.")},children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Email"}),q.jsx(Zm,{value:n,type:"email",onChange:zt=>s(zt.target.value)})]}),q.jsx(Ms,{type:"submit",variant:"primary",disabled:D||!n.includes("@"),children:D?"Signing in…":"Use local mock account"}),q.jsx(hB,{children:"Local mock — no payment, network identity, or provider request."})]}),q.jsxs("ul",{className:"volter-account-signin-points",children:[q.jsx("li",{children:"Every paid generation shows its route and estimate first"}),q.jsx("li",{children:"Spend controls and hard limits are on by default"}),q.jsx("li",{children:"Provider keys stay in your system credential manager"})]}),q.jsx(Twt,{busy:D,run:be}),q.jsx(wwt,{busy:D,run:be}),($||Tpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??Tpe()})]})});const X=t.credits.included+t.credits.purchased,we=X===0?0:Math.min(100,t.credits.used/X*100),qe=X===0?0:Math.max(0,Math.min(100-we,t.credits.reserved/X*100)),bt=X>0&&t.credits.used>X,Pt=t.backend==="mock"||t.entitlements.generation,Wt=zt=>hwr({...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(Wcn,{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(mwr),children:"Sign out"})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsxs("div",{className:"volter-account-card-head",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Credits"}),t.plan.id!=="free"&&t.plan.status==="cancelling"&&q.jsx(Ms,{size:"compact",disabled:D,onClick:()=>void be(()=>dht("resume")),children:"Resume subscription"})]}),!Pt&&q.jsx(hB,{children:"This account has not been admitted to Volter managed services. Signing up or paying does not grant provider access; contact the Volter team for admission."}),m&&q.jsxs("div",{className:"volter-account-card-footer",children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Subscription tier"}),q.jsx(Iw,{value:S,disabled:D||!Pt,onChange:zt=>k(zt.target.value),children:Object.keys(m.plans).map(zt=>{const ft=m.plans[zt],tr=ft.monthlyPriceUsd;return q.jsxs("option",{value:zt,disabled:zt==="free",children:[ft.name,tr!==void 0?` · $${tr}/month`:""," ·"," ",ft.includedCredits.toLocaleString()," credits",zt===t.plan.id?" · current":""]},zt)})})]}),q.jsxs(Ms,{variant:"primary",size:"compact",disabled:D||!Pt||S===t.plan.id||S==="free",onClick:()=>void be(async()=>{const zt=await Twr(S);zt.checkoutUrl?window.open(zt.checkoutUrl,"_blank","noopener,noreferrer"):G(zt.mock?`Mock ${m.plans[S].name} upgrade completed. No payment occurred.`:`Subscription changed to ${m.plans[S].name}.`)}),children:["Choose ",m.plans[S].name]})]}),q.jsxs("div",{className:"volter-account-credit-figure",children:[q.jsx("span",{className:"volter-account-credit-number",children:t.credits.remaining.toLocaleString()}),q.jsx("span",{className:"volter-account-credit-unit",children:"credits remaining"})]}),q.jsxs("div",{className:"volter-meter",role:"progressbar","aria-label":"Credits used","aria-valuenow":Math.round(we),"aria-valuemin":0,"aria-valuemax":100,"data-state":bt?"over":void 0,children:[q.jsx("span",{className:"volter-meter-fill",style:{width:`${we}%`}}),qe>0&&q.jsx("span",{className:"volter-meter-fill","data-part":"reserved",style:{left:`${we}%`,width:`${qe}%`}})]}),q.jsxs("p",{className:"volter-account-cycle-line",children:[t.credits.used.toLocaleString()," of ",X.toLocaleString()," used this cycle",t.credits.resetsAt&&q.jsxs(q.Fragment,{children:[" · resets ",new Date(t.credits.resetsAt).toLocaleDateString()]}),bt&&q.jsx("span",{className:"volter-account-cycle-over",children:" · over allowance"})]}),q.jsxs("div",{className:"volter-account-legend","data-state":bt?"over":void 0,children:[q.jsxs("span",{className:"volter-account-legend-item","data-part":"included",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.included.toLocaleString()," included"]}),q.jsxs("span",{className:"volter-account-legend-item","data-part":"used",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.used.toLocaleString()," used"]}),q.jsxs("span",{className:"volter-account-legend-item","data-part":"reserved",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.reserved.toLocaleString()," reserved"]}),q.jsxs("span",{className:"volter-account-legend-item","data-part":"purchased",children:[q.jsx("span",{className:"volter-account-legend-dot","aria-hidden":"true"}),t.credits.purchased.toLocaleString()," purchased"]})]}),t.credits.purchasedExpiresAt&&q.jsxs("p",{className:"volter-account-help volter-account-expiry",children:["Purchased credits expire"," ",new Date(t.credits.purchasedExpiresAt).toLocaleDateString(),"."]}),q.jsxs("div",{className:"volter-account-card-footer",children:[m&&A&&m.creditPacks[A]&&q.jsxs(q.Fragment,{children:[q.jsx(Iw,{"aria-label":"Credit pack",value:A,disabled:D||!Pt,onChange:zt=>F(zt.target.value),children:Object.entries(m.creditPacks).map(([zt,ft])=>q.jsxs("option",{value:zt,children:[ft.name," · ",ft.credits.toLocaleString()," credits"]},zt))}),q.jsx(Ms,{size:"compact",disabled:D||!Pt,onClick:()=>void be(async()=>{const zt=m.creditPacks[A],ft=await Cwr(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 Awr();zt.mock?G("Mock billing portal: no payment page was opened."):window.open(zt.url,"_blank","noopener,noreferrer")}),children:"Billing and invoices"}),t.plan.id!=="free"&&t.plan.status==="active"&&q.jsx(Ms,{size:"compact",variant:"ghost",className:"volter-account-quiet-danger",disabled:D,onClick:()=>void be(()=>dht("cancel")),children:"Cancel at renewal"})]})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Generation routing"}),q.jsx("p",{className:"volter-account-card-sub",children:"Billing preference for AI usage. Provider libraries apply it automatically; requests show the resolved account and cost before submission."}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Preferred route"}),q.jsxs(Iw,{value:t.preferredRoute,onChange:zt=>void be(()=>ywr(zt.target.value)),children:[t.accountEnvironment==="test-mock"&&q.jsx("option",{value:"mock",children:"Mock · free and local"}),q.jsx("option",{value:"auto",children:"Automatic · saved key or Volter account"}),q.jsxs("option",{value:"managed",disabled:!t.routes.managed,children:["Managed · Volter credits",t.routes.managed?"":" (unavailable)"]}),q.jsxs("option",{value:"byok",disabled:!t.routes.byok,children:["BYOK · provider dollars",t.routes.byok?"":" (no key found)"]})]})]})]}),q.jsx(Twt,{busy:D,run:be}),q.jsx(wwt,{busy:D,run:be}),(t.alerts?.length??0)>0&&q.jsxs("section",{className:"volter-account-card",children:[q.jsxs("div",{className:"volter-account-card-head",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Account alerts"}),t.alerts?.some(zt=>!zt.readAt)&&q.jsx(Ms,{size:"compact",variant:"ghost",disabled:D,onClick:()=>void be(gwr),children:"Mark read"})]}),q.jsx("div",{className:"volter-account-usage",children:t.alerts?.map(zt=>q.jsxs("div",{className:"volter-account-usage-row",children:[q.jsxs("span",{children:[q.jsx("strong",{children:zt.readAt?"Notice":"New"}),q.jsx("small",{children:zt.message})]}),q.jsx("span",{children:new Date(zt.createdAt).toLocaleDateString()})]},zt.id))})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Spend controls"}),q.jsxs("p",{className:"volter-account-card-sub",children:["Alerts at ",t.spendPolicy.alertThresholds.join("%, "),"% of the available allowance."]}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:t.spendPolicy.overageEnabled,onChange:zt=>void be(()=>Wt({overageEnabled:zt.target.checked,monthlyLimitCredits:zt.target.checked&&t.spendPolicy.monthlyLimitCredits===0?1e3:t.spendPolicy.monthlyLimitCredits}))}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Allow paid overage"}),q.jsx("small",{children:"Off by default. Managed requests stop before provider submission."})]})]}),q.jsx("div",{className:"volter-account-limit-field",children:q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Monthly overage hard limit"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.monthlyLimitCredits,disabled:!t.spendPolicy.overageEnabled,onBlur:zt=>void be(()=>Wt({monthlyLimitCredits:Number(zt.target.value)}))},t.spendPolicy.monthlyLimitCredits),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]})}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:t.spendPolicy.autoReload?.enabled===!0,onChange:zt=>void be(()=>Wt({autoReload:{enabled:zt.target.checked,whenRemainingBelow:t.spendPolicy.autoReload?.whenRemainingBelow??100,reloadTo:t.spendPolicy.autoReload?.reloadTo??500,monthlyLimitCredits:t.spendPolicy.autoReload?.monthlyLimitCredits??2e3}}))}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Automatically reload credits"}),q.jsx("small",{children:"Optional, independently capped, and never enabled by checkout."})]})]}),t.spendPolicy.autoReload?.enabled&&q.jsxs("div",{className:"volter-account-policy-fields",children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Reload below"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.autoReload.whenRemainingBelow,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,whenRemainingBelow:Number(zt.target.value)}}))},t.spendPolicy.autoReload.whenRemainingBelow),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Reload balance to"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:1,defaultValue:t.spendPolicy.autoReload.reloadTo,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,reloadTo:Number(zt.target.value)}}))},t.spendPolicy.autoReload.reloadTo),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Monthly reload cap"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.autoReload.monthlyLimitCredits,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,monthlyLimitCredits:Number(zt.target.value)}}))},t.spendPolicy.autoReload.monthlyLimitCredits),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]})]})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Current-cycle usage"}),c.length===0?q.jsx("p",{className:"volter-account-help",children:"No managed credit usage has been settled in this account."}):q.jsx("div",{className:"volter-account-usage",children:c.map(zt=>q.jsxs("div",{className:"volter-account-usage-row",children:[q.jsxs("span",{children:[zt.kind," · ",zt.provider," · ",zt.operation??"managed operation"]}),q.jsxs("strong",{children:[zt.credits.toLocaleString()," credits"]})]},zt.id))})]}),($||Tpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??Tpe()})]})]})}function Gcn(t,n,s){const d=navigator.platform.includes("Mac")?"⌘":"Ctrl+",m=Y0(t),g=[...t.selectedEntityIds],S=g[0],k=S?m.hierarchy.node(S)?.parentId??null:null,A=g.length>0&&!!m.structure?.copy&&(m.structure.canCopy?.(g)??!0),F=A&&!!m.structure?.cut,D=!!m.structure?.paste&&(m.structure.canPaste?.(k)??!0),J=[...F?[{id:"editor.cut",label:"Cut",category:"action",shortcut:Vv("edit.cut"),execute:()=>qVe(t)}]:[],...A?[{id:"editor.copy",label:"Copy",category:"action",shortcut:Vv("edit.copy"),execute:()=>$Ve(t)}]:[],...D?[{id:"editor.paste",label:"Paste",category:"action",shortcut:Vv("edit.paste"),execute:()=>zVe(t)}]:[]];return[{id:"account.open",label:"Account and Provider Connections",category:"action",execute:()=>{WMt()}},{id:"editor.undo",label:s?.undoLabel?`Undo ${s.undoLabel}`:"Undo",category:"action",shortcut:Vv("edit.undo"),execute:async()=>{await n.undo()}},{id:"editor.redo",label:s?.redoLabel?`Redo ${s.redoLabel}`:"Redo",category:"action",shortcut:Vv("edit.redo"),execute:async()=>{await n.redo()}},...J,{id:"editor.duplicate",label:"Duplicate",category:"action",shortcut:Vv("edit.duplicate"),execute:()=>bve(t)},{id:"editor.delete",label:"Delete Selected",category:"action",shortcut:Vv("edit.delete"),execute:()=>Sve(t)},{id:"editor.select-all",label:"Select All",category:"action",shortcut:Vv("edit.selectAll"),execute:()=>RRt(t)},{id:"editor.deselect",label:"Deselect All",category:"action",shortcut:Vv("edit.deselectAll")??Vv("edit.exitScopeOrDeselect"),execute:()=>jze(t,[])},{id:"toggle.console",label:"Toggle Console",category:"action",shortcut:Vv("view.toggleConsole"),execute:()=>{pve()}},{id:"view.focusMode",label:"Toggle Focus Mode",category:"action",shortcut:Vv("view.focusMode"),execute:()=>{zBe()}},...DN().map($=>({id:`workspace.${$.id}`,label:`Workspace: ${$.title}`,category:"action",execute:()=>{Uk($.id)&&a2($.id)}})),{id:"workspace.cycleNext",label:"Next Workspace",category:"action",shortcut:Vv("workspace.cycleNext"),execute:()=>{Che(1)}},{id:"workspace.cyclePrevious",label:"Previous Workspace",category:"action",shortcut:Vv("workspace.cyclePrevious"),execute:()=>{Che(-1)}},...Q4t().map($=>({id:`keymap.${$.id}`,label:`Keymap: ${$.title}`,category:"action",execute:()=>{XEr($.id)}})),...OR().map($=>({id:`view.workspaceStyle.${$.id}`,label:`Workspace Style: ${$.title}`,category:"action",execute:()=>{QBe($.id)}})),{id:"view.undoHistory",label:"Undo History",category:"action",execute:()=>{VVe()}},{id:"view.lightExplorer",label:"Open Light Explorer",category:"action",execute:()=>vC(iee.lightExplorer.id)},...Object.values(O_).filter($=>$.id!==O_.open.id).map($=>({id:$.id,label:`${$.id.replace("project-asset.","").split("-").map(G=>G[0]?.toUpperCase()+G.slice(1)).join(" ")} Project Asset`,category:"asset",...$.shortcut?{shortcut:$.shortcut.replace("Mod",d)}:{},execute:()=>{window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:$.id}}))}})),{id:"view.asset-library",label:"Asset Library",category:"action",execute:()=>{qBe("asset-library")}}]}function Kcn(t){return Y0e(t).filter(n=>n.id!==NFe).map(n=>({id:`entity:${n.id}`,label:n.name,category:"entity",execute:()=>{jze(t,[n.id]),BVe("viewport.frameSelection")}}))}function Xcn(){return ive().filter(t=>t.category==="canvas").map(({descriptor:t})=>({id:`board:${t.id}`,label:`Open ${t.title}`,category:"action",execute:()=>void xN(t.id)}))}function cN(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function Yge(t){const n=t.type;if(typeof n=="string")return n;if(Array.isArray(n))return n.find(s=>s!=="null")}function HMt(t){const n=cN(t);if("default"in n)return structuredClone(n.default);const s=Yge(n);if(s==="object"||n.properties){const c={};for(const[d,m]of Object.entries(cN(n.properties))){const g=cN(m);("default"in g||Array.isArray(n.required)&&n.required.includes(d))&&(c[d]=HMt(g))}return c}return s==="array"?[]:s==="boolean"?!1:s==="number"||s==="integer"?Number(n.minimum??0):""}function Cje(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]/g," ").replace(/^./,n=>n.toUpperCase())}function Ycn({name:t,schema:n,value:s,required:c,onChange:d}){const m=Yge(n),g=typeof n.description=="string"?n.description:null,S=Array.isArray(n.enum)?n.enum:null,k=`tool-field:${t}`;if(m==="boolean")return q.jsxs("label",{style:{...VY,gridTemplateColumns:"18px minmax(0, 1fr)"},children:[q.jsx(TD,{id:k,checked:s===!0,onChange:F=>d(F.target.checked)}),q.jsxs("span",{children:[q.jsx("span",{style:Cwt,children:Cje(t)}),g&&q.jsx("span",{style:MO,children:g})]})]});const A=q.jsxs("span",{style:Cwt,children:[Cje(t)," ",!c&&q.jsx("span",{style:Qcn,children:"optional"})]});return S?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsxs(Iw,{id:k,value:String(s??""),onChange:F=>d(F.target.value),style:d_e,children:[!c&&q.jsx("option",{value:"",children:"Not set"}),S.map(F=>q.jsx("option",{value:String(F),children:String(F)},String(F)))]}),g&&q.jsx("span",{style:MO,children:g})]}):m==="number"||m==="integer"?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,type:"number",value:typeof s=="number"?s:"",min:typeof n.minimum=="number"?n.minimum:void 0,max:typeof n.maximum=="number"?n.maximum:void 0,step:m==="integer"?1:"any",onChange:F=>d(F.target.value===""?void 0:Number(F.target.value)),style:d_e}),g&&q.jsx("span",{style:MO,children:g})]}):m==="array"&&Yge(cN(n.items))==="string"?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,value:Array.isArray(s)?s.join(", "):"",onChange:F=>d(F.target.value.split(",").map(D=>D.trim()).filter(Boolean)),placeholder:"Comma-separated values",style:d_e}),g&&q.jsx("span",{style:MO,children:g})]}):q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,value:typeof s=="string"?s:"",onChange:F=>d(F.target.value||(c?"":void 0)),style:d_e}),g&&q.jsx("span",{style:MO,children:g})]})}function GMt({schema:t,value:n,onChange:s,path:c=""}){const d=cN(t.properties),m=new Set(Array.isArray(t.required)?t.required:[]);return q.jsx("div",{style:{display:"grid",gap:14},children:Object.entries(d).map(([g,S])=>{const k=cN(S),A=Yge(k),F=D=>{const J={...n};D===void 0?delete J[g]:J[g]=D,s(J)};return A==="object"||k.properties?q.jsxs("fieldset",{style:eln,children:[q.jsx("legend",{style:tln,children:Cje(g)}),typeof k.description=="string"&&q.jsx("p",{style:{...MO,marginTop:0},children:k.description}),q.jsx(GMt,{schema:k,value:cN(n[g]),onChange:F,path:c?`${c}.${g}`:g})]},g):q.jsx(Ycn,{name:c?`${c}.${g}`:g,schema:k,value:n[g],required:m.has(g),onChange:F},g)})})}function Zcn({schema:t,value:n,onChange:s}){const c=cN(t);return c.properties?q.jsx(GMt,{schema:c,value:n,onChange:s}):q.jsx("div",{style:MO,children:"This schema has no form-compatible fields."})}const VY={display:"grid",gap:5},Cwt={color:Zf[1],fontWeight:600,fontSize:"var(--volter-font-sm)"},Qcn={color:Zf[3],fontWeight:400,marginLeft:5},MO={display:"block",color:Zf[2],fontSize:"var(--volter-font-sm)",lineHeight:1.4},d_e={boxSizing:"border-box",width:"100%"},eln={margin:0,padding:14,border:"1px solid var(--volter-boundary-default)",borderRadius:"var(--volter-radius-md)"},tln={padding:"0 6px",color:Zf[1],fontWeight:600},Zge="project-tools",Eje="project-tool:";function rln(t){return`${Eje}${t}`}function wve(){ND({id:Zge,title:"Project Tools",kind:"project-tool",workspaceRole:"workspace-reference",Content:KMt,closeable:!0,presentation:()=>({kind:"workspace",id:Zge}),persist:()=>({catalog:!0})})}function Tve(t){const n=N$().tools.find(c=>c.name===t);if(!n)return!1;const s=kC().filter(c=>c.tool?.name===t);return s.length===1?tA(s[0].id):(ND({id:rln(t),title:n.summary||n.name,kind:"project-tool",workspaceRole:"workspace-reference",provenance:{sourcePath:n.sourcePath,origin:n.name},Content:KMt,closeable:!0,presentation:()=>({kind:"project-tool",name:t}),persist:()=>({name:t})}),!0)}AN({id:"workspace",owner:"project-tool-documents",open:(t,n)=>n.id!==Zge?null:(wve(),Zge)});AN({id:"project-tool",owner:"project-tool-documents",open:(t,n)=>Tve(n.name)?Pp():null,settle:async t=>{if(await HZ().catch(()=>{}),!await CC(()=>N$().tools.some(n=>n.name===t.name)))throw new Error(`Project tool is not registered: ${t.name}`)}});Tee({kind:"project-tool",owner:"project-tool-documents",prepare:()=>HZ().then(()=>{},()=>{}),restore:({state:t})=>{const n=t;return n?.catalog===!0?(wve(),!0):typeof n?.name=="string"&&Tve(n.name)}});function nln(){return[{id:"project-tools:open",label:"Open Project Tools",category:"action",execute:()=>wve()},...N$().tools.map(t=>({id:`project-tool:${t.name}`,label:`Run: ${t.summary||t.name}`,category:"action",execute:()=>void Tve(t.name)}))]}function Ewt({value:t}){return q.jsx("pre",{style:aln,children:JSON.stringify(t,null,2)})}function KMt({documentId:t}){Ye.useSyncExternalStore(lMt,ian),Ye.useSyncExternalStore(u2,rA);const n=N$(),s=t.startsWith(Eje)?t.slice(Eje.length):null,c=s?n.tools.find(d=>d.name===s):null;return s?c?q.jsx(iln,{tool:c},c.name):q.jsx("div",{style:kje,children:"This tool is no longer available."}):q.jsxs("div",{style:kje,"data-testid":"project-tools-catalog",children:[q.jsx("h2",{style:XMt,children:"Project Tools"}),q.jsxs("p",{style:{...Aje,margin:"0 0 18px",maxWidth:720,lineHeight:1.5},children:["Explicitly registered in ",q.jsx("code",{children:"package.json#volter.tools"}),". Each tool is an ordinary project function; a registration may pair it with optional editor contributions."]}),q.jsx("div",{style:{display:"grid",gap:8},children:n.tools.map(d=>q.jsxs(Ms,{variant:"ghost",className:"volter-project-tool-card",onClick:()=>Tve(d.name),"data-testid":`project-command-card:${d.name}`,children:[q.jsxs("span",{style:YMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:d.summary}),q.jsx("span",{style:ZMt,children:"Open"})]}),q.jsx("code",{style:{color:Zf[2],fontSize:"var(--volter-font-sm)"},children:d.name}),q.jsx("span",{style:oln,children:q.jsxs("span",{children:[d.host," · ",d.permission.risk," · ",d.sourcePath]})})]},d.name))}),n.tools.length===0&&n.loadErrors.length===0&&q.jsx("div",{style:Aje,children:"No project tools registered."}),n.loadErrors.map(d=>q.jsxs("div",{style:Qge,children:[d.sourcePath,": ",d.message]},`${d.sourcePath}:${d.message}`)),s$e().map(d=>q.jsxs("div",{style:Qge,children:[d.entryPath,": ",d.error]},`${d.entryPath}:${d.error}`))]})}function iln({tool:t}){const n=kC().filter(se=>se.tool?.name===t.name),s=HMt(t.inputSchema),[c,d]=Ye.useState(s&&typeof s=="object"&&!Array.isArray(s)?s:{}),[m,g]=Ye.useState(()=>JSON.stringify(c,null,2)),[S,k]=Ye.useState(null),[A,F]=Ye.useState(!1),[D,J]=Ye.useState(null),$=t.host==="node",G=async()=>{if(t.permission.risk==="read"||window.confirm(`${t.permission.summary}
|
|
1398
1398
|
|
|
1399
|
-
Run ${t.name}?`)){F(!0);try{k(await oan(t.name,c,{confirm:!0}))}catch(pe){k({ok:!1,error:{code:"REQUEST_FAILED",message:String(pe)}})}finally{F(!1)}}};return q.jsxs("div",{style:kje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:XMt,children:t.summary}),q.jsx("code",{style:{color:Zf[2]},children:t.name}),q.jsx("p",{style:{color:Zf[2]},children:t.description}),q.jsxs("div",{style:Aje,children:[t.host," · ",t.permission.risk," · ",t.sourcePath]}),n.length>0&&q.jsxs("section",{style:{marginTop:18,maxWidth:760},children:[q.jsx("h3",{style:{margin:"0 0 8px",fontSize:13},children:"Presentations"}),q.jsx("div",{style:{display:"grid",gap:8},children:n.map(se=>q.jsx(Ms,{variant:"ghost",className:"volter-project-tool-card",onClick:()=>tA(se.id),children:q.jsxs("span",{style:YMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:ZMt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Qge,children:"This runner supports Node-hosted tools. Import the underlying function directly in browser or runtime code."}),q.jsxs("details",{open:n.length===0,style:{marginTop:18,maxWidth:760},children:[q.jsx("summary",{style:{cursor:"pointer",color:Zf[2],fontSize:12},children:n.length>0?"Advanced · invoke native schema":"Input"}),q.jsx("section",{style:{marginTop:12},children:q.jsx(Zcn,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Qge,children:D}),q.jsx(Ms,{variant:"primary",disabled:!$||A||D!==null,"aria-busy":A,onClick:()=>void G(),style:{marginTop:16},children:A?"Running…":"Run tool"}),q.jsxs("details",{style:{marginTop:16},children:[q.jsx("summary",{style:EOe,children:"Advanced JSON"}),q.jsx(TBe,{id:`tool-input:${t.name}`,value:m,onChange:se=>{const pe=se.target.value;g(pe);try{const ue=JSON.parse(pe);if(!ue||typeof ue!="object"||Array.isArray(ue))throw new Error("Input must be a JSON object.");d(ue),J(null)}catch(ue){J(ue instanceof Error?ue.message:String(ue))}},rows:10,"data-variant":"code",style:sln}),q.jsxs("details",{children:[q.jsx("summary",{style:EOe,children:"Input schema"}),q.jsx(Ewt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:EOe,children:"Result"}),q.jsx(Ewt,{value:S})]})]})}const kje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},XMt={margin:"0 0 6px",fontSize:20},Aje={color:Zf[2],fontSize:"var(--volter-font-sm)"},EOe={display:"block",margin:"14px 0 6px",color:Zf[1]},YMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},ZMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},oln={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Qge={marginTop:10,color:E_e,whiteSpace:"pre-wrap"},sln={width:"100%",boxSizing:"border-box",resize:"vertical"},aln={overflow:"auto",padding:10,background:xBe.inset,border:`1px solid ${ahe[1]}`,borderRadius:aQ.sm,color:Zf[2]};function cln(t,n,s){const c=Gcn(t,n,s),d=[...nln(),...Xcn(),...Ckr()],m=Kcn(t),g=hCt().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,...fln(),...m]}const lln=["view","window","debug","tools","help"],uln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function fln(){return lln.flatMap(t=>jme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${uln[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 dln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function pln(){const t=Yv(),n=mve(),s=tMt(),c=Ye.useSyncExternalStore(hLe,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(ODt,Phe,Phe),g=Ye.useSyncExternalStore(Kye,mhe,mhe),S=Ye.useMemo(()=>cln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=dln(S);A!==k.current&&(k.current=A,Pxt(S.map(F=>({id:F.id,label:F.label,category:F.category,run:F.execute,...F.menu?{menu:F.menu}:{}}))))},[S]),Ye.useEffect(()=>()=>{k.current=null,Pxt([])},[]),null}let QMt=[];const Dje=new Set;function _ln(t){return Dje.add(t),()=>Dje.delete(t)}function mln(){return QMt}function hln(){for(const t of Dje)t()}function gln(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 yln(t){const n=t.failed.map(s=>({key:s.entry.key,dest:s.entry.dest,pack:s.entry.pack,reason:s.reason}));for(const s of n)Qs.error(gln(s),"assets");QMt=n,hln()}async function vln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-
|
|
1399
|
+
Run ${t.name}?`)){F(!0);try{k(await oan(t.name,c,{confirm:!0}))}catch(pe){k({ok:!1,error:{code:"REQUEST_FAILED",message:String(pe)}})}finally{F(!1)}}};return q.jsxs("div",{style:kje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:XMt,children:t.summary}),q.jsx("code",{style:{color:Zf[2]},children:t.name}),q.jsx("p",{style:{color:Zf[2]},children:t.description}),q.jsxs("div",{style:Aje,children:[t.host," · ",t.permission.risk," · ",t.sourcePath]}),n.length>0&&q.jsxs("section",{style:{marginTop:18,maxWidth:760},children:[q.jsx("h3",{style:{margin:"0 0 8px",fontSize:13},children:"Presentations"}),q.jsx("div",{style:{display:"grid",gap:8},children:n.map(se=>q.jsx(Ms,{variant:"ghost",className:"volter-project-tool-card",onClick:()=>tA(se.id),children:q.jsxs("span",{style:YMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:ZMt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Qge,children:"This runner supports Node-hosted tools. Import the underlying function directly in browser or runtime code."}),q.jsxs("details",{open:n.length===0,style:{marginTop:18,maxWidth:760},children:[q.jsx("summary",{style:{cursor:"pointer",color:Zf[2],fontSize:12},children:n.length>0?"Advanced · invoke native schema":"Input"}),q.jsx("section",{style:{marginTop:12},children:q.jsx(Zcn,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Qge,children:D}),q.jsx(Ms,{variant:"primary",disabled:!$||A||D!==null,"aria-busy":A,onClick:()=>void G(),style:{marginTop:16},children:A?"Running…":"Run tool"}),q.jsxs("details",{style:{marginTop:16},children:[q.jsx("summary",{style:EOe,children:"Advanced JSON"}),q.jsx(TBe,{id:`tool-input:${t.name}`,value:m,onChange:se=>{const pe=se.target.value;g(pe);try{const ue=JSON.parse(pe);if(!ue||typeof ue!="object"||Array.isArray(ue))throw new Error("Input must be a JSON object.");d(ue),J(null)}catch(ue){J(ue instanceof Error?ue.message:String(ue))}},rows:10,"data-variant":"code",style:sln}),q.jsxs("details",{children:[q.jsx("summary",{style:EOe,children:"Input schema"}),q.jsx(Ewt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:EOe,children:"Result"}),q.jsx(Ewt,{value:S})]})]})}const kje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},XMt={margin:"0 0 6px",fontSize:20},Aje={color:Zf[2],fontSize:"var(--volter-font-sm)"},EOe={display:"block",margin:"14px 0 6px",color:Zf[1]},YMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},ZMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},oln={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Qge={marginTop:10,color:E_e,whiteSpace:"pre-wrap"},sln={width:"100%",boxSizing:"border-box",resize:"vertical"},aln={overflow:"auto",padding:10,background:xBe.inset,border:`1px solid ${ahe[1]}`,borderRadius:aQ.sm,color:Zf[2]};function cln(t,n,s){const c=Gcn(t,n,s),d=[...nln(),...Xcn(),...Ckr()],m=Kcn(t),g=hCt().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,...fln(),...m]}const lln=["view","window","debug","tools","help"],uln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function fln(){return lln.flatMap(t=>jme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${uln[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 dln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function pln(){const t=Yv(),n=mve(),s=tMt(),c=Ye.useSyncExternalStore(hLe,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(ODt,Phe,Phe),g=Ye.useSyncExternalStore(Kye,mhe,mhe),S=Ye.useMemo(()=>cln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=dln(S);A!==k.current&&(k.current=A,Pxt(S.map(F=>({id:F.id,label:F.label,category:F.category,run:F.execute,...F.menu?{menu:F.menu}:{}}))))},[S]),Ye.useEffect(()=>()=>{k.current=null,Pxt([])},[]),null}let QMt=[];const Dje=new Set;function _ln(t){return Dje.add(t),()=>Dje.delete(t)}function mln(){return QMt}function hln(){for(const t of Dje)t()}function gln(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 yln(t){const n=t.failed.map(s=>({key:s.entry.key,dest:s.entry.dest,pack:s.entry.pack,reason:s.reason}));for(const s of n)Qs.error(gln(s),"assets");QMt=n,hln()}async function vln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-ick1zhVG.js");return{materializeDeclaredAssetPacks:c}},__vite__mapDeps([265,105,3,2,4,1,20,21,22,23])),s=await n(t);yln(s)}catch(n){Qs.error(`Retrying asset materialization failed before any entry was attempted: ${n instanceof Error?n.message:String(n)}`,"assets")}}let ejt={kind:"quiet"},tjt=0;const Pje=new Set;function bln(){return ejt}function Sln(t){ejt=t,tjt+=1;for(const n of Pje)n()}function xln(t){return Pje.add(t),()=>Pje.delete(t)}function kwt(){return tjt}const wln=()=>()=>{},Awt=()=>null;function Tln(){const t=Yv(),n=Vsn();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Ye.useSyncExternalStore(n?.subscribe??wln,n?.getSnapshot??Awt,n?.getSnapshot??Awt);const s=ORt(t);if(s==="saved")return null;const c=Fze(t),d=s==="failed",m=d?UYr(t):null,g=d?{label:"Save failed",title:m?`Save failed: ${m} — click to open Console`:"Save failed — click to open Console"}:{label:"Unsaved",title:"Unsaved changes — click to save (Cmd/Ctrl+S)"},S=c?`${g.title} — ${c}`:g.title;return q.jsxs(Ms,{type:"button","data-testid":"save-status","data-save-state":s,variant:"ghost",size:"compact",className:"volter-save-status",onClick:()=>d?_ve():void FRt(t),title:S,children:[q.jsx("span",{className:"volter-save-status-dot"}),g.label]})}function Cln(){Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const t=Qs.counts,n=[{id:"info",icon:R$,label:"message",count:t.info},{id:"warn",icon:QTt,label:"warning",count:t.warn},{id:"error",icon:BTt,label:"error",count:t.error}];return q.jsx("span",{className:"volter-console-status-counts","data-testid":"status-console-counts",children:n.map(s=>q.jsxs(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action volter-console-status-count","data-testid":`status-console-${s.id}`,"data-console-level":s.id,"data-has-count":s.count>0?!0:void 0,"data-has-errors":s.id==="error"&&s.count>0?!0:void 0,onClick:()=>_ve(),title:`${s.count} console ${s.label}${s.count===1?"":"s"} — open Console`,children:[q.jsx(dc,{icon:s.icon,size:"xs"}),s.count]},s.id))})}function Eln(t){return[...t.map(s=>`"${s.worldId}" (${s.kind} / ${s.identity}) — ${s.message}`),"See the Console for the full trace."].join(`
|
|
1400
1400
|
`)}function kln(){const t=Ye.useSyncExternalStore(NRt,VQ);return t.length===0?null:q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-mount-failure","data-status-tone":"danger",onClick:()=>_ve(),title:Eln(t),children:t.length===1?"1 world failed to mount":`${t.length} worlds failed to mount`})}function Aln(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 Dln(){const t=Ye.useSyncExternalStore(_ln,mln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),vln(gR()).finally(()=>s(!1))},[]);return t.length===0?null:q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-asset-materialization","data-status-tone":"danger",onClick:()=>_ve(),title:Aln(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 Pln(){const t=tkr(),n=Yv();if(Ye.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),!t)return null;const s=n.playState,c={stopped:{label:"Play stopped",tone:void 0},playing:{label:"Playing",tone:"success"},paused:{label:"Paused",tone:"warning"}}[s];return q.jsx("span",{className:"volter-status-copy","data-testid":"status-play-state","data-play-state":s,"data-status-tone":c.tone,children:c.label})}function Iln(){Ye.useSyncExternalStore(xln,kwt,kwt);const t=bln();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 Nln(){Ye.useSyncExternalStore(Xye,Skr);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 Oln=Mye();function Rln(){Oln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Iln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:Tln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:Cln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:kln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Dln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Pln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:Nln}))})}const Fln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-6pJucZf5.js"),__vite__mapDeps([266,3,2,4,267,92,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Mln(){const t=Yv(),n=eMt(),s=mve();return Ye.use(zsn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),fcn(t),Ye.useEffect(()=>Rln(),[]),Ye.useEffect(()=>Dcn(),[]),Ye.useEffect(()=>Tsn(n),[n]),Ye.useEffect(()=>scn(),[]),Ye.useEffect(()=>Tkr(),[t]),Ye.useEffect(()=>Ptn(),[t]),Ye.useEffect(()=>H4r(n),[n]),Ye.useEffect(()=>icn(t,s),[t,s]),Ye.useEffect(()=>AYr(t),[t]),Ye.useEffect(()=>_en(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),c=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:c}))),[]),q.jsxs(q.Fragment,{children:[q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(Fln,{store:t})}),q.jsx(Vcn,{}),q.jsx(ucn,{}),q.jsx(pln,{})]})}const jln=3,Lln=1e4,Bln=4e3;function $ln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Dwt(t,n,s,c){if(!n.ok){const d=s==="open";return{...t,lastIdentity:null,consecutiveFailures:t.consecutiveFailures+1,unbackedFailures:d?0:t.unbackedFailures+1,darkSince:d?c:t.darkSince}}return{bootIdentity:t.bootIdentity??n.identity,lastIdentity:n.identity,consecutiveFailures:0,unbackedFailures:0,darkSince:c}}function qln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function rjt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function zln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!rjt(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 Vln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Uln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&rjt(t,s)?"resume":Vln(t,s)?"reload":t?.project?"none":"offer-reload"}const eye="volter.editor.orphaned-tab.v1";function Jln(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 Wln(t){return JSON.stringify(t)}function Hln(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 Gln=720*60*1e3;function Kln(t,n){const s=n-t.at;return s>=0&&s<=Gln}function WVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Xln(t,n=WVe()){try{n?.setItem(eye,Wln(t))}catch{}}function Yln(t=WVe()){if(!t)return null;try{const n=Jln(t.getItem(eye));return t.removeItem(eye),n}catch{return null}}function Zln(t=WVe()){try{t?.removeItem(eye)}catch{}}function Qln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function eun(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>yrn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function tun(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef($ln(Date.now())),c=Ye.useRef(null),d=Ye.useRef(!1);return Ye.useEffect(()=>{let m=!1,g=null;const S=()=>{g!==null&&(clearInterval(g),g=null)},k=async pe=>{c.current=pe,BRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Xln({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 eun()},A=(pe,ue,Ce)=>{switch(Uln(s.current.bootIdentity,pe)){case"resume":{c.current=null,cZr(),Zln(),s.current=Dwt(s.current,pe,ue,Ce),n({kind:"quiet"});return}case"reload":if(d.current)return;window.location.reload();return;case"offer-reload":n(De=>De.kind==="void"&&!De.reloadOffered?{...De,reloadOffered:!0}:De);return;default:return}},F=async()=>{const pe=await UZr(),ue=kZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Dwt(s.current,pe,ue,Ce);const De=zln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:jln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:Lln,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=qln(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,Bln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{Sln(t);const m=Qln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){ABe(kOe);return}if(t.kind==="degraded"){s$({id:kOe,tone:"warning",sticky:!0,...t.subject==="busy"?{title:"Editor server is slow to answer.",detail:"Still connected — this window keeps working, and this clears itself when the server catches up."}:{title:"This window's editor server has stopped.",detail:"You chose to keep reading it — nothing here saves, and it will not reconnect on its own. Reload once the editor is served here again.",actions:[{label:"Reload",primary:!0,run:()=>window.location.reload()}]}});return}s$({id:kOe,tone:"error",sticky:!0,title:"Editor disconnected.",detail:t.reason==="taken-over"?`${m?`${m}'s`:"This project's"} editor is now running in another window. This one has yielded.`:`This window's editor server has stopped — nothing here is saved, and a running game has left its room. Reopen with ${DB(`edit ${m??"<project>"}`)}${m?`, or leave this window open: it reloads by itself when ${m}'s editor is served here again.`:"."}`,onDismiss:()=>{d.current||g()},actions:[...t.reloadOffered?[{label:"Reload",primary:!0,run:()=>window.location.reload()}]:[],{label:"Close window",run:()=>window.close()},{label:"Continue anyway",run:g}]})},[t]),null}const kOe="editor-lease",run="0.5.133",nun={version:run},iun="0.5.133",oun={version:iun},njt=oun.version,sun=nun.version;function aun({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?aPt(t.recovery.verbs):null,[m,g]=Ye.useState(!1);return Ye.useEffect(()=>{if(!m)return;const S=window.setTimeout(()=>g(!1),1600);return()=>window.clearTimeout(S)},[m]),q.jsxs("div",{role:"alert",className:"volter-error-card volter-shell-rise",children:[q.jsx("div",{className:"volter-error-card-icon","aria-hidden":"true",children:q.jsx(dc,{icon:dee})}),q.jsxs("div",{className:"volter-error-card-body",children:[c?q.jsx("h1",{className:"volter-error-card-title",children:t.recovery?.title??"Couldn’t open this project"}):t.recovery&&q.jsx("div",{className:"volter-error-card-title",children:t.recovery.title}),t.recovery&&q.jsx("p",{className:"volter-error-card-guidance",children:t.recovery.guidance}),q.jsx("div",{className:"volter-error-card-message","data-testid":c?"project-startup-error-details":void 0,children:t.message}),d&&q.jsxs("div",{children:[c&&q.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),q.jsxs("div",{className:"volter-error-card-command",children:[q.jsx("code",{"data-testid":c?"project-startup-recovery-command":"project-screen-recovery-command",children:d}),q.jsxs(Ms,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(d),g(!0)},children:[q.jsx(dc,{icon:m?cLe:Y0r,"aria-hidden":"true"}),m?"Copied":"Copy"]})]})]}),q.jsxs("div",{className:"volter-error-card-actions",children:[s&&q.jsx(Ms,{type:"button",variant:"primary",className:"volter-shell-cta","data-testid":"retry-project-detection",onClick:s,children:"Retry"}),n&&q.jsx(Ms,{type:"button",variant:"ghost",className:"volter-shell-cta","aria-label":"Dismiss error",onClick:n,children:"Dismiss"})]})]})]})}function Ije({error:t,report:n,onRetry:s}){return q.jsx("div",{className:"volter-shell","data-testid":"project-detection-error",children:q.jsxs("div",{className:"volter-shell-container","data-view":"startup-error",children:[q.jsx("header",{className:"volter-shell-header",children:q.jsxs("span",{className:"volter-shell-brand-static",children:[q.jsx("span",{className:"volter-shell-brand-mark","aria-hidden":"true",children:q.jsx(JVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(aun,{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",njt," · Engine v",sun]})})]})})}function cun({wait:t}={}){return q.jsx("main",{role:"status","aria-live":"polite","aria-label":"Opening project","data-testid":"startup-loading-screen",className:"volter-splash",children:q.jsxs("div",{className:"volter-splash-stack",children:[q.jsx("div",{"aria-hidden":"true",className:"volter-splash-logo",children:q.jsx(JVe,{size:72})}),q.jsx("div",{className:"volter-splash-title",children:mR.name}),q.jsx("div",{"aria-hidden":"true",className:"volter-splash-progress"}),t?q.jsxs(q.Fragment,{children:[q.jsx("div",{className:"volter-splash-status","data-testid":"startup-wait-status",children:`Asking the server which project it serves — ${t.seconds}s`}),q.jsx("div",{className:"volter-splash-note",children:"Still trying. The first boot of a fresh checkout can take a while, so this keeps asking until the server answers."}),t.detail?q.jsxs("div",{className:"volter-splash-note",children:["Last attempt: ",t.detail]}):null]}):q.jsx("div",{className:"volter-splash-status",children:"Opening project…"})]})})}class lun extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){Qs.error(`Editor chrome crashed while the command listener stayed attached: ${n.message}
|
|
1401
|
+
`)}function Dln(){const t=Ye.useSyncExternalStore(_ln,mln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),vln(gR()).finally(()=>s(!1))},[]);return t.length===0?null:q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-asset-materialization","data-status-tone":"danger",onClick:()=>_ve(),title:Aln(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 Pln(){const t=tkr(),n=Yv();if(Ye.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),!t)return null;const s=n.playState,c={stopped:{label:"Play stopped",tone:void 0},playing:{label:"Playing",tone:"success"},paused:{label:"Paused",tone:"warning"}}[s];return q.jsx("span",{className:"volter-status-copy","data-testid":"status-play-state","data-play-state":s,"data-status-tone":c.tone,children:c.label})}function Iln(){Ye.useSyncExternalStore(xln,kwt,kwt);const t=bln();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 Nln(){Ye.useSyncExternalStore(Xye,Skr);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 Oln=Mye();function Rln(){Oln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Iln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:Tln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:Cln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:kln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Dln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Pln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:Nln}))})}const Fln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-CcN-v_vU.js"),__vite__mapDeps([266,3,2,4,267,92,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Mln(){const t=Yv(),n=eMt(),s=mve();return Ye.use(zsn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),fcn(t),Ye.useEffect(()=>Rln(),[]),Ye.useEffect(()=>Dcn(),[]),Ye.useEffect(()=>Tsn(n),[n]),Ye.useEffect(()=>scn(),[]),Ye.useEffect(()=>Tkr(),[t]),Ye.useEffect(()=>Ptn(),[t]),Ye.useEffect(()=>H4r(n),[n]),Ye.useEffect(()=>icn(t,s),[t,s]),Ye.useEffect(()=>AYr(t),[t]),Ye.useEffect(()=>_en(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),c=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:c}))),[]),q.jsxs(q.Fragment,{children:[q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(Fln,{store:t})}),q.jsx(Vcn,{}),q.jsx(ucn,{}),q.jsx(pln,{})]})}const jln=3,Lln=1e4,Bln=4e3;function $ln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Dwt(t,n,s,c){if(!n.ok){const d=s==="open";return{...t,lastIdentity:null,consecutiveFailures:t.consecutiveFailures+1,unbackedFailures:d?0:t.unbackedFailures+1,darkSince:d?c:t.darkSince}}return{bootIdentity:t.bootIdentity??n.identity,lastIdentity:n.identity,consecutiveFailures:0,unbackedFailures:0,darkSince:c}}function qln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function rjt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function zln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!rjt(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 Vln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Uln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&rjt(t,s)?"resume":Vln(t,s)?"reload":t?.project?"none":"offer-reload"}const eye="volter.editor.orphaned-tab.v1";function Jln(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 Wln(t){return JSON.stringify(t)}function Hln(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 Gln=720*60*1e3;function Kln(t,n){const s=n-t.at;return s>=0&&s<=Gln}function WVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Xln(t,n=WVe()){try{n?.setItem(eye,Wln(t))}catch{}}function Yln(t=WVe()){if(!t)return null;try{const n=Jln(t.getItem(eye));return t.removeItem(eye),n}catch{return null}}function Zln(t=WVe()){try{t?.removeItem(eye)}catch{}}function Qln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function eun(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>yrn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function tun(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef($ln(Date.now())),c=Ye.useRef(null),d=Ye.useRef(!1);return Ye.useEffect(()=>{let m=!1,g=null;const S=()=>{g!==null&&(clearInterval(g),g=null)},k=async pe=>{c.current=pe,BRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Xln({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 eun()},A=(pe,ue,Ce)=>{switch(Uln(s.current.bootIdentity,pe)){case"resume":{c.current=null,cZr(),Zln(),s.current=Dwt(s.current,pe,ue,Ce),n({kind:"quiet"});return}case"reload":if(d.current)return;window.location.reload();return;case"offer-reload":n(De=>De.kind==="void"&&!De.reloadOffered?{...De,reloadOffered:!0}:De);return;default:return}},F=async()=>{const pe=await UZr(),ue=kZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Dwt(s.current,pe,ue,Ce);const De=zln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:jln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:Lln,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=qln(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,Bln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{Sln(t);const m=Qln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){ABe(kOe);return}if(t.kind==="degraded"){s$({id:kOe,tone:"warning",sticky:!0,...t.subject==="busy"?{title:"Editor server is slow to answer.",detail:"Still connected — this window keeps working, and this clears itself when the server catches up."}:{title:"This window's editor server has stopped.",detail:"You chose to keep reading it — nothing here saves, and it will not reconnect on its own. Reload once the editor is served here again.",actions:[{label:"Reload",primary:!0,run:()=>window.location.reload()}]}});return}s$({id:kOe,tone:"error",sticky:!0,title:"Editor disconnected.",detail:t.reason==="taken-over"?`${m?`${m}'s`:"This project's"} editor is now running in another window. This one has yielded.`:`This window's editor server has stopped — nothing here is saved, and a running game has left its room. Reopen with ${DB(`edit ${m??"<project>"}`)}${m?`, or leave this window open: it reloads by itself when ${m}'s editor is served here again.`:"."}`,onDismiss:()=>{d.current||g()},actions:[...t.reloadOffered?[{label:"Reload",primary:!0,run:()=>window.location.reload()}]:[],{label:"Close window",run:()=>window.close()},{label:"Continue anyway",run:g}]})},[t]),null}const kOe="editor-lease",run="0.5.135",nun={version:run},iun="0.5.135",oun={version:iun},njt=oun.version,sun=nun.version;function aun({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?aPt(t.recovery.verbs):null,[m,g]=Ye.useState(!1);return Ye.useEffect(()=>{if(!m)return;const S=window.setTimeout(()=>g(!1),1600);return()=>window.clearTimeout(S)},[m]),q.jsxs("div",{role:"alert",className:"volter-error-card volter-shell-rise",children:[q.jsx("div",{className:"volter-error-card-icon","aria-hidden":"true",children:q.jsx(dc,{icon:dee})}),q.jsxs("div",{className:"volter-error-card-body",children:[c?q.jsx("h1",{className:"volter-error-card-title",children:t.recovery?.title??"Couldn’t open this project"}):t.recovery&&q.jsx("div",{className:"volter-error-card-title",children:t.recovery.title}),t.recovery&&q.jsx("p",{className:"volter-error-card-guidance",children:t.recovery.guidance}),q.jsx("div",{className:"volter-error-card-message","data-testid":c?"project-startup-error-details":void 0,children:t.message}),d&&q.jsxs("div",{children:[c&&q.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),q.jsxs("div",{className:"volter-error-card-command",children:[q.jsx("code",{"data-testid":c?"project-startup-recovery-command":"project-screen-recovery-command",children:d}),q.jsxs(Ms,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(d),g(!0)},children:[q.jsx(dc,{icon:m?cLe:Y0r,"aria-hidden":"true"}),m?"Copied":"Copy"]})]})]}),q.jsxs("div",{className:"volter-error-card-actions",children:[s&&q.jsx(Ms,{type:"button",variant:"primary",className:"volter-shell-cta","data-testid":"retry-project-detection",onClick:s,children:"Retry"}),n&&q.jsx(Ms,{type:"button",variant:"ghost",className:"volter-shell-cta","aria-label":"Dismiss error",onClick:n,children:"Dismiss"})]})]})]})}function Ije({error:t,report:n,onRetry:s}){return q.jsx("div",{className:"volter-shell","data-testid":"project-detection-error",children:q.jsxs("div",{className:"volter-shell-container","data-view":"startup-error",children:[q.jsx("header",{className:"volter-shell-header",children:q.jsxs("span",{className:"volter-shell-brand-static",children:[q.jsx("span",{className:"volter-shell-brand-mark","aria-hidden":"true",children:q.jsx(JVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(aun,{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",njt," · Engine v",sun]})})]})})}function cun({wait:t}={}){return q.jsx("main",{role:"status","aria-live":"polite","aria-label":"Opening project","data-testid":"startup-loading-screen",className:"volter-splash",children:q.jsxs("div",{className:"volter-splash-stack",children:[q.jsx("div",{"aria-hidden":"true",className:"volter-splash-logo",children:q.jsx(JVe,{size:72})}),q.jsx("div",{className:"volter-splash-title",children:mR.name}),q.jsx("div",{"aria-hidden":"true",className:"volter-splash-progress"}),t?q.jsxs(q.Fragment,{children:[q.jsx("div",{className:"volter-splash-status","data-testid":"startup-wait-status",children:`Asking the server which project it serves — ${t.seconds}s`}),q.jsx("div",{className:"volter-splash-note",children:"Still trying. The first boot of a fresh checkout can take a while, so this keeps asking until the server answers."}),t.detail?q.jsxs("div",{className:"volter-splash-note",children:["Last attempt: ",t.detail]}):null]}):q.jsx("div",{className:"volter-splash-status",children:"Opening project…"})]})})}class lun extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){Qs.error(`Editor chrome crashed while the command listener stayed attached: ${n.message}
|
|
1402
1402
|
${s.componentStack??""}`,"editor")}render(){return this.state.error?q.jsx(Ije,{error:{message:`The editor surface crashed: ${this.state.error.message}`},onRetry:()=>this.setState({error:null})}):this.props.children}}function p_e({children:t}){return q.jsxs(q.Fragment,{children:[t,q.jsx(tun,{})]})}function uun(t){const n=t instanceof Error?t.message:String(t);return t instanceof AC?{status:"error",message:n,recovery:t.recovery}:t instanceof T$e?{status:"error",message:n,report:t.report}:{status:"error",message:n}}const fun=8e3;function dun(t=jen,n=fun){return new Promise((s,c)=>{const d=window.setTimeout(()=>{c(new XPt(n))},n);t().then(m=>{window.clearTimeout(d),s(m)},m=>{window.clearTimeout(d),c(m)})})}const pun=3;function _un(){const[t,n]=Ye.useState({status:"detecting",waitingSince:null}),[s,c]=Ye.useState(0);Ye.useEffect(()=>Rwr(),[]),Ye.useEffect(()=>AZr(),[]),Ye.useEffect(()=>gZr(()=>c(k=>k+1)),[]),Ye.useEffect(()=>{let k=!1,A,F=0;const D=Date.now();n({status:"detecting",waitingSince:null});const J=()=>{dun().then($=>{k||n($?{status:"ready",project:$}:{status:"no-project"})},$=>{if(k)return;F+=1;const G=I4r($,F);if(G.kind==="terminal"){const pe=uun($),ue=pe.recovery&&"verbs"in pe.recovery?aPt(pe.recovery.verbs):null;Qs.error(`Startup failed: ${pe.message}${ue?` Run: ${ue}`:""}`,"editor"),n(pe);return}const se=$ instanceof Error?$.message:String($);F===pun&&Qs.error(`Project detection has failed ${F} times and is still retrying: ${se}`,"editor"),n({status:"detecting",waitingSince:D,lastError:se}),A=window.setTimeout(J,G.delayMs)})};return J(),()=>{k=!0,A!==void 0&&window.clearTimeout(A)}},[s]);const d=t.status==="detecting"?t.waitingSince:null,[m,g]=Ye.useState(0);Ye.useEffect(()=>{if(d===null){g(0);return}const k=()=>g(Math.max(0,Math.round((Date.now()-d)/1e3)));k();const A=window.setInterval(k,1e3);return()=>window.clearInterval(A)},[d]),Ye.useEffect(()=>{t.status!=="detecting"&&RZr(t.status==="ready"?"project":"no-project")},[t.status]);const S=t.status==="ready"?t.project.config.name:t.status==="error"?"Couldn't open project":null;return Ye.useEffect(()=>{document.title=qPt(S)},[S]),t.status==="detecting"?q.jsx(p_e,{children:q.jsx(cun,{wait:t.waitingSince===null?void 0:{seconds:m,detail:t.lastError}})}):t.status==="no-project"?q.jsx(p_e,{children:q.jsx(Ije,{error:{message:`This window has no project open. A session serves one project: open a folder that carries a volter.project.json, or start one from a terminal — ${DB("edit <folder>")}.`},onRetry:()=>c(k=>k+1)})}):t.status==="error"?q.jsx(p_e,{children:q.jsx(Ije,{error:{message:t.message,...t.recovery?{recovery:t.recovery}:{}},report:t.report,onRetry:()=>c(k=>k+1)})}):q.jsx(p_e,{children:q.jsx(van,{children:q.jsx(lun,{children:q.jsx(Mln,{})})})})}function HVe(t){Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Eee,AD,AD),Ye.useSyncExternalStore(Fye,uN,uN),Ye.useSyncExternalStore(hon,qxt,qxt),Ye.useSyncExternalStore(U$,vhe,vhe),Ye.useSyncExternalStore(SEr,Wht,Wht),Ye.useSyncExternalStore(Ein,Oxt,Oxt),Ye.useSyncExternalStore(K0e,zQ,zQ),Ye.useSyncExternalStore(O3t,yRe,yRe),Ye.useSyncExternalStore(uTr,bht,bht),Ye.useSyncExternalStore(tEr,zht,zht);const[,n]=Ye.useReducer(d=>d+1,0),{adapter:s}=Cm(t),c=Ye.useRef({broad:t.getSnapshot(),shell:t.getShellSnapshot()});return c.current={broad:t.getSnapshot(),shell:t.getShellSnapshot()},Ye.useEffect(()=>{const d=s.subscribe;if(d)return Ig({adapter:s,seam:"editor.subscribe",stage:"effect",detail:"the active Inspector subscribed to adapter-owned changes",run:()=>d.call(s,()=>{const m=c.current,g={broad:t.getSnapshot(),shell:t.getShellSnapshot()};c.current=g,g.broad===m.broad&&g.shell===m.shell&&n()})})},[s,t]),fve(t)}let DI=null,ijt=0;const Nje=new Set;function mun(){return DI}function Pwt(){return ijt}function hun(t){return Nje.add(t),()=>Nje.delete(t)}function Iwt(t){if(!(DI===t||DI!==null&&t!==null&&DI.x===t.x&&DI.y===t.y&&DI.width===t.width&&DI.height===t.height)){DI=t,ijt+=1;for(const s of Nje)s()}}function gun(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 ojt=Ye.createContext(null);function yun({actions:t,children:n}){return q.jsx(ojt.Provider,{value:t,children:n})}function vun(){return Ye.useContext(ojt)}function RC(t,n){return{...n,iconName:t}}const bun=RC("outliner-object",aR),Sun=RC("outliner-light",sLe),xun=RC("outliner-camera",cye),wun=RC("outliner-audio",H0r),AOe=RC("outliner-data",D0r),Nwt=RC("outliner-mesh",aR),Tun={three:bun,react:aLe,canvas:oCt,scene:_Le,mesh:Nwt,"skinned-mesh":Nwt,"mesh-data":AOe,"three-source":AOe,"model-asset":AOe,light:Sun,camera:xun,audio:wun,"reflection-probe":rCt,group:WOe,object:zTt,component:GB,img:iB,a:N0r,ul:vZ,ol:vZ,li:vZ,button:UOe,sprite:iB,animatedsprite:XTt,nineslicesprite:iB,tilingsprite:iB,text:K0r,graphics:UOe,container:WOe},Cun=RC("outliner-render-on",cye),Eun=RC("outliner-render-off",k0r),kun=RC("outliner-exclude-on",A0r),Aun=RC("outliner-exclude-off",UOe),Dun=/^blender-[a-z0-9-]+$/;function XZ(t,n=zTt){const s=Tun[t];return s||(Dun.test(t)?RC(t,n):n)}const Pun=new Set(["mesh-data","blender-material-data","blender-shapekey-data","blender-texture-data","blender-image-data"]),Iun=["blender-outliner-data-","blender-light-","blender-lightprobe-"];function sjt(t){return t===void 0?!1:Pun.has(t)?!0:Iun.some(n=>t.startsWith(n))}function Oje(t){return t.body.kind==="fields"?q.jsx(J9t,{fields:t.body.fields,io:t.body.io}):t.body.render()}function GVe({action:t}){return q.jsx(pm,{"data-testid":t.id,"aria-label":t.title,title:t.title,"aria-pressed":t.pressed,disabled:t.disabled,onClick:t.run,children:t.icon&&q.jsx(dc,{icon:t.icon})})}function KVe(t){return t.related.find(n=>n.id.startsWith("definition:"))??null}function Nun(t){return t.related.filter(n=>!n.id.startsWith("creation-site:")&&!n.id.startsWith("definition:"))}function XVe({link:t}){return q.jsxs(Ms,{variant:"secondary",size:"compact","data-testid":"inspector-open-definition",title:t.title,onClick:t.open,style:{display:"inline-flex",alignItems:"center",gap:4,flexShrink:0},children:[q.jsx(dc,{icon:evr}),q.jsx("span",{style:{maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title})]})}function ajt({subject:t}){const n=Nun(t);return n.length===0?null:q.jsx("div",{"data-testid":"inspector-related-subjects",style:{display:"flex",flexWrap:"wrap",gap:4,padding:"6px 8px"},children:n.map(s=>q.jsx(Ms,{variant:"ghost",onClick:s.open,title:s.title,children:s.title},s.id))})}function Rje(t){const n=m4t(t.iconName);if(n)return`${n.path}|${n.tonedPath??""}`;const s=t.icon[4];return Array.isArray(s)?s.join("|"):s}function cjt({subject:t,onJump:n}){const s=q9t(t);return Ye.useSyncExternalStore(CBe,uhe,uhe),s.length<5||new Set(s.map(c=>Rje(c.icon))).size<3?null:q.jsx("div",{className:"volter-inspector-icon-strip",role:"toolbar","aria-label":"Sections","data-testid":"inspector-section-strip",children:s.map(c=>q.jsx(pm,{size:"compact","data-testid":`section-icon-${c.id}`,"aria-label":c.title,title:c.title,onClick:()=>n(c.id),children:q.jsx(dc,{icon:c.icon})},c.id))})}function Oun({render:t,glyph:n,subjectKey:s}){const c=uve(s)?t:null;return c?q.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none"},children:c("thumbnail")}):q.jsx(dc,{icon:n})}function YVe({subject:t}){const n=t.identity;if(!n)return null;const s=[n.kindLabel,n.note?.text].filter(Boolean).join(" — ");return n.rename.readOnly?q.jsx("div",{"data-testid":"ingest-name","data-readonly":"true",...s?{title:s}:{},style:{flex:1,minWidth:0,fontSize:"var(--volter-font-md)",fontWeight:600,color:Go.content.primary,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t.title}):q.jsx(jRe,{"data-testid":"ingest-name","aria-label":"Name",value:t.title,onCommit:c=>{c.trim()!==""&&n.rename.set(c)},"data-emphasis":"strong",...s?{title:s}:{},style:{flex:1,minWidth:0}})}function ljt({subject:t}){const n=t.identity;if(!n)return q.jsxs("div",{style:{padding:12},children:[q.jsx("div",{style:{fontSize:"var(--volter-font-md)",fontWeight:600},children:t.title}),t.hint&&q.jsx("div",{"data-testid":"inspector-subject-hint",style:{marginTop:4,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:t.hint})]});const s=KVe(t);return q.jsxs("div",{className:"volter-inspector-identity",style:{padding:`${G0[1]} ${G0[4]}`,borderBottom:"1px solid var(--volter-structural-divider)"},children:[q.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center"},children:[q.jsx(YVe,{subject:t}),n.kindLabel&&q.jsx("span",{"data-testid":"inspector-kind-label",style:{fontSize:"var(--volter-font-base)",color:Go.content.dim,whiteSpace:"nowrap"},children:n.kindLabel}),OBe(t,"identity").map(c=>q.jsx(GVe,{action:c},c.id)),s&&q.jsx(XVe,{link:s})]}),n.document&&q.jsx("div",{"data-testid":"inspector-document-path","data-document-path":n.document.path,...n.document.title?{title:n.document.title}:{},style:{marginTop:G0[1],fontSize:"var(--volter-font-base)",color:Go.content.muted,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",direction:"rtl",textAlign:"left"},children:q.jsx("bdi",{children:n.document.path})}),t.alsoSelected?q.jsx("div",{"data-testid":"inspector-also-selected",style:{marginTop:6,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:`${t.alsoSelected+1} selected — fields edit this one, the gizmo moves all`}):null,n.note?.text&&q.jsx("div",{"data-testid":"inspector-subject-note",style:{marginTop:6,fontSize:"var(--volter-font-base)",color:Go.content.dim},children:n.note.text})]})}function Run({subject:t}){const n=t.identity;if(!n)return q.jsx(ljt,{subject:t});const s=KVe(t),c=n.kind?XZ(n.kind,tye(t)):tye(t),d=t.title||n.kindLabel||"",m=[n.kindLabel,n.document?.path,n.document?.title].filter(Boolean).join(" — ");return q.jsxs("div",{className:"volter-inspector-identity","data-volter-identity-layout":"properties",children:[q.jsxs("div",{className:"volter-inspector-breadcrumb",children:[q.jsx(dc,{icon:c,tone:"primary"}),q.jsx("span",{className:"volter-inspector-breadcrumb-chain","data-testid":"inspector-document-path",...n.document?{"data-document-path":n.document.path}:{},...m?{title:m}:{},children:q.jsx("bdi",{children:d})}),OBe(t,"identity").map(g=>q.jsx(GVe,{action:g},g.id))]}),q.jsxs("div",{className:"volter-inspector-datablock",children:[q.jsx("span",{className:"volter-inspector-datablock-kind","data-testid":"inspector-kind-label",...n.kindLabel?{title:n.kindLabel}:{},children:q.jsx(dc,{icon:c,tone:"primary"})}),q.jsx(YVe,{subject:t}),s&&q.jsx(XVe,{link:s})]}),t.alsoSelected?q.jsx("div",{"data-testid":"inspector-also-selected",style:{marginTop:G0[3],fontSize:"var(--volter-font-base)",color:Go.content.dim},children:`${t.alsoSelected+1} selected — fields edit this one, the gizmo moves all`}):null,n.note?.text&&q.jsx("div",{"data-testid":"inspector-subject-note",style:{marginTop:G0[3],fontSize:"var(--volter-font-base)",color:Go.content.dim},children:n.note.text})]})}function Fun({section:t}){return q.jsx("div",{"data-testid":t.testId,"data-inspector-section":t.id,children:q.jsx(UCr,{label:t.title,icon:t.icon,description:t.description,collapsible:!0,defaultOpen:t.defaultOpen??!0,children:Oje(t)})})}function Mun({subject:t}){const n=Ye.useRef(null),s=c=>{n.current?.querySelector(`[data-inspector-section="${c}"]`)?.scrollIntoView({block:"nearest",behavior:"smooth"})};return q.jsxs("div",{style:{pointerEvents:"auto"},children:[q.jsx(ljt,{subject:t}),q.jsx(cjt,{subject:t,onJump:s}),q.jsx(ajt,{subject:t}),q.jsx("div",{ref:n,children:t.sections.map(c=>q.jsx(Ye.Fragment,{children:q.jsx(Fun,{section:c})},c.id))})]})}const __e=new Map;let Owt=null;function jun({subject:t}){const n=q9t(t),s=__e.get(t.id)??Owt,[c,d]=Ye.useState(null),m=(c&&n.some(k=>k.id===c)?c:null)??(s&&n.some(k=>k.id===s)?s:null)??n.find(k=>k.railDefault)?.id??n[0]?.id??null,g=t.sections.find(k=>k.id===m)??null,S=k=>{d(k),__e.size>200&&__e.clear(),__e.set(t.id,k),Owt=k};return q.jsx("div",{className:"volter-inspector-properties-fill",style:{pointerEvents:"auto"},children:q.jsxs("div",{className:"volter-inspector-properties","data-testid":"inspector-properties",children:[q.jsx("div",{className:"volter-inspector-properties-rail",role:"tablist","aria-orientation":"vertical","aria-label":"Sections",children:n.map((k,A)=>q.jsxs(Ye.Fragment,{children:[A>0&&k.railGroup!==n[A-1]?.railGroup?q.jsx("div",{className:"volter-inspector-properties-rail-separator","data-testid":"properties-tab-separator",role:"presentation"}):null,q.jsx(pm,{size:"compact",role:"tab","aria-selected":k.id===m,"data-testid":`properties-tab-${k.id}`,"aria-label":k.title,title:k.title,onClick:()=>S(k.id),children:q.jsx(dc,{icon:k.icon,size:"xl"})})]},k.id))}),q.jsxs("div",{className:"volter-inspector-properties-body",role:"tabpanel",children:[q.jsx(Run,{subject:t}),q.jsx(ajt,{subject:t}),g?q.jsx("div",{"data-testid":g.testId,"data-inspector-section":g.id,children:Oje(g)}):null,t.sections.filter(k=>k.keepMounted&&k.id!==m).map(k=>q.jsx("div",{"data-inspector-section":k.id,"data-inspector-section-hidden":"true",style:{display:"none"},children:Oje(k)},k.id))]})]})})}function tye(t){const n=t.sections[0]?.icon;return n?Rje(n)===Rje(JOe)?aR:n:aR}function Lun({subject:t,surface:n}){const s=vun(),c=t.sections.find(k=>k.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null,m=KVe(t),g=n?()=>NVe(n,"column"):null,S=t.identity!==null;return q.jsxs("div",{className:"volter-mini-inspector","data-testid":"inspector-panel","data-volter-inspector-presentation":"card",onPointerDown:()=>CR("inspector"),children:[s&&q.jsx(pm,{size:"compact",className:"volter-mini-inspector-minimize","data-testid":"inspector-minimize","aria-label":"Minimize inspector",title:"Minimize inspector",onClick:s.minimize,children:q.jsx(dc,{icon:x0r})}),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(Oun,{render:d?d.render:null,glyph:tye(t),subjectKey:t.id})}),S?q.jsxs("div",{className:"volter-mini-inspector-identity",children:[q.jsx(YVe,{subject:t}),OBe(t,"identity").map(k=>q.jsx(GVe,{action:k},k.id))]}):q.jsx("div",{className:"volter-mini-inspector-identity",children:q.jsx("div",{style:{flex:1,minWidth:0,fontSize:"var(--volter-font-md)",fontWeight:600},children:t.title})}),q.jsx(cjt,{subject:t,onJump:()=>g?.()}),m&&q.jsx("div",{className:"volter-mini-inspector-actions",children:q.jsx(XVe,{link:m})})]})}function Bun({subject:t,onExpand:n,onClear:s}){const c=t.sections.find(m=>m.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null;return q.jsxs("div",{className:"volter-inspector-pill","data-testid":"inspector-pill",children:[q.jsxs("div",{role:"button",tabIndex:0,className:"volter-inspector-pill-open","aria-label":`Expand inspector for ${t.title}`,title:`Expand inspector for ${t.title}`,onClick:n,onKeyDown:m=>{(m.key===" "||m.key==="Enter")&&(m.preventDefault(),n())},children:[q.jsx("span",{className:"volter-inspector-pill-thumb","aria-hidden":"true",children:d?d.render("thumbnail"):q.jsx(dc,{icon:tye(t)})}),q.jsx("span",{className:"volter-inspector-pill-name",children:t.title})]}),s&&q.jsx(pm,{"data-testid":"inspector-fab-clear-selection","aria-label":"Clear selection",title:"Clear selection",onClick:s,children:q.jsx(dc,{icon:lLe})})]})}const m_e=new Map;function Rwt({subject:t,presentation:n,surface:s}){const c=t.id,d=Ye.useCallback(m=>{m&&(m.scrollTop=m_e.get(c)??0)},[c]);return n==="card"?q.jsx(Lun,{subject:t,...s?{surface:s}:{}}):q.jsx(Jye,{name:"Inspector",hideHeader:!0,className:"volter-content-frost","data-testid":"inspector-panel","data-volter-inspector-presentation":n,onPointerDown:()=>CR("inspector"),style:{overflowY:"auto"},ref:d,onScroll:m=>{m_e.size>200&&m_e.clear(),m_e.set(c,m.currentTarget.scrollTop)},children:n==="properties"?q.jsx(jun,{subject:t}):q.jsx(Mun,{subject:t})})}const $un=250;let ujt=0,UY=null;const wme=new Set;function qun(){ujt++;for(const t of wme)t()}function ZVe(t){return wme.add(t),UY===null&&(UY=setInterval(qun,$un)),()=>{wme.delete(t),wme.size===0&&UY!==null&&(clearInterval(UY),UY=null)}}function zun(){return ujt}function fjt(t){return Ye.useSyncExternalStore(ZVe,t,t)}function Vun({presentation:t,surface:n}){const s=vVe(),c=q.jsx("div",{"data-testid":"no-authoring-note",style:{padding:12,color:Go.semantic.warning,fontSize:"var(--volter-font-md)",lineHeight:1.5},children:s!==null?q.jsxs(q.Fragment,{children:[q.jsx("strong",{children:"Nothing to author."})," ",s]}):q.jsxs(q.Fragment,{children:[q.jsx("strong",{children:"Nothing to author."})," This root's adapter publishes no inspector surface, so there is nothing here to describe or edit. The root is still hosted, sized, and disposed; play it in the Game tab."]})}),d=n?q.jsx("div",{style:{display:"flex",justifyContent:"flex-end",padding:"2px 4px"},children:q.jsx(pm,{size:"compact","data-testid":"inspector-expand","aria-label":"Expand inspector to side panel",title:"Expand inspector to side panel",onClick:()=>NVe(n,"column"),children:q.jsx(dc,{icon:JTt})})}):null;return t==="card"?q.jsxs("div",{className:"volter-mini-inspector","data-testid":"inspector-panel","data-volter-inspector-presentation":"card",onPointerDown:()=>CR("inspector"),children:[d,c]}):q.jsx(Jye,{name:"Inspector (nothing to author)",hideHeader:!0,className:"volter-content-frost","data-testid":"inspector-panel",onPointerDown:()=>CR("inspector"),children:c})}function QVe(){const t=Yv();fjt(()=>Zwr());const n=HVe(t),{adapter:s}=Cm(t);return n.available?s.capabilities.inspectorFields?q.jsx(Rwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):n.subject.identity!==null||n.subject.sections.length>0?q.jsx(Rwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):l$()?q.jsx(Vun,{presentation:n.presentation,surface:n.surface}):null:null}function Uun({surface:t}){return q.jsx(Jye,{name:"Inspector",hideHeader:!0,"data-testid":"inspector-shown-as-card",children:q.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"var(--volter-space-3)",padding:"var(--volter-space-4)",color:Go.content.muted,fontSize:"var(--volter-font-md)",lineHeight:1.5},children:[q.jsx("span",{children:"The inspector for this view is shown as a card in the viewport."}),q.jsx(Ms,{variant:"secondary",size:"compact","data-testid":"inspector-dock-here",onClick:()=>NVe(t,"column"),children:"Show it here"})]})})}const djt=260,pjt=360,aee=16,Jun=200,_jt=220,Fje=54,Wun=52,Hun={maxWidth:djt,maxHeight:pjt,minSize:Jun,margin:aee},Gun={right:aee,bottom:aee},Kun={maxWidth:_jt,maxHeight:Fje,minSize:Fje,margin:aee};function Xun(t,n,s){return gun(t,s?Kun:Hun,n)}function Yun(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(K0e,zQ,zQ),Ye.useSyncExternalStore(hun,Pwt,Pwt);const n=mun(),[s,c]=Ye.useState(!1),{subject:d}=HVe(t),m=Ye.useCallback(()=>{oD();const{adapter:S}=Cm(t);c0(S,[])||t.select(null)},[t]),g=n?Xun(n,Gun,s):null;return q.jsx("div",{style:{position:"absolute",...g?{left:g.left,top:g.top,width:g.width,height:g.height}:{right:aee,bottom:Wun,width:s?_jt:djt,height:s?Fje:pjt},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(Bun,{subject:d,onExpand:()=>c(!1),onClear:m}):q.jsx(yun,{actions:{minimize:()=>c(!0)},children:q.jsx(QVe,{})})})})}let Zun=1;const Fwt=new WeakMap;function Qun(t){if(!t)return 0;const n=Fwt.get(t);if(n!==void 0)return n;const s=Zun++;return Fwt.set(t,s),s}function eUe(t){const n=Y0(t);return n instanceof gy?n.childAdapters().find(c=>c.kind==="three"&&c.adapter.capabilities.transform)?.worldId??null:null}function efn(t){const n=Y0(t);if(!(n instanceof gy))return!0;if(!n.childAdapters().some(d=>d.kind==="three"))return!1;const c=eUe(t);return c===null?!0:!oq(c)}const tfn="/__editor/collaboration",Mwt=["participants","presence","messages","revisions","audit","team-test"];let KI=null;const Mje=new Set,jje=new Set;let jwt=0;function h_e(t){KI=t,JAt(t.revision);for(const n of Mje)n(t);if(t.revision>jwt){jwt=t.revision;for(const n of jje)n(t.revision)}}async function Lje(t,n){const s=await fetch(`${tfn}${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 rfn(){return KI}let g_e=null,y_e=0;function mjt(){if(y_e++,!g_e){const n=jD(),s=g=>{try{h_e(JSON.parse(g.data))}catch{}};let c=!1;const d=()=>{c||(c=!0,Lje("").then(h_e).catch(()=>{}).finally(()=>{c=!1}))},m=g=>{try{const S=JSON.parse(g.data);if(!KI||S.sequence<=KI.sequence)return;if(S.channel!=="presence"){d();return}const k=S.payload;if(typeof k.participantId!="string"||!k.presence)return;h_e({...KI,sequence:S.sequence,participants:KI.participants.map(A=>A.participantId===k.participantId?{...A,presence:k.presence}:A)})}catch{}};n.addEventListener("collaboration-snapshot",s);for(const g of Mwt)n.addEventListener(`collaboration-${g}`,m);Lje("").then(h_e).catch(()=>{}),g_e=()=>{n.removeEventListener("collaboration-snapshot",s);for(const g of Mwt)n.removeEventListener(`collaboration-${g}`,m);n.close()}}let t=!1;return()=>{t||(t=!0,y_e--,y_e<=0&&(y_e=0,g_e?.(),g_e=null))}}function nfn(t){Mje.add(t),KI&&t(KI);const n=mjt();return()=>{Mje.delete(t),n()}}function ewn(t){jje.add(t);const n=mjt();let s=!1;return()=>{s||(s=!0,jje.delete(t),n())}}async function twn(t){await Lje("/presence",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({participantId:Q0e,presence:t})})}const Lwt=500,hjt=()=>{};function ifn(t,n){if(n===hjt)return{hierarchy:t.hierarchy,isComponentRoot:()=>!1,isBuiltInternal:()=>!1,...t.hasInternals?{hasInternals:A=>t.hasInternals(A)}:{},...t.internalChildren?{internalChildren:A=>t.internalChildren(A)}:{}};const s=new Map,c=A=>{const F=s.get(A);if(F!==void 0)return F;const D=[];let J=A,$=!1,G=0;for(;J!==null&&G++<Lwt;){const se=s.get(J);if(se!==void 0){$=se;break}D.push(J);const pe=n(J);if(pe?.componentRoot!==void 0)break;if(pe?.builtInternal===!0){$=!0;break}if(pe?.authoredEntity===!0)break;J=t.hierarchy.node(J)?.parentId??null}for(const se of D)s.set(se,$);return $},d=A=>n(A)?.componentRoot!==void 0,m=(A,F=0)=>{if(F>Lwt)return[];const D=[];for(const J of A.childIds){if(!c(J)){D.push(J);continue}const $=t.hierarchy.node(J);$&&D.push(...m($,F+1))}return D},g=A=>A.childIds.filter(F=>c(F)),S=A=>{if(!A)return null;const F=n(A.id)?.componentRoot,D=m(A),J=D.length===A.childIds.length&&D.every(($,G)=>$===A.childIds[G]);return F===void 0&&J?A:{...A,...F===void 0?{}:{role:"component",typeLabel:F},...J?{}:{childIds:D}}};return{hierarchy:{roots:()=>t.hierarchy.roots().flatMap(A=>c(A.id)?m(A).flatMap(F=>{const D=S(t.hierarchy.node(F));return D?[{...D,parentId:A.parentId}]:[]}):[S(A)]),node:A=>S(t.hierarchy.node(A))},isComponentRoot:d,isBuiltInternal:c,hasInternals:A=>{if(t.hasInternals?.(A)===!0)return!0;const F=t.hierarchy.node(A);return F?g(F).length>0:!1},internalChildren:A=>{const F=t.internalChildren?.(A),D=t.hierarchy.node(A),J=D?g(D).flatMap($=>{const G=S(t.hierarchy.node($));return G?[{...G,parentId:A}]:[]}):[];return F===void 0?J.length>0?J:void 0:[...F,...J]}}}function ofn(t,n,s){for(const c of n)c.more||s(c.node.id)&&t.set(c.node.id,!1);return t}function sfn(t,n){for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n)return s.worldId;return t.ownerOf(n)}function afn(t,n,s){if(!(t instanceof gy))return!0;const c=sfn(t,s);return c===null?!1:n.every(d=>t.ownerOf(d)===c)}const cfn="This world's structure comes from its own source, which the editor can't rewrite here — reparenting is not wired for it.",lfn="That row is part of a component instance's own output, not authored content. Drop onto the instance itself to place relative to it.";function Bwt(t){return t.hasStructureWritePath?t.targetIsInternal?lfn:null:cfn}const ufn=400,gjt="volter.projectLocalState";let JB=null,JY=null,ER={},Bje=!1,WB=null;function yjt(){return Em()}function lte(){const t=yjt();if(JB===t)return Promise.resolve();if(JY)return JY.then(()=>lte());const n=l$e(),s=n?Promise.resolve(ffn(n.get(gjt))):JZr();return JY=Promise.all([s,X4t()]).then(([c])=>{ER=c&&typeof c=="object"?{...c}:{},JB=t}).catch(()=>{ER={},JB=t}).finally(()=>{JY=null}),JY}function ute(){return JB===yjt()}function Cve(t){if(ute())return ER[t]}function tUe(t=!1){if(WB!==null&&(clearTimeout(WB),WB=null),!Bje)return;Bje=!1;const n=l$e();n?n.store(gjt,JSON.stringify(ER)):WZr(ER,{leaving:t})}function ffn(t){if(!t)return{};try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}catch{return{}}}function Eve(t,n){const s=()=>{ER={...ER,[t]:n},Bje=!0,WB!==null&&clearTimeout(WB),WB=setTimeout(tUe,ufn)};ute()?s():lte().then(s)}function dfn(){tUe(!0)}IC(()=>{wf()&<e()});o3r(()=>{JB!==null&&(tUe(),JB=null,wf()&<e())});typeof window<"u"&&window.addEventListener("pagehide",dfn);const vjt="hierarchyExpansion",O$=new Map;let $wt=!1;function rUe(){if($wt||!ute())return;$wt=!0;const t=Cve(vjt)??{};for(const[n,s]of Object.entries(t))O$.set(n,new Map(Object.entries(s)))}function bjt(){const t={};for(const[n,s]of O$)t[n]=Object.fromEntries(s);Eve(vjt,t)}function pfn(t,n){return rUe(),O$.get(t)?.get(n)}function qwt(t,n){rUe();let s=O$.get(t);s||(s=new Map,O$.set(t,s));for(const[c,d]of n)s.set(c,d);bjt()}function _fn(t){rUe(),O$.delete(t),bjt()}let rye=null;const $je=new Set;function mfn(){return rye}function hfn(t){return $je.add(t),()=>{$je.delete(t)}}function Sjt(t){if(rye!==t){rye=t;for(const n of $je)n()}}function gfn(t){rye===t&&Sjt(null)}const yfn=500,zwt=new Set,cee=new Set;function rwn(t){return cee.has(t)}function nwn(t){return cee.delete(t)?!1:(cee.add(t),!0)}function iwn(){return cee}function vfn(t,n=cee){if(typeof t.internalChildren!="function"||n.size===0)return{hierarchy:t.hierarchy,isInternal:()=>!1,revealRootIds:zwt,internalIds:zwt};const s=new Map,c=new Map,d=new Set,m=(S,k)=>{if(k>yfn||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 bfn(t,n){for(const s of n.internalIds)t.set(s,!1);for(const s of n.revealRootIds)t.set(s,!0);return t}const nye=20,Sfn="__more__:",xjt=500;function xfn(t,n,s){return t?Math.max(nye,n.get(s)??nye):Number.POSITIVE_INFINITY}function wfn(t,n,s,c,d){return{node:{id:`${Sfn}${t}`,label:"",kind:"object",parentId:s,childIds:[]},depth:n,pathKey:`${t}/__more__`,hasChildren:!1,hiddenByCollapse:c,more:{parentPathKey:t,hidden:d}}}function Vwt(t,n,s=new Map,c=!1){const d=[],m=new Set,g=(S,k,A,F)=>{if(m.has(S.id)||k>xjt)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,xfn(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(wfn(A,k+1,S.id,$,S.childIds.length-G))};return t.roots().forEach((S,k)=>{g(S,0,`r${k}`,!1)}),d}function Tfn(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>xjt){D=!1;return}F.add($.id),A.push({node:$,depth:G,pathKey:se,hasChildren:$.childIds.length>0,hiddenByCollapse:!1});for(let pe=0;pe<$.childIds.length;pe+=1){const ue=t.node($.childIds[pe]);ue&&J(ue,G+1,`${se}.${String(pe)}`)}}};return J(k.node,k.row.depth,k.row.pathKey),D?A:null},S=[...n];for(let k=m.length-1;k>=0;k-=1){const A=m[k],F=g(A);if(F===null)return null;S.splice(A.start,A.end-A.start,...F)}return S}function Uwt(t){return`${t.pathKey}:${t.node.id}`}function Cfn(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 Efn(t,n){if(t.length!==n.length)return!1;for(let s=0;s<t.length;s+=1)if(!Object.is(t[s],n[s]))return!1;return!0}class DOe{#e=null;#t;computeCount=0;get current(){return this.#t}read(n,s){if(this.#e!==null&&Efn(this.#e,n))return this.#t;const c=s(this.#t);return this.#e=n,this.#t=c,this.computeCount+=1,c}}class kfn{#e=new DOe;#t=new DOe;#i=new DOe;#n;#r=Number.NEGATIVE_INFINITY;structural(n,s){const[c,d]=n;if(c===this.#n&&typeof d=="number"&&d<this.#r&&this.#e.current!==void 0)return this.#e.current;const m=this.#e.read(n,s);return c!==this.#n&&(this.#n=c,this.#r=Number.NEGATIVE_INFINITY),typeof d=="number"&&(this.#r=Math.max(this.#r,d)),m}collapsed(n,s){return this.#t.read(n,s)}browse(n,s){return this.#i.read(n,s)}get counts(){return{structural:this.#e.computeCount,collapsed:this.#t.computeCount,browse:this.#i.computeCount}}}function Afn(t){const n=new Map,s=new Map;for(const c of t){if(c.more)continue;n.set(c.pathKey,c.node.id);const d=s.get(c.node.id);d?d.push(c.pathKey):s.set(c.node.id,[c.pathKey])}return{nodeIdByPathKey:n,pathKeysByNodeId:s}}function nUe(t){const n=t.split("."),s=[];for(let c=1;c<n.length;c++)s.push(n.slice(0,c).join("."));return s}function Jwt(t,n){const s=new Set;for(const c of n)for(const d of t.pathKeysByNodeId.get(c)??[])for(const m of nUe(d)){const g=t.nodeIdByPathKey.get(m);g&&s.add(g)}return s}function Dfn(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 Pfn(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 Ifn=["position","rotation","scale"];function Nfn(t){const n=t.role==="component"&&!!t.typeLabel;return{label:t.label,typeSuffix:n?t.typeLabel:null}}const iUe={locked:!1};function Ofn(t){let n;for(const s of Ifn){const c=t(s);if(!c||c.writable)return iUe;s==="position"&&(n=c.reason)}return n===void 0?{locked:!0}:{locked:!0,reason:n}}class Rfn{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?Ofn(S=>m(c,S)):iUe;return this.entries.set(c,g),g}}const Ffn={draggable:!0,renamable:!0,writable:!0,searchable:!0},Mfn={draggable:!1,renamable:!1,writable:!0,searchable:!0},jfn={draggable:!1,renamable:!1,writable:!1,searchable:!1};function oUe(t){return t.internal?jfn:t.structural?Mfn:Ffn}function Lfn(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 Bfn{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?Lfn(n.diagnosticsFor(c)):null;return this.entries.set(c,m),m}}const Tme=new Map;function own(t){return Tme.set(t.documentId,t),()=>{Tme.get(t.documentId)===t&&Tme.delete(t.documentId)}}function $fn(t){return Tme.get(t)??null}function qfn(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 zfn(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 Vfn(t,n){const s=[...n];if(s.length===0)return null;if(t instanceof gy)return zfn(t,s);const c=qfn(t,s);return c?{...c,adapter:t}:null}function Ufn(t,n){return!n||n.worldId!==null&&oq(n.worldId)?!1:n.kind!=="three"||n.worldId===null?!0:eUe(t)===n.worldId}const YZ=new Map;let wjt=0;const qje=new Set;function Wwt(){wjt++;for(const t of[...qje])t()}function swn(t,n){const s={store:n};return YZ.set(t,s),Wwt(),()=>{YZ.get(t)===s&&(YZ.delete(t),Wwt())}}function Jfn(t){return t===null?null:YZ.get(t)?.store??null}function awn(t){for(const[n,s]of YZ)if(s.store===t)return n;return null}function cwn(t){return qje.add(t),()=>{qje.delete(t)}}function lwn(){return wjt}const rB=new Map;function uwn(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 Tjt={count:0,surface:null,visible:!1};function Wfn(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function Hwt(t){switch(t){case"scene":case"world":return{kind:"composition"};case"story":return{kind:"story"};case"asset":return{kind:"artifact"};case"document":return{kind:"data"};default:return{kind:"unknown"}}}function Hfn(t){if(t===null)return{kind:"unknown"};const n=l0().find(d=>d.descriptor.id===t);if(!n)return{kind:"unknown"};const s=n.descriptor.presentation?.()??null,c=Hwt(s?.kind);return c.kind!=="unknown"?c:Hwt(n.descriptor.kind)}function Gfn(t){return t instanceof gy?t.childAdapters().some(n=>n.kind==="three"):!t.rects&&typeof t.hierarchy.object3D=="function"}function zje(t,n,s,c){const d=Y0(t),m=efn(t)&&Gfn(d)?"three":null,g=t.playState,S=t.selectedEntityIds.size;if(S===0)return{documentId:n,chrome:c,subject:s,surface:m,selection:Tjt,play:g};const k=Vfn(d,t.selectedEntityIds);return{documentId:n,chrome:c,subject:s,surface:m,selection:{count:S,surface:Wfn(k?.kind),visible:Ufn(t,k)},play:g}}function Kfn(t,n,s="document"){const c=Hfn(n);if(rB.has(n))return{...zje(t,n,c,s),surface:"canvas"};const d=$fn(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:Tjt,play:t.playState}:zje(t,n,c,s)}const m=d.selection().length;return{documentId:n,chrome:s,subject:c,surface:"three",selection:{count:m,surface:m>0?"three":null,visible:!0},play:t.playState}}function Xfn(t){const n=Pp();return n!==null?Kfn(t,n):zje(t,null,{kind:"unknown"},"document")}function Yfn(t){return Jfn(Pp())??t}function Zfn(t){return t.surface!=="three"?!1:t.selection.count===0?!0:t.selection.surface==="three"&&t.selection.visible}function fwn(t){return Zfn(t)?fCt(t.documentId)===null?"gizmo":"modal":"none"}function dwn(t){return t.surface==="three"&&t.selection.count>0&&t.selection.surface==="three"&&t.selection.visible}function Cjt(t){return t.chrome==="embedded"||t.subject.kind==="story"||t.subject.kind==="artifact"}function pwn(t,n){return Cjt(t)?!0:t.subject.kind==="data"&&!n}function _wn(t){return t.chrome==="document"&&Cjt(t)}let Cme=null;const iye=new Set;function mwn(t){Cme=t;for(const n of iye)n();return()=>{if(Cme===t){Cme=null;for(const n of iye)n()}}}function oye(){return Cme}function Qfn(t){return iye.add(t),()=>{iye.delete(t)}}const POe="application/x-editor-asset",IOe="application/x-hierarchy-reorder";function NOe(t){const s=t?.querySelector(".volter-tree-row")?.getBoundingClientRect().height??0;if(s>0)return Math.round(s);const c=t?Number.parseFloat(getComputedStyle(t).getPropertyValue("--volter-tree-row-height")):Number.NaN;return Number.isFinite(c)&&c>0?c:s4t.treeRow}const hZ="var(--volter-tree-indent)";function Eme(t){return`calc(${hZ} * ${t})`}const Gwt=5;function edn(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 tdn=[],rdn=6,ndn=8,idn=2400;function odn(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 sdn=300,adn=new Map,cdn={folder:fee,document:dLe,story:XTt,component:GB,instance:WOe,boundary:dee};function ldn(t){return t.role==="root"?XZ(t.kind,oCt):t.role==="entity"||t.role==="element"?XZ(t.kind):(t.role?cdn[t.role]:void 0)??XZ(t.kind)}const Ejt=new Set(["folder","root","document","story","boundary"]);function udn(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 fdn(t,n){return n===null?t.hierarchy.roots().map(s=>s.id):t.hierarchy.node(n)?.childIds??[]}function sUe(t,n){if(!(t instanceof gy))return null;for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n){const c=t.inspector?.get(n,"zOrder");return{zOrder:typeof c=="number"?c:s.zOrder,worldId:s.worldId,role:s.role,kind:s.kind,provenance:s.adapter.provenance??null}}return null}function kme(t,n){return sUe(t,n)!==null}function aUe(t,n){return t instanceof gy&&t.isOrganizationNode(n)}function kjt(t,n){if(!(t instanceof gy))return t;const s=t.ownerOf(n);return t.childAdapters().find(c=>c.worldId===s)?.adapter??t}function Kwt(t,n){return n===void 0?t.structure!==void 0:kjt(t,n).structure!==void 0}function ddn(t,n,s){return kme(t,n)||aUe(t,n)||s!==void 0&&Ejt.has(s)}function pdn(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=ddn(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=>sjt(m.get(J)));s.set(g.node.id,g.node.defaultExpanded??(!D&&(A||F<=1||k?.childIds.length===1)))}return s}function _dn(t,n,s){const c=new Set;for(const d of t)if(!(d.more||!oUe({structural:!1,internal:s(d.node.id)}).searchable)&&d.node.label.toLowerCase().includes(n)){c.add(d.pathKey);for(const m of nUe(d.pathKey))c.add(m)}return c}function mdn(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 hdn({value:t,onChange:n}){const s=Ye.useRef(null);return q.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",flex:`0 1 var(${ydn}, ${gdn}px)`,minWidth:vdn},children:[q.jsx(dc,{icon:RTt,"aria-hidden":"true",style:{position:"absolute",left:bdn,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(${xdn}, ${Sdn}px)`,paddingRight:wdn}})]})}const gdn=64,ydn="--volter-hierarchy-search-basis",vdn=56,bdn=2,Sdn=21,xdn="--volter-hierarchy-search-text-inset",wdn=2;function Tdn({onCollapseAll:t,onResetExpansion:n,onExpandAll:s}){const[c,d]=Ye.useState(!1),m=Ye.useRef(null);return q.jsxs("div",{ref:m,style:{position:"relative",flexShrink:0},children:[q.jsx(pm,{title:"View","aria-label":"View","aria-haspopup":"menu","aria-expanded":c,"data-testid":"hierarchy-view-menu",onClick:()=>d(g=>!g),variant:"secondary",size:"compact",children:q.jsx(dc,{icon:ZTt,"aria-hidden":"true",style:{fontSize:"var(--volter-icon-xs)"}})}),c&&q.jsxs(dN,{autoFocusFirst:!0,dismissBoundaryRef:m,onDismiss:()=>d(!1),style:{position:"absolute",top:"100%",right:0,marginTop:R_[2],minWidth:170},children:[q.jsx(Jc,{"data-testid":"hierarchy-collapse-all",onSelect:()=>{t(),d(!1)},children:"Collapse All"}),q.jsx(Jc,{"data-testid":"hierarchy-reset-expansion",onSelect:()=>{n(),d(!1)},children:"Reset Openness"}),q.jsx(Jc,{"data-testid":"hierarchy-expand-all",onSelect:()=>{s(),d(!1)},children:"Expand All"})]})]})}function Cdn({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(hdn,{value:n,onChange:s}),q.jsx(Tdn,{onCollapseAll:m,onResetExpansion:g,onExpandAll:S}),q.jsx(kdn,{adapter:c,parentId:d})]});return t?r2.createPortal(q.jsx("div",{"data-testid":"hierarchy-header-controls",style:{display:"flex",alignItems:"center",gap:G0[1],height:"100%",minWidth:0},children:k}),t):q.jsx(n$,{label:"Hierarchy controls",compact:!0,style:{gap:G0[2]},children:k})}function Edn({state:t,adapter:n,store:s,isGroupNode:c,isInternal:d,onRename:m,onClose:g}){const S=Ye.useRef(null),[k,A]=Ye.useState({left:t.x,top:t.y});Ye.useLayoutEffect(()=>{const Yr=S.current;if(!Yr)return;const en=Yr.getBoundingClientRect();A(G3t({top:t.y,left:t.x,width:en.width,height:en.height}))},[t.x,t.y]);const[F,D]=Ye.useState(!1),J=Ye.useRef(!1);Ye.useEffect(()=>{F&&(J.current=!1)},[F]),Ye.useEffect(()=>{const Yr=ii=>{S.current&&!S.current.contains(ii.target)&&g()},en=ii=>{ii.key==="Escape"&&g()};return document.addEventListener("mousedown",Yr),document.addEventListener("keydown",en),()=>{document.removeEventListener("mousedown",Yr),document.removeEventListener("keydown",en)}},[g]);const $=n.hierarchy.node(t.nodeId);if(!$)return null;const G=n.structure?.creatableKinds?.(t.nodeId)??[],pe=kjt(n,t.nodeId).structure,ue=!!pe,Ce=n.inspector?.get(t.nodeId,"name")!==void 0,De=n.inspector?.get(t.nodeId,"locked")!==void 0,Pe=n.inspector?.get(t.nodeId,"locked")===!0,be=n.inspector?.get(t.nodeId,"visible")!==void 0,X=n.inspector?.get(t.nodeId,"visible")!==!1,we=n.inspector?.editability?.(t.nodeId,"locked"),qe=n.inspector?.editability?.(t.nodeId,"visible"),bt=De&&(we?.writable??!0),Pt=be&&(qe?.writable??!0),Wt=[...Yfn(s).selectedEntityIds],zt=Wt.includes(t.nodeId)?Wt:[t.nodeId],ft=e4r(kPt(n,t.nodeId)),tr=pe?.copy?"Copy needs source-addressable entities from one world.":ft,Qt=pe?.paste?"Copy or cut a source-addressable entity in this world first.":ft,Tt=[],vn=oUe({structural:c,internal:d});if(d&&$.parentId!==null&&Tt.push({label:"Select Parent",testId:"hierarchy-context-menu-select-parent",action:()=>{c0(n,[$.parentId]),g()}}),!c&&vn.writable){Tt.push({label:"Rename",testId:"hierarchy-context-menu-rename",...Ce?{}:{disabledReason:ft},action:()=>{m(t.nodeId),g()}}),Tt.push({label:"Cut",testId:"hierarchy-context-menu-cut",...pe?.cut&&(n.structure?.canCopy?.(zt)??!0)?{}:{disabledReason:tr},action:()=>{a0e(n,zt),g()}}),Tt.push({label:"Copy",testId:"hierarchy-context-menu-copy",...pe?.copy&&(n.structure?.canCopy?.(zt)??!0)?{}:{disabledReason:tr},action:()=>{s0e(n,zt),g()}}),Tt.push({label:"Paste",testId:"hierarchy-context-menu-paste",...pe?.paste&&(n.structure?.canPaste?.($.parentId)??!0)?{}:{disabledReason:Qt},action:()=>{c0e(n,$.parentId),g()}}),Tt.push({label:"Duplicate",testId:"hierarchy-context-menu-duplicate",...ue?{}:{disabledReason:ft},action:()=>{Wt.length>1&&Wt.includes(t.nodeId)?bve(s):r0e(n,t.nodeId).ack,g()}}),pe?.group&&Wt.length>1&&Wt.includes(t.nodeId)&&Tt.push({label:"Group Selection",testId:"hierarchy-context-menu-group",action:()=>{o0e(n,Wt).ack,g()}}),pe?.ungroup&&pe.canUngroup?.(t.nodeId)&&Tt.push({label:"Ungroup",testId:"hierarchy-context-menu-ungroup",action:()=>{m$e(n,t.nodeId).ack,g()}}),pe?.wrap&&Tt.push({label:"Wrap",testId:"hierarchy-context-menu-wrap",action:()=>{n0e(n,t.nodeId),g()}}),pe?.unwrap&&Tt.push({label:"Unwrap",testId:"hierarchy-context-menu-unwrap",action:()=>{i0e(n,t.nodeId),g()}}),$.parentId!==null&&Tt.push({label:"Select Parent",testId:"hierarchy-context-menu-select-parent",action:()=>{c0(n,[$.parentId]),g()}}),Tt.push({label:be&&!X?"Show":"Hide",...Pt?{}:{disabledReason:qe?.reason??ft},action:()=>{n.inspector.set(t.nodeId,"visible",!X),s.notifyIngestEdit(),g()}}),Tt.push({label:Pe?"Unlock":"Lock",...bt?{}:{disabledReason:we?.reason??ft},action:()=>{n.inspector.set(t.nodeId,"locked",!Pe),s.notifyIngestEdit(),g()}});for(const Yr of _3r({nodeId:t.nodeId,store:s}))Tt.push({label:Yr.label,...Yr.color!==void 0?{color:Yr.color}:{},action:()=>{Yr.action(),g()}});Tt.push({label:"Delete",testId:"hierarchy-context-menu-delete",color:Go.semantic.danger,...ue?{}:{disabledReason:ft},action:()=>{Wt.length>1&&Wt.includes(t.nodeId)?Sve(s):n.structure.remove(t.nodeId),g()}})}return q.jsx(she,{children:q.jsxs(dN,{ref:S,"data-testid":"ingest-context-menu",style:{position:"fixed",left:k.left,top:k.top,minWidth:150,maxWidth:260,fontSize:"var(--volter-font-base)"},children:[!c&&vn.writable&&G.length>0&&q.jsxs("div",{children:[q.jsxs(Jc,{"data-testid":"hierarchy-context-menu-create",onSelect:()=>D(Yr=>!Yr),style:{justifyContent:"space-between",gap:R_[4]},children:[q.jsx("span",{children:"Create"}),q.jsx(h4t,{direction:"right",tone:"dim"})]}),F&&G.map(Yr=>q.jsx(Jc,{"data-testid":`hierarchy-context-menu-create-${Yr.kind}`,onSelect:()=>{J.current||(J.current=!0,t0e(n,Yr.kind,t.nodeId).ack,g())},style:{paddingLeft:G0[12]},children:Yr.label},Yr.kind))]}),Tt.map(Yr=>Yr.disabledReason!==void 0?q.jsx(Jc,{"data-testid":Yr.testId,"aria-disabled":"true",title:Yr.disabledReason,style:{cursor:"not-allowed",color:Go.content.dim,opacity:.7},children:Yr.label},Yr.label):q.jsx(Jc,{"data-testid":Yr.testId,onSelect:Yr.action,style:Yr.color!==void 0?{color:Yr.color}:void 0,children:Yr.label},Yr.label)),d&&q.jsx("div",{"data-testid":"hierarchy-context-menu-internal-note",style:{padding:`${R_[4]}px ${R_[6]}px`,color:Go.content.dim,maxWidth:240,lineHeight:Rht.normal},children:n.transforms?.editability?.(t.nodeId,"position")?.reason??"This rendered part has no authored source identity."}),!ue&&!d&&q.jsxs("div",{style:{padding:`${R_[4]}px ${R_[6]}px`,color:Go.semantic.warning,maxWidth:240,lineHeight:Rht.normal},children:[q.jsx("strong",{children:"Create / Delete / Reparent — not available."})," This game owns its own scene graph, so structural authoring isn't reapplicable. You can edit transform / material / visibility, or capture a subtree into the first-party editable format."]})]})})}function kdn({adapter:t,parentId:n}){const[s,c]=Ye.useState(!1),d=Ye.useRef(null),m=Ye.useRef(!1),g=t.structure?.creatableKinds?.(n)??[],S=n?t.hierarchy.node(n)?.label:null;return Ye.useEffect(()=>{if(!s)return;m.current=!1;const k=F=>{d.current&&!d.current.contains(F.target)&&c(!1)},A=F=>{F.key==="Escape"&&c(!1)};return document.addEventListener("mousedown",k),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("keydown",A)}},[s]),g.length===0?null:q.jsxs("div",{ref:d,style:{position:"relative",flexShrink:0},children:[q.jsxs(Ms,{title:S?`Add to ${S}`:"Add","aria-label":S?`Add to ${S}`:"Add","aria-expanded":s,"data-testid":"hierarchy-add-menu",onClick:()=>c(!s),variant:s?"primary":"secondary",size:"compact",children:[q.jsx(dc,{icon:tCt,style:{fontSize:"var(--volter-font-sm)"}})," ",q.jsx(dc,{icon:fLe,style:{fontSize:"var(--volter-font-xs)"}})]}),s&&q.jsx(dN,{style:{position:"absolute",top:"100%",right:0,marginTop:R_[2],minWidth:130,maxHeight:"min(480px, 70vh)",overflowY:"auto"},children:g.map(k=>q.jsx(Jc,{"data-testid":`hierarchy-add-${k.kind}`,onSelect:()=>{m.current||(m.current=!0,t0e(t,k.kind,n??void 0).ack,c(!1))},children:k.label},k.kind))})]})}function Adn({row:t,onReveal:n}){const s=t.more.hidden;return q.jsxs(Ms,{type:"button",variant:"ghost",className:"volter-hierarchy-more","data-testid":"ingest-row-more",onClick:()=>n(t.more.parentPathKey),style:{paddingLeft:Eme(t.depth+1)},children:["… ",s," more"]})}function Xwt(t,n){if(!n)return t;const s=t.toLowerCase(),c=n.toLowerCase(),d=[];let m=0,g=s.indexOf(c,m);if(g<0)return t;let S=0;for(;g>=0;)g>m&&d.push(t.slice(m,g)),d.push(q.jsx("mark",{"data-testid":"ingest-row-search-highlight",style:{background:Go.semantic.warning,color:Go.surface.shell,borderRadius:Go.shape.small},children:t.slice(g,g+c.length)},S++)),m=g+c.length,g=s.indexOf(c,m);return m<t.length&&d.push(t.slice(m)),d}function Ajt(t,n){return t.length===n.length&&t.every((s,c)=>s===n[c])}function Ddn(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&&Ajt(s.childIds,c.childIds)&&s.crossSurfaceId===c.crossSurfaceId&&s.crossSurfaceParentId===c.crossSurfaceParentId&&s.crossSurfaceOrder===c.crossSurfaceOrder&&s.crossSurfaceGroupLabel===c.crossSurfaceGroupLabel}function Pdn(t,n){return Ddn(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&&Ajt(t.remoteSelectionColors,n.remoteSelectionColors)}const Idn=Ye.memo(function({row:n,adapter:s,store:c,isSelected:d,isSelectionActive:m,isEditing:g,isCollapsed:S,dropZone:k,isDragged:A,rowIndex:F,prevDepth:D,nextDepth:J,isInternal:$,searchTerm:G,lockCache:se,warningCache:pe,editabilityVersion:ue,adapterVersion:Ce,onToggleOpen:De,onStartEditing:Pe,threeRootId:be,onContextMenu:X,onDragStart:we,onClick:qe,onEnterScope:bt,remoteSelectionColors:Pt,typeSuffixShown:Wt,instanceRuleShown:zt,restrictionColumns:ft,excludeColumnShown:tr}){const{node:Qt,depth:Tt,hasChildren:vn}=n,Yr=sUe(s,Qt.id),en=Yr!==null,ii=aUe(s,Qt.id),No=en||ii||Qt.role!==void 0&&Ejt.has(Qt.role),gn=oUe({structural:No,internal:$}),En=No?void 0:s.inspector?.get(Qt.id,"locked"),cs=No?void 0:s.inspector?.get(Qt.id,"name"),On=!No&&s.inspector?.get(Qt.id,"visible")!==void 0,ji=No?void 0:s.inspector?.editability?.(Qt.id,"locked"),Ja=No?void 0:s.inspector?.editability?.(Qt.id,"visible"),_a=No?void 0:s.inspector?.get(Qt.id,"renderVisible"),Pn=_a!==void 0,js=_a!==!1,fa=No?void 0:s.inspector?.editability?.(Qt.id,"renderVisible"),Nt=Pn&&(fa?.writable??!0),Bc=No?void 0:s.inspector?.get(Qt.id,"exclude"),Ni=Bc!==void 0,Dc=Bc===!0,vc=No?void 0:s.inspector?.editability?.(Qt.id,"exclude"),Tf=Ni&&(vc?.writable??!0),Np=Yr?oq(Yr.worldId):!1,Au=Yr?hMt(Yr.worldId):!1,dl=Yr?gMt(Yr.worldId):!1,bu=en?!Np:s.inspector?.get(Qt.id,"visible")!==!1,Al=En!==void 0,Ku=En===!0,pl=Al&&(ji?.writable??!0),gs=On&&(Ja?.writable??!0),Xu=cs!==void 0,$r=Nfn(Qt),Sl=No?0:s.instances?.describe(Qt.id)?.overrides.length??0,Rl=No?iUe:se.summaryFor(s,ue,Qt.id),mi=No?null:pe.badgeFor(s,ue,Qt.id),tu=No?null:oye()?.detail(s,Qt.id,c)??null,Wc=S&&vn?Qt.childIds.slice(0,rdn).map(Ao=>s.hierarchy.node(Ao)).filter(Ao=>Ao!==null&&sjt(Ao.kind)):[];return q.jsxs("div",{className:"volter-tree-row","data-entity-name":No?void 0:Qt.label,"data-testid":"ingest-row","data-ingest-name":Qt.label,"data-node-role":Qt.role,"data-depth":Tt,"data-selected":d?"true":void 0,"data-selection-active":m?"true":void 0,"data-remotely-selected":Pt.length>0?"true":void 0,"data-dragging":A?"true":void 0,"data-row-alt":F%2===1?"true":void 0,"data-internal":$?"true":void 0,"data-muted":$||Dc||!No&&!bu?"true":void 0,draggable:gn.draggable,onDragStart:Ao=>we(Ao,Qt.id),onClick:Ao=>{if(Yr?.role==="world"&&VMe(Yr.worldId),Qt.role==="story"){const ia=s instanceof gy?s.ownerOf(Qt.id):null;ia&&VMe(ia),s.stories?.apply(Qt.id,Qt.id)}qe(Ao,Qt.id)},onDoubleClick:()=>{Qt.role==="story"?CD("story",c,{storyId:Qt.id}):Qt.role==="component"||Qt.role==="instance"||Qt.role==="boundary"?bt(Qt.id):gn.renamable&&Xu&&Pe(Qt.id)},onContextMenu:Ao=>{Ao.preventDefault(),X(Ao,Qt.id)},style:{position:"relative",paddingLeft:Eme(Tt),paddingRight:G0[2],gap:G0[2],cursor:"pointer",outline:k==="child"?`1px dashed ${Go.accent.default}`:"none",whiteSpace:"nowrap",overflow:"hidden",fontSize:"var(--volter-font-base)"},children:[k==="before"&&q.jsx(Dht,{position:"before",style:{left:Eme(Tt)}}),k==="after"&&q.jsx(Dht,{position:"after",style:{left:Eme(Tt)}}),edn(Tt,D,J).map(Ao=>q.jsx("span",{className:"volter-tree-indent-guide","aria-hidden":"true",style:{left:`calc(${hZ} * ${Ao.column+.5} - 0.5px)`,top:Ao.starts?Gwt:0,bottom:Ao.ends?Gwt:0}},Ao.column)),vn?q.jsx(pm,{type:"button",variant:"ghost",size:"compact","aria-label":S?`Expand ${Qt.label}`:`Collapse ${Qt.label}`,"aria-expanded":!S,"data-testid":"ingest-row-caret",onClick:Ao=>{Ao.stopPropagation(),De(n,Ao.altKey)},title:"Expand/collapse (Option/Alt-click applies to the branch)",className:"volter-tree-caret",children:q.jsx(dc,{icon:S?OTt:fLe,"aria-hidden":"true"})}):q.jsx("span",{"data-testid":"ingest-row-caret","aria-hidden":"true",style:{width:hZ,flexShrink:0}}),Pt.length>0&&q.jsx("span",{className:"volter-tree-remote-selection",role:"img",title:`Selected by ${Pt.length} collaborator${Pt.length===1?"":"s"}`,"aria-label":"Selected by a collaborator",children:Pt.slice(0,3).map(Ao=>q.jsx("span",{style:{background:Ao},"aria-hidden":"true"},Ao))}),Yr?.role==="world"&&Yr.worldId===be&&q.jsx("span",{"data-testid":"world-focus-radio","data-world-focused":"true",title:"Live Three world — shown in the viewport",style:{fontSize:"var(--volter-font-xs)",opacity:.8,flexShrink:0},children:q.jsx(dc,{icon:rCt,"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:ldn(Qt),"aria-hidden":"true"})}),g?q.jsx(Zm,{autoFocus:!0,defaultValue:Qt.label,onBlur:Ao=>{s.inspector.set(Qt.id,"name",Ao.currentTarget.value),c.notifyIngestEdit(),Pe("")},onKeyDown:Ao=>{Ao.key==="Enter"&&(s.inspector.set(Qt.id,"name",Ao.currentTarget.value),c.notifyIngestEdit(),Pe("")),Ao.key==="Escape"&&Pe("")},onClick:Ao=>Ao.stopPropagation(),"data-variant":"tree-edit",style:{flex:1,minWidth:0}}):q.jsxs("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[$r.typeSuffix?q.jsxs("span",{"data-testid":"hierarchy-instance-label",...Wt?{}:{title:`Component instance of <${$r.typeSuffix}>`},style:{textDecorationLine:zt?d?"var(--volter-tree-active-name-underline)":"underline":"none",textDecorationStyle:"dotted",textDecorationColor:Go.semantic.instance,textUnderlineOffset:"3px",...d?{color:m?Go.content.active:Go.content.selected}:{}},children:[Xwt(Qt.label,G),!Wt&&Sl>0?"*":""]}):q.jsx("span",{"data-testid":"hierarchy-plain-label",style:d?{color:m?Go.content.active:Go.content.selected}:void 0,children:Xwt(Qt.label,G)}),Wc.map(Ao=>q.jsx("span",{className:"volter-tree-datablock","data-active":m?"true":void 0,title:`${Ao.kind}: ${Ao.label}`,children:q.jsx(dc,{icon:XZ(Ao.kind),"aria-hidden":"true"})},Ao.id)),$r.typeSuffix&&Wt&&q.jsxs("span",{"data-testid":"hierarchy-instance-type","data-type-label":$r.typeSuffix,title:`Component instance of <${$r.typeSuffix}>`,style:{marginLeft:G0[2],fontSize:"var(--volter-font-sm)",color:Go.content.dim},children:["·",$r.typeSuffix,Sl>0?"*":""]}),Qt.secondaryLabel&&q.jsx("span",{style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:Qt.secondaryLabel}),tu&&q.jsx("span",{"data-testid":"hierarchy-instanced-units",style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:tu}),Yr?.role==="world"&&Yr.zOrder!==0&&q.jsxs("span",{title:`Z order: ${Yr.zOrder}`,style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.6},children:["Z ",Yr.zOrder]}),Yr?.provenance&&q.jsx("span",{"data-testid":"world-provenance","data-provenance":Yr.provenance.source,title:Yr.provenance.detail,style:{marginLeft:G0[3],fontSize:"var(--volter-font-xs)",padding:`0 ${R_[2]}px`,borderRadius:Go.shape.small,border:`1px solid ${Go.boundary.strong}`,color:Go.content.muted,verticalAlign:"middle"},children:Yr.provenance.label})]}),mi&&q.jsx("span",{"data-testid":"hierarchy-row-warning","data-warning-codes":mi.codes.join(","),"data-warning-count":mi.count,role:"img",title:mi.tooltip,"aria-label":`${Qt.label}: ${mi.tooltip}`,style:{fontSize:"var(--volter-font-sm)",color:Go.semantic.warning,flexShrink:0},children:q.jsx(dc,{icon:dee,"aria-hidden":"true"})}),Rl.locked&&Rl.reason&&q.jsx("span",{"data-testid":"hierarchy-transform-lock",role:"img",title:Rl.reason,"aria-label":`${Qt.label}: ${Rl.reason}`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.dim,flexShrink:0},children:q.jsx(dc,{icon:Fme,"aria-hidden":"true"})}),ft==="select+viewport"&&Al&&gn.writable&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-lock",disabled:!pl,title:pl?Ku?"Unlock":"Lock":ji?.reason||"Locked","aria-label":Ku?`Unlock ${Qt.label}`:`Lock ${Qt.label}`,"aria-pressed":Ku,onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"locked",!Ku),c.notifyIngestEdit()},children:q.jsx(dc,{icon:Ku?Fme:zOe,"aria-hidden":"true"})}),tr&&(Ni&&gn.writable?q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-exclude",disabled:!Tf,title:Tf?Dc?"Include in view layer":"Exclude from view layer":vc?.reason||"Exclusion is read-only","aria-label":Dc?`Include ${Qt.label} in the view layer`:`Exclude ${Qt.label} from the view layer`,"aria-checked":!Dc,role:"checkbox",onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"exclude",!Dc),c.notifyIngestEdit()},children:q.jsx(dc,{icon:Dc?Aun:kun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),(On||en)&&gn.writable&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-visibility",disabled:!en&&!gs,title:en||gs?bu?"Hide":"Show":Ja?.reason||"Visibility is read-only","aria-label":bu?`Hide ${Qt.label}`:`Show ${Qt.label}`,"aria-pressed":!bu,onClick:Ao=>{Ao.stopPropagation(),Yr?(kan(Yr.worldId),c.notifyIngestEdit()):(s.inspector.set(Qt.id,"visible",!bu),c.notifyIngestEdit())},children:q.jsx(dc,{icon:bu?oLe:pLe,"aria-hidden":"true"})}),ft==="viewport+render"&&(Pn&&gn.writable?q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-render-visibility",disabled:!Nt,title:Nt?js?"Disable in renders":"Enable in renders":fa?.reason||"Render visibility is read-only","aria-label":js?`Disable ${Qt.label} in renders`:`Enable ${Qt.label} in renders`,"aria-pressed":!js,onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"renderVisible",!js),c.notifyIngestEdit()},children:q.jsx(dc,{icon:js?Cun:Eun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),Yr&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"world-interactive-toggle",title:Au?"Interactive (layer forwards pointer events)":"Not interactive (layer is pointer-events:none)","aria-label":`Forward pointer events to ${Qt.label}`,"aria-pressed":Au,onClick:Ao=>{Ao.stopPropagation(),Dan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:cvr,"aria-hidden":"true"})}),Yr&&q.jsx(pm,{type:"button",variant:"ghost",size:"compact","data-testid":"world-picklock-toggle",title:dl?"Pick-locked (skipped by topmost-layer picking)":"Not pick-locked","aria-label":`Exclude ${Qt.label} from viewport picking`,"aria-pressed":dl,onClick:Ao=>{Ao.stopPropagation(),Ian(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:eCt,"aria-hidden":"true"})})]})},Pdn);function Ndn({store:t,adapter:n}){Ye.useSyncExternalStore(t.subscribe,t.getSnapshot);const s=Ye.useDeferredValue(t.contentVersion);Ye.useSyncExternalStore(U3r,J3r),Ye.useSyncExternalStore(U$,eA,eA);const c=mD().hierarchyTypeSuffix!=="hidden",d=mD().hierarchyInstanceRule!=="hidden",m=mD().hierarchyRestrictions??"select+viewport",[g,S]=Ye.useReducer(zi=>zi+1,0),k=Ye.useRef(t.getSnapshot());k.current=t.getSnapshot();const[A,F]=Ye.useState(rfn());Ye.useEffect(()=>n.subscribe?.(()=>{k.current=t.getSnapshot(),S()}),[n,t]),Ye.useEffect(()=>nfn(F),[]);const D=Ye.useMemo(()=>{const zi=new Map;for(const Jn of A?.participants??[])if(Jn.participantId!==Q0e)for(const Cs of Jn.presence.selection){const lc=zi.get(Cs)??[];lc.includes(Jn.color)||lc.push(Jn.color),zi.set(Cs,lc)}return zi},[A]),J=Ye.useRef(new Rfn),$=Ye.useRef(new Bfn),G=t.hierarchyRowFacetVersion,se=eUe(t),[pe,ue]=Ye.useState(""),Ce=Ye.useSyncExternalStore(hfn,mfn,()=>null),[De,Pe]=Ye.useState(null),[be,X]=Ye.useState(null),[we,qe]=Ye.useState(null),[bt,Pt]=Ye.useState(!1),[Wt,zt]=Ye.useState(null),ft=Ye.useRef(null),[tr,Qt]=Ye.useState(0),Tt=Ye.useRef(null),vn=Ye.useSyncExternalStore(PDt,pgt,pgt).includes("outliner")?"outliner":void 0,Yr=Ye.useRef(new Map),en=Ye.useRef(new Map),ii=Ye.useRef(new kfn),No=Ye.useRef(0),gn=Ye.useRef(null),En=Ye.useRef(null),cs=Ye.useRef(null),On=Ye.useRef(null),[,ji]=Ye.useReducer(zi=>zi+1,0),Ja=pe.trim().toLowerCase(),_a=wf()?.rootPath??"__unscoped__",Pn=n.selection?.get()??[],js=Pn.length===1?Pn[0]:null,fa=[...Pn].sort().join("\0"),Nt=Ye.useMemo(()=>new Set(fa===""?[]:fa.split("\0")),[fa]),Bc=Pn.at(-1)??null,Ni=l0e(n),Dc=Ni.at(-1)??null,vc=Ye.useRef("");Ye.useEffect(()=>{if(fa===""||vc.current===fa)return;const zi=Tt.current,Jn=zi?.querySelector('[data-selected="true"]');if(!zi||!Jn)return;const Cs=zi.getBoundingClientRect(),lc=Jn.getBoundingClientRect();(lc.top<Cs.top||lc.bottom>Cs.bottom)&&Jn.scrollIntoView({block:"nearest"}),vc.current=fa}),gn.current!==_a&&(en.current.clear(),gn.current=_a,En.current=null);const Tf=ii.current,Np=[n,s,g],Au=Tf.structural(Np,zi=>{const Jn=ifn(n,oye()?.marks(n.hierarchy)??hjt),Cs=vfn(Jn),lc=odn(Cs.hierarchy),Nu=oye()?.structureLog(t)??null,Fl=Nu?.epoch()??0,Yu=zi?s-zi.contentVersion:0,Ie=zi?Fl-zi.objectMapEpoch:0,Et=zi?.adapter===n&&s===t.contentVersion&&Yu>0&&Yu===Ie?Nu?.parentChangesSince(zi.objectMapEpoch)??null:null,In=(zi&&Et?Tfn(lc,zi.structuralRows,Et.changedParentIds):null)??Vwt(lc,new Set),pr=bfn(ofn(pdn(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:Afn(In)}}),{marked:dl,internals:bu,hierarchyView:Al,structuralRows:Ku,defaultExpansion:pl}=Au,gs=zi=>en.current.get(zi)??pfn(_a,zi)??pl.get(zi)??!0,Xu=En.current;if(Xu?.adapter!==n||Xu.selection!==fa){for(const Jn of Jwt(Au.index,Nt))gs(Jn)||(en.current.set(Jn,!0),No.current+=1);[...Nt].every(Jn=>Au.index.pathKeysByNodeId.has(Jn))&&(En.current={adapter:n,selection:fa})}const $r=zi=>gs(zi.node.id),Sl=Ja.length===0&&(P3r()||t.playState!=="stopped"),Rl=mdn(Yr.current,Sl?Dfn(Au.index,Nt):adn),mi=ii.current.collapsed([Au,No.current,_a,Dc],()=>{const zi=Dc?Ku.find(Cs=>!Cs.more&&Cs.node.id===Dc)??null:null,Jn=new Set(Ku.filter(Cs=>!Cs.more&&Cs.hasChildren&&!$r(Cs)).map(Cs=>Cs.pathKey));if(zi){Jn.delete(zi.pathKey);for(const Cs of nUe(zi.pathKey))Jn.delete(Cs)}return{scopeRow:zi,effectiveCollapsedPaths:Jn}}),{scopeRow:tu,effectiveCollapsedPaths:Wc}=mi,Ao=ii.current.browse([Au,mi,Ja,Sl,Sl?Pfn(Rl):""],()=>{const zi=Vwt(Al,Wc,Rl,Sl),Jn=Ja?_dn(Ku,Ja,bu.isInternal):null,Cs=Jn?Ku.filter(Fl=>Jn.has(Fl.pathKey)):zi,Nu=(tu?Cs.filter(Fl=>Fl.pathKey.startsWith(`${tu.pathKey}.`)).map(Fl=>({...Fl,depth:Math.max(0,Fl.depth-tu.depth-1)})):Cs).filter(Fl=>{if(kme(n,Fl.node.id))return!0;let Yu=Fl.node.parentId;for(;Yu;){const Ie=sUe(n,Yu);if(Ie&&oq(Ie.worldId))return!1;Yu=Al.node(Yu)?.parentId??null}return!0});return{rows:Ja?Nu:Nu.filter(Fl=>!Fl.hiddenByCollapse)}}),{rows:ia}=Ao,Du=Ye.useMemo(()=>ia.some(zi=>!zi.more&&n.inspector?.get(zi.node.id,"exclude")!==void 0),[ia,n,g,s]);Ye.useEffect(()=>{Qt(0),Tt.current&&(Tt.current.scrollTop=0)},[Ja]);const gp=Tt.current?.clientHeight||idn,Id=NOe(Tt.current),{start:ea,end:Pu}=ia.length>sdn?Cfn(ia.length,tr,gp,Id,ndn):{start:0,end:ia.length},Ls=ia.slice(ea,Pu),Ff=ea*Id,Hs=(ia.length-Pu)*Id,Ds=Ye.useCallback(zi=>{const Jn=Ku.filter(Cs=>Cs.hasChildren).map(Cs=>[Cs.node.id,zi]);for(const[Cs,lc]of Jn)en.current.set(Cs,lc);qwt(_a,Jn),No.current+=1,ji()},[_a,Ku]),Oc={rows:ia,window:{start:ea,end:Pu},searchTerm:Ja||null,scopeId:Dc,isExpanded:$r,isInternal:zi=>bu.isInternal(zi),isComponentRoot:zi=>dl.isComponentRoot(zi),foldedInternalCount:zi=>dl.internalChildren?.(zi)?.length??0,expandAll:()=>Ds(!0),collapseAll:()=>Ds(!1)};Ye.useEffect(()=>(tnn(Oc),()=>nnn(Oc)),[Oc]);const Ze=Ye.useRef({adapter:n,rows:ia,selectedIds:Nt,structuralRows:Ku,isExpanded:$r,projectIdentity:_a});Ze.current={adapter:n,rows:ia,selectedIds:Nt,structuralRows:Ku,isExpanded:$r,projectIdentity:_a};const jt=Ye.useCallback((zi,Jn)=>{const Cs=Ze.current,lc=!Cs.isExpanded(zi),Nu=[[zi.node.id,lc]];if(Jn){const Fl=`${zi.pathKey}.`;for(const Yu of Cs.structuralRows)Yu.hasChildren&&Yu.pathKey.startsWith(Fl)&&Nu.push([Yu.node.id,lc])}for(const[Fl,Yu]of Nu)en.current.set(Fl,Yu);qwt(Cs.projectIdentity,Nu),No.current+=1,ji()},[]),mt=Ye.useCallback(()=>{en.current.clear();for(const zi of Jwt(Au.index,Nt))en.current.set(zi,!0);_fn(_a),No.current+=1,ji()},[_a,fa,Au]),xt=Ye.useCallback(zi=>{const Jn=Yr.current;Jn.set(zi,(Jn.get(zi)??nye)+nye),No.current+=1,ji()},[]),xr=Ye.useCallback(zi=>{X3r(n,zi)},[n,t]);Ye.useEffect(()=>{if(!fa){On.current=null;return}const zi=On.current;if(zi?.adapter===n&&zi.selection===fa)return;On.current={adapter:n,selection:fa};const Jn=ia.findIndex(Yu=>Nt.has(Yu.node.id)),Cs=Tt.current;if(Jn<0||!Cs)return;const lc=NOe(Cs),Nu=Jn*lc,Fl=Nu+lc;Nu<Cs.scrollTop?Cs.scrollTop=Nu:Fl>Cs.scrollTop+Cs.clientHeight&&(Cs.scrollTop=Math.max(0,Fl-Cs.clientHeight)),Qt(Cs.scrollTop)},[n,ia,Nt,fa]);const Vn=Ye.useCallback((zi,Jn)=>{const Cs=Ze.current;if(Cs.adapter.selection){if(zi.metaKey||zi.ctrlKey){const lc=new Set(Cs.selectedIds);lc.has(Jn)?lc.delete(Jn):lc.add(Jn),c0(Cs.adapter,[...lc])}else if(zi.shiftKey&&cs.current){const lc=Cs.rows.findIndex(Fl=>Fl.node.id===cs.current),Nu=Cs.rows.findIndex(Fl=>Fl.node.id===Jn);if(lc>=0&&Nu>=0){const Fl=Math.min(lc,Nu),Yu=Math.max(lc,Nu),Ie=Cs.rows.slice(Fl,Yu+1).filter(Et=>!Et.more).map(Et=>Et.node.id);c0(Cs.adapter,Ie)}}else c0(Cs.adapter,[Jn]);cs.current=Jn}},[]),eo=Ye.useCallback((zi,Jn)=>{const Cs=Ze.current.selectedIds,lc=Cs.has(Jn)?[...Cs]:[Jn];zt(lc),zi.dataTransfer.effectAllowed="move",zi.dataTransfer.setData(IOe,JSON.stringify(lc)),zi.dataTransfer.setData("text/plain",Jn)},[]),bi=Ye.useCallback((zi,Jn)=>{Pe({x:zi.clientX,y:zi.clientY,nodeId:Jn})},[]),ta=Ye.useCallback(zi=>{const Jn=zi.dataTransfer.types.includes(IOe),Cs=zi.dataTransfer.types.includes(POe);if(!Jn&&!Cs)return;zi.preventDefault(),zi.dataTransfer.dropEffect=Jn?"move":"copy",ft.current=null;const lc=Tt.current.getBoundingClientRect(),Nu=Tt.current.scrollTop,Fl=zi.clientY-lc.top+Nu,Yu=NOe(Tt.current),Ie=Math.floor(Fl/Yu);if(Ie>=ia.length){qe(null),Pt(!0),Jn&&Wt&&(ft.current=Bwt({hasStructureWritePath:Kwt(n,Wt[0]),targetIsInternal:!1}));return}Pt(!1);const Et=Ie>=0?ia[Ie]:void 0;if(!Et||Et.more){qe(null);return}const Nr=Bwt({hasStructureWritePath:Jn?Kwt(n,Et.node.id):!0,targetIsInternal:bu.isInternal(Et.node.id)});if(Nr!==null){ft.current=Nr,qe(null);return}const In=Fl-Ie*Yu;let pr;if(In<Yu*.25?pr="before":In>Yu*.75?pr="after":pr="child",Jn&&Wt){const Ur=Et.node.id;if(Wt.includes(Ur)||udn(Ur,Wt,n))return;if(!afn(n,Wt,Ur)){qe(null);return}}if(kme(n,Et.node.id)&&pr!=="child"&&(pr="child"),(Et.node.role==="document"||Et.node.role==="story")&&(pr="child"),Et.node.role==="folder"||Et.node.role==="boundary"){qe(null);return}qe({nodeId:Et.node.id,zone:pr})},[ia,Wt,n,bu]),ic=Ye.useCallback(()=>{qe(null),Pt(!1),zt(null),ft.current=null},[]),Ps=Ye.useCallback(zi=>{zi.preventDefault(),zi.stopPropagation();const Jn=we,Cs=bt,lc=ft.current;if(qe(null),Pt(!1),zt(null),ft.current=null,lc!==null){i0(lc);return}const Nu=n.structure,Fl=zi.dataTransfer.getData(IOe);if(Fl&&Nu){const Ie=JSON.parse(Fl);if(Cs){for(const Li of Ie)QO(n,Li,null);return}if(!Jn)return;const Et=ia.find(Li=>Li.node.id===Jn.nodeId);if(!Et)return;const Nr=Et.node.id;if(Jn.zone==="child"){for(const Li of Ie)QO(n,Li,Nr);return}const In=Et.node.parentId,pr=fdn(n,In).filter(Li=>!Ie.includes(Li)),Ur=pr.indexOf(Nr),Ei=Jn.zone==="before"?Nr:Ur>=0?pr[Ur+1]??null:null;for(const Li of Ie)(n.hierarchy.node(Li)?.parentId??null)!==In&&QO(n,Li,In??null),_$e(n,Li,Ei);return}const Yu=zi.dataTransfer.getData(POe);if(Yu&&n.assetDrop)try{const Ie=JSON.parse(Yu);if(Ie.kind==="scene")return;const Et={item:Ie.component??{kind:"file",name:Ie.name??Ie.path.split("/").pop()??Ie.path}};if(Cs){n.assetDrop.accepts("",Ie.path,Et)&&BFe(n,"",Ie.path,Et);return}if(!Jn)return;const Nr=ia.find(pr=>pr.node.id===Jn.nodeId);if(!Nr)return;const In=Nr.node.id;n.assetDrop.accepts(In,Ie.path,Et)&&BFe(n,In,Ie.path,Et)}catch{}},[we,bt,ia,n]),Iu=APt(n)??"Untitled";return q.jsxs(Jye,{name:null,hideHeader:!0,onPointerDown:()=>CR("hierarchy"),onDragOver:zi=>{zi.dataTransfer.types.includes(POe)&&(zi.preventDefault(),zi.dataTransfer.dropEffect="copy")},style:{flex:1,minWidth:0,minHeight:0,borderRight:`1px solid ${Go.boundary.default}`},children:[q.jsx("span",{"data-testid":"scene-name","data-scene":Iu,style:{display:"none"},children:Iu}),q.jsx(Cdn,{slot:Ce,search:pe,setSearch:ue,adapter:n,createTargetId:js,onCollapseAll:()=>Ds(!1),onResetExpansion:mt,onExpandAll:()=>Ds(!0)}),Dc&&q.jsxs("nav",{"data-testid":"selection-scope-breadcrumb","aria-label":"Selection scope",style:{display:"flex",alignItems:"center",gap:3,minHeight:26,padding:`0 ${R_[2]}px`,borderBottom:`1px solid ${Go.boundary.default}`,overflow:"hidden",flexShrink:0},children:[q.jsx(Ms,{variant:"ghost",size:"compact","data-testid":"selection-scope-root",onClick:()=>Rgt(n,null),children:"Game"}),Ni.map((zi,Jn)=>{const Cs=n.hierarchy.node(zi);if(!Cs)return null;const lc=Jn===Ni.length-1;return q.jsxs("span",{style:{display:"flex",alignItems:"center",minWidth:0},children:[q.jsx("span",{"aria-hidden":"true",style:{color:Go.content.muted},children:"/"}),q.jsx(Ms,{variant:"ghost",size:"compact","data-testid":"selection-scope-crumb","data-scope-current":lc?"true":void 0,"aria-current":lc?"location":void 0,onClick:()=>Rgt(n,zi),style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:Cs.label})]},zi)})]}),q.jsxs("div",{ref:Tt,"data-testid":"ingest-hierarchy",className:"volter-content-frost volter-tree-body","data-volter-region":vn,style:{flex:1,minHeight:0,overflow:"auto",position:"relative",pointerEvents:"auto"},onDragOver:ta,onDrop:Ps,onDragEnd:ic,onScroll:zi=>Qt(zi.currentTarget.scrollTop),onDragLeave:zi=>{Tt.current?.contains(zi.relatedTarget)||(qe(null),Pt(!1))},children:[q.jsx("div",{"data-testid":"game-hierarchy-spacer-top",style:{height:Ff}}),Ls.map((zi,Jn)=>zi.more?q.jsx(Adn,{row:zi,onReveal:xt},Uwt(zi)):q.jsx(Idn,{row:zi,rowIndex:ea+Jn,prevDepth:ia[ea+Jn-1]?.depth??-1,nextDepth:ia[ea+Jn+1]?.depth??-1,adapter:n,store:t,isSelected:Nt.has(zi.node.id),isSelectionActive:Bc===zi.node.id,isEditing:be===zi.node.id,isCollapsed:Ja?!1:Wc.has(zi.pathKey),dropZone:we&&we.nodeId===zi.node.id?we.zone:null,isDragged:Wt?.includes(zi.node.id)??!1,isInternal:bu.isInternal(zi.node.id),threeRootId:se,searchTerm:Ja,lockCache:J.current,warningCache:$.current,editabilityVersion:G,adapterVersion:g,onToggleOpen:jt,onStartEditing:X,onContextMenu:bi,onDragStart:eo,onClick:Vn,onEnterScope:xr,typeSuffixShown:c,instanceRuleShown:d,restrictionColumns:m,excludeColumnShown:Du,remoteSelectionColors:D.get(zi.node.id)??tdn},Uwt(zi))),q.jsx("div",{"data-testid":"game-hierarchy-spacer-bottom",style:{height:Hs}}),q.jsx("div",{style:{minHeight:40}}),bt&&q.jsx("div",{style:{position:"absolute",left:0,right:0,top:ia.length*Id,height:2,background:Go.accent.default,pointerEvents:"none",zIndex:PI.overlayLow}})]}),De&&(()=>{const zi=Al.node(De.nodeId),Jn=zi?kme(n,zi.id)||aUe(n,zi.id):!1;return q.jsx(Edn,{state:De,adapter:n,store:t,isGroupNode:Jn,isInternal:bu.isInternal(De.nodeId),onRename:X,onClose:()=>Pe(null)})})()]})}function Djt(){const t=Yv(),[,n]=Ye.useReducer(c=>c+1,0);Ye.useSyncExternalStore(o2,K1),Ye.useSyncExternalStore(Eee,AD),Ye.useSyncExternalStore(Qfn,oye);const{adapter:s}=Cm(t);return Ye.useEffect(()=>s.subscribe?.(n),[s]),q.jsx(Ndn,{store:t,adapter:s},Qun(s))}function Odn(){const t=Yv(),n=Y0(t),s=n.structure,c=[...t.selectedEntityIds],d=c[0],m=d?n.hierarchy.node(d)?.parentId??null:null,g=mve(),S=tMt(),k=Ye.useSyncExternalStore(u2,CFe,CFe);Ye.useSyncExternalStore(vDt,whe,whe),Ye.useSyncExternalStore(Kye,mhe,mhe),Ye.useSyncExternalStore(ODt,Phe,Phe),Ye.useSyncExternalStore(hLe,YB,YB);const A=De=>{const Pe=jme(De);return Pe.length===0?null:q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),Pe.map(be=>q.jsx(Jc,{...be.testId?{"data-testid":be.testId}:{},disabled:be.disabled?.({})??!1,onSelect:ue(()=>be.execute({})),children:typeof be.label=="function"?be.label():be.label},be.id))]})},F=Ye.useSyncExternalStore(lMt,N$,N$),D=Ye.useSyncExternalStore(xDt,zS,zS),[J,$]=Ye.useState(null);fjt(()=>J?Hvr():"");const G=Ye.useRef(null),se=Ye.useRef({}),pe=De=>se.current[De]??={current:null},ue=De=>()=>{$(null),Promise.resolve().then(De).catch(Pe=>Qs.error(`The menu command failed: ${Pe instanceof Error?Pe.message:String(Pe)}`,"editor"))},Ce={edit:q.jsxs(q.Fragment,{children:[q.jsx(Jc,{disabled:S.busy||!S.canUndo,onSelect:ue(()=>g.undo()),children:S.undoLabel?`Undo ${S.undoLabel}`:"Undo"}),q.jsx(Jc,{disabled:S.busy||!S.canRedo,onSelect:ue(()=>g.redo()),children:S.redoLabel?`Redo ${S.redoLabel}`:"Redo"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(VVe),children:"Undo History…"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:c.length===0||!s?.cut||!(s.canCopy?.(c)??!0),onSelect:ue(()=>qVe(t)),children:"Cut"}),q.jsx(Jc,{disabled:c.length===0||!s?.copy||!(s.canCopy?.(c)??!0),onSelect:ue(()=>$Ve(t)),children:"Copy"}),q.jsx(Jc,{disabled:!s?.paste||!(s.canPaste?.(m)??!0),onSelect:ue(()=>zVe(t)),children:"Paste"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void bve(t)),children:"Duplicate"}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void Sve(t)),children:"Delete"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(()=>RRt(t)),children:"Select All"}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>t.select(null)),children:"Deselect All"})]}),view:q.jsxs(q.Fragment,{children:[q.jsx(Jc,{onSelect:ue(()=>EVe()),children:"Command Palette…"}),q.jsx(Jc,{onSelect:ue(async()=>{const De=hrn(t);try{await navigator.clipboard.writeText(De),Qs.log("Copied a link to the current editor view.","editor")}catch(Pe){Qs.error(`Could not copy the editor view link: ${Pe instanceof Error?Pe.message:String(Pe)}`,"editor")}}),children:"Copy View Link"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(zBe),children:"Toggle Focus Mode"}),A("view")]}),window:q.jsxs(q.Fragment,{children:[DN().filter(De=>Uk(De.id)).map(De=>q.jsxs(Jc,{role:"menuitemradio","aria-checked":D===De.id,"data-testid":`workspace-${De.id}`,title:De.description,onSelect:ue(()=>a2(De.id)),children:[q.jsx(dc,{icon:Kk.status.success,style:{opacity:D===De.id?1:0}}),"Workspace: ",De.title]},De.id)),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(pve),children:"Console"}),q.jsx(Jc,{onSelect:ue(()=>vC(iee.lightExplorer.id)),children:"Light Explorer"}),q.jsx(Jc,{onSelect:ue(()=>qBe("asset-library")),children:"Asset Library"}),q.jsx(Jc,{onSelect:ue(()=>vC("generations")),children:"Generations"}),A("window")]}),debug:q.jsx(q.Fragment,{children:A("debug")}),tools:q.jsxs(q.Fragment,{children:[q.jsxs(Jc,{onSelect:ue(()=>wve()),children:["Project Tools…",F.tools.length>0?` (${F.tools.length})`:""]}),q.jsx(t2,{}),k.length?k.map(De=>q.jsx(Jc,{onSelect:ue(()=>{De.point==="workspace.document"?tA(De.id):vC(`tool:${De.id}`)}),children:De.title},De.id)):q.jsx(Jc,{disabled:!0,children:"No custom project tools"}),A("tools")]}),help:jme("help").length>0?A("help"):null};return q.jsx("div",{ref:G,"data-testid":"app-menubar",style:{display:"flex",alignItems:"stretch",marginLeft:"var(--volter-space-2)"},children:["edit","view","window","debug","tools","help"].filter(De=>Ce[De]!==null).map(De=>q.jsxs("div",{ref:pe(De),style:{position:"relative"},children:[q.jsx(yBe,{"data-testid":`app-menu-${De}`,"aria-haspopup":"menu","aria-expanded":J===De,onClick:()=>$(Pe=>Pe===De?null:De),onKeyDown:Pe=>{Pe.key==="ArrowDown"&&(Pe.preventDefault(),$(De))},onPointerEnter:()=>{J&&$(De)},style:{textTransform:"capitalize"},children:De}),J===De&&q.jsx(vBe,{anchorRef:pe(De),dismissBoundaryRef:pe(De),align:"start",gap:0,clamp:!0,autoFocusFirst:!0,onDismiss:()=>{const Pe=G.current?.querySelector(`[data-testid="app-menu-${De}"]`);$(null),requestAnimationFrame(()=>Pe?.focus())},style:{minWidth:190},children:Ce[De]})]},De))})}const Rdn=new Map,Ywt=new Set;let Fdn=0;function Mdn(t){return Rdn.get(t)??jdn}const jdn=[];function Ldn(t){return Ywt.add(t),()=>Ywt.delete(t)}function Zwt(){return Fdn}function Ame({slot:t}){return Ye.useSyncExternalStore(Ldn,Zwt,Zwt),q.jsx(q.Fragment,{children:Mdn(t).map(n=>q.jsx(n.Content,{},n.owner))})}const NO=[],Vje=new Set;let Pjt=0;function Qwt(){Pjt++;for(const t of Vje)t()}function Bdn(t){const n=NO.findIndex(s=>s.owner===t.owner);return n>=0&&NO.splice(n,1),NO.push(t),NO.sort((s,c)=>(s.order??0)-(c.order??0)),Qwt(),()=>{const s=NO.indexOf(t);s<0||(NO.splice(s,1),Qwt())}}async function $dn(t){const n=new Set,s=[];for(const c of NO){let d;try{d=await c.harnesses(t)}catch{continue}for(const m of d)n.has(m.id)||(n.add(m.id),s.push(m))}return s}function qdn(t){return Vje.add(t),()=>{Vje.delete(t)}}function eTt(){return Pjt}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 zdn(){const t=await fetch("/__editor/git/status");return L_(t,"Git status failed")}function Vdn(t){return pA("/git/checkpoint",{method:"POST",body:JSON.stringify(t)})}function Udn(t){return pA("/git/publish",{method:"POST",...t?{signal:t}:{}})}function tTt(t){return pA("/git/stage",{method:"POST",body:JSON.stringify(t)})}function Jdn(t){return pA("/git/fetch",{method:"POST",...t?{signal:t}:{}})}function Wdn(t){return pA("/git/update",{method:"POST",...t?{signal:t}:{}})}function rTt(t){return pA("/git/rebase",{method:"POST",body:JSON.stringify({action:t})})}function Hdn(){return pA("/git/readiness",{method:"POST"})}function Gdn(t){return pA("/git/pull-request",{method:"POST",body:JSON.stringify(t)})}function Kdn(){return pA("/git/pull-request/status")}function Xdn(t){return pA("/git/pull-request/merge",{method:"POST",...t?{signal:t}:{}})}function Ydn(){const[t,n]=Ye.useState(null),[s,c]=Ye.useState(!1),[d,m]=Ye.useState(null),[g,S]=Ye.useState([]),[k,A]=Ye.useState(""),[F,D]=Ye.useState(null),[J,$]=Ye.useState(null),[G,se]=Ye.useState(null),[pe,ue]=Ye.useState(!1),Ce=Ye.useRef(null);Ye.useEffect(()=>{zdn().then(we=>{m(we),S(we.changed.map(qe=>qe.path))}).catch(we=>n(String(we)))},[]);const De=we=>{m(we),S(qe=>qe.filter(bt=>we.changed.some(Pt=>Pt.path===bt)))},Pe=async(we,qe,bt)=>{const Pt=new AbortController;Ce.current=Pt,$(bt??null),c(!0),n(null),D(null);try{De(await we(Pt.signal)),D(qe)}catch(Wt){n(Wt instanceof Error?Wt.message:String(Wt))}finally{Ce.current===Pt&&(Ce.current=null),$(null),c(!1)}},be=we=>{se(null),Gdn({title:we}).then(qe=>{De(qe.status),D(`Pull request: ${qe.url}`)}).catch(qe=>n(String(qe)))},X=()=>{ue(!1);const we=new AbortController;Ce.current=we,$("Merging pull request"),c(!0),Xdn(we.signal).then(qe=>D(`Merged pull request: ${qe.url}`)).catch(qe=>n(String(qe))).finally(()=>{Ce.current===we&&(Ce.current=null),$(null),c(!1)})};return q.jsxs("section",{className:"volter-worktree-version-control",children:[t&&q.jsx("div",{style:{color:Go.semantic.danger,fontSize:YY.sm,marginBottom:5},children:t}),d?.available?q.jsxs("details",{style:{marginTop:G0[4]},children:[q.jsxs("summary",{style:{cursor:"pointer",fontSize:YY.sm},children:["Git · ",d.branch??"detached"," ·"," ",d.dirty?`${d.changed.length} changed`:"clean",d.baseAhead!==null&&d.baseBehind!==null?` · base +${d.baseAhead}/-${d.baseBehind}`:"",d.ahead!==null&&d.behind!==null?` · remote +${d.ahead}/-${d.behind}`:""]}),q.jsxs("div",{style:{display:"grid",gap:5,marginTop:5,fontSize:YY.sm},children:[q.jsxs("span",{style:{color:Go.content.dim},children:[d.repositoryId.slice(0,20)," · ",d.worktreeId.slice(0,20)]}),d.changed.map(we=>{const qe=d.hunks.filter(bt=>bt.path===we.path);return q.jsxs("div",{style:{display:"grid",gap:3},children:[q.jsxs("div",{style:{display:"flex",gap:5,alignItems:"center"},children:[q.jsx(TD,{"aria-label":`Include ${we.path} in checkpoint`,checked:g.includes(we.path),onChange:bt=>S(Pt=>bt.target.checked?[...Pt,we.path]:Pt.filter(Wt=>Wt!==we.path))}),q.jsxs("code",{style:{minWidth:0,flex:1},children:[we.index,we.worktree," ",we.path]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>tTt({path:we.path,staged:we.index!==" "&&we.index!=="?"}),we.index!==" "&&we.index!=="?"?`Unstaged ${we.path}.`:`Staged ${we.path}.`),children:we.index!==" "&&we.index!=="?"?"Unstage file":"Stage file"})]}),qe.map(bt=>q.jsxs("div",{style:{display:"flex",gap:5,paddingLeft:22,alignItems:"center"},children:[q.jsxs("code",{style:{minWidth:0,flex:1,color:Go.content.dim},children:[bt.header," · +",bt.additions,"/-",bt.deletions]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>tTt({path:bt.path,hunkId:bt.id,staged:bt.staged}),bt.staged?"Hunk unstaged.":"Hunk staged."),children:bt.staged?"Unstage hunk":"Stage hunk"})]},bt.id))]},we.path)}),d.rebaseInProgress&&q.jsxs("div",{role:"alert",style:{display:"grid",gap:5,color:Go.semantic.warning},children:[q.jsxs("span",{children:["Rebase paused",d.conflicts.length>0?` · conflicts: ${d.conflicts.join(", ")}`:""]}),q.jsxs("span",{style:{display:"flex",gap:5},children:[q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.conflicts.length>0,onClick:()=>void Pe(()=>rTt("continue"),"Rebase continued."),children:"Continue rebase"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>rTt("abort"),"Rebase aborted."),children:"Abort rebase"})]})]}),d.dirty&&q.jsxs("div",{style:{display:"flex",gap:5},children:[q.jsx(Zm,{"aria-label":"Git checkpoint message",placeholder:"Checkpoint message",value:k,onChange:we=>A(we.target.value),style:{minWidth:0,flex:1}}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||!k.trim()||g.length===0,onClick:()=>void Pe(()=>Vdn({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(Jdn,"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(Udn,"Branch published.","Publishing"),children:"Publish"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||!d.baseRef,onClick:()=>void Pe(Wdn,"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 Hdn().then(we=>{De(we.status),D(we.ready?"Merge-ready; no merge was performed.":we.reasons.join(" "))}).catch(we=>n(String(we))),children:"Check merge readiness"}),d.github&&d.upstream&&q.jsxs(q.Fragment,{children:[q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s,onClick:()=>se(k||d.branch||"Volter Editor changes"),children:"Create PR"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Kdn().then(we=>D(we.available?`PR ${we.state??"open"} · ${we.mergeState??"status unknown"} · checks ${we.checks?.passed??0} passed/${we.checks?.pending??0} pending/${we.checks?.failed??0} failed${we.reviewDecision?` · review ${we.reviewDecision}`:""}${we.url?` · ${we.url}`:""}`:we.reason??"No pull request found.")).catch(we=>n(String(we))),children:"PR status"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||d.rebaseInProgress,onClick:()=>ue(!0),children:"Merge PR…"})]})]}),J&&q.jsxs("div",{role:"status",style:{display:"flex",gap:5,alignItems:"center"},children:[q.jsxs("span",{children:[J,"…"]}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",onClick:()=>Ce.current?.abort(),children:"Cancel"})]}),d.history.length>0&&q.jsxs("details",{children:[q.jsx("summary",{style:{cursor:"pointer",color:Go.content.dim},children:"Recent history"}),q.jsx("div",{style:{display:"grid",gap:3,paddingTop:G0[2]},children:d.history.map(we=>q.jsxs("span",{title:`${we.author} · ${we.authoredAt}`,children:[q.jsx("code",{children:we.shortSha})," · ",we.subject]},we.sha))})]}),F&&q.jsx("span",{style:{color:Go.semantic.success},children:F})]})]}):q.jsx("span",{style:{color:Go.content.dim,fontSize:YY.sm},children:"Loading version control…"}),G!==null&&q.jsxs(kRe,{labelledBy:"volter-pull-request-title-heading",onDismiss:()=>se(null),children:[q.jsx(ARe,{titleId:"volter-pull-request-title-heading",title:"Create pull request",description:`Opens a pull request for ${d?.branch??"this branch"} on its remote.`}),q.jsx(J3t,{children:q.jsx(Zm,{"aria-label":"Pull request title",autoFocus:!0,value:G,onChange:we=>se(we.target.value),onKeyDown:we=>{we.key!=="Enter"||!G.trim()||(we.preventDefault(),be(G.trim()))}})}),q.jsxs(DRe,{children:[q.jsx(Ms,{type:"button",variant:"ghost",onClick:()=>se(null),children:"Cancel"}),q.jsx(Ms,{type:"button",variant:"primary",disabled:!G.trim(),onClick:()=>be(G.trim()),children:"Create pull request"})]})]}),pe&&q.jsxs(kRe,{labelledBy:"volter-merge-pr-heading",onDismiss:()=>ue(!1),children:[q.jsx(ARe,{titleId:"volter-merge-pr-heading",title:"Merge pull request",description:`Merging the pull request for ${d?.branch??"this branch"} changes the remote repository.`}),q.jsxs(DRe,{children:[q.jsx(Ms,{type:"button",variant:"ghost",onClick:()=>ue(!1),children:"Cancel"}),q.jsx(Ms,{type:"button",variant:"primary",onClick:X,children:"Merge pull request"})]})]})]})}Bdn({owner:"editor-core:supercode",harnesses:async()=>YZr()});const Zdn={worktrees:[],branches:[]};function Qdn(t){return`agent/${t.toLocaleLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,42)||"task"}`}function epn({currentLabel:t,onDone:n,onError:s}){const[c,d]=Ye.useState(""),[m,g]=Ye.useState("agent/task"),[S,k]=Ye.useState(!1),[A,F]=Ye.useState("worktree"),[D,J]=Ye.useState([]),[$,G]=Ye.useState(""),[se,pe]=Ye.useState(!1),ue=Ye.useSyncExternalStore(qdn,eTt,eTt);return Ye.useEffect(()=>{let Ce=!0;return $dn(A).then(De=>{Ce&&(J(De),G(Pe=>De.some(be=>be.id===Pe)?Pe:De[0]?.id??""))}),()=>{Ce=!1}},[A,ue]),q.jsxs("div",{className:"volter-worktree-delegate",role:"group","aria-label":"Delegate task",children:[q.jsx(_p,{as:"div",variant:"label",children:"Delegate task"}),q.jsx(TBe,{"aria-label":"Task for the agent",placeholder:"Describe a bounded task…",value:c,onChange:Ce=>{const De=Ce.target.value;d(De),S||g(Qdn(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),eQr({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 tpn(t){return t.replace(/[\\/]$/,"").split(/[\\/]/).at(-1)??t}function rpn(t){const n=t.current?["Current worktree"]:[tpn(t.root)];t.sessions.length>0&&n.push("editor running"),t.dirty?n.push("uncommitted changes"):n.push("clean"),t.ahead&&n.push(`${t.ahead} ahead`),t.behind&&n.push(`${t.behind} behind`);const s=cUe(t);if(s.length===1){const c=s[0];n.push(c.kind==="agent"?`${c.displayName} ${c.status}${c.changeCount>0?` · ${c.changeCount} changes`:""}`:`${c.displayName} here`)}else s.length>1&&n.push(`${s.length} collaborators here`);return n.join(" · ")}function cUe(t){const n=new Map;for(const s of t.sessions)for(const c of s.presence?.participants??[]){const d=n.get(c.participantId);(!d||Date.parse(d.lastSeenAt)<Date.parse(c.lastSeenAt))&&n.set(c.participantId,c)}return[...n.values()].sort((s,c)=>{const d={"needs-input":0,active:1,idle:2,done:3};return d[s.status]-d[c.status]||s.displayName.localeCompare(c.displayName)})}function npn(t){return t.kind==="agent"?"AI":t.displayName.split(/\s+/).slice(0,2).map(n=>n[0]?.toLocaleUpperCase()??"").join("")}function nTt({worktree:t}){const n=cUe(t);if(n.length===0)return null;const s=n.slice(0,3);return q.jsxs("span",{className:"volter-worktree-presence",role:"img","aria-label":n.map(c=>`${c.displayName}, ${c.status}`).join("; "),children:[s.map(c=>q.jsx("span",{className:"volter-worktree-avatar","data-kind":c.kind,"data-status":c.status,style:{"--volter-participant-color":c.color},title:`${c.displayName} · ${c.kind} · ${c.status}`,"aria-hidden":"true",children:npn(c)},c.participantId)),n.length>s.length&&q.jsxs("span",{className:"volter-worktree-avatar volter-worktree-avatar-more","aria-hidden":"true",children:["+",n.length-s.length]})]})}function iTt(t,...n){const s=t.trim().toLocaleLowerCase();return!s||n.some(c=>c?.toLocaleLowerCase().includes(s))}function oTt(t,n){return[+!t.current,Math.min(...cUe(t).map(s=>s.status==="needs-input"?0:s.status==="active"?1:s.status==="idle"?2:3)),+(t.branch===null),+(t.sessions.length===0),+!t.dirty,-(t.branch?n.get(t.branch)??0:0)]}function ipn(t){return(n,s)=>{const c=oTt(n,t),d=oTt(s,t);return c.reduce((g,S,k)=>g||S-(d[k]??0),0)||(n.branch??n.root).localeCompare(s.branch??s.root)}}function opn(){const[t,n]=Ye.useState(Zdn),[s,c]=Ye.useState({branch:null,worktreeId:null}),[d,m]=Ye.useState(!1),[g,S]=Ye.useState(null),[k,A]=Ye.useState(null),F=Ye.useCallback(async(J=!1)=>{J||m(!0);try{n(await ZZr()),A(null)}catch($){A($ instanceof Error?$.message:String($))}finally{J||m(!1)}},[]);return Ye.useEffect(()=>{if(L$)return;let J=!0;return XZr().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 spn(){const t=Ye.useRef(null),[n,s]=Ye.useState(!1),[c,d]=Ye.useState(""),[m,g]=Ye.useState(!1),{state:S,sessionIdentity:k,loading:A,busy:F,error:D,setError:J,refresh:$,run:G}=opn();if(Ye.useEffect(()=>{n&&$()},[n,$]),L$)return null;const se=S.worktrees.find(ft=>ft.current),pe=se?.branch??k.branch??(S.worktrees.length>0||k.worktreeId?"detached":"Branches"),ue=pe!=="Branches",Ce=new Map(S.branches.map(ft=>[ft.name,ft.updatedAt])),Pe=[...S.worktrees].sort(ipn(Ce)).filter(ft=>iTt(c,ft.branch,ft.root)),be=S.branches.filter(ft=>!ft.worktreeId&&iTt(c,ft.name)),X=Pe.slice(0,c.trim()?30:10),we=be.slice(0,c.trim()?50:20),qe=Pe.length-X.length,bt=be.length-we.length,Pt=c.trim(),Wt=S.branches.some(ft=>ft.name===Pt),zt=Pe.length>0||be.length>0;return q.jsxs("div",{className:"volter-worktree-switcher",children:[q.jsxs(yBe,{ref:t,className:"volter-worktree-trigger","aria-label":ue?`Branches and worktrees, current branch ${pe}${se?.dirty?", uncommitted changes":""}`:"Branches and worktrees","aria-expanded":n,title:ue?`Branches and worktrees — ${pe}${se?.dirty?" (uncommitted changes)":""}`:"Branches and worktrees",onClick:()=>{s(ft=>!ft),n||d("")},onKeyDown:ft=>{ft.key==="ArrowDown"&&(ft.preventDefault(),s(!0))},children:[q.jsx(dc,{icon:g0r}),se?.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"}),se&&q.jsx(nTt,{worktree:se})]}),n&&q.jsxs(vBe,{anchorRef:t,align:"start",clamp:!0,autoFocusFirst:!1,className:"volter-worktree-menu","aria-label":"Branches and worktrees",onDismiss:()=>s(!1),children:[q.jsxs("div",{className:"volter-worktree-search",children:[q.jsx(Zm,{autoFocus:!0,"aria-label":"Find a branch",placeholder:"Find a branch…",value:c,disabled:F!==null||A,onChange:ft=>d(ft.target.value)}),q.jsx(Ms,{variant:"ghost",size:"compact","aria-label":"Refresh branches and worktrees",title:"Refresh",disabled:F!==null,onClick:()=>void G("refresh",$,()=>{}),children:q.jsx(dc,{icon:NTt})})]}),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,()=>QZr(ft.worktreeId),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:ft.current&&q.jsx(dc,{icon:cLe})}),q.jsxs("span",{className:"volter-worktree-row-copy",children:[q.jsxs("span",{className:"volter-worktree-row-title",children:[tr,ft.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"})]}),q.jsx("span",{className:"volter-worktree-row-detail",children:F===ft.worktreeId?"Opening…":rpn(ft)})]}),q.jsx(nTt,{worktree:ft})]}),!ft.current&&ft.sessions[0]?.sessionId&&q.jsx(Ms,{type:"button",size:"compact",variant:"ghost","aria-label":`Stop editor for ${tr}`,title:"Stop editor session",disabled:F!==null,onClick:()=>void G(`stop:${ft.worktreeId}`,()=>rQr(ft.worktreeId,ft.sessions[0].sessionId),()=>s(!1)),children:q.jsx(dc,{icon:MTt})}),!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}`,()=>tQr(ft.worktreeId),()=>s(!1)),children:q.jsx(dc,{icon:iCt})})]},ft.worktreeId)}),qe>0&&q.jsxs(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-more",children:[qe," more worktrees — search to narrow"]})]}),we.length>0&&q.jsxs("section",{"aria-label":"Local branches",children:[q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-section-label",children:"Local branches"}),we.map(ft=>q.jsxs(Jc,{className:"volter-worktree-menu-item",disabled:F!==null,onSelect:()=>void G(ft.name,()=>XSt(ft.name),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon"}),q.jsxs("span",{className:"volter-worktree-row-copy",children:[q.jsx("span",{className:"volter-worktree-row-title",children:ft.name}),q.jsx("span",{className:"volter-worktree-row-detail",children:F===ft.name?"Creating worktree…":"Open in a new worktree"})]})]},ft.name)),bt>0&&q.jsxs(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-more",children:[bt," more ",Pt?"matches":"branches"," — search to narrow"]})]}),!A&&!zt&&!Pt&&q.jsx(_p,{as:"div",variant:"caption",tone:"dim",className:"volter-worktree-empty",children:"No branches found."})]}),Pt&&!Wt&&!A&&q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),q.jsxs(Jc,{className:"volter-worktree-create-command",disabled:F!==null,onSelect:()=>void G("create",()=>XSt(Pt),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:"+"}),q.jsxs("span",{className:"volter-worktree-row-copy",children:[q.jsxs("span",{className:"volter-worktree-row-title",children:["Create branch “",Pt,"”"]}),q.jsx("span",{className:"volter-worktree-row-detail",children:F==="create"?"Creating worktree…":`From ${pe}, in a new worktree`})]})]})]}),!Pt&&q.jsxs(q.Fragment,{children:[q.jsx(t2,{}),m?q.jsx(epn,{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(Ydn,{})]}),D&&q.jsx(_p,{as:"div",variant:"caption",tone:"danger",role:"alert",className:"volter-worktree-error",children:D})]})]})}function apn({transport:t}){const[,n]=Ye.useReducer(D=>D+1,0);Ye.useEffect(()=>IC(n),[]);const[s,c]=Ye.useState(!1),d=Ye.useRef(null),m=wf(),g=m?.config.name??"No Project",S=m?.config.version??null,k=m?.config.engine.version??null,A=m?.config.manifestVersion??null,F=m?.rootPath??"";return Ye.useEffect(()=>{if(!s)return;const D=J=>{d.current&&!d.current.contains(J.target)&&c(!1)};return document.addEventListener("mousedown",D),()=>document.removeEventListener("mousedown",D)},[s]),q.jsxs("header",{className:"volter-project-header",children:[uee()?.nativeMenus?q.jsx("div",{className:"volter-project-header-left"}):q.jsxs("div",{ref:d,className:"volter-project-header-left",children:[q.jsxs("div",{className:"volter-project-header-cluster volter-chrome-island volter-glass-island",children:[q.jsxs(yBe,{"data-testid":"project-menu-trigger","aria-label":`${g} project menu`,title:F?`${g} — ${F}`:g,onClick:()=>c(D=>!D),onKeyDown:D=>{D.key==="ArrowDown"&&(D.preventDefault(),c(!0))},className:"volter-project-trigger",children:[q.jsx(dc,{icon:Kk.content.project}),q.jsx(_p,{"data-testid":"project-name","data-project":g,"data-project-version":S??void 0,variant:"label",className:"volter-sr-only",children:g})]}),q.jsx(spn,{}),q.jsx(bZ,{onPointerDown:()=>c(!1),className:"volter-project-app-menus",children:q.jsx(Odn,{})})]}),q.jsx(cpn,{}),s&&q.jsxs(dN,{autoFocusFirst:!0,onDismiss:()=>{const D=d.current?.querySelector('[data-testid="project-menu-trigger"]');c(!1),requestAnimationFrame(()=>D?.focus())},className:"volter-project-menu",children:[q.jsx(_p,{"data-testid":"project-menu-name",title:g,variant:"label",truncate:!0,className:"volter-project-menu-name",children:g}),F&&q.jsx(_p,{"data-testid":"project-menu-path",title:F,variant:"caption",tone:"dim",selectable:!0,truncate:!0,className:"volter-project-path",children:F}),S&&k&&A!==null&&q.jsxs(q.Fragment,{children:[F&&q.jsx(t2,{}),q.jsxs("div",{"data-testid":"project-version-summary",className:"volter-project-versions",children:[q.jsx("span",{children:"Editor"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",njt]}),q.jsx("span",{children:"Project"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",S]}),q.jsx("span",{children:"Engine"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",k]}),q.jsx("span",{children:"Format"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",A]})]}),q.jsx(t2,{})]}),F&&q.jsx(Jc,{onSelect:()=>{c(!1),CMe(F)},children:"Show in Finder"}),q.jsx(Jc,{"data-testid":"project-menu-history",onSelect:()=>{c(!1),window.dispatchEvent(new CustomEvent("editor:show-history-tab"))},children:"Undo History…"})]})]}),q.jsx(bZ,{"data-testid":"header-transport",className:"volter-project-transport volter-chrome-island volter-glass-island",align:"center",children:t??q.jsx(lpn,{})}),q.jsx(bZ,{className:"volter-project-header-right",justify:"end",align:"center",children:q.jsx(Ame,{slot:"header-trailing"})})]})}function cpn(){Ye.useSyncExternalStore(U$,vhe,vhe),Ye.useSyncExternalStore(vDt,whe,whe);const t=Ye.useSyncExternalStore(xDt,zS,zS);if(mD().workspaceTabs!=="shown")return null;const n=DN().filter(s=>Uk(s.id));return q.jsxs(q.Fragment,{children:[q.jsx(UTr,{orientation:"vertical",className:"volter-project-menu-rule"}),q.jsx("div",{role:"tablist","aria-label":"Workspaces","data-testid":"workspace-tabs",className:"volter-workspace-tabs",children:n.map(s=>q.jsx("button",{type:"button",role:"tab","aria-selected":s.id===t,title:s.description,className:"volter-workspace-tab",onClick:()=>a2(s.id),children:s.title},s.id))})]})}function lpn(){Ye.useSyncExternalStore(hLe,YB,YB);const t=Vvr();return t.length===0?null:q.jsx(q.Fragment,{children:t.map(({id:n,Component:s})=>q.jsx(s,{documentId:""},n))})}function upn({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 fpn(t,n){return window.confirm(n)}const dpn=4,ppn=4,_pn=24,mpn=4,hpn=3,gpn=new Set(["model","image"]),ypn=new Set(["glb","gltf","fbx","obj","dae","stl","ply","spz","bvh","3ds"]);function vpn(t){const n=t.lastIndexOf(".");return n>0&&ypn.has(t.slice(n+1).toLowerCase())}const bpn=new Set(["audio","video","prefab","json"]);function Ijt(t){let n=0;const s=[];return async c=>{n>=t&&await new Promise(d=>s.push(d)),n++;try{return await c()}finally{n--,s.shift()?.()}}}function lUe(t){return t.replace(/^(?:\.\/|\/)+/,"").replace(/\/+$/,"")}function Spn(t,n){const s=t?n.slice(t.length+1):n;return s.split("/",1)[0]??s}function sTt(t,n){return t.tier-n.tier||t.depth-n.depth||t.seq-n.seq}function xpn(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 wpn(t,n){const s=[...t].sort(sTt),c=[],d=new Set;for(const m of[1,2]){const g=s.filter(S=>S.tier===m);xpn(g,c,d,n)}return c.sort(sTt),c.map(({path:m,name:g,kind:S})=>({path:m,name:g,kind:S}))}function Tpn(t){return gpn.has(t)?1:bpn.has(t)?2:0}function Cpn(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=vpn(d.name)?"model":ig(d.name).kind,S=Tpn(g);S!==0&&t.candidates.push({path:m,name:d.name,kind:g,tier:S,depth:n.depth,seq:t.seq++,subtree:Spn(t.base,m)})}}async function Epn(t,n,s={}){const c=s.listAssets??eve,d=s.maxItems??dpn,m=s.maxListings??_pn,g=Ijt(s.listConcurrency??mpn),S=lUe(n),k={base:S,maxDepth:s.maxDepth??ppn,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}Cpn(k,pe,ue.entries,G)}F=G}return{items:wpn(k.candidates,d),totalAssets:k.totalAssets,scannedAll:!k.truncated&&k.failedListings===0,failedListings:k.failedListings}}const Njt="\0",WO=new Map,kpn=Ijt(hpn);function Apn(t,n,s){const c=`${t}${Njt}${lUe(n)}`,d=WO.get(c);if(d)return d;const m=kpn(()=>Epn(t,n,s));WO.set(c,m);const g=()=>{WO.get(c)===m&&WO.delete(c)};return m.then(S=>{(S.failedListings>0||S.items.length===0&&S.totalAssets===0)&&g()},g),m}function Dpn(t,n){return t===n||t===""||n===""||t.startsWith(`${n}/`)||n.startsWith(`${t}/`)}function aTt(t){if(t===void 0){WO.clear();return}const n=lUe(t);for(const s of[...WO.keys()]){const c=s.slice(s.indexOf(Njt)+1);Dpn(c,n)&&WO.delete(s)}}function Uje(t,n="$"){return typeof t=="string"?[{path:n,value:t}]:Array.isArray(t)?t.flatMap((s,c)=>Uje(s,`${n}[${c}]`)):!t||typeof t!="object"?[]:Object.entries(t).flatMap(([s,c])=>Uje(c,`${n}.${s}`))}function Ppn(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 Ipn(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=Ppn(s,c?.text);g.some(A=>!n.has(A))&&d.add("missing-dependency");const S=[];for(const A of t.files)if(!(!A.text||!/\.json$/i.test(A.path)))try{for(const F of Uje(JSON.parse(A.text))){const D=F.value.replace(/^\//,"");D===s?S.push({ownerPath:A.path,jsonPath:F.path,assetPath:s}):D.startsWith("assets/")&&!n.has(D)&&d.add("broken-asset-reference")}}catch{}d.size===0&&d.add("healthy");const k=new Set(["missing-file","missing-dependency","invalid-metadata","broken-asset-reference"]);return{health:{status:[...d].some(A=>k.has(A))?"error":d.has("healthy")?"healthy":"warning",codes:[...d]},dependencies:g,references:S}}async function Ojt(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 Ojt(t,m)):/\.json$|\.gltf$/i.test(m)?c.push({path:m,text:await t.read(m)}):c.push({path:m})}return c}async function Npn(t,n){return Ipn({assetPath:n,files:await Ojt(t)})}function v_e(t){typeof window>"u"||(window.dispatchEvent(new CustomEvent("editor:asset-mutation",{detail:t})),window.dispatchEvent(new CustomEvent("editor:assets-changed")))}function K4(t){const n=t.replace(/^\/+/,"").replace(/\\/g,"/").replace(/\/{2,}/g,"/");if(!n||n==="."||n.split("/").some(s=>!s||s===".."))throw new Error(`Invalid project asset path: ${t}`);return n}async function OOe(t,n){for(const s of n)if(await t.exists(s))throw new Error(`An asset already exists at ${s}.`)}async function Opn(t,n){const s=k$e(n.history,n.backend);switch(t.type){case"create-folder":{const c=K4(t.path),d=`${c}/.volter-folder`;if(await n.backend.exists(c))throw new Error(`Folder already exists: ${c}.`);return s.write(d,"",{label:`Create folder ${c}`})}case"duplicate":{const c=K4(t.source),d=K4(t.destination);await OOe(n.backend,[d]);const m=await n.backend.readBytes(c);return s.write(d,m,{label:`Duplicate ${c}`})}case"move":{const c=K4(t.source),d=K4(t.destination);await OOe(n.backend,[d]);const m=await n.backend.readBytes(c),g=new Map([[d,m],[c,null]]),S=await s.mutate([...g].map(([k,A])=>({path:k,data:A})),{label:`Move ${c}`});return S&&v_e({type:"move",oldPath:c,newPath:d}),S}case"move-many":{const c=t.moves.map(A=>({source:K4(A.source),destination:K4(A.destination)}));if(c.length===0)return!1;const d=new Set(c.map(A=>A.source)),m=c.map(A=>A.destination);if(new Set(m).size!==m.length)throw new Error("Batch move destinations must be unique.");for(const A of m)if(!d.has(A)&&await n.backend.exists(A))throw new Error(`An asset already exists at ${A}.`);const g=await Promise.all(c.map(async A=>({...A,bytes:await n.backend.readBytes(A.source)}))),S=new Map;for(const{destination:A,bytes:F}of g)S.set(A,F);for(const{source:A}of g)m.includes(A)||S.set(A,null);const k=await s.mutate([...S].map(([A,F])=>({path:A,data:F})),{label:`Move ${c.length} assets`});if(k)for(const A of c)v_e({type:"move",oldPath:A.source,newPath:A.destination});return k}case"delete":{const c=[...new Set(t.paths.map(K4))],d=await s.mutate(c.map(m=>({path:m,data:null})),{label:`Delete ${c.length} asset${c.length===1?"":"s"}`});return d&&v_e({type:"delete",paths:c}),d}case"import":{const c=t.files.map(m=>({path:K4(m.path),data:m.bytes}));await OOe(n.backend,c.map(m=>m.path));const d=await s.mutate(c,{label:`Import ${c.length} asset${c.length===1?"":"s"}`});return d&&v_e({type:"change",paths:c.map(m=>m.path)}),d}}}const Rpn=320,Fpn=180,Mpn="document-preview-v4",gZ=new Map,jpn=new QPt(async t=>{const n=gZ.get(t);if(await new Promise(s=>{typeof requestIdleCallback=="function"?requestIdleCallback(()=>s(),{timeout:1e3}):setTimeout(s,0)}),[...n.consumers].every(s=>s.aborted))throw new DOMException("Preview demand was cancelled.","AbortError");return n.run()},1);let ZZ=null,cTt,ROe=null;const WY=new Set;async function Rjt(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 Rjt(d.path)):c.push(`${d.path}:${d.size??0}:${d.mtime??0}`);return c}async function Lpn(){const t=wf()?.rootPath;return cTt!==t&&(cTt=t,ZZ=null),ZZ??=Promise.all([JRt([xR,"volter.adapter.ts",".storybook/**/*","src/**/*.ts","src/**/*.tsx","src/**/*.js","src/**/*.jsx","src/**/*.mjs","src/**/*.cjs","src/**/*.json","src/**/*.css"]).then(async n=>Promise.all(n.map(async s=>`${s}:${await EMe(s)??""}`))),Rjt("")]).then(([n,s])=>Fjt([...n,...s].sort().join(`
|
|
1404
1404
|
`))),ZZ}function Bpn(t){return WY.add(t),ROe??=Dg.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")){ZZ=null;for(const s of WY)s()}}),()=>{WY.delete(t),WY.size===0&&(ROe?.(),ROe=null,ZZ=null)}}async function $pn(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=jpn.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 Fjt(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 qpn(t){const n=/^data:([^;,]+);base64,(.*)$/s.exec(t);if(!n)throw new Error("Document preview owner returned an invalid image data URL.");const s=atob(n[2]),c=new Uint8Array(s.length);for(let d=0;d<s.length;d++)c[d]=s.charCodeAt(d);return{mime:n[1],bytes:c}}function lTt(t,n="image/png"){const s=new Uint8Array(t.byteLength);return s.set(t),URL.createObjectURL(new Blob([s.buffer],{type:n}))}async function zpn(t){const n=await E$e();if(n.status!=="ok")return;const s=n.manifest.entries[`document:${t}`]?.framing;return s?{position:{x:s.position[0],y:s.position[1],z:s.position[2]},target:{x:s.target[0],y:s.target[1],z:s.target[2]},...s.fov===void 0?{}:{fov:s.fov}}:void 0}async function Vpn(t,n,s,c){const d=wf()?.rootPath??"no-project",m=await zpn(t),g=JSON.stringify({projectId:d,documentId:t,recipe:Mpn,revision:n.revision(),dependencies:await Lpn(),camera:m});c.throwIfAborted();const S=await Fjt(g),k=`.volter/cache/document-previews/${S}.png`;if(s===0&&await Dg.exists(k))return lTt(await Dg.readBytes(k));const A=await $pn(S,c,()=>n.capture({width:Rpn,height:Fpn,...m?{camera:m}:{}}));c.throwIfAborted();const F=qpn(A);return await Dg.write(k,F.bytes),lTt(F.bytes,F.mime)}function Upn({documentId:t,source:n,previewRevision:s}){const[c,d]=Ye.useState(null),[m,g]=Ye.useState(null),[S,k]=Ye.useState(0),[A,F]=Ye.useState(0),[D,J]=Ye.useState(!0),[$,G]=Ye.useState(!1),se=Ye.useRef(null),pe=Ye.useRef(null),ue=Ye.useRef(null),Ce=Ye.useRef({previewRevision:s,retry:A});return Ye.useEffect(()=>{let De=null;const Pe=()=>{pe.current?.abort(),J(!0),De&&clearTimeout(De),De=setTimeout(()=>k(we=>we+1),750)},be=n.subscribe(Pe),X=Bpn(Pe);return()=>{De&&clearTimeout(De),be(),X()}},[n]),Ye.useEffect(()=>()=>{ue.current?.startsWith("blob:")&&URL.revokeObjectURL(ue.current)},[]),Ye.useEffect(()=>{const De=se.current;if(!De)return;const Pe=new IntersectionObserver(([be])=>G(be?.isIntersecting??!1));return Pe.observe(De),()=>Pe.disconnect()},[]),Ye.useEffect(()=>{if(!$)return;const De=new AbortController;pe.current=De;const Pe=Ce.current.previewRevision!==s||Ce.current.retry!==A?1:0;return g(null),J(!0),Vpn(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 Mjt(t,n){return rve(t,n.path)}function Jpn({root:t,item:n}){const[s,c]=Ye.useState(!1);return s?q.jsx(vD,{kind:"image",size:14}):q.jsx("img",{src:Mjt(t,n),alt:n.name,loading:"lazy",onError:()=>c(!0)})}function Wpn({root:t,item:n}){const s=R9t(Mjt(t,n),Gin);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 Hpn({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(Jpn,{root:t,item:n}):n.kind==="model"?q.jsx(Wpn,{root:t,item:n}):q.jsx(wR,{kind:n.kind,name:n.name,variant:"cell"})}function Gpn({root:t,folderPath:n,revision:s}){const[c,d]=Ye.useState(null);if(Ye.useEffect(()=>{d(null)},[t,n]),Ye.useEffect(()=>{let g=!1;return Apn(t,n).then(S=>{g||d(S)},()=>{g||d("failed")}),()=>{g=!0}},[t,n,s]),c===null||c==="failed")return q.jsx(vD,{kind:"folder"});if(c.totalAssets===0)return q.jsx("div",{className:"volter-folder-preview","data-testid":"folder-preview-empty","aria-hidden":"true",children:q.jsxs("div",{className:"volter-folder-preview__empty",children:[q.jsx(dc,{icon:qOe,className:"volter-folder-preview__empty-glyph"}),q.jsx("span",{className:"volter-folder-preview__empty-caption",children:"Empty"})]})});const m=c.scannedAll?`${c.totalAssets}`:`${c.totalAssets}+`;return c.items.length===0?q.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview-plain","aria-hidden":"true",children:[q.jsx("div",{className:"volter-folder-preview__fallback",children:q.jsx(vD,{kind:"folder"})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]}):q.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview","aria-hidden":"true",children:[q.jsx("div",{className:"volter-folder-preview__grid","data-count":c.items.length,children:c.items.map(g=>q.jsx("div",{className:"volter-folder-preview__cell",children:q.jsx(Hpn,{root:t,item:g})},g.path))}),q.jsx("span",{className:"volter-folder-preview__chip",children:q.jsx(dc,{icon:fee})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]})}const jjt="contentBrowser";function Jje(t){return t.type==="directory"?"folder":ig(t.name).kind}function Kpn(t,n,s){return rve(t,n?`${n}/${s}`:s)}function Xpn(t,n,s){return n?`/${n}/${s}`:`/${s}`}function Ypn(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Wje(t){const n=ig(t);return n.importable?n.runtimeReady?"healthy":"source-only":"unsupported"}const Zpn=640,uTt={scope:"content",root:"public",currentPath:"",viewMode:"grid",sort:"relevance",filter:"all",density:96,expanded:["public"],treeVisibility:"auto",facets:["component"]};function Qpn(){try{const t=Cve(jjt)??{},n=t.viewMode,s=t.treeVisibility,c=t.scope,d=t.root;return{...uTt,...t,root:d===nA?nA:"public",currentPath:t.currentPath??"",scope:c==="files"?"files":"content",viewMode:c==="files"&&n==="list"?"list":"grid",treeVisibility:s==="shown"||s==="hidden"?s:"auto",facets:Array.isArray(t.facets)&&t.facets.length>0?[t.facets[0]]:["component"]}}catch{return uTt}}const e_n={listAssets:eve,listProjectComponents:VRt},FOe="Reference material is not part of the built game — it stays in the project's references/ folder and is never exported. Copy the file into public/ to use it in the game; edit or remove it where it lives.",t_n=new Set(["component","scene","canvas","model","image","video","audio","other"]);function r_n(t){const n=t.charAt(0).toUpperCase()+t.slice(1);return n.endsWith("s")?n:`${n}s`}async function fTt(t,n){if(!n&&Pp()!==t)throw new Error("Open this scene as the active document before using its current view.");const s=s2(t)?.read()?.camera,c=s&&typeof s!="string"?s:null;if(!n&&!c)throw new Error("The active scene has no ready 3D authoring view to save.");await Zsn().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 n_n(t){return t.component.surface==="three"?"3d":t.component.surface==="canvas"?"2d":"ui"}function i_n(t){const n={"3d":"3D","2d":"2D",ui:"UI"};return["3d","2d","ui"].flatMap(s=>{const c=t.filter(d=>d.source==="component"&&n_n(d)===s);return c.length>0?[{id:`prefabs-${s}`,label:n[s],headingLevel:"category",entries:c}]:[]})}function o_n(t,n,s){return n==="files"?[{id:"files",label:null,headingLevel:null,entries:[...t]}]:s.length===1&&s[0]==="component"?i_n(t):t.length>0?[{id:"content",label:null,headingLevel:null,entries:[...t]}]:[]}function Ljt(t){return t.source==="available"?t.available.category:t.source==="component"?t.component.contentKind??"component":t.source==="document"?t.document.kind:U9t(t.name)}function s_n(t){return t.source==="component"?t.component.contentKind??"component":t.source==="available"||t.source==="document"?"source":Jje(t.entry)}function HO(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function a_n(t,n){if(t.source==="component"||t.source==="document"||t.source==="available")return;const{entry:s}=t,{currentRoot:c,currentPath:d,navigate:m,openAsset:g}=n;if(s.type==="directory"){m(c,d?`${d}/${s.name}`:s.name);return}const S=ig(s.name),k=FB(S);if(k){if(t.spritesheet){const A=t.path.includes("#")?t.path.slice(t.path.lastIndexOf("#")+1):s.name.replace(/\.png$/i,"");g(`/${t.spritesheet.sheetPath}#${A}`,k);return}g(Kpn(t.root,d,s.name),k)}}function Bjt(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":Ypn(t.entry.size)}function c_n(t){if(t.source==="component")return`${t.name}
|
|
@@ -1406,4 +1406,4 @@ ${t.path}:${t.component.line}`;if(t.source==="available")return`${t.name}
|
|
|
1406
1406
|
${t.path}`;if(t.source==="document")return`${t.name}
|
|
1407
1407
|
${t.path}`;const n=Bjt(t);return n?`${t.name}
|
|
1408
1408
|
${n}`:t.name}function l_n(t,n,s){if(t.source==="component"||t.source==="document"||t.source==="available"||n==="all"||t.entry.type==="directory")return!0;const c=ig(t.name),d=s?`${s}/${t.name}`:t.name;return{"runtime-ready":c.runtimeReady,"source-only":c.importable&&!c.runtimeReady,unsupported:!c.importable,imported:d.startsWith("asset-library/local/"),generated:d.startsWith(".generated/")}[n]}function HB(t,n){return t.name.localeCompare(n.name)||t.path.localeCompare(n.path)}function dTt(t){return t.source==="asset"?Pon({path:t.path,root:t.root,entry:t.entry}):t.source==="available"||t.source==="document"?10:Ion(t.component)-100}function u_n(t,n){const s=dTt(t),c=dTt(n);return s!==c?s-c:t.source!==n.source?t.source==="component"?-1:1:(t.source==="component"&&n.source==="component"||t.source!=="asset"||n.source!=="asset",HB(t,n))}function pTt(t,n){return t===void 0?n===void 0?0:1:n===void 0?-1:n-t}function f_n(t,n,s){if(t.entry.type!==n.entry.type)return t.entry.type==="directory"?-1:1;if(s==="size"&&t.entry.size!==n.entry.size)return pTt(t.entry.size,n.entry.size);if(s==="modified"&&t.entry.modifiedAt!==n.entry.modifiedAt)return pTt(t.entry.modifiedAt,n.entry.modifiedAt);if(s==="type"){const c=Jje(t.entry).localeCompare(Jje(n.entry));if(c!==0)return c}if(s==="health"){const c=Wje(t.name).localeCompare(Wje(n.name));if(c!==0)return c}return HB(t,n)}function d_n(t,n,s){return s==="relevance"?u_n(t,n):s==="name"?HB(t,n):t.source!==n.source?t.source==="component"?-1:1:t.source!=="asset"||n.source!=="asset"?HB(t,n):f_n(t,n,s)}function p_n(t,n){if(n.query&&!`${t.name} ${t.path}`.toLowerCase().includes(n.query))return!1;if(n.scope==="content"&&n.facets.length>0){const s=Ljt(t);return n.facets.includes(s)}return n.scope==="content"||l_n(t,n.filter,n.shownPath)}const __n={width:"100%",minWidth:0,padding:0,textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:3},m_n={width:"100%",minWidth:0,minHeight:28,padding:"3px 6px",textAlign:"left",display:"flex",flexDirection:"row",alignItems:"center",gap:7};function h_n(t){const n=new Map;if(!t.assetSubject)return n;const s=t.assetSubject.entries?.()??F3r(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 g_n=()=>()=>{},y_n=()=>0;function v_n({sheetUrl:t,frame:n}){return q.jsx(j9t,{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 b_n({item:t,kind:n,assetUrl:s,grid:c,folderPath:d,previewRevision:m}){const g=s;if(n==="folder")return c?q.jsx(Gpn,{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(Xin,{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(Upn,{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(v_n,{sheetUrl:`/${t.spritesheet.sheetPath}`,frame:t.spritesheet}):q.jsx("img",{src:g,alt:t.name,style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:aQ.sm}}):n==="video"&&g?q.jsx("video",{src:`${g}#t=0.1`,muted:!0,playsInline:!0,preload:"metadata",style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:aQ.sm}}):n==="model"||O9t(s)?q.jsx(F9t,{url:s}):["prefab","json"].includes(n)?q.jsx(wR,{kind:n,name:t.name}):q.jsx(vD,{kind:n})}function S_n({item:t,selected:n,onDragStart:s,onSelect:c,onOpen:d,onContextMenu:m,viewMode:g,previewRevision:S,showPath:k}){const A=s_n(t),F=t.source==="asset"?t.entry:null,D=F?.type==="file"?ig(F.name):null,J=t.source==="asset"?rve(t.root,t.path):"",$=t.path,G=c_n(t),se=F?F.type==="directory"||D?.placeable?D?.placeable?"grab":"pointer":"default":"pointer",pe=Bjt(t),ue=t.source==="component"?t.path:t.source==="asset"?Oge(t.root,HO(t.path)).replace(/\/$/,""):HO(t.path)||"public",Ce=k?`${ue} · ${pe}`:pe,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&&Vin(J)},onPointerLeave:()=>{A==="audio"&&J&&Uin(J)},onDragStart:Pe=>s(Pe,t),onDragEnd:T3r,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?__n:m_n,borderRadius:aQ.sm,cursor:se,userSelect:"none"},children:[q.jsxs("div",{className:"volter-project-asset-entry__preview","data-testid":"asset-entry-preview",style:{...De?{width:"100%",aspectRatio:t.source==="available"&&t.available.descriptor.preview?"16 / 9":"1 / 1",margin:"0 auto"}:{width:18,height:18,margin:0},display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",borderRadius:aQ.sm,pointerEvents:"none",position:"relative"},children:[q.jsx(b_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 x_n({scope:t,facets:n,availableFacets:s,currentPath:c,currentRoot:d,searchOpen:m,searchQuery:g,viewMode:S,density:k,treeVisible:A,onScopeChange:F,onFacetToggle:D,onFacetsClear:J,onNavigate:$,onSearchOpenChange:G,onSearchQueryChange:se,onViewModeChange:pe,onDensityChange:ue,onTreeVisibilityToggle:Ce,onCreateFolder:De,onImport:Pe,onDelete:be,deleteDisabled:X,onRefresh:we,generationTools:qe,onGenerate:bt}){const Pt=Ye.useRef(null),Wt=Ye.useRef(!0),zt=Ye.useRef(null),[ft,tr]=Ye.useState(!1),Qt=c?c.split("/"):[],Tt=HO(c),vn=d===nA?"References":"Files",Yr=()=>{se(""),G(!1)};return Ye.useEffect(()=>{if(!ft)return;const en=ii=>{Pt.current?.contains(ii.target)||tr(!1)};return document.addEventListener("pointerdown",en),()=>document.removeEventListener("pointerdown",en)},[ft]),Ye.useLayoutEffect(()=>{const en=zt.current;if(!en)return;const ii=()=>{en.scrollLeft=en.scrollWidth};Wt.current=!0,ii();const No=()=>{Wt.current=en.scrollWidth-en.clientWidth-en.scrollLeft<=1};en.addEventListener("scroll",No,{passive:!0});const gn=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>{Wt.current&&ii()});return gn?.observe(en),()=>{en.removeEventListener("scroll",No),gn?.disconnect()}},[c,m]),q.jsxs("div",{className:"volter-project-assets-toolbar",children:[q.jsxs(n$,{label:"Content display",compact:!0,className:"volter-project-assets-toolbar__row",children:[q.jsxs(Pht,{children:[q.jsx(hO,{text:"Content grid",position:"top",children:q.jsx(pm,{"aria-label":"Content grid","data-testid":"content-scope-content","aria-pressed":t==="content",onClick:()=>{t!=="content"&&F("content"),pe("grid")},children:q.jsx(dc,{icon:avr})})}),q.jsx(hO,{text:"Browse grid",position:"top",children:q.jsx(pm,{"aria-label":"Browse grid","data-testid":"content-scope-files","aria-pressed":t==="files"&&S==="grid",onClick:()=>{t!=="files"&&F("files"),pe("grid")},children:q.jsx(dc,{icon:jTt})})}),q.jsx(hO,{text:"Browse list",position:"top",children:q.jsx(pm,{"aria-label":"Browse list","data-testid":"asset-view-list","aria-pressed":t==="files"&&S==="list",onClick:()=>{t!=="files"&&F("files"),pe("list")},children:q.jsx(dc,{icon:vZ})})})]}),q.jsx("span",{style:{flex:1}}),m?q.jsx(Zm,{type:"text","data-testid":"asset-search-input","aria-label":"Search content",placeholder:"Search content...",value:g,onChange:en=>se(en.target.value),onKeyDown:en=>{en.key==="Escape"&&Yr()},className:"volter-input",autoFocus:!0,style:{flex:"0 1 160px",minWidth:60}}):null,q.jsx(hO,{text:m?"Close search":"Search",position:"top",children:q.jsx(pm,{"data-testid":m?"asset-search-close":"asset-search-toggle","aria-label":m?"Close search":"Search content",onClick:()=>{m?Yr():G(!0)},children:q.jsx(dc,{icon:m?Kk.action.close:Kk.action.search})})})]}),q.jsxs(n$,{label:t==="content"?"Content types":"Folder navigation",compact:!0,className:"volter-project-assets-toolbar__row",children:[t==="files"&&q.jsxs(q.Fragment,{children:[q.jsx(hO,{text:A?"Hide folders":"Show folders",position:"top",children:q.jsx(pm,{"data-testid":"asset-tree-toggle","aria-label":A?"Hide folder tree":"Show folder tree","aria-controls":"project-asset-tree","aria-expanded":A,onClick:Ce,children:q.jsx(dc,{icon:nCt})})}),q.jsx(hO,{text:"Back",position:"top",children:q.jsx(pm,{"data-testid":"asset-back","aria-label":"Back",disabled:!c,onClick:()=>$(d,Tt),children:q.jsx(dc,{icon:X0r})})}),q.jsxs("nav",{ref:zt,"data-testid":"asset-breadcrumb","aria-label":"Asset location",style:{flex:1,display:"flex",alignItems:"center",gap:2,fontSize:12,minWidth:0,overflowX:"auto",overflowY:"hidden",whiteSpace:"nowrap"},children:[c?q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",onClick:()=>$(d,""),style:{flexShrink:0},children:vn}):q.jsx("span",{"aria-current":"location",style:{color:Zf[1]},children:vn}),Qt.map((en,ii)=>{const No=Qt.slice(0,ii+1).join("/"),gn=ii===Qt.length-1;return q.jsxs("span",{style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[q.jsx("span",{style:{color:Zf[3]},children:"/"}),gn?q.jsx("span",{"aria-current":"location",title:en,style:{color:Zf[1]},children:en}):q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",onClick:()=>$(d,No),children:en})]},No)})]})]}),t==="content"&&q.jsxs(Pht,{className:"volter-content-filter-inline","aria-label":"Content types",children:[m&&q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":"content-filter-all","aria-pressed":n.length===0,onClick:J,children:"All"}),[...[["component","Prefabs"],["scene","Scenes"],["canvas","Canvases"],["model","Models"],["image","Images"],["video","Videos"],["audio","Audio"],["other","Other"]].filter(([en])=>s.has(en)),...[...s].filter(en=>!t_n.has(en)).sort().map(en=>[en,r_n(en)])].map(([en,ii])=>q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":`content-filter-${en}`,"aria-pressed":n.includes(en),onClick:()=>D(en),children:ii},en))]}),q.jsxs("div",{ref:Pt,className:"volter-project-assets-toolbar__more",children:[q.jsx(hO,{text:"More asset actions",position:"top",children:q.jsx(pm,{"aria-label":"More asset actions","aria-expanded":ft,"aria-haspopup":"menu",onClick:()=>tr(en=>!en),children:q.jsx(dc,{icon:h0r})})}),ft&&q.jsxs(dN,{autoFocusFirst:!0,className:"volter-project-assets-toolbar__menu",onDismiss:()=>tr(!1),children:[q.jsx(Jc,{"data-command-id":O_.import.id,onSelect:()=>{tr(!1),Pe()},children:"Import files…"}),q.jsx(Jc,{"data-command-id":O_.createFolder.id,onSelect:()=>{tr(!1),De()},children:"New folder"}),qe.length>0&&q.jsxs(q.Fragment,{children:[q.jsx("hr",{className:"volter-menu-separator"}),q.jsx(Jc,{onSelect:()=>{tr(!1),bt()},children:"Create asset…"})]}),q.jsx(Jc,{onSelect:()=>{tr(!1),ue(k<=96?132:88)},children:k<=96?"Larger thumbnails":"Smaller thumbnails"}),q.jsx(Jc,{disabled:X,"data-command-id":O_.delete.id,onSelect:()=>{tr(!1),be()},children:"Delete selected"}),q.jsx(Jc,{onSelect:()=>{tr(!1),we()},children:"Refresh"})]})]})]})]})}function w_n(t){const[n,s]=Ye.useState(new Map);Ye.useEffect(()=>{s(new Map)},[t.revision]),Ye.useEffect(()=>{for(const d of t.expanded){if(n.has(d))continue;const m=GRt.find(S=>d===S||d.startsWith(`${S}/`));if(!m)continue;const g=d===m?"":d.slice(`${m}/`.length);t.loadAssets(m,g).then(S=>{S.ok&&s(k=>{const A=new Map(k);return A.set(d,S.entries.filter(F=>F.type==="directory").map(F=>F.name)),A})})}},[n,t.expanded,t.loadAssets]);const c=(d,m,g)=>{const S=m?`${d}/${m}`:d,k=t.expanded.has(S),A=m.split("/").pop()||d;return q.jsxs("div",{children:[q.jsxs("div",{className:"volter-asset-tree-row",style:{paddingLeft:6+g*14},children:[q.jsx(pm,{className:"volter-asset-tree-toggle","aria-label":`${k?"Collapse":"Expand"} ${A}`,"aria-expanded":k,onClick:()=>t.onExpanded(S),children:q.jsx(dc,{icon:LTt,style:{transform:k?"rotate(90deg)":void 0}})}),q.jsxs(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target","aria-current":t.currentRoot===d&&t.currentPath===m?"page":void 0,onClick:()=>t.onNavigate(d,m),children:[q.jsx(dc,{icon:fee}),A]})]}),k&&n.get(S)?.map(F=>c(d,m?`${m}/${F}`:F,g+1))]},S)};return q.jsxs("aside",{id:"project-asset-tree",className:"volter-asset-tree","aria-label":"Project asset sources",hidden:t.hidden,children:[q.jsx("div",{className:"volter-asset-facet-title",children:"Project"}),c("public","",0),q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>t.onNavigate("public","asset-library/local"),children:"Imported"}),q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>t.onNavigate("public",".generated"),children:"Generated"}),q.jsx("div",{className:"volter-asset-facet-title",children:"References"}),c(nA,"",0)]})}function T_n(t){const n=Ye.useRef(null),[s,c]=Ye.useState(t),[d,m]=Ye.useState(!0);Ye.useLayoutEffect(()=>{const k=n.current;if(!k)return;const A=D=>{D>0&&m(D>=Zpn)};if(A(k.getBoundingClientRect().width),typeof ResizeObserver>"u")return;const F=new ResizeObserver(([D])=>{D&&A(D.contentRect.width)});return F.observe(k),()=>F.disconnect()},[]);const g=s==="shown"||s==="auto"&&d,S=Ye.useCallback(()=>{c(g?"hidden":"shown")},[g]);return{browserRef:n,treeVisibility:s,treeVisible:g,toggleTreeVisibility:S}}function C_n({services:t=e_n}){const n=Yv(),s=typeof n.subscribe=="function"?n.subscribe:g_n,c=typeof n.getSnapshot=="function"?n.getSnapshot:y_n,d=typeof n.getShellSnapshot=="function"?n.getShellSnapshot:c,m=Ye.useSyncExternalStore(s,d,d),g=Ye.useSyncExternalStore(Eee,AD,AD),S=Ye.useSyncExternalStore(o2,K1,K1),k=Ye.useRef(n);k.current=n;const A=eMt(),F=Ye.useSyncExternalStore(u2,rA,rA),D=Ye.useSyncExternalStore(E9t,Jge,Jge),J=F.filter(pr=>pr.point==="workspace.document"&&pr.tool?.generation?.role==="submit"),$=Ye.useMemo(Qpn,[]),[G,se]=Ye.useState($.root),[pe,ue]=Ye.useState($.scope),[Ce,De]=Ye.useState($.facets),[Pe,be]=Ye.useState($.currentPath),[X,we]=Ye.useState($.viewMode),[qe,bt]=Ye.useState($.scope==="content"?"relevance":"name"),[Pt,Wt]=Ye.useState("all"),[zt,ft]=Ye.useState($.density),{browserRef:tr,treeVisibility:Qt,treeVisible:Tt,toggleTreeVisibility:vn}=T_n($.treeVisibility),[Yr,en]=Ye.useState(!1),[ii,No]=Ye.useState({path:$.currentPath,entries:[]}),[gn,En]=Ye.useState([]),[cs,On]=Ye.useState([]),ji=Ye.useSyncExternalStore(Ttn,ive),Ja=Ye.useSyncExternalStore(OC,u0,u0),[_a,Pn]=Ye.useState(!1),[js,fa]=Ye.useState([]),[Nt,Bc]=Ye.useState(new Set($.expanded)),[Ni,Dc]=Ye.useState(0),[vc,Tf]=Ye.useState(0),[Np,Au]=Ye.useState(""),[dl,bu]=Ye.useState(new Set),[Al,Ku]=Ye.useState(null),[pl,gs]=Ye.useState(null),[Xu,$r]=Ye.useState(""),Sl=Ye.useCallback(pr=>{$r(pr.initial),gs(pr)},[]),[Rl,mi]=Ye.useState(!1),[tu,Wc]=Ye.useState(null),[Ao,ia]=Ye.useState(null),Du=Ye.useRef(null),gp=Ye.useRef(new Map),Id=Ye.useRef("");Ye.useEffect(()=>{Eve(jjt,{scope:pe,root:G,facets:Ce,currentPath:Pe,viewMode:X,sort:qe,filter:Pt,density:zt,expanded:[...Nt],treeVisibility:Qt})},[Pe,G,zt,Nt,Ce,Pt,pe,qe,Qt,X]);const ea=Ye.useCallback(async(pr,Ur)=>{const Ei=`${pr}:${Ur}`;Id.current=Ei;const Li=(kc,Nd)=>{Id.current===Ei&&No({path:Ur,entries:kc,...Nd===void 0?{}:{failure:Nd}})},uc=gp.current.get(Ei);if(uc){Li(uc);return}try{const kc=await t.listAssets(pr,Ur);if(!kc.ok){Li([],kc.reason);return}gp.current.set(Ei,kc.entries),Li(kc.entries)}catch(kc){Li([],kc instanceof Error?kc.message:String(kc))}},[t]);Ye.useEffect(()=>{ea(G,Pe)},[G,Pe,ea]);const Pu=Ye.useCallback(async()=>{Pn(!0);try{const[pr,Ur]=await Promise.all([V9t(t.listAssets),t.listProjectComponents()]),Ei=await Aon(pr.assets,async Li=>{try{const uc=await fetch(`/${Li}`);return uc.ok?await uc.text():null}catch{return null}});En(Ei),On(Ur.ok?Ur.entries:[]),fa([...pr.failedListings,...Ur.ok?[]:[`component index: ${Ur.reason}`]])}catch(pr){En([]),On([]),fa([pr instanceof Error?pr.message:String(pr)])}finally{Pn(!1)}},[t]);Ye.useEffect(()=>{pe==="content"&&Pu()},[Pu,pe]);const Ls=Ye.useCallback((pr,Ur)=>{se(pr),be(Ur),bu(new Set),Wc(null),oD(),Au(""),en(!1)},[]),Ff=Ye.useCallback(pr=>{ue(pr),bt(pr==="content"?"relevance":"name"),Wt("all"),bu(new Set),Wc(null),oD()},[]),Hs=Ye.useCallback(pr=>{De([pr])},[]),Ds=Ye.useCallback(pr=>{en(pr),pr||De(Ur=>Ur.length>0?Ur:["component"])},[]),Oc=ii.path,Ze=Ye.useMemo(()=>h_n(Cm(k.current).adapter),[g,m,S]),jt=Ye.useMemo(()=>Cm(k.current).surface,[g,m,S]),mt=Ye.useMemo(()=>{if(pe==="content"){const pr=new Map(cs.map(Li=>[`${Li.path}:${Li.name}`,Li])),Ur=Oin().flatMap(Li=>Li.entries({components:cs,surface:jt}).flatMap(uc=>{const kc=pr.get(`${uc.component.path}:${uc.component.name}`);if(!kc)return[];const Nd=`${kc.path.replace(/^\.\//,"")}:${kc.name}`,Lo=Ze.get(Nd);return[{source:"component",key:`component:${Li.id}:${uc.id}`,name:kc.name,path:kc.path,component:kc,contentSource:Li,contentEntry:uc,...Lo?{authoringAsset:Lo}:{}}]})),Ei=(Ja?.scenes.entries??[]).flatMap(Li=>{if(Li.kind==="prefab")return[];const uc=Li.kind==="scene"?tVe(Li):null;return uc&&ji.some(kc=>(kc.category==="scene"||kc.category==="canvas")&&(uc.kind==="root-document"&&kc.rootId===uc.regionId||uc.kind==="isolation-document"&&kc.descriptor.id===uc.documentId||!!Li.source?.path&&kc.descriptor.provenance?.sourcePath?.replace(/^\.\//,"")===Li.source.path.replace(/^\.\//,"")))?[]:Li.kind!=="scene"&&!Li.source?[]:[{source:"document",key:`document:${Li.id}`,name:Li.label,path:Li.source?.path??"",document:Li}]});return[...Ur,...Ei,...ji.map(Li=>({source:"available",key:`available:${Li.descriptor.id}`,name:Li.descriptor.title,path:Li.descriptor.provenance?.sourcePath??"",available:Li})),...gn.map(({path:Li,root:uc,entry:kc,spritesheet:Nd})=>({source:"asset",key:`asset:${uc}:${Li}`,name:kc.name,path:Li,root:uc,entry:kc,...Nd?{spritesheet:Nd}:{}}))]}return ii.entries.map(pr=>{const Ur=ii.path?`${ii.path}/${pr.name}`:pr.name;return{source:"asset",key:`asset:${G}:${Ur}`,name:pr.name,path:Ur,root:G,entry:pr}})},[jt,Ja,ji,Ze,cs,gn,D,G,ii,pe]),xt=pe==="content"?js[0]??null:ii.failure??null,xr=Ye.useMemo(()=>{const pr=Np.toLowerCase(),Ur=mt.filter(Li=>p_n(Li,{query:pr,scope:pe,facets:Ce,filter:Pt,shownPath:Oc})),Ei=pe==="files"&&qe==="relevance"?"name":qe;return[...Ur].sort((Li,uc)=>d_n(Li,uc,Ei))},[mt,Ce,Oc,Pt,pe,Np,qe]),Vn=Ye.useMemo(()=>{const pr=new Set;for(const Ur of mt)pr.add(Ljt(Ur));return pr},[mt]),eo=Ye.useMemo(()=>o_n(xr,pe,Ce),[Ce,xr,pe]),bi=Ye.useCallback((pr,Ur)=>{if(Ur.source==="component"){const Lo={path:Ur.path,kind:"component",name:Ur.name,component:{kind:"component",name:Ur.component.name,sourcePath:Ur.component.path,exportKind:Ur.component.defaultExport?"default":"named",surface:Ur.component.surface}};pr.dataTransfer.setData("text/plain",Ur.name),pr.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Lo));return}if(Ur.source==="document"||Ur.source==="available"){if("dataTransfer"in pr){pr.dataTransfer.setData("text/plain",Ur.path);return}return}const{entry:Ei}=Ur,Li=ig(Ei.name);if(Ur.root===nA){pr.preventDefault(),i0(`${Ei.name} is reference material. ${FOe}`);return}if(Ur.spritesheet){pr.preventDefault(),i0(`${Ei.name} is one frame of the ${Ur.spritesheet.sheetPath.split("/").pop()??"sprite sheet"} sprite sheet — it is placed through the Prefab that animates it, not on its own. Drop a Prefab, or a standalone image file.`);return}if(Ei.type!=="file"||!Li.placeable){pr.preventDefault();return}const uc=FB(Li);if(!uc)return;const Nd={path:Xpn(G,HO(Ur.path),Ei.name),kind:uc,name:Ei.name};pr.dataTransfer.setData("text/plain",Ei.name),pr.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Nd))},[G]),ta=Ye.useCallback((pr,Ur)=>{let Ei=new Set;if(Ur.shiftKey&&tu){const Op=xr.findIndex(Rh=>Rh.key===tu),ls=xr.findIndex(Rh=>Rh.key===pr.key);if(Op>=0&&ls>=0){const[Rh,Gi]=Op<ls?[Op,ls]:[ls,Op];Ei=new Set(xr.slice(Rh,Gi+1).map(U=>U.key))}}else Ur.metaKey||Ur.ctrlKey?(Ei=new Set(dl),Ei.has(pr.key)?Ei.delete(pr.key):Ei.add(pr.key),Wc(pr.key)):(Ei.add(pr.key),Wc(pr.key));if(bu(Ei),pr.source==="component"){if(pr.component.contentKind==="image"&&pr.authoringAsset){BI({path:pr.authoringAsset.subject.sourcePath??pr.path,name:pr.name,kind:"image",capabilities:ig("svg"),health:"healthy",selectionCount:Ei.size});return}BI({path:pr.path,name:pr.name,kind:"component",health:"healthy",selectionCount:Ei.size,componentPreview:{surface:pr.component.surface,sourcePath:pr.component.path}});return}if(pr.source==="document"||pr.source==="available"){BI({path:`/${pr.path}`,name:pr.name,kind:"source",capabilities:ig(pr.name),origin:"project",health:"healthy",selectionCount:Ei.size});return}const{entry:Li}=pr;if(Li.type==="directory"){oD();return}const uc=ig(Li.name),kc=FB(uc)??"unknown",Nd=rve(pr.root,pr.path);if(BI({path:Nd,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Wje(Li.name),selectionCount:Ei.size,...pr.path.startsWith("asset-library/local")?{sourcePath:"Asset Library provenance metadata"}:{}}),pr.root!=="public")return;const Lo=pr.path;Npn(gR(),Lo).then(Op=>{const ls=Nd;X0e()?.path===ls&&BI({path:ls,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Op.health.status==="healthy"?"healthy":uc.runtimeReady?"unsupported":"source-only",healthCodes:Op.health.codes,dependencies:Op.dependencies,references:Op.references,selectionCount:Ei.size})}).catch(()=>{})},[xr,dl,tu]),ic=Ye.useCallback(pr=>{if(pr.source==="component"){if(pr.authoringAsset){gQr(pr.authoringAsset.id,pr.authoringAsset.subject);return}pr.contentSource.open(n,pr.contentEntry,pr.name);return}if(pr.source==="available"){xN(pr.available.descriptor.id);return}if(pr.source==="document"){if(pr.document.kind==="scene"){const Ur=RFt(pr.document.id);Ur.ok||Qs.error(Ur.error,"scene");return}ID(pr.document)||aN(`/${pr.path}`,IFt(pr.document));return}a_n(pr,{currentRoot:G,currentPath:pr.source==="asset"?HO(pr.path):"",navigate:Ls,openAsset:(Ur,Ei)=>aN(Ur,Ei)})},[G,Ls,n]),Ps=Ye.useCallback(pr=>{if(Dc(Ur=>Ur+1),gp.current.clear(),pr?.length)for(const Ur of pr)aTt(Ur);else aTt();Tf(Ur=>Ur+1),ea(G,Pe),pe==="content"&&Pu()},[G,Pe,Pu,ea,pe]);Ye.useEffect(()=>{const pr=Ur=>Ps(Ur.detail?.paths);return window.addEventListener("editor:assets-changed",pr),()=>window.removeEventListener("editor:assets-changed",pr)},[Ps]),Ye.useEffect(()=>{const pr=Ur=>{const Ei=Ur.detail?.path;if(!Ei)return;const Li=ig(Ei),uc=FB(Li);uc&&aN(Ei,uc)};return window.addEventListener("editor:open-project-asset",pr),()=>window.removeEventListener("editor:open-project-asset",pr)},[n]);const Iu=Ye.useMemo(()=>mt.filter(pr=>dl.has(pr.key)),[mt,dl]),zi=Ye.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"&&pr.root==="public"?[pr.path]:[]),[Iu]),Jn=Ye.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"?[Oge(pr.root,pr.path)]:[]),[Iu]);Ye.useEffect(()=>{const pr=new Set(mt.map(Ur=>Ur.key));bu(Ur=>{const Ei=new Set([...Ur].filter(Li=>pr.has(Li)));return Ur.size>0&&Ei.size===0&&(Wc(null),oD()),Ei.size===Ur.size?Ur:Ei})},[mt]);const Cs=Ye.useCallback(async pr=>{await Opn(pr,{backend:gR(),history:A}),gp.current.clear(),G==="public"&&await ea(G,Pe),pe==="content"&&await Pu()},[Pe,G,Pu,ea,A,pe]),lc=Ye.useCallback(async()=>{zi.length!==0&&fpn("delete",`Delete ${zi.length} selected asset(s)? This is undoable.`)&&(await Cs({type:"delete",paths:zi}),bu(new Set),Wc(null),oD())},[Cs,zi]),Nu=Ye.useCallback(()=>{zi.length!==0&&Sl({title:`Move ${zi.length} selected to folder`,initial:Pe,confirmLabel:"Move",run:async pr=>{const Ur=pr.replace(/^\/+|\/+$/g,"");Ku(null);try{await Cs({type:"move-many",moves:zi.map(Ei=>({source:Ei,destination:Ur?`${Ur}/${Ei.split("/").pop()}`:Ei.split("/").pop()}))})}catch(Ei){Ku(Ei instanceof Error?Ei.message:String(Ei))}}})},[Sl,Pe,Cs,zi]),Fl=Ye.useCallback(()=>{G==="public"&&Sl({title:"New folder name",initial:"",confirmLabel:"Create",run:async pr=>{pr&&await Cs({type:"create-folder",path:Pe?`${Pe}/${pr}`:pr})}})},[Sl,Pe,G,Cs]),Yu=Ye.useCallback(async pr=>{if(!pr||pr.length===0)return;const Ur=pe==="content"||G!=="public"?"":Pe,Ei=await Promise.all([...pr].map(async Li=>({path:Ur?`${Ur}/${Li.name}`:Li.name,bytes:new Uint8Array(await Li.arrayBuffer())})));Ku(null);try{await Cs({type:"import",files:Ei})}catch(Li){Ku(`Could not import ${Ei.length===1?Ei[0]?.path:`${Ei.length} files`}: ${Li instanceof Error?Li.message:String(Li)}`);return}pe==="content"&&Ff("files"),Ls("public",Ur),i0(Ei.length===1?`Imported ${Ei[0]?.path}`:`Imported ${Ei.length} files`)},[Ff,Pe,G,Cs,Ls,pe]),Ie=Ye.useCallback(pr=>{if(!(pr.source!=="asset"||pr.entry.type!=="file")){if(pr.root!=="public"){i0(`${pr.name} is reference material. ${FOe}`);return}Sl({title:`Rename ${pr.name}`,initial:pr.name,confirmLabel:"Rename",run:async Ur=>{if(!Ur||Ur===pr.name)return;const Ei=pr.path,Li=HO(pr.path),uc=Li?`${Li}/${Ur}`:Ur;await Cs({type:"move",source:Ei,destination:uc})}})}},[Sl,Cs]),Et=Ye.useCallback(async pr=>{if(pr.source!=="asset"||pr.entry.type!=="file")return;if(pr.root!=="public"){i0(`${pr.name} is reference material. ${FOe}`);return}const Ur=pr.name.lastIndexOf("."),Ei=Ur>0?`${pr.name.slice(0,Ur)} copy${pr.name.slice(Ur)}`:`${pr.name} copy`,Li=pr.path,uc=HO(pr.path),kc=uc?`${uc}/${Ei}`:Ei;await Cs({type:"duplicate",source:Li,destination:kc})},[Cs]),Nr=Ye.useCallback(pr=>{Bc(Ur=>{const Ei=new Set(Ur);return Ei.has(pr)?Ei.delete(pr):Ei.add(pr),Ei})},[]);Ye.useEffect(()=>{const pr=Ur=>{const Ei=Ur.detail?.id,Li=Iu[0];Ei===O_.refresh.id?Ps():Ei===O_.import.id?Du.current?.click():Ei===O_.createFolder.id?Fl():Ei===O_.move.id?Nu():Ei===O_.delete.id?lc():Ei===O_.rename.id&&Li?Ie(Li):Ei===O_.duplicate.id&&Li?Et(Li):Ei===O_.copyPath.id&&Jn[0]?navigator.clipboard.writeText(Jn[0]):Ei===O_.reveal.id&&Jn[0]&&CMe(Jn[0])};return window.addEventListener("editor:project-asset-command",pr),()=>window.removeEventListener("editor:project-asset-command",pr)},[Fl,Pe,lc,Et,Nu,Ps,Ie,Iu,Jn]);const In=Ao?.item.source==="available"&&Ao.item.available.descriptor.preview?Ao.item:null;return q.jsxs("div",{ref:tr,className:"volter-asset-browser","data-tree-visible":pe==="files"&&Tt,onPointerDown:()=>CR("asset-browser"),onKeyDown:pr=>{if(!hje(pr.target)){if(pr.key==="Delete"||pr.key==="Backspace")lc(),pr.preventDefault();else if((pr.metaKey||pr.ctrlKey)&&pr.key.toLowerCase()==="d"){const Ur=Iu[0];Ur&&Et(Ur),pr.preventDefault()}else if(pr.key==="F2"){const Ur=Iu[0];Ur&&Ie(Ur),pr.preventDefault()}}},onDragOver:pr=>{G!=="public"||!pr.dataTransfer.types.includes("Files")||(pr.preventDefault(),pr.dataTransfer.dropEffect="copy",Rl||mi(!0))},onDragLeave:pr=>{pr.currentTarget.contains(pr.relatedTarget)||mi(!1)},onDrop:pr=>{G!=="public"||!pr.dataTransfer.types.includes("Files")||(pr.preventDefault(),mi(!1),Yu(pr.dataTransfer.files))},style:{display:"flex",flex:1,minHeight:0,position:"relative",...Rl?{outline:`2px dashed ${Go.accent.default}`,outlineOffset:-2}:{}},children:[q.jsx(w_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(x_n,{availableFacets:Vn,scope:pe,facets:Ce,currentPath:Pe,currentRoot:G,searchOpen:Yr,searchQuery:Np,viewMode:X,density:zt,treeVisible:Tt,onScopeChange:Ff,onFacetToggle:Hs,onFacetsClear:()=>De([]),onNavigate:Ls,onSearchOpenChange:Ds,onSearchQueryChange:Au,onViewModeChange:we,onDensityChange:ft,onTreeVisibilityToggle:vn,onCreateFolder:()=>void Fl(),onImport:()=>Du.current?.click(),onDelete:()=>void lc(),deleteDisabled:zi.length===0,onRefresh:Ps,generationTools:J,onGenerate:()=>{CD("generation",n,{kind:"generation",id:"create"})}}),Al&&q.jsx("div",{role:"alert",className:"volter-asset-operation-error",children:Al}),pl&&q.jsxs("form",{className:"volter-asset-inline-prompt",style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px"},onSubmit:pr=>{pr.preventDefault();const Ur=pl;gs(null),Ur.run(Xu.trim())},children:[q.jsx("span",{style:{fontSize:12},children:pl.title}),q.jsx(Zm,{autoFocus:!0,"aria-label":pl.title,value:Xu,onChange:pr=>$r(pr.target.value),onKeyDown:pr=>{pr.key==="Escape"&&gs(null)}}),q.jsx(Ms,{type:"submit",size:"compact",children:pl.confirmLabel}),q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",onClick:()=>gs(null),children:"Cancel"})]}),zi.length>0&&q.jsxs(n$,{label:"Selected asset actions",compact:!0,children:[q.jsxs("span",{children:[zi.length," selected"]}),q.jsx(Ms,{variant:"ghost",size:"compact",onClick:()=>void Nu(),children:"Move selected"}),q.jsx(Ms,{variant:"ghost",size:"compact","aria-label":"Delete selected assets",onClick:()=>void lc(),children:"Delete"})]}),q.jsxs("div",{className:"volter-project-assets-results","data-view":X,"data-testid":"project-asset-results",role:"listbox","aria-label":pe==="content"?"Project content":"Project files","aria-multiselectable":"true",style:{flex:1,overflowY:"auto",padding:8,display:X==="list"?"flex":"grid",gridTemplateColumns:X==="grid"?`repeat(auto-fill, minmax(${Math.round(zt*.75)}px, 1fr))`:void 0,gridAutoRows:X==="list"?void 0:"min-content",flexDirection:X==="list"?"column":void 0,gap:X==="list"?1:6,alignContent:"start"},children:[eo.map(pr=>q.jsxs("div",{role:"group","aria-label":pr.label??void 0,className:"volter-content-result-section",children:[pr.label&&q.jsx("div",{role:"presentation",className:"volter-content-section-heading","data-level":pr.headingLevel??void 0,"data-testid":`content-section-${pr.id}`,children:q.jsx("span",{children:pr.label})}),pr.entries.map(Ur=>q.jsx(S_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(HTr,{compact:!0,style:{gridColumn:"1 / -1"},icon:q.jsx(dc,{icon:xt?Kk.status.warning:Np?Kk.action.search:Kk.content.folder}),title:_a?"Finding project content…":xt?"Listing failed":Np?"No matching content":pe==="content"?"No content in this type":"Empty folder",description:_a?"Scanning components and assets across the project.":xt?`Listing failed: ${xt}`:Np?"Try a broader search or another content type.":pe==="content"?"Choose another type or import an asset.":"Add files to this folder to see them here."})]})]}),In&&Ao&&q.jsx(she,{children:q.jsxs(dN,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:Ao.x,top:Ao.y},onDismiss:()=>ia(null),children:[q.jsxs(Jc,{type:"button",role:"menuitem",onClick:()=>{ic(In),ia(null)},children:["Open ",q.jsx("kbd",{children:"Enter"})]}),In.available.category==="scene"&&q.jsxs(q.Fragment,{children:[q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{const pr=In.available.descriptor.id;ia(null),fTt(pr,!1).then(()=>Tf(Ur=>Ur+1)).catch(Ur=>Ku(Ur instanceof Error?Ur.message:String(Ur)))},children:"Use current view for preview"}),q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{const pr=In.available.descriptor.id;ia(null),fTt(pr,!0).then(()=>Tf(Ur=>Ur+1)).catch(Ur=>Ku(Ur instanceof Error?Ur.message:String(Ur)))},children:"Reset preview view"})]}),q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{ia(null),Tf(pr=>pr+1)},children:"Refresh preview"})]})}),Ao&&Ao.item.source==="asset"&&q.jsx(she,{children:q.jsxs(dN,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:Ao.x,top:Ao.y},onDismiss:()=>ia(null),children:[q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.open.id,onClick:()=>{ic(Ao.item),ia(null)},children:["Open ",q.jsx("kbd",{children:"Enter"})]}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.rename.id,onClick:()=>{Ie(Ao.item),ia(null)},children:["Rename ",q.jsx("kbd",{children:"F2"})]}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.duplicate.id,onClick:()=>{Et(Ao.item),ia(null)},children:["Duplicate ",q.jsx("kbd",{children:"⌘D"})]}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.move.id,disabled:zi.length===0,title:zi.length?"Move selected assets":"Select a file to move",onClick:()=>{Nu(),ia(null)},children:"Move selected…"}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.copyPath.id,disabled:!Jn[0],onClick:()=>{Jn[0]&&navigator.clipboard.writeText(Jn[0]),ia(null)},children:"Copy path"}),jme("asset").map(pr=>{const Ur=Ao.item.source==="asset"&&Ao.item.entry.type==="file",Ei=Ao.item.source==="asset"?{assetPath:Oge(Ao.item.root,Ao.item.path)}:{};return q.jsx(Jc,{type:"button",role:"menuitem","data-testid":pr.testId,disabled:!Ur||(pr.disabled?.(Ei)??!1),onClick:()=>{pr.execute(Ei),ia(null)},children:typeof pr.label=="function"?pr.label():pr.label},pr.id)}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.reveal.id,disabled:!Jn[0],onClick:()=>{Jn[0]&&CMe(Jn[0]),ia(null)},children:"Reveal in Finder"}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.delete.id,disabled:zi.length===0,onClick:()=>{lc(),ia(null)},children:["Delete ",q.jsx("kbd",{children:"⌫"})]})]})})]})}const E_n={agent:()=>q.jsx(Ame,{slot:"panel:agent"}),"project-work":()=>q.jsx(Ame,{slot:"panel:project-work"}),hierarchy:Djt,assets:({dependencies:t})=>q.jsx(C_n,{services:t?.assets}),"asset-library":()=>q.jsx(Ame,{slot:"panel:asset-library"}),inspector:QVe};class k_n extends Ye.Component{state={error:null};static getDerivedStateFromError(n){return{error:n}}componentDidCatch(n,s){Qs.error(`The ${this.props.title} panel crashed and was taken down alone (the rest of the editor stays up; Retry in the panel remounts it): ${n.message}
|
|
1409
|
-
${s.componentStack??""}`,"editor")}render(){return this.state.error?q.jsxs("div",{role:"alert","data-testid":"static-panel-crashed",style:{padding:12,display:"grid",gap:8,alignContent:"start"},children:[q.jsxs("strong",{children:[this.props.title," crashed."]}),q.jsx("span",{style:{opacity:.8,wordBreak:"break-word"},children:this.state.error.message}),q.jsx("div",{children:q.jsx(Ms,{type:"button",variant:"outline",size:"compact",onClick:()=>this.setState({error:null}),children:"Retry"})})]}):this.props.children}}const A_n=AVe.map(t=>{const n=E_n[t.kind],s=c=>q.jsx(k_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function D_n(t){return A_n.find(n=>n.kind===t)}function P_n({kind:t,dependencies:n}){const{Content:s}=D_n(t);return q.jsx(s,{dependencies:n})}const I_n=250;function N_n(){const t=M4t(),n=O_n();return()=>{n(),t()}}function O_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of Qs.getEntries()){if(S.add(k.id),k.level!=="error"&&k.level!=="warn")continue;const A=t.get(k.id)??0;k.count<=A||(t.set(k.id,k.count),g.push({severity:k.level,message:k.message,source:k.source??null,occurrences:k.count-A}))}for(const k of[...t.keys()])S.has(k)||t.delete(k);return g}function d(){if(n=null,s)return;const g=c();g.length!==0&&SN("console-entries",{entries:g,_clientId:xC})}const m=Qs.subscribe(()=>{if(s)return;const g=Qs.getEntries(),S=g[g.length-1];if(S&&S.level==="error"&&!t.has(S.id)){n!==null&&clearTimeout(n),n=null,queueMicrotask(d);return}n===null&&(n=setTimeout(d,I_n))});return SN("console-entries",{entries:[],_clientId:xC}),d(),()=>{s=!0,n!==null&&clearTimeout(n),m()}}const Y4={INPUT:"input",PRE_PHYSICS:"prePhysics",PHYSICS:"physics",POST_PHYSICS:"postPhysics",GAME_LOGIC:"gameLogic",ANIMATION:"animation",PRE_RENDER:"preRender",RENDER:"render"},yZ=[Y4.INPUT,Y4.PRE_PHYSICS,Y4.PHYSICS,Y4.POST_PHYSICS,Y4.GAME_LOGIC,Y4.ANIMATION,Y4.PRE_RENDER,Y4.RENDER],hwn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),sye=1e-9,$jt=1e5;function R_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+sye){const D=Math.min(g+S,s.end);m.push({from:g,to:D,direction:"forward"}),g=D;break}if(m.push({from:g,to:s.end,direction:"forward"}),S-=F,g=s.start,k=!0,A++,A>$jt){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 F_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+sye){const D=Math.max(g-S,s.start);m.push({from:g,to:D,direction:"reverse"}),g=D;break}if(m.push({from:g,to:s.start,direction:"reverse"}),S-=F,g=s.end,k=!0,A++,A>$jt){const D=s.end-S%c;m.push({from:g,to:D,direction:"reverse"}),g=D;break}}return{pos:g,intervals:m,looped:k}}function _Tt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class M_n{_previousTime;_currentTime;_range;_timeScale;_playDirection="forward";_lastCrossingDirection="forward";_playbackState="stopped";_evaluators=[];_registrationCounter=0;constructor(n={}){const s=n.start??0,c=n.end??Math.max(s,1);if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);const d=n.timeScale??1;if(!Number.isFinite(d)||d<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${d}`);this._range={start:s,end:c,loop:n.loop??!1},this._timeScale=d,this._previousTime=s,this._currentTime=s}get time(){return this._currentTime}get previousTime(){return this._previousTime}get direction(){return this._playbackState==="playing"?this._playDirection:"paused"}get playbackState(){return this._playbackState}get timeScale(){return this._timeScale}set timeScale(n){if(!Number.isFinite(n)||n<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${n}`);this._timeScale=n}get range(){return this._range}setRange(n){const s=n.start??this._range.start,c=n.end??this._range.end,d=n.loop??this._range.loop;if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);this._range={start:s,end:c,loop:d};const m=_Tt(this._currentTime,this._range);m!==this._currentTime&&this.seek(m)}play(n){n&&(this._playDirection=n),this._playbackState="playing"}pause(){this._playbackState="paused"}stop(){this._playbackState="stopped"}seek(n){const s=_Tt(n,this._range);if(s===this._currentTime)return this.emit(this._currentTime,this._currentTime,[{from:s,to:s,direction:this._lastCrossingDirection}],!1,this._lastCrossingDirection);const c=s>this._currentTime?"forward":"reverse",d=this._currentTime;return this._previousTime=d,this._currentTime=s,this._lastCrossingDirection=c,this.emit(d,s,[{from:d,to:s,direction:c}],!1,c)}seekFrame(n,s){if(!Number.isFinite(s)||s<=0)throw new Error(`[AnimationClock] seekFrame fps must be a finite number > 0, got ${s}`);return this.seek(this._range.start+n/s)}advance(n){if(this._playbackState!=="playing")return null;if(!Number.isFinite(n))throw new Error(`[AnimationClock] advance(dt) requires a finite dt, got ${n}`);const s=Math.abs(n)*this._timeScale,c=this._currentTime;if(s===0)return this.emit(c,c,[],!1,this._playDirection);const d=this._playDirection==="forward"?R_n(c,s,this._range):F_n(c,s,this._range);return this._previousTime=c,this._currentTime=d.pos,this._lastCrossingDirection=this._playDirection,this.emit(c,d.pos,d.intervals,d.looped,this._playDirection)}subscribe(n,s){if(!yZ.includes(n))throw new Error(`[AnimationClock] unknown phase "${n}". Valid: ${yZ.join(", ")}`);const c={phase:n,order:this._registrationCounter++,fn:s};return this._evaluators.push(c),{dispose:()=>{const d=this._evaluators.indexOf(c);d!==-1&&this._evaluators.splice(d,1)}}}emit(n,s,c,d,m){const g={previousTime:n,currentTime:s,direction:m,timeScale:this._timeScale,looped:d,intervals:c};if(this._evaluators.length>0){const S=[...this._evaluators].sort((k,A)=>{const F=yZ.indexOf(k.phase),D=yZ.indexOf(A.phase);return F!==D?F-D:k.order-A.order});for(const k of S)try{k.fn(g)}catch(A){console.error(`[AnimationClock] evaluator in phase "${k.phase}" threw:`,A)}}return g}}const b_e={start:0,end:0,fps:30},j_n=150;class gwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new M_n;subjects=[];activeId=null;listeners=new Set;settleListeners=new Set;settleTimer=null;disposed=!1;cachedSnapshot=null;stopStoreWatch;attach(n){return this.subjects.push(n),this.activeId===null?this.setActiveSubject(n.id):(n.seek(this.clock.time),this.notify()),()=>{const s=this.subjects.indexOf(n);if(s<0)return;if(this.subjects.splice(s,1),this.activeId!==n.id){this.notify();return}this.activeId=null;const c=this.subjects[0];c?this.setActiveSubject(c.id):(this.clock.setRange({start:b_e.start,end:b_e.end,loop:!1}),this.notify())}}setActiveSubject(n){const s=this.subjects.find(d=>d.id===n);if(!s)return;this.activeId=n;const c=s.range();this.clock.setRange({start:c.start,end:c.end}),this.applyTime(this.clock.time),this.notify()}get active(){return this.subjects.find(n=>n.id===this.activeId)??null}fps(){return this.active?.range().fps??b_e.fps}get driver(){return this.store.playState==="stopped"?"editor":"world"}assertEditorDrives(){if(this.driver==="world")throw new Error("transport: the world is driving time (Play); pause the game to scrub")}play(n="forward"){this.assertEditorDrives(),this.active&&(this.cancelSettle(),this.clock.play(n),this.notify())}pause(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.settle(),this.notify()}stop(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.applyTime(this.clock.seek(this.clock.range.start).currentTime),this.clock.stop(),this.settle(),this.notify()}seek(n){this.assertEditorDrives(),this.applyTime(this.clock.seek(n).currentTime),this.clock.playbackState!=="playing"&&this.scheduleSettle(),this.notify()}seekFrame(n){this.seek(n/this.fps())}setLoop(n){this.clock.setRange({loop:n}),this.notify()}setTimeScale(n){this.clock.timeScale=n,this.notify()}tick(n){if(this.disposed||this.driver==="world"||this.clock.playbackState!=="playing")return 0;const s=this.clock.time,c=this.clock.advance(n);return c?(this.applyTime(c.currentTime),this.notify(),c.looped?Math.abs(n)*this.clock.timeScale:c.currentTime-s):0}applyTime(n){const s=this.active;s&&s.seek(n);for(const c of this.subjects)c!==s&&c.seek(n)}onSettled(n){return this.settleListeners.add(n),()=>{this.settleListeners.delete(n)}}scheduleSettle(){this.cancelSettle(),this.settleTimer=setTimeout(()=>{this.settleTimer=null,this.settle()},j_n)}cancelSettle(){this.settleTimer!==null&&(clearTimeout(this.settleTimer),this.settleTimer=null)}settle(){if(this.disposed)return;const n=this.clock.time;for(const s of[...this.settleListeners])s(n)}snapshot(){const n=this.cachedSnapshot;if(n)return n;const s=this.active?.range()??b_e,c={time:this.clock.time,range:{start:this.clock.range.start,end:this.clock.range.end,fps:s.fps,loop:this.clock.range.loop},playbackState:this.clock.playbackState,timeScale:this.clock.timeScale,activeSubject:this.activeId,subjects:this.subjects.map(d=>({id:d.id,label:d.label})),driver:this.driver};return this.cachedSnapshot=c,c}activeClips(){const s=this.active?.clips?.();return s&&s.length>1?s:null}setActiveClip(n){this.assertEditorDrives(),this.active?.setClip?.(n);const s=this.active?.range();s&&this.clock.setRange({start:s.start,end:s.end}),this.applyTime(this.clock.time),this.notify()}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}notify(){this.cachedSnapshot=null;for(const n of[...this.listeners])n()}dispose(){this.disposed=!0,this.stopStoreWatch(),this.cancelSettle(),this.clock.stop(),this.subjects.length=0,this.activeId=null,this.listeners.clear(),this.settleListeners.clear()}}const Dme=new Map,Hje=new Set;function mTt(){for(const t of[...Hje])t()}function ywn(t,n){return Dme.set(t,n),mTt(),()=>{Dme.get(t)===n&&(Dme.delete(t),mTt())}}function L_n(t){return t===null?null:Dme.get(t)??null}function B_n(t){return Hje.add(t),()=>{Hje.delete(t)}}let Pme=null;function vwn(t){return Pme=t,()=>{Pme===t&&(Pme=null)}}function kve(){return Pme}const qjt="__volterWorkspacePersistenceSuppressed";function zjt(){return globalThis}function Vjt(t){zjt()[qjt]=t}function $_n(){return zjt()[qjt]===!0}function Ujt(){return(xee()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Jjt={phase:"idle",flightDone:!1,gameReady:!1};function q_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 z_n(t,n){if(n==="stop")return Jjt;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 q_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 V_n=450,U_n=220,Wjt=250;function J_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${V_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${U_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Wjt}ms`)}let SD=null;function W_n(t){return SD=t,typeof document<"u"&&J_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Hjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function H_n(){return Qk?.state.phase??"idle"}const Ime=new Set;function Gjt(){if(Ime.size===0)return;const t=[...Ime];Ime.clear();for(const n of t)n()}function G_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Ime.add(t)}function K_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=z_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),K_n(n,Wjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&kve()?.settle(),Gjt()))}function X_n(){Y_n({immersive:Ujt()})}function Y_n(t){if(Qk&&uUe(),!t.immersive)return;const n=Hjt();Vjt(!0);const s={state:Jjt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=kve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function Z_n(t,n){(!t||!n)&&uUe()}function Q_n(t){const n=Qk;n&&(n.flying&&t&&kve()?.track(t),gB("game-ready"))}function uUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Gjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&kve()?.end(),SD?.showChrome(!Hjt()),Vjt(!1)}}const Gje=new Set;let Kjt=null;function Xjt(){return wf()?.rootPath??null}function emn(t){Gje.add(t);const n=Xjt();return n!==null&&Kjt===n&&t(),()=>{Gje.delete(t)}}async function bwn(){Kjt=Xjt();for(const t of[...Gje])await t()}function tmn(){const t=Pp();if(t===null)return null;const n=lQ(t);if(typeof n!="object"||n===null)return null;const s=n.stageMode;if(typeof s!="function")return null;const c=s.call(n);return typeof c=="string"?c:null}let Kje=null;function rmn(t){Kje=t}function hTt(){if(!Kje)throw new Error("The workbench Output service is not connected.");return Kje}function nmn(){uDr(Pp),u4r({output:{write:(...t)=>hTt().write(...t),show:t=>hTt().show(t)},console:{log:(t,n)=>Qs.log(t,n),warn:(t,n)=>Qs.warn(t,n),error:(t,n)=>Qs.error(t,n)},live:{register:s9t,mounted:bVe,playing:ave,runWindow:pVe,restartRequired:n9t,restart:i9t,subscribe:xVe,version:c9t,notifyChanged:r9t,snapshotFrame:mVe,frameCanvas:_Ve,authoringRefusal:vVe,dispatch:hVe,scenes:gVe,surface:sve,coverage:yVe},viewport:{transition:{begin:X_n,ready:Q_n,end:uUe,onSettled:G_n,phase:H_n}},hierarchy:{subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:DBe,reportFacet:Zrn,onSample:Bnn,onCommandDispatched:HYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>Bze(n=>{n!==null&&t()}),onBeforeClose:gnn,reportWorkerCallMeter:aan},project:{documentTable:Jen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:emn},notify:t=>s$(t),systems:{inspected:Pye,subscribe:Kwr,inspectedNetworking:Qwr,subscribeNetworking:eTr,inspectedAudio:()=>tTr()??null,subscribeAudio:rTr,audioVersion:nTr},availability:{subscribe:ZVe,version:zun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Yye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:ytn,acquire:xtn,release:iVe,open:iq,container:vtn,setContainer:btn,releaseContainer:Stn}},documents:{activeId:Pp,active:()=>{const t=TC();return t?{id:t.descriptor.id,kind:t.descriptor.kind,title:t.title}:null},subscribe:o2,version:K1,context:lQ,waitForContext:b4t,contextChanged:eEr,captureActive:t=>{const n=Ih();return n?x9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>L_n(t),subscribe:B_n},projectLocalState:{ready:ute,read:Cve,write:Eve,projectRootPath:()=>wf()?.rootPath??null},history:{record:s6t,setDelegate:cDr,onElement:dDr,invalidate:pDr,onInvalidated:_Dr,changed:lDr,elements:fDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?VYr(s)??Fze(s):null},undo:()=>Ih()?.projectHistory?.undo()??Promise.resolve(!1),redo:()=>Ih()?.projectHistory?.redo()??Promise.resolve(!1),canUndo:()=>Ih()?.projectHistory?.getSnapshot().canUndo??!1,canRedo:()=>Ih()?.projectHistory?.getSnapshot().canRedo??!1,undoLabel:()=>Ih()?.projectHistory?.getSnapshot().undoLabel??null,redoLabel:()=>Ih()?.projectHistory?.getSnapshot().redoLabel??null,subscribe:t=>{const n=o6t(t),s=s_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:M4r,read:t=>Dg.read(t),readBytes:t=>Dg.readBytes(t),write:(t,n)=>Dg.write(t,n),exists:t=>Dg.exists(t),list:t=>Dg.list(t),watch:t=>Dg.watch(t)},settings:{setProvider:FEr,get:qEr,set:VEr,inspect:Y4t,subscribe:t=>{const n=H4t(t),s=See(t);return()=>{n(),s()}}},keyboard:{actions:()=>Xan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>Q4t().map(({id:t,title:n})=>({id:t,title:n,chords:oDt(t)})),activeKeymap:dR,invoke:t=>BVe(t),subscribe:t=>{const n=Zan(t),s=Kye(t),c=s_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Yan()+K1(),stage:()=>{const t=Ih();return t?{surface:Xfn(t).surface,mode:tmn()}:{surface:null,mode:null}},bindActions:ocn,chordsFor:BBe,shortcutFor:t=>Vv(t)??null}})}let imn=0,lee=null;const Xje=new Set;function gTt(t){const n={generation:++imn,promise:t,active:!0};lee=n;for(const s of Xje)s(n);return Xje.clear(),n}function omn(){const t=lee;return t?.active?Promise.resolve(t):new Promise(n=>Xje.add(n))}async function fUe(){for(;;){const t=await omn();if(await t.promise,lee===t&&t.active)return}}const Yjt=16,smn=300,amn=1e4,Zjt="workspace";function cmn(){const t=Cve(Zjt);return!t||t.version!==Yjt?null:t}function lmn(t){Eve(Zjt,t)}function umn(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=IAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function fmn(){const t={};let n=!1;for(const s of hDt()){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 dmn(){const t=[];for(const s of l0()){const c=umn(s);c&&t.push(c)}const n=fmn();return{version:Yjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function pmn(t,n,s){for(const c of mDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!GQ(),store:t}))return!0}catch{}return!1}function yTt(t){if(!t)return!1;const n=!GQ();return xN(t,n)?!0:_tn.has(t)?(PFt(t),n&&TTr(t),!0):n&&X0(t)}function _mn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of hDt())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 mmn(t){const n=new Set;for(const s of t)for(const c of mDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function hmn(t,n){const s=n?.documents;if(_mn(t,s),!s||s.open.length===0){yTt(s?.activeId??null);return}await mmn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&NAr(c.id,d),await pmn(t,c,s.activeId)}yTt(s.activeId)}function Qjt(t){if(!ute()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=gTt(Ce);return Promise.all([lte(),eVe()]).then(()=>{if(se){ue();return}pe=Qjt(t),De.active=!1,fUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=cmn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Rkr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!($_n()||t.playState!==void 0&&t.playState!=="stopped")&&lmn(dmn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,smn)},S=()=>m();let k=null;const A=typeof window<"u"&&lCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():hN().catch(()=>{}),D=F.then(()=>A?void 0:hmn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},amn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(MAr(g)),window.addEventListener("pagehide",S))}),G=gTt($);return()=>{s=!0,G.active=!1,lee===G&&(lee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function gmn(t){Ye.useEffect(()=>{const n=lCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return fUe().then(()=>{if(d())return Vge(t,n,{updateUrl:!1,origin:"link"})}).catch(m=>{Qs.error(`Could not restore shared editor view: ${m instanceof Error?m.message:String(m)}`,"editor")}),()=>{s=!0}},[t])}const vTt="volter:stale-chunk-reload";function ymn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(vTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(vTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function vmn(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 Swn(t,n,s){const c=new Map,d={surface:t,store:n},m=g=>{const S=s(g);if(!S)return null;for(const k of jI){const A=k.statesFor(S,d);if(A.length>0)return{source:k,states:A}}return null};return{storiesFor:g=>[...m(g)?.states??[]],active:g=>c.get(g)??null,apply:(g,S)=>{if(S===null){c.delete(g),n.notifyIngestEdit();return}const k=m(g);if(!k?.states.some(F=>F.id===S)){Qs.warn(`[component-states] stories.apply: state "${S}" does not belong to node "${g}" on the ${t} surface — ignoring.`,"authoring");return}const A=s(g);A&&(c.set(g,S),k.source.apply(A,S,d),n.notifyIngestEdit())},unavailable:()=>jI.length>0?null:"No package in this editor registered a source of component states, so this component's named states could not be read."}}class xwn extends Error{name="StoryMediumMismatch"}function wwn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Nme=new Map;function Twn(t,n){return Nme.set(t,n),()=>{Nme.get(t)===n&&Nme.delete(t)}}function bmn(t){return Nme.get(t)??null}function Smn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${xmn(n[c])}`);return`${t}|${s.join("&")}`}function xmn(t){if(typeof t=="function")return"fn";if(typeof t=="symbol")return"symbol";if(t===void 0)return"undefined";try{return JSON.stringify(t)??"undefined"}catch{return`[${typeof t}]`}}const aye=new Map,S_e=new Map,bTt=new WeakMap;let STt=Promise.resolve(),xTt=null,wmn=1;function Tmn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function Cmn(){await Promise.race([jye(),new Promise(t=>setTimeout(t,5e3))]),await Promise.race([new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),new Promise(t=>setTimeout(t,250))]),await new Promise(t=>setTimeout(t,750)),await new Promise(t=>{const n=globalThis.requestIdleCallback;if(typeof n=="function"){n(()=>t(),{timeout:2e3});return}setTimeout(t,0)})}function Emn(){return xTt??=Cmn(),xTt}function kmn(t){const n=bTt.get(t);if(n!==void 0)return n;const s=wmn++;return bTt.set(t,s),s}function Amn(t,n,s,c){const d=aye.get(t);if(d)return Promise.resolve(d);const m=S_e.get(t);if(m)return m;const g=STt.then(async()=>{await Emn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=bmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return STt=g.then(()=>{},()=>{}),S_e.set(t,g),g.then(S=>{aye.set(t,S),S_e.delete(t)},()=>S_e.delete(t)),g}function Dmn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${Smn(n.id,n.args)}:${kmn(m)}:${s}:${c}x${d}`,[S,k]=Ye.useState(()=>aye.get(g)),[A,F]=Ye.useState(!1);return Ye.useEffect(()=>{let D=!1;if(F(!1),k(aye.get(g)),!!Tmn())return Amn(g,t.surface,n,{width:c,height:d}).then(J=>{D||k(J)},()=>{D||F(!0)}),()=>{D=!0}},[t.surface,d,g,n,c]),S?q.jsx("img",{src:S,alt:`${t.name} preview`,className:"volter-component-thumbnail"}):q.jsx("span",{className:"volter-component-thumbnail-fallback","data-component-preview":A?"failed":"capturing-story",children:q.jsx(wR,{kind:"component",name:t.name})})}const Ave="story:three",Dve="story:isolated",Pmn="story:docs";function Imn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function Nmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Dmn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Omn="story",Rmn={id:Omn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Imn(c,t.surface))continue;const d=kRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:G0e,Thumbnail:Nmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?Ave:Dve,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function wTt(t){return xYr(t.name,t.sourcePath)}const Fmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:wTt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=wTt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(Ave,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(Dve,s.store,{modulePath:c.modulePath,storyName:c.name});return}Qs.warn(`[portable-csf] no story document is registered for the "${s.surface}" surface, so state "${n}" of "${t.name}" could not be opened.`,"authoring")}}};function Mmn(){let t=0,n=!1;const s=S=>{const k=++t;mYr(),jye().then(()=>{if(!(n||k!==t))return EYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=kFt(),m=IC(()=>s()),g=gen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const eLt="story",MOe=new Set,jOe=new Set;function jmn(t){const n=SRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function LOe(t){for(const n of rq())if(n.ok){for(const s of n.stories)if(t.storyId===void 0?n.modulePath===t.modulePath&&s.name===t.storyName:s.id===t.storyId)return{modulePath:n.modulePath,storyName:s.name,title:t.title??jmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function Lmn(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(Pmn,t,c);const d=Ize({modulePath:s.modulePath,regions:Pze()});return d.medium===void 0?(_Yr(s.modulePath,d.reason),null):CD(d.medium==="three"?Ave:Dve,t,c)}function TTt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function Bmn(){return AN({id:eLt,owner:"./story-opener",open:(t,n)=>{const s=LOe(n);return s?Lmn(t,n,s):(n.modulePath?MOe.add(n.modulePath):n.storyId!==void 0&&(jOe.add(n.storyId),vYr()&&TTt(n.storyId)),null)},settle:async()=>{await BDr();const t=[...MOe],n=[...jOe];if(MOe.clear(),jOe.clear(),await Promise.all(t.map(s=>wYr(wf(),s))),n.length!==0){await bYr();for(const s of n)LOe({storyId:s})||TTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=LOe(n);if(!(!s||Ize({modulePath:s.modulePath,regions:Pze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const $mn={actions:()=>{if(!sgt(Dve)&&!sgt(Ave))return[];const t=[];for(const n of rq()){if(!n.ok)continue;const s=n.modulePath.split("/").pop()??n.modulePath;for(const c of n.stories)t.push({id:`story:${c.id}`,label:`Open Story: ${c.name} — ${s}`,execute:()=>void dy().workspace.open({kind:eLt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>G0e(t)};function qmn(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 zmn(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 Vmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Umn(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 qZr("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=qmn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=zmn(nB,t.pose);if(typeof k=="string")return{ok:!1,error:k};const{captureProjectStoryVariants:A}=await lo(async()=>{const{captureProjectStoryVariants:D}=await import("./story-capture-BxgNeexV.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([268,269,1,2,3,4,20,21,234,213,270,22,23]));return{ok:!0,data:{...await A(wf(),{modulePath:n,...s===void 0?{}:{story:s},width:m,height:g,...S?{camera:S}:{},...k?{pose:k}:{}})}}}catch(d){return{ok:!1,error:d instanceof Error?d.message:String(d)}}}const Jmn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Umn}};function Wmn(){const t=Iin(Rmn),n=vmn(Fmn),s=Bmn(),c=gCt($mn),d=vCt(Vmn,Jmn),m=Mmn(),g=G0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const Hmn=[["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"]],Gmn=[["volter.viewport.background","--volter-viewport-background"],["volter.viewport.grid","--volter-viewport-grid"],["volter.viewport.axisX","--volter-viewport-axis-x"],["volter.viewport.axisY","--volter-viewport-axis-y"],["volter.viewport.axisZ","--volter-viewport-axis-z"],["volter.viewport.selection","--volter-viewport-selection"],["volter.viewport.active","--volter-viewport-active"],["volter.viewport.wire","--volter-viewport-wire"],["volter.gizmo.x","--volter-gizmo-x"],["volter.gizmo.y","--volter-gizmo-y"],["volter.gizmo.z","--volter-gizmo-z"],["volter.gizmo.navigationX","--volter-gizmo-navigation-x"],["volter.gizmo.navigationY","--volter-gizmo-navigation-y"],["volter.gizmo.navigationZ","--volter-gizmo-navigation-z"],["volter.gizmo.hover","--volter-gizmo-hover"],["volter.gizmo.drag","--volter-gizmo-drag"]];function CTt(t){const n=t.trim().toLowerCase(),s=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(n)?.[1];if(s)return`#${s.length===3?[...s].map(S=>S+S).join(""):s}`;const c=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.]+%?))?\s*\)$/.exec(n);if(!c)return null;const d=S=>Math.max(0,Math.min(255,Math.round(Number(S)))).toString(16).padStart(2,"0"),m=c[4],g=m===void 0?"":Math.round(Math.max(0,Math.min(1,m.endsWith("%")?Number.parseFloat(m)/100:Number(m)))*255).toString(16).padStart(2,"0");return`#${d(c[1])}${d(c[2])}${d(c[3])}${g==="ff"?"":g}`}function Kmn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of Hmn){const g=CTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Gmn){const m=CTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let dm=null,tLt=0;const Yje=new Set;function Xmn(t){return Yje.add(t),()=>Yje.delete(t)}function ETt(){return tLt}const BOe=new Map;function rLt(t,n){BOe.get(t)?.disconnect(),BOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;r3r(t,d!==null&&d.width>0&&d.height>0)};if(s(),n===null||typeof ResizeObserver>"u")return;const c=new ResizeObserver(s);c.observe(n),BOe.set(t,c)}function Ymn(t,n){if(dm){if(n===null){if(dm[t]?.isConnected)return}else if(dm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...dm};delete s[t],dm=s}else n!==null&&(dm={...dm,[t]:n});n!==null&&nLt(t,n),rLt(t,n),tLt+=1;for(const s of Yje)s()}}function nLt(t,n){n.dataset.volterPart=t}const XI=new Map;let kTt=!1;function Zmn(){const t=n=>{if(!n)return null;const s=n.getBoundingClientRect();return{x:s.x,y:s.y,width:s.width,height:s.height,connected:n.isConnected}};return{editorRoots:[...document.querySelectorAll("#editor-root")].map(t),chrome:t(dm?.chromeRoot??null),slots:[...XI.values()].map(n=>({id:n.id,documentId:n.documentId,bounds:t(n.element)})),surfaces:[...document.querySelectorAll("[data-workspace-document-id]")].map(n=>({documentId:n.dataset.workspaceDocumentId,viewId:n.dataset.workspaceViewId,bounds:t(n)}))}}let iLt=0;const Zje=new Set,oLt=new Set;let ATt=!1;function DTt(){for(const t of l0())oLt.add(t.descriptor.id)}function Qmn(t){ATt||(ATt=!0,o2(DTt)),DTt(),!(!t||oLt.has(t))&&(Dtn(t)||PFt(t,!1))}function ehn(t,n){if(n){if(!XI.delete(t.id))return}else{XI.has(t.id)||Qmn(t.documentId);const s=XI.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;XI.set(t.id,{...t})}iLt+=1;for(const s of[...Zje])s()}function thn(t){return Zje.add(t),()=>{Zje.delete(t)}}function PTt(){return iLt}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 rhn({children:t}){return q.jsx(q.Fragment,{children:t})}function nhn(){return dm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(apn,{})}),dm.header):null}function ihn(){return null}function ohn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return Sjt(n),()=>gfn(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(Djt,{})})]})}const Ome=new Map,Qje=new Set;let eLe=0;function shn(t,n){if(n){if(Ome.get(t)===n)return;n.dataset.volterUtility=t,Ome.set(t,n)}else if(!Ome.delete(t))return;eLe++;for(const s of Qje)s()}const Rme=new Map,tLe=new Set;let rLe=0;function ahn(t,n){if(n){if(Rme.get(t)===n)return;Rme.set(t,n)}else if(!Rme.delete(t))return;rLe++;for(const s of tLe)s()}function chn(){return Ye.useSyncExternalStore(I3t,ght,ght),Ye.useSyncExternalStore(t=>(tLe.add(t),()=>tLe.delete(t)),()=>rLe,()=>rLe),q.jsx(q.Fragment,{children:[...hRe("left"),...hRe("right")].map(t=>{const n=Rme.get(t.id);if(!n)return null;const s=t.Content;return q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(s,{}),n)},t.id)})})}function lhn(){return Ye.useSyncExternalStore(Xye,bhe,bhe),Ye.useSyncExternalStore(t=>(Qje.add(t),()=>Qje.delete(t)),()=>eLe,()=>eLe),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Ome.get(t.id);return n?q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(GO,{children:q.jsx(upn,{utility:t})}),n)},t.id):null})})}function uhn({descriptor:t,viewId:n,slot:s,parking:c,visible:d,inspector:m}){const[g]=Ye.useState(()=>document.createElement("div"));return Ye.useLayoutEffect(()=>{g.className="volter-vscode-document-slot",g.dataset.volterDocument=t.id,g.dataset.volterArea=t.area??"",g.style.cssText=`display:${d?"flex":"none"};flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;position:relative;`},[g,t.id,t.area,d]),Ye.useLayoutEffect(()=>((s??c).appendChild(g),()=>g.remove()),[g,s,c]),r2.createPortal(q.jsxs(GO,{children:[q.jsx(JMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Yun,{})]}),g)}let sLt=!0;function fhn({arrangement:t,immersivePlay:n}){const s=Yv();gmn(s);const c=HVe(s);Ye.useLayoutEffect(()=>{sLt=c.column},[c.column]);const d=XI.get(CRe()??"")?.element??dm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Iwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Iwt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(thn,PTt,PTt),Ye.useSyncExternalStore(Xmn,ETt,ETt),Ye.useLayoutEffect(()=>{const F=ckr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),jkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(See,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{Z_n(m,Ujt())},[m,n,g]),Ye.useEffect(()=>Qjt(s),[s]),!dm)return null;const S=dm.center,k=l0(),A=TC()??k[0]??null;return globalThis.__volterBridge={documents:k.map(F=>F.descriptor.id),active:A?.descriptor.id??null,workspace:t?.id??null,areas:k.flatMap(F=>F.descriptor.area?[{id:F.descriptor.id,area:F.descriptor.area}]:[]),slots:[...XI.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...XI.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(uhn,{descriptor:D,viewId:F.id,slot:F.element??void 0,parking:S,visible:!!F.element,inspector:c.card&&D.id===A?.descriptor.id},F.id):null}),k.length===0&&r2.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),dm.center),dm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(ohn,{})}),dm.outliner),dm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(QVe,{}):q.jsx(Uun,{surface:c.surface})}),dm.properties),dm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(P_n,{kind:"assets"})}),dm.content),q.jsx(lhn,{}),q.jsx(chn,{})]})}async function dhn(t,n={}){dm=t,n.workspaceStorage&&i3r(n.workspaceStorage),d3r();for(const[De,Pe]of Object.entries(t))Pe&&nLt(De,Pe),rLt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",FPt({Frame:rhn,Header:nhn,Footer:ihn,Workspace:fhn,Document:qcn}),N_n(),Xnn();const s=Yln();s&&Kln(s,Date.now())&&Qs.warn(Hln(s,Date.now()),"editor"),ymn(),MDr(),nmn(),kTt||(kTt=!0,dy().session.reportFacet(De=>({nativeLayout:De?.nativeLayout??Zmn()}),{reusableKeys:["nativeLayout"]})),Wmn(),await Promise.all([X4t(),lAr(),iPt()]),TAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",uee()?.nativeMenus===!0);const c=document.createElement("div");c.id="editor-root",c.className="volter-part",c.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",t.chromeRoot.appendChild(c),nLe.createRoot(c).render(q.jsx(_un,{}));const d={activeKeymap:()=>dy().keyboard.activeKeymap(),invoke:De=>dy().keyboard.invoke(De),subscribe:De=>dy().keyboard.subscribe(De),facts:()=>{const De=dy(),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=dy();De==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:fUe,activeSource:()=>{const De=dy().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?Dkr().find(be=>be.id===De.descriptor.area):void 0;return{id:De.descriptor.id,title:De.title,...Pe?{area:{id:Pe.id,place:Pe.place,ratio:Pe.ratio}}:{}}}),activeId:()=>TC()?.descriptor.id??null,subscribe:De=>{m=!0;const Pe=o2(De),be=Pkr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&GQ()||(Pe?xTr(De,Pe):X0(De))},close:De=>{if(kN(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)=>ehn(De,Pe)},S={elements:()=>dy().history.elements(),onElement:De=>dy().history.onElement(De),onInvalidated:De=>dy().history.onInvalidated(De),changed:()=>dy().history.changed(),focusedResource:()=>dy().history.focusedResource(),focusedDocument:()=>{const De=dy().documents.active();return De?{id:De.id,label:De.title}:null},setDelegate:De=>dy().history.setDelegate(De),report:d.report},k={setProvider:De=>dy().files.setProvider(De),report:d.report},A={setProvider:De=>dy().settings.setProvider(De),adapterValues:()=>[...jEr()],workbenchValues:()=>{const De=dm?.chromeRoot;if(!De)return[];const Pe=getComputedStyle(De).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Kmn(De)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>PN(),notify:De=>{dy().notify(De)},subscribe:De=>{const Pe=Hye(De),be=PDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Qnn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>tin(De),subscribe:De=>ein(De),setPaletteOpener:De=>Znn(De),setCommandExecutor:De=>rin(De),report:d.report},D={setDelegate:De=>rEr(De?{show:Pe=>De({...Pe,source:f3r()})}:null)},J={list:()=>LPt().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)=>$Pt(De,Pe,be),subscribe:De=>BPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=bhe();const be=Xye(De),X=ZVe(()=>{const we=bhe();we!==Pe&&(Pe=we,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>shn(De,Pe)};let G=!0,se=null,pe=null;xrn(()=>G);const ue={setActiveStaticPanel:De=>rgt(AVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(sLt)return!1;const De=dm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),rgt("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!dm)&&(se=W_n({root:dm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=fkr({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:rmn},settings:A,status:{list:()=>["left","right"].flatMap(De=>hRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>I3t(De),offerBody:(De,Pe)=>ahn(De,Pe)},game:ue,offerPart:Ymn}}function phn(t){const n=Object.keys(t.packages);return m0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),$Dt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:dhn}}const{mountVolter:Cwn}=phn({id:"game-editor",packages:{"@volter/editor-game":f0r,"@volter/editor-react":d0r,"@volter/editor-threejs":p0r,"@volter/editor-xstate":_0r,"@volter/editor-blender":u0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,S3t as A,y0n as B,x3t as C,w3t as D,M_e as E,j0n as F,kAr as G,cRe as H,Aen as I,mFt as J,DB as K,u0 as L,OC as M,b3t as N,rVe as O,y3t as P,ySn as Q,T3t as R,$wr as S,V2n as T,Yv as U,Ih as V,iBe as W,eYr as X,cvn as Y,Qs as Z,lo as _,XY as a,S2n as a$,XFt as a0,Qtn as a1,e9t as a2,L_ as a3,EN as a4,PSn as a5,Ms as a6,dc as a7,Kk as a8,lvn as a9,yRt as aA,Htn as aB,wf as aC,Y0 as aD,mp as aE,H0n as aF,gy as aG,oq as aH,gMt as aI,W3r as aJ,gSn as aK,_p as aL,pm as aM,Zm as aN,bwn as aO,ive as aP,l0 as aQ,PFt as aR,TD as aS,a0n as aT,UCr as aU,Z0e as aV,jRt as aW,Lze as aX,JSn as aY,Zf as aZ,j9t as a_,vC as aa,Qgn as ab,oan as ac,dcn as ad,_Sn as ae,Zze as af,MB as ag,Xwr as ah,a9t as ai,s2n as aj,v0n as ak,Go as al,ryn as am,Iye as an,nfn as ao,Q0e as ap,eTr as aq,twn as ar,G0e as as,rq as at,Ize as au,Pze as av,_Yr as aw,Tan as ax,g$e as ay,Jtn as az,oBe as b,D3r as b$,w2n as b0,G4r as b1,x2n as b2,gC as b3,k$e as b4,PTr as b5,tOe as b6,ig as b7,kFt as b8,bYr as b9,vBe as bA,Jc as bB,t2 as bC,cLe as bD,Chn as bE,Vvr as bF,ggt as bG,Iw as bH,PAr as bI,EAr as bJ,e$e as bK,AAr as bL,h0r as bM,cye as bN,VOe as bO,Iyn as bP,Pyn as bQ,Zsn as bR,Z0n as bS,Y0n as bT,$3r as bU,rvn as bV,Lhe as bW,a2n as bX,u2n as bY,xtn as bZ,A3r as b_,r2n as ba,wRt as bb,vRt as bc,TRt as bd,iYr as be,bmn as bf,wwn as bg,ESn as bh,SRt as bi,yYr as bj,vvn as bk,hLe as bl,YB as bm,cwn as bn,lwn as bo,Jfn as bp,MAr as bq,z0n as br,t$e as bs,hgt as bt,L0n as bu,n$ as bv,hO as bw,v0r as bx,aR as by,fLe as bz,lRe as c,I2n as c$,Hwr as c0,c2n as c1,vtn as c2,s9t as c3,ed as c4,my as c5,fu as c6,M2n as c7,B2n as c8,$2n as c9,YZr as cA,ZZr as cB,VRt as cC,JRt as cD,BZr as cE,g2n as cF,JZr as cG,h2n as cH,QZr as cI,O2n as cJ,UZr as cK,Vze as cL,URt as cM,VZr as cN,EMe as cO,qZr as cP,C2n as cQ,o_e as cR,HZr as cS,KSt as cT,GSt as cU,KZr as cV,RZr as cW,zze as cX,CMe as cY,WZr as cZ,R2n as c_,q2n as ca,USt as cb,P2n as cc,L2n as cd,j2n as ce,tQr as cf,JSt as cg,A2n as ch,jD as ci,AZr as cj,XSt as ck,k2n as cl,eQr as cm,T2n as cn,N2n as co,_2n as cp,m2n as cq,LZr as cr,z2n as cs,XZr as ct,$Zr as cu,v2n as cv,b2n as cw,F2n as cx,D2n as cy,eve as cz,v3t as d,Txr as d$,y2n as d0,rQr as d1,E2n as d2,utn as d3,X0 as d4,uxt as d5,ixn as d6,Kye as d7,dR as d8,Myn as d9,i$ as dA,xan as dB,ban as dC,jVe as dD,sxn as dE,S0r as dF,w0r as dG,NTt as dH,syn as dI,hen as dJ,vSn as dK,ptn as dL,_Mt as dM,u2 as dN,ZAr as dO,l2n as dP,hMt as dQ,dQ as dR,Nhn as dS,vEr as dT,GTt as dU,SZ as dV,BCr as dW,_4t as dX,yZ as dY,pAt as dZ,AR as d_,Vv as da,jyn as db,R0r as dc,M0r as dd,V3t as de,bZ as df,wyn as dg,Lhn as dh,eCt as di,rCt as dj,Ahn as dk,rvr as dl,J0n as dm,W0n as dn,PI as dp,R_ as dq,awn as dr,_Be as ds,Cm as dt,Ofn as du,i0 as dv,H2n as dw,LDr as dx,rfn as dy,RRe as dz,g3t as e,TBe as e$,TSr as e0,t$ as e1,Hme as e2,fCt as e3,N5e as e4,d0n as e5,p0n as e6,evn as e7,W0 as e8,svn as e9,$hn as eA,HTr as eB,USn as eC,hSn as eD,byn as eE,bSn as eF,VYr as eG,Fze as eH,ORt as eI,h4t as eJ,dtn as eK,vYr as eL,O4t as eM,R5e as eN,Mye as eO,Uon as eP,aLe as eQ,Rhn as eR,y0r as eS,P4t as eT,Gon as eU,Uht as eV,Rht as eW,c0 as eX,f0n as eY,wan as eZ,jRe as e_,X2n as ea,ISn as eb,_vn as ec,qhe as ed,R4r as ee,VQr as ef,mvn as eg,h$e as eh,gvn as ei,hvn as ej,t2n as ek,cxn as el,axn as em,avn as en,xBe as eo,ahe as ep,Dyn as eq,G0 as er,qyn as es,YY as et,Jyn as eu,E_e as ev,e0n as ew,aQ as ex,tyn as ey,IC as ez,uRe as f,wSn as f$,_0n as f0,XCr as f1,Ohn as f2,E0n as f3,C0n as f4,TC as f5,cFe as f6,Tee as f7,AN as f8,Dve as f9,oLe as fA,pLe as fB,B0n as fC,R0n as fD,uwn as fE,_Pt as fF,Vhn as fG,O0r as fH,zhn as fI,Fme as fJ,zOe as fK,oCt as fL,F0n as fM,$yn as fN,Txn as fO,jan as fP,hxn as fQ,TR as fR,Mxn as fS,gxn as fT,Yze as fU,e2n as fV,kRt as fW,CTr as fX,fTr as fY,oxn as fZ,SSn as f_,Pmn as fa,EYr as fb,ND as fc,Zwr as fd,WTr as fe,C_e as ff,ftn as fg,v$e as fh,p3r as fi,vfn as fj,iwn as fk,nwn as fl,rwn as fm,Ave as fn,kN as fo,O0n as fp,V0n as fq,Twn as fr,xwn as fs,TSn as ft,CSn as fu,T4t as fv,b0n as fw,Phn as fx,jhn as fy,dN as fz,C3t as g,KTt as g$,a0 as g0,xSn as g1,GQ as g2,nxn as g3,GSn as g4,Z9t as g5,NRt as g6,VQ as g7,Vfn as g8,Qun as g9,pPt as gA,Snn as gB,Swn as gC,eyn as gD,RFe as gE,S3r as gF,yvn as gG,C0r as gH,o2n as gI,kYr as gJ,Iht as gK,ZTt as gL,o2 as gM,K1 as gN,qSn as gO,zSn as gP,Wwr as gQ,Ygn as gR,$Sn as gS,Xgn as gT,BSn as gU,r9t as gV,iSn as gW,xR as gX,uen as gY,Zrn as gZ,Bhn as g_,CR as ga,nYr as gb,n2n as gc,Gtn as gd,BDr as ge,Ig as gf,VSn as gg,b0r as gh,dee as gi,G2n as gj,dSn as gk,K2n as gl,vyn as gm,fSn as gn,m4r as go,oSn as gp,G0n as gq,uSn as gr,K0n as gs,pvn as gt,Dw as gu,of as gv,hR as gw,P3r as gx,X0n as gy,jSn as gz,QAt as h,l0n as h$,$Tt as h0,GTr as h1,rA as h2,kC as h3,tA as h4,Mhn as h5,ovn as h6,dBe as h7,tve as h8,p2n as h9,Dht as hA,Vye as hB,jTr as hC,MTr as hD,tCr as hE,Nyn as hF,Fyn as hG,Ryn as hH,Lyn as hI,Byn as hJ,u0n as hK,Ayn as hL,s0n as hM,Ym as hN,p4t as hO,Eyn as hP,kyn as hQ,yBe as hR,Jye as hS,Oyn as hT,wBe as hU,xyn as hV,i0n as hW,o0n as hX,she as hY,h0n as hZ,Pht as h_,gCt as ha,Gan as hb,qxn as hc,xYr as hd,tvn as he,Zgn as hf,lyn as hg,pyn as hh,gyn as hi,R$ as hj,CD as hk,uyn as hl,ayn as hm,cyn as hn,_yn as ho,JTr as hp,YCr as hq,Aht as hr,hC as hs,kRe as ht,J3t as hu,Tyn as hv,Cyn as hw,DRe as hx,ARe as hy,UTr as hz,Ip as i,sLe as i$,GCr as i0,zyn as i1,m4t as i2,uhe as i3,LCr as i4,OG as i5,s4t as i6,G3t as i7,qTr as i8,ZTr as i9,oCr as iA,nCr as iB,NG as iC,r0n as iD,g0n as iE,FCr as iF,qCr as iG,$Tr as iH,Xyn as iI,Vyn as iJ,fhe as iK,t0n as iL,I5e as iM,BTr as iN,CBe as iO,Wyn as iP,q$ as iQ,Uyn as iR,Gyn as iS,QSn as iT,rxn as iU,Eee as iV,AD as iW,Fcn as iX,Qxn as iY,E5e as iZ,zxn as i_,Kyn as ia,Hyn as ib,Yyn as ic,Zyn as id,c0n as ie,LTr as ig,jCr as ih,a4t as ii,m0n as ij,KTr as ik,n0n as il,Qyn as im,eCr as io,k_e as ip,IRe as iq,iCr as ir,rCr as is,KCr as it,QTr as iu,vee as iv,Bye as iw,sCr as ix,kpe as iy,NRe as iz,XAt as j,Rxn as j$,iee as j0,Kfn as j1,dwn as j2,M0n as j3,IAr as j4,EBe as j5,o$ as j6,LMt as j7,Uxn as j8,s2 as j9,Xin as jA,F9t as jB,UTt as jC,FB as jD,aN as jE,eSn as jF,ewn as jG,G_n as jH,lGr as jI,fGr as jJ,pGr as jK,mSn as jL,Uwr as jM,yVe as jN,Tnn as jO,ate as jP,fan as jQ,twt as jR,wI as jS,BFe as jT,Fxn as jU,Shn as jV,Ehn as jW,Thn as jX,Oxn as jY,whn as jZ,T0r as j_,Vxn as ja,uPt as jb,k3r as jc,sBe as jd,Ywr as je,mht as jf,zwr as jg,E3t as jh,Osn as ji,lSn as jj,HI as jk,HMe as jl,nyn as jm,GRt as jn,rve as jo,Dye as jp,lN as jq,rBe as jr,Fye as js,uN as jt,UAr as ju,PBe as jv,hBe as jw,Rye as jx,nBe as jy,e0e as jz,jwr as k,gR as k$,Lan as k0,xxn as k1,Sxn as k2,Jon as k3,jxn as k4,bxn as k5,Jan as k6,$xn as k7,fxn as k8,Lxn as k9,a6t as kA,aSn as kB,XSn as kC,ovr as kD,wD as kE,J0 as kF,ext as kG,JAt as kH,Y4 as kI,khn as kJ,lLe as kK,PEr as kL,Cve as kM,Eve as kN,LSn as kO,qMt as kP,UMt as kQ,Yxt as kR,jFe as kS,z_e as kT,LFe as kU,efn as kV,eUe as kW,Jxn as kX,Yfn as kY,N0n as kZ,pSn as k_,yxn as ka,mxn as kb,dxn as kc,Axn as kd,_xn as ke,pxn as kf,vxn as kg,kxn as kh,wxn as ki,Dxn as kj,_$e as kk,Cxn as kl,lxn as km,Bxn as kn,uxn as ko,Pxn as kp,bVe as kq,Exn as kr,Ban as ks,Ixn as kt,Nxn as ku,YSn as kv,KSn as kw,ZSn as kx,sSn as ky,FDr as kz,Zme as l,mwn as l$,PDr as l0,Tve as l1,U$ as l2,eA as l3,mD as l4,rTr as l5,nTr as l6,tTr as l7,Oye as l8,Ihn as l9,exn as lA,pwn as lB,_wn as lC,Cjt as lD,txn as lE,fyn as lF,Jsn as lG,myn as lH,swn as lI,ywn as lJ,U0n as lK,jAr as lL,q0n as lM,yyn as lN,dyn as lO,hyn as lP,gwn as lQ,Srn as lR,Q0n as lS,EEr as lT,Jhn as lU,Ufn as lV,f2n as lW,d2n as lX,kSn as lY,l9t as lZ,hjt as l_,H0r as la,c3r as lb,l3r as lc,Dhn as ld,fjt as le,iyn as lf,Jwr as lg,Qwr as lh,Zxn as li,Yxn as lj,Gxn as lk,Xxn as ll,Kxn as lm,D0n as ln,L3r as lo,ivn as lp,nvn as lq,cSn as lr,$Pt as ls,$0n as lt,fwn as lu,xhn as lv,Wxn as lw,Hxn as lx,Fhn as ly,qhn as lz,nQ as m,fbr as m$,vwn as m0,i2n as m1,WSn as m2,qfn as m3,qmn as m4,zmn as m5,nq as m6,UDr as m7,Syn as m8,vCt as m9,hje as mA,jAt as mB,zxr as mC,ZI as mD,o1r as mE,TCt as mF,_1r as mG,zme as mH,oht as mI,F_ as mJ,Vme as mK,Ume as mL,Kbr as mM,e2r as mN,yB as mO,jbr as mP,Bbr as mQ,OEt as mR,Jbr as mS,NEt as mT,Fbr as mU,Mbr as mV,wbr as mW,Tbr as mX,v2r as mY,eh as mZ,Q1r as m_,MSn as ma,Z2n as mb,W2n as mc,Q2n as md,MQr as me,JEr as mf,$Er as mg,ove as mh,ern as mi,S0n as mj,I0n as mk,x0n as ml,T0n as mm,w0n as mn,Ksn as mo,P0n as mp,OSn as mq,RSn as mr,NSn as ms,FSn as mt,kEr as mu,AEr as mv,JRe as mw,SN as mx,HSn as my,oyn as mz,vB as n,Rw as n$,DEt as n0,lbr as n1,obr as n2,AEt as n3,abr as n4,nbr as n5,ebr as n6,pbr as n7,ibr as n8,tbr as n9,Obr as nA,Dbr as nB,Abr as nC,Ibr as nD,Pbr as nE,o2r as nF,zbr as nG,kbr as nH,E2r as nI,u2r as nJ,Rbr as nK,a2r as nL,b2r as nM,xbr as nN,Ybr as nO,g2r as nP,Gbr as nQ,_2r as nR,IEt as nS,Ubr as nT,t2r as nU,r2r as nV,jEt as nW,S2r as nX,h2r as nY,C2r as nZ,x2r as n_,Y1r as na,Z1r as nb,_br as nc,dbr as nd,sbr as ne,rbr as nf,ubr as ng,bye as nh,cbr as ni,LEt as nj,k2r as nk,Vbr as nl,Qbr as nm,m2r as nn,i2r as no,$br as np,vbr as nq,Sbr as nr,gLe as ns,l2r as nt,LCt as nu,p2r as nv,f2r as nw,T2r as nx,gbr as ny,Nbr as nz,Bwr as o,iSr as o$,s2r as o0,A2r as o1,c2r as o2,Sye as o3,M_ as o4,y2r as o5,Wbr as o6,w2r as o7,d2r as o8,MEt as o9,ekt as oA,ugn as oB,lgn as oC,fgn as oD,cgn as oE,sgn as oF,WEt as oG,HEt as oH,mSr as oI,Q2r as oJ,$Ct as oK,zCt as oL,Ign as oM,vgn as oN,nkt as oO,BEt as oP,UEt as oQ,BCt as oR,qCt as oS,sSr as oT,Cgn as oU,_Sr as oV,L2r as oW,B2r as oX,eQ as oY,qk as oZ,tRe as o_,vu as oa,Cbr as ob,bbr as oc,ybr as od,Hbr as oe,xLe as of,Xbr as og,Zbr as oh,Ebr as oi,n2r as oj,Whn as ok,ui as ol,ogn as om,ign as on,mbr as oo,zmt as op,agn as oq,K2r as or,pSr as os,tkt as ot,rkt as ou,V2r as ov,z2r as ow,Rgn as ox,ySr as oy,QEt as oz,KAt as p,Ogn as p$,j2r as p0,$2r as p1,U2r as p2,bgn as p3,YEt as p4,ZEt as p5,O2r as p6,N2r as p7,F2r as p8,R2r as p9,Pgn as pA,M2r as pB,Dgn as pC,M$ as pD,hye as pE,gye as pF,Fgn as pG,dgn as pH,Bgn as pI,hgn as pJ,Mgn as pK,xgn as pL,hSr as pM,tSr as pN,UCt as pO,WCt as pP,VCt as pQ,JCt as pR,yye as pS,vye as pT,Tgn as pU,okt as pV,dSr as pW,oSr as pX,P2r as pY,xye as pZ,SSr as p_,ikt as pa,XEt as pb,Lgn as pc,akt as pd,kgn as pe,rSr as pf,QZ as pg,YI as ph,I2r as pi,wgn as pj,skt as pk,TLe as pl,aSr as pm,qme as pn,tQ as po,rRe as pp,eSr as pq,JEt as pr,Egn as ps,pgn as pt,Y2r as pu,mgn as pv,Ngn as pw,_gn as px,cSr as py,G2r as pz,Fwr as q,uAt as q$,gSr as q0,W2r as q1,jgn as q2,uSr as q3,fSr as q4,Agn as q5,lSr as q6,Sgn as q7,q2r as q8,J2r as q9,PEt as qA,Lbr as qB,qbr as qC,bSr as qD,Umt as qE,Jmt as qF,Khn as qG,X1r as qH,D2r as qI,tgn as qJ,ngn as qK,egn as qL,rgn as qM,T1r as qN,C1r as qO,w1r as qP,Ghn as qQ,Hhn as qR,hbr as qS,zgn as qT,$gn as qU,ALe as qV,JLe as qW,WLe as qX,HLe as qY,lAt as qZ,oAt as q_,GEt as qa,H2r as qb,ggn as qc,X2r as qd,nSr as qe,wLe as qf,$Et as qg,qEt as qh,zEt as qi,VEt as qj,Z2r as qk,KEt as ql,ygn as qm,sA as qn,$S as qo,Jme as qp,xSr as qq,Yhn as qr,Qhn as qs,vSr as qt,Xhn as qu,Zhn as qv,S1r as qw,x1r as qx,ZOe as qy,sD as qz,dy as r,rAt as r$,qLe as r0,zLe as r1,GLe as r2,BLe as r3,$Le as r4,NLe as r5,OLe as r6,PAt as r7,tBe as r8,kye as r9,hAt as rA,NAt as rB,ILe as rC,aAt as rD,QLe as rE,nAt as rF,wAt as rG,j$ as rH,Tye as rI,ZLe as rJ,eBe as rK,EAt as rL,LAt as rM,OAt as rN,Fw as rO,Eye as rP,gAt as rQ,j_ as rR,DAt as rS,tAt as rT,FAt as rU,bAt as rV,mAt as rW,Lu as rX,RLe as rY,wye as rZ,aD as r_,hee as ra,TAt as rb,dAt as rc,VLe as rd,DLe as re,PLe as rf,rQ as rg,qgn as rh,SAt as ri,vAt as rj,cht as rk,BAt as rl,Wme as rm,jLe as rn,LLe as ro,Hkt as rp,Jkt as rq,Ykt as rr,Kkt as rs,_At as rt,aht as ru,ULe as rv,MLe as rw,MAt as rx,yAt as ry,eAt as rz,ZAt as s,ESr as s$,Cye as s0,sAt as s1,cAt as s2,FLe as s3,fAt as s4,kLe as s5,CAt as s6,sht as s7,bxr as s8,nxr as s9,cxr as sA,USr as sB,nRe as sC,pxr as sD,hxr as sE,XLe as sF,ZSr as sG,exr as sH,Uxr as sI,sxr as sJ,wxr as sK,YSr as sL,Cxr as sM,Axr as sN,QSr as sO,Dxr as sP,qxr as sQ,Fxr as sR,WSr as sS,Ixr as sT,KLe as sU,AAt as sV,iAt as sW,Kme as sX,Oxr as sY,Gme as sZ,CSr as s_,ixr as sa,mxr as sb,IAt as sc,Bxr as sd,txr as se,rxr as sf,Mxr as sg,HSr as sh,GSr as si,xxr as sj,PSr as sk,NSr as sl,$xr as sm,oxr as sn,jSr as so,JSr as sp,DSr as sq,ISr as sr,xAt as ss,Nxr as st,fxr as su,dxr as sv,Ugn as sw,LSr as sx,uxr as sy,lxr as sz,cnn as t,tSn as t$,kxr as t0,Xme as t1,kAt as t2,zAt as t3,Lxr as t4,RAt as t5,$At as t6,RSr as t7,MSr as t8,OSr as t9,Rmt as tA,Mme as tB,mvr as tC,_vr as tD,PG as tE,lCt as tF,cCt as tG,yvr as tH,gvr as tI,Cwn as tJ,Uhn as tK,Jgn as tL,Wgn as tM,Hgn as tN,Ggn as tO,Kgn as tP,IEr as tQ,k0n as tR,A0n as tS,uvn as tT,fvn as tU,dvn as tV,Qbn as tW,U2n as tX,J2n as tY,qQr as tZ,Y2n as t_,FSr as ta,kSr as tb,ASr as tc,Pxr as td,Vgn as te,axr as tf,Vxr as tg,Rxr as th,qAt as ti,yxr as tj,jxr as tk,YLe as tl,_xr as tm,gxr as tn,KSr as to,vxr as tp,VSr as tq,BSr as tr,$Sr as ts,qSr as tt,zSr as tu,Sxr as tv,XSr as tw,Exr as tx,hvr as ty,sCt as tz,Pa as u,rSn as u0,nSn as u1,ASn as u2,DSn as u3,brn as u4,hwn as u5,Gd as v,bo as w,Pg as x,Pp as y,own 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 A_n=AVe.map(t=>{const n=E_n[t.kind],s=c=>q.jsx(k_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function D_n(t){return A_n.find(n=>n.kind===t)}function P_n({kind:t,dependencies:n}){const{Content:s}=D_n(t);return q.jsx(s,{dependencies:n})}const I_n=250;function N_n(){const t=M4t(),n=O_n();return()=>{n(),t()}}function O_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of Qs.getEntries()){if(S.add(k.id),k.level!=="error"&&k.level!=="warn")continue;const A=t.get(k.id)??0;k.count<=A||(t.set(k.id,k.count),g.push({severity:k.level,message:k.message,source:k.source??null,occurrences:k.count-A}))}for(const k of[...t.keys()])S.has(k)||t.delete(k);return g}function d(){if(n=null,s)return;const g=c();g.length!==0&&SN("console-entries",{entries:g,_clientId:xC})}const m=Qs.subscribe(()=>{if(s)return;const g=Qs.getEntries(),S=g[g.length-1];if(S&&S.level==="error"&&!t.has(S.id)){n!==null&&clearTimeout(n),n=null,queueMicrotask(d);return}n===null&&(n=setTimeout(d,I_n))});return SN("console-entries",{entries:[],_clientId:xC}),d(),()=>{s=!0,n!==null&&clearTimeout(n),m()}}const Y4={INPUT:"input",PRE_PHYSICS:"prePhysics",PHYSICS:"physics",POST_PHYSICS:"postPhysics",GAME_LOGIC:"gameLogic",ANIMATION:"animation",PRE_RENDER:"preRender",RENDER:"render"},yZ=[Y4.INPUT,Y4.PRE_PHYSICS,Y4.PHYSICS,Y4.POST_PHYSICS,Y4.GAME_LOGIC,Y4.ANIMATION,Y4.PRE_RENDER,Y4.RENDER],hwn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),sye=1e-9,$jt=1e5;function R_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+sye){const D=Math.min(g+S,s.end);m.push({from:g,to:D,direction:"forward"}),g=D;break}if(m.push({from:g,to:s.end,direction:"forward"}),S-=F,g=s.start,k=!0,A++,A>$jt){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 F_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>sye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+sye){const D=Math.max(g-S,s.start);m.push({from:g,to:D,direction:"reverse"}),g=D;break}if(m.push({from:g,to:s.start,direction:"reverse"}),S-=F,g=s.end,k=!0,A++,A>$jt){const D=s.end-S%c;m.push({from:g,to:D,direction:"reverse"}),g=D;break}}return{pos:g,intervals:m,looped:k}}function _Tt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class M_n{_previousTime;_currentTime;_range;_timeScale;_playDirection="forward";_lastCrossingDirection="forward";_playbackState="stopped";_evaluators=[];_registrationCounter=0;constructor(n={}){const s=n.start??0,c=n.end??Math.max(s,1);if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);const d=n.timeScale??1;if(!Number.isFinite(d)||d<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${d}`);this._range={start:s,end:c,loop:n.loop??!1},this._timeScale=d,this._previousTime=s,this._currentTime=s}get time(){return this._currentTime}get previousTime(){return this._previousTime}get direction(){return this._playbackState==="playing"?this._playDirection:"paused"}get playbackState(){return this._playbackState}get timeScale(){return this._timeScale}set timeScale(n){if(!Number.isFinite(n)||n<0)throw new Error(`[AnimationClock] timeScale must be a finite number >= 0, got ${n}`);this._timeScale=n}get range(){return this._range}setRange(n){const s=n.start??this._range.start,c=n.end??this._range.end,d=n.loop??this._range.loop;if(c<s)throw new Error(`[AnimationClock] range end (${c}) must be >= start (${s})`);this._range={start:s,end:c,loop:d};const m=_Tt(this._currentTime,this._range);m!==this._currentTime&&this.seek(m)}play(n){n&&(this._playDirection=n),this._playbackState="playing"}pause(){this._playbackState="paused"}stop(){this._playbackState="stopped"}seek(n){const s=_Tt(n,this._range);if(s===this._currentTime)return this.emit(this._currentTime,this._currentTime,[{from:s,to:s,direction:this._lastCrossingDirection}],!1,this._lastCrossingDirection);const c=s>this._currentTime?"forward":"reverse",d=this._currentTime;return this._previousTime=d,this._currentTime=s,this._lastCrossingDirection=c,this.emit(d,s,[{from:d,to:s,direction:c}],!1,c)}seekFrame(n,s){if(!Number.isFinite(s)||s<=0)throw new Error(`[AnimationClock] seekFrame fps must be a finite number > 0, got ${s}`);return this.seek(this._range.start+n/s)}advance(n){if(this._playbackState!=="playing")return null;if(!Number.isFinite(n))throw new Error(`[AnimationClock] advance(dt) requires a finite dt, got ${n}`);const s=Math.abs(n)*this._timeScale,c=this._currentTime;if(s===0)return this.emit(c,c,[],!1,this._playDirection);const d=this._playDirection==="forward"?R_n(c,s,this._range):F_n(c,s,this._range);return this._previousTime=c,this._currentTime=d.pos,this._lastCrossingDirection=this._playDirection,this.emit(c,d.pos,d.intervals,d.looped,this._playDirection)}subscribe(n,s){if(!yZ.includes(n))throw new Error(`[AnimationClock] unknown phase "${n}". Valid: ${yZ.join(", ")}`);const c={phase:n,order:this._registrationCounter++,fn:s};return this._evaluators.push(c),{dispose:()=>{const d=this._evaluators.indexOf(c);d!==-1&&this._evaluators.splice(d,1)}}}emit(n,s,c,d,m){const g={previousTime:n,currentTime:s,direction:m,timeScale:this._timeScale,looped:d,intervals:c};if(this._evaluators.length>0){const S=[...this._evaluators].sort((k,A)=>{const F=yZ.indexOf(k.phase),D=yZ.indexOf(A.phase);return F!==D?F-D:k.order-A.order});for(const k of S)try{k.fn(g)}catch(A){console.error(`[AnimationClock] evaluator in phase "${k.phase}" threw:`,A)}}return g}}const b_e={start:0,end:0,fps:30},j_n=150;class gwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new M_n;subjects=[];activeId=null;listeners=new Set;settleListeners=new Set;settleTimer=null;disposed=!1;cachedSnapshot=null;stopStoreWatch;attach(n){return this.subjects.push(n),this.activeId===null?this.setActiveSubject(n.id):(n.seek(this.clock.time),this.notify()),()=>{const s=this.subjects.indexOf(n);if(s<0)return;if(this.subjects.splice(s,1),this.activeId!==n.id){this.notify();return}this.activeId=null;const c=this.subjects[0];c?this.setActiveSubject(c.id):(this.clock.setRange({start:b_e.start,end:b_e.end,loop:!1}),this.notify())}}setActiveSubject(n){const s=this.subjects.find(d=>d.id===n);if(!s)return;this.activeId=n;const c=s.range();this.clock.setRange({start:c.start,end:c.end}),this.applyTime(this.clock.time),this.notify()}get active(){return this.subjects.find(n=>n.id===this.activeId)??null}fps(){return this.active?.range().fps??b_e.fps}get driver(){return this.store.playState==="stopped"?"editor":"world"}assertEditorDrives(){if(this.driver==="world")throw new Error("transport: the world is driving time (Play); pause the game to scrub")}play(n="forward"){this.assertEditorDrives(),this.active&&(this.cancelSettle(),this.clock.play(n),this.notify())}pause(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.settle(),this.notify()}stop(){this.assertEditorDrives(),this.clock.pause(),this.cancelSettle(),this.applyTime(this.clock.seek(this.clock.range.start).currentTime),this.clock.stop(),this.settle(),this.notify()}seek(n){this.assertEditorDrives(),this.applyTime(this.clock.seek(n).currentTime),this.clock.playbackState!=="playing"&&this.scheduleSettle(),this.notify()}seekFrame(n){this.seek(n/this.fps())}setLoop(n){this.clock.setRange({loop:n}),this.notify()}setTimeScale(n){this.clock.timeScale=n,this.notify()}tick(n){if(this.disposed||this.driver==="world"||this.clock.playbackState!=="playing")return 0;const s=this.clock.time,c=this.clock.advance(n);return c?(this.applyTime(c.currentTime),this.notify(),c.looped?Math.abs(n)*this.clock.timeScale:c.currentTime-s):0}applyTime(n){const s=this.active;s&&s.seek(n);for(const c of this.subjects)c!==s&&c.seek(n)}onSettled(n){return this.settleListeners.add(n),()=>{this.settleListeners.delete(n)}}scheduleSettle(){this.cancelSettle(),this.settleTimer=setTimeout(()=>{this.settleTimer=null,this.settle()},j_n)}cancelSettle(){this.settleTimer!==null&&(clearTimeout(this.settleTimer),this.settleTimer=null)}settle(){if(this.disposed)return;const n=this.clock.time;for(const s of[...this.settleListeners])s(n)}snapshot(){const n=this.cachedSnapshot;if(n)return n;const s=this.active?.range()??b_e,c={time:this.clock.time,range:{start:this.clock.range.start,end:this.clock.range.end,fps:s.fps,loop:this.clock.range.loop},playbackState:this.clock.playbackState,timeScale:this.clock.timeScale,activeSubject:this.activeId,subjects:this.subjects.map(d=>({id:d.id,label:d.label})),driver:this.driver};return this.cachedSnapshot=c,c}activeClips(){const s=this.active?.clips?.();return s&&s.length>1?s:null}setActiveClip(n){this.assertEditorDrives(),this.active?.setClip?.(n);const s=this.active?.range();s&&this.clock.setRange({start:s.start,end:s.end}),this.applyTime(this.clock.time),this.notify()}subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}notify(){this.cachedSnapshot=null;for(const n of[...this.listeners])n()}dispose(){this.disposed=!0,this.stopStoreWatch(),this.cancelSettle(),this.clock.stop(),this.subjects.length=0,this.activeId=null,this.listeners.clear(),this.settleListeners.clear()}}const Dme=new Map,Hje=new Set;function mTt(){for(const t of[...Hje])t()}function ywn(t,n){return Dme.set(t,n),mTt(),()=>{Dme.get(t)===n&&(Dme.delete(t),mTt())}}function L_n(t){return t===null?null:Dme.get(t)??null}function B_n(t){return Hje.add(t),()=>{Hje.delete(t)}}let Pme=null;function vwn(t){return Pme=t,()=>{Pme===t&&(Pme=null)}}function kve(){return Pme}const qjt="__volterWorkspacePersistenceSuppressed";function zjt(){return globalThis}function Vjt(t){zjt()[qjt]=t}function $_n(){return zjt()[qjt]===!0}function Ujt(){return(xee()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const Jjt={phase:"idle",flightDone:!1,gameReady:!1};function q_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 z_n(t,n){if(n==="stop")return Jjt;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 q_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 V_n=450,U_n=220,Wjt=250;function J_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${V_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${U_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Wjt}ms`)}let SD=null;function W_n(t){return SD=t,typeof document<"u"&&J_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Hjt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function H_n(){return Qk?.state.phase??"idle"}const Ime=new Set;function Gjt(){if(Ime.size===0)return;const t=[...Ime];Ime.clear();for(const n of t)n()}function G_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Ime.add(t)}function K_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=z_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),K_n(n,Wjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&kve()?.settle(),Gjt()))}function X_n(){Y_n({immersive:Ujt()})}function Y_n(t){if(Qk&&uUe(),!t.immersive)return;const n=Hjt();Vjt(!0);const s={state:Jjt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=kve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function Z_n(t,n){(!t||!n)&&uUe()}function Q_n(t){const n=Qk;n&&(n.flying&&t&&kve()?.track(t),gB("game-ready"))}function uUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Gjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&kve()?.end(),SD?.showChrome(!Hjt()),Vjt(!1)}}const Gje=new Set;let Kjt=null;function Xjt(){return wf()?.rootPath??null}function emn(t){Gje.add(t);const n=Xjt();return n!==null&&Kjt===n&&t(),()=>{Gje.delete(t)}}async function bwn(){Kjt=Xjt();for(const t of[...Gje])await t()}function tmn(){const t=Pp();if(t===null)return null;const n=lQ(t);if(typeof n!="object"||n===null)return null;const s=n.stageMode;if(typeof s!="function")return null;const c=s.call(n);return typeof c=="string"?c:null}let Kje=null;function rmn(t){Kje=t}function hTt(){if(!Kje)throw new Error("The workbench Output service is not connected.");return Kje}function nmn(){uDr(Pp),u4r({output:{write:(...t)=>hTt().write(...t),show:t=>hTt().show(t)},console:{log:(t,n)=>Qs.log(t,n),warn:(t,n)=>Qs.warn(t,n),error:(t,n)=>Qs.error(t,n)},live:{register:s9t,mounted:bVe,playing:ave,runWindow:pVe,restartRequired:n9t,restart:i9t,subscribe:xVe,version:c9t,notifyChanged:r9t,snapshotFrame:mVe,frameCanvas:_Ve,authoringRefusal:vVe,dispatch:hVe,scenes:gVe,surface:sve,coverage:yVe},viewport:{transition:{begin:X_n,ready:Q_n,end:uUe,onSettled:G_n,phase:H_n}},hierarchy:{subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:DBe,reportFacet:Zrn,onSample:Bnn,onCommandDispatched:HYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=s_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>Bze(n=>{n!==null&&t()}),onBeforeClose:gnn,reportWorkerCallMeter:aan},project:{documentTable:Jen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:emn},notify:t=>s$(t),systems:{inspected:Pye,subscribe:Kwr,inspectedNetworking:Qwr,subscribeNetworking:eTr,inspectedAudio:()=>tTr()??null,subscribeAudio:rTr,audioVersion:nTr},availability:{subscribe:ZVe,version:zun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Yye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:ytn,acquire:xtn,release:iVe,open:iq,container:vtn,setContainer:btn,releaseContainer:Stn}},documents:{activeId:Pp,active:()=>{const t=TC();return t?{id:t.descriptor.id,kind:t.descriptor.kind,title:t.title}:null},subscribe:o2,version:K1,context:lQ,waitForContext:b4t,contextChanged:eEr,captureActive:t=>{const n=Ih();return n?x9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>L_n(t),subscribe:B_n},projectLocalState:{ready:ute,read:Cve,write:Eve,projectRootPath:()=>wf()?.rootPath??null},history:{record:s6t,setDelegate:cDr,onElement:dDr,invalidate:pDr,onInvalidated:_Dr,changed:lDr,elements:fDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?VYr(s)??Fze(s):null},undo:()=>Ih()?.projectHistory?.undo()??Promise.resolve(!1),redo:()=>Ih()?.projectHistory?.redo()??Promise.resolve(!1),canUndo:()=>Ih()?.projectHistory?.getSnapshot().canUndo??!1,canRedo:()=>Ih()?.projectHistory?.getSnapshot().canRedo??!1,undoLabel:()=>Ih()?.projectHistory?.getSnapshot().undoLabel??null,redoLabel:()=>Ih()?.projectHistory?.getSnapshot().redoLabel??null,subscribe:t=>{const n=o6t(t),s=s_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:M4r,read:t=>Dg.read(t),readBytes:t=>Dg.readBytes(t),write:(t,n)=>Dg.write(t,n),exists:t=>Dg.exists(t),list:t=>Dg.list(t),watch:t=>Dg.watch(t)},settings:{setProvider:FEr,get:qEr,set:VEr,inspect:Y4t,subscribe:t=>{const n=H4t(t),s=See(t);return()=>{n(),s()}}},keyboard:{actions:()=>Xan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>Q4t().map(({id:t,title:n})=>({id:t,title:n,chords:oDt(t)})),activeKeymap:dR,invoke:t=>BVe(t),subscribe:t=>{const n=Zan(t),s=Kye(t),c=s_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Yan()+K1(),stage:()=>{const t=Ih();return t?{surface:Xfn(t).surface,mode:tmn()}:{surface:null,mode:null}},bindActions:ocn,chordsFor:BBe,shortcutFor:t=>Vv(t)??null}})}let imn=0,lee=null;const Xje=new Set;function gTt(t){const n={generation:++imn,promise:t,active:!0};lee=n;for(const s of Xje)s(n);return Xje.clear(),n}function omn(){const t=lee;return t?.active?Promise.resolve(t):new Promise(n=>Xje.add(n))}async function fUe(){for(;;){const t=await omn();if(await t.promise,lee===t&&t.active)return}}const Yjt=16,smn=300,amn=1e4,Zjt="workspace";function cmn(){const t=Cve(Zjt);return!t||t.version!==Yjt?null:t}function lmn(t){Eve(Zjt,t)}function umn(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=IAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function fmn(){const t={};let n=!1;for(const s of hDt()){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 dmn(){const t=[];for(const s of l0()){const c=umn(s);c&&t.push(c)}const n=fmn();return{version:Yjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function pmn(t,n,s){for(const c of mDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!GQ(),store:t}))return!0}catch{}return!1}function yTt(t){if(!t)return!1;const n=!GQ();return xN(t,n)?!0:_tn.has(t)?(PFt(t),n&&TTr(t),!0):n&&X0(t)}function _mn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of hDt())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 mmn(t){const n=new Set;for(const s of t)for(const c of mDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function hmn(t,n){const s=n?.documents;if(_mn(t,s),!s||s.open.length===0){yTt(s?.activeId??null);return}await mmn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&NAr(c.id,d),await pmn(t,c,s.activeId)}yTt(s.activeId)}function Qjt(t){if(!ute()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=gTt(Ce);return Promise.all([lte(),eVe()]).then(()=>{if(se){ue();return}pe=Qjt(t),De.active=!1,fUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=cmn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Rkr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!($_n()||t.playState!==void 0&&t.playState!=="stopped")&&lmn(dmn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,smn)},S=()=>m();let k=null;const A=typeof window<"u"&&lCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():hN().catch(()=>{}),D=F.then(()=>A?void 0:hmn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},amn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(MAr(g)),window.addEventListener("pagehide",S))}),G=gTt($);return()=>{s=!0,G.active=!1,lee===G&&(lee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function gmn(t){Ye.useEffect(()=>{const n=lCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return fUe().then(()=>{if(d())return Vge(t,n,{updateUrl:!1,origin:"link"})}).catch(m=>{Qs.error(`Could not restore shared editor view: ${m instanceof Error?m.message:String(m)}`,"editor")}),()=>{s=!0}},[t])}const vTt="volter:stale-chunk-reload";function ymn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(vTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(vTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function vmn(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 Swn(t,n,s){const c=new Map,d={surface:t,store:n},m=g=>{const S=s(g);if(!S)return null;for(const k of jI){const A=k.statesFor(S,d);if(A.length>0)return{source:k,states:A}}return null};return{storiesFor:g=>[...m(g)?.states??[]],active:g=>c.get(g)??null,apply:(g,S)=>{if(S===null){c.delete(g),n.notifyIngestEdit();return}const k=m(g);if(!k?.states.some(F=>F.id===S)){Qs.warn(`[component-states] stories.apply: state "${S}" does not belong to node "${g}" on the ${t} surface — ignoring.`,"authoring");return}const A=s(g);A&&(c.set(g,S),k.source.apply(A,S,d),n.notifyIngestEdit())},unavailable:()=>jI.length>0?null:"No package in this editor registered a source of component states, so this component's named states could not be read."}}class xwn extends Error{name="StoryMediumMismatch"}function wwn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Nme=new Map;function Twn(t,n){return Nme.set(t,n),()=>{Nme.get(t)===n&&Nme.delete(t)}}function bmn(t){return Nme.get(t)??null}function Smn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${xmn(n[c])}`);return`${t}|${s.join("&")}`}function xmn(t){if(typeof t=="function")return"fn";if(typeof t=="symbol")return"symbol";if(t===void 0)return"undefined";try{return JSON.stringify(t)??"undefined"}catch{return`[${typeof t}]`}}const aye=new Map,S_e=new Map,bTt=new WeakMap;let STt=Promise.resolve(),xTt=null,wmn=1;function Tmn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function Cmn(){await Promise.race([jye(),new Promise(t=>setTimeout(t,5e3))]),await Promise.race([new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),new Promise(t=>setTimeout(t,250))]),await new Promise(t=>setTimeout(t,750)),await new Promise(t=>{const n=globalThis.requestIdleCallback;if(typeof n=="function"){n(()=>t(),{timeout:2e3});return}setTimeout(t,0)})}function Emn(){return xTt??=Cmn(),xTt}function kmn(t){const n=bTt.get(t);if(n!==void 0)return n;const s=wmn++;return bTt.set(t,s),s}function Amn(t,n,s,c){const d=aye.get(t);if(d)return Promise.resolve(d);const m=S_e.get(t);if(m)return m;const g=STt.then(async()=>{await Emn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=bmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return STt=g.then(()=>{},()=>{}),S_e.set(t,g),g.then(S=>{aye.set(t,S),S_e.delete(t)},()=>S_e.delete(t)),g}function Dmn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${Smn(n.id,n.args)}:${kmn(m)}:${s}:${c}x${d}`,[S,k]=Ye.useState(()=>aye.get(g)),[A,F]=Ye.useState(!1);return Ye.useEffect(()=>{let D=!1;if(F(!1),k(aye.get(g)),!!Tmn())return Amn(g,t.surface,n,{width:c,height:d}).then(J=>{D||k(J)},()=>{D||F(!0)}),()=>{D=!0}},[t.surface,d,g,n,c]),S?q.jsx("img",{src:S,alt:`${t.name} preview`,className:"volter-component-thumbnail"}):q.jsx("span",{className:"volter-component-thumbnail-fallback","data-component-preview":A?"failed":"capturing-story",children:q.jsx(wR,{kind:"component",name:t.name})})}const Ave="story:three",Dve="story:isolated",Pmn="story:docs";function Imn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function Nmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Dmn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Omn="story",Rmn={id:Omn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Imn(c,t.surface))continue;const d=kRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:G0e,Thumbnail:Nmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?Ave:Dve,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function wTt(t){return xYr(t.name,t.sourcePath)}const Fmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:wTt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=wTt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(Ave,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(Dve,s.store,{modulePath:c.modulePath,storyName:c.name});return}Qs.warn(`[portable-csf] no story document is registered for the "${s.surface}" surface, so state "${n}" of "${t.name}" could not be opened.`,"authoring")}}};function Mmn(){let t=0,n=!1;const s=S=>{const k=++t;mYr(),jye().then(()=>{if(!(n||k!==t))return EYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=kFt(),m=IC(()=>s()),g=gen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const eLt="story",MOe=new Set,jOe=new Set;function jmn(t){const n=SRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function LOe(t){for(const n of rq())if(n.ok){for(const s of n.stories)if(t.storyId===void 0?n.modulePath===t.modulePath&&s.name===t.storyName:s.id===t.storyId)return{modulePath:n.modulePath,storyName:s.name,title:t.title??jmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function Lmn(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(Pmn,t,c);const d=Ize({modulePath:s.modulePath,regions:Pze()});return d.medium===void 0?(_Yr(s.modulePath,d.reason),null):CD(d.medium==="three"?Ave:Dve,t,c)}function TTt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function Bmn(){return AN({id:eLt,owner:"./story-opener",open:(t,n)=>{const s=LOe(n);return s?Lmn(t,n,s):(n.modulePath?MOe.add(n.modulePath):n.storyId!==void 0&&(jOe.add(n.storyId),vYr()&&TTt(n.storyId)),null)},settle:async()=>{await BDr();const t=[...MOe],n=[...jOe];if(MOe.clear(),jOe.clear(),await Promise.all(t.map(s=>wYr(wf(),s))),n.length!==0){await bYr();for(const s of n)LOe({storyId:s})||TTt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=LOe(n);if(!(!s||Ize({modulePath:s.modulePath,regions:Pze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const $mn={actions:()=>{if(!sgt(Dve)&&!sgt(Ave))return[];const t=[];for(const n of rq()){if(!n.ok)continue;const s=n.modulePath.split("/").pop()??n.modulePath;for(const c of n.stories)t.push({id:`story:${c.id}`,label:`Open Story: ${c.name} — ${s}`,execute:()=>void dy().workspace.open({kind:eLt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>G0e(t)};function qmn(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 zmn(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 Vmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Umn(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 qZr("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=qmn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=zmn(nB,t.pose);if(typeof k=="string")return{ok:!1,error:k};const{captureProjectStoryVariants:A}=await lo(async()=>{const{captureProjectStoryVariants:D}=await import("./story-capture-Bp8iYZLe.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([268,269,1,2,3,4,20,21,234,213,270,22,23]));return{ok:!0,data:{...await A(wf(),{modulePath:n,...s===void 0?{}:{story:s},width:m,height:g,...S?{camera:S}:{},...k?{pose:k}:{}})}}}catch(d){return{ok:!1,error:d instanceof Error?d.message:String(d)}}}const Jmn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Umn}};function Wmn(){const t=Iin(Rmn),n=vmn(Fmn),s=Bmn(),c=gCt($mn),d=vCt(Vmn,Jmn),m=Mmn(),g=G0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const Hmn=[["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"]],Gmn=[["volter.viewport.background","--volter-viewport-background"],["volter.viewport.grid","--volter-viewport-grid"],["volter.viewport.axisX","--volter-viewport-axis-x"],["volter.viewport.axisY","--volter-viewport-axis-y"],["volter.viewport.axisZ","--volter-viewport-axis-z"],["volter.viewport.selection","--volter-viewport-selection"],["volter.viewport.active","--volter-viewport-active"],["volter.viewport.wire","--volter-viewport-wire"],["volter.gizmo.x","--volter-gizmo-x"],["volter.gizmo.y","--volter-gizmo-y"],["volter.gizmo.z","--volter-gizmo-z"],["volter.gizmo.navigationX","--volter-gizmo-navigation-x"],["volter.gizmo.navigationY","--volter-gizmo-navigation-y"],["volter.gizmo.navigationZ","--volter-gizmo-navigation-z"],["volter.gizmo.hover","--volter-gizmo-hover"],["volter.gizmo.drag","--volter-gizmo-drag"]];function CTt(t){const n=t.trim().toLowerCase(),s=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(n)?.[1];if(s)return`#${s.length===3?[...s].map(S=>S+S).join(""):s}`;const c=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.]+%?))?\s*\)$/.exec(n);if(!c)return null;const d=S=>Math.max(0,Math.min(255,Math.round(Number(S)))).toString(16).padStart(2,"0"),m=c[4],g=m===void 0?"":Math.round(Math.max(0,Math.min(1,m.endsWith("%")?Number.parseFloat(m)/100:Number(m)))*255).toString(16).padStart(2,"0");return`#${d(c[1])}${d(c[2])}${d(c[3])}${g==="ff"?"":g}`}function Kmn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of Hmn){const g=CTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Gmn){const m=CTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let dm=null,tLt=0;const Yje=new Set;function Xmn(t){return Yje.add(t),()=>Yje.delete(t)}function ETt(){return tLt}const BOe=new Map;function rLt(t,n){BOe.get(t)?.disconnect(),BOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;r3r(t,d!==null&&d.width>0&&d.height>0)};if(s(),n===null||typeof ResizeObserver>"u")return;const c=new ResizeObserver(s);c.observe(n),BOe.set(t,c)}function Ymn(t,n){if(dm){if(n===null){if(dm[t]?.isConnected)return}else if(dm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...dm};delete s[t],dm=s}else n!==null&&(dm={...dm,[t]:n});n!==null&&nLt(t,n),rLt(t,n),tLt+=1;for(const s of Yje)s()}}function nLt(t,n){n.dataset.volterPart=t}const XI=new Map;let kTt=!1;function Zmn(){const t=n=>{if(!n)return null;const s=n.getBoundingClientRect();return{x:s.x,y:s.y,width:s.width,height:s.height,connected:n.isConnected}};return{editorRoots:[...document.querySelectorAll("#editor-root")].map(t),chrome:t(dm?.chromeRoot??null),slots:[...XI.values()].map(n=>({id:n.id,documentId:n.documentId,bounds:t(n.element)})),surfaces:[...document.querySelectorAll("[data-workspace-document-id]")].map(n=>({documentId:n.dataset.workspaceDocumentId,viewId:n.dataset.workspaceViewId,bounds:t(n)}))}}let iLt=0;const Zje=new Set,oLt=new Set;let ATt=!1;function DTt(){for(const t of l0())oLt.add(t.descriptor.id)}function Qmn(t){ATt||(ATt=!0,o2(DTt)),DTt(),!(!t||oLt.has(t))&&(Dtn(t)||PFt(t,!1))}function ehn(t,n){if(n){if(!XI.delete(t.id))return}else{XI.has(t.id)||Qmn(t.documentId);const s=XI.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;XI.set(t.id,{...t})}iLt+=1;for(const s of[...Zje])s()}function thn(t){return Zje.add(t),()=>{Zje.delete(t)}}function PTt(){return iLt}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 rhn({children:t}){return q.jsx(q.Fragment,{children:t})}function nhn(){return dm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(apn,{})}),dm.header):null}function ihn(){return null}function ohn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return Sjt(n),()=>gfn(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(Djt,{})})]})}const Ome=new Map,Qje=new Set;let eLe=0;function shn(t,n){if(n){if(Ome.get(t)===n)return;n.dataset.volterUtility=t,Ome.set(t,n)}else if(!Ome.delete(t))return;eLe++;for(const s of Qje)s()}const Rme=new Map,tLe=new Set;let rLe=0;function ahn(t,n){if(n){if(Rme.get(t)===n)return;Rme.set(t,n)}else if(!Rme.delete(t))return;rLe++;for(const s of tLe)s()}function chn(){return Ye.useSyncExternalStore(I3t,ght,ght),Ye.useSyncExternalStore(t=>(tLe.add(t),()=>tLe.delete(t)),()=>rLe,()=>rLe),q.jsx(q.Fragment,{children:[...hRe("left"),...hRe("right")].map(t=>{const n=Rme.get(t.id);if(!n)return null;const s=t.Content;return q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(s,{}),n)},t.id)})})}function lhn(){return Ye.useSyncExternalStore(Xye,bhe,bhe),Ye.useSyncExternalStore(t=>(Qje.add(t),()=>Qje.delete(t)),()=>eLe,()=>eLe),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Ome.get(t.id);return n?q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(GO,{children:q.jsx(upn,{utility:t})}),n)},t.id):null})})}function uhn({descriptor:t,viewId:n,slot:s,parking:c,visible:d,inspector:m}){const[g]=Ye.useState(()=>document.createElement("div"));return Ye.useLayoutEffect(()=>{g.className="volter-vscode-document-slot",g.dataset.volterDocument=t.id,g.dataset.volterArea=t.area??"",g.style.cssText=`display:${d?"flex":"none"};flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;position:relative;`},[g,t.id,t.area,d]),Ye.useLayoutEffect(()=>((s??c).appendChild(g),()=>g.remove()),[g,s,c]),r2.createPortal(q.jsxs(GO,{children:[q.jsx(JMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Yun,{})]}),g)}let sLt=!0;function fhn({arrangement:t,immersivePlay:n}){const s=Yv();gmn(s);const c=HVe(s);Ye.useLayoutEffect(()=>{sLt=c.column},[c.column]);const d=XI.get(CRe()??"")?.element??dm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Iwt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Iwt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(thn,PTt,PTt),Ye.useSyncExternalStore(Xmn,ETt,ETt),Ye.useLayoutEffect(()=>{const F=ckr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),jkr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(See,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{Z_n(m,Ujt())},[m,n,g]),Ye.useEffect(()=>Qjt(s),[s]),!dm)return null;const S=dm.center,k=l0(),A=TC()??k[0]??null;return globalThis.__volterBridge={documents:k.map(F=>F.descriptor.id),active:A?.descriptor.id??null,workspace:t?.id??null,areas:k.flatMap(F=>F.descriptor.area?[{id:F.descriptor.id,area:F.descriptor.area}]:[]),slots:[...XI.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...XI.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(uhn,{descriptor:D,viewId:F.id,slot:F.element??void 0,parking:S,visible:!!F.element,inspector:c.card&&D.id===A?.descriptor.id},F.id):null}),k.length===0&&r2.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),dm.center),dm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(ohn,{})}),dm.outliner),dm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(QVe,{}):q.jsx(Uun,{surface:c.surface})}),dm.properties),dm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(P_n,{kind:"assets"})}),dm.content),q.jsx(lhn,{}),q.jsx(chn,{})]})}async function dhn(t,n={}){dm=t,n.workspaceStorage&&i3r(n.workspaceStorage),d3r();for(const[De,Pe]of Object.entries(t))Pe&&nLt(De,Pe),rLt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",FPt({Frame:rhn,Header:nhn,Footer:ihn,Workspace:fhn,Document:qcn}),N_n(),Xnn();const s=Yln();s&&Kln(s,Date.now())&&Qs.warn(Hln(s,Date.now()),"editor"),ymn(),MDr(),nmn(),kTt||(kTt=!0,dy().session.reportFacet(De=>({nativeLayout:De?.nativeLayout??Zmn()}),{reusableKeys:["nativeLayout"]})),Wmn(),await Promise.all([X4t(),lAr(),iPt()]),TAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",uee()?.nativeMenus===!0);const c=document.createElement("div");c.id="editor-root",c.className="volter-part",c.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",t.chromeRoot.appendChild(c),nLe.createRoot(c).render(q.jsx(_un,{}));const d={activeKeymap:()=>dy().keyboard.activeKeymap(),invoke:De=>dy().keyboard.invoke(De),subscribe:De=>dy().keyboard.subscribe(De),facts:()=>{const De=dy(),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=dy();De==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:fUe,activeSource:()=>{const De=dy().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?Dkr().find(be=>be.id===De.descriptor.area):void 0;return{id:De.descriptor.id,title:De.title,...Pe?{area:{id:Pe.id,place:Pe.place,ratio:Pe.ratio}}:{}}}),activeId:()=>TC()?.descriptor.id??null,subscribe:De=>{m=!0;const Pe=o2(De),be=Pkr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&GQ()||(Pe?xTr(De,Pe):X0(De))},close:De=>{if(kN(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)=>ehn(De,Pe)},S={elements:()=>dy().history.elements(),onElement:De=>dy().history.onElement(De),onInvalidated:De=>dy().history.onInvalidated(De),changed:()=>dy().history.changed(),focusedResource:()=>dy().history.focusedResource(),focusedDocument:()=>{const De=dy().documents.active();return De?{id:De.id,label:De.title}:null},setDelegate:De=>dy().history.setDelegate(De),report:d.report},k={setProvider:De=>dy().files.setProvider(De),report:d.report},A={setProvider:De=>dy().settings.setProvider(De),adapterValues:()=>[...jEr()],workbenchValues:()=>{const De=dm?.chromeRoot;if(!De)return[];const Pe=getComputedStyle(De).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Kmn(De)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>PN(),notify:De=>{dy().notify(De)},subscribe:De=>{const Pe=Hye(De),be=PDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Qnn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>tin(De),subscribe:De=>ein(De),setPaletteOpener:De=>Znn(De),setCommandExecutor:De=>rin(De),report:d.report},D={setDelegate:De=>rEr(De?{show:Pe=>De({...Pe,source:f3r()})}:null)},J={list:()=>LPt().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)=>$Pt(De,Pe,be),subscribe:De=>BPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=bhe();const be=Xye(De),X=ZVe(()=>{const we=bhe();we!==Pe&&(Pe=we,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>shn(De,Pe)};let G=!0,se=null,pe=null;xrn(()=>G);const ue={setActiveStaticPanel:De=>rgt(AVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(sLt)return!1;const De=dm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),rgt("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!dm)&&(se=W_n({root:dm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=fkr({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:rmn},settings:A,status:{list:()=>["left","right"].flatMap(De=>hRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>I3t(De),offerBody:(De,Pe)=>ahn(De,Pe)},game:ue,offerPart:Ymn}}function phn(t){const n=Object.keys(t.packages);return m0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),$Dt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:dhn}}const{mountVolter:Cwn}=phn({id:"game-editor",packages:{"@volter/editor-game":f0r,"@volter/editor-react":d0r,"@volter/editor-threejs":p0r,"@volter/editor-xstate":_0r,"@volter/editor-blender":u0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,S3t as A,y0n as B,x3t as C,w3t as D,M_e as E,j0n as F,kAr as G,cRe as H,Aen as I,mFt as J,DB as K,u0 as L,OC as M,b3t as N,rVe as O,y3t as P,ySn as Q,T3t as R,$wr as S,V2n as T,Yv as U,Ih as V,iBe as W,eYr as X,cvn as Y,Qs as Z,lo as _,XY as a,S2n as a$,XFt as a0,Qtn as a1,e9t as a2,L_ as a3,EN as a4,PSn as a5,Ms as a6,dc as a7,Kk as a8,lvn as a9,yRt as aA,Htn as aB,wf as aC,Y0 as aD,mp as aE,H0n as aF,gy as aG,oq as aH,gMt as aI,W3r as aJ,gSn as aK,_p as aL,pm as aM,Zm as aN,bwn as aO,ive as aP,l0 as aQ,PFt as aR,TD as aS,a0n as aT,UCr as aU,Z0e as aV,jRt as aW,Lze as aX,JSn as aY,Zf as aZ,j9t as a_,vC as aa,Qgn as ab,oan as ac,dcn as ad,_Sn as ae,Zze as af,MB as ag,Xwr as ah,a9t as ai,s2n as aj,v0n as ak,Go as al,ryn as am,Iye as an,nfn as ao,Q0e as ap,eTr as aq,twn as ar,G0e as as,rq as at,Ize as au,Pze as av,_Yr as aw,Tan as ax,g$e as ay,Jtn as az,oBe as b,D3r as b$,w2n as b0,G4r as b1,x2n as b2,gC as b3,k$e as b4,PTr as b5,tOe as b6,ig as b7,kFt as b8,bYr as b9,vBe as bA,Jc as bB,t2 as bC,cLe as bD,Chn as bE,Vvr as bF,ggt as bG,Iw as bH,PAr as bI,EAr as bJ,e$e as bK,AAr as bL,h0r as bM,cye as bN,VOe as bO,Iyn as bP,Pyn as bQ,Zsn as bR,Z0n as bS,Y0n as bT,$3r as bU,rvn as bV,Lhe as bW,a2n as bX,u2n as bY,xtn as bZ,A3r as b_,r2n as ba,wRt as bb,vRt as bc,TRt as bd,iYr as be,bmn as bf,wwn as bg,ESn as bh,SRt as bi,yYr as bj,vvn as bk,hLe as bl,YB as bm,cwn as bn,lwn as bo,Jfn as bp,MAr as bq,z0n as br,t$e as bs,hgt as bt,L0n as bu,n$ as bv,hO as bw,v0r as bx,aR as by,fLe as bz,lRe as c,I2n as c$,Hwr as c0,c2n as c1,vtn as c2,s9t as c3,ed as c4,my as c5,fu as c6,M2n as c7,B2n as c8,$2n as c9,YZr as cA,ZZr as cB,VRt as cC,JRt as cD,BZr as cE,g2n as cF,JZr as cG,h2n as cH,QZr as cI,O2n as cJ,UZr as cK,Vze as cL,URt as cM,VZr as cN,EMe as cO,qZr as cP,C2n as cQ,o_e as cR,HZr as cS,KSt as cT,GSt as cU,KZr as cV,RZr as cW,zze as cX,CMe as cY,WZr as cZ,R2n as c_,q2n as ca,USt as cb,P2n as cc,L2n as cd,j2n as ce,tQr as cf,JSt as cg,A2n as ch,jD as ci,AZr as cj,XSt as ck,k2n as cl,eQr as cm,T2n as cn,N2n as co,_2n as cp,m2n as cq,LZr as cr,z2n as cs,XZr as ct,$Zr as cu,v2n as cv,b2n as cw,F2n as cx,D2n as cy,eve as cz,v3t as d,Txr as d$,y2n as d0,rQr as d1,E2n as d2,utn as d3,X0 as d4,uxt as d5,ixn as d6,Kye as d7,dR as d8,Myn as d9,i$ as dA,xan as dB,ban as dC,jVe as dD,sxn as dE,S0r as dF,w0r as dG,NTt as dH,syn as dI,hen as dJ,vSn as dK,ptn as dL,_Mt as dM,u2 as dN,ZAr as dO,l2n as dP,hMt as dQ,dQ as dR,Nhn as dS,vEr as dT,GTt as dU,SZ as dV,BCr as dW,_4t as dX,yZ as dY,pAt as dZ,AR as d_,Vv as da,jyn as db,R0r as dc,M0r as dd,V3t as de,bZ as df,wyn as dg,Lhn as dh,eCt as di,rCt as dj,Ahn as dk,rvr as dl,J0n as dm,W0n as dn,PI as dp,R_ as dq,awn as dr,_Be as ds,Cm as dt,Ofn as du,i0 as dv,H2n as dw,LDr as dx,rfn as dy,RRe as dz,g3t as e,TBe as e$,TSr as e0,t$ as e1,Hme as e2,fCt as e3,N5e as e4,d0n as e5,p0n as e6,evn as e7,W0 as e8,svn as e9,$hn as eA,HTr as eB,USn as eC,hSn as eD,byn as eE,bSn as eF,VYr as eG,Fze as eH,ORt as eI,h4t as eJ,dtn as eK,vYr as eL,O4t as eM,R5e as eN,Mye as eO,Uon as eP,aLe as eQ,Rhn as eR,y0r as eS,P4t as eT,Gon as eU,Uht as eV,Rht as eW,c0 as eX,f0n as eY,wan as eZ,jRe as e_,X2n as ea,ISn as eb,_vn as ec,qhe as ed,R4r as ee,VQr as ef,mvn as eg,h$e as eh,gvn as ei,hvn as ej,t2n as ek,cxn as el,axn as em,avn as en,xBe as eo,ahe as ep,Dyn as eq,G0 as er,qyn as es,YY as et,Jyn as eu,E_e as ev,e0n as ew,aQ as ex,tyn as ey,IC as ez,uRe as f,wSn as f$,_0n as f0,XCr as f1,Ohn as f2,E0n as f3,C0n as f4,TC as f5,cFe as f6,Tee as f7,AN as f8,Dve as f9,oLe as fA,pLe as fB,B0n as fC,R0n as fD,uwn as fE,_Pt as fF,Vhn as fG,O0r as fH,zhn as fI,Fme as fJ,zOe as fK,oCt as fL,F0n as fM,$yn as fN,Txn as fO,jan as fP,hxn as fQ,TR as fR,Mxn as fS,gxn as fT,Yze as fU,e2n as fV,kRt as fW,CTr as fX,fTr as fY,oxn as fZ,SSn as f_,Pmn as fa,EYr as fb,ND as fc,Zwr as fd,WTr as fe,C_e as ff,ftn as fg,v$e as fh,p3r as fi,vfn as fj,iwn as fk,nwn as fl,rwn as fm,Ave as fn,kN as fo,O0n as fp,V0n as fq,Twn as fr,xwn as fs,TSn as ft,CSn as fu,T4t as fv,b0n as fw,Phn as fx,jhn as fy,dN as fz,C3t as g,KTt as g$,a0 as g0,xSn as g1,GQ as g2,nxn as g3,GSn as g4,Z9t as g5,NRt as g6,VQ as g7,Vfn as g8,Qun as g9,pPt as gA,Snn as gB,Swn as gC,eyn as gD,RFe as gE,S3r as gF,yvn as gG,C0r as gH,o2n as gI,kYr as gJ,Iht as gK,ZTt as gL,o2 as gM,K1 as gN,qSn as gO,zSn as gP,Wwr as gQ,Ygn as gR,$Sn as gS,Xgn as gT,BSn as gU,r9t as gV,iSn as gW,xR as gX,uen as gY,Zrn as gZ,Bhn as g_,CR as ga,nYr as gb,n2n as gc,Gtn as gd,BDr as ge,Ig as gf,VSn as gg,b0r as gh,dee as gi,G2n as gj,dSn as gk,K2n as gl,vyn as gm,fSn as gn,m4r as go,oSn as gp,G0n as gq,uSn as gr,K0n as gs,pvn as gt,Dw as gu,of as gv,hR as gw,P3r as gx,X0n as gy,jSn as gz,QAt as h,l0n as h$,$Tt as h0,GTr as h1,rA as h2,kC as h3,tA as h4,Mhn as h5,ovn as h6,dBe as h7,tve as h8,p2n as h9,Dht as hA,Vye as hB,jTr as hC,MTr as hD,tCr as hE,Nyn as hF,Fyn as hG,Ryn as hH,Lyn as hI,Byn as hJ,u0n as hK,Ayn as hL,s0n as hM,Ym as hN,p4t as hO,Eyn as hP,kyn as hQ,yBe as hR,Jye as hS,Oyn as hT,wBe as hU,xyn as hV,i0n as hW,o0n as hX,she as hY,h0n as hZ,Pht as h_,gCt as ha,Gan as hb,qxn as hc,xYr as hd,tvn as he,Zgn as hf,lyn as hg,pyn as hh,gyn as hi,R$ as hj,CD as hk,uyn as hl,ayn as hm,cyn as hn,_yn as ho,JTr as hp,YCr as hq,Aht as hr,hC as hs,kRe as ht,J3t as hu,Tyn as hv,Cyn as hw,DRe as hx,ARe as hy,UTr as hz,Ip as i,sLe as i$,GCr as i0,zyn as i1,m4t as i2,uhe as i3,LCr as i4,OG as i5,s4t as i6,G3t as i7,qTr as i8,ZTr as i9,oCr as iA,nCr as iB,NG as iC,r0n as iD,g0n as iE,FCr as iF,qCr as iG,$Tr as iH,Xyn as iI,Vyn as iJ,fhe as iK,t0n as iL,I5e as iM,BTr as iN,CBe as iO,Wyn as iP,q$ as iQ,Uyn as iR,Gyn as iS,QSn as iT,rxn as iU,Eee as iV,AD as iW,Fcn as iX,Qxn as iY,E5e as iZ,zxn as i_,Kyn as ia,Hyn as ib,Yyn as ic,Zyn as id,c0n as ie,LTr as ig,jCr as ih,a4t as ii,m0n as ij,KTr as ik,n0n as il,Qyn as im,eCr as io,k_e as ip,IRe as iq,iCr as ir,rCr as is,KCr as it,QTr as iu,vee as iv,Bye as iw,sCr as ix,kpe as iy,NRe as iz,XAt as j,Rxn as j$,iee as j0,Kfn as j1,dwn as j2,M0n as j3,IAr as j4,EBe as j5,o$ as j6,LMt as j7,Uxn as j8,s2 as j9,Xin as jA,F9t as jB,UTt as jC,FB as jD,aN as jE,eSn as jF,ewn as jG,G_n as jH,lGr as jI,fGr as jJ,pGr as jK,mSn as jL,Uwr as jM,yVe as jN,Tnn as jO,ate as jP,fan as jQ,twt as jR,wI as jS,BFe as jT,Fxn as jU,Shn as jV,Ehn as jW,Thn as jX,Oxn as jY,whn as jZ,T0r as j_,Vxn as ja,uPt as jb,k3r as jc,sBe as jd,Ywr as je,mht as jf,zwr as jg,E3t as jh,Osn as ji,lSn as jj,HI as jk,HMe as jl,nyn as jm,GRt as jn,rve as jo,Dye as jp,lN as jq,rBe as jr,Fye as js,uN as jt,UAr as ju,PBe as jv,hBe as jw,Rye as jx,nBe as jy,e0e as jz,jwr as k,gR as k$,Lan as k0,xxn as k1,Sxn as k2,Jon as k3,jxn as k4,bxn as k5,Jan as k6,$xn as k7,fxn as k8,Lxn as k9,a6t as kA,aSn as kB,XSn as kC,ovr as kD,wD as kE,J0 as kF,ext as kG,JAt as kH,Y4 as kI,khn as kJ,lLe as kK,PEr as kL,Cve as kM,Eve as kN,LSn as kO,qMt as kP,UMt as kQ,Yxt as kR,jFe as kS,z_e as kT,LFe as kU,efn as kV,eUe as kW,Jxn as kX,Yfn as kY,N0n as kZ,pSn as k_,yxn as ka,mxn as kb,dxn as kc,Axn as kd,_xn as ke,pxn as kf,vxn as kg,kxn as kh,wxn as ki,Dxn as kj,_$e as kk,Cxn as kl,lxn as km,Bxn as kn,uxn as ko,Pxn as kp,bVe as kq,Exn as kr,Ban as ks,Ixn as kt,Nxn as ku,YSn as kv,KSn as kw,ZSn as kx,sSn as ky,FDr as kz,Zme as l,mwn as l$,PDr as l0,Tve as l1,U$ as l2,eA as l3,mD as l4,rTr as l5,nTr as l6,tTr as l7,Oye as l8,Ihn as l9,exn as lA,pwn as lB,_wn as lC,Cjt as lD,txn as lE,fyn as lF,Jsn as lG,myn as lH,swn as lI,ywn as lJ,U0n as lK,jAr as lL,q0n as lM,yyn as lN,dyn as lO,hyn as lP,gwn as lQ,Srn as lR,Q0n as lS,EEr as lT,Jhn as lU,Ufn as lV,f2n as lW,d2n as lX,kSn as lY,l9t as lZ,hjt as l_,H0r as la,c3r as lb,l3r as lc,Dhn as ld,fjt as le,iyn as lf,Jwr as lg,Qwr as lh,Zxn as li,Yxn as lj,Gxn as lk,Xxn as ll,Kxn as lm,D0n as ln,L3r as lo,ivn as lp,nvn as lq,cSn as lr,$Pt as ls,$0n as lt,fwn as lu,xhn as lv,Wxn as lw,Hxn as lx,Fhn as ly,qhn as lz,nQ as m,fbr as m$,vwn as m0,i2n as m1,WSn as m2,qfn as m3,qmn as m4,zmn as m5,nq as m6,UDr as m7,Syn as m8,vCt as m9,hje as mA,jAt as mB,zxr as mC,ZI as mD,o1r as mE,TCt as mF,_1r as mG,zme as mH,oht as mI,F_ as mJ,Vme as mK,Ume as mL,Kbr as mM,e2r as mN,yB as mO,jbr as mP,Bbr as mQ,OEt as mR,Jbr as mS,NEt as mT,Fbr as mU,Mbr as mV,wbr as mW,Tbr as mX,v2r as mY,eh as mZ,Q1r as m_,MSn as ma,Z2n as mb,W2n as mc,Q2n as md,MQr as me,JEr as mf,$Er as mg,ove as mh,ern as mi,S0n as mj,I0n as mk,x0n as ml,T0n as mm,w0n as mn,Ksn as mo,P0n as mp,OSn as mq,RSn as mr,NSn as ms,FSn as mt,kEr as mu,AEr as mv,JRe as mw,SN as mx,HSn as my,oyn as mz,vB as n,Rw as n$,DEt as n0,lbr as n1,obr as n2,AEt as n3,abr as n4,nbr as n5,ebr as n6,pbr as n7,ibr as n8,tbr as n9,Obr as nA,Dbr as nB,Abr as nC,Ibr as nD,Pbr as nE,o2r as nF,zbr as nG,kbr as nH,E2r as nI,u2r as nJ,Rbr as nK,a2r as nL,b2r as nM,xbr as nN,Ybr as nO,g2r as nP,Gbr as nQ,_2r as nR,IEt as nS,Ubr as nT,t2r as nU,r2r as nV,jEt as nW,S2r as nX,h2r as nY,C2r as nZ,x2r as n_,Y1r as na,Z1r as nb,_br as nc,dbr as nd,sbr as ne,rbr as nf,ubr as ng,bye as nh,cbr as ni,LEt as nj,k2r as nk,Vbr as nl,Qbr as nm,m2r as nn,i2r as no,$br as np,vbr as nq,Sbr as nr,gLe as ns,l2r as nt,LCt as nu,p2r as nv,f2r as nw,T2r as nx,gbr as ny,Nbr as nz,Bwr as o,iSr as o$,s2r as o0,A2r as o1,c2r as o2,Sye as o3,M_ as o4,y2r as o5,Wbr as o6,w2r as o7,d2r as o8,MEt as o9,ekt as oA,ugn as oB,lgn as oC,fgn as oD,cgn as oE,sgn as oF,WEt as oG,HEt as oH,mSr as oI,Q2r as oJ,$Ct as oK,zCt as oL,Ign as oM,vgn as oN,nkt as oO,BEt as oP,UEt as oQ,BCt as oR,qCt as oS,sSr as oT,Cgn as oU,_Sr as oV,L2r as oW,B2r as oX,eQ as oY,qk as oZ,tRe as o_,vu as oa,Cbr as ob,bbr as oc,ybr as od,Hbr as oe,xLe as of,Xbr as og,Zbr as oh,Ebr as oi,n2r as oj,Whn as ok,ui as ol,ogn as om,ign as on,mbr as oo,zmt as op,agn as oq,K2r as or,pSr as os,tkt as ot,rkt as ou,V2r as ov,z2r as ow,Rgn as ox,ySr as oy,QEt as oz,KAt as p,Ogn as p$,j2r as p0,$2r as p1,U2r as p2,bgn as p3,YEt as p4,ZEt as p5,O2r as p6,N2r as p7,F2r as p8,R2r as p9,Pgn as pA,M2r as pB,Dgn as pC,M$ as pD,hye as pE,gye as pF,Fgn as pG,dgn as pH,Bgn as pI,hgn as pJ,Mgn as pK,xgn as pL,hSr as pM,tSr as pN,UCt as pO,WCt as pP,VCt as pQ,JCt as pR,yye as pS,vye as pT,Tgn as pU,okt as pV,dSr as pW,oSr as pX,P2r as pY,xye as pZ,SSr as p_,ikt as pa,XEt as pb,Lgn as pc,akt as pd,kgn as pe,rSr as pf,QZ as pg,YI as ph,I2r as pi,wgn as pj,skt as pk,TLe as pl,aSr as pm,qme as pn,tQ as po,rRe as pp,eSr as pq,JEt as pr,Egn as ps,pgn as pt,Y2r as pu,mgn as pv,Ngn as pw,_gn as px,cSr as py,G2r as pz,Fwr as q,uAt as q$,gSr as q0,W2r as q1,jgn as q2,uSr as q3,fSr as q4,Agn as q5,lSr as q6,Sgn as q7,q2r as q8,J2r as q9,PEt as qA,Lbr as qB,qbr as qC,bSr as qD,Umt as qE,Jmt as qF,Khn as qG,X1r as qH,D2r as qI,tgn as qJ,ngn as qK,egn as qL,rgn as qM,T1r as qN,C1r as qO,w1r as qP,Ghn as qQ,Hhn as qR,hbr as qS,zgn as qT,$gn as qU,ALe as qV,JLe as qW,WLe as qX,HLe as qY,lAt as qZ,oAt as q_,GEt as qa,H2r as qb,ggn as qc,X2r as qd,nSr as qe,wLe as qf,$Et as qg,qEt as qh,zEt as qi,VEt as qj,Z2r as qk,KEt as ql,ygn as qm,sA as qn,$S as qo,Jme as qp,xSr as qq,Yhn as qr,Qhn as qs,vSr as qt,Xhn as qu,Zhn as qv,S1r as qw,x1r as qx,ZOe as qy,sD as qz,dy as r,rAt as r$,qLe as r0,zLe as r1,GLe as r2,BLe as r3,$Le as r4,NLe as r5,OLe as r6,PAt as r7,tBe as r8,kye as r9,hAt as rA,NAt as rB,ILe as rC,aAt as rD,QLe as rE,nAt as rF,wAt as rG,j$ as rH,Tye as rI,ZLe as rJ,eBe as rK,EAt as rL,LAt as rM,OAt as rN,Fw as rO,Eye as rP,gAt as rQ,j_ as rR,DAt as rS,tAt as rT,FAt as rU,bAt as rV,mAt as rW,Lu as rX,RLe as rY,wye as rZ,aD as r_,hee as ra,TAt as rb,dAt as rc,VLe as rd,DLe as re,PLe as rf,rQ as rg,qgn as rh,SAt as ri,vAt as rj,cht as rk,BAt as rl,Wme as rm,jLe as rn,LLe as ro,Hkt as rp,Jkt as rq,Ykt as rr,Kkt as rs,_At as rt,aht as ru,ULe as rv,MLe as rw,MAt as rx,yAt as ry,eAt as rz,ZAt as s,ESr as s$,Cye as s0,sAt as s1,cAt as s2,FLe as s3,fAt as s4,kLe as s5,CAt as s6,sht as s7,bxr as s8,nxr as s9,cxr as sA,USr as sB,nRe as sC,pxr as sD,hxr as sE,XLe as sF,ZSr as sG,exr as sH,Uxr as sI,sxr as sJ,wxr as sK,YSr as sL,Cxr as sM,Axr as sN,QSr as sO,Dxr as sP,qxr as sQ,Fxr as sR,WSr as sS,Ixr as sT,KLe as sU,AAt as sV,iAt as sW,Kme as sX,Oxr as sY,Gme as sZ,CSr as s_,ixr as sa,mxr as sb,IAt as sc,Bxr as sd,txr as se,rxr as sf,Mxr as sg,HSr as sh,GSr as si,xxr as sj,PSr as sk,NSr as sl,$xr as sm,oxr as sn,jSr as so,JSr as sp,DSr as sq,ISr as sr,xAt as ss,Nxr as st,fxr as su,dxr as sv,Ugn as sw,LSr as sx,uxr as sy,lxr as sz,cnn as t,tSn as t$,kxr as t0,Xme as t1,kAt as t2,zAt as t3,Lxr as t4,RAt as t5,$At as t6,RSr as t7,MSr as t8,OSr as t9,Rmt as tA,Mme as tB,mvr as tC,_vr as tD,PG as tE,lCt as tF,cCt as tG,yvr as tH,gvr as tI,Cwn as tJ,Uhn as tK,Jgn as tL,Wgn as tM,Hgn as tN,Ggn as tO,Kgn as tP,IEr as tQ,k0n as tR,A0n as tS,uvn as tT,fvn as tU,dvn as tV,Qbn as tW,U2n as tX,J2n as tY,qQr as tZ,Y2n as t_,FSr as ta,kSr as tb,ASr as tc,Pxr as td,Vgn as te,axr as tf,Vxr as tg,Rxr as th,qAt as ti,yxr as tj,jxr as tk,YLe as tl,_xr as tm,gxr as tn,KSr as to,vxr as tp,VSr as tq,BSr as tr,$Sr as ts,qSr as tt,zSr as tu,Sxr as tv,XSr as tw,Exr as tx,hvr as ty,sCt as tz,Pa as u,rSn as u0,nSn as u1,ASn as u2,DSn as u3,brn as u4,hwn as u5,Gd as v,bo as w,Pg as x,Pp as y,own as z};
|