@volter/game-editor 0.5.134 → 0.5.136

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 (296) 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 +2206 -2206
  5. package/dist/assets/{AssetBudgetPanel-DBREVH7K.js → AssetBudgetPanel-DUQkGYYB.js} +3 -3
  6. package/dist/assets/{AudioViewer-BfG1UANw.js → AudioViewer-qRXhLRwE.js} +1 -1
  7. package/dist/assets/{CanvasBoardDocument-BUO8VIFd.js → CanvasBoardDocument-D0mfhQd7.js} +1 -1
  8. package/dist/assets/{CanvasSceneViewport-Cyi5VmpW.js → CanvasSceneViewport-DnX-GLnW.js} +1 -1
  9. package/dist/assets/{ColorInput-urXoYDcd.js → ColorInput-C2dTdkzX.js} +1 -1
  10. package/dist/assets/{ColorPicker-fsO53K3F.js → ColorPicker-B9M81VNS.js} +1 -1
  11. package/dist/assets/{EntityModelDocument-CDCx-hf_.js → EntityModelDocument-FNj4tul5.js} +1 -1
  12. package/dist/assets/{EnvironmentAssetDocument-BBYZhvSA.js → EnvironmentAssetDocument-g08h3ZVB.js} +1 -1
  13. package/dist/assets/{GameplaySessionTimeline-3YMetB-b.js → GameplaySessionTimeline-Yu5B-TG1.js} +1 -1
  14. package/dist/assets/{ImageViewer-DvXVm5yL.js → ImageViewer-CBhkWbPG.js} +1 -1
  15. package/dist/assets/InspectorObjectPreview-Dk4sn8tZ.js +1 -0
  16. package/dist/assets/{JsonAssetDocument-C9Mkxozv.js → JsonAssetDocument-CHqWLF2i.js} +1 -1
  17. package/dist/assets/{LiveModuleDocument-CblUPJ_-.js → LiveModuleDocument-BefkmGqY.js} +1 -1
  18. package/dist/assets/{LutAssetDocument-BiQlc5zQ.js → LutAssetDocument-5-4NXXbe.js} +1 -1
  19. package/dist/assets/{ModelAssetDocument-BjdNPMXz.js → ModelAssetDocument-CH7AlcCB.js} +1 -1
  20. package/dist/assets/{NonThreeAuthoringBootstrap-B3TVSWs6.js → NonThreeAuthoringBootstrap-DMSO_4d4.js} +1 -1
  21. package/dist/assets/{Object3DDocumentToolbar-BzWMEadR.js → Object3DDocumentToolbar-DN3G2o5s.js} +1 -1
  22. package/dist/assets/Object3DDocumentViewport-BR9kvz7I.js +2 -0
  23. package/dist/assets/{Object3DPreview-DKrmYZ2j.js → Object3DPreview-D00LjDUS.js} +1 -1
  24. package/dist/assets/{OnlineAssetDetail-DL4Uk-QM.js → OnlineAssetDetail-C4v8n7RT.js} +1 -1
  25. package/dist/assets/{PlayBar-CRGQfcnV.js → PlayBar-B90P5gYf.js} +1 -1
  26. package/dist/assets/{QuarksAssetDocument-BZR-t9h6.js → QuarksAssetDocument-lPXyq5l-.js} +1 -1
  27. package/dist/assets/{ReactCanvasControls-_hNcHTPM.js → ReactCanvasControls-Dv6I06PQ.js} +1 -1
  28. package/dist/assets/{RootSelectionOverlay-DbaLtdxe.js → RootSelectionOverlay-D1-F1pmR.js} +1 -1
  29. package/dist/assets/{ShaderAssetDocument-D5ttIEe-.js → ShaderAssetDocument-B4JC-YGd.js} +1 -1
  30. package/dist/assets/{ShadowEditor-DrodXLYb.js → ShadowEditor-CEPGo1Mx.js} +1 -1
  31. package/dist/assets/{SourceAssetViewer-B0gaMP54.js → SourceAssetViewer-T__F0aEm.js} +1 -1
  32. package/dist/assets/StageHost-uNsORdZ-.js +2 -0
  33. package/dist/assets/{StoryPreviewMount-Dd_vJhm8.js → StoryPreviewMount-DQO9k8-_.js} +1 -1
  34. package/dist/assets/{ThreeBoardDocument-y_Z0EIcX.js → ThreeBoardDocument-N5Ioo2co.js} +2 -2
  35. package/dist/assets/{ThreeIsolationSceneContent--4LRLfuN.js → ThreeIsolationSceneContent-BU7FO-Jl.js} +1 -1
  36. package/dist/assets/{ToolObject3DPreview-DESJToBG.js → ToolObject3DPreview-C2ztOXgP.js} +1 -1
  37. package/dist/assets/{Toolbar-CdoTE42L.js → Toolbar-BB0US3yx.js} +1 -1
  38. package/dist/assets/{TransientHint-KoS0JmOy.js → TransientHint-DaIUWu1T.js} +1 -1
  39. package/dist/assets/{VideoViewer-ClPX-MnP.js → VideoViewer-Bmt1yuET.js} +1 -1
  40. package/dist/assets/{ViewportShadingMenu-IEeWeBgg.js → ViewportShadingMenu-DYI5ACUV.js} +1 -1
  41. package/dist/assets/{active-ingest-D5MyeUO-.js → active-ingest-CQ-T424d.js} +2 -2
  42. package/dist/assets/{animation-clock-QSEFZjOZ.js → animation-clock-BXTw2rPK.js} +1 -1
  43. package/dist/assets/{animation-mixers.service-CIQ1NwlZ.js → animation-mixers.service-z0gvYdCG.js} +1 -1
  44. package/dist/assets/{animation-timeline.utility-DclbOIQU.js → animation-timeline.utility-BVCzYk4v.js} +1 -1
  45. package/dist/assets/{asset-budget-asset.menu-B_RUb8LB.js → asset-budget-asset.menu-C86CqxCr.js} +1 -1
  46. package/dist/assets/{asset-budget.action-BVZkCIk9.js → asset-budget.action-Sp-f_6yD.js} +1 -1
  47. package/dist/assets/{asset-budget.document-BxZVPKFn.js → asset-budget.document-CIA7vyXr.js} +1 -1
  48. package/dist/assets/{asset-budget.menu-BNvhZjmV.js → asset-budget.menu-CAOoYAxF.js} +1 -1
  49. package/dist/assets/{asset-editor-persistence-X5GOGEx5.js → asset-editor-persistence-DG12Fgdp.js} +1 -1
  50. package/dist/assets/{asset-loaders-F8EI8K4Y.js → asset-loaders-CBGTSrO3.js} +1 -1
  51. package/dist/assets/{asset-preview-Cl6-TRBJ.js → asset-preview-mzDnf-wr.js} +1 -1
  52. package/dist/assets/{audio-unlock.service-CKCbQfPn.js → audio-unlock.service-JtF7_hg6.js} +1 -1
  53. package/dist/assets/{audio.utility-DGMFI8Wt.js → audio.utility-BQGu_Wcn.js} +1 -1
  54. package/dist/assets/autoplay.service-Be2RmF37.js +1 -0
  55. package/dist/assets/{babylon-authoring-adapter-2siMeodm.js → babylon-authoring-adapter-BPQkNwoK.js} +1 -1
  56. package/dist/assets/{binding-resolver-Clp4dXl1.js → binding-resolver-DPAGUIDr.js} +2 -2
  57. package/dist/assets/blender-motion-worker-ECrqnoHW.js +1 -0
  58. package/dist/assets/{blender-node-editor.document-CQIYeO4U.js → blender-node-editor.document-22XO7Lp2.js} +1 -1
  59. package/dist/assets/{blender-properties-tab-DqqNZUGP.js → blender-properties-tab-DEuBRbX3.js} +1 -1
  60. package/dist/assets/{blender-runtime-host-Dwdi6rRu.js → blender-runtime-host-BMLm9VzO.js} +1 -1
  61. package/dist/assets/{blender-runtime-skin-Bd4w1lC7.js → blender-runtime-skin-CIZQnoLS.js} +42 -42
  62. package/dist/assets/{blender-runtime.document-DzBO4ST4.js → blender-runtime.document-DP6FS4N1.js} +2 -2
  63. package/dist/assets/{blender-screenshot.menu-CkxyIS0r.js → blender-screenshot.menu-B3FtPogM.js} +1 -1
  64. package/dist/assets/{blender-timeline.document-B1tyOGDy.js → blender-timeline.document-DFTIq8nb.js} +1 -1
  65. package/dist/assets/{blender-uv-editor.document-9ZvlBYHd.js → blender-uv-editor.document-Daf1MTF5.js} +1 -1
  66. package/dist/assets/{blender-version.status-D4M0ZmWc.js → blender-version.status-DmgHglZY.js} +1 -1
  67. package/dist/assets/{blender.command-iGuVGF9p.js → blender.command-B9Czew77.js} +1 -1
  68. package/dist/assets/{board-guides-CxSLXJuc.js → board-guides-DYBtNbPZ.js} +1 -1
  69. package/dist/assets/{bridge.command-B7LDeF0u.js → bridge.command-BAk5KygP.js} +3 -3
  70. package/dist/assets/{browserAll-dZH4FGVs.js → browserAll-DA-xHGNc.js} +1 -1
  71. package/dist/assets/{build-player.document-Dnu4oIqU.js → build-player.document-C1kAhyFB.js} +1 -1
  72. package/dist/assets/{build-profiles.document-CVrNm6v9.js → build-profiles.document-yWJonklQ.js} +1 -1
  73. package/dist/assets/{build-progress.status-P0RSr9My.js → build-progress.status-BttuUqo0.js} +1 -1
  74. package/dist/assets/{build-session-BQkdRehF.js → build-session-CwwdnfUw.js} +1 -1
  75. package/dist/assets/{build.action-D-KSIYX6.js → build.action-DpU8tuVs.js} +1 -1
  76. package/dist/assets/{build.command-DyKprFPn.js → build.command-CP28zKNj.js} +1 -1
  77. package/dist/assets/{build.header-cJKcpxbO.js → build.header-CURvxaeN.js} +1 -1
  78. package/dist/assets/{build.menu-C0GriW-y.js → build.menu-BRfZ65ZQ.js} +1 -1
  79. package/dist/assets/{build.service-czCQ8i_m.js → build.service-BnFW1JAl.js} +1 -1
  80. package/dist/assets/{camera-B-6JYcrc.js → camera-l_lLG6UC.js} +1 -1
  81. package/dist/assets/{camera-runtime.inspector-CUxYlsOe.js → camera-runtime.inspector-Cs1bd5x2.js} +1 -1
  82. package/dist/assets/{canvas-design-mount-B9fNsxCy.js → canvas-design-mount-DvI7tUOE.js} +3 -3
  83. package/dist/assets/{canvas-entry-runtime-DMxmlXgn.js → canvas-entry-runtime-wfeFuS54.js} +2 -2
  84. package/dist/assets/{canvas-preview-frames-CeSkpTOo.js → canvas-preview-frames-D6dRfd0W.js} +1 -1
  85. package/dist/assets/{canvas-story-capture.service-B0v6Hgsb.js → canvas-story-capture.service-DhA9aXry.js} +2 -2
  86. package/dist/assets/{capability-coverage-BnIBnsu6.js → capability-coverage-CfnXFlvF.js} +1 -1
  87. package/dist/assets/{collaboration-presence-DMUWVR-Y.js → collaboration-presence-ByEUUm3H.js} +1 -1
  88. package/dist/assets/{collider-B3R33xSA.js → collider-B7QSYf7O.js} +1 -1
  89. package/dist/assets/{component-board.service-BqyyULpE.js → component-board.service-Bk0MuQ6d.js} +2 -2
  90. package/dist/assets/{component-board.service-BOu_0moJ.js → component-board.service-CIWlnTYc.js} +2 -2
  91. package/dist/assets/{component-board.service-N2L18UE3.js → component-board.service-DbUgtRcS.js} +2 -2
  92. package/dist/assets/{component-contracts.service-SAYJL3m5.js → component-contracts.service-D6kldORM.js} +1 -1
  93. package/dist/assets/{component-instance-root-Csn_jFKu.js → component-instance-root-DogGpzkX.js} +1 -1
  94. package/dist/assets/{component-verbs.command-DO3ErJvX.js → component-verbs.command-JquNJPEM.js} +1 -1
  95. package/dist/assets/{component-verbs.service-N2PkecVi.js → component-verbs.service-BN92VcwU.js} +1 -1
  96. package/dist/assets/{config-BfMPkgbX.js → config-DLSNw1sM.js} +2 -2
  97. package/dist/assets/{configurations-CFU-Dhza.js → configurations-CR0efxVB.js} +1 -1
  98. package/dist/assets/{connection.status-CADD42l1.js → connection.status-DvN4Aboe.js} +1 -1
  99. package/dist/assets/{constraints.inspector-DsPRZ_7o.js → constraints.inspector-BV3mvQvj.js} +1 -1
  100. package/dist/assets/{content-bounds-eP0tmLbj.js → content-bounds-BQv2Oj0c.js} +1 -1
  101. package/dist/assets/{contract-system-adapters-B6e3eEm4.js → contract-system-adapters-BIb8P25q.js} +1 -1
  102. package/dist/assets/{coverage.service-CJzGwfqz.js → coverage.service-CFe9kFJN.js} +1 -1
  103. package/dist/assets/{create-runtime-BK5setuG.js → create-runtime-CPqM1E54.js} +1 -1
  104. package/dist/assets/{curve-CTOtUBlv.js → curve-4qOrg0up.js} +1 -1
  105. package/dist/assets/{data-asset-Cet7XPkK.js → data-asset-xN6CCTMA.js} +1 -1
  106. package/dist/assets/{data-ref-DR-Qzemy.js → data-ref-B4Seo9xi.js} +1 -1
  107. package/dist/assets/{debug-bridge-Cf3LI-DK.js → debug-bridge-DRPYwu65.js} +1 -1
  108. package/dist/assets/{debug-registry-BOPmuIUp.js → debug-registry-CJCtzDuS.js} +1 -1
  109. package/dist/assets/{deferred-ingest-play-Cf5GxuCA.js → deferred-ingest-play-DKOivHvJ.js} +2 -2
  110. package/dist/assets/{design-time-canvas-mount-DrZEhuLt.js → design-time-canvas-mount-DGSt4UGj.js} +2 -2
  111. package/dist/assets/{design-time-layers-bDxNuQrn.js → design-time-layers-CygqUHVO.js} +1 -1
  112. package/dist/assets/{design-time-mount.service-CpKFUnyD.js → design-time-mount.service-CGDOOslL.js} +2 -2
  113. package/dist/assets/{design-time-mount.service-je1c-KMA.js → design-time-mount.service-DrFOCYoJ.js} +2 -2
  114. package/dist/assets/{design-time-react-mount-BA5iKaF-.js → design-time-react-mount-ubpRtEiV.js} +1 -1
  115. package/dist/assets/{document-preview-three-gkEVqHtw.js → document-preview-three-CpLhA9SR.js} +1 -1
  116. package/dist/assets/{dom-authoring-adapter-Bj2xilqO.js → dom-authoring-adapter-bSx05xrh.js} +1 -1
  117. package/dist/assets/{draco3d-DvlGNNIt.js → draco3d-BE2uLkcN.js} +1 -1
  118. package/dist/assets/{edit-mode-audio.service-CmfXIYXD.js → edit-mode-audio.service-IOvtRXzQ.js} +1 -1
  119. package/dist/assets/{edit-mode-authoring-CL-UHzaJ.js → edit-mode-authoring-Bsg27PMt.js} +1 -1
  120. package/dist/assets/{edit-mode-networking.service-Bc8In_lI.js → edit-mode-networking.service-Dw1bCbOF.js} +1 -1
  121. package/dist/assets/{editor-api-BYvld5jR.js → editor-api-DjYNAvCB.js} +1 -1
  122. package/dist/assets/{editor-layers-CH7HhT0X.js → editor-layers-FpsUBtDt.js} +1 -1
  123. package/dist/assets/{editor-shell-store-amyZ1RI8.js → editor-shell-store-Dh5KTmnF.js} +1 -1
  124. package/dist/assets/{entity-object-3G5QPQLw.js → entity-object-WoH_5Pd5.js} +1 -1
  125. package/dist/assets/{extend-DjlabNLr.js → extend-BBGBYbzV.js} +1 -1
  126. package/dist/assets/{fork-menu-B8yfLOUH.js → fork-menu-C1ya-RsC.js} +1 -1
  127. package/dist/assets/{frame-debugger-store-BV3FLhEY.js → frame-debugger-store-BgwwsHOP.js} +1 -1
  128. package/dist/assets/{game-contract-seams-BDgW-mIt.js → game-contract-seams-Dp3JsvmQ.js} +1 -1
  129. package/dist/assets/{game-css-scope-transform-DhJl2A8e.js → game-css-scope-transform-BVH7CeZb.js} +1 -1
  130. package/dist/assets/{game-document.service-DAUO1T0i.js → game-document.service-YXBkOXqD.js} +1 -1
  131. package/dist/assets/{game-eval.command-Cio3Dkxy.js → game-eval.command-BzdgNduI.js} +1 -1
  132. package/dist/assets/{game-module-access-PdJNp8US.js → game-module-access-ClVTJ7jN.js} +1 -1
  133. package/dist/assets/{game-network-BURPV4Ya.js → game-network-Bbfm5CA3.js} +3 -3
  134. package/dist/assets/{gameplay-export-D5hkueX8.js → gameplay-export-DCGjuCRu.js} +1 -1
  135. package/dist/assets/{gameplay-replay-Cv7zCCW5.js → gameplay-replay-BuXtZE-A.js} +1 -1
  136. package/dist/assets/{gameplay.command-B1TFqBle.js → gameplay.command-B7ibKFu8.js} +1 -1
  137. package/dist/assets/{generation-jobs-BU0DwlfA.js → generation-jobs-CpIv2bww.js} +1 -1
  138. package/dist/assets/{generation.service-BS-sYsoC.js → generation.service-D6vPcLAO.js} +1 -1
  139. package/dist/assets/{generations-CtI5Nfto.js → generations-Ca19xCMv.js} +1 -1
  140. package/dist/assets/{generations.status-Bckm5TSn.js → generations.status-D-52M8Jc.js} +1 -1
  141. package/dist/assets/{hierarchy-marks-R3bbWFw8.js → hierarchy-marks-C1luVKmT.js} +1 -1
  142. package/dist/assets/{hosted-asset-materialization-B0P9Dz4H.js → hosted-asset-materialization-D84vocze.js} +1 -1
  143. package/dist/assets/{index-CtcNtXoD.js → index-8IrqWSN5.js} +1 -1
  144. package/dist/assets/{index-cFAgtv_D.js → index-BeRzMLts.js} +7 -7
  145. package/dist/assets/{index-DgwfPo6P.js → index-BhZ_kPE2.js} +1 -1
  146. package/dist/assets/{index-CItI0GWb.js → index-Bx21uKfv.js} +1 -1
  147. package/dist/assets/{index-D5LetU3U.js → index-CTxZs1N_.js} +1 -1
  148. package/dist/assets/{index-BU18Vn_5.js → index-DQ94-LSC.js} +2 -2
  149. package/dist/assets/{index-DZsMLhE7.js → index-DQjM7urk.js} +1 -1
  150. package/dist/assets/{index-CQI0xONY.js → index-DmYlostm.js} +1 -1
  151. package/dist/assets/{index-BiGppEbl.js → index-pCSwNNkA.js} +1 -1
  152. package/dist/assets/{inference-diagnostics-BU6iwPab.js → inference-diagnostics-Bo2HtZUZ.js} +1 -1
  153. package/dist/assets/{ingest-boot-viewport-0qgtwykF.js → ingest-boot-viewport-9IoGCxt9.js} +1 -1
  154. package/dist/assets/{ingest-siblings-DpZO2cN7.js → ingest-siblings-CuBZ108A.js} +1 -1
  155. package/dist/assets/{ingest-source-persistence-DM1yk0WC.js → ingest-source-persistence-C4BYH_zC.js} +1 -1
  156. package/dist/assets/{ingest.service-Q6KfT5gU.js → ingest.service-D8GtCgxN.js} +1 -1
  157. package/dist/assets/{inspect-DTtq2ZaM.js → inspect-umGXOTDA.js} +1 -1
  158. package/dist/assets/instances.command-DLRWiNRY.js +1 -0
  159. package/dist/assets/{json-history-resource-Bzmw9S9j.js → json-history-resource-DJS8D3mL.js} +1 -1
  160. package/dist/assets/{layered-pick-DpPgGsmw.js → layered-pick-9tVs_fxD.js} +1 -1
  161. package/dist/assets/{light-CqdOel9A.js → light-DauxxWP1.js} +1 -1
  162. package/dist/assets/{live-project-verbs-Dk8dl25b.js → live-project-verbs-B0Wo9rKR.js} +1 -1
  163. package/dist/assets/{machine.document-CkmCGbrt.js → machine.document-bM0sw3Ng.js} +1 -1
  164. package/dist/assets/{machines.finder-CmTp1FpN.js → machines.finder-74bWIpZv.js} +1 -1
  165. package/dist/assets/{material-BeA_YaoR.js → material-BlfSw48G.js} +1 -1
  166. package/dist/assets/{material-factory-D8NblM4k.js → material-factory-Zr8UWBZc.js} +1 -1
  167. package/dist/assets/{mesh-DcSKml6N.js → mesh-CoeXBHtT.js} +1 -1
  168. package/dist/assets/{model-asset-sections.service-CslipfqH.js → model-asset-sections.service-CajObyai.js} +1 -1
  169. package/dist/assets/{model-inspection-BOADEfEi.js → model-inspection-BObdjlyQ.js} +1 -1
  170. package/dist/assets/{model-thumbnail-CtcWoVlh.js → model-thumbnail-BP2m4n70.js} +1 -1
  171. package/dist/assets/{models.finder-CLSmgLM0.js → models.finder-Ds53y7we.js} +1 -1
  172. package/dist/assets/{module-mode-CWaM_UjF.js → module-mode-Bu8X2IA_.js} +2 -2
  173. package/dist/assets/{mount-canvas-ingest-root-h6iaPwvu.js → mount-canvas-ingest-root-B6U08RVE.js} +2 -2
  174. package/dist/assets/{mount-dom-ingest-root-Dv9w9jVQ.js → mount-dom-ingest-root-Ds2pIKLw.js} +2 -2
  175. package/dist/assets/{mount-ingest-root-BmowXjnM.js → mount-ingest-root-BuBJymEm.js} +2 -2
  176. package/dist/assets/{mount-manifest-DT-5TZIO.js → mount-manifest-CtBzFuse.js} +1 -1
  177. package/dist/assets/{mount-three-ingest-root-yUA3l6cH.js → mount-three-ingest-root-BzFXgauN.js} +1 -1
  178. package/dist/assets/{mounted-authoring-8UW6roGY.js → mounted-authoring-COxaZfrw.js} +1 -1
  179. package/dist/assets/{mounted-story-viewport-source-TLKhxhBG.js → mounted-story-viewport-source-ObnP-qVu.js} +1 -1
  180. package/dist/assets/{native-debug-module-DCkYCR9b.js → native-debug-module-ADnfXW8Y.js} +1 -1
  181. package/dist/assets/{navigation-Bwy6QgMh.js → navigation-C3N7fOUh.js} +1 -1
  182. package/dist/assets/{navmesh.menu-D4slOhpR.js → navmesh.menu-C9gJO9ES.js} +1 -1
  183. package/dist/assets/{navmesh.service-Bg26JytG.js → navmesh.service-CSqj1XV5.js} +1 -1
  184. package/dist/assets/network-observer.service-HF3M8uBZ.js +1 -0
  185. package/dist/assets/{network.utility-BDVzqEpk.js → network.utility-Xn3JPeph.js} +1 -1
  186. package/dist/assets/{object3d-document-session-registry-CYplHMV_.js → object3d-document-session-registry-gD07I_EN.js} +2 -2
  187. package/dist/assets/{oid-transform-DuoR1Fev.js → oid-transform-BJsRXpGE.js} +1 -1
  188. package/dist/assets/{particles-Bmg7sImx.js → particles-DkR7Cnbq.js} +1 -1
  189. package/dist/assets/{pixi-authoring-adapter-DYnS9D_i.js → pixi-authoring-adapter-C5Us9AJl.js} +1 -1
  190. package/dist/assets/{pixi-live-write-target-D98dSXxp.js → pixi-live-write-target-MK352-wm.js} +1 -1
  191. package/dist/assets/{play.command-DuMFJnmM.js → play.command-DzRlPp6K.js} +2 -2
  192. package/dist/assets/{presentation-CtIeUSei.js → presentation-B_ZbsAMV.js} +1 -1
  193. package/dist/assets/{product-DFXPvo0c.js → product-CWNjZkXt.js} +1 -1
  194. package/dist/assets/{profiler.action-CRth9CZ2.js → profiler.action-BxMytW3w.js} +1 -1
  195. package/dist/assets/{profiler.menu-BTUS2V4D.js → profiler.menu-8RaGonCN.js} +1 -1
  196. package/dist/assets/{profiler.utility-CXKvIhYY.js → profiler.utility-BmOcweu3.js} +1 -1
  197. package/dist/assets/{project-authoring-session-olZausJQ.js → project-authoring-session-DcHsu_CR.js} +2 -2
  198. package/dist/assets/{properties-bone-constraints.inspector-B8eVEgQs.js → properties-bone-constraints.inspector-BzLBzXrp.js} +1 -1
  199. package/dist/assets/{properties-bone.inspector-DDci-SQy.js → properties-bone.inspector-BbXsdlzz.js} +1 -1
  200. package/dist/assets/{properties-collection.inspector-BOZGlg1E.js → properties-collection.inspector-qEbvAYQk.js} +1 -1
  201. package/dist/assets/{properties-constraints.inspector-BMDToNlw.js → properties-constraints.inspector-XeHIdu0O.js} +1 -1
  202. package/dist/assets/{properties-data.inspector-hod6HyLu.js → properties-data.inspector-L88rP9l_.js} +1 -1
  203. package/dist/assets/{properties-material.inspector-D2FogLXQ.js → properties-material.inspector-DIoiHUb7.js} +1 -1
  204. package/dist/assets/{properties-modifiers.inspector-DF4mAZtE.js → properties-modifiers.inspector-BtaK5uc2.js} +1 -1
  205. package/dist/assets/{properties-object.inspector-Dipbo-p8.js → properties-object.inspector-Bk62G2R3.js} +1 -1
  206. package/dist/assets/{properties-output.inspector-PPp8EjRZ.js → properties-output.inspector-Nlw_0LKD.js} +1 -1
  207. package/dist/assets/{properties-particles.inspector-DmlfqDdO.js → properties-particles.inspector-Kvv9SpkL.js} +1 -1
  208. package/dist/assets/{properties-physics.inspector-BcINowSD.js → properties-physics.inspector-DsEqyzoo.js} +1 -1
  209. package/dist/assets/{properties-render.inspector-8-mITVWA.js → properties-render.inspector-BYS2Opqb.js} +1 -1
  210. package/dist/assets/{properties-scene.inspector-BpvZcTZw.js → properties-scene.inspector-CRqHdUfQ.js} +1 -1
  211. package/dist/assets/{properties-texture.inspector-BnwyIBIi.js → properties-texture.inspector-CTQ3r4iT.js} +1 -1
  212. package/dist/assets/{properties-view-layer.inspector-Dp7dKGWs.js → properties-view-layer.inspector-CIelG77G.js} +1 -1
  213. package/dist/assets/{properties-world.inspector-SCxCGP-9.js → properties-world.inspector-Bt4VadbP.js} +1 -1
  214. package/dist/assets/{r3f-design-session-Byem_WS6.js → r3f-design-session-xFwyS5gl.js} +2 -2
  215. package/dist/assets/{r3f-physics-binding-BVU-oj2D.js → r3f-physics-binding-DAKpj6Z_.js} +1 -1
  216. package/dist/assets/{r3f-source-authoring-adapter-CSei_iBY.js → r3f-source-authoring-adapter-BK0TQ32g.js} +1 -1
  217. package/dist/assets/{react-canvas-navigation-gztX6CTu.js → react-canvas-navigation-CFVkX1rA.js} +1 -1
  218. package/dist/assets/{react-inspector.service-Cq8JEPik.js → react-inspector.service-DOZAQWk2.js} +1 -1
  219. package/dist/assets/{react-story-board-qBLyzrh-.js → react-story-board-m8JLSSuQ.js} +1 -1
  220. package/dist/assets/{react-three-rapier.esm-BeiV2Wq-.js → react-three-rapier.esm-CnLTTW1T.js} +1 -1
  221. package/dist/assets/{react-world-authoring-adapter-CUpkBtmp.js → react-world-authoring-adapter-DQNpj4pL.js} +1 -1
  222. package/dist/assets/{realm-services-COQmdHaL.js → realm-services-DDvu3_Iv.js} +1 -1
  223. package/dist/assets/{reflection-probe-capture.inspector-CwNLXSyV.js → reflection-probe-capture.inspector-CXHB2PyJ.js} +1 -1
  224. package/dist/assets/{registry-C1p1_Rv2.js → registry-BlAFZ_wU.js} +1 -1
  225. package/dist/assets/{relative-import-specifier-Cf0_BtCw.js → relative-import-specifier-DmxFmPz2.js} +1 -1
  226. package/dist/assets/{render-env-Bmdv9fSE.js → render-env-uJeu2ahE.js} +1 -1
  227. package/dist/assets/{render-features-W58SVbbT.js → render-features-B039O46a.js} +1 -1
  228. package/dist/assets/{render-settings-Vu9CpzBi.js → render-settings-Gx2FJvLE.js} +1 -1
  229. package/dist/assets/{resolve-three-HpVkP48k.js → resolve-three-tkoL57hD.js} +3 -3
  230. package/dist/assets/{root-seam-contract-BYKvnnTt.js → root-seam-contract-CXPjB9fM.js} +1 -1
  231. package/dist/assets/{run-selection-CaOq6qDl.js → run-selection-BoK66lYR.js} +1 -1
  232. package/dist/assets/{scene-capture-CuukhQRd.js → scene-capture-DZAm8Xsb.js} +1 -1
  233. package/dist/assets/{scene-document.service-D-7s2eUO.js → scene-document.service-BIPUZVoR.js} +2 -2
  234. package/dist/assets/{scene-framing-DJll-un4.js → scene-framing-Y2cvLk94.js} +1 -1
  235. package/dist/assets/{seeded-random-3pTBWsgC.js → seeded-random-Ccte60N9.js} +1 -1
  236. package/dist/assets/{setup-renderer-Cw8qdO25.js → setup-renderer-B5dPY6xF.js} +1 -1
  237. package/dist/assets/{source-object3d-authoring-adapter-CiV9hr_l.js → source-object3d-authoring-adapter-qmF911Z2.js} +1 -1
  238. package/dist/assets/{source-persistence-backend-BaUP8hOX.js → source-persistence-backend-CdMq8hmt.js} +1 -1
  239. package/dist/assets/{stage-keyboard-CMvoZA6K.js → stage-keyboard-ZsT3ioxr.js} +1 -1
  240. package/dist/assets/{stage-overlay-set-B493KEWu.js → stage-overlay-set-BUr2yJRP.js} +1 -1
  241. package/dist/assets/{stage-presence-markers-Ddnu3AE3.js → stage-presence-markers-Bt2SjhvS.js} +1 -1
  242. package/dist/assets/{stage-transform-tools-DHGdBZ3k.js → stage-transform-tools-B-GN798Q.js} +1 -1
  243. package/dist/assets/{standard-viewport-dressing-GnJWRGe2.js → standard-viewport-dressing-Bgi0-gIs.js} +1 -1
  244. package/dist/assets/{state-watch.action-BpOfeBco.js → state-watch.action-CyAGDdZJ.js} +1 -1
  245. package/dist/assets/{state-watch.menu-04MPIYPm.js → state-watch.menu-9aJRht7S.js} +1 -1
  246. package/dist/assets/{state-watch.utility-Cw3o3jfb.js → state-watch.utility-BaIpNdvh.js} +1 -1
  247. package/dist/assets/{story-capture-B3A3XH7n.js → story-capture-Cx0h8vM4.js} +1 -1
  248. package/dist/assets/{story-documents-DQWzzviR.js → story-documents-MTv434od.js} +1 -1
  249. package/dist/assets/{story-documents.service-Dwri-cm5.js → story-documents.service-BBtt30iB.js} +1 -1
  250. package/dist/assets/{story-documents.service-BDnAswhX.js → story-documents.service-C6dNal8U.js} +1 -1
  251. package/dist/assets/{story-media-presence-D6g__A85.js → story-media-presence-lWDI0c6F.js} +1 -1
  252. package/dist/assets/{story-pixi-preview-Baqdw7IG.js → story-pixi-preview-VBNFxeQt.js} +1 -1
  253. package/dist/assets/{story-presentation-CYi1FGiu.js → story-presentation-CZ2IKkKx.js} +1 -1
  254. package/dist/assets/{story-three-preview-yfz_G-RI.js → story-three-preview-DcLK2pjy.js} +2 -2
  255. package/dist/assets/{studio-environment-CH7uwg4C.js → studio-environment-CziYh-2x.js} +1 -1
  256. package/dist/assets/{surface-state-CRaGXBZr.js → surface-state-Civ-vJIW.js} +1 -1
  257. package/dist/assets/{syntactic-prop-specs-BlvAiMxq.js → syntactic-prop-specs-B_X3gxVf.js} +1 -1
  258. package/dist/assets/{team-playtest.service-D3zqXyw5.js → team-playtest.service-Bac-gvP4.js} +1 -1
  259. package/dist/assets/{three-DCkpVjka.js → three-DCPw6MrV.js} +1 -1
  260. package/dist/assets/{three-authoring-adapter-D-XUqED2.js → three-authoring-adapter-BGWRWAZM.js} +1 -1
  261. package/dist/assets/three-authoring.service-CardXMHi.js +2 -0
  262. package/dist/assets/{three-ingest-runtime-CRvw31w9.js → three-ingest-runtime-RhgxgLSL.js} +1 -1
  263. package/dist/assets/{three-integration-C2QGqcqQ.js → three-integration-CJA9IL4X.js} +2 -2
  264. package/dist/assets/three-integration.service-Bb12a0HW.js +1 -0
  265. package/dist/assets/{three-projection-core-B_fHSGZn.js → three-projection-core-DA9s0oC2.js} +1 -1
  266. package/dist/assets/{three-state-BA8dTl-G.js → three-state-B_U7u3xS.js} +1 -1
  267. package/dist/assets/{three-story-capture.service-DwYgUcAh.js → three-story-capture.service-C8avFEHO.js} +2 -2
  268. package/dist/assets/{three-story-model-BN336fnz.js → three-story-model-BBiPWAR3.js} +1 -1
  269. package/dist/assets/{three-viewport-presentation-Ys4BApui.js → three-viewport-presentation-cBbDcMmj.js} +1 -1
  270. package/dist/assets/{transform-mode-request-CbLV1mru.js → transform-mode-request-Dio4iBjC.js} +1 -1
  271. package/dist/assets/{transport-strip-BhBJrkWq.js → transport-strip-m7a-u3Pt.js} +1 -1
  272. package/dist/assets/transport.header-OibOxdjK.js +1 -0
  273. package/dist/assets/{tuples-DNF52fLz.js → tuples-Cn3DT6Tc.js} +1 -1
  274. package/dist/assets/{ui-board-document-B5MCtj21.js → ui-board-document-BdIXeT4X.js} +2 -2
  275. package/dist/assets/{user-data-ZZO3OVi6.js → user-data-jnGijikA.js} +1 -1
  276. package/dist/assets/{utility-view-state-ChjloR5W.js → utility-view-state-CD8Q8-ve.js} +1 -1
  277. package/dist/assets/{viewport-door-BSOgAqjP.js → viewport-door-DmEc8F8a.js} +1 -1
  278. package/dist/assets/{viewport-root-presentation--xgH-spf.js → viewport-root-presentation-DkteTdAF.js} +1 -1
  279. package/dist/assets/{viewport-surface-status-BW-G364J.js → viewport-surface-status-Cz4UGPVc.js} +1 -1
  280. package/dist/assets/{webworkerAll-D8rD5X1b.js → webworkerAll-C3_PezoL.js} +1 -1
  281. package/dist/assets/{workspace-arrangement-BARx98O2.js → workspace-arrangement-HE3ZO3qD.js} +1 -1
  282. package/dist/assets/{world-documents-D7cabN31.js → world-documents-DRiBxR40.js} +1 -1
  283. package/dist/assets/{world-root-stage-binding-BxsYda3b.js → world-root-stage-binding-xnxZZGVC.js} +1 -1
  284. package/dist/assets/{xstate-animation-binding-CiReI46R.js → xstate-animation-binding-YElkNQyT.js} +1 -1
  285. package/dist/assets/{xstate-animation-meta-CFb6s7O4.js → xstate-animation-meta-oLuT24EQ.js} +1 -1
  286. package/dist-node/cli.js +18 -18
  287. package/package.json +16 -16
  288. package/dist/assets/InspectorObjectPreview-CZvolDbt.js +0 -1
  289. package/dist/assets/Object3DDocumentViewport-CLewwxph.js +0 -2
  290. package/dist/assets/StageHost-CbSf3_pc.js +0 -2
  291. package/dist/assets/autoplay.service-BEcShHAE.js +0 -1
  292. package/dist/assets/instances.command--SU6F-l0.js +0 -1
  293. package/dist/assets/network-observer.service-CeaBZoKU.js +0 -1
  294. package/dist/assets/three-authoring.service-CoWSgwfm.js +0 -2
  295. package/dist/assets/three-integration.service-BYDiMYEc.js +0 -1
  296. package/dist/assets/transport.header-D_wid8TK.js +0 -1
