@volter/game-editor 0.5.84 → 0.5.86

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.
Files changed (294) hide show
  1. package/BUNDLED_NOTICES +22 -22
  2. package/catalog/entries/blender.json +2 -2
  3. package/catalog/entries/music.json +2 -2
  4. package/dist/.vite/manifest.json +2126 -2126
  5. package/dist/assets/{AssetBudgetPanel-BZy2XeqE.js → AssetBudgetPanel-Cz9Gmn90.js} +3 -3
  6. package/dist/assets/{AudioViewer-DIuzLzET.js → AudioViewer-DNVS05h0.js} +1 -1
  7. package/dist/assets/{CanvasBoardDocument-3ZxWTKes.js → CanvasBoardDocument-TIOZa5VD.js} +1 -1
  8. package/dist/assets/{CanvasSceneViewport-BP7FC2z5.js → CanvasSceneViewport-DH9S3AK2.js} +1 -1
  9. package/dist/assets/{ColorInput-Bm2EzmOy.js → ColorInput-B4TJB4j0.js} +1 -1
  10. package/dist/assets/{EntityModelDocument-Cy-Qproq.js → EntityModelDocument-DInLudyi.js} +1 -1
  11. package/dist/assets/{EnvironmentAssetDocument-B8VmbxfT.js → EnvironmentAssetDocument-Cn2EOcUP.js} +1 -1
  12. package/dist/assets/{GameplaySessionTimeline-CDcfr07j.js → GameplaySessionTimeline-BAGmiZ7l.js} +1 -1
  13. package/dist/assets/{ImageViewer-BNFjkWbV.js → ImageViewer-zBabH42e.js} +1 -1
  14. package/dist/assets/InspectorObjectPreview-CfUaeAaa.js +1 -0
  15. package/dist/assets/{JsonAssetDocument-BkdsklFn.js → JsonAssetDocument-Bvi2OLcK.js} +1 -1
  16. package/dist/assets/{LiveModuleDocument-BEDGzgpM.js → LiveModuleDocument-BtkoQot2.js} +1 -1
  17. package/dist/assets/{LutAssetDocument-RmvH4zzl.js → LutAssetDocument-DCpGUoFg.js} +1 -1
  18. package/dist/assets/{ModelAssetDocument-BgkVc8nF.js → ModelAssetDocument-BoEdmK4x.js} +1 -1
  19. package/dist/assets/{NonThreeAuthoringBootstrap-CcXUHOp3.js → NonThreeAuthoringBootstrap-DLxobtKG.js} +1 -1
  20. package/dist/assets/{Object3DDocumentToolbar-DaqNoA9f.js → Object3DDocumentToolbar-C7wA4SZl.js} +1 -1
  21. package/dist/assets/Object3DDocumentViewport-sN0s5xrP.js +2 -0
  22. package/dist/assets/{Object3DPreview-Dr4GQgGl.js → Object3DPreview-7dkQ-ozJ.js} +1 -1
  23. package/dist/assets/{OnlineAssetDetail-BPAK7Ras.js → OnlineAssetDetail-y08xFDbC.js} +1 -1
  24. package/dist/assets/{PlayBar--cmmDXMt.js → PlayBar-D6qMfUOT.js} +1 -1
  25. package/dist/assets/{QuarksAssetDocument-DYr9l2tH.js → QuarksAssetDocument-C5AgnVlm.js} +1 -1
  26. package/dist/assets/{ReactCanvasControls-CoK-IJcH.js → ReactCanvasControls-DBSKf04T.js} +1 -1
  27. package/dist/assets/{RootSelectionOverlay-Jz5Ll7BT.js → RootSelectionOverlay-BLUee6Us.js} +1 -1
  28. package/dist/assets/{ShaderAssetDocument-Fn1SuMaS.js → ShaderAssetDocument-B0SkrWeD.js} +1 -1
  29. package/dist/assets/{ShadowEditor-IrEJWfde.js → ShadowEditor-m7LkQXyA.js} +1 -1
  30. package/dist/assets/{SourceAssetViewer-C6gxbMdi.js → SourceAssetViewer-DSqt4J4X.js} +1 -1
  31. package/dist/assets/{StageHost-eySsTLUI.js → StageHost-Djic_5-c.js} +2 -2
  32. package/dist/assets/{StoryPreviewMount-CkBS-oOC.js → StoryPreviewMount-XHCeJVUK.js} +1 -1
  33. package/dist/assets/{ThreeBoardDocument-DiQabLNJ.js → ThreeBoardDocument-1h8GKR-k.js} +2 -2
  34. package/dist/assets/{ThreeIsolationSceneContent-_p4Y5QZ6.js → ThreeIsolationSceneContent-B2BM5lGT.js} +1 -1
  35. package/dist/assets/{ToolObject3DPreview-CSADrilV.js → ToolObject3DPreview-DhhnWveX.js} +1 -1
  36. package/dist/assets/{Toolbar-DhQAiAOw.js → Toolbar-DUdd7Vku.js} +1 -1
  37. package/dist/assets/{TransientHint-B3roDMmv.js → TransientHint-BVaIXyI6.js} +1 -1
  38. package/dist/assets/{VideoViewer-DARXMIes.js → VideoViewer-8wjwSQob.js} +1 -1
  39. package/dist/assets/{ViewportShadingMenu-DC5996me.js → ViewportShadingMenu-BxEJ1oZ3.js} +1 -1
  40. package/dist/assets/{active-ingest-BQBCy_Hx.js → active-ingest-CR8Om_4L.js} +2 -2
  41. package/dist/assets/{animation-clock-DAhQxVz9.js → animation-clock-C8xuRYtY.js} +1 -1
  42. package/dist/assets/{animation-mixers.service-cc5qCZnh.js → animation-mixers.service-Dhc_pHj0.js} +1 -1
  43. package/dist/assets/{animation-timeline.utility-DXa0g-qN.js → animation-timeline.utility-ByBlEQbw.js} +1 -1
  44. package/dist/assets/{asset-budget-asset.menu-DjEcxL08.js → asset-budget-asset.menu-tLAS-J30.js} +1 -1
  45. package/dist/assets/{asset-budget.action-D7-3Scj7.js → asset-budget.action-D0xcnGHW.js} +1 -1
  46. package/dist/assets/{asset-budget.document-Dmn7QkMR.js → asset-budget.document-B1v93lAS.js} +1 -1
  47. package/dist/assets/{asset-budget.menu-djdA3Q-S.js → asset-budget.menu-C8cMC0S7.js} +1 -1
  48. package/dist/assets/{asset-editor-persistence-Dcy1Joo-.js → asset-editor-persistence-l5bSUF0E.js} +1 -1
  49. package/dist/assets/{asset-loaders-B0eV8Nk_.js → asset-loaders-DrK7b3Yn.js} +1 -1
  50. package/dist/assets/{asset-preview-CGO8kmg5.js → asset-preview-h_hjp_z2.js} +1 -1
  51. package/dist/assets/{audio-unlock.service-Bgp8fUjH.js → audio-unlock.service-ChDgJk4k.js} +1 -1
  52. package/dist/assets/{audio.utility-DM2IZjJR.js → audio.utility-BkS-afdu.js} +1 -1
  53. package/dist/assets/autoplay.service-Dd5Zy1tg.js +1 -0
  54. package/dist/assets/{babylon-authoring-adapter-CNYnKhpl.js → babylon-authoring-adapter-VKwBs6dc.js} +1 -1
  55. package/dist/assets/{binding-resolver-By6DQSMJ.js → binding-resolver-5udpegkM.js} +2 -2
  56. package/dist/assets/{blender-node-editor.document-DDxLnK24.js → blender-node-editor.document-DjWUfDIp.js} +1 -1
  57. package/dist/assets/{blender-properties-tab-DoLvP4a6.js → blender-properties-tab-DSEPtbl-.js} +1 -1
  58. package/dist/assets/{blender-runtime-host-pYPr56UP.js → blender-runtime-host-h9lSshSs.js} +1 -1
  59. package/dist/assets/{blender-runtime-skin-DGw7Uk4l.js → blender-runtime-skin-y_wwrS0i.js} +1 -1
  60. package/dist/assets/blender-runtime.document-B7ZMqGJk.js +12 -0
  61. package/dist/assets/{blender-screenshot.menu-BSfC-1EL.js → blender-screenshot.menu-BnLFgrq6.js} +1 -1
  62. package/dist/assets/{blender-timeline.document-D0P1AfdK.js → blender-timeline.document-CZnj7Tkm.js} +1 -1
  63. package/dist/assets/{blender-uv-editor.document-DEb_AwLC.js → blender-uv-editor.document-CsDdrijK.js} +1 -1
  64. package/dist/assets/{blender-version.status-LifaPI0C.js → blender-version.status-M7FZzsVm.js} +1 -1
  65. package/dist/assets/{blender.command-DDOcs1dZ.js → blender.command-BhldgwJg.js} +1 -1
  66. package/dist/assets/{board-guides-CQWXbsSW.js → board-guides-B8EV-uXc.js} +1 -1
  67. package/dist/assets/{bridge.command-CJCc-avL.js → bridge.command-CZuqqoDd.js} +3 -3
  68. package/dist/assets/{browserAll-_6V_eM5P.js → browserAll-CZk4fv-f.js} +1 -1
  69. package/dist/assets/{build-player.document-Dz_Mq8Pd.js → build-player.document-D7z4ZxMc.js} +1 -1
  70. package/dist/assets/{build-profiles.document-CLCc3EbW.js → build-profiles.document-BYX1iirt.js} +1 -1
  71. package/dist/assets/{build-progress.status-BfR8rtJ_.js → build-progress.status-BMSbOsd2.js} +1 -1
  72. package/dist/assets/{build-session-BkZeQ_S3.js → build-session-BiNA1pwa.js} +1 -1
  73. package/dist/assets/{build.action-SVlllu1R.js → build.action-BxUirWPy.js} +1 -1
  74. package/dist/assets/{build.command-D6c8WqIx.js → build.command-XOu5w0Fm.js} +1 -1
  75. package/dist/assets/{build.header-B_QEABFH.js → build.header-BI5bOKkD.js} +1 -1
  76. package/dist/assets/{build.menu-wIEk8uq4.js → build.menu-C-3Xs3_d.js} +1 -1
  77. package/dist/assets/{build.service-C24aQmEn.js → build.service-BqgWqVhi.js} +1 -1
  78. package/dist/assets/{camera-AsAJwixA.js → camera-D3ubsp35.js} +1 -1
  79. package/dist/assets/{camera-runtime.inspector-EWiln7HZ.js → camera-runtime.inspector-DLQrf88i.js} +1 -1
  80. package/dist/assets/{canvas-design-mount-7wA1io5I.js → canvas-design-mount-59p9JzRq.js} +3 -3
  81. package/dist/assets/{canvas-entry-runtime-DxHv6Yxk.js → canvas-entry-runtime-DwrywTc9.js} +2 -2
  82. package/dist/assets/{canvas-preview-frames-BJNr8ArE.js → canvas-preview-frames-Bq4sE7ij.js} +1 -1
  83. package/dist/assets/{canvas-story-capture.service-DaHquc4I.js → canvas-story-capture.service-vRpZ5fZG.js} +2 -2
  84. package/dist/assets/{capability-coverage-Fjv84QQN.js → capability-coverage-CXl6Odkw.js} +1 -1
  85. package/dist/assets/{collaboration-presence-BYi9wylK.js → collaboration-presence-DY1ZefcY.js} +1 -1
  86. package/dist/assets/{collider-BVans4YU.js → collider-BjMOFzaq.js} +1 -1
  87. package/dist/assets/{component-board.service-C1VJog-q.js → component-board.service-BqmpwVOE.js} +2 -2
  88. package/dist/assets/{component-board.service-6eXUhS3p.js → component-board.service-CoDU8yTI.js} +2 -2
  89. package/dist/assets/{component-board.service-cNKaXoxN.js → component-board.service-CuMBoOJm.js} +2 -2
  90. package/dist/assets/{component-contracts.service-B9e64gRX.js → component-contracts.service-BPl-U3eP.js} +1 -1
  91. package/dist/assets/{component-instance-root-Cw2jcbxa.js → component-instance-root-BuWShEF6.js} +1 -1
  92. package/dist/assets/{component-verbs.command-CKmDlrFh.js → component-verbs.command-DTyeqzgR.js} +1 -1
  93. package/dist/assets/{component-verbs.service-C6MrL6R1.js → component-verbs.service-BFqJw7Kt.js} +1 -1
  94. package/dist/assets/{config-CXA3itWR.js → config-DhflY5Yu.js} +2 -2
  95. package/dist/assets/{configurations-fjyekkEX.js → configurations-C2Betud5.js} +1 -1
  96. package/dist/assets/{connection.status-DmthQqVz.js → connection.status-BQMFuCO7.js} +1 -1
  97. package/dist/assets/{constraints.inspector-CvJlw3rw.js → constraints.inspector-CQVGVM3B.js} +1 -1
  98. package/dist/assets/{content-bounds-vfJMc-IO.js → content-bounds-W1659ao-.js} +1 -1
  99. package/dist/assets/{contract-system-adapters-BL22QlsE.js → contract-system-adapters-BFftL7th.js} +1 -1
  100. package/dist/assets/{coverage.service-BO-eNB08.js → coverage.service-C1yq7VkJ.js} +1 -1
  101. package/dist/assets/{create-runtime-DJ21Fa_i.js → create-runtime-DFEYelas.js} +1 -1
  102. package/dist/assets/{curve-CiO2-ZoW.js → curve-DwaGEjxR.js} +1 -1
  103. package/dist/assets/{data-asset-ByLXUC98.js → data-asset-1qJhAjYJ.js} +1 -1
  104. package/dist/assets/{data-ref-DpW1ZAc3.js → data-ref-D2F_5czg.js} +1 -1
  105. package/dist/assets/{debug-bridge-Bjh7HoG_.js → debug-bridge-BWLCtg3j.js} +1 -1
  106. package/dist/assets/{debug-registry-Bty6AiHN.js → debug-registry-BEwTz1TC.js} +1 -1
  107. package/dist/assets/{deferred-ingest-play-BDtHDAut.js → deferred-ingest-play-CSLZoAGE.js} +2 -2
  108. package/dist/assets/{design-time-canvas-mount-CpNAFajF.js → design-time-canvas-mount-B_N9CT5I.js} +2 -2
  109. package/dist/assets/{design-time-layers-BjbCzOaH.js → design-time-layers-B7vrNiQ1.js} +1 -1
  110. package/dist/assets/{design-time-mount.service-x4-8taot.js → design-time-mount.service-BasZNarL.js} +2 -2
  111. package/dist/assets/{design-time-mount.service-D2nvXCrm.js → design-time-mount.service-DNLaET1-.js} +2 -2
  112. package/dist/assets/{design-time-react-mount-DlBtYE3L.js → design-time-react-mount-B_-FPtL9.js} +1 -1
  113. package/dist/assets/{document-preview-three-CSHYA1BH.js → document-preview-three-CWOYkdUu.js} +1 -1
  114. package/dist/assets/{dom-authoring-adapter-BRkZp4sE.js → dom-authoring-adapter-Dskjm96_.js} +1 -1
  115. package/dist/assets/{draco3d-az59P8mF.js → draco3d-C48VdmnM.js} +1 -1
  116. package/dist/assets/{edit-mode-audio.service--N5HyK0y.js → edit-mode-audio.service-BODX7lSQ.js} +1 -1
  117. package/dist/assets/{edit-mode-authoring-BeMAYXYR.js → edit-mode-authoring-Bwbko9HU.js} +1 -1
  118. package/dist/assets/{edit-mode-networking.service-ByUOzpRh.js → edit-mode-networking.service-I5--hRQ5.js} +1 -1
  119. package/dist/assets/{editor-api-dfe-lCMZ.js → editor-api-RuoKAbJe.js} +1 -1
  120. package/dist/assets/{editor-layers-Djcn6Scw.js → editor-layers-CtzgRn6E.js} +1 -1
  121. package/dist/assets/{editor-shell-store-Br2L1Fw1.js → editor-shell-store-CdiZaE3q.js} +1 -1
  122. package/dist/assets/{entity-object-BiOrbQZM.js → entity-object-Dd555Jkc.js} +1 -1
  123. package/dist/assets/{extend-BMnknpN1.js → extend-ELdxJfF3.js} +1 -1
  124. package/dist/assets/{fork-menu-BOn71mbn.js → fork-menu-Br45so5D.js} +1 -1
  125. package/dist/assets/{frame-debugger-store-DVchJN-z.js → frame-debugger-store-QU6kN-iA.js} +1 -1
  126. package/dist/assets/{game-contract-seams-gIFojMW2.js → game-contract-seams-BSaovR7J.js} +1 -1
  127. package/dist/assets/{game-css-scope-transform-Dab-AkD5.js → game-css-scope-transform-voctdSMR.js} +1 -1
  128. package/dist/assets/{game-document.service-CFLg-vRz.js → game-document.service-BhrYDH1e.js} +1 -1
  129. package/dist/assets/{game-eval.command-Xch06afq.js → game-eval.command-ByisNZEW.js} +1 -1
  130. package/dist/assets/{game-module-access-BDliSO9v.js → game-module-access-CAOIdtrL.js} +1 -1
  131. package/dist/assets/{game-network-CTdS02CN.js → game-network-BI9UA1te.js} +3 -3
  132. package/dist/assets/{gameplay-export-Ct4wopUb.js → gameplay-export-BRGMYdix.js} +1 -1
  133. package/dist/assets/{gameplay-replay-xk1wnQ88.js → gameplay-replay-BDSniLPH.js} +1 -1
  134. package/dist/assets/{gameplay.command-W3Sq7zn-.js → gameplay.command-BZJc-MSo.js} +1 -1
  135. package/dist/assets/{generation-jobs-BTP2zuZi.js → generation-jobs-mYgLreBY.js} +1 -1
  136. package/dist/assets/{generation.service-CHPmGb7B.js → generation.service--JVrEHkM.js} +1 -1
  137. package/dist/assets/{generations-C7ppzxDW.js → generations-BeJYyF_R.js} +1 -1
  138. package/dist/assets/{generations.status-Cxb0-UxC.js → generations.status-DnoDI989.js} +1 -1
  139. package/dist/assets/{hierarchy-marks-3Iq1RFIh.js → hierarchy-marks-B4v87a-a.js} +1 -1
  140. package/dist/assets/{hosted-asset-materialization-BK8ZfMnr.js → hosted-asset-materialization-B228iJSV.js} +1 -1
  141. package/dist/assets/{index-Kznwz4yS.js → index-B1AOJYZg.js} +1 -1
  142. package/dist/assets/{index-CAf6mYXW.js → index-B4Rmo_fB.js} +1 -1
  143. package/dist/assets/{index-DkTiDXNY.js → index-BU1ZI9y7.js} +1 -1
  144. package/dist/assets/{index-k1tDFKMg.js → index-BzjcrVSU.js} +1 -1
  145. package/dist/assets/{index-CP5WJuE9.js → index-C7LsKJ26.js} +1 -1
  146. package/dist/assets/{index-BXH2Jsun.js → index-CXHgcixX.js} +7 -7
  147. package/dist/assets/{index-D9H8FkR3.js → index-DjSxgR_P.js} +2 -2
  148. package/dist/assets/{index-DAuA0xMo.js → index-Dk9-JaLH.js} +1 -1
  149. package/dist/assets/{index-Yw9pOoLh.js → index-_C3Iq5Wd.js} +1 -1
  150. package/dist/assets/{inference-diagnostics-CxWL3UhK.js → inference-diagnostics-C7uqhs36.js} +1 -1
  151. package/dist/assets/{ingest-boot-viewport-BeYyFYst.js → ingest-boot-viewport-DxpPCN8-.js} +1 -1
  152. package/dist/assets/{ingest-siblings-DGjWGyZo.js → ingest-siblings-CARy1NoH.js} +1 -1
  153. package/dist/assets/{ingest-source-persistence-BFkLdeMy.js → ingest-source-persistence-DvuQc3sT.js} +1 -1
  154. package/dist/assets/{ingest.service-adZJNY83.js → ingest.service-NgfReuZ2.js} +1 -1
  155. package/dist/assets/{inspect-Dah00n9O.js → inspect-DvD15kGQ.js} +1 -1
  156. package/dist/assets/instances.command-DPiLpDyF.js +1 -0
  157. package/dist/assets/{json-history-resource-DYW614tc.js → json-history-resource-CIzD7_uf.js} +1 -1
  158. package/dist/assets/{layered-pick-Cn98HSnj.js → layered-pick-D9Jk9372.js} +1 -1
  159. package/dist/assets/{light-nb6H9zi_.js → light-DU95nCAj.js} +1 -1
  160. package/dist/assets/{live-project-verbs-CyWrvvzK.js → live-project-verbs-B9ZVwEHj.js} +1 -1
  161. package/dist/assets/{machine.document-BlWIYspE.js → machine.document-m153T0gi.js} +1 -1
  162. package/dist/assets/{machines.finder-D-nBx1QJ.js → machines.finder-i8KdO38L.js} +1 -1
  163. package/dist/assets/{material-CcQQ-mP8.js → material-ZrXVPO79.js} +1 -1
  164. package/dist/assets/{material-factory-CKO4sgCS.js → material-factory-BZvcmTXu.js} +1 -1
  165. package/dist/assets/{mesh-CGB8fhbT.js → mesh-z9Ve8ByN.js} +1 -1
  166. package/dist/assets/{model-asset-sections.service-oZwOlxI-.js → model-asset-sections.service-D_002KGV.js} +1 -1
  167. package/dist/assets/{model-inspection-B5p-uq9q.js → model-inspection-2ROxDplj.js} +1 -1
  168. package/dist/assets/{model-thumbnail-Cgyfafqg.js → model-thumbnail-DDlpcMuI.js} +1 -1
  169. package/dist/assets/{models.finder-v4ShdgaO.js → models.finder-BjJtkzqN.js} +1 -1
  170. package/dist/assets/{module-mode-BBCbx1-D.js → module-mode-BEtFhnYJ.js} +2 -2
  171. package/dist/assets/{mount-canvas-ingest-root-9CLvzAsA.js → mount-canvas-ingest-root-Co_yxM8i.js} +2 -2
  172. package/dist/assets/{mount-dom-ingest-root-CZA1Dw6t.js → mount-dom-ingest-root-BDAlNEA9.js} +2 -2
  173. package/dist/assets/{mount-ingest-root-hudyfrT7.js → mount-ingest-root-DEMXnGgZ.js} +2 -2
  174. package/dist/assets/{mount-manifest-C_z-xK97.js → mount-manifest-Bq6LppmN.js} +1 -1
  175. package/dist/assets/{mount-three-ingest-root-DWoCP70F.js → mount-three-ingest-root-CGfvusY_.js} +1 -1
  176. package/dist/assets/{mounted-authoring-DMWjUr2Z.js → mounted-authoring-BsgktNOd.js} +1 -1
  177. package/dist/assets/{mounted-story-viewport-source-Iq6tisms.js → mounted-story-viewport-source-sgRhon56.js} +1 -1
  178. package/dist/assets/{native-debug-module-BO5dlpfD.js → native-debug-module-BZceulci.js} +1 -1
  179. package/dist/assets/{navigation-BzH049Ad.js → navigation-CDLfCWut.js} +1 -1
  180. package/dist/assets/{navmesh.menu-CicRFavg.js → navmesh.menu-DSzXEzaQ.js} +1 -1
  181. package/dist/assets/{navmesh.service-B0zUTaL0.js → navmesh.service-Egi9Y7BV.js} +1 -1
  182. package/dist/assets/network-observer.service-BI6u2j_-.js +1 -0
  183. package/dist/assets/{network.utility-DTpK-Ri9.js → network.utility-CVeoSZPo.js} +1 -1
  184. package/dist/assets/{object3d-document-session-registry-CTeivmwK.js → object3d-document-session-registry-WhzLeDh8.js} +2 -2
  185. package/dist/assets/{oid-transform-xxKy1722.js → oid-transform-DYf7FDwX.js} +1 -1
  186. package/dist/assets/{particles-CeOU09tg.js → particles-DLcXJDRm.js} +1 -1
  187. package/dist/assets/{pixi-authoring-adapter-qwgLB4nb.js → pixi-authoring-adapter-ByEspABW.js} +1 -1
  188. package/dist/assets/{pixi-live-write-target-B-E2O-WC.js → pixi-live-write-target-DX5jfQGc.js} +1 -1
  189. package/dist/assets/{play.command-CAhUsYcp.js → play.command-BLp7FDsh.js} +2 -2
  190. package/dist/assets/{presentation-BKcWD0nx.js → presentation-DI-8dWZm.js} +1 -1
  191. package/dist/assets/{product-C8OFGza7.js → product-l0bGYRpT.js} +1 -1
  192. package/dist/assets/{profiler.action-CyjXGHbx.js → profiler.action-D65LYxnG.js} +1 -1
  193. package/dist/assets/{profiler.menu-DXHAGF3Z.js → profiler.menu-eBjg8qgR.js} +1 -1
  194. package/dist/assets/{profiler.utility-Qx-aaTdo.js → profiler.utility-yYD2sV12.js} +1 -1
  195. package/dist/assets/{project-authoring-session-B0YSloNS.js → project-authoring-session-TaUQdZXZ.js} +2 -2
  196. package/dist/assets/{properties-bone-constraints.inspector-C-dwjglB.js → properties-bone-constraints.inspector-CCt9aEId.js} +1 -1
  197. package/dist/assets/{properties-bone.inspector-CeZIE99V.js → properties-bone.inspector-BaVMOQEw.js} +1 -1
  198. package/dist/assets/{properties-collection.inspector-DiSBJpTu.js → properties-collection.inspector-vhfuF5TZ.js} +1 -1
  199. package/dist/assets/{properties-constraints.inspector-2DxnBAIf.js → properties-constraints.inspector-DM3s7ro_.js} +1 -1
  200. package/dist/assets/{properties-data.inspector-DvSzTW7_.js → properties-data.inspector-srEJYSuS.js} +1 -1
  201. package/dist/assets/{properties-material.inspector-XPNSk9iW.js → properties-material.inspector-BCSthc2B.js} +1 -1
  202. package/dist/assets/{properties-modifiers.inspector-8pjl5OY9.js → properties-modifiers.inspector-CDSwk14l.js} +1 -1
  203. package/dist/assets/{properties-object.inspector-a30WyA7Q.js → properties-object.inspector-CHBOT6vc.js} +1 -1
  204. package/dist/assets/{properties-output.inspector-B9JochaR.js → properties-output.inspector-B8NPLrls.js} +1 -1
  205. package/dist/assets/{properties-particles.inspector-D6rRhjyA.js → properties-particles.inspector-ByDU9k9z.js} +1 -1
  206. package/dist/assets/{properties-physics.inspector-BcJFxv6L.js → properties-physics.inspector-BRAK6FMW.js} +1 -1
  207. package/dist/assets/{properties-render.inspector-DHPbElDL.js → properties-render.inspector-CZ2fvH46.js} +1 -1
  208. package/dist/assets/{properties-scene.inspector-ZJueIZwx.js → properties-scene.inspector-kIDP2MRO.js} +1 -1
  209. package/dist/assets/{properties-texture.inspector-CvUhb-u8.js → properties-texture.inspector-BJTOT2lN.js} +1 -1
  210. package/dist/assets/{properties-view-layer.inspector-CaaGgMEq.js → properties-view-layer.inspector-Dgr4N1je.js} +1 -1
  211. package/dist/assets/{properties-world.inspector-10GD8Fpy.js → properties-world.inspector-Dy_S7h-I.js} +1 -1
  212. package/dist/assets/{r3f-design-session-CVxU3s62.js → r3f-design-session-Cl6GuUDN.js} +2 -2
  213. package/dist/assets/{r3f-physics-binding-jUszsaB2.js → r3f-physics-binding-BDuldzGh.js} +1 -1
  214. package/dist/assets/{r3f-source-authoring-adapter-Cmxf0Hvz.js → r3f-source-authoring-adapter-IsFmEUAU.js} +1 -1
  215. package/dist/assets/{react-canvas-navigation-B-5CNIty.js → react-canvas-navigation-DcPiNmpA.js} +1 -1
  216. package/dist/assets/{react-inspector.service-wpEmCNFv.js → react-inspector.service-DbXwK8IG.js} +1 -1
  217. package/dist/assets/{react-story-board-CMghMNcN.js → react-story-board-CCjC3Sfg.js} +1 -1
  218. package/dist/assets/{react-three-rapier.esm-LvsEG944.js → react-three-rapier.esm-t2mx-0mg.js} +1 -1
  219. package/dist/assets/{react-world-authoring-adapter-qVYWC2NO.js → react-world-authoring-adapter-BBXbYv0n.js} +1 -1
  220. package/dist/assets/{realm-services-DvRrMpdg.js → realm-services-BymYlP3S.js} +1 -1
  221. package/dist/assets/{reflection-probe-capture.inspector-vo8ShT8w.js → reflection-probe-capture.inspector-DLlXdnXS.js} +1 -1
  222. package/dist/assets/{registry-CC-Vb6qS.js → registry-INSzNWv4.js} +1 -1
  223. package/dist/assets/{relative-import-specifier-CT_YQo7I.js → relative-import-specifier-CnN2yw6s.js} +1 -1
  224. package/dist/assets/{render-env-YEmoFtX3.js → render-env-8JX42PDK.js} +1 -1
  225. package/dist/assets/{render-features-B7OI7f1i.js → render-features-AwYh2Mpx.js} +1 -1
  226. package/dist/assets/{render-settings-Mh_ddGef.js → render-settings-8uws0GJZ.js} +1 -1
  227. package/dist/assets/{resolve-three-0A-COMTr.js → resolve-three-mgzVynt7.js} +3 -3
  228. package/dist/assets/{root-seam-contract-SVcCHdYl.js → root-seam-contract-BH7IVghy.js} +1 -1
  229. package/dist/assets/{run-selection-HF9_7IwN.js → run-selection-BLaKmcmt.js} +1 -1
  230. package/dist/assets/{scene-capture-BvNIvwYD.js → scene-capture-B-mdtoSx.js} +1 -1
  231. package/dist/assets/{scene-document.service-Ck2pGl4I.js → scene-document.service-Br4Afobn.js} +2 -2
  232. package/dist/assets/{scene-framing-BgT3O3rp.js → scene-framing-C_IT4HeE.js} +1 -1
  233. package/dist/assets/{seeded-random-BVxDLbEH.js → seeded-random-BCcI3cdi.js} +1 -1
  234. package/dist/assets/{setup-renderer-BCSUurTm.js → setup-renderer-puL8wA5Q.js} +1 -1
  235. package/dist/assets/{source-object3d-authoring-adapter-CShEQbUV.js → source-object3d-authoring-adapter-G8RsSkDG.js} +1 -1
  236. package/dist/assets/{source-persistence-backend-DOkAuppW.js → source-persistence-backend-BNmh-8qW.js} +1 -1
  237. package/dist/assets/{stage-keyboard-BJEP_zFM.js → stage-keyboard-D8-cWRr2.js} +1 -1
  238. package/dist/assets/{stage-overlay-set-U3RYk04i.js → stage-overlay-set-B6mrZlgh.js} +1 -1
  239. package/dist/assets/{stage-presence-markers-C9j53BR-.js → stage-presence-markers-5xyQjkaM.js} +1 -1
  240. package/dist/assets/{stage-transform-tools-D9eCTssP.js → stage-transform-tools-ChWaCiOj.js} +1 -1
  241. package/dist/assets/{standard-viewport-dressing-CCVrTojE.js → standard-viewport-dressing-BXZtCD_J.js} +1 -1
  242. package/dist/assets/{state-watch.action-fGEIwj5w.js → state-watch.action-DNYgv9-9.js} +1 -1
  243. package/dist/assets/{state-watch.menu-Bvi0XsP3.js → state-watch.menu-DfnCJLNu.js} +1 -1
  244. package/dist/assets/{state-watch.utility-BNhj8Nnx.js → state-watch.utility-Dk8GG70_.js} +1 -1
  245. package/dist/assets/{story-capture-D0GNxNYo.js → story-capture-BOeJxmag.js} +1 -1
  246. package/dist/assets/{story-documents-BF53RkDW.js → story-documents-ncrvtbLw.js} +1 -1
  247. package/dist/assets/{story-documents.service-cTbf9p1e.js → story-documents.service-BsDX5Kzs.js} +1 -1
  248. package/dist/assets/{story-documents.service-mW6CBXLc.js → story-documents.service-BzqRctJi.js} +1 -1
  249. package/dist/assets/{story-media-presence-DsyVqDVF.js → story-media-presence-Bxc_ozc_.js} +1 -1
  250. package/dist/assets/{story-pixi-preview-DpjZcKtE.js → story-pixi-preview-Z_Qrgjco.js} +1 -1
  251. package/dist/assets/{story-presentation-CNkoc9rw.js → story-presentation-C8RuK7ZP.js} +1 -1
  252. package/dist/assets/{story-three-preview--fB-XR3A.js → story-three-preview-Dbk9HTMU.js} +2 -2
  253. package/dist/assets/{studio-environment-TibfpTB9.js → studio-environment-Dd9-Ng-9.js} +1 -1
  254. package/dist/assets/{surface-state-Bt3iAf79.js → surface-state-Dc_KHusm.js} +1 -1
  255. package/dist/assets/{syntactic-prop-specs-CN0U9uqz.js → syntactic-prop-specs-BqVhzbso.js} +1 -1
  256. package/dist/assets/{team-playtest.service-DiziYIhq.js → team-playtest.service-De283D8C.js} +1 -1
  257. package/dist/assets/{three-DfbLdx-e.js → three-DRLL_AH_.js} +1 -1
  258. package/dist/assets/{three-authoring-adapter-CtjX4v6r.js → three-authoring-adapter-Bi-8Y2uL.js} +1 -1
  259. package/dist/assets/three-authoring.service-DHplh6o3.js +2 -0
  260. package/dist/assets/{three-ingest-runtime-V4l_ZpBp.js → three-ingest-runtime-Ds2jGVty.js} +1 -1
  261. package/dist/assets/{three-integration-BxG_D6RK.js → three-integration-Bu8jiWKw.js} +2 -2
  262. package/dist/assets/three-integration.service-NrpAC6Gc.js +1 -0
  263. package/dist/assets/{three-projection-core-CyqdOvLG.js → three-projection-core-DYNkd_UM.js} +1 -1
  264. package/dist/assets/{three-state-B9ax7cgA.js → three-state-tSumB-N7.js} +1 -1
  265. package/dist/assets/{three-story-capture.service-CUVsgZa5.js → three-story-capture.service-CNvkCbRR.js} +2 -2
  266. package/dist/assets/{three-story-model-NEuWKJe1.js → three-story-model-CPPsdgfA.js} +1 -1
  267. package/dist/assets/{three-viewport-presentation-Da0lYO0_.js → three-viewport-presentation-DHl0wniy.js} +1 -1
  268. package/dist/assets/{transform-mode-request-Bfse_kvX.js → transform-mode-request-z9la1xr5.js} +1 -1
  269. package/dist/assets/{transport-strip-DYbGjuX-.js → transport-strip--Kv6Gndt.js} +1 -1
  270. package/dist/assets/transport.header-CtQ-30Cy.js +1 -0
  271. package/dist/assets/{tuples-CMTm7T5T.js → tuples-DaZ7i9Ix.js} +1 -1
  272. package/dist/assets/{ui-board-document-GaFlpf81.js → ui-board-document-B7iGu_Ze.js} +2 -2
  273. package/dist/assets/{user-data-CYeyy9Su.js → user-data-BZvgpwTm.js} +1 -1
  274. package/dist/assets/{utility-view-state-Ye00iOCB.js → utility-view-state-BOjCwlj-.js} +1 -1
  275. package/dist/assets/{viewport-door-CCXNhxOW.js → viewport-door-BOXLjEUk.js} +1 -1
  276. package/dist/assets/{viewport-root-presentation-52V6g9Ae.js → viewport-root-presentation-Cf9klnI_.js} +1 -1
  277. package/dist/assets/{viewport-surface-status-BtHfBssH.js → viewport-surface-status-Pfba7R7y.js} +1 -1
  278. package/dist/assets/{webworkerAll-D7_8g3e0.js → webworkerAll-DFHFFrDz.js} +1 -1
  279. package/dist/assets/{workspace-arrangement-D8CXsifv.js → workspace-arrangement-BmOIOEhR.js} +1 -1
  280. package/dist/assets/{world-documents-C4AdTIHw.js → world-documents-CisaULkC.js} +1 -1
  281. package/dist/assets/{world-root-stage-binding-CvEyzq0c.js → world-root-stage-binding-DDL5gwb0.js} +1 -1
  282. package/dist/assets/{xstate-animation-binding-CmmOqqwV.js → xstate-animation-binding-CxU3XPUU.js} +1 -1
  283. package/dist/assets/{xstate-animation-meta-BSBJhOAT.js → xstate-animation-meta-DrlSAelK.js} +1 -1
  284. package/dist-node/cli.js +16 -16
  285. package/package.json +16 -16
  286. package/dist/assets/InspectorObjectPreview-DZS_A4lG.js +0 -1
  287. package/dist/assets/Object3DDocumentViewport-DFMCzcLc.js +0 -2
  288. package/dist/assets/autoplay.service-aGTnDCDQ.js +0 -1
  289. package/dist/assets/blender-runtime.document-Bvlzayok.js +0 -13
  290. package/dist/assets/instances.command-neq95jyN.js +0 -1
  291. package/dist/assets/network-observer.service-CvC30rDc.js +0 -1
  292. package/dist/assets/three-authoring.service-BruYh1LE.js +0 -2
  293. package/dist/assets/three-integration.service-CBSTLULk.js +0 -1
  294. package/dist/assets/transport.header-BglFgDzu.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-DDxLnK24.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-pYPr56UP.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-vfJMc-IO.js","assets/hierarchy-marks-3Iq1RFIh.js","assets/workspace-arrangement-D8CXsifv.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-D0P1AfdK.js","assets/blender-runtime-skin-DGw7Uk4l.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-DEb_AwLC.js","assets/blender-runtime.document-Bvlzayok.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-CCXNhxOW.js","assets/object3d-document-session-registry-CTeivmwK.js","assets/blender-screenshot.menu-BSfC-1EL.js","assets/blender-version.status-LifaPI0C.js","assets/blender.command-DDOcs1dZ.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-v4ShdgaO.js","assets/properties-bone-constraints.inspector-C-dwjglB.js","assets/blender-properties-tab-DoLvP4a6.js","assets/properties-constraints.inspector-2DxnBAIf.js","assets/properties-bone.inspector-CeZIE99V.js","assets/properties-collection.inspector-DiSBJpTu.js","assets/properties-data.inspector-DvSzTW7_.js","assets/properties-material.inspector-XPNSk9iW.js","assets/properties-modifiers.inspector-8pjl5OY9.js","assets/properties-object.inspector-a30WyA7Q.js","assets/properties-output.inspector-B9JochaR.js","assets/properties-particles.inspector-D6rRhjyA.js","assets/properties-physics.inspector-BcJFxv6L.js","assets/properties-render.inspector-DHPbElDL.js","assets/properties-scene.inspector-ZJueIZwx.js","assets/properties-texture.inspector-CvUhb-u8.js","assets/properties-view-layer.inspector-CaaGgMEq.js","assets/properties-world.inspector-10GD8Fpy.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-DjEcxL08.js","assets/AssetBudgetPanel-BZy2XeqE.js","assets/asset-loaders-B0eV8Nk_.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-D7-3Scj7.js","assets/asset-budget.document-Dmn7QkMR.js","assets/asset-budget.menu-djdA3Q-S.js","assets/audio-unlock.service-Bgp8fUjH.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-CvC30rDc.js","assets/game-network-CTdS02CN.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-BO5dlpfD.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-Bty6AiHN.js","assets/contract-system-adapters-BL22QlsE.js","assets/game-contract-seams-gIFojMW2.js","assets/seeded-random-BVxDLbEH.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-CyWrvvzK.js","assets/capability-coverage-Fjv84QQN.js","assets/edit-mode-authoring-BeMAYXYR.js","assets/json-history-resource-DYW614tc.js","assets/binding-resolver-By6DQSMJ.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-DvRrMpdg.js","assets/canvas-entry-runtime-DxHv6Yxk.js","assets/three-ingest-runtime-V4l_ZpBp.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-BQBCy_Hx.js","assets/ingest-source-persistence-BFkLdeMy.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-52V6g9Ae.js","assets/mounted-authoring-DMWjUr2Z.js","assets/entity-object-BiOrbQZM.js","assets/user-data-CYeyy9Su.js","assets/three-DfbLdx-e.js","assets/editor-layers-Djcn6Scw.js","assets/component-instance-root-Cw2jcbxa.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-CtjX4v6r.js","assets/source-persistence-backend-DOkAuppW.js","assets/three-projection-core-CyqdOvLG.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-jUszsaB2.js","assets/deferred-ingest-play-BDtHDAut.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-qVYWC2NO.js","assets/board-guides-CQWXbsSW.js","assets/relative-import-specifier-CT_YQo7I.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-Dah00n9O.js","assets/inference-diagnostics-CxWL3UhK.js","assets/writer-tw6EcuVO.js","assets/three-state-B9ax7cgA.js","assets/editor-shell-store-Br2L1Fw1.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-DM2IZjJR.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-aGTnDCDQ.js","assets/bridge.command-CJCc-avL.js","assets/gameplay-replay-xk1wnQ88.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-Bjh7HoG_.js","assets/build-profiles.document-CLCc3EbW.js","assets/build-session-BkZeQ_S3.js","assets/configurations-fjyekkEX.js","assets/build-player.document-Dz_Mq8Pd.js","assets/build-progress.status-BfR8rtJ_.js","assets/build.action-SVlllu1R.js","assets/build.command-D6c8WqIx.js","assets/build.header-B_QEABFH.js","assets/build.menu-wIEk8uq4.js","assets/build.service-C24aQmEn.js","assets/connection.status-DmthQqVz.js","assets/coverage.service-BO-eNB08.js","assets/edit-mode-audio.service--N5HyK0y.js","assets/edit-mode-networking.service-ByUOzpRh.js","assets/game-document.service-CFLg-vRz.js","assets/frame-debugger-store-DVchJN-z.js","assets/utility-view-state-Ye00iOCB.js","assets/PlayBar--cmmDXMt.js","assets/run-selection-HF9_7IwN.js","assets/presentation-BKcWD0nx.js","assets/surface-state-Bt3iAf79.js","assets/game-eval.command-Xch06afq.js","assets/game-module-access-BDliSO9v.js","assets/gameplay.command-W3Sq7zn-.js","assets/generation.service-CHPmGb7B.js","assets/model-thumbnail-Cgyfafqg.js","assets/studio-environment-TibfpTB9.js","assets/generation-jobs-BTP2zuZi.js","assets/generation-CdOATubd.css","assets/generations.status-Cxb0-UxC.js","assets/ingest.service-adZJNY83.js","assets/registry-CC-Vb6qS.js","assets/mount-ingest-root-hudyfrT7.js","assets/instances.command-neq95jyN.js","assets/navmesh.menu-CicRFavg.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-B0zUTaL0.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-DTpK-Ri9.js","assets/play.command-CAhUsYcp.js","assets/profiler.action-CyjXGHbx.js","assets/profiler.menu-DXHAGF3Z.js","assets/profiler.utility-Qx-aaTdo.js","assets/scene-document.service-Ck2pGl4I.js","assets/Object3DDocumentViewport-DFMCzcLc.js","assets/viewport-surface-status-BtHfBssH.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-fGEIwj5w.js","assets/state-watch.menu-Bvi0XsP3.js","assets/state-watch.utility-BNhj8Nnx.js","assets/team-playtest.service-DiziYIhq.js","assets/collaboration-presence-BYi9wylK.js","assets/transport.header-BglFgDzu.js","assets/component-board.service-cNKaXoxN.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-DsyVqDVF.js","assets/design-time-mount.service-D2nvXCrm.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-C1VJog-q.js","assets/design-time-mount.service-x4-8taot.js","assets/react-inspector.service-wpEmCNFv.js","assets/ShadowEditor-IrEJWfde.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-BRkZp4sE.js","assets/story-documents.service-cTbf9p1e.js","assets/story-documents-BF53RkDW.js","assets/StoryPreviewMount-CkBS-oOC.js","assets/camera-runtime.inspector-EWiln7HZ.js","assets/component-board.service-6eXUhS3p.js","assets/component-verbs.command-CKmDlrFh.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-BOn71mbn.js","assets/component-verbs.service-C6MrL6R1.js","assets/constraints.inspector-CvJlw3rw.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-oZwOlxI-.js","assets/model-inspection-B5p-uq9q.js","assets/source-object3d-authoring-adapter-CShEQbUV.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-vo8ShT8w.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-mW6CBXLc.js","assets/standard-viewport-dressing-CCVrTojE.js","assets/mounted-story-viewport-source-Iq6tisms.js","assets/story-three-preview--fB-XR3A.js","assets/asset-preview-CGO8kmg5.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-NEuWKJe1.js","assets/r3f-source-authoring-adapter-Cmxf0Hvz.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-xxKy1722.js","assets/three-authoring.service-BruYh1LE.js","assets/three-story-capture.service-CUVsgZa5.js","assets/canvas-story-capture.service-DaHquc4I.js","assets/component-contracts.service-B9e64gRX.js","assets/three-integration.service-CBSTLULk.js","assets/three-integration-BxG_D6RK.js","assets/layered-pick-Cn98HSnj.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-cc5qCZnh.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-DXa0g-qN.js","assets/transport-strip-DYbGjuX-.js","assets/machines.finder-D-nBx1QJ.js","assets/machine.document-BlWIYspE.js","assets/GameplaySessionTimeline-CDcfr07j.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-DIuzLzET.js","assets/ImageViewer-BNFjkWbV.js","assets/VideoViewer-DARXMIes.js","assets/JsonAssetDocument-BkdsklFn.js","assets/OnlineAssetDetail-BPAK7Ras.js","assets/asset-editor-persistence-Dcy1Joo-.js","assets/SourceAssetViewer-C6gxbMdi.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-BK8ZfMnr.js","assets/NonThreeAuthoringBootstrap-CcXUHOp3.js","assets/project-authoring-session-B0YSloNS.js","assets/story-capture-D0GNxNYo.js","assets/react-story-board-CMghMNcN.js","assets/story-presentation-CNkoc9rw.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 r0r}from"./index-FUuS4qwW.js";import{a as tLe}from"./client-DNXj_opT.js";import{g as rLe,a as n0r,c as Cmt}from"./_commonjsHelpers-D6-XlEtG.js";function i0r(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 o0r="modulepreload",s0r=function(t){return"/"+t},Emt={},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=s0r(A),A in Emt)return;Emt[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":o0r,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)})},a0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-DDxLnK24.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-D0P1AfdK.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-DEb_AwLC.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-Bvlzayok.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-BSfC-1EL.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-LifaPI0C.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-DDOcs1dZ.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-v4ShdgaO.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-C-dwjglB.js"),__vite__mapDeps([39,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,41,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>lo(()=>import("./properties-bone.inspector-CeZIE99V.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>lo(()=>import("./properties-collection.inspector-DiSBJpTu.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-constraints.inspector-2DxnBAIf.js"),__vite__mapDeps([41,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>lo(()=>import("./properties-data.inspector-DvSzTW7_.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>lo(()=>import("./properties-material.inspector-XPNSk9iW.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>lo(()=>import("./properties-modifiers.inspector-8pjl5OY9.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>lo(()=>import("./properties-object.inspector-a30WyA7Q.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>lo(()=>import("./properties-output.inspector-B9JochaR.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>lo(()=>import("./properties-particles.inspector-D6rRhjyA.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>lo(()=>import("./properties-physics.inspector-BcJFxv6L.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>lo(()=>import("./properties-render.inspector-DHPbElDL.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>lo(()=>import("./properties-scene.inspector-ZJueIZwx.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>lo(()=>import("./properties-texture.inspector-CvUhb-u8.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>lo(()=>import("./properties-view-layer.inspector-CaaGgMEq.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>lo(()=>import("./properties-world.inspector-10GD8Fpy.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>lo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([56,37]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>lo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([57,37]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>lo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([58,37]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>lo(()=>import("./texture.layout-DASpHVht.js"),[])}],c0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-DjEcxL08.js"),__vite__mapDeps([59,60,1,2,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>lo(()=>import("./asset-budget.action-D7-3Scj7.js"),__vite__mapDeps([70,60,1,2,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>lo(()=>import("./asset-budget.document-Dmn7QkMR.js"),__vite__mapDeps([71,1,2,60,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>lo(()=>import("./asset-budget.menu-djdA3Q-S.js"),__vite__mapDeps([72,60,1,2,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>lo(()=>import("./audio-unlock.service-Bgp8fUjH.js"),__vite__mapDeps([73,74,8,75,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>lo(()=>import("./network-observer.service-CvC30rDc.js"),__vite__mapDeps([76,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>lo(()=>import("./audio.utility-DM2IZjJR.js"),__vite__mapDeps([138,1,2,3,4,20,21,139,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>lo(()=>import("./autoplay.service-aGTnDCDQ.js"),__vite__mapDeps([140,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>lo(()=>import("./bridge.command-CJCc-avL.js"),__vite__mapDeps([141,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137,142,143,144,145]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>lo(()=>import("./build-profiles.document-CLCc3EbW.js"),__vite__mapDeps([146,1,2,3,4,20,21,147,148,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>lo(()=>import("./build-player.document-Dz_Mq8Pd.js"),__vite__mapDeps([149,1,2,3,4,147,148,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>lo(()=>import("./build-progress.status-BfR8rtJ_.js"),__vite__mapDeps([150,1,2,3,4,147,148,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>lo(()=>import("./build.action-SVlllu1R.js"),__vite__mapDeps([151,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>lo(()=>import("./build.command-D6c8WqIx.js"),__vite__mapDeps([152,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>lo(()=>import("./build.header-B_QEABFH.js"),__vite__mapDeps([153,1,2,3,4,20,21,147,148,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>lo(()=>import("./build.menu-wIEk8uq4.js"),__vite__mapDeps([154,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>lo(()=>import("./build.service-C24aQmEn.js"),__vite__mapDeps([155,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>lo(()=>import("./connection.status-DmthQqVz.js"),__vite__mapDeps([156,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>lo(()=>import("./coverage.service-BO-eNB08.js"),__vite__mapDeps([157,90,84,3,2,4,1,20,21,22,23,89]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>lo(()=>import("./edit-mode-audio.service--N5HyK0y.js"),__vite__mapDeps([158,74,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-ByUOzpRh.js"),__vite__mapDeps([159,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>lo(()=>import("./game-document.service-CFLg-vRz.js"),__vite__mapDeps([160,1,2,3,4,20,21,161,139,162,163,148,164,77,78,79,80,81,82,83,84,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137,165,166]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>lo(()=>import("./game-eval.command-Xch06afq.js"),__vite__mapDeps([167,168,3,2,4,1,20,21,22,23,144,107,84,90,108,83,77,78,79,80,81,82,85,75,86,87,7,8,88,89,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{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-W3Sq7zn-.js"),__vite__mapDeps([169,144,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>lo(()=>import("./generation.service-CHPmGb7B.js"),__vite__mapDeps([170,1,2,3,4,171,13,172,114,19,67,7,8,68,69,9,10,11,12,20,21,173,22,23,174]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>lo(()=>import("./generations.status-Cxb0-UxC.js"),__vite__mapDeps([175,1,2,3,4,20,21,173,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-adZJNY83.js"),__vite__mapDeps([176,177,178,107,84,3,2,4,1,20,21,22,23,90,108,83,135,136,14,7,8,15,116,19,114,113,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>lo(()=>import("./instances.command-neq95jyN.js"),__vite__mapDeps([179,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>lo(()=>import("./navmesh.menu-CicRFavg.js"),__vite__mapDeps([180,181,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>lo(()=>import("./navmesh.service-B0zUTaL0.js"),__vite__mapDeps([182,64,65,181,29,183,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>lo(()=>import("./network.utility-DTpK-Ri9.js"),__vite__mapDeps([184,1,2,77,78,79,80,81,82,83,84,3,4,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>lo(()=>import("./play.command-CAhUsYcp.js"),__vite__mapDeps([185,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137,144,164,148]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>lo(()=>import("./profiler.action-CyjXGHbx.js"),__vite__mapDeps([186,162,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>lo(()=>import("./profiler.menu-DXHAGF3Z.js"),__vite__mapDeps([187,162,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>lo(()=>import("./profiler.utility-Qx-aaTdo.js"),__vite__mapDeps([188,1,2,162,3,4,20,21,161,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>lo(()=>import("./scene-document.service-Ck2pGl4I.js"),__vite__mapDeps([189,1,2,190,3,4,191,20,21,192,135,136,14,7,8,15,116,19,22,23,114,113,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>lo(()=>import("./state-watch.action-fGEIwj5w.js"),__vite__mapDeps([193,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>lo(()=>import("./state-watch.menu-Bvi0XsP3.js"),__vite__mapDeps([194,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>lo(()=>import("./state-watch.utility-BNhj8Nnx.js"),__vite__mapDeps([195,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>lo(()=>import("./team-playtest.service-DiziYIhq.js"),__vite__mapDeps([196,197,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>lo(()=>import("./transport.header-BglFgDzu.js"),__vite__mapDeps([198,1,2,3,4,163,148,164,77,78,79,80,81,82,83,84,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{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-cNKaXoxN.js"),__vite__mapDeps([199,200,201,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-D2nvXCrm.js"),__vite__mapDeps([202,203,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-C1VJog-q.js").then(t=>t.c),__vite__mapDeps([204,200,201]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-x4-8taot.js"),__vite__mapDeps([205,203,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>lo(()=>import("./react-inspector.service-wpEmCNFv.js"),__vite__mapDeps([206,1,2,3,4,20,21,207,129,208,132,133,209,92,128,130,131,134,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-cTbf9p1e.js"),__vite__mapDeps([210,211,1,2,3,4,20,21,165,166,212,110,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>lo(()=>import("./camera-runtime.inspector-EWiln7HZ.js"),__vite__mapDeps([213,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-6eXUhS3p.js"),__vite__mapDeps([214,200,201,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>lo(()=>import("./component-verbs.command-CKmDlrFh.js"),__vite__mapDeps([215,216,217,136,14,7,8,15,116,19,3,2,4,1,20,21,22,23,114,113,29,135]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>lo(()=>import("./component-verbs.service-C6MrL6R1.js"),__vite__mapDeps([218,217,216,136,14,7,8,15,116,19,3,2,4,1,20,21,22,23,114,113,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>lo(()=>import("./constraints.inspector-CvJlw3rw.js"),__vite__mapDeps([219,1,2,29,117,114,19,220,64,65,3,4,20,21,135,136,14,7,8,15,116,22,23,113]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>lo(()=>import("./model-asset-sections.service-oZwOlxI-.js"),__vite__mapDeps([221,1,2,29,222,114,19,8,223,116,3,4,20,21,22,23,115,117,113,118,121,224,124,64,65,225]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>lo(()=>import("./reflection-probe-capture.inspector-vo8ShT8w.js"),__vite__mapDeps([226,1,2,29,227,64,65,3,4,20,21,135,136,14,7,8,15,116,19,22,23,114,113]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-mW6CBXLc.js"),__vite__mapDeps([228,1,2,190,3,4,191,20,21,166,229,17,18,19,8,116,22,23,9,7,10,11,12,114,230,231,232,13,172,67,68,69,233,234,87,88,235,131,236,211,165,212,110,237,117,238,130,121,115,113,29,118,133,216,239,134,125,124,64,65]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>lo(()=>import("./three-authoring.service-BruYh1LE.js"),__vite__mapDeps([240,203,91,92,119,117,114,19,120,108,121,116,3,2,4,1,20,21,22,23,115,113,29,118,8,122,64,65,123,124,86,125,136,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>lo(()=>import("./three-story-capture.service-CUVsgZa5.js"),__vite__mapDeps([241,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-DaHquc4I.js"),__vite__mapDeps([242,3,2,4,1,20,21,22,23]))}],l0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-B9e64gRX.js"),__vite__mapDeps([243,239,134,125,3,2,4,1,20,21,22,23]))}],u0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-CBSTLULk.js"),__vite__mapDeps([244,245,183,13,7,8,6,9,10,11,12,246,247,114,19,1,2,3,4,171,172,67,68,69,31,135,136,14,15,116,20,21,22,23,113,29,18,117,30,17,232,233]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>lo(()=>import("./animation-mixers.service-cc5qCZnh.js"),__vite__mapDeps([248,249,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>lo(()=>import("./animation-timeline.utility-DXa0g-qN.js"),__vite__mapDeps([250,1,2,251,3,4,20,21,22,23]))}],f0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-D-nBx1QJ.js"),__vite__mapDeps([252,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>lo(()=>import("./machine.document-BlWIYspE.js"),__vite__mapDeps([253,1,2,3,4,20,21,22,23]))}];let HY=null;const BOe=new Set;function lee(){return HY}function d0r(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 BOe)n()}function kTt(t){return BOe.add(t),()=>BOe.delete(t)}/*!
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-DjWUfDIp.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/blender-runtime-host-h9lSshSs.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-W1659ao-.js","assets/hierarchy-marks-B4v87a-a.js","assets/workspace-arrangement-BmOIOEhR.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/blender-timeline.document-CZnj7Tkm.js","assets/blender-runtime-skin-y_wwrS0i.js","assets/LineSegments2-DN9pUfWA.js","assets/blender-uv-editor.document-CsDdrijK.js","assets/blender-runtime.document-B7ZMqGJk.js","assets/three-contract-Dkt6PmWY.js","assets/viewport-door-BOXLjEUk.js","assets/object3d-document-session-registry-WhzLeDh8.js","assets/blender-screenshot.menu-BnLFgrq6.js","assets/blender-version.status-M7FZzsVm.js","assets/blender.command-BhldgwJg.js","assets/blender.status-BMETIbb2.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-BjJtkzqN.js","assets/properties-bone-constraints.inspector-CCt9aEId.js","assets/blender-properties-tab-DSEPtbl-.js","assets/properties-constraints.inspector-DM3s7ro_.js","assets/properties-bone.inspector-BaVMOQEw.js","assets/properties-collection.inspector-vhfuF5TZ.js","assets/properties-data.inspector-srEJYSuS.js","assets/properties-material.inspector-BCSthc2B.js","assets/properties-modifiers.inspector-CDSwk14l.js","assets/properties-object.inspector-CHBOT6vc.js","assets/properties-output.inspector-B8NPLrls.js","assets/properties-particles.inspector-ByDU9k9z.js","assets/properties-physics.inspector-BRAK6FMW.js","assets/properties-render.inspector-CZ2fvH46.js","assets/properties-scene.inspector-kIDP2MRO.js","assets/properties-texture.inspector-BJTOT2lN.js","assets/properties-view-layer.inspector-Dgr4N1je.js","assets/properties-world.inspector-Dy_S7h-I.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/asset-budget-asset.menu-tLAS-J30.js","assets/AssetBudgetPanel-Cz9Gmn90.js","assets/asset-loaders-DrK7b3Yn.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-D0xcnGHW.js","assets/asset-budget.document-B1v93lAS.js","assets/asset-budget.menu-C8cMC0S7.js","assets/audio-unlock.service-ChDgJk4k.js","assets/pose-guard-CLabLSzf.js","assets/game-audio-BeCyd0Ha.js","assets/network-observer.service-BI6u2j_-.js","assets/game-network-BI9UA1te.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-BZceulci.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BEwTz1TC.js","assets/contract-system-adapters-BFftL7th.js","assets/game-contract-seams-BSaovR7J.js","assets/seeded-random-BCcI3cdi.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-B9ZVwEHj.js","assets/capability-coverage-CXl6Odkw.js","assets/edit-mode-authoring-Bwbko9HU.js","assets/json-history-resource-CIzD7_uf.js","assets/binding-resolver-5udpegkM.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-BymYlP3S.js","assets/canvas-entry-runtime-DwrywTc9.js","assets/three-ingest-runtime-Ds2jGVty.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-CR8Om_4L.js","assets/ingest-source-persistence-DvuQc3sT.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-Cf9klnI_.js","assets/mounted-authoring-BsgktNOd.js","assets/entity-object-Dd555Jkc.js","assets/user-data-BZvgpwTm.js","assets/three-DRLL_AH_.js","assets/editor-layers-CtzgRn6E.js","assets/component-instance-root-BuWShEF6.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-Bi-8Y2uL.js","assets/source-persistence-backend-BNmh-8qW.js","assets/three-projection-core-DYNkd_UM.js","assets/body-marks-C1LxJtQb.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-BDuldzGh.js","assets/deferred-ingest-play-CSLZoAGE.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-BBXbYv0n.js","assets/board-guides-B8EV-uXc.js","assets/relative-import-specifier-CnN2yw6s.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-DvD15kGQ.js","assets/inference-diagnostics-C7uqhs36.js","assets/writer-tw6EcuVO.js","assets/three-state-tSumB-N7.js","assets/editor-shell-store-CdiZaE3q.js","assets/game-surface-defaults-D8S4cRxi.js","assets/audio.utility-BkS-afdu.js","assets/audio-meter-Cddyq1vI.js","assets/autoplay.service-Dd5Zy1tg.js","assets/bridge.command-CZuqqoDd.js","assets/gameplay-replay-BDSniLPH.js","assets/output-DK8waum9.js","assets/command-results-CUQD49AB.js","assets/debug-bridge-BWLCtg3j.js","assets/build-profiles.document-BYX1iirt.js","assets/build-session-BiNA1pwa.js","assets/configurations-C2Betud5.js","assets/build-player.document-D7z4ZxMc.js","assets/build-progress.status-BMSbOsd2.js","assets/build.action-BxUirWPy.js","assets/build.command-XOu5w0Fm.js","assets/build.header-BI5bOKkD.js","assets/build.menu-C-3Xs3_d.js","assets/build.service-BqgWqVhi.js","assets/connection.status-BQMFuCO7.js","assets/coverage.service-C1yq7VkJ.js","assets/edit-mode-audio.service-BODX7lSQ.js","assets/edit-mode-networking.service-I5--hRQ5.js","assets/game-document.service-BhrYDH1e.js","assets/frame-debugger-store-QU6kN-iA.js","assets/utility-view-state-BOjCwlj-.js","assets/PlayBar-D6qMfUOT.js","assets/run-selection-BLaKmcmt.js","assets/presentation-DI-8dWZm.js","assets/surface-state-Dc_KHusm.js","assets/game-eval.command-ByisNZEW.js","assets/game-module-access-CAOIdtrL.js","assets/gameplay.command-BZJc-MSo.js","assets/generation.service--JVrEHkM.js","assets/model-thumbnail-DDlpcMuI.js","assets/studio-environment-Dd9-Ng-9.js","assets/generation-jobs-mYgLreBY.js","assets/generation-CdOATubd.css","assets/generations.status-DnoDI989.js","assets/ingest.service-NgfReuZ2.js","assets/registry-INSzNWv4.js","assets/mount-ingest-root-DEMXnGgZ.js","assets/instances.command-DPiLpDyF.js","assets/navmesh.menu-DSzXEzaQ.js","assets/navmesh-workflow-store-Cmnm57TB.js","assets/navmesh.service-Egi9Y7BV.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/network.utility-CVeoSZPo.js","assets/play.command-BLp7FDsh.js","assets/profiler.action-D65LYxnG.js","assets/profiler.menu-eBjg8qgR.js","assets/profiler.utility-yYD2sV12.js","assets/scene-document.service-Br4Afobn.js","assets/Object3DDocumentViewport-sN0s5xrP.js","assets/viewport-surface-status-Pfba7R7y.js","assets/after-paint-CB4bz1-e.js","assets/state-watch.action-DNYgv9-9.js","assets/state-watch.menu-DfnCJLNu.js","assets/state-watch.utility-Dk8GG70_.js","assets/team-playtest.service-De283D8C.js","assets/collaboration-presence-DY1ZefcY.js","assets/transport.header-CtQ-30Cy.js","assets/component-board.service-CuMBoOJm.js","assets/component-board-registry-DrIa2csL.js","assets/story-media-presence-Bxc_ozc_.js","assets/design-time-mount.service-DNLaET1-.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/component-board.service-BqmpwVOE.js","assets/design-time-mount.service-BasZNarL.js","assets/react-inspector.service-DbXwK8IG.js","assets/ShadowEditor-m7LkQXyA.js","assets/eyedropper-session-bjPXnfeX.js","assets/dom-authoring-adapter-Dskjm96_.js","assets/story-documents.service-BsDX5Kzs.js","assets/story-documents-ncrvtbLw.js","assets/StoryPreviewMount-XHCeJVUK.js","assets/camera-runtime.inspector-DLQrf88i.js","assets/component-board.service-CoDU8yTI.js","assets/component-verbs.command-DTyeqzgR.js","assets/instance-fork-actions-D3sRzS3K.js","assets/fork-menu-Br45so5D.js","assets/component-verbs.service-BFqJw7Kt.js","assets/constraints.inspector-CQVGVM3B.js","assets/constraint-Bp1l8hY-.js","assets/model-asset-sections.service-D_002KGV.js","assets/model-inspection-2ROxDplj.js","assets/source-object3d-authoring-adapter-G8RsSkDG.js","assets/project-provenance-BGnJXJwa.js","assets/model-asset-sections-D1uxOu2v.css","assets/reflection-probe-capture.inspector-DLlXdnXS.js","assets/reflection-probe-sIto9mh0.js","assets/story-documents.service-BzqRctJi.js","assets/standard-viewport-dressing-BXZtCD_J.js","assets/mounted-story-viewport-source-sgRhon56.js","assets/story-three-preview-Dbk9HTMU.js","assets/asset-preview-h_hjp_z2.js","assets/bitmap-label-Ct4k6ehY.js","assets/crash-null-boundary-v3a0uEgw.js","assets/story-mount-turn-DFRTj5hi.js","assets/three-story-model-CPPsdgfA.js","assets/r3f-source-authoring-adapter-IsFmEUAU.js","assets/live-gesture-lock-DJbrjOqf.js","assets/oid-transform-DYf7FDwX.js","assets/three-authoring.service-DHplh6o3.js","assets/three-story-capture.service-CNvkCbRR.js","assets/canvas-story-capture.service-vRpZ5fZG.js","assets/component-contracts.service-BPl-U3eP.js","assets/three-integration.service-NrpAC6Gc.js","assets/three-integration-Bu8jiWKw.js","assets/layered-pick-D9Jk9372.js","assets/root-stacking-BEd9ZvxC.js","assets/animation-mixers.service-Dhc_pHj0.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-ByBlEQbw.js","assets/transport-strip--Kv6Gndt.js","assets/machines.finder-i8KdO38L.js","assets/machine.document-m153T0gi.js","assets/GameplaySessionTimeline-BAGmiZ7l.js","assets/react-18-By2b4xR9.js","assets/AudioViewer-DNVS05h0.js","assets/ImageViewer-zBabH42e.js","assets/VideoViewer-8wjwSQob.js","assets/JsonAssetDocument-Bvi2OLcK.js","assets/OnlineAssetDetail-y08xFDbC.js","assets/asset-editor-persistence-l5bSUF0E.js","assets/SourceAssetViewer-DSqt4J4X.js","assets/InspectorCanvasPreview-BrFjhoiD.js","assets/hosted-asset-materialization-B228iJSV.js","assets/NonThreeAuthoringBootstrap-DLxobtKG.js","assets/project-authoring-session-TaUQdZXZ.js","assets/story-capture-BOeJxmag.js","assets/react-story-board-CCjC3Sfg.js","assets/story-presentation-C8RuK7ZP.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 r0r}from"./index-FUuS4qwW.js";import{a as tLe}from"./client-DNXj_opT.js";import{g as rLe,a as n0r,c as Cmt}from"./_commonjsHelpers-D6-XlEtG.js";function i0r(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 o0r="modulepreload",s0r=function(t){return"/"+t},Emt={},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=s0r(A),A in Emt)return;Emt[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":o0r,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)})},a0r=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>lo(()=>import("./blender-node-editor.document-DjWUfDIp.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-CZnj7Tkm.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-CsDdrijK.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-B7ZMqGJk.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-BnLFgrq6.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-M7FZzsVm.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-BhldgwJg.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-BjJtkzqN.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-CCt9aEId.js"),__vite__mapDeps([39,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,41,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>lo(()=>import("./properties-bone.inspector-BaVMOQEw.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>lo(()=>import("./properties-collection.inspector-vhfuF5TZ.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>lo(()=>import("./properties-constraints.inspector-DM3s7ro_.js"),__vite__mapDeps([41,40,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,3,4,20,21,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>lo(()=>import("./properties-data.inspector-srEJYSuS.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>lo(()=>import("./properties-material.inspector-BCSthc2B.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>lo(()=>import("./properties-modifiers.inspector-CDSwk14l.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>lo(()=>import("./properties-object.inspector-CHBOT6vc.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>lo(()=>import("./properties-output.inspector-B8NPLrls.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>lo(()=>import("./properties-particles.inspector-ByDU9k9z.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>lo(()=>import("./properties-physics.inspector-BRAK6FMW.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>lo(()=>import("./properties-render.inspector-CZ2fvH46.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>lo(()=>import("./properties-scene.inspector-kIDP2MRO.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>lo(()=>import("./properties-texture.inspector-BJTOT2lN.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>lo(()=>import("./properties-view-layer.inspector-Dgr4N1je.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>lo(()=>import("./properties-world.inspector-Dy_S7h-I.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,22,23]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>lo(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([56,37]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>lo(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([57,37]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>lo(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([58,37]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>lo(()=>import("./texture.layout-DASpHVht.js"),[])}],c0r=[{entryPath:"@volter/editor-game/contributions/asset-budget-asset.menu.ts",load:()=>lo(()=>import("./asset-budget-asset.menu-tLAS-J30.js"),__vite__mapDeps([59,60,1,2,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.action.ts",load:()=>lo(()=>import("./asset-budget.action-D0xcnGHW.js"),__vite__mapDeps([70,60,1,2,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.document.tsx",load:()=>lo(()=>import("./asset-budget.document-B1v93lAS.js"),__vite__mapDeps([71,1,2,60,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/asset-budget.menu.ts",load:()=>lo(()=>import("./asset-budget.menu-C8cMC0S7.js"),__vite__mapDeps([72,60,1,2,3,4,20,21,61,62,7,8,63,64,65,66,67,68,69,22,23]))},{entryPath:"@volter/editor-game/contributions/audio-unlock.service.ts",load:()=>lo(()=>import("./audio-unlock.service-ChDgJk4k.js"),__vite__mapDeps([73,74,8,75,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network-observer.service.ts",load:()=>lo(()=>import("./network-observer.service-BI6u2j_-.js"),__vite__mapDeps([76,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/audio.utility.tsx",load:()=>lo(()=>import("./audio.utility-BkS-afdu.js"),__vite__mapDeps([138,1,2,3,4,20,21,139,22,23]))},{entryPath:"@volter/editor-game/contributions/autoplay.service.ts",load:()=>lo(()=>import("./autoplay.service-Dd5Zy1tg.js"),__vite__mapDeps([140,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/bridge.command.ts",load:()=>lo(()=>import("./bridge.command-CZuqqoDd.js"),__vite__mapDeps([141,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137,142,143,144,145]))},{entryPath:"@volter/editor-game/contributions/build-profiles.document.tsx",load:()=>lo(()=>import("./build-profiles.document-BYX1iirt.js"),__vite__mapDeps([146,1,2,3,4,20,21,147,148,22,23]))},{entryPath:"@volter/editor-game/contributions/build-player.document.tsx",load:()=>lo(()=>import("./build-player.document-D7z4ZxMc.js"),__vite__mapDeps([149,1,2,3,4,147,148,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build-progress.status.tsx",load:()=>lo(()=>import("./build-progress.status-BMSbOsd2.js"),__vite__mapDeps([150,1,2,3,4,147,148,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.action.ts",load:()=>lo(()=>import("./build.action-BxUirWPy.js"),__vite__mapDeps([151,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.command.ts",load:()=>lo(()=>import("./build.command-XOu5w0Fm.js"),__vite__mapDeps([152,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.header.tsx",load:()=>lo(()=>import("./build.header-BI5bOKkD.js"),__vite__mapDeps([153,1,2,3,4,20,21,147,148,22,23]))},{entryPath:"@volter/editor-game/contributions/build.menu.ts",load:()=>lo(()=>import("./build.menu-C-3Xs3_d.js"),__vite__mapDeps([154,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/build.service.ts",load:()=>lo(()=>import("./build.service-BqgWqVhi.js"),__vite__mapDeps([155,147,148,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/connection.status.tsx",load:()=>lo(()=>import("./connection.status-BQMFuCO7.js"),__vite__mapDeps([156,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/coverage.service.ts",load:()=>lo(()=>import("./coverage.service-C1yq7VkJ.js"),__vite__mapDeps([157,90,84,3,2,4,1,20,21,22,23,89]))},{entryPath:"@volter/editor-game/contributions/edit-mode-audio.service.ts",load:()=>lo(()=>import("./edit-mode-audio.service-BODX7lSQ.js"),__vite__mapDeps([158,74,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-I5--hRQ5.js"),__vite__mapDeps([159,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/game-document.service.ts",load:()=>lo(()=>import("./game-document.service-BhrYDH1e.js"),__vite__mapDeps([160,1,2,3,4,20,21,161,139,162,163,148,164,77,78,79,80,81,82,83,84,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137,165,166]))},{entryPath:"@volter/editor-game/contributions/game-eval.command.ts",load:()=>lo(()=>import("./game-eval.command-ByisNZEW.js"),__vite__mapDeps([167,168,3,2,4,1,20,21,22,23,144,107,84,90,108,83,77,78,79,80,81,82,85,75,86,87,7,8,88,89,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{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-BZJc-MSo.js"),__vite__mapDeps([169,144,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/generation.service.ts",load:()=>lo(()=>import("./generation.service--JVrEHkM.js"),__vite__mapDeps([170,1,2,3,4,171,13,172,114,19,67,7,8,68,69,9,10,11,12,20,21,173,22,23,174]))},{entryPath:"@volter/editor-game/contributions/generations.status.tsx",load:()=>lo(()=>import("./generations.status-DnoDI989.js"),__vite__mapDeps([175,1,2,3,4,20,21,173,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-NgfReuZ2.js"),__vite__mapDeps([176,177,178,107,84,3,2,4,1,20,21,22,23,90,108,83,135,136,14,7,8,15,116,19,114,113,29]))},{entryPath:"@volter/editor-game/contributions/instances.command.ts",load:()=>lo(()=>import("./instances.command-DPiLpDyF.js"),__vite__mapDeps([179,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/navmesh.menu.ts",load:()=>lo(()=>import("./navmesh.menu-DSzXEzaQ.js"),__vite__mapDeps([180,181,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/navmesh.service.ts",load:()=>lo(()=>import("./navmesh.service-Egi9Y7BV.js"),__vite__mapDeps([182,64,65,181,29,183,30,8,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/network.utility.tsx",load:()=>lo(()=>import("./network.utility-CVeoSZPo.js"),__vite__mapDeps([184,1,2,77,78,79,80,81,82,83,84,3,4,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/play.command.ts",load:()=>lo(()=>import("./play.command-BLp7FDsh.js"),__vite__mapDeps([185,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137,144,164,148]))},{entryPath:"@volter/editor-game/contributions/profiler.action.ts",load:()=>lo(()=>import("./profiler.action-D65LYxnG.js"),__vite__mapDeps([186,162,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.menu.ts",load:()=>lo(()=>import("./profiler.menu-eBjg8qgR.js"),__vite__mapDeps([187,162,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/profiler.utility.tsx",load:()=>lo(()=>import("./profiler.utility-yYD2sV12.js"),__vite__mapDeps([188,1,2,162,3,4,20,21,161,22,23]))},{entryPath:"@volter/editor-game/contributions/scene-document.service.ts",load:()=>lo(()=>import("./scene-document.service-Br4Afobn.js"),__vite__mapDeps([189,1,2,190,3,4,191,20,21,192,135,136,14,7,8,15,116,19,22,23,114,113,29]))},{entryPath:"@volter/editor-game/contributions/state-watch.action.ts",load:()=>lo(()=>import("./state-watch.action-DNYgv9-9.js"),__vite__mapDeps([193,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.menu.ts",load:()=>lo(()=>import("./state-watch.menu-DfnCJLNu.js"),__vite__mapDeps([194,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/state-watch.utility.tsx",load:()=>lo(()=>import("./state-watch.utility-Dk8GG70_.js"),__vite__mapDeps([195,1,2,3,4,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/team-playtest.service.ts",load:()=>lo(()=>import("./team-playtest.service-De283D8C.js"),__vite__mapDeps([196,197,77,78,79,2,80,81,82,83,84,3,4,1,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{entryPath:"@volter/editor-game/contributions/transport.header.tsx",load:()=>lo(()=>import("./transport.header-CtQ-30Cy.js"),__vite__mapDeps([198,1,2,3,4,163,148,164,77,78,79,80,81,82,83,84,20,21,22,23,85,75,86,87,7,8,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,15,103,104,105,106,107,108,109,110,111,112,113,114,19,29,115,116,117,118,119,120,121,122,64,65,123,124,125,126,127,128,129,130,131,132,133,134,135,136,14,30,137]))},{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-CuMBoOJm.js"),__vite__mapDeps([199,200,201,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-DNLaET1-.js"),__vite__mapDeps([202,203,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/component-board.service.ts",load:()=>lo(()=>import("./component-board.service-BqmpwVOE.js").then(t=>t.c),__vite__mapDeps([204,200,201]))},{entryPath:"@volter/editor-game/contributions/react/design-time-mount.service.ts",load:()=>lo(()=>import("./design-time-mount.service-BasZNarL.js"),__vite__mapDeps([205,203,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/react/react-inspector.service.ts",load:()=>lo(()=>import("./react-inspector.service-DbXwK8IG.js"),__vite__mapDeps([206,1,2,3,4,20,21,207,129,208,132,133,209,92,128,130,131,134,22,23]))},{entryPath:"@volter/editor-game/contributions/react/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-BsDX5Kzs.js"),__vite__mapDeps([210,211,1,2,3,4,20,21,165,166,212,110,22,23]))},{entryPath:"@volter/editor-game/contributions/three/camera-runtime.inspector.tsx",load:()=>lo(()=>import("./camera-runtime.inspector-DLQrf88i.js"),__vite__mapDeps([213,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-CoDU8yTI.js"),__vite__mapDeps([214,200,201,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.command.ts",load:()=>lo(()=>import("./component-verbs.command-DTyeqzgR.js"),__vite__mapDeps([215,216,217,136,14,7,8,15,116,19,3,2,4,1,20,21,22,23,114,113,29,135]))},{entryPath:"@volter/editor-game/contributions/three/component-verbs.service.ts",load:()=>lo(()=>import("./component-verbs.service-BFqJw7Kt.js"),__vite__mapDeps([218,217,216,136,14,7,8,15,116,19,3,2,4,1,20,21,22,23,114,113,29]))},{entryPath:"@volter/editor-game/contributions/three/constraints.inspector.tsx",load:()=>lo(()=>import("./constraints.inspector-CQVGVM3B.js"),__vite__mapDeps([219,1,2,29,117,114,19,220,64,65,3,4,20,21,135,136,14,7,8,15,116,22,23,113]))},{entryPath:"@volter/editor-game/contributions/three/model-asset-sections.service.ts",load:()=>lo(()=>import("./model-asset-sections.service-D_002KGV.js"),__vite__mapDeps([221,1,2,29,222,114,19,8,223,116,3,4,20,21,22,23,115,117,113,118,121,224,124,64,65,225]))},{entryPath:"@volter/editor-game/contributions/three/reflection-probe-capture.inspector.tsx",load:()=>lo(()=>import("./reflection-probe-capture.inspector-DLlXdnXS.js"),__vite__mapDeps([226,1,2,29,227,64,65,3,4,20,21,135,136,14,7,8,15,116,19,22,23,114,113]))},{entryPath:"@volter/editor-game/contributions/three/story-documents.service.ts",load:()=>lo(()=>import("./story-documents.service-BzqRctJi.js"),__vite__mapDeps([228,1,2,190,3,4,191,20,21,166,229,17,18,19,8,116,22,23,9,7,10,11,12,114,230,231,232,13,172,67,68,69,233,234,87,88,235,131,236,211,165,212,110,237,117,238,130,121,115,113,29,118,133,216,239,134,125,124,64,65]))},{entryPath:"@volter/editor-game/contributions/three/three-authoring.service.ts",load:()=>lo(()=>import("./three-authoring.service-DHplh6o3.js"),__vite__mapDeps([240,203,91,92,119,117,114,19,120,108,121,116,3,2,4,1,20,21,22,23,115,113,29,118,8,122,64,65,123,124,86,125,136,14,7,15]))},{entryPath:"@volter/editor-game/contributions/three-story-capture.service.ts",load:()=>lo(()=>import("./three-story-capture.service-CNvkCbRR.js"),__vite__mapDeps([241,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-vRpZ5fZG.js"),__vite__mapDeps([242,3,2,4,1,20,21,22,23]))}],l0r=[{entryPath:"@volter/editor-react/contributions/component-contracts.service.ts",load:()=>lo(()=>import("./component-contracts.service-BPl-U3eP.js"),__vite__mapDeps([243,239,134,125,3,2,4,1,20,21,22,23]))}],u0r=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>lo(()=>import("./three-integration.service-NrpAC6Gc.js"),__vite__mapDeps([244,245,183,13,7,8,6,9,10,11,12,246,247,114,19,1,2,3,4,171,172,67,68,69,31,135,136,14,15,116,20,21,22,23,113,29,18,117,30,17,232,233]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>lo(()=>import("./animation-mixers.service-Dhc_pHj0.js"),__vite__mapDeps([248,249,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>lo(()=>import("./animation-timeline.utility-ByBlEQbw.js"),__vite__mapDeps([250,1,2,251,3,4,20,21,22,23]))}],f0r=[{entryPath:"@volter/editor-xstate/contributions/machines.finder.ts",load:()=>lo(()=>import("./machines.finder-i8KdO38L.js"),__vite__mapDeps([252,3,2,4,1,20,21,22,23]))},{entryPath:"@volter/editor-xstate/contributions/machine.document.tsx",load:()=>lo(()=>import("./machine.document-m153T0gi.js"),__vite__mapDeps([253,1,2,3,4,20,21,22,23]))}];let HY=null;const BOe=new Set;function lee(){return HY}function d0r(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 BOe)n()}function kTt(t){return BOe.add(t),()=>BOe.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=!YOe.jitless,A=S&&yCt.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?IEt([],G,J,$,D,t):J):s(J,$):(J.issues.push({expected:"object",code:"invalid_type",input:G,inst:t}),J)}});function Wmt(t,n,s,c){for(const m of t)if(m.issues.length===0)return n.value=m.value,n;const d=t.filter(m=>!MO(m));return d.length===1?(n.value=d[0].value,d[0]):(n.issues.push({code:"invalid_union",input:n.value,inst:s,errors:t.map(m=>m.issues.map(g=>Nw(g,c,$S())))}),n)}const bLe=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=>fye(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=>Wmt(k,d,t,m)):Wmt(S,d,t,m)}});function Hmt(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 Qbr=ui("$ZodXor",(t,n)=>{bLe.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=>Hmt(k,d,t,m)):Hmt(S,d,t,m)}}),e2r=ui("$ZodDiscriminatedUnion",(t,n)=>{n.inclusive=!1,bLe.init(t,n);const s=t._zod.parse;Gu(t._zod,"propValues",()=>{const d={};for(const m of n.options){const g=m._zod.propValues;if(!g||Object.keys(g).length===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(m)}"`);for(const[S,k]of Object.entries(g)){d[S]||(d[S]=new Set);for(const A of k)d[S].add(A)}}return d});const c=dee(()=>{const d=n.options,m=new Map;for(const g of d){const S=g._zod.propValues?.[n.discriminator];if(!S||S.size===0)throw new Error(`Invalid discriminated union option at index "${n.options.indexOf(g)}"`);for(const k of S){if(m.has(k))throw new Error(`Duplicate discriminator value "${String(k)}"`);m.set(k,g)}}return m});t._zod.parse=(d,m)=>{const g=d.value;if(!ZB(g))return d.issues.push({code:"invalid_type",expected:"object",input:g,inst:t}),d;const S=c.value.get(g?.[n.discriminator]);return S?S._zod.run(d,m):n.unionFallback?s(d,m):(d.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:n.discriminator,input:g,path:[n.discriminator],inst:t}),d)}}),t2r=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])=>Gmt(s,k,A)):Gmt(s,m,g)}});function QOe(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=QOe(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=QOe(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 Gmt(t,n,s){const c=new Map;let d;for(const S of n.issues)if(S.code==="unrecognized_keys"){d??(d=S);for(const k of S.keys)c.has(k)||c.set(k,{}),c.get(k).l=!0}else t.issues.push(S);for(const S of s.issues)if(S.code==="unrecognized_keys")for(const k of S.keys)c.has(k)||c.set(k,{}),c.get(k).r=!0;else t.issues.push(S);const m=[...c].filter(([,S])=>S.l&&S.r).map(([S])=>S);if(m.length&&d&&t.issues.push({...d,keys:m}),MO(t))return t;const g=QOe(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 NEt=ui("$ZodTuple",(t,n)=>{vu.init(t,n);const s=n.items;t._zod.parse=(c,d)=>{const m=c.value;if(!Array.isArray(m))return c.issues.push({input:m,inst:t,expected:"tuple",code:"invalid_type"}),c;c.value=[];const g=[],S=[...s].reverse().findIndex(F=>F._zod.optin!=="optional"),k=S===-1?0:s.length-S;if(!n.rest){const F=m.length>s.length,D=m.length<k-1;if(F||D)return c.issues.push({...F?{code:"too_big",maximum:s.length,inclusive:!0}:{code:"too_small",minimum:s.length},input:m,inst:t,origin:"array"}),c}let A=-1;for(const F of s){if(A++,A>=m.length&&A>=k)continue;const D=F._zod.run({value:m[A],issues:[]},d);D instanceof Promise?g.push(D.then(J=>vpe(J,c,A))):vpe(D,c,A)}if(n.rest){const F=m.slice(s.length);for(const D of F){A++;const J=n.rest._zod.run({value:D,issues:[]},d);J instanceof Promise?g.push(J.then($=>vpe($,c,A))):vpe(J,c,A)}}return g.length?Promise.all(g).then(()=>c):c}});function vpe(t,n,s){t.issues.length&&n.issues.push(...mC(s,t.issues)),n.value[s]=t.value}const r2r=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"&&vLe.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}}),n2r=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])=>{Kmt(F,D,s,g,d,t,c)})):Kmt(k,A,s,g,d,t,c)}return m.length?Promise.all(m).then(()=>s):s}});function Kmt(t,n,s,c,d,m,g){t.issues.length&&(Lme.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&&(Lme.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 i2r=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=>Xmt(k,s))):Xmt(S,s)}return m.length?Promise.all(m).then(()=>s):s}});function Xmt(t,n){t.issues.length&&n.issues.push(...t.issues),n.value.add(t.value)}const o2r=ui("$ZodEnum",(t,n)=>{vu.init(t,n);const s=hLe(n.entries),c=new Set(s);t._zod.values=c,t._zod.pattern=new RegExp(`^(${s.filter(d=>Lme.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}}),s2r=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}}),a2r=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}}),c2r=ui("$ZodTransform",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new mLe(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 Ymt(t,n){return t.issues.length&&n===void 0?{issues:[],value:void 0}:t}const OEt=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(`^(${fye(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=>Ymt(m,s.value)):Ymt(d,s.value)}return s.value===void 0?s:n.innerType._zod.run(s,c)}}),l2r=ui("$ZodExactOptional",(t,n)=>{OEt.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)}),u2r=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(`^(${fye(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)}),f2r=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=>Zmt(m,n)):Zmt(d,n)}});function Zmt(t,n){return t.value===void 0&&(t.value=n.defaultValue),t}const d2r=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))}),p2r=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=>Qmt(m,t)):Qmt(d,t)}});function Qmt(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 _2r=ui("$ZodSuccess",(t,n)=>{vu.init(t,n),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new mLe("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)}}),m2r=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)}}),h2r=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)}),g2r=ui("$ZodPipe",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>n.in._zod.values),Gu(t._zod,"optin",()=>n.in._zod.optin),Gu(t._zod,"optout",()=>n.out._zod.optout),Gu(t._zod,"propValues",()=>n.in._zod.propValues),t._zod.parse=(s,c)=>{if(c.direction==="backward"){const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>bpe(g,n.in,c)):bpe(m,n.in,c)}const d=n.in._zod.run(s,c);return d instanceof Promise?d.then(m=>bpe(m,n.out,c)):bpe(d,n.out,c)}});function bpe(t,n,s){return t.issues.length?(t.aborted=!0,t):n._zod.run({value:t.value,issues:t.issues},s)}const REt=ui("$ZodCodec",(t,n)=>{vu.init(t,n),Gu(t._zod,"values",()=>n.in._zod.values),Gu(t._zod,"optin",()=>n.in._zod.optin),Gu(t._zod,"optout",()=>n.out._zod.optout),Gu(t._zod,"propValues",()=>n.in._zod.propValues),t._zod.parse=(s,c)=>{if((c.direction||"forward")==="forward"){const m=n.in._zod.run(s,c);return m instanceof Promise?m.then(g=>Spe(g,n,c)):Spe(m,n,c)}else{const m=n.out._zod.run(s,c);return m instanceof Promise?m.then(g=>Spe(g,n,c)):Spe(m,n,c)}}});function Spe(t,n,s){if(t.issues.length)return t.aborted=!0,t;if((s.direction||"forward")==="forward"){const d=n.transform(t.value,t);return d instanceof Promise?d.then(m=>xpe(t,m,n.out,s)):xpe(t,d,n.out,s)}else{const d=n.reverseTransform(t.value,t);return d instanceof Promise?d.then(m=>xpe(t,m,n.in,s)):xpe(t,d,n.in,s)}}function xpe(t,n,s,c){return t.issues.length?(t.aborted=!0,t):s._zod.run({value:n,issues:t.issues},c)}const y2r=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(eht):eht(d)}});function eht(t){return t.value=Object.freeze(t.value),t}const v2r=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||vCt.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)}),b2r=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?zmt(t._def.input,c):c,m=Reflect.apply(s,this,d);return t._def.output?zmt(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 Vmt(t._def.input,c):c,m=await Reflect.apply(s,this,d);return t._def.output?await Vmt(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 NEt({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)),S2r=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))}),x2r=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)}),w2r=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=>tht(m,s,c,t));tht(d,s,c,t)}});function tht(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 rht;const Zhn=Symbol("ZodOutput"),Qhn=Symbol("ZodInput");class T2r{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 C2r(){return new T2r}(rht=globalThis).__zod_globalRegistry??(rht.__zod_globalRegistry=C2r());const sD=globalThis.__zod_globalRegistry;function E2r(t,n){return new t({type:"string",...Jo(n)})}function egn(t,n){return new t({type:"string",coerce:!0,...Jo(n)})}function FEt(t,n){return new t({type:"string",format:"email",check:"string_format",abort:!1,...Jo(n)})}function eRe(t,n){return new t({type:"string",format:"guid",check:"string_format",abort:!1,...Jo(n)})}function MEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,...Jo(n)})}function jEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Jo(n)})}function LEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Jo(n)})}function BEt(t,n){return new t({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Jo(n)})}function SLe(t,n){return new t({type:"string",format:"url",check:"string_format",abort:!1,...Jo(n)})}function $Et(t,n){return new t({type:"string",format:"emoji",check:"string_format",abort:!1,...Jo(n)})}function qEt(t,n){return new t({type:"string",format:"nanoid",check:"string_format",abort:!1,...Jo(n)})}function zEt(t,n){return new t({type:"string",format:"cuid",check:"string_format",abort:!1,...Jo(n)})}function VEt(t,n){return new t({type:"string",format:"cuid2",check:"string_format",abort:!1,...Jo(n)})}function UEt(t,n){return new t({type:"string",format:"ulid",check:"string_format",abort:!1,...Jo(n)})}function JEt(t,n){return new t({type:"string",format:"xid",check:"string_format",abort:!1,...Jo(n)})}function WEt(t,n){return new t({type:"string",format:"ksuid",check:"string_format",abort:!1,...Jo(n)})}function HEt(t,n){return new t({type:"string",format:"ipv4",check:"string_format",abort:!1,...Jo(n)})}function GEt(t,n){return new t({type:"string",format:"ipv6",check:"string_format",abort:!1,...Jo(n)})}function k2r(t,n){return new t({type:"string",format:"mac",check:"string_format",abort:!1,...Jo(n)})}function KEt(t,n){return new t({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Jo(n)})}function XEt(t,n){return new t({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Jo(n)})}function YEt(t,n){return new t({type:"string",format:"base64",check:"string_format",abort:!1,...Jo(n)})}function ZEt(t,n){return new t({type:"string",format:"base64url",check:"string_format",abort:!1,...Jo(n)})}function QEt(t,n){return new t({type:"string",format:"e164",check:"string_format",abort:!1,...Jo(n)})}function ekt(t,n){return new t({type:"string",format:"jwt",check:"string_format",abort:!1,...Jo(n)})}const tgn={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function A2r(t,n){return new t({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Jo(n)})}function D2r(t,n){return new t({type:"string",format:"date",check:"string_format",...Jo(n)})}function P2r(t,n){return new t({type:"string",format:"time",check:"string_format",precision:null,...Jo(n)})}function I2r(t,n){return new t({type:"string",format:"duration",check:"string_format",...Jo(n)})}function N2r(t,n){return new t({type:"number",checks:[],...Jo(n)})}function rgn(t,n){return new t({type:"number",coerce:!0,checks:[],...Jo(n)})}function O2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...Jo(n)})}function R2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float32",...Jo(n)})}function F2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"float64",...Jo(n)})}function M2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"int32",...Jo(n)})}function j2r(t,n){return new t({type:"number",check:"number_format",abort:!1,format:"uint32",...Jo(n)})}function L2r(t,n){return new t({type:"boolean",...Jo(n)})}function ngn(t,n){return new t({type:"boolean",coerce:!0,...Jo(n)})}function B2r(t,n){return new t({type:"bigint",...Jo(n)})}function ign(t,n){return new t({type:"bigint",coerce:!0,...Jo(n)})}function $2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...Jo(n)})}function q2r(t,n){return new t({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...Jo(n)})}function z2r(t,n){return new t({type:"symbol",...Jo(n)})}function V2r(t,n){return new t({type:"undefined",...Jo(n)})}function U2r(t,n){return new t({type:"null",...Jo(n)})}function J2r(t){return new t({type:"any"})}function W2r(t){return new t({type:"unknown"})}function H2r(t,n){return new t({type:"never",...Jo(n)})}function G2r(t,n){return new t({type:"void",...Jo(n)})}function K2r(t,n){return new t({type:"date",...Jo(n)})}function ogn(t,n){return new t({type:"date",coerce:!0,...Jo(n)})}function X2r(t,n){return new t({type:"nan",...Jo(n)})}function ZZ(t,n){return new TEt({check:"less_than",...Jo(n),value:t,inclusive:!1})}function XI(t,n){return new TEt({check:"less_than",...Jo(n),value:t,inclusive:!0})}function QZ(t,n){return new CEt({check:"greater_than",...Jo(n),value:t,inclusive:!1})}function qk(t,n){return new CEt({check:"greater_than",...Jo(n),value:t,inclusive:!0})}function sgn(t){return QZ(0,t)}function agn(t){return ZZ(0,t)}function cgn(t){return XI(0,t)}function lgn(t){return qk(0,t)}function tRe(t,n){return new H1r({check:"multiple_of",...Jo(n),value:t})}function xLe(t,n){return new X1r({check:"max_size",...Jo(n),maximum:t})}function eQ(t,n){return new Y1r({check:"min_size",...Jo(n),minimum:t})}function tkt(t,n){return new Z1r({check:"size_equals",...Jo(n),size:t})}function rkt(t,n){return new Q1r({check:"max_length",...Jo(n),maximum:t})}function $me(t,n){return new ebr({check:"min_length",...Jo(n),minimum:t})}function nkt(t,n){return new tbr({check:"length_equals",...Jo(n),length:t})}function Y2r(t,n){return new rbr({check:"string_format",format:"regex",...Jo(n),pattern:t})}function Z2r(t){return new nbr({check:"string_format",format:"lowercase",...Jo(t)})}function Q2r(t){return new ibr({check:"string_format",format:"uppercase",...Jo(t)})}function eSr(t,n){return new obr({check:"string_format",format:"includes",...Jo(n),includes:t})}function tSr(t,n){return new sbr({check:"string_format",format:"starts_with",...Jo(n),prefix:t})}function rSr(t,n){return new abr({check:"string_format",format:"ends_with",...Jo(n),suffix:t})}function ugn(t,n,s){return new cbr({check:"property",property:t,schema:n,...Jo(s)})}function nSr(t,n){return new lbr({check:"mime_type",mime:t,...Jo(n)})}function M$(t){return new ubr({check:"overwrite",tx:t})}function iSr(t){return M$(n=>n.normalize(t))}function oSr(){return M$(t=>t.trim())}function sSr(){return M$(t=>t.toLowerCase())}function aSr(){return M$(t=>t.toUpperCase())}function cSr(){return M$(t=>gCt(t))}function lSr(t,n,s){return new t({type:"array",element:n,...Jo(s)})}function fgn(t,n,s){return new t({type:"union",options:n,...Jo(s)})}function dgn(t,n,s){return new t({type:"union",options:n,inclusive:!1,...Jo(s)})}function pgn(t,n,s,c){return new t({type:"union",options:s,discriminator:n,...Jo(c)})}function _gn(t,n,s){return new t({type:"intersection",left:n,right:s})}function mgn(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 hgn(t,n,s,c){return new t({type:"record",keyType:n,valueType:s,...Jo(c)})}function ggn(t,n,s,c){return new t({type:"map",keyType:n,valueType:s,...Jo(c)})}function ygn(t,n,s){return new t({type:"set",valueType:n,...Jo(s)})}function vgn(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 bgn(t,n,s){return new t({type:"enum",entries:n,...Jo(s)})}function Sgn(t,n,s){return new t({type:"literal",values:Array.isArray(n)?n:[n],...Jo(s)})}function uSr(t,n){return new t({type:"file",...Jo(n)})}function xgn(t,n){return new t({type:"transform",transform:n})}function wgn(t,n){return new t({type:"optional",innerType:n})}function Tgn(t,n){return new t({type:"nullable",innerType:n})}function Cgn(t,n,s){return new t({type:"default",innerType:n,get defaultValue(){return typeof s=="function"?s():dye(s)}})}function Egn(t,n,s){return new t({type:"nonoptional",innerType:n,...Jo(s)})}function kgn(t,n){return new t({type:"success",innerType:n})}function Agn(t,n,s){return new t({type:"catch",innerType:n,catchValue:typeof s=="function"?s:()=>s})}function Dgn(t,n,s){return new t({type:"pipe",in:n,out:s})}function Pgn(t,n){return new t({type:"readonly",innerType:n})}function Ign(t,n,s){return new t({type:"template_literal",parts:n,...Jo(s)})}function Ngn(t,n){return new t({type:"lazy",getter:n})}function Ogn(t,n){return new t({type:"promise",innerType:n})}function fSr(t,n,s){const c=Jo(s);return c.abort??(c.abort=!0),new t({type:"custom",check:"custom",fn:n,...c})}function dSr(t,n,s){return new t({type:"custom",check:"custom",fn:n,...Jo(s)})}function pSr(t){const n=_Sr(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 _Sr(t,n){const s=new eh({check:"custom",...Jo(n)});return s._zod.check=t,s}function mSr(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 hSr(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 gSr(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??REt,k=t.Boolean??AEt,A=t.String??bye,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 Sye(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 qme(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 zme(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 Vme(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:Ume(n,"input",t.processors),output:Ume(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 ySr=(t,n={})=>s=>{const c=qme({...s,processors:n});return F_(t,c),zme(c,t),Vme(c,t)},Ume=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=qme({...d??{},target:m,io:n,processors:s});return F_(t,g),zme(g,t),Vme(g,t)},vSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ikt=(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=vSr[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}))])}},okt=(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)},skt=(t,n,s,c)=>{s.type="boolean"},akt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},lkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},ukt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},fkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},dkt=(t,n,s,c)=>{s.not={}},pkt=(t,n,s,c)=>{},_kt=(t,n,s,c)=>{},mkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},hkt=(t,n,s,c)=>{const d=t._zod.def,m=hLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},gkt=(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},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},vkt=(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},bkt=(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)},Skt=(t,n,s,c)=>{s.type="boolean"},xkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},wkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Tkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Ekt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},kkt=(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"]})},Akt=(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)},wLe=(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},Dkt=(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},Pkt=(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)},Ikt=(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)}},Nkt=(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"}]},Okt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Rkt=(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))},Fkt=(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)))},Mkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType;let g;try{g=d.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},jkt=(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},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.readOnly=!0},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},TLe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},$kt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},nht={string:ikt,number:okt,boolean:skt,bigint:akt,symbol:ckt,null:lkt,undefined:ukt,void:fkt,never:dkt,any:pkt,unknown:_kt,date:mkt,enum:hkt,literal:gkt,nan:ykt,template_literal:vkt,file:bkt,success:Skt,custom:xkt,function:wkt,transform:Tkt,map:Ckt,set:Ekt,array:kkt,object:Akt,union:wLe,intersection:Dkt,tuple:Pkt,record:Ikt,nullable:Nkt,nonoptional:Okt,default:Rkt,prefault:Fkt,catch:Mkt,pipe:jkt,readonly:Lkt,promise:Bkt,optional:TLe,lazy:$kt};function bSr(t,n){if("_idmap"in t){const c=t,d=qme({...n,processors:nht}),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;zme(d,F),g[A]=Vme(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=qme({...n,processors:nht});return F_(t,s),zme(s,t),Vme(s,t)}const qkt=ui("ZodISODateTime",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function zkt(t){return A2r(qkt,t)}const Vkt=ui("ZodISODate",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function Ukt(t){return D2r(Vkt,t)}const Jkt=ui("ZodISOTime",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function Wkt(t){return P2r(Jkt,t)}const Hkt=ui("ZodISODuration",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function Gkt(t){return I2r(Hkt,t)}const Rgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Vkt,ZodISODateTime:qkt,ZodISODuration:Hkt,ZodISOTime:Jkt,date:Ukt,datetime:zkt,duration:Gkt,time:Wkt},Symbol.toStringTag,{value:"Module"})),Kkt=(t,n)=>{RCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>y1r(t,s)},flatten:{value:s=>g1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,jme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,jme,2)}},isEmpty:{get(){return t.issues.length===0}}})},Fgn=ui("ZodError",Kkt),Fw=ui("ZodError",Kkt,{Parent:Error}),SSr=mye(Fw),xSr=hye(Fw),wSr=gye(Fw),TSr=yye(Fw),CSr=FCt(Fw),ESr=MCt(Fw),kSr=jCt(Fw),ASr=LCt(Fw),DSr=BCt(Fw),PSr=$Ct(Fw),ISr=qCt(Fw),NSr=zCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:Ume(t,"input"),output:Ume(t,"output")}}),t.toJSONSchema=ySr(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)=>SSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>wSr(t,s,c),t.parseAsync=async(s,c)=>xSr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>TSr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>CSr(t,s,c),t.decode=(s,c)=>ESr(t,s,c),t.encodeAsync=async(s,c)=>kSr(t,s,c),t.decodeAsync=async(s,c)=>ASr(t,s,c),t.safeEncode=(s,c)=>DSr(t,s,c),t.safeDecode=(s,c)=>PSr(t,s,c),t.safeEncodeAsync=async(s,c)=>ISr(t,s,c),t.safeDecodeAsync=async(s,c)=>NSr(t,s,c),t.refine=(s,c)=>t.check(MAt(s,c)),t.superRefine=s=>t.check(jAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Hme(t),t.exactOptional=()=>yAt(t),t.nullable=()=>Gme(t),t.nullish=()=>Hme(Gme(t)),t.nonoptional=s=>TAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>GLe(t,s),t.transform=s=>Kme(t,KLe(s)),t.default=s=>SAt(t,s),t.prefault=s=>wAt(t,s),t.catch=s=>kAt(t,s),t.pipe=s=>Kme(t,s),t.readonly=()=>PAt(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)),CLe=ui("_ZodString",(t,n)=>{bye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ikt(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(Y2r(...c)),t.includes=(...c)=>t.check(eSr(...c)),t.startsWith=(...c)=>t.check(tSr(...c)),t.endsWith=(...c)=>t.check(rSr(...c)),t.min=(...c)=>t.check($me(...c)),t.max=(...c)=>t.check(rkt(...c)),t.length=(...c)=>t.check(nkt(...c)),t.nonempty=(...c)=>t.check($me(1,...c)),t.lowercase=c=>t.check(Z2r(c)),t.uppercase=c=>t.check(Q2r(c)),t.trim=()=>t.check(oSr()),t.normalize=(...c)=>t.check(iSr(...c)),t.toLowerCase=()=>t.check(sSr()),t.toUpperCase=()=>t.check(aSr()),t.slugify=()=>t.check(cSr())}),ELe=ui("ZodString",(t,n)=>{bye.init(t,n),CLe.init(t,n),t.email=s=>t.check(FEt(kLe,s)),t.url=s=>t.check(SLe(xye,s)),t.jwt=s=>t.check(ekt(zLe,s)),t.emoji=s=>t.check($Et(ALe,s)),t.guid=s=>t.check(eRe(Jme,s)),t.uuid=s=>t.check(MEt(aD,s)),t.uuidv4=s=>t.check(jEt(aD,s)),t.uuidv6=s=>t.check(LEt(aD,s)),t.uuidv7=s=>t.check(BEt(aD,s)),t.nanoid=s=>t.check(qEt(DLe,s)),t.guid=s=>t.check(eRe(Jme,s)),t.cuid=s=>t.check(zEt(PLe,s)),t.cuid2=s=>t.check(VEt(ILe,s)),t.ulid=s=>t.check(UEt(NLe,s)),t.base64=s=>t.check(YEt(BLe,s)),t.base64url=s=>t.check(ZEt($Le,s)),t.xid=s=>t.check(JEt(OLe,s)),t.ksuid=s=>t.check(WEt(RLe,s)),t.ipv4=s=>t.check(HEt(FLe,s)),t.ipv6=s=>t.check(GEt(MLe,s)),t.cidrv4=s=>t.check(KEt(jLe,s)),t.cidrv6=s=>t.check(XEt(LLe,s)),t.e164=s=>t.check(QEt(qLe,s)),t.datetime=s=>t.check(zkt(s)),t.date=s=>t.check(Ukt(s)),t.time=s=>t.check(Wkt(s)),t.duration=s=>t.check(Gkt(s))});function bo(t){return E2r(ELe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),CLe.init(t,n)}),kLe=ui("ZodEmail",(t,n)=>{mbr.init(t,n),j_.init(t,n)});function OSr(t){return FEt(kLe,t)}const Jme=ui("ZodGUID",(t,n)=>{pbr.init(t,n),j_.init(t,n)});function RSr(t){return eRe(Jme,t)}const aD=ui("ZodUUID",(t,n)=>{_br.init(t,n),j_.init(t,n)});function FSr(t){return MEt(aD,t)}function MSr(t){return jEt(aD,t)}function jSr(t){return LEt(aD,t)}function LSr(t){return BEt(aD,t)}const xye=ui("ZodURL",(t,n)=>{hbr.init(t,n),j_.init(t,n)});function BSr(t){return SLe(xye,t)}function $Sr(t){return SLe(xye,{protocol:/^https?$/,hostname:aEt,...Jo(t)})}const ALe=ui("ZodEmoji",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function qSr(t){return $Et(ALe,t)}const DLe=ui("ZodNanoID",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function zSr(t){return qEt(DLe,t)}const PLe=ui("ZodCUID",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function VSr(t){return zEt(PLe,t)}const ILe=ui("ZodCUID2",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function USr(t){return VEt(ILe,t)}const NLe=ui("ZodULID",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function JSr(t){return UEt(NLe,t)}const OLe=ui("ZodXID",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function WSr(t){return JEt(OLe,t)}const RLe=ui("ZodKSUID",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return WEt(RLe,t)}const FLe=ui("ZodIPv4",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function GSr(t){return HEt(FLe,t)}const Xkt=ui("ZodMAC",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function KSr(t){return k2r(Xkt,t)}const MLe=ui("ZodIPv6",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function XSr(t){return GEt(MLe,t)}const jLe=ui("ZodCIDRv4",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function YSr(t){return KEt(jLe,t)}const LLe=ui("ZodCIDRv6",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function ZSr(t){return XEt(LLe,t)}const BLe=ui("ZodBase64",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function QSr(t){return YEt(BLe,t)}const $Le=ui("ZodBase64URL",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function exr(t){return ZEt($Le,t)}const qLe=ui("ZodE164",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function txr(t){return QEt(qLe,t)}const zLe=ui("ZodJWT",(t,n)=>{Lbr.init(t,n),j_.init(t,n)});function rxr(t){return ekt(zLe,t)}const mee=ui("ZodCustomStringFormat",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function nxr(t,n,s={}){return Sye(mee,t,n,s)}function ixr(t){return Sye(mee,"hostname",sEt,t)}function oxr(t){return Sye(mee,"hex",xEt,t)}function sxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=W1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return Sye(mee,c,d,n)}const VLe=ui("ZodNumber",(t,n)=>{kEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>okt(t,c,d),t.gt=(c,d)=>t.check(QZ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(ZZ(c,d)),t.lte=(c,d)=>t.check(XI(c,d)),t.max=(c,d)=>t.check(XI(c,d)),t.int=c=>t.check(rRe(c)),t.safe=c=>t.check(rRe(c)),t.positive=c=>t.check(QZ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(ZZ(0,c)),t.nonpositive=c=>t.check(XI(0,c)),t.multipleOf=(c,d)=>t.check(tRe(c,d)),t.step=(c,d)=>t.check(tRe(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 N2r(VLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{$br.init(t,n),VLe.init(t,n)});function rRe(t){return O2r(j$,t)}function axr(t){return R2r(j$,t)}function cxr(t){return F2r(j$,t)}function lxr(t){return M2r(j$,t)}function uxr(t){return j2r(j$,t)}const ULe=ui("ZodBoolean",(t,n)=>{AEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>skt(t,s,c)});function _y(t){return L2r(ULe,t)}const JLe=ui("ZodBigInt",(t,n)=>{DEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>akt(t,c),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.gt=(c,d)=>t.check(QZ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(ZZ(c,d)),t.lte=(c,d)=>t.check(XI(c,d)),t.max=(c,d)=>t.check(XI(c,d)),t.positive=c=>t.check(QZ(BigInt(0),c)),t.negative=c=>t.check(ZZ(BigInt(0),c)),t.nonpositive=c=>t.check(XI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(tRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function fxr(t){return B2r(JLe,t)}const WLe=ui("ZodBigIntFormat",(t,n)=>{qbr.init(t,n),JLe.init(t,n)});function dxr(t){return $2r(WLe,t)}function pxr(t){return q2r(WLe,t)}const Ykt=ui("ZodSymbol",(t,n)=>{zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ckt(t,s)});function _xr(t){return z2r(Ykt,t)}const Zkt=ui("ZodUndefined",(t,n)=>{Vbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ukt(t,s)});function mxr(t){return V2r(Zkt,t)}const Qkt=ui("ZodNull",(t,n)=>{Ubr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>lkt(t,s,c)});function eAt(t){return U2r(Qkt,t)}const tAt=ui("ZodAny",(t,n)=>{Jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt()});function hxr(){return J2r(tAt)}const rAt=ui("ZodUnknown",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt()});function t$(){return W2r(rAt)}const nAt=ui("ZodNever",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s,c)});function HLe(t){return H2r(nAt,t)}const iAt=ui("ZodVoid",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>fkt(t,s)});function gxr(t){return G2r(iAt,t)}const oAt=ui("ZodDate",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>mkt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(XI(c,d));const s=t._zod.bag;t.minDate=s.minimum?new Date(s.minimum):null,t.maxDate=s.maximum?new Date(s.maximum):null});function yxr(t){return K2r(oAt,t)}const sAt=ui("ZodArray",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check($me(s,c)),t.nonempty=s=>t.check($me(1,s)),t.max=(s,c)=>t.check(rkt(s,c)),t.length=(s,c)=>t.check(nkt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return lSr(sAt,t,n)}function vxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const wye=ui("ZodObject",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(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:HLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>ECt(t,s),t.safeExtend=s=>kCt(t,s),t.merge=s=>ACt(t,s),t.pick=s=>TCt(t,s),t.omit=s=>CCt(t,s),t.partial=(...s)=>DCt(XLe,t,s[0]),t.required=(...s)=>PCt(YLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new wye(s)}function bxr(t,n){return new wye({type:"object",shape:t,catchall:HLe(),...Jo(n)})}function Sxr(t,n){return new wye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Tye=ui("ZodUnion",(t,n)=>{bLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wLe(t,s,c,d),t.options=n.options});function AR(t,n){return new Tye({type:"union",options:t,...Jo(n)})}const aAt=ui("ZodXor",(t,n)=>{Tye.init(t,n),Qbr.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wLe(t,s,c,d),t.options=n.options});function xxr(t,n){return new aAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const cAt=ui("ZodDiscriminatedUnion",(t,n)=>{Tye.init(t,n),e2r.init(t,n)});function lAt(t,n,s){return new cAt({type:"union",options:n,discriminator:t,...Jo(s)})}const uAt=ui("ZodIntersection",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s,c,d)});function GLe(t,n){return new uAt({type:"intersection",left:t,right:n})}const fAt=ui("ZodTuple",(t,n)=>{NEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Wme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new fAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Cye=ui("ZodRecord",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Cye({type:"record",keyType:t,valueType:n,...Jo(s)})}function wxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Cye({type:"record",keyType:c,valueType:n,...Jo(s)})}function Txr(t,n,s){return new Cye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const dAt=ui("ZodMap",(t,n)=>{n2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(xLe(...s)),t.size=(...s)=>t.check(tkt(...s))});function Cxr(t,n,s){return new dAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const pAt=ui("ZodSet",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s),t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(xLe(...s)),t.size=(...s)=>t.check(tkt(...s))});function Exr(t,n){return new pAt({type:"set",valueType:t,...Jo(n)})}const tQ=ui("ZodEnum",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>hkt(t,c,d),t.enum=n.entries,t.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));t.extract=(c,d)=>{const m={};for(const g of c)if(s.has(g))m[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new tQ({...n,checks:[],...Jo(d),entries:m})},t.exclude=(c,d)=>{const m={...n.entries};for(const g of c)if(s.has(g))delete m[g];else throw new Error(`Key ${g} not found in enum`);return new tQ({...n,checks:[],...Jo(d),entries:m})}});function ed(t,n){const s=Array.isArray(t)?Object.fromEntries(t.map(c=>[c,c])):t;return new tQ({type:"enum",entries:s,...Jo(n)})}function kxr(t,n){return new tQ({type:"enum",entries:t,...Jo(n)})}const _At=ui("ZodLiteral",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt(t,s,c),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Dg(t,n){return new _At({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const mAt=ui("ZodFile",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt(t,s,c),t.min=(s,c)=>t.check(eQ(s,c)),t.max=(s,c)=>t.check(xLe(s,c)),t.mime=(s,c)=>t.check(nSr(Array.isArray(s)?s:[s],c))});function Axr(t){return uSr(mAt,t)}const hAt=ui("ZodTransform",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new mLe(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 KLe(t){return new hAt({type:"transform",transform:t})}const XLe=ui("ZodOptional",(t,n)=>{OEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>TLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Hme(t){return new XLe({type:"optional",innerType:t})}const gAt=ui("ZodExactOptional",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>TLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function yAt(t){return new gAt({type:"optional",innerType:t})}const vAt=ui("ZodNullable",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new vAt({type:"nullable",innerType:t})}function Dxr(t){return Hme(Gme(t))}const bAt=ui("ZodDefault",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function SAt(t,n){return new bAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():dye(n)}})}const xAt=ui("ZodPrefault",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function wAt(t,n){return new xAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():dye(n)}})}const YLe=ui("ZodNonOptional",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function TAt(t,n){return new YLe({type:"nonoptional",innerType:t,...Jo(n)})}const CAt=ui("ZodSuccess",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Pxr(t){return new CAt({type:"success",innerType:t})}const EAt=ui("ZodCatch",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function kAt(t,n){return new EAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const AAt=ui("ZodNaN",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt(t,s)});function Ixr(t){return X2r(AAt,t)}const ZLe=ui("ZodPipe",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.in=n.in,t.out=n.out});function Kme(t,n){return new ZLe({type:"pipe",in:t,out:n})}const QLe=ui("ZodCodec",(t,n)=>{ZLe.init(t,n),REt.init(t,n)});function Nxr(t,n,s){return new QLe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const DAt=ui("ZodReadonly",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function PAt(t){return new DAt({type:"readonly",innerType:t})}const IAt=ui("ZodTemplateLiteral",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>vkt(t,s,c)});function Oxr(t,n){return new IAt({type:"template_literal",parts:t,...Jo(n)})}const NAt=ui("ZodLazy",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function OAt(t){return new NAt({type:"lazy",getter:t})}const RAt=ui("ZodPromise",(t,n)=>{S2r.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 Rxr(t){return new RAt({type:"promise",innerType:t})}const FAt=ui("ZodFunction",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s)});function iht(t){return new FAt({type:"function",input:Array.isArray(t?.input)?Wme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const Eye=ui("ZodCustom",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(t,s)});function Fxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function YI(t,n){return fSr(Eye,t??(()=>!0),n)}function MAt(t,n={}){return dSr(Eye,t,n)}function jAt(t){return pSr(t)}const Mxr=mSr,jxr=hSr;function Lxr(t,n={}){const s=new Eye({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 Bxr=(...t)=>gSr({Codec:QLe,Boolean:ULe,String:ELe},...t);function $xr(t){const n=OAt(()=>AR([bo(t),fu(),_y(),eAt(),Gd(n),wD(bo(),n)]));return n}function LAt(t,n){return Kme(KLe(t),n)}const Mgn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:tAt,ZodArray:sAt,ZodBase64:BLe,ZodBase64URL:$Le,ZodBigInt:JLe,ZodBigIntFormat:WLe,ZodBoolean:ULe,ZodCIDRv4:jLe,ZodCIDRv6:LLe,ZodCUID:PLe,ZodCUID2:ILe,ZodCatch:EAt,ZodCodec:QLe,ZodCustom:Eye,ZodCustomStringFormat:mee,ZodDate:oAt,ZodDefault:bAt,ZodDiscriminatedUnion:cAt,ZodE164:qLe,ZodEmail:kLe,ZodEmoji:ALe,ZodEnum:tQ,ZodExactOptional:gAt,ZodFile:mAt,ZodFunction:FAt,ZodGUID:Jme,ZodIPv4:FLe,ZodIPv6:MLe,ZodIntersection:uAt,ZodJWT:zLe,ZodKSUID:RLe,ZodLazy:NAt,ZodLiteral:_At,ZodMAC:Xkt,ZodMap:dAt,ZodNaN:AAt,ZodNanoID:DLe,ZodNever:nAt,ZodNonOptional:YLe,ZodNull:Qkt,ZodNullable:vAt,ZodNumber:VLe,ZodNumberFormat:j$,ZodObject:wye,ZodOptional:XLe,ZodPipe:ZLe,ZodPrefault:xAt,ZodPromise:RAt,ZodReadonly:DAt,ZodRecord:Cye,ZodSet:pAt,ZodString:ELe,ZodStringFormat:j_,ZodSuccess:CAt,ZodSymbol:Ykt,ZodTemplateLiteral:IAt,ZodTransform:hAt,ZodTuple:fAt,ZodType:Lu,ZodULID:NLe,ZodURL:xye,ZodUUID:aD,ZodUndefined:Zkt,ZodUnion:Tye,ZodUnknown:rAt,ZodVoid:iAt,ZodXID:OLe,ZodXor:aAt,_ZodString:CLe,_default:SAt,_function:iht,any:hxr,array:Gd,base64:QSr,base64url:exr,bigint:fxr,boolean:_y,catch:kAt,check:Fxr,cidrv4:YSr,cidrv6:ZSr,codec:Nxr,cuid:VSr,cuid2:USr,custom:YI,date:yxr,describe:Mxr,discriminatedUnion:lAt,e164:txr,email:OSr,emoji:qSr,enum:ed,exactOptional:yAt,file:Axr,float32:axr,float64:cxr,function:iht,guid:RSr,hash:sxr,hex:oxr,hostname:ixr,httpUrl:$Sr,instanceof:Lxr,int:rRe,int32:lxr,int64:dxr,intersection:GLe,ipv4:GSr,ipv6:XSr,json:$xr,jwt:rxr,keyof:vxr,ksuid:HSr,lazy:OAt,literal:Dg,looseObject:Sxr,looseRecord:Txr,mac:KSr,map:Cxr,meta:jxr,nan:Ixr,nanoid:zSr,nativeEnum:kxr,never:HLe,nonoptional:TAt,null:eAt,nullable:Gme,nullish:Dxr,number:fu,object:Pa,optional:Hme,partialRecord:wxr,pipe:Kme,prefault:wAt,preprocess:LAt,promise:Rxr,readonly:PAt,record:wD,refine:MAt,set:Exr,strictObject:bxr,string:bo,stringFormat:nxr,stringbool:Bxr,success:Pxr,superRefine:jAt,symbol:_xr,templateLiteral:Oxr,transform:KLe,tuple:Wme,uint32:uxr,uint64:pxr,ulid:JSr,undefined:mxr,union:AR,unknown:t$,url:BSr,uuid:FSr,uuidv4:MSr,uuidv6:jSr,uuidv7:LSr,void:gxr,xid:WSr,xor:xxr},Symbol.toStringTag,{value:"Module"})),oht={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function jgn(t){$S({customError:t})}function Lgn(){return $S().customError}var sht;sht||(sht={});const aht=ed(["mock","live"]),qxr=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()}),zxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Vxr=Pa({overageEnabled:_y(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:_y(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Uxr=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()}),Jxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Wxr=Pa({name:bo().min(1),verified:_y(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Hxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Wxr).max(50)}),Gxr=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 Kxr=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()}))}),Xxr=lAt("authenticated",[Pa({authenticated:Dg(!1),backend:aht}),Pa({authenticated:Dg(!0),backend:aht,user:Jxr,organizations:Gd(Hxr).max(100).optional(),plan:qxr,credits:zxr,spendPolicy:Vxr,alerts:Gd(Uxr).max(100).optional(),entitlements:Pa({generation:_y(),dailyJobs:fu().int().positive().optional()})})]),Yxr=ed(["auto","mock","managed","byok"]),BAt=ed(["fal","tripo","worldlabs","openrouter"]),Zxr=Pa({enabled:_y(),provider:Dg("openrouter"),model:bo().trim().min(1).max(256)}),Qxr=ed(["environment","system","session","none"]),ewr=Pa({provider:BAt,label:bo().min(1),environmentVariable:bo().min(1),configured:_y(),source:Qxr,editable:_y(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),twr=Pa({provider:BAt,ok:Dg(!0),testedAt:bo().datetime()});function rwr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const kye=GLe(Xxr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Dg(!0),managed:_y(),byok:_y(),byokProviders:Gd(bo().min(1))}),preferredRoute:Yxr,providerCredentials:Gd(ewr),codingInference:Zxr}));function nwr(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(nwr(n,s))}function CN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return CN(t,n),await t.json()}const cht="volter.collaboration.participant.v1",iwr="volter.collaboration.remote-share.v1",nRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function owr(){if(nRe?.participantId)return nRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(cht);if(n)return n;globalThis.localStorage?.setItem(cht,t)}catch{}return t}const $At=owr(),L$=(()=>{try{return globalThis.localStorage?.getItem(iwr)==="1"}catch{return!1}})(),swr=nRe?.displayName||"Local editor",awr=Symbol.for("volter.collaboration.revision"),iRe=globalThis[awr]??={value:0};function qAt(t){Number.isInteger(t)&&t>=iRe.value&&(iRe.value=t)}function Dw(){return{participantId:$At,expectedRevision:iRe.value}}const cwr={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$=cwr,zAt=0,oRe=null;const sRe=new Set;function lR(t,n=null){if(!(oRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,oRe=n,zAt++;for(const s of sRe)s()}}async function VAt(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 kye.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 VAt(c,`${n} ${t} failed`);return lR(d),d}function eBe(){return r$}function tBe(){return rwr(r$)}function cN(){return zAt}function wpe(){return oRe}function Aye(t){return sRe.add(t),()=>sRe.delete(t)}async function lht(){try{const t=await VAt(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 lwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),uwr=t=>NC("/__editor/account/twin-session","POST",{email:t}),fwr=()=>NC("/__editor/account/session","DELETE"),dwr=t=>NC("/__editor/account/spend-policy","PUT",t),pwr=()=>NC("/__editor/account/alerts/read","POST"),_wr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),mwr=t=>NC("/__editor/account/coding-inference","PUT",t);async function hwr(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 gwr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),ywr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function vwr(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 twr.parse(s)}const uht=t=>NC("/__editor/account/plan","PUT",{action:t});async function UAt(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(kye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const bwr=t=>UAt("/__editor/account/checkout",{plan:t}),Swr=t=>UAt("/__editor/account/credits",{packId:t});async function xwr(){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 Gxr.array().parse(n.entries??[])}async function wwr(){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 Kxr.parse(n)}async function Twr(){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 Cwr(){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 Ewr(){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 kwr(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(kye.parse(s.account)),!0}async function Awr(){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 Dwr(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(kye.parse(s.account)),!0}function Pwr(){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))):lht().catch(()=>{});const n=window.setInterval(()=>void lht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function JAt(t){return t?HAt(t)?null:t:null}function Iwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function WAt(t){return t&&HAt(t)?t:null}function HAt(t){return t.keyedBy==="display"}const Bgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:WAt,nodeKeyedPhysics:JAt,physicsOwnerOf:Iwr},Symbol.toStringTag,{value:"Module"})),Nwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},rBe=Object.keys(Nwr);function Owr(){const t={};for(const n of rBe)t[n]=0;return t}const Rwr={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},nBe=Object.keys(Rwr);function Fwr(t){const n={};for(const s of nBe)n[s]=t[s]!==void 0;return n}const $gn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:nBe,WRITE_ANCHOR_KINDS:rBe,emptyWriteAnchorKindCounts:Owr,measureAuthoringProviders:Fwr},Symbol.toStringTag,{value:"Module"})),Mwr=["claim","shape","operation","effect","round-trip"],Xme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function GAt(t,n){return Xme[t]>=Xme[n]}function rQ(t){const{seam:n,subject:s,epoch:c,required:d}=t;if(t.notApplicable!==void 0)return{seam:n,subject:s,epoch:c,required:d,state:"not-applicable",receipt:null,detail:t.notApplicable};let m=null;for(const g of t.receipts)g.seam!==n||g.subject!==s||g.epoch!==c||(!m||Xme[g.stage]>=Xme[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}:GAt(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 KAt{#e=[];record(n){if(!n.seam||!n.subject||!n.epoch||!n.detail.trim())throw new Error("seam evidence requires non-empty seam, subject, epoch, and detail");this.#e.push(n)}receipts(n){return this.#e.filter(s=>(n?.subject===void 0||s.subject===n.subject)&&(n?.epoch===void 0||s.epoch===n.epoch))}verdict(n){return rQ({...n,receipts:this.#e})}clearSubject(n){for(let s=this.#e.length-1;s>=0;s-=1)this.#e[s]?.subject===n&&this.#e.splice(s,1)}clear(){this.#e.length=0}}function Ip(){return t=>t}function jwr(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(jwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Yme(t){const n=rQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=rQ({seam:`${t.seam}.${s}`,subject:t.subject,epoch:t.epoch,required:c.required,receipts:t.receipts});if(!(c.optional&&d.state==="absent")){if(d.state==="failed"||d.state==="absent")return{...n,state:"failed",receipt:d.receipt,detail:`${t.seam} is malformed: ${d.detail}`};if(d.state!=="verified")return{...n,state:"unverified",detail:`${t.seam} has the required shape, but ${d.seam} is unverified: ${d.detail}`}}}return n}const qgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:Mwr,SeamEvidenceLedger:KAt,defineSeamShape:Ip,gradeSeamCarrier:Yme,gradeSeamEvidence:rQ,inspectSeamShape:vB,seamStageAtLeast:GAt},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"}}),aRe=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"}}),XAt=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),YAt=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"}}),ZAt=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"}}),QAt=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),e3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),t3t=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"}}),r3t=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"}}),n3t=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"}}),i3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),o3t=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"}}),s3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),a3t=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"}}),c3t=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"}}),l3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),u3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),f3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),d3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),cRe={selection:XAt,transforms:YAt,inspector:ZAt,assetSubject:QAt,related:e3t,instances:t3t,structure:r3t,persistence:n3t,pickable:i3t,rects:a3t,boxEdit:c3t,text:l3t,colorSample:u3t,stories:o3t,truth:f3t,spatialHandles:d3t,assetDrop:s3t},zgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:s3t,ASSET_SUBJECT_PROVIDER_SHAPE:QAt,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:cRe,BOX_EDIT_PROVIDER_SHAPE:c3t,COLOR_SAMPLE_PROVIDER_SHAPE:u3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:t3t,HIERARCHY_PROVIDER_SHAPE:aRe,INSPECTOR_PROVIDER_SHAPE:ZAt,PERSISTENCE_PROVIDER_SHAPE:n3t,PICK_PROVIDER_SHAPE:i3t,RECT_PROVIDER_SHAPE:a3t,RELATED_SUBJECTS_PROVIDER_SHAPE:e3t,SELECTION_PROVIDER_SHAPE:XAt,SPATIAL_HANDLES_PROVIDER_SHAPE:d3t,STORIES_PROVIDER_SHAPE:o3t,STRUCTURE_PROVIDER_SHAPE:r3t,TEXT_PROVIDER_SHAPE:l3t,TRANSFORM_PROVIDER_SHAPE:YAt,TRUTH_PROVIDER_SHAPE:f3t},Symbol.toStringTag,{value:"Module"})),lRe=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"}}),p3t=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"}}),_3t=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"}}),m3t=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"}}),h3t=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"}}),g3t=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"}}),y3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),v3t=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"}}),b3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),S3t={networking:m3t,navigation:h3t,audio:g3t,camera:y3t,debug:v3t,renderDebug:b3t},Vgn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:g3t,CAMERA_ADAPTER_SHAPE:y3t,DEBUG_ADAPTER_SHAPE:v3t,NAVIGATION_ADAPTER_SHAPE:h3t,NETWORKING_ADAPTER_SHAPE:m3t,PHYSICS_2D_ADAPTER_SHAPE:_3t,PHYSICS_ADAPTER_SHAPE:p3t,RENDER_DEBUG_ADAPTER_SHAPE:b3t,SYSTEM_ADAPTERS_SHAPE:lRe,SYSTEM_PROVIDER_SHAPES:S3t},Symbol.toStringTag,{value:"Module"})),iBe=new KAt;function Lwr(t){iBe.record(t)}const fht=new WeakMap;let Bwr=1;function x3t(t){const n=fht.get(t);if(n)return n;const s=`system-${Bwr++}`;return fht.set(t,s),s}function $wr(t){const n=t.epoch??x3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?WAt(t.adapter)?_3t:p3t:S3t[t.slot],m=[...vB({prefix:"system",value:c,shape:lRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...iBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Yme({seam:s,subject:t.subject,epoch:n,required:lRe[t.slot].required,receipts:m,shape:d})}let qS={},nQ=null,oBe=null;const Zme=new Set,Qme=new Set,uRe=new Set;let sBe=0;function fRe(){for(const t of uRe)t()}function ehe(t){if(t!==Pye())for(const n of Zme)n()}function the(t,n){const s=Nye();if(!(t===Iye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){sBe++;for(const c of Qme)c()}}const LS=new Map;let S_e=null,w3t=0;const dRe=new Set,aBe="";function T3t(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=$wr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function ZI(){return S_e!==null&&LS.has(S_e)?S_e:LS.keys().next().value??null}function rhe(){w3t++;for(const t of dRe)t()}function qwr(t){const n=ZI();if(S_e=t,n!==ZI()){rhe(),sBe++;for(const s of Zme)s();for(const s of Qme)s()}}function Ugn(){return ZI()}function zwr(t){return dRe.add(t),()=>dRe.delete(t)}function Jgn(){return w3t}function Dye(){const t=ZI();return(t===null?void 0:LS.get(t))??qS}function Vwr(t,n=aBe){const s=ZI(),c=Pye(),d=Iye(),m=Nye();if(t){T3t(t,n),LS.set(n,t),qS=t,ehe(c),the(d,m),fRe(),s!==ZI()&&rhe();return}LS.delete(n),qS=LS.values().next().value??{},ehe(c),the(d,m),fRe(),s!==ZI()&&rhe()}function Uwr(){for(const t of[...LS.keys()])Vwr(null,t);qwr(null)}function Wgn(t,n=aBe){const s=Pye(),c=Iye(),d=Nye(),m=LS.get(n);T3t(t,n),LS.set(n,t),qS===m&&(qS=t),ehe(s),the(c,d),fRe(),ZI()===n&&rhe()}function Hgn(){return qS}function Jwr(t){return uRe.add(t),()=>uRe.delete(t)}function Wwr(){return[...LS.keys()]}function dht(t){const n=t.filter(d=>d!==aBe),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 pht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Hwr(t){const n=Wwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new pht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${dht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new pht(`${n.length} instances are live (${dht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function Ggn(){return JAt(qS.physics)}function Gwr(){return qS.camera??null}function Pye(){return qS.networking??oBe??null}function Kwr(){return Dye().networking??oBe??null}function Xwr(t){return Zme.add(t),()=>Zme.delete(t)}function Kgn(t){const n=Pye();oBe=t,ehe(n)}function Xgn(){return qS.debug??null}function Ygn(t){const n=Iye(),s=Nye();nQ=t,the(n,s)}function Iye(){return qS.audio??nQ}function Ywr(){return Dye().audio??nQ}function Zwr(t){return Qme.add(t),()=>Qme.delete(t)}function Qwr(){return sBe}function Nye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&nQ&&t.add(nQ),[...t]}function eTr(){return qS.renderDebug??null}function Zgn(){return Dye().renderDebug??null}let C3t=null;const pRe=new Set;function Qgn(t){C3t=t;for(const n of pRe)n()}function Oye(){return C3t?.()??null}function Rye(t){pRe.add(t);const n=zwr(t);return()=>{pRe.delete(t),n()}}function lN(){const t=Oye();return t?`play:${t.instanceId}`:"stopped"}function Fye(t,n){let s=!1,c=[];const d=()=>{s=!1;const g=c;c=[];for(let S=g.length-1;S>=0;S--)g[S]()};return{ensure(g){if(!s){s=!0;try{g(S=>c.push(S))}catch(S){throw d(),S}}},reset:d}}let xO=[],tTr=0,E3t=0;const _Re=new Set;function _ht(){E3t++;for(const t of _Re)t()}function k3t(t){return _Re.add(t),()=>{_Re.delete(t)}}function mht(){return E3t}function Z4(t){if(xO.some(s=>s.contribution.id===t.id))throw new Error(`registerWorkspaceStatus: id "${t.id}" is already registered — status ids key status-bar slots, so they must be unique; unregister the previous contribution first.`);const n={contribution:t,seq:tTr++};return xO=[...xO,n],_ht(),()=>{xO.includes(n)&&(xO=xO.filter(s=>s!==n),_ht())}}function mRe(t){const n=s=>[...xO].filter(c=>(c.contribution.align??"left")===s).sort((c,d)=>(c.contribution.order??0)-(d.contribution.order??0)||c.seq-d.seq).map(c=>c.contribution);return t?n(t):[...n("left"),...n("right")]}let x_e=null,A3t=0;const hRe=new Set;function hht(){A3t++;for(const t of hRe)t()}function D3t(t){return hRe.add(t),()=>hRe.delete(t)}function gRe(){return A3t}function cBe(){return x_e}function rTr(t){const n=Symbol(t.documentId);return x_e={...t,token:n},hht(),()=>{x_e?.token===n&&(x_e=null,hht())}}function nTr(){Ye.useSyncExternalStore(D3t,gRe);const t=cBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const iTr=Fye();function oTr(){iTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:nTr}))})}oTr();let bB=null,P3t=0;const yRe=new Set;function ght(){P3t+=1;for(const t of yRe)t()}function sTr(t){return yRe.add(t),()=>{yRe.delete(t)}}function yht(){return P3t}function aTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},ght(),()=>{bB?.token===s&&(bB=null,ght())}}function vRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const uN=new Map,bRe=new Map;function I3t(){typeof window>"u"||window.parent===window||uN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...uN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&I3t()});let Nc=null,lBe=null;function uBe(){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 N3t(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 cTr(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 lTr(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=cTr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=uTr({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:lBe}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Tpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function vht(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 uTr(t){return[Tpe("workspace-sync",t.workspaceSyncMs),Tpe("reveal-schedule",t.revealScheduleMs),vht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),vht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Tpe("react-commit (board→viewport)",t.reactCommitMs),Yb("webgl-context",t.webglContextMs),Yb("renderer",t.rendererMs),Yb("adapter-setup",t.adapterSetupMs),Yb("ibl-bake (three PMREM)",t.iblBakeMs),Yb("dressing",t.dressingMs),Yb("editor-viewport",t.editorViewportMs),Yb("framing",t.framingMs),Yb("resize-bind",t.resizeBindMs),Yb("viewport-bind",t.viewportBindMs),Tpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function eyn(t,n=Date.now()){const s=(bRe.get(t)??0)+1;bRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:lTr(d,n)};return Nc=null,uN.set(t,m),Sht(),bht(),m}return uN.set(t,c),Sht(),bht(),c}let SRe=new Set;const xRe=new Set;function bht(){I3t();for(const t of xRe)t()}function fTr(t){return xRe.add(t),()=>xRe.delete(t)}function Sht(){uN.size!==0&&O3t()}function O3t(){const t=SRe;SRe=new Set;for(const n of t)n()}let xht=!1;function dTr(){xht||typeof document>"u"||(xht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&O3t()}))}function Mye(){return uN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(dTr(),new Promise(t=>SRe.add(t)))}function pTr(){return[...uN.values()]}function _Tr(t){uBe()&&(Nc=N3t(t,Date.now(),{}))}function tyn(t,n={}){if(!uBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=N3t(t,s,n),Nc.boardBuildStartedAtMs=s}function ryn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function nyn(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 iyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function oyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function syn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function ayn(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 cyn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function lyn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function uyn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function fyn(t){Nc&&Nc.stories.push(t)}function dyn(){return Nc?.documentId??null}function mTr(t){uBe()&&(lBe=t)}function hTr(){uN.clear(),bRe.clear(),Nc=null,lBe=null}const gTr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,i2=null,iQ=null,uR=null;function wht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let R3t=0;const wRe=new Set,k5e=new Set,fBe=new Map,XO=new Map;function wC(){R3t++;for(const t of wRe)t()}function o2(t){return wRe.add(t),()=>{wRe.delete(t)}}function K1(){return R3t}function l0(){return hp}function Pp(){return i2}function TRe(){return iQ}function yTr(t,n){X0(t)&&iQ!==n&&(iQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===i2)??null}function oQ(t){if(t===i2)return;t&&_Tr(t);const n=hp.find(c=>c.descriptor.id===i2);i2=t,iQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function vTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&EN(zk),zk=t)}function ND(t,n={}){const s=uR===t.id,c=s||n.activate!==!1,d=hp.find(g=>g.descriptor.id===t.id);if(vTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||i2===null)&&oQ(t.id),s&&wht(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&&(oQ(t.id),m=!0),m&&wC(),s&&wht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(oQ(t),wC()),!0):!1}function F3t(){uR=null}function bTr(t){if(X0(t)){uR=null;return}uR=t}function EN(t,n={}){if(k5e.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;k5e.add(t);try{if(i2===t){const m=s>0?hp[s-1]:hp[s+1]??null;oQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),fBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{k5e.delete(t)}}function M3t(){if(hp.length===0&&i2===null)return;const t=hp;oQ(null),hp=[],iQ=null,zk=null,fBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function STr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function pyn(t){XO.has(t)&&wC()}async function xTr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=fBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function wTr(){return i2?xTr(i2):Promise.resolve(null)}function _yn(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 j3t(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 dBe(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 jye(){return i2?dBe(i2):null}const TTr={adapter:null,nodeId:null};function CTr(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 pBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return rTr({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 STr(t,()=>S.current?.()??TTr)},[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=CTr(k);return Ye.useEffect(()=>{if(n)return aTr(t,()=>A.current)},[n,t,F]),null}function ETr({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(pBe,{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 kTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:ETr,AssetEditorSubject:pBe},Symbol.toStringTag,{value:"Module"})),w_e=new Map,CRe=new Set;function Tht(){for(const t of CRe)t()}function myn(t){const n=Object.entries(t);for(const[s,c]of n)w_e.set(s,c);return Tht(),()=>{for(const[s,c]of n)w_e.get(s)===c&&w_e.delete(s);Tht()}}function ATr(t){return w_e.get(t)??null}function DTr(t){return CRe.add(t),()=>{CRe.delete(t)}}function PTr(t){return q.jsx(pBe,{...t})}const Cht=new Map;function ITr(t){const n=Cht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>ATr(t),[]),m=Ye.useSyncExternalStore(DTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,Cht.set(t,s),s}const _Be=new Proxy(Object.freeze({AssetDocument:PTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):ITr(n)}}),Eht=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)"}}),NTr=["classic","glass"],OTr=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 nhe=null;const ihe=new Set;function RTr(){return nhe??=[...OTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],nhe}function FTr(t){return ihe.add(t),()=>ihe.delete(t)}function MTr(t){if(Lye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),nhe=null;for(const n of ihe)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),nhe=null;for(const n of ihe)n()}}}function Lye(t){return typeof t=="string"&&(NTr.includes(t)||SB.has(t))}function jTr(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??Eht.shape,elevation:d?.elevation??Eht.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 LTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},BTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Cpe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function L3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Cpe(t),alignItems:n?LTr[n]:void 0,justifyContent:s?BTr[s]:void 0,padding:Cpe(c),paddingInline:Cpe(d),paddingBlock:Cpe(m),...g}}function hee(t,n){return n?`${t} ${n}`:t}function B3t({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-stack",t),style:L3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-inline",t),style:L3t(n)})}function hyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:hee("volter-spacer",t)})}function $Tr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:hee("volter-divider",n)})}function qTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:hee("volter-actions",n),gap:2,align:"center",children:t})}function $3t(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:$3t("volter-text",g)})});function gyn({className:t,...n}){return q.jsx("kbd",{...n,className:$3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function ERe({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 kRe({titleId:t,title:n,description:s}){return q.jsxs(B3t,{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 q3t({className:t,...n}){return q.jsx(B3t,{...n,className:B$("volter-dialog-body",t)})}function ARe({children:t,className:n,...s}){return q.jsx(qTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function yyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function vyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function byn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function Syn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function mBe(t,n){return n?`${t} ${n}`:t}function zTr({className:t,...n}){return q.jsx("div",{...n,className:mBe("volter-field-group",t)})}function T_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:mBe("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 xyn({className:t,...n}){return q.jsx("label",{...n,className:mBe("volter-field-label",t)})}const wyn=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 VTr({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 UTr({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 Tyn({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 Cyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Eyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function kht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function kyn({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 z3t(t,n){return n?`${t} ${n}`:t}const Ayn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:z3t("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()}})}),Dyn=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:z3t("volter-tab",d),children:[s&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-tab-dirty",title:"Unsaved","aria-hidden":"true"}),q.jsx("span",{className:"volter-sr-only",children:"Unsaved"})]}),q.jsx("span",{className:"volter-tab-label",children:S}),c!==void 0&&q.jsx("span",{className:"volter-tab-badge",children:c})]})});function gee(t,n){return n?`${t} ${n}`:t}const n$=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:gee("volter-toolbar",d)})});function Aht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-toolbar-group",t)})}function Dht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:gee("volter-toolbar-divider",t.className)})}function Pyn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:gee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function Iyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-split-button",t)})}function V3t(t,n){return n?`${t} ${n}`:t}const Nyn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:V3t("volter-tree",s)})}),Oyn=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:V3t("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 U3t(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 Bye(t,n){return n?`${t} ${n}`:t}function DRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function JTr(t){DRe(t)[0]?.focus()}const fN=Ye.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ye.useRef(null);return Ye.useImperativeHandle(k,()=>A.current),Ye.useEffect(()=>{c&&DRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!A.current?.contains(J)&&!d?.current?.contains(J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:Bye("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=DRe(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:Bye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:Bye("volter-menu-separator",t.className)})}const hBe=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:Bye("volter-menu-trigger",n)})});function ohe({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 gBe({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?U3t({...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,JTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(ohe,{children:q.jsx(fN,{...A,ref:D,dismissBoundaryRef:t,onDismiss:Ce,style:{...S,position:"fixed",left:J?.left??0,top:J?.top??0,visibility:J?S?.visibility:"hidden"},children:k})})}function Ryn({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(gBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ye.forwardRef(function({variant:n="secondary",size:s="default",shape:c="default",className:d,type:m="button",...g},S){return q.jsx("button",{...g,ref:S,type:m,className:d?`volter-btn ${d}`:"volter-btn","data-variant":n,"data-size":s,"data-shape":c})}),dm=Ye.forwardRef(function({variant:n="ghost",visibleLabel:s,children:c,...d},m){return q.jsxs(Ms,{...d,ref:m,variant:n,"data-icon":"true","data-label-placement":s===void 0?void 0:"below",children:[c,s!==void 0&&q.jsx("span",{className:"volter-icon-button-label",children:s})]})}),PI={base:0,overlayLow:50,sticky:100,dropdown:1e3,toast:9999,modal:1e4},IG={0:"#1a1a1a",1:"#242424",2:"#2c2c2c",3:"#333333",inset:"#1e1e1e"},Pht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},WTr="#579EFF",HTr="rgba(87,158,255,0.15)",A5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},yBe="#d8dee9",vBe="rgba(216,222,233,0.18)",J3t="#FF6B6B",W3t="#e0a030",H3t="#4caf50",G3t="rgba(76,175,80,0.15)",K3t="rgba(255,107,107,0.15)",X3t="rgba(224,160,48,0.12)",Y3t="rgba(255,107,107,0.06)",Z3t="rgba(0,0,0,0.5)",Q3t="#ff79c6",e4t="rgba(255,121,198,0.08)",t4t="#22b8d6",$ye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',qye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',D5e={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)"},bBe={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)"},she={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)"},Fyn="var(--volter-accent)",Myn="var(--volter-accent-muted)",jyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},C_e="var(--volter-danger)",Lyn="var(--volter-warn)",Byn="var(--volter-success)",$yn="var(--volter-success-muted)",qyn="var(--volter-danger-muted)",zyn="var(--volter-warn-muted)",Vyn="var(--volter-danger-faint)",Uyn="var(--volter-scrim)",Jyn="var(--volter-dynamic)",Wyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},r4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},SBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...GTr,...t.density?.control},font:{...XTr,...t.density?.font},icon:{...KTr,...t.density?.icon},chrome:{...r4t,...t.density?.chrome}}}const GTr={compact:20,default:24,comfortable:28},P5e={resting:1,active:2},KTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},XTr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},E_e={regular:400,semibold:600,bold:700},Epe={tight:1,snug:1.2,normal:1.4,relaxed:1.5},NG={duration:{fast:140,base:180,slow:300},easing:{standard:"cubic-bezier(0.32, 0.72, 0.28, 1)",out:"ease-out"}},Hyn="var(--volter-font-sans)",Gyn="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},sQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},Kyn={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)"},Iht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},Xyn={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)"}},Yyn="var(--volter-focus-ring)",YTr=["outliner","properties"],zye=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:Pht[1],strong:Pht[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:WTr,muted:HTr},semantic:{danger:J3t,dangerMuted:K3t,dangerFaint:Y3t,warning:W3t,warningMuted:X3t,success:H3t,successMuted:G3t,dynamic:Q3t,dynamicMuted:e4t,instance:t4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:Z3t},typography:{sans:$ye,mono:qye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:D5e.sm,medium:D5e.md,large:D5e.lg}},ZTr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:A5e[1],muted:A5e[2],dim:A5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:yBe,muted:vBe}}},QTr={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:$ye,mono:qye},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)"}},PRe={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:yBe,muted:vBe},semantic:{danger:J3t,dangerMuted:K3t,dangerFaint:Y3t,warning:W3t,warningMuted:X3t,success:H3t,successMuted:G3t,dynamic:Q3t,dynamicMuted:e4t,instance:t4t},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:$ye,mono:qye},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}},eCr=(()=>{const{treatment:t,...n}=PRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...PRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:Z3t}}})(),IRe={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:yBe,muted:vBe},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:$ye,mono:qye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},tCr=(()=>{const{treatment:t,...n}=IRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...IRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),n4t={"graphite-dark":i$,"graphite-neutral":ZTr,"midnight-high-contrast":QTr,"glass-dark":PRe,"glass-dark-lite":eCr,"liquid-glass":IRe,"liquid-glass-lite":tCr};function rCr(t){return typeof t=="string"&&Object.hasOwn(n4t,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 nCr(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 iCr(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 Nht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Oht(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 NRe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function oCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function sCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function aCr(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 cCr=.6,lCr=.5;function ahe(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/cCr).toFixed(3)))})`}function i4t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ahe(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 uCr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ahe(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function fCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${ahe(.28,n)}`),c.push(`inset 0 -1px 1px ${ahe(.1,n)}`)),s>0){const d=m=>`${Number((m*s/lCr).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 dCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function pCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function _Cr(t){return t?"17px":"var(--volter-radius-md)"}function mCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function hCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function gCr(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 Vye(t){return q$(t)}function yCr(t){return Vye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function o4t(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 s4t(t){if(!o4t(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 vCr(t){return Vye(t)?"var(--volter-content-primary)":o4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function bCr(t){return Vye(t)?"color-mix(in srgb, currentColor 30%, transparent)":s4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function SCr(t){return Vye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function xCr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function wCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":gCr(t,.82)??"var(--volter-accent)"}function TCr(t){const n=t?.edgeSpecular??0;return n<=0?"none":i4t({...t,edgeSpecular:n*.4})}function CCr(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 a4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function c4t(t){return a4t(t?.textShadowOpacity??0)}function ECr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:a4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??NRe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:c4t(t.treatment),frostBg:NRe(t.treatment)}}function kCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":DCr(t.color.surface.chrome,.9):t.color.surface.chrome}function ACr(t){return t.color.surface.panel}function DCr(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 Rht(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 PCr(t){return t.color.boundary.area??t.color.boundary.default}function ICr(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 NCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function OCr(t){const n=ECr(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":iCr(t.treatment),"--volter-surface-sticky":Nht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Nht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Oht(t.treatment),"--volter-content-frost-filter":Oht(t.treatment),"--volter-content-frost-bg":NRe(t.treatment),"--volter-input-surface":oCr(s),"--volter-input-border":sCr(s),"--volter-input-shadow":aCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":i4t(t.treatment),"--volter-card-specular-sheen":uCr(t.treatment),"--volter-card-specular-shadow":fCr(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":CCr(t.treatment),"--volter-island-surface":dCr(t),"--volter-island-backdrop-filter":pCr(t),"--volter-island-radius":_Cr(s),"--volter-island-border-color":mCr(s),"--volter-island-shadow":hCr(s),"--volter-island-specular-ring":TCr(t.treatment),"--volter-selection-bg":yCr(t),"--volter-content-on-selection":vCr(t),"--volter-selection-border":bCr(t),"--volter-selection-indicator":SCr(t),"--volter-island-control-radius":xCr(s),"--volter-island-primary-bg":wCr(t),"--volter-content-text-shadow":c4t(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":kCr(t),"--volter-glass-regular-backdrop-filter":Rht(t.treatment),"--volter-glass-regular-panel-bg":ACr(t),"--volter-glass-regular-panel-backdrop-filter":Rht(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":PCr(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":NCr(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":ICr(t.color.surface.panel,t.color.content.primary),...s4t(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(SBe.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(zye.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":`${P5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":nCr(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":`${P5e.resting}px`,"--volter-stroke-active":`${P5e.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(E_e.regular),"--volter-font-weight-semibold":String(E_e.semibold),"--volter-font-weight-bold":String(E_e.bold),"--volter-leading-tight":String(Epe.tight),"--volter-leading-snug":String(Epe.snug),"--volter-leading-normal":String(Epe.normal),"--volter-leading-relaxed":String(Epe.relaxed),"--volter-duration-fast":`${NG.duration.fast}ms`,"--volter-duration-base":`${NG.duration.base}ms`,"--volter-duration-slow":`${NG.duration.slow}ms`,"--volter-ease-standard":NG.easing.standard,"--volter-ease-out":NG.easing.out,"--volter-z-base":String(PI.base),"--volter-z-overlay-low":String(PI.overlayLow),"--volter-z-sticky":String(PI.sticky),"--volter-z-dropdown":String(PI.dropdown),"--volter-z-toast":String(PI.toast),"--volter-z-modal":String(PI.modal)}}const ORe="volter-editor-theme";function RCr(t,n=i$){t.classList.add(ORe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(OCr(n)))t.style.setProperty(s,c)}const Zyn={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},Qyn={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},l4t=Ye.createContext(null);function FCr(){return Ye.useContext(l4t)}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)})}),xBe=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)})}),u4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),e0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),t0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",MCr={id:hC,title:"Editor"},wB=new Map;let che=null,aQ=hC;const RRe=new Set;function FRe(){for(const t of RRe)t()}function r0n(){return che??=[MCr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],che}function yee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function jCr(t){if(yee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),che=null,FRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),che=null,FRe())}}function lhe(){return aQ}function uhe(t){const n=yee(t)?t:hC;n!==aQ&&(aQ=n,FRe())}function wBe(t){return RRe.add(t),()=>RRe.delete(t)}function f4t(t){return aQ===hC?null:wB.get(aQ)?.glyphs[t]??null}const Fht={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)"},Mht={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(wBe,lhe,lhe);const k=f4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Mht[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:Fht[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(r0r,{...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:Fht[n],color:Mht[s],...m}})}function d4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?RTt:GTt,size:n,tone:s,...c?{style:c}:{}})}function n0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?DTt:lLe,size:n,tone:s})}function fy(t,n){return{...n,iconName:t}}const Kk={action:{add:YTt,close:aLe,delete:ITt,search:PTt,refresh:evr,undo:zOe,redo:Amt,build:K0r,export:Q0r,select:Dmt},transport:{play:R0r,pause:Y0r,restart:Amt,stop:NTt,step:M0r},content:{project:$Oe,folder:uee,file:$Tt,source:uLe,scene:dLe,entity:aR,component:GB,camera:aye,light:iLe,image:iB,audio:cLe,data:OTt,code:oLe,stateMachine:MTt},status:{success:sLe,info:R$,warning:fee,error:BTt,visible:nLe,hidden:fLe,locked:Rme,unlocked:qOe},viewport:{zoomIn:b0r,zoomOut:y0r,pan:P0r,frame:h0r,projection:fy("viewport-projection",C5e),projectionOrthographic:fy("viewport-orthographic",C5e),camera:fy("viewport-camera",kmt),cameraView:fy("viewport-camera-view",kmt),cameraLocked:fy("viewport-camera-locked",Rme),cameraUnlocked:fy("viewport-camera-unlocked",qOe)},modeling:{extrude:fy("mesh-extrude",jTt),inset:fy("mesh-inset",G0r),bevel:fy("mesh-bevel",tvr),loopCut:fy("mesh-loop-cut",S0r),knife:fy("mesh-knife",U0r),smooth:fy("mesh-smooth",g0r),shrinkFatten:fy("mesh-shrink-fatten",qTt),subdivide:fy("mesh-subdivide",F0r)},tool:{extension:GB,select:fy("tool-select-box",Dmt),move:VTt,rotate:ATt,scale:fy("tool-scale",w0r),transform:fy("tool-transform",I0r),snap:O0r,frame:XTt,grid:C5e,profiler:HTt},panel:{outliner:fy("outliner",QTt),properties:fy("properties",UTt),"folder-open":$Oe,"cubes-stacked":zTt,users:x0r,list:vZ,"rotate-left":zOe}};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=FCr();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 LCr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:E_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},BCr={...LCr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function Uye({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:{...BCr,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 $Cr({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(d4t,{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 qCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function zCr(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 VCr(t,n,s){let c=n.left+(n.width-s.width)/2,d=n.top+(n.height-s.height)/2;return t==="top"?d=n.top-s.height-VI:t==="bottom"?d=n.bottom+VI:t==="left"?c=n.left-s.width-VI:c=n.right+VI,{left:Math.max(zI,Math.min(c,window.innerWidth-s.width-zI)),top:Math.max(zI,Math.min(d,window.innerHeight-s.height-zI)),ready:!0}}function mO({text:t,hotkey:n,children:s,position:c="bottom",delay:d=400}){const m=Ye.useId(),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef(null),A=Ye.useRef(!1),F=Ye.useRef(!1),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState({left:0,top:0,ready:!1});Ye.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ye.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const ue=()=>{k.current&&clearTimeout(k.current),k.current=null,J(!1)},Ce=()=>{!A.current&&!F.current&&ue()},De=be=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{pe(X=>({...X,ready:!1})),J(!0)},be)};Ye.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),we=S.current?.getBoundingClientRect();if(!X||!we)return;const qe=zCr(c,X,we)?c:qCr(c);pe(VCr(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 UCr({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 I5e={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},i0n=Go.typography.sans,o0n=Go.typography.mono;function s0n(t,n){t.onChange(n)}function a0n(t,n){(t.onChangeEnd??t.onChange)(n)}const c0n={display:"flex",alignItems:"center",gap:4},l0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},JCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},WCr=72;function u0n({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 f0n(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 N5e=22,jht={width:N5e,height:N5e,flex:`0 0 ${N5e}px`,borderRadius:I5e.radiusSmall,border:`1px solid ${I5e.border}`,background:I5e.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 HCr({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:jht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:jht,"aria-hidden":"true"}),q.jsxs(Iw,{"data-testid":g,disabled:d,value:t,title:t||"No texture assigned",onChange:k=>n(k.target.value),style:{flex:1,minWidth:0},children:[q.jsx("option",{value:"",children:"—"}),S.map(k=>q.jsx("option",{value:k,children:k},k))]}),q.jsx(dm,{"data-testid":`${g}-clear`,"aria-label":"Clear this texture slot",title:"Clear this texture slot",disabled:d||!t,onClick:()=>n(""),children:q.jsx(dc,{icon:aLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function MRe({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 k_e=new Map,jRe=new Set;let p4t=0;function Lht(){p4t+=1;for(const t of jRe)t()}function d0n(t,n){return k_e.set(t,n),Lht(),()=>{k_e.get(t)===n&&(k_e.delete(t),Lht())}}function TBe(t){return jRe.add(t),()=>jRe.delete(t)}function o$(){return p4t}function s2(t){return t?k_e.get(t)??null:null}const QL=new Map;function p0n(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 GCr(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,fhe=new Set,A_e=new Set;let _4t=0;function m4t(){_4t+=1;for(const t of[...TB])t()}function KCr(t,n){return xZ.set(t,n),m4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function XCr(t){xZ.has(t)&&m4t()}function YCr(t){return TB.add(t),()=>{TB.delete(t)}}function Bht(){return _4t}function cQ(t){return xZ.get(t)}function h4t(t,n=1e4){const s=cQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=cQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function g4t(t){fhe.add(t);for(const n of[...A_e])n();return()=>{fhe.delete(t)}}function y4t(t,n=1e4){return fhe.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{fhe.has(t)&&(clearTimeout(d),A_e.delete(c),s(!0))},d=setTimeout(()=>{A_e.delete(c),s(!1)},n);A_e.add(c)})}async function CBe(t){if(GCr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let LRe=null;const ZY=new Map;let YO=[];function ZCr(t){if(LRe=t,!t)return;const n=YO;YO=[];for(const s of n)v4t(t,s)}function v4t(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 QCr=0;function s$(t){const n=t.id??`notification-${++QCr}`,s={...t,id:n};return LRe?v4t(LRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>EBe(n))}function EBe(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},dhe=!0,kpe=null,D_e=null,RG=null,P_e=!1;const QY=new Set;function eEr(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 phe(t){Xk=t;for(const n of QY)n()}async function tEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function rEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function nEr(){try{const t={sessions:await tEr()},n=eEr(t.sessions,Xk.sessions,D_e),s=n.sessionId;n.latestAppeared&&(dhe=!0),D_e=s;const c=s?await rEr(s):null;if(D_e!==s){P_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=dhe?m:Math.min(Xk.cursorMs,m);phe({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){phe({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function lQ(){return RG?(P_e=!0,RG):(RG=nEr().finally(()=>{RG=null,P_e&&(P_e=!1,lQ())}),RG)}function iEr(t){return QY.add(t),QY.size===1&&(lQ(),kpe=window.setInterval(()=>void lQ(),1e3)),()=>{QY.delete(t),QY.size===0&&kpe!==null&&(window.clearInterval(kpe),kpe=null)}}function oEr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(D_e=n.id,dhe=!0,phe({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),lQ())}function sEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));dhe=Xk.liveEdgeMs-n<250,phe({...Xk,cursorMs:n})}const b4t={getSnapshot:()=>Xk,subscribe:iEr,select:oEr,seek:sEr,refresh:lQ};let S4t=null;const BRe=new Set,_0n={getSnapshot:()=>S4t,subscribe(t){return BRe.add(t),()=>BRe.delete(t)}};function m0n(t){S4t=t;for(const n of BRe)try{n()}catch{}}let ZO={phase:null,at:0,run:0},dN=ZO;const $Re=new Map;let x4t=null;function aEr(t){x4t=t,w4t(ZO)}function w4t(t){ZO=t;try{x4t?.(t)}catch{}}function uQ(){const t=[...$Re.values()].at(-1),n=t?{...t,run:dN.run}:dN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||w4t(n)}function h0n(t=Date.now()){return dN={phase:null,at:t,run:dN.run+1},uQ(),ZO.run}function g0n(t,n=Date.now()){dN={phase:t,at:n,run:dN.run},uQ()}function y0n(t=Date.now()){dN={phase:null,at:t,run:dN.run},uQ()}function kBe(t,n=Date.now()){const s=Symbol();return $Re.set(s,{phase:t.slice(0,160),at:n}),uQ(),()=>{$Re.delete(s)&&uQ()}}const cEr=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-CDcfr07j.js"),__vite__mapDeps([254,1,2,3,4,20,21,142,127,143,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class ABe 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 lEr({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&&g4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=tLe.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:Qye(),surfaces:_Be,account:tBe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:kBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:b4t}:{play:Oye()},...s?{documentId:s,publishContext:Ce=>KCr(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(uEr,{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 uEr({documentId:t,children:n}){return Ye.useEffect(()=>g4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ye.useSyncExternalStore(Aye,cN,cN),g=Ye.useSyncExternalStore(Rye,lN,lN),S=t.point==="workspace.analytics"?"gameplay-sessions":g;return q.jsxs("div",{"data-testid":`tool-panel-${t.id}`,style:{flex:1,minHeight:0,overflow:t.point==="workspace.analytics"?"visible":"auto",color:Go.content.primary,display:"flex",flexDirection:"column"},children:[t.point==="workspace.analytics"?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(cEr,{})}):null,q.jsx(ABe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(lEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function fEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Aye,cN,cN),Ye.useSyncExternalStore(Rye,lN,lN);const S=g?m.hierarchy.node(g):null;return q.jsx("div",{className:"volter-inspector-tool-section","data-testid":`inspector-tool-${t}`,children:q.jsx(ABe,{file:s,children:q.jsx(Kvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:Qye(),surfaces:_Be,account:tBe(),play:Oye(),node:S,nodeId:g,adapter:m})})})})}const dEr=Symbol("volter.inspection.mixed");function qRe(t){return t===dEr}function DBe(t){return t.readonlyReason??"This field is read-only."}function PBe(t){return"column"}function IBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const zRe="preview",$ht="transform",O5e="properties",T4t="stories",v0n="story-args",b0n="Story Args";function qht(t){return`group:${t}`}const C4t=100,pEr=1e3,fQ=2e3,E4t=3e3,_Er=4e3,mEr=5e3,hEr={nullSubjectId:null};function k4t(t){return"sections"in t}const I_e=[];let A4t=0;const VRe=new Set;function zht(){A4t++;for(const t of VRe)t()}function gEr(t){return VRe.add(t),()=>{VRe.delete(t)}}function Vht(){return A4t}function D4t(t){return I_e.push(t),zht(),()=>{const n=I_e.indexOf(t);n>=0&&(I_e.splice(n,1),zht())}}function Uht(t,n,s=hEr){return I_e.filter(c=>c.match(t,n,s))}function P4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const yEr=1e3;class vEr{_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>yEr){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 vEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Jht=1e3,Wht=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 Vme(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:Ume(n,"input",t.processors),output:Ume(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 ySr=(t,n={})=>s=>{const c=qme({...s,processors:n});return F_(t,c),zme(c,t),Vme(c,t)},Ume=(t,n,s={})=>c=>{const{libraryOptions:d,target:m}=c??{},g=qme({...d??{},target:m,io:n,processors:s});return F_(t,g),zme(g,t),Vme(g,t)},vSr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ikt=(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=vSr[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}))])}},okt=(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)},skt=(t,n,s,c)=>{s.type="boolean"},akt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},lkt=(t,n,s,c)=>{n.target==="openapi-3.0"?(s.type="string",s.nullable=!0,s.enum=[null]):s.type="null"},ukt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},fkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},dkt=(t,n,s,c)=>{s.not={}},pkt=(t,n,s,c)=>{},_kt=(t,n,s,c)=>{},mkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},hkt=(t,n,s,c)=>{const d=t._zod.def,m=hLe(d.entries);m.every(g=>typeof g=="number")&&(s.type="number"),m.every(g=>typeof g=="string")&&(s.type="string"),s.enum=m},gkt=(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},ykt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},vkt=(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},bkt=(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)},Skt=(t,n,s,c)=>{s.type="boolean"},xkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},wkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Tkt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ckt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Ekt=(t,n,s,c)=>{if(n.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},kkt=(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"]})},Akt=(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)},wLe=(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},Dkt=(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},Pkt=(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)},Ikt=(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)}},Nkt=(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"}]},Okt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},Rkt=(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))},Fkt=(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)))},Mkt=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType;let g;try{g=d.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}s.default=g},jkt=(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},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.readOnly=!0},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},TLe=(t,n,s,c)=>{const d=t._zod.def;F_(d.innerType,n,c);const m=n.seen.get(t);m.ref=d.innerType},$kt=(t,n,s,c)=>{const d=t._zod.innerType;F_(d,n,c);const m=n.seen.get(t);m.ref=d},nht={string:ikt,number:okt,boolean:skt,bigint:akt,symbol:ckt,null:lkt,undefined:ukt,void:fkt,never:dkt,any:pkt,unknown:_kt,date:mkt,enum:hkt,literal:gkt,nan:ykt,template_literal:vkt,file:bkt,success:Skt,custom:xkt,function:wkt,transform:Tkt,map:Ckt,set:Ekt,array:kkt,object:Akt,union:wLe,intersection:Dkt,tuple:Pkt,record:Ikt,nullable:Nkt,nonoptional:Okt,default:Rkt,prefault:Fkt,catch:Mkt,pipe:jkt,readonly:Lkt,promise:Bkt,optional:TLe,lazy:$kt};function bSr(t,n){if("_idmap"in t){const c=t,d=qme({...n,processors:nht}),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;zme(d,F),g[A]=Vme(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=qme({...n,processors:nht});return F_(t,s),zme(s,t),Vme(s,t)}const qkt=ui("ZodISODateTime",(t,n)=>{Tbr.init(t,n),j_.init(t,n)});function zkt(t){return A2r(qkt,t)}const Vkt=ui("ZodISODate",(t,n)=>{Cbr.init(t,n),j_.init(t,n)});function Ukt(t){return D2r(Vkt,t)}const Jkt=ui("ZodISOTime",(t,n)=>{Ebr.init(t,n),j_.init(t,n)});function Wkt(t){return P2r(Jkt,t)}const Hkt=ui("ZodISODuration",(t,n)=>{kbr.init(t,n),j_.init(t,n)});function Gkt(t){return I2r(Hkt,t)}const Rgn=Object.freeze(Object.defineProperty({__proto__:null,ZodISODate:Vkt,ZodISODateTime:qkt,ZodISODuration:Hkt,ZodISOTime:Jkt,date:Ukt,datetime:zkt,duration:Gkt,time:Wkt},Symbol.toStringTag,{value:"Module"})),Kkt=(t,n)=>{RCt.init(t,n),t.name="ZodError",Object.defineProperties(t,{format:{value:s=>y1r(t,s)},flatten:{value:s=>g1r(t,s)},addIssue:{value:s=>{t.issues.push(s),t.message=JSON.stringify(t.issues,jme,2)}},addIssues:{value:s=>{t.issues.push(...s),t.message=JSON.stringify(t.issues,jme,2)}},isEmpty:{get(){return t.issues.length===0}}})},Fgn=ui("ZodError",Kkt),Fw=ui("ZodError",Kkt,{Parent:Error}),SSr=mye(Fw),xSr=hye(Fw),wSr=gye(Fw),TSr=yye(Fw),CSr=FCt(Fw),ESr=MCt(Fw),kSr=jCt(Fw),ASr=LCt(Fw),DSr=BCt(Fw),PSr=$Ct(Fw),ISr=qCt(Fw),NSr=zCt(Fw),Lu=ui("ZodType",(t,n)=>(vu.init(t,n),Object.assign(t["~standard"],{jsonSchema:{input:Ume(t,"input"),output:Ume(t,"output")}}),t.toJSONSchema=ySr(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)=>SSr(t,s,c,{callee:t.parse}),t.safeParse=(s,c)=>wSr(t,s,c),t.parseAsync=async(s,c)=>xSr(t,s,c,{callee:t.parseAsync}),t.safeParseAsync=async(s,c)=>TSr(t,s,c),t.spa=t.safeParseAsync,t.encode=(s,c)=>CSr(t,s,c),t.decode=(s,c)=>ESr(t,s,c),t.encodeAsync=async(s,c)=>kSr(t,s,c),t.decodeAsync=async(s,c)=>ASr(t,s,c),t.safeEncode=(s,c)=>DSr(t,s,c),t.safeDecode=(s,c)=>PSr(t,s,c),t.safeEncodeAsync=async(s,c)=>ISr(t,s,c),t.safeDecodeAsync=async(s,c)=>NSr(t,s,c),t.refine=(s,c)=>t.check(MAt(s,c)),t.superRefine=s=>t.check(jAt(s)),t.overwrite=s=>t.check(M$(s)),t.optional=()=>Hme(t),t.exactOptional=()=>yAt(t),t.nullable=()=>Gme(t),t.nullish=()=>Hme(Gme(t)),t.nonoptional=s=>TAt(t,s),t.array=()=>Gd(t),t.or=s=>AR([t,s]),t.and=s=>GLe(t,s),t.transform=s=>Kme(t,KLe(s)),t.default=s=>SAt(t,s),t.prefault=s=>wAt(t,s),t.catch=s=>kAt(t,s),t.pipe=s=>Kme(t,s),t.readonly=()=>PAt(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)),CLe=ui("_ZodString",(t,n)=>{bye.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>ikt(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(Y2r(...c)),t.includes=(...c)=>t.check(eSr(...c)),t.startsWith=(...c)=>t.check(tSr(...c)),t.endsWith=(...c)=>t.check(rSr(...c)),t.min=(...c)=>t.check($me(...c)),t.max=(...c)=>t.check(rkt(...c)),t.length=(...c)=>t.check(nkt(...c)),t.nonempty=(...c)=>t.check($me(1,...c)),t.lowercase=c=>t.check(Z2r(c)),t.uppercase=c=>t.check(Q2r(c)),t.trim=()=>t.check(oSr()),t.normalize=(...c)=>t.check(iSr(...c)),t.toLowerCase=()=>t.check(sSr()),t.toUpperCase=()=>t.check(aSr()),t.slugify=()=>t.check(cSr())}),ELe=ui("ZodString",(t,n)=>{bye.init(t,n),CLe.init(t,n),t.email=s=>t.check(FEt(kLe,s)),t.url=s=>t.check(SLe(xye,s)),t.jwt=s=>t.check(ekt(zLe,s)),t.emoji=s=>t.check($Et(ALe,s)),t.guid=s=>t.check(eRe(Jme,s)),t.uuid=s=>t.check(MEt(aD,s)),t.uuidv4=s=>t.check(jEt(aD,s)),t.uuidv6=s=>t.check(LEt(aD,s)),t.uuidv7=s=>t.check(BEt(aD,s)),t.nanoid=s=>t.check(qEt(DLe,s)),t.guid=s=>t.check(eRe(Jme,s)),t.cuid=s=>t.check(zEt(PLe,s)),t.cuid2=s=>t.check(VEt(ILe,s)),t.ulid=s=>t.check(UEt(NLe,s)),t.base64=s=>t.check(YEt(BLe,s)),t.base64url=s=>t.check(ZEt($Le,s)),t.xid=s=>t.check(JEt(OLe,s)),t.ksuid=s=>t.check(WEt(RLe,s)),t.ipv4=s=>t.check(HEt(FLe,s)),t.ipv6=s=>t.check(GEt(MLe,s)),t.cidrv4=s=>t.check(KEt(jLe,s)),t.cidrv6=s=>t.check(XEt(LLe,s)),t.e164=s=>t.check(QEt(qLe,s)),t.datetime=s=>t.check(zkt(s)),t.date=s=>t.check(Ukt(s)),t.time=s=>t.check(Wkt(s)),t.duration=s=>t.check(Gkt(s))});function bo(t){return E2r(ELe,t)}const j_=ui("ZodStringFormat",(t,n)=>{M_.init(t,n),CLe.init(t,n)}),kLe=ui("ZodEmail",(t,n)=>{mbr.init(t,n),j_.init(t,n)});function OSr(t){return FEt(kLe,t)}const Jme=ui("ZodGUID",(t,n)=>{pbr.init(t,n),j_.init(t,n)});function RSr(t){return eRe(Jme,t)}const aD=ui("ZodUUID",(t,n)=>{_br.init(t,n),j_.init(t,n)});function FSr(t){return MEt(aD,t)}function MSr(t){return jEt(aD,t)}function jSr(t){return LEt(aD,t)}function LSr(t){return BEt(aD,t)}const xye=ui("ZodURL",(t,n)=>{hbr.init(t,n),j_.init(t,n)});function BSr(t){return SLe(xye,t)}function $Sr(t){return SLe(xye,{protocol:/^https?$/,hostname:aEt,...Jo(t)})}const ALe=ui("ZodEmoji",(t,n)=>{gbr.init(t,n),j_.init(t,n)});function qSr(t){return $Et(ALe,t)}const DLe=ui("ZodNanoID",(t,n)=>{ybr.init(t,n),j_.init(t,n)});function zSr(t){return qEt(DLe,t)}const PLe=ui("ZodCUID",(t,n)=>{vbr.init(t,n),j_.init(t,n)});function VSr(t){return zEt(PLe,t)}const ILe=ui("ZodCUID2",(t,n)=>{bbr.init(t,n),j_.init(t,n)});function USr(t){return VEt(ILe,t)}const NLe=ui("ZodULID",(t,n)=>{Sbr.init(t,n),j_.init(t,n)});function JSr(t){return UEt(NLe,t)}const OLe=ui("ZodXID",(t,n)=>{xbr.init(t,n),j_.init(t,n)});function WSr(t){return JEt(OLe,t)}const RLe=ui("ZodKSUID",(t,n)=>{wbr.init(t,n),j_.init(t,n)});function HSr(t){return WEt(RLe,t)}const FLe=ui("ZodIPv4",(t,n)=>{Abr.init(t,n),j_.init(t,n)});function GSr(t){return HEt(FLe,t)}const Xkt=ui("ZodMAC",(t,n)=>{Pbr.init(t,n),j_.init(t,n)});function KSr(t){return k2r(Xkt,t)}const MLe=ui("ZodIPv6",(t,n)=>{Dbr.init(t,n),j_.init(t,n)});function XSr(t){return GEt(MLe,t)}const jLe=ui("ZodCIDRv4",(t,n)=>{Ibr.init(t,n),j_.init(t,n)});function YSr(t){return KEt(jLe,t)}const LLe=ui("ZodCIDRv6",(t,n)=>{Nbr.init(t,n),j_.init(t,n)});function ZSr(t){return XEt(LLe,t)}const BLe=ui("ZodBase64",(t,n)=>{Obr.init(t,n),j_.init(t,n)});function QSr(t){return YEt(BLe,t)}const $Le=ui("ZodBase64URL",(t,n)=>{Fbr.init(t,n),j_.init(t,n)});function exr(t){return ZEt($Le,t)}const qLe=ui("ZodE164",(t,n)=>{Mbr.init(t,n),j_.init(t,n)});function txr(t){return QEt(qLe,t)}const zLe=ui("ZodJWT",(t,n)=>{Lbr.init(t,n),j_.init(t,n)});function rxr(t){return ekt(zLe,t)}const mee=ui("ZodCustomStringFormat",(t,n)=>{Bbr.init(t,n),j_.init(t,n)});function nxr(t,n,s={}){return Sye(mee,t,n,s)}function ixr(t){return Sye(mee,"hostname",sEt,t)}function oxr(t){return Sye(mee,"hex",xEt,t)}function sxr(t,n){const s=n?.enc??"hex",c=`${t}_${s}`,d=W1r[c];if(!d)throw new Error(`Unrecognized hash format: ${c}`);return Sye(mee,c,d,n)}const VLe=ui("ZodNumber",(t,n)=>{kEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>okt(t,c,d),t.gt=(c,d)=>t.check(QZ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(ZZ(c,d)),t.lte=(c,d)=>t.check(XI(c,d)),t.max=(c,d)=>t.check(XI(c,d)),t.int=c=>t.check(rRe(c)),t.safe=c=>t.check(rRe(c)),t.positive=c=>t.check(QZ(0,c)),t.nonnegative=c=>t.check(qk(0,c)),t.negative=c=>t.check(ZZ(0,c)),t.nonpositive=c=>t.check(XI(0,c)),t.multipleOf=(c,d)=>t.check(tRe(c,d)),t.step=(c,d)=>t.check(tRe(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 N2r(VLe,t)}const j$=ui("ZodNumberFormat",(t,n)=>{$br.init(t,n),VLe.init(t,n)});function rRe(t){return O2r(j$,t)}function axr(t){return R2r(j$,t)}function cxr(t){return F2r(j$,t)}function lxr(t){return M2r(j$,t)}function uxr(t){return j2r(j$,t)}const ULe=ui("ZodBoolean",(t,n)=>{AEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>skt(t,s,c)});function _y(t){return L2r(ULe,t)}const JLe=ui("ZodBigInt",(t,n)=>{DEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>akt(t,c),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.gt=(c,d)=>t.check(QZ(c,d)),t.gte=(c,d)=>t.check(qk(c,d)),t.min=(c,d)=>t.check(qk(c,d)),t.lt=(c,d)=>t.check(ZZ(c,d)),t.lte=(c,d)=>t.check(XI(c,d)),t.max=(c,d)=>t.check(XI(c,d)),t.positive=c=>t.check(QZ(BigInt(0),c)),t.negative=c=>t.check(ZZ(BigInt(0),c)),t.nonpositive=c=>t.check(XI(BigInt(0),c)),t.nonnegative=c=>t.check(qk(BigInt(0),c)),t.multipleOf=(c,d)=>t.check(tRe(c,d));const s=t._zod.bag;t.minValue=s.minimum??null,t.maxValue=s.maximum??null,t.format=s.format??null});function fxr(t){return B2r(JLe,t)}const WLe=ui("ZodBigIntFormat",(t,n)=>{qbr.init(t,n),JLe.init(t,n)});function dxr(t){return $2r(WLe,t)}function pxr(t){return q2r(WLe,t)}const Ykt=ui("ZodSymbol",(t,n)=>{zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ckt(t,s)});function _xr(t){return z2r(Ykt,t)}const Zkt=ui("ZodUndefined",(t,n)=>{Vbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ukt(t,s)});function mxr(t){return V2r(Zkt,t)}const Qkt=ui("ZodNull",(t,n)=>{Ubr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>lkt(t,s,c)});function eAt(t){return U2r(Qkt,t)}const tAt=ui("ZodAny",(t,n)=>{Jbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>pkt()});function hxr(){return J2r(tAt)}const rAt=ui("ZodUnknown",(t,n)=>{Wbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>_kt()});function t$(){return W2r(rAt)}const nAt=ui("ZodNever",(t,n)=>{Hbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>dkt(t,s,c)});function HLe(t){return H2r(nAt,t)}const iAt=ui("ZodVoid",(t,n)=>{Gbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>fkt(t,s)});function gxr(t){return G2r(iAt,t)}const oAt=ui("ZodDate",(t,n)=>{Kbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>mkt(t,c),t.min=(c,d)=>t.check(qk(c,d)),t.max=(c,d)=>t.check(XI(c,d));const s=t._zod.bag;t.minDate=s.minimum?new Date(s.minimum):null,t.maxDate=s.maximum?new Date(s.maximum):null});function yxr(t){return K2r(oAt,t)}const sAt=ui("ZodArray",(t,n)=>{Xbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>kkt(t,s,c,d),t.element=n.element,t.min=(s,c)=>t.check($me(s,c)),t.nonempty=s=>t.check($me(1,s)),t.max=(s,c)=>t.check(rkt(s,c)),t.length=(s,c)=>t.check(nkt(s,c)),t.unwrap=()=>t.element});function Gd(t,n){return lSr(sAt,t,n)}function vxr(t){const n=t._zod.def.shape;return ed(Object.keys(n))}const wye=ui("ZodObject",(t,n)=>{Zbr.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Akt(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:HLe()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=s=>ECt(t,s),t.safeExtend=s=>kCt(t,s),t.merge=s=>ACt(t,s),t.pick=s=>TCt(t,s),t.omit=s=>CCt(t,s),t.partial=(...s)=>DCt(XLe,t,s[0]),t.required=(...s)=>PCt(YLe,t,s[0])});function Pa(t,n){const s={type:"object",shape:t??{},...Jo(n)};return new wye(s)}function bxr(t,n){return new wye({type:"object",shape:t,catchall:HLe(),...Jo(n)})}function Sxr(t,n){return new wye({type:"object",shape:t,catchall:t$(),...Jo(n)})}const Tye=ui("ZodUnion",(t,n)=>{bLe.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wLe(t,s,c,d),t.options=n.options});function AR(t,n){return new Tye({type:"union",options:t,...Jo(n)})}const aAt=ui("ZodXor",(t,n)=>{Tye.init(t,n),Qbr.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wLe(t,s,c,d),t.options=n.options});function xxr(t,n){return new aAt({type:"union",options:t,inclusive:!1,...Jo(n)})}const cAt=ui("ZodDiscriminatedUnion",(t,n)=>{Tye.init(t,n),e2r.init(t,n)});function lAt(t,n,s){return new cAt({type:"union",options:n,discriminator:t,...Jo(s)})}const uAt=ui("ZodIntersection",(t,n)=>{t2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Dkt(t,s,c,d)});function GLe(t,n){return new uAt({type:"intersection",left:t,right:n})}const fAt=ui("ZodTuple",(t,n)=>{NEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Pkt(t,s,c,d),t.rest=s=>t.clone({...t._zod.def,rest:s})});function Wme(t,n,s){const c=n instanceof vu,d=c?s:n,m=c?n:null;return new fAt({type:"tuple",items:t,rest:m,...Jo(d)})}const Cye=ui("ZodRecord",(t,n)=>{r2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ikt(t,s,c,d),t.keyType=n.keyType,t.valueType=n.valueType});function wD(t,n,s){return new Cye({type:"record",keyType:t,valueType:n,...Jo(s)})}function wxr(t,n,s){const c=sA(t);return c._zod.values=void 0,new Cye({type:"record",keyType:c,valueType:n,...Jo(s)})}function Txr(t,n,s){return new Cye({type:"record",keyType:t,valueType:n,mode:"loose",...Jo(s)})}const dAt=ui("ZodMap",(t,n)=>{n2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ckt(t,s),t.keyType=n.keyType,t.valueType=n.valueType,t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(xLe(...s)),t.size=(...s)=>t.check(tkt(...s))});function Cxr(t,n,s){return new dAt({type:"map",keyType:t,valueType:n,...Jo(s)})}const pAt=ui("ZodSet",(t,n)=>{i2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Ekt(t,s),t.min=(...s)=>t.check(eQ(...s)),t.nonempty=s=>t.check(eQ(1,s)),t.max=(...s)=>t.check(xLe(...s)),t.size=(...s)=>t.check(tkt(...s))});function Exr(t,n){return new pAt({type:"set",valueType:t,...Jo(n)})}const tQ=ui("ZodEnum",(t,n)=>{o2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(c,d,m)=>hkt(t,c,d),t.enum=n.entries,t.options=Object.values(n.entries);const s=new Set(Object.keys(n.entries));t.extract=(c,d)=>{const m={};for(const g of c)if(s.has(g))m[g]=n.entries[g];else throw new Error(`Key ${g} not found in enum`);return new tQ({...n,checks:[],...Jo(d),entries:m})},t.exclude=(c,d)=>{const m={...n.entries};for(const g of c)if(s.has(g))delete m[g];else throw new Error(`Key ${g} not found in enum`);return new tQ({...n,checks:[],...Jo(d),entries:m})}});function ed(t,n){const s=Array.isArray(t)?Object.fromEntries(t.map(c=>[c,c])):t;return new tQ({type:"enum",entries:s,...Jo(n)})}function kxr(t,n){return new tQ({type:"enum",entries:t,...Jo(n)})}const _At=ui("ZodLiteral",(t,n)=>{s2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>gkt(t,s,c),t.values=new Set(n.values),Object.defineProperty(t,"value",{get(){if(n.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return n.values[0]}})});function Dg(t,n){return new _At({type:"literal",values:Array.isArray(t)?t:[t],...Jo(n)})}const mAt=ui("ZodFile",(t,n)=>{a2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>bkt(t,s,c),t.min=(s,c)=>t.check(eQ(s,c)),t.max=(s,c)=>t.check(xLe(s,c)),t.mime=(s,c)=>t.check(nSr(Array.isArray(s)?s:[s],c))});function Axr(t){return uSr(mAt,t)}const hAt=ui("ZodTransform",(t,n)=>{c2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Tkt(t,s),t._zod.parse=(s,c)=>{if(c.direction==="backward")throw new mLe(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 KLe(t){return new hAt({type:"transform",transform:t})}const XLe=ui("ZodOptional",(t,n)=>{OEt.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>TLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Hme(t){return new XLe({type:"optional",innerType:t})}const gAt=ui("ZodExactOptional",(t,n)=>{l2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>TLe(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function yAt(t){return new gAt({type:"optional",innerType:t})}const vAt=ui("ZodNullable",(t,n)=>{u2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Nkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function Gme(t){return new vAt({type:"nullable",innerType:t})}function Dxr(t){return Hme(Gme(t))}const bAt=ui("ZodDefault",(t,n)=>{f2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Rkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function SAt(t,n){return new bAt({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():dye(n)}})}const xAt=ui("ZodPrefault",(t,n)=>{d2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Fkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function wAt(t,n){return new xAt({type:"prefault",innerType:t,get defaultValue(){return typeof n=="function"?n():dye(n)}})}const YLe=ui("ZodNonOptional",(t,n)=>{p2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Okt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function TAt(t,n){return new YLe({type:"nonoptional",innerType:t,...Jo(n)})}const CAt=ui("ZodSuccess",(t,n)=>{_2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Skt(t,s,c),t.unwrap=()=>t._zod.def.innerType});function Pxr(t){return new CAt({type:"success",innerType:t})}const EAt=ui("ZodCatch",(t,n)=>{m2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Mkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function kAt(t,n){return new EAt({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}const AAt=ui("ZodNaN",(t,n)=>{h2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>ykt(t,s)});function Ixr(t){return X2r(AAt,t)}const ZLe=ui("ZodPipe",(t,n)=>{g2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>jkt(t,s,c,d),t.in=n.in,t.out=n.out});function Kme(t,n){return new ZLe({type:"pipe",in:t,out:n})}const QLe=ui("ZodCodec",(t,n)=>{ZLe.init(t,n),REt.init(t,n)});function Nxr(t,n,s){return new QLe({type:"pipe",in:t,out:n,transform:s.decode,reverseTransform:s.encode})}const DAt=ui("ZodReadonly",(t,n)=>{y2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>Lkt(t,s,c,d),t.unwrap=()=>t._zod.def.innerType});function PAt(t){return new DAt({type:"readonly",innerType:t})}const IAt=ui("ZodTemplateLiteral",(t,n)=>{v2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>vkt(t,s,c)});function Oxr(t,n){return new IAt({type:"template_literal",parts:t,...Jo(n)})}const NAt=ui("ZodLazy",(t,n)=>{x2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>$kt(t,s,c,d),t.unwrap=()=>t._zod.def.getter()});function OAt(t){return new NAt({type:"lazy",getter:t})}const RAt=ui("ZodPromise",(t,n)=>{S2r.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 Rxr(t){return new RAt({type:"promise",innerType:t})}const FAt=ui("ZodFunction",(t,n)=>{b2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>wkt(t,s)});function iht(t){return new FAt({type:"function",input:Array.isArray(t?.input)?Wme(t?.input):t?.input??Gd(t$()),output:t?.output??t$()})}const Eye=ui("ZodCustom",(t,n)=>{w2r.init(t,n),Lu.init(t,n),t._zod.processJSONSchema=(s,c,d)=>xkt(t,s)});function Fxr(t){const n=new eh({check:"custom"});return n._zod.check=t,n}function YI(t,n){return fSr(Eye,t??(()=>!0),n)}function MAt(t,n={}){return dSr(Eye,t,n)}function jAt(t){return pSr(t)}const Mxr=mSr,jxr=hSr;function Lxr(t,n={}){const s=new Eye({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 Bxr=(...t)=>gSr({Codec:QLe,Boolean:ULe,String:ELe},...t);function $xr(t){const n=OAt(()=>AR([bo(t),fu(),_y(),eAt(),Gd(n),wD(bo(),n)]));return n}function LAt(t,n){return Kme(KLe(t),n)}const Mgn=Object.freeze(Object.defineProperty({__proto__:null,ZodAny:tAt,ZodArray:sAt,ZodBase64:BLe,ZodBase64URL:$Le,ZodBigInt:JLe,ZodBigIntFormat:WLe,ZodBoolean:ULe,ZodCIDRv4:jLe,ZodCIDRv6:LLe,ZodCUID:PLe,ZodCUID2:ILe,ZodCatch:EAt,ZodCodec:QLe,ZodCustom:Eye,ZodCustomStringFormat:mee,ZodDate:oAt,ZodDefault:bAt,ZodDiscriminatedUnion:cAt,ZodE164:qLe,ZodEmail:kLe,ZodEmoji:ALe,ZodEnum:tQ,ZodExactOptional:gAt,ZodFile:mAt,ZodFunction:FAt,ZodGUID:Jme,ZodIPv4:FLe,ZodIPv6:MLe,ZodIntersection:uAt,ZodJWT:zLe,ZodKSUID:RLe,ZodLazy:NAt,ZodLiteral:_At,ZodMAC:Xkt,ZodMap:dAt,ZodNaN:AAt,ZodNanoID:DLe,ZodNever:nAt,ZodNonOptional:YLe,ZodNull:Qkt,ZodNullable:vAt,ZodNumber:VLe,ZodNumberFormat:j$,ZodObject:wye,ZodOptional:XLe,ZodPipe:ZLe,ZodPrefault:xAt,ZodPromise:RAt,ZodReadonly:DAt,ZodRecord:Cye,ZodSet:pAt,ZodString:ELe,ZodStringFormat:j_,ZodSuccess:CAt,ZodSymbol:Ykt,ZodTemplateLiteral:IAt,ZodTransform:hAt,ZodTuple:fAt,ZodType:Lu,ZodULID:NLe,ZodURL:xye,ZodUUID:aD,ZodUndefined:Zkt,ZodUnion:Tye,ZodUnknown:rAt,ZodVoid:iAt,ZodXID:OLe,ZodXor:aAt,_ZodString:CLe,_default:SAt,_function:iht,any:hxr,array:Gd,base64:QSr,base64url:exr,bigint:fxr,boolean:_y,catch:kAt,check:Fxr,cidrv4:YSr,cidrv6:ZSr,codec:Nxr,cuid:VSr,cuid2:USr,custom:YI,date:yxr,describe:Mxr,discriminatedUnion:lAt,e164:txr,email:OSr,emoji:qSr,enum:ed,exactOptional:yAt,file:Axr,float32:axr,float64:cxr,function:iht,guid:RSr,hash:sxr,hex:oxr,hostname:ixr,httpUrl:$Sr,instanceof:Lxr,int:rRe,int32:lxr,int64:dxr,intersection:GLe,ipv4:GSr,ipv6:XSr,json:$xr,jwt:rxr,keyof:vxr,ksuid:HSr,lazy:OAt,literal:Dg,looseObject:Sxr,looseRecord:Txr,mac:KSr,map:Cxr,meta:jxr,nan:Ixr,nanoid:zSr,nativeEnum:kxr,never:HLe,nonoptional:TAt,null:eAt,nullable:Gme,nullish:Dxr,number:fu,object:Pa,optional:Hme,partialRecord:wxr,pipe:Kme,prefault:wAt,preprocess:LAt,promise:Rxr,readonly:PAt,record:wD,refine:MAt,set:Exr,strictObject:bxr,string:bo,stringFormat:nxr,stringbool:Bxr,success:Pxr,superRefine:jAt,symbol:_xr,templateLiteral:Oxr,transform:KLe,tuple:Wme,uint32:uxr,uint64:pxr,ulid:JSr,undefined:mxr,union:AR,unknown:t$,url:BSr,uuid:FSr,uuidv4:MSr,uuidv6:jSr,uuidv7:LSr,void:gxr,xid:WSr,xor:xxr},Symbol.toStringTag,{value:"Module"})),oht={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function jgn(t){$S({customError:t})}function Lgn(){return $S().customError}var sht;sht||(sht={});const aht=ed(["mock","live"]),qxr=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()}),zxr=Pa({included:fu().nonnegative(),purchased:fu().nonnegative(),used:fu().nonnegative(),reserved:fu().nonnegative(),remaining:fu().nonnegative(),resetsAt:bo().datetime().optional(),purchasedExpiresAt:bo().datetime().optional()}),Vxr=Pa({overageEnabled:_y(),monthlyLimitCredits:fu().nonnegative(),alertThresholds:Gd(fu().min(1).max(100)).max(8),autoReload:Pa({enabled:_y(),whenRemainingBelow:fu().nonnegative(),reloadTo:fu().positive(),monthlyLimitCredits:fu().nonnegative()}).optional()}),Uxr=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()}),Jxr=Pa({id:bo().min(1),email:bo().email(),name:bo().min(1).optional()}),Wxr=Pa({name:bo().min(1),verified:_y(),enrollmentMode:ed(["manual_invitation","automatic_invitation","automatic_suggestion","enterprise_sso"])}),Hxr=Pa({id:bo().min(1),name:bo().min(1),slug:bo().min(1).optional(),role:bo().min(1),domains:Gd(Wxr).max(50)}),Gxr=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 Kxr=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()}))}),Xxr=lAt("authenticated",[Pa({authenticated:Dg(!1),backend:aht}),Pa({authenticated:Dg(!0),backend:aht,user:Jxr,organizations:Gd(Hxr).max(100).optional(),plan:qxr,credits:zxr,spendPolicy:Vxr,alerts:Gd(Uxr).max(100).optional(),entitlements:Pa({generation:_y(),dailyJobs:fu().int().positive().optional()})})]),Yxr=ed(["auto","mock","managed","byok"]),BAt=ed(["fal","tripo","worldlabs","openrouter"]),Zxr=Pa({enabled:_y(),provider:Dg("openrouter"),model:bo().trim().min(1).max(256)}),Qxr=ed(["environment","system","session","none"]),ewr=Pa({provider:BAt,label:bo().min(1),environmentVariable:bo().min(1),configured:_y(),source:Qxr,editable:_y(),persistence:ed(["system","session"]),maskedKey:bo().min(1).optional(),problem:bo().min(1).optional()}),twr=Pa({provider:BAt,ok:Dg(!0),testedAt:bo().datetime()});function rwr(t){return{routes:{mock:!0,managed:t.routes.managed,byok:t.routes.byok,byokProviders:[...t.routes.byokProviders]},preferredRoute:t.preferredRoute}}const kye=GLe(Xxr,Pa({accountEnvironment:ed(["test-mock","development-twin","production"]),routes:Pa({mock:Dg(!0),managed:_y(),byok:_y(),byokProviders:Gd(bo().min(1))}),preferredRoute:Yxr,providerCredentials:Gd(ewr),codingInference:Zxr}));function nwr(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(nwr(n,s))}function CN(t,n){if(!t.ok)throw new Error(`${n} (${t.status}).`);of(t,n)}async function L_(t,n){return CN(t,n),await t.json()}const cht="volter.collaboration.participant.v1",iwr="volter.collaboration.remote-share.v1",nRe=globalThis.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__;function owr(){if(nRe?.participantId)return nRe.participantId;const t=globalThis.crypto?.randomUUID?.()??`participant-${Date.now()}`;try{const n=globalThis.localStorage?.getItem(cht);if(n)return n;globalThis.localStorage?.setItem(cht,t)}catch{}return t}const $At=owr(),L$=(()=>{try{return globalThis.localStorage?.getItem(iwr)==="1"}catch{return!1}})(),swr=nRe?.displayName||"Local editor",awr=Symbol.for("volter.collaboration.revision"),iRe=globalThis[awr]??={value:0};function qAt(t){Number.isInteger(t)&&t>=iRe.value&&(iRe.value=t)}function Dw(){return{participantId:$At,expectedRevision:iRe.value}}const cwr={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$=cwr,zAt=0,oRe=null;const sRe=new Set;function lR(t,n=null){if(!(oRe===n&&JSON.stringify(r$)===JSON.stringify(t))){r$=t,oRe=n,zAt++;for(const s of sRe)s()}}async function VAt(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 kye.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 VAt(c,`${n} ${t} failed`);return lR(d),d}function eBe(){return r$}function tBe(){return rwr(r$)}function cN(){return zAt}function wpe(){return oRe}function Aye(t){return sRe.add(t),()=>sRe.delete(t)}async function lht(){try{const t=await VAt(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 lwr=t=>NC("/__editor/account/mock-session","POST",{email:t}),uwr=t=>NC("/__editor/account/twin-session","POST",{email:t}),fwr=()=>NC("/__editor/account/session","DELETE"),dwr=t=>NC("/__editor/account/spend-policy","PUT",t),pwr=()=>NC("/__editor/account/alerts/read","POST"),_wr=t=>NC("/__editor/account/execution-route","PUT",{route:t}),mwr=t=>NC("/__editor/account/coding-inference","PUT",t);async function hwr(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 gwr=(t,n)=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"PUT",{key:n}),ywr=t=>NC(`/__editor/account/provider-credentials/${encodeURIComponent(t)}`,"DELETE");async function vwr(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 twr.parse(s)}const uht=t=>NC("/__editor/account/plan","PUT",{action:t});async function UAt(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(kye.parse(c.account)),{...typeof c.checkoutUrl=="string"?{checkoutUrl:c.checkoutUrl}:{},mock:c.mock===!0}}const bwr=t=>UAt("/__editor/account/checkout",{plan:t}),Swr=t=>UAt("/__editor/account/credits",{packId:t});async function xwr(){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 Gxr.array().parse(n.entries??[])}async function wwr(){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 Kxr.parse(n)}async function Twr(){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 Cwr(){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 Ewr(){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 kwr(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(kye.parse(s.account)),!0}async function Awr(){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 Dwr(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(kye.parse(s.account)),!0}function Pwr(){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))):lht().catch(()=>{});const n=window.setInterval(()=>void lht().catch(()=>{}),3e4);return()=>window.clearInterval(n)}function JAt(t){return t?HAt(t)?null:t:null}function Iwr(t,n){try{return t.ownerOf(n)}catch{return"unresolved"}}function WAt(t){return t&&HAt(t)?t:null}function HAt(t){return t.keyedBy==="display"}const Bgn=Object.freeze(Object.defineProperty({__proto__:null,displayKeyedPhysics:WAt,nodeKeyedPhysics:JAt,physicsOwnerOf:Iwr},Symbol.toStringTag,{value:"Module"})),Nwr={"source-prop":!0,"source-structure":!0,"construction-literal":!0,"physics-binding":!0,"data-record":!0,"live-only":!0},rBe=Object.keys(Nwr);function Owr(){const t={};for(const n of rBe)t[n]=0;return t}const Rwr={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},nBe=Object.keys(Rwr);function Fwr(t){const n={};for(const s of nBe)n[s]=t[s]!==void 0;return n}const $gn=Object.freeze(Object.defineProperty({__proto__:null,AUTHORING_PROVIDER_KEYS:nBe,WRITE_ANCHOR_KINDS:rBe,emptyWriteAnchorKindCounts:Owr,measureAuthoringProviders:Fwr},Symbol.toStringTag,{value:"Module"})),Mwr=["claim","shape","operation","effect","round-trip"],Xme={claim:0,shape:1,operation:2,effect:3,"round-trip":4};function GAt(t,n){return Xme[t]>=Xme[n]}function rQ(t){const{seam:n,subject:s,epoch:c,required:d}=t;if(t.notApplicable!==void 0)return{seam:n,subject:s,epoch:c,required:d,state:"not-applicable",receipt:null,detail:t.notApplicable};let m=null;for(const g of t.receipts)g.seam!==n||g.subject!==s||g.epoch!==c||(!m||Xme[g.stage]>=Xme[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}:GAt(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 KAt{#e=[];record(n){if(!n.seam||!n.subject||!n.epoch||!n.detail.trim())throw new Error("seam evidence requires non-empty seam, subject, epoch, and detail");this.#e.push(n)}receipts(n){return this.#e.filter(s=>(n?.subject===void 0||s.subject===n.subject)&&(n?.epoch===void 0||s.epoch===n.epoch))}verdict(n){return rQ({...n,receipts:this.#e})}clearSubject(n){for(let s=this.#e.length-1;s>=0;s-=1)this.#e[s]?.subject===n&&this.#e.splice(s,1)}clear(){this.#e.length=0}}function Ip(){return t=>t}function jwr(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(jwr({seam:g,subject:t.subject,epoch:t.epoch,value:S,optional:m.optional,kind:m.kind}))}return n}function Yme(t){const n=rQ(t);if(n.state==="absent"||n.state==="failed"||!t.shape)return n;for(const[s,c]of Object.entries(t.shape)){const d=rQ({seam:`${t.seam}.${s}`,subject:t.subject,epoch:t.epoch,required:c.required,receipts:t.receipts});if(!(c.optional&&d.state==="absent")){if(d.state==="failed"||d.state==="absent")return{...n,state:"failed",receipt:d.receipt,detail:`${t.seam} is malformed: ${d.detail}`};if(d.state!=="verified")return{...n,state:"unverified",detail:`${t.seam} has the required shape, but ${d.seam} is unverified: ${d.detail}`}}}return n}const qgn=Object.freeze(Object.defineProperty({__proto__:null,SEAM_PROOF_STAGES:Mwr,SeamEvidenceLedger:KAt,defineSeamShape:Ip,gradeSeamCarrier:Yme,gradeSeamEvidence:rQ,inspectSeamShape:vB,seamStageAtLeast:GAt},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"}}),aRe=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"}}),XAt=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"},resolve:{optional:!0,kind:"function",required:"operation"}}),YAt=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"}}),ZAt=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"}}),QAt=Ip()({get:{optional:!1,kind:"function",required:"operation"},entries:{optional:!0,kind:"function",required:"operation"}}),e3t=Ip()({links:{optional:!1,kind:"function",required:"operation"}}),t3t=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"}}),r3t=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"}}),n3t=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"}}),i3t=Ip()({pick:{optional:!1,kind:"function",required:"operation"},candidates:{optional:!0,kind:"function",required:"operation"}}),o3t=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"}}),s3t=Ip()({accepts:{optional:!1,kind:"function",required:"operation"},drop:{optional:!1,kind:"function",required:"round-trip"}}),a3t=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"}}),c3t=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"}}),l3t=Ip()({get:{optional:!1,kind:"function",required:"operation"},set:{optional:!1,kind:"function",required:"effect"}}),u3t=Ip()({backgroundChainAt:{optional:!1,kind:"function",required:"operation"}}),f3t=Ip()({resolve:{optional:!1,kind:"function",required:"operation"}}),d3t=Ip()({layers:{optional:!1,kind:"function",required:"operation"},preview:{optional:!1,kind:"function",required:"effect"},commit:{optional:!1,kind:"function",required:"round-trip"}}),cRe={selection:XAt,transforms:YAt,inspector:ZAt,assetSubject:QAt,related:e3t,instances:t3t,structure:r3t,persistence:n3t,pickable:i3t,rects:a3t,boxEdit:c3t,text:l3t,colorSample:u3t,stories:o3t,truth:f3t,spatialHandles:d3t,assetDrop:s3t},zgn=Object.freeze(Object.defineProperty({__proto__:null,ASSET_DROP_PROVIDER_SHAPE:s3t,ASSET_SUBJECT_PROVIDER_SHAPE:QAt,AUTHORING_ADAPTER_SHAPE:XY,AUTHORING_PROVIDER_SHAPES:cRe,BOX_EDIT_PROVIDER_SHAPE:c3t,COLOR_SAMPLE_PROVIDER_SHAPE:u3t,COMPONENT_INSTANCES_PROVIDER_SHAPE:t3t,HIERARCHY_PROVIDER_SHAPE:aRe,INSPECTOR_PROVIDER_SHAPE:ZAt,PERSISTENCE_PROVIDER_SHAPE:n3t,PICK_PROVIDER_SHAPE:i3t,RECT_PROVIDER_SHAPE:a3t,RELATED_SUBJECTS_PROVIDER_SHAPE:e3t,SELECTION_PROVIDER_SHAPE:XAt,SPATIAL_HANDLES_PROVIDER_SHAPE:d3t,STORIES_PROVIDER_SHAPE:o3t,STRUCTURE_PROVIDER_SHAPE:r3t,TEXT_PROVIDER_SHAPE:l3t,TRANSFORM_PROVIDER_SHAPE:YAt,TRUTH_PROVIDER_SHAPE:f3t},Symbol.toStringTag,{value:"Module"})),lRe=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"}}),p3t=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"}}),_3t=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"}}),m3t=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"}}),h3t=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"}}),g3t=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"}}),y3t=Ip()({snapshot:{optional:!1,kind:"function",required:"operation"},subscribe:{optional:!1,kind:"function",required:"effect"}}),v3t=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"}}),b3t=Ip()({captureFrame:{optional:!1,kind:"function",required:"effect"},memorySnapshot:{optional:!0,kind:"function",required:"operation"}}),S3t={networking:m3t,navigation:h3t,audio:g3t,camera:y3t,debug:v3t,renderDebug:b3t},Vgn=Object.freeze(Object.defineProperty({__proto__:null,AUDIO_ADAPTER_SHAPE:g3t,CAMERA_ADAPTER_SHAPE:y3t,DEBUG_ADAPTER_SHAPE:v3t,NAVIGATION_ADAPTER_SHAPE:h3t,NETWORKING_ADAPTER_SHAPE:m3t,PHYSICS_2D_ADAPTER_SHAPE:_3t,PHYSICS_ADAPTER_SHAPE:p3t,RENDER_DEBUG_ADAPTER_SHAPE:b3t,SYSTEM_ADAPTERS_SHAPE:lRe,SYSTEM_PROVIDER_SHAPES:S3t},Symbol.toStringTag,{value:"Module"})),iBe=new KAt;function Lwr(t){iBe.record(t)}const fht=new WeakMap;let Bwr=1;function x3t(t){const n=fht.get(t);if(n)return n;const s=`system-${Bwr++}`;return fht.set(t,s),s}function $wr(t){const n=t.epoch??x3t(t.adapter),s=`system.${t.slot}`,c={[t.slot]:t.adapter},d=t.slot==="physics"?WAt(t.adapter)?_3t:p3t:S3t[t.slot],m=[...vB({prefix:"system",value:c,shape:lRe,subject:t.subject,epoch:n}).filter(g=>g.seam===s),...vB({prefix:s,value:t.adapter,shape:d,subject:t.subject,epoch:n}),...iBe.receipts({subject:t.subject,epoch:n}),...t.receipts??[]];return Yme({seam:s,subject:t.subject,epoch:n,required:lRe[t.slot].required,receipts:m,shape:d})}let qS={},nQ=null,oBe=null;const Zme=new Set,Qme=new Set,uRe=new Set;let sBe=0;function fRe(){for(const t of uRe)t()}function ehe(t){if(t!==Pye())for(const n of Zme)n()}function the(t,n){const s=Nye();if(!(t===Iye()&&n.length===s.length&&n.every((c,d)=>c===s[d]))){sBe++;for(const c of Qme)c()}}const LS=new Map;let S_e=null,w3t=0;const dRe=new Set,aBe="";function T3t(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=$wr({slot:c,adapter:d,subject:n||"game"});if(m.state==="failed")throw new Error(`system adapter refused: ${m.detail}`)}}function ZI(){return S_e!==null&&LS.has(S_e)?S_e:LS.keys().next().value??null}function rhe(){w3t++;for(const t of dRe)t()}function qwr(t){const n=ZI();if(S_e=t,n!==ZI()){rhe(),sBe++;for(const s of Zme)s();for(const s of Qme)s()}}function Ugn(){return ZI()}function zwr(t){return dRe.add(t),()=>dRe.delete(t)}function Jgn(){return w3t}function Dye(){const t=ZI();return(t===null?void 0:LS.get(t))??qS}function Vwr(t,n=aBe){const s=ZI(),c=Pye(),d=Iye(),m=Nye();if(t){T3t(t,n),LS.set(n,t),qS=t,ehe(c),the(d,m),fRe(),s!==ZI()&&rhe();return}LS.delete(n),qS=LS.values().next().value??{},ehe(c),the(d,m),fRe(),s!==ZI()&&rhe()}function Uwr(){for(const t of[...LS.keys()])Vwr(null,t);qwr(null)}function Wgn(t,n=aBe){const s=Pye(),c=Iye(),d=Nye(),m=LS.get(n);T3t(t,n),LS.set(n,t),qS===m&&(qS=t),ehe(s),the(c,d),fRe(),ZI()===n&&rhe()}function Hgn(){return qS}function Jwr(t){return uRe.add(t),()=>uRe.delete(t)}function Wwr(){return[...LS.keys()]}function dht(t){const n=t.filter(d=>d!==aBe),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 pht extends Error{instances;constructor(n,s){super(n),this.name="InstanceResolutionError",this.instances=s}}function Hwr(t){const n=Wwr();if(t!==void 0){const s=LS.get(t);if(s)return s;throw new pht(n.length===0?`no instance "${t}" — no game is mounted`:`no instance "${t}" — live: ${dht(n)}`,n)}if(n.length===1)return LS.get(n[0]);if(n.length===0)return qS;throw new pht(`${n.length} instances are live (${dht(n)}) — name one in your program (\`game.instance(id)\`, or \`await game.instances()\` for handles); refusing to guess`,n)}function Ggn(){return JAt(qS.physics)}function Gwr(){return qS.camera??null}function Pye(){return qS.networking??oBe??null}function Kwr(){return Dye().networking??oBe??null}function Xwr(t){return Zme.add(t),()=>Zme.delete(t)}function Kgn(t){const n=Pye();oBe=t,ehe(n)}function Xgn(){return qS.debug??null}function Ygn(t){const n=Iye(),s=Nye();nQ=t,the(n,s)}function Iye(){return qS.audio??nQ}function Ywr(){return Dye().audio??nQ}function Zwr(t){return Qme.add(t),()=>Qme.delete(t)}function Qwr(){return sBe}function Nye(){const t=new Set;for(const n of LS.values())n.audio&&t.add(n.audio);return t.size===0&&nQ&&t.add(nQ),[...t]}function eTr(){return qS.renderDebug??null}function Zgn(){return Dye().renderDebug??null}let C3t=null;const pRe=new Set;function Qgn(t){C3t=t;for(const n of pRe)n()}function Oye(){return C3t?.()??null}function Rye(t){pRe.add(t);const n=zwr(t);return()=>{pRe.delete(t),n()}}function lN(){const t=Oye();return t?`play:${t.instanceId}`:"stopped"}function Fye(t,n){let s=!1,c=[];const d=()=>{s=!1;const g=c;c=[];for(let S=g.length-1;S>=0;S--)g[S]()};return{ensure(g){if(!s){s=!0;try{g(S=>c.push(S))}catch(S){throw d(),S}}},reset:d}}let xO=[],tTr=0,E3t=0;const _Re=new Set;function _ht(){E3t++;for(const t of _Re)t()}function k3t(t){return _Re.add(t),()=>{_Re.delete(t)}}function mht(){return E3t}function Z4(t){if(xO.some(s=>s.contribution.id===t.id))throw new Error(`registerWorkspaceStatus: id "${t.id}" is already registered — status ids key status-bar slots, so they must be unique; unregister the previous contribution first.`);const n={contribution:t,seq:tTr++};return xO=[...xO,n],_ht(),()=>{xO.includes(n)&&(xO=xO.filter(s=>s!==n),_ht())}}function mRe(t){const n=s=>[...xO].filter(c=>(c.contribution.align??"left")===s).sort((c,d)=>(c.contribution.order??0)-(d.contribution.order??0)||c.seq-d.seq).map(c=>c.contribution);return t?n(t):[...n("left"),...n("right")]}let x_e=null,A3t=0;const hRe=new Set;function hht(){A3t++;for(const t of hRe)t()}function D3t(t){return hRe.add(t),()=>hRe.delete(t)}function gRe(){return A3t}function cBe(){return x_e}function rTr(t){const n=Symbol(t.documentId);return x_e={...t,token:n},hht(),()=>{x_e?.token===n&&(x_e=null,hht())}}function nTr(){Ye.useSyncExternalStore(D3t,gRe);const t=cBe();return t?.status?q.jsx("span",{className:"volter-status-copy","data-testid":"status-asset-editor","data-status-tone":"muted",children:t.status}):null}const iTr=Fye();function oTr(){iTr.ensure(t=>{t(Z4({id:"asset-editor-status",name:"Asset editor",align:"left",order:40,Content:nTr}))})}oTr();let bB=null,P3t=0;const yRe=new Set;function ght(){P3t+=1;for(const t of yRe)t()}function sTr(t){return yRe.add(t),()=>{yRe.delete(t)}}function yht(){return P3t}function aTr(t,n){const s=Symbol(t);return bB={documentId:t,readSubject:n,token:s},ght(),()=>{bB?.token===s&&(bB=null,ght())}}function vRe(){return bB===null?null:{documentId:bB.documentId,subject:bB.readSubject()}}const uN=new Map,bRe=new Map;function I3t(){typeof window>"u"||window.parent===window||uN.size===0||window.parent.postMessage({type:"volter:viewport-ready",documents:[...uN.keys()]},"*")}typeof window<"u"&&window.parent!==window&&window.addEventListener("message",t=>{t.source===window.parent&&t.data?.type==="volter:request-viewport-ready"&&I3t()});let Nc=null,lBe=null;function uBe(){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 N3t(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 cTr(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 lTr(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=cTr(t.stories),J=t.boardBuildStartedAtMs===null?"switch-back":"first-open",G=uTr({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:lBe}}function Yb(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:s,waitMs:0,kind:"cpu"}}function Tpe(t,n){const s=Math.max(0,n);return{name:t,ms:s,busyMs:0,waitMs:s,kind:"idle"}}function vht(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 uTr(t){return[Tpe("workspace-sync",t.workspaceSyncMs),Tpe("reveal-schedule",t.revealScheduleMs),vht("component-index",t.componentIndexMs,t.componentIndexBusyMs,t.componentIndexWaitMs>0||t.componentIndexMs===0?t.componentIndexWaitMs:t.componentIndexMs),Yb("candidate-collect",t.candidateCollectMs),vht("story-mounts",t.storyMountTotalMs,t.storyMountBusyMs,t.storyMountWaitMs),Yb("bounds",t.boundsMs),Yb("layout",t.layoutMs),Yb("assemble",t.assembleMs),Tpe("react-commit (board→viewport)",t.reactCommitMs),Yb("webgl-context",t.webglContextMs),Yb("renderer",t.rendererMs),Yb("adapter-setup",t.adapterSetupMs),Yb("ibl-bake (three PMREM)",t.iblBakeMs),Yb("dressing",t.dressingMs),Yb("editor-viewport",t.editorViewportMs),Yb("framing",t.framingMs),Yb("resize-bind",t.resizeBindMs),Yb("viewport-bind",t.viewportBindMs),Tpe("raf-wait",t.rafWaitMs),Yb("first-render",t.firstRenderMs)]}function eyn(t,n=Date.now()){const s=(bRe.get(t)??0)+1;bRe.set(t,s);const c={documentId:t,activation:s,firstFrameAtMs:n},d=Nc;if(d&&d.documentId===t){const m={...c,breakdown:lTr(d,n)};return Nc=null,uN.set(t,m),Sht(),bht(),m}return uN.set(t,c),Sht(),bht(),c}let SRe=new Set;const xRe=new Set;function bht(){I3t();for(const t of xRe)t()}function fTr(t){return xRe.add(t),()=>xRe.delete(t)}function Sht(){uN.size!==0&&O3t()}function O3t(){const t=SRe;SRe=new Set;for(const n of t)n()}let xht=!1;function dTr(){xht||typeof document>"u"||(xht=!0,document.addEventListener("visibilitychange",()=>{document.hidden&&O3t()}))}function Mye(){return uN.size>0||typeof document<"u"&&document.hidden?Promise.resolve():(dTr(),new Promise(t=>SRe.add(t)))}function pTr(){return[...uN.values()]}function _Tr(t){uBe()&&(Nc=N3t(t,Date.now(),{}))}function tyn(t,n={}){if(!uBe())return;const s=Date.now();if(Nc&&Nc.documentId===t){Nc.boardBuildStartedAtMs===null&&(Nc.boardBuildStartedAtMs=s),n.modulesAlreadyLoaded===!0&&(Nc.modulesAlreadyLoaded=!0);return}Nc=N3t(t,s,n),Nc.boardBuildStartedAtMs=s}function ryn(t){Nc&&(t&&Nc.documentId!==t||(Nc=null))}function nyn(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 iyn(t){!Nc||Nc.documentId!==t||Nc.reactActiveAtMs===null&&(Nc.reactActiveAtMs=Date.now())}function oyn(t){!Nc||Nc.documentId!==t||Nc.rafResumeAtMs===null&&(Nc.rafResumeAtMs=Date.now())}function syn(t){!Nc||Nc.documentId!==t||Nc.firstRenderStartedAtMs===null&&(Nc.firstRenderStartedAtMs=Date.now())}function ayn(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 cyn(){Nc&&(Nc.boardReadyAtMs=Date.now())}function lyn(){Nc&&(Nc.constructStartedAtMs=Date.now())}function uyn(){Nc&&(Nc.viewportReadyAtMs=Date.now())}function fyn(t){Nc&&Nc.stories.push(t)}function dyn(){return Nc?.documentId??null}function mTr(t){uBe()&&(lBe=t)}function hTr(){uN.clear(),bRe.clear(),Nc=null,lBe=null}const gTr=["scene","game","world","story","asset","behavior","generation","content-browser","project-tool","tool-contribution","document"];let hp=[],zk=null,i2=null,iQ=null,uR=null;function wht(t){queueMicrotask(()=>{uR===t&&hp.some(n=>n.descriptor.id===t)&&(uR=null,X0(t))})}let R3t=0;const wRe=new Set,k5e=new Set,fBe=new Map,XO=new Map;function wC(){R3t++;for(const t of wRe)t()}function o2(t){return wRe.add(t),()=>{wRe.delete(t)}}function K1(){return R3t}function l0(){return hp}function Pp(){return i2}function TRe(){return iQ}function yTr(t,n){X0(t)&&iQ!==n&&(iQ=n,wC())}function TC(){return hp.find(t=>t.descriptor.id===i2)??null}function oQ(t){if(t===i2)return;t&&_Tr(t);const n=hp.find(c=>c.descriptor.id===i2);i2=t,iQ=null,n?.descriptor.onDeactivate?.(n.descriptor.id);const s=hp.find(c=>c.descriptor.id===t);s?.descriptor.onActivate?.(s.descriptor.id)}function vTr(t,n,s,c){if(n){!s&&c&&zk===t&&(zk=null);return}s&&(zk&&EN(zk),zk=t)}function ND(t,n={}){const s=uR===t.id,c=s||n.activate!==!1,d=hp.find(g=>g.descriptor.id===t.id);if(vTr(t.id,!!d,n.preview===!0,c),!d)return hp=[...hp,{descriptor:t,dirty:!1,title:t.title}],!t.area&&(c||i2===null)&&oQ(t.id),s&&wht(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&&(oQ(t.id),m=!0),m&&wC(),s&&wht(t.id),t.id}function X0(t){return hp.some(n=>n.descriptor.id===t)?(i2!==t&&(oQ(t),wC()),!0):!1}function F3t(){uR=null}function bTr(t){if(X0(t)){uR=null;return}uR=t}function EN(t,n={}){if(k5e.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;k5e.add(t);try{if(i2===t){const m=s>0?hp[s-1]:hp[s+1]??null;oQ(m?m.descriptor.id:null)}return hp=hp.filter(m=>m.descriptor.id!==t),zk===t&&(zk=null),fBe.delete(t),XO.delete(t),c.descriptor.onDispose?.(t),wC(),!0}finally{k5e.delete(t)}}function M3t(){if(hp.length===0&&i2===null)return;const t=hp;oQ(null),hp=[],iQ=null,zk=null,fBe.clear(),XO.clear(),uR=null;for(const n of t)n.descriptor.onDispose?.(n.descriptor.id);wC()}function STr(t,n){return hp.some(s=>s.descriptor.id===t)?(XO.set(t,n),wC(),()=>{XO.get(t)===n&&(XO.delete(t),wC())}):()=>{}}function pyn(t){XO.has(t)&&wC()}async function xTr(t){if(!hp.some(s=>s.descriptor.id===t))return null;const n=fBe.get(t);if(!n)return null;try{return await n()}catch{return!1}}function wTr(){return i2?xTr(i2):Promise.resolve(null)}function _yn(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 j3t(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 dBe(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 jye(){return i2?dBe(i2):null}const TTr={adapter:null,nodeId:null};function CTr(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 pBe({documentId:t,active:n=!0,type:s,title:c,sections:d,status:m,selection:g}){Ye.useEffect(()=>{if(n)return rTr({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 STr(t,()=>S.current?.()??TTr)},[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=CTr(k);return Ye.useEffect(()=>{if(n)return aTr(t,()=>A.current)},[n,t,F]),null}function ETr({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(pBe,{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 kTr=Object.freeze(Object.defineProperty({__proto__:null,AssetEditorShell:ETr,AssetEditorSubject:pBe},Symbol.toStringTag,{value:"Module"})),w_e=new Map,CRe=new Set;function Tht(){for(const t of CRe)t()}function myn(t){const n=Object.entries(t);for(const[s,c]of n)w_e.set(s,c);return Tht(),()=>{for(const[s,c]of n)w_e.get(s)===c&&w_e.delete(s);Tht()}}function ATr(t){return w_e.get(t)??null}function DTr(t){return CRe.add(t),()=>{CRe.delete(t)}}function PTr(t){return q.jsx(pBe,{...t})}const Cht=new Map;function ITr(t){const n=Cht.get(t);if(n)return n;function s(c){const d=Ye.useCallback(()=>ATr(t),[]),m=Ye.useSyncExternalStore(DTr,d,d);return m?q.jsx(m,{...c}):q.jsxs("div",{style:{minHeight:240},children:["Loading ",t,"…"]})}return s.displayName=`ContributionSurface(${t})`,Cht.set(t,s),s}const _Be=new Proxy(Object.freeze({AssetDocument:PTr}),{get(t,n,s){return typeof n!="string"||Reflect.has(t,n)||!/^[A-Z]/.test(n)?Reflect.get(t,n,s):ITr(n)}}),Eht=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)"}}),NTr=["classic","glass"],OTr=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 nhe=null;const ihe=new Set;function RTr(){return nhe??=[...OTr,...[...SB.values()].map(({id:t,title:n,description:s})=>({id:t,title:n,description:s}))],nhe}function FTr(t){return ihe.add(t),()=>ihe.delete(t)}function MTr(t){if(Lye(t.id))throw new Error(`registerContributedMaterial: material "${t.id}" is already registered.`);SB.set(t.id,t),nhe=null;for(const n of ihe)n();return()=>{if(SB.get(t.id)===t){SB.delete(t.id),nhe=null;for(const n of ihe)n()}}}function Lye(t){return typeof t=="string"&&(NTr.includes(t)||SB.has(t))}function jTr(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??Eht.shape,elevation:d?.elevation??Eht.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 LTr={start:"flex-start",center:"center",end:"flex-end",stretch:"stretch",baseline:"baseline"},BTr={start:"flex-start",center:"center",end:"flex-end",between:"space-between",around:"space-around",evenly:"space-evenly"};function Cpe(t){return t===0?"0px":t===void 0?void 0:`var(--volter-space-${t})`}function L3t({gap:t,align:n,justify:s,padding:c,paddingX:d,paddingY:m,style:g}){return{gap:Cpe(t),alignItems:n?LTr[n]:void 0,justifyContent:s?BTr[s]:void 0,padding:Cpe(c),paddingInline:Cpe(d),paddingBlock:Cpe(m),...g}}function hee(t,n){return n?`${t} ${n}`:t}function B3t({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-stack",t),style:L3t(n)})}function bZ({className:t,...n}){return q.jsx("div",{...n,className:hee("volter-inline",t),style:L3t(n)})}function hyn({className:t,...n}){return q.jsx("span",{...n,"aria-hidden":"true",className:hee("volter-spacer",t)})}function $Tr({orientation:t="horizontal",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-orientation":t,className:hee("volter-divider",n)})}function qTr({children:t,className:n,...s}){return q.jsx(bZ,{...s,className:hee("volter-actions",n),gap:2,align:"center",children:t})}function $3t(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:$3t("volter-text",g)})});function gyn({className:t,...n}){return q.jsx("kbd",{...n,className:$3t("volter-keycap",t)})}function B$(t,n){return n?`${t} ${n}`:t}function ERe({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 kRe({titleId:t,title:n,description:s}){return q.jsxs(B3t,{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 q3t({className:t,...n}){return q.jsx(B3t,{...n,className:B$("volter-dialog-body",t)})}function ARe({children:t,className:n,...s}){return q.jsx(qTr,{...s,className:B$("volter-dialog-footer",n),children:t})}function yyn({className:t,...n}){return q.jsx("label",{...n,className:B$("volter-dialog-field",t)})}function vyn({children:t}){return q.jsx(_p,{variant:"label",tone:"muted",children:t})}function byn({className:t,...n}){return q.jsx(bZ,{...n,className:B$("volter-joined-field",t)})}function Syn({className:t,...n}){return q.jsx("span",{...n,className:B$("volter-joined-field-suffix",t)})}function mBe(t,n){return n?`${t} ${n}`:t}function zTr({className:t,...n}){return q.jsx("div",{...n,className:mBe("volter-field-group",t)})}function T_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:mBe("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 xyn({className:t,...n}){return q.jsx("label",{...n,className:mBe("volter-field-label",t)})}const wyn=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 VTr({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 UTr({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 Tyn({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 Cyn=Ye.forwardRef(function({className:n,...s},c){return q.jsx("div",{ref:c,...s,className:$$("volter-popover",n)})});function Eyn({shape:t="label",className:n,...s}){return q.jsx("span",{...s,"data-shape":t,className:$$("volter-badge",n)})}function kht({position:t="inside",className:n,...s}){return q.jsx("div",{...s,"aria-hidden":"true","data-position":t,className:$$("volter-drop-indicator",n)})}function kyn({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 z3t(t,n){return n?`${t} ${n}`:t}const Ayn=Ye.forwardRef(function({className:n,onKeyDown:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tablist",className:z3t("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()}})}),Dyn=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:z3t("volter-tab",d),children:[s&&q.jsxs(q.Fragment,{children:[q.jsx("span",{className:"volter-tab-dirty",title:"Unsaved","aria-hidden":"true"}),q.jsx("span",{className:"volter-sr-only",children:"Unsaved"})]}),q.jsx("span",{className:"volter-tab-label",children:S}),c!==void 0&&q.jsx("span",{className:"volter-tab-badge",children:c})]})});function gee(t,n){return n?`${t} ${n}`:t}const n$=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:gee("volter-toolbar",d)})});function Aht({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-toolbar-group",t)})}function Dht(t){return q.jsx("span",{...t,"aria-hidden":"true",className:gee("volter-toolbar-divider",t.className)})}function Pyn({className:t,onPointerDownCapture:n,...s}){return q.jsx(n$,{...s,compact:!0,className:gee("volter-floating-toolbar volter-glass-island",t),onPointerDownCapture:c=>{n?.(c),c.stopPropagation()}})}function Iyn({className:t,...n}){return q.jsx("div",{...n,role:"group",className:gee("volter-split-button",t)})}function V3t(t,n){return n?`${t} ${n}`:t}const Nyn=Ye.forwardRef(function({label:n,className:s,...c},d){return q.jsx("div",{...c,ref:d,role:"tree","aria-label":n,className:V3t("volter-tree",s)})}),Oyn=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:V3t("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 U3t(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 Bye(t,n){return n?`${t} ${n}`:t}function DRe(t){return Array.from(t.querySelectorAll('[role="menuitem"]:not(:disabled), [role="menuitemradio"]:not(:disabled), [role="menuitemcheckbox"]:not(:disabled)'))}function JTr(t){DRe(t)[0]?.focus()}const fN=Ye.forwardRef(function({className:n,role:s="menu",autoFocusFirst:c=!1,dismissBoundaryRef:d,onDismiss:m,onKeyDown:g,...S},k){const A=Ye.useRef(null);return Ye.useImperativeHandle(k,()=>A.current),Ye.useEffect(()=>{c&&DRe(A.current)[0]?.focus()},[c]),Ye.useEffect(()=>{if(!m)return;const F=D=>{const J=D.target;!A.current?.contains(J)&&!d?.current?.contains(J)&&m("outside")};return document.addEventListener("pointerdown",F),()=>document.removeEventListener("pointerdown",F)},[d,m]),q.jsx("div",{...S,ref:A,role:s,className:Bye("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=DRe(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:Bye("volter-menu-item",n),onClick:k=>{d?.(k),k.defaultPrevented||m?.()}})});function t2(t){return q.jsx("hr",{...t,className:Bye("volter-menu-separator",t.className)})}const hBe=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:Bye("volter-menu-trigger",n)})});function ohe({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 gBe({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?U3t({...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,JTr(F))},[c,F,J]);const Ce=De=>{se.current=De!=="outside",g(),De==="escape"&&t.current?.focus()};return q.jsx(ohe,{children:q.jsx(fN,{...A,ref:D,dismissBoundaryRef:t,onDismiss:Ce,style:{...S,position:"fixed",left:J?.left??0,top:J?.top??0,visibility:J?S?.visibility:"hidden"},children:k})})}function Ryn({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(gBe,{anchorRef:g,"data-volter-submenu":S,side:"right",gap:s,clamp:!0,autoFocusFirst:!1,onDismiss:()=>m(!1),onPointerLeave:A,children:n})]})}const Ms=Ye.forwardRef(function({variant:n="secondary",size:s="default",shape:c="default",className:d,type:m="button",...g},S){return q.jsx("button",{...g,ref:S,type:m,className:d?`volter-btn ${d}`:"volter-btn","data-variant":n,"data-size":s,"data-shape":c})}),dm=Ye.forwardRef(function({variant:n="ghost",visibleLabel:s,children:c,...d},m){return q.jsxs(Ms,{...d,ref:m,variant:n,"data-icon":"true","data-label-placement":s===void 0?void 0:"below",children:[c,s!==void 0&&q.jsx("span",{className:"volter-icon-button-label",children:s})]})}),PI={base:0,overlayLow:50,sticky:100,dropdown:1e3,toast:9999,modal:1e4},IG={0:"#1a1a1a",1:"#242424",2:"#2c2c2c",3:"#333333",inset:"#1e1e1e"},Pht={1:"#333333",2:"#444444"},xB={1:"#c5c8ce",2:"#9aa0a6",3:"#90959c"},WTr="#579EFF",HTr="rgba(87,158,255,0.15)",A5e={1:"#f2f6fb",2:"#d3d9e0",3:"#aab0b7"},yBe="#d8dee9",vBe="rgba(216,222,233,0.18)",J3t="#FF6B6B",W3t="#e0a030",H3t="#4caf50",G3t="rgba(76,175,80,0.15)",K3t="rgba(255,107,107,0.15)",X3t="rgba(224,160,48,0.12)",Y3t="rgba(255,107,107,0.06)",Z3t="rgba(0,0,0,0.5)",Q3t="#ff79c6",e4t="rgba(255,121,198,0.08)",t4t="#22b8d6",$ye='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',qye='ui-monospace, "SF Mono", Monaco, "Cascadia Code", monospace',D5e={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)"},bBe={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)"},she={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)"},Fyn="var(--volter-accent)",Myn="var(--volter-accent-muted)",jyn={background:"var(--volter-selection-bg)",border:"var(--volter-selection-border)",indicator:"var(--volter-selection-indicator)"},C_e="var(--volter-danger)",Lyn="var(--volter-warn)",Byn="var(--volter-success)",$yn="var(--volter-success-muted)",qyn="var(--volter-danger-muted)",zyn="var(--volter-warn-muted)",Vyn="var(--volter-danger-faint)",Uyn="var(--volter-scrim)",Jyn="var(--volter-dynamic)",Wyn="var(--volter-dynamic-muted)",R_={1:2,2:4,3:6,4:8,5:10,6:12,8:16,10:20,12:24},r4t={commandBar:36,panelHeader:30,localToolbar:28,treeRow:24,treeIndent:14,statusBar:36,toolSize:34,toolWidth:38,toolGap:7,areaSeam:1,areaEmboss:0},SBe=["solid","clay","unlit","wireframe","matcap","normals","overdraw","preview","rendered"];function Zb(t){return t===void 0?"":`${t}`}function Qp(t){return{control:{...GTr,...t.density?.control},font:{...XTr,...t.density?.font},icon:{...KTr,...t.density?.icon},chrome:{...r4t,...t.density?.chrome}}}const GTr={compact:20,default:24,comfortable:28},P5e={resting:1,active:2},KTr={xs:9,sm:10,md:12,lg:13,xl:14,"2xl":16},XTr={xs:9,sm:10,base:11,md:12,lg:13,xl:14,"2xl":16,heading:24},E_e={regular:400,semibold:600,bold:700},Epe={tight:1,snug:1.2,normal:1.4,relaxed:1.5},NG={duration:{fast:140,base:180,slow:300},easing:{standard:"cubic-bezier(0.32, 0.72, 0.28, 1)",out:"ease-out"}},Hyn="var(--volter-font-sans)",Gyn="var(--volter-font-mono)",qI={small:"3px",medium:"6px",large:"8px",full:"9999px"},sQ={sm:"var(--volter-radius-sm)",md:"var(--volter-radius-md)",lg:"var(--volter-radius-lg)",full:"var(--volter-radius-full)"},Kyn={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)"},Iht={tight:"var(--volter-leading-tight)",snug:"var(--volter-leading-snug)",normal:"var(--volter-leading-normal)",relaxed:"var(--volter-leading-relaxed)"},Xyn={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)"}},Yyn="var(--volter-focus-ring)",YTr=["outliner","properties"],zye=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:Pht[1],strong:Pht[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:WTr,muted:HTr},semantic:{danger:J3t,dangerMuted:K3t,dangerFaint:Y3t,warning:W3t,warningMuted:X3t,success:H3t,successMuted:G3t,dynamic:Q3t,dynamicMuted:e4t,instance:t4t},neutralOverlay:{hover:"rgba(255,255,255,0.08)",active:"rgba(255,255,255,0.14)"},scrim:Z3t},typography:{sans:$ye,mono:qye},shape:{small:qI.small,medium:qI.medium,large:qI.large,full:qI.full},elevation:{small:D5e.sm,medium:D5e.md,large:D5e.lg}},ZTr={...i$,id:"graphite-neutral",color:{...i$.color,content:{primary:A5e[1],muted:A5e[2],dim:A5e[3],onAccent:"#101820",onBright:{primary:"#1a2330",muted:"rgba(26,35,48,0.82)",dim:"rgba(26,35,48,0.74)"}},accent:{default:yBe,muted:vBe}}},QTr={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:$ye,mono:qye},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)"}},PRe={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:yBe,muted:vBe},semantic:{danger:J3t,dangerMuted:K3t,dangerFaint:Y3t,warning:W3t,warningMuted:X3t,success:H3t,successMuted:G3t,dynamic:Q3t,dynamicMuted:e4t,instance:t4t},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:$ye,mono:qye},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}},eCr=(()=>{const{treatment:t,...n}=PRe;return{...n,id:"glass-dark-lite",appearance:{material:"glass",transparency:"reduced"},color:{...PRe.color,surface:{shell:"#1a1a1a",panel:"#222222",chrome:"#292929",raised:"#303030",inset:"#1d1d1d",overlay:"#202020"},scrim:Z3t}}})(),IRe={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:yBe,muted:vBe},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:$ye,mono:qye},shape:Ym.shape,elevation:Ym.elevation,treatment:Ym.treatment},tCr=(()=>{const{treatment:t,...n}=IRe;return{...n,id:"liquid-glass-lite",appearance:{material:"glass",transparency:"reduced"},color:{...IRe.color,surface:Ym.reducedTransparency.surface,scrim:Ym.reducedTransparency.scrim}}})(),n4t={"graphite-dark":i$,"graphite-neutral":ZTr,"midnight-high-contrast":QTr,"glass-dark":PRe,"glass-dark-lite":eCr,"liquid-glass":IRe,"liquid-glass-lite":tCr};function rCr(t){return typeof t=="string"&&Object.hasOwn(n4t,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 nCr(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 iCr(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 Nht(t,n){return n?"transparent":`linear-gradient(var(${t}), var(${t})), linear-gradient(var(--volter-surface-shell), var(--volter-surface-shell))`}function Oht(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 NRe(t){return(t?.contentFrostBlurPx??0)>0?"rgba(255,255,255,0.10)":"transparent"}function oCr(t){return t?"color-mix(in srgb, currentColor 7%, transparent)":"var(--volter-widget-field)"}function sCr(t){return t?"color-mix(in srgb, currentColor 26%, transparent)":"var(--volter-boundary-default)"}function aCr(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 cCr=.6,lCr=.5;function ahe(t,n){return`rgba(255,255,255,${Math.min(1,Number((t*n/cCr).toFixed(3)))})`}function i4t(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ahe(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 uCr(t){const n=t?.edgeSpecular??0;if(n<=0)return"none";const s=t?.specularAngleDeg??120,c=d=>ahe(d,n);return`linear-gradient(${s}deg, ${c(.16)} 0%, ${c(.05)} 24%, transparent 40%)`}function fCr(t){const n=t?.edgeSpecular??0,s=t?.thickness??0,c=[];if(n>0&&(c.push(`inset 0 1px 1px ${ahe(.28,n)}`),c.push(`inset 0 -1px 1px ${ahe(.1,n)}`)),s>0){const d=m=>`${Number((m*s/lCr).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 dCr(t){return q$(t)?"var(--volter-surface-panel)":"color-mix(in srgb, var(--volter-surface-panel) 90%, transparent)"}function pCr(t){return q$(t)?t.treatment?"var(--volter-surface-backdrop-filter)":"none":"blur(8px)"}function _Cr(t){return t?"17px":"var(--volter-radius-md)"}function mCr(t){return t?"var(--volter-boundary-default)":"var(--volter-boundary-strong)"}function hCr(t){return t?"var(--volter-shadow-lg)":"var(--volter-shadow-sm)"}function gCr(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 Vye(t){return q$(t)}function yCr(t){return Vye(t)?"var(--volter-neutral-active)":"var(--volter-accent-muted)"}function o4t(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 s4t(t){if(!o4t(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 vCr(t){return Vye(t)?"var(--volter-content-primary)":o4t(t.color.accent.muted)?"var(--volter-content-on-accent)":"var(--volter-content-primary)"}function bCr(t){return Vye(t)?"color-mix(in srgb, currentColor 30%, transparent)":s4t(t.color.surface.panel)?`rgb(from ${t.color.accent.muted} r g b / 1)`:"var(--volter-accent)"}function SCr(t){return Vye(t)?"color-mix(in srgb, currentColor 76%, transparent)":"var(--volter-accent)"}function xCr(t){return t?"var(--volter-radius-full)":"var(--volter-radius-sm)"}function wCr(t){return!q$(t)||!t.treatment?"var(--volter-accent)":gCr(t,.82)??"var(--volter-accent)"}function TCr(t){const n=t?.edgeSpecular??0;return n<=0?"none":i4t({...t,edgeSpecular:n*.4})}function CCr(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 a4t(t){return t<=0?"none":`0 1px 2px rgba(0,0,0,${Number(t.toFixed(3))})`}function c4t(t){return a4t(t?.textShadowOpacity??0)}function ECr(t){return t.treatment?.adaptiveContent?{primary:t.color.content.onBright.primary,muted:t.color.content.onBright.muted,dim:t.color.content.onBright.dim,textShadow:a4t(t.treatment.brightTextShadowOpacity??0),frostBg:t.treatment.brightFrostBg??NRe(t.treatment)}:{primary:t.color.content.primary,muted:t.color.content.muted,dim:t.color.content.dim,textShadow:c4t(t.treatment),frostBg:NRe(t.treatment)}}function kCr(t){return t.treatment?t.treatment.adaptiveContent?"rgba(255,255,255,0.9)":DCr(t.color.surface.chrome,.9):t.color.surface.chrome}function ACr(t){return t.color.surface.panel}function DCr(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 Rht(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 PCr(t){return t.color.boundary.area??t.color.boundary.default}function ICr(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 NCr(t){const n=Qp(t).chrome.areaEmboss;return n>0?`#ffffff ${n}%`:"transparent 100%"}function OCr(t){const n=ECr(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":iCr(t.treatment),"--volter-surface-sticky":Nht("--volter-surface-chrome",s),"--volter-surface-sticky-panel":Nht("--volter-surface-panel",s),"--volter-surface-sticky-backdrop-filter":"none","--volter-surface-body-frost-filter":Oht(t.treatment),"--volter-content-frost-filter":Oht(t.treatment),"--volter-content-frost-bg":NRe(t.treatment),"--volter-input-surface":oCr(s),"--volter-input-border":sCr(s),"--volter-input-shadow":aCr(s,g),"--volter-structural-divider":s?"transparent":t.color.boundary.default,"--volter-card-specular-ring":i4t(t.treatment),"--volter-card-specular-sheen":uCr(t.treatment),"--volter-card-specular-shadow":fCr(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":CCr(t.treatment),"--volter-island-surface":dCr(t),"--volter-island-backdrop-filter":pCr(t),"--volter-island-radius":_Cr(s),"--volter-island-border-color":mCr(s),"--volter-island-shadow":hCr(s),"--volter-island-specular-ring":TCr(t.treatment),"--volter-selection-bg":yCr(t),"--volter-content-on-selection":vCr(t),"--volter-selection-border":bCr(t),"--volter-selection-indicator":SCr(t),"--volter-island-control-radius":xCr(s),"--volter-island-primary-bg":wCr(t),"--volter-content-text-shadow":c4t(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":kCr(t),"--volter-glass-regular-backdrop-filter":Rht(t.treatment),"--volter-glass-regular-panel-bg":ACr(t),"--volter-glass-regular-panel-backdrop-filter":Rht(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":PCr(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":NCr(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":ICr(t.color.surface.panel,t.color.content.primary),...s4t(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(SBe.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(zye.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":`${P5e.active}px solid ${t.color.accent.default}`,"--volter-select-chevron":nCr(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":`${P5e.resting}px`,"--volter-stroke-active":`${P5e.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(E_e.regular),"--volter-font-weight-semibold":String(E_e.semibold),"--volter-font-weight-bold":String(E_e.bold),"--volter-leading-tight":String(Epe.tight),"--volter-leading-snug":String(Epe.snug),"--volter-leading-normal":String(Epe.normal),"--volter-leading-relaxed":String(Epe.relaxed),"--volter-duration-fast":`${NG.duration.fast}ms`,"--volter-duration-base":`${NG.duration.base}ms`,"--volter-duration-slow":`${NG.duration.slow}ms`,"--volter-ease-standard":NG.easing.standard,"--volter-ease-out":NG.easing.out,"--volter-z-base":String(PI.base),"--volter-z-overlay-low":String(PI.overlayLow),"--volter-z-sticky":String(PI.sticky),"--volter-z-dropdown":String(PI.dropdown),"--volter-z-toast":String(PI.toast),"--volter-z-modal":String(PI.modal)}}const ORe="volter-editor-theme";function RCr(t,n=i$){t.classList.add(ORe),t.dataset.volterTheme=n.id,t.dataset.volterChrome=q$(n)?"islands":"bars";for(const[s,c]of Object.entries(OCr(n)))t.style.setProperty(s,c)}const Zyn={bg:Go.semantic.dangerFaint,border:Go.semantic.danger,fg:Go.semantic.danger},Qyn={bg:Go.semantic.warningMuted,border:Go.semantic.warning,fg:Go.semantic.warning},l4t=Ye.createContext(null);function FCr(){return Ye.useContext(l4t)}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)})}),xBe=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)})}),u4t=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"color",className:DR("volter-color-swatch",n)})}),e0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"file",className:DR("volter-file-input",n)})}),t0n=Ye.forwardRef(function({className:n,...s},c){return q.jsx("input",{...s,ref:c,type:"range",className:DR("volter-range",n)})}),hC="default",MCr={id:hC,title:"Editor"},wB=new Map;let che=null,aQ=hC;const RRe=new Set;function FRe(){for(const t of RRe)t()}function r0n(){return che??=[MCr,...[...wB.values()].map(({id:t,title:n})=>({id:t,title:n}))],che}function yee(t){return typeof t=="string"&&(t===hC||wB.has(t))}function jCr(t){if(yee(t.id))throw new Error(`registerContributedIconSet: icon set "${t.id}" is already registered.`);return wB.set(t.id,t),che=null,FRe(),()=>{wB.get(t.id)===t&&(wB.delete(t.id),che=null,FRe())}}function lhe(){return aQ}function uhe(t){const n=yee(t)?t:hC;n!==aQ&&(aQ=n,FRe())}function wBe(t){return RRe.add(t),()=>RRe.delete(t)}function f4t(t){return aQ===hC?null:wB.get(aQ)?.glyphs[t]??null}const Fht={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)"},Mht={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(wBe,lhe,lhe);const k=f4t(t.iconName);if(k){const A=s!=="current",F=k.tone?`var(--volter-category-${k.tone}, currentColor)`:void 0,D=A?Mht[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:Fht[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(r0r,{...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:Fht[n],color:Mht[s],...m}})}function d4t({direction:t,size:n="xs",tone:s="current",style:c}){return q.jsx(dc,{icon:t==="right"?RTt:GTt,size:n,tone:s,...c?{style:c}:{}})}function n0n({direction:t,size:n="xs",tone:s="current"}){return q.jsx(dc,{icon:t==="right"?DTt:lLe,size:n,tone:s})}function fy(t,n){return{...n,iconName:t}}const Kk={action:{add:YTt,close:aLe,delete:ITt,search:PTt,refresh:evr,undo:zOe,redo:Amt,build:K0r,export:Q0r,select:Dmt},transport:{play:R0r,pause:Y0r,restart:Amt,stop:NTt,step:M0r},content:{project:$Oe,folder:uee,file:$Tt,source:uLe,scene:dLe,entity:aR,component:GB,camera:aye,light:iLe,image:iB,audio:cLe,data:OTt,code:oLe,stateMachine:MTt},status:{success:sLe,info:R$,warning:fee,error:BTt,visible:nLe,hidden:fLe,locked:Rme,unlocked:qOe},viewport:{zoomIn:b0r,zoomOut:y0r,pan:P0r,frame:h0r,projection:fy("viewport-projection",C5e),projectionOrthographic:fy("viewport-orthographic",C5e),camera:fy("viewport-camera",kmt),cameraView:fy("viewport-camera-view",kmt),cameraLocked:fy("viewport-camera-locked",Rme),cameraUnlocked:fy("viewport-camera-unlocked",qOe)},modeling:{extrude:fy("mesh-extrude",jTt),inset:fy("mesh-inset",G0r),bevel:fy("mesh-bevel",tvr),loopCut:fy("mesh-loop-cut",S0r),knife:fy("mesh-knife",U0r),smooth:fy("mesh-smooth",g0r),shrinkFatten:fy("mesh-shrink-fatten",qTt),subdivide:fy("mesh-subdivide",F0r)},tool:{extension:GB,select:fy("tool-select-box",Dmt),move:VTt,rotate:ATt,scale:fy("tool-scale",w0r),transform:fy("tool-transform",I0r),snap:O0r,frame:XTt,grid:C5e,profiler:HTt},panel:{outliner:fy("outliner",QTt),properties:fy("properties",UTt),"folder-open":$Oe,"cubes-stacked":zTt,users:x0r,list:vZ,"rotate-left":zOe}};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=FCr();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 LCr={minHeight:"var(--volter-panel-header-height)",padding:`0 ${R_[4]}px`,color:Go.content.muted,fontSize:"var(--volter-font-base)",fontWeight:E_e.semibold,textTransform:"uppercase",display:"flex",alignItems:"center",gap:R_[2],userSelect:"none"},BCr={...LCr,background:"var(--volter-surface-sticky)",borderBottom:"1px solid var(--volter-structural-divider)",flexShrink:0};function Uye({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:{...BCr,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 $Cr({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(d4t,{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 qCr(t){return t==="top"?"bottom":t==="bottom"?"top":t==="left"?"right":"left"}function zCr(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 VCr(t,n,s){let c=n.left+(n.width-s.width)/2,d=n.top+(n.height-s.height)/2;return t==="top"?d=n.top-s.height-VI:t==="bottom"?d=n.bottom+VI:t==="left"?c=n.left-s.width-VI:c=n.right+VI,{left:Math.max(zI,Math.min(c,window.innerWidth-s.width-zI)),top:Math.max(zI,Math.min(d,window.innerHeight-s.height-zI)),ready:!0}}function mO({text:t,hotkey:n,children:s,position:c="bottom",delay:d=400}){const m=Ye.useId(),g=Ye.useRef(null),S=Ye.useRef(null),k=Ye.useRef(null),A=Ye.useRef(!1),F=Ye.useRef(!1),[D,J]=Ye.useState(!1),[$,G]=Ye.useState(null),[se,pe]=Ye.useState({left:0,top:0,ready:!1});Ye.useLayoutEffect(()=>{G(g.current?.closest(".volter-editor-theme")??null)},[]),Ye.useEffect(()=>()=>{k.current&&clearTimeout(k.current)},[]);const ue=()=>{k.current&&clearTimeout(k.current),k.current=null,J(!1)},Ce=()=>{!A.current&&!F.current&&ue()},De=be=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{pe(X=>({...X,ready:!1})),J(!0)},be)};Ye.useLayoutEffect(()=>{if(!D)return;const be=()=>{const X=g.current?.getBoundingClientRect(),we=S.current?.getBoundingClientRect();if(!X||!we)return;const qe=zCr(c,X,we)?c:qCr(c);pe(VCr(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 UCr({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 I5e={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},i0n=Go.typography.sans,o0n=Go.typography.mono;function s0n(t,n){t.onChange(n)}function a0n(t,n){(t.onChangeEnd??t.onChange)(n)}const c0n={display:"flex",alignItems:"center",gap:4},l0n={fontSize:"var(--volter-font-sm)",color:Go.content.muted,marginBottom:2},JCr={fontSize:"var(--volter-font-base)",fontWeight:600,color:Go.content.muted,textTransform:"uppercase",letterSpacing:.4},WCr=72;function u0n({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 f0n(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 N5e=22,jht={width:N5e,height:N5e,flex:`0 0 ${N5e}px`,borderRadius:I5e.radiusSmall,border:`1px solid ${I5e.border}`,background:I5e.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 HCr({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:jht,"data-testid":`${g}-thumb`}):q.jsx("span",{style:jht,"aria-hidden":"true"}),q.jsxs(Iw,{"data-testid":g,disabled:d,value:t,title:t||"No texture assigned",onChange:k=>n(k.target.value),style:{flex:1,minWidth:0},children:[q.jsx("option",{value:"",children:"—"}),S.map(k=>q.jsx("option",{value:k,children:k},k))]}),q.jsx(dm,{"data-testid":`${g}-clear`,"aria-label":"Clear this texture slot",title:"Clear this texture slot",disabled:d||!t,onClick:()=>n(""),children:q.jsx(dc,{icon:aLe})})]}),m&&q.jsx("span",{"data-testid":`${g}-note`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.muted},children:m})]})}function MRe({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 k_e=new Map,jRe=new Set;let p4t=0;function Lht(){p4t+=1;for(const t of jRe)t()}function d0n(t,n){return k_e.set(t,n),Lht(),()=>{k_e.get(t)===n&&(k_e.delete(t),Lht())}}function TBe(t){return jRe.add(t),()=>jRe.delete(t)}function o$(){return p4t}function s2(t){return t?k_e.get(t)??null:null}const QL=new Map;function p0n(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 GCr(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,fhe=new Set,A_e=new Set;let _4t=0;function m4t(){_4t+=1;for(const t of[...TB])t()}function KCr(t,n){return xZ.set(t,n),m4t(),()=>{xZ.get(t)===n&&xZ.delete(t)}}function XCr(t){xZ.has(t)&&m4t()}function YCr(t){return TB.add(t),()=>{TB.delete(t)}}function Bht(){return _4t}function cQ(t){return xZ.get(t)}function h4t(t,n=1e4){const s=cQ(t);return s!==void 0?Promise.resolve(s):new Promise(c=>{const d=()=>{const g=cQ(t);g!==void 0&&(clearTimeout(m),TB.delete(d),c(g))},m=setTimeout(()=>{TB.delete(d),c(void 0)},n);TB.add(d)})}function g4t(t){fhe.add(t);for(const n of[...A_e])n();return()=>{fhe.delete(t)}}function y4t(t,n=1e4){return fhe.has(t)?Promise.resolve(!0):new Promise(s=>{const c=()=>{fhe.has(t)&&(clearTimeout(d),A_e.delete(c),s(!0))},d=setTimeout(()=>{A_e.delete(c),s(!1)},n);A_e.add(c)})}async function CBe(t){if(GCr(t)&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}let LRe=null;const ZY=new Map;let YO=[];function ZCr(t){if(LRe=t,!t)return;const n=YO;YO=[];for(const s of n)v4t(t,s)}function v4t(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 QCr=0;function s$(t){const n=t.id??`notification-${++QCr}`,s={...t,id:n};return LRe?v4t(LRe,s):(YO=[...YO.filter(c=>c.id!==n),s],()=>EBe(n))}function EBe(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},dhe=!0,kpe=null,D_e=null,RG=null,P_e=!1;const QY=new Set;function eEr(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 phe(t){Xk=t;for(const n of QY)n()}async function tEr(){const t=await fetch("/__editor/gameplay-sessions");return(await L_(t,"Could not load Gameplay Sessions")).sessions}async function rEr(t){return L_(await fetch(`/__editor/gameplay-sessions/${encodeURIComponent(t)}`),"Could not load the selected Gameplay Session").then(n=>n.session)}async function nEr(){try{const t={sessions:await tEr()},n=eEr(t.sessions,Xk.sessions,D_e),s=n.sessionId;n.latestAppeared&&(dhe=!0),D_e=s;const c=s?await rEr(s):null;if(D_e!==s){P_e=!0;return}const d=t.sessions.map(S=>S.id===c?.id?c:S),m=c?.durationMs??0,g=dhe?m:Math.min(Xk.cursorMs,m);phe({sessions:d,selectedSessionId:s,selectedSession:c,cursorMs:g,liveEdgeMs:m,loading:!1,error:null})}catch(t){phe({...Xk,loading:!1,error:t instanceof Error?t.message:String(t)})}}function lQ(){return RG?(P_e=!0,RG):(RG=nEr().finally(()=>{RG=null,P_e&&(P_e=!1,lQ())}),RG)}function iEr(t){return QY.add(t),QY.size===1&&(lQ(),kpe=window.setInterval(()=>void lQ(),1e3)),()=>{QY.delete(t),QY.size===0&&kpe!==null&&(window.clearInterval(kpe),kpe=null)}}function oEr(t){const n=Xk.sessions.find(s=>s.id===t);n&&(D_e=n.id,dhe=!0,phe({...Xk,selectedSessionId:n.id,selectedSession:n,cursorMs:n.durationMs,liveEdgeMs:n.durationMs}),lQ())}function sEr(t){const n=Math.max(0,Math.min(t,Xk.liveEdgeMs));dhe=Xk.liveEdgeMs-n<250,phe({...Xk,cursorMs:n})}const b4t={getSnapshot:()=>Xk,subscribe:iEr,select:oEr,seek:sEr,refresh:lQ};let S4t=null;const BRe=new Set,_0n={getSnapshot:()=>S4t,subscribe(t){return BRe.add(t),()=>BRe.delete(t)}};function m0n(t){S4t=t;for(const n of BRe)try{n()}catch{}}let ZO={phase:null,at:0,run:0},dN=ZO;const $Re=new Map;let x4t=null;function aEr(t){x4t=t,w4t(ZO)}function w4t(t){ZO=t;try{x4t?.(t)}catch{}}function uQ(){const t=[...$Re.values()].at(-1),n=t?{...t,run:dN.run}:dN;n.phase===ZO.phase&&n.at===ZO.at&&n.run===ZO.run||w4t(n)}function h0n(t=Date.now()){return dN={phase:null,at:t,run:dN.run+1},uQ(),ZO.run}function g0n(t,n=Date.now()){dN={phase:t,at:n,run:dN.run},uQ()}function y0n(t=Date.now()){dN={phase:null,at:t,run:dN.run},uQ()}function kBe(t,n=Date.now()){const s=Symbol();return $Re.set(s,{phase:t.slice(0,160),at:n}),uQ(),()=>{$Re.delete(s)&&uQ()}}const cEr=Ye.lazy(()=>lo(()=>import("./GameplaySessionTimeline-BAGmiZ7l.js"),__vite__mapDeps([254,1,2,3,4,20,21,142,127,143,22,23])).then(t=>({default:t.GameplaySessionTimeline})));class ABe 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 lEr({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&&g4t($.current)},ue=G.appendChild(document.createElement("div"));ue.style.display="contents";const Ce=tLe.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:Qye(),surfaces:_Be,account:tBe(),work:Ce=>{D.current?.(),D.current=Ce===null?null:kBe(`building ${Ce.replace(/^building /,"")}`)},notify:Ce=>s$({...Ce,id:`contribution:${t.id}:${Ce.title}`,...Ce.tone==="warning"?{fades:!0}:{}}),...t.point==="workspace.analytics"?{gameplaySessions:b4t}:{play:Oye()},...s?{documentId:s,publishContext:Ce=>KCr(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(uEr,{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 uEr({documentId:t,children:n}){return Ye.useEffect(()=>g4t(t),[t]),q.jsx(q.Fragment,{children:n})}function IR({contribution:t,Component:n,documentId:s,active:c,document:d}){const m=Ye.useSyncExternalStore(Aye,cN,cN),g=Ye.useSyncExternalStore(Rye,lN,lN),S=t.point==="workspace.analytics"?"gameplay-sessions":g;return q.jsxs("div",{"data-testid":`tool-panel-${t.id}`,style:{flex:1,minHeight:0,overflow:t.point==="workspace.analytics"?"visible":"auto",color:Go.content.primary,display:"flex",flexDirection:"column"},children:[t.point==="workspace.analytics"?q.jsx(Ye.Suspense,{fallback:null,children:q.jsx(cEr,{})}):null,q.jsx(ABe,{file:t.file,children:q.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:q.jsx(lEr,{contribution:t,...n?{Component:n}:{},accountRevision:m,playKey:S,...s?{documentId:s}:{},...c!==void 0?{active:c}:{},...d?{document:d}:{}})})})]})}function fEr({id:t,title:n,file:s,tool:c,Component:d,adapter:m,nodeId:g}){Ye.useSyncExternalStore(Aye,cN,cN),Ye.useSyncExternalStore(Rye,lN,lN);const S=g?m.hierarchy.node(g):null;return q.jsx("div",{className:"volter-inspector-tool-section","data-testid":`inspector-tool-${t}`,children:q.jsx(ABe,{file:s,children:q.jsx(Kvr,{adapter:m,nodeId:g,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:Qye(),surfaces:_Be,account:tBe(),play:Oye(),node:S,nodeId:g,adapter:m})})})})}const dEr=Symbol("volter.inspection.mixed");function qRe(t){return t===dEr}function DBe(t){return t.readonlyReason??"This field is read-only."}function PBe(t){return"column"}function IBe(t,n){return t.quickActions.filter(s=>s.placement===n)}const zRe="preview",$ht="transform",O5e="properties",T4t="stories",v0n="story-args",b0n="Story Args";function qht(t){return`group:${t}`}const C4t=100,pEr=1e3,fQ=2e3,E4t=3e3,_Er=4e3,mEr=5e3,hEr={nullSubjectId:null};function k4t(t){return"sections"in t}const I_e=[];let A4t=0;const VRe=new Set;function zht(){A4t++;for(const t of VRe)t()}function gEr(t){return VRe.add(t),()=>{VRe.delete(t)}}function Vht(){return A4t}function D4t(t){return I_e.push(t),zht(),()=>{const n=I_e.indexOf(t);n>=0&&(I_e.splice(n,1),zht())}}function Uht(t,n,s=hEr){return I_e.filter(c=>c.match(t,n,s))}function P4t(t){if(typeof t!="object"||t===null)return!1;const n=t.name;return n==="Canceled"||n==="CancellationError"||n==="AbortError"}const yEr=1e3;class vEr{_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>yEr){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 vEr;typeof window<"u"&&(window.__volterEditorConsole=Qs);const Jht=1e3,Wht=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 bEr(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>Jht?`${s.slice(0,Jht)}…`:s}function URe(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 bEr(k)}}),m=s.slice(c);return m.length===0?d:`${d} ${m.map(CB).join(" ")}`}function SEr(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 JRe(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=bYr(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">${p4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const kge=new Set;function pZr(t){return kge.add(t),()=>{kge.delete(t)}}function _Zr(){try{window.focus()}catch{}if(kge.size===0){window.location.reload();return}for(const t of[...kge])t()}function mZr(t,n,s={}){t.addEventListener("tab-refocus",c=>aZr(c)),t.addEventListener("tab-yield",c=>cZr(n,c)),t.addEventListener("tab-close",()=>dZr(n,s)),t.addEventListener("tab-adopt",()=>_Zr())}const $k="/__editor",hZr=globalThis,md=hZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Z0e=$At,gZr=swr;function yZr(t,n,s){md?.reportPhase?.(t,n,s)}function vZr(t){md?.reportCensus?.(t)}function bZr(){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 SZr(){const t=new URLSearchParams({clientId:xC,participantId:Z0e,displayName:gZr});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 jRt=new Set(["editor-command"]);function LRt(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 xZr(t){P$!==t&&(P$=t,mZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),LRt(t,n=>!jRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(SZr()),md&&(md.source=kw)));const t=kw;xZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),jRt.has(c)&&LRt(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 wZr(){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 TZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=jze(c=>{c!==null&&c.reason!=="server-gone"&&bZr()}),s=EZr();return()=>{s(),n(),t.close()}}const CZr=5;function EZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=CZr||(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;P4t(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 kZr=2e3,AZr={"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(AZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function bN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function DZr(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(BSt,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,kZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(BSt,m)}function PZr(t){bN("tab-route",{clientId:xC,participantId:Z0e,route:t})}function Lze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function IZr(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 Lze(s)}}async function Q0e(t,n){if(t!=="public")return IZr(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 Lze(s)}}async function BRt(){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 Lze(t)}}function c2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class qSt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function zSt(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 Age=new Map,Dge=new Set;function Bze(t,n){return`${t}:${n}`}function l2n(t,n){return Age.get(Bze(t,n))??null}function u2n(t){return Dge.add(t),()=>Dge.delete(t)}async function f2n(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Age.clear();for(const s of n.downloaded)Age.set(Bze(s.source,s.id),`/${s.path}`);for(const s of Dge)s()}catch{}}async function d2n(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 p2n(t,n){return NZr(t,n)}async function NZr(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 qSt("offline",m instanceof Error?m.message:zSt("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 qSt(g,m?.error??zSt(g))}return(await c.json()).files}async function _2n(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 m2n(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){Age.set(Bze(t.source,t.id),`/${s.path}`);for(const c of Dge)c()}return s}async function h2n(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 g2n(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 y2n(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 OZr(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 RZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw $Fe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw $Fe(`HTTP ${t.status}`);try{CN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return OZr(await t.json())}catch{return null}}async function $ze(){const t=await RZr();if(!t)throw b4r();return S4r(t),t}async function FZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function v2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,"Could not remove recent project")}const VSt={reopenLastProject:!1};async function MZr(){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:VSt.reopenLastProject}}catch{return{...VSt}}}async function b2n(t){const n=await fetch(`${Jl}/launcher-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return await L_(n,"Could not save launcher settings")}async function S2n(t,n,s,c,d,m=[]){const g=await fetch(`${Jl}/create-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,location:n,template:s,...c?{exampleId:c}:{},...d?{presentation:d}:{},...m.length>0?{additions:m}:{}})});return of(g,"Could not create the project"),await g.json()}async function x2n(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 w2n(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 T2n(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 TMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,`Could not reveal ${t}`)}async function C2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return CN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function qze(){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 E2n(){const t=await qze();return t.status==="project"?t.project:null}async function k2n(t){const n=await $ze(),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 $Fe(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"&&g4r(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&&S$e(d.config,n),d}function eve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function jZr(t){try{const n=await fetch(eve(t));if(n.ok)return await n.text()}catch{}return null}async function CMe(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 LZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function $Rt(t){try{const n=await fetch(eve(t),{method:"HEAD"});return n.ok?LZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function BZr(t){return await $Rt(t)==="present"}async function A2n(t,n,s){try{const c=s==="base64"?P4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function qRt(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 D2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function $Zr(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 qZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let USt=!1;async function zZr(t,n={}){try{const s=await tPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return CN(s,"Could not save editor state"),!0}catch(s){return USt||(USt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Pge=null;async function zRt(){for(;fZ;){const t=fZ;fZ=null,await bN("state",{...t,_clientId:xC})}Pge=null,fZ&&(Pge=zRt())}function JSt(t){return fZ=t,Pge??=zRt(),Pge}async function VZr(t){await bN("command-received",{_requestId:t,_clientId:xC})}async function i_e(t){await bN("command-listener",{_clientId:xC,attached:t})}let UZr=0;function JZr(t){const n=++UZr;yZr(t.phase,xC,n),bN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function WSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await DZr(t,m):await bN("command-result",m)}async function rte(t,n){of(t,`gameplay recording ${n} failed`);const s=await t.json().catch(()=>({}));if(!t.ok)throw new Error(`gameplay recording ${n} failed: ${typeof s.error=="string"?s.error:`HTTP ${t.status}`}`);return s}async function P2n(t,n){const s=await fetch(`${Jl}/recording/start`,{...n?{signal:n}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});return rte(s,"start")}async function I2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/dom?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await rte(m,"DOM event upload")}async function N2n(t,n,s,c){const d=new URLSearchParams({id:t.id,name:n}),m=await fetch(`${Jl}/recording/asset?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":s.type||"application/octet-stream"},body:s});await rte(m,"replay asset upload")}async function O2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/chunk?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await rte(m,"chunk upload")}async function R2n(t,n,s,c){const d=await fetch(`${Jl}/recording/finish`,{...s?{signal:s}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id,reason:n??null,replay:c??null})});await rte(d,"finish")}async function F2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function M2n(){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 WZr(){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 VRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function HZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function GZr(){const t=await BR("");return VRt(t)}async function KZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function HSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function XZr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function YZr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return VRt(n).worktrees}async function ZZr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Ige=null;const EMe=new Set,kMe=new Set;function QZr(t){Ige=t;for(const n of EMe)n(t);for(const n of kMe)n()}function Ih(){return Ige}function j2n(t){return EMe.add(t),Ige&&t(Ige),()=>{EMe.delete(t)}}function o_e(t){return kMe.add(t),()=>{kMe.delete(t)}}const nA="references",URt=["public",nA],zze=`/project-game-static/${nA}/`;function Nge(t,n){return`${t}/${n}`}function tve(t,n){return t===nA?`${zze}${n}`:`/${n}`}function eQr(t){return t.startsWith(zze)}function tQr(t){const n=t.startsWith("/")?t:`/${t}`;if(eQr(n))return Nge(nA,n.slice(zze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function JRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(rQr,{assetPath:t,kind:n,sizeBytes:s},t)}function rQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=tQr(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 Q0e(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 tOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>kTr),void 0)).AssetEditorShell})),nQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-DIuzLzET.js"),__vite__mapDeps([256,1,2,3,4,20,21,22,23]))).AudioViewer})),iQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-BNFjkWbV.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).ImageViewer})),oQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-DARXMIes.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).VideoViewer})),sQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-BkdsklFn.js").then(n=>n.a),__vite__mapDeps([259,1,2,3,4,20,21]))).JsonAssetDocument})),GSt=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-BPAK7Ras.js"),__vite__mapDeps([260,1,2,3,4,20,21,261,22,23]))).OnlineAssetDetail})),aQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-C6gxbMdi.js"),__vite__mapDeps([262,1,2,3,4,20,21,259,256,22,23,257]))).SourceAssetViewer})),G1=new Map,WRt=new Map,rOe=new Map;let HRt=0;const AMe=new Set;function nR(){HRt++;for(const t of AMe)t()}function cQr(t){return AMe.add(t),()=>{AMe.delete(t)}}function lQr(){return HRt}function uQr(t){return G1.get(t)}function GRt(t){return G1.has(t)}function fQr(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 Vze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&rOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};fQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:yQr,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=rOe.get(S);rOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function sN(t,n,s={}){const c=HYr(t),{frameName:d}=Y0e(t),m=WRt.get(AO(t))??t;return Vze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}wee({kind:"asset",owner:"asset-documents",restore:async({state:t})=>{const n=t,s=typeof n?.path=="string"?n.path:null,c=typeof n?.assetKind=="string"?n.assetKind:null;return!s||!c||!await BZr(s)?!1:(sN(s,c),!0)}});async function KRt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=dBe(t);return s?n!=="model"||s.adapter!==null:!1},PR)}kN({id:"asset-editor:entity",owner:"asset-documents",open:(t,{entityId:n,title:s})=>Vze(`asset-editor:entity:${n}`,s,{assetPath:"",kind:"model",entityId:n},{origin:`entity:${n}`})});kN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Ize(Y0(c),n.entityId)?.assetDocument?.open()??null;if(!d)throw new Error(`Scene entity is not available: ${n.entityId}`);return d}const s=n.path;return s===void 0?null:sN(s,KSt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":KSt(n.assetKind,n.path??"");if(!await KRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await CBe(t)}});function KSt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??dQr(n)}function dQr(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 pQr(t,n){const s=nZr(n);return Vze(`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 _Qr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function mQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=AO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===AO(n.oldPath)){const d=`/${AO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),WRt.set(AO(d),t),j3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>AO(d)===c)?(G1.set(t,{...s,unavailableReason:`The source ${s.assetPath} was deleted. Undo the deletion or close this editor.`}),nR()):n.type==="change"&&n.paths?.some(d=>AO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function hQr(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 nOe(t){return{id:"source",title:"Source",icon:JTt,order:fQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function gQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(tOe,{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:C_e},children:n.unavailableReason})});const c=hQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(tOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:z0r,order:fQ,body:{kind:"custom",render:()=>q.jsx(GSt,{online:k,mode:"inspector",onResolved:A=>_Qr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(GSt,{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:C_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(eOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(eOe,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:C_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(eOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(aQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(sQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[nOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(iQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(oQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(nQr,{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(tOe,{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:JTt,order:fQ,body:{kind:"custom",render:()=>q.jsx(JRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[nOe(n)]:[]]:[nOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function yQr({documentId:t,active:n}){Ye.useSyncExternalStore(cQr,lQr),Ye.useEffect(()=>{const c=d=>{mQr(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:bBe[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(gQr,{id:t,spec:s,active:n})}):q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"This asset document is no longer available."})})}function AO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const XRt=["three","pixi","dom","babylon","phaser"],Uze=Object.freeze({up:"y",groundHeight:0}),YRt=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(),vQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),bQr=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(XRt).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(rBe)).describe("Anchor kinds this region’s writer serves"),basis:vQr.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(YRt).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(),SQr=AR([Dg("manifest-roots"),Gd(bQr).min(1)]),xQr=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(YRt).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."}),wQr=wD(bo().min(1),xQr).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 Jze(t,n={}){return t.map(s=>({...CQr(s),...TQr(n[s.id])}))}function TQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function ZRt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function CQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Uze;return s?n==="dom"?{id:t.id,surface:n,substrate:c,dialect:"jsx",anchors:["source-prop","source-structure"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:n==="three"?"r3f":"pixi-react",anchors:["source-prop","source-structure","construction-literal"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:null,anchors:["live-only"],basis:d}}const VQ="exported-composition-regions",EQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),kQr=AR([Pa({kind:Dg("root-mount")}).strict(),Pa({kind:Dg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:_y().optional()}).strict(),Pa({kind:Dg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Dg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Dg("none"),reason:bo().min(1)}).strict()]),XSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),AQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:_y(),reach:kQr,source:XSt.optional(),isolationSetup:XSt.optional(),finder:bo().min(1).optional()}).strict(),DQr=Pa({entries:Gd(AQr).optional(),find:Gd(EQr).optional(),default:bo().min(1).optional()}).strict(),QRt=["command","state"],PQr="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.",IQr=Pa({id:bo().min(1),kind:ed(QRt,{error:()=>PQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:YI(t=>typeof t=="function",{message:"observation.answer must be a function evaluated against the mounted game"}).optional()}).strict().refine(t=>t.kind==="command"||t.locus===void 0,{path:["locus"],message:"observation.locus is valid only for a command declaration"}),NQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],OQr=Pa({root:bo().min(1),actions:YI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:YI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:YI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),RQr=Pa({Layout:YI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:YI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:YI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","keymap must be an imported KeymapContribution object").optional(),workspace:bo().min(1).optional(),inspector:ed(["column","properties","card"]).optional(),playUtilities:Gd(bo().min(1)).optional()}).strict(),FQr="`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.",eFt=Pa({editor:RQr.optional(),regions:SQr.optional(),regionIncludes:wQr.optional(),documents:DQr.optional(),observation:Gd(IQr).optional(),input:OQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:FQr});function Wze(t={}){const n=eFt.safeParse(t);if(!n.success)throw new Error(`volter.adapter.ts: invalid adapter definition — ${n.error.issues.map(s=>`${s.path.join(".")||"(root)"}: ${s.message}`).join("; ")}`);return Object.freeze({...t.editor?{editor:Object.freeze({...t.editor,...t.editor.playUtilities?{playUtilities:Object.freeze([...t.editor.playUtilities])}:{}})}:{},regions:t.regions??"manifest-roots",regionIncludes:Object.freeze({...t.regionIncludes??{}}),documents:Object.freeze({...t.documents??{}}),observation:Object.freeze([...t.observation??[]]),...t.input?{input:t.input}:{}})}function DO(t={}){return Wze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:VQ},{finder:"prefabsFromStories"}]}})}function DMe(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 Wze(t)}const L2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:NQr,AdapterDefinitionSchema:eFt,EXPORTED_COMPOSITION_REGIONS:VQ,NATIVE_REGION_BASIS:Uze,OBSERVATION_KINDS:QRt,SUBSTRATE_NAMES:XRt,defineAdapter:Wze,nativeAdapter:DO,parseAdapterDefinition:DMe,regionsFromManifestRoots:Jze,unmatchedRegionIncludeIds:ZRt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Hze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Gze(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 Hze(s)}function tFt(){return[...MZ.keys()]}function rFt(t,n){const s=MZ.get(t.finder);if(!s){const d=tFt();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 B2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Gze,registerFinder:Hze,registeredFinderNames:tFt,runRegisteredFinder:rFt},Symbol.toStringTag,{value:"Module"}));function YSt(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 iOe={exports:{}};const MQr={},jQr=Object.freeze(Object.defineProperty({__proto__:null,default:MQr},Symbol.toStringTag,{value:"Module"})),wI=n0r(jQr);var ZSt;function LQr(){return ZSt||(ZSt=1,(function(t){var n={};/*! *****************************************************************************
942
+ </style><main><div class="brand-mark">${p4r()}</div><h1>Session ended</h1><p>This editor session has ended. You can close this tab.</p></main>`})}))}const kge=new Set;function pZr(t){return kge.add(t),()=>{kge.delete(t)}}function _Zr(){try{window.focus()}catch{}if(kge.size===0){window.location.reload();return}for(const t of[...kge])t()}function mZr(t,n,s={}){t.addEventListener("tab-refocus",c=>aZr(c)),t.addEventListener("tab-yield",c=>cZr(n,c)),t.addEventListener("tab-close",()=>dZr(n,s)),t.addEventListener("tab-adopt",()=>_Zr())}const $k="/__editor",hZr=globalThis,md=hZr.__VOLTER_EDITOR_PRESENCE_BOOTSTRAP__,xC=md?.clientId??globalThis.crypto?.randomUUID?.()??`editor-${Date.now()}`,Z0e=$At,gZr=swr;function yZr(t,n,s){md?.reportPhase?.(t,n,s)}function vZr(t){md?.reportCensus?.(t)}function bZr(){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 SZr(){const t=new URLSearchParams({clientId:xC,participantId:Z0e,displayName:gZr});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 jRt=new Set(["editor-command"]);function LRt(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 xZr(t){P$!==t&&(P$=t,mZr(t,$k,{tabId:md?.tabId,epoch:md?.epoch}),LRt(t,n=>!jRt.has(n)))}function jD(){kw||(md?.source?(kw=md.source,md.pageOwned&&eB++):(kw=new EventSource(SZr()),md&&(md.source=kw)));const t=kw;xZr(t),eB++;const n=[];let s=!1;return{addEventListener(c,d){const m=d;t.addEventListener(c,m),n.push({type:c,listener:m}),jRt.has(c)&&LRt(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 wZr(){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 TZr(){if(typeof EventSource>"u")return()=>{};const t=jD(),n=jze(c=>{c!==null&&c.reason!=="server-gone"&&bZr()}),s=EZr();return()=>{s(),n(),t.close()}}const CZr=5;function EZr(){if(typeof window>"u")return()=>{};let t=0;const n=d=>{d===""||t>=CZr||(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;P4t(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 kZr=2e3,AZr={"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(AZr[t],{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,...md?.controlLifecycle?{_controlLifecycle:md.controlLifecycle}:{}})})}catch{}}async function bN(t,n){(kw??md?.source??null)?.send?.(t,n)||await FZ(t,n)}async function DZr(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(BSt,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,kZr)})]),S!==void 0&&clearTimeout(S),k||await FZ("command-result",n),s.removeEventListener(BSt,m)}function PZr(t){bN("tab-route",{clientId:xC,participantId:Z0e,route:t})}function Lze(t){return{ok:!1,reason:t instanceof Error?t.message:String(t)}}async function IZr(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 Lze(s)}}async function Q0e(t,n){if(t!=="public")return IZr(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 Lze(s)}}async function BRt(){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 Lze(t)}}function c2n(t){return`${Jl}/download?file=${encodeURIComponent(t)}`}class qSt extends Error{constructor(n,s){super(s),this.code=n,this.name="AssetDeliveryError"}}function zSt(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 Age=new Map,Dge=new Set;function Bze(t,n){return`${t}:${n}`}function l2n(t,n){return Age.get(Bze(t,n))??null}function u2n(t){return Dge.add(t),()=>Dge.delete(t)}async function f2n(){try{const t=await fetch(`${Jl}/asset-library/downloaded`),n=await L_(t,"Could not read the downloaded-asset list");Age.clear();for(const s of n.downloaded)Age.set(Bze(s.source,s.id),`/${s.path}`);for(const s of Dge)s()}catch{}}async function d2n(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 p2n(t,n){return NZr(t,n)}async function NZr(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 qSt("offline",m instanceof Error?m.message:zSt("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 qSt(g,m?.error??zSt(g))}return(await c.json()).files}async function _2n(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 m2n(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){Age.set(Bze(t.source,t.id),`/${s.path}`);for(const c of Dge)c()}return s}async function h2n(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 g2n(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 y2n(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 OZr(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 RZr(){let t;try{t=await fetch(`${Jl}/compatibility`,{cache:"no-store"})}catch(n){throw $Fe(n instanceof Error?n.message:String(n))}if(t.status>=500)throw $Fe(`HTTP ${t.status}`);try{CN(t,`GET ${Jl}/compatibility`)}catch{return null}try{return OZr(await t.json())}catch{return null}}async function $ze(){const t=await RZr();if(!t)throw b4r();return S4r(t),t}async function FZr(){try{const t=await fetch(`${Jl}/recent-projects`);return(await L_(t,"Could not list recent projects")).projects}catch{return[]}}async function v2n(t){const n=await fetch(`${Jl}/recent-projects`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,"Could not remove recent project")}const VSt={reopenLastProject:!1};async function MZr(){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:VSt.reopenLastProject}}catch{return{...VSt}}}async function b2n(t){const n=await fetch(`${Jl}/launcher-settings`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return await L_(n,"Could not save launcher settings")}async function S2n(t,n,s,c,d,m=[]){const g=await fetch(`${Jl}/create-project`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,location:n,template:s,...c?{exampleId:c}:{},...d?{presentation:d}:{},...m.length>0?{additions:m}:{}})});return of(g,"Could not create the project"),await g.json()}async function x2n(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 w2n(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 T2n(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 TMe(t){const n=await fetch(`${Jl}/reveal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t})});CN(n,`Could not reveal ${t}`)}async function C2n(t){try{const n=await fetch(`${Jl}/save-thumbnail`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:t})});return CN(n,"Could not save the project thumbnail"),!0}catch{return!1}}async function qze(){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 E2n(){const t=await qze();return t.status==="project"?t.project:null}async function k2n(t){const n=await $ze(),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 $Fe(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"&&g4r(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&&S$e(d.config,n),d}function eve(t){return/^(\/|https?:|data:|blob:)/.test(t)?t:`/${t}`}async function jZr(t){try{const n=await fetch(eve(t));if(n.ok)return await n.text()}catch{}return null}async function CMe(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 LZr(t){return(t.headers.get("content-type")??"").toLowerCase().includes("text/html")}async function $Rt(t){try{const n=await fetch(eve(t),{method:"HEAD"});return n.ok?LZr(n)?"absent":"present":"absent"}catch{return"unreachable"}}async function BZr(t){return await $Rt(t)==="present"}async function A2n(t,n,s){try{const c=s==="base64"?P4r(n):n;return await gR().write(t,c),!0}catch{return!1}}async function qRt(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 D2n(){const t=await fetch(`${Jl}/validation-log`);return(await L_(t,"Could not read the server validation log")).entries??[]}async function $Zr(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 qZr(){try{const t=await fetch(`${Jl}/editor-state`);return await L_(t,"Could not read editor state")}catch{return{}}}let USt=!1;async function zZr(t,n={}){try{const s=await tPt(`${Jl}/editor-state`,JSON.stringify(t),n.leaving===!0);return CN(s,"Could not save editor state"),!0}catch(s){return USt||(USt=!0,console.error(s instanceof Error?s.message:String(s))),!1}}let fZ=null,Pge=null;async function zRt(){for(;fZ;){const t=fZ;fZ=null,await bN("state",{...t,_clientId:xC})}Pge=null,fZ&&(Pge=zRt())}function JSt(t){return fZ=t,Pge??=zRt(),Pge}async function VZr(t){await bN("command-received",{_requestId:t,_clientId:xC})}async function i_e(t){await bN("command-listener",{_clientId:xC,attached:t})}let UZr=0;function JZr(t){const n=++UZr;yZr(t.phase,xC,n),bN("play-phase",{_clientId:xC,...t,source:xC,sequence:n})}async function WSt(t,n,s,c,d=!1){const m={_requestId:t,_clientId:xC,ok:n,error:s,data:c};d?await DZr(t,m):await bN("command-result",m)}async function rte(t,n){of(t,`gameplay recording ${n} failed`);const s=await t.json().catch(()=>({}));if(!t.ok)throw new Error(`gameplay recording ${n} failed: ${typeof s.error=="string"?s.error:`HTTP ${t.status}`}`);return s}async function P2n(t,n){const s=await fetch(`${Jl}/recording/start`,{...n?{signal:n}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)});return rte(s,"start")}async function I2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/dom?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await rte(m,"DOM event upload")}async function N2n(t,n,s,c){const d=new URLSearchParams({id:t.id,name:n}),m=await fetch(`${Jl}/recording/asset?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":s.type||"application/octet-stream"},body:s});await rte(m,"replay asset upload")}async function O2n(t,n,s,c){const d=new URLSearchParams({id:t.id,sequence:String(n)}),m=await fetch(`${Jl}/recording/chunk?${d}`,{...c?{signal:c}:{},method:"POST",headers:{"content-type":"application/octet-stream"},body:s});await rte(m,"chunk upload")}async function R2n(t,n,s,c){const d=await fetch(`${Jl}/recording/finish`,{...s?{signal:s}:{},method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id,reason:n??null,replay:c??null})});await rte(d,"finish")}async function F2n(t){await fetch(`${Jl}/recording/abort`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:t.id})}).catch(()=>{})}async function M2n(){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 WZr(){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 VRt(t){return{worktrees:Array.isArray(t.worktrees)?t.worktrees:[],branches:Array.isArray(t.branches)?t.branches:[]}}async function HZr(){const t=await BR("/harnesses");return Array.isArray(t.harnesses)?t.harnesses:[]}async function GZr(){const t=await BR("");return VRt(t)}async function KZr(t){return await BR("/open",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})})}async function HSt(t,n="HEAD"){return await BR("/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:t,from:n})})}async function XZr(t){return BR("/delegate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})}async function YZr(t){const n=await BR("/archive",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t})});return VRt(n).worktrees}async function ZZr(t,n){await BR("/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({worktreeId:t,sessionId:n})})}let Ige=null;const EMe=new Set,kMe=new Set;function QZr(t){Ige=t;for(const n of EMe)n(t);for(const n of kMe)n()}function Ih(){return Ige}function j2n(t){return EMe.add(t),Ige&&t(Ige),()=>{EMe.delete(t)}}function o_e(t){return kMe.add(t),()=>{kMe.delete(t)}}const nA="references",URt=["public",nA],zze=`/project-game-static/${nA}/`;function Nge(t,n){return`${t}/${n}`}function tve(t,n){return t===nA?`${zze}${n}`:`/${n}`}function eQr(t){return t.startsWith(zze)}function tQr(t){const n=t.startsWith("/")?t:`/${t}`;if(eQr(n))return Nge(nA,n.slice(zze.length));const s=t.startsWith("/")?t.slice(1):t;return s.startsWith("public/")?s:`public/${s}`}function JRt({assetPath:t,kind:n,sizeBytes:s}){return q.jsx(rQr,{assetPath:t,kind:n,sizeBytes:s},t)}function rQr({assetPath:t,kind:n,sizeBytes:s}){const c=t.split("#")[0],d=c.startsWith("/")||/^(?:data|blob|https?):/.test(c)?c:`/${c}`,m=tQr(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 Q0e(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 tOe=Ye.lazy(async()=>({default:(await lo(()=>Promise.resolve().then(()=>kTr),void 0)).AssetEditorShell})),nQr=Ye.lazy(async()=>({default:(await lo(()=>import("./AudioViewer-DNVS05h0.js"),__vite__mapDeps([256,1,2,3,4,20,21,22,23]))).AudioViewer})),iQr=Ye.lazy(async()=>({default:(await lo(()=>import("./ImageViewer-zBabH42e.js"),__vite__mapDeps([257,1,2,3,4,20,21,22,23]))).ImageViewer})),oQr=Ye.lazy(async()=>({default:(await lo(()=>import("./VideoViewer-8wjwSQob.js"),__vite__mapDeps([258,1,2,3,4,20,21,22,23]))).VideoViewer})),sQr=Ye.lazy(async()=>({default:(await lo(()=>import("./JsonAssetDocument-Bvi2OLcK.js").then(n=>n.a),__vite__mapDeps([259,1,2,3,4,20,21]))).JsonAssetDocument})),GSt=Ye.lazy(async()=>({default:(await lo(()=>import("./OnlineAssetDetail-y08xFDbC.js"),__vite__mapDeps([260,1,2,3,4,20,21,261,22,23]))).OnlineAssetDetail})),aQr=Ye.lazy(async()=>({default:(await lo(()=>import("./SourceAssetViewer-DSqt4J4X.js"),__vite__mapDeps([262,1,2,3,4,20,21,259,256,22,23,257]))).SourceAssetViewer})),G1=new Map,WRt=new Map,rOe=new Map;let HRt=0;const AMe=new Set;function nR(){HRt++;for(const t of AMe)t()}function cQr(t){return AMe.add(t),()=>{AMe.delete(t)}}function lQr(){return HRt}function uQr(t){return G1.get(t)}function GRt(t){return G1.has(t)}function fQr(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 Vze(t,n,s,c,d={}){typeof document<"u"&&document.activeElement instanceof HTMLElement&&rOe.set(t,document.activeElement);const m=G1.get(t);if(!m)G1.set(t,s),nR();else{const S={...m,...s};fQr(m,S)||(G1.set(t,S),nR())}const g={id:t,title:n,kind:"asset",workspaceRole:"authored-subject",...c?{provenance:c}:{},Content:yQr,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=rOe.get(S);rOe.delete(S),k?.isConnected&&setTimeout(()=>k.focus(),0)}};return ND(g,d)}function sN(t,n,s={}){const c=HYr(t),{frameName:d}=Y0e(t),m=WRt.get(AO(t))??t;return Vze(m,c,d?{assetPath:t,kind:n,displayName:c}:{assetPath:t,kind:n},{sourcePath:t},s)}wee({kind:"asset",owner:"asset-documents",restore:async({state:t})=>{const n=t,s=typeof n?.path=="string"?n.path:null,c=typeof n?.assetKind=="string"?n.assetKind:null;return!s||!c||!await BZr(s)?!1:(sN(s,c),!0)}});async function KRt(t,n){return CC(()=>{if(Pp()!==t)return!1;const s=dBe(t);return s?n!=="model"||s.adapter!==null:!1},PR)}kN({id:"asset-editor:entity",owner:"asset-documents",open:(t,{entityId:n,title:s})=>Vze(`asset-editor:entity:${n}`,s,{assetPath:"",kind:"model",entityId:n},{origin:`entity:${n}`})});kN({id:"asset",owner:"asset-documents",open:(t,n)=>{if(n.entityId){const c=Ih();if(!c)return null;const d=Ize(Y0(c),n.entityId)?.assetDocument?.open()??null;if(!d)throw new Error(`Scene entity is not available: ${n.entityId}`);return d}const s=n.path;return s===void 0?null:sN(s,KSt(n.assetKind,s))},ready:async(t,n)=>{const s=n.entityId?"model":KSt(n.assetKind,n.path??"");if(!await KRt(t,s))throw new Error(`Asset document did not finish mounting its Inspector: ${t}`);await CBe(t)}});function KSt(t,n){return t==="animation"?"source":t==="prefab"?"json":t??dQr(n)}function dQr(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 pQr(t,n){const s=nZr(n);return Vze(`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 _Qr(t,n){const s=G1.get(t);if(!s)return;const{online:c,...d}=s;G1.set(t,{...d,assetPath:n}),nR()}function mQr(t,n){const s=G1.get(t);if(!s?.assetPath)return;const c=AO(s.assetPath);if(n.type==="move"&&n.oldPath&&n.newPath&&c===AO(n.oldPath)){const d=`/${AO(n.newPath)}`;G1.set(t,{...s,assetPath:d}),WRt.set(AO(d),t),j3t(t,d.split("/").pop()??d),nR()}else n.type==="delete"&&n.paths?.some(d=>AO(d)===c)?(G1.set(t,{...s,unavailableReason:`The source ${s.assetPath} was deleted. Undo the deletion or close this editor.`}),nR()):n.type==="change"&&n.paths?.some(d=>AO(d)===c)&&(G1.set(t,{...s,revision:(s.revision??0)+1}),nR())}function hQr(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 nOe(t){return{id:"source",title:"Source",icon:JTt,order:fQ,body:{kind:"custom",render:()=>q.jsx("div",{style:{padding:4},children:t.sourcePath??t.assetPath})}}}function gQr({id:t,spec:n,active:s}){if(n.unavailableReason)return q.jsx(tOe,{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:C_e},children:n.unavailableReason})});const c=hQr(n);if(c==="online"&&n.online){const k=n.online;return q.jsx(tOe,{documentId:t,active:s,type:"online",title:k.name,sections:[{id:"online-asset",title:"Asset",icon:z0r,order:fQ,body:{kind:"custom",render:()=>q.jsx(GSt,{online:k,mode:"inspector",onResolved:A=>_Qr(t,A)})}}],status:`${k.type} · ${k.source}`,children:q.jsx(GSt,{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:C_e},children:["No editor package in this project renders ",d,"."]});if(c==="model")return n.assetPath?q.jsx(eOe,{route:"model",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m):n.entityId?q.jsx(eOe,{route:"entity-model",documentId:t,assetPath:"",entityId:n.entityId,displayName:d,active:s,whenUnregistered:g},m):q.jsx("div",{style:{padding:20,color:C_e},children:"Model source is unavailable."});if(c==="environment")return q.jsx(eOe,{route:"environment",documentId:t,assetPath:n.assetPath,displayName:d,active:s,whenUnregistered:g},m);if(c==="source")return q.jsx(aQr,{documentId:t,assetPath:n.assetPath,active:s},m);if(c==="json")return q.jsx(sQr,{documentId:t,assetPath:n.assetPath,displayName:d,active:s,sections:[nOe(n)],status:`json · ${n.sourcePath??n.displayName??n.assetPath}`},m);let S;switch(c){case"image":S=q.jsx(iQr,{assetPath:n.assetPath,...n.displayName?{displayName:n.displayName}:{}},m);break;case"video":S=q.jsx(oQr,{assetPath:n.assetPath},m);break;case"audio":S=q.jsx(nQr,{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(tOe,{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:JTt,order:fQ,body:{kind:"custom",render:()=>q.jsx(JRt,{assetPath:n.assetPath,kind:c},m)}},...n.sourcePath?[nOe(n)]:[]]:[nOe(n)],status:`${c} · ${n.sourcePath??n.displayName??n.assetPath}`,children:S})}function yQr({documentId:t,active:n}){Ye.useSyncExternalStore(cQr,lQr),Ye.useEffect(()=>{const c=d=>{mQr(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:bBe[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(gQr,{id:t,spec:s,active:n})}):q.jsx("div",{style:{padding:16,color:Zf[2],fontSize:12},children:"This asset document is no longer available."})})}function AO(t){return t.split(/[?#]/,1)[0].replace(/^\/+/,"")}const XRt=["three","pixi","dom","babylon","phaser"],Uze=Object.freeze({up:"y",groundHeight:0}),YRt=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(),vQr=Pa({up:ed(["y","z"]).describe("World axis pointing away from the ground"),groundHeight:fu().describe("Ground offset along `up`, in world units")}).strict(),bQr=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(XRt).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(rBe)).describe("Anchor kinds this region’s writer serves"),basis:vQr.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(YRt).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(),SQr=AR([Dg("manifest-roots"),Gd(bQr).min(1)]),xQr=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(YRt).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."}),wQr=wD(bo().min(1),xQr).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 Jze(t,n={}){return t.map(s=>({...CQr(s),...TQr(n[s.id])}))}function TQr(t){return t?{...t.include?{include:t.include}:{},...t.mounts?{mounts:t.mounts}:{}}:{}}function ZRt(t,n){const s=new Set(t.map(c=>c.id));return Object.keys(n).filter(c=>!s.has(c))}function CQr(t){const n=t.surface,s=t.adapter.type==="builtin",c=n==="canvas"?"pixi":n,d=Uze;return s?n==="dom"?{id:t.id,surface:n,substrate:c,dialect:"jsx",anchors:["source-prop","source-structure"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:n==="three"?"r3f":"pixi-react",anchors:["source-prop","source-structure","construction-literal"],basis:d}:{id:t.id,surface:n,substrate:c,dialect:null,anchors:["live-only"],basis:d}}const VQ="exported-composition-regions",EQr=Pa({finder:bo().min(1).describe("Registered finder name")}).passthrough(),kQr=AR([Pa({kind:Dg("root-mount")}).strict(),Pa({kind:Dg("entrypoint-selection"),selection:bo().min(1),key:bo().min(1),active:_y().optional()}).strict(),Pa({kind:Dg("story"),storyId:bo().min(1)}).strict(),Pa({kind:Dg("game-contract"),sceneId:bo().min(1)}).strict(),Pa({kind:Dg("none"),reason:bo().min(1)}).strict()]),XSt=Pa({path:bo().min(1),export:bo().min(1).optional()}).strict(),AQr=Pa({id:bo().min(1),label:bo().min(1),kind:bo().min(1),region:bo().min(1).nullable(),authorable:_y(),reach:kQr,source:XSt.optional(),isolationSetup:XSt.optional(),finder:bo().min(1).optional()}).strict(),DQr=Pa({entries:Gd(AQr).optional(),find:Gd(EQr).optional(),default:bo().min(1).optional()}).strict(),QRt=["command","state"],PQr="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.",IQr=Pa({id:bo().min(1),kind:ed(QRt,{error:()=>PQr}),description:bo().min(1).optional(),locus:ed(["client","server"]).optional(),answer:YI(t=>typeof t=="function",{message:"observation.answer must be a function evaluated against the mounted game"}).optional()}).strict().refine(t=>t.kind==="command"||t.locus===void 0,{path:["locus"],message:"observation.locus is valid only for a command declaration"}),NQr=["digital","scalar","vector2","pointerDelta","pointerPosition"],OQr=Pa({root:bo().min(1),actions:YI(t=>typeof t=="function",{message:"input.actions must be a function returning the app-owned action vocabulary"}),set:YI(t=>typeof t=="function",{message:"input.set must be a function writing the app-owned input store"}),clear:YI(t=>typeof t=="function",{message:"input.clear must be a function releasing app-owned virtual actions"})}).strict(),RQr=Pa({Layout:YI(t=>typeof t=="function","Layout must be an imported React component").optional(),style:YI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","style must be an imported StyleContribution object").optional(),keymap:YI(t=>typeof t=="object"&&t!==null&&typeof Reflect.get(t,"id")=="string","keymap must be an imported KeymapContribution object").optional(),workspace:bo().min(1).optional(),inspector:ed(["column","properties","card"]).optional(),playUtilities:Gd(bo().min(1)).optional()}).strict(),FQr="`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.",eFt=Pa({editor:RQr.optional(),regions:SQr.optional(),regionIncludes:wQr.optional(),documents:DQr.optional(),observation:Gd(IQr).optional(),input:OQr.optional()}).strict().refine(t=>t.regionIncludes===void 0||Object.keys(t.regionIncludes).length===0||!Array.isArray(t.regions),{message:FQr});function Wze(t={}){const n=eFt.safeParse(t);if(!n.success)throw new Error(`volter.adapter.ts: invalid adapter definition — ${n.error.issues.map(s=>`${s.path.join(".")||"(root)"}: ${s.message}`).join("; ")}`);return Object.freeze({...t.editor?{editor:Object.freeze({...t.editor,...t.editor.playUtilities?{playUtilities:Object.freeze([...t.editor.playUtilities])}:{}})}:{},regions:t.regions??"manifest-roots",regionIncludes:Object.freeze({...t.regionIncludes??{}}),documents:Object.freeze({...t.documents??{}}),observation:Object.freeze([...t.observation??[]]),...t.input?{input:t.input}:{}})}function DO(t={}){return Wze({regions:"manifest-roots",...t.regionIncludes?{regionIncludes:t.regionIncludes}:{},documents:{...t.scenes?{entries:t.scenes}:{},find:[{finder:"scenesFromEntrypointSelection",regions:VQ},{finder:"prefabsFromStories"}]}})}function DMe(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 Wze(t)}const L2n=Object.freeze(Object.defineProperty({__proto__:null,ADAPTER_INPUT_VALUE_TYPES:NQr,AdapterDefinitionSchema:eFt,EXPORTED_COMPOSITION_REGIONS:VQ,NATIVE_REGION_BASIS:Uze,OBSERVATION_KINDS:QRt,SUBSTRATE_NAMES:XRt,defineAdapter:Wze,nativeAdapter:DO,parseAdapterDefinition:DMe,regionsFromManifestRoots:Jze,unmatchedRegionIncludeIds:ZRt},Symbol.toStringTag,{value:"Module"})),MZ=new Map;function Hze(t){const n=t;return MZ.set(t.name,n),()=>{MZ.get(t.name)===n&&MZ.delete(t.name)}}function Gze(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 Hze(s)}function tFt(){return[...MZ.keys()]}function rFt(t,n){const s=MZ.get(t.finder);if(!s){const d=tFt();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 B2n=Object.freeze(Object.defineProperty({__proto__:null,registerContributedFinder:Gze,registerFinder:Hze,registeredFinderNames:tFt,runRegisteredFinder:rFt},Symbol.toStringTag,{value:"Module"}));function YSt(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 iOe={exports:{}};const MQr={},jQr=Object.freeze(Object.defineProperty({__proto__:null,default:MQr},Symbol.toStringTag,{value:"Module"})),wI=n0r(jQr);var ZSt;function LQr(){return ZSt||(ZSt=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 @@ ${Den(g)}`)}const m={manifestVersion:d.manifestVersion,name:d.name,version:d.ver
1396
1396
  `)}function BFt(t){return LFt(t,Array.from(t.styleSheets))}function Ytn(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?"":LFt(t,c)}async function Ztn(t){await t.fonts.ready;let n=BFt(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 Qtn(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 lVe(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 $Ft(t){const n=[],s=new Set;for(const c of Array.from(t.querySelectorAll("canvas"))){if(!ive(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,...ern(t,c)])s.has(m)||(s.add(m),n.push(m))}return n}function ern(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))trn(F,t)&&d.add(F)}return Array.from(d).reverse()}function trn(t,n){return t instanceof HTMLElement&&(t===n||n.contains(t))&&lVe(t)!==null}function qFt(t){const n=[];for(let s=t.parentElement;s;s=s.parentElement)n.unshift(s);return n}function rrn(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 nrn(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 irn(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 zFt(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?Qtn(t,g):g.style.background="transparent";const S=c?.transparentBackdrops;if(S?.has(t)&&(g.style.background="transparent"),t.closest(`[${XQ}]`)&&g.setAttribute(XQ,""),m){const se=c?.documentCssText??BFt(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=RFt();if(A){const se=t.ownerDocument.createElement("style");se.textContent=A,g.appendChild(se)}if(!m){const se=Ytn(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);irn(se,pe,S),rrn(se,pe),nrn(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:lOe(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=lOe(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&&ive(qe)){X.remove();return}const bt=qe?c?.canvasPixels?.get(qe):void 0,Pt=bt?lOe(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 orn={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(`${orn[n]} capture failed — ${c}`),this.name="CaptureLayerError",this.layer=n}}function $ge(t,n){return n instanceof HI?n:new HI(t,n)}const X4=32,srn=24,uVe=.9;function VFt(t,n){return[t[n*4]??0,t[n*4+1]??0,t[n*4+2]??0]}function arn(t,n){const s=new Map;for(let m=0;m<n;m++){const[g,S,k]=VFt(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 crn(t,n,s){let c=0;for(let d=0;d<n;d++){const m=VFt(t,d);Math.max(Math.abs(m[0]-s[0]),Math.abs(m[1]-s[1]),Math.abs(m[2]-s[2]))<=srn&&(c+=1)}return c}function UFt(t,n,s=uVe){const{mean:c,distinctRegions:d}=arn(t,n),m=Math.round(crn(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 WMe(t,n,s=uVe){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 UFt(m.data,X4*X4,s)}catch{return null}}async function JFt(t,n=350){if(typeof t.getAnimations!="function")return;const s=t.getAnimations({subtree:!0}).filter(c=>{const d=c.effect?.getComputedTiming().endTime;return typeof d=="number"&&Number.isFinite(d)});s.length!==0&&await Promise.race([Promise.allSettled(s.map(c=>c.finished)),new Promise(c=>setTimeout(c,n))])}async function YQ(t,n=75){const s=t.ownerDocument.defaultView?.requestAnimationFrame.bind(t.ownerDocument.defaultView);s&&await new Promise(c=>{let d=!1;const m=()=>{d||(d=!0,clearTimeout(g),c())},g=setTimeout(m,n);s(()=>s(m))})}async function WFt(t,n){return await YQ(t),(n?.presentsOnCanvas??t.querySelectorAll("canvas").length>0)||await new Promise(c=>setTimeout(c,650)),await JFt(t),await YQ(t),HMe(t,2,n??{})}const HFt=.03;function GFt(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 KFt(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 lrn(t,n,s,c){let d;try{d=t.getImageData(0,0,n,s)}catch{return{kind:"ok"}}const m=n*s,g=GFt(d.data,m),S=g>HFt;return c>0&&(S||KFt(d.data,m))?{kind:"retry"}:S?{kind:"blank",transparentFraction:g}:{kind:"ok"}}function urn(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 HMe(t,n,s){const c=t.ownerDocument.createElement("canvas"),d=await XFt(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=urn(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 YQ(t),HMe(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=WMe(ue,t.ownerDocument);let be;try{be=ue.toDataURL("image/png")}catch(we){throw $ge("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=lrn(S,m,g,n);if(D.kind==="retry")return await new Promise(J=>setTimeout(J,300)),await YQ(t),HMe(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=WMe(c,t.ownerDocument);let A;try{A=c.toDataURL("image/png")}catch(D){throw $ge("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 pxt(t,n,s,c=1,d=1){for(const m of n){const g=lVe(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 XFt(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&&pxt(k,qFt(t),c,g,S);const F=Array.from(t.querySelectorAll("canvas")).some(se=>!ive(se))?null:s?.overlayCache?.take(t,d,m),D=F?.backdrops??$Ft(t);pxt(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 $ge("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=zFt(t,d/g,m/S,{includeDocumentStyles:s?.includeDocumentStyles,projectRoot:s?.projectRoot,documentCssText:s?.includeDocumentStyles?await Ztn(t.ownerDocument):void 0,canvasPixels:$,transparentBackdrops:new Set(D),snapshots:s?.snapshots,rasterSize:{width:d,height:m}});if(pe){const ue=new Image;ue.src=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(pe.svg)}`,await ue.decode(),k.drawImage(ue,0,0,d,m),G=pe.overlayCount,s?.overlayCache?.store(t,d,m,{image:ue,overlayCount:pe.overlayCount,backdrops:D},performance.now()-se)}else s?.overlayCache?.store(t,d,m,{image:null,overlayCount:0,backdrops:D},performance.now()-se)}}catch(se){throw $ge("dom-overlay",se)}return{canvases:J.length,domOverlays:G}}const frn=Object.freeze(Object.defineProperty({__proto__:null,CaptureLayerError:HI,FLATNESS_GRID:X4,FLATNESS_WARN_AT:uVe,OVERLAY_CACHE_MAX_AGE_MS:FFt,OVERLAY_REBUILD_COST_MULTIPLIER:jFt,OVERLAY_REBUILD_FLOOR_MS:MFt,TRANSPARENT_PIXEL_LIMIT:HFt,ancestorBackdrops:qFt,buildOverlaySvg:zFt,capturePlayComposite:WFt,createImageSnapshotCache:Ktn,createOverlayFrameCache:Xtn,drawPlayCompositeFrame:XFt,hasExcessNearBlackPixels:KFt,isRootCanvas:ive,measureFlatness:UFt,opaqueBackgroundColor:lVe,rootSurfaceBackdrops:$Ft,sampleFlatness:WMe,transparentPixelFraction:GFt,waitForFiniteMotion:JFt,waitForPaint:YQ},Symbol.toStringTag,{value:"Module"}));function ote(t){const n=TC(),s=n?.descriptor.presentation?.()??void 0,c=s2(n?.descriptor.id),d=jye(),m=c?.selection?c.selection.read():d?.adapter?.selection?.get()??(c?[...t.selectedEntityIds]:[]),g=c?.read()??void 0,S=nDt();return{version:1,workspace:zS(),...Ihe()===null?{}:{style:Ihe()},keymap:dR(),...s?{document:s}:{},...m.length>0?{selection:{ids:[...m]}}:{},...g?{viewport:g}:{},...S?{panel:S}:{}}}function drn(t){return iCt(ote(t),window.location.href)}let $I=[],prn=0,YFt=0;const GMe=new Set;function KMe(){YFt++;for(const t of GMe)t()}function ZFt(){KMe()}function XMe(){return X1()}function fVe(){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 QFt(){for(const{session:t}of $I){const n=t.restartRequired?.()??null;if(n!==null)return n}return null}function e9t(){(X1().find(s=>(s.restartRequired?.()??null)!==null)??X1().find(s=>s.mounted()&&s.restart))?.restart?.()}function dVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.frameCanvas?.()??null;if(n)return n}return null}function pVe(t){for(const n of X1())if(!(!n.mounted()||!n.snapshotFrame)&&n.frameCanvas?.()===t)return n.snapshotFrame();return null}function _Ve(t){for(const n of X1()){if(!n.mounted()||!n.command)continue;const s=n.command(t);if(s)return s}return null}function mVe(){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 ove(){for(const t of X1()){if(!t.mounted())continue;const n=t.surface?.()??null;if(n)return n}return null}function hVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.coverage?.()??null;if(n)return n}return null}function gVe(){for(const t of X1()){if(!t.mounted())continue;const n=t.authoringRefusal?.()??null;if(n!==null)return n}return null}function t9t(t){return X1().find(s=>s.mounted()&&s.remount)?.remount?.(t)??null}function r9t(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:prn++};return $I=[...$I,n],KMe(),()=>{$I=$I.filter(s=>s!==n),KMe()}}function X1(){return[...$I].sort((t,n)=>(t.session.priority??0)-(n.session.priority??0)||t.seq-n.seq).map(t=>t.session)}function yVe(){return X1().some(t=>t.mounted())}function sve(){return X1().some(t=>t.playing())}function vVe(){for(const t of X1())t.stop()}function n9t(t){for(const n of X1()){const s=n.instanceContainer(t);if(s)return s}return null}function bVe(t){return GMe.add(t),()=>GMe.delete(t)}function i9t(){return YFt}const _rn=Object.freeze(Object.defineProperty({__proto__:null,anyLiveSessionMounted:yVe,anyLiveSessionPlaying:sve,dispatchLiveCommand:_Ve,liveAuthoringRefusal:gVe,liveCoverage:hVe,liveFrameCanvas:dVe,liveInstanceContainer:n9t,liveRestartRequired:QFt,liveRunWindow:fVe,liveScenes:mVe,liveSessions:XMe,liveSessionsVersion:i9t,liveSurface:ove,notifyLiveSessionsChanged:ZFt,registerLiveSession:r9t,remountLiveSelection:t9t,restartLiveSession:e9t,snapshotLiveFrame:pVe,stopAllLiveSessions:vVe,subscribeLiveSessions:bVe},Symbol.toStringTag,{value:"Module"}));async function o9t(t){const n=pVe(t);return n||Ltn(t)}function mrn(t){const n=t;return n&&typeof n.toDataURL=="function"?n:null}const hrn=Object.freeze(Object.defineProperty({__proto__:null,liveCanvasFrame:o9t,readablePngSource:mrn},Symbol.toStringTag,{value:"Module"}));let qZ=null;function grn(){if(!qZ)return!0;try{return qZ()}catch{return!0}}function yrn(t){return qZ=t,()=>{qZ===t&&(qZ=null)}}const s9t=new WeakMap;function TSn(t,n){s9t.set(t,n)}function a9t(t){for(const n of Array.from(t.querySelectorAll("iframe"))){const s=s9t.get(n),c=s?.container();if(s&&c)return{container:c,canvasFrame:s.canvasFrame}}return null}function ave(t){return Array.from(document.querySelectorAll("[data-workspace-document-id]")).find(n=>n.dataset.workspaceDocumentId===t&&(TRe()===null||n.dataset.workspaceViewId===TRe()))??null}const YMe=["document","header","shelf","rail","outliner","content","utility","menubar"],vrn={rail:{part:"properties",view:"volter.properties",title:"Properties"},outliner:{part:"outliner",view:"volter.outliner",title:"Outliner"},content:{part:"content",view:"volter.content",title:"Content"}},brn={header:{prefix:"document-header",title:"header strip"},shelf:{prefix:"document-shelf",title:"tool shelf"}};function SVe(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=a9t(t.container)?.container;return s&&!n.includes(s)&&n.push(s),n}function Srn(t){return document.querySelector(`[data-volter-part="${t}"]`)}function xrn(){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 wrn(){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 Trn(t){if(t==="utility")return xrn();if(t==="menubar")return wrn();const n=t==="rail"||t==="outliner"||t==="content"?vrn[t]:null;if(n){const s=Srn(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 Crn(t)}function Crn(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=ave(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=brn[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 _xt(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: ${YMe.filter(s=>s!==t.name).map(s=>`'${s}'`).join(", ")} (pass \`{ scope }\`). The rest of the page is deliberately unreachable.`)}const mxt=400,hxt="rgb(1, 2, 3)",Ern="rgba(0, 0, 0, 0)";function krn(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=hxt,t.appendChild(d);try{d.style.backgroundColor=`var(${n})`;const m=getComputedStyle(d).backgroundColor.trim();return m===hxt||m===Ern?s:m}finally{d.remove()}}function Arn(t,n){const s=getComputedStyle(t),c={};for(const d of n)c[d]=d.startsWith("--")?krn(t,d):s.getPropertyValue(Drn(d)).trim();return c}function Drn(t){return t.includes("-")?t:t.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`)}function gxt(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>mxt?`${k.slice(0,mxt)}…`: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:Arn(c,s)}:{}}}function _me(t,n,s){const c=u9t(t,n),d=c[s];if(!d)throw _xt(t,`${JSON.stringify(n)} matched ${c.length} element(s), so index ${s} does not exist`);if(!SVe(t).some(m=>m.contains(d)))throw _xt(t,`${JSON.stringify(n)} resolved outside the document's container`);return d}function Prn(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 xVe(t){let n=t;for(;n&&!(n.hasAttribute("tabindex")||n.tabIndex>=0||n.isContentEditable);)n=n.parentElement;(n??t).focus({preventScroll:!0})}function c9t(t,n=[.5,.5]){const s=t.getBoundingClientRect();return{clientX:s.x+s.width*n[0],clientY:s.y+s.height*n[1]}}function Irn(t,n){const{clientX:s,clientY:c}=c9t(t,n);return t.ownerDocument.elementFromPoint(s,c)??t}function Nrn(t,n=1,s,c={},d){const m={...Prn(t,s),...d,...c},g=Math.max(1,Math.round(n));l9t(t,()=>{for(let S=1;S<=g;S++){const k={...m,detail:S},A={...m,buttons:0,detail:S};t.dispatchEvent(new PointerEvent("pointerdown",{...k,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",k)),xVe(t),t.dispatchEvent(new PointerEvent("pointerup",{...A,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mouseup",A)),t.dispatchEvent(new MouseEvent("click",A))}g>=2&&t.dispatchEvent(new MouseEvent("dblclick",{...m,buttons:0,detail:g}))})}function Orn(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 l9t(t,n){const c=(t.ownerDocument.defaultView??window).Element.prototype,d=c.setPointerCapture,m=c.releasePointerCapture;c.setPointerCapture=()=>{},c.releasePointerCapture=()=>{};try{n()}finally{c.setPointerCapture=d,c.releasePointerCapture=m}}function Rrn(t,n,s,c,d={},m=[],g=0){const S=t.getBoundingClientRect(),k=g===0?1:g===2?2:4,A=(D,J)=>({bubbles:!0,cancelable:!0,composed:!0,view:window,clientX:S.x+S.width*D,clientY:S.y+S.height*J,button:g,buttons:k,altKey:d.altKey??!1,ctrlKey:d.ctrlKey??!1,metaKey:d.metaKey??!1,shiftKey:d.shiftKey??!1}),F=A(n[0],n[1]);l9t(t,()=>{t.dispatchEvent(new PointerEvent("pointermove",{...F,button:-1,buttons:0,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",{...F,buttons:0})),t.dispatchEvent(new PointerEvent("pointerdown",{...F,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousedown",F)),xVe(t);const D=Math.max(1,Math.round(c)),J=[n,...m,s];for(let G=0;G+1<J.length;G++){const se=J[G],pe=J[G+1];for(let ue=1;ue<=D;ue++){const Ce=ue/D,De=A(se[0]+(pe[0]-se[0])*Ce,se[1]+(pe[1]-se[1])*Ce);t.dispatchEvent(new PointerEvent("pointermove",{...De,button:-1,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mousemove",De))}}const $={...A(s[0],s[1]),buttons:0};t.dispatchEvent(new PointerEvent("pointerup",{...$,pointerType:"mouse"})),t.dispatchEvent(new MouseEvent("mouseup",$)),g===2?t.dispatchEvent(new MouseEvent("contextmenu",$)):g===0&&n[0]===s[0]&&n[1]===s[1]&&t.dispatchEvent(new MouseEvent("click",$))})}function Frn(t,n){if(n)return n;const s=document.activeElement;return s instanceof HTMLElement&&SVe(t).some(c=>c.contains(s))?s:t.container}function u9t(t,n){try{return SVe(t).flatMap(s=>Array.from(s.querySelectorAll(n)))}catch(s){throw new Error(`Invalid selector ${JSON.stringify(n)}: ${String(s)}`)}}function uOe(t,n){const s=n.selector===void 0?null:_me(t,n.selector,n.index??0);return Frn(t,s)}const Mrn={" ":"Space","`":"Backquote","-":"Minus","=":"Equal","[":"BracketLeft","]":"BracketRight","\\":"Backslash",";":"Semicolon","'":"Quote",",":"Comma",".":"Period","/":"Slash"};function jrn(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:Mrn[t]??t}const Lrn={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 Brn(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]):Lrn[t]??0}function $rn(t){const n=t===void 0?null:/^Numpad([0-9])$/.exec(t);return n?96+Number(n[1]):t==="NumpadDecimal"?110:null}function yxt(t,n){const s=new KeyboardEvent(t,qrn(n)),c=$rn(n.code)??Brn(n.key);return Object.defineProperty(s,"keyCode",{get:()=>c}),Object.defineProperty(s,"which",{get:()=>c}),s}function qrn(t){return{key:t.key,code:t.code??jrn(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 zrn(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 fOe=["query","click","drag","key","paste","select","type"];function Vrn(t){const n=t?.action;if(!fOe.includes(n))throw new Error(`Unknown document-probe action ${JSON.stringify(n)}. This door has exactly ${fOe.length} verbs: ${fOe.join(", ")} (\`editor.document.*\`).`);const s=t.scope??"document";if(!YMe.includes(s))throw new Error(`Unknown scope ${JSON.stringify(s)}. This door addresses exactly these surfaces: ${YMe.map(c=>`'${c}'`).join(", ")}.`);return Trn(s)}async function Urn(t){const n=Vrn(t);if(Pp()===a0&&grn()&&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:[gxt(d,0)]});switch(t.action){case"query":{const d=u9t(n,t.selector);return{scope:s,matched:d.length,elements:d.slice(0,t.limit??25).map((m,g)=>gxt(m,g,t.styles))}}case"click":{const d=_me(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:Irn(d,m);return Nrn(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:c9t(d,m)),c(g)}case"type":{const d=uOe(n,t);return Orn(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=_me(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 Rrn(d,t.from,t.to,t.steps??8,{...t.altKey===void 0?{}:{altKey:t.altKey},...t.ctrlKey===void 0?{}:{ctrlKey:t.ctrlKey},...t.metaKey===void 0?{}:{metaKey:t.metaKey},...t.shiftKey===void 0?{}:{shiftKey:t.shiftKey}},t.via??[],t.button??0),c(d)}case"key":{const d=uOe(n,t);document.activeElement instanceof Node&&d.contains(document.activeElement)||xVe(d);const m=document.activeElement,g=m instanceof HTMLElement&&d.contains(m)?m:d;return g.dispatchEvent(yxt("keydown",t)),t.holdMs&&await new Promise(S=>setTimeout(S,t.holdMs)),g.dispatchEvent(yxt("keyup",t)),c(d)}case"select":{const d=_me(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 zrn(d,t.value),c(d)}case"paste":{const d=uOe(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 vxt="editor-chrome-root";function Jrn(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 Btn(n,s)??o9t(n)}}async function Wrn(t,n){const s=document.getElementById(vxt);if(!s)throw new Error(`The editor chrome root (#${vxt}) is not mounted, so there is no editor page to photograph.`);let c=s;if(n?.region==="document"){const k=Pp(),A=k?ave(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 WFt(c,{canvasFrame:Jrn(d),includeDocumentStyles:!0,size:g}),view:ote(t),size:g,scale:d}}function ste(){return sve()}function CSn(){return!ste()}const qge=new Set;function Hrn(t,n){const s={collect:t,reusableKeys:n?.reusableKeys??[]};return qge.add(s),()=>{qge.delete(s)}}function Grn(t=null){const n={};for(const s of qge)Object.assign(n,s.collect(t));return n}function Krn(){const t=[];for(const n of qge)t.push(...n.reusableKeys);return t}let zZ=null;const GI=[];function Xrn(t){if(zZ=t,GI.length!==0)for(const n of GI.splice(0,GI.length))n.resolve(t)}function Yrn(){return new Promise((t,n)=>{GI.push({resolve:t,reject:n})})}function Zrn(t){zZ===t&&(zZ=null,GI.length!==0&&queueMicrotask(()=>{if(!(zZ!==null||GI.length===0))for(const n of GI.splice(0,GI.length))n.reject(new Error("the hierarchy panel (GameHierarchy) unmounted before it published the mutated row tree, so the mutation cannot be acknowledged against a rendered tree. Open the Hierarchy panel in the workspace dock and retry."))}))}function bxt(){return zZ}function Qrn(t,n){const s=[],c=[];for(const d of t.rows){const m=enn(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 enn(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 tnn=5e3,rnn=350,Sxt=240;let a_e=null;function nnn(t){if(typeof document>"u")return;const n=Pp(),s=n===null?null:ave(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:rnn,easing:"ease-out"}).finished.finally(()=>A.remove())}a_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),a_e=m;const S=()=>{if(a_e===m&&(a_e=null),!!m.isConnected){if(d){m.remove();return}m.animate([{transform:"translateX(0)"},{transform:"translateX(130%)"}],{duration:Sxt,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:Sxt,easing:"ease-out"}),window.setTimeout(S,tnn)}const inn=new Set(["raw","url","worker","sharedworker","inline","init"]),onn=[".ts",".tsx",".js",".jsx",".mjs",".cjs"],snn=/\.stories\.[cm]?[jt]sx?$/i;function ann(t){let n;try{n=new URL(t,"http://volter.invalid")}catch{return null}return{path:n.pathname,query:n.search}}function cnn(t){const n=new URLSearchParams(t);for(const s of n.keys())if(inn.has(s))return!0;return!1}function lnn(t,n,s){if(t.startTime<s)return null;const c=ann(t.name);if(!c)return null;const{path:d,query:m}=c;if(!d.includes(n)||!onn.some(A=>d.endsWith(A))||snn.test(d)||d.endsWith("/volter.adapter.ts")||cnn(m))return null;const g=new URLSearchParams(m),S=g.get(Oge)??"";g.delete(Oge);const k=g.toString();return{group:`${S}\0${d}`,path:d,url:`${d}${k?`?${k}`:""}`}}function unn(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=lnn(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 ESn(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 f9t(){const t=globalThis.performance;if(!t||typeof t!="object")return null;const n=t;return typeof n.now!="function"||typeof n.getEntriesByType!="function"?null:n}let Gk=null,ZQ=[],VO=null,$B=[];function kSn(){$B=[],Gk?.disconnect(),Gk=null,ZQ=[];const t=f9t();if(!t){VO=null;return}VO=t.now(),typeof PerformanceObserver<"u"&&(Gk=new PerformanceObserver(n=>{ZQ.push(...n.getEntries())}),Gk.observe({type:"resource"}))}function ASn(t){const n=f9t();if(!n||VO===null)return VO=null,$B;const s=Gk?[...ZQ,...Gk.takeRecords()]:n.getEntriesByType("resource");return Gk?.disconnect(),Gk=null,ZQ=[],$B=unn(s,{projectRoot:t,since:VO}),VO=null,$B}function fnn(){return $B}function DSn(){Gk?.disconnect(),Gk=null,ZQ=[],$B=[],VO=null}const ZMe=new Set;let jY=null;function dnn(t){return ZMe.add(t),()=>{ZMe.delete(t)}}function pnn(){return jY||(jY=Promise.all([...ZMe].map(t=>Promise.resolve().then(t))).then(()=>{}).finally(()=>{jY=null}),jY)}const _nn=500;function xxt(t){const n=globalThis,s=n.requestIdleCallback;if(typeof s=="function"){const d=s.call(globalThis,t,{timeout:_nn});return()=>n.cancelIdleCallback?.call(globalThis,d)}const c=setTimeout(t,0);return()=>clearTimeout(c)}const mme=new Map;function PSn(t,n){return mme.set(t,n),()=>{mme.get(t)===n&&mme.delete(t)}}function mnn(){return Object.fromEntries([...mme].map(([t,n])=>[t,n()]))}let d9t=null;function ISn(t){d9t=t}function hnn(){return d9t}const gnn=["three","canvas","dom"];function wxt(t){return t.provenance?.source==="boundary"}function ynn(t){return gnn.includes(t)?t:null}function vnn(){const t=jye(),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=lPt();if(!d)return c?[c]:[];if(d instanceof hy){const g=d.childAdapters().filter(S=>S.role==="world"&&!wxt(S.adapter)).map(S=>({worldId:S.worldId,surface:ynn(S.kind),adapter:S.adapter}));return c?[c,...g.filter(S=>S.worldId!==n)]:g}if(wxt(d)||d===hnn())return c?[c]:[];const m={worldId:"root",surface:ove(),adapter:d};return c?[c,m]:[m]}const qB=new Map,QMe=new Set;let p9t=0;function Txt(){p9t++;for(const t of QMe)t()}function NSn(t){return qB.set(t.id,t),Txt(),()=>{qB.get(t.id)===t&&(qB.delete(t.id),Txt())}}function OSn(t){return t?qB.get(t)??null:null}function bnn(){return[...qB.values()]}function RSn(t){if(t===null)return null;for(const n of qB.values())if(n.kind==="game"&&n.instanceId===t)return n;return null}function FSn(t){return QMe.add(t),()=>QMe.delete(t)}function MSn(){return p9t}function wVe(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 Snn(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 _9t(t){return t.filter(n=>n.failsafeEligible&&n.inlineHiding!==null)}function xnn(t){return t.some(n=>n.hiddenBy!==null)?_9t(t).length>0:null}const wnn=4e3;function Tnn(t){const n=t.deadlineMs??wnn;if(t.framesProduced<=0)return{fire:!1};if(t.hiddenForMs===null||t.hiddenForMs<n)return{fire:!1};if(wVe(t.canvases)===null)return{fire:!1};const s=[..._9t(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 hme=new Map;function jSn(t){return hme.set(t.id,t),()=>{hme.get(t.id)===t&&hme.delete(t.id)}}function Cnn(){return[...hme.values()]}const dOe=10,c_e=5e3;function Enn(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 knn(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 Ann(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 Dnn(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>=dOe?{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 ${dOe}fps floor`,cause:`the visible tab is rendering below the ${dOe}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 Pnn(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<c_e?{status:"ok",detail:`play started ${t.play.startedMsAgo}ms ago and has not drawn yet — inside the ${c_e}ms deadline`}:{status:"violation",detail:`play started ${t.play.startedMsAgo}ms ago and has drawn no frame (deadline ${c_e}ms)`,cause:`play started and no frame has drawn within the ${c_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 m9t={"edit-mode-static":Enn,"single-root-scene":knn,"canvas-revealed":Ann,"visible-tab-fps-floor":Dnn,"play-drew-a-frame":Pnn},Inn=Object.keys(m9t);function Nnn(t){return Inn.map(n=>({id:n,...m9t[n](t)}))}function Onn(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 eje=new Set;function Rnn(t){return eje.add(t),()=>{eje.delete(t)}}function Fnn(){for(const t of[...eje])try{t()}catch(n){Qs.error(`a session-sample subscriber threw: ${String(n)}`,"invariant")}}const Mnn=5e3;let Aw={frames:0,since:0},VZ=null,zB=null,oR=null;const UZ=new Map;function jnn(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 Lnn="editor-canvas";function Bnn(t){const n=t.style;return n.display==="none"?"display":n.visibility==="hidden"?"visibility":n.opacity!==""&&Number.parseFloat(n.opacity)===0?"opacity":null}function h9t(){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:jnn(n),inlineHiding:Bnn(n),failsafeEligible:c!==Lnn&&!n.closest(".monaco-editor")}})}function $nn(){const t=bnn();if(t.length===0)return{framesDrawn:null,framesUnavailable:"no render loop registered a performance source, so nothing counts this session’s frames"};let n=null;for(const s of t){const d=s.profiler.getSnapshot().frames.at(-1);d&&(n=Math.max(n??0,d.id))}return n===null?{framesDrawn:null,framesUnavailable:"the registered render loop records no frames (its profiler has neither profiling nor telemetry enabled)"}:{framesDrawn:n,framesUnavailable:null}}const PO=new Map,LY=new Map;function qnn(){const t=Cnn(),n=new Set,s=t.map(c=>{const{id:d,label:m}=c;n.add(d);let g=null;try{g=c.transportAdvances?.()??null}catch{g=null}const S=LY.get(d);g===null?LY.delete(d):LY.set(d,g);const k=g===null||S===void 0?{}:{transportAdvanced:g!==S};let A;try{A=c.contentClock()}catch(J){return PO.delete(d),{id:d,label:m,advanced:null,unavailable:`its content clock threw: ${String(J)}`,...k}}if(A===null)return PO.delete(d),{id:d,label:m,advanced:null,unavailable:"its content clock is temporarily unavailable",...k};const F=A,D=PO.get(d);return PO.set(d,F),D===void 0?{id:d,label:m,advanced:null,unavailable:"first reading — nothing to compare it against yet",...k}:{id:d,label:m,advanced:F!==D,...k}});for(const c of[...PO.keys()])n.has(c)||PO.delete(c);for(const c of[...LY.keys()])n.has(c)||LY.delete(c);return s}function znn(t=Date.now()){const n=ste(),s=Aw.since===0?0:t-Aw.since,c=Aw.frames,d=s>0&&c>0?c*1e3/s:null,m=n?{startedMsAgo:oR===null?0:t-oR,...$nn()}:null;return{mode:n?"play":"edit",loops:[...XMe().map(g=>({name:`${g.id} session`,running:g.mounted()})),...XMe().map(g=>({name:`${g.id} playing`,running:g.playing()}))],designTimeSurfaces:qnn(),presentedThreeRoots:lPt()?vnn().filter(g=>g.surface==="three").map(g=>g.worldId):null,...(()=>{const g=h9t();return{canvasHiddenBy:wVe(g),canvasHidesItself:xnn(g),hiddenCanvases:Snn(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 g9t(){return Nnn(znn())}let mB=null;const Cxt=new WeakSet;function Vnn(t,n){const s=wVe(t);if(s==null){mB=null;return}if(mB===null){mB=n;return}const c=Tnn({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||Cxt.has(d)||(Cxt.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 Unn(){const t=g9t();for(const n of t){const s=Onn(n);if(!s){UZ.delete(n.id);continue}if(n.id==="visible-tab-fps-floor"){const c=(UZ.get(n.id)??0)+1;if(UZ.set(n.id,c),c<3)continue}Qs.warn(s,"invariant")}return t}function Jnn(){if(zB!==null)return Ext;Aw={frames:0,since:Date.now()};const t=()=>{Aw.frames++,VZ=requestAnimationFrame(t)};return VZ=requestAnimationFrame(t),zB=setInterval(()=>{const n=ste();n&&oR===null&&(oR=Date.now()),n||(oR=null),Fnn(),Vnn(h9t(),Date.now()),Unn(),Aw={frames:0,since:Date.now()}},Mnn),Ext}function Wnn(){Aw={frames:0,since:zB===null?0:Date.now()},oR=null,mB=null,UZ.clear(),PO.clear()}function Ext(){VZ!==null&&cancelAnimationFrame(VZ),zB!==null&&clearInterval(zB),VZ=null,zB=null,Aw={frames:0,since:0},oR=null,mB=null,UZ.clear()}let tje=null;function Hnn(t){tje=t}function TVe(){return tje?(tje(),!0):!1}let CVe=[];const rje=new Set;function kxt(t){CVe=t;for(const n of rje)n()}function Gnn(){return CVe}function Knn(t){return rje.add(t),()=>rje.delete(t)}function Xnn(t){const n=CVe.find(s=>s.id===t);return n?(n.run(),!0):!1}let QQ=null;function Ynn(t){QQ=t}function Znn(t){QQ&&Promise.resolve(QQ(`${t}.focus`)).catch(()=>{})}const Qnn=/^volter\.([^.]+)\.(.+)$/;async function ein(t,n){if(QQ)return await QQ(t,n);const s=Qnn.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(()=>d4r);return{invokeViewVerb:d}},[]);return c(s[1],s[2],n)}const EVe=[{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 tin(t){const{liveCanvasFrame:n}=await lo(async()=>{const{liveCanvasFrame:s}=await Promise.resolve().then(()=>hrn);return{liveCanvasFrame:s}},void 0);return n(t)}async function rin(...t){const{capturePlayComposite:n}=await lo(async()=>{const{capturePlayComposite:s}=await Promise.resolve().then(()=>frn);return{capturePlayComposite:s}},void 0);return n(...t)}async function Axt(){return lo(()=>Promise.resolve().then(()=>XDt),void 0)}async function nin(){return lo(()=>Promise.resolve().then(()=>icn),void 0)}function iin(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=Kye(()=>{bC().some(g=>g.id===t)&&m()}),bC().some(g=>g.id===t)?m():c=window.setTimeout(m,n)})}async function oin(t){if(t){if(!bC().some(n=>n.id===t)){const n=t.startsWith(Fme);if(n&&(await(await Axt()).refreshProjectToolContributions(),await iin(t)),!bC().some(s=>s.id===t)){const s=bC().map(d=>d.id),c=n?(await Axt()).contributionFailureHint(t.slice(Fme.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 y9t(t){const n=EVe.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(BBe(s),!await CC(()=>nDt()===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 sin(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 ain(t){let n=!1;if(await CC(()=>(n=zMe(t.id),n||lxt(t.id)!==null),PR),n)return Pp();const s=lxt(t.id);throw s?new Error(s):new Error(`World document is not registered: ${t.id}`)}async function cin(t,n){const s=g=>g.filter(S=>S.id===n||S.label===n);let c=[];if(!await CC(()=>{const g=dBe(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 lin(t,n){const s=await Xye(n.kind,t,n);if(s!==null)return s;let c=!1;if(await CC(()=>(c=SN(n.id)||X0(n.id),c||uxt(n.id)!==null),PR),c)return n.story!==void 0&&await cin(n.id,n.story),n.id;const d=uxt(n.id);throw d?new Error(d):new Error(`Workspace document is not available: ${n.id}`)}async function uin(t,n){const s=await Xye(n.kind,t,n);if(s===null){const{kind:c,...d}=n,m=vkr();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 fin(t){const n=rkr();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 din(t,n){if(!n)return Pp();if(!_vr(n.kind))throw new Error(`present-view does not know the document kind "${String(n.kind)}". An EditorView addresses a document by one of: ${rCt.join(", ")}. `+fin(String(n.kind)));switch(n.kind){case"scene":return sin();case"world":return ain(n);case"asset":case"tool":case"document":case"story":case"project-tool":case"generation":return uin(t,n);case"workspace":return lin(t,n)}}function pin(t){const n=t.indexOf(",");return{base64:n>=0?t.slice(n+1):t,mimeType:"image/png"}}const Dxt=ave;function _in(t,n,s){if(!s?.degenerate)return null;const c=dVe();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 v9t(t,n){const s=TC();if(!s)throw new Error("No active editor document to capture.");const{descriptor:c,title:d}=s,m=ote(t),g={id:c.id,title:d,kind:c.kind,...c.provenance?.sourcePath?{sourcePath:c.provenance.sourcePath}:{},...c.provenance?.rootId?{rootId:c.provenance.rootId}:{}},S=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{...pin(J),document:g,view:m,source:"object3d-document"}}const k=c.id===a0?n9t()??Dxt(c.id):Dxt(c.id);if(!k)throw new Error(`Active document surface is not mounted: ${c.id}`);const A=a9t(k),F=await rin(A?.container??k,{canvasFrame:A?.canvasFrame??tin,includeDocumentStyles:c.id!==a0&&!A}),D=_in(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 min="workspace:scene";function hin(t){return s2(t)??s2(min)}function gin(t,n,s,c){const d=s2(n),m=hin(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&&F_e(n)?TAr(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 zge(t,n,s={}){if(n?.version!==1)throw new Error("present-view requires EditorView version 1.");const c=Object.keys(n).filter(F=>!Nmt.includes(F));if(c.length>0)throw new Error(`present-view does not know ${c.map(F=>`"${F}"`).join(", ")}. An EditorView carries: ${Nmt.join(", ")}. A document's own address (kind, and the fields that kind reads) goes under "document".`);const d=ote(t);if(n.style!==void 0){const F=OR().map(D=>D.id);if(!F.includes(n.style))throw new Error(`present-view requires a style of ${F.join(", ")}, got ${String(n.style)}.`);YBe(n.style)}if(n.workspace!==void 0){if(!kB(n.workspace))throw new Error(`present-view requires a workspace of ${UBe().join(", ")}, got ${String(n.workspace)}.`);if(zS()!==n.workspace){const F=vDt();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 din(t,n.document);await oin(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),gin(t,g,n,m),n.panel!==void 0&&await y9t(n.panel);const k=iCt(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 nin()).showEditorPresentationNotice({presented:A,previousView:d}),A}const Vge=new Map;let b9t=0;const nje=new Set;function S9t(){b9t+=1;for(const t of nje)t()}function yin(t,n,s){const c=Vge.get(t);c&&c.assetPath===n&&c.actions.length===s.length&&c.actions.every((d,m)=>d===s[m])||(Vge.set(t,{assetPath:n,actions:s}),S9t())}function vin(t){Vge.delete(t)&&S9t()}function bin(t){const n=[];for(const s of Vge.values())s.assetPath===t&&n.push(...s.actions);return n}function Sin(t){return nje.add(t),()=>nje.delete(t)}function Pxt(){return b9t}const xin=[],Ixt=new Set;let win=0;function Tin(t){for(const n of xin)if(n.match(t))return n;return null}function Cin(t){return Ixt.add(t),()=>{Ixt.delete(t)}}function Nxt(){return win}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=[],ije=new Set,BY=new Map;let x9t=0;function pOe(){x9t++;for(const t of ije)t()}function Ein(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(pOe)),pOe(),()=>{const s=eD.indexOf(t);s<0||(eD.splice(s,1),BY.get(t)?.(),BY.delete(t),pOe())}}const kin=[];function Ain(){return eD.length===0?kin:eD}function w9t(t){return ije.add(t),()=>{ije.delete(t)}}function Uge(){return x9t}function T9t(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 Din(){const t=K0e();return t?{path:t.path,name:t.name,kind:t.kind,origin:t.origin??"project",...t.sourcePath?{sourcePath:t.sourcePath}:{}}:null}function Pin(t,n){return Ye.useEffect(()=>()=>vin(t),[t]),Ye.useCallback(s=>{n!==null&&yin(t,n,s)},[t,n])}function Iin({id:t,title:n,file:s,tool:c,Component:d}){Ye.useSyncExternalStore(G0e,qQ),Ye.useSyncExternalStore(Aye,cN,cN),Ye.useSyncExternalStore(Rye,lN,lN);const m=Din(),g=Pin(t,m?.path??null),S=Ye.useRef(null),k=Ye.useCallback(F=>{S.current?.(),S.current=F===null?null:kBe(`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:{...JCr,marginBottom:4},children:[q.jsx(dc,{icon:Kk.tool.extension,tone:"muted",style:{marginRight:4}}),n]}),q.jsx(ABe,{file:s,children:q.jsx(d,{...c?{tool:c}:{},contributionId:t.slice(t.lastIndexOf(":")+1),client:Qye(),surfaces:_Be,account:tBe(),play:Oye(),asset:m,setActions:g,notify:A,work:k})})]})}function Nin(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 C9t=32,oje=new Set,Oxt=new Map,Rxt=new Map;let sR=null,JZ=null,E9t=0,sje=0,VB=0,xN=0,Fxt=!1,pD={url:null,progress:0,playing:!1};function Oin(){for(const t of oje)t()}function I$(t){pD.url===t.url&&pD.playing===t.playing&&Math.abs(pD.progress-t.progress)<.002||(pD=t,Oin())}function kVe(){return sR??=new AudioContext,sR}function Rin(){if(Fxt||typeof window>"u")return;Fxt=!0;const t=()=>{if(!sR)return;const n=pD.url,s=xN;sR.resume().then(()=>{n&&s===xN&&!JZ&&sR?.state==="running"&&D9t(n,s)})};window.addEventListener("pointerdown",t,{capture:!0}),window.addEventListener("keydown",t,{capture:!0})}function AVe(){if(VB&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(VB),VB=0,!JZ)return;const t=JZ;JZ=null,t.onended=null;try{t.stop()}catch{}t.disconnect()}function k9t(){if(VB=0,!pD.playing||!sR||sje<=0)return;const t=Math.min(1,(sR.currentTime-E9t)/sje);I$({url:pD.url,progress:t,playing:t<1}),t<1&&typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(k9t))}function Fin(t,n,s){if(s!==xN)return;AVe();const c=kVe(),d=c.createBufferSource(),m=c.createGain();m.gain.value=1,d.buffer=t,d.connect(m),m.connect(c.destination),d.onended=()=>{s===xN&&I$({url:n,progress:1,playing:!1})},d.start(),JZ=d,E9t=c.currentTime,sje=t.duration,I$({url:n,progress:0,playing:!0}),typeof requestAnimationFrame=="function"&&(VB=requestAnimationFrame(k9t))}async function A9t(t){const n=Oxt.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 kVe().decodeAudioData(d.slice(0))})().catch(()=>null);return Oxt.set(t,s),s}async function D9t(t,n){Rin();const s=await A9t(t);if(n!==xN)return;if(!s){I$({url:t,progress:0,playing:!1});return}const c=kVe();c.state==="suspended"&&(await c.resume(),n!==xN)||c.state==="running"&&Fin(s,t,n)}function Min(t){return oje.add(t),()=>oje.delete(t)}function jin(){return pD}function Lin(t){const n=++xN;AVe(),I$({url:t,progress:0,playing:!0}),D9t(t,n)}function Bin(t){t&&pD.url!==t||(xN+=1,AVe(),I$({url:null,progress:0,playing:!1}))}function $in(t,n=C9t){const s=`${t}#${n}`,c=Rxt.get(s);if(c)return c;const d=A9t(t).then(m=>m?Nin(m.getChannelData(0),n):Array.from({length:n},()=>0));return Rxt.set(s,d),d}let _Z=[];function LSn(t){return _Z=[..._Z,t],()=>{_Z=_Z.filter(n=>n!==t)}}function P9t(t){return _Z.find(n=>n.accepts(t))??null}const DVe={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)"},qin={folder:uee,model:B0r,prefab:GB,component:oLe,audio:cLe,image:A0r,video:j0r,json:uLe,unknown:$Tt,source:eCt};function vD({kind:t,size:n=24}){return q.jsx(dc,{icon:qin[t],style:{fontSize:n,color:DVe[t]}})}const zin=100,Vin=50,Uin=new KPt(t=>{const n=P9t(t);return n?n.render(t):Promise.reject(new Error(`No model preview loader for ${t}.`))},2);function I9t(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 T$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=Uin.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 N9t({url:t}){const n=I9t(t,zin);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 ${she[2]}`,borderTopColor:DVe.model,borderRadius:"50%"}})})}function Jin({url:t,name:n}){const[s,c]=Ye.useState(()=>Array.from({length:C9t},()=>.15)),d=Ye.useSyncExternalStore(Min,jin);Ye.useEffect(()=>{let S=!1;return $in(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=DVe[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 O9t(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 BSn(t,n,s,c,d){return t==="fit"?O9t(n,s,c,d):t}function Win(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=QYr(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 R9t({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?O9t(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||Win(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 F9t={fontSize:11,color:Zf[3],marginBottom:2},Hin={fontSize:11,color:Zf[1],wordBreak:"break-all"};function _Oe({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 BDt().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(Iin,{id:s.id,title:s.title,file:s.file,tool:s.tool,Component:s.Component},`${s.id}:${s.version}`):null})}function Mxt(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:F9t,children:t}),q.jsx("div",{style:Hin,children:n})]})}function Gin({asset:t}){const n=t.capabilities?.editor==="environment";Ye.useSyncExternalStore(w9t,Uge,Uge);const s=t.componentPreview,c=s?T9t({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:bBe.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(Xin,{path:t.path,name:t.name}):t.kind==="video"?q.jsx(Kin,{path:t.path}):t.kind==="model"?q.jsx(N9t,{url:t.path}):q.jsx(wR,{kind:t.kind,name:t.name,variant:"cell"})})}function Kin({path:t}){return q.jsx("video",{src:t,muted:!0,preload:"metadata",style:{width:"100%",height:"100%",objectFit:"contain"}})}function Xin({path:t,name:n}){const{sheetPath:s,frameName:c}=Y0e(t),[d,m]=Ye.useState(null);return Ye.useEffect(()=>{if(!c){m(null);return}let g=!1;return fetch(`/${ORt(s)}`).then(S=>S.ok?S.text():null).then(S=>{if(g||!S)return;const k=Mze(S);m(k?.frames.find(A=>A.name===c)??null)}).catch(()=>{g||m(null)}),()=>{g=!0}},[c,s]),d?q.jsx(R9t,{sheetUrl:`/${s}`,frame:d,maxEdge:96}):q.jsx("img",{src:t.split("#")[0],alt:n,style:{width:"100%",height:"100%",objectFit:"contain"}})}function Yin({asset:t}){const[n,s]=Ye.useState(null),{sheetPath:c,frameName:d}=Y0e(t.path);return Ye.useEffect(()=>{if(s(null),t.kind!=="image"||t.capabilities?.editor==="environment")return;let m=!1;if(d)return fetch(`/${ORt(c)}`).then(S=>S.ok?S.text():null).then(S=>{if(m||!S)return;const k=Mze(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 Zin(){Ye.useSyncExternalStore(Cin,Nxt,Nxt);const t=K0e();if(!t)return null;const n=Tin(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 ${she[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(n.View,{asset:t}),q.jsx(_Oe,{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(JRt,{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(_Oe,{asset:t})]}):q.jsxs("div",{"data-testid":"inspector-asset-selection",style:{pointerEvents:"auto",padding:8,borderBottom:`1px solid ${she[1]}`,display:"flex",flexDirection:"column",gap:6},children:[q.jsx(Yin,{asset:t}),q.jsx("div",{style:{...F9t,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:Mxt(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:Mxt(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(_Oe,{asset:t})]})}function Qin(t){return bin(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 eon(){const t=K0e();if(t===null)return null;const n=jye();return n&&(n.adapter!==null||n.nodeId!==null)?null:{quickActions:Qin(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:zRe,title:"Preview",icon:iB,order:C4t,body:{kind:"preview",render:()=>q.jsx(Gin,{asset:t})}},{id:"asset-selection",title:"Asset",icon:R$,order:fQ,body:{kind:"custom",render:()=>q.jsx(Zin,{})},keepMounted:!0}]}}const ton={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 ron(t){const n=ton[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 non={ok:L0r,gap:BTt,na:rvr,info:R$},ion={ok:Go.semantic.success,gap:Go.semantic.warning,na:Go.content.dim,info:Go.content.dim};function oon({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:ion[t.status],paddingTop:1},children:q.jsx(dc,{icon:non[t.status]})}),q.jsxs("div",{style:{minWidth:0},children:[q.jsx("div",{style:{color:Go.content.primary,fontWeight:600},children:ron(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 son({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(oon,{row:s},s.seam))]})}function aon(t){return{id:"ingest-coverage",title:"Ingest coverage",icon:HTt,order:9e3,description:`${t.summary.gaps} gap${t.summary.gaps===1?"":"s"}`,defaultOpen:!0,testId:"ingest-coverage-section",body:{kind:"custom",render:()=>q.jsx(son,{report:t}),data:{summary:t.summary,rows:t.rows}}}}function con(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 M9t="inspectorPresentation";function lon(t){return t==="card"||t==="column"||t==="properties"}function jxt(){const t=i3r(M9t);if(!t||typeof t!="object")return{};const n={};for(const[s,c]of Object.entries(t))lon(c)&&(n[s]=c);return n}let UB=null,cve=0;const UO=new Set;let mOe=null;ePt().then(()=>{UB=null,cve++;for(const t of UO)t()});function uon(){cve++;for(const t of UO)t()}function j9t(){if(UB===null){if(!n3r())return jxt();UB=jxt()}return UB}function aje(t){return j9t()[t]??null}function PVe(t,n){if(Znn("volter.properties"),aje(t)!==n){UB={...j9t(),[t]:n},cve++,o3r(M9t,UB);for(const s of UO)s()}}function fon(t){return UO.size===0&&(mOe=QAr(uon)),UO.add(t),()=>{UO.delete(t),UO.size===0&&(mOe?.(),mOe=null)}}function Lxt(){return cve}function don(t,n,s=null){return n??s??t}function L9t(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 cje(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function pon(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?cje(d.kind):null}function _on(t){const n=cBe();if(n!==null&&n.documentId===Pp())return"asset-lab";const{adapter:s,surface:c}=Cm(t);if(c)return c;if(s instanceof hy){const d=s.childAdapters(),m=d.length===1?cje(d[0]?.kind??""):null;if(m)return m;const g=pon(s,t);if(g)return g}return cje(ove()??"")??"three"}function mon({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 B9t(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 hon([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 IVe(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]=hon(S);return[k*bD,A*bD,F*bD]}function gon(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:B9t(s[0]/bD,s[1]/bD,s[2]/bD)}:{...c,[n]:[s[0],s[1],s[2]]}}function yon(t,n,s){const c=IVe(t.rotation);return c[n]=s,{position:[...t.position],rotation:B9t(c[0]/bD,c[1]/bD,c[2]/bD),scale:[...t.scale]}}const von={x:"#e0726d",y:"#83bd66",z:"#6390dd"};function hOe({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(T_e,{label:n,style:{padding:"4px 8px"},children:t.map(({axis:G,name:se})=>q.jsx(SZ,{testId:`${c}-${se}`,label:se,labelColor:von[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 bon({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?.(yon(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(zTr,{children:[q.jsx(hOe,{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(hOe,{axes:t==="2d"?[{axis:2,name:"z"}]:A,label:t==="2d"?"Rotation (degrees)":"Rotation",testidPrefix:"ingest-rotation",values:IVe(n.rotation),step:1,precision:1,...$("rotation"),onBegin:m,onPreview:g&&J(g),onCommit:J(S)}),q.jsx(hOe,{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 Bxt(t){return t.revertsTo===void 0?`Revert ${t.label} to default`:`Revert ${t.label} to ${t.revertsTo}`}function Son({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(u4t,{...c,ref:g,value:d??t,onChange:A=>{S.current===null&&(S.current=t),m(A.target.value),s?.(A.target.value)}})}async function $9t(t,n=URt){const s=await Promise.all(n.map(c=>xon(t,c)));return{assets:s.flatMap(c=>c.assets),failedListings:s.flatMap(c=>c.failedListings)}}async function xon(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 won(t,n){const s=t.filter(S=>S.root==="public"),c=Ton(s),d=(await Promise.all(c.map(async S=>{const k=await n(S.path);if(!k)return null;const A=Mze(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=$xt(S.path);for(const F of GYr(k.image))m.add(A?`${A}/${F}`:F);for(const F of s)xMe(F.path)===xMe(S.path)&&m.add(F.path)}const g=d.flatMap(({sidecar:S,parsed:k})=>{const A=$xt(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 Ton(t){const n=new Map;for(const s of t){if(!/\.json$/i.test(s.path))continue;const c=xMe(s.path),d=n.get(c);(!d||MSt(s.path)>MSt(d.path))&&n.set(c,s)}return[...n.values()]}function $xt(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function q9t(t){const n=ig(t).kind;return n==="model"||n==="image"||n==="video"||n==="audio"?n:"other"}function Con(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 Eon(t){return(t.surface==="three"?0:t.surface==="canvas"?10:t.surface==="dom"?20:30)+(t.exported?0:4)}const kon=1e4,Aon={paths:[],failures:[]};let $Y=null;async function Don(){const t=await $9t(Q0e,["public"]);return{paths:t.assets.filter(n=>q9t(n.entry.name)==="image").map(n=>n.path).sort((n,s)=>n.localeCompare(s)),failures:t.failedListings}}function Pon(){const t=Date.now();return(!$Y||t-$Y.at>kon)&&($Y={at:t,scan:Don().catch(n=>($Y=null,{paths:[],failures:[n instanceof Error?n.message:String(n)]}))}),$Y.scan}function Ion(t){const[n,s]=Ye.useState(Aon);return Ye.useEffect(()=>{let c=!0;return Pon().then(d=>{c&&s(d)}),()=>{c=!1}},[t]),n}const Non={width:64},qxt={width:WCr,fontSize:"var(--volter-font-md)",color:Go.content.muted};function AI(t){return`ingest-prop-${t.replace(/\./g,"-")}`}function Oon({field:t,io:n,value:s}){const{paths:c,failures:d}=Ion(!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(HCr,{testId:AI(t.path),value:s,options:c,previewUrlFor:F=>`/${F}`,disabled:t.readonly,note:k??A,onChange:S})}function Ron({field:t,io:n}){const s=t,c=n.get(s.path),d=qRe(c)?void 0:c,m=s.defaulted===!0&&d===void 0,g=s.readonly?DBe(s):void 0,S=s.resettable?q.jsx(dm,{"data-testid":`ingest-revert-${s.path.replace(/\./g,"-")}`,"aria-label":Bxt(s),title:Bxt(s),onClick:()=>n.remove?.(s.path),children:q.jsx(dc,{icon:zOe})}):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?{...qxt,color:Go.content.dim}:qxt,title:g??(s.defaulted?`${s.label} — default (not set here)`:s.label),children:s.label}),s.type==="color"?q.jsx(Son,{"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(MRe,{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:Non}):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(UCr,{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(Oon,{field:s,io:n,value:typeof d=="string"?d:""}):s.type==="json"?q.jsx(xBe,{"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(MRe,{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 z9t({fields:t,io:n}){return q.jsx(q.Fragment,{children:t.map(s=>q.jsx(Ron,{field:s,io:n},s.path))})}function lve(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 Fon=Ye.lazy(()=>lo(()=>import("./InspectorCanvasPreview-BrFjhoiD.js"),__vite__mapDeps([263,1,2,3,4])).then(t=>({default:t.InspectorCanvasPreview})));function $Sn({picture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=lve(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 Mon({source:t,entry:n,previewKey:s,actions:c,mode:d="section"}){const m=d==="thumbnail",g=lve(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 jon({capture:t,previewKey:n,actions:s,mode:c="section"}){const d=c==="thumbnail",m=lve(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(Fon,{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 Lon(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Bon(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:Lon(d),properties:c.get(d)}))}}function $on(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 qon=14,zon=[[/physic|rigid|collid/i,q0r],[/material/i,m0r],[/light/i,iLe],[/camera/i,aye],[/audio|sound|music/i,cLe],[/player|character|humanoid|person/i,$0r],[/anim|state|machine/i,MTt]];function Von(t){for(const[n,s]of zon)if(n.test(t))return s;return GB}function Uon(t){return n=>Ye.createElement(Mon,{source:t.picture.source,entry:t.picture.entry,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Jon(t){return n=>Ye.createElement(jon,{capture:t.capture,previewKey:t.previewKey,actions:t.actions,...n?{mode:n}:{}})}function Won(t){return t.media?t.media.preview?t.media.preview({displayName:t.displayName,previewKey:t.previewKey,actions:t.actions}):null:t.canvasCapture?Jon({capture:t.canvasCapture,previewKey:t.previewKey,actions:t.actions}):t.picture?Uon({picture:t.picture,previewKey:t.previewKey,actions:t.actions}):null}function gOe(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 Hon={position:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1]};function Gon(t,n,s,c){if(k4t(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 V9t(t,n,s,c){const d=new Set,m=new Map,g=[];for(const S of t){const k=Gon(S,n,s,c).filter(F=>!d.has(F.id)),A=(k4t(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 U9t(t,n,s){return s===void 0?[...t]:t.filter(c=>n.get(c.id)===s.owner||s.builtins.includes(c.id))}function lje(t){const{adapter:n,nullSubject:s}=t,{sections:c,claimed:d,owners:m}=V9t(n?t.contributions??[]:[],n,null,null),g=U9t([...(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:PBe(t.surface)},quickActions:s?.quickActions??[],related:[],sections:g}}function Kon(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 Xon(t){const{adapter:n,nodeId:s,node:c,contributions:d,onEdit:m}=t;if(s===null)return lje({nullSubject:t.nullSubject??null,surface:t.surface,contributions:d,adapter:n,rail:t.rail});const{sections:g,claimed:S,owners:k}=V9t(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=mPt(n,s,en,ii);return m(),No},...n.inspector?.remove?{remove:en=>{const ii=N3r(n,s,en);return m(),ii}}:{}},F=n.inspector?.properties(s)??[],D=F.find(en=>en.path==="name"),{ungrouped:J,groups:$}=Bon(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?nLe:fLe,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:jTt,placement:"identity",run:async()=>{await pPt(n,s),m()}});const Pe=new Map;Pe.set(O5e,se);for(const en of $)Pe.set(qht(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?T9t({name:qe,path:X?.anchored===!0?X.file:"",surface:"canvas"}):null,Pt=ue.filter(en=>en.placement==="preview"),Wt=Won({media:we,canvasCapture:t.canvasPreview,picture:bt,displayName:c?.label??s,previewKey:s,actions:Pt});!S.has(zRe)&&Wt!==null&&be.push({id:zRe,title:"Preview",icon:aR,order:C4t,body:{kind:"preview",render:Wt}});const zt=$on(n,s),ft=!S.has($ht)&&zt!==null,tr=ft?$.find(en=>en.name==="Transform")?.properties??[]:[];if(ft){const en=n.transforms?.get(s)??Hon,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:IVe(en.rotation),scale:[...en.scale]};be.push({id:$ht,title:"Transform",icon:VTt,order:pEr,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[gOe(En)],set:(En,cs)=>{if(!n.transforms)return;const On=gon(en,gOe(En),cs);MFe(n,s),q_e(n,s,On);const ji=jFe(n,s);return m(),ji},...n.transforms?.remove?{remove:En=>{const cs=dPt(n,s,gOe(En));return m(),cs}}:{}}},render:()=>[Ye.createElement(bon,{key:"channels",dimensions:zt,transform:en,readOnly:!n.capabilities.transform,channelEditability:No,...ii?.note?{note:ii.note}:{},onBegin:()=>{MFe(n,s)},onPreview:En=>{q_e(n,s,En)},onCommit:En=>{q_e(n,s,En),jFe(n,s),m()}}),...tr.length>0?[Ye.createElement(z9t,{key:"rows",fields:tr,io:A})]:[]]}})}S.has(O5e)||(se.length>0&&be.push({id:O5e,title:"Properties",icon:UTt,order:fQ,defaultOpen:!0,body:{kind:"fields",fields:se,io:A}}),$.forEach((en,ii)=>{if(tr.length>0&&en.name==="Transform")return;const No=en.properties.filter(gn=>!gn.defaulted).length;be.push({id:qht(en.groupId),title:en.name,icon:Von(en.name),order:E4t+ii,description:No>0?`${No} set of ${en.properties.length}`:`${en.properties.length} properties`,defaultOpen:No>0&&en.properties.length<=qon,testId:`ingest-group-${en.groupId}`,body:{kind:"fields",fields:en.properties,io:A}})}));const Qt=t.stories;!S.has(T4t)&&Qt&&be.push(Yon(Qt)),be.push(...g.map(en=>Kon(en,A,Pe))),be.sort((en,ii)=>en.order-ii.order);const Tt=U9t(be,k,t.rail),vn=wPt(n,s),Yr=TPt(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:PBe(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 Yon(t){return{id:T4t,title:t.title??"Stories",icon:dLe,order:_Er,body:{kind:"custom",render:()=>Ye.createElement(mon,{stories:t.stories,activeStoryId:t.activeStoryId,onApplyStory:t.onApplyStory,isolation:t.isolation,unavailableReason:t.unavailableReason??null})}}}const Zon=["project-tool","tool-contribution"];function Qon(t){const{activeDocumentKind:n,documentSelection:s}=t;return n===null||!Zon.includes(n)?!1:s===null}function zxt(t){const{subject:n,surface:s,available:c,override:d,workspaceDefault:m=null,columnShown:g=!0}=t,S=n.presentation.preferred??PBe(),k=don(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 J9t="game";function esn(t){const n=t.projectName?.trim();return{id:J9t,title:n&&n.length>0?n:"Game",kindLabel:"Game",...t.instanceName?{note:{text:t.instanceName}}:{},sections:[]}}function qSn(t){return v$e({match:()=>Pp()===a0,describe:()=>esn(t())})}const tsn=3,rsn=Object.freeze({none:!0});function nsn(t){const n=Object.getPrototypeOf(t);return n===Object.prototype||n===null}function eee(t,n=0){if(t===null)return null;const s=typeof t;if(s==="string"||s==="boolean")return t;if(s==="number")return Number.isFinite(t)?t===0?0:t:{kind:"opaque",type:"number"};if(s!=="object")return{kind:"opaque",type:s};if(n>=tsn)return{kind:"opaque",type:Vxt(t)};if(Array.isArray(t))return t.map(m=>eee(m,n+1));const c=t;if(!nsn(c))return{kind:"opaque",type:Vxt(c)};const d={};for(const[m,g]of Object.entries(c))g!==void 0&&(d[m]=eee(g,n+1));return d}function Vxt(t){return t.constructor?.name??"object"}function Uxt(t,n){let s;try{s=n.get(t.path)}catch{s=void 0}return{path:t.path,label:t.label,type:t.type,...qRe(s)?{mixed:!0}:{},...!qRe(s)&&s!==void 0?{value:eee(s)}:{},...t.defaulted!==void 0?{defaulted:t.defaulted}:{},...t.readonly!==void 0?{readonly:t.readonly}:{},...t.readonly?{readonlyReason:DBe(t)}:{},...t.resettable!==void 0?{resettable:t.resettable}:{},...t.revertsTo!==void 0?{revertsTo:t.revertsTo}:{},...t.group!==void 0?{group:t.group}:{},...t.options!==void 0?{options:t.options.map(c=>eee(c))}:{}}}function Jxt(t){const n={};for(const[s,c]of Object.entries(t))c!==void 0&&(n[s]=eee(c));return n}function isn(t){const n=t.body;if(n.kind==="fields")return{kind:"fields",fields:n.fields.map(s=>Uxt(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:Jxt(n.data)};if(n.kind==="custom"&&n.editable!==void 0){const s=n.editable;return{kind:"fields",fields:s.fields.map(c=>Uxt(c,s.io)),...n.data!==void 0?{data:Jxt(n.data)}:{}}}return{kind:n.kind,id:t.id,title:t.title}}function osn(t){return{id:t.id,title:t.title,order:t.order,...t.description!==void 0?{description:t.description}:{},body:isn(t)}}function ssn(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(osn)}}const Wxt=new WeakMap;function asn(t){if(!t.capture)return null;const n=Wxt.get(t);if(n)return n;const s=async c=>t.capture?.(c)??null;return Wxt.set(t,s),s}function csn(t){return typeof t.previewImage=="function"}function lsn(t,n,s){if(!n)return null;if(s==="asset-lab"){const d=s2(Pp());return d?asn(d):null}let c=t;if(t instanceof hy){const d=t.ownerOf(n);c=t.childAdapters().find(m=>m.worldId===d)?.adapter??t}return csn(c)?d=>c.previewImage(n,d,d):null}function usn(){const t=Pp();if(t===null)return null;const n=wtn(t);if(n===void 0)return null;const s=PN(n.kind);return s===void 0||s.inspectorRail!=="owned"?null:{rail:{owner:s.owner,builtins:s.inspectorBuiltins??[]}}}function fsn(t){const{store:n,adapter:s,documentSelection:c,surface:d}=t,m=eon();if(m!==null)return{subject:lje({nullSubject:m,surface:d}),available:!0};const g=con(c,n.selectedEntityIds,s),S=g?s.hierarchy.node(g):null;if(g!==null&&S===null)return{subject:lje({nullSubject:null,surface:d}),available:!1};const k=()=>n.notifyIngestEdit(),A=g?null:i4r({adapter:s,surface:d,store:n,onEdit:k}),F=g?S?Uht(S,s):[]:Uht(null,s,{nullSubjectId:A?.id??null}),D=g?Ize(s,g):null;return{subject:Xon({adapter:s,nodeId:g,node:S,surface:d,contributions:F,...g?{}:{nullSubject:A},media:d==="asset-lab"?null:D,canvasPreview:lsn(s,g,d),assetDocument:D?.assetDocument??null,stories:Q3r(s,S,g),...usn()??{},...c===null&&g!==null&&n.selectedEntityIds.size>1?{alsoSelected:n.selectedEntityIds.size-1}:{},onEdit:k}),available:g!==null||A!==null||F.length>0}}function uve(t){const n=_on(t),{adapter:s,documentSelection:c}=Cm(t),d=fsn({store:t,adapter:s,documentSelection:c,surface:n}),{subject:m}=d,g=d.available&&(m.id!==J9t||m.sections.length>0)&&!Qon({activeDocumentKind:TC()?.descriptor.kind??null,documentSelection:c}),S=Pp()===a0?hVe():null;if(S){const k=aon(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 zxt({subject:A,surface:n,available:!0,override:aje(n),workspaceDefault:mD().inspector??null,columnShown:xgt("properties")!==!1})}return zxt({subject:m,surface:n,available:g,override:aje(n),workspaceDefault:mD().inspector??null,columnShown:xgt("properties")!==!1})}function fve(t){const{subject:n,surface:s,presentation:c,available:d}=uve(t);return d?ssn(n,{surface:s,presentation:c}):rsn}async function dsn(t,n){const{subject:s,available:c}=uve(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(),fve(t)}function psn(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 _sn(t,n,s){const c=W9t(t,n);psn(c.field,s);const d=await c.io.set(n,s)??jhe;return{subject:fve(t),write:d}}function W9t(t,n){const{subject:s,available:c}=uve(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: ${DBe(S.field)}`);return S}class uje extends Error{constructor(n){super(n),this.name="InspectionRemovalUnavailableError"}}async function msn(t,n){const s=W9t(t,n);if(s.field.resettable!==!0)throw new uje(`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 uje(`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)??jhe;return{subject:fve(t),write:c}}const NVe=new Map;let H9t=[];const fje=new Set;function G9t(){H9t=[...NVe.values()];for(const t of fje)t()}function zSn(t){return fje.add(t),()=>fje.delete(t)}function VSn(t){NVe.set(t.rootId,t),G9t()}function USn(t){NVe.delete(t)&&G9t()}function K9t(){return H9t}function hsn(){const t=K9t();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 gsn(t){return t.liveMounted?t.livePlaying?t.storePlayState==="paused"?"paused":"playing":"paused":"stopped"}async function ysn(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 Jge="console";function vsn(t){let n=zQ().length>0;const s=ARt(()=>{const m=zQ().length>0;m&&!n&&mD().drawer!=="hidden"&&vC(Jge),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(Jge)),c=g});return()=>{s(),d()}}function dve(){ckr(Jge)}function pve(){vC(Jge)}const Wge=new Map;function JSn(t){return n=>{if(n.phase==="adopted"){Wge.set(t,{source:n.source,sceneId:n.sceneId,cameraId:n.cameraId,alternates:[]});return}const s=Wge.get(t);s&&s.alternates.push({sceneId:n.sceneId,cameraId:n.cameraId,sameRenderer:n.sameRenderer,drawCount:n.drawCount})}}function WSn(t){Wge.delete(t)}function bsn(){return[...Wge].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 Ssn=new Set(["state","stateAll","providers","commands","events","snapshot"]);function xsn(t){if(t.type!=="bridge-call")return[];const n=t.method;if(typeof n!="string"||!Ssn.has(n))return[];const s=t.instance;try{const c=Hwr(s).debug;if(c===void 0)return[];const d=[x3t(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 wsn(t,n,s){const c=xsn(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":Wvr(t.type)??Uvr(t.type),playFullReport:n&&!d&&c.length>0?"explicit":n&&t.type==="bridge-call"&&t.method==="invoke"?"if-content-changed":"none"}}function Tsn(t,n,s,c){return t==="none"?!1:!(t==="if-content-changed"&&n==="none"&&s===c)}function Hxt(t,n){const s=nq(t);return s.hierarchy.node(n)!==null||Ize(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 yOe(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 Csn(){return typeof document>"u"?null:{visibility:document.visibilityState,focused:document.hasFocus(),reportedAt:Date.now()}}const Esn=["entities","entityCount","ontologyInvariants"];function ksn(t){const n={...t};for(const s of Esn)delete n[s];for(const s of Krn())delete n[s];return{...n,_statePatch:!0}}function Gxt(t,n=null){const s=zQ(),c=Pp(),d=Rze(t),m=b4t.getSnapshot(),g=n?.entities??X0e(t);return{playState:gsn({storePlayState:t.playState,liveMounted:yVe(),livePlaying:sve()}),mountFailures:s.map(S=>({...S})),storyFailures:rq().flatMap(S=>S.ok?[]:[{modulePath:S.modulePath,error:S.error}]),moduleSplits:fnn().map(S=>({path:S.path,urls:[...S.urls]})),adapter:u0(),readiness:K9t().map(S=>({...S})),readinessWarning:hsn(),worldAdoption:bsn().map(S=>({...S})),presence:Csn(),pageErrors:Asn(),consoleErrors:Dsn(),sessionErrors:Psn(),sessionWarnings:Isn(),rendererResources:{...mnn()},ontologyInvariants:n?.ontologyInvariants??g9t().map(S=>({...S})),...Grn(n),selectedEntityId:d[0]??null,selectedEntityIds:d,selectedCreationSite:qYr(t),selectedWriteAnchorKind:zYr(t),activeViewportTab:t.activeViewportTab,activeDocumentId:c,activeUtilityId:skr(),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:nve().map(S=>({id:S.descriptor.id,category:S.category,default:S.default})),activeTabKey:(()=>{const S=Pp();return S&&GRt(S)?S:"__inspector__"})(),entityCount:g.length,savePath:Oze(t),saveState:DRt(t),entities:g,viewportActivationTimings:pTr()}}function X9t(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 OVe(t){const n=fVe();return!n||t<n.startedAt?!1:n.endedAt===null||t<=n.endedAt}function Asn(){return Qs.getEntries().filter(t=>t.level==="error"&&t.source==="runtime"&&OVe(t.timestamp)).slice(-100).map(t=>t.count>1?`${t.message} (×${t.count})`:t.message)}const Kxt=200;function Dsn(){return RVe(Qs.getEntries().filter(t=>t.level==="error"&&t.source!=="runtime"&&OVe(t.timestamp)))}function RVe(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>Kxt?`${c.message.slice(0,Kxt)}…`:c.message;return`${d}${g}${m}`});return{count:n,recent:s}}function Psn(){return RVe(Qs.getEntries().filter(t=>t.level==="error"&&!OVe(t.timestamp)))}function Isn(){return RVe(Qs.getEntries().filter(t=>t.level==="warn"))}async function Nsn(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 h4t(s);const c=cQ(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 Osn(t,n,s){if(UYr(n.type),wYr()&&n.type!=="stop")return{ok:!1,error:"Video export owns this paused run. Stop it to cancel before another command."};const c=_Ve(n);if(c)return c;if(n.type==="play"||n.type==="restart"){const g=zQ();if(g.length>0)return{ok:!1,error:`this project's ${g.length===1?"root":"roots"} did not mount, so there is nothing to ${n.type==="play"?"play":"restart"}: `+g.map(S=>`"${S.worldId}" (${S.identity}) — ${S.message}`).join("; ")}}const d=await JYr(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 X9t(n,g)}if(!uye(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 pnn(),{ok:!0};case"select":{const g=n.id??null;if(g!==null){const S=Hxt(t,g);if(S)return{ok:!1,error:S}}yOe(t,g?[g]:[],s);break}case"select-multiple":{const g=n.ids;for(const S of g){const k=Hxt(t,S);if(k)return{ok:!1,error:k}}yOe(t,g,s);break}case"select-all":{yOe(t,X0e(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 y9t(g)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"active-tab":{const g=n.key;if(g!=="__inspector__"&&!X0(g)){const S=l0().map(k=>k.descriptor.id);return{ok:!1,error:`No open workspace document with id "${g}" — nothing was activated. `+(S.length>0?`Open documents: ${S.join(", ")}.`:"No documents are open in this workspace.")}}break}case"select-asset":{const g=n.path;if(typeof g!="string"||g.trim()==="")return{ok:!1,error:'select-asset requires a non-empty "path".'};const S=g.replace(/^\/+/,""),k=S.split("/").pop()??S,A=ig(k);BI({path:g,name:k,kind:FB(A)??"unknown",capabilities:A,origin:"project"});break}case"open-asset-tab":{const g=n.kind,S=sN(n.path,g);if(!await KRt(S,g))return{ok:!1,error:`Asset document did not finish mounting its Inspector: ${S}`};break}case"close-asset-tab":{const g=n.key;GRt(g)&&EN(g);break}case"toggle-command-palette":TVe();break;case"toggle-console":dve();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 ${UBe().join(", ")}, got ${String(g)}.`};if(zS()===g)return{ok:!0,data:{workspace:g,applied:!0}};const S=vDt().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)}.`};YBe(g);const k=Ihe();return k!==g?{ok:!1,error:`set-style applied "${g}" but the editor is wearing ${k===null?"a custom mix of axes":`"${k}"`} (${dgt(g).join("; ")}).`,data:{style:k,differences:dgt(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=F_e(g)===null&&F_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."};ZBe(S,k)}const A=n.preset;return A!==void 0&&(typeof A!="string"||!EAr(S,A))?{ok:!1,error:`viewport-presentation \`preset\` must be one of: ${_gt().map(F=>F.id).join(", ")||"(none registered)"}.`}:{ok:!0,data:{presentation:QBe(S),binding:F_e(S),bound:PAr(),lastDraw:DAr(S),presets:xAr().map(F=>F.id),viewPresets:_gt().map(F=>F.id),environmentImages:FAr().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."}:Lye(g)?(kDt(g),{ok:!0,data:{material:_N(),style:Ihe()}}):{ok:!1,error:`set-appearance material must be one of ${RTr().map(k=>k.id).join(", ")}, got ${String(g)}.`}}case"present-view":try{return{ok:!0,data:{...await zge(t,n.view)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"current-view":return{ok:!0,data:{view:ote(t)}};case"inspect":return{ok:!0,data:{subject:fve(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 dsn(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 ein(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=bxt();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:Qrn(g,{playState:t.playState,activeViewportTab:t.activeViewportTab})}}}case"expand-hierarchy-all":case"collapse-hierarchy-all":{const g=n.type==="expand-hierarchy-all",S=bxt();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=Yrn();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 _sn(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 msn(t,g);return{ok:!0,data:{subject:S.subject,write:S.write}}}catch(g){return g instanceof uje?{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=Rze(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=e0e(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 f$e(S,A):await Mhe(S,D())}};case"duplicate":{if(A.length>1&&$.duplicateMany)return{ok:!0,data:{write:await yPt(S,A)}};const G=t0e(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 d$e(S,D(),G)}}}case"wrap":return $.wrap?{ok:!0,data:{write:await r0e(S,D(),J("tag"))}}:{ok:!1,error:"structure-op: this adapter has no `wrap`."};case"unwrap":return $.unwrap?{ok:!0,data:{write:await n0e(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=i0e(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=p$e(S,D());return{ok:!0,data:{ids:G.ids,write:await G.ack}}}case"copy":return $.copy?{ok:!0,data:{copied:await o0e(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 s0e(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 a0e(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 Urn(n.step)}}}catch(g){return{ok:!1,error:g instanceof Error?g.message:String(g)}}case"capture-active-document":{const g=$Dr(n);if("error"in g)return{ok:!1,error:g.error};try{n.view&&await zge(t,n.view);const S=await v9t(t,g.size);return nnn(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 Wrn(t,{...g===void 0?{}:{scale:g},...S===void 0?{}:{region:S}})}}}catch(k){return{ok:!1,error:k instanceof Error?k.message:String(k)}}}case"document-table":{const g=u0();return g?{ok:!0,data:{default:g.scenes.default??null,entries:g.scenes.entries,pending:g.documentsPending===!0}}:{ok:!1,error:"The project adapter has not resolved yet — no document table to list.",data:{code:"SCENE_TABLE_UNAVAILABLE"}}}case"open":{const g=n.id;if(typeof g!="string"||g.trim()==="")return{ok:!1,error:"open requires a non-empty scene-table entry id."};const S=ste(),k=S?u0()?.scenes.entries.find(J=>J.id===g&&PN(J.kind)===void 0):void 0,A=S?async J=>await t9t(J)??{ok:!1,error:"No running lane can remount with a selection."}:void 0,D=(k?await ysn(k,{scenes:mVe,activateGameDocument:()=>X0(a0),gameDocumentId:a0,...A?{remountSelection:A}:{}}):null)??await jtn(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 Nsn(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 Rsn(t,n){const s=jD();let c=null,d=-1;const m=new Set;let g=!1,S=null,k=null,A=null;const F=()=>{n_e()===null&&(c=Gxt(t),d=t.contentVersion,JSt(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=xxt(()=>{D=null,g=!1,F()})},250)},se=vn=>{if(t.contentVersion!==vn){G();return}$(),k=vn,A=setTimeout($,1e3)},pe=()=>ste()&&t.playState==="playing",ue=vn=>{(vn!==null||k!==null&&t.contentVersion!==k||g&&t.contentVersion!==d)&&G()},Ce=(vn,Yr,en)=>pe()?(Tsn(en,vn,t.contentVersion,d)&&(vn==="explicit"?G():vn==="if-content-changed"?se(Yr??t.contentVersion):ue(Yr)),!0):!1,De=(vn="always",Yr="none",en=null)=>{if(n_e()!==null)return;if(c===null){F();return}const ii=Gxt(t,c);c=ii,JSt(ksn(ii)),vn!=="none"&&(Ce(Yr,en,vn)||(J(),$(),g=!1,!(vn==="if-content-changed"&&t.contentVersion===d)&&D===null&&(D=xxt(()=>{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=bVe(bt),zt=OC(bt),ft=fTr(bt);F(),i_e(!0),aEr(JZr),s.addEventListener("open",()=>{De("if-content-changed"),i_e(n_e()===null)});const tr=jze(vn=>{i_e(vn===null)});s.addEventListener("editor-command",vn=>{try{const Yr=JSON.parse(vn.data),en=Yr._requestId,ii=t.contentVersion,No=n_e();if(No!==null){const En=oZr(No,String(Yr.type));en&&WSt(en,!1,En);return}en&&VZr(en);let gn;Osn(t,Yr,{deferPresentation:En=>{gn=En},...n?{history:n}:{}}).catch(En=>X9t(Yr,En)).then(En=>{if(en){const On=WSt(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=wsn(Yr,En.ok,m);De(cs.derived,cs.playFullReport,ii)})}catch{}}),s.addEventListener("project-changed",()=>{window.location.reload()});const Qt=()=>De();document.addEventListener("visibilitychange",Qt),window.addEventListener("focus",Qt),window.addEventListener("blur",Qt);const Tt=()=>setTimeout(Qt,0);return window.addEventListener("error",Tt),window.addEventListener("unhandledrejection",Tt),()=>{i_e(!1),D?.(),D=null,S!==null&&clearTimeout(S),S=null,$(),tr(),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 Fsn(t,n,s){return Ye.createContext(s)}const LD=Fsn(void 0,"EditorContext",null);function Msn({runtime:t,children:n}){const s=Ye.useMemo(()=>({begin:()=>{},end:()=>{}}),[]);return q.jsx(LD.Provider,{value:t,children:q.jsx(l4t.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 HSn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorStats must be used within <EditorProvider>");return t.stats}function jsn(){const t=Ye.useContext(LD);if(!t)throw new Error("useEditorInit must be used within <EditorProvider>");return t.initPromise}function Y9t(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryService must be used within <EditorProvider>");return t.session.history}function Lsn(){return Ye.useContext(LD)?.session.history??null}function GSn(){return Ye.useContext(LD)?.store??null}function KSn(){return Ye.useContext(LD)?.stats??null}function _ve(){const t=Ye.useContext(LD);if(!t)throw new Error("useHistoryCommands must be used within <EditorProvider>");return t.session.historyCommands}function Z9t(){const t=_ve();return Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot)}function Bsn(t,n){return t==="selection"&&n==="selection"?"selection":"content"}class $sn{_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;_helperVisibility={bounds:!1,lights:!0,cameras:!0,colliders:!0,joints:!0,particles:!0,lod:!0,audio:!0,splines:!0,navmesh:!0,constraints:!0,reflectionProbes:!0,triggerVolumes:!0,skeletons:!1,weights:!1,cursor:!0,empties:!0};get transformMode(){return this._transformMode}get transformSpace(){return this._transformSpace}get snapEnabled(){return this._snapEnabled}get snapValues(){return this._snapValues}get snapToSurface(){return this._snapToSurface}get snap2D(){return this._snap2D}setSnap2D(n){this._snap2D={...this._snap2D,...n},this._notify()}get rotationSnap(){return this._rotationSnap}get scaleSnap(){return this._scaleSnap}setRotationSnap(n){this._rotationSnap=n,this._notify()}setScaleSnap(n){this._scaleSnap=n,this._notify()}get smartSnap(){return this._smartSnap}get preserveChildrenTransform(){return this._preserveChildrenTransform}get pivotMode(){return this._pivotMode}get gizmoAnchor(){return this._gizmoAnchor}get showHelpers(){return this._showHelpers}get helperVisibility(){return this._helperVisibility}setTransformMode(n){this._transformMode=n,this._notify()}setTransformSpace(n){this._transformSpace=n,this._notify()}toggleSnap(){this._snapEnabled=!this._snapEnabled,this._notify()}setSnapValues(n){this._snapValues={...this._snapValues,...n},this._notify()}setSmartSnap(n){this._smartSnap={...this._smartSnap,...n},this._notify()}toggleSnapToSurface(){this._snapToSurface=!this._snapToSurface,this._notify()}togglePreserveChildrenTransform(){this._preserveChildrenTransform=!this._preserveChildrenTransform,this._notify()}setPivotMode(n){this._pivotMode=n,this._notify()}setGizmoAnchor(n){this._gizmoAnchor=n,this._notify()}toggleHelpers(){this._showHelpers=!this._showHelpers,this._notify()}toggleHelperType(n){this._helperVisibility[n]=!this._helperVisibility[n],this._helperVisibility[n]&&(this._showHelpers=!0),this._notify()}_viewportActionListeners=new Set;onViewportAction=n=>(this._viewportActionListeners.add(n),()=>this._viewportActionListeners.delete(n));requestViewportAction(n){for(const s of this._viewportActionListeners)s(n)}focusOnEntity(n){this.requestViewportAction({type:"focus-entity",id:n})}focusOnSelection(){this.requestViewportAction({type:"focus-selection"})}frameAll(){this.requestViewportAction({type:"frame-all"})}zoomView(n){this.requestViewportAction({type:"zoom-view",direction:n})}focusOnScene(){this.requestViewportAction({type:"focus-scene"})}snapSelectionToFloor(){this.requestViewportAction({type:"snap-selection-to-floor"})}setViewPreset(n){this.requestViewportAction({type:"set-view-preset",preset:n})}stepView(n){this.requestViewportAction({type:"step-view",step:n})}toggleCameraView(){this.requestViewportAction({type:"toggle-camera-view"})}toggleProjection(){this.requestViewportAction({type:"toggle-projection"})}setCameraPose(n,s,c){this.requestViewportAction({type:"set-camera-pose",position:n,target:s,...c!==void 0?{fov:c}:{}})}notifyChange(n="content",s="shell",c=n!=="selection"){this._notify(n,s,c)}_notifyDeferred(n="content"){if(this._deferredNotifyTimer!==null){this._deferredNotifyScope=Bsn(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 qsn{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 zsn(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 Vsn{constructor(n,s={}){this.projectIdentity=n,this.history=new wDr(s),this.historyCommands=new qsn(this.history),this.releaseLimitNotices=zsn(this.history)}history;historyCommands;releaseLimitNotices;dispose(){this.releaseLimitNotices(),this.historyCommands.dispose(),this.history.dispose()}}function Usn(){return Q9t}let Q9t=Promise.resolve();function eMt(){const t=Jsn();return Q9t=t.then(()=>{},()=>{}),t}async function Jsn(){await tMt()}async function tMt(){const t=wf();if(t){Qs.log(`Opened project: ${t.config.name}`,"project");return}try{const n=await SFt();n&&Qs.log(`Opened project: ${n.config.name}`,"project")}catch{}}const rMt=Object.freeze(Object.defineProperty({__proto__:null,bootstrapProject:eMt,initProject:tMt,projectBootstrapSettled:Usn},Symbol.toStringTag,{value:"Module"}));function vOe(t){return Promise.reject(new Error(`This editor tier cannot ${t}.`))}const nMt={openPersistence:()=>vOe("persist Asset Lab documents"),replaceSource:()=>vOe("write project source"),saveThumbnailFraming:()=>vOe("write project thumbnail framing")};let gme=nMt;function Wsn(t){if(gme!==t){if(gme!==nMt)throw new Error("An Object3D document write policy is already installed.");gme=t}}function Hsn(){return gme}function Gsn(){let t=0;const n=async()=>{const c=++t,d=wf();if(d)try{const m=await qze();if(m.status!=="project"||m.project.path!==d.rootPath)return;const g=m.project.config;if(c!==t||wf()!==d)return;pLe({...d,config:g})}catch(m){c===t&&wf()===d&&console.error("[project] Could not refresh project declarations:",m)}},s=fen(()=>void n());return()=>{t++,s()}}function Ksn(){return jvr(()=>{vVe(),C3r(null),Uwr(),Wnn(),hTr(),M3t(),Stn(),oD()})}async function Xsn(){typeof performance<"u"&&performance.getEntriesByType("navigation").length>0&&await Promise.race([Mye(),new Promise(n=>setTimeout(n,5e3))]),await mN()}function Ysn(){Xsn();const t=IC(()=>void mN()),n=_Ft(()=>void mN());return()=>{t(),n()}}const Zsn={tools:[],contributions:[],loadErrors:[]};let iMt=Zsn,oMt=0;const dje=new Set;function Xxt(t){iMt=t,oMt++;for(const n of dje)n()}function N$(){return iMt}function Qsn(){return oMt}function sMt(t){return dje.add(t),()=>dje.delete(t)}async function WZ(){try{const t=await fetch("/__editor/project-tools"),n=await L_(t,"Catalog request failed");return Xxt(n),n}catch(t){const n={tools:[],contributions:[],loadErrors:[{sourcePath:"package.json#volter.tools",message:t instanceof Error?t.message:String(t)}]};return Xxt(n),n}}async function ean(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 tan(){WZ();const t=IC(()=>void WZ()),n=_Ft(()=>void WZ());return()=>{t(),n()}}const Hge=new Map;function ran(t,n){if(n===null){Hge.delete(t);return}Hge.set(t,n),nan()}const Yxt=128;let mZ=[],HZ=null,aMt=0,yme=!1;function nan(){if(yme)return()=>{};if(typeof PerformanceObserver>"u")return()=>{};let t;try{t=new PerformanceObserver(n=>{for(const s of n.getEntries()){const c=s.duration;(HZ===null||c>HZ)&&(HZ=c),c>=100&&(aMt+=1),mZ.push({start:s.startTime,duration:c}),mZ.length>Yxt&&(mZ=mZ.slice(-Yxt))}}),t.observe({type:"longtask",buffered:!0})}catch{return()=>{}}return yme=!0,()=>{t.disconnect(),yme=!1}}function ian(){return yme?{longestTaskMs:HZ===null?null:Math.round(HZ),tasksOver100ms:aMt}:null}function oan(t=performance.now()){if(Hge.size===0)return null;const n={};for(const[s,c]of Hge){const d=c(),m=d.lastCallWindow;let g=null;if(m!==null){const S=m.end??t;for(const k of mZ)k.start+k.duration<m.start||k.start>S||(g===null||k.duration>g)&&(g=k.duration)}n[s]={inFlightMs:d.inFlightMs,lastCallMs:d.lastCallMs,maxCallMs:d.maxCallMs,callsOver5s:d.callsOver5s,callsOver30s:d.callsOver30s,lastCallLongestTaskMs:g===null?null:Math.round(g),wasmMemoryMB:d.wasmMemoryMB}}return n}function Zxt(t){return!("unavailable"in t)}function san(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 aan=5e3,can=4,lan=1024*1024;function bOe(t){return Math.round(t/lan*100)/100}function uan(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*can;return{heapUsedMB:Zxt(n)?bOe(n.usedBytes):null,heapLimitMB:Zxt(n)&&n.limitBytes!==null?bOe(n.limitBytes):null,mountEpochs:t.mountEpochs(),canvases:s.length,canvasMB:bOe(g),...d===null?{}:{workerCalls:d},...m===null?{}:{stalls:m},...c===null?{}:{textures:c.textures,geometries:c.geometries,...c.programs===null?{}:{programs:c.programs}}}}function fan(t){const n=new Set;for(const s of t)try{const c=new URL(s.name,"http://volter.invalid").searchParams.get(Oge);c!==null&&c.length>0&&n.add(c)}catch{}return n.size}function dan(){return{heap:()=>san(),mountEpochs:()=>fan(performance.getEntriesByType("resource")),canvases:()=>[...document.querySelectorAll("canvas")],rendererCounts:()=>eTr()?.memorySnapshot?.().counts??null,workerCalls:()=>oan(),stalls:()=>ian()}}let cMt=null;function XSn(){return cMt}function pan(t){const n=t.sources??dan(),s=t.hidden??(()=>document.visibilityState==="hidden"),c=()=>{if(s())return;const m=uan(n);cMt=m,t.report(m)};c();const d=setInterval(c,t.intervalMs??aan);return()=>clearInterval(d)}function _an({children:t}){const n=Ye.useRef(null);n.current||(n.current=new $sn({followsWorkspaceFocus:!0}),QZr(n.current));const s=Ye.useRef(null);if(!s.current){const g=wf();s.current=new Vsn(g?.rootPath??"unknown-project")}n.current.attachHistory(s.current.history),Wsn(BDr);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=eMt()),Ye.useEffect(()=>Rsn(n.current,s.current.historyCommands),[]),Ye.useEffect(()=>Ysn(),[]),Ye.useEffect(()=>tan(),[]),Ye.useEffect(()=>itn(),[]),Ye.useEffect(()=>Gsn(),[]),Ye.useEffect(()=>Ksn(),[]),Ye.useEffect(()=>Ftn(),[]),Ye.useEffect(()=>pan({report:vZr}),[]);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(Msn,{runtime:{store:n.current,stats:c.current,initPromise:d.current,session:s.current},children:t})}const Gge={x:0,y:0,zoom:1};function YSn(t=Gge){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=Gge,c())},subscribe:d=>(s.add(d),()=>s.delete(d))}}let n2=Gge;const pje=new Set,ZSn={get:()=>man(),setView:(t,n,s)=>FVe(t,n,s),setPan:(t,n)=>uMt(t,n),setZoom:t=>han(t),reset:()=>fMt(),subscribe:t=>gan(t)};function lMt(){for(const t of pje)t()}function man(){return n2}function FVe(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},lMt())}function uMt(t,n){FVe(t,n,n2.zoom)}function han(t){FVe(n2.x,n2.y,t)}function QSn(t,n){uMt(n2.x+t,n2.y+n)}function fMt(){n2.x===0&&n2.y===0&&n2.zoom===1||(n2=Gge,lMt())}function gan(t){return pje.add(t),()=>pje.delete(t)}function exn(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 yan=new Set(["opacity","zIndex","flexGrow","flexShrink","fontWeight","lineHeight"]);function van(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 txn(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 rxn(t,n){return typeof n!="number"?n:n===0||yan.has(t)?String(n):`${n}px`}const ban={hidden:!1,interactive:!1,pickLock:!1},dMt=new Map;function mve(t){return dMt.get(t)??ban}function MVe(t,n){dMt.set(t,{...mve(t),...n})}function oq(t){return mve(t).hidden}function San(t,n){MVe(t,{hidden:n})}function xan(t){San(t,!oq(t))}function pMt(t){return mve(t).interactive}function wan(t,n){MVe(t,{interactive:n})}function Tan(t){wan(t,!pMt(t))}function _Mt(t){return mve(t).pickLock}function Can(t,n){MVe(t,{pickLock:n})}function Ean(t){Can(t,!_Mt(t))}const Qxt=8,wN=8,nxn=[{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 ixn(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/Qxt)*Qxt}function mMt(t,n,s,c,d){let m=Math.max(wN,iA(n.width+t,s)),g=null;return c.length&&(g=yve(n.x+m,c,d),g&&(m=Math.max(wN,g.edge-n.x))),{value:m,match:g}}function hMt(t,n,s,c,d){const m=n.x+n.width;let g=Math.max(wN,iA(n.width-t,s)),S=null;return c.length&&(S=yve(m-g,c,d),S&&(g=Math.max(wN,m-S.edge))),{value:g,eastEdge:m,match:S}}function gMt(t,n,s,c,d){let m=Math.max(wN,iA(n.height+t,s)),g=null;return c.length&&(g=yve(n.y+m,c,d),g&&(m=Math.max(wN,g.edge-n.y))),{value:m,match:g}}function yMt(t,n,s,c,d){const m=n.y+n.height;let g=Math.max(wN,iA(n.height-t,s)),S=null;return c.length&&(S=yve(m-g,c,d),S&&(g=Math.max(wN,m-S.edge))),{value:g,southEdge:m,match:S}}function kan(t,n,s,c,d,m,g){if(t==="e"||t==="ne"||t==="se")return{width:mMt(n,s,d,m,g).value};if(t==="w"||t==="nw"||t==="sw"){const{value:S,eastEdge:k}=hMt(n,s,d,m,g);return c?{width:S,x:k-S}:{width:S}}return{}}function Aan(t,n,s,c,d,m,g){if(t==="s"||t==="sw"||t==="se")return{height:gMt(n,s,d,m,g).value};if(t==="n"||t==="nw"||t==="ne"){const{value:S,southEdge:k}=yMt(n,s,d,m,g);return c?{height:S,y:k-S}:{height:S}}return{}}function oxn(t,n,s,c,d,m,g,S=TR){const k=!m&&g?ate(g):null,A=k?hve(k):[],F=k?gve(k):[];return{...kan(t,n,c,d,m,A,S),...Aan(t,s,c,d,m,F,S)}}const TR=4;function ate(t){return{paddingBox:t.paddingBox??{x:0,y:0,width:0,height:0},siblingRects:(t.siblings??[]).filter(n=>n.width>0&&n.height>0),guideX:t.guideEdges?.x??[],guideY:t.guideEdges?.y??[]}}function hve(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 gve(t){const n=[{edge:t.paddingBox.y,rect:t.paddingBox},{edge:t.paddingBox.y+t.paddingBox.height,rect:t.paddingBox}];for(const s of t.siblingRects)n.push({edge:s.y,rect:s}),n.push({edge:s.y+s.height,rect:s});for(const s of t.guideY??[])n.push({edge:s,rect:{x:-1e5,y:s,width:2e5,height:0}});return n}function tee(t,n,s,c){let d=t,m=c,g=null;for(const S of s){const k=Math.abs(t-S.edge);k<=m&&(m=k,d=S.edge,g=S);const A=Math.abs(t+n-S.edge);A<=m&&(m=A,d=S.edge-n,g=S)}return{value:d,match:g}}function yve(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 sxn(t,n,s,c,d){let m=iA(s.x+t,c),g=iA(s.y+n,c);if(!c&&d){const S=ate(d);m=tee(m,s.width,hve(S),TR).value,g=tee(g,s.height,gve(S),TR).value}return{x:m,y:g}}function axn(t,n,s,c,d,m=TR){if(s)return{guides:[],position:t};let g=null,S=m;for(const pe of d?.snapPoints??[]){const ue=Math.hypot(t.x-pe.x,t.y-pe.y);ue<=S&&(S=ue,g=pe)}if(g)return{guides:ree({x:g.x,y:g.y,width:0,height:0},{edge:g.x,rect:n},{edge:g.y,rect:n}),position:g};if(d?.bounded)return{guides:[],position:t};const k=iA(t.x,!1),A=iA(t.y,!1),F=[n,c?.parent,c?.paddingBox,...c?.siblings??[]].filter(pe=>!!pe&&pe.width>0&&pe.height>0);let D=null,J=null,$=m,G=m;for(const pe of F){for(const ue of[pe.x,pe.x+pe.width/2,pe.x+pe.width]){const Ce=Math.abs(k-ue);Ce<=$&&($=Ce,D={edge:ue,rect:pe})}for(const ue of[pe.y,pe.y+pe.height/2,pe.y+pe.height]){const Ce=Math.abs(A-ue);Ce<=G&&(G=Ce,J={edge:ue,rect:pe})}}const se={x:D?.edge??k,y:J?.edge??A};return{guides:ree({x:se.x,y:se.y,width:0,height:0},D,J),position:se}}function ree(t,n,s){const c=[];return n&&c.push({orientation:"vertical",at:n.edge,start:Math.min(t.y,n.rect.y),end:Math.max(t.y+t.height,n.rect.y+n.rect.height)}),s&&c.push({orientation:"horizontal",at:s.edge,start:Math.min(t.x,s.rect.x),end:Math.max(t.x+t.width,s.rect.x+s.rect.width)}),c}function cxn(t,n,s,c,d,m=TR){if(c||!d)return[];const g=iA(s.x+t,!1),S=iA(s.y+n,!1),k=ate(d),A=tee(g,s.width,hve(k),m).match,F=tee(S,s.height,gve(k),m).match,D={x:g,y:S,width:s.width,height:s.height};return ree(D,A,F)}function lxn(t,n,s,c,d="both",m=!1,g=TR,S={},k=Pan){if(m)return{position:t,guides:[]};const A={x:s.x+t.x-n.x,y:s.y+t.y-n.y,width:s.width,height:s.height},F=[],D=[],J=(pe,ue,Ce)=>{F.push({edge:pe.x,rect:pe},{edge:pe.x+pe.width,rect:pe}),D.push({edge:pe.y,rect:pe},{edge:pe.y+pe.height,rect:pe}),F.push({edge:pe.x+pe.width/2,rect:pe}),D.push({edge:pe.y+pe.height/2,rect:pe})};if(c){const pe=ate(c);if(k.parent&&pe.paddingBox.width>0&&pe.paddingBox.height>0&&J(pe.paddingBox),k.others)for(const ue of pe.siblingRects)J(ue)}if(k.guides){for(const pe of[...c?.guideEdges?.x??[],...S.x??[]])F.push({edge:pe,rect:{x:pe,y:A.y,width:0,height:A.height}});for(const pe of[...c?.guideEdges?.y??[],...S.y??[]])D.push({edge:pe,rect:{x:A.x,y:pe,width:A.width,height:0}})}if(F.length===0&&D.length===0)return{position:t,guides:[]};const $=d==="y"?{value:A.x,match:null}:ewt(A.x,A.width,F,g),G=d==="x"?{value:A.y,match:null}:ewt(A.y,A.height,D,g),se={...A,x:$.value,y:G.value};return{position:{x:t.x+se.x-A.x,y:t.y+se.y-A.y},guides:ree(se,$.match,G.match)}}function Dan(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 uxn(t,n,s){const{smart:c,grid:d}=s;let m=t;return n&&c.enabled!==s.invert&&(c.sides||c.center)&&(m=Dan(t,n,c.sides,c.center,s.threshold)),n&&Math.abs($an(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 fxn(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 Pan={parent:!0,others:!0,guides:!0};function ewt(t,n,s,c){const d=tee(t,n,s,c);let m=d.value,g=d.match,S=g?Math.abs(m-t):c;for(const k of s){const A=Math.abs(t+n/2-k.edge);A<S&&(S=A,m=k.edge-n/2,g=k)}return{value:m,match:g}}function dxn(t,n,s,c,d,m,g=TR){if(d||!m)return[];const S=t==="e"||t==="ne"||t==="se",k=t==="w"||t==="nw"||t==="sw",A=t==="s"||t==="sw"||t==="se",F=t==="n"||t==="nw"||t==="ne",D=ate(m),J=hve(D),$=gve(D);let G=null;S?G=mMt(n,c,!1,J,g).match:k&&(G=hMt(n,c,!1,J,g).match);let se=null;return A?se=gMt(s,c,!1,$,g).match:F&&(se=yMt(s,c,!1,$,g).match),ree(c,G,se)}function pxn(t,n,s,c,d=15){const m=F=>F*180/Math.PI,g=m(Math.atan2(n.y-t.y,n.x-t.x)),k=m(Math.atan2(s.y-t.y,s.x-t.x))-g;return{rotate:c?k:Math.round(k/d)*d}}function RN(t,n){if(t instanceof hy){const s=t.ownerOf(n);return s?t.childAdapters().find(c=>c.worldId===s)?.adapter??null:null}return t}const twt=new WeakMap;function Ian(t){const n=t.boxEdit;if(!n)return null;const s=twt.get(t);if(s?.provider===n)return s.recorded;const c={begin:d=>Pg({adapter:t,seam:"editor.boxEdit.begin",stage:"effect",detail:`the world overlay began a box edit for ${d}`,run:()=>n.begin(d)}),apply:(d,m)=>Pg({adapter:t,seam:"editor.boxEdit.apply",stage:"effect",detail:`the world overlay applied a ${Object.keys(m).join(", ")} box patch to ${d}`,run:()=>n.apply(d,m)}),end:d=>Pg({adapter:t,seam:"editor.boxEdit.end",stage:"effect",detail:`the world overlay ended a box edit for ${d}`,run:()=>n.end(d)}),...n.gizmoOrigin?{gizmoOrigin:d=>Pg({adapter:t,seam:"editor.boxEdit.gizmoOrigin",stage:"operation",detail:`the world overlay read the native gizmo origin for ${d}`,run:()=>n.gizmoOrigin?.(d)??null})}:{},...n.referencePoint?{referencePoint:d=>Pg({adapter:t,seam:"editor.boxEdit.referencePoint",stage:"operation",detail:`the world overlay read the native reference point for ${d}`,run:()=>n.referencePoint?.(d)??null})}:{}};return twt.set(t,{provider:n,recorded:c}),c}function Nan(t,n){return RN(t,n)?.rects?.rect(n)??null}function Oan(t,n){const s=RN(t,n);return s?Ian(s):null}function _xn(t,n){return RN(t,n)?.rects?.contextRects?.(n)}function mxn(t,n){return RN(t,n)?.structure??null}function hxn(t,n){return RN(t,n)?.text??null}function gxn(t,n){return RN(t,n)?.colorSample??null}function yxn(t,n){const s=RN(t,n);return s?.rects?R3r(s):null}function vxn(t){const n=t instanceof hy?t.childAdapters():[{worldId:"",adapter:t}],s=[];for(const{worldId:c,adapter:d}of n)d.rects?.emptyContainers&&(c&&oq(c)||s.push(...d.rects.emptyContainers()));return s}function Ran(t,n){const s=c=>{const d=t.inspector?.get(n,`style.${c}`);return van(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 Fan=4;function bxn(t,n){const s=D=>D>0?D:Fan,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 Man(t,n,s){switch(t){case"paddingTop":return s;case"paddingBottom":return-s;case"paddingLeft":return n;case"paddingRight":return-n;case"marginTop":return-s;case"marginBottom":return s;case"marginLeft":return-n;case"marginRight":return n}}function Sxn(t,n,s,c){const d=Man(t,n,s),m=Math.max(0,Math.round(c+d));return{[t]:m}}function xxn(t,n,s){return{x:t.x+n,y:t.y+s,width:t.width,height:t.height}}const SOe=3;function SO(t,n){return n==="x"?t.x+t.width/2:t.y+t.height/2}function jan(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 Lan(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=SOe/2;return s?{x:n-m,y:c,width:SOe,height:d-c}:{x:c,y:n-m,width:d-c,height:SOe}}function wxn(t,n){if(t.length===0)return null;const s=Math.max(...t.map(J=>SO(J.rect,"x")))-Math.min(...t.map(J=>SO(J.rect,"x"))),c=Math.max(...t.map(J=>SO(J.rect,"y")))-Math.min(...t.map(J=>SO(J.rect,"y"))),d=s>=c,m=d?"x":"y",g=[...t].sort((J,$)=>SO(J.rect,m)-SO($.rect,m)),S=d?n.x:n.y;let k=0;for(;k<g.length&&SO(g[k].rect,m)<S;)k++;const A=k<g.length?g[k].id:null,F=jan(g,k,d),D=Lan(g,F,d);return{beforeSiblingId:A,index:k,marker:D}}function Txn(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 Cxn(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 xOe(t,n,s){const c=t?.get(n,s);return typeof c=="string"&&c.length>0?c:null}function Exn(t,n){const s=xOe(t.inspector,n,"style.position");let c=null;const d=t.hierarchy.node(n)?.parentId??null;if(d){const m=xOe(t.inspector,d,"style.display");m==="flex"||m==="inline-flex"?c=`flex ${(xOe(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 kxn(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 Axn(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 Dxn(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 Ban(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 Pxn(t,n){return RN(t,n)?.rects?.frame?.(n)??null}function Ixn(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 $an(t){return Math.atan2(t.tr.y-t.tl.y,t.tr.x-t.tl.x)}function vMt(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 bMt(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 Nxn(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 Oxn(t,n){const{s,t:c}=bMt(n);return vMt(t,s,c)}function rwt(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 Rxn(t,n,s,c,d,m=!1){const g=rwt(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=bMt(n),$=vMt(t,1-J.s,1-J.t),G=rwt(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 nwt=!1;const SMt=new Set(["viewport","hierarchy","inspector","asset-browser","workspace","global"]);let xMt="viewport";const wMt="editorActiveHotkeyScope";function Fxn(){const t=document.documentElement.dataset[wMt];return t&&SMt.has(t)?t:xMt}function CR(t){xMt=t,document.documentElement.dataset[wMt]=t}const qan="data-editor-app-undo";function iwt(t){return t instanceof Element&&t.closest(`[${qan}]`)!==null}function _je(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 zan(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&&SMt.has(s))return s}return null}function owt(t){const n=zan(t);n&&CR(n)}const wOe=[];function swt(t){return wOe.push(...t),()=>{for(const n of t){const s=wOe.indexOf(n);s>=0&&wOe.splice(s,1)}}}function Van(){nwt||(window.addEventListener("pointerdown",owt,!0),window.addEventListener("focusin",owt,!0),nwt=!0)}const GZ=new Map;let TMt=0;const mje=new Set;function awt(){TMt++;for(const t of mje)t()}function Uan(t){return GZ.set(t.id,t),awt(),()=>{GZ.get(t.id)===t&&(GZ.delete(t.id),awt())}}function Jan(){return[...GZ.values()]}function Wan(){return TMt}function Han(t){return mje.add(t),()=>mje.delete(t)}function jVe(t){const n=GZ.get(t);return!n||n.enabled&&!n.enabled()?!1:(n.run(),!0)}const Tw=["viewport","hierarchy","inspector"];function XL(){return(globalThis.getSelection?.()?.toString()??"").length===0}function BD(t){return Rze(t)}async function LVe(t){const n=BD(t);n.length!==0&&await o0e(Cm(t).adapter,n)}async function BVe(t){const n=BD(t);n.length!==0&&await s0e(Cm(t).adapter,n)}async function $Ve(t){const n=Cm(t).adapter,s=BD(t)[0],c=s?n.hierarchy.node(s)?.parentId??null:null;await a0e(n,c)}let cwt=Promise.resolve();function vve(t){const n=cwt.then(()=>Gan(t));return cwt=n.then(()=>{},()=>{}),n}async function Gan(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 yPt(s,n);if(m&&!m.persisted){i0(m.destination);return}}else for(const m of n){const g=await t0e(s,m).ack;if(g&&!g.persisted){i0(g.destination);return}}i0(`Duplicated ${d}`)}async function bve(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter,c=s.structure;if(c)if(c.removeMany)await f$e(s,n);else{const d=new Map(uPt(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 Mhe(s,g)}}async function Kan(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 r0e(s,d)}async function Xan(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 n0e(s,d)}async function Yan(t){const n=BD(t);if(n.length===0)return;const s=Cm(t).adapter;s.structure?.group&&await i0e(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=Oan(d,m);if(!g)continue;const S=Nan(d,m);if(!S)continue;const k=d.inspector?.get(m,"style.position"),A=k==="absolute"||k==="fixed",F=Ran(d,m),D=Ban(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 Zan(t){const n=Array.isArray(t)?t:[t];return n.includes("global")?"global":n.length===1&&n[0]==="viewport"?"stage":"panel"}let vme=null;function pp(t,n){const{frameEnabled:s,...c}=n;return vme?.push(Uan({id:t,run:d=>c.action(d??new KeyboardEvent("keydown")),scope:Zan(c.scope),...s?{enabled:s}:{}})),jBe(t).map(d=>({...c,...d}))}function CMt(t){const n=()=>{const g=[],S=vme;vme=g;try{return{rows:t(),actions:g}}finally{vme=S}};let s=n(),c=swt(s.rows);const d=()=>{c();for(const g of s.actions)g()},m=Gye(()=>{d(),s=n(),c=swt(s.rows)});return()=>{m(),d()}}function Qan(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=CMt(()=>[...pp("edit.redo",{scope:"global",allowInEditable:!0,when:m=>!_je(m.target)||iwt(m.target),action:c}),...pp("edit.undo",{scope:"global",allowInEditable:!0,when:m=>!_je(m.target)||iwt(m.target),action:s}),...pp("edit.copy",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void LVe(t)}),...pp("edit.cut",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void BVe(t)}),...pp("edit.paste",{scope:Tw,when:XL,frameEnabled:XL,action:()=>void $Ve(t)}),...pp("edit.duplicate",{scope:Tw,action:()=>void vve(t)}),...pp("edit.group",{scope:Tw,action:()=>void Yan(t)}),...pp("edit.wrap",{scope:Tw,action:()=>Kan(t)}),...pp("edit.unwrap",{scope:Tw,action:()=>Xan(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,uPt(m))}}),...pp("edit.deselectAll",{scope:Tw,action:()=>c0(Cm(t).adapter,[])}),...pp("edit.save",{scope:"global",allowInEditable:!0,action:()=>{wTr().then(m=>{m===null&&IRt(t)})}}),...pp("view.resetPan",{scope:"viewport",action:()=>fMt()}),...pp("edit.enterScope",{scope:Tw,when:()=>t.playState==="stopped",frameEnabled:()=>t.playState==="stopped",action:()=>{U3r(Cm(t).adapter)}}),...pp("edit.delete",{scope:Tw,action:()=>void bve(t)}),...pp("edit.exitScopeOrDeselect",{scope:Tw,when:()=>z3r()!==null||t.playState==="stopped",frameEnabled:()=>!0,action:()=>{const m=Cm(t).adapter;if(!V3r(m)){if(t.playState!=="stopped"){vVe();return}t.select(null)}}}),...pp("view.commandPalette",{scope:"global",action:()=>{TVe()||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:()=>dve()}),...pp("view.focusMode",{scope:"global",action:()=>$Be()}),...pp("workspace.cycleNext",{scope:"global",action:()=>{The(1)}}),...pp("workspace.cyclePrevious",{scope:"global",action:()=>{The(-1)}})]);return Van(),d}function ecn(t){return CMt(()=>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 qVe(){lkr("undo-history")}function tcn(){const t=()=>qVe();return window.addEventListener("editor:show-history-tab",t),()=>window.removeEventListener("editor:show-history-tab",t)}let hje=null,EMt=0;const gje=new Set;function zVe(t){if(hje!==t){hje=t,EMt++;for(const n of gje)n()}}function kMt(){return hje}function rcn(t){zVe(t)}function AMt(){zVe(null)}function DMt(t){return gje.add(t),()=>gje.delete(t)}function yje(){return EMt}function ncn(){zVe(null)}const icn=Object.freeze(Object.defineProperty({__proto__:null,__resetEditorPresentationNoticeForTest:ncn,clearEditorPresentationNotice:AMt,editorPresentationNotice:kMt,editorPresentationNoticeVersion:yje,showEditorPresentationNotice:rcn,subscribeEditorPresentationNotice:DMt},Symbol.toStringTag,{value:"Module"})),lwt="agent-presented-view";function ocn(){const t=Yv();Ye.useSyncExternalStore(DMt,yje,yje);const n=kMt();return Ye.useEffect(()=>{if(!n){EBe(lwt);return}s$({id:lwt,tone:"info",title:"Agent presented this view.",...n.presented.warnings.length>0?{detail:n.presented.warnings.join(" ")}:{},onDismiss:AMt,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:()=>{zge(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 scn(t){Ye.useEffect(()=>{const n=ptn(),s=()=>vtn(t.playState!=="stopped");s();const c=t.subscribe(s);return()=>{c(),n(),M3t()}},[t])}const nee={console:{id:"console",title:"Console"},lightExplorer:{id:"light-explorer",title:"Light Explorer"}},acn={storyActions:{id:"story-actions",title:"Actions"},storyInteractions:{id:"story-interactions",title:"Interactions"},storyAccessibility:{id:"story-accessibility",title:"Accessibility"},generations:{id:"generations",title:"Generations"}};[...Object.values(nee),...Object.values(acn)];const ccn={info:Go.content.primary,warn:Go.semantic.warning,error:Go.semantic.danger},uwt={scene:"#78dce8",physics:"#ff6188",animation:"#a9dc76",network:"#fc9867",audio:"#ab9df2",ai:"#ffd866",input:"#78dce8",core:Go.content.primary},fwt={info:R$,warn:KTt,error:FTt};function lcn(){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]),jVe("viewport.frameSelection")},ue=Qs.counts;return q.jsxs(UTr,{className:"volter-console",children:[q.jsxs(n$,{label:"Console filters",compact:!0,children:[q.jsx(dm,{"aria-label":"Clear console",size:"compact",onClick:()=>Qs.clear(),title:"Clear console",children:q.jsx(dc,{icon:ITt,size:"xs"})}),q.jsx(Dht,{}),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(Dht,{}),["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:fwt[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:ccn[Ce.level]},children:[q.jsx("span",{style:{color:Go.content.dim,marginRight:6,flexShrink:0},children:se(Ce.timestamp)}),q.jsx(dc,{icon:fwt[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:`${uwt[Ce.subsystem]??Go.content.muted}22`,color:uwt[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 ucn={enabled:"visible",color:"light.color",intensity:"light.intensity",range:"light.distance",shadows:"shadow.cast"};function PMt(t){const n=[],s=t;return W$(t.hierarchy,c=>{c.kind==="light"&&n.push(c)},{extraChildren:c=>s.internalChildren?.(c)}),n}function Mxn(t){return PMt(t).length}function IMt(t,n){return t.find(s=>s.path===ucn[n])??null}function qY(t,n,s,c,d){const m=IMt(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 dwt=t=>typeof t=="boolean",fcn=t=>typeof t=="string",pwt=t=>typeof t=="number"&&Number.isFinite(t);function dcn(t){return PMt(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",dwt),color:qY(t,n.id,s,"color",fcn),intensity:qY(t,n.id,s,"intensity",pwt),range:qY(t,n.id,s,"range",pwt),shadows:qY(t,n.id,s,"shadows",dwt)}})}function pcn(t,n,s,c){if(!t.inspector)return 0;let d=0;for(const m of n){let g=null;try{g=IMt(t.inspector.properties(m),s)}catch{continue}!g||g.readonly||(mPt(t,m,g.path,c),d++)}return d}function _cn(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 _wt(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"?N0r:Z0r,size:"xs"}):null]})}function Sve(){return q.jsx("span",{className:"volter-light-explorer-unavailable",children:"—"})}function mcn({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(Sve,{})}function hcn({row:t,edit:n}){return!t.color.supported||!t.color.value?q.jsx(Sve,{}):q.jsxs("div",{className:"volter-light-explorer-color",children:[q.jsx(u4t,{"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 mwt({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(Sve,{})}function gcn({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(Sve,{})}function ycn({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(mcn,{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=>{bcn(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(hcn,{row:t,edit:g})}),q.jsx("td",{children:q.jsx(mwt,{row:t,field:"intensity",step:.1,edit:g})}),q.jsx("td",{children:q.jsx(mwt,{row:t,field:"range",step:.5,edit:g})}),q.jsx("td",{children:q.jsx(gcn,{row:t,edit:g})})]})}function vcn(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 bcn(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 Scn(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Cee,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=dcn(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=_cn(_wt(Pe,S),_wt(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=vcn(Pe,pe,se);pcn(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(ycn,{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 xcn=Fye();function wcn(){const{error:t,warn:n}=Qs.counts;return t>0?{count:t+n,severity:"error"}:n>0?{count:n,severity:"warn"}:null}function Tcn(){xcn.ensure(t=>{t(aFe({...nee.console,order:-100,Content:lcn,badge:wcn,subscribeBadge:Qs.subscribe,badgeSnapshot:Qs.getSnapshot,visibleByDefault:!1,closeable:!0})),t(aFe({...nee.lightExplorer,order:21,Content:Scn,visibleByDefault:!1,closeable:!0}))})}const bme=new Map,Sme=new Map,vje=new Set;let NMt=0;function OMt(){NMt++;for(const t of[...vje])t()}function jxn(t,n){const s=bme.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?bme.delete(t):bme.set(t,{headerWidth:c,shelf:n.shelf}),OMt())}function RMt(t){return bme.get(t)??null}function Lxn(t){return Sme.get(t)??null}function Ccn(t,n){(Sme.get(t)??null)!==n&&(n===null?Sme.delete(t):Sme.set(t,n),OMt())}function FMt(t){return vje.add(t),()=>{vje.delete(t)}}function Kge(){return NMt}const Ecn=5742335;function MMt(t,n,s){return t<<16|n<<8|s}function hwt(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:MMt(c[0],c[1],c[2])}function iee(t){const n=hwt(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,hwt(String(s.fillStyle))):null}function dA(t){return typeof document>"u"?null:t?.closest(`.${ORe}`)??document.querySelector(`.${ORe}`)}function gwt(t){const n=Math.round((t>>16&255)*.42),s=Math.round((t>>8&255)*.42),c=Math.round((t&255)*.42);return MMt(n,s,c)}function Ig(t,n){return t&&typeof getComputedStyle<"u"?getComputedStyle(t).getPropertyValue(n).trim():""}const jMt={"--volter-viewport-background":"--vscode-volter-viewport-background","--volter-viewport-grid":"--vscode-volter-viewport-grid","--volter-viewport-axis-x":"--vscode-volter-viewport-axisX","--volter-viewport-axis-y":"--vscode-volter-viewport-axisY","--volter-viewport-axis-z":"--vscode-volter-viewport-axisZ","--volter-viewport-selection":"--vscode-volter-viewport-selection","--volter-viewport-active":"--vscode-volter-viewport-active","--volter-viewport-wire":"--vscode-volter-viewport-wire","--volter-gizmo-x":"--vscode-volter-gizmo-x","--volter-gizmo-y":"--vscode-volter-gizmo-y","--volter-gizmo-z":"--vscode-volter-gizmo-z","--volter-gizmo-navigation-x":"--vscode-volter-gizmo-navigationX","--volter-gizmo-navigation-y":"--vscode-volter-gizmo-navigationY","--volter-gizmo-navigation-z":"--vscode-volter-gizmo-navigationZ","--volter-gizmo-hover":"--vscode-volter-gizmo-hover","--volter-gizmo-drag":"--vscode-volter-gizmo-drag"};function oee(t,n){const s=jMt[n];return(s?Ig(t,s):"")||Ig(t,n)}function Bxn(t){const n=dA(t),s=oee(n,"--volter-viewport-selection")||Ig(n,"--volter-accent"),c=iee(s||i$.color.accent.default)??Ecn,d=iee(oee(n,"--volter-viewport-active")),m=Ig(n,"--volter-viewport-outline-style"),g=Number.parseFloat(Ig(n,"--volter-viewport-outline-width")),S=Ig(n,"--volter-viewport-outline-hidden");return{visible:c,hidden:gwt(c),...d===null?{}:{active:{visible:d,hidden:gwt(d)}},...m===""&&S===""&&!Number.isFinite(g)?{}:{outline:{style:m==="crisp"?"crisp":"soft",width:Number.isFinite(g)&&g>0?g:null,hidden:S!=="false"}}}}function $xn(t){return LMt(t).background!==null}function qxn(t){const n=LMt(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 LMt(t){const n=dA(t),s=c=>{const d=oee(n,c);return d?iee(d):null};return{background:s("--volter-viewport-background"),grid:s("--volter-viewport-grid"),axisX:s("--volter-viewport-axis-x"),axisY:s("--volter-viewport-axis-y"),axisZ:s("--volter-viewport-axis-z"),axisLineWidth:(()=>{const c=Ig(n,"--volter-viewport-axis-line-width"),d=c?Number.parseFloat(c):Number.NaN;return Number.isFinite(d)?d:null})(),active:s("--volter-viewport-active")}}function zxn(t){const n=dA(t),s=m=>{const g=oee(n,m);return g?iee(g):null},c=m=>{const g=Ig(n,m);if(!g)return null;const S=Number.parseFloat(g);return Number.isFinite(S)?S:null},d=m=>{const g=s(`${m}-x`),S=s(`${m}-y`),k=s(`${m}-z`);return g!==null&&S!==null&&k!==null?[g,S,k]:null};return{axes:d("--volter-gizmo"),navigation:d("--volter-gizmo-navigation"),hover:s("--volter-gizmo-hover"),drag:s("--volter-gizmo-drag"),opacity:c("--volter-viewport-gizmo-opacity"),arrowLength:c("--volter-viewport-gizmo-arrow-length"),arrowHead:c("--volter-viewport-gizmo-arrow-head"),ringWidth:c("--volter-viewport-gizmo-ring-width"),navigationSize:c("--volter-viewport-navigation-size"),background:s("--volter-viewport-background"),navigationForm:(m=>m==="cones"||m==="triad"||m==="godot"?m:"balls")(Ig(n,"--volter-viewport-navigation-gizmo")),navigationCorner:Ig(n,"--volter-viewport-navigation-corner")==="bottom-left"?"bottom-left":"top-right",highlightSaturation:c("--volter-viewport-gizmo-highlight-saturation"),highlightValue:c("--volter-viewport-gizmo-highlight-value")}}function Vxn(t){const n=Ig(dA(t),"--volter-viewport-gizmo-size");if(!n)return null;const s=Number.parseFloat(n);return Number.isFinite(s)&&s>0?s:null}function Uxn(t){const n=dA(t),s=(d,m)=>{const g=Number.parseFloat(Ig(n,d)??"");return Number.isFinite(g)&&g>0?g:m},c=s("--volter-viewport-grid-line-width",1);return{lineWidth:c,majorWidth:s("--volter-viewport-grid-major-width",c),majorContrast:s("--volter-viewport-grid-major-contrast",1)}}function Jxn(t){const n=dA(t),s=oee(n,"--volter-viewport-wire"),c=Number.parseFloat(Ig(n,"--volter-viewport-wire-opacity"));return{color:s?iee(s):null,opacity:Number.isFinite(c)?c:null}}function Wxn(t){const n=dA(t),s=Number.parseFloat(Ig(n,"--volter-viewport-selection-box-width"));return{edges:Ig(n,"--volter-viewport-selection-box")==="edges",frame:Ig(n,"--volter-viewport-selection-box-frame")==="object"?"object":"world",lineWidth:Number.isFinite(s)&&s>0?s:null}}function BMt(t){const n=dA(t);return["--volter-viewport-chrome-bar","--volter-viewport-chrome-view-name","--volter-viewport-chrome-tools","--volter-viewport-chrome-display","--volter-viewport-chrome-transform-controls"].map(s=>Ig(n,s)).join("|")}function kcn(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 bje=null;function Acn(t){return qMt(null,()=>{bje=BMt(),t()})}function ywt(){return bje??=BMt(),bje}let Sje=null;function $Mt(){const t=dA();return JSON.stringify([SBe.map(n=>Ig(t,`--volter-viewport-word-${n}`)),Ig(t,"--volter-viewport-word-helpers")])}function Dcn(t){return qMt(null,()=>{Sje=$Mt(),t()})}function vwt(){return Sje??=$Mt(),Sje}function Hxn(){const t=Ye.useSyncExternalStore(Dcn,vwt,vwt);return Ye.useMemo(()=>{const[n,s]=JSON.parse(t),c={};return SBe.forEach((d,m)=>{n[m]&&(c[d]=n[m])}),{shading:c,helpers:s||void 0}},[t])}function Pcn(){const t=Ye.useSyncExternalStore(Acn,ywt,ywt);return Ye.useMemo(()=>kcn(t),[t])}function qMt(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=Icn(s,n);return()=>{c.disconnect(),d()}}const l_e=new Set;let YL=null,TOe="";function Icn(t,n){const s=()=>Object.values(jMt).map(c=>Ig(t,c)).join("|");return l_e.add(n),!YL&&typeof document<"u"&&document.head&&(TOe=s(),YL=new MutationObserver(()=>{const c=s();if(c!==TOe){TOe=c;for(const d of[...l_e])d()}}),YL.observe(document.head,{childList:!0,subtree:!0,characterData:!0})),()=>{l_e.delete(n),l_e.size===0&&YL&&(YL.disconnect(),YL=null)}}function Ncn({documentId:t,runtime:n=!1,island:s=!1,assetPath:c,transformControls:d,children:m}){Ye.useSyncExternalStore(TBe,o$,o$);const g=Ye.useSyncExternalStore(U$,eA,eA);Ye.useSyncExternalStore(FMt,Kge,Kge);const S=RMt(t)?.headerWidth??null,k=Ye.useCallback(F=>Ccn(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"}})]})}function Ocn({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 Rcn(t){return t==="game"||t==="scene"||t==="world"?"world":"resource"}function zMt({viewId:t,descriptor:n,active:s,backdrop:c=!1,chrome:d=!0}){const m=n.Content,g=n.Toolbar,S=n.Shelf,k=Rcn(n.kind),A=Yv();Ye.useSyncExternalStore(A.subscribe,A.getShellSnapshot??A.getSnapshot),Ye.useSyncExternalStore(Cee,AD,AD),Ye.useSyncExternalStore(TBe,o$,o$),Ye.useSyncExternalStore(cCt,HOe,HOe);const F=s2(n.id),D=s&&n.kind!=="game"?F?.transformTools?.()??"none":"none",J=F?.TransformTools,$=F?.TransformControls,G=Pcn(),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(FMt,Kge,Kge);const De=RMt(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(Ncn,{documentId:n.id,runtime:n.kind==="game",island:c&&k==="world",assetPath:uQr(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(Ocn,{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 u_e=new Map;function Fcn(t,n){const s=Em();let c=u_e.get(t);(!c||c.project!==s)&&(c={project:s,count:0,created:n},u_e.set(t,c)),c.count++;const d=c;return()=>{u_e.get(t)!==d||--d.count>0||(u_e.delete(t),d.created&&Em()===d.project&&EN(t))}}function Mcn({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(TBe,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 Zze(),!ue())return;const De=new Set(l0().map(be=>be.descriptor.id)),Pe=Ce.kind==="asset"?sN(Ce.path,Ce.assetKind??"source",{activate:s}):Ce.kind==="workspace"?De.has(Ce.id)?Ce.id:null:await Xye(Ce.kind,d,{...Ce,activate:s});if(ue()){if(!Pe)throw new Error("The requested layout document is unavailable.");se=Fcn(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(zMt,{descriptor:$.descriptor,active:s,chrome:n}):q.jsx("div",{role:"status",children:"Opening document…"})})}function jcn(){return q.jsxs(kee,{children:[q.jsx(Aee,{}),q.jsx(Pee,{}),q.jsx(Dee,{})]})}function Lcn(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=Ye.useSyncExternalStore(Wye,c$,c$),[s,c]=Ye.useState(!1),d=Ye.useSyncExternalStore(OC,sxt,sxt);if(Ye.useEffect(()=>{let g=!1;return Zze().then(()=>{g||c(!0)}),()=>{g=!0}},[]),!s)return q.jsx("div",{role:"status",children:d??"Loading project layout…"});const m=n.Layout??jcn;return q.jsx(m,{playing:t.playState!=="stopped",paused:t.playState==="paused"})}function VVe({size:t=64}){return q.jsx("img",{src:lee()?.logo??mR.logo,width:t,height:t,alt:"","aria-hidden":"true","data-testid":"volter-logo",style:{display:"block"}})}const xje="account";function VMt(){return ND({id:xje,title:"Account",kind:"tool-contribution",workspaceRole:"workspace-task",provenance:{origin:"Volter account"},Content:zcn,closeable:!0,presentation:()=>({kind:"workspace",id:xje})})}kN({id:"workspace",owner:"account-documents",open:(t,n)=>n.id===xje?VMt():null});function Bcn(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 $cn({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:Bcn(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 gwr(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(()=>vwr(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 ywr(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 bwt({busy:t,run:n}){const s=eBe(),[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($cn,{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 Swt({busy:t,run:n}){const s=eBe(),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(()=>mwr({...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),hwr({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 qcn({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 zcn(){Ye.useSyncExternalStore(Aye,cN,cN);const t=eBe(),[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}Cwr().then(zt=>Pe(zt.device)).catch(()=>Pe(!1))},[t.authenticated,t.backend]),Ye.useEffect(()=>{if(!ue)return;const zt=()=>{kwr(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=()=>{Dwr(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}xwr().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}wwr().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(VVe,{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(()=>uwr(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 Ewr();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 Awr();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(()=>lwr(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(Swt,{busy:D,run:be}),q.jsx(bwt,{busy:D,run:be}),($||wpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??wpe()})]})});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=>dwr({...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(qcn,{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(fwr),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(()=>uht("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 bwr(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 Swr(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 Twr();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(()=>uht("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(()=>_wr(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(Swt,{busy:D,run:be}),q.jsx(bwt,{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(pwr),children:"Mark read"})]}),q.jsx("div",{className:"volter-account-usage",children:t.alerts?.map(zt=>q.jsxs("div",{className:"volter-account-usage-row",children:[q.jsxs("span",{children:[q.jsx("strong",{children:zt.readAt?"Notice":"New"}),q.jsx("small",{children:zt.message})]}),q.jsx("span",{children:new Date(zt.createdAt).toLocaleDateString()})]},zt.id))})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Spend controls"}),q.jsxs("p",{className:"volter-account-card-sub",children:["Alerts at ",t.spendPolicy.alertThresholds.join("%, "),"% of the available allowance."]}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:t.spendPolicy.overageEnabled,onChange:zt=>void be(()=>Wt({overageEnabled:zt.target.checked,monthlyLimitCredits:zt.target.checked&&t.spendPolicy.monthlyLimitCredits===0?1e3:t.spendPolicy.monthlyLimitCredits}))}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Allow paid overage"}),q.jsx("small",{children:"Off by default. Managed requests stop before provider submission."})]})]}),q.jsx("div",{className:"volter-account-limit-field",children:q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Monthly overage hard limit"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.monthlyLimitCredits,disabled:!t.spendPolicy.overageEnabled,onBlur:zt=>void be(()=>Wt({monthlyLimitCredits:Number(zt.target.value)}))},t.spendPolicy.monthlyLimitCredits),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]})}),q.jsxs("label",{className:"volter-account-switch-row",children:[q.jsx(TD,{checked:t.spendPolicy.autoReload?.enabled===!0,onChange:zt=>void be(()=>Wt({autoReload:{enabled:zt.target.checked,whenRemainingBelow:t.spendPolicy.autoReload?.whenRemainingBelow??100,reloadTo:t.spendPolicy.autoReload?.reloadTo??500,monthlyLimitCredits:t.spendPolicy.autoReload?.monthlyLimitCredits??2e3}}))}),q.jsxs("span",{className:"volter-account-switch-copy",children:[q.jsx("strong",{children:"Automatically reload credits"}),q.jsx("small",{children:"Optional, independently capped, and never enabled by checkout."})]})]}),t.spendPolicy.autoReload?.enabled&&q.jsxs("div",{className:"volter-account-policy-fields",children:[q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Reload below"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.autoReload.whenRemainingBelow,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,whenRemainingBelow:Number(zt.target.value)}}))},t.spendPolicy.autoReload.whenRemainingBelow),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Reload balance to"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:1,defaultValue:t.spendPolicy.autoReload.reloadTo,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,reloadTo:Number(zt.target.value)}}))},t.spendPolicy.autoReload.reloadTo),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]}),q.jsxs("label",{className:"volter-field",children:[q.jsx("span",{className:"volter-field-label",children:"Monthly reload cap"}),q.jsxs("span",{className:"volter-account-input-suffix",children:[q.jsx(Zm,{type:"number",min:0,defaultValue:t.spendPolicy.autoReload.monthlyLimitCredits,onBlur:zt=>void be(()=>Wt({autoReload:{...t.spendPolicy.autoReload,monthlyLimitCredits:Number(zt.target.value)}}))},t.spendPolicy.autoReload.monthlyLimitCredits),q.jsx("span",{className:"volter-account-suffix","aria-hidden":"true",children:"credits"})]})]})]})]}),q.jsxs("section",{className:"volter-account-card",children:[q.jsx("h3",{className:"volter-account-card-title",children:"Current-cycle usage"}),c.length===0?q.jsx("p",{className:"volter-account-help",children:"No managed credit usage has been settled in this account."}):q.jsx("div",{className:"volter-account-usage",children:c.map(zt=>q.jsxs("div",{className:"volter-account-usage-row",children:[q.jsxs("span",{children:[zt.kind," · ",zt.provider," · ",zt.operation??"managed operation"]}),q.jsxs("strong",{children:[zt.credits.toLocaleString()," credits"]})]},zt.id))})]}),($||wpe())&&q.jsx("div",{className:"volter-account-status",role:"status",children:$??wpe()})]})]})}function Vcn(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:()=>BVe(t)}]:[],...A?[{id:"editor.copy",label:"Copy",category:"action",shortcut:Vv("edit.copy"),execute:()=>LVe(t)}]:[],...D?[{id:"editor.paste",label:"Paste",category:"action",shortcut:Vv("edit.paste"),execute:()=>$Ve(t)}]:[]];return[{id:"account.open",label:"Account and Provider Connections",category:"action",execute:()=>{VMt()}},{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:()=>vve(t)},{id:"editor.delete",label:"Delete Selected",category:"action",shortcut:Vv("edit.delete"),execute:()=>bve(t)},{id:"editor.select-all",label:"Select All",category:"action",shortcut:Vv("edit.selectAll"),execute:()=>PRt(t)},{id:"editor.deselect",label:"Deselect All",category:"action",shortcut:Vv("edit.deselectAll")??Vv("edit.exitScopeOrDeselect"),execute:()=>Fze(t,[])},{id:"toggle.console",label:"Toggle Console",category:"action",shortcut:Vv("view.toggleConsole"),execute:()=>{dve()}},{id:"view.focusMode",label:"Toggle Focus Mode",category:"action",shortcut:Vv("view.focusMode"),execute:()=>{$Be()}},...AN().map($=>({id:`workspace.${$.id}`,label:`Workspace: ${$.title}`,category:"action",execute:()=>{Uk($.id)&&a2($.id)}})),{id:"workspace.cycleNext",label:"Next Workspace",category:"action",shortcut:Vv("workspace.cycleNext"),execute:()=>{The(1)}},{id:"workspace.cyclePrevious",label:"Previous Workspace",category:"action",shortcut:Vv("workspace.cyclePrevious"),execute:()=>{The(-1)}},...K4t().map($=>({id:`keymap.${$.id}`,label:`Keymap: ${$.title}`,category:"action",execute:()=>{WEr($.id)}})),...OR().map($=>({id:`view.workspaceStyle.${$.id}`,label:`Workspace Style: ${$.title}`,category:"action",execute:()=>{YBe($.id)}})),{id:"view.undoHistory",label:"Undo History",category:"action",execute:()=>{qVe()}},{id:"view.lightExplorer",label:"Open Light Explorer",category:"action",execute:()=>vC(nee.lightExplorer.id)},...Object.values(O_).filter($=>$.id!==O_.open.id).map($=>({id:$.id,label:`${$.id.replace("project-asset.","").split("-").map(G=>G[0]?.toUpperCase()+G.slice(1)).join(" ")} Project Asset`,category:"asset",...$.shortcut?{shortcut:$.shortcut.replace("Mod",d)}:{},execute:()=>{window.dispatchEvent(new CustomEvent("editor:project-asset-command",{detail:{id:$.id}}))}})),{id:"view.asset-library",label:"Asset Library",category:"action",execute:()=>{BBe("asset-library")}}]}function Ucn(t){return X0e(t).filter(n=>n.id!==IFe).map(n=>({id:`entity:${n.id}`,label:n.name,category:"entity",execute:()=>{Fze(t,[n.id]),jVe("viewport.frameSelection")}}))}function Jcn(){return nve().filter(t=>t.category==="canvas").map(({descriptor:t})=>({id:`board:${t.id}`,label:`Open ${t.title}`,category:"action",execute:()=>void SN(t.id)}))}function aN(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function Xge(t){const n=t.type;if(typeof n=="string")return n;if(Array.isArray(n))return n.find(s=>s!=="null")}function UMt(t){const n=aN(t);if("default"in n)return structuredClone(n.default);const s=Xge(n);if(s==="object"||n.properties){const c={};for(const[d,m]of Object.entries(aN(n.properties))){const g=aN(m);("default"in g||Array.isArray(n.required)&&n.required.includes(d))&&(c[d]=UMt(g))}return c}return s==="array"?[]:s==="boolean"?!1:s==="number"||s==="integer"?Number(n.minimum??0):""}function wje(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]/g," ").replace(/^./,n=>n.toUpperCase())}function Wcn({name:t,schema:n,value:s,required:c,onChange:d}){const m=Xge(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:xwt,children:wje(t)}),g&&q.jsx("span",{style:FO,children:g})]})]});const A=q.jsxs("span",{style:xwt,children:[wje(t)," ",!c&&q.jsx("span",{style:Gcn,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:f_e,children:[!c&&q.jsx("option",{value:"",children:"Not set"}),S.map(F=>q.jsx("option",{value:String(F),children:String(F)},String(F)))]}),g&&q.jsx("span",{style:FO,children:g})]}):m==="number"||m==="integer"?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,type:"number",value:typeof s=="number"?s:"",min:typeof n.minimum=="number"?n.minimum:void 0,max:typeof n.maximum=="number"?n.maximum:void 0,step:m==="integer"?1:"any",onChange:F=>d(F.target.value===""?void 0:Number(F.target.value)),style:f_e}),g&&q.jsx("span",{style:FO,children:g})]}):m==="array"&&Xge(aN(n.items))==="string"?q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,value:Array.isArray(s)?s.join(", "):"",onChange:F=>d(F.target.value.split(",").map(D=>D.trim()).filter(Boolean)),placeholder:"Comma-separated values",style:f_e}),g&&q.jsx("span",{style:FO,children:g})]}):q.jsxs("label",{style:VY,htmlFor:k,children:[A,q.jsx(Zm,{id:k,value:typeof s=="string"?s:"",onChange:F=>d(F.target.value||(c?"":void 0)),style:f_e}),g&&q.jsx("span",{style:FO,children:g})]})}function JMt({schema:t,value:n,onChange:s,path:c=""}){const d=aN(t.properties),m=new Set(Array.isArray(t.required)?t.required:[]);return q.jsx("div",{style:{display:"grid",gap:14},children:Object.entries(d).map(([g,S])=>{const k=aN(S),A=Xge(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:Kcn,children:[q.jsx("legend",{style:Xcn,children:wje(g)}),typeof k.description=="string"&&q.jsx("p",{style:{...FO,marginTop:0},children:k.description}),q.jsx(JMt,{schema:k,value:aN(n[g]),onChange:F,path:c?`${c}.${g}`:g})]},g):q.jsx(Wcn,{name:c?`${c}.${g}`:g,schema:k,value:n[g],required:m.has(g),onChange:F},g)})})}function Hcn({schema:t,value:n,onChange:s}){const c=aN(t);return c.properties?q.jsx(JMt,{schema:c,value:n,onChange:s}):q.jsx("div",{style:FO,children:"This schema has no form-compatible fields."})}const VY={display:"grid",gap:5},xwt={color:Zf[1],fontWeight:600,fontSize:"var(--volter-font-sm)"},Gcn={color:Zf[3],fontWeight:400,marginLeft:5},FO={display:"block",color:Zf[2],fontSize:"var(--volter-font-sm)",lineHeight:1.4},f_e={boxSizing:"border-box",width:"100%"},Kcn={margin:0,padding:14,border:"1px solid var(--volter-boundary-default)",borderRadius:"var(--volter-radius-md)"},Xcn={padding:"0 6px",color:Zf[1],fontWeight:600},Yge="project-tools",Tje="project-tool:";function Ycn(t){return`${Tje}${t}`}function xve(){ND({id:Yge,title:"Project Tools",kind:"project-tool",workspaceRole:"workspace-reference",Content:WMt,closeable:!0,presentation:()=>({kind:"workspace",id:Yge}),persist:()=>({catalog:!0})})}function wve(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:Ycn(t),title:n.summary||n.name,kind:"project-tool",workspaceRole:"workspace-reference",provenance:{sourcePath:n.sourcePath,origin:n.name},Content:WMt,closeable:!0,presentation:()=>({kind:"project-tool",name:t}),persist:()=>({name:t})}),!0)}kN({id:"workspace",owner:"project-tool-documents",open:(t,n)=>n.id!==Yge?null:(xve(),Yge)});kN({id:"project-tool",owner:"project-tool-documents",open:(t,n)=>wve(n.name)?Pp():null,settle:async t=>{if(await WZ().catch(()=>{}),!await CC(()=>N$().tools.some(n=>n.name===t.name)))throw new Error(`Project tool is not registered: ${t.name}`)}});wee({kind:"project-tool",owner:"project-tool-documents",prepare:()=>WZ().then(()=>{},()=>{}),restore:({state:t})=>{const n=t;return n?.catalog===!0?(xve(),!0):typeof n?.name=="string"&&wve(n.name)}});function Zcn(){return[{id:"project-tools:open",label:"Open Project Tools",category:"action",execute:()=>xve()},...N$().tools.map(t=>({id:`project-tool:${t.name}`,label:`Run: ${t.summary||t.name}`,category:"action",execute:()=>void wve(t.name)}))]}function wwt({value:t}){return q.jsx("pre",{style:rln,children:JSON.stringify(t,null,2)})}function WMt({documentId:t}){Ye.useSyncExternalStore(sMt,Qsn),Ye.useSyncExternalStore(u2,rA);const n=N$(),s=t.startsWith(Tje)?t.slice(Tje.length):null,c=s?n.tools.find(d=>d.name===s):null;return s?c?q.jsx(Qcn,{tool:c},c.name):q.jsx("div",{style:Cje,children:"This tool is no longer available."}):q.jsxs("div",{style:Cje,"data-testid":"project-tools-catalog",children:[q.jsx("h2",{style:HMt,children:"Project Tools"}),q.jsxs("p",{style:{...Eje,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:()=>wve(d.name),"data-testid":`project-command-card:${d.name}`,children:[q.jsxs("span",{style:GMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:d.summary}),q.jsx("span",{style:KMt,children:"Open"})]}),q.jsx("code",{style:{color:Zf[2],fontSize:"var(--volter-font-sm)"},children:d.name}),q.jsx("span",{style:eln,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:Eje,children:"No project tools registered."}),n.loadErrors.map(d=>q.jsxs("div",{style:Zge,children:[d.sourcePath,": ",d.message]},`${d.sourcePath}:${d.message}`)),i$e().map(d=>q.jsxs("div",{style:Zge,children:[d.entryPath,": ",d.error]},`${d.entryPath}:${d.error}`))]})}function Qcn({tool:t}){const n=kC().filter(se=>se.tool?.name===t.name),s=UMt(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 ean(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:Cje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:HMt,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:Eje,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:GMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:KMt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Zge,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(Hcn,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Zge,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:COe,children:"Advanced JSON"}),q.jsx(xBe,{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:tln}),q.jsxs("details",{children:[q.jsx("summary",{style:COe,children:"Input schema"}),q.jsx(wwt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:COe,children:"Result"}),q.jsx(wwt,{value:S})]})]})}const Cje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},HMt={margin:"0 0 6px",fontSize:20},Eje={color:Zf[2],fontSize:"var(--volter-font-sm)"},COe={display:"block",margin:"14px 0 6px",color:Zf[1]},GMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},KMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},eln={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Zge={marginTop:10,color:C_e,whiteSpace:"pre-wrap"},tln={width:"100%",boxSizing:"border-box",resize:"vertical"},rln={overflow:"auto",padding:10,background:bBe.inset,border:`1px solid ${she[1]}`,borderRadius:sQ.sm,color:Zf[2]};function nln(t,n,s){const c=Vcn(t,n,s),d=[...Zcn(),...Jcn(),...Skr()],m=Ucn(t),g=dCt().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,...sln(),...m]}const iln=["view","window","debug","tools","help"],oln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function sln(){return iln.flatMap(t=>Mme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${oln[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 aln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function cln(){const t=Yv(),n=_ve(),s=Z9t(),c=Ye.useSyncExternalStore(_Le,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(DDt,Dhe,Dhe),g=Ye.useSyncExternalStore(Gye,_he,_he),S=Ye.useMemo(()=>nln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=aln(S);A!==k.current&&(k.current=A,kxt(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,kxt([])},[]),null}let XMt=[];const kje=new Set;function lln(t){return kje.add(t),()=>kje.delete(t)}function uln(){return XMt}function fln(){for(const t of kje)t()}function dln(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 pln(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(dln(s),"assets");XMt=n,fln()}async function _ln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-BK8ZfMnr.js");return{materializeDeclaredAssetPacks:c}},__vite__mapDeps([264,104,3,2,4,1,20,21,22,23])),s=await n(t);pln(s)}catch(n){Qs.error(`Retrying asset materialization failed before any entry was attempted: ${n instanceof Error?n.message:String(n)}`,"assets")}}let YMt={kind:"quiet"},ZMt=0;const Aje=new Set;function mln(){return YMt}function hln(t){YMt=t,ZMt+=1;for(const n of Aje)n()}function gln(t){return Aje.add(t),()=>Aje.delete(t)}function Twt(){return ZMt}const yln=()=>()=>{},Cwt=()=>null;function vln(){const t=Yv(),n=Lsn();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Ye.useSyncExternalStore(n?.subscribe??yln,n?.getSnapshot??Cwt,n?.getSnapshot??Cwt);const s=DRt(t);if(s==="saved")return null;const c=Oze(t),d=s==="failed",m=d?$Yr(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?pve():void IRt(t),title:S,children:[q.jsx("span",{className:"volter-save-status-dot"}),g.label]})}function bln(){Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const t=Qs.counts,n=[{id:"info",icon:R$,label:"message",count:t.info},{id:"warn",icon:KTt,label:"warning",count:t.warn},{id:"error",icon:FTt,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:()=>pve(),title:`${s.count} console ${s.label}${s.count===1?"":"s"} — open Console`,children:[q.jsx(dc,{icon:s.icon,size:"xs"}),s.count]},s.id))})}function Sln(t){return[...t.map(s=>`"${s.worldId}" (${s.kind} / ${s.identity}) — ${s.message}`),"See the Console for the full trace."].join(`
1399
+ Run ${t.name}?`)){F(!0);try{k(await ean(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:Cje,"data-testid":`project-tool:${t.name}`,children:[q.jsx("h2",{style:HMt,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:Eje,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:GMt,children:[q.jsx("strong",{style:{color:Zf[1],fontWeight:600},children:se.title}),q.jsx("span",{style:KMt,children:"Open"})]})},se.id))})]}),!$&&q.jsx("div",{style:Zge,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(Hcn,{schema:t.inputSchema,value:c,onChange:se=>{d(se),g(JSON.stringify(se,null,2)),J(null)}})}),D&&q.jsx("div",{style:Zge,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:COe,children:"Advanced JSON"}),q.jsx(xBe,{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:tln}),q.jsxs("details",{children:[q.jsx("summary",{style:COe,children:"Input schema"}),q.jsx(wwt,{value:t.inputSchema})]})]})]}),S!==null&&q.jsxs("section",{children:[q.jsx("div",{style:COe,children:"Result"}),q.jsx(wwt,{value:S})]})]})}const Cje={width:"100%",maxWidth:960,margin:"0 auto",padding:24,boxSizing:"border-box",overflow:"auto",pointerEvents:"auto",color:Zf[1],fontSize:"var(--volter-font-base)"},HMt={margin:"0 0 6px",fontSize:20},Eje={color:Zf[2],fontSize:"var(--volter-font-sm)"},COe={display:"block",margin:"14px 0 6px",color:Zf[1]},GMt={display:"flex",width:"100%",alignItems:"center",justifyContent:"space-between",gap:12},KMt={color:Zf[2],fontSize:"var(--volter-font-sm)",fontWeight:500},eln={display:"flex",width:"100%",minWidth:0,alignItems:"center",justifyContent:"space-between",gap:12,color:Zf[2],fontSize:"var(--volter-font-sm)"},Zge={marginTop:10,color:C_e,whiteSpace:"pre-wrap"},tln={width:"100%",boxSizing:"border-box",resize:"vertical"},rln={overflow:"auto",padding:10,background:bBe.inset,border:`1px solid ${she[1]}`,borderRadius:sQ.sm,color:Zf[2]};function nln(t,n,s){const c=Vcn(t,n,s),d=[...Zcn(),...Jcn(),...Skr()],m=Ucn(t),g=dCt().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,...sln(),...m]}const iln=["view","window","debug","tools","help"],oln={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function sln(){return iln.flatMap(t=>Mme(t).map(n=>{const s=typeof n.label=="function"?n.label():n.label,c=`${oln[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 aln(t){return t.map(n=>`${n.id}\0${n.label}\0${n.menu?.id??""}`).join("")}function cln(){const t=Yv(),n=_ve(),s=Z9t(),c=Ye.useSyncExternalStore(_Le,YB,YB),d=Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),m=Ye.useSyncExternalStore(DDt,Dhe,Dhe),g=Ye.useSyncExternalStore(Gye,_he,_he),S=Ye.useMemo(()=>nln(t,n,s),[t,n,s,c,d,m,g]),k=Ye.useRef(null);return Ye.useEffect(()=>{const A=aln(S);A!==k.current&&(k.current=A,kxt(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,kxt([])},[]),null}let XMt=[];const kje=new Set;function lln(t){return kje.add(t),()=>kje.delete(t)}function uln(){return XMt}function fln(){for(const t of kje)t()}function dln(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 pln(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(dln(s),"assets");XMt=n,fln()}async function _ln(t){try{const{materializeDeclaredAssetPacks:n}=await lo(async()=>{const{materializeDeclaredAssetPacks:c}=await import("./hosted-asset-materialization-B228iJSV.js");return{materializeDeclaredAssetPacks:c}},__vite__mapDeps([264,104,3,2,4,1,20,21,22,23])),s=await n(t);pln(s)}catch(n){Qs.error(`Retrying asset materialization failed before any entry was attempted: ${n instanceof Error?n.message:String(n)}`,"assets")}}let YMt={kind:"quiet"},ZMt=0;const Aje=new Set;function mln(){return YMt}function hln(t){YMt=t,ZMt+=1;for(const n of Aje)n()}function gln(t){return Aje.add(t),()=>Aje.delete(t)}function Twt(){return ZMt}const yln=()=>()=>{},Cwt=()=>null;function vln(){const t=Yv(),n=Lsn();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),Ye.useSyncExternalStore(n?.subscribe??yln,n?.getSnapshot??Cwt,n?.getSnapshot??Cwt);const s=DRt(t);if(s==="saved")return null;const c=Oze(t),d=s==="failed",m=d?$Yr(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?pve():void IRt(t),title:S,children:[q.jsx("span",{className:"volter-save-status-dot"}),g.label]})}function bln(){Ye.useSyncExternalStore(Qs.subscribe,Qs.getSnapshot);const t=Qs.counts,n=[{id:"info",icon:R$,label:"message",count:t.info},{id:"warn",icon:KTt,label:"warning",count:t.warn},{id:"error",icon:FTt,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:()=>pve(),title:`${s.count} console ${s.label}${s.count===1?"":"s"} — open Console`,children:[q.jsx(dc,{icon:s.icon,size:"xs"}),s.count]},s.id))})}function Sln(t){return[...t.map(s=>`"${s.worldId}" (${s.kind} / ${s.identity}) — ${s.message}`),"See the Console for the full trace."].join(`
1400
1400
  `)}function xln(){const t=Ye.useSyncExternalStore(ARt,zQ);return t.length===0?null:q.jsx(Ms,{type:"button",variant:"ghost",size:"compact",className:"volter-status-action","data-testid":"status-mount-failure","data-status-tone":"danger",onClick:()=>pve(),title:Sln(t),children:t.length===1?"1 world failed to mount":`${t.length} worlds failed to mount`})}function wln(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 Tln(){const t=Ye.useSyncExternalStore(lln,uln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),_ln(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:()=>pve(),title:wln(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 Cln(){const t=YEr(),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 Eln(){Ye.useSyncExternalStore(gln,Twt,Twt);const t=mln();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 kln(){Ye.useSyncExternalStore(Kye,gkr);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 Aln=Fye();function Dln(){Aln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Eln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:vln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:bln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:xln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Tln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Cln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:kln}))})}const Pln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-CcXUHOp3.js"),__vite__mapDeps([265,3,2,4,266,91,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Iln(){const t=Yv(),n=Y9t(),s=_ve();return Ye.use(jsn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),scn(t),Ye.useEffect(()=>Dln(),[]),Ye.useEffect(()=>Tcn(),[]),Ye.useEffect(()=>vsn(n),[n]),Ye.useEffect(()=>tcn(),[]),Ye.useEffect(()=>bkr(),[t]),Ye.useEffect(()=>Etn(),[t]),Ye.useEffect(()=>V4r(n),[n]),Ye.useEffect(()=>Qan(t,s),[t,s]),Ye.useEffect(()=>TYr(t),[t]),Ye.useEffect(()=>uen(()=>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(Pln,{store:t})}),q.jsx(Lcn,{}),q.jsx(ocn,{}),q.jsx(cln,{})]})}const Nln=3,Oln=1e4,Rln=4e3;function Fln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Ewt(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 Mln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function QMt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function jln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!QMt(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 Lln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Bln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&QMt(t,s)?"resume":Lln(t,s)?"reload":t?.project?"none":"offer-reload"}const Qge="volter.editor.orphaned-tab.v1";function $ln(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 qln(t){return JSON.stringify(t)}function zln(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 Vln=720*60*1e3;function Uln(t,n){const s=n-t.at;return s>=0&&s<=Vln}function UVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Jln(t,n=UVe()){try{n?.setItem(Qge,qln(t))}catch{}}function Wln(t=UVe()){if(!t)return null;try{const n=$ln(t.getItem(Qge));return t.removeItem(Qge),n}catch{return null}}function Hln(t=UVe()){try{t?.removeItem(Qge)}catch{}}function Gln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function Kln(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>_rn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function Xln(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef(Fln(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,FRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Jln({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 Kln()},A=(pe,ue,Ce)=>{switch(Bln(s.current.bootIdentity,pe)){case"resume":{c.current=null,iZr(),Hln(),s.current=Ewt(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 $Zr(),ue=wZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Ewt(s.current,pe,ue,Ce);const De=jln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:Nln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:Oln,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=Mln(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,Rln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{hln(t);const m=Gln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){EBe(EOe);return}if(t.kind==="degraded"){s$({id:EOe,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:EOe,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 EOe="editor-lease",Yln="0.5.84",Zln={version:Yln},Qln="0.5.84",eun={version:Qln},ejt=eun.version,tun=Zln.version;function run({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?nPt(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:fee})}),q.jsxs("div",{className:"volter-error-card-body",children:[c?q.jsx("h1",{className:"volter-error-card-title",children:t.recovery?.title??"Couldn’t open this project"}):t.recovery&&q.jsx("div",{className:"volter-error-card-title",children:t.recovery.title}),t.recovery&&q.jsx("p",{className:"volter-error-card-guidance",children:t.recovery.guidance}),q.jsx("div",{className:"volter-error-card-message","data-testid":c?"project-startup-error-details":void 0,children:t.message}),d&&q.jsxs("div",{children:[c&&q.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),q.jsxs("div",{className:"volter-error-card-command",children:[q.jsx("code",{"data-testid":c?"project-startup-recovery-command":"project-screen-recovery-command",children:d}),q.jsxs(Ms,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(d),g(!0)},children:[q.jsx(dc,{icon:m?sLe:H0r,"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 Dje({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(VVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(run,{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",ejt," · Engine v",tun]})})]})})}function nun({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(VVe,{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 iun 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 Tln(){const t=Ye.useSyncExternalStore(lln,uln),[n,s]=Ye.useState(!1),c=Ye.useCallback(()=>{s(!0),_ln(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:()=>pve(),title:wln(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 Cln(){const t=YEr(),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 Eln(){Ye.useSyncExternalStore(gln,Twt,Twt);const t=mln();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 kln(){Ye.useSyncExternalStore(Kye,gkr);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 Aln=Fye();function Dln(){Aln.ensure(t=>{t(Z4({id:"editor-lease",name:"Editor server",align:"left",order:-90,Content:Eln})),t(Z4({id:"save-status",name:"Save state",align:"left",order:0,Content:vln})),t(Z4({id:"console-counts",name:"Console errors and warnings",align:"left",order:10,Content:bln})),t(Z4({id:"mount-failure",name:"Mount failure",align:"left",order:5,Content:xln})),t(Z4({id:"asset-materialization",name:"Asset materialization",align:"left",order:15,Content:Tln})),t(Z4({id:"play-state",name:"Play state",align:"left",order:20,Content:Cln})),t(Z4({id:"project-utilities",name:"Project utilities",align:"left",order:25,Content:kln}))})}const Pln=Ye.lazy(async()=>({default:(await lo(()=>import("./NonThreeAuthoringBootstrap-DLxobtKG.js"),__vite__mapDeps([265,3,2,4,266,91,1,20,21,22,23]))).ProjectAuthoringBootstrap}));function Iln(){const t=Yv(),n=Y9t(),s=_ve();return Ye.use(jsn()),Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot),scn(t),Ye.useEffect(()=>Dln(),[]),Ye.useEffect(()=>Tcn(),[]),Ye.useEffect(()=>vsn(n),[n]),Ye.useEffect(()=>tcn(),[]),Ye.useEffect(()=>bkr(),[t]),Ye.useEffect(()=>Etn(),[t]),Ye.useEffect(()=>V4r(n),[n]),Ye.useEffect(()=>Qan(t,s),[t,s]),Ye.useEffect(()=>TYr(t),[t]),Ye.useEffect(()=>uen(()=>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(Pln,{store:t})}),q.jsx(Lcn,{}),q.jsx(ocn,{}),q.jsx(cln,{})]})}const Nln=3,Oln=1e4,Rln=4e3;function Fln(t){return{bootIdentity:null,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:t}}function Ewt(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 Mln(t,n){return{bootIdentity:t.bootIdentity,lastIdentity:null,consecutiveFailures:0,unbackedFailures:0,darkSince:n}}function QMt(t,n){return!(t.project!==null&&n.project!==null&&t.project!==n.project||t.pid!==null&&n.pid!==null&&t.pid!==n.pid)}function jln(t){const{consecutiveFailures:n,unbackedFailures:s,failureThreshold:c,darkForMs:d,minDarkWindowMs:m,bootIdentity:g,lastIdentity:S}=t;return g&&S&&!QMt(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 Lln(t,n){return!t?.project||!n.project?!1:n.project===t.project}function Bln(t,n){if(!n.ok)return"none";const s=n.identity;return t&&t.pid!==null&&s.pid===t.pid&&QMt(t,s)?"resume":Lln(t,s)?"reload":t?.project?"none":"offer-reload"}const Qge="volter.editor.orphaned-tab.v1";function $ln(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 qln(t){return JSON.stringify(t)}function zln(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 Vln=720*60*1e3;function Uln(t,n){const s=n-t.at;return s>=0&&s<=Vln}function UVe(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Jln(t,n=UVe()){try{n?.setItem(Qge,qln(t))}catch{}}function Wln(t=UVe()){if(!t)return null;try{const n=$ln(t.getItem(Qge));return t.removeItem(Qge),n}catch{return null}}function Hln(t=UVe()){try{t?.removeItem(Qge)}catch{}}function Gln(t){return t?t.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function Kln(){try{const{stopAllLiveSessions:t}=await lo(async()=>{const{stopAllLiveSessions:n}=await Promise.resolve().then(()=>_rn);return{stopAllLiveSessions:n}},void 0);t()}catch{}}function Xln(){const[t,n]=Ye.useState({kind:"quiet"}),s=Ye.useRef(Fln(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,FRt(pe),pe==="taken-over"&&S(),pe==="server-gone"&&Jln({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 Kln()},A=(pe,ue,Ce)=>{switch(Bln(s.current.bootIdentity,pe)){case"resume":{c.current=null,iZr(),Hln(),s.current=Ewt(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 $Zr(),ue=wZr(),Ce=Date.now();if(m)return;if(c.current!==null){A(pe,ue,Ce);return}s.current=Ewt(s.current,pe,ue,Ce);const De=jln({consecutiveFailures:s.current.consecutiveFailures,unbackedFailures:s.current.unbackedFailures,failureThreshold:Nln,darkForMs:Ce-s.current.darkSince,minDarkWindowMs:Oln,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=Mln(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,Rln),()=>{m=!0,S(),document.removeEventListener("visibilitychange",G),window.removeEventListener("pageshow",$),se?.close()}},[]),Ye.useEffect(()=>{hln(t);const m=Gln(s.current.bootIdentity?.project??null),g=()=>{d.current=!0,n({kind:"degraded",subject:"stale"})};if(t.kind==="quiet"){EBe(EOe);return}if(t.kind==="degraded"){s$({id:EOe,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:EOe,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 EOe="editor-lease",Yln="0.5.86",Zln={version:Yln},Qln="0.5.86",eun={version:Qln},ejt=eun.version,tun=Zln.version;function run({error:t,onDismiss:n,onRetry:s,startup:c=!1}){const d=t.recovery&&"verbs"in t.recovery?nPt(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:fee})}),q.jsxs("div",{className:"volter-error-card-body",children:[c?q.jsx("h1",{className:"volter-error-card-title",children:t.recovery?.title??"Couldn’t open this project"}):t.recovery&&q.jsx("div",{className:"volter-error-card-title",children:t.recovery.title}),t.recovery&&q.jsx("p",{className:"volter-error-card-guidance",children:t.recovery.guidance}),q.jsx("div",{className:"volter-error-card-message","data-testid":c?"project-startup-error-details":void 0,children:t.message}),d&&q.jsxs("div",{children:[c&&q.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),q.jsxs("div",{className:"volter-error-card-command",children:[q.jsx("code",{"data-testid":c?"project-startup-recovery-command":"project-screen-recovery-command",children:d}),q.jsxs(Ms,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(d),g(!0)},children:[q.jsx(dc,{icon:m?sLe:H0r,"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 Dje({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(VVe,{size:30})}),q.jsx("span",{className:"volter-shell-wordmark",children:mR.name})]})}),q.jsx(run,{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",ejt," · Engine v",tun]})})]})})}function nun({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(VVe,{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 iun 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(Dje,{error:{message:`The editor surface crashed: ${this.state.error.message}`},onRetry:()=>this.setState({error:null})}):this.props.children}}function d_e({children:t}){return q.jsxs(q.Fragment,{children:[t,q.jsx(Xln,{})]})}function oun(t){const n=t instanceof Error?t.message:String(t);return t instanceof AC?{status:"error",message:n,recovery:t.recovery}:t instanceof x$e?{status:"error",message:n,report:t.report}:{status:"error",message:n}}const sun=8e3;function aun(t=Oen,n=sun){return new Promise((s,c)=>{const d=window.setTimeout(()=>{c(new WPt(n))},n);t().then(m=>{window.clearTimeout(d),s(m)},m=>{window.clearTimeout(d),c(m)})})}const cun=3;function lun(){const[t,n]=Ye.useState({status:"detecting",waitingSince:null}),[s,c]=Ye.useState(0);Ye.useEffect(()=>Pwr(),[]),Ye.useEffect(()=>TZr(),[]),Ye.useEffect(()=>pZr(()=>c(k=>k+1)),[]),Ye.useEffect(()=>{let k=!1,A,F=0;const D=Date.now();n({status:"detecting",waitingSince:null});const J=()=>{aun().then($=>{k||n($?{status:"ready",project:$}:{status:"no-project"})},$=>{if(k)return;F+=1;const G=k4r($,F);if(G.kind==="terminal"){const pe=oun($),ue=pe.recovery&&"verbs"in pe.recovery?nPt(pe.recovery.verbs):null;Qs.error(`Startup failed: ${pe.message}${ue?` Run: ${ue}`:""}`,"editor"),n(pe);return}const se=$ instanceof Error?$.message:String($);F===cun&&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"&&PZr(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=jPt(S)},[S]),t.status==="detecting"?q.jsx(d_e,{children:q.jsx(nun,{wait:t.waitingSince===null?void 0:{seconds:m,detail:t.lastError}})}):t.status==="no-project"?q.jsx(d_e,{children:q.jsx(Dje,{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(d_e,{children:q.jsx(Dje,{error:{message:t.message,...t.recovery?{recovery:t.recovery}:{}},report:t.report,onRetry:()=>c(k=>k+1)})}):q.jsx(d_e,{children:q.jsx(_an,{children:q.jsx(iun,{children:q.jsx(Iln,{})})})})}function JVe(t){Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Cee,AD,AD),Ye.useSyncExternalStore(Rye,lN,lN),Ye.useSyncExternalStore(fon,Lxt,Lxt),Ye.useSyncExternalStore(U$,yhe,yhe),Ye.useSyncExternalStore(gEr,Vht,Vht),Ye.useSyncExternalStore(Sin,Pxt,Pxt),Ye.useSyncExternalStore(G0e,qQ,qQ),Ye.useSyncExternalStore(D3t,gRe,gRe),Ye.useSyncExternalStore(sTr,yht,yht),Ye.useSyncExternalStore(YCr,Bht,Bht);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 Pg({adapter:s,seam:"editor.subscribe",stage:"effect",detail:"the active Inspector subscribed to adapter-owned changes",run:()=>d.call(s,()=>{const m=c.current,g={broad:t.getSnapshot(),shell:t.getShellSnapshot()};c.current=g,g.broad===m.broad&&g.shell===m.shell&&n()})})},[s,t]),uve(t)}let DI=null,tjt=0;const Pje=new Set;function uun(){return DI}function kwt(){return tjt}function fun(t){return Pje.add(t),()=>Pje.delete(t)}function Awt(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,tjt+=1;for(const s of Pje)s()}}function dun(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 rjt=Ye.createContext(null);function pun({actions:t,children:n}){return q.jsx(rjt.Provider,{value:t,children:n})}function _un(){return Ye.useContext(rjt)}function RC(t,n){return{...n,iconName:t}}const mun=RC("outliner-object",aR),hun=RC("outliner-light",iLe),gun=RC("outliner-camera",aye),yun=RC("outliner-audio",V0r),kOe=RC("outliner-data",E0r),Dwt=RC("outliner-mesh",aR),vun={three:mun,react:oLe,canvas:tCt,scene:dLe,mesh:Dwt,"skinned-mesh":Dwt,"mesh-data":kOe,"three-source":kOe,"model-asset":kOe,light:hun,camera:gun,audio:yun,"reflection-probe":ZTt,group:JOe,object:LTt,component:GB,img:iB,a:D0r,ul:vZ,ol:vZ,li:vZ,button:VOe,sprite:iB,animatedsprite:WTt,nineslicesprite:iB,tilingsprite:iB,text:J0r,graphics:VOe,container:JOe},bun=RC("outliner-render-on",aye),Sun=RC("outliner-render-off",T0r),xun=RC("outliner-exclude-on",C0r),wun=RC("outliner-exclude-off",VOe),Tun=/^blender-[a-z0-9-]+$/;function KZ(t,n=LTt){const s=vun[t];return s||(Tun.test(t)?RC(t,n):n)}const Cun=new Set(["mesh-data","blender-material-data","blender-shapekey-data","blender-texture-data","blender-image-data"]),Eun=["blender-outliner-data-","blender-light-","blender-lightprobe-"];function njt(t){return t===void 0?!1:Cun.has(t)?!0:Eun.some(n=>t.startsWith(n))}function Ije(t){return t.body.kind==="fields"?q.jsx(z9t,{fields:t.body.fields,io:t.body.io}):t.body.render()}function WVe({action:t}){return q.jsx(dm,{"data-testid":t.id,"aria-label":t.title,title:t.title,"aria-pressed":t.pressed,disabled:t.disabled,onClick:t.run,children:t.icon&&q.jsx(dc,{icon:t.icon})})}function HVe(t){return t.related.find(n=>n.id.startsWith("definition:"))??null}function kun(t){return t.related.filter(n=>!n.id.startsWith("creation-site:")&&!n.id.startsWith("definition:"))}function GVe({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:X0r}),q.jsx("span",{style:{maxWidth:120,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.title})]})}function ijt({subject:t}){const n=kun(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 Nje(t){const n=f4t(t.iconName);if(n)return`${n.path}|${n.tonedPath??""}`;const s=t.icon[4];return Array.isArray(s)?s.join("|"):s}function ojt({subject:t,onJump:n}){const s=L9t(t);return Ye.useSyncExternalStore(wBe,lhe,lhe),s.length<5||new Set(s.map(c=>Nje(c.icon))).size<3?null:q.jsx("div",{className:"volter-inspector-icon-strip",role:"toolbar","aria-label":"Sections","data-testid":"inspector-section-strip",children:s.map(c=>q.jsx(dm,{size:"compact","data-testid":`section-icon-${c.id}`,"aria-label":c.title,title:c.title,onClick:()=>n(c.id),children:q.jsx(dc,{icon:c.icon})},c.id))})}function Aun({render:t,glyph:n,subjectKey:s}){const c=lve(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 KVe({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(MRe,{"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 sjt({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=HVe(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(KVe,{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}),IBe(t,"identity").map(c=>q.jsx(WVe,{action:c},c.id)),s&&q.jsx(GVe,{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 Dun({subject:t}){const n=t.identity;if(!n)return q.jsx(sjt,{subject:t});const s=HVe(t),c=n.kind?KZ(n.kind,eye(t)):eye(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})}),IBe(t,"identity").map(g=>q.jsx(WVe,{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(KVe,{subject:t}),s&&q.jsx(GVe,{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 Pun({section:t}){return q.jsx("div",{"data-testid":t.testId,"data-inspector-section":t.id,children:q.jsx($Cr,{label:t.title,icon:t.icon,description:t.description,collapsible:!0,defaultOpen:t.defaultOpen??!0,children:Ije(t)})})}function Iun({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(sjt,{subject:t}),q.jsx(ojt,{subject:t,onJump:s}),q.jsx(ijt,{subject:t}),q.jsx("div",{ref:n,children:t.sections.map(c=>q.jsx(Ye.Fragment,{children:q.jsx(Pun,{section:c})},c.id))})]})}const p_e=new Map;let Pwt=null;function Nun({subject:t}){const n=L9t(t),s=p_e.get(t.id)??Pwt,[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),p_e.size>200&&p_e.clear(),p_e.set(t.id,k),Pwt=k};return q.jsx("div",{className:"volter-inspector-properties-fill",style:{pointerEvents:"auto"},children:q.jsxs("div",{className:"volter-inspector-properties","data-testid":"inspector-properties",children:[q.jsx("div",{className:"volter-inspector-properties-rail",role:"tablist","aria-orientation":"vertical","aria-label":"Sections",children:n.map((k,A)=>q.jsxs(Ye.Fragment,{children:[A>0&&k.railGroup!==n[A-1]?.railGroup?q.jsx("div",{className:"volter-inspector-properties-rail-separator","data-testid":"properties-tab-separator",role:"presentation"}):null,q.jsx(dm,{size:"compact",role:"tab","aria-selected":k.id===m,"data-testid":`properties-tab-${k.id}`,"aria-label":k.title,title:k.title,onClick:()=>S(k.id),children:q.jsx(dc,{icon:k.icon,size:"xl"})})]},k.id))}),q.jsxs("div",{className:"volter-inspector-properties-body",role:"tabpanel",children:[q.jsx(Dun,{subject:t}),q.jsx(ijt,{subject:t}),g?q.jsx("div",{"data-testid":g.testId,"data-inspector-section":g.id,children:Ije(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:Ije(k)},k.id))]})]})})}function eye(t){const n=t.sections[0]?.icon;return n?Nje(n)===Nje(UOe)?aR:n:aR}function Oun({subject:t,surface:n}){const s=_un(),c=t.sections.find(k=>k.body.kind==="preview"),d=c?.body.kind==="preview"?c.body:null,m=HVe(t),g=n?()=>PVe(n,"column"):null,S=t.identity!==null;return q.jsxs("div",{className:"volter-mini-inspector","data-testid":"inspector-panel","data-volter-inspector-presentation":"card",onPointerDown:()=>CR("inspector"),children:[s&&q.jsx(dm,{size:"compact",className:"volter-mini-inspector-minimize","data-testid":"inspector-minimize","aria-label":"Minimize inspector",title:"Minimize inspector",onClick:s.minimize,children:q.jsx(dc,{icon:v0r})}),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(Aun,{render:d?d.render:null,glyph:eye(t),subjectKey:t.id})}),S?q.jsxs("div",{className:"volter-mini-inspector-identity",children:[q.jsx(KVe,{subject:t}),IBe(t,"identity").map(k=>q.jsx(WVe,{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(ojt,{subject:t,onJump:()=>g?.()}),m&&q.jsx("div",{className:"volter-mini-inspector-actions",children:q.jsx(GVe,{link:m})})]})}function Run({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:eye(t)})}),q.jsx("span",{className:"volter-inspector-pill-name",children:t.title})]}),s&&q.jsx(dm,{"data-testid":"inspector-fab-clear-selection","aria-label":"Clear selection",title:"Clear selection",onClick:s,children:q.jsx(dc,{icon:aLe})})]})}const __e=new Map;function Iwt({subject:t,presentation:n,surface:s}){const c=t.id,d=Ye.useCallback(m=>{m&&(m.scrollTop=__e.get(c)??0)},[c]);return n==="card"?q.jsx(Oun,{subject:t,...s?{surface:s}:{}}):q.jsx(Uye,{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=>{__e.size>200&&__e.clear(),__e.set(c,m.currentTarget.scrollTop)},children:n==="properties"?q.jsx(Nun,{subject:t}):q.jsx(Iun,{subject:t})})}const Fun=250;let ajt=0,UY=null;const xme=new Set;function Mun(){ajt++;for(const t of xme)t()}function XVe(t){return xme.add(t),UY===null&&(UY=setInterval(Mun,Fun)),()=>{xme.delete(t),xme.size===0&&UY!==null&&(clearInterval(UY),UY=null)}}function jun(){return ajt}function cjt(t){return Ye.useSyncExternalStore(XVe,t,t)}function Lun({presentation:t,surface:n}){const s=gVe(),c=q.jsx("div",{"data-testid":"no-authoring-note",style:{padding:12,color:Go.semantic.warning,fontSize:"var(--volter-font-md)",lineHeight:1.5},children:s!==null?q.jsxs(q.Fragment,{children:[q.jsx("strong",{children:"Nothing to author."})," ",s]}):q.jsxs(q.Fragment,{children:[q.jsx("strong",{children:"Nothing to author."})," This root's adapter publishes no inspector surface, so there is nothing here to describe or edit. The root is still hosted, sized, and disposed; play it in the Game tab."]})}),d=n?q.jsx("div",{style:{display:"flex",justifyContent:"flex-end",padding:"2px 4px"},children:q.jsx(dm,{size:"compact","data-testid":"inspector-expand","aria-label":"Expand inspector to side panel",title:"Expand inspector to side panel",onClick:()=>PVe(n,"column"),children:q.jsx(dc,{icon:qTt})})}):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(Uye,{name:"Inspector (nothing to author)",hideHeader:!0,className:"volter-content-frost","data-testid":"inspector-panel",onPointerDown:()=>CR("inspector"),children:c})}function YVe(){const t=Yv();cjt(()=>Gwr());const n=JVe(t),{adapter:s}=Cm(t);return n.available?s.capabilities.inspectorFields?q.jsx(Iwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):n.subject.identity!==null||n.subject.sections.length>0?q.jsx(Iwt,{subject:n.subject,presentation:n.presentation,surface:n.surface}):l$()?q.jsx(Lun,{presentation:n.presentation,surface:n.surface}):null:null}function Bun({surface:t}){return q.jsx(Uye,{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:()=>PVe(t,"column"),children:"Show it here"})]})})}const ljt=260,ujt=360,see=16,$un=200,fjt=220,Oje=54,qun=52,zun={maxWidth:ljt,maxHeight:ujt,minSize:$un,margin:see},Vun={right:see,bottom:see},Uun={maxWidth:fjt,maxHeight:Oje,minSize:Oje,margin:see};function Jun(t,n,s){return dun(t,s?Uun:zun,n)}function Wun(){const t=Yv();Ye.useSyncExternalStore(t.subscribe,t.getShellSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(G0e,qQ,qQ),Ye.useSyncExternalStore(fun,kwt,kwt);const n=uun(),[s,c]=Ye.useState(!1),{subject:d}=JVe(t),m=Ye.useCallback(()=>{oD();const{adapter:S}=Cm(t);c0(S,[])||t.select(null)},[t]),g=n?Jun(n,Vun,s):null;return q.jsx("div",{style:{position:"absolute",...g?{left:g.left,top:g.top,width:g.width,height:g.height}:{right:see,bottom:qun,width:s?fjt:ljt,height:s?Oje:ujt},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(Run,{subject:d,onExpand:()=>c(!1),onClear:m}):q.jsx(pun,{actions:{minimize:()=>c(!0)},children:q.jsx(YVe,{})})})})}let Hun=1;const Nwt=new WeakMap;function Gun(t){if(!t)return 0;const n=Nwt.get(t);if(n!==void 0)return n;const s=Hun++;return Nwt.set(t,s),s}function ZVe(t){const n=Y0(t);return n instanceof hy?n.childAdapters().find(c=>c.kind==="three"&&c.adapter.capabilities.transform)?.worldId??null:null}function Kun(t){const n=Y0(t);if(!(n instanceof hy))return!0;if(!n.childAdapters().some(d=>d.kind==="three"))return!1;const c=ZVe(t);return c===null?!0:!oq(c)}const Xun="/__editor/collaboration",Owt=["participants","presence","messages","revisions","audit","team-test"];let KI=null;const Rje=new Set,Fje=new Set;let Rwt=0;function m_e(t){KI=t,qAt(t.revision);for(const n of Rje)n(t);if(t.revision>Rwt){Rwt=t.revision;for(const n of Fje)n(t.revision)}}async function Mje(t,n){const s=await fetch(`${Xun}${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 Yun(){return KI}let h_e=null,g_e=0;function djt(){if(g_e++,!h_e){const n=jD(),s=g=>{try{m_e(JSON.parse(g.data))}catch{}};let c=!1;const d=()=>{c||(c=!0,Mje("").then(m_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;m_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 Owt)n.addEventListener(`collaboration-${g}`,m);Mje("").then(m_e).catch(()=>{}),h_e=()=>{n.removeEventListener("collaboration-snapshot",s);for(const g of Owt)n.removeEventListener(`collaboration-${g}`,m);n.close()}}let t=!1;return()=>{t||(t=!0,g_e--,g_e<=0&&(g_e=0,h_e?.(),h_e=null))}}function Zun(t){Rje.add(t),KI&&t(KI);const n=djt();return()=>{Rje.delete(t),n()}}function Gxn(t){Fje.add(t);const n=djt();let s=!1;return()=>{s||(s=!0,Fje.delete(t),n())}}async function Kxn(t){await Mje("/presence",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({participantId:Z0e,presence:t})})}const Fwt=500,pjt=()=>{};function Qun(t,n){if(n===pjt)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++<Fwt;){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>Fwt)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 efn(t,n,s){for(const c of n)c.more||s(c.node.id)&&t.set(c.node.id,!1);return t}function tfn(t,n){for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n)return s.worldId;return t.ownerOf(n)}function rfn(t,n,s){if(!(t instanceof hy))return!0;const c=tfn(t,s);return c===null?!1:n.every(d=>t.ownerOf(d)===c)}const nfn="This world's structure comes from its own source, which the editor can't rewrite here — reparenting is not wired for it.",ifn="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 Mwt(t){return t.hasStructureWritePath?t.targetIsInternal?ifn:null:nfn}const ofn=400,_jt="volter.projectLocalState";let JB=null,JY=null,ER={},jje=!1,WB=null;function mjt(){return Em()}function cte(){const t=mjt();if(JB===t)return Promise.resolve();if(JY)return JY.then(()=>cte());const n=a$e(),s=n?Promise.resolve(sfn(n.get(_jt))):qZr();return JY=Promise.all([s,W4t()]).then(([c])=>{ER=c&&typeof c=="object"?{...c}:{},JB=t}).catch(()=>{ER={},JB=t}).finally(()=>{JY=null}),JY}function lte(){return JB===mjt()}function Tve(t){if(lte())return ER[t]}function QVe(t=!1){if(WB!==null&&(clearTimeout(WB),WB=null),!jje)return;jje=!1;const n=a$e();n?n.store(_jt,JSON.stringify(ER)):zZr(ER,{leaving:t})}function sfn(t){if(!t)return{};try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:{}}catch{return{}}}function Cve(t,n){const s=()=>{ER={...ER,[t]:n},jje=!0,WB!==null&&clearTimeout(WB),WB=setTimeout(QVe,ofn)};lte()?s():cte().then(s)}function afn(){QVe(!0)}IC(()=>{wf()&&cte()});t3r(()=>{JB!==null&&(QVe(),JB=null,wf()&&cte())});typeof window<"u"&&window.addEventListener("pagehide",afn);const hjt="hierarchyExpansion",O$=new Map;let jwt=!1;function eUe(){if(jwt||!lte())return;jwt=!0;const t=Tve(hjt)??{};for(const[n,s]of Object.entries(t))O$.set(n,new Map(Object.entries(s)))}function gjt(){const t={};for(const[n,s]of O$)t[n]=Object.fromEntries(s);Cve(hjt,t)}function cfn(t,n){return eUe(),O$.get(t)?.get(n)}function Lwt(t,n){eUe();let s=O$.get(t);s||(s=new Map,O$.set(t,s));for(const[c,d]of n)s.set(c,d);gjt()}function lfn(t){eUe(),O$.delete(t),gjt()}let tye=null;const Lje=new Set;function ufn(){return tye}function ffn(t){return Lje.add(t),()=>{Lje.delete(t)}}function yjt(t){if(tye!==t){tye=t;for(const n of Lje)n()}}function dfn(t){tye===t&&yjt(null)}const pfn=500,Bwt=new Set,aee=new Set;function Xxn(t){return aee.has(t)}function Yxn(t){return aee.delete(t)?!1:(aee.add(t),!0)}function Zxn(){return aee}function _fn(t,n=aee){if(typeof t.internalChildren!="function"||n.size===0)return{hierarchy:t.hierarchy,isInternal:()=>!1,revealRootIds:Bwt,internalIds:Bwt};const s=new Map,c=new Map,d=new Set,m=(S,k)=>{if(k>pfn||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 mfn(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 rye=20,hfn="__more__:",vjt=500;function gfn(t,n,s){return t?Math.max(rye,n.get(s)??rye):Number.POSITIVE_INFINITY}function yfn(t,n,s,c,d){return{node:{id:`${hfn}${t}`,label:"",kind:"object",parentId:s,childIds:[]},depth:n,pathKey:`${t}/__more__`,hasChildren:!1,hiddenByCollapse:c,more:{parentPathKey:t,hidden:d}}}function $wt(t,n,s=new Map,c=!1){const d=[],m=new Set,g=(S,k,A,F)=>{if(m.has(S.id)||k>vjt)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,gfn(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(yfn(A,k+1,S.id,$,S.childIds.length-G))};return t.roots().forEach((S,k)=>{g(S,0,`r${k}`,!1)}),d}function vfn(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>vjt){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 qwt(t){return`${t.pathKey}:${t.node.id}`}function bfn(t,n,s,c,d){const m=Math.max(0,Math.floor(n/c)-d),g=Math.ceil(s/c)+d*2,S=Math.min(t,m+g);return{start:m,end:S}}function Sfn(t,n){if(t.length!==n.length)return!1;for(let s=0;s<t.length;s+=1)if(!Object.is(t[s],n[s]))return!1;return!0}class AOe{#e=null;#t;computeCount=0;get current(){return this.#t}read(n,s){if(this.#e!==null&&Sfn(this.#e,n))return this.#t;const c=s(this.#t);return this.#e=n,this.#t=c,this.computeCount+=1,c}}class xfn{#e=new AOe;#t=new AOe;#i=new AOe;#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 wfn(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 tUe(t){const n=t.split("."),s=[];for(let c=1;c<n.length;c++)s.push(n.slice(0,c).join("."));return s}function zwt(t,n){const s=new Set;for(const c of n)for(const d of t.pathKeysByNodeId.get(c)??[])for(const m of tUe(d)){const g=t.nodeIdByPathKey.get(m);g&&s.add(g)}return s}function Tfn(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 Cfn(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 Efn=["position","rotation","scale"];function kfn(t){const n=t.role==="component"&&!!t.typeLabel;return{label:t.label,typeSuffix:n?t.typeLabel:null}}const rUe={locked:!1};function Afn(t){let n;for(const s of Efn){const c=t(s);if(!c||c.writable)return rUe;s==="position"&&(n=c.reason)}return n===void 0?{locked:!0}:{locked:!0,reason:n}}class Dfn{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?Afn(S=>m(c,S)):rUe;return this.entries.set(c,g),g}}const Pfn={draggable:!0,renamable:!0,writable:!0,searchable:!0},Ifn={draggable:!1,renamable:!1,writable:!0,searchable:!0},Nfn={draggable:!1,renamable:!1,writable:!1,searchable:!1};function nUe(t){return t.internal?Nfn:t.structural?Ifn:Pfn}function Ofn(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 Rfn{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?Ofn(n.diagnosticsFor(c)):null;return this.entries.set(c,m),m}}const wme=new Map;function Qxn(t){return wme.set(t.documentId,t),()=>{wme.get(t.documentId)===t&&wme.delete(t.documentId)}}function Ffn(t){return wme.get(t)??null}function Mfn(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 jfn(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 Lfn(t,n){const s=[...n];if(s.length===0)return null;if(t instanceof hy)return jfn(t,s);const c=Mfn(t,s);return c?{...c,adapter:t}:null}function Bfn(t,n){return!n||n.worldId!==null&&oq(n.worldId)?!1:n.kind!=="three"||n.worldId===null?!0:ZVe(t)===n.worldId}const XZ=new Map;let bjt=0;const Bje=new Set;function Vwt(){bjt++;for(const t of[...Bje])t()}function ewn(t,n){const s={store:n};return XZ.set(t,s),Vwt(),()=>{XZ.get(t)===s&&(XZ.delete(t),Vwt())}}function $fn(t){return t===null?null:XZ.get(t)?.store??null}function twn(t){for(const[n,s]of XZ)if(s.store===t)return n;return null}function rwn(t){return Bje.add(t),()=>{Bje.delete(t)}}function nwn(){return bjt}const rB=new Map;function iwn(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 Sjt={count:0,surface:null,visible:!1};function qfn(t){return t==="three"||t==="canvas"||t==="dom"?t:null}function Uwt(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 zfn(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=Uwt(s?.kind);return c.kind!=="unknown"?c:Uwt(n.descriptor.kind)}function Vfn(t){return t instanceof hy?t.childAdapters().some(n=>n.kind==="three"):!t.rects&&typeof t.hierarchy.object3D=="function"}function $je(t,n,s,c){const d=Y0(t),m=Kun(t)&&Vfn(d)?"three":null,g=t.playState,S=t.selectedEntityIds.size;if(S===0)return{documentId:n,chrome:c,subject:s,surface:m,selection:Sjt,play:g};const k=Lfn(d,t.selectedEntityIds);return{documentId:n,chrome:c,subject:s,surface:m,selection:{count:S,surface:qfn(k?.kind),visible:Bfn(t,k)},play:g}}function Ufn(t,n,s="document"){const c=zfn(n);if(rB.has(n))return{...$je(t,n,c,s),surface:"canvas"};const d=Ffn(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:Sjt,play:t.playState}:$je(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 Jfn(t){const n=Pp();return n!==null?Ufn(t,n):$je(t,null,{kind:"unknown"},"document")}function Wfn(t){return $fn(Pp())??t}function Hfn(t){return t.surface!=="three"?!1:t.selection.count===0?!0:t.selection.surface==="three"&&t.selection.visible}function own(t){return Hfn(t)?aCt(t.documentId)===null?"gizmo":"modal":"none"}function swn(t){return t.surface==="three"&&t.selection.count>0&&t.selection.surface==="three"&&t.selection.visible}function xjt(t){return t.chrome==="embedded"||t.subject.kind==="story"||t.subject.kind==="artifact"}function awn(t,n){return xjt(t)?!0:t.subject.kind==="data"&&!n}function cwn(t){return t.chrome==="document"&&xjt(t)}let Tme=null;const nye=new Set;function lwn(t){Tme=t;for(const n of nye)n();return()=>{if(Tme===t){Tme=null;for(const n of nye)n()}}}function iye(){return Tme}function Gfn(t){return nye.add(t),()=>{nye.delete(t)}}const DOe="application/x-editor-asset",POe="application/x-hierarchy-reorder";function IOe(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:r4t.treeRow}const hZ="var(--volter-tree-indent)";function Cme(t){return`calc(${hZ} * ${t})`}const Jwt=5;function Kfn(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 Xfn=[],Yfn=6,Zfn=8,Qfn=2400;function edn(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 tdn=300,rdn=new Map,ndn={folder:uee,document:uLe,story:WTt,component:GB,instance:JOe,boundary:fee};function idn(t){return t.role==="root"?KZ(t.kind,tCt):t.role==="entity"||t.role==="element"?KZ(t.kind):(t.role?ndn[t.role]:void 0)??KZ(t.kind)}const wjt=new Set(["folder","root","document","story","boundary"]);function odn(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 sdn(t,n){return n===null?t.hierarchy.roots().map(s=>s.id):t.hierarchy.node(n)?.childIds??[]}function iUe(t,n){if(!(t instanceof hy))return null;for(const s of t.childAdapters())if(t.groupNodeId(s.worldId)===n){const c=t.inspector?.get(n,"zOrder");return{zOrder:typeof c=="number"?c:s.zOrder,worldId:s.worldId,role:s.role,kind:s.kind,provenance:s.adapter.provenance??null}}return null}function Eme(t,n){return iUe(t,n)!==null}function oUe(t,n){return t instanceof hy&&t.isOrganizationNode(n)}function Tjt(t,n){if(!(t instanceof hy))return t;const s=t.ownerOf(n);return t.childAdapters().find(c=>c.worldId===s)?.adapter??t}function Wwt(t,n){return n===void 0?t.structure!==void 0:Tjt(t,n).structure!==void 0}function adn(t,n,s){return Eme(t,n)||oUe(t,n)||s!==void 0&&wjt.has(s)}function cdn(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=adn(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=>njt(m.get(J)));s.set(g.node.id,g.node.defaultExpanded??(!D&&(A||F<=1||k?.childIds.length===1)))}return s}function ldn(t,n,s){const c=new Set;for(const d of t)if(!(d.more||!nUe({structural:!1,internal:s(d.node.id)}).searchable)&&d.node.label.toLowerCase().includes(n)){c.add(d.pathKey);for(const m of tUe(d.pathKey))c.add(m)}return c}function udn(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 fdn({value:t,onChange:n}){const s=Ye.useRef(null);return q.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",flex:`0 1 var(${pdn}, ${ddn}px)`,minWidth:_dn},children:[q.jsx(dc,{icon:PTt,"aria-hidden":"true",style:{position:"absolute",left:mdn,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(${gdn}, ${hdn}px)`,paddingRight:ydn}})]})}const ddn=64,pdn="--volter-hierarchy-search-basis",_dn=56,mdn=2,hdn=21,gdn="--volter-hierarchy-search-text-inset",ydn=2;function vdn({onCollapseAll:t,onResetExpansion:n,onExpandAll:s}){const[c,d]=Ye.useState(!1),m=Ye.useRef(null);return q.jsxs("div",{ref:m,style:{position:"relative",flexShrink:0},children:[q.jsx(dm,{title:"View","aria-label":"View","aria-haspopup":"menu","aria-expanded":c,"data-testid":"hierarchy-view-menu",onClick:()=>d(g=>!g),variant:"secondary",size:"compact",children:q.jsx(dc,{icon:GTt,"aria-hidden":"true",style:{fontSize:"var(--volter-icon-xs)"}})}),c&&q.jsxs(fN,{autoFocusFirst:!0,dismissBoundaryRef:m,onDismiss:()=>d(!1),style:{position:"absolute",top:"100%",right:0,marginTop:R_[2],minWidth:170},children:[q.jsx(Jc,{"data-testid":"hierarchy-collapse-all",onSelect:()=>{t(),d(!1)},children:"Collapse All"}),q.jsx(Jc,{"data-testid":"hierarchy-reset-expansion",onSelect:()=>{n(),d(!1)},children:"Reset Openness"}),q.jsx(Jc,{"data-testid":"hierarchy-expand-all",onSelect:()=>{s(),d(!1)},children:"Expand All"})]})]})}function bdn({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(fdn,{value:n,onChange:s}),q.jsx(vdn,{onCollapseAll:m,onResetExpansion:g,onExpandAll:S}),q.jsx(xdn,{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 Sdn({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(U3t({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=Tjt(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=[...Wfn(s).selectedEntityIds],zt=Wt.includes(t.nodeId)?Wt:[t.nodeId],ft=X3r(wPt(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=nUe({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:()=>{s0e(n,zt),g()}}),Tt.push({label:"Copy",testId:"hierarchy-context-menu-copy",...pe?.copy&&(n.structure?.canCopy?.(zt)??!0)?{}:{disabledReason:tr},action:()=>{o0e(n,zt),g()}}),Tt.push({label:"Paste",testId:"hierarchy-context-menu-paste",...pe?.paste&&(n.structure?.canPaste?.($.parentId)??!0)?{}:{disabledReason:Qt},action:()=>{a0e(n,$.parentId),g()}}),Tt.push({label:"Duplicate",testId:"hierarchy-context-menu-duplicate",...ue?{}:{disabledReason:ft},action:()=>{Wt.length>1&&Wt.includes(t.nodeId)?vve(s):t0e(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:()=>{i0e(n,Wt).ack,g()}}),pe?.ungroup&&pe.canUngroup?.(t.nodeId)&&Tt.push({label:"Ungroup",testId:"hierarchy-context-menu-ungroup",action:()=>{p$e(n,t.nodeId).ack,g()}}),pe?.wrap&&Tt.push({label:"Wrap",testId:"hierarchy-context-menu-wrap",action:()=>{r0e(n,t.nodeId),g()}}),pe?.unwrap&&Tt.push({label:"Unwrap",testId:"hierarchy-context-menu-unwrap",action:()=>{n0e(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 u3r({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)?bve(s):n.structure.remove(t.nodeId),g()}})}return q.jsx(ohe,{children:q.jsxs(fN,{ref:S,"data-testid":"ingest-context-menu",style:{position:"fixed",left:k.left,top:k.top,minWidth:150,maxWidth:260,fontSize:"var(--volter-font-base)"},children:[!c&&vn.writable&&G.length>0&&q.jsxs("div",{children:[q.jsxs(Jc,{"data-testid":"hierarchy-context-menu-create",onSelect:()=>D(Yr=>!Yr),style:{justifyContent:"space-between",gap:R_[4]},children:[q.jsx("span",{children:"Create"}),q.jsx(d4t,{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,e0e(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:Iht.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:Iht.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 xdn({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:YTt,style:{fontSize:"var(--volter-font-sm)"}})," ",q.jsx(dc,{icon:lLe,style:{fontSize:"var(--volter-font-xs)"}})]}),s&&q.jsx(fN,{style:{position:"absolute",top:"100%",right:0,marginTop:R_[2],minWidth:130,maxHeight:"min(480px, 70vh)",overflowY:"auto"},children:g.map(k=>q.jsx(Jc,{"data-testid":`hierarchy-add-${k.kind}`,onSelect:()=>{m.current||(m.current=!0,e0e(t,k.kind,n??void 0).ack,c(!1))},children:k.label},k.kind))})]})}function wdn({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:Cme(t.depth+1)},children:["… ",s," more"]})}function Hwt(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 Cjt(t,n){return t.length===n.length&&t.every((s,c)=>s===n[c])}function Tdn(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&&Cjt(s.childIds,c.childIds)&&s.crossSurfaceId===c.crossSurfaceId&&s.crossSurfaceParentId===c.crossSurfaceParentId&&s.crossSurfaceOrder===c.crossSurfaceOrder&&s.crossSurfaceGroupLabel===c.crossSurfaceGroupLabel}function Cdn(t,n){return Tdn(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&&Cjt(t.remoteSelectionColors,n.remoteSelectionColors)}const Edn=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=iUe(s,Qt.id),en=Yr!==null,ii=oUe(s,Qt.id),No=en||ii||Qt.role!==void 0&&wjt.has(Qt.role),gn=nUe({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?pMt(Yr.worldId):!1,dl=Yr?_Mt(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=kfn(Qt),Sl=No?0:s.instances?.describe(Qt.id)?.overrides.length??0,Rl=No?rUe:se.summaryFor(s,ue,Qt.id),mi=No?null:pe.badgeFor(s,ue,Qt.id),tu=No?null:iye()?.detail(s,Qt.id,c)??null,Wc=S&&vn?Qt.childIds.slice(0,Yfn).map(Ao=>s.hierarchy.node(Ao)).filter(Ao=>Ao!==null&&njt(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"&&zMe(Yr.worldId),Qt.role==="story"){const ia=s instanceof hy?s.ownerOf(Qt.id):null;ia&&zMe(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:Cme(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(kht,{position:"before",style:{left:Cme(Tt)}}),k==="after"&&q.jsx(kht,{position:"after",style:{left:Cme(Tt)}}),Kfn(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?Jwt:0,bottom:Ao.ends?Jwt:0}},Ao.column)),vn?q.jsx(dm,{type:"button",variant:"ghost",size:"compact","aria-label":S?`Expand ${Qt.label}`:`Collapse ${Qt.label}`,"aria-expanded":!S,"data-testid":"ingest-row-caret",onClick:Ao=>{Ao.stopPropagation(),De(n,Ao.altKey)},title:"Expand/collapse (Option/Alt-click applies to the branch)",className:"volter-tree-caret",children:q.jsx(dc,{icon:S?DTt:lLe,"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:ZTt,"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:idn(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:[Hwt(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:Hwt(Qt.label,G)}),Wc.map(Ao=>q.jsx("span",{className:"volter-tree-datablock","data-active":m?"true":void 0,title:`${Ao.kind}: ${Ao.label}`,children:q.jsx(dc,{icon:KZ(Ao.kind),"aria-hidden":"true"})},Ao.id)),$r.typeSuffix&&Wt&&q.jsxs("span",{"data-testid":"hierarchy-instance-type","data-type-label":$r.typeSuffix,title:`Component instance of <${$r.typeSuffix}>`,style:{marginLeft:G0[2],fontSize:"var(--volter-font-sm)",color:Go.content.dim},children:["·",$r.typeSuffix,Sl>0?"*":""]}),Qt.secondaryLabel&&q.jsx("span",{style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:Qt.secondaryLabel}),tu&&q.jsx("span",{"data-testid":"hierarchy-instanced-units",style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:tu}),Yr?.role==="world"&&Yr.zOrder!==0&&q.jsxs("span",{title:`Z order: ${Yr.zOrder}`,style:{marginLeft:G0[3],fontSize:"var(--volter-font-sm)",opacity:.6},children:["Z ",Yr.zOrder]}),Yr?.provenance&&q.jsx("span",{"data-testid":"world-provenance","data-provenance":Yr.provenance.source,title:Yr.provenance.detail,style:{marginLeft:G0[3],fontSize:"var(--volter-font-xs)",padding:`0 ${R_[2]}px`,borderRadius:Go.shape.small,border:`1px solid ${Go.boundary.strong}`,color:Go.content.muted,verticalAlign:"middle"},children:Yr.provenance.label})]}),mi&&q.jsx("span",{"data-testid":"hierarchy-row-warning","data-warning-codes":mi.codes.join(","),"data-warning-count":mi.count,role:"img",title:mi.tooltip,"aria-label":`${Qt.label}: ${mi.tooltip}`,style:{fontSize:"var(--volter-font-sm)",color:Go.semantic.warning,flexShrink:0},children:q.jsx(dc,{icon:fee,"aria-hidden":"true"})}),Rl.locked&&Rl.reason&&q.jsx("span",{"data-testid":"hierarchy-transform-lock",role:"img",title:Rl.reason,"aria-label":`${Qt.label}: ${Rl.reason}`,style:{fontSize:"var(--volter-font-sm)",color:Go.content.dim,flexShrink:0},children:q.jsx(dc,{icon:Rme,"aria-hidden":"true"})}),ft==="select+viewport"&&Al&&gn.writable&&q.jsx(dm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-lock",disabled:!pl,title:pl?Ku?"Unlock":"Lock":ji?.reason||"Locked","aria-label":Ku?`Unlock ${Qt.label}`:`Lock ${Qt.label}`,"aria-pressed":Ku,onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"locked",!Ku),c.notifyIngestEdit()},children:q.jsx(dc,{icon:Ku?Rme:qOe,"aria-hidden":"true"})}),tr&&(Ni&&gn.writable?q.jsx(dm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-exclude",disabled:!Tf,title:Tf?Dc?"Include in view layer":"Exclude from view layer":vc?.reason||"Exclusion is read-only","aria-label":Dc?`Include ${Qt.label} in the view layer`:`Exclude ${Qt.label} from the view layer`,"aria-checked":!Dc,role:"checkbox",onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"exclude",!Dc),c.notifyIngestEdit()},children:q.jsx(dc,{icon:Dc?wun:xun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),(On||en)&&gn.writable&&q.jsx(dm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-visibility",disabled:!en&&!gs,title:en||gs?bu?"Hide":"Show":Ja?.reason||"Visibility is read-only","aria-label":bu?`Hide ${Qt.label}`:`Show ${Qt.label}`,"aria-pressed":!bu,onClick:Ao=>{Ao.stopPropagation(),Yr?(xan(Yr.worldId),c.notifyIngestEdit()):(s.inspector.set(Qt.id,"visible",!bu),c.notifyIngestEdit())},children:q.jsx(dc,{icon:bu?nLe:fLe,"aria-hidden":"true"})}),ft==="viewport+render"&&(Pn&&gn.writable?q.jsx(dm,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-render-visibility",disabled:!Nt,title:Nt?js?"Disable in renders":"Enable in renders":fa?.reason||"Render visibility is read-only","aria-label":js?`Disable ${Qt.label} in renders`:`Enable ${Qt.label} in renders`,"aria-pressed":!js,onClick:Ao=>{Ao.stopPropagation(),s.inspector.set(Qt.id,"renderVisible",!js),c.notifyIngestEdit()},children:q.jsx(dc,{icon:js?bun:Sun,"aria-hidden":"true"})}):q.jsx("span",{"aria-hidden":"true",style:{width:hZ,flexShrink:0}})),Yr&&q.jsx(dm,{type:"button",variant:"ghost",size:"compact","data-testid":"world-interactive-toggle",title:Au?"Interactive (layer forwards pointer events)":"Not interactive (layer is pointer-events:none)","aria-label":`Forward pointer events to ${Qt.label}`,"aria-pressed":Au,onClick:Ao=>{Ao.stopPropagation(),Tan(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:ivr,"aria-hidden":"true"})}),Yr&&q.jsx(dm,{type:"button",variant:"ghost",size:"compact","data-testid":"world-picklock-toggle",title:dl?"Pick-locked (skipped by topmost-layer picking)":"Not pick-locked","aria-label":`Exclude ${Qt.label} from viewport picking`,"aria-pressed":dl,onClick:Ao=>{Ao.stopPropagation(),Ean(Yr.worldId),c.notifyIngestEdit()},children:q.jsx(dc,{icon:XTt,"aria-hidden":"true"})})]})},Cdn);function kdn({store:t,adapter:n}){Ye.useSyncExternalStore(t.subscribe,t.getSnapshot);const s=Ye.useDeferredValue(t.contentVersion);Ye.useSyncExternalStore($3r,q3r),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(Yun());Ye.useEffect(()=>n.subscribe?.(()=>{k.current=t.getSnapshot(),S()}),[n,t]),Ye.useEffect(()=>Zun(F),[]);const D=Ye.useMemo(()=>{const zi=new Map;for(const Jn of A?.participants??[])if(Jn.participantId!==Z0e)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 Dfn),$=Ye.useRef(new Rfn),G=t.hierarchyRowFacetVersion,se=ZVe(t),[pe,ue]=Ye.useState(""),Ce=Ye.useSyncExternalStore(ffn,ufn,()=>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(EDt,ugt,ugt).includes("outliner")?"outliner":void 0,Yr=Ye.useRef(new Map),en=Ye.useRef(new Map),ii=Ye.useRef(new xfn),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=c0e(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=Qun(n,iye()?.marks(n.hierarchy)??pjt),Cs=_fn(Jn),lc=edn(Cs.hierarchy),Nu=iye()?.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?vfn(lc,zi.structuralRows,Et.changedParentIds):null)??$wt(lc,new Set),pr=mfn(efn(cdn(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:wfn(In)}}),{marked:dl,internals:bu,hierarchyView:Al,structuralRows:Ku,defaultExpansion:pl}=Au,gs=zi=>en.current.get(zi)??cfn(_a,zi)??pl.get(zi)??!0,Xu=En.current;if(Xu?.adapter!==n||Xu.selection!==fa){for(const Jn of zwt(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&&(E3r()||t.playState!=="stopped"),Rl=udn(Yr.current,Sl?Tfn(Au.index,Nt):rdn),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 tUe(zi.pathKey))Jn.delete(Cs)}return{scopeRow:zi,effectiveCollapsedPaths:Jn}}),{scopeRow:tu,effectiveCollapsedPaths:Wc}=mi,Ao=ii.current.browse([Au,mi,Ja,Sl,Sl?Cfn(Rl):""],()=>{const zi=$wt(Al,Wc,Rl,Sl),Jn=Ja?ldn(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(Eme(n,Fl.node.id))return!0;let Yu=Fl.node.parentId;for(;Yu;){const Ie=iUe(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||Qfn,Id=IOe(Tt.current),{start:ea,end:Pu}=ia.length>tdn?bfn(ia.length,tr,gp,Id,Zfn):{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);Lwt(_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(()=>(Xrn(Oc),()=>Zrn(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);Lwt(Cs.projectIdentity,Nu),No.current+=1,ji()},[]),mt=Ye.useCallback(()=>{en.current.clear();for(const zi of zwt(Au.index,Nt))en.current.set(zi,!0);lfn(_a),No.current+=1,ji()},[_a,fa,Au]),xt=Ye.useCallback(zi=>{const Jn=Yr.current;Jn.set(zi,(Jn.get(zi)??rye)+rye),No.current+=1,ji()},[]),xr=Ye.useCallback(zi=>{W3r(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=IOe(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(POe,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(POe),Cs=zi.dataTransfer.types.includes(DOe);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=IOe(Tt.current),Ie=Math.floor(Fl/Yu);if(Ie>=ia.length){qe(null),Pt(!0),Jn&&Wt&&(ft.current=Mwt({hasStructureWritePath:Wwt(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=Mwt({hasStructureWritePath:Jn?Wwt(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)||odn(Ur,Wt,n))return;if(!rfn(n,Wt,Ur)){qe(null);return}}if(Eme(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(POe);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=sdn(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),d$e(n,Li,Ei);return}const Yu=zi.dataTransfer.getData(DOe);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)&&LFe(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)&&LFe(n,In,Ie.path,Et)}catch{}},[we,bt,ia,n]),Iu=TPt(n)??"Untitled";return q.jsxs(Uye,{name:null,hideHeader:!0,onPointerDown:()=>CR("hierarchy"),onDragOver:zi=>{zi.dataTransfer.types.includes(DOe)&&(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(bdn,{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:()=>Igt(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:()=>Igt(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(wdn,{row:zi,onReveal:xt},qwt(zi)):q.jsx(Edn,{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)??Xfn},qwt(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?Eme(n,zi.id)||oUe(n,zi.id):!1;return q.jsx(Sdn,{state:De,adapter:n,store:t,isGroupNode:Jn,isInternal:bu.isInternal(De.nodeId),onRename:X,onClose:()=>Pe(null)})})()]})}function Ejt(){const t=Yv(),[,n]=Ye.useReducer(c=>c+1,0);Ye.useSyncExternalStore(o2,K1),Ye.useSyncExternalStore(Cee,AD),Ye.useSyncExternalStore(Gfn,iye);const{adapter:s}=Cm(t);return Ye.useEffect(()=>s.subscribe?.(n),[s]),q.jsx(kdn,{store:t,adapter:s},Gun(s))}function Adn(){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=_ve(),S=Z9t(),k=Ye.useSyncExternalStore(u2,TFe,TFe);Ye.useSyncExternalStore(mDt,xhe,xhe),Ye.useSyncExternalStore(Gye,_he,_he),Ye.useSyncExternalStore(DDt,Dhe,Dhe),Ye.useSyncExternalStore(_Le,YB,YB);const A=De=>{const Pe=Mme(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(sMt,N$,N$),D=Ye.useSyncExternalStore(yDt,zS,zS),[J,$]=Ye.useState(null);cjt(()=>J?Vvr():"");const G=Ye.useRef(null),se=Ye.useRef({}),pe=De=>se.current[De]??={current:null};Ye.useEffect(()=>{if(!J)return;const De=Pe=>{G.current?.contains(Pe.target)||$(null)};return document.addEventListener("pointerdown",De),()=>document.removeEventListener("pointerdown",De)},[J]);const ue=De=>()=>{$(null),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(qVe),children:"Undo History…"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:c.length===0||!s?.cut||!(s.canCopy?.(c)??!0),onSelect:ue(()=>BVe(t)),children:"Cut"}),q.jsx(Jc,{disabled:c.length===0||!s?.copy||!(s.canCopy?.(c)??!0),onSelect:ue(()=>LVe(t)),children:"Copy"}),q.jsx(Jc,{disabled:!s?.paste||!(s.canPaste?.(m)??!0),onSelect:ue(()=>$Ve(t)),children:"Paste"}),q.jsx(t2,{}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void vve(t)),children:"Duplicate"}),q.jsx(Jc,{disabled:t.selectedEntityIds.size===0,onSelect:ue(()=>void bve(t)),children:"Delete"}),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(()=>PRt(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(()=>TVe()),children:"Command Palette…"}),q.jsx(Jc,{onSelect:ue(async()=>{const De=drn(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($Be),children:"Toggle Focus Mode"}),A("view")]}),window:q.jsxs(q.Fragment,{children:[AN().filter(De=>Uk(De.id)).map(De=>q.jsxs(Jc,{role:"menuitemradio","aria-checked":D===De.id,"data-testid":`workspace-${De.id}`,title:De.description,onSelect:ue(()=>a2(De.id)),children:[q.jsx(dc,{icon:Kk.status.success,style:{opacity:D===De.id?1:0}}),"Workspace: ",De.title]},De.id)),q.jsx(t2,{}),q.jsx(Jc,{onSelect:ue(dve),children:"Console"}),q.jsx(Jc,{onSelect:ue(()=>vC(nee.lightExplorer.id)),children:"Light Explorer"}),q.jsx(Jc,{onSelect:ue(()=>BBe("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(()=>xve()),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:Mme("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(hBe,{"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(gBe,{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 Ddn=new Map,Gwt=new Set;let Pdn=0;function Idn(t){return Ddn.get(t)??Ndn}const Ndn=[];function Odn(t){return Gwt.add(t),()=>Gwt.delete(t)}function Kwt(){return Pdn}function kme({slot:t}){return Ye.useSyncExternalStore(Odn,Kwt,Kwt),q.jsx(q.Fragment,{children:Idn(t).map(n=>q.jsx(n.Content,{},n.owner))})}const IO=[],qje=new Set;let kjt=0;function Xwt(){kjt++;for(const t of qje)t()}function Rdn(t){const n=IO.findIndex(s=>s.owner===t.owner);return n>=0&&IO.splice(n,1),IO.push(t),IO.sort((s,c)=>(s.order??0)-(c.order??0)),Xwt(),()=>{const s=IO.indexOf(t);s<0||(IO.splice(s,1),Xwt())}}async function Fdn(t){const n=new Set,s=[];for(const c of IO){let d;try{d=await c.harnesses(t)}catch{continue}for(const m of d)n.has(m.id)||(n.add(m.id),s.push(m))}return s}function Mdn(t){return qje.add(t),()=>{qje.delete(t)}}function Ywt(){return kjt}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 jdn(){const t=await fetch("/__editor/git/status");return L_(t,"Git status failed")}function Ldn(t){return pA("/git/checkpoint",{method:"POST",body:JSON.stringify(t)})}function Bdn(t){return pA("/git/publish",{method:"POST",...t?{signal:t}:{}})}function Zwt(t){return pA("/git/stage",{method:"POST",body:JSON.stringify(t)})}function $dn(t){return pA("/git/fetch",{method:"POST",...t?{signal:t}:{}})}function qdn(t){return pA("/git/update",{method:"POST",...t?{signal:t}:{}})}function Qwt(t){return pA("/git/rebase",{method:"POST",body:JSON.stringify({action:t})})}function zdn(){return pA("/git/readiness",{method:"POST"})}function Vdn(t){return pA("/git/pull-request",{method:"POST",body:JSON.stringify(t)})}function Udn(){return pA("/git/pull-request/status")}function Jdn(t){return pA("/git/pull-request/merge",{method:"POST",...t?{signal:t}:{}})}function Wdn(){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(()=>{jdn().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),Vdn({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),Jdn(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(()=>Zwt({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(()=>Zwt({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(()=>Qwt("continue"),"Rebase continued."),children:"Continue rebase"}),q.jsx(Ms,{type:"button",size:"compact",variant:"ghost",disabled:s,onClick:()=>void Pe(()=>Qwt("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(()=>Ldn({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($dn,"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(Bdn,"Branch published.","Publishing"),children:"Publish"}),q.jsx(Ms,{type:"button",size:"compact",variant:"outline",disabled:s||d.dirty||!d.baseRef,onClick:()=>void Pe(qdn,"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 zdn().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 Udn().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(ERe,{labelledBy:"volter-pull-request-title-heading",onDismiss:()=>se(null),children:[q.jsx(kRe,{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(q3t,{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(ARe,{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(ERe,{labelledBy:"volter-merge-pr-heading",onDismiss:()=>ue(!1),children:[q.jsx(kRe,{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(ARe,{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"})]})]})]})}Rdn({owner:"editor-core:supercode",harnesses:async()=>HZr()});const Hdn={worktrees:[],branches:[]};function Gdn(t){return`agent/${t.toLocaleLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,42)||"task"}`}function Kdn({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(Mdn,Ywt,Ywt);return Ye.useEffect(()=>{let Ce=!0;return Fdn(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(xBe,{"aria-label":"Task for the agent",placeholder:"Describe a bounded task…",value:c,onChange:Ce=>{const De=Ce.target.value;d(De),S||g(Gdn(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),XZr({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 Xdn(t){return t.replace(/[\\/]$/,"").split(/[\\/]/).at(-1)??t}function Ydn(t){const n=t.current?["Current worktree"]:[Xdn(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=sUe(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 sUe(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 Zdn(t){return t.kind==="agent"?"AI":t.displayName.split(/\s+/).slice(0,2).map(n=>n[0]?.toLocaleUpperCase()??"").join("")}function eTt({worktree:t}){const n=sUe(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:Zdn(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 tTt(t,...n){const s=t.trim().toLocaleLowerCase();return!s||n.some(c=>c?.toLocaleLowerCase().includes(s))}function rTt(t,n){return[+!t.current,Math.min(...sUe(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 Qdn(t){return(n,s)=>{const c=rTt(n,t),d=rTt(s,t);return c.reduce((g,S,k)=>g||S-(d[k]??0),0)||(n.branch??n.root).localeCompare(s.branch??s.root)}}function epn(){const[t,n]=Ye.useState(Hdn),[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 GZr()),A(null)}catch($){A($ instanceof Error?$.message:String($))}finally{J||m(!1)}},[]);return Ye.useEffect(()=>{if(L$)return;let J=!0;return WZr().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 tpn(){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}=epn();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(Qdn(Ce)).filter(ft=>tTt(c,ft.branch,ft.root)),be=S.branches.filter(ft=>!ft.worktreeId&&tTt(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(hBe,{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:_0r}),se?.dirty&&q.jsx("span",{className:"volter-worktree-dirty-dot","aria-hidden":"true"}),se&&q.jsx(eTt,{worktree:se})]}),n&&q.jsxs(gBe,{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:ATt})})]}),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,()=>KZr(ft.worktreeId),()=>s(!1)),children:[q.jsx("span",{className:"volter-worktree-row-icon",children:ft.current&&q.jsx(dc,{icon:sLe})}),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…":Ydn(ft)})]}),q.jsx(eTt,{worktree:ft})]}),!ft.current&&ft.sessions[0]?.sessionId&&q.jsx(Ms,{type:"button",size:"compact",variant:"ghost","aria-label":`Stop editor for ${tr}`,title:"Stop editor session",disabled:F!==null,onClick:()=>void G(`stop:${ft.worktreeId}`,()=>ZZr(ft.worktreeId,ft.sessions[0].sessionId),()=>s(!1)),children:q.jsx(dc,{icon:NTt})}),!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}`,()=>YZr(ft.worktreeId),()=>s(!1)),children:q.jsx(dc,{icon:eCt})})]},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,()=>HSt(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",()=>HSt(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(Kdn,{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(Wdn,{})]}),D&&q.jsx(_p,{as:"div",variant:"caption",tone:"danger",role:"alert",className:"volter-worktree-error",children:D})]})]})}function rpn({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:[lee()?.nativeMenus?q.jsx("div",{className:"volter-project-header-left"}):q.jsxs("div",{ref:d,className:"volter-project-header-left",children:[q.jsxs("div",{className:"volter-project-header-cluster volter-chrome-island volter-glass-island",children:[q.jsxs(hBe,{"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(tpn,{}),q.jsx(bZ,{onPointerDown:()=>c(!1),className:"volter-project-app-menus",children:q.jsx(Adn,{})})]}),q.jsx(npn,{}),s&&q.jsxs(fN,{autoFocusFirst:!0,onDismiss:()=>{const D=d.current?.querySelector('[data-testid="project-menu-trigger"]');c(!1),requestAnimationFrame(()=>D?.focus())},className:"volter-project-menu",children:[q.jsx(_p,{"data-testid":"project-menu-name",title:g,variant:"label",truncate:!0,className:"volter-project-menu-name",children:g}),F&&q.jsx(_p,{"data-testid":"project-menu-path",title:F,variant:"caption",tone:"dim",selectable:!0,truncate:!0,className:"volter-project-path",children:F}),S&&k&&A!==null&&q.jsxs(q.Fragment,{children:[F&&q.jsx(t2,{}),q.jsxs("div",{"data-testid":"project-version-summary",className:"volter-project-versions",children:[q.jsx("span",{children:"Editor"}),q.jsxs(_p,{variant:"code",tone:"muted",children:["v",ejt]}),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),TMe(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(ipn,{})}),q.jsx(bZ,{className:"volter-project-header-right",justify:"end",align:"center",children:q.jsx(kme,{slot:"header-trailing"})})]})}function npn(){Ye.useSyncExternalStore(U$,yhe,yhe),Ye.useSyncExternalStore(mDt,xhe,xhe);const t=Ye.useSyncExternalStore(yDt,zS,zS);if(mD().workspaceTabs!=="shown")return null;const n=AN().filter(s=>Uk(s.id));return q.jsxs(q.Fragment,{children:[q.jsx($Tr,{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 ipn(){Ye.useSyncExternalStore(_Le,YB,YB);const t=Bvr();return t.length===0?null:q.jsx(q.Fragment,{children:t.map(({id:n,Component:s})=>q.jsx(s,{documentId:""},n))})}function opn({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 spn(t,n){return window.confirm(n)}const apn=4,cpn=4,lpn=24,upn=4,fpn=3,dpn=new Set(["model","image"]),ppn=new Set(["glb","gltf","fbx","obj","dae","stl","ply","spz","bvh","3ds"]);function _pn(t){const n=t.lastIndexOf(".");return n>0&&ppn.has(t.slice(n+1).toLowerCase())}const mpn=new Set(["audio","video","prefab","json"]);function Ajt(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 aUe(t){return t.replace(/^(?:\.\/|\/)+/,"").replace(/\/+$/,"")}function hpn(t,n){const s=t?n.slice(t.length+1):n;return s.split("/",1)[0]??s}function nTt(t,n){return t.tier-n.tier||t.depth-n.depth||t.seq-n.seq}function gpn(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 ypn(t,n){const s=[...t].sort(nTt),c=[],d=new Set;for(const m of[1,2]){const g=s.filter(S=>S.tier===m);gpn(g,c,d,n)}return c.sort(nTt),c.map(({path:m,name:g,kind:S})=>({path:m,name:g,kind:S}))}function vpn(t){return dpn.has(t)?1:mpn.has(t)?2:0}function bpn(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=_pn(d.name)?"model":ig(d.name).kind,S=vpn(g);S!==0&&t.candidates.push({path:m,name:d.name,kind:g,tier:S,depth:n.depth,seq:t.seq++,subtree:hpn(t.base,m)})}}async function Spn(t,n,s={}){const c=s.listAssets??Q0e,d=s.maxItems??apn,m=s.maxListings??lpn,g=Ajt(s.listConcurrency??upn),S=aUe(n),k={base:S,maxDepth:s.maxDepth??cpn,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}bpn(k,pe,ue.entries,G)}F=G}return{items:ypn(k.candidates,d),totalAssets:k.totalAssets,scannedAll:!k.truncated&&k.failedListings===0,failedListings:k.failedListings}}const Djt="\0",JO=new Map,xpn=Ajt(fpn);function wpn(t,n,s){const c=`${t}${Djt}${aUe(n)}`,d=JO.get(c);if(d)return d;const m=xpn(()=>Spn(t,n,s));JO.set(c,m);const g=()=>{JO.get(c)===m&&JO.delete(c)};return m.then(S=>{(S.failedListings>0||S.items.length===0&&S.totalAssets===0)&&g()},g),m}function Tpn(t,n){return t===n||t===""||n===""||t.startsWith(`${n}/`)||n.startsWith(`${t}/`)}function iTt(t){if(t===void 0){JO.clear();return}const n=aUe(t);for(const s of[...JO.keys()]){const c=s.slice(s.indexOf(Djt)+1);Tpn(c,n)&&JO.delete(s)}}function zje(t,n="$"){return typeof t=="string"?[{path:n,value:t}]:Array.isArray(t)?t.flatMap((s,c)=>zje(s,`${n}[${c}]`)):!t||typeof t!="object"?[]:Object.entries(t).flatMap(([s,c])=>zje(c,`${n}.${s}`))}function Cpn(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 Epn(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=Cpn(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 zje(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 Pjt(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 Pjt(t,m)):/\.json$|\.gltf$/i.test(m)?c.push({path:m,text:await t.read(m)}):c.push({path:m})}return c}async function kpn(t,n){return Epn({assetPath:n,files:await Pjt(t)})}function y_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 NOe(t,n){for(const s of n)if(await t.exists(s))throw new Error(`An asset already exists at ${s}.`)}async function Apn(t,n){const s=C$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 NOe(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 NOe(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&&y_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)y_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&&y_e({type:"delete",paths:c}),d}case"import":{const c=t.files.map(m=>({path:K4(m.path),data:m.bytes}));await NOe(n.backend,c.map(m=>m.path));const d=await s.mutate(c,{label:`Import ${c.length} asset${c.length===1?"":"s"}`});return d&&y_e({type:"change",paths:c.map(m=>m.path)}),d}}}const Dpn=320,Ppn=180,Ipn="document-preview-v4",gZ=new Map,Npn=new KPt(async t=>{const n=gZ.get(t);if(await new Promise(s=>{typeof requestIdleCallback=="function"?requestIdleCallback(()=>s(),{timeout:1e3}):setTimeout(s,0)}),[...n.consumers].every(s=>s.aborted))throw new DOMException("Preview demand was cancelled.","AbortError");return n.run()},1);let YZ=null,oTt,OOe=null;const WY=new Set;async function Ijt(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 Ijt(d.path)):c.push(`${d.path}:${d.size??0}:${d.mtime??0}`);return c}async function Opn(){const t=wf()?.rootPath;return oTt!==t&&(oTt=t,YZ=null),YZ??=Promise.all([qRt([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 CMe(s)??""}`))),Ijt("")]).then(([n,s])=>Njt([...n,...s].sort().join(`
1404
1404
  `))),YZ}function Rpn(t){return WY.add(t),OOe??=Ag.watch(n=>{if(n.path===PB){GPt();for(const s of WY)s();return}if(!(!/^(src|public|\.storybook)\//.test(n.path)&&n.path!==xR&&n.path!=="volter.adapter.ts")){YZ=null;for(const s of WY)s()}}),()=>{WY.delete(t),WY.size===0&&(OOe?.(),OOe=null,YZ=null)}}async function Fpn(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=Npn.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 Njt(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 Mpn(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 sTt(t,n="image/png"){const s=new Uint8Array(t.byteLength);return s.set(t),URL.createObjectURL(new Blob([s.buffer],{type:n}))}async function jpn(t){const n=await T$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 Lpn(t,n,s,c){const d=wf()?.rootPath??"no-project",m=await jpn(t),g=JSON.stringify({projectId:d,documentId:t,recipe:Ipn,revision:n.revision(),dependencies:await Opn(),camera:m});c.throwIfAborted();const S=await Njt(g),k=`.volter/cache/document-previews/${S}.png`;if(s===0&&await Ag.exists(k))return sTt(await Ag.readBytes(k));const A=await Fpn(S,c,()=>n.capture({width:Dpn,height:Ppn,...m?{camera:m}:{}}));c.throwIfAborted();const F=Mpn(A);return await Ag.write(k,F.bytes),sTt(F.bytes,F.mime)}function Bpn({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=Rpn(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),Lpn(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 Ojt(t,n){return tve(t,n.path)}function $pn({root:t,item:n}){const[s,c]=Ye.useState(!1);return s?q.jsx(vD,{kind:"image",size:14}):q.jsx("img",{src:Ojt(t,n),alt:n.name,loading:"lazy",onError:()=>c(!0)})}function qpn({root:t,item:n}){const s=I9t(Ojt(t,n),Vin);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 zpn({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($pn,{root:t,item:n}):n.kind==="model"?q.jsx(qpn,{root:t,item:n}):q.jsx(wR,{kind:n.kind,name:n.name,variant:"cell"})}function Vpn({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 wpn(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:$Oe,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(zpn,{root:t,item:g})},g.path))}),q.jsx("span",{className:"volter-folder-preview__chip",children:q.jsx(dc,{icon:uee})}),q.jsx("span",{className:"volter-folder-preview__count",children:m})]})}const Rjt="contentBrowser";function Vje(t){return t.type==="directory"?"folder":ig(t.name).kind}function Upn(t,n,s){return tve(t,n?`${n}/${s}`:s)}function Jpn(t,n,s){return n?`/${n}/${s}`:`/${s}`}function Wpn(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Uje(t){const n=ig(t);return n.importable?n.runtimeReady?"healthy":"source-only":"unsupported"}const Hpn=640,aTt={scope:"content",root:"public",currentPath:"",viewMode:"grid",sort:"relevance",filter:"all",density:96,expanded:["public"],treeVisibility:"auto",facets:["component"]};function Gpn(){try{const t=Tve(Rjt)??{},n=t.viewMode,s=t.treeVisibility,c=t.scope,d=t.root;return{...aTt,...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 aTt}}const Kpn={listAssets:Q0e,listProjectComponents:BRt},ROe="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.",Xpn=new Set(["component","scene","canvas","model","image","video","audio","other"]);function Ypn(t){const n=t.charAt(0).toUpperCase()+t.slice(1);return n.endsWith("s")?n:`${n}s`}async function cTt(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 Hsn().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 Zpn(t){return t.component.surface==="three"?"3d":t.component.surface==="canvas"?"2d":"ui"}function Qpn(t){const n={"3d":"3D","2d":"2D",ui:"UI"};return["3d","2d","ui"].flatMap(s=>{const c=t.filter(d=>d.source==="component"&&Zpn(d)===s);return c.length>0?[{id:`prefabs-${s}`,label:n[s],headingLevel:"category",entries:c}]:[]})}function e_n(t,n,s){return n==="files"?[{id:"files",label:null,headingLevel:null,entries:[...t]}]:s.length===1&&s[0]==="component"?Qpn(t):t.length>0?[{id:"content",label:null,headingLevel:null,entries:[...t]}]:[]}function Fjt(t){return t.source==="available"?t.available.category:t.source==="component"?t.component.contentKind??"component":t.source==="document"?t.document.kind:q9t(t.name)}function t_n(t){return t.source==="component"?t.component.contentKind??"component":t.source==="available"||t.source==="document"?"source":Vje(t.entry)}function WO(t){const n=t.lastIndexOf("/");return n<0?"":t.slice(0,n)}function r_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(Upn(t.root,d,s.name),k)}}function Mjt(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":Wpn(t.entry.size)}function n_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=Mjt(t);return n?`${t.name}
1408
1408
  ${n}`:t.name}function i_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 lTt(t){return t.source==="asset"?Con({path:t.path,root:t.root,entry:t.entry}):t.source==="available"||t.source==="document"?10:Eon(t.component)-100}function o_n(t,n){const s=lTt(t),c=lTt(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 uTt(t,n){return t===void 0?n===void 0?0:1:n===void 0?-1:n-t}function s_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 uTt(t.entry.size,n.entry.size);if(s==="modified"&&t.entry.modifiedAt!==n.entry.modifiedAt)return uTt(t.entry.modifiedAt,n.entry.modifiedAt);if(s==="type"){const c=Vje(t.entry).localeCompare(Vje(n.entry));if(c!==0)return c}if(s==="health"){const c=Uje(t.name).localeCompare(Uje(n.name));if(c!==0)return c}return HB(t,n)}function a_n(t,n,s){return s==="relevance"?o_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):s_n(t,n,s)}function c_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=Fjt(t);return n.facets.includes(s)}return n.scope==="content"||i_n(t,n.filter,n.shownPath)}const l_n={width:"100%",minWidth:0,padding:0,textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:3},u_n={width:"100%",minWidth:0,minHeight:28,padding:"3px 6px",textAlign:"left",display:"flex",flexDirection:"row",alignItems:"center",gap:7};function f_n(t){const n=new Map;if(!t.assetSubject)return n;const s=t.assetSubject.entries?.()??I3r(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 d_n=()=>()=>{},p_n=()=>0;function __n({sheetUrl:t,frame:n}){return q.jsx(R9t,{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 m_n({item:t,kind:n,assetUrl:s,grid:c,folderPath:d,previewRevision:m}){const g=s;if(n==="folder")return c?q.jsx(Vpn,{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(Jin,{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(Bpn,{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(__n,{sheetUrl:`/${t.spritesheet.sheetPath}`,frame:t.spritesheet}):q.jsx("img",{src:g,alt:t.name,style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:sQ.sm}}):n==="video"&&g?q.jsx("video",{src:`${g}#t=0.1`,muted:!0,playsInline:!0,preload:"metadata",style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:sQ.sm}}):n==="model"||P9t(s)?q.jsx(N9t,{url:s}):["prefab","json"].includes(n)?q.jsx(wR,{kind:n,name:t.name}):q.jsx(vD,{kind:n})}function h_n({item:t,selected:n,onDragStart:s,onSelect:c,onOpen:d,onContextMenu:m,viewMode:g,previewRevision:S,showPath:k}){const A=t_n(t),F=t.source==="asset"?t.entry:null,D=F?.type==="file"?ig(F.name):null,J=t.source==="asset"?tve(t.root,t.path):"",$=t.path,G=n_n(t),se=F?F.type==="directory"||D?.placeable?D?.placeable?"grab":"pointer":"default":"pointer",pe=Mjt(t),ue=t.source==="component"?t.path:t.source==="asset"?Nge(t.root,WO(t.path)).replace(/\/$/,""):WO(t.path)||"public",Ce=k?`${ue} · ${pe}`:pe,De=g!=="list";return q.jsxs("div",{className:"volter-selectable volter-project-asset-entry","data-selected":n||void 0,"data-view":g,role:"option","aria-selected":n,tabIndex:0,draggable:t.source==="component"||t.source==="asset"&&F?.type==="file"&&D?.placeable===!0||t.source==="asset"&&t.spritesheet!==void 0||t.source==="asset"&&t.root===nA&&F?.type==="file",onPointerEnter:()=>{A==="audio"&&J&&Lin(J)},onPointerLeave:()=>{A==="audio"&&J&&Bin(J)},onDragStart:Pe=>s(Pe,t),onDragEnd:b3r,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?l_n:u_n,borderRadius:sQ.sm,cursor:se,userSelect:"none"},children:[q.jsxs("div",{className:"volter-project-asset-entry__preview","data-testid":"asset-entry-preview",style:{...De?{width:"100%",aspectRatio:t.source==="available"&&t.available.descriptor.preview?"16 / 9":"1 / 1",margin:"0 auto"}:{width:18,height:18,margin:0},display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",borderRadius:sQ.sm,pointerEvents:"none",position:"relative"},children:[q.jsx(m_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 g_n({scope:t,facets:n,availableFacets:s,currentPath:c,currentRoot:d,searchOpen:m,searchQuery:g,viewMode:S,density:k,treeVisible:A,onScopeChange:F,onFacetToggle:D,onFacetsClear:J,onNavigate:$,onSearchOpenChange:G,onSearchQueryChange:se,onViewModeChange:pe,onDensityChange:ue,onTreeVisibilityToggle:Ce,onCreateFolder:De,onImport:Pe,onDelete:be,deleteDisabled:X,onRefresh:we,generationTools:qe,onGenerate:bt}){const Pt=Ye.useRef(null),Wt=Ye.useRef(!0),zt=Ye.useRef(null),[ft,tr]=Ye.useState(!1),Qt=c?c.split("/"):[],Tt=WO(c),vn=d===nA?"References":"Files",Yr=()=>{se(""),G(!1)};return Ye.useEffect(()=>{if(!ft)return;const en=ii=>{Pt.current?.contains(ii.target)||tr(!1)};return document.addEventListener("pointerdown",en),()=>document.removeEventListener("pointerdown",en)},[ft]),Ye.useLayoutEffect(()=>{const en=zt.current;if(!en)return;const ii=()=>{en.scrollLeft=en.scrollWidth};Wt.current=!0,ii();const No=()=>{Wt.current=en.scrollWidth-en.clientWidth-en.scrollLeft<=1};en.addEventListener("scroll",No,{passive:!0});const gn=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>{Wt.current&&ii()});return gn?.observe(en),()=>{en.removeEventListener("scroll",No),gn?.disconnect()}},[c,m]),q.jsxs("div",{className:"volter-project-assets-toolbar",children:[q.jsxs(n$,{label:"Content display",compact:!0,className:"volter-project-assets-toolbar__row",children:[q.jsxs(Aht,{children:[q.jsx(mO,{text:"Content grid",position:"top",children:q.jsx(dm,{"aria-label":"Content grid","data-testid":"content-scope-content","aria-pressed":t==="content",onClick:()=>{t!=="content"&&F("content"),pe("grid")},children:q.jsx(dc,{icon:nvr})})}),q.jsx(mO,{text:"Browse grid",position:"top",children:q.jsx(dm,{"aria-label":"Browse grid","data-testid":"content-scope-files","aria-pressed":t==="files"&&S==="grid",onClick:()=>{t!=="files"&&F("files"),pe("grid")},children:q.jsx(dc,{icon:OTt})})}),q.jsx(mO,{text:"Browse list",position:"top",children:q.jsx(dm,{"aria-label":"Browse list","data-testid":"asset-view-list","aria-pressed":t==="files"&&S==="list",onClick:()=>{t!=="files"&&F("files"),pe("list")},children:q.jsx(dc,{icon:vZ})})})]}),q.jsx("span",{style:{flex:1}}),m?q.jsx(Zm,{type:"text","data-testid":"asset-search-input","aria-label":"Search content",placeholder:"Search content...",value:g,onChange:en=>se(en.target.value),onKeyDown:en=>{en.key==="Escape"&&Yr()},className:"volter-input",autoFocus:!0,style:{flex:"0 1 160px",minWidth:60}}):null,q.jsx(mO,{text:m?"Close search":"Search",position:"top",children:q.jsx(dm,{"data-testid":m?"asset-search-close":"asset-search-toggle","aria-label":m?"Close search":"Search content",onClick:()=>{m?Yr():G(!0)},children:q.jsx(dc,{icon:m?Kk.action.close:Kk.action.search})})})]}),q.jsxs(n$,{label:t==="content"?"Content types":"Folder navigation",compact:!0,className:"volter-project-assets-toolbar__row",children:[t==="files"&&q.jsxs(q.Fragment,{children:[q.jsx(mO,{text:A?"Hide folders":"Show folders",position:"top",children:q.jsx(dm,{"data-testid":"asset-tree-toggle","aria-label":A?"Hide folder tree":"Show folder tree","aria-controls":"project-asset-tree","aria-expanded":A,onClick:Ce,children:q.jsx(dc,{icon:QTt})})}),q.jsx(mO,{text:"Back",position:"top",children:q.jsx(dm,{"data-testid":"asset-back","aria-label":"Back",disabled:!c,onClick:()=>$(d,Tt),children:q.jsx(dc,{icon:W0r})})}),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(Aht,{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=>!Xpn.has(en)).sort().map(en=>[en,Ypn(en)])].map(([en,ii])=>q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":`content-filter-${en}`,"aria-pressed":n.includes(en),onClick:()=>D(en),children:ii},en))]}),q.jsxs("div",{ref:Pt,className:"volter-project-assets-toolbar__more",children:[q.jsx(mO,{text:"More asset actions",position:"top",children:q.jsx(dm,{"aria-label":"More asset actions","aria-expanded":ft,"aria-haspopup":"menu",onClick:()=>tr(en=>!en),children:q.jsx(dc,{icon:p0r})})}),ft&&q.jsxs(fN,{autoFocusFirst:!0,className:"volter-project-assets-toolbar__menu",onDismiss:()=>tr(!1),children:[q.jsx(Jc,{"data-command-id":O_.import.id,onSelect:()=>{tr(!1),Pe()},children:"Import files…"}),q.jsx(Jc,{"data-command-id":O_.createFolder.id,onSelect:()=>{tr(!1),De()},children:"New folder"}),qe.length>0&&q.jsxs(q.Fragment,{children:[q.jsx("hr",{className:"volter-menu-separator"}),q.jsx(Jc,{onSelect:()=>{tr(!1),bt()},children:"Create asset…"})]}),q.jsx(Jc,{onSelect:()=>{tr(!1),ue(k<=96?132:88)},children:k<=96?"Larger thumbnails":"Smaller thumbnails"}),q.jsx(Jc,{disabled:X,"data-command-id":O_.delete.id,onSelect:()=>{tr(!1),be()},children:"Delete selected"}),q.jsx(Jc,{onSelect:()=>{tr(!1),we()},children:"Refresh"})]})]})]})]})}function y_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=URt.find(S=>d===S||d.startsWith(`${S}/`));if(!m)continue;const g=d===m?"":d.slice(`${m}/`.length);t.loadAssets(m,g).then(S=>{S.ok&&s(k=>{const A=new Map(k);return A.set(d,S.entries.filter(F=>F.type==="directory").map(F=>F.name)),A})})}},[n,t.expanded,t.loadAssets]);const c=(d,m,g)=>{const S=m?`${d}/${m}`:d,k=t.expanded.has(S),A=m.split("/").pop()||d;return q.jsxs("div",{children:[q.jsxs("div",{className:"volter-asset-tree-row",style:{paddingLeft:6+g*14},children:[q.jsx(dm,{className:"volter-asset-tree-toggle","aria-label":`${k?"Collapse":"Expand"} ${A}`,"aria-expanded":k,onClick:()=>t.onExpanded(S),children:q.jsx(dc,{icon:RTt,style:{transform:k?"rotate(90deg)":void 0}})}),q.jsxs(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target","aria-current":t.currentRoot===d&&t.currentPath===m?"page":void 0,onClick:()=>t.onNavigate(d,m),children:[q.jsx(dc,{icon:uee}),A]})]}),k&&n.get(S)?.map(F=>c(d,m?`${m}/${F}`:F,g+1))]},S)};return q.jsxs("aside",{id:"project-asset-tree",className:"volter-asset-tree","aria-label":"Project asset sources",hidden:t.hidden,children:[q.jsx("div",{className:"volter-asset-facet-title",children:"Project"}),c("public","",0),q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>t.onNavigate("public","asset-library/local"),children:"Imported"}),q.jsx(Ms,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>t.onNavigate("public",".generated"),children:"Generated"}),q.jsx("div",{className:"volter-asset-facet-title",children:"References"}),c(nA,"",0)]})}function v_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>=Hpn)};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 b_n({services:t=Kpn}){const n=Yv(),s=typeof n.subscribe=="function"?n.subscribe:d_n,c=typeof n.getSnapshot=="function"?n.getSnapshot:p_n,d=typeof n.getShellSnapshot=="function"?n.getShellSnapshot:c,m=Ye.useSyncExternalStore(s,d,d),g=Ye.useSyncExternalStore(Cee,AD,AD),S=Ye.useSyncExternalStore(o2,K1,K1),k=Ye.useRef(n);k.current=n;const A=Y9t(),F=Ye.useSyncExternalStore(u2,rA,rA),D=Ye.useSyncExternalStore(w9t,Uge,Uge),J=F.filter(pr=>pr.point==="workspace.document"&&pr.tool?.generation?.role==="submit"),$=Ye.useMemo(Gpn,[]),[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}=v_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(btn,nve),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(()=>{Cve(Rjt,{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([$9t(t.listAssets),t.listProjectComponents()]),Ei=await won(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(()=>f_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=Ain().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"?Qze(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=>c_n(Li,{query:pr,scope:pe,facets:Ce,filter:Pt,shownPath:Oc})),Ei=pe==="files"&&qe==="relevance"?"name":qe;return[...Ur].sort((Li,uc)=>a_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(Fjt(Ur));return pr},[mt]),eo=Ye.useMemo(()=>e_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. ${ROe}`);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:Jpn(G,WO(Ur.path),Ei.name),kind:uc,name:Ei.name};pr.dataTransfer.setData("text/plain",Ei.name),pr.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Nd))},[G]),ta=Ye.useCallback((pr,Ur)=>{let Ei=new Set;if(Ur.shiftKey&&tu){const Op=xr.findIndex(Rh=>Rh.key===tu),ls=xr.findIndex(Rh=>Rh.key===pr.key);if(Op>=0&&ls>=0){const[Rh,Gi]=Op<ls?[Op,ls]:[ls,Op];Ei=new Set(xr.slice(Rh,Gi+1).map(U=>U.key))}}else Ur.metaKey||Ur.ctrlKey?(Ei=new Set(dl),Ei.has(pr.key)?Ei.delete(pr.key):Ei.add(pr.key),Wc(pr.key)):(Ei.add(pr.key),Wc(pr.key));if(bu(Ei),pr.source==="component"){if(pr.component.contentKind==="image"&&pr.authoringAsset){BI({path:pr.authoringAsset.subject.sourcePath??pr.path,name:pr.name,kind:"image",capabilities:ig("svg"),health:"healthy",selectionCount:Ei.size});return}BI({path:pr.path,name:pr.name,kind:"component",health:"healthy",selectionCount:Ei.size,componentPreview:{surface:pr.component.surface,sourcePath:pr.component.path}});return}if(pr.source==="document"||pr.source==="available"){BI({path:`/${pr.path}`,name:pr.name,kind:"source",capabilities:ig(pr.name),origin:"project",health:"healthy",selectionCount:Ei.size});return}const{entry:Li}=pr;if(Li.type==="directory"){oD();return}const uc=ig(Li.name),kc=FB(uc)??"unknown",Nd=tve(pr.root,pr.path);if(BI({path:Nd,name:Li.name,kind:kc,...Li.size===void 0?{}:{sizeBytes:Li.size},capabilities:uc,health:Uje(Li.name),selectionCount:Ei.size,...pr.path.startsWith("asset-library/local")?{sourcePath:"Asset Library provenance metadata"}:{}}),pr.root!=="public")return;const Lo=pr.path;kpn(gR(),Lo).then(Op=>{const ls=Nd;K0e()?.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){pQr(pr.authoringAsset.id,pr.authoringAsset.subject);return}pr.contentSource.open(n,pr.contentEntry,pr.name);return}if(pr.source==="available"){SN(pr.available.descriptor.id);return}if(pr.source==="document"){if(pr.document.kind==="scene"){const Ur=PFt(pr.document.id);Ur.ok||Qs.error(Ur.error,"scene");return}ID(pr.document)||sN(`/${pr.path}`,kFt(pr.document));return}r_n(pr,{currentRoot:G,currentPath:pr.source==="asset"?WO(pr.path):"",navigate:Ls,openAsset:(Ur,Ei)=>sN(Ur,Ei)})},[G,Ls,n]),Ps=Ye.useCallback(pr=>{if(Dc(Ur=>Ur+1),gp.current.clear(),pr?.length)for(const Ur of pr)iTt(Ur);else iTt();Tf(Ur=>Ur+1),ea(G,Pe),pe==="content"&&Pu()},[G,Pe,Pu,ea,pe]);Ye.useEffect(()=>{const pr=Ur=>Ps(Ur.detail?.paths);return window.addEventListener("editor:assets-changed",pr),()=>window.removeEventListener("editor:assets-changed",pr)},[Ps]),Ye.useEffect(()=>{const pr=Ur=>{const Ei=Ur.detail?.path;if(!Ei)return;const Li=ig(Ei),uc=FB(Li);uc&&sN(Ei,uc)};return window.addEventListener("editor:open-project-asset",pr),()=>window.removeEventListener("editor:open-project-asset",pr)},[n]);const Iu=Ye.useMemo(()=>mt.filter(pr=>dl.has(pr.key)),[mt,dl]),zi=Ye.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"&&pr.root==="public"?[pr.path]:[]),[Iu]),Jn=Ye.useMemo(()=>Iu.flatMap(pr=>pr.source==="asset"&&pr.entry.type==="file"?[Nge(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 Apn(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&&spn("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. ${ROe}`);return}Sl({title:`Rename ${pr.name}`,initial:pr.name,confirmLabel:"Rename",run:async Ur=>{if(!Ur||Ur===pr.name)return;const Ei=pr.path,Li=WO(pr.path),uc=Li?`${Li}/${Ur}`:Ur;await Cs({type:"move",source:Ei,destination:uc})}})}},[Sl,Cs]),Et=Ye.useCallback(async pr=>{if(pr.source!=="asset"||pr.entry.type!=="file")return;if(pr.root!=="public"){i0(`${pr.name} is reference material. ${ROe}`);return}const Ur=pr.name.lastIndexOf("."),Ei=Ur>0?`${pr.name.slice(0,Ur)} copy${pr.name.slice(Ur)}`:`${pr.name} copy`,Li=pr.path,uc=WO(pr.path),kc=uc?`${uc}/${Ei}`:Ei;await Cs({type:"duplicate",source:Li,destination:kc})},[Cs]),Nr=Ye.useCallback(pr=>{Bc(Ur=>{const Ei=new Set(Ur);return Ei.has(pr)?Ei.delete(pr):Ei.add(pr),Ei})},[]);Ye.useEffect(()=>{const pr=Ur=>{const Ei=Ur.detail?.id,Li=Iu[0];Ei===O_.refresh.id?Ps():Ei===O_.import.id?Du.current?.click():Ei===O_.createFolder.id?Fl():Ei===O_.move.id?Nu():Ei===O_.delete.id?lc():Ei===O_.rename.id&&Li?Ie(Li):Ei===O_.duplicate.id&&Li?Et(Li):Ei===O_.copyPath.id&&Jn[0]?navigator.clipboard.writeText(Jn[0]):Ei===O_.reveal.id&&Jn[0]&&TMe(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(!_je(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(y_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(g_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(h_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(VTr,{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(ohe,{children:q.jsxs(fN,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:Ao.x,top:Ao.y},onDismiss:()=>ia(null),children:[q.jsxs(Jc,{type:"button",role:"menuitem",onClick:()=>{ic(In),ia(null)},children:["Open ",q.jsx("kbd",{children:"Enter"})]}),In.available.category==="scene"&&q.jsxs(q.Fragment,{children:[q.jsx(Jc,{type:"button",role:"menuitem",onClick:()=>{const pr=In.available.descriptor.id;ia(null),cTt(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),cTt(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(ohe,{children:q.jsxs(fN,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:Ao.x,top:Ao.y},onDismiss:()=>ia(null),children:[q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.open.id,onClick:()=>{ic(Ao.item),ia(null)},children:["Open ",q.jsx("kbd",{children:"Enter"})]}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.rename.id,onClick:()=>{Ie(Ao.item),ia(null)},children:["Rename ",q.jsx("kbd",{children:"F2"})]}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.duplicate.id,onClick:()=>{Et(Ao.item),ia(null)},children:["Duplicate ",q.jsx("kbd",{children:"⌘D"})]}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.move.id,disabled:zi.length===0,title:zi.length?"Move selected assets":"Select a file to move",onClick:()=>{Nu(),ia(null)},children:"Move selected…"}),q.jsx(Jc,{type:"button",role:"menuitem","data-command-id":O_.copyPath.id,disabled:!Jn[0],onClick:()=>{Jn[0]&&navigator.clipboard.writeText(Jn[0]),ia(null)},children:"Copy path"}),Mme("asset").map(pr=>{const Ur=Ao.item.source==="asset"&&Ao.item.entry.type==="file",Ei=Ao.item.source==="asset"?{assetPath:Nge(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]&&TMe(Jn[0]),ia(null)},children:"Reveal in Finder"}),q.jsxs(Jc,{type:"button",role:"menuitem","data-command-id":O_.delete.id,disabled:zi.length===0,onClick:()=>{lc(),ia(null)},children:["Delete ",q.jsx("kbd",{children:"⌫"})]})]})})]})}const S_n={agent:()=>q.jsx(kme,{slot:"panel:agent"}),"project-work":()=>q.jsx(kme,{slot:"panel:project-work"}),hierarchy:Ejt,assets:({dependencies:t})=>q.jsx(b_n,{services:t?.assets}),"asset-library":()=>q.jsx(kme,{slot:"panel:asset-library"}),inspector:YVe};class x_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 w_n=EVe.map(t=>{const n=S_n[t.kind],s=c=>q.jsx(x_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function T_n(t){return w_n.find(n=>n.kind===t)}function C_n({kind:t,dependencies:n}){const{Content:s}=T_n(t);return q.jsx(s,{dependencies:n})}const E_n=250;function k_n(){const t=N4t(),n=A_n();return()=>{n(),t()}}function A_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of Qs.getEntries()){if(S.add(k.id),k.level!=="error"&&k.level!=="warn")continue;const A=t.get(k.id)??0;k.count<=A||(t.set(k.id,k.count),g.push({severity:k.level,message:k.message,source:k.source??null,occurrences:k.count-A}))}for(const k of[...t.keys()])S.has(k)||t.delete(k);return g}function d(){if(n=null,s)return;const g=c();g.length!==0&&bN("console-entries",{entries:g,_clientId:xC})}const m=Qs.subscribe(()=>{if(s)return;const g=Qs.getEntries(),S=g[g.length-1];if(S&&S.level==="error"&&!t.has(S.id)){n!==null&&clearTimeout(n),n=null,queueMicrotask(d);return}n===null&&(n=setTimeout(d,E_n))});return bN("console-entries",{entries:[],_clientId:xC}),d(),()=>{s=!0,n!==null&&clearTimeout(n),m()}}const Y4={INPUT:"input",PRE_PHYSICS:"prePhysics",PHYSICS:"physics",POST_PHYSICS:"postPhysics",GAME_LOGIC:"gameLogic",ANIMATION:"animation",PRE_RENDER:"preRender",RENDER:"render"},yZ=[Y4.INPUT,Y4.PRE_PHYSICS,Y4.PHYSICS,Y4.POST_PHYSICS,Y4.GAME_LOGIC,Y4.ANIMATION,Y4.PRE_RENDER,Y4.RENDER],uwn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),oye=1e-9,jjt=1e5;function D_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>oye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+oye){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>jjt){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 P_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>oye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+oye){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>jjt){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 fTt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class I_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=fTt(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=fTt(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"?D_n(c,s,this._range):P_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 v_e={start:0,end:0,fps:30},N_n=150;class fwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new I_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:v_e.start,end:v_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??v_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()},N_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()??v_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 Ame=new Map,Jje=new Set;function dTt(){for(const t of[...Jje])t()}function dwn(t,n){return Ame.set(t,n),dTt(),()=>{Ame.get(t)===n&&(Ame.delete(t),dTt())}}function O_n(t){return t===null?null:Ame.get(t)??null}function R_n(t){return Jje.add(t),()=>{Jje.delete(t)}}let Dme=null;function pwn(t){return Dme=t,()=>{Dme===t&&(Dme=null)}}function Eve(){return Dme}const Ljt="__volterWorkspacePersistenceSuppressed";function Bjt(){return globalThis}function $jt(t){Bjt()[Ljt]=t}function F_n(){return Bjt()[Ljt]===!0}function qjt(){return(See()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const zjt={phase:"idle",flightDone:!1,gameReady:!1};function M_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 j_n(t,n){if(n==="stop")return zjt;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 M_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 L_n=450,B_n=220,Vjt=250;function $_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${L_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${B_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Vjt}ms`)}let SD=null;function q_n(t){return SD=t,typeof document<"u"&&$_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Ujt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function z_n(){return Qk?.state.phase??"idle"}const Pme=new Set;function Jjt(){if(Pme.size===0)return;const t=[...Pme];Pme.clear();for(const n of t)n()}function V_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Pme.add(t)}function U_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=j_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),U_n(n,Vjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&Eve()?.settle(),Jjt()))}function J_n(){W_n({immersive:qjt()})}function W_n(t){if(Qk&&cUe(),!t.immersive)return;const n=Ujt();$jt(!0);const s={state:zjt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=Eve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function H_n(t,n){(!t||!n)&&cUe()}function G_n(t){const n=Qk;n&&(n.flying&&t&&Eve()?.track(t),gB("game-ready"))}function cUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Jjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&Eve()?.end(),SD?.showChrome(!Ujt()),$jt(!1)}}const Wje=new Set;let Wjt=null;function Hjt(){return wf()?.rootPath??null}function K_n(t){Wje.add(t);const n=Hjt();return n!==null&&Wjt===n&&t(),()=>{Wje.delete(t)}}async function _wn(){Wjt=Hjt();for(const t of[...Wje])await t()}function X_n(){const t=Pp();if(t===null)return null;const n=cQ(t);if(typeof n!="object"||n===null)return null;const s=n.stageMode;if(typeof s!="function")return null;const c=s.call(n);return typeof c=="string"?c:null}let Hje=null;function Y_n(t){Hje=t}function pTt(){if(!Hje)throw new Error("The workbench Output service is not connected.");return Hje}function Z_n(){sDr(Pp),s4r({output:{write:(...t)=>pTt().write(...t),show:t=>pTt().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:r9t,mounted:yVe,playing:sve,runWindow:fVe,restartRequired:QFt,restart:e9t,subscribe:bVe,version:i9t,notifyChanged:ZFt,snapshotFrame:pVe,frameCanvas:dVe,authoringRefusal:gVe,dispatch:_Ve,scenes:mVe,surface:ove,coverage:hVe},viewport:{transition:{begin:J_n,ready:G_n,end:cUe,onSettled:V_n,phase:z_n}},hierarchy:{subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:kBe,reportFacet:Hrn,onSample:Rnn,onCommandDispatched:VYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>jze(n=>{n!==null&&t()}),onBeforeClose:dnn,reportWorkerCallMeter:ran},project:{documentTable:qen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:K_n},notify:t=>s$(t),systems:{inspected:Dye,subscribe:Jwr,inspectedNetworking:Kwr,subscribeNetworking:Xwr,inspectedAudio:()=>Ywr()??null,subscribeAudio:Zwr,audioVersion:Qwr},availability:{subscribe:XVe,version:jun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Xye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:_tn,acquire:ytn,release:rVe,open:iq,container:mtn,setContainer:htn,releaseContainer:gtn}},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:cQ,waitForContext:h4t,contextChanged:XCr,captureActive:t=>{const n=Ih();return n?v9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>O_n(t),subscribe:R_n},projectLocalState:{ready:lte,read:Tve,write:Cve,projectRootPath:()=>wf()?.rootPath??null},history:{record:r6t,setDelegate:iDr,onElement:cDr,invalidate:lDr,onInvalidated:uDr,changed:oDr,elements:aDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?BYr(s)??Oze(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=t6t(t),s=o_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:N4r,read:t=>Ag.read(t),readBytes:t=>Ag.readBytes(t),write:(t,n)=>Ag.write(t,n),exists:t=>Ag.exists(t),list:t=>Ag.list(t),watch:t=>Ag.watch(t)},settings:{setProvider:IEr,get:jEr,set:BEr,inspect:H4t,subscribe:t=>{const n=V4t(t),s=bee(t);return()=>{n(),s()}}},keyboard:{actions:()=>Jan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>K4t().map(({id:t,title:n})=>({id:t,title:n,chords:tDt(t)})),activeKeymap:dR,invoke:t=>jVe(t),subscribe:t=>{const n=Han(t),s=Gye(t),c=o_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Wan()+K1(),stage:()=>{const t=Ih();return t?{surface:Jfn(t).surface,mode:X_n()}:{surface:null,mode:null}},bindActions:ecn,chordsFor:jBe,shortcutFor:t=>Vv(t)??null}})}let Q_n=0,cee=null;const Gje=new Set;function _Tt(t){const n={generation:++Q_n,promise:t,active:!0};cee=n;for(const s of Gje)s(n);return Gje.clear(),n}function emn(){const t=cee;return t?.active?Promise.resolve(t):new Promise(n=>Gje.add(n))}async function lUe(){for(;;){const t=await emn();if(await t.promise,cee===t&&t.active)return}}const Gjt=16,tmn=300,rmn=1e4,Kjt="workspace";function nmn(){const t=Tve(Kjt);return!t||t.version!==Gjt?null:t}function imn(t){Cve(Kjt,t)}function omn(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=kAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function smn(){const t={};let n=!1;for(const s of dDt()){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 amn(){const t=[];for(const s of l0()){const c=omn(s);c&&t.push(c)}const n=smn();return{version:Gjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function cmn(t,n,s){for(const c of fDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!HQ(),store:t}))return!0}catch{}return!1}function mTt(t){if(!t)return!1;const n=!HQ();return SN(t,n)?!0:utn.has(t)?(EFt(t),n&&bTr(t),!0):n&&X0(t)}function lmn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of dDt())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 umn(t){const n=new Set;for(const s of t)for(const c of fDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function fmn(t,n){const s=n?.documents;if(lmn(t,s),!s||s.open.length===0){mTt(s?.activeId??null);return}await umn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&AAr(c.id,d),await cmn(t,c,s.activeId)}mTt(s.activeId)}function Xjt(t){if(!lte()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=_Tt(Ce);return Promise.all([cte(),Zze()]).then(()=>{if(se){ue();return}pe=Xjt(t),De.active=!1,lUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=nmn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Pkr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!(F_n()||t.playState!==void 0&&t.playState!=="stopped")&&imn(amn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,tmn)},S=()=>m();let k=null;const A=typeof window<"u"&&oCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():mN().catch(()=>{}),D=F.then(()=>A?void 0:fmn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},rmn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(NAr(g)),window.addEventListener("pagehide",S))}),G=_Tt($);return()=>{s=!0,G.active=!1,cee===G&&(cee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function dmn(t){Ye.useEffect(()=>{const n=oCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return lUe().then(()=>{if(d())return zge(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 hTt="volter:stale-chunk-reload";function pmn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(hTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(hTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function _mn(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 mwn(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 hwn extends Error{name="StoryMediumMismatch"}function gwn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Ime=new Map;function ywn(t,n){return Ime.set(t,n),()=>{Ime.get(t)===n&&Ime.delete(t)}}function mmn(t){return Ime.get(t)??null}function hmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${gmn(n[c])}`);return`${t}|${s.join("&")}`}function gmn(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 sye=new Map,b_e=new Map,gTt=new WeakMap;let yTt=Promise.resolve(),vTt=null,ymn=1;function vmn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function bmn(){await Promise.race([Mye(),new Promise(t=>setTimeout(t,5e3))]),await Promise.race([new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),new Promise(t=>setTimeout(t,250))]),await new Promise(t=>setTimeout(t,750)),await new Promise(t=>{const n=globalThis.requestIdleCallback;if(typeof n=="function"){n(()=>t(),{timeout:2e3});return}setTimeout(t,0)})}function Smn(){return vTt??=bmn(),vTt}function xmn(t){const n=gTt.get(t);if(n!==void 0)return n;const s=ymn++;return gTt.set(t,s),s}function wmn(t,n,s,c){const d=sye.get(t);if(d)return Promise.resolve(d);const m=b_e.get(t);if(m)return m;const g=yTt.then(async()=>{await Smn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=mmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return yTt=g.then(()=>{},()=>{}),b_e.set(t,g),g.then(S=>{sye.set(t,S),b_e.delete(t)},()=>b_e.delete(t)),g}function Tmn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${hmn(n.id,n.args)}:${xmn(m)}:${s}:${c}x${d}`,[S,k]=Ye.useState(()=>sye.get(g)),[A,F]=Ye.useState(!1);return Ye.useEffect(()=>{let D=!1;if(F(!1),k(sye.get(g)),!!vmn())return wmn(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 kve="story:three",Ave="story:isolated",Cmn="story:docs";function Emn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function kmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Tmn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Amn="story",Dmn={id:Amn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Emn(c,t.surface))continue;const d=wRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:H0e,Thumbnail:kmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?kve:Ave,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function bTt(t){return yYr(t.name,t.sourcePath)}const Pmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:bTt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=bTt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(kve,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(Ave,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 Imn(){let t=0,n=!1;const s=S=>{const k=++t;fYr(),Mye().then(()=>{if(!(n||k!==t))return xYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=wFt(),m=IC(()=>s()),g=pen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const Yjt="story",FOe=new Set,MOe=new Set;function Nmn(t){const n=gRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function jOe(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??Nmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function Omn(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(Cmn,t,c);const d=Dze({modulePath:s.modulePath,regions:Aze()});return d.medium===void 0?(uYr(s.modulePath,d.reason),null):CD(d.medium==="three"?kve:Ave,t,c)}function STt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function Rmn(){return kN({id:Yjt,owner:"./story-opener",open:(t,n)=>{const s=jOe(n);return s?Omn(t,n,s):(n.modulePath?FOe.add(n.modulePath):n.storyId!==void 0&&(MOe.add(n.storyId),mYr()&&STt(n.storyId)),null)},settle:async()=>{await FDr();const t=[...FOe],n=[...MOe];if(FOe.clear(),MOe.clear(),await Promise.all(t.map(s=>vYr(wf(),s))),n.length!==0){await hYr();for(const s of n)jOe({storyId:s})||STt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=jOe(n);if(!(!s||Dze({modulePath:s.modulePath,regions:Aze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const Fmn={actions:()=>{if(!ngt(Ave)&&!ngt(kve))return[];const t=[];for(const n of rq()){if(!n.ok)continue;const s=n.modulePath.split("/").pop()??n.modulePath;for(const c of n.stories)t.push({id:`story:${c.id}`,label:`Open Story: ${c.name} — ${s}`,execute:()=>void n0().workspace.open({kind:Yjt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>H0e(t)};function Mmn(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 jmn(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 Lmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Bmn(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 jZr("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=Mmn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=jmn(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-D0GNxNYo.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([267,268,1,2,3,4,20,21,233,212,269,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 $mn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Bmn}};function qmn(){const t=Ein(Dmn),n=_mn(Pmn),s=Rmn(),c=pCt(Fmn),d=mCt(Lmn,$mn),m=Imn(),g=H0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const zmn=[["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"]],Vmn=[["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 xTt(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 Umn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of zmn){const g=xTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Vmn){const m=xTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let xm=null,Zjt=0;const Kje=new Set;function Jmn(t){return Kje.add(t),()=>Kje.delete(t)}function wTt(){return Zjt}const LOe=new Map;function Qjt(t,n){LOe.get(t)?.disconnect(),LOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;ZAr(t,d!==null&&d.width>0&&d.height>0)};if(s(),n===null||typeof ResizeObserver>"u")return;const c=new ResizeObserver(s);c.observe(n),LOe.set(t,c)}function Wmn(t,n){if(xm){if(n===null){if(xm[t]?.isConnected)return}else if(xm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...xm};delete s[t],xm=s}else n!==null&&(xm={...xm,[t]:n});n!==null&&eLt(t,n),Qjt(t,n),Zjt+=1;for(const s of Kje)s()}}function eLt(t,n){n.dataset.volterPart=t}const HO=new Map;let tLt=0;const Xje=new Set,rLt=new Set;let TTt=!1;function CTt(){for(const t of l0())rLt.add(t.descriptor.id)}function Hmn(t){TTt||(TTt=!0,o2(CTt)),CTt(),!(!t||rLt.has(t))&&(Ctn(t)||EFt(t,!1))}function Gmn(t,n){if(n){if(!HO.delete(t.id))return}else{HO.has(t.id)||Hmn(t.documentId);const s=HO.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;HO.set(t.id,{...t})}tLt+=1;for(const s of[...Xje])s()}function Kmn(t){return Xje.add(t),()=>{Xje.delete(t)}}function ETt(){return tLt}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 Xmn({children:t}){return q.jsx(q.Fragment,{children:t})}function Ymn(){return xm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(rpn,{})}),xm.header):null}function Zmn(){return null}function Qmn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return yjt(n),()=>dfn(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(Ejt,{})})]})}const Nme=new Map,Yje=new Set;let Zje=0;function ehn(t,n){if(n){if(Nme.get(t)===n)return;n.dataset.volterUtility=t,Nme.set(t,n)}else if(!Nme.delete(t))return;Zje++;for(const s of Yje)s()}const Ome=new Map,Qje=new Set;let eLe=0;function thn(t,n){if(n){if(Ome.get(t)===n)return;Ome.set(t,n)}else if(!Ome.delete(t))return;eLe++;for(const s of Qje)s()}function rhn(){return Ye.useSyncExternalStore(k3t,mht,mht),Ye.useSyncExternalStore(t=>(Qje.add(t),()=>Qje.delete(t)),()=>eLe,()=>eLe),q.jsx(q.Fragment,{children:[...mRe("left"),...mRe("right")].map(t=>{const n=Ome.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 nhn(){return Ye.useSyncExternalStore(Kye,vhe,vhe),Ye.useSyncExternalStore(t=>(Yje.add(t),()=>Yje.delete(t)),()=>Zje,()=>Zje),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Nme.get(t.id);return n?q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(GO,{children:q.jsx(opn,{utility:t})}),n)},t.id):null})})}function ihn({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(zMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Wun,{})]}),g)}let nLt=!0;function ohn({arrangement:t,immersivePlay:n}){const s=Yv();dmn(s);const c=JVe(s);Ye.useLayoutEffect(()=>{nLt=c.column},[c.column]);const d=HO.get(TRe()??"")?.element??xm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Awt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Awt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Kmn,ETt,ETt),Ye.useSyncExternalStore(Jmn,wTt,wTt),Ye.useLayoutEffect(()=>{const F=ikr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),Okr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(bee,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{H_n(m,qjt())},[m,n,g]),Ye.useEffect(()=>Xjt(s),[s]),!xm)return null;const S=xm.center,k=l0(),A=TC()??k[0]??null;return globalThis.__volterBridge={documents:k.map(F=>F.descriptor.id),active:A?.descriptor.id??null,workspace:t?.id??null,areas:k.flatMap(F=>F.descriptor.area?[{id:F.descriptor.id,area:F.descriptor.area}]:[]),slots:[...HO.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...HO.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(ihn,{descriptor:D,viewId:F.id,slot:F.element??void 0,parking:S,visible:!!F.element,inspector:c.card&&D.id===A?.descriptor.id},F.id):null}),k.length===0&&r2.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),xm.center),xm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(Qmn,{})}),xm.outliner),xm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(YVe,{}):q.jsx(Bun,{surface:c.surface})}),xm.properties),xm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(C_n,{kind:"assets"})}),xm.content),q.jsx(nhn,{}),q.jsx(rhn,{})]})}async function shn(t,n={}){xm=t,n.workspaceStorage&&e3r(n.workspaceStorage),c3r();for(const[De,Pe]of Object.entries(t))Pe&&eLt(De,Pe),Qjt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",IPt({Frame:Xmn,Header:Ymn,Footer:Zmn,Workspace:ohn,Document:Mcn}),k_n(),Jnn();const s=Wln();s&&Uln(s,Date.now())&&Qs.warn(zln(s,Date.now()),"editor"),pmn(),NDr(),Z_n(),qmn(),await Promise.all([W4t(),oAr(),ePt()]),bAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",lee()?.nativeMenus===!0);const c=document.createElement("div");c.id="editor-root",c.className="volter-part",c.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",t.chromeRoot.appendChild(c),tLe.createRoot(c).render(q.jsx(lun,{}));const d={activeKeymap:()=>n0().keyboard.activeKeymap(),invoke:De=>n0().keyboard.invoke(De),subscribe:De=>n0().keyboard.subscribe(De),facts:()=>{const De=n0(),Pe=De.keyboard.stage();return{surface:Pe.surface,mode:Pe.mode,documentKind:De.documents.active()?.kind??null,play:De.session.playState()}},report:(De,Pe)=>{const be=n0();De==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:lUe,activeSource:()=>{const De=n0().documents.active();if(!De)return null;const Pe=De.kind==="model"&&De.id.startsWith("model:")?De.id.slice(6):"";return{kind:De.kind,path:Pe}},list:()=>l0().map(De=>{const Pe=De.descriptor.area?Ckr().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=Ekr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&HQ()||(Pe?yTr(De,Pe):X0(De))},close:De=>{if(EN(De))return;const Pe=l0().find(be=>be.descriptor.id===De);Pe&&d.report("warn",`“${Pe.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(De,Pe)=>Gmn(De,Pe)},S={elements:()=>n0().history.elements(),onElement:De=>n0().history.onElement(De),onInvalidated:De=>n0().history.onInvalidated(De),changed:()=>n0().history.changed(),focusedResource:()=>n0().history.focusedResource(),focusedDocument:()=>{const De=n0().documents.active();return De?{id:De.id,label:De.title}:null},setDelegate:De=>n0().history.setDelegate(De),report:d.report},k={setProvider:De=>n0().files.setProvider(De),report:d.report},A={setProvider:De=>n0().settings.setProvider(De),adapterValues:()=>[...OEr()],workbenchValues:()=>{const De=xm?.chromeRoot;if(!De)return[];const Pe=getComputedStyle(De).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Umn(De)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>DN(),notify:De=>{n0().notify(De)},subscribe:De=>{const Pe=Wye(De),be=EDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Gnn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>Xnn(De),subscribe:De=>Knn(De),setPaletteOpener:De=>Hnn(De),setCommandExecutor:De=>Ynn(De),report:d.report},D={setDelegate:De=>ZCr(De?{show:Pe=>De({...Pe,source:a3r()})}:null)},J={list:()=>RPt().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)=>MPt(De,Pe,be),subscribe:De=>FPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=vhe();const be=Kye(De),X=XVe(()=>{const we=vhe();we!==Pe&&(Pe=we,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>ehn(De,Pe)};let G=!0,se=null,pe=null;yrn(()=>G);const ue={setActiveStaticPanel:De=>Qht(EVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(nLt)return!1;const De=xm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),Qht("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!xm)&&(se=q_n({root:xm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=akr({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:Y_n},settings:A,status:{list:()=>["left","right"].flatMap(De=>mRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>k3t(De),offerBody:(De,Pe)=>thn(De,Pe)},game:ue,offerPart:Wmn}}function ahn(t){const n=Object.keys(t.packages);return d0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),MDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:shn}}const{mountVolter:vwn}=ahn({id:"game-editor",packages:{"@volter/editor-game":c0r,"@volter/editor-react":l0r,"@volter/editor-threejs":u0r,"@volter/editor-xstate":f0r,"@volter/editor-blender":a0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,g3t as A,d0n as B,y3t as C,v3t as D,F_e as E,I0n as F,wAr as G,aRe as H,Ten as I,fFt as J,DB as K,u0 as L,OC as M,h3t as N,eVe as O,_3t as P,dSn as Q,b3t as R,Mwr as S,j2n as T,Yv as U,Ih as V,rBe as W,XXr as X,rvn as Y,Qs as Z,lo as _,XY as a,m2n as a$,WFt as a0,Ktn as a1,XFt as a2,L_ as a3,CN as a4,TSn as a5,Ms as a6,dc as a7,Kk as a8,nvn as a9,_Rt as aA,Vtn as aB,wf as aC,Y0 as aD,mp as aE,q0n as aF,hy as aG,oq as aH,_Mt as aI,z3r as aJ,fSn as aK,_p as aL,dm as aM,Zm as aN,_wn as aO,nve as aP,l0 as aQ,EFt as aR,TD as aS,t0n as aT,$Cr as aU,Y0e as aV,ORt as aW,Mze as aX,BSn as aY,Zf as aZ,R9t as a_,vC as aa,Hgn as ab,ean as ac,acn as ad,cSn as ae,Xze as af,MB as ag,Wwr as ah,n9t as ai,e2n as aj,p0n as ak,Go as al,Xgn as am,Pye as an,Zun as ao,Z0e as ap,Xwr as aq,Kxn as ar,H0e as as,rq as at,Dze as au,Aze as av,uYr as aw,van as ax,m$e as ay,qtn as az,nBe as b,C3r as b$,g2n as b0,U4r as b1,h2n as b2,gC as b3,C$e as b4,ETr as b5,eOe as b6,ig as b7,wFt as b8,hYr as b9,gBe as bA,Jc as bB,t2 as bC,sLe as bD,vhn as bE,Bvr as bF,_gt as bG,Iw as bH,EAr as bI,xAr as bJ,ZBe as bK,TAr as bL,p0r as bM,aye as bN,zOe as bO,Cyn as bP,Tyn as bQ,Hsn as bR,W0n as bS,J0n as bT,M3r as bU,X0n as bV,jhe as bW,t2n as bX,i2n as bY,ytn as bZ,T3r as b_,Xbn as ba,vRt as bb,mRt as bc,bRt as bd,eYr as be,mmn as bf,gwn as bg,bSn as bh,gRt as bi,_Yr as bj,pvn as bk,_Le as bl,YB as bm,rwn as bn,nwn as bo,$fn as bp,NAr as bq,M0n as br,QBe as bs,pgt as bt,N0n as bu,n$ as bv,mO as bw,h0r as bx,aR as by,lLe as bz,cRe as c,C2n as c$,Vwr as c0,r2n as c1,mtn as c2,r9t as c3,ed as c4,_y as c5,fu as c6,P2n as c7,O2n as c8,R2n as c9,HZr as cA,GZr as cB,BRt as cC,qRt as cD,FZr as cE,f2n as cF,qZr as cG,u2n as cH,KZr as cI,k2n as cJ,$Zr as cK,qze as cL,$Rt as cM,BZr as cN,CMe as cO,jZr as cP,v2n as cQ,i_e as cR,VZr as cS,WSt as cT,JSt as cU,JZr as cV,PZr as cW,$ze as cX,TMe as cY,zZr as cZ,A2n as c_,F2n as ca,qSt as cb,T2n as cc,N2n as cd,I2n as ce,YZr as cf,zSt as cg,x2n as ch,jD as ci,TZr as cj,HSt as ck,S2n as cl,XZr as cm,y2n as cn,E2n as co,c2n as cp,l2n as cq,RZr as cr,M2n as cs,WZr as ct,MZr as cu,p2n as cv,_2n as cw,D2n as cx,w2n as cy,Q0e as cz,m3t as d,bxr as d$,d2n as d0,ZZr as d1,b2n as d2,stn as d3,X0 as d4,axt as d5,ZSn as d6,Gye as d7,dR as d8,Pyn as d9,i$ as dA,gan as dB,man as dC,FVe as dD,exn as dE,y0r as dF,b0r as dG,ATt as dH,eyn as dI,den as dJ,pSn as dK,ltn as dL,fMt as dM,u2 as dN,GAr as dO,n2n as dP,pMt as dQ,fQ as dR,Ehn as dS,mEr as dT,UTt as dU,SZ as dV,FCr as dW,u4t as dX,yZ as dY,lAt as dZ,AR as d_,Vv as da,Iyn as db,I0r as dc,O0r as dd,B3t as de,bZ as df,gyn as dg,Nhn as dh,XTt as di,ZTt as dj,xhn as dk,Z0r as dl,B0n as dm,$0n as dn,PI as dp,R_ as dq,twn as dr,dBe as ds,Cm as dt,Afn as du,i0 as dv,q2n as dw,RDr as dx,Yun as dy,ORe as dz,p3t as e,WCr as e$,bSr as e0,t$ as e1,Wme as e2,aCt as e3,G0n as e4,W0 as e5,evn as e6,U2n as e7,CSn as e8,cvn as e9,uSn as eA,_yn as eB,_Sn as eC,BYr as eD,Oze as eE,DRt as eF,d4t as eG,ctn as eH,mYr as eI,D4t as eJ,O5e as eK,Fye as eL,Bon as eM,oLe as eN,Ahn as eO,m0r as eP,E4t as eQ,Von as eR,qht as eS,I5e as eT,Iht as eU,c0 as eV,o0n as eW,yan as eX,MRe as eY,xBe as eZ,c0n as e_,$he as ea,P4r as eb,BQr as ec,lvn as ed,_$e as ee,fvn as ef,uvn as eg,Kbn as eh,rxn as ei,txn as ej,tvn as ek,bBe as el,she as em,wyn as en,G0 as eo,Fyn as ep,YY as eq,Byn as er,C_e as es,Gyn as et,sQ as eu,Kgn as ev,IC as ew,Rhn as ex,VTr as ey,LSn as ez,lRe as f,hSn as f$,khn as f0,b0n as f1,v0n as f2,TC as f3,aFe as f4,wee as f5,kN as f6,Ave as f7,Cmn as f8,xYr as f9,O0n as fA,A0n as fB,iwn as fC,uPt as fD,jhn as fE,P0r as fF,Mhn as fG,Rme as fH,qOe as fI,tCt as fJ,D0n as fK,Ryn as fL,yxn as fM,Nan as fN,uxn as fO,TR as fP,Pxn as fQ,fxn as fR,Kze as fS,Gbn as fT,wRt as fU,STr as fV,aTr as fW,QSn as fX,mSn as fY,gSn as fZ,a0 as f_,ND as fa,Gwr as fb,zTr as fc,T_e as fd,atn as fe,g$e as ff,l3r as fg,_fn as fh,Zxn as fi,Yxn as fj,Xxn as fk,kve as fl,EN as fm,k0n as fn,j0n as fo,ywn as fp,hwn as fq,ySn as fr,vSn as fs,b4t as ft,_0n as fu,Thn as fv,Ihn as fw,fN as fx,nLe as fy,fLe as fz,S3t as g,UTr as g$,HQ as g0,YSn as g1,zSn as g2,K9t as g3,ARt as g4,zQ as g5,Lfn as g6,Gun as g7,CR as g8,QXr as g9,mwn as gA,Ggn as gB,OFe as gC,g3r as gD,dvn as gE,x0r as gF,Qbn as gG,wYr as gH,Dht as gI,GTt as gJ,o2 as gK,K1 as gL,FSn as gM,MSn as gN,zwr as gO,Jgn as gP,RSn as gQ,Ugn as gR,OSn as gS,ZFt as gT,Z2n as gU,xR as gV,sen as gW,Hrn as gX,Ohn as gY,JTt as gZ,MTt as g_,Ybn as ga,Utn as gb,FDr as gc,Pg as gd,jSn as ge,g0r as gf,fee as gg,z2n as gh,sSn as gi,V2n as gj,pyn as gk,oSn as gl,f4r as gm,Q2n as gn,z0n as go,iSn as gp,V0n as gq,avn as gr,Dw as gs,of as gt,hR as gu,E3r as gv,U0n as gw,ISn as gx,lPt as gy,hnn as gz,KAt as h,n0n as h$,rA as h0,kC as h1,tA as h2,Phn as h3,Q0n as h4,uBe as h5,eve as h6,a2n as h7,pCt as h8,Van as h9,kht as hA,zye as hB,OTr as hC,NTr as hD,YTr as hE,Eyn as hF,Dyn as hG,Ayn as hH,Nyn as hI,Oyn as hJ,i0n as hK,xyn as hL,e0n as hM,Ym as hN,l4t as hO,byn as hP,Syn as hQ,hBe as hR,Uye as hS,kyn as hT,SBe as hU,hyn as hV,Zyn as hW,Qyn as hX,ohe as hY,u0n as hZ,Aht as h_,Fxn as ha,yYr as hb,K0n as hc,Wgn as hd,nyn as he,ayn as hf,fyn as hg,R$ as hh,CD as hi,iyn as hj,tyn as hk,ryn as hl,cyn as hm,a0n as hn,s0n as ho,qTr as hp,HCr as hq,Eht as hr,hC as hs,ERe as ht,q3t as hu,yyn as hv,vyn as hw,ARe as hx,kRe as hy,$Tr as hz,Ip as i,iLe as i$,UCr as i0,Myn as i1,f4t as i2,lhe as i3,RCr as i4,OG as i5,r4t as i6,U3t as i7,jTr as i8,GTr as i9,tCr as iA,QTr as iB,NG as iC,Xyn as iD,f0n as iE,ICr as iF,jCr as iG,MTr as iH,Uyn as iI,jyn as iJ,uhe as iK,Kyn as iL,P5e as iM,FTr as iN,wBe as iO,$yn as iP,q$ as iQ,Lyn as iR,zyn as iS,HSn as iT,XSn as iU,Cee as iV,AD as iW,Pcn as iX,Hxn as iY,C5e as iZ,Mxn as i_,Vyn as ia,qyn as ib,Jyn as ic,Wyn as id,r0n as ie,RTr as ig,OCr as ih,n4t as ii,l0n as ij,JTr as ik,Yyn as il,Hyn as im,XTr as io,E_e as ip,PRe as iq,eCr as ir,ZTr as is,JCr as it,KTr as iu,yee as iv,Lye as iw,rCr as ix,Epe as iy,IRe as iz,WAt as j,Axn as j$,nee as j0,Ufn as j1,swn as j2,P0n as j3,kAr as j4,TBe as j5,o$ as j6,FMt as j7,Lxn as j8,s2 as j9,Jin as jA,N9t as jB,$Tt as jC,FB as jD,sN as jE,G2n as jF,Gxn as jG,V_n as jH,oGr as jI,aGr as jJ,lGr as jK,lSn as jL,$wr as jM,hVe as jN,vnn as jO,ste as jP,san as jQ,Zxt as jR,wI as jS,LFe as jT,Dxn as jU,mhn as jV,bhn as jW,yhn as jX,kxn as jY,ghn as jZ,S0r as j_,jxn as ja,sPt as jb,w3r as jc,iBe as jd,Hwr as je,pht as jf,Lwr as jg,x3t as jh,Asn as ji,nSn as jj,HI as jk,WMe as jl,Ygn as jm,URt as jn,tve as jo,Aye as jp,cN as jq,eBe as jr,Rye as js,lN as jt,$Ar as ju,ABe as jv,_Be as jw,Oye as jx,tBe as jy,Qye as jz,Owr as k,gR as k$,Oan as k0,hxn as k1,mxn as k2,$on as k3,Ixn as k4,_xn as k5,$an as k6,Rxn as k7,oxn as k8,Nxn as k9,n6t as kA,tSn as kB,USn as kC,wD as kD,J0 as kE,YSt as kF,qAt as kG,Y4 as kH,Shn as kI,aLe as kJ,EEr as kK,Tve as kL,Cve as kM,NSn as kN,LMt as kO,qMt as kP,Gxt as kQ,MFe as kR,q_e as kS,jFe as kT,Kun as kU,ZVe as kV,Bxn as kW,Wfn as kX,E0n as kY,tvr as kZ,aSn as k_,dxn as ka,lxn as kb,sxn as kc,xxn as kd,cxn as ke,axn as kf,pxn as kg,Sxn as kh,gxn as ki,wxn as kj,d$e as kk,vxn as kl,nxn as km,Oxn as kn,ixn as ko,Txn as kp,yVe as kq,bxn as kr,Ran as ks,Cxn as kt,Exn as ku,JSn as kv,VSn as kw,WSn as kx,eSn as ky,IDr as kz,Yme as l,lwn as l$,EDr as l0,wve as l1,U$ as l2,eA as l3,mD as l4,Zwr as l5,Qwr as l6,Ywr as l7,Nye as l8,Chn as l9,GSn as lA,awn as lB,cwn as lC,xjt as lD,KSn as lE,oyn as lF,$sn as lG,lyn as lH,ewn as lI,dwn as lJ,L0n as lK,OAr as lL,F0n as lM,dyn as lN,syn as lO,uyn as lP,fwn as lQ,grn as lR,H0n as lS,xEr as lT,Bhn as lU,Bfn as lV,o2n as lW,s2n as lX,SSn as lY,o9t as lZ,pjt as l_,V0r as la,i3r as lb,o3r as lc,whn as ld,cjt as le,Zgn as lf,qwr as lg,Kwr as lh,MPt as li,Wxn as lj,Jxn as lk,zxn as ll,Uxn as lm,Vxn as ln,w0n as lo,R3r as lp,Z0n as lq,Y0n as lr,rSn as ls,R0n as lt,own as lu,hhn as lv,$xn as lw,qxn as lx,Dhn as ly,Fhn as lz,rQ as m,abr as m$,pwn as m0,Zbn as m1,$Sn as m2,Mfn as m3,Mmn as m4,jmn as m5,nq as m6,$Dr as m7,myn as m8,mCt as m9,_je as mA,OAt as mB,Lxr as mC,YI as mD,t1r as mE,bCt as mF,u1r as mG,qme as mH,nht as mI,F_ as mJ,zme as mK,Vme as mL,Jbr as mM,Xbr as mN,yB as mO,Obr as mP,Fbr as mQ,DEt as mR,qbr as mS,AEt as mT,Ibr as mU,Nbr as mV,vbr as mW,bbr as mX,m2r as mY,eh as mZ,K1r as m_,PSn as ma,W2n as mb,$2n as mc,H2n as md,NQr as me,qEr as mf,MEr as mg,ive as mh,Xtn as mi,m0n as mj,C0n as mk,h0n as ml,y0n as mm,g0n as mn,Usn as mo,T0n as mp,kSn as mq,ASn as mr,ESn as ms,DSn as mt,wEr as mu,TEr as mv,URe as mw,bN as mx,qSn as my,Qgn as mz,vB as n,Rw as n$,CEt as n0,obr as n1,tbr as n2,TEt as n3,nbr as n4,Q1r as n5,X1r as n6,lbr as n7,ebr as n8,Y1r as n9,Dbr as nA,Cbr as nB,Tbr as nC,kbr as nD,Ebr as nE,t2r as nF,Lbr as nG,wbr as nH,x2r as nI,s2r as nJ,Pbr as nK,n2r as nL,h2r as nM,ybr as nN,Hbr as nO,p2r as nP,Ubr as nQ,u2r as nR,kEt as nS,$br as nT,Ybr as nU,Zbr as nV,OEt as nW,g2r as nX,d2r as nY,S2r as nZ,y2r as n_,H1r as na,G1r as nb,ubr as nc,cbr as nd,rbr as ne,Z1r as nf,sbr as ng,vye as nh,ibr as ni,REt as nj,w2r as nk,Bbr as nl,Kbr as nm,f2r as nn,e2r as no,Mbr as np,mbr as nq,gbr as nr,mLe as ns,o2r as nt,RCt as nu,l2r as nv,a2r as nw,b2r as nx,pbr as ny,Abr as nz,Fwr as o,eSr as o$,r2r as o0,T2r as o1,i2r as o2,bye as o3,M_ as o4,_2r as o5,zbr as o6,v2r as o7,c2r as o8,NEt as o9,XEt as oA,ign as oB,ngn as oC,ogn as oD,rgn as oE,egn as oF,zEt as oG,VEt as oH,fSr as oI,K2r as oJ,MCt as oK,LCt as oL,Cgn as oM,pgn as oN,QEt as oO,FEt as oP,$Et as oQ,FCt as oR,jCt as oS,rSr as oT,vgn as oU,uSr as oV,R2r as oW,F2r as oX,QZ as oY,qk as oZ,eRe as o_,vu as oa,Sbr as ob,hbr as oc,_br as od,Vbr as oe,bLe as of,Wbr as og,Gbr as oh,xbr as oi,Qbr as oj,$hn as ok,ui as ol,Qhn as om,Zhn as on,fbr as oo,$mt as op,tgn as oq,J2r as or,lSr as os,YEt as ot,ZEt as ou,B2r as ov,L2r as ow,Agn as ox,_Sr as oy,KEt as oz,JAt as p,kgn as p$,O2r as p0,M2r as p1,$2r as p2,_gn as p3,HEt as p4,GEt as p5,D2r as p6,A2r as p7,I2r as p8,P2r as p9,Tgn as pA,N2r as pB,wgn as pC,M$ as pD,mye as pE,hye as pF,Dgn as pG,sgn as pH,Ogn as pI,ugn as pJ,Pgn as pK,hgn as pL,dSr as pM,Y2r as pN,$Ct as pO,zCt as pP,BCt as pQ,qCt as pR,gye as pS,yye as pT,ygn as pU,tkt as pV,cSr as pW,tSr as pX,E2r as pY,Sye as pZ,gSr as p_,ekt as pa,WEt as pb,Ngn as pc,nkt as pd,Sgn as pe,Z2r as pf,ZZ as pg,XI as ph,k2r as pi,ggn as pj,rkt as pk,xLe as pl,nSr as pm,$me as pn,eQ as po,tRe as pp,X2r as pq,qEt as pr,bgn as ps,agn as pt,H2r as pu,lgn as pv,Egn as pw,cgn as px,iSr as py,U2r as pz,Iwr as q,sAt as q$,pSr as q0,z2r as q1,Ign as q2,sSr as q3,aSr as q4,xgn as q5,oSr as q6,mgn as q7,j2r as q8,q2r as q9,EEt as qA,Rbr as qB,jbr as qC,hSr as qD,zmt as qE,Vmt as qF,Vhn as qG,W1r as qH,C2r as qI,Khn as qJ,Yhn as qK,Ghn as qL,Xhn as qM,b1r as qN,S1r as qO,v1r as qP,zhn as qQ,qhn as qR,dbr as qS,Mgn as qT,Rgn as qU,ELe as qV,VLe as qW,ULe as qX,JLe as qY,oAt as qZ,tAt as q_,UEt as qa,V2r as qb,fgn as qc,W2r as qd,Q2r as qe,SLe as qf,MEt as qg,jEt as qh,LEt as qi,BEt as qj,G2r as qk,JEt as ql,dgn as qm,sA as qn,$S as qo,Ume as qp,ySr as qq,Jhn as qr,Hhn as qs,mSr as qt,Uhn as qu,Whn as qv,g1r as qw,y1r as qx,YOe as qy,sD as qz,n0 as r,Zkt as r$,BLe as r0,$Le as r1,WLe as r2,jLe as r3,LLe as r4,PLe as r5,ILe as r6,EAt as r7,QLe as r8,Eye as r9,dAt as rA,AAt as rB,DLe as rC,nAt as rD,YLe as rE,Qkt as rF,vAt as rG,j$ as rH,wye as rI,XLe as rJ,ZLe as rK,xAt as rL,RAt as rM,DAt as rN,Fw as rO,Cye as rP,pAt as rQ,j_ as rR,CAt as rS,Ykt as rT,IAt as rU,hAt as rV,fAt as rW,Lu as rX,NLe as rY,xye as rZ,aD as r_,mee as ra,bAt as rb,cAt as rc,qLe as rd,kLe as re,ALe as rf,tQ as rg,Fgn as rh,gAt as ri,mAt as rj,sht as rk,FAt as rl,Jme as rm,FLe as rn,MLe as ro,Vkt as rp,qkt as rq,Hkt as rr,Jkt as rs,uAt as rt,oht as ru,zLe as rv,RLe as rw,NAt as rx,_At as ry,Xkt as rz,GAt as s,xSr as s$,Tye as s0,rAt as s1,iAt as s2,OLe as s3,aAt as s4,CLe as s5,SAt as s6,iht as s7,hxr as s8,QSr as s9,ixr as sA,$Sr as sB,rRe as sC,lxr as sD,dxr as sE,GLe as sF,GSr as sG,XSr as sH,$xr as sI,rxr as sJ,vxr as sK,HSr as sL,Sxr as sM,Txr as sN,KSr as sO,Cxr as sP,jxr as sQ,Ixr as sR,zSr as sS,kxr as sT,HLe as sU,TAt as sV,eAt as sW,Gme as sX,Dxr as sY,Hme as sZ,SSr as s_,exr as sa,fxr as sb,kAt as sc,Fxr as sd,YSr as se,ZSr as sf,Nxr as sg,VSr as sh,USr as si,yxr as sj,ESr as sk,ASr as sl,Mxr as sm,txr as sn,OSr as so,qSr as sp,CSr as sq,kSr as sr,yAt as ss,Axr as st,axr as su,cxr as sv,Lgn as sw,RSr as sx,sxr as sy,oxr as sz,nnn as t,K2n as t$,wxr as t0,Kme as t1,wAt as t2,LAt as t3,Rxr as t4,PAt as t5,MAt as t6,PSr as t7,NSr as t8,DSr as t9,Nmt as tA,Fme as tB,fvr as tC,uvr as tD,PG as tE,oCt as tF,iCt as tG,_vr as tH,pvr as tI,vwn as tJ,Lhn as tK,Bgn as tL,$gn as tM,qgn as tN,zgn as tO,Vgn as tP,kEr as tQ,S0n as tR,x0n as tS,ivn as tT,ovn as tU,svn as tV,Hbn as tW,L2n as tX,B2n as tY,jQr as tZ,J2n as t_,ISr as ta,wSr as tb,TSr as tc,Exr as td,jgn as te,nxr as tf,Bxr as tg,Pxr as th,jAt as ti,_xr as tj,Oxr as tk,KLe as tl,uxr as tm,pxr as tn,JSr as to,mxr as tp,BSr as tq,FSr as tr,MSr as ts,jSr as tt,LSr as tu,gxr as tv,WSr as tw,xxr as tx,dvr as ty,rCt as tz,Pa as u,X2n as u0,Y2n as u1,xSn as u2,wSn as u3,hrn as u4,uwn as u5,Gd as v,bo as w,Dg as x,Pp as y,Qxn 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 w_n=EVe.map(t=>{const n=S_n[t.kind],s=c=>q.jsx(x_n,{title:t.title,children:q.jsx(n,{...c})});return s.displayName=`StaticPanel(${t.kind})`,{...t,Content:s}});function T_n(t){return w_n.find(n=>n.kind===t)}function C_n({kind:t,dependencies:n}){const{Content:s}=T_n(t);return q.jsx(s,{dependencies:n})}const E_n=250;function k_n(){const t=N4t(),n=A_n();return()=>{n(),t()}}function A_n(){const t=new Map;let n=null,s=!1;function c(){const g=[],S=new Set;for(const k of Qs.getEntries()){if(S.add(k.id),k.level!=="error"&&k.level!=="warn")continue;const A=t.get(k.id)??0;k.count<=A||(t.set(k.id,k.count),g.push({severity:k.level,message:k.message,source:k.source??null,occurrences:k.count-A}))}for(const k of[...t.keys()])S.has(k)||t.delete(k);return g}function d(){if(n=null,s)return;const g=c();g.length!==0&&bN("console-entries",{entries:g,_clientId:xC})}const m=Qs.subscribe(()=>{if(s)return;const g=Qs.getEntries(),S=g[g.length-1];if(S&&S.level==="error"&&!t.has(S.id)){n!==null&&clearTimeout(n),n=null,queueMicrotask(d);return}n===null&&(n=setTimeout(d,E_n))});return bN("console-entries",{entries:[],_clientId:xC}),d(),()=>{s=!0,n!==null&&clearTimeout(n),m()}}const Y4={INPUT:"input",PRE_PHYSICS:"prePhysics",PHYSICS:"physics",POST_PHYSICS:"postPhysics",GAME_LOGIC:"gameLogic",ANIMATION:"animation",PRE_RENDER:"preRender",RENDER:"render"},yZ=[Y4.INPUT,Y4.PRE_PHYSICS,Y4.PHYSICS,Y4.POST_PHYSICS,Y4.GAME_LOGIC,Y4.ANIMATION,Y4.PRE_RENDER,Y4.RENDER],uwn=Object.freeze(Object.defineProperty({__proto__:null,PHASE_ORDER:yZ,SystemPhase:Y4},Symbol.toStringTag,{value:"Module"})),oye=1e-9,jjt=1e5;function D_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>oye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=s.end-g;if(!d||S<=F+oye){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>jjt){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 P_n(t,n,s){const c=s.end-s.start,d=s.loop&&c>oye,m=[];let g=t,S=n,k=!1,A=0;for(;;){const F=g-s.start;if(!d||S<=F+oye){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>jjt){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 fTt(t,n){return t<n.start?n.start:t>n.end?n.end:t}class I_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=fTt(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=fTt(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"?D_n(c,s,this._range):P_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 v_e={start:0,end:0,fps:30},N_n=150;class fwn{constructor(n){this.store=n,this.stopStoreWatch=n.subscribe(()=>this.notify())}clock=new I_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:v_e.start,end:v_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??v_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()},N_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()??v_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 Ame=new Map,Jje=new Set;function dTt(){for(const t of[...Jje])t()}function dwn(t,n){return Ame.set(t,n),dTt(),()=>{Ame.get(t)===n&&(Ame.delete(t),dTt())}}function O_n(t){return t===null?null:Ame.get(t)??null}function R_n(t){return Jje.add(t),()=>{Jje.delete(t)}}let Dme=null;function pwn(t){return Dme=t,()=>{Dme===t&&(Dme=null)}}function Eve(){return Dme}const Ljt="__volterWorkspacePersistenceSuppressed";function Bjt(){return globalThis}function $jt(t){Bjt()[Ljt]=t}function F_n(){return Bjt()[Ljt]===!0}function qjt(){return(See()?.immersivePlay??!1)&&!NR().play?.keepPanelsVisible}const zjt={phase:"idle",flightDone:!1,gameReady:!1};function M_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 j_n(t,n){if(n==="stop")return zjt;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 M_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 L_n=450,B_n=220,Vjt=250;function $_n(t){t.style.setProperty("--volter-play-dissolve-duration",`${L_n}ms`),t.style.setProperty("--volter-play-materialize-duration",`${B_n}ms`),t.style.setProperty("--volter-play-crossfade-duration",`${Vjt}ms`)}let SD=null;function q_n(t){return SD=t,typeof document<"u"&&$_n(document.documentElement),()=>{SD===t&&(SD=null)}}function Ujt(){return typeof window<"u"&&(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches??!1)}let Qk=null;function z_n(){return Qk?.state.phase??"idle"}const Pme=new Set;function Jjt(){if(Pme.size===0)return;const t=[...Pme];Pme.clear();for(const n of t)n()}function V_n(t){if(!Qk||Qk.state.phase==="playing"){t();return}Pme.add(t)}function U_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=j_n(s,t);c!==s&&(n.state=c,c.phase==="crossfade"&&s.phase!=="crossfade"&&(SD?.root.classList.add("volter-play-crossfade"),U_n(n,Vjt+30,()=>gB("crossfade-done"))),c.phase==="playing"&&s.phase!=="playing"&&(SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),n.flying&&Eve()?.settle(),Jjt()))}function J_n(){W_n({immersive:qjt()})}function W_n(t){if(Qk&&cUe(),!t.immersive)return;const n=Ujt();$jt(!0);const s={state:zjt,reducedMotion:n,flying:!1,timeouts:new Set};if(Qk=s,SD?.hideChrome(!n),n){gB("start-reduced");return}if(gB("start"),s.flying=Eve()?.begin(()=>{Qk===s&&gB("flight-done")})??!1,!s.flying){gB("flight-done");return}SD?.root.classList.add("volter-play-flight")}function H_n(t,n){(!t||!n)&&cUe()}function G_n(t){const n=Qk;n&&(n.flying&&t&&Eve()?.track(t),gB("game-ready"))}function cUe(){const t=Qk;if(t){Qk=null;for(const n of t.timeouts)clearTimeout(n);t.timeouts.clear(),Jjt(),SD?.root.classList.remove("volter-play-flight","volter-play-crossfade"),t.flying&&Eve()?.end(),SD?.showChrome(!Ujt()),$jt(!1)}}const Wje=new Set;let Wjt=null;function Hjt(){return wf()?.rootPath??null}function K_n(t){Wje.add(t);const n=Hjt();return n!==null&&Wjt===n&&t(),()=>{Wje.delete(t)}}async function _wn(){Wjt=Hjt();for(const t of[...Wje])await t()}function X_n(){const t=Pp();if(t===null)return null;const n=cQ(t);if(typeof n!="object"||n===null)return null;const s=n.stageMode;if(typeof s!="function")return null;const c=s.call(n);return typeof c=="string"?c:null}let Hje=null;function Y_n(t){Hje=t}function pTt(){if(!Hje)throw new Error("The workbench Output service is not connected.");return Hje}function Z_n(){sDr(Pp),s4r({output:{write:(...t)=>pTt().write(...t),show:t=>pTt().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:r9t,mounted:yVe,playing:sve,runWindow:fVe,restartRequired:QFt,restart:e9t,subscribe:bVe,version:i9t,notifyChanged:ZFt,snapshotFrame:pVe,frameCanvas:dVe,authoringRefusal:gVe,dispatch:_Ve,scenes:mVe,surface:ove,coverage:hVe},viewport:{transition:{begin:J_n,ready:G_n,end:cUe,onSettled:V_n,phase:z_n}},hierarchy:{subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0}},session:{beginWork:kBe,reportFacet:Hrn,onSample:Rnn,onCommandDispatched:VYr,playState:()=>Ih()?.playState??"stopped",playEditRegime:()=>Ih()?.playEditRegime??null,subscribe:t=>{const n=o_e(t),s=Ih()?.subscribe(t);return()=>{n(),s?.()}},version:()=>{const t=Ih();return t?.getShellSnapshot?.()??t?.getSnapshot()??0},open:()=>Ih()!==null,onEnded:t=>jze(n=>{n!==null&&t()}),onBeforeClose:dnn,reportWorkerCallMeter:ran},project:{documentTable:qen,mounts:l$,engineVersion:()=>wf()?.config.engine.version??null,subscribe:IC,onReady:K_n},notify:t=>s$(t),systems:{inspected:Dye,subscribe:Jwr,inspectedNetworking:Kwr,subscribeNetworking:Xwr,inspectedAudio:()=>Ywr()??null,subscribeAudio:Zwr,audioVersion:Qwr},availability:{subscribe:XVe,version:jun},workspace:{showUtility:vC,openContributedDocument:t=>tA(t),open:async t=>await Xye(t.kind,Ih()??{},t)!==null,liveDocument:{id:a0,register:_tn,acquire:ytn,release:rVe,open:iq,container:mtn,setContainer:htn,releaseContainer:gtn}},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:cQ,waitForContext:h4t,contextChanged:XCr,captureActive:t=>{const n=Ih();return n?v9t(n,t):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:t=>O_n(t),subscribe:R_n},projectLocalState:{ready:lte,read:Tve,write:Cve,projectRootPath:()=>wf()?.rootPath??null},history:{record:r6t,setDelegate:iDr,onElement:cDr,invalidate:lDr,onInvalidated:uDr,changed:oDr,elements:aDr,focusedResource:()=>{const t=TC();if(!t)return null;const n=t.descriptor.provenance?.sourcePath;if(n)return n;const s=Ih();return s?BYr(s)??Oze(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=t6t(t),s=o_e(t),c=Ih()?.projectHistory?.subscribe(t),d=o2(t);return()=>{n(),s(),c?.(),d()}}},files:{setProvider:N4r,read:t=>Ag.read(t),readBytes:t=>Ag.readBytes(t),write:(t,n)=>Ag.write(t,n),exists:t=>Ag.exists(t),list:t=>Ag.list(t),watch:t=>Ag.watch(t)},settings:{setProvider:IEr,get:jEr,set:BEr,inspect:H4t,subscribe:t=>{const n=V4t(t),s=bee(t);return()=>{n(),s()}}},keyboard:{actions:()=>Jan().map(({id:t,scope:n})=>({id:t,scope:n})),keymaps:()=>K4t().map(({id:t,title:n})=>({id:t,title:n,chords:tDt(t)})),activeKeymap:dR,invoke:t=>jVe(t),subscribe:t=>{const n=Han(t),s=Gye(t),c=o_e(t),d=Ih()?.subscribe(t),m=o2(t);return()=>{n(),s(),c(),d?.(),m()}},version:()=>Wan()+K1(),stage:()=>{const t=Ih();return t?{surface:Jfn(t).surface,mode:X_n()}:{surface:null,mode:null}},bindActions:ecn,chordsFor:jBe,shortcutFor:t=>Vv(t)??null}})}let Q_n=0,cee=null;const Gje=new Set;function _Tt(t){const n={generation:++Q_n,promise:t,active:!0};cee=n;for(const s of Gje)s(n);return Gje.clear(),n}function emn(){const t=cee;return t?.active?Promise.resolve(t):new Promise(n=>Gje.add(n))}async function lUe(){for(;;){const t=await emn();if(await t.promise,cee===t&&t.active)return}}const Gjt=16,tmn=300,rmn=1e4,Kjt="workspace";function nmn(){const t=Tve(Kjt);return!t||t.version!==Gjt?null:t}function imn(t){Cve(Kjt,t)}function omn(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=kAr(n.id);return{kind:n.kind,id:n.id,state:s,...Object.keys(c).length>0?{presentation:c}:{}}}function smn(){const t={};let n=!1;for(const s of dDt()){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 amn(){const t=[];for(const s of l0()){const c=omn(s);c&&t.push(c)}const n=smn();return{version:Gjt,workspace:zS(),documents:{open:t,activeId:Pp(),...n?{kinds:n}:{}}}}async function cmn(t,n,s){for(const c of fDt(n.kind))try{if(await c.restore({id:n.id,state:n.state,active:n.id===s&&!HQ(),store:t}))return!0}catch{}return!1}function mTt(t){if(!t)return!1;const n=!HQ();return SN(t,n)?!0:utn.has(t)?(EFt(t),n&&bTr(t),!0):n&&X0(t)}function lmn(t,n){const s=n?.kinds??{},c=(n?.open.length??0)>0;for(const d of dDt())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 umn(t){const n=new Set;for(const s of t)for(const c of fDt(s.kind))c.prepare&&n.add(c.prepare);return Promise.all([...n].map(s=>s().catch(()=>{})))}async function fmn(t,n){const s=n?.documents;if(lmn(t,s),!s||s.open.length===0){mTt(s?.activeId??null);return}await umn(s.open);for(const c of s.open){const d=c.presentation;d&&typeof d=="object"&&!Array.isArray(d)&&AAr(c.id,d),await cmn(t,c,s.activeId)}mTt(s.activeId)}function Xjt(t){if(!lte()||wf()&&!u0()){let se=!1,pe=null,ue=()=>{};const Ce=new Promise(Pe=>{ue=Pe}),De=_Tt(Ce);return Promise.all([cte(),Zze()]).then(()=>{if(se){ue();return}pe=Xjt(t),De.active=!1,lUe().finally(ue)}),()=>{se=!0,pe?.()}}const n=nmn();n?.workspace&&kB(n.workspace)&&Uk(n.workspace)?a2(n.workspace):(n?.workspace&&Pkr(n.workspace),a2(pR(),{provisional:!0}));let s=!1,c=null;const d=[],m=()=>{c!==null&&(clearTimeout(c),c=null),!(F_n()||t.playState!==void 0&&t.playState!=="stopped")&&imn(amn())},g=()=>{c!==null&&clearTimeout(c),c=setTimeout(m,tmn)},S=()=>m();let k=null;const A=typeof window<"u"&&oCt(window.location.href)!==null,F=A||!(n?.documents?.open.length??0)?Promise.resolve():mN().catch(()=>{}),D=F.then(()=>A?void 0:fmn(t,n)).catch(()=>{}),J=new Promise(se=>{F.then(()=>{s||(k=setTimeout(()=>{se()},rmn))})}),$=Promise.race([D,J]).then(()=>{k!==null&&clearTimeout(k),!s&&(d.push(o2(g)),d.push(NAr(g)),window.addEventListener("pagehide",S))}),G=_Tt($);return()=>{s=!0,G.active=!1,cee===G&&(cee=null),k!==null&&clearTimeout(k);for(const se of d)se();window.removeEventListener("pagehide",S),c!==null&&m()}}function dmn(t){Ye.useEffect(()=>{const n=oCt(window.location.href);if(!n)return;let s=!1;const c=Em(),d=()=>!s&&Em()===c;return lUe().then(()=>{if(d())return zge(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 hTt="volter:stale-chunk-reload";function pmn(){typeof window>"u"||window.addEventListener("vite:preloadError",t=>{let n=0;try{n=Number(sessionStorage.getItem(hTt)??0)}catch{}if(!(Date.now()-n<6e4)){try{sessionStorage.setItem(hTt,String(Date.now()))}catch{}t.preventDefault(),window.location.reload()}})}const jI=[];function _mn(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 mwn(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 hwn extends Error{name="StoryMediumMismatch"}function gwn(t){return t instanceof Error&&t.name==="StoryMediumMismatch"}const Ime=new Map;function ywn(t,n){return Ime.set(t,n),()=>{Ime.get(t)===n&&Ime.delete(t)}}function mmn(t){return Ime.get(t)??null}function hmn(t,n){const s=[];for(const c of Object.keys(n).sort())s.push(`${c}=${gmn(n[c])}`);return`${t}|${s.join("&")}`}function gmn(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 sye=new Map,b_e=new Map,gTt=new WeakMap;let yTt=Promise.resolve(),vTt=null,ymn=1;function vmn(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function bmn(){await Promise.race([Mye(),new Promise(t=>setTimeout(t,5e3))]),await Promise.race([new Promise(t=>requestAnimationFrame(()=>requestAnimationFrame(()=>t()))),new Promise(t=>setTimeout(t,250))]),await new Promise(t=>setTimeout(t,750)),await new Promise(t=>{const n=globalThis.requestIdleCallback;if(typeof n=="function"){n(()=>t(),{timeout:2e3});return}setTimeout(t,0)})}function Smn(){return vTt??=bmn(),vTt}function xmn(t){const n=gTt.get(t);if(n!==void 0)return n;const s=ymn++;return gTt.set(t,s),s}function wmn(t,n,s,c){const d=sye.get(t);if(d)return Promise.resolve(d);const m=b_e.get(t);if(m)return m;const g=yTt.then(async()=>{await Smn();const S=s.parameters.layout,k=S==="fullscreen"||S==="padded"||S==="centered"?S:"padded",A={...c,props:s.args,layout:k},F=mmn(n==="canvas"?"canvas":"three");if(!F)throw new Error(`No ${n} story capture is registered.`);return F(s.Component,A)});return yTt=g.then(()=>{},()=>{}),b_e.set(t,g),g.then(S=>{sye.set(t,S),b_e.delete(t)},()=>b_e.delete(t)),g}function Tmn({component:t,story:n,previewRevision:s,width:c=128,height:d=96}){const m=n.Component,g=`${t.surface}:${t.path}:${hmn(n.id,n.args)}:${xmn(m)}:${s}:${c}x${d}`,[S,k]=Ye.useState(()=>sye.get(g)),[A,F]=Ye.useState(!1);return Ye.useEffect(()=>{let D=!1;if(F(!1),k(sye.get(g)),!!vmn())return wmn(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 kve="story:three",Ave="story:isolated",Cmn="story:docs";function Emn(t,n){return t.surface==="dom"?!1:n===null||t.surface===n}function kmn({entry:t,previewRevision:n,width:s,height:c}){const d=t.detail;return q.jsx(Tmn,{component:t.component,story:d,previewRevision:n,...s===void 0?{}:{width:s},...c===void 0?{}:{height:c}})}const Amn="story",Dmn={id:Amn,owner:"./component-content-source",entries(t){const n=rq(),s=[];for(const c of t.components){if(!Emn(c,t.surface))continue;const d=wRt(n,c.name,c.path);d&&s.push({id:`${c.path}:${c.name}`,component:c,detail:d})}return s},subscribe:H0e,Thumbnail:kmn,open(t,n,s){const c=n.detail,d=n.component.surface==="three";CD(d?kve:Ave,t,d?{modulePath:c.modulePath,storyName:c.name,title:s}:{modulePath:c.modulePath,storyName:c.name})}};function bTt(t){return yYr(t.name,t.sourcePath)}const Pmn={id:"portable-csf",owner:"./component-states",statesFor:(t,n)=>n.surface==="dom"?[]:bTt(t).map(s=>({id:s.id,label:s.label})),apply:(t,n,s)=>{const c=bTt(t).find(d=>d.id===n);if(c){if(s.surface==="three"){CD(kve,s.store,{modulePath:c.modulePath,storyName:c.name,title:c.label});return}if(s.surface==="canvas"){CD(Ave,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 Imn(){let t=0,n=!1;const s=S=>{const k=++t;fYr(),Mye().then(()=>{if(!(n||k!==t))return xYr(wf(),void 0,{deferUndeclared:!0,...S?{changedPaths:S}:{}})})};s();let c=null;const d=wFt(),m=IC(()=>s()),g=pen(s);return()=>{n=!0,t+=1,c!==null&&clearTimeout(c),d(),m(),g()}}const Yjt="story",FOe=new Set,MOe=new Set;function Nmn(t){const n=gRt({modulePath:t.modulePath,title:t.title}).leaf;return n===t.label?n:`${n} · ${t.label}`}function jOe(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??Nmn({modulePath:n.modulePath,title:s.title,label:s.label})}}return null}function Omn(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(Cmn,t,c);const d=Dze({modulePath:s.modulePath,regions:Aze()});return d.medium===void 0?(uYr(s.modulePath,d.reason),null):CD(d.medium==="three"?kve:Ave,t,c)}function STt(t){Qs.warn(`No composed portable story carries the id ${JSON.stringify(t)}, so nothing opened it.`,"editor")}function Rmn(){return kN({id:Yjt,owner:"./story-opener",open:(t,n)=>{const s=jOe(n);return s?Omn(t,n,s):(n.modulePath?FOe.add(n.modulePath):n.storyId!==void 0&&(MOe.add(n.storyId),mYr()&&STt(n.storyId)),null)},settle:async()=>{await FDr();const t=[...FOe],n=[...MOe];if(FOe.clear(),MOe.clear(),await Promise.all(t.map(s=>vYr(wf(),s))),n.length!==0){await hYr();for(const s of n)jOe({storyId:s})||STt(s)}},ready:async(t,n)=>{if(n.mode==="docs")return;const s=jOe(n);if(!(!s||Dze({modulePath:s.modulePath,regions:Aze()}).medium!=="three")&&!await CC(()=>s2(t)!==null,PR))throw new Error(`The requested Object3D view did not mount for document: ${t}`)}})}const Fmn={actions:()=>{if(!ngt(Ave)&&!ngt(kve))return[];const t=[];for(const n of rq()){if(!n.ok)continue;const s=n.modulePath.split("/").pop()??n.modulePath;for(const c of n.stories)t.push({id:`story:${c.id}`,label:`Open Story: ${c.name} — ${s}`,execute:()=>void n0().workspace.open({kind:Yjt,modulePath:n.modulePath,storyName:c.name,title:c.name})})}return t},subscribe:t=>H0e(t)};function Mmn(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 jmn(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 Lmn="packages/editor-core/src/stories/story-capture-command.ts",nB="capture-story-variants";async function Bmn(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 jZr("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=Mmn(nB,t.camera);if(typeof S=="string")return{ok:!1,error:S};const k=jmn(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-BOeJxmag.js");return{captureProjectStoryVariants:D}},__vite__mapDeps([267,268,1,2,3,4,20,21,233,212,269,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 $mn={[nB]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:Bmn}};function qmn(){const t=Ein(Dmn),n=_mn(Pmn),s=Rmn(),c=pCt(Fmn),d=mCt(Lmn,$mn),m=Imn(),g=H0e(()=>{BB()});return()=>{g(),m(),d(),c(),s(),n(),t()}}const zmn=[["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"]],Vmn=[["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 xTt(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 Umn(t){const n=getComputedStyle(t),s={};for(const[c,d,m]of zmn){const g=xTt(n.getPropertyValue(d));g!==null&&(g.length===9&&!m||(s[c]=m&&g.length===7?`${g}${m}`:g))}for(const[c,d]of Vmn){const m=xTt(n.getPropertyValue(d));m!==null&&(s[c]=m)}return s}let xm=null,Zjt=0;const Kje=new Set;function Jmn(t){return Kje.add(t),()=>Kje.delete(t)}function wTt(){return Zjt}const LOe=new Map;function Qjt(t,n){LOe.get(t)?.disconnect(),LOe.delete(t);const s=()=>{const d=n?.isConnected?n.getBoundingClientRect():null;ZAr(t,d!==null&&d.width>0&&d.height>0)};if(s(),n===null||typeof ResizeObserver>"u")return;const c=new ResizeObserver(s);c.observe(n),LOe.set(t,c)}function Wmn(t,n){if(xm){if(n===null){if(xm[t]?.isConnected)return}else if(xm[t]===n)return;if(n===null&&(t==="outliner"||t==="properties"||t==="content")){const s={...xm};delete s[t],xm=s}else n!==null&&(xm={...xm,[t]:n});n!==null&&eLt(t,n),Qjt(t,n),Zjt+=1;for(const s of Kje)s()}}function eLt(t,n){n.dataset.volterPart=t}const HO=new Map;let tLt=0;const Xje=new Set,rLt=new Set;let TTt=!1;function CTt(){for(const t of l0())rLt.add(t.descriptor.id)}function Hmn(t){TTt||(TTt=!0,o2(CTt)),CTt(),!(!t||rLt.has(t))&&(Ctn(t)||EFt(t,!1))}function Gmn(t,n){if(n){if(!HO.delete(t.id))return}else{HO.has(t.id)||Hmn(t.documentId);const s=HO.get(t.id);if(s?.element===t.element&&s.documentId===t.documentId)return;HO.set(t.id,{...t})}tLt+=1;for(const s of[...Xje])s()}function Kmn(t){return Xje.add(t),()=>{Xje.delete(t)}}function ETt(){return tLt}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 Xmn({children:t}){return q.jsx(q.Fragment,{children:t})}function Ymn(){return xm?r2.createPortal(q.jsx(GO,{center:!0,children:q.jsx(rpn,{})}),xm.header):null}function Zmn(){return null}function Qmn(){const t=Ye.useRef(null);return Ye.useEffect(()=>{const n=t.current;if(n)return yjt(n),()=>dfn(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(Ejt,{})})]})}const Nme=new Map,Yje=new Set;let Zje=0;function ehn(t,n){if(n){if(Nme.get(t)===n)return;n.dataset.volterUtility=t,Nme.set(t,n)}else if(!Nme.delete(t))return;Zje++;for(const s of Yje)s()}const Ome=new Map,Qje=new Set;let eLe=0;function thn(t,n){if(n){if(Ome.get(t)===n)return;Ome.set(t,n)}else if(!Ome.delete(t))return;eLe++;for(const s of Qje)s()}function rhn(){return Ye.useSyncExternalStore(k3t,mht,mht),Ye.useSyncExternalStore(t=>(Qje.add(t),()=>Qje.delete(t)),()=>eLe,()=>eLe),q.jsx(q.Fragment,{children:[...mRe("left"),...mRe("right")].map(t=>{const n=Ome.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 nhn(){return Ye.useSyncExternalStore(Kye,vhe,vhe),Ye.useSyncExternalStore(t=>(Yje.add(t),()=>Yje.delete(t)),()=>Zje,()=>Zje),q.jsx(q.Fragment,{children:bC().map(t=>{const n=Nme.get(t.id);return n?q.jsx(Ye.Fragment,{children:r2.createPortal(q.jsx(GO,{children:q.jsx(opn,{utility:t})}),n)},t.id):null})})}function ihn({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(zMt,{descriptor:t,viewId:n,active:d,chrome:!t.area}),m&&q.jsx(Wun,{})]}),g)}let nLt=!0;function ohn({arrangement:t,immersivePlay:n}){const s=Yv();dmn(s);const c=JVe(s);Ye.useLayoutEffect(()=>{nLt=c.column},[c.column]);const d=HO.get(TRe()??"")?.element??xm?.center;Ye.useLayoutEffect(()=>{if(!d)return;const F=()=>Awt({x:0,y:0,width:d.clientWidth,height:d.clientHeight}),D=new ResizeObserver(F);return D.observe(d),F(),()=>{D.disconnect(),Awt(null)}},[d]),Ye.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),Ye.useSyncExternalStore(o2,K1,K1),Ye.useSyncExternalStore(Kmn,ETt,ETt),Ye.useSyncExternalStore(Jmn,wTt,wTt),Ye.useLayoutEffect(()=>{const F=ikr({...t?{arrangement:t}:{},...n===void 0?{}:{immersivePlay:n},playUtilities:[]});return t&&a2(t.id),Okr(),F},[t,n]);const m=s.playState!=="stopped",g=Ye.useSyncExternalStore(bee,NR).play?.keepPanelsVisible;if(Ye.useEffect(()=>{H_n(m,qjt())},[m,n,g]),Ye.useEffect(()=>Xjt(s),[s]),!xm)return null;const S=xm.center,k=l0(),A=TC()??k[0]??null;return globalThis.__volterBridge={documents:k.map(F=>F.descriptor.id),active:A?.descriptor.id??null,workspace:t?.id??null,areas:k.flatMap(F=>F.descriptor.area?[{id:F.descriptor.id,area:F.descriptor.area}]:[]),slots:[...HO.values()].map(({id:F,documentId:D,element:J})=>({id:F,documentId:D,visible:!!J}))},q.jsxs(q.Fragment,{children:[[...HO.values()].map(F=>{const D=k.find(J=>J.descriptor.id===F.documentId)?.descriptor;return D?q.jsx(ihn,{descriptor:D,viewId:F.id,slot:F.element??void 0,parking:S,visible:!!F.element,inspector:c.card&&D.id===A?.descriptor.id},F.id):null}),k.length===0&&r2.createPortal(q.jsx(GO,{children:q.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),xm.center),xm.outliner&&r2.createPortal(q.jsx(GO,{children:q.jsx(Qmn,{})}),xm.outliner),xm.properties&&r2.createPortal(q.jsx(GO,{children:c.column?q.jsx(YVe,{}):q.jsx(Bun,{surface:c.surface})}),xm.properties),xm.content&&r2.createPortal(q.jsx(GO,{children:q.jsx(C_n,{kind:"assets"})}),xm.content),q.jsx(nhn,{}),q.jsx(rhn,{})]})}async function shn(t,n={}){xm=t,n.workspaceStorage&&e3r(n.workspaceStorage),c3r();for(const[De,Pe]of Object.entries(t))Pe&&eLt(De,Pe),Qjt(De,Pe??null);t.chromeRoot.id="editor-chrome-root",IPt({Frame:Xmn,Header:Ymn,Footer:Zmn,Workspace:ohn,Document:Mcn}),k_n(),Jnn();const s=Wln();s&&Uln(s,Date.now())&&Qs.warn(zln(s,Date.now()),"editor"),pmn(),NDr(),Z_n(),qmn(),await Promise.all([W4t(),oAr(),ePt()]),bAr(t.chromeRoot),t.chromeRoot.classList.toggle("volter-native-menus",lee()?.nativeMenus===!0);const c=document.createElement("div");c.id="editor-root",c.className="volter-part",c.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",t.chromeRoot.appendChild(c),tLe.createRoot(c).render(q.jsx(lun,{}));const d={activeKeymap:()=>n0().keyboard.activeKeymap(),invoke:De=>n0().keyboard.invoke(De),subscribe:De=>n0().keyboard.subscribe(De),facts:()=>{const De=n0(),Pe=De.keyboard.stage();return{surface:Pe.surface,mode:Pe.mode,documentKind:De.documents.active()?.kind??null,play:De.session.playState()}},report:(De,Pe)=>{const be=n0();De==="error"?be.console.error(Pe,"editor"):be.console.warn(Pe,"editor")}};let m=!1;const g={whenRestored:lUe,activeSource:()=>{const De=n0().documents.active();if(!De)return null;const Pe=De.kind==="model"&&De.id.startsWith("model:")?De.id.slice(6):"";return{kind:De.kind,path:Pe}},list:()=>l0().map(De=>{const Pe=De.descriptor.area?Ckr().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=Ekr(De);return()=>{Pe(),be()}},activate:(De,Pe)=>{!m&&HQ()||(Pe?yTr(De,Pe):X0(De))},close:De=>{if(EN(De))return;const Pe=l0().find(be=>be.descriptor.id===De);Pe&&d.report("warn",`“${Pe.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(De,Pe)=>Gmn(De,Pe)},S={elements:()=>n0().history.elements(),onElement:De=>n0().history.onElement(De),onInvalidated:De=>n0().history.onInvalidated(De),changed:()=>n0().history.changed(),focusedResource:()=>n0().history.focusedResource(),focusedDocument:()=>{const De=n0().documents.active();return De?{id:De.id,label:De.title}:null},setDelegate:De=>n0().history.setDelegate(De),report:d.report},k={setProvider:De=>n0().files.setProvider(De),report:d.report},A={setProvider:De=>n0().settings.setProvider(De),adapterValues:()=>[...OEr()],workbenchValues:()=>{const De=xm?.chromeRoot;if(!De)return[];const Pe=getComputedStyle(De).getPropertyValue("--volter-command-bar-height").trim(),be=Number.parseFloat(Pe),X=["workbench.colorCustomizations",Umn(De)];return!Number.isFinite(be)||be<=0?[X]:[["window.titleBarHeight",Math.round(be)],X]},lookId:()=>DN(),notify:De=>{n0().notify(De)},subscribe:De=>{const Pe=Wye(De),be=EDt(De);return()=>{Pe(),be()}},report:d.report},F={list:()=>Gnn().map(De=>({id:De.id,label:De.label,category:De.category,...De.menu?{menu:De.menu}:{}})),invoke:De=>Xnn(De),subscribe:De=>Knn(De),setPaletteOpener:De=>Hnn(De),setCommandExecutor:De=>Ynn(De),report:d.report},D={setDelegate:De=>ZCr(De?{show:Pe=>De({...Pe,source:a3r()})}:null)},J={list:()=>RPt().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)=>MPt(De,Pe,be),subscribe:De=>FPt(De)},$={list:()=>bC().map((De,Pe)=>({id:De.id,title:De.title,order:De.order??Pe})),subscribe:De=>{let Pe=vhe();const be=Kye(De),X=XVe(()=>{const we=vhe();we!==Pe&&(Pe=we,De())});return()=>{be(),X()}},offerBody:(De,Pe)=>ehn(De,Pe)};let G=!0,se=null,pe=null;yrn(()=>G);const ue={setActiveStaticPanel:De=>Qht(EVe.find(Pe=>Pe.kind===De)?.kind??null),focusCompactInspector:()=>{if(nLt)return!1;const De=xm?.center.querySelector('[data-testid="compact-inspector-card"]');return De?(De.tabIndex=-1,De.focus(),Qht("inspector"),!0):!1},setPaneActive:De=>{G!==De&&(G=De)},setImmersive:De=>{se?.(),se=null,!(!De||!xm)&&(se=q_n({root:xm.chromeRoot,hideChrome:()=>De.enter(),showChrome:()=>De.exit()}))},setDockCommands:De=>{pe?.(),pe=null,De&&(pe=akr({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:Y_n},settings:A,status:{list:()=>["left","right"].flatMap(De=>mRe(De).map((Pe,be)=>({id:Pe.id,title:Pe.name,align:De,order:Pe.order??be}))),subscribe:De=>k3t(De),offerBody:(De,Pe)=>thn(De,Pe)},game:ue,offerPart:Wmn}}function ahn(t){const n=Object.keys(t.packages);return d0r({id:t.id,packages:n,look:t.look,workspace:t.workspace,nativeMenus:t.nativeMenus,logo:t.logo}),MDt(n.flatMap(s=>t.packages[s]??[])),{mountVolter:shn}}const{mountVolter:vwn}=ahn({id:"game-editor",packages:{"@volter/editor-game":c0r,"@volter/editor-react":l0r,"@volter/editor-threejs":u0r,"@volter/editor-xstate":f0r,"@volter/editor-blender":a0r},look:"classic",workspace:"game",logo:"https://brand.volter.ai/logo/volter-game-editor/svg",nativeMenus:!0});export{Jl as $,g3t as A,d0n as B,y3t as C,v3t as D,F_e as E,I0n as F,wAr as G,aRe as H,Ten as I,fFt as J,DB as K,u0 as L,OC as M,h3t as N,eVe as O,_3t as P,dSn as Q,b3t as R,Mwr as S,j2n as T,Yv as U,Ih as V,rBe as W,XXr as X,rvn as Y,Qs as Z,lo as _,XY as a,m2n as a$,WFt as a0,Ktn as a1,XFt as a2,L_ as a3,CN as a4,TSn as a5,Ms as a6,dc as a7,Kk as a8,nvn as a9,_Rt as aA,Vtn as aB,wf as aC,Y0 as aD,mp as aE,q0n as aF,hy as aG,oq as aH,_Mt as aI,z3r as aJ,fSn as aK,_p as aL,dm as aM,Zm as aN,_wn as aO,nve as aP,l0 as aQ,EFt as aR,TD as aS,t0n as aT,$Cr as aU,Y0e as aV,ORt as aW,Mze as aX,BSn as aY,Zf as aZ,R9t as a_,vC as aa,Hgn as ab,ean as ac,acn as ad,cSn as ae,Xze as af,MB as ag,Wwr as ah,n9t as ai,e2n as aj,p0n as ak,Go as al,Xgn as am,Pye as an,Zun as ao,Z0e as ap,Xwr as aq,Kxn as ar,H0e as as,rq as at,Dze as au,Aze as av,uYr as aw,van as ax,m$e as ay,qtn as az,nBe as b,C3r as b$,g2n as b0,U4r as b1,h2n as b2,gC as b3,C$e as b4,ETr as b5,eOe as b6,ig as b7,wFt as b8,hYr as b9,gBe as bA,Jc as bB,t2 as bC,sLe as bD,vhn as bE,Bvr as bF,_gt as bG,Iw as bH,EAr as bI,xAr as bJ,ZBe as bK,TAr as bL,p0r as bM,aye as bN,zOe as bO,Cyn as bP,Tyn as bQ,Hsn as bR,W0n as bS,J0n as bT,M3r as bU,X0n as bV,jhe as bW,t2n as bX,i2n as bY,ytn as bZ,T3r as b_,Xbn as ba,vRt as bb,mRt as bc,bRt as bd,eYr as be,mmn as bf,gwn as bg,bSn as bh,gRt as bi,_Yr as bj,pvn as bk,_Le as bl,YB as bm,rwn as bn,nwn as bo,$fn as bp,NAr as bq,M0n as br,QBe as bs,pgt as bt,N0n as bu,n$ as bv,mO as bw,h0r as bx,aR as by,lLe as bz,cRe as c,C2n as c$,Vwr as c0,r2n as c1,mtn as c2,r9t as c3,ed as c4,_y as c5,fu as c6,P2n as c7,O2n as c8,R2n as c9,HZr as cA,GZr as cB,BRt as cC,qRt as cD,FZr as cE,f2n as cF,qZr as cG,u2n as cH,KZr as cI,k2n as cJ,$Zr as cK,qze as cL,$Rt as cM,BZr as cN,CMe as cO,jZr as cP,v2n as cQ,i_e as cR,VZr as cS,WSt as cT,JSt as cU,JZr as cV,PZr as cW,$ze as cX,TMe as cY,zZr as cZ,A2n as c_,F2n as ca,qSt as cb,T2n as cc,N2n as cd,I2n as ce,YZr as cf,zSt as cg,x2n as ch,jD as ci,TZr as cj,HSt as ck,S2n as cl,XZr as cm,y2n as cn,E2n as co,c2n as cp,l2n as cq,RZr as cr,M2n as cs,WZr as ct,MZr as cu,p2n as cv,_2n as cw,D2n as cx,w2n as cy,Q0e as cz,m3t as d,bxr as d$,d2n as d0,ZZr as d1,b2n as d2,stn as d3,X0 as d4,axt as d5,ZSn as d6,Gye as d7,dR as d8,Pyn as d9,i$ as dA,gan as dB,man as dC,FVe as dD,exn as dE,y0r as dF,b0r as dG,ATt as dH,eyn as dI,den as dJ,pSn as dK,ltn as dL,fMt as dM,u2 as dN,GAr as dO,n2n as dP,pMt as dQ,fQ as dR,Ehn as dS,mEr as dT,UTt as dU,SZ as dV,FCr as dW,u4t as dX,yZ as dY,lAt as dZ,AR as d_,Vv as da,Iyn as db,I0r as dc,O0r as dd,B3t as de,bZ as df,gyn as dg,Nhn as dh,XTt as di,ZTt as dj,xhn as dk,Z0r as dl,B0n as dm,$0n as dn,PI as dp,R_ as dq,twn as dr,dBe as ds,Cm as dt,Afn as du,i0 as dv,q2n as dw,RDr as dx,Yun as dy,ORe as dz,p3t as e,WCr as e$,bSr as e0,t$ as e1,Wme as e2,aCt as e3,G0n as e4,W0 as e5,evn as e6,U2n as e7,CSn as e8,cvn as e9,uSn as eA,_yn as eB,_Sn as eC,BYr as eD,Oze as eE,DRt as eF,d4t as eG,ctn as eH,mYr as eI,D4t as eJ,O5e as eK,Fye as eL,Bon as eM,oLe as eN,Ahn as eO,m0r as eP,E4t as eQ,Von as eR,qht as eS,I5e as eT,Iht as eU,c0 as eV,o0n as eW,yan as eX,MRe as eY,xBe as eZ,c0n as e_,$he as ea,P4r as eb,BQr as ec,lvn as ed,_$e as ee,fvn as ef,uvn as eg,Kbn as eh,rxn as ei,txn as ej,tvn as ek,bBe as el,she as em,wyn as en,G0 as eo,Fyn as ep,YY as eq,Byn as er,C_e as es,Gyn as et,sQ as eu,Kgn as ev,IC as ew,Rhn as ex,VTr as ey,LSn as ez,lRe as f,hSn as f$,khn as f0,b0n as f1,v0n as f2,TC as f3,aFe as f4,wee as f5,kN as f6,Ave as f7,Cmn as f8,xYr as f9,O0n as fA,A0n as fB,iwn as fC,uPt as fD,jhn as fE,P0r as fF,Mhn as fG,Rme as fH,qOe as fI,tCt as fJ,D0n as fK,Ryn as fL,yxn as fM,Nan as fN,uxn as fO,TR as fP,Pxn as fQ,fxn as fR,Kze as fS,Gbn as fT,wRt as fU,STr as fV,aTr as fW,QSn as fX,mSn as fY,gSn as fZ,a0 as f_,ND as fa,Gwr as fb,zTr as fc,T_e as fd,atn as fe,g$e as ff,l3r as fg,_fn as fh,Zxn as fi,Yxn as fj,Xxn as fk,kve as fl,EN as fm,k0n as fn,j0n as fo,ywn as fp,hwn as fq,ySn as fr,vSn as fs,b4t as ft,_0n as fu,Thn as fv,Ihn as fw,fN as fx,nLe as fy,fLe as fz,S3t as g,UTr as g$,HQ as g0,YSn as g1,zSn as g2,K9t as g3,ARt as g4,zQ as g5,Lfn as g6,Gun as g7,CR as g8,QXr as g9,mwn as gA,Ggn as gB,OFe as gC,g3r as gD,dvn as gE,x0r as gF,Qbn as gG,wYr as gH,Dht as gI,GTt as gJ,o2 as gK,K1 as gL,FSn as gM,MSn as gN,zwr as gO,Jgn as gP,RSn as gQ,Ugn as gR,OSn as gS,ZFt as gT,Z2n as gU,xR as gV,sen as gW,Hrn as gX,Ohn as gY,JTt as gZ,MTt as g_,Ybn as ga,Utn as gb,FDr as gc,Pg as gd,jSn as ge,g0r as gf,fee as gg,z2n as gh,sSn as gi,V2n as gj,pyn as gk,oSn as gl,f4r as gm,Q2n as gn,z0n as go,iSn as gp,V0n as gq,avn as gr,Dw as gs,of as gt,hR as gu,E3r as gv,U0n as gw,ISn as gx,lPt as gy,hnn as gz,KAt as h,n0n as h$,rA as h0,kC as h1,tA as h2,Phn as h3,Q0n as h4,uBe as h5,eve as h6,a2n as h7,pCt as h8,Van as h9,kht as hA,zye as hB,OTr as hC,NTr as hD,YTr as hE,Eyn as hF,Dyn as hG,Ayn as hH,Nyn as hI,Oyn as hJ,i0n as hK,xyn as hL,e0n as hM,Ym as hN,l4t as hO,byn as hP,Syn as hQ,hBe as hR,Uye as hS,kyn as hT,SBe as hU,hyn as hV,Zyn as hW,Qyn as hX,ohe as hY,u0n as hZ,Aht as h_,Fxn as ha,yYr as hb,K0n as hc,Wgn as hd,nyn as he,ayn as hf,fyn as hg,R$ as hh,CD as hi,iyn as hj,tyn as hk,ryn as hl,cyn as hm,a0n as hn,s0n as ho,qTr as hp,HCr as hq,Eht as hr,hC as hs,ERe as ht,q3t as hu,yyn as hv,vyn as hw,ARe as hx,kRe as hy,$Tr as hz,Ip as i,iLe as i$,UCr as i0,Myn as i1,f4t as i2,lhe as i3,RCr as i4,OG as i5,r4t as i6,U3t as i7,jTr as i8,GTr as i9,tCr as iA,QTr as iB,NG as iC,Xyn as iD,f0n as iE,ICr as iF,jCr as iG,MTr as iH,Uyn as iI,jyn as iJ,uhe as iK,Kyn as iL,P5e as iM,FTr as iN,wBe as iO,$yn as iP,q$ as iQ,Lyn as iR,zyn as iS,HSn as iT,XSn as iU,Cee as iV,AD as iW,Pcn as iX,Hxn as iY,C5e as iZ,Mxn as i_,Vyn as ia,qyn as ib,Jyn as ic,Wyn as id,r0n as ie,RTr as ig,OCr as ih,n4t as ii,l0n as ij,JTr as ik,Yyn as il,Hyn as im,XTr as io,E_e as ip,PRe as iq,eCr as ir,ZTr as is,JCr as it,KTr as iu,yee as iv,Lye as iw,rCr as ix,Epe as iy,IRe as iz,WAt as j,Axn as j$,nee as j0,Ufn as j1,swn as j2,P0n as j3,kAr as j4,TBe as j5,o$ as j6,FMt as j7,Lxn as j8,s2 as j9,Jin as jA,N9t as jB,$Tt as jC,FB as jD,sN as jE,G2n as jF,Gxn as jG,V_n as jH,oGr as jI,aGr as jJ,lGr as jK,lSn as jL,$wr as jM,hVe as jN,vnn as jO,ste as jP,san as jQ,Zxt as jR,wI as jS,LFe as jT,Dxn as jU,mhn as jV,bhn as jW,yhn as jX,kxn as jY,ghn as jZ,S0r as j_,jxn as ja,sPt as jb,w3r as jc,iBe as jd,Hwr as je,pht as jf,Lwr as jg,x3t as jh,Asn as ji,nSn as jj,HI as jk,WMe as jl,Ygn as jm,URt as jn,tve as jo,Aye as jp,cN as jq,eBe as jr,Rye as js,lN as jt,$Ar as ju,ABe as jv,_Be as jw,Oye as jx,tBe as jy,Qye as jz,Owr as k,gR as k$,Oan as k0,hxn as k1,mxn as k2,$on as k3,Ixn as k4,_xn as k5,$an as k6,Rxn as k7,oxn as k8,Nxn as k9,n6t as kA,tSn as kB,USn as kC,wD as kD,J0 as kE,YSt as kF,qAt as kG,Y4 as kH,Shn as kI,aLe as kJ,EEr as kK,Tve as kL,Cve as kM,NSn as kN,LMt as kO,qMt as kP,Gxt as kQ,MFe as kR,q_e as kS,jFe as kT,Kun as kU,ZVe as kV,Bxn as kW,Wfn as kX,E0n as kY,tvr as kZ,aSn as k_,dxn as ka,lxn as kb,sxn as kc,xxn as kd,cxn as ke,axn as kf,pxn as kg,Sxn as kh,gxn as ki,wxn as kj,d$e as kk,vxn as kl,nxn as km,Oxn as kn,ixn as ko,Txn as kp,yVe as kq,bxn as kr,Ran as ks,Cxn as kt,Exn as ku,JSn as kv,VSn as kw,WSn as kx,eSn as ky,IDr as kz,Yme as l,lwn as l$,EDr as l0,wve as l1,U$ as l2,eA as l3,mD as l4,Zwr as l5,Qwr as l6,Ywr as l7,Nye as l8,Chn as l9,GSn as lA,awn as lB,cwn as lC,xjt as lD,KSn as lE,oyn as lF,$sn as lG,lyn as lH,ewn as lI,dwn as lJ,L0n as lK,OAr as lL,F0n as lM,dyn as lN,syn as lO,uyn as lP,fwn as lQ,grn as lR,H0n as lS,xEr as lT,Bhn as lU,Bfn as lV,o2n as lW,s2n as lX,SSn as lY,o9t as lZ,pjt as l_,V0r as la,i3r as lb,o3r as lc,whn as ld,cjt as le,Zgn as lf,qwr as lg,Kwr as lh,MPt as li,Wxn as lj,Jxn as lk,zxn as ll,Uxn as lm,Vxn as ln,w0n as lo,R3r as lp,Z0n as lq,Y0n as lr,rSn as ls,R0n as lt,own as lu,hhn as lv,$xn as lw,qxn as lx,Dhn as ly,Fhn as lz,rQ as m,abr as m$,pwn as m0,Zbn as m1,$Sn as m2,Mfn as m3,Mmn as m4,jmn as m5,nq as m6,$Dr as m7,myn as m8,mCt as m9,_je as mA,OAt as mB,Lxr as mC,YI as mD,t1r as mE,bCt as mF,u1r as mG,qme as mH,nht as mI,F_ as mJ,zme as mK,Vme as mL,Jbr as mM,Xbr as mN,yB as mO,Obr as mP,Fbr as mQ,DEt as mR,qbr as mS,AEt as mT,Ibr as mU,Nbr as mV,vbr as mW,bbr as mX,m2r as mY,eh as mZ,K1r as m_,PSn as ma,W2n as mb,$2n as mc,H2n as md,NQr as me,qEr as mf,MEr as mg,ive as mh,Xtn as mi,m0n as mj,C0n as mk,h0n as ml,y0n as mm,g0n as mn,Usn as mo,T0n as mp,kSn as mq,ASn as mr,ESn as ms,DSn as mt,wEr as mu,TEr as mv,URe as mw,bN as mx,qSn as my,Qgn as mz,vB as n,Rw as n$,CEt as n0,obr as n1,tbr as n2,TEt as n3,nbr as n4,Q1r as n5,X1r as n6,lbr as n7,ebr as n8,Y1r as n9,Dbr as nA,Cbr as nB,Tbr as nC,kbr as nD,Ebr as nE,t2r as nF,Lbr as nG,wbr as nH,x2r as nI,s2r as nJ,Pbr as nK,n2r as nL,h2r as nM,ybr as nN,Hbr as nO,p2r as nP,Ubr as nQ,u2r as nR,kEt as nS,$br as nT,Ybr as nU,Zbr as nV,OEt as nW,g2r as nX,d2r as nY,S2r as nZ,y2r as n_,H1r as na,G1r as nb,ubr as nc,cbr as nd,rbr as ne,Z1r as nf,sbr as ng,vye as nh,ibr as ni,REt as nj,w2r as nk,Bbr as nl,Kbr as nm,f2r as nn,e2r as no,Mbr as np,mbr as nq,gbr as nr,mLe as ns,o2r as nt,RCt as nu,l2r as nv,a2r as nw,b2r as nx,pbr as ny,Abr as nz,Fwr as o,eSr as o$,r2r as o0,T2r as o1,i2r as o2,bye as o3,M_ as o4,_2r as o5,zbr as o6,v2r as o7,c2r as o8,NEt as o9,XEt as oA,ign as oB,ngn as oC,ogn as oD,rgn as oE,egn as oF,zEt as oG,VEt as oH,fSr as oI,K2r as oJ,MCt as oK,LCt as oL,Cgn as oM,pgn as oN,QEt as oO,FEt as oP,$Et as oQ,FCt as oR,jCt as oS,rSr as oT,vgn as oU,uSr as oV,R2r as oW,F2r as oX,QZ as oY,qk as oZ,eRe as o_,vu as oa,Sbr as ob,hbr as oc,_br as od,Vbr as oe,bLe as of,Wbr as og,Gbr as oh,xbr as oi,Qbr as oj,$hn as ok,ui as ol,Qhn as om,Zhn as on,fbr as oo,$mt as op,tgn as oq,J2r as or,lSr as os,YEt as ot,ZEt as ou,B2r as ov,L2r as ow,Agn as ox,_Sr as oy,KEt as oz,JAt as p,kgn as p$,O2r as p0,M2r as p1,$2r as p2,_gn as p3,HEt as p4,GEt as p5,D2r as p6,A2r as p7,I2r as p8,P2r as p9,Tgn as pA,N2r as pB,wgn as pC,M$ as pD,mye as pE,hye as pF,Dgn as pG,sgn as pH,Ogn as pI,ugn as pJ,Pgn as pK,hgn as pL,dSr as pM,Y2r as pN,$Ct as pO,zCt as pP,BCt as pQ,qCt as pR,gye as pS,yye as pT,ygn as pU,tkt as pV,cSr as pW,tSr as pX,E2r as pY,Sye as pZ,gSr as p_,ekt as pa,WEt as pb,Ngn as pc,nkt as pd,Sgn as pe,Z2r as pf,ZZ as pg,XI as ph,k2r as pi,ggn as pj,rkt as pk,xLe as pl,nSr as pm,$me as pn,eQ as po,tRe as pp,X2r as pq,qEt as pr,bgn as ps,agn as pt,H2r as pu,lgn as pv,Egn as pw,cgn as px,iSr as py,U2r as pz,Iwr as q,sAt as q$,pSr as q0,z2r as q1,Ign as q2,sSr as q3,aSr as q4,xgn as q5,oSr as q6,mgn as q7,j2r as q8,q2r as q9,EEt as qA,Rbr as qB,jbr as qC,hSr as qD,zmt as qE,Vmt as qF,Vhn as qG,W1r as qH,C2r as qI,Khn as qJ,Yhn as qK,Ghn as qL,Xhn as qM,b1r as qN,S1r as qO,v1r as qP,zhn as qQ,qhn as qR,dbr as qS,Mgn as qT,Rgn as qU,ELe as qV,VLe as qW,ULe as qX,JLe as qY,oAt as qZ,tAt as q_,UEt as qa,V2r as qb,fgn as qc,W2r as qd,Q2r as qe,SLe as qf,MEt as qg,jEt as qh,LEt as qi,BEt as qj,G2r as qk,JEt as ql,dgn as qm,sA as qn,$S as qo,Ume as qp,ySr as qq,Jhn as qr,Hhn as qs,mSr as qt,Uhn as qu,Whn as qv,g1r as qw,y1r as qx,YOe as qy,sD as qz,n0 as r,Zkt as r$,BLe as r0,$Le as r1,WLe as r2,jLe as r3,LLe as r4,PLe as r5,ILe as r6,EAt as r7,QLe as r8,Eye as r9,dAt as rA,AAt as rB,DLe as rC,nAt as rD,YLe as rE,Qkt as rF,vAt as rG,j$ as rH,wye as rI,XLe as rJ,ZLe as rK,xAt as rL,RAt as rM,DAt as rN,Fw as rO,Cye as rP,pAt as rQ,j_ as rR,CAt as rS,Ykt as rT,IAt as rU,hAt as rV,fAt as rW,Lu as rX,NLe as rY,xye as rZ,aD as r_,mee as ra,bAt as rb,cAt as rc,qLe as rd,kLe as re,ALe as rf,tQ as rg,Fgn as rh,gAt as ri,mAt as rj,sht as rk,FAt as rl,Jme as rm,FLe as rn,MLe as ro,Vkt as rp,qkt as rq,Hkt as rr,Jkt as rs,uAt as rt,oht as ru,zLe as rv,RLe as rw,NAt as rx,_At as ry,Xkt as rz,GAt as s,xSr as s$,Tye as s0,rAt as s1,iAt as s2,OLe as s3,aAt as s4,CLe as s5,SAt as s6,iht as s7,hxr as s8,QSr as s9,ixr as sA,$Sr as sB,rRe as sC,lxr as sD,dxr as sE,GLe as sF,GSr as sG,XSr as sH,$xr as sI,rxr as sJ,vxr as sK,HSr as sL,Sxr as sM,Txr as sN,KSr as sO,Cxr as sP,jxr as sQ,Ixr as sR,zSr as sS,kxr as sT,HLe as sU,TAt as sV,eAt as sW,Gme as sX,Dxr as sY,Hme as sZ,SSr as s_,exr as sa,fxr as sb,kAt as sc,Fxr as sd,YSr as se,ZSr as sf,Nxr as sg,VSr as sh,USr as si,yxr as sj,ESr as sk,ASr as sl,Mxr as sm,txr as sn,OSr as so,qSr as sp,CSr as sq,kSr as sr,yAt as ss,Axr as st,axr as su,cxr as sv,Lgn as sw,RSr as sx,sxr as sy,oxr as sz,nnn as t,K2n as t$,wxr as t0,Kme as t1,wAt as t2,LAt as t3,Rxr as t4,PAt as t5,MAt as t6,PSr as t7,NSr as t8,DSr as t9,Nmt as tA,Fme as tB,fvr as tC,uvr as tD,PG as tE,oCt as tF,iCt as tG,_vr as tH,pvr as tI,vwn as tJ,Lhn as tK,Bgn as tL,$gn as tM,qgn as tN,zgn as tO,Vgn as tP,kEr as tQ,S0n as tR,x0n as tS,ivn as tT,ovn as tU,svn as tV,Hbn as tW,L2n as tX,B2n as tY,jQr as tZ,J2n as t_,ISr as ta,wSr as tb,TSr as tc,Exr as td,jgn as te,nxr as tf,Bxr as tg,Pxr as th,jAt as ti,_xr as tj,Oxr as tk,KLe as tl,uxr as tm,pxr as tn,JSr as to,mxr as tp,BSr as tq,FSr as tr,MSr as ts,jSr as tt,LSr as tu,gxr as tv,WSr as tw,xxr as tx,dvr as ty,rCt as tz,Pa as u,X2n as u0,Y2n as u1,xSn as u2,wSn as u3,hrn as u4,uwn as u5,Gd as v,bo as w,Dg as x,Pp as y,Qxn as z};