@@ -1 +1 @@
1
- import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-cFAgtv_D.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const d=o({clip:n().min(1).describe("Animation clip name this child plays"),threshold:r().describe("1D/2D blend position on the primary parameter axis"),thresholdY:r().optional().describe("2D blend position on the secondary parameter axis (2D blend trees only)"),weight:r().min(0).optional().describe('Explicit weight for "direct" blend trees (ignored by 1D/2D)')}).strict(),y=o({type:l("1D").describe("Interpolates linearly between sorted children by threshold"),parameter:n().min(1).describe("Context/selector value driving the blend"),children:c(d).min(2,"1D blend tree needs at least 2 children to interpolate between")}).strict(),v=o({type:l("2D").describe("Inverse-distance-weights children by (parameter, parameterY) position"),parameter:n().min(1).describe("Primary axis context/selector value"),parameterY:n().min(1).describe("Secondary axis context/selector value"),children:c(d.extend({thresholdY:r()})).min(1,"2D blend tree needs at least 1 child")}).strict(),g=o({type:l("direct").describe("Each child has an explicit weight, normalized to sum to 1"),parameter:n().default(""),children:c(d.extend({weight:r().min(0)})).min(1,"direct blend tree needs at least 1 child")}).strict(),A=b("type",[y,v,g]);function Y(e){return e}const p=o({duration:r().min(0).default(0).describe("Seconds to blend from the previously active clip into this state on entry, applied via native `AnimationAction.crossFadeTo`/`fadeIn` (E2). 0 = instant activation, no fade."),warp:m().default(!1).describe("Passed through to AnimationAction.crossFadeTo's `warp` param — linearly warps timeScale across the two clips during the blend so differing clip lengths line up. Default false.")}).strict().describe("Blend-in/out/crossfade timing for entering this state"),x=o({include:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are retained"),exclude:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are removed")}).strict().refine(e=>!!(e.include?.length||e.exclude?.length),{message:"boneMask needs at least one include or exclude bone name"}).describe("Filters animation tracks by named Object3D/Bone subtrees"),h={layer:n().min(1).optional().describe("Composition layer name; omitted means the single base layer"),weight:r().min(0).max(1).optional().describe("Layer weight multiplier from 0 to 1; defaults to 1"),blendMode:f(["override","additive"]).optional().describe("Native Three normal/override or additive action blending; defaults to override"),boneMask:x.optional().describe("Optional include/exclude filter applied to every clip track in this state")},w=o({clip:n().min(1).describe("Single clip to play while this XState state is active"),loop:m().default(!0).describe("Loop the clip (THREE.LoopRepeat) vs play once (THREE.LoopOnce, clamped on last frame)"),speed:r().positive().default(1).describe("Playback speed multiplier (AnimationAction.timeScale)"),crossfade:p.optional(),...h}).strict(),S=o({blendTree:A.describe("Multiple clips blended by a live context/selector-driven parameter"),crossfade:p.optional(),...h}).strict(),D=u([w,S]);function M(e){return"clip"in e}function $(e){return"blendTree"in e}class T extends Error{constructor(a,i,t){super(a),this.stateId=i,this.issues=t,this.name="AnimationMetaValidationError"}}function B(e,a){const i=D.safeParse(a);if(!i.success){const t=i.error.issues.map(s=>`${s.path.length?s.path.join("."):"(root)"}: ${s.message}`).join("; ");throw new T(`[xstate-animation] invalid meta.animation for state "${e}": ${t}`,e,i.error.issues)}return i.data}function R(e){const a=[],i=t=>{t.meta&&"animation"in t.meta&&t.meta.animation!==void 0&&a.push({stateId:t.id,meta:B(t.id,t.meta.animation)});for(const s of Object.values(t.states??{}))i(s)};return i(e),a}function H(e){return M(e)?[e.clip]:e.blendTree.children.map(a=>a.clip)}export{A as AnimationBlendTreeSchema,T as AnimationMetaValidationError,D as StateAnimationMetaSchema,Y as asBlendTreeDef,H as clipNamesOf,R as collectMachineAnimationMeta,$ as isBlendTreeAnimationMeta,M as isClipAnimationMeta,B as parseStateAnimationMeta};
1
+ import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-BeRzMLts.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const d=o({clip:n().min(1).describe("Animation clip name this child plays"),threshold:r().describe("1D/2D blend position on the primary parameter axis"),thresholdY:r().optional().describe("2D blend position on the secondary parameter axis (2D blend trees only)"),weight:r().min(0).optional().describe('Explicit weight for "direct" blend trees (ignored by 1D/2D)')}).strict(),y=o({type:l("1D").describe("Interpolates linearly between sorted children by threshold"),parameter:n().min(1).describe("Context/selector value driving the blend"),children:c(d).min(2,"1D blend tree needs at least 2 children to interpolate between")}).strict(),v=o({type:l("2D").describe("Inverse-distance-weights children by (parameter, parameterY) position"),parameter:n().min(1).describe("Primary axis context/selector value"),parameterY:n().min(1).describe("Secondary axis context/selector value"),children:c(d.extend({thresholdY:r()})).min(1,"2D blend tree needs at least 1 child")}).strict(),g=o({type:l("direct").describe("Each child has an explicit weight, normalized to sum to 1"),parameter:n().default(""),children:c(d.extend({weight:r().min(0)})).min(1,"direct blend tree needs at least 1 child")}).strict(),A=b("type",[y,v,g]);function Y(e){return e}const p=o({duration:r().min(0).default(0).describe("Seconds to blend from the previously active clip into this state on entry, applied via native `AnimationAction.crossFadeTo`/`fadeIn` (E2). 0 = instant activation, no fade."),warp:m().default(!1).describe("Passed through to AnimationAction.crossFadeTo's `warp` param — linearly warps timeScale across the two clips during the blend so differing clip lengths line up. Default false.")}).strict().describe("Blend-in/out/crossfade timing for entering this state"),x=o({include:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are retained"),exclude:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are removed")}).strict().refine(e=>!!(e.include?.length||e.exclude?.length),{message:"boneMask needs at least one include or exclude bone name"}).describe("Filters animation tracks by named Object3D/Bone subtrees"),h={layer:n().min(1).optional().describe("Composition layer name; omitted means the single base layer"),weight:r().min(0).max(1).optional().describe("Layer weight multiplier from 0 to 1; defaults to 1"),blendMode:f(["override","additive"]).optional().describe("Native Three normal/override or additive action blending; defaults to override"),boneMask:x.optional().describe("Optional include/exclude filter applied to every clip track in this state")},w=o({clip:n().min(1).describe("Single clip to play while this XState state is active"),loop:m().default(!0).describe("Loop the clip (THREE.LoopRepeat) vs play once (THREE.LoopOnce, clamped on last frame)"),speed:r().positive().default(1).describe("Playback speed multiplier (AnimationAction.timeScale)"),crossfade:p.optional(),...h}).strict(),S=o({blendTree:A.describe("Multiple clips blended by a live context/selector-driven parameter"),crossfade:p.optional(),...h}).strict(),D=u([w,S]);function M(e){return"clip"in e}function $(e){return"blendTree"in e}class T extends Error{constructor(a,i,t){super(a),this.stateId=i,this.issues=t,this.name="AnimationMetaValidationError"}}function B(e,a){const i=D.safeParse(a);if(!i.success){const t=i.error.issues.map(s=>`${s.path.length?s.path.join("."):"(root)"}: ${s.message}`).join("; ");throw new T(`[xstate-animation] invalid meta.animation for state "${e}": ${t}`,e,i.error.issues)}return i.data}function R(e){const a=[],i=t=>{t.meta&&"animation"in t.meta&&t.meta.animation!==void 0&&a.push({stateId:t.id,meta:B(t.id,t.meta.animation)});for(const s of Object.values(t.states??{}))i(s)};return i(e),a}function H(e){return M(e)?[e.clip]:e.blendTree.children.map(a=>a.clip)}export{A as AnimationBlendTreeSchema,T as AnimationMetaValidationError,D as StateAnimationMetaSchema,Y as asBlendTreeDef,H as clipNamesOf,R as collectMachineAnimationMeta,$ as isBlendTreeAnimationMeta,M as isClipAnimationMeta,B as parseStateAnimationMeta};
package/dist-node/cli.js CHANGED
@@ -2316,7 +2316,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
2316
2316
  var package_default = {
2317
2317
  name: "@volter/game-editor",
2318
2318
  author: "Volter AI, Inc.",
2319
- version: "0.5.134",
2319
+ version: "0.5.136",
2320
2320
  publishConfig: {
2321
2321
  access: "public"
2322
2322
  },
@@ -2365,22 +2365,22 @@ var package_default = {
2365
2365
  }
2366
2366
  },
2367
2367
  dependencies: {
2368
- "@volter/editor-core": "0.5.134",
2369
- "@volter/editor-game": "0.5.134",
2370
- "@volter/editor-react": "0.5.134",
2371
- "@volter/editor-threejs": "0.5.134",
2372
- "@volter/editor-xstate": "0.5.134",
2373
- "@volter/editor-blender": "0.1.74",
2374
- "@volter/dawproject": "0.5.134",
2375
- "@volter/editor-dawproject": "0.5.134",
2376
- "@volter/blender-engine": "0.1.72",
2377
- "@volter/editor-project": "0.5.134",
2378
- "@volter/editor-sdk": "0.5.134",
2379
- "@volter/editor-live": "0.5.134",
2380
- "@volter/game-live": "0.5.134",
2368
+ "@volter/editor-core": "0.5.136",
2369
+ "@volter/editor-game": "0.5.136",
2370
+ "@volter/editor-react": "0.5.136",
2371
+ "@volter/editor-threejs": "0.5.136",
2372
+ "@volter/editor-xstate": "0.5.136",
2373
+ "@volter/editor-blender": "0.1.76",
2374
+ "@volter/dawproject": "0.5.136",
2375
+ "@volter/editor-dawproject": "0.5.136",
2376
+ "@volter/blender-engine": "0.1.74",
2377
+ "@volter/editor-project": "0.5.136",
2378
+ "@volter/editor-sdk": "0.5.136",
2379
+ "@volter/editor-live": "0.5.136",
2380
+ "@volter/game-live": "0.5.136",
2381
2381
  "@modelcontextprotocol/sdk": "1.30.0",
2382
- "@volter/game-runtime": "0.5.134",
2383
- "@volter/threejs-runtime": "0.5.134",
2382
+ "@volter/game-runtime": "0.5.136",
2383
+ "@volter/threejs-runtime": "0.5.136",
2384
2384
  undici: "7.29.1",
2385
2385
  typescript: "5.9.3",
2386
2386
  "@colyseus/schema": "^4.0.14",
@@ -7567,7 +7567,7 @@ async function connectHostedAttachment(attachment) {
7567
7567
  }, close: () => socket.close() };
7568
7568
  }
7569
7569
 
7570
- // ../editor-core/dist/server/chunk-7GX6XNCW.js
7570
+ // ../editor-core/dist/server/chunk-MLN3PZ72.js
7571
7571
  import { Agent, fetch as nodeFetch } from "undici";
7572
7572
  function createDispatcher(timeoutMs) {
7573
7573
  return new Agent({ headersTimeout: timeoutMs, bodyTimeout: timeoutMs });
@@ -8908,7 +8908,7 @@ function openBrowserUrl(browserUrl, options) {
8908
8908
  }
8909
8909
  }
8910
8910
 
8911
- // ../editor-core/dist/server/chunk-Z73D7UHN.js
8911
+ // ../editor-core/dist/server/chunk-HA4HB4UK.js
8912
8912
  import { createHash as createHash4 } from "node:crypto";
8913
8913
  import { mkdirSync as mkdirSync7, readFileSync as readFileSync9, writeFileSync as writeFileSync7, rmSync as rmSync4, existsSync as existsSync8 } from "node:fs";
8914
8914
  import { homedir as homedir4 } from "node:os";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@volter/game-editor",
3
3
  "author": "Volter AI, Inc.",
4
- "version": "0.5.134",
4
+ "version": "0.5.136",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -50,22 +50,22 @@
50
50
  }
51
51
  },
52
52
  "dependencies": {
53
- "@volter/editor-core": "0.5.134",
54
- "@volter/editor-game": "0.5.134",
55
- "@volter/editor-react": "0.5.134",
56
- "@volter/editor-threejs": "0.5.134",
57
- "@volter/editor-xstate": "0.5.134",
58
- "@volter/editor-blender": "0.1.74",
59
- "@volter/dawproject": "0.5.134",
60
- "@volter/editor-dawproject": "0.5.134",
61
- "@volter/blender-engine": "0.1.72",
62
- "@volter/editor-project": "0.5.134",
63
- "@volter/editor-sdk": "0.5.134",
64
- "@volter/editor-live": "0.5.134",
65
- "@volter/game-live": "0.5.134",
53
+ "@volter/editor-core": "0.5.136",
54
+ "@volter/editor-game": "0.5.136",
55
+ "@volter/editor-react": "0.5.136",
56
+ "@volter/editor-threejs": "0.5.136",
57
+ "@volter/editor-xstate": "0.5.136",
58
+ "@volter/editor-blender": "0.1.76",
59
+ "@volter/dawproject": "0.5.136",
60
+ "@volter/editor-dawproject": "0.5.136",
61
+ "@volter/blender-engine": "0.1.74",
62
+ "@volter/editor-project": "0.5.136",
63
+ "@volter/editor-sdk": "0.5.136",
64
+ "@volter/editor-live": "0.5.136",
65
+ "@volter/game-live": "0.5.136",
66
66
  "@modelcontextprotocol/sdk": "1.30.0",
67
- "@volter/game-runtime": "0.5.134",
68
- "@volter/threejs-runtime": "0.5.134",
67
+ "@volter/game-runtime": "0.5.136",
68
+ "@volter/threejs-runtime": "0.5.136",
69
69
  "undici": "7.29.1",
70
70
  "typescript": "5.9.3",
71
71
  "@colyseus/schema": "^4.0.14",
@@ -1 +0,0 @@
1
- import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-CDCx-hf_.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-amyZ1RI8.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-CH7HhT0X.js";import"./workspace-arrangement-BARx98O2.js";import"./index-cFAgtv_D.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-ZZO3OVi6.js";import"./entity-object-3G5QPQLw.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-Cl6-TRBJ.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-R3bbWFw8.js";import"./studio-environment-CH7uwg4C.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./StageHost-CbSf3_pc.js";import"./three-state-BA8dTl-G.js";import"./standard-viewport-dressing-GnJWRGe2.js";import"./content-bounds-eP0tmLbj.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-C2QGqcqQ.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-DpPgGsmw.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-CtcWoVlh.js";import"./object3d-document-session-registry-CYplHMV_.js";import"./component-instance-root-Csn_jFKu.js";import"./viewport-door-BSOgAqjP.js";import"./model-inspection-BOADEfEi.js";import"./three-viewport-presentation-Ys4BApui.js";import"./clip-planes-CnAI6DZn.js";import"./three-DCkpVjka.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-DJll-un4.js";import"./source-object3d-authoring-adapter-CiV9hr_l.js";import"./three-projection-core-B_fHSGZn.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-BhBJrkWq.js";import"./viewport-surface-status-BW-G364J.js";function ut({previewKey:o,object:r,displayName:i,fill:p=!1}){return t.jsx("div",{"data-testid":"inspector-object-preview",style:p?{position:"absolute",inset:0,overflow:"hidden"}:{width:"100%",height:220,minHeight:220,borderBottom:"1px solid var(--volter-structural-divider)",overflow:"hidden",position:"relative"},children:t.jsx(m,{documentId:`inspector-preview:${o}`,source:r,displayName:i,active:!0,chromeless:!0})})}export{ut as InspectorObjectPreview};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StageHost-CbSf3_pc.js","assets/index-cFAgtv_D.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/three-state-BA8dTl-G.js","assets/editor-shell-store-amyZ1RI8.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-CH7HhT0X.js","assets/workspace-arrangement-BARx98O2.js","assets/user-data-ZZO3OVi6.js","assets/entity-object-3G5QPQLw.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-GnJWRGe2.js","assets/content-bounds-eP0tmLbj.js","assets/hierarchy-marks-R3bbWFw8.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/three-integration-C2QGqcqQ.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-DpPgGsmw.js","assets/root-stacking-BEd9ZvxC.js","assets/model-thumbnail-CtcWoVlh.js","assets/studio-environment-CH7uwg4C.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/object3d-document-session-registry-CYplHMV_.js","assets/component-instance-root-Csn_jFKu.js","assets/viewport-door-BSOgAqjP.js","assets/asset-preview-Cl6-TRBJ.js","assets/bitmap-label-Ct4k6ehY.js","assets/model-inspection-BOADEfEi.js","assets/three-viewport-presentation-Ys4BApui.js","assets/clip-planes-CnAI6DZn.js","assets/three-DCkpVjka.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/scene-framing-DJll-un4.js","assets/source-object3d-authoring-adapter-CiV9hr_l.js","assets/three-projection-core-B_fHSGZn.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-BhBJrkWq.js","assets/viewport-surface-status-BW-G364J.js"])))=>i.map(i=>d[i]);
2
- import{ak as r,_ as a}from"./index-cFAgtv_D.js";import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as n}from"./index-nmcBqr7Y.js";import{V as c,O as u}from"./viewport-surface-status-BW-G364J.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-CbSf3_pc.js").then(e=>e.S),__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,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60]))).Object3DDocumentViewport}));function l(t){return i(t.documentId,t.chromeless),o.jsx(n.Suspense,{fallback:o.jsx(c,{testId:"object3d-document-loading",children:u}),children:o.jsx(s,{...t})})}function i(t,e=!1){n.useEffect(()=>{if(!e)return r(t)},[t,e])}export{l as O};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DHhMOs_s.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/stage-transform-tools-DHGdBZ3k.js","assets/jsx-runtime-DPjLkJKQ.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-cFAgtv_D.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/editor-shell-store-amyZ1RI8.js","assets/output-pass-HurwNl0G.js","assets/Pass-D1MRT672.js","assets/editor-layers-CH7HhT0X.js","assets/workspace-arrangement-BARx98O2.js","assets/user-data-ZZO3OVi6.js","assets/entity-object-3G5QPQLw.js","assets/three-contract-Dkt6PmWY.js","assets/Toolbar-CdoTE42L.js","assets/transform-mode-request-CbLV1mru.js","assets/three-state-BA8dTl-G.js","assets/standard-viewport-dressing-GnJWRGe2.js","assets/content-bounds-eP0tmLbj.js","assets/hierarchy-marks-R3bbWFw8.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/three-integration-C2QGqcqQ.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-DpPgGsmw.js","assets/root-stacking-BEd9ZvxC.js","assets/model-thumbnail-CtcWoVlh.js","assets/studio-environment-CH7uwg4C.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/object3d-document-session-registry-CYplHMV_.js","assets/component-instance-root-Csn_jFKu.js","assets/viewport-door-BSOgAqjP.js","assets/asset-preview-Cl6-TRBJ.js","assets/bitmap-label-Ct4k6ehY.js","assets/model-inspection-BOADEfEi.js","assets/three-viewport-presentation-Ys4BApui.js","assets/clip-planes-CnAI6DZn.js","assets/three-DCkpVjka.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/scene-framing-DJll-un4.js","assets/source-object3d-authoring-adapter-CiV9hr_l.js","assets/three-projection-core-B_fHSGZn.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-BhBJrkWq.js","assets/viewport-surface-status-BW-G364J.js","assets/stage-overlay-set-B493KEWu.js","assets/TransientHint-KoS0JmOy.js","assets/ViewportShadingMenu-IEeWeBgg.js","assets/stage-keyboard-CMvoZA6K.js","assets/camera-authoring-DYjhU5Zp.js","assets/stage-presence-markers-Ddnu3AE3.js","assets/collaboration-presence-DMUWVR-Y.js"])))=>i.map(i=>d[i]);
2
- import{kQ as Er,ln as fr,kX as Ye,Z as hs,eX as Wn,lt as In,_ as rt,G as Nn,lu as $n,j1 as Ys,bw as Je,aM as Be,a7 as Ce,bz as Gn,bN as Un,a6 as Ke,lv as qn,bP as Xn,de as Yn,aL as ds,df as ps,lw as Ks,lx as Kn,iX as Zn,bq as br,br as fs,bs as et,al as tt,er as Qn,ly as Jn,lz as ei,a8 as Pe,ak as ti,lA as ri,lB as si,lC as ni,lD as ii,lE as oi,hl as ai,lF as ci,b5 as li,lG as Zs,aQ as ui,gM as hi,lH as ms,lI as gs,lJ as vs,b1 as ws,kP as bs,fC as ys,lK as di,F as pi,bu as fi,bt as Ss,lL as mi,bK as gi,j4 as vi,gm as xs,lM as wi,lN as bi,lO as yi,hg as Si,dI as xi,kY as Pi,kO as Ci,fX as ki,gg as Ei,lP as Ps,B as Mi,lQ as Oi,bR as Ri}from"./index-cFAgtv_D.js";import{a as d}from"./jsx-runtime-DPjLkJKQ.js";import{t as yr,a as ji}from"./three-state-BA8dTl-G.js";import{i as H,b as Ti,a as Vi,w as Ai,c as Li,s as Cs}from"./standard-viewport-dressing-GnJWRGe2.js";import{r as f}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{a as Sr}from"./content-bounds-eP0tmLbj.js";import{EDITOR_LAYER as Qs,isInEditorOwnedSubtree as ks}from"./editor-layers-CH7HhT0X.js";import{createStandardEnvironment as Fi}from"./environment-Dg-YaLsA.js";import{a as Di}from"./preview-renderer-BrYNFV1p.js";import{s as Js}from"./user-data-ZZO3OVi6.js";import{s as Hi,a as Bi}from"./live-mixers-B-bwLZ7c.js";import{n as zi,bh as zt,N as en,M as tn,dg as rn,df as sn,fo as B,_ as be,d5 as xr,d9 as _i,L as Es,I as Pr,ez as Wi,dp as Ms,cj as Cr,em as Ii,cp as Ni,c0 as $i,aO as Gi,bX as Ui,fx as Os,bi as qi,eu as Xi,cg as we,T as Yi,ej as nn,el as on,A as Ki,d7 as Zi,eW as Rs,fd as pt,e6 as js,cm as Ts}from"./three.core-3arARmh6.js";import{l as Qi,w as Ji}from"./live-gesture-lock-DJbrjOqf.js";import{v as eo}from"./output-pass-HurwNl0G.js";import{V as to,a as ro}from"./three-integration-C2QGqcqQ.js";import{a as ze}from"./three-contract-Dkt6PmWY.js";import{d as _t,f as so}from"./model-inspection-BOADEfEi.js";import{c as no,p as Bt,d as Vs,i as As,r as io,b as oo,a as ao,t as Ls,s as Fs,C as co,e as lo,f as uo,E as ho}from"./three-viewport-presentation-Ys4BApui.js";import{s as kr}from"./workspace-arrangement-BARx98O2.js";import{a as po,b as fo,L as mo}from"./LineSegments2-DN9pUfWA.js";import{s as go,o as vo,a as wo,b as bo}from"./object3d-document-session-registry-CYplHMV_.js";import{S as yo}from"./source-object3d-authoring-adapter-CiV9hr_l.js";import{s as So,i as mr}from"./editor-presentation-activity-CqJH4G9t.js";import{r as Ds,c as Hs}from"./viewport-door-BSOgAqjP.js";import{T as xo}from"./transport-strip-BhBJrkWq.js";import{V as Po,O as Co}from"./viewport-surface-status-BW-G364J.js";import{t as an}from"./editor-shell-store-amyZ1RI8.js";const cn=30;function ln(n,e,t){return n<e?e:n>t?t:n}function ko(n,e){const t=n.animations;if(t.length===0)return null;const s=new zi(n);let i=t[0];if(!i)return null;const a=o=>{s.stopAllAction();const l=s.clipAction(o);l.paused=!1,l.play(),i=o};a(i);const c=e.attach({id:n.uuid,label:n.name||i.name||"Clip",range:()=>({start:0,end:i?.duration??0,fps:cn}),seek:o=>{s.setTime(ln(o,0,i?.duration??0))},clips:()=>t.map(o=>({id:o.name,label:o.name})),setClip:o=>{const l=t.find(p=>p.name===o);l&&a(l)}});return()=>{c(),s.stopAllAction(),s.uncacheRoot(n)}}function Eo(n,e){const t=Bi(n);if(!t)return null;let s=t.clips.values().next().value;if(!s)return null;const i=c=>{t.mixer.stopAllAction();const o=t.mixer.clipAction(c);o.paused=!1,o.play(),s=c};return e.attach({id:n.uuid,label:n.name||s.name||"Animation",range:()=>({start:0,end:s?.duration??0,fps:cn}),seek:c=>{t.mixer.setTime(ln(c,0,s?.duration??0))},clips:()=>[...t.clips.entries()].map(([c,o])=>({id:c,label:o.name||c})),setClip:c=>{const o=t.clips.get(c);o&&i(o)}})}function Bs(n,e,t={}){const s=new Map,i=()=>{const o=new Set;(typeof n=="function"?n():n)?.traverse(p=>{if(s.has(p.uuid)){o.add(p.uuid);return}const C=Eo(p,e)??ko(p,e);C&&(s.set(p.uuid,C),o.add(p.uuid))});for(const[p,C]of[...s])o.has(p)||(C(),s.delete(p))};i();const a=t.rescanOnLiveMixers,c=a?Hi(()=>{a()&&i()}):()=>{};return{refresh:i,dispose:()=>{c();for(const o of s.values())o();s.clear()}}}const Ve=()=>globalThis.performance?.now()??Date.now();function Mo(n,e){return n.length===0?0:n[Math.min(n.length-1,Math.floor((n.length-1)*e))]??0}function Oo(n=!1){const e=new Set,t=[],s=new Map,i=new Map,a=new Map;let c=[],o=[],l=n,p=!1,C=!1,w=0,P=0,S=0;const W=[];let z=0,M=0,k={gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null},I={enabled:l,recording:C,fps:0,cpuMs:0,p95Ms:0,p99Ms:0,frames:[],phases:[],systems:[],components:[],render:k};function Q(){const y=t.at(-1),q=t.slice();let _;const Y=L=>(_??=q.map(K=>K.intervalMs).filter(K=>K>0).sort((K,V)=>K-V),Mo(_,L));I={enabled:l,recording:C,fps:y?.intervalMs?1e3/y.intervalMs:0,cpuMs:y?.cpuMs??0,get p95Ms(){return Y(.95)},get p99Ms(){return Y(.99)},frames:q,phases:y?.phases??[],systems:[...i].map(([L,K])=>({name:L,ms:K})).sort((L,K)=>K.ms-L.ms),components:[...a].map(([L,K])=>({name:L,ms:K})).sort((L,K)=>K.ms-L.ms),render:k};for(const L of e)L()}return{get enabled(){return l},set enabled(y){l!==y&&(l=y,y&&!p&&(S=0),Q())},get telemetryEnabled(){return p},set telemetryEnabled(y){if(p===y)return;const q=!l&&!p;p=y,y&&q&&(S=0),Q()},get recording(){return C},startRecording(){const y=!l&&!p;l=!0,y&&(S=0),C=!0,t.length=0,Q()},stopRecording(){C=!1,Q()},clear(){t.length=0,Q()},beginFrame(){!l&&!p||(s.clear(),i.clear(),a.clear(),c=[],o=[],W.length=0,k={gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:null},P=Ve())},beginPhase(){l&&W.push(Ve())},endPhase(y){if(!l)return;const q=W.pop()??P,_=Ve()-q,Y=s.get(y);s.set(y,{ms:(Y?.ms??0)+_,startMs:Y?.startMs??q-P}),C&&performance.measure(`volter.phase.${y}`,{start:q,duration:_})},systemObserver:{beginSystem(){l&&(z=Ve())},endSystem(y,q,_){if(!l)return;const Y=Ve(),L=`${y} / ${q} / ${_}`;i.set(L,(i.get(L)??0)+Y-z),c.push({name:L,phase:q,startMs:z-P,ms:Y-z})}},beginComponent(){C&&(M=Ve())},endComponent(y,q=""){if(!C)return;const _=Ve();a.set(y,(a.get(y)??0)+_-M),o.push({name:y,phase:q,startMs:M-P,ms:_-M})},reportRender(y){l&&(k={gpuMs:y.gpuMs??k.gpuMs,drawCalls:k.drawCalls+y.drawCalls,triangles:k.triangles+y.triangles,geometries:k.geometries+y.geometries,textures:k.textures+y.textures,renderPasses:y.renderPasses===void 0?k.renderPasses:(k.renderPasses??0)+y.renderPasses})},endFrame(){if(!l&&!p)return;const y=Ve(),q=S===0?0:P-S;S=P;const _={id:++w,timestamp:y,intervalMs:q,cpuMs:y-P,phases:[...s].map(([Y,{ms:L,startMs:K}])=>({name:Y,ms:L,startMs:K})).sort((Y,L)=>L.ms-Y.ms),systems:c.slice(),components:o.slice(),render:{...k}};t.push(_),t.length>600&&t.splice(0,t.length-600),C&&performance.measure("volter.frame",{start:P,duration:_.cpuMs}),Q()},subscribe(y){return e.add(y),()=>{e.delete(y)}},getSnapshot(){return I},exportJSON(){return JSON.stringify({version:2,capturedAt:new Date().toISOString(),frames:t},null,2)}}}class Ro extends zt{constructor(e,t){super(),this.bones=e;const s=new Set;for(const o of e){const l=o.parent;l?.isBone&&this.addSegment(l,o,s);for(const p of o.children)p.isBone&&this.addSegment(o,p,s)}this.linePositions=new Float32Array(Math.max(this.segments.length*6,6));const i=new po;i.setPositions(this.linePositions),this.lineMaterial=new fo({color:t,linewidth:5,worldUnits:!1,depthTest:!1,depthWrite:!1,toneMapped:!1,alphaToCoverage:!0}),this.lines=new mo(i,this.lineMaterial),this.lines.onBeforeRender=o=>{o.getSize(this.lineMaterial.resolution)},this.lines.frustumCulled=!1,this.lines.renderOrder=1001,this.add(this.lines),this.pointPositions=new Float32Array(Math.max(e.length*3,3));const a=new en;a.setAttribute("position",new tn(this.pointPositions,3));const c=new rn({color:t,size:11,sizeAttenuation:!1,depthTest:!1,depthWrite:!1,toneMapped:!1});this.points=new sn(a,c),this.points.frustumCulled=!1,this.points.renderOrder=1002,this.add(this.points),this.name="__object3d_document_bone_selection",kr(this,"editorHelper",!0),this.traverse(o=>o.layers.set(Qs)),this.update()}segments=[];linePositions;pointPositions;lines;lineMaterial;points;worldPosition=new B;setColor(e){this.lineMaterial.color.setHex(e),this.points.material.color.setHex(e)}update(){let e=0;for(const[i,a]of this.segments)i.getWorldPosition(this.worldPosition),this.linePositions.set(this.worldPosition.toArray(),e),a.getWorldPosition(this.worldPosition),this.linePositions.set(this.worldPosition.toArray(),e+3),e+=6;const t=this.lines.geometry.getAttribute("instanceStart");t&&(t.data.needsUpdate=!0),e=0;for(const i of this.bones)i.getWorldPosition(this.worldPosition),this.pointPositions.set(this.worldPosition.toArray(),e),e+=3;const s=this.points.geometry.getAttribute("position");s&&(s.needsUpdate=!0)}dispose(){this.lines.geometry.dispose(),this.lineMaterial.dispose(),this.points.geometry.dispose(),this.points.material.dispose()}addSegment(e,t,s){const i=`${e.uuid}:${t.uuid}`;s.has(i)||(s.add(i),this.segments.push([e,t]))}}const jo="skeletons",gr=new be(58879),vr=new be(16756736);function To(n){const e=n.geometry.getAttribute("color");for(let s=0;s<e.count;s+=2)e.setXYZ(s,gr.r,gr.g,gr.b),s+1<e.count&&e.setXYZ(s+1,vr.r,vr.g,vr.b);e.needsUpdate=!0,n.renderOrder=999;const t=n.material;t.depthTest=!1,t.depthWrite=!1,t.toneMapped=!1,kr(n,"editorHelper",!0),kr(n,"editorHelperType",jo),n.traverse(s=>s.layers.set(Qs))}const Vo=1,Ao=700,Lo=.001,Fo=Math.PI-.001,Do=n=>n<.5?4*n*n*n:1-(-2*n+2)**3/2,Ho=n=>n;function Ze(n,e){return typeof n=="number"&&Number.isFinite(n)?n:e}const zs={mode:"solid",background:"neutral",projection:"perspective",skeleton:!1,bounds:!1},_s=1119773;class Bo{constructor(e,t,s,i,a,c,o=new be(2106410),l=null){this.documentId=e,this.root=t,this.scene=s,this.renderer=i,this.viewport=a,this.authoring=c,this.neutralBackground=o,this.frameBox=l,this.unsubscribeSelectionTheme=Er(i.domElement,this.syncSelectionTheme),a.orbitControls.addEventListener("start",this.cancelLookForHuman),this.unsubscribeRotateStart=a.onRotateStart(this.autoPerspective),this.unsubscribeAxisView=a.onAxisView(this.axisView)}profiler=Oo();shading=new to;helpers=[];skeletonHelper=null;boundsHelper=null;boneSelectionHighlight=null;boneSelectionSignature="";composer=null;composerLoading=!1;disposed=!1;sceneRenderPass=null;selectionOutline=null;selectionOutlinePass=null;selectedObjects=[];selectionOrigins=null;renderWidth=1;renderHeight=1;orthographicCamera=new xr;captureAspect=null;cameraOverride=null;cameraViewSource=null;through=null;leaving=!1;viewMemo=null;throughPerspective=new _i;throughOrthographic=new xr;beforeRender=null;state=zs;version=0;listeners=new Set;unsubscribeSelectionTheme=()=>{};flight=null;flightPose=new B;topologyOverlay=null;topologyFollowers=[];unsubscribeRotateStart;unsubscribeAxisView;axisView=()=>(this.leaveCameraView(!1),this.settleFlight("superseded"),fr().autoPerspective&&this.setProjection("orthographic"),!0);autoPerspective=()=>{if(!fr().autoPerspective||this.cameraView()!==null||this.state.projection!=="orthographic")return;const e=this.viewport.camera,t=e.position.clone().sub(this.viewport.orbitControls.target),s=new B(0,1,0).applyQuaternion(e.quaternion);_t(t,s)!==null&&this.setProjection("perspective")};replaceContent(e,t){H(),this.selectionOutline?.selection.clear(),this.selectedObjects=[],this.boneSelectionSignature="",this.clearBoneSelectionHighlight(),this.clearSkeletonHelper(),this.clearBoundsHelper(),this.clearTopologyOverlay(),this.root=e,this.authoring=t,this.state.mode==="wireframe"&&this.buildTopologyOverlay(),this.state.bounds&&(this.boundsHelper=new Es(e,16757844),this.addHelper(this.boundsHelper,"bounds")),this.syncSelectionPresentation(),this.refreshSkeletonHelper(),this.notify()}cancelLookForHuman=()=>{this.settleFlight("human")};selectionColors=null;syncSelectionTheme=()=>{this.selectionColors=Ye(this.renderer.domElement);const e=this.selectionColors.visible;this.selectionOutline&&no(this.selectionOutline,Ye(this.renderer.domElement)),this.boneSelectionHighlight?.setColor(e)};subscribe=e=>(this.listeners.add(e),()=>this.listeners.delete(e));getSnapshot=()=>this.version;presentation(){return this.state}resolveFrameBounds(e="selection"){const t=e==="all"?[]:this.authoring?.selection?.get()??[];if(t.length>0){const s=new Pr;let i=!1;for(const a of t){const c=this.authoring?ze(this.authoring.hierarchy,a):null;if(!c)continue;const o=Sr(c);o.isEmpty()||(s.union(o),i=!0)}if(i)return s}return this.frameBox&&!this.frameBox.isEmpty()?this.frameBox:Sr(this.root)}frame(e=1,t="selection"){this.leaveCameraView(!1);const s=this.resolveFrameBounds(t);if(s.isEmpty()){let l=0,p=0;return this.root.traverse(C=>{const w=C.geometry;w&&(l+=1,p+=w.getAttribute("position")?.count??0)}),hs.warn(`frame: nothing to frame — root "${this.root.name}" (${this.root.children.length} children, ${l} meshes, ${p} positions), selection ${JSON.stringify(this.authoring?.selection?.get()??[])}, frameBox ${this.frameBox?this.frameBox.isEmpty()?"empty":"set":"none"}`,"document"),!1}this.settleFlight("superseded");const i=s.getCenter(new B),a=this.viewport.camera.position.clone().sub(this.viewport.orbitControls.target).normalize();a.lengthSq()===0&&a.set(.8,.5,-1).normalize();const c=Math.min(10,Math.max(.1,Ze(e,1))),o=Bt(s,this.viewport.camera,a)*c;return this.viewport.setPose(i.clone().addScaledVector(a,o),i),!0}orbit(e){return this.launchFlight(Ze(e.azimuth,0),Ze(e.elevation,0),Math.min(60,Math.max(0,Ze(e.duration,.6))),Do)}turntable(e){const t=Ze(e.revolutions,1);return this.launchFlight(t*Math.PI*2,0,Math.min(60,Math.max(0,Ze(e.seconds,6))),Ho)}looking(){return this.flight!==null}launchFlight(e,t,s,i){this.settleFlight("superseded");const a=this.viewport.camera,c=this.viewport.orbitControls.target.clone(),o=new Wi().setFromVector3(a.position.clone().sub(c)),l=o.radius>1e-4?o.radius:Math.max(this.resolveFrameBounds().getSize(new B).length(),1),p={pivot:c,radius:l,startTheta:o.theta,startPhi:o.phi,deltaTheta:e,deltaPhi:-t,duration:s,ease:i,elapsed:0,theta:o.theta,phi:o.phi,settle:null};this.flight=p;const C=new Promise(w=>{p.settle=w});return this.applyFlightPose(p,0),s<=0&&this.settleFlight(null),C}applyFlightPose(e,t){const s=e.ease(t);e.theta=e.startTheta+e.deltaTheta*s,e.phi=Math.min(Fo,Math.max(Lo,e.startPhi+e.deltaPhi*s));const i=this.viewport.camera;i.position.setFromSphericalCoords(e.radius,e.phi,e.theta).add(e.pivot),this.viewport.orbitControls.target.copy(e.pivot),i.lookAt(e.pivot),i.updateMatrixWorld(),this.flightPose.copy(i.position)}advanceLook(e){const t=this.flight;if(!t)return;const s=Math.max(1e-4,t.radius*.001);if(this.viewport.camera.position.distanceToSquared(this.flightPose)>s*s){this.settleFlight("human");return}e>0&&Number.isFinite(e)&&(t.elapsed+=e);const i=t.duration<=0?1:Math.min(1,t.elapsed/t.duration);this.applyFlightPose(t,i),i>=1&&this.settleFlight(null)}settleFlight(e){const t=this.flight;if(!t)return;this.flight=null;const s={completed:e===null,azimuth:t.theta,elevation:Math.PI/2-t.phi,seconds:Math.min(t.elapsed,t.duration)};t.settle?.(e===null?s:{...s,cancelledBy:e})}select(e){H(),this.authoring&&Wn(this.authoring,[...e])}selection(){return[...this.authoring?.selection?.get()??[]]}idForObject(e){return this.authoring?.hierarchy.idForObject3D?.(e)??null}syncSelectionPresentation(){H();const e=(this.authoring?.selection?.get()??[]).map(i=>this.authoring?ze(this.authoring.hierarchy,i):null).filter(i=>i!==null);if(this.selectedObjects=e,this.selectionOutline&&(Vs(this.selectionOutline,this.selectionOutlineWanted?e:[]),this.syncComposerOutput()),this.selectionOrigins){const i=Ye(this.renderer.domElement);this.selectionOrigins.update(e,{visible:i.visible,...i.active?{active:i.active.visible}:{}})}const t=e.filter(i=>!!i.isBone),s=t.map(i=>i.uuid).join("\0");s!==this.boneSelectionSignature&&(this.boneSelectionSignature=s,this.clearBoneSelectionHighlight(),t.length>0&&(this.boneSelectionHighlight=new Ro(t,Ye(this.renderer.domElement).visible),this.scene.add(this.boneSelectionHighlight)),this.refreshSkeletonHelper())}frameSelection(){return this.frameIds(this.authoring?.selection?.get()??[])}frameIds(e){this.leaveCameraView(!1),this.settleFlight("superseded");const t=e.map(s=>this.authoring?ze(this.authoring.hierarchy,s):null).filter(s=>s!==null);return t.length===0?!1:t.every(s=>s.isBone)?(this.frameBones(t),!0):(this.viewport.focusOnMultiple(t),!0)}setViewPreset(e,t="bounds"){H(),this.leaveCameraView(!1),this.settleFlight("superseded");const s=so(e);let i,a;if(t==="view")i=this.viewport.orbitControls.target.clone(),a=this.viewport.camera.position.distanceTo(i);else{const l=this.resolveFrameBounds();if(l.isEmpty())return;i=l.getCenter(new B),a=Bt(l,this.viewport.camera,s)}const c=i.clone().addScaledVector(s,a),o=e==="top"?{x:0,y:0,z:-1}:e==="bottom"?{x:0,y:0,z:1}:{x:0,y:1,z:0};this.viewport.setPose(c,i,void 0,o),this.setProjection(e==="isometric"?"perspective":"orthographic")}setCameraPose(e,t,s){H(),this.leaveCameraView(!1),this.settleFlight("superseded"),this.viewport.setPose(e,t,s)}cameraPose(){return{position:this.viewport.camera.position.toArray(),target:this.viewport.orbitControls.target.toArray(),fov:this.viewport.camera.fov}}camera(){if(this.cameraOverride)return this.cameraOverride;const e=this.drawnCamera();return this.viewport.setGizmoCamera(e===this.viewport.camera?null:e),e}drawnCamera(){const e=this.through?this.cameraView():null;return e?this.throughCamera(e):(this.through&&!this.leaving&&(this.leaving=!0,queueMicrotask(()=>{this.leaving=!1,this.through&&!this.cameraView()&&this.leaveCameraView(!1)})),this.state.projection==="perspective"?this.viewport.camera:(this.syncOrthographicCamera(),this.orthographicCamera))}setCameraViewSource(e){this.cameraViewSource!==e&&(this.cameraViewSource=e,e||this.leaveCameraView(!1),this.notify())}hasCameraView(){return this.cameraViewSource!==null}cameraView(){const e=this.through,t=this.cameraViewSource;if(!e||!t)return null;const s=this.renderer.domElement,i=this.captureAspect?{width:this.captureAspect,height:1}:{width:s.clientWidth,height:s.clientHeight},a=this.viewport.camera,c=e.locked?`${a.position.toArray().join(",")}|${a.quaternion.toArray().join(",")}`:"",o=`${e.camera}|${i.width}|${i.height}|${e.zoom}|${e.offset.join(",")}|${c}`;if(this.viewMemo?.key===o)return this.viewMemo.view;const l=t.view(e.camera,i,e.zoom,e.offset),p=l&&e.locked?{...l,position:a.position.toArray(),quaternion:a.quaternion.toArray()}:l;return this.viewMemo={key:o,view:p},queueMicrotask(()=>{this.viewMemo=null}),p}toggleCameraView(){if(this.through)return this.leaveCameraView(!0),!0;const e=this.cameraViewSource,t=e?.camera()??null;if(!e)return!1;if(t===null)return hs.warn("camera view: No active camera — the scene has no camera to look through","document"),!1;H(),this.settleFlight("superseded");const s=this.viewport,i=s.orbitControls,a=i.enableDamping;return i.enableDamping=!1,i.update(),i.enableDamping=a,this.through={camera:t,zoom:e.zoom.opening,offset:[0,0],left:{position:s.camera.position.clone(),target:s.orbitControls.target.clone(),up:s.camera.up.clone(),projection:this.state.projection},release:this.captureCameraViewInput(),locked:!1},e.showing?.(t),this.notify(),!0}cameraViewLocked(){return!this.through||!this.cameraViewSource?.setPose?null:this.through.locked}toggleCameraViewLock(){const e=this.through,t=this.cameraViewSource;if(!(!e||!t?.setPose)){if(e.release(),e.locked=!e.locked,!e.locked)e.release=this.captureCameraViewInput();else{const s=this.cameraView(),i=this.viewport.orbitControls,a=this.viewport.camera;if(s){const M=new B(...s.position),k=new Ms(...s.quaternion),I=e.left.position.distanceTo(e.left.target);a.up.set(0,1,0).applyQuaternion(k),a.position.copy(M),a.quaternion.copy(k),i.target.copy(M).addScaledVector(new B(0,0,-1).applyQuaternion(k),I),i.update()}const c=i.enabled;i.enabled=!0;const o=i.enableDamping;i.enableDamping=!1;const l=e.camera,p=M=>({position:a.position.toArray(),quaternion:a.quaternion.toArray(),final:M});let C=!1,w=null,P=!1;const S=M=>{if(C){w={...M,final:M.final||(w?.final??!1)};return}C=!0,w=null,Promise.resolve(t.setPose(l,M.position,M.quaternion,M.final)).catch(()=>{}).finally(()=>{C=!1,w&&S(w)})},W=()=>{P=!0,H(),this.notify(),S(p(!1))},z=()=>{P&&(P=!1,S(p(!0)))};i.addEventListener("change",W),i.addEventListener("end",z),e.release=()=>{z(),i.removeEventListener("change",W),i.removeEventListener("end",z),i.enabled=c,i.enableDamping=o}}this.viewMemo=null,H(),this.notify()}}cameraViewZoom(){return this.through?.zoom??null}setCameraViewZoom(e){const t=this.through,s=this.cameraViewSource;!t||!s||!Number.isFinite(e)||e<=0||(t.zoom=Math.min(s.zoom.max,Math.max(s.zoom.min,e)),H(),this.notify())}zoomCameraView(e){this.through&&this.setCameraViewZoom(this.through.zoom*e)}panCameraView(e,t){const s=this.through,i=this.cameraViewSource;if(!s||!i)return;const[a,c]=i.pan(s.offset,s.zoom,e,t);s.offset=[a,c],H(),this.notify()}leaveCameraView(e){const t=this.through;if(!t)return;const s=this.cameraView();t.release(),this.through=null,this.viewMemo=null,this.cameraViewSource?.showing?.(null),this.viewport.setGizmoCamera(null);const i=this.viewport;if(e)i.camera.position.copy(t.left.position),i.camera.up.copy(t.left.up),i.orbitControls.target.copy(t.left.target),this.state={...this.state,projection:t.left.projection};else if(s){const a=t.left.position.distanceTo(t.left.target),c=new B(...s.position),o=new Ms(...s.quaternion),l=new B(0,0,-1).applyQuaternion(o);i.camera.up.set(0,1,0).applyQuaternion(o),i.camera.position.copy(c),i.orbitControls.target.copy(c).addScaledVector(l,a);const p=_t(t.left.position.clone().sub(t.left.target),t.left.up)!==null,C=fr().autoPerspective&&p?"perspective":t.left.projection;this.state={...this.state,projection:C}}i.camera.lookAt(i.orbitControls.target),i.orbitControls.update(),H(),this.notify()}throughCamera(e){const{left:t,right:s,top:i,bottom:a}=e.window,c=this.viewport.camera.layers.mask;if(e.projection==="orthographic"){const l=this.throughOrthographic;return Object.assign(l,{left:t,right:s,top:i,bottom:a,near:e.near,far:e.far,zoom:1}),l.position.set(...e.position),l.quaternion.set(...e.quaternion),l.layers.mask=c,l.updateProjectionMatrix(),l.updateMatrixWorld(!0),l}const o=this.throughPerspective;return o.near=e.near,o.far=e.far,o.fov=Cr.radToDeg(2*Math.atan((i-a)/2)),o.aspect=(s-t)/(i-a),o.zoom=1,o.position.set(...e.position),o.quaternion.set(...e.quaternion),o.layers.mask=c,o.projectionMatrix.makePerspective(t*e.near,s*e.near,i*e.near,a*e.near,e.near,e.far),o.projectionMatrixInverse.copy(o.projectionMatrix).invert(),o.updateMatrixWorld(!0),o}captureCameraViewInput(){const e=this.viewport.orbitControls,t=this.renderer.domElement,s=t.parentElement??t,i=e.enabled;e.enabled=!1;const a=o=>{o.target!==t||o.deltaY===0||(o.preventDefault(),this.zoomCameraView(o.deltaY<0?1.2:1/1.2))},c=o=>{if(o.target!==t)return;const l=e.mouseButtons;let p=[l.LEFT,l.MIDDLE,l.RIGHT][o.button]??null;const C=o.ctrlKey||o.metaKey||o.shiftKey;if(o.button===1&&(o.ctrlKey||o.metaKey)&&p===we.ROTATE?p=we.DOLLY:C&&p===we.ROTATE?p=we.PAN:C&&p===we.PAN&&(p=we.ROTATE),p===we.ROTATE){this.leaveCameraView(!1);return}if(p!==we.PAN&&p!==we.DOLLY)return;o.preventDefault();const w=t.getBoundingClientRect();let P=o.clientX,S=o.clientY;const W=this.through?.zoom??1,z=Math.max(5+o.clientY-w.top,1),M=I=>{if(p===we.PAN){this.panCameraView((I.clientX-P)/Math.max(w.width,1),(I.clientY-S)/Math.max(w.height,1)),P=I.clientX,S=I.clientY;return}const Q=Math.max(.01,2*((5+I.clientY-w.top)/z-1)+1);this.setCameraViewZoom(W/Q)},k=()=>{window.removeEventListener("pointermove",M),window.removeEventListener("pointerup",k),window.removeEventListener("pointercancel",k)};window.addEventListener("pointermove",M),window.addEventListener("pointerup",k),window.addEventListener("pointercancel",k)};return s.addEventListener("wheel",a,{capture:!0,passive:!1}),s.addEventListener("pointerdown",c,{capture:!0}),()=>{s.removeEventListener("wheel",a,{capture:!0}),s.removeEventListener("pointerdown",c,{capture:!0}),e.enabled=i}}projection(){return this.state.projection}setProjection(e){H(),this.state.projection!==e&&(this.state={...this.state,projection:e},this.notify())}setMode(e){H(),this.state.mode!==e&&(this.clearDiagnosticPresentation(),this.state={...this.state,mode:e},e==="uv"?this.scene.overrideMaterial=new Ii({vertexShader:"varying vec2 vUv; void main(){ vUv=uv; gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.0); }",fragmentShader:"varying vec2 vUv; void main(){ gl_FragColor=vec4(vUv,0.0,1.0); }"}):e==="vertex-colors"?this.scene.overrideMaterial=new Ni({vertexColors:!0}):e==="wireframe"&&this.buildTopologyOverlay(),this.notify())}buildTopologyOverlay(){const e=new zt,t=[];this.root.updateMatrixWorld(!0),this.root.traverse(s=>{const i=s;if(!i.isMesh||!i.geometry)return;const a=new $i(new Gi(i.geometry,Vo),new Ui({color:_s,toneMapped:!1,transparent:!0,opacity:.85,depthTest:!1,depthWrite:!1}));a.matrixAutoUpdate=!1,a.matrixWorldAutoUpdate=!1,a.matrixWorld.copy(i.matrixWorld),a.frustumCulled=!1,a.renderOrder=2,e.add(a),t.push({line:a,source:i})}),t.length!==0&&(this.topologyOverlay=e,this.topologyFollowers=t,this.addHelper(e,"topology"))}syncTopologyOverlay(){this.topologyFollowers.some(({source:i})=>i.parent===null)&&(this.clearTopologyOverlay(),this.buildTopologyOverlay()),this.selectionColors??=Ye(this.renderer.domElement);const e=this.selectionColors,t=this.selectedObjects.at(-1)??null,s=(i,a)=>{for(let c=i;c;c=c.parent)if(c===a)return!0;return!1};for(const{line:i,source:a}of this.topologyFollowers){i.matrixWorld.copy(a.matrixWorld),i.visible=a.visible;const c=i.material,o=t!==null&&s(a,t),l=o||this.selectedObjects.some(C=>s(a,C)),p=o?e.active?.visible??e.visible:l?e.visible:null;c.color.setHex(p??_s)}}clearTopologyOverlay(){for(const{line:s}of this.topologyFollowers.splice(0))s.geometry.dispose(),s.material.dispose();const e=this.topologyOverlay;if(this.topologyOverlay=null,!e)return;e.removeFromParent();const t=this.helpers.indexOf(e);t>=0&&this.helpers.splice(t,1)}setBounds(e){H(),this.state.bounds!==e&&(this.state={...this.state,bounds:e},e?(this.boundsHelper=new Es(this.root,16757844),this.addHelper(this.boundsHelper,"bounds")):this.clearBoundsHelper(),this.notify())}setSkeleton(e){H(),this.state.skeleton!==e&&(this.state={...this.state,skeleton:e},this.refreshSkeletonHelper(),this.notify())}neutralBackgroundTexture(){return this.neutralBackground}setNeutralBackground(e){H();const t=this.scene.background,s=this.neutralBackground,i=t===s||t instanceof be&&s instanceof be&&t.equals(s);this.neutralBackground=e,i&&(this.scene.background=e)}setBackground(e){H(),this.state.background!==e&&(this.scene.background=e==="transparent"?null:this.neutralBackground,this.state={...this.state,background:e},this.notify())}resetPresentation(){H(),In(this.documentId),this.clearDiagnosticPresentation(),this.state=zs,this.refreshSkeletonHelper(),this.clearBoundsHelper(),this.scene.background=this.neutralBackground,this.viewport.camera.up.set(0,1,0),this.frame(),this.notify()}setBeforeRender(e){this.beforeRender=e}presentedFrameWaiters=[];presentsFrames=!1;setPresentsFrames(e){this.presentsFrames=e,e||this.resolvePresentedFrame(null)}requestPresentedFrame(){return this.presentsFrames?new Promise(e=>{let t=!1;const s=i=>{t||(t=!0,e(i))};this.presentedFrameWaiters.push(s),H(),setTimeout(()=>s(null),Ao)}):Promise.resolve(null)}needsFrame(){return this.flight!==null||this.presentedFrameWaiters.length>0}servePresentedFrame(){if(this.presentedFrameWaiters.length===0)return;const e=this.renderer.domElement,t=document.createElement("canvas");t.width=Math.max(1,e.width),t.height=Math.max(1,e.height);const s=t.getContext("2d");if(!s){this.resolvePresentedFrame(null);return}s.drawImage(e,0,0),this.resolvePresentedFrame(t)}resolvePresentedFrame(e){const t=this.presentedFrameWaiters;this.presentedFrameWaiters=[];for(const s of t)s(e)}render(e){const t=this.beforeRender?.();try{this.boneSelectionHighlight?.update();const s=this.camera(),i=this.state.mode;if(this.boundsHelper?.update(),this.selectionOrigins?.place(),i==="uv"||i==="vertex-colors"){e(s);return}if(i==="wireframe"&&this.topologyOverlay){if(this.syncTopologyOverlay(),this.xray.enabled&&this.xray.alpha<=0){const a=new Set;this.root.traverse(c=>{const o=c;if(o.isMesh)for(const l of Array.isArray(o.material)?o.material:[o.material])l?.visible&&(l.visible=!1,a.add(l))});try{e(s)}finally{for(const c of a)c.visible=!0}return}this.shading.render(this.scene,"clay",()=>e(s),As);return}this.shading.render(this.scene,i,()=>e(s),As)}finally{t?.()}}renderViewport(e=0){this.advanceLook(e),this.ensureComposer(),this.render(t=>{const s=this.composer;if(!s){this.renderer.render(this.scene,t);return}s.setMainScene(this.scene),s.setMainCamera(t),s.render(e)})}resize(e,t){H(),this.renderWidth=Math.max(1,e),this.renderHeight=Math.max(1,t),this.composer?.setSize(this.renderWidth,this.renderHeight)}renderCapture(e,t){this.render(s=>{if(!t){e(s);return}const i=this.scene.background,a=this.renderer.getClearColor(new be),c=this.renderer.getClearAlpha();try{this.scene.background=null,this.renderer.setClearColor(0,0),e(s)}finally{this.scene.background=i,this.renderer.setClearColor(a,c)}})}captureImage(e=512){const t=typeof e=="number"?e:e.width,s=typeof e=="number"?e:e.height;if(!Number.isFinite(t)||t<1||!Number.isFinite(s)||s<1)return null;const i=Math.min(2048,Math.round(t)),a=Math.min(2048,Math.round(s)),c=i*2,o=a*2,l=new Os(c,o,{type:qi}),p=new Os(c,o),C=this.renderer.getRenderTarget(),w=this.renderer.getPixelRatio(),P=this.viewport.camera,S=P.aspect;try{this.captureAspect=i/a;const W=typeof e=="number"?void 0:e.camera;W?this.cameraOverride=W:(P.aspect=i/a,P.updateProjectionMatrix()),this.renderer.setPixelRatio(1),this.renderer.setRenderTarget(l),this.renderCapture(_=>this.renderSolidForCapture(_,l,c,o),typeof e!="number"&&e.transparent===!0),eo(typeof e!="number"&&e.transparent===!0).render(this.renderer,p,l,0,!1);const z=c*4,M=new Uint8Array(z*o);this.renderer.readRenderTargetPixels(p,0,0,c,o,M);const k=document.createElement("canvas");k.width=c,k.height=o;const I=k.getContext("2d");if(!I)return null;const Q=I.createImageData(c,o);for(let _=0;_<o;_++){const Y=(o-1-_)*z,L=_*z;Q.data.set(M.subarray(Y,Y+z),L)}I.putImageData(Q,0,0);const y=document.createElement("canvas");y.width=i,y.height=a;const q=y.getContext("2d");return q?(q.drawImage(k,0,0,i,a),y.toDataURL("image/png")):null}finally{this.captureAspect=null,this.cameraOverride=null,P.aspect=S,P.updateProjectionMatrix(),this.renderer.setRenderTarget(C),this.renderer.setPixelRatio(w),this.composer?.setSize(this.renderWidth,this.renderHeight,!1),p.dispose(),l.dispose(),H()}}dispose(){this.disposed=!0,this.leaveCameraView(!1),this.selectionOrigins?.dispose(),this.selectionOrigins=null,this.settleFlight("closed"),this.viewport.orbitControls.removeEventListener("start",this.cancelLookForHuman),this.unsubscribeRotateStart(),this.unsubscribeAxisView(),this.unsubscribeSelectionTheme(),this.clearDiagnosticPresentation(),this.clearBoneSelectionHighlight(),this.clearBoundsHelper(),this.clearSkeletonHelper(),this.selectionOutline&&io(this.renderer,this.selectionOutline,this.selectionOutlinePass),this.composer?.dispose(),this.sceneRenderPass=null,this.selectionOutline=null,this.selectionOutlinePass=null,this.composer=null,this.shading.dispose(),this.listeners.clear()}addHelper(e,t){e.name=`__object3d_document_${t}`,Js(e,"editorHelper",!0),this.scene.add(e),this.helpers.push(e)}get selectionOutlineEnabled(){return this.selectionOutlineWanted}set selectionOutlineEnabled(e){e!==this.selectionOutlineWanted&&(this.selectionOutlineWanted=e,e?this.syncSelectionPresentation():(this.selectionOutline?.selection.clear(),this.syncComposerOutput()))}selectionOutlineWanted=!0;xray={enabled:!1,alpha:1};setXray(e){this.xray.enabled===e.enabled&&this.xray.alpha===e.alpha||(this.xray=e,H())}set selectionOriginsEnabled(e){e!==(this.selectionOrigins!==null)&&(e?(this.selectionOrigins=new Wo,this.scene.add(this.selectionOrigins),this.syncSelectionPresentation()):(this.selectionOrigins?.dispose(),this.selectionOrigins=null,H()))}ensureComposer(){this.selectionOutlineWanted&&(this.composer||this.composerLoading||this.disposed||(this.composerLoading=!0,rt(()=>import("./index-DHhMOs_s.js"),__vite__mapDeps([0,1,2])).then(e=>{if(this.composerLoading=!1,this.disposed||this.composer)return;const t=this.camera(),s=new e.EffectComposer(this.renderer);this.sceneRenderPass=new e.RenderPass(this.scene,t),s.addPass(this.sceneRenderPass),this.selectionOutline=oo(e,this.renderer,this.scene,t,Ye(this.renderer.domElement)),this.syncSelectionTheme(),Vs(this.selectionOutline,this.selectedObjects),this.selectionOutlinePass=new e.EffectPass(t,this.selectionOutline),s.addPass(this.selectionOutlinePass),this.composer=s,this.syncComposerOutput(),s.setSize(this.renderWidth,this.renderHeight),H()}).catch(()=>{this.composerLoading=!1})))}renderSolidForCapture(e,t,s,i){const a=this.composer,c=(this.selectionOutline?.selection.size??0)>0;if(!a||!c||!this.sceneRenderPass||!this.selectionOutlinePass){this.renderer.render(this.scene,e);return}const o=this.renderWidth,l=this.renderHeight;try{this.sceneRenderPass.renderToScreen=!1,this.selectionOutlinePass.renderToScreen=!1,a.setSize(s,i,!1),this.sceneRenderPass.render(this.renderer,a.inputBuffer,a.outputBuffer,0),this.selectionOutlinePass.render(this.renderer,a.inputBuffer,t,0)}finally{a.setSize(o,l,!1),this.syncComposerOutput(),this.renderer.setRenderTarget(t)}}syncComposerOutput(){const e=(this.selectionOutline?.selection.size??0)>0;this.sceneRenderPass&&(this.sceneRenderPass.renderToScreen=!e),this.selectionOutlinePass&&(this.selectionOutlinePass.enabled=e,this.selectionOutlinePass.renderToScreen=e)}refreshSkeletonHelper(){const e=this.state.skeleton||this.boneSelectionHighlight!==null;e&&!this.skeletonHelper?(this.skeletonHelper=new Xi(this.root),To(this.skeletonHelper),this.scene.add(this.skeletonHelper)):e||this.clearSkeletonHelper()}clearSkeletonHelper(){this.skeletonHelper&&(this.skeletonHelper.removeFromParent(),this.skeletonHelper.dispose(),this.skeletonHelper=null)}clearBoneSelectionHighlight(){this.boneSelectionHighlight&&(this.boneSelectionHighlight.removeFromParent(),this.boneSelectionHighlight.dispose(),this.boneSelectionHighlight=null)}clearBoundsHelper(){if(!this.boundsHelper)return;const e=this.boundsHelper;this.boundsHelper=null;const t=this.helpers.indexOf(e);t>=0&&this.helpers.splice(t,1),e.removeFromParent(),e.geometry.dispose(),Array.isArray(e.material)?e.material.forEach(s=>{s.dispose()}):e.material.dispose()}frameBones(e){const t=new Pr,s=new B;for(const l of e){t.expandByPoint(l.getWorldPosition(s)),l.parent?.isBone&&t.expandByPoint(l.parent.getWorldPosition(s));for(const p of l.children)p.isBone&&t.expandByPoint(p.getWorldPosition(s))}const i=t.getCenter(new B),a=Math.max(t.getSize(new B).length(),.2);t.expandByScalar(a*.35);const c=this.viewport.camera.position.clone().sub(this.viewport.orbitControls.target).normalize(),o=Bt(t,this.viewport.camera,c);this.viewport.setPose(i.clone().addScaledVector(c,o),i)}syncOrthographicCamera(){const e=this.viewport.camera,t=this.viewport.orbitControls.target,s=Math.max(e.position.distanceTo(t),.001),i=Math.max(s*Math.tan(Cr.degToRad(e.fov)/2),.001),a=Math.max(this.renderer.domElement.clientWidth,1),c=Math.max(this.renderer.domElement.clientHeight,1),o=this.captureAspect??a/c;this.orthographicCamera.left=-i*o,this.orthographicCamera.right=i*o,this.orthographicCamera.top=i,this.orthographicCamera.bottom=-i,this.orthographicCamera.near=e.near,this.orthographicCamera.far=e.far,this.orthographicCamera.position.copy(e.position),this.orthographicCamera.quaternion.copy(e.quaternion),this.orthographicCamera.up.copy(e.up),this.orthographicCamera.layers.mask=e.layers.mask,this.orthographicCamera.updateProjectionMatrix(),this.orthographicCamera.updateMatrixWorld(!0)}clearDiagnosticPresentation(){this.clearTopologyOverlay(),this.scene.overrideMaterial?.dispose(),this.scene.overrideMaterial=null;for(const e of this.helpers.splice(0)){e.removeFromParent();const t=e;t.geometry?.dispose();const s=t.material;Array.isArray(s)?s.forEach(i=>{i.dispose()}):s?.dispose()}}notify(){this.version++;for(const e of this.listeners)e()}}const zo=7;let ft=null;function _o(){if(ft)return ft;const n=64,e=document.createElement("canvas");e.width=n,e.height=n;const t=e.getContext("2d");return t.beginPath(),t.arc(n/2,n/2,n/2-1,0,Math.PI*2),t.fillStyle="rgba(0, 0, 0, 0.75)",t.fill(),t.beginPath(),t.arc(n/2,n/2,n/2-8,0,Math.PI*2),t.fillStyle="#ffffff",t.fill(),ft=new Yi(e),ft.colorSpace=nn,ft}class Wo extends sn{objects=[];origin=new B;constructor(){super(new en,new rn({map:_o(),size:zo,sizeAttenuation:!1,transparent:!0,alphaTest:.05,depthTest:!1,depthWrite:!1,toneMapped:!1})),this.name="volter:selection-origins",this.userData.editorHelper=!0,this.renderOrder=1e3,this.frustumCulled=!1,this.raycast=()=>{}}update(e,t){this.objects=e,this.material.color.setHex(e.length===1&&t.active!==void 0?t.active:t.visible),this.visible=e.length>0}place(){const e=this.objects.length;let t=this.geometry.getAttribute("position");(t===void 0||t.count<e)&&(this.geometry.dispose(),t=new tn(new Float32Array(Math.max(e,8)*3),3),this.geometry.setAttribute("position",t)),this.geometry.setDrawRange(0,e),this.objects.forEach((s,i)=>{s.getWorldPosition(this.origin),t.setXYZ(i,this.origin.x,this.origin.y,this.origin.z)}),t.needsUpdate=!0}dispose(){this.removeFromParent(),this.geometry.dispose(),this.material.dispose()}}class Io{constructor(e){this.options=e}active=null;settling=!1;idleWaiters=new Set;begin(e){if(this.active||this.settling)return!1;try{const t=this.options.begin(e);return t?(this.active={pointerId:e.pointerId,gesture:t},!0):!1}catch(t){return this.options.reportError(t),!1}}update(e){if(!(!this.active||this.active.pointerId!==e.pointerId))try{this.active.gesture.update(e)}catch(t){this.cancelWithError(t)}}async commit(e){const t=this.take(e.pointerId);if(!t)return!1;this.settling=!0;try{return await t.commit(e),await this.options.persist(t.label),!0}catch(s){try{await t.cancel()}catch(i){return this.options.reportError({operationError:s,rollbackError:i}),!1}return this.options.reportError(s),!1}finally{this.settling=!1;for(const s of this.idleWaiters)s();this.idleWaiters.clear()}}async cancel(e){const t=this.take(e);if(!t)return!1;this.settling=!0;try{return await t.cancel(),!0}catch(s){return this.options.reportError(s),!1}finally{this.settling=!1;for(const s of this.idleWaiters)s();this.idleWaiters.clear()}}async settle(){this.active&&await this.cancel(),this.settling&&await new Promise(e=>this.idleWaiters.add(e))}hasActiveGesture(){return this.active!==null}take(e){if(!this.active||e!==void 0&&this.active.pointerId!==e)return null;const t=this.active.gesture;return this.active=null,t}async cancelWithError(e){const t=this.take();if(t){this.settling=!0;try{await t.cancel(),this.options.reportError(e)}catch(s){this.options.reportError({operationError:e,rollbackError:s})}finally{this.settling=!1;for(const s of this.idleWaiters)s();this.idleWaiters.clear()}}}}class No{constructor(e,t){this.frame=e,this.releaseRenderer=t,this.unsubscribeActivity=So(()=>this.syncActivity())}rafId=0;running=!1;disposed=!1;active=!1;unsubscribeActivity;get isDisposed(){return this.disposed}get isRunning(){return this.running}setActive(e){this.disposed||(this.active=e,this.syncActivity())}syncActivity(){this.active&&mr()?this.start():this.stop()}redraw(){this.running&&!this.disposed&&mr()&&this.guardedFrame(performance.now())}dispose(){this.stop(),!this.disposed&&(this.disposed=!0,this.unsubscribeActivity(),this.releaseRenderer())}start(){this.disposed||this.running||(this.running=!0,this.guardedFrame(performance.now(),!0),!(!this.running||this.disposed)&&(this.rafId=requestAnimationFrame(this.tick)))}lastFrameFailure=null;guardedFrame(e,t=!1){try{this.frame(e,t),this.lastFrameFailure=null}catch(s){const i=s instanceof Error?s.message:String(s);i!==this.lastFrameFailure&&(this.lastFrameFailure=i,console.error("[document renderer] a frame threw; the loop continues:",s))}}stop(){this.running=!1,this.rafId!==0&&(cancelAnimationFrame(this.rafId),this.rafId=0)}tick=e=>{if(!(!this.running||this.disposed)){if(!mr()){this.stop();return}this.guardedFrame(e),!(!this.running||this.disposed)&&(this.rafId=requestAnimationFrame(this.tick))}}}const $o=new Set(["solid","clay","unlit","wireframe","normals","overdraw"]);function Go(n,e){return{read:()=>{const t=n.cameraPose;if(!t)return null;const{position:s,target:i}=t;return{camera:{position:{x:s.x,y:s.y,z:s.z},target:{x:i.x,y:i.y,z:i.z},...t.fov?{fov:t.fov}:{}},diagnostic:n.shadingMode,grid:Nn(e)}},setDiagnostic:t=>$o.has(t)?(n.setShadingMode(t),!0):!1,setCamera:t=>typeof t!="string"?(n.shell.setCameraPose(t.position,t.target,t.fov),!0):t==="isometric"?!1:(n.shell.setViewPreset(t),!0),frame:t=>t==="document"?!1:(n.shell.focusOnSelection(),!0)}}function Uo(n){const e=yr();return e?$n(Ys(e.shell,n)):"none"}const qo=f.lazy(()=>rt(()=>import("./stage-transform-tools-DHGdBZ3k.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])).then(n=>({default:n.ThreeStageTransformTools}))),Xo=f.lazy(()=>rt(()=>import("./stage-transform-tools-DHGdBZ3k.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])).then(n=>({default:n.ThreeStageTransformControls})));function Ws(n){return{transformTools:()=>Uo(n),TransformTools:qo,TransformControls:Xo}}class Yo{constructor(e,t,s){this.create=e,this.isOpen=t,this.subscribe=s}states=new Map;generations=new WeakMap;unsubscribe=null;claim(e){const t=this.states.get(e)??[];let s=t.find(i=>!i.inUse);return s||(s=this.create(e),t.push(s),this.states.set(e,t)),s.inUse=!0,this.generations.set(s,this.generation(s)+1),this.unsubscribe??=this.subscribe(()=>this.discardClosed()),s}generation(e){return this.generations.get(e)??0}release(e,t=this.generation(e)){this.generation(e)===t&&(e.inUse=!1,queueMicrotask(()=>this.discardClosed()))}retain(e,t,s){if(!this.isOpen(e.documentId)||!this.states.get(e.documentId)?.includes(e)||this.generation(e)!==s){t.dispose();return}const i=e.source;e.source=t,i!==t&&i?.dispose()}discardClosed(){const e=[];for(const[s,i]of this.states){if(this.isOpen(s))continue;const a=i.filter(c=>c.inUse);e.push(...i.filter(c=>!c.inUse)),a.length?this.states.set(s,a):this.states.delete(s)}this.states.size===0&&(this.unsubscribe?.(),this.unsubscribe=null);const t=[];for(const s of e){const i=s.source;s.source=null;try{i?.dispose()}catch(a){t.push(a)}}if(t.length)throw new AggregateError(t,"Retained document cleanup failed")}}const Ko=f.lazy(async()=>({default:(await rt(()=>import("./stage-overlay-set-B493KEWu.js"),__vite__mapDeps([64,4,5,7,8,6,9,10,11,12,13,45,65,66,24,14,15,1,2,16,17,18,19,20,21,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63]))).StageOverlaySet}));function Zo(n){return d.jsx(f.Suspense,{fallback:null,children:d.jsx(Ko,{...n})})}function Is(n,e,t){if(e==="orthographic"){const s=_t(n.camera.position.clone().sub(n.orbitControls.target),new B(0,1,0).applyQuaternion(n.camera.quaternion));return s!==null?s:t==="short"?"Iso":"Orthographic"}return t==="short"?"Persp":"Perspective"}const Qo=()=>()=>{},Ns=()=>0;function Jo({shell:n,documentId:e,label:t,kebab:s=!1}){const i=f.useSyncExternalStore(ao,Ls,Ls);f.useSyncExternalStore(go,vo);const a=e?wo(e):null;f.useSyncExternalStore(a?.subscribe??Qo,a?.getSnapshot??Ns,a?.getSnapshot??Ns);const c=a?a.projection():i.projection,o=P=>{a?a.setProjection(P):Fs(P)},[l,p]=f.useState(!1),C=f.useRef(null);f.useEffect(()=>{if(!l)return;const P=S=>{C.current?.contains(S.target)||p(!1)};return document.addEventListener("mousedown",P),()=>document.removeEventListener("mousedown",P)},[l]);const w=P=>{if(a){a.setViewPreset(P,"view");return}Fs("orthographic"),n.setViewPreset(P)};return d.jsxs("div",{ref:C,className:"volter-viewport-popover-anchor",children:[t===void 0?d.jsx(Je,{text:c==="perspective"?"Perspective":"Orthographic",children:d.jsx(Be,{"aria-label":"Viewport views","aria-expanded":l,size:"comfortable",onClick:()=>p(P=>!P),children:d.jsx(Ce,{icon:l?Gn:Un,size:"md"})})}):d.jsxs(Ke,{size:"comfortable",variant:"ghost","aria-label":"Viewport views","aria-expanded":l,"data-testid":"viewport-view-name",onClick:()=>p(P=>!P),children:[s?d.jsx(Ce,{icon:qn,size:"sm"}):null,t]}),l?d.jsx(Xn,{style:{minWidth:230},children:d.jsxs(Yn,{gap:3,children:[d.jsx(ds,{variant:"caption",tone:"muted",children:"Projection"}),d.jsxs(ps,{gap:1,children:[d.jsx(Ke,{size:"compact",variant:c==="perspective"?"primary":"ghost",onClick:()=>o("perspective"),children:"Perspective"}),d.jsx(Ke,{size:"compact",variant:c==="orthographic"?"primary":"ghost",onClick:()=>o("orthographic"),children:"Orthographic"})]}),d.jsx(ds,{variant:"caption",tone:"muted",children:"Axis View"}),d.jsxs(ps,{gap:1,children:[d.jsx(Ke,{size:"compact",variant:"ghost",onClick:()=>w("top"),children:"Top"}),d.jsx(Ke,{size:"compact",variant:"ghost",onClick:()=>w("front"),children:"Front"}),d.jsx(Ke,{size:"compact",variant:"ghost",onClick:()=>w("right"),children:"Right"})]})]})}):null]})}const ea=uo;function $s(n){return Er(null,n)}const ta=()=>()=>{},Gs=()=>0,ra=5,sa=58;function na(n,e){const t=e?.camera()??n.renderCamera,s=n.camera.position,i=n.orbitControls.target,a=t.isOrthographicCamera?un(t,n,e):0;return[s.x,s.y,s.z,i.x,i.y,i.z,a].map(c=>c.toPrecision(6)).join(",")}function un(n,e,t){const s=e.orbitControls.domElement,i=Math.max(1,t?.renderer.domElement.height??(s?.clientHeight??1)*(s?.ownerDocument.defaultView?.devicePixelRatio??1));return(n.top-n.bottom)/n.zoom/i}function ia({viewport:n,documentId:e,session:t,store:s,projection:i,displayName:a,objectName:c,statistics:o,subject:l,gridScale:p}){f.useSyncExternalStore(s.subscribe,s.getShellSnapshot??s.getSnapshot),f.useSyncExternalStore(f.useCallback(V=>{const F=n?.orbitControls;return F?.addEventListener("change",V),()=>F?.removeEventListener("change",V)},[n]),()=>n?na(n,t):""),f.useSyncExternalStore(t?.subscribe??ta,t?.getSnapshot??Gs,t?.getSnapshot??Gs);const C=f.useSyncExternalStore($s,Ks),w=f.useSyncExternalStore($s,Kn),P=C&&!w?tt.content.onAccent:tt.content.primary,S=Zn();f.useSyncExternalStore(br,fs,fs);const W=et(e).overlays.navigationControls;if(!n)return null;const z=_t(n.camera.position.clone().sub(n.orbitControls.target),new B(0,1,0).applyQuaternion(n.camera.quaternion))??"User",M=t?.projection()??i,k=t?.cameraView()??null,I=k?`Camera ${k.projection==="perspective"?"Perspective":"Orthographic"}`:`${z} ${M==="perspective"?"Perspective":"Orthographic"}`,Q=s.selectedEntityId,y=(Q===null?null:c(Q))||null,q=l??(y===null||y===a?a:`${a} | ${y}`),_=t?.camera()??n.renderCamera,Y=p&&!k&&z!=="User"&&_.isOrthographicCamera?p(un(_,n,t)):null,L=V=>{V.preventDefault();const F=V.currentTarget;F.setPointerCapture(V.pointerId);const ke=n.orbitControls.domElement?.getBoundingClientRect().top??0,Ae=Math.max(5+V.clientY-ke,1),ce=n.camera,de=n.orbitControls.target,le=ce.position.clone().sub(de),te=!t&&n.renderCamera instanceof xr?n.renderCamera:null,ie=te?.zoom??1,Le=t?.cameraViewZoom()??null,pe=fe=>{const _e=5+fe.clientY-ke,Ee=Math.max(.01,2*(_e/Ae-1)+1);Le!==null&&t?.cameraView()?t.setCameraViewZoom(Le/Ee):te?(te.zoom=ie/Ee,te.updateProjectionMatrix()):ce.position.copy(de).addScaledVector(le,Ee),n.orbitControls.update()},J=()=>{F.removeEventListener("pointermove",pe),F.removeEventListener("pointerup",J),F.removeEventListener("pointercancel",J),F.removeEventListener("lostpointercapture",J)};F.addEventListener("pointermove",pe),F.addEventListener("pointerup",J),F.addEventListener("pointercancel",J),F.addEventListener("lostpointercapture",J)},K=V=>{V.preventDefault();const F=V.currentTarget;F.setPointerCapture(V.pointerId);let ke=V.clientX,Ae=V.clientY;const ce=new B,de=new B,le=ie=>{const Le=ie.clientX-ke,pe=ie.clientY-Ae;if(ke=ie.clientX,Ae=ie.clientY,t?.cameraView()){const nt=t.renderer.domElement;t.panCameraView(Le/Math.max(nt.clientWidth,1),pe/Math.max(nt.clientHeight,1));return}const J=n.camera,fe=n.orbitControls.target,_e=J.position.distanceTo(fe),Ee=Math.max(1,F.ownerDocument.defaultView?.innerHeight??1),st=2*_e*Math.tan(Cr.degToRad(J.fov/2))/Ee;ce.setFromMatrixColumn(J.matrixWorld,0).multiplyScalar(-Le*st),de.setFromMatrixColumn(J.matrixWorld,1).multiplyScalar(pe*st),J.position.add(ce).add(de),fe.add(ce).add(de),n.orbitControls.update()},te=()=>{F.removeEventListener("pointermove",le),F.removeEventListener("pointerup",te),F.removeEventListener("pointercancel",te),F.removeEventListener("lostpointercapture",te)};F.addEventListener("pointermove",le),F.addEventListener("pointerup",te),F.addEventListener("pointercancel",te),F.addEventListener("lostpointercapture",te)};return d.jsxs(d.Fragment,{children:[S.viewName==="text"&&s.showHelpers?d.jsxs("div",{"data-testid":"viewport-view-text","aria-hidden":"true",style:{position:"absolute",top:"var(--volter-space-3)",left:"calc(var(--volter-space-4) + var(--volter-control-comfortable-height) * 2 + var(--volter-space-4))",display:"flex",flexDirection:"column",gap:"var(--volter-space-1)",fontSize:"var(--volter-font-sm)",color:P,textShadow:"var(--volter-content-text-shadow, none)",pointerEvents:"none",userSelect:"none"},children:[d.jsx("span",{children:I}),d.jsx("span",{children:q}),Y?d.jsx("span",{"data-testid":"viewport-grid-scale",children:Y}):null,o&&o.length>0?d.jsx("div",{"data-testid":"viewport-statistics",style:{display:"grid",gridTemplateColumns:`${sa}px auto`,rowGap:"var(--volter-space-1)",marginTop:Qn[ra]},children:o.map(V=>d.jsxs(f.Fragment,{children:[d.jsx("span",{children:V.label}),d.jsx("span",{children:V.value})]},V.id))}):null]}):null,S.viewName==="menu"?d.jsx("div",{className:"volter-viewport-view-pill",style:{position:"absolute",top:"var(--volter-viewport-overlay-top, var(--volter-space-4))",left:"var(--volter-stage-name-left, calc(var(--volter-space-4) + var(--volter-control-comfortable-height) * 2 + var(--volter-space-4)))",zIndex:"calc(var(--volter-z-dropdown, 1000) - 1)",pointerEvents:"auto"},children:d.jsx(Jo,{shell:s,documentId:e,label:Is(n,M,"long"),kebab:!0})}):null,S.viewName==="gizmo"?d.jsxs("button",{type:"button","data-testid":"viewport-view-name",className:"volter-viewport-gizmo-label","aria-label":M==="perspective"?"Switch to orthographic":"Switch to perspective",onClick:()=>{const V=M==="perspective"?"orthographic":"perspective";t?t.setProjection(V):n.setProjection(V)},style:{position:"absolute",top:lo+4,right:co,transform:"translateX(50%)",display:"inline-flex",alignItems:"center",gap:"var(--volter-space-1)",padding:0,border:0,background:"none",fontSize:"var(--volter-font-sm)",color:P,textShadow:"var(--volter-content-text-shadow, none)",cursor:"pointer",pointerEvents:"auto"},children:[d.jsx(Ce,{size:"xs",icon:M==="perspective"?Jn:ei}),Is(n,M,"short")]}):null,W&&s.showGizmos?d.jsxs("div",{"data-testid":"viewport-navigation",role:"toolbar","aria-label":"Navigation","aria-orientation":"vertical",className:"volter-chrome-island volter-viewport-navigation",style:{position:"absolute",top:ea,right:"var(--volter-space-6)",display:"flex",flexDirection:"column",gap:"var(--volter-space-1)",padding:"var(--volter-space-1) 0",borderRadius:"var(--volter-radius-full)",background:"var(--volter-island-surface, var(--volter-surface-overlay))",pointerEvents:"auto"},children:[d.jsx(Je,{text:"Zoom (drag)",children:d.jsx(Be,{size:"comfortable","aria-label":"Zoom the view",onPointerDown:L,children:d.jsx(Ce,{size:"2xl",icon:Pe.viewport.zoomIn})})}),d.jsx(Je,{text:"Pan (drag)",children:d.jsx(Be,{size:"comfortable","aria-label":"Pan the view",onPointerDown:K,children:d.jsx(Ce,{size:"2xl",icon:Pe.viewport.pan})})}),t?.hasCameraView()?d.jsx(Je,{text:k?"Leave the camera view":"Look through the camera",children:d.jsx(Be,{size:"comfortable","aria-label":"Toggle the camera view",onClick:()=>t.toggleCameraView(),children:d.jsx(Ce,{size:"2xl",icon:k?Pe.viewport.cameraView:Pe.viewport.camera})})}):null,k&&t?.cameraViewLocked()!==null?d.jsx(Je,{text:t?.cameraViewLocked()?"Unlock the camera from the view":"Lock the camera to the view",children:d.jsx(Be,{size:"comfortable","aria-label":"Lock the camera to the view",onClick:()=>t?.toggleCameraViewLock(),children:d.jsx(Ce,{size:"2xl",icon:t?.cameraViewLocked()?Pe.viewport.cameraLocked:Pe.viewport.cameraUnlocked})})}):null,k||S.viewName==="gizmo"?null:d.jsx(Je,{text:M==="perspective"?"Orthographic":"Perspective",children:d.jsx(Be,{size:"comfortable","aria-label":"Toggle perspective and orthographic",onClick:()=>{const V=M==="perspective"?"orthographic":"perspective";t?t.setProjection(V):n.setProjection(V)},children:d.jsx(Ce,{size:"2xl",icon:M==="orthographic"?Pe.viewport.projectionOrthographic:Pe.viewport.projection})})})]}):null,k&&t?d.jsx(oa,{view:k,canvas:t.renderer.domElement,locked:t.cameraViewLocked()===!0}):null]})}function oa({view:n,canvas:e,locked:t}){const[s,i]=f.useState(null),[,a]=f.useState(0);f.useEffect(()=>{const M=new ResizeObserver(()=>a(k=>k+1));return M.observe(e),()=>M.disconnect()},[e]);const c=e.clientWidth,o=e.clientHeight,l=e.ownerDocument.defaultView?.devicePixelRatio??1,p=e.getBoundingClientRect(),C=s?.getBoundingClientRect(),w=1/l,P=n.frame.left*c-w,S=n.frame.top*o-w,W=n.frame.width*c+2*w,z=n.frame.height*o+2*w;return d.jsx("div",{ref:i,"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none"},children:C?d.jsxs("svg",{"data-testid":"viewport-camera-frame",width:c,height:o,style:{position:"absolute",left:p.left-C.left,top:p.top-C.top},children:[n.passepartout.opacity>0?d.jsx("path",{d:`M0 0H${c}V${o}H0Z M${P} ${S}V${S+z}H${P+W}V${S}Z`,fill:n.passepartout.color,fillOpacity:n.passepartout.opacity,fillRule:"evenodd"}):null,n.passepartout.opacity>0?d.jsx("rect",{x:P,y:S,width:W,height:z,fill:"none",stroke:n.border.solid,strokeWidth:w,shapeRendering:"crispEdges"}):null,d.jsx("rect",{x:P,y:S,width:W,height:z,fill:"none",stroke:n.border.dashed,strokeWidth:w,strokeDasharray:`${3*w} ${3*w}`,shapeRendering:"crispEdges"}),t?d.jsx("rect",{x:P-w,y:S-w,width:W+2*w,height:z+2*w,fill:"none",stroke:n.border.locked,strokeWidth:w,strokeDasharray:`${3*w} ${3*w}`,shapeRendering:"crispEdges"}):null]}):null})}const aa=f.lazy(async()=>({default:(await rt(()=>import("./stage-keyboard-CMvoZA6K.js"),__vite__mapDeps([67,7,5,8,68,6,4,9,10,11,12,13,45,23]))).StageKeyboardBinding})),ca=n=>{const e=n.split(":");return(e[0]==="document"?e[1]:e[0])??n},Us=()=>Ri(),wr=12;function qs(n){if(!n)return null;const e=new Pr(new B(n.min[0],n.min[1],n.min[2]),new B(n.max[0],n.max[1],n.max[2]));return e.isEmpty()?null:e}const la=500;function ua(n){return Er(null,n)}const ha=["solid","preview","rendered","clay","unlit","wireframe","matcap","normals","overdraw"];let da=0;const Qe=new Yo(n=>({documentId:n,store:an(new Zs),inUse:!1,source:null,camera:null,presentation:null,transport:null,contentSeconds:0,transportAdvances:0}),n=>ui().some(e=>e.descriptor.id===n),hi);function pa({canvasHostRef:n}){return d.jsx("div",{ref:n,style:{position:"absolute",inset:0}})}function fa(n,e,t,s,i){if(e==="inspector-preview"){const l=Di();return l.canvas.setAttribute("aria-label",`${t} authoring viewport`),n.appendChild(l.canvas),{canvas:l.canvas,renderer:l.renderer,lease:l}}const a=ro(s.width,s.height,i),{canvas:c,renderer:o}=a;return c.setAttribute("aria-label",`${t} authoring viewport`),n.appendChild(c),{canvas:c,renderer:o,lease:a}}class Xs{constructor(e,t,s){this.lane=e,this.surface=t,this.store=s??an(new Zs),this.transport=new Oi(this.store.shell)}scene=new on;store;cleanups=[];rendererSession=new No((e,t)=>this.frame?.(e,t),()=>{});viewport=null;session=null;dressing=null;presentationRig=null;applyPresentation=null;backdropOverridden=!1;documentStudio=null;contentLights=[];contentHas={light:!1,"directional-light":!1};darkened=[];darkenContentLights(){for(const t of this.contentLights)t.visible&&(t.visible=!1,this.darkened.push(t));if(this.darkened.length===0)return 0;const e=this.darkened.length;return this.scene.onAfterRender=()=>{for(const t of this.darkened)t.visible=!0;this.darkened=[],this.scene.onAfterRender=()=>{}},e}defaultEnvironment=null;defaultBackground=null;adapter=null;presentationAdapter=null;content=null;frame=null;syncHostScene=null;presence=null;initialized=!1;contentSeconds=0;transportAdvances=0;users=0;closed=!1;released=!1;get isClosed(){return this.closed}transport;borrow(){this.users++;let e=!1;return()=>{e||(e=!0,this.users--,this.releaseIfClosed())}}close(){this.closed=!0,this.frame=null,this.syncHostScene=null,this.session?.setBeforeRender(null),this.session?.setPresentsFrames(!1),this.rendererSession.setActive(!1),this.content?.dispose(),this.transport.dispose(),this.releaseIfClosed()}releaseIfClosed(){if(!this.closed||this.users!==0||this.released)return;this.released=!0;const{lease:e,renderer:t,canvas:s}=this.surface;for(const i of[...this.cleanups.splice(0),()=>this.session?.dispose(),()=>this.viewport?.dispose(),()=>this.rendererSession.dispose(),()=>this.dressing?.dispose(),...e?[()=>e.release()]:[()=>t.dispose(),()=>t.forceContextLoss(),()=>s.remove()]])try{i()}catch(a){console.error("Object3D document cleanup failed.",a)}}}function hn({documentId:n,sourcePath:e,build:t,displayName:s="Source Object3D",background:i,cameraDirection:a,persistence:c,documentSource:o,authoring:l,interaction:p,selectionOutline:C=!0,active:w=!0,audit:P=!0,chromeless:S=!1,modelSource:W,assetType:z,sourceAuthoring:M,dressing:k,rendererLane:I="own",onOpenNode:Q,frameBounds:y,openingFrameBounds:q,openingFit:_,openingView:Y,presentation:L,cameraView:K,stageKind:V,statistics:F,subject:ke,gridScale:Ae,content:ce}){const de=V??ca(n);f.useEffect(()=>{if(!S)return ti(n)},[n,S]);const le=ji(ri()),te=le??yr(),ie=te?Ys(te.shell,n,S?"embedded":"document"):null,Le=f.useSyncExternalStore(ua,Ks),pe=ie!==null&&si(ie,Le),J=f.useRef(pe);J.current=pe;const fe=ie!==null&&ni(ie),_e=f.useRef(fe);_e.current=fe;const Ee=ie!==null&&ii(ie),st=f.useRef(Ee);st.current=Ee;const nt=oi(),Wt=f.useRef(nt);Wt.current=nt;const It=f.useRef(null),Nt=f.useRef(null),X=f.useRef(null),Fe=f.useRef(null);(!Fe.current||Fe.current.documentId!==n)&&(Fe.current&&Qe.release(Fe.current),Fe.current=Qe.claim(n)),f.useEffect(()=>{const R=Fe.current,me=Qe.generation(R);return()=>Qe.release(R,me)},[n]);const N=Fe.current,We=ce?.kind==="world-root",$t=w||We,Mr=f.useRef(ce?.kind==="world-root"?ce.load:null);Mr.current=ce?.kind==="world-root"?ce.load:null;const[Ie,Gt]=f.useState($t);f.useEffect(()=>Gt($t),[$t]);const Ut=f.useRef(C);f.useEffect(()=>{Ut.current=C;const R=X.current?.session;R&&(R.selectionOutlineEnabled=I!=="inspector-preview"&&C),X.current?.applyPresentation?.()},[C,I]);const Or=f.useRef(Promise.resolve()),qt=f.useRef(!1);f.useEffect(()=>{if(Ie)return it.current=!1,Zt("building"),()=>{const R=X.current;if(R&&!We){qt.current=!mt.current;const me=R.store.cameraPose;N.camera=me&&R.viewport?{...me,up:R.viewport.camera.up.clone()}:null,N.presentation=R.session?.presentation()??null,N.transport=R.transport.snapshot(),N.contentSeconds=R.contentSeconds,N.transportAdvances=R.transportAdvances}wt.current=null,bt.current=null,vt.current=null,gt.current=null,R?.close(),X.current=null}},[n,I,N,Ie,We]);const Rr=f.useRef(Q);Rr.current=Q;const jr=f.useRef(y);jr.current=y;const Tr=f.useRef(q);Tr.current=q;const Xt=f.useRef(Y);Xt.current=Y;const Vr=f.useRef(L);Vr.current=L;const Ar=f.useRef(K);Ar.current=K;const mt=f.useRef(w);mt.current=w;const Lr=f.useRef(w),Fr=f.useRef({build:t,sourcePath:e});f.useEffect(()=>{const R=Fr.current;Fr.current={build:t,sourcePath:e},!(R.build===t&&R.sourcePath===e)&&!Ie&&N.source&&(N.source.dispose(),N.source=null)},[t,N,e,Ie]);const gt=f.useRef(null),it=f.useRef(!1),vt=f.useRef(null),wt=f.useRef(null),bt=f.useRef(null),[Yt,oe]=f.useState(null),[Kt,Zt]=f.useState("building"),[Dr,dn]=f.useState(null),[pn,fn]=f.useState("mounting"),[mn,gn]=f.useState([]),Hr=f.useRef(null),[Br,vn]=f.useState("perspective"),[wn,zr]=f.useState(null),yt=f.useRef(null);yt.current=wn;const Qt=a?.[0],Jt=a?.[1],er=a?.[2],ot=W?.kind,tr=W?.kind==="project-file"?W.path:void 0,St=W?.kind==="entity"?W.entityId:void 0,_r=k?.environment,Wr=k?.background,Ir=k?.keyLight,rr=k?.grid,at=k?.viewLocked,sr=k?.toneMapping;w&&ai(n),f.useEffect(()=>{let R=!1;if(!Ie)return;const me=async Me=>{const $=It.current,ct=Nt.current;if(!$||!ct||X.current)return;const E=Wt.current;if(!E){oe("The world root needs the editor shell above it; this host has none.");return}const lt=await Me();if(R||X.current)return;dn(()=>lt),ms();const r=new Xs("own",lt.mountWorldRootSurface(ct,$,s),yr()??void 0);X.current=r,r.cleanups.push(gs(n,r.store.shell)),r.cleanups.push(vs(n,r.transport)),r.cleanups.push(Mi(n,{...Go(r.store,n),...Ws(n)}));const ae=lt.installWorldRootStage({store:r.store,documentId:n,container:$,canvas:r.surface.canvas,renderer:r.surface.renderer,stats:E,cameraPreview:()=>Hr.current,onMountStatus:fn,onRootIds:gn,runFrame:Oe=>Ds(n,Oe)});r.viewport=ae.viewport,r.frame=ae.frame,r.content={scene:ae.scene,settle:()=>Promise.resolve(),dispose:async()=>ae.dispose()};const j=Bs(()=>r.store.scene??ae.scene,r.transport,{rescanOnLiveMixers:()=>r.store.shell.playState==="stopped"});let re=0;r.cleanups.push(()=>j.dispose()),r.cleanups.push(r.store.shell.subscribe(()=>{if(r.store.shell.playState!=="stopped")return;const Oe=performance.now();Oe-re<la||(re=Oe,j.refresh())})),r.cleanups.push(Hs({camera:ae.viewport.camera,drawCamera:()=>ae.viewport.renderCamera,orbit:ae.viewport.orbitControls,scene:ae.scene},ae.present,ae.setHelper,{documentId:n})),gt.current=r.rendererSession,r.initialized=!0,Ps(),Zt("ready"),r.rendererSession.setActive(!0)},yn=async()=>{for(await X.current?.content?.settle();Qi();)await Ji();if(R)return;const Me=Mr.current;if(Me)return me(Me);const $=It.current,ct=Nt.current;if(!$||!ct)return;if(!t||e===void 0){oe("This stage shows `build` content and was given no `build()`/`sourcePath`.");return}let E;const lt=Qe.generation(N);try{E=N.source??t(),N.source=null}catch(ee){oe(ee instanceof Error?ee.message:String(ee));return}try{X.current||(ms(),X.current=new Xs(I,fa(ct,I,s,{width:Math.max(1,$.clientWidth),height:Math.max(1,$.clientHeight)},()=>{Gt(!1),window.setTimeout(()=>{mt.current&&Gt(!0)},0)}),N.store),X.current.contentSeconds=N.contentSeconds,X.current.transportAdvances=N.transportAdvances)}catch(ee){throw E.dispose(),ee}const r=X.current,ae=r.borrow(),{renderer:j,canvas:re,lease:Oe}=r.surface,T=r.store;S||(r.cleanups.push(gs(n,T.shell)),r.cleanups.push(vs(n,r.transport)));const Pt=ws();Pt&&T.shell.attachHistory(Pt);const ir=I==="inspector-preview",Ne=J.current,$r=_e.current,Gr=st.current,A=new on,Ct=E.root.parent;A.add(E.root),E.animations&&(E.root.animations=[...E.animations]);const or={root:E.root,animations:E.root.animations};let $e=null,Ge=null,Ue=null,Re=null,ue=null,kt=null,Et=null,Mt=null,Ot=null,Rt=null,ar=null,Ur=null,qr=null,Xr=!1,jt=!1,Tt=null;const cr={scene:A,settle:()=>ue?.settle()??Promise.resolve(),dispose:()=>{if(Tt)return Tt;jt=!0;const ee=qt.current;return qt.current=!1,kt&&$.removeEventListener("pointerdown",kt,!0),Et&&$.removeEventListener("pointermove",Et,!0),Mt&&$.removeEventListener("pointerup",Mt,!0),Ot&&$.removeEventListener("pointercancel",Ot,!0),Rt&&window.removeEventListener("keydown",Rt),ar?.(),ar=null,Tt=(async()=>{await ue?.settle();const ut=[];for(const Vt of[()=>Re?.dispose(),()=>Ge?.dispose?.(),()=>$e?.dispose(),()=>A.removeFromParent(),()=>{ee?Qe.retain(N,E,lt):E.dispose()},ae])try{Vt()}catch(ge){ut.push(ge)}ut.length&&console.error("Object3D source cleanup failed.",...ut)})(),Tt}};try{const ee=async u=>{try{const g=or;if(o&&!c){if(!g)throw new Error("Project history is unavailable; the edit was not saved.");const h=ws();if(!h)throw new Error("Project history is unavailable; the edit was not saved.");const v=o.serialize(g);if(v===null)return oe(null),!1;const m=await Us().replaceSource(h,{file:o.path,source:v,label:u??o.label??`Edit ${s}`});return oe(null),m}if(!c)throw new Error("This Asset Lab document has no persistence binding.");if(!Ue||!g)throw new Error("Project history is unavailable; the edit was not saved.");const{persisted:x}=await(await Ue).commit(g,u);return oe(null),x}catch(g){throw oe(g instanceof Error?g.message:JSON.stringify(g)),g}};$e=new yo(T,A,{documentId:n,title:s,sourcePath:e,documentKind:Gr?"asset":"source",audit:P,...E.hierarchyRoots?{hierarchyRoots:E.hierarchyRoots}:{},...ot==="project-file"&&tr?{modelSource:{kind:ot,path:tr}}:ot==="entity"&&St?{modelSource:{kind:ot,entityId:St}}:{}});const ut={documentId:n,sourcePath:e,root:E.root,animations:E.root.animations,scene:A,defaultAdapter:$e,commit:ee};Ge=l?.(ut)??null;const Vt=Ge?$e:null;!Ge&&M&&(Ge=M({store:T,scene:A,...E.hierarchyRoots?{hierarchyRoots:E.hierarchyRoots}:{}}),$e.dispose()),Ue=c&&Pt?Us().openPersistence({binding:c,document:or,history:Pt}):null,Ue&&Ue.catch(u=>{!jt&&X.current?.content===cr&&oe(u instanceof Error?u.message:JSON.stringify(u))});const ge=Ge?.adapter??$e;if(!r.dressing){j.outputColorSpace=nn,j.toneMapping=sr??Ki,j.shadowMap.enabled=!0,j.shadowMap.type=Zi,j.info.autoReset=!1,j.setPixelRatio(Math.min(window.devicePixelRatio,2)),Ne&&j.setClearColor(0,0);const u=_r===!1?null:Oe&&"environment"in Oe?Oe.environment():Fi(j),g=bs(re);r.dressing=Ti(r.scene,{environment:u,background:!Ne&&i===void 0&&Wr!==!1,keyLight:!1,grid:rr===!0,content:E.root}),!Ne&&i!==void 0?r.scene.background=new be(i):!Ne&&g.background!==null&&(r.scene.background=new be(g.background)),r.defaultEnvironment=r.scene.environment,r.defaultBackground=r.scene.background;{const x=new Vi(r.scene,H);r.presentationRig=x,ys(n,de);let h=r.store.shell.showHelpers;const v=()=>{const m=et(n);if(h=r.store.shell.showHelpers,x.apply(m,j,sr),r.viewport?.setStageFunction(m.world,m.interaction),r.viewport?.setFieldOfView(m.camera.fov),r.viewport?.setSelectionMarks(m.overlays.selection),r.viewport?.setGridMajorEvery(m.overlays.grid.majorEvery),r.viewport?.setAxisLines(m.overlays.axes),r.viewport?.setNavigation(m.overlays.navigation),r.viewport?.setGridVisible(m.overlays.grid.visible&&h),r.session){const O=r.session.presentation().mode==="wireframe"&&m.xray.enabled&&m.xray.alpha<=0;r.session.selectionOutlineEnabled=!ir&&h&&Ut.current&&m.overlays.selection.outline&&!O,r.session.selectionOriginsEnabled=!ir&&h&&m.overlays.selection.origins,r.session.setXray(m.xray)}H()};r.applyPresentation=v,v(),r.cleanups.push(br(v)),r.cleanups.push(r.store.shell.subscribe(()=>{r.store.shell.showHelpers!==h&&v()})),r.cleanups.push(di(()=>{x.forgetFailedImages(),v()})),r.cleanups.push(()=>{x.dispose(),r.presentationRig===x&&(r.presentationRig=null)})}r.cleanups.push(()=>{r.defaultBackground instanceof Rs&&r.defaultBackground!==r.dressing?.backgroundTexture&&r.defaultBackground.dispose()})}const Yr=(u,g)=>{const x=r.adapter,h=r.viewport;if(!x||!h)return null;const v=re.getBoundingClientRect(),m=new pt((u-v.left)/Math.max(v.width,1)*2-1,-((g-v.top)/Math.max(v.height,1))*2+1),O=new js;O.layers.enableAll(),O.params.Line2={threshold:4},O.setFromCamera(m,r.session?.camera()??h.camera);const Z=r.presentationAdapter,he=D=>{for(let U=D;U;U=U.parent){const Se=Z?.hierarchy.idForObject3D?.(U)??x.hierarchy.idForObject3D?.(U);if(Se)return Se}return null};let ve=null;for(const D of O.intersectObjects([...T.objectMap.values()],!0)){if(ks(D.object))continue;const U=he(D.object);if(U){ve={distance:D.distance,id:U};break}}const ye=h.visibleHelpers().filter(D=>D.userData.volterPickable===!0);for(const D of O.intersectObjects(ye,!0)){let U=null,Se=!0;for(let Te=D.object;Te;Te=Te.parent)Te.visible||(Se=!1),U??=Te.userData.volterPicksAs??null;if(!Se)continue;const xe=U?he(U):null;if(xe){(!ve||D.distance<ve.distance)&&(ve={distance:D.distance,id:xe});break}}return ve?.id??null};if(!r.viewport){r.viewport=new ho(re,r.scene,T,$,{renderer:j,authoring:()=>r.adapter??ge,pick:Yr,drawCamera:()=>r.session?.camera()??r.viewport.camera,publishPickContext:!1,onProjectionChange:vn,chromeInsetPx:S||$r?0:wr,lightRig:!1}),rr===!0&&r.viewport.grid.removeFromParent();const u=g=>{const x=Yr(g.clientX,g.clientY),h=x&&r.adapter?ze(r.adapter.hierarchy,x):null;h&&Rr.current?.(h)};$.addEventListener("dblclick",u),r.cleanups.push(()=>$.removeEventListener("dblclick",u))}const b=r.viewport;if(at){const u=b.camera;r.scene.add(u);const g=new zt;g.name="volter:document-studio",g.add(at),u.add(g),r.documentStudio=g,r.cleanups.push(()=>{at.removeFromParent(),g.removeFromParent(),r.documentStudio===g&&(r.documentStudio=null),u.removeFromParent()})}if(p){const u=new zt;u.name="__object3d_document_overlay",Js(u,"editorHelper",!0),A.add(u),Re=p.setup({root:E.root,scene:A,renderer:j,overlay:u,camera:()=>r.session?.camera()??b.camera,writable:c!==void 0||o!==void 0});const g=h=>{const v=re.getBoundingClientRect(),m=new pt((h.clientX-v.left)/Math.max(v.width,1)*2-1,-((h.clientY-v.top)/Math.max(v.height,1))*2+1),O=new js;return O.layers.enableAll(),O.setFromCamera(m,r.session?.camera()??b.camera),{pointerId:h.pointerId,button:h.button,buttons:h.buttons,clientX:h.clientX,clientY:h.clientY,altKey:h.altKey,ctrlKey:h.ctrlKey,metaKey:h.metaKey,shiftKey:h.shiftKey,ray:O.ray.clone(),hits:O.intersectObjects([E.root,u],!0)}};ue=new Io({begin:h=>{if(!c&&!o)throw new Error("This Asset Lab document has no persistence binding; project gestures are read-only.");return Re.begin(h)},persist:async h=>{await ee(h)},reportError:h=>oe(h instanceof Error?h.message:JSON.stringify(h))});const x=h=>{h.preventDefault(),h.stopPropagation()};kt=h=>{h.target instanceof Element&&h.target.closest('[role="alert"], [role="toolbar"]')!==null||ue?.begin(g(h))&&(x(h),h.isTrusted&&re.setPointerCapture?.(h.pointerId))},Et=h=>{ue?.hasActiveGesture()&&(x(h),ue.update(g(h)))},Mt=h=>{ue?.hasActiveGesture()&&(x(h),re.hasPointerCapture?.(h.pointerId)&&re.releasePointerCapture?.(h.pointerId),ue.commit(g(h)))},Ot=h=>{ue?.hasActiveGesture()&&(x(h),ue.cancel(h.pointerId))},Rt=h=>{h.key!=="Escape"||!ue?.hasActiveGesture()||(h.preventDefault(),ue.cancel())},Ur=()=>{$.addEventListener("pointerdown",kt,!0),$.addEventListener("pointermove",Et,!0),$.addEventListener("pointerup",Mt,!0),$.addEventListener("pointercancel",Ot,!0),window.addEventListener("keydown",Rt)}}const De=r.content,Kr=[...T.shell.selectedEntityIds],ht=r.adapter,xn=r.presentationAdapter,Pn=new Map(T.objectMap),qe=r.session?.root,Cn=r.frame,kn=r.syncHostScene,En=wt.current,Mn=bt.current,On=vt.current,Zr=r.session?.neutralBackgroundTexture(),Rn=r.dressing.lights.map(u=>u.visible),jn=r.cleanups.length,Tn=r.initialized;if(qr=()=>{A.removeFromParent(),Ct&&Ct.add(E.root),De&&r.scene.add(De.scene),r.adapter=ht,r.presentationAdapter=xn,r.content=De,r.frame=Cn,r.syncHostScene=kn,r.initialized=Tn;for(const u of r.cleanups.splice(jn))u();!qe&&r.session&&(r.session.dispose(),r.session=null),T.objectMap.clear();for(const[u,g]of Pn)T.objectMap.set(u,g);De&&T.bindScene(De.scene,j,b.batchedRenderer,b.camera),qe&&ht&&r.session?.replaceContent(qe,ht),wt.current=En,bt.current=Mn,vt.current=On,yt.current=ht,zr(ht),Zr!==void 0&&r.session?.setNeutralBackground(Zr),r.dressing?.lights.forEach((u,g)=>{u.visible=Rn[g]??!0}),qe&&(r.dressing?.frameContent(qe),r.presentationRig?.placeFloor(qe)),T.shell.selectMultiple(Kr),T.notifyIngestObjectMapEdit()},De?.scene.removeFromParent(),r.scene.add(A),r.adapter=ge,r.presentationAdapter=Vt,r.content=cr,T.bindScene(A,j,b.batchedRenderer,b.camera),T.setOrbitTarget(b.orbitControls.target),T.objectMap.clear(),A.traverse(u=>{const g=Vt?.hierarchy.idForObject3D?.(u)??ge.hierarchy.idForObject3D?.(u);g&&T.objectMap.set(g,u)}),r.session)r.session.replaceContent(E.root,ge);else{const u=qs(jr.current),g=qs(Tr.current)??u,x=et(n).camera;b.setFieldOfView(x.fov);const h=Xt.current,v=Qt!==void 0&&Jt!==void 0&&er!==void 0;if(!h&&!v){const m=b.orbitControls.target,O=b.camera.position.distanceTo(m);b.camera.position.copy(m).addScaledVector(new B(...x.opening).normalize(),O)}if(g||b.focusOn(E.root),h){const m=new B(...h.target),O=new B(...h.direction).normalize();b.camera.position.copy(m).addScaledVector(O,h.distance),b.camera.up.set(0,1,0),h.up&&b.camera.up.set(...h.up),b.orbitControls.target.copy(m)}else if(v){const m=g??Sr(E.root),O=m.getCenter(new B),Z=new B(Qt,Jt,er).normalize(),he=Bt(m,b.camera,Z)*Math.min(10,Math.max(.1,_??1));b.camera.position.copy(O).add(Z.multiplyScalar(he)),b.orbitControls.target.copy(O)}if(r.session=new Bo(n,E.root,r.scene,j,b,ge,Ne?null:i===void 0?r.dressing.backgroundTexture:new be(i),u),r.session.selectionOutlineEnabled=!ir&&Ut.current,r.session.setCameraViewSource(Ar.current??null),r.applyPresentation?.(),Xt.current?.projection==="orthographic"&&r.session.setProjection("orthographic"),!Ne&&i===void 0&&r.dressing.backgroundTexture){const m=r.session;r.cleanups.push(Ai(()=>{const O=bs(re).background,Z=r.defaultBackground;r.defaultBackground=O!==null?new be(O):Li(),m.neutralBackgroundTexture()===Z&&m.setNeutralBackground(r.defaultBackground),Z instanceof Rs&&Z!==r.dressing?.backgroundTexture&&Z.dispose()}))}}const dt=N.camera;dt&&(b.setPose(dt.position,dt.target,dt.fov||void 0,dt.up),b.setProjection(Br),N.camera=null);const G=r.session;wt.current=or,bt.current=Ue,vt.current=Re,yt.current=ge,zr(ge);const lr=pi(de)?.all?.lighting!==void 0||fi(de)?null:at?{all:{lighting:{source:"studio",studioPreset:Ss.id,auto:null}}}:Ir===!1?{all:{lighting:{source:"scene"}}}:null,At=Vr.current??null;ys(n,de,lr&&At?mi(lr,At):At??lr);const ur=new Set(ha);let Qr;const Jr=()=>{const u=r.session?.presentation().mode;u!==Qr&&(Qr=u,r.applyPresentation?.()),!(u===void 0||!ur.has(u))&&et(n).drawMode!==u&&gi(n,{drawMode:u})},hr=At?.drawMode??vi(n).drawMode;hr!==void 0&&ur.has(hr)&&r.session&&r.session.setMode(hr),Jr();const Vn=r.session?.subscribe(Jr),An=br(()=>{const u=r.session,g=et(n).drawMode;u&&u.presentation().mode!==g&&ur.has(u.presentation().mode)&&u.setMode(g)});r.cleanups.push(()=>{Vn?.(),An()});const Lt=[];E.root.traverse(u=>{u.isLight&&Lt.push(u)});const Ln={light:Lt.length>0,"directional-light":Lt.some(u=>u.isDirectionalLight)};r.contentLights=Lt,r.contentHas=Ln,r.dressing.frameContent(E.root),r.presentationRig?.placeFloor(E.root),r.cleanups.push(T.shell.subscribe(()=>r.presentationRig?.placeFloor(E.root)));const es=new Set;T.shell.selectMultiple(Kr.filter(u=>{const g=T.objectMap.get(u)??ze(ge.hierarchy,u);if(g===null&&!T.objectMap.has(u))return!1;const x=g??u;return es.has(x)?!1:(es.add(x),!0)})),T.notifyIngestObjectMapEdit(),G.syncSelectionPresentation(),Ur?.(),oe(null),S||xs(n);let Ft=A.background;G.setNeutralBackground(Ft??r.defaultBackground);const Xe=N.presentation;Xe&&(G.setMode(Xe.mode),G.setBackground(Xe.background),G.setProjection(Xe.projection),G.setSkeleton(Xe.skeleton),G.setBounds(Xe.bounds),N.presentation=null);const Fn=()=>{r.viewport?.alignGridToView(G.camera(),j.domElement.width),r.scene.environment=A.environment??r.defaultEnvironment,r.scene.fog=A.fog,r.scene.environmentIntensity=A.environmentIntensity,r.scene.environmentRotation.copy(A.environmentRotation),r.scene.backgroundIntensity=A.backgroundIntensity,r.scene.backgroundBlurriness=A.backgroundBlurriness,r.scene.backgroundRotation.copy(A.backgroundRotation);const u=r.presentationRig;if(u){const g=u.resolveSource({...r.contentHas,environment:A.environment!==null}),x=u.environment();x&&(r.scene.environment=x.texture??r.defaultEnvironment,r.scene.environmentIntensity=x.intensity,r.scene.environmentRotation.set(0,x.rotation,0));const h=u.backdrop();h!=="keep"?(r.scene.background=h.value,r.scene.backgroundBlurriness=h.blur,r.scene.backgroundIntensity=h.intensity,r.scene.backgroundRotation.set(0,h.rotation,0),r.backdropOverridden=!0):r.backdropOverridden&&(r.scene.background=G.neutralBackgroundTexture(),r.scene.backgroundBlurriness=A.backgroundBlurriness,r.scene.backgroundIntensity=A.backgroundIntensity,r.backdropOverridden=!1);const v=g==="studio"&&u.presetId()===Ss.id;r.documentStudio&&(r.documentStudio.visible=v);const m=g==="studio"&&!v||g==="preview"&&!u.sceneLightsShown()?r.darkenContentLights():0;u.update(G.camera()),wi(n,{source:g,presetId:u.presetId(),presetLights:u.lightsVisible(),documentStudio:r.documentStudio?r.documentStudio.visible:null,contentLights:r.contentLights.length,contentLightsDarkened:m,environmentIntensity:r.scene.environmentIntensity,environmentImage:u.imageReport().shown,environmentImagePending:u.imageReport().pending,toneMapping:String(j.toneMapping)})}Ft!==A.background&&(Ft=A.background,G.setNeutralBackground(Ft??r.defaultBackground))};r.syncHostScene=Fn,G.setBeforeRender(()=>(r.syncHostScene?.(),E.prepareDraw?.(G.camera()))),G.setPresentsFrames(!0);const Dn=u=>{jt||!(u>0)||!Number.isFinite(u)||(r.contentSeconds+=u,r.transportAdvances++,E.update?.(u))},Hn=Bs(E.root,r.transport);r.cleanups.push(()=>Hn.dispose());const je=N.transport;je&&(je.activeSubject&&r.transport.setActiveSubject(je.activeSubject),r.transport.setLoop(je.range.loop),r.transport.setTimeScale(je.timeScale),r.transport.seek(je.time),je.playbackState==="playing"?r.transport.play():je.playbackState==="paused"&&r.transport.pause(),N.transport=null);let dr=performance.now();const ts=typeof E.onChange=="function";let pr=!0;const Dt=()=>{pr=!0};if(ts){const u=E.onChange(Dt),g=T.shell.subscribe(Dt),x=["pointerdown","pointermove","pointerup","pointerleave","wheel","keydown","keyup"];for(const h of x)$.addEventListener(h,Dt,{capture:!0,passive:!0});ar=()=>{u(),g();for(const h of x)$.removeEventListener(h,Dt,{capture:!0})}}let rs=-1;const ss=new Ts,ns=new Ts,is=new pt,os=new pt;let as,cs=null,ls=Number.NaN;const Bn=u=>{if(!ts||pr||u>0||Cs()!==rs||G.needsFrame()||r.presence?.live()||Re?.prepareFrame||Re?.update||(b.batchedRenderer.batches?.length??0)>0)return!0;const g=G.camera();return g.updateMatrixWorld(),j.getDrawingBufferSize(os),!g.matrixWorld.equals(ss)||!g.projectionMatrix.equals(ns)||!os.equals(is)||r.scene.background!==as||j.toneMapping!==cs||j.toneMappingExposure!==ls},zn=()=>{pr=!1,rs=Cs();const u=G.camera();ss.copy(u.matrixWorld),ns.copy(u.projectionMatrix),j.getDrawingBufferSize(is),as=r.scene.background,cs=j.toneMapping,ls=j.toneMappingExposure},us=(u,g)=>{if(jt||!j||!b)return;const x=j,h=b,v=G?.profiler;v?.beginFrame(),g&&(dr=u);const m=Math.min((u-dr)/1e3,.1);dr=u,v?.beginPhase();const O=r.transport.tick(m);if(O>0&&Dn(O),Re?.prepareFrame?.(m),Re?.update?.(m),v?.endPhase("animation"),v?.beginPhase(),r.presence?.syncMarkers(m),b.update(m),S||Ds(n,m),b.batchedRenderer.update(m),v?.endPhase("editor"),!g&&!Bn(O)){v?.endFrame();return}v?.beginPhase(),x.info.reset();const Z=!it.current&&bi()===n;Z&&yi(n);const he=Z?Date.now():0,ve=r.scene.overrideMaterial,ye=G.presentation().mode;ye!=="uv"&&ye!=="vertex-colors"&&(r.scene.overrideMaterial=A.overrideMaterial);try{h.renderWithInfrastructure(()=>{G.renderViewport(m),h.renderViewCube(x)})}finally{r.scene.overrideMaterial=ve}G.servePresentedFrame(),zn(),it.current||(it.current=!0,Z&&Si("first-render",Date.now()-he),xi(n),Zt("ready")),v?.reportRender({gpuMs:null,drawCalls:x.info.render.calls,triangles:x.info.render.triangles,geometries:x.info.memory.geometries,textures:x.info.memory.textures}),v?.endPhase("render"),v?.endFrame();const D=Wt.current;if(D&&le&&Pi(le.shell)===T.shell){const U=G.cameraPose();D.frameTime=m*1e3,D.fps=m>0?1/m:0,D.drawCalls=x.info.render.calls,D.triangles=x.info.render.triangles,D.cameraPosition.x=U.position[0],D.cameraPosition.y=U.position[1],D.cameraPosition.z=U.position[2],D.cameraTarget.x=U.target[0],D.cameraTarget.y=U.target[1],D.cameraTarget.z=U.target[2]}};r.frame=us;const _n=u=>{if(!j)throw new Error("This stage has no renderer yet.");const g=j,x=g.getContext(),h=new Uint8Array(4),v=[],m=[],O=[];for(let se=0;se<=u;se++){const ne=performance.now();us(ne,!0);const He=performance.now();x.readPixels(0,0,1,1,x.RGBA,x.UNSIGNED_BYTE,h);const Ht=performance.now();se>0&&(v.push(Ht-ne),m.push(He-ne),O.push(Ht-He))}const Z={calls:g.info.render.calls,triangles:g.info.render.triangles};let he=0,ve=0;r.scene.traverseVisible(se=>{const ne=se;if(!ne.isMesh||!ne.geometry||ks(ne))return;he++;const He=ne.geometry.getIndex(),Ht=He?He.count:ne.geometry.getAttribute("position")?.count??0;ve+=Math.floor(Ht/3)*(ne.count??1)});const ye=[...v].sort((se,ne)=>se-ne),D=se=>ye[Math.min(ye.length-1,Math.floor(se*ye.length))]??0,U=g.getDrawingBufferSize(new pt),Se=g.getPixelRatio(),xe=se=>Math.round(se*100)/100,Te=se=>xe(se.sort((ne,He)=>ne-He)[Math.floor(se.length/2)]??0);return{frames:u,medianMs:xe(D(.5)),p95Ms:xe(D(.95)),minMs:xe(ye[0]??0),submitMedianMs:Te(m),completionWaitMedianMs:Te(O),width:U.x,height:U.y,cssWidth:xe(U.x/Se),cssHeight:xe(U.y/Se),devicePixelRatio:Se,drawn:Z,scene:{meshes:he,triangles:ve},drawMode:et(n).drawMode}};if(gt.current=r.rendererSession,!r.initialized){S||(r.cleanups.push(Hs({camera:b.camera,drawCamera:()=>r.session?.camera()??b.camera,orbit:b.orbitControls,scene:r.scene,frameCost:v=>_n(v)},()=>null,(v,m)=>b.setHelper(v,m),{documentId:n})),rt(()=>import("./stage-presence-markers-Ddnu3AE3.js"),__vite__mapDeps([69,4,5,7,8,9,10,6,11,12,13,26,27,18,2,70])).then(v=>{if(r.isClosed||X.current!==r||r.presence)return;const m=v.bindStagePresenceMarkers({scene:r.scene,store:T,documentId:n,container:$,canvas:re,viewport:b,readVisibleCameraPose:()=>{const O=r.session?.camera()??b.renderCamera,Z=O.getWorldPosition(new B),he=O.fov;return{position:Z,target:b.orbitControls.target,fov:typeof he=="number"?he:0}}});r.presence=m,r.cleanups.push(()=>m.dispose())}),r.cleanups.push(bo(G,Ws(n))),r.cleanups.push(Ci({id:n,label:s,kind:Gr?"asset":"source",profiler:G.profiler}))),!S&&!$r&&r.cleanups.push(ki(n,()=>({adapter:r.adapter,nodeId:r.adapter?.selection?.get()[0]??null})));const u=S?`${n}#chromeless-${++da}`:n;r.cleanups.push(Ei({id:u,label:s,contentClock:()=>r.contentSeconds,transportAdvances:()=>r.transportAdvances})),r.cleanups.push(T.shell.onViewportAction(v=>{switch(v.type){case"focus-selection":case"focus-scene":!r.session?.frame()&&r.session?.root&&b.focusOn(r.session.root);break;case"focus-entity":{const m=r.adapter?ze(r.adapter.hierarchy,v.id):null;m&&b.focusOn(m);break}case"snap-selection-to-floor":b.snapSelectionToFloor();break;case"set-view-preset":r.session?r.session.setViewPreset(v.preset==="perspective"?"isometric":v.preset,"view"):b.setViewPreset(v.preset);break;case"toggle-camera-view":r.session?.toggleCameraView();break;case"frame-all":!r.session?.frame(1,"all")&&r.session?.root?b.focusOn(r.session.root):r.session||b.focusOnScene();break;case"zoom-view":r.session?.cameraView()&&!r.session.cameraViewLocked()?r.session.zoomCameraView(v.direction>0?1.2:1/1.2):b.zoomStep(v.direction);break;case"step-view":if(r.session?.cameraView()&&!r.session.cameraViewLocked())break;b.stepView(v.step);break;case"toggle-projection":{const m=r.session;if(m?.cameraView())break;const Z=(m?m.projection():b.projection)==="perspective"?"orthographic":"perspective";m?m.setProjection(Z):b.setProjection(Z);break}case"set-camera-pose":b.setPose(v.position,v.target,v.fov);break}}));let g="";r.cleanups.push(T.shell.subscribe(()=>{b.objectMap=T.objectMap,b.syncFromStore(),r.session?.syncSelectionPresentation();const v=(r.adapter?.selection?.get()??[]).join("\0");v!==g&&(g=v,S||xs(n))}));const x=()=>{const v=Math.max(1,$.clientWidth),m=Math.max(1,$.clientHeight),O=j.getPixelRatio();(re.width!==Math.floor(v*O)||re.height!==Math.floor(m*O))&&j.setSize(v,m,!1),b.resize(v,m),r.session?.resize(v,m),r.rendererSession.redraw()},h=new ResizeObserver(x);h.observe($),r.cleanups.push(()=>h.disconnect()),x(),r.initialized=!0,Ps()}b.objectMap=T.objectMap,b.syncFromStore(),r.rendererSession.setActive(mt.current),r.rendererSession.redraw(),Xr=!0,De?.dispose()}catch(ee){if(!Xr)try{qr?.()}finally{Ct&&E.root.parent===A&&Ct.add(E.root),cr.dispose()}console.error(`[object3d document] ${s}: source update failed`,ee),oe(ee instanceof Error?ee.message:String(ee))}},Sn=Or.current.then(yn);return Or.current=Sn.catch(Me=>{R||oe(Me instanceof Error?Me.message:String(Me))}),()=>{R=!0}},[l,i,t,Qt,Jt,er,s,n,pe,Wr,_r,rr,Ir,at,sr,S,St,ot,tr,p,c,o,I,N,Ie,M,e,We]),f.useEffect(()=>{const R=gt.current,me=w&&!Lr.current;Lr.current=w,R&&(me&&(it.current=!1,ci(n)),R.setActive(w||We))},[w,n,We]);const xt=X.current,nr=Kt==="ready"&&xt?.viewport?{store:xt.store,viewport:xt.viewport,canvas:xt.surface.canvas}:null,bn=f.useCallback(()=>{const R=yt.current;return R?{adapter:R,nodeId:R.selection?.get()[0]??R.hierarchy.roots()[0]?.id??null}:null},[]),Nr=d.jsx("div",{"data-testid":"tool-object3d-authoring","data-volter-chromeless":S||void 0,className:pe?"volter-object3d-studio-stage":void 0,style:{position:S||fe?"relative":"absolute",...S?{width:"100%",height:"100%"}:fe?{flex:1,minHeight:0}:{inset:-wr},overflow:"hidden",background:pe?void 0:tt.surface.raised,pointerEvents:"auto"},children:d.jsxs("div",{ref:It,style:{position:"absolute",inset:0,minHeight:0,overflow:"hidden"},children:[d.jsx(pa,{canvasHostRef:Nt}),w&&nr&&!S?d.jsx(f.Suspense,{fallback:null,children:d.jsx(aa,{stage:nr})}):null,le&&!S?d.jsx(Zo,{store:le,documentId:n,stage:nr,active:w,chrome:"document"}):null,le&&Dr?d.jsx(Dr.Overlays,{store:le,documentId:n,cameraPreviewRef:Hr,mountStatus:pn,rootIds:mn}):null,Yt&&d.jsx("div",{role:"alert",style:{position:"absolute",insetInline:0,top:0,display:"flex",justifyContent:"center",padding:"var(--volter-space-3)",pointerEvents:"none"},children:d.jsxs("div",{className:"volter-chrome-island",style:{display:"flex",alignItems:"center",gap:"var(--volter-space-3)",maxWidth:"80%",padding:"var(--volter-space-2) var(--volter-space-3)",borderRadius:"var(--volter-radius-md)",border:`var(--volter-stroke-resting) solid ${tt.semantic.danger}`,background:tt.surface.raised,color:tt.semantic.danger,pointerEvents:"auto"},children:[d.jsx("span",{children:Yt}),d.jsx(Be,{size:"compact","aria-label":"Dismiss",onClick:()=>oe(null),"data-testid":"object3d-document-error-dismiss",children:d.jsx(Ce,{icon:Pe.action.close})})]})}),!Yt&&Kt==="building"&&d.jsx(Po,{testId:"object3d-document-status",children:Co}),d.jsx("div",{style:{position:"absolute",inset:S||fe?0:wr,pointerEvents:"none"},children:!S&&Kt==="ready"&&X.current&&d.jsx(ia,{viewport:X.current.viewport,documentId:n,session:X.current.session,store:X.current.store.shell,projection:Br,displayName:s,...F?{statistics:F}:{},...ke!==void 0?{subject:ke}:{},...Ae?{gridScale:Ae}:{},objectName:R=>(me=>me?ze(me.hierarchy,R)?.name:void 0)(X.current?.adapter)??X.current?.store.objectMap.get(R)?.name??null})})]})});return fe?d.jsx(li,{documentId:n,active:w,type:z??(St?"entity":"model"),title:s,status:e,selection:bn,fill:!0,children:d.jsxs("div",{className:"volter-object3d-asset-workspace",children:[Nr,d.jsx(xo,{transport:X.current?.transport??null})]})}):Nr}function ma(n){return d.jsx(hn,{...n})}const Ga=Object.freeze(Object.defineProperty({__proto__:null,Object3DDocumentViewport:hn,ToolObject3DAuthoring:ma},Symbol.toStringTag,{value:"Module"}));export{hn as O,Ga as S,Jo as V,Is as s,Uo as t};
@@ -1 +0,0 @@
1
- import{T as i,r as m}from"./index-cFAgtv_D.js";import{e as p}from"./game-network-BURPV4Ya.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-DCkYCR9b.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BOPmuIUp.js";import"./contract-system-adapters-B6e3eEm4.js";import"./game-contract-seams-BDgW-mIt.js";import"./seeded-random-3pTBWsgC.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-Dk8dl25b.js";import"./capability-coverage-BnIBnsu6.js";import"./edit-mode-authoring-CL-UHzaJ.js";import"./json-history-resource-Bzmw9S9j.js";import"./binding-resolver-Clp4dXl1.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-COQmdHaL.js";import"./canvas-entry-runtime-DMxmlXgn.js";import"./three-ingest-runtime-CRvw31w9.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-D5MyeUO-.js";import"./ingest-source-persistence-DM1yk0WC.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation--xgH-spf.js";import"./mounted-authoring-8UW6roGY.js";import"./entity-object-3G5QPQLw.js";import"./user-data-ZZO3OVi6.js";import"./workspace-arrangement-BARx98O2.js";import"./three-contract-Dkt6PmWY.js";import"./three-DCkpVjka.js";import"./editor-layers-CH7HhT0X.js";import"./component-instance-root-Csn_jFKu.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-D-XUqED2.js";import"./source-persistence-backend-BaUP8hOX.js";import"./three-projection-core-B_fHSGZn.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BVU-oj2D.js";import"./deferred-ingest-play-Cf5GxuCA.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CUpkBtmp.js";import"./board-guides-CxSLXJuc.js";import"./relative-import-specifier-Cf0_BtCw.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DTtq2ZaM.js";import"./inference-diagnostics-BU6iwPab.js";import"./writer-tw6EcuVO.js";import"./three-state-BA8dTl-G.js";import"./editor-shell-store-amyZ1RI8.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BSOgAqjP.js";import"./game-surface-defaults-D8S4cRxi.js";const Ut="workspace.service";function e(o){p().catch(t=>{m().console.error(`${o}: ${t instanceof Error?t.message:String(t)}`,"play")})}function bt(){let o,t=!1;const r=i(()=>{t||new URLSearchParams(window.location.search).get("play")==="1"&&(t=!0,o=window.setTimeout(()=>e("Could not enter requested Play mode"),0))});return()=>{o!==void 0&&window.clearTimeout(o),r()}}export{Ut as point,bt as start};
@@ -1 +0,0 @@
1
- import{ah as m}from"./index-cFAgtv_D.js";import{b as p,a as e,c as n,s}from"./game-network-BURPV4Ya.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-DCkYCR9b.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BOPmuIUp.js";import"./contract-system-adapters-B6e3eEm4.js";import"./game-contract-seams-BDgW-mIt.js";import"./seeded-random-3pTBWsgC.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-Dk8dl25b.js";import"./capability-coverage-BnIBnsu6.js";import"./edit-mode-authoring-CL-UHzaJ.js";import"./json-history-resource-Bzmw9S9j.js";import"./binding-resolver-Clp4dXl1.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-COQmdHaL.js";import"./canvas-entry-runtime-DMxmlXgn.js";import"./three-ingest-runtime-CRvw31w9.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-D5MyeUO-.js";import"./ingest-source-persistence-DM1yk0WC.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation--xgH-spf.js";import"./mounted-authoring-8UW6roGY.js";import"./entity-object-3G5QPQLw.js";import"./user-data-ZZO3OVi6.js";import"./workspace-arrangement-BARx98O2.js";import"./three-contract-Dkt6PmWY.js";import"./three-DCkpVjka.js";import"./editor-layers-CH7HhT0X.js";import"./component-instance-root-Csn_jFKu.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-D-XUqED2.js";import"./source-persistence-backend-BaUP8hOX.js";import"./three-projection-core-B_fHSGZn.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BVU-oj2D.js";import"./deferred-ingest-play-Cf5GxuCA.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CUpkBtmp.js";import"./board-guides-CxSLXJuc.js";import"./relative-import-specifier-Cf0_BtCw.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DTtq2ZaM.js";import"./inference-diagnostics-BU6iwPab.js";import"./writer-tw6EcuVO.js";import"./three-state-BA8dTl-G.js";import"./editor-shell-store-amyZ1RI8.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BSOgAqjP.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.command",a=()=>({ok:!1,error:"not in play mode — start play before using the debug seam"}),Bt={"set-instance-count":{derivedRefresh:"always",handle:o=>{if(!e())return a();const r=o.names;if(Array.isArray(r)&&r.every(i=>typeof i=="string"))return r.length<1?{ok:!1,error:'set-instance-count "names" must have at least one entry.'}:(n(r),{ok:!0});const t=o.count;return typeof t!="number"||!Number.isFinite(t)||t<1?{ok:!1,error:`set-instance-count requires a whole "count" >= 1 (or a "names" array), got ${String(t)}.`}:(s(Math.floor(t)-1),{ok:!0})}},"list-instances":{derivedRefresh:"if-content-changed",handle:()=>({ok:!0,data:{instances:m(),named:p()}})}};export{Bt as commands,zt as point};
@@ -1 +0,0 @@
1
- import{i as t}from"./game-network-BURPV4Ya.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-cFAgtv_D.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./native-debug-module-DCkYCR9b.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BOPmuIUp.js";import"./contract-system-adapters-B6e3eEm4.js";import"./game-contract-seams-BDgW-mIt.js";import"./seeded-random-3pTBWsgC.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-Dk8dl25b.js";import"./capability-coverage-BnIBnsu6.js";import"./edit-mode-authoring-CL-UHzaJ.js";import"./json-history-resource-Bzmw9S9j.js";import"./binding-resolver-Clp4dXl1.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-COQmdHaL.js";import"./canvas-entry-runtime-DMxmlXgn.js";import"./three-ingest-runtime-CRvw31w9.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-D5MyeUO-.js";import"./ingest-source-persistence-DM1yk0WC.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation--xgH-spf.js";import"./mounted-authoring-8UW6roGY.js";import"./entity-object-3G5QPQLw.js";import"./user-data-ZZO3OVi6.js";import"./workspace-arrangement-BARx98O2.js";import"./three-contract-Dkt6PmWY.js";import"./three-DCkpVjka.js";import"./editor-layers-CH7HhT0X.js";import"./component-instance-root-Csn_jFKu.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-D-XUqED2.js";import"./source-persistence-backend-BaUP8hOX.js";import"./three-projection-core-B_fHSGZn.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BVU-oj2D.js";import"./deferred-ingest-play-Cf5GxuCA.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CUpkBtmp.js";import"./board-guides-CxSLXJuc.js";import"./relative-import-specifier-Cf0_BtCw.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DTtq2ZaM.js";import"./inference-diagnostics-BU6iwPab.js";import"./writer-tw6EcuVO.js";import"./three-state-BA8dTl-G.js";import"./editor-shell-store-amyZ1RI8.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BSOgAqjP.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.service";function At(){t()}export{zt as point,At as start};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-design-session-Byem_WS6.js","assets/index-cFAgtv_D.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/edit-mode-authoring-CL-UHzaJ.js","assets/game-network-BURPV4Ya.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-DCkYCR9b.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BOPmuIUp.js","assets/contract-system-adapters-B6e3eEm4.js","assets/game-contract-seams-BDgW-mIt.js","assets/seeded-random-3pTBWsgC.js","assets/game-audio-BeCyd0Ha.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-DmeaOP4r.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/index-DzuOGwVB.js","assets/live-project-verbs-Dk8dl25b.js","assets/capability-coverage-BnIBnsu6.js","assets/json-history-resource-Bzmw9S9j.js","assets/binding-resolver-Clp4dXl1.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-COQmdHaL.js","assets/canvas-entry-runtime-DMxmlXgn.js","assets/three-ingest-runtime-CRvw31w9.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.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-D5MyeUO-.js","assets/ingest-source-persistence-DM1yk0WC.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation--xgH-spf.js","assets/mounted-authoring-8UW6roGY.js","assets/entity-object-3G5QPQLw.js","assets/user-data-ZZO3OVi6.js","assets/workspace-arrangement-BARx98O2.js","assets/three-contract-Dkt6PmWY.js","assets/three-DCkpVjka.js","assets/editor-layers-CH7HhT0X.js","assets/component-instance-root-Csn_jFKu.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-D-XUqED2.js","assets/source-persistence-backend-BaUP8hOX.js","assets/three-projection-core-B_fHSGZn.js","assets/body-marks-C1LxJtQb.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-BVU-oj2D.js","assets/deferred-ingest-play-Cf5GxuCA.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CUpkBtmp.js","assets/board-guides-CxSLXJuc.js","assets/relative-import-specifier-Cf0_BtCw.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-DTtq2ZaM.js","assets/inference-diagnostics-BU6iwPab.js","assets/writer-tw6EcuVO.js","assets/three-state-BA8dTl-G.js","assets/editor-shell-store-amyZ1RI8.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-BSOgAqjP.js","assets/game-surface-defaults-D8S4cRxi.js","assets/scene-framing-DJll-un4.js","assets/assets-BcrMQHRv.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/create-runtime-BK5setuG.js","assets/binding-Bmxqznjk.js","assets/root-stacking-BEd9ZvxC.js","assets/setup-renderer-Cw8qdO25.js","assets/index-DHhMOs_s.js","assets/defaults-DKiBJCPN.js","assets/render-settings-Vu9CpzBi.js","assets/render-features-W58SVbbT.js","assets/loop-gate-report-N52EWFGD.js","assets/system-slot-E2mEdiih.js","assets/performance-profiler-CMbwGBuk.js","assets/live-gesture-lock-DJbrjOqf.js"])))=>i.map(i=>d[i]);
2
- import{_ as s,aF as n}from"./index-cFAgtv_D.js";import{r as a}from"./design-time-mount-registry-DUpXCg1U.js";import{q as c}from"./edit-mode-authoring-CL-UHzaJ.js";import{a as u}from"./json-history-resource-Bzmw9S9j.js";import{o as h}from"./three-authoring-adapter-D-XUqED2.js";import{t as i}from"./editor-shell-store-amyZ1RI8.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./component-instance-root-Csn_jFKu.js";import"./user-data-ZZO3OVi6.js";import"./workspace-arrangement-BARx98O2.js";import"./source-persistence-backend-BaUP8hOX.js";import"./ingest-source-persistence-DM1yk0WC.js";import"./three-projection-core-B_fHSGZn.js";import"./editor-layers-CH7HhT0X.js";import"./three-DCkpVjka.js";import"./entity-object-3G5QPQLw.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three.core-3arARmh6.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-BVU-oj2D.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./Pass-D1MRT672.js";const U="workspace.service";function X(){const r=s(()=>import("./r3f-design-session-Byem_WS6.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,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]));r.catch(()=>{});const m=n("three",(t,o)=>h(i(t),()=>i(t).scene,o,u(o))),e=a({kind:"three",owner:"@volter/editor-game/three/three-authoring",async mountWorldRootSession(t){const o=t,{mountR3FDesignSession:p}=await r;return p(o.store,o.composite,o.renderer)}});return c(),()=>{e(),m()}}export{U as point,X as start};
@@ -1 +0,0 @@
1
- import{e as r}from"./three-integration-C2QGqcqQ.js";import"./index-cFAgtv_D.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./renderer-ownership-BovSEcLv.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./preview-renderer-BrYNFV1p.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./layered-pick-DpPgGsmw.js";import"./root-stacking-BEd9ZvxC.js";import"./user-data-ZZO3OVi6.js";import"./workspace-arrangement-BARx98O2.js";import"./model-thumbnail-CtcWoVlh.js";import"./studio-environment-CH7uwg4C.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-CYplHMV_.js";import"./three-state-BA8dTl-G.js";import"./editor-shell-store-amyZ1RI8.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./editor-layers-CH7HhT0X.js";import"./entity-object-3G5QPQLw.js";import"./three-contract-Dkt6PmWY.js";import"./hierarchy-marks-R3bbWFw8.js";import"./component-instance-root-Csn_jFKu.js";import"./viewport-door-BSOgAqjP.js";import"./content-bounds-eP0tmLbj.js";import"./asset-preview-Cl6-TRBJ.js";import"./bitmap-label-Ct4k6ehY.js";const Q="workspace.service";function R(){return r()}export{Q as point,R as start};
@@ -1 +0,0 @@
1
- import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as t}from"./index-cFAgtv_D.js";import{r as m}from"./index-nmcBqr7Y.js";import{P as p}from"./PlayBar-CRGQfcnV.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./configurations-CFU-Dhza.js";import"./run-selection-CaOq6qDl.js";import"./game-network-BURPV4Ya.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-DCkYCR9b.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BOPmuIUp.js";import"./contract-system-adapters-B6e3eEm4.js";import"./game-contract-seams-BDgW-mIt.js";import"./seeded-random-3pTBWsgC.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-DmeaOP4r.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-DzuOGwVB.js";import"./live-project-verbs-Dk8dl25b.js";import"./capability-coverage-BnIBnsu6.js";import"./edit-mode-authoring-CL-UHzaJ.js";import"./json-history-resource-Bzmw9S9j.js";import"./binding-resolver-Clp4dXl1.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-COQmdHaL.js";import"./canvas-entry-runtime-DMxmlXgn.js";import"./three-ingest-runtime-CRvw31w9.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-D5MyeUO-.js";import"./ingest-source-persistence-DM1yk0WC.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation--xgH-spf.js";import"./mounted-authoring-8UW6roGY.js";import"./entity-object-3G5QPQLw.js";import"./user-data-ZZO3OVi6.js";import"./workspace-arrangement-BARx98O2.js";import"./three-contract-Dkt6PmWY.js";import"./three-DCkpVjka.js";import"./editor-layers-CH7HhT0X.js";import"./component-instance-root-Csn_jFKu.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-D-XUqED2.js";import"./source-persistence-backend-BaUP8hOX.js";import"./three-projection-core-B_fHSGZn.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-BVU-oj2D.js";import"./deferred-ingest-play-Cf5GxuCA.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CUpkBtmp.js";import"./board-guides-CxSLXJuc.js";import"./relative-import-specifier-Cf0_BtCw.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-DTtq2ZaM.js";import"./inference-diagnostics-BU6iwPab.js";import"./writer-tw6EcuVO.js";import"./three-state-BA8dTl-G.js";import"./editor-shell-store-amyZ1RI8.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BSOgAqjP.js";import"./game-surface-defaults-D8S4cRxi.js";const Dr="workspace.header",Fr=0;function Gr(){const{project:r}=t();return m.useSyncExternalStore(r.subscribe,r.mounts,r.mounts)?o.jsx(p,{}):null}export{Gr as default,Fr as order,Dr as point};