@volter/game-editor 0.5.67 → 0.5.69

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 (568) hide show
  1. package/BUNDLED_NOTICES +10954 -5077
  2. package/LICENSE +1 -1
  3. package/LICENSE-BLENDER +2 -2
  4. package/NOTICE +2 -2
  5. package/additions/canvas/package.json +8 -0
  6. package/additions/canvas/src/canvas-mount.ts +46 -0
  7. package/additions/canvas/src/scene2d.tsx +18 -0
  8. package/catalog/entries/bake.json +1 -1
  9. package/catalog/entries/blender.json +3 -3
  10. package/catalog/entries/music.json +6 -6
  11. package/catalog/project-source/LICENSE +1 -1
  12. package/catalog/project-source/src/contributions/bake.kind.ts +2 -2
  13. package/catalog/project-source/src/contributions/builder-document.tsx +1 -1
  14. package/catalog/project-source/src/contributions/builder-ui.tsx +3 -3
  15. package/catalog/project-source/src/contributions/module-source.ts +4 -4
  16. package/catalog/project-source/src/lib/music/music-player.ts +18 -12
  17. package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +59 -59
  18. package/catalog/project-source/src/lib/static-batch/Frozen.tsx +1 -1
  19. package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +1 -1
  20. package/catalog/project-source/src/tools/bake-preview.tool.ts +9 -9
  21. package/dist/.vite/manifest.json +4106 -3965
  22. package/dist/assets/{AssetBudgetPanel-x_FNJbfZ.js → AssetBudgetPanel-BMR3AQhc.js} +10 -10
  23. package/dist/assets/AudioViewer-DESxi7pU.js +1 -0
  24. package/dist/assets/CanvasBoardDocument-Q_nrYFlB.js +1 -0
  25. package/dist/assets/CanvasSceneViewport-WZMoKy_F.js +1 -0
  26. package/dist/assets/ColorInput-C2EK-OnD.js +1 -0
  27. package/dist/assets/{EntityModelDocument-CzUHsH9E.js → EntityModelDocument-B_4ENTCq.js} +1 -1
  28. package/dist/assets/{EnvironmentAssetDocument-ByEB7_4A.js → EnvironmentAssetDocument-BZBp6OFJ.js} +1 -1
  29. package/dist/assets/{GameplaySessionTimeline-dhG-oiqd.js → GameplaySessionTimeline-1ivaucpv.js} +1 -1
  30. package/dist/assets/ImageViewer-D16OExYu.js +1 -0
  31. package/dist/assets/{InspectorCanvasPreview-CEr_Kxna.js → InspectorCanvasPreview-BrFjhoiD.js} +1 -1
  32. package/dist/assets/InspectorObjectPreview-CY5xVsPR.js +1 -0
  33. package/dist/assets/JsonAssetDocument-CvjTlcdr.js +2 -0
  34. package/dist/assets/{LiveModuleDocument-DL8QHSlk.js → LiveModuleDocument-ne1o9giX.js} +1 -1
  35. package/dist/assets/{LutAssetDocument-BImiug2M.js → LutAssetDocument-Cp0v-O7q.js} +1 -1
  36. package/dist/assets/ModelAssetDocument-Ceu7OIN9.js +1 -0
  37. package/dist/assets/{NonThreeAuthoringBootstrap-B40qmGGS.js → NonThreeAuthoringBootstrap-DiElZf-e.js} +1 -1
  38. package/dist/assets/Object3DDocumentToolbar-BLNamqii.js +1 -0
  39. package/dist/assets/Object3DDocumentViewport-D6QoHfa_.js +2 -0
  40. package/dist/assets/{Object3DPreview-ClYDoH2L.js → Object3DPreview-ZVokr044.js} +1 -1
  41. package/dist/assets/OnlineAssetDetail-Dnckd7zB.js +1 -0
  42. package/dist/assets/PlayBar-DsMitSgy.js +1 -0
  43. package/dist/assets/{QuarksAssetDocument-B-VOj-n4.js → QuarksAssetDocument-B5J8uHFM.js} +1 -1
  44. package/dist/assets/ReactCanvasControls-CmfvxJYY.js +1 -0
  45. package/dist/assets/RootSelectionOverlay-BWsNiSuM.js +1 -0
  46. package/dist/assets/{ShaderAssetDocument-Kn8IvRGV.js → ShaderAssetDocument-CT7XzsZq.js} +5 -5
  47. package/dist/assets/ShadowEditor-YO5KEfnz.js +1 -0
  48. package/dist/assets/{SourceAssetViewer-CLQ95VSD.js → SourceAssetViewer-FSLup2km.js} +1 -1
  49. package/dist/assets/StageHost-DYfGYwvq.js +2 -0
  50. package/dist/assets/{StoryPreviewMount-D2lg37et.js → StoryPreviewMount-BhvT5QlB.js} +1 -1
  51. package/dist/assets/ThreeBoardDocument-B-z2nwnH.js +2 -0
  52. package/dist/assets/{ThreeIsolationSceneContent-DbYIylZQ.js → ThreeIsolationSceneContent-B5pU4Y6k.js} +1 -1
  53. package/dist/assets/{ToolObject3DPreview-WEi6C9uU.js → ToolObject3DPreview-VtraiQ4Q.js} +1 -1
  54. package/dist/assets/Toolbar-M62Gob9T.js +1 -0
  55. package/dist/assets/{TransientHint-BpDLhRLd.js → TransientHint-Cc40mHWE.js} +1 -1
  56. package/dist/assets/VideoViewer-BxcUwXQm.js +1 -0
  57. package/dist/assets/ViewportShadingMenu-BoMPnTVh.js +1 -0
  58. package/dist/assets/active-ingest-0QjJWb7i.js +3 -0
  59. package/dist/assets/{animation-clock-Bm80XdqP.js → animation-clock-BXEwUJtz.js} +1 -1
  60. package/dist/assets/animation-mixers.service-C-Ko4KzM.js +1 -0
  61. package/dist/assets/animation-timeline.utility-Bl15-rYb.js +1 -0
  62. package/dist/assets/{asset-budget-asset.menu-CEgP0Kiw.js → asset-budget-asset.menu-BUa3g0Wy.js} +1 -1
  63. package/dist/assets/{asset-budget.action-D4R1c3wi.js → asset-budget.action-Dl5eVPIo.js} +1 -1
  64. package/dist/assets/{asset-budget.document-Syzjn1U1.js → asset-budget.document-DJylQ-0h.js} +1 -1
  65. package/dist/assets/{asset-budget.menu-BbRiqXeM.js → asset-budget.menu-BJtvNMLj.js} +1 -1
  66. package/dist/assets/asset-editor-persistence-BIbf5u0Q.js +1 -0
  67. package/dist/assets/asset-loaders-DoNflsHL.js +2 -0
  68. package/dist/assets/{asset-preview-B1tDziF1.js → asset-preview-DxlSdRZn.js} +1 -1
  69. package/dist/assets/{audio-unlock.service-ucMfCVBw.js → audio-unlock.service-CTaiyXF9.js} +1 -1
  70. package/dist/assets/audio.utility-CEmNc68t.js +1 -0
  71. package/dist/assets/autoplay.service-BZLSUyL8.js +1 -0
  72. package/dist/assets/{babylon-authoring-adapter-C8mFMXSr.js → babylon-authoring-adapter-BZvV2bz_.js} +1 -1
  73. package/dist/assets/binding-resolver-DGbk9_XR.js +2 -0
  74. package/dist/assets/blender-emscripten-engine-B7lfg-RX.js +2 -0
  75. package/dist/assets/{blender-node-editor.document-C1YmwWls.js → blender-node-editor.document-wXJobGNH.js} +1 -1
  76. package/dist/assets/{blender-properties-tab-B8lyjgj3.js → blender-properties-tab-7GFf80ev.js} +1 -1
  77. package/dist/assets/{blender-runtime-host-CyQlImSR.js → blender-runtime-host-CILxrx5T.js} +2 -2
  78. package/dist/assets/{blender-runtime-skin-BK7ShZ6z.js → blender-runtime-skin-Cd5lQYsC.js} +7 -7
  79. package/dist/assets/{blender-runtime.document-B0nVQs0P.js → blender-runtime.document-C0r_R49S.js} +7 -7
  80. package/dist/assets/{blender-timeline.document-CMcdE2CK.js → blender-timeline.document-BaISZMBc.js} +1 -1
  81. package/dist/assets/{blender-uv-editor.document-CjqNo4sZ.js → blender-uv-editor.document-CT_fsyyA.js} +1 -1
  82. package/dist/assets/blender-version.status-DzEx7u7k.js +1 -0
  83. package/dist/assets/blender-wali-engine-DOiQCBXH.js +2 -0
  84. package/dist/assets/{blender.command-C6NmRBo5.js → blender.command-DdiKd8mZ.js} +1 -1
  85. package/dist/assets/blender.keymap-BmOBRY7p.js +1 -0
  86. package/dist/assets/blender.status-BMETIbb2.js +1 -0
  87. package/dist/assets/board-guides-CjHQ9Ynm.js +1 -0
  88. package/dist/assets/body-marks-C1LxJtQb.js +1 -0
  89. package/dist/assets/bridge.command-DXUeavn5.js +3 -0
  90. package/dist/assets/{browserAll-lF_dLQVz.js → browserAll-Dg46xT22.js} +1 -1
  91. package/dist/assets/build-player.document-BHwVV3K0.js +1 -0
  92. package/dist/assets/build-profiles.document-HkpS-Kxa.js +2 -0
  93. package/dist/assets/build-progress.status-u1J0Rm1D.js +1 -0
  94. package/dist/assets/build-session-BLboUUbw.js +9 -0
  95. package/dist/assets/{build.action-DRX2IcYt.js → build.action-C00DL83N.js} +1 -1
  96. package/dist/assets/{build.command-BGvLaLG0.js → build.command-Cjk_NY75.js} +1 -1
  97. package/dist/assets/build.header-BWNmNWFT.js +1 -0
  98. package/dist/assets/{build.menu-UenrjPWS.js → build.menu-BBYtqCIq.js} +1 -1
  99. package/dist/assets/{build.service-BIUoTY6l.js → build.service-DOU15tKN.js} +1 -1
  100. package/dist/assets/{camera-DrvaM47S.js → camera-7DGyYW7Y.js} +1 -1
  101. package/dist/assets/{camera-runtime.inspector-CjJALNO8.js → camera-runtime.inspector-n-jiOR-3.js} +1 -1
  102. package/dist/assets/canvas-design-mount-CSRHU-ag.js +6 -0
  103. package/dist/assets/canvas-entry-runtime-BST8yRuK.js +2 -0
  104. package/dist/assets/{canvas-preview-frames-C0QTagA3.js → canvas-preview-frames-Cja32aW2.js} +1 -1
  105. package/dist/assets/{canvas-story-capture.service-Dgjr-rT1.js → canvas-story-capture.service-D5R5HJ8n.js} +2 -2
  106. package/dist/assets/capability-coverage-ByWftxk4.js +7 -0
  107. package/dist/assets/{collaboration-presence-BVIQuN1l.js → collaboration-presence-D6MC9xJN.js} +1 -1
  108. package/dist/assets/{collider-C7SbIYKY.js → collider-B78EcUc9.js} +1 -1
  109. package/dist/assets/{component-board.service-BEsFAw4_.js → component-board.service-BaQI5Oas.js} +2 -2
  110. package/dist/assets/component-board.service-CkjrsD8x.js +2 -0
  111. package/dist/assets/{component-board.service-CWFaGMCO.js → component-board.service-Dvjz_g-x.js} +2 -2
  112. package/dist/assets/component-contracts.service-C3-AXQp7.js +1 -0
  113. package/dist/assets/component-instance-root-DLI40MiB.js +1 -0
  114. package/dist/assets/{component-verbs.command-oNtGgzQL.js → component-verbs.command-Brr_WcaR.js} +1 -1
  115. package/dist/assets/component-verbs.service-DC2sC3j3.js +1 -0
  116. package/dist/assets/{config-_wCzzlM_.js → config-BI_7osdR.js} +3 -3
  117. package/dist/assets/{configurations-BXU4GGbV.js → configurations-XP9YLkrt.js} +1 -1
  118. package/dist/assets/connection.status-BhRwcFx0.js +1 -0
  119. package/dist/assets/{constraint-5KLYpGm7.js → constraint-Bp1l8hY-.js} +1 -1
  120. package/dist/assets/constraints.inspector-Dm1cycK3.js +1 -0
  121. package/dist/assets/{content-bounds-BeuIXKYu.js → content-bounds-DROIchTa.js} +1 -1
  122. package/dist/assets/{contract-system-adapters-Bic_7sev.js → contract-system-adapters-Cn7OW_ay.js} +1 -1
  123. package/dist/assets/coverage.service-l42ty7lr.js +3 -0
  124. package/dist/assets/create-runtime-B_uTwsmi.js +3 -0
  125. package/dist/assets/curve-THOUsg-j.js +1 -0
  126. package/dist/assets/{data-asset-DfQ2Pjse.js → data-asset-DAANayR6.js} +1 -1
  127. package/dist/assets/data-check-core-CHqar_E8.js +1 -0
  128. package/dist/assets/data-ref-CN34UeVw.js +1 -0
  129. package/dist/assets/debug-bridge-BD1XVAIB.js +1 -0
  130. package/dist/assets/debug-registry-ggQWxtu-.js +1 -0
  131. package/dist/assets/{deferred-ingest-play-BdR4qGk6.js → deferred-ingest-play-B2JUlwlT.js} +2 -2
  132. package/dist/assets/{design-time-canvas-mount-DPQeHSN2.js → design-time-canvas-mount-as9cN9I6.js} +2 -2
  133. package/dist/assets/design-time-layers-BRseeSmV.js +1 -0
  134. package/dist/assets/{design-time-mount.service-Ks-5Wkcs.js → design-time-mount.service-BTVu3yKo.js} +2 -2
  135. package/dist/assets/{design-time-mount.service-Ca-DZGFV.js → design-time-mount.service-DKvc7lVK.js} +2 -2
  136. package/dist/assets/design-time-react-mount-C7rB56QD.js +1 -0
  137. package/dist/assets/{document-preview-three-DThkjI1S.js → document-preview-three-CxmRhCcV.js} +1 -1
  138. package/dist/assets/{dom-authoring-adapter-BrLU8IJ_.js → dom-authoring-adapter-L8OzXfmE.js} +1 -1
  139. package/dist/assets/{draco3d-B2cwv46o.js → draco3d-BjNuXv66.js} +1 -1
  140. package/dist/assets/{edit-mode-audio.service-D4ITNbsm.js → edit-mode-audio.service-BwI5u845.js} +1 -1
  141. package/dist/assets/edit-mode-authoring-D5f7aHHl.js +1 -0
  142. package/dist/assets/{edit-mode-networking.service-BNv-FTRh.js → edit-mode-networking.service-DqP_4lbI.js} +1 -1
  143. package/dist/assets/editor-api-BM7H_F4G.js +1 -0
  144. package/dist/assets/{editor-layers-BDJnAAzj.js → editor-layers-D-CTUqco.js} +1 -1
  145. package/dist/assets/editor-presentation-activity-CqJH4G9t.js +1 -0
  146. package/dist/assets/{editor-shell-store-ChLcVeNB.js → editor-shell-store-DHVWS8cE.js} +1 -1
  147. package/dist/assets/{entity-object-JmYMfLsx.js → entity-object-MKYemTFM.js} +1 -1
  148. package/dist/assets/{extend-Cc-nEa_A.js → extend-BrgqZiMY.js} +1 -1
  149. package/dist/assets/fork-menu-DE2MK3Nq.js +1 -0
  150. package/dist/assets/{frame-debugger-store-DaCbAYSW.js → frame-debugger-store-BXoLKTdZ.js} +1 -1
  151. package/dist/assets/game-audio-BeCyd0Ha.js +1 -0
  152. package/dist/assets/{game-contract-seams-BnPFGLll.js → game-contract-seams-tyKDsfaP.js} +1 -1
  153. package/dist/assets/{game-css-scope-transform-D_p7cVgW.js → game-css-scope-transform-DcjrwtVc.js} +2 -2
  154. package/dist/assets/game-document.service-CTb2itHQ.js +1 -0
  155. package/dist/assets/game-eval.command-CpDKXOQU.js +2 -0
  156. package/dist/assets/game-module-access-BTInp2NG.js +1 -0
  157. package/dist/assets/game-network-DW5ARz4R.js +22 -0
  158. package/dist/assets/{gameplay-export-BzYzLZPi.js → gameplay-export-cHk3v9y-.js} +1 -1
  159. package/dist/assets/gameplay-replay-HRenPTtU.js +1 -0
  160. package/dist/assets/gameplay.command-DcY2lKKX.js +1 -0
  161. package/dist/assets/generation-CdOATubd.css +1 -0
  162. package/dist/assets/{generation-jobs-BZhOMrp-.js → generation-jobs-CJBehuUp.js} +1 -1
  163. package/dist/assets/generation.service-BMOc-C9i.js +1 -0
  164. package/dist/assets/{generations-DVDht_31.js → generations-ssgVOe_6.js} +1 -1
  165. package/dist/assets/generations.status-B_SmPReI.js +1 -0
  166. package/dist/assets/hierarchy-marks-BuCO8Ke-.js +1 -0
  167. package/dist/assets/hierarchy-marks-CsTaTkc7.js +1 -0
  168. package/dist/assets/hosted-asset-materialization-CiXZI85V.js +2 -0
  169. package/dist/assets/{ibl-override-material-CiKkaOTW.js → ibl-override-material-CMo_a49U.js} +1 -1
  170. package/dist/assets/index-B0S4fQQV.js +1 -0
  171. package/dist/assets/{index-C3Pw-9So.js → index-B9bd4k-t.js} +1 -1
  172. package/dist/assets/index-BMxv2MNV.js +1 -0
  173. package/dist/assets/{index-DUZeuA7g.js → index-Bm4_DmRO.js} +1 -1
  174. package/dist/assets/{index-cNc-iFbq.js → index-BvBlIRwM.js} +1 -1
  175. package/dist/assets/{index-Ck3JFh48.js → index-BweKDdi_.js} +1 -1
  176. package/dist/assets/{index-BRJMIUK0.js → index-C5ZAyrKq.js} +346 -345
  177. package/dist/assets/index-CPiRKiDC.css +1 -0
  178. package/dist/assets/index-CfpGZrbC.js +1 -0
  179. package/dist/assets/index-Czvj6whv.js +1 -0
  180. package/dist/assets/{index-SS9EugVg.js → index-DgPDGGSV.js} +2 -2
  181. package/dist/assets/{inference-diagnostics-xecGdohW.js → inference-diagnostics-DLt9ql9I.js} +1 -1
  182. package/dist/assets/{ingest-boot-viewport-DAt8WFSy.js → ingest-boot-viewport-BXVXjYpG.js} +1 -1
  183. package/dist/assets/ingest-siblings-DWJ7OGB_.js +1 -0
  184. package/dist/assets/ingest-source-persistence-6ShMoSCa.js +1 -0
  185. package/dist/assets/ingest.service-BBbX8ibg.js +1 -0
  186. package/dist/assets/{inspect-Dr4qvDpJ.js → inspect-Cz3Zyx_1.js} +1 -1
  187. package/dist/assets/inspection-D8fZOHCM.js +1 -0
  188. package/dist/assets/instances.command-BrdlngrL.js +1 -0
  189. package/dist/assets/{json-history-resource-DwS10tqD.js → json-history-resource-Uqrihfc8.js} +1 -1
  190. package/dist/assets/layered-pick-CAVQMPI7.js +1 -0
  191. package/dist/assets/{light-DcFqVCmv.js → light-CqzsCWeJ.js} +1 -1
  192. package/dist/assets/{live-project-verbs-C3LzprCe.js → live-project-verbs-CdFmLYOo.js} +1 -1
  193. package/dist/assets/{machine.document-BzZxubYQ.js → machine.document-DRIFOVaa.js} +1 -1
  194. package/dist/assets/{machines.finder-BR02bfVG.js → machines.finder-DPCT6few.js} +1 -1
  195. package/dist/assets/material-BVApn1V_.js +1 -0
  196. package/dist/assets/{material-factory-COz7qZhC.js → material-factory-B_75xxFD.js} +1 -1
  197. package/dist/assets/{mesh-DcmO-mWI.js → mesh-DdA3mExo.js} +1 -1
  198. package/dist/assets/model-asset-sections-D1uxOu2v.css +1 -0
  199. package/dist/assets/model-asset-sections.service-CJnSIckZ.js +1 -0
  200. package/dist/assets/{model-inspection-CXHxrafK.js → model-inspection-DvspbmJl.js} +1 -1
  201. package/dist/assets/{model-thumbnail-BEKPWg4l.js → model-thumbnail-BmQs-h6t.js} +1 -1
  202. package/dist/assets/{models.finder-c1I0tp2M.js → models.finder-Qv_Hsccy.js} +1 -1
  203. package/dist/assets/module-mode-MJ4Gbsry.js +2 -0
  204. package/dist/assets/mount-canvas-ingest-root-BxtM8OaB.js +2 -0
  205. package/dist/assets/mount-dom-ingest-root-pGatqO46.js +2 -0
  206. package/dist/assets/mount-ingest-root-C7jb-mCl.js +2 -0
  207. package/dist/assets/mount-manifest-BfoHBuzn.js +1 -0
  208. package/dist/assets/mount-readiness-DyAd17pe.js +4 -0
  209. package/dist/assets/mount-three-ingest-root-Boa5mcaF.js +1 -0
  210. package/dist/assets/{mounted-authoring-Clftxx0x.js → mounted-authoring-DxMISwvR.js} +1 -1
  211. package/dist/assets/{mounted-story-viewport-source-B4-eAYGI.js → mounted-story-viewport-source-DfnLxI1f.js} +1 -1
  212. package/dist/assets/{native-debug-module-2_HVupdg.js → native-debug-module-BlrALjM3.js} +1 -1
  213. package/dist/assets/{navigation-CH3-zr1n.js → navigation-CqG5o5AR.js} +1 -1
  214. package/dist/assets/{navmesh.menu-Dfi-Pk-8.js → navmesh.menu-D4TdVDhe.js} +1 -1
  215. package/dist/assets/{navmesh.service-Cz7QFY-M.js → navmesh.service-DWKT5ruQ.js} +1 -1
  216. package/dist/assets/network-observer.service-ZRAquNq4.js +1 -0
  217. package/dist/assets/network.utility-DjeOEvAY.js +1 -0
  218. package/dist/assets/object-marks-BnvSuCTt.js +1 -0
  219. package/dist/assets/{object3d-authoring-subject-BDrxd1GA.js → object3d-authoring-subject-XccsO0xG.js} +1 -1
  220. package/dist/assets/{object3d-document-session-registry-DJDEDM0p.js → object3d-document-session-registry-CMRJdFp6.js} +2 -2
  221. package/dist/assets/{oid-transform-D5Kxt6ij.js → oid-transform-DaA6yW6o.js} +1 -1
  222. package/dist/assets/{particles-vRp0Lf3o.js → particles-DsQRcDBY.js} +1 -1
  223. package/dist/assets/{performance-profiler-OwnXQX0M.js → performance-profiler-CMbwGBuk.js} +1 -1
  224. package/dist/assets/pixi-authoring-adapter-BoBt8bB5.js +1 -0
  225. package/dist/assets/pixi-live-write-target-CYZgvC6U.js +1 -0
  226. package/dist/assets/play.command-D9JGJP-e.js +2 -0
  227. package/dist/assets/pose-guard-CLabLSzf.js +1 -0
  228. package/dist/assets/presentation-COhHQdmR.js +1 -0
  229. package/dist/assets/{product-CxmUIxmr.js → product-CaRGoiIH.js} +1 -1
  230. package/dist/assets/{profiler.action-Dzy9DuAc.js → profiler.action-Cz7HYWjh.js} +1 -1
  231. package/dist/assets/{profiler.menu-jLDO3U6N.js → profiler.menu-D5aR_FBy.js} +1 -1
  232. package/dist/assets/profiler.utility-KwxlIPKb.js +1 -0
  233. package/dist/assets/{project-authoring-session-C3eusefK.js → project-authoring-session-DKXHVwxO.js} +2 -2
  234. package/dist/assets/project-provenance-BGnJXJwa.js +1 -0
  235. package/dist/assets/{properties-bone-constraints.inspector-B_PbSMV7.js → properties-bone-constraints.inspector-Bo-sU8eR.js} +1 -1
  236. package/dist/assets/{properties-bone.inspector-CMDEQuBd.js → properties-bone.inspector-BQiWplQv.js} +1 -1
  237. package/dist/assets/{properties-collection.inspector-D7Ay8yRj.js → properties-collection.inspector-C5BnR-GE.js} +1 -1
  238. package/dist/assets/{properties-constraints.inspector-DS1fZgXK.js → properties-constraints.inspector-CyheU12R.js} +1 -1
  239. package/dist/assets/{properties-data.inspector-k2pGN2Mp.js → properties-data.inspector-CkycARja.js} +1 -1
  240. package/dist/assets/{properties-material.inspector-Bb3yAGUx.js → properties-material.inspector-Bl_PUmY-.js} +1 -1
  241. package/dist/assets/{properties-modifiers.inspector-BcJfe-Wy.js → properties-modifiers.inspector-j7SnOxQq.js} +1 -1
  242. package/dist/assets/{properties-object.inspector-CUSfXJuq.js → properties-object.inspector-DcR3MGLK.js} +1 -1
  243. package/dist/assets/{properties-output.inspector-BTVW2kn1.js → properties-output.inspector-BLjw6K4b.js} +1 -1
  244. package/dist/assets/{properties-particles.inspector-Cw0fxx3B.js → properties-particles.inspector-BUIm2-Jf.js} +1 -1
  245. package/dist/assets/{properties-physics.inspector-C-0bD2bu.js → properties-physics.inspector-DNvRcxb6.js} +1 -1
  246. package/dist/assets/{properties-render.inspector-C8D5UpjX.js → properties-render.inspector-8FMZ-qoZ.js} +1 -1
  247. package/dist/assets/{properties-scene.inspector-HjK6QHGg.js → properties-scene.inspector-Dx7_z75k.js} +1 -1
  248. package/dist/assets/{properties-texture.inspector-CckZgUaI.js → properties-texture.inspector-WT15951-.js} +1 -1
  249. package/dist/assets/{properties-view-layer.inspector-C1ajtVSk.js → properties-view-layer.inspector-P7VNTdqr.js} +1 -1
  250. package/dist/assets/{properties-world.inspector-BiT_EdT-.js → properties-world.inspector-B3t1q8TF.js} +1 -1
  251. package/dist/assets/r3f-design-session-lsbFnoWH.js +2 -0
  252. package/dist/assets/{r3f-physics-binding-DzrbpqjM.js → r3f-physics-binding-Cx8yhuwt.js} +1 -1
  253. package/dist/assets/{r3f-source-authoring-adapter-DbbeRcvt.js → r3f-source-authoring-adapter-jH3G0TeH.js} +2 -2
  254. package/dist/assets/react-canvas-navigation-B_gOe3CI.js +1 -0
  255. package/dist/assets/react-inspector.service-CZf1vfdX.js +1 -0
  256. package/dist/assets/react-story-board-CCm2Opwn.js +1 -0
  257. package/dist/assets/{react-three-rapier.esm-U8J7g6tH.js → react-three-rapier.esm-CHXGG51p.js} +1 -1
  258. package/dist/assets/react-world-authoring-adapter-CnzxMtYz.js +1 -0
  259. package/dist/assets/{realm-services-CnY105XU.js → realm-services-Do9J6nsb.js} +1 -1
  260. package/dist/assets/reflection-probe-capture.inspector-BAjjIybz.js +1 -0
  261. package/dist/assets/{reflection-probe-BHNGwVyz.js → reflection-probe-sIto9mh0.js} +1 -1
  262. package/dist/assets/registry-Xnduk02T.js +1 -0
  263. package/dist/assets/{relative-import-specifier-BFKIWEWs.js → relative-import-specifier-CPFTrxi4.js} +1 -1
  264. package/dist/assets/{render-env-BkKZ4uMA.js → render-env-YJlI8K0i.js} +1 -1
  265. package/dist/assets/{render-features-rxbawsRb.js → render-features-DMSV2qKJ.js} +1 -1
  266. package/dist/assets/{render-settings-DS5leCed.js → render-settings-CRyDhHyz.js} +1 -1
  267. package/dist/assets/{resolve-three-CVnMRHxw.js → resolve-three-D27rMc37.js} +19 -19
  268. package/dist/assets/root-seam-contract-gjWUd5uu.js +1 -0
  269. package/dist/assets/run-selection-B0jOdyYt.js +2 -0
  270. package/dist/assets/scene-capture-Di9cM1p4.js +1 -0
  271. package/dist/assets/scene-document.service-XxGs4HHE.js +2 -0
  272. package/dist/assets/{scene-framing-BQt72ZCw.js → scene-framing-DkZKDwH3.js} +1 -1
  273. package/dist/assets/{scene-index--lRWLEmW.js → scene-index-DHeKmalD.js} +1 -1
  274. package/dist/assets/{scene-query-s1y04OVB.js → scene-query-ByZtXA2m.js} +1 -1
  275. package/dist/assets/seeded-random-BJthDRMu.js +1 -0
  276. package/dist/assets/{session-CTXsU1lK.js → session-x8E_NJk2.js} +34 -34
  277. package/dist/assets/{setup-renderer-Cwkl1Ar6.js → setup-renderer-F9mG7t6r.js} +1 -1
  278. package/dist/assets/{source-object3d-authoring-adapter-DF679Ncb.js → source-object3d-authoring-adapter-CvmFpSUj.js} +1 -1
  279. package/dist/assets/{source-persistence-backend-CwLYVPXj.js → source-persistence-backend-au3WtEn6.js} +1 -1
  280. package/dist/assets/{spark-renderer-lifecycle-DfYpvEJa.js → spark-renderer-lifecycle-B6Axb6jm.js} +1 -1
  281. package/dist/assets/{stage-keyboard-B8BEW592.js → stage-keyboard-BQkndG_D.js} +1 -1
  282. package/dist/assets/stage-overlay-set-g6eWhuRv.js +1 -0
  283. package/dist/assets/stage-presence-markers-0CDfO5f4.js +1 -0
  284. package/dist/assets/stage-transform-tools-BzPl7OIo.js +1 -0
  285. package/dist/assets/standard-viewport-dressing-BW-dM_1h.js +24 -0
  286. package/dist/assets/{state-watch.action-DnR5Zjr-.js → state-watch.action-Z1nQ5awu.js} +1 -1
  287. package/dist/assets/{state-watch.menu-wYLCLsAw.js → state-watch.menu-CQHGUF3W.js} +1 -1
  288. package/dist/assets/state-watch.utility-DCIg2i79.js +1 -0
  289. package/dist/assets/{story-capture-BmnwHGDV.js → story-capture-BIrjDKeY.js} +1 -1
  290. package/dist/assets/story-documents-BvG2xeaR.js +3 -0
  291. package/dist/assets/{story-documents.service-B6v7Z-WE.js → story-documents.service-DOSEa3ja.js} +1 -1
  292. package/dist/assets/{story-documents.service-yagl1wGp.js → story-documents.service-y1m7XGMJ.js} +1 -1
  293. package/dist/assets/{story-media-presence-BqRMu572.js → story-media-presence-HLV-KaMj.js} +1 -1
  294. package/dist/assets/{story-pixi-preview-Da6afqLg.js → story-pixi-preview-CMhho2gG.js} +1 -1
  295. package/dist/assets/{story-presentation-DMSYRWaz.js → story-presentation-CYhVv8Ku.js} +1 -1
  296. package/dist/assets/story-three-preview-CgcLF5lE.js +2 -0
  297. package/dist/assets/{structural-ids-Br2zjINh.js → structural-ids-BOo2BRoY.js} +1 -1
  298. package/dist/assets/studio-environment-R9qXUUcC.js +2 -0
  299. package/dist/assets/{surface-state-1lTOi8FD.js → surface-state-D8Qnowo6.js} +1 -1
  300. package/dist/assets/{syntactic-prop-specs-eiQXwMIc.js → syntactic-prop-specs-8gkBuc5j.js} +1 -1
  301. package/dist/assets/team-playtest.service-BBMZ2iyk.js +1 -0
  302. package/dist/assets/{three-TCuY32m_.js → three-DiL6vMXq.js} +1 -1
  303. package/dist/assets/three-authoring-adapter-CkLR2zGf.js +1 -0
  304. package/dist/assets/three-authoring.service-CovhlCGx.js +2 -0
  305. package/dist/assets/{three-ingest-runtime-B7rtg3QE.js → three-ingest-runtime-CwTqAHgX.js} +1 -1
  306. package/dist/assets/{three-integration-BdN5Nhsg.js → three-integration-DXOFI88n.js} +2 -2
  307. package/dist/assets/three-integration.service-rCAqpqSp.js +1 -0
  308. package/dist/assets/three-projection-core-B7Lf8tOp.js +1 -0
  309. package/dist/assets/{three-state-DwFE3ay2.js → three-state-BCACvUtm.js} +1 -1
  310. package/dist/assets/{three-story-capture.service-CvpV3v5a.js → three-story-capture.service-rTFKNtHA.js} +2 -2
  311. package/dist/assets/{three-story-model-C2r2BuiA.js → three-story-model-BjKr7OMn.js} +1 -1
  312. package/dist/assets/three-viewport-presentation-CBzvc2v2.js +141 -0
  313. package/dist/assets/tools-DfctM216.js +1 -0
  314. package/dist/assets/transform-mode-request-DlEApNrA.js +1 -0
  315. package/dist/assets/transport-strip-xCg94CuI.js +1 -0
  316. package/dist/assets/transport.header-BRtdky0x.js +1 -0
  317. package/dist/assets/{trigger-volume-DP0G1VBe.js → trigger-volume-BLkHmfm9.js} +1 -1
  318. package/dist/assets/tuples-BDz3wbQL.js +1 -0
  319. package/dist/assets/ui-board-document-DvbK_HVN.js +2 -0
  320. package/dist/assets/{user-data-Bpj7diUS.js → user-data-C84W0V47.js} +1 -1
  321. package/dist/assets/user-data-CODoGZqA.js +1 -0
  322. package/dist/assets/{utility-view-state-CAfbFbKQ.js → utility-view-state-CDRxZSo-.js} +1 -1
  323. package/dist/assets/viewport-door-BARIpMu-.js +1 -0
  324. package/dist/assets/{viewport-root-presentation-vgxsTyj4.js → viewport-root-presentation-hRLF0BeO.js} +1 -1
  325. package/dist/assets/{viewport-surface-status-cwCiBGa7.js → viewport-surface-status-TUfhXKR9.js} +1 -1
  326. package/dist/assets/{webworkerAll-Cm3gTjWi.js → webworkerAll-PJtcQ1FD.js} +1 -1
  327. package/dist/assets/worker-BtXrsgFy.js +2 -0
  328. package/dist/assets/workspace-arrangement-DqG5sUns.js +1 -0
  329. package/dist/assets/world-documents-D69XaqUX.js +1 -0
  330. package/dist/assets/world-root-stage-binding-BgZWZEuD.js +1 -0
  331. package/dist/assets/{xstate-animation-binding-BGLxcZT_.js → xstate-animation-binding-CIyLzGHs.js} +1 -1
  332. package/dist/assets/{xstate-animation-meta-D_T441Ru.js → xstate-animation-meta-CbYWup3R.js} +1 -1
  333. package/dist/volter-shared-react.json +10 -0
  334. package/dist/volter-shared-three.json +3 -0
  335. package/dist-node/cli.js +253 -210
  336. package/dist-node/create.js +103 -82
  337. package/package.json +23 -20
  338. package/src/contributions.d.ts +1 -1
  339. package/src/index.ts +10 -10
  340. package/starter/cube.py +1 -1
  341. package/template/.agents/references/project-manual.md +17 -17
  342. package/template/.agents/skills/editor/SKILL.md +6 -6
  343. package/template/.agents/skills/editor/agents/openai.yaml +3 -3
  344. package/template/.agents/skills/editor/references/editor-control.md +62 -62
  345. package/template/{.claude/skills/vgai-3d-models → .agents/skills/volter-3d-models}/SKILL.md +3 -3
  346. package/template/{.github/skills/vgai-ingest-existing-game → .agents/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  347. package/template/.agents/skills/{vgai-music → volter-music}/SKILL.md +35 -11
  348. package/template/{.claude/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/SKILL.md +9 -9
  349. package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  350. package/template/{.github/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
  351. package/template/.claude/skills/editor/SKILL.md +6 -6
  352. package/template/.claude/skills/editor/agents/openai.yaml +3 -3
  353. package/template/.claude/skills/editor/references/editor-control.md +62 -62
  354. package/template/{.agents/skills/vgai-3d-models → .claude/skills/volter-3d-models}/SKILL.md +3 -3
  355. package/template/{.agents/skills/vgai-ingest-existing-game → .claude/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  356. package/template/{.github/skills/vgai-threejs-authoring → .claude/skills/volter-threejs-authoring}/SKILL.md +9 -9
  357. package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  358. package/template/.claude/skills/{vgai-threejs-authoring → volter-threejs-authoring}/references/helper-catalog.md +1 -1
  359. package/template/.github/copilot-instructions.md +1 -1
  360. package/template/.github/skills/editor/SKILL.md +6 -6
  361. package/template/.github/skills/editor/agents/openai.yaml +3 -3
  362. package/template/.github/skills/editor/references/editor-control.md +62 -62
  363. package/template/.github/skills/{vgai-3d-models → volter-3d-models}/SKILL.md +3 -3
  364. package/template/{.claude/skills/vgai-ingest-existing-game → .github/skills/volter-ingest-existing-game}/SKILL.md +2 -2
  365. package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/SKILL.md +9 -9
  366. package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
  367. package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
  368. package/template/.mcp.json +3 -3
  369. package/template/AGENTS.md +24 -23
  370. package/template/DEVLOG.md +1 -1
  371. package/template/IDIOMS.md +3 -3
  372. package/template/LICENSE +3 -3
  373. package/template/README.md +12 -12
  374. package/template/check-idioms.ts +51 -51
  375. package/template/manifest-entry-modules-plugin.ts +17 -4
  376. package/template/package.json +12 -12
  377. package/template/server/loopback.ts +1 -1
  378. package/template/server/main.ts +4 -4
  379. package/template/server/rooms/arena-room.ts +8 -8
  380. package/template/server/rooms/game-room.ts +8 -8
  381. package/template/server/rooms.ts +2 -2
  382. package/template/src/bot/QaTester.tsx +1 -1
  383. package/template/src/bot/bot-station.ts +2 -2
  384. package/template/src/bot/tester-station.ts +1 -1
  385. package/template/src/contributions/README.md +1 -1
  386. package/template/src/contributions/analytics.analytics.tsx +1 -1
  387. package/template/src/contributions/data.document.tsx +2 -2
  388. package/template/src/contributions/pages.finder.ts +1 -1
  389. package/template/src/contributions/tester.inspector.tsx +2 -2
  390. package/template/src/contributions/use-game-modules.ts +1 -1
  391. package/template/src/input.ts +2 -2
  392. package/template/src/lib/reflections/volume-reflection-material.ts +59 -59
  393. package/template/src/lib/static-batch/Frozen.tsx +1 -1
  394. package/template/src/lib/static-batch/mutation-watch.ts +1 -1
  395. package/template/src/main.ts +58 -6
  396. package/template/src/manifest-entry-modules.d.ts +12 -1
  397. package/template/src/prefabs/HeroBox.stories.tsx +1 -1
  398. package/template/src/world.tsx +1 -1
  399. package/template/tsconfig.json +1 -1
  400. package/template/validate-manifest.ts +3 -3
  401. package/template/vite.config.ts +11 -11
  402. package/template/{vgai.adapter.ts → volter.adapter.ts} +1 -1
  403. package/template/{vgai.project.json → volter.project.json} +2 -2
  404. package/template-dotfiles/gitignore +27 -27
  405. package/workbench/src/media/game-cover.css +11 -11
  406. package/workbench/src/product.contribution.ts +28 -28
  407. package/workbench/src/{vgaiGameSkew.ts → volterGameSkew.ts} +16 -16
  408. package/dist/assets/AudioViewer-BDPqHDfU.js +0 -1
  409. package/dist/assets/CanvasBoardDocument-mxL0oJ3N.js +0 -1
  410. package/dist/assets/CanvasSceneViewport-C_mapCwC.js +0 -1
  411. package/dist/assets/ColorInput-QUPS1pEB.js +0 -1
  412. package/dist/assets/ImageViewer-tlVvkdM4.js +0 -1
  413. package/dist/assets/InspectorObjectPreview-W-y079DS.js +0 -1
  414. package/dist/assets/JsonAssetDocument-CPmcWFPW.js +0 -2
  415. package/dist/assets/ModelAssetDocument-De1HKuxG.js +0 -1
  416. package/dist/assets/Object3DDocumentToolbar-Cks81kCS.js +0 -1
  417. package/dist/assets/Object3DDocumentViewport-DCwiSY3O.js +0 -2
  418. package/dist/assets/OnlineAssetDetail-CNuwSQRQ.js +0 -1
  419. package/dist/assets/PlayBar-bT8Xdrap.js +0 -1
  420. package/dist/assets/ReactCanvasControls-CnJrPj-B.js +0 -1
  421. package/dist/assets/RootSelectionOverlay-CpaGluQu.js +0 -1
  422. package/dist/assets/ShadowEditor-CVtMlALn.js +0 -1
  423. package/dist/assets/StageHost-B89HKcvd.js +0 -2
  424. package/dist/assets/ThreeBoardDocument-BAgHrbtu.js +0 -2
  425. package/dist/assets/Toolbar-DkTHnQto.js +0 -1
  426. package/dist/assets/VideoViewer-DMV8lf4P.js +0 -1
  427. package/dist/assets/ViewportShadingMenu-CXPi6fl8.js +0 -1
  428. package/dist/assets/active-ingest-DA426a81.js +0 -3
  429. package/dist/assets/adapter-runtime-bindings-4cmsRvRh.js +0 -2
  430. package/dist/assets/animation-mixers.service-DK64IuYq.js +0 -1
  431. package/dist/assets/animation-timeline.utility-D-g0zrOl.js +0 -1
  432. package/dist/assets/asset-editor-persistence-BGWIqZdk.js +0 -1
  433. package/dist/assets/asset-loaders-C0KQI5eY.js +0 -2
  434. package/dist/assets/audio.utility-BmE9WMUg.js +0 -1
  435. package/dist/assets/autoplay.service-CjPnv3QW.js +0 -1
  436. package/dist/assets/binding-resolver-dE0GnZT5.js +0 -2
  437. package/dist/assets/blender-emscripten-engine-BeWFjMn-.js +0 -2
  438. package/dist/assets/blender-version.status-OsFoc9SA.js +0 -1
  439. package/dist/assets/blender-wali-engine-da698rDf.js +0 -2
  440. package/dist/assets/blender.keymap-_rF_vRX8.js +0 -1
  441. package/dist/assets/blender.status-ujwGU6dU.js +0 -1
  442. package/dist/assets/board-guides-BEKPgD9M.js +0 -1
  443. package/dist/assets/body-marks-RKb_LTwL.js +0 -1
  444. package/dist/assets/bridge.command-BF00Iefm.js +0 -3
  445. package/dist/assets/build-profiles.document-CqNrDdh9.js +0 -2
  446. package/dist/assets/build-progress.status-Bo1ZgJcb.js +0 -1
  447. package/dist/assets/build-session-GZcSAfPN.js +0 -9
  448. package/dist/assets/build.header-Bt1kwHWl.js +0 -1
  449. package/dist/assets/canvas-design-mount-BbLW_Nci.js +0 -6
  450. package/dist/assets/canvas-entry-runtime-UNYuSfG0.js +0 -2
  451. package/dist/assets/capability-coverage-DZ-onC5j.js +0 -7
  452. package/dist/assets/component-board.service-q_TM9BCw.js +0 -2
  453. package/dist/assets/component-contracts.service-CPbfXE1h.js +0 -1
  454. package/dist/assets/component-instance-root-B0C5oNEm.js +0 -1
  455. package/dist/assets/component-verbs.service-CnA11bJq.js +0 -1
  456. package/dist/assets/connection.status-Yvt0bX0r.js +0 -1
  457. package/dist/assets/constraints.inspector-4r8jWq5a.js +0 -1
  458. package/dist/assets/coverage.service-DcpEoBuf.js +0 -3
  459. package/dist/assets/create-runtime-DBfUy0SO.js +0 -3
  460. package/dist/assets/curve-DVd18iAX.js +0 -1
  461. package/dist/assets/data-check-core-CQEjuFyt.js +0 -1
  462. package/dist/assets/data-ref-CWnkj-HX.js +0 -1
  463. package/dist/assets/debug-bridge-D3_-EgRE.js +0 -1
  464. package/dist/assets/debug-registry-P0_YQGWd.js +0 -1
  465. package/dist/assets/design-time-layers-ChswRUJt.js +0 -1
  466. package/dist/assets/design-time-react-mount-C85KfXOd.js +0 -1
  467. package/dist/assets/edit-mode-authoring-DeCxPcHM.js +0 -1
  468. package/dist/assets/editor-api-BFTIRlWa.js +0 -1
  469. package/dist/assets/editor-presentation-activity-C7SNSmTd.js +0 -1
  470. package/dist/assets/entry-adjudication-Dc18TIqT.js +0 -1
  471. package/dist/assets/fork-menu-DpKqRhF5.js +0 -1
  472. package/dist/assets/game-audio-CaGKzia4.js +0 -1
  473. package/dist/assets/game-document.service-Chmt4065.js +0 -1
  474. package/dist/assets/game-eval.command-DRSvOJ_1.js +0 -2
  475. package/dist/assets/game-module-access-o3iXZpCA.js +0 -1
  476. package/dist/assets/game-network-Ct2FQYmu.js +0 -1
  477. package/dist/assets/gameplay-replay-BwdxV4oF.js +0 -1
  478. package/dist/assets/gameplay.command-Boqv1hnc.js +0 -1
  479. package/dist/assets/generation-DhwCUHPf.css +0 -1
  480. package/dist/assets/generation.service-o9aXlsx4.js +0 -1
  481. package/dist/assets/generations.status-BvzgHlyk.js +0 -1
  482. package/dist/assets/hierarchy-marks-BLPfSIym.js +0 -1
  483. package/dist/assets/hierarchy-marks-Cc_3lxw6.js +0 -1
  484. package/dist/assets/hosted-asset-materialization-BpbnhJac.js +0 -2
  485. package/dist/assets/index-0Lm0Nf1M.css +0 -1
  486. package/dist/assets/index-BHoAKyAC.js +0 -1
  487. package/dist/assets/index-BeK4RPgj.js +0 -1
  488. package/dist/assets/index-C1c3eOmm.js +0 -1
  489. package/dist/assets/index.module-Ycad3DJq.js +0 -1
  490. package/dist/assets/ingest-siblings-BtiEXLnh.js +0 -1
  491. package/dist/assets/ingest-source-persistence-Dmdo-UBp.js +0 -1
  492. package/dist/assets/ingest.service-vbCucMz7.js +0 -1
  493. package/dist/assets/inspection-CObLhnrs.js +0 -1
  494. package/dist/assets/instances.command-BwayrqNm.js +0 -1
  495. package/dist/assets/layered-pick-kiQf53t5.js +0 -1
  496. package/dist/assets/material-B_V78pTt.js +0 -1
  497. package/dist/assets/model-asset-sections-CFvvihfx.css +0 -1
  498. package/dist/assets/model-asset-sections.service-CqSclZGY.js +0 -1
  499. package/dist/assets/module-mode-BH2R93XP.js +0 -2
  500. package/dist/assets/mount-canvas-ingest-root-D1z9i5B3.js +0 -2
  501. package/dist/assets/mount-dom-ingest-root-BAmmNxlm.js +0 -2
  502. package/dist/assets/mount-ingest-root-DYR0TMIt.js +0 -2
  503. package/dist/assets/mount-manifest-DdkFYdVA.js +0 -1
  504. package/dist/assets/mount-readiness-Ds0HvvLH.js +0 -4
  505. package/dist/assets/mount-three-ingest-root-DVbACDUy.js +0 -1
  506. package/dist/assets/network-observer.service-Ce83TdsU.js +0 -1
  507. package/dist/assets/network.utility-DFDul2Xb.js +0 -1
  508. package/dist/assets/object-marks-DwvIEBOK.js +0 -1
  509. package/dist/assets/pixi-authoring-adapter-BChknIdC.js +0 -1
  510. package/dist/assets/pixi-live-write-target-BjDsBQbp.js +0 -1
  511. package/dist/assets/play-mode-DICV4cKP.js +0 -22
  512. package/dist/assets/play.command-NHyi5rzF.js +0 -2
  513. package/dist/assets/pose-guard-DILO6gGq.js +0 -1
  514. package/dist/assets/presentation-BeNFBfKg.js +0 -1
  515. package/dist/assets/profiler.utility-Do2Bw7MY.js +0 -1
  516. package/dist/assets/project-provenance-4ldz-EOG.js +0 -1
  517. package/dist/assets/r3f-design-session-B5GsZI5M.js +0 -2
  518. package/dist/assets/react-canvas-navigation-Cp3cOHJa.js +0 -1
  519. package/dist/assets/react-inspector.service-Bm0OnanU.js +0 -1
  520. package/dist/assets/react-story-board-GaXqr03H.js +0 -1
  521. package/dist/assets/react-world-authoring-adapter-DOjv2pYm.js +0 -1
  522. package/dist/assets/reflection-probe-capture.inspector-DqSW9p1v.js +0 -1
  523. package/dist/assets/registry-CaCdF63N.js +0 -1
  524. package/dist/assets/root-seam-contract-CxLZaRio.js +0 -1
  525. package/dist/assets/run-selection-DzEkGesJ.js +0 -2
  526. package/dist/assets/scene-capture-0a-bTjT8.js +0 -1
  527. package/dist/assets/scene-document.service-CeDwVA7t.js +0 -2
  528. package/dist/assets/seeded-random-BgCwIAAU.js +0 -1
  529. package/dist/assets/stage-overlay-set-BGE03mqb.js +0 -1
  530. package/dist/assets/stage-presence-markers-DIP7YMcO.js +0 -1
  531. package/dist/assets/stage-transform-tools-BQB7EY4l.js +0 -1
  532. package/dist/assets/standard-viewport-dressing-BCA51Tum.js +0 -24
  533. package/dist/assets/state-watch.utility-CFG1Tu1m.js +0 -1
  534. package/dist/assets/story-documents-BTo90DiA.js +0 -3
  535. package/dist/assets/story-three-preview-R1JvrggS.js +0 -2
  536. package/dist/assets/studio-environment-DRxxq_QX.js +0 -2
  537. package/dist/assets/team-playtest.service-hLfjgScx.js +0 -1
  538. package/dist/assets/three-authoring-adapter-htbnVej2.js +0 -1
  539. package/dist/assets/three-authoring.service-BIQAtVdX.js +0 -2
  540. package/dist/assets/three-integration.service-CS8Nvbd2.js +0 -1
  541. package/dist/assets/three-projection-core-CG01r5Ta.js +0 -1
  542. package/dist/assets/three-viewport-presentation-B0z_cECu.js +0 -141
  543. package/dist/assets/tools-B_NJsk05.js +0 -1
  544. package/dist/assets/transform-mode-request-DzD9aUNA.js +0 -1
  545. package/dist/assets/transport-strip-CUjNltnb.js +0 -1
  546. package/dist/assets/transport.header-Bb4FpQ8J.js +0 -1
  547. package/dist/assets/tuples-DfWSY2tr.js +0 -1
  548. package/dist/assets/ui-board-document-CCiiXjX9.js +0 -2
  549. package/dist/assets/user-data-dHvLdpwM.js +0 -1
  550. package/dist/assets/viewport-door-Bj_ZIP85.js +0 -1
  551. package/dist/assets/worker-CC9Ug5Ei.js +0 -2
  552. package/dist/assets/workspace-arrangement-BdAlBwvd.js +0 -1
  553. package/dist/assets/world-documents-DBybpBq8.js +0 -1
  554. package/dist/assets/world-root-stage-binding-ZVYIgr74.js +0 -1
  555. package/dist/vgai-shared-react.json +0 -10
  556. package/dist/vgai-shared-three.json +0 -3
  557. package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  558. package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  559. package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
  560. /package/dist/assets/{vgai-shared-fontawesome-CU65D4Ij.js → volter-shared-fontawesome-CU65D4Ij.js} +0 -0
  561. /package/dist/assets/{vgai-shared-jsx-dev-runtime-DFDKL7fx.js → volter-shared-jsx-dev-runtime-DFDKL7fx.js} +0 -0
  562. /package/dist/assets/{vgai-shared-jsx-runtime-DIqBpTut.js → volter-shared-jsx-runtime-DIqBpTut.js} +0 -0
  563. /package/dist/assets/{vgai-shared-react-BT7rMc2H.js → volter-shared-react-BT7rMc2H.js} +0 -0
  564. /package/dist/assets/{vgai-shared-react-dom-DFajMqMT.js → volter-shared-react-dom-DFajMqMT.js} +0 -0
  565. /package/dist/assets/{vgai-shared-react-dom-client-S0ozfl6_.js → volter-shared-react-dom-client-S0ozfl6_.js} +0 -0
  566. /package/dist/assets/{vgai-shared-three-DH4yxKwt.js → volter-shared-three-DH4yxKwt.js} +0 -0
  567. /package/template/{.vgai → .volter}/assets.json +0 -0
  568. /package/template/{.vgai → .volter}/provenance.json +0 -0
@@ -0,0 +1 @@
1
+ import{Q as e,Y as r,bB as i,bC as a,bD as p,bE as m}from"./index-C5ZAyrKq.js";import{bF as It,bG as Ot,bH as Ht,bI as Ut,bJ as qt,bK as Bt,bL as Jt,b1 as Mt,bM as Qt,bN as Vt,bO as Yt,bP as _t,bQ as Kt,a_ as Nt,bR as Xt,bS as Zt,bT as zt,bU as te,bV as ee,bW as re,bX as oe,bY as se,bZ as ie,b_ as ae,b$ as pe,c0 as me,c1 as ne,c2 as ce,c3 as le,c4 as de,c5 as be,c6 as ge,c7 as ue,c8 as Ee,c9 as Se,ca as ye,cb as Pe,cc as je,cd as ve,ce as fe,cf as he,cg as Ae,ch as ke,ci as we,cj as Ce,ck as Re,cl as Fe,cm as Te,cn as xe,co as Le,cp as De,a$ as Ge,cq as We,cr as $e,cs as Ie,ct as Oe,cu as He,cv as Ue,cw as qe}from"./index-C5ZAyrKq.js";import{o as Je,q as Me,t as Qe}from"./game-network-DW5ARz4R.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-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./game-contract-seams-tyKDsfaP.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./capability-coverage-ByWftxk4.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.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-0QjJWb7i.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.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-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";async function Lt(){try{const t=await fetch(`${e}/examples`);return(await r(t,`GET ${e}/examples failed`)).examples}catch{return[]}}function Dt(t){return t.startsWith("/")?t:`${e}/learn-thumbnail?file=${encodeURIComponent(t)}`}async function Gt(){const t=await fetch(`${e}/templates`);return(await r(t,`GET ${e}/templates failed`)).templates}export{It as AssetDeliveryError,m as abortGameplayRecordingSink,Ot as adaptProjectFolder,Ht as appendGameplayRecordingAsset,a as appendGameplayRecordingChunk,Ut as appendGameplayRecordingDomEvents,qt as archiveEditorWorktree,Bt as assetDeliveryIssueMessage,i as beginGameplayRecordingSink,Jt as browseFolder,Mt as captureProjectAssetHistory,Qt as connectEvents,Vt as connectTabPresence,Yt as createEditorWorktree,_t as createProject,Kt as delegateEditorTask,Nt as downloadOnlineAsset,Je as endLogSession,p as finishGameplayRecordingSink,Me as flushLogEntries,Xt as getAssetLibraryCategories,Zt as getCurrentServerProject,zt as getDownloadUrl,te as getDownloadedAssetPath,ee as getEditorCompatibility,re as getEditorRepositoryPresence,oe as getEditorSessionWorktreeIdentity,se as getLauncherSettings,ie as getOnlineAssetFiles,ae as getOnlineAssetPreview,pe as getServerValidationLog,me as inspectProjectFolder,Dt as learnThumbnailUrl,ne as listAssets,ce as listDelegateHarnesses,le as listEditorWorktrees,Lt as listExamples,de as listProjectComponents,be as listProjectSourceFiles,ge as listRecentProjects,Gt as listTemplates,ue as loadDownloadedAssets,Ee as loadEditorState,Se as onAssetDownloaded,ye as openEditorWorktree,Pe as openProjectOnServer,je as pollEditorLeaseIdentity,ve as probeCurrentServerProject,fe as probeProjectFile,he as projectFileExists,Ae as readProjectSourceText,ke as readProjectTextFile,we as removeRecentProject,Ce as reportCommandListener,Re as reportCommandReceived,Fe as reportCommandResult,Te as reportEditorState,xe as reportPlayBootPhase,Le as reportTabRoute,De as requireEditorCompatibility,Ge as restoreProjectAssetHistory,We as revealInFinder,$e as saveEditorState,Ie as saveFile,Oe as saveThumbnail,He as searchOnlineAssets,Qe as startLogSession,Ue as stopEditorWorktreeSession,qe as updateLauncherSettings};
@@ -1 +1 @@
1
- import{g as e}from"./workspace-arrangement-BdAlBwvd.js";import"./index-BRJMIUK0.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 i=31,d=30;function n(r){return(r.layers.mask&1<<i)!==0||!!e(r,"editorHelper")||!!e(r,"engineInternal")}function f(r){let t=r;for(;t;){if(n(t))return!0;t=t.parent}return!1}export{i as EDITOR_LAYER,d as EDITOR_SELECTION_LAYER,n as isEditorOwnedObject,f as isInEditorOwnedSubtree};
1
+ import{g as e}from"./workspace-arrangement-DqG5sUns.js";import"./index-C5ZAyrKq.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 i=31,d=30;function n(r){return(r.layers.mask&1<<i)!==0||!!e(r,"editorHelper")||!!e(r,"engineInternal")}function f(r){let t=r;for(;t;){if(n(t))return!0;t=t.parent}return!1}export{i as EDITOR_LAYER,d as EDITOR_SELECTION_LAYER,n as isEditorOwnedObject,f as isInEditorOwnedSubtree};
@@ -0,0 +1 @@
1
+ const t={hostActive:!0,listeners:new Set};function o(){return t.hostActive&&(typeof document>"u"||!document.hidden)}function n(){for(const e of t.listeners)e()}const i=typeof document<"u"&&document.referrer?new URL(document.referrer).origin:null;function r(e){window.parent===window||e.source!==window.parent||!i||e.origin!==i||e.data?.type!=="volter:embed-activity"||typeof e.data.active!="boolean"||t.hostActive!==e.data.active&&(t.hostActive=e.data.active,n())}function d(e){return t.listeners.add(e),()=>{t.listeners.delete(e)}}typeof window<"u"&&(window.addEventListener("message",r),document.addEventListener("visibilitychange",n),window.parent!==window&&i&&window.parent.postMessage({type:"volter:request-embed-activity"},i));export{o as i,d as s};
@@ -1 +1 @@
1
- import{v as x}from"./output-pass-HurwNl0G.js";import{isEditorOwnedObject as L}from"./editor-layers-BDJnAAzj.js";import{g as y,s as E}from"./user-data-Bpj7diUS.js";import{i as P,e as F}from"./entity-object-JmYMfLsx.js";import"./index-BRJMIUK0.js";import{fo as R,fx as C,bi as V,d9 as k}from"./three.core-3arARmh6.js";function O(r,e=P){if(r.isLOD)return r;const s=[...r.children];for(;s.length>0;){const t=s.pop();if(!e(t)){if(t.isLOD)return t;s.push(...t.children)}}return null}const H=1e20,N=2e20;function D(r,e){const s=r.fog;if(!s){e();return}const t=s.isFog?s:null,i=s.isFogExp2?s:null,o=t?.near,a=t?.far,n=i?.density;t&&(t.near=H,t.far=N),i&&(i.density=0);try{e()}finally{t&&o!==void 0&&a!==void 0&&(t.near=o,t.far=a),i&&n!==void 0&&(i.density=n)}}const U=256;class d{constructor(e){this.shell=e}_scene=null;_adoptionStack=[];_objectMap=new Map;_renderer=null;_camera=null;_batchedRenderer=null;_lastThumbnailTime=0;_lastEditorStateSaveTime=0;_orbitTarget=null;_gizmoEpoch=0;_objectMapParentChangedAt=new Map;_objectMapFullChangeEpoch=0;_objectMapMembershipChangedAt=new Map;_objectMapMembershipFullChangeEpoch=0;_objectMapMembershipHistoryFloor=0;_showStats=!1;_shadingMode="solid";_statePersistence=null;_vertexSnapActive=!1;_composerVersion=0;bindScene(e,s,t,i){const o=this._adoptionStack[0];o?o.scene=e:this._scene=e,this._renderer=s??null,this._batchedRenderer=t??null,i&&(this._camera=i)}setOrbitTarget(e){this._orbitTarget=e}setViewportCamera(e){this._camera=e}attachStatePersistence(e){if(this._statePersistence!==e){if(this._statePersistence)throw new Error("EditorStore is already attached to a state persistence.");this._statePersistence=e}}get sceneCameraLookup(){return this._sceneCameraLookup}_sceneCameraLookup=null;focusOnScene(e){this._sceneCameraLookup=e??null,this.shell.focusOnScene()}get cameraPose(){if(!this._camera)return null;const e=this._camera.fov;return{position:this._camera.position.clone(),target:this._orbitTarget?this._orbitTarget.clone():new R,fov:typeof e=="number"?e:0}}get objectMap(){return this._objectMap}get scene(){return this._scene}get composerVersion(){return this._composerVersion}get gizmoEpoch(){return this._gizmoEpoch}ingestObjectMapChangesSince(e){if(e<0||e>this._gizmoEpoch||e<this._objectMapFullChangeEpoch)return null;const s=new Set;for(const[t,i]of this._objectMapParentChangedAt)i>e&&s.add(t);return{epoch:this._gizmoEpoch,changedParentIds:s}}ingestObjectMapMembershipChangesSince(e){if(e<0||e>this._gizmoEpoch||e<this._objectMapMembershipFullChangeEpoch||e<this._objectMapMembershipHistoryFloor)return null;const s=new Set;for(const[t,i]of this._objectMapMembershipChangedAt)i>e&&s.add(t);return{epoch:this._gizmoEpoch,changedIds:s}}isSkeletonVisible(e){return!!y(this._objectMap.get(e),"skeletonVisible")}setSkeletonVisible(e,s){const t=this._objectMap.get(e);t&&(E(t,"skeletonVisible",s),t.traverse(i=>{y(i,"editorHelperType")==="skeletons"&&(E(i,"skeletonEnabled",s),i.visible=s||this.shell.helperVisibility.skeletons)}),this.shell.notifyChange())}get showStats(){return this._showStats}get shadingMode(){return this._shadingMode}notifyIngestObjectMapEdit(e){if(this._gizmoEpoch++,e===void 0||e.rootsChanged)this._objectMapFullChangeEpoch=this._gizmoEpoch,this._objectMapParentChangedAt.clear();else for(const t of e.changedParentIds)this._objectMapParentChangedAt.set(t,this._gizmoEpoch);if(e?.addedIds===void 0||e.removedIds===void 0)this._objectMapMembershipFullChangeEpoch=this._gizmoEpoch,this._objectMapMembershipChangedAt.clear();else{for(const i of e.addedIds)this._objectMapMembershipChangedAt.set(i,this._gizmoEpoch);for(const i of e.removedIds)this._objectMapMembershipChangedAt.set(i,this._gizmoEpoch);const t=Math.max(0,this._gizmoEpoch-U);if(t>this._objectMapMembershipHistoryFloor){this._objectMapMembershipHistoryFloor=t;for(const[i,o]of this._objectMapMembershipChangedAt)o<=t&&this._objectMapMembershipChangedAt.delete(i)}}const s=e===void 0||e.rootsChanged||[...e.addedIds??[],...e.removedIds??[]].some(t=>this.shell.selectedEntityIds.has(t));this.shell.notifyChange("content",s?"shell":"object-map",!1)}_ecsSyncTransform=null;setEcsSyncTransform(e){this._ecsSyncTransform=e}enterPlayScene(e,s,t){this._adoptionStack.push({scene:this._scene,objectMap:this._objectMap,extras:this._captureAdoptionExtras(),selection:new Set(this.shell.selectedEntityIds),imageConfig:this._adoptedImageConfig}),this._scene=e,this._applyAdoptedImageConfig(s);const i=t?new Map(t):(()=>{const o=new Map,a=n=>{if(L(n))return;const l=F(n);l!==void 0&&o.set(l,n);for(const p of n.children)a(p)};for(const n of e.children)a(n);return o})();this._objectMap=i,this.shell.applySelectionBeforePresentation([...this.shell.selectedEntityIds].filter(o=>i.has(o))),this._lodForcedLevels.clear(),this._composerVersion++,this.shell.notifyChange()}get hasAdoptedScene(){return this._adoptionStack.length>0}exitPlayScene(){const e=this._adoptionStack.pop();e&&(this._scene=e.scene,this._objectMap=e.objectMap,this._applyAdoptedImageConfig(e.imageConfig),this._restoreAdoptionExtras(e.extras),this.shell.applySelectionBeforePresentation([...e.selection]),this._composerVersion++,this.shell.notifyChange())}releaseAdoptedScene(e){if(this._scene===e){this.exitPlayScene();return}const s=this._adoptionStack.findIndex(t=>t.scene===e);s!==-1&&this._adoptionStack.splice(s,1)}_adoptedImageConfig;get adoptedImageConfig(){return this._adoptedImageConfig}_applyAdoptedImageConfig(e){e!==this._adoptedImageConfig&&(this._adoptedImageConfig=e,this._composerVersion++)}get isAdoptedSceneActive(){return this._adoptionStack.length>0}get vertexSnapActive(){return this._vertexSnapActive}setVertexSnapActive(e){this._vertexSnapActive=e,this.shell.notifyChange()}static THUMBNAIL_INTERVAL_MS=6e4;static THUMBNAIL_SIZE=256;_renderViewportImage(e,s){if(!this._renderer||!this._scene||!this._camera)return null;const t=typeof e=="number"?e:e.width,i=typeof e=="number"?e:e.height;if(!Number.isFinite(t)||t<1||!Number.isFinite(i)||i<1)return null;const o=t*2,a=i*2,n=this._renderer,l=new C(o,a,{type:V}),p=new C(o,a),T=n.getRenderTarget(),w=n.getPixelRatio(),h=this._camera,I=h.layers.mask,c=h instanceof k?h:null,u=c?.aspect;s?h.layers.enableAll():(h.layers.disableAll(),h.layers.enable(0));try{c&&(c.aspect=t/i,c.updateProjectionMatrix()),n.setPixelRatio(1),n.setRenderTarget(l),D(this._scene,()=>n.render(this._scene,h)),x().render(n,p,l,0,!1)}finally{n.setRenderTarget(T),n.setPixelRatio(w),h.layers.mask=I,c&&u!==void 0&&(c.aspect=u,c.updateProjectionMatrix())}const _=o*4,b=new Uint8Array(_*a);n.readRenderTargetPixels(p,0,0,o,a,b),p.dispose(),l.dispose();const g=document.createElement("canvas");g.width=o,g.height=a;const M=g.getContext("2d"),S=M.createImageData(o,a);for(let m=0;m<a;m++){const v=(a-1-m)*_,j=m*_;S.data.set(b.subarray(v,v+_),j)}M.putImageData(S,0,0);const f=document.createElement("canvas");return f.width=t,f.height=i,f.getContext("2d").drawImage(g,0,0,t,i),f.toDataURL("image/png")}_captureThumbnail(){const e=Date.now();if(e-this._lastThumbnailTime<d.THUMBNAIL_INTERVAL_MS)return;this._lastThumbnailTime=e;const s=this._renderViewportImage(d.THUMBNAIL_SIZE,!1);s&&this._statePersistence?.saveThumbnail?.(s)}captureViewportImage(e=d.THUMBNAIL_SIZE){return this._renderViewportImage(e,!0)}viewportCanvas(){return this._renderer?.domElement??null}static EDITOR_STATE_INTERVAL_MS=6e4;_saveEditorStateIfDue(){if(!this._statePersistence)return;const e=Date.now();if(e-this._lastEditorStateSaveTime<d.EDITOR_STATE_INTERVAL_MS)return;this._lastEditorStateSaveTime=e;const s={transformMode:this.shell.transformMode,transformSpace:this.shell.transformSpace,snapEnabled:this.shell.snapEnabled,snapValues:this.shell.snapValues,preserveChildrenTransform:this.shell.preserveChildrenTransform,pivotMode:this.shell.pivotMode,gizmoAnchor:this.shell.gizmoAnchor,showHelpers:this.shell.showHelpers,helperVisibility:{...this.shell.helperVisibility},showStats:this._showStats,shadingMode:this._shadingMode};if(Object.assign(s,this._editorStateExtras()),this._camera){const t=this._camera;s.camera={position:t.position.toArray(),target:this._orbitTarget?this._orbitTarget.toArray():[0,0,0]}}this._statePersistence.save(s)}_lodForcedLevels=new Map;get lodForcedLevels(){return this._lodForcedLevels}getLodForcedLevel(e){return this._lodForcedLevels.get(e)??null}setLodForcedLevel(e,s){if(s===null){this._lodForcedLevels.delete(e);const t=this._objectMap.get(e),i=new Set(this._objectMap.values()),o=t?O(t,a=>i.has(a)):null;o&&(o.autoUpdate=!0)}else this._lodForcedLevels.set(e,s);this.shell.notifyChange()}toggleStats(){this._showStats=!this._showStats,this.shell.notifyChange()}setShadingMode(e){this._shadingMode=e,this.shell.notifyChange()}_captureAdoptionExtras(){}_restoreAdoptionExtras(e){}_editorStateExtras(){return{}}}const A=new WeakMap;function q(r){let e=A.get(r);return e||(e=new d(r),A.set(r,e)),e}export{O as f,q as t,D as w};
1
+ import{v as x}from"./output-pass-HurwNl0G.js";import{isEditorOwnedObject as L}from"./editor-layers-D-CTUqco.js";import{g as y,s as E}from"./user-data-C84W0V47.js";import{i as P,e as F}from"./entity-object-MKYemTFM.js";import"./index-C5ZAyrKq.js";import{fo as R,fx as C,bi as V,d9 as k}from"./three.core-3arARmh6.js";function O(r,e=P){if(r.isLOD)return r;const s=[...r.children];for(;s.length>0;){const t=s.pop();if(!e(t)){if(t.isLOD)return t;s.push(...t.children)}}return null}const H=1e20,N=2e20;function D(r,e){const s=r.fog;if(!s){e();return}const t=s.isFog?s:null,i=s.isFogExp2?s:null,o=t?.near,a=t?.far,n=i?.density;t&&(t.near=H,t.far=N),i&&(i.density=0);try{e()}finally{t&&o!==void 0&&a!==void 0&&(t.near=o,t.far=a),i&&n!==void 0&&(i.density=n)}}const U=256;class d{constructor(e){this.shell=e}_scene=null;_adoptionStack=[];_objectMap=new Map;_renderer=null;_camera=null;_batchedRenderer=null;_lastThumbnailTime=0;_lastEditorStateSaveTime=0;_orbitTarget=null;_gizmoEpoch=0;_objectMapParentChangedAt=new Map;_objectMapFullChangeEpoch=0;_objectMapMembershipChangedAt=new Map;_objectMapMembershipFullChangeEpoch=0;_objectMapMembershipHistoryFloor=0;_showStats=!1;_shadingMode="solid";_statePersistence=null;_vertexSnapActive=!1;_composerVersion=0;bindScene(e,s,t,i){const o=this._adoptionStack[0];o?o.scene=e:this._scene=e,this._renderer=s??null,this._batchedRenderer=t??null,i&&(this._camera=i)}setOrbitTarget(e){this._orbitTarget=e}setViewportCamera(e){this._camera=e}attachStatePersistence(e){if(this._statePersistence!==e){if(this._statePersistence)throw new Error("EditorStore is already attached to a state persistence.");this._statePersistence=e}}get sceneCameraLookup(){return this._sceneCameraLookup}_sceneCameraLookup=null;focusOnScene(e){this._sceneCameraLookup=e??null,this.shell.focusOnScene()}get cameraPose(){if(!this._camera)return null;const e=this._camera.fov;return{position:this._camera.position.clone(),target:this._orbitTarget?this._orbitTarget.clone():new R,fov:typeof e=="number"?e:0}}get objectMap(){return this._objectMap}get scene(){return this._scene}get composerVersion(){return this._composerVersion}get gizmoEpoch(){return this._gizmoEpoch}ingestObjectMapChangesSince(e){if(e<0||e>this._gizmoEpoch||e<this._objectMapFullChangeEpoch)return null;const s=new Set;for(const[t,i]of this._objectMapParentChangedAt)i>e&&s.add(t);return{epoch:this._gizmoEpoch,changedParentIds:s}}ingestObjectMapMembershipChangesSince(e){if(e<0||e>this._gizmoEpoch||e<this._objectMapMembershipFullChangeEpoch||e<this._objectMapMembershipHistoryFloor)return null;const s=new Set;for(const[t,i]of this._objectMapMembershipChangedAt)i>e&&s.add(t);return{epoch:this._gizmoEpoch,changedIds:s}}isSkeletonVisible(e){return!!y(this._objectMap.get(e),"skeletonVisible")}setSkeletonVisible(e,s){const t=this._objectMap.get(e);t&&(E(t,"skeletonVisible",s),t.traverse(i=>{y(i,"editorHelperType")==="skeletons"&&(E(i,"skeletonEnabled",s),i.visible=s||this.shell.helperVisibility.skeletons)}),this.shell.notifyChange())}get showStats(){return this._showStats}get shadingMode(){return this._shadingMode}notifyIngestObjectMapEdit(e){if(this._gizmoEpoch++,e===void 0||e.rootsChanged)this._objectMapFullChangeEpoch=this._gizmoEpoch,this._objectMapParentChangedAt.clear();else for(const t of e.changedParentIds)this._objectMapParentChangedAt.set(t,this._gizmoEpoch);if(e?.addedIds===void 0||e.removedIds===void 0)this._objectMapMembershipFullChangeEpoch=this._gizmoEpoch,this._objectMapMembershipChangedAt.clear();else{for(const i of e.addedIds)this._objectMapMembershipChangedAt.set(i,this._gizmoEpoch);for(const i of e.removedIds)this._objectMapMembershipChangedAt.set(i,this._gizmoEpoch);const t=Math.max(0,this._gizmoEpoch-U);if(t>this._objectMapMembershipHistoryFloor){this._objectMapMembershipHistoryFloor=t;for(const[i,o]of this._objectMapMembershipChangedAt)o<=t&&this._objectMapMembershipChangedAt.delete(i)}}const s=e===void 0||e.rootsChanged||[...e.addedIds??[],...e.removedIds??[]].some(t=>this.shell.selectedEntityIds.has(t));this.shell.notifyChange("content",s?"shell":"object-map",!1)}_ecsSyncTransform=null;setEcsSyncTransform(e){this._ecsSyncTransform=e}enterPlayScene(e,s,t){this._adoptionStack.push({scene:this._scene,objectMap:this._objectMap,extras:this._captureAdoptionExtras(),selection:new Set(this.shell.selectedEntityIds),imageConfig:this._adoptedImageConfig}),this._scene=e,this._applyAdoptedImageConfig(s);const i=t?new Map(t):(()=>{const o=new Map,a=n=>{if(L(n))return;const l=F(n);l!==void 0&&o.set(l,n);for(const p of n.children)a(p)};for(const n of e.children)a(n);return o})();this._objectMap=i,this.shell.applySelectionBeforePresentation([...this.shell.selectedEntityIds].filter(o=>i.has(o))),this._lodForcedLevels.clear(),this._composerVersion++,this.shell.notifyChange()}get hasAdoptedScene(){return this._adoptionStack.length>0}exitPlayScene(){const e=this._adoptionStack.pop();e&&(this._scene=e.scene,this._objectMap=e.objectMap,this._applyAdoptedImageConfig(e.imageConfig),this._restoreAdoptionExtras(e.extras),this.shell.applySelectionBeforePresentation([...e.selection]),this._composerVersion++,this.shell.notifyChange())}releaseAdoptedScene(e){if(this._scene===e){this.exitPlayScene();return}const s=this._adoptionStack.findIndex(t=>t.scene===e);s!==-1&&this._adoptionStack.splice(s,1)}_adoptedImageConfig;get adoptedImageConfig(){return this._adoptedImageConfig}_applyAdoptedImageConfig(e){e!==this._adoptedImageConfig&&(this._adoptedImageConfig=e,this._composerVersion++)}get isAdoptedSceneActive(){return this._adoptionStack.length>0}get vertexSnapActive(){return this._vertexSnapActive}setVertexSnapActive(e){this._vertexSnapActive=e,this.shell.notifyChange()}static THUMBNAIL_INTERVAL_MS=6e4;static THUMBNAIL_SIZE=256;_renderViewportImage(e,s){if(!this._renderer||!this._scene||!this._camera)return null;const t=typeof e=="number"?e:e.width,i=typeof e=="number"?e:e.height;if(!Number.isFinite(t)||t<1||!Number.isFinite(i)||i<1)return null;const o=t*2,a=i*2,n=this._renderer,l=new C(o,a,{type:V}),p=new C(o,a),T=n.getRenderTarget(),w=n.getPixelRatio(),h=this._camera,I=h.layers.mask,c=h instanceof k?h:null,u=c?.aspect;s?h.layers.enableAll():(h.layers.disableAll(),h.layers.enable(0));try{c&&(c.aspect=t/i,c.updateProjectionMatrix()),n.setPixelRatio(1),n.setRenderTarget(l),D(this._scene,()=>n.render(this._scene,h)),x().render(n,p,l,0,!1)}finally{n.setRenderTarget(T),n.setPixelRatio(w),h.layers.mask=I,c&&u!==void 0&&(c.aspect=u,c.updateProjectionMatrix())}const _=o*4,b=new Uint8Array(_*a);n.readRenderTargetPixels(p,0,0,o,a,b),p.dispose(),l.dispose();const g=document.createElement("canvas");g.width=o,g.height=a;const M=g.getContext("2d"),S=M.createImageData(o,a);for(let m=0;m<a;m++){const v=(a-1-m)*_,j=m*_;S.data.set(b.subarray(v,v+_),j)}M.putImageData(S,0,0);const f=document.createElement("canvas");return f.width=t,f.height=i,f.getContext("2d").drawImage(g,0,0,t,i),f.toDataURL("image/png")}_captureThumbnail(){const e=Date.now();if(e-this._lastThumbnailTime<d.THUMBNAIL_INTERVAL_MS)return;this._lastThumbnailTime=e;const s=this._renderViewportImage(d.THUMBNAIL_SIZE,!1);s&&this._statePersistence?.saveThumbnail?.(s)}captureViewportImage(e=d.THUMBNAIL_SIZE){return this._renderViewportImage(e,!0)}viewportCanvas(){return this._renderer?.domElement??null}static EDITOR_STATE_INTERVAL_MS=6e4;_saveEditorStateIfDue(){if(!this._statePersistence)return;const e=Date.now();if(e-this._lastEditorStateSaveTime<d.EDITOR_STATE_INTERVAL_MS)return;this._lastEditorStateSaveTime=e;const s={transformMode:this.shell.transformMode,transformSpace:this.shell.transformSpace,snapEnabled:this.shell.snapEnabled,snapValues:this.shell.snapValues,preserveChildrenTransform:this.shell.preserveChildrenTransform,pivotMode:this.shell.pivotMode,gizmoAnchor:this.shell.gizmoAnchor,showHelpers:this.shell.showHelpers,helperVisibility:{...this.shell.helperVisibility},showStats:this._showStats,shadingMode:this._shadingMode};if(Object.assign(s,this._editorStateExtras()),this._camera){const t=this._camera;s.camera={position:t.position.toArray(),target:this._orbitTarget?this._orbitTarget.toArray():[0,0,0]}}this._statePersistence.save(s)}_lodForcedLevels=new Map;get lodForcedLevels(){return this._lodForcedLevels}getLodForcedLevel(e){return this._lodForcedLevels.get(e)??null}setLodForcedLevel(e,s){if(s===null){this._lodForcedLevels.delete(e);const t=this._objectMap.get(e),i=new Set(this._objectMap.values()),o=t?O(t,a=>i.has(a)):null;o&&(o.autoUpdate=!0)}else this._lodForcedLevels.set(e,s);this.shell.notifyChange()}toggleStats(){this._showStats=!this._showStats,this.shell.notifyChange()}setShadingMode(e){this._shadingMode=e,this.shell.notifyChange()}_captureAdoptionExtras(){}_restoreAdoptionExtras(e){}_editorStateExtras(){return{}}}const A=new WeakMap;function q(r){let e=A.get(r);return e||(e=new d(r),A.set(r,e)),e}export{O as f,q as t,D as w};
@@ -1 +1 @@
1
- import{s as r,g as i}from"./user-data-Bpj7diUS.js";import{a as s}from"./three-contract-Dkt6PmWY.js";function f(e,t,n){return s(e.hierarchy,n)??t.get(n)??null}function a(e){const t=i(e,"entityId");return typeof t=="string"&&t?t:void 0}function o(e){return a(e)!==void 0}function y(e){let t=e??null;for(;t&&!o(t);)t=t.parent;return t}function d(e,t){r(e,"entityId",t)}export{f as a,a as e,o as i,y as n,d as s};
1
+ import{s as r,g as i}from"./user-data-C84W0V47.js";import{a as s}from"./three-contract-Dkt6PmWY.js";function f(e,t,n){return s(e.hierarchy,n)??t.get(n)??null}function a(e){const t=i(e,"entityId");return typeof t=="string"&&t?t:void 0}function o(e){return a(e)!==void 0}function y(e){let t=e??null;for(;t&&!o(t);)t=t.parent;return t}function d(e,t){r(e,"entityId",t)}export{f as a,a as e,o as i,y as n,d as s};
@@ -1,4 +1,4 @@
1
- import{a as Uu}from"./jsx-runtime-DPjLkJKQ.js";import{m as Vy,x as oy}from"./index-bQE2NA0D.js";import{c as pa,C as Hu,G as gy,A as by,e as cm,T as Ef}from"./index-SS9EugVg.js";import{r as Wl}from"./index-nmcBqr7Y.js";import{g as Jy}from"./_commonjsHelpers-D6-XlEtG.js";import{r as xy}from"./index-D_NuPfjr.js";var mf={exports:{}},_t={};/**
1
+ import{a as Uu}from"./jsx-runtime-DPjLkJKQ.js";import{m as Vy,x as oy}from"./index-bQE2NA0D.js";import{c as pa,C as Hu,G as gy,A as by,e as cm,T as Ef}from"./index-DgPDGGSV.js";import{r as Wl}from"./index-nmcBqr7Y.js";import{g as Jy}from"./_commonjsHelpers-D6-XlEtG.js";import{r as xy}from"./index-D_NuPfjr.js";var mf={exports:{}},_t={};/**
2
2
  * @license React
3
3
  * react-reconciler-constants.production.js
4
4
  *
@@ -0,0 +1 @@
1
+ import{fe as c,ff as o,ax as s,d4 as u}from"./index-C5ZAyrKq.js";import{E as h,a as E,F as g,c as m}from"./instance-fork-actions-D3sRzS3K.js";import{t as i}from"./editor-shell-store-DHVWS8cE.js";function l(t,e){return c(t,e)}function F(t,e){const n=s(t.shell);return E(n.hierarchy.node(e),l(n,e),e)}let r=null;function O(){r||(r=o(({nodeId:t,store:e})=>F(i(e),t),({nodeId:t,store:e})=>{const n=l(s(e),t);return[{label:h,action:()=>{n?.extractComponent?.(t).then(u)}}]}))}function b(){r?.(),r=null}function f(t,e){return c(t,e)}function p(t,e){const n=s(t.shell);return m(n.hierarchy.node(e),f(n,e),e)}let a=null;function A(){a||(a=o(({nodeId:t,store:e})=>p(i(e),t),({nodeId:t,store:e})=>{const n=f(s(e),t);return[{label:g,action:()=>{n?.forkComponent?.(t).then(u)}}]}))}function C(){a?.(),a=null}export{l as a,A as b,C as c,O as e,f as i,b as u};
@@ -1 +1 @@
1
- import{r as b}from"./index-nmcBqr7Y.js";import{gA as B,gB as x,gC as R,gD as I,gE as _,gF as C,gG as $,gH as P,gI as A,w as N}from"./index-BRJMIUK0.js";function X(){b.useSyncExternalStore(B,x,x),b.useSyncExternalStore(R,I,I),b.useSyncExternalStore(_,C,C);const t=N();return(t==="workspace:game"?$(P()):null)??A(t)}function Y(t){return t?{capture:typeof t.captureFrame=="function",memory:typeof t.memorySnapshot=="function"}:null}class D{constructor(s=10){this.capacity=s}captures=[];selectedId=null;add(s){this.captures.push(s),this.captures.length>this.capacity&&this.captures.splice(0,this.captures.length-this.capacity),this.selectedId=s.id}get all(){return this.captures}select(s){this.captures.some(e=>e.id===s)&&(this.selectedId=s)}get selectedIdOrNull(){return this.selectedId}get selected(){return this.selectedId===null?null:this.captures.find(s=>s.id===this.selectedId)??null}clear(){this.captures=[],this.selectedId=null}}function q(t){const s=new Map,e=[];for(const o of t.drawCalls){const r=o.target.kind==="canvas"?"canvas":o.target.label??"framebuffer";let n=s.get(r);n||(n=[],s.set(r,n),e.push(r)),n.push(o)}return e.map(o=>({target:o,draws:s.get(o)??[]}))}function J(t){const s=new Set;for(const e of t.drawCalls)s.add(e.target.kind==="canvas"?"canvas":e.target.label??"framebuffer");return{id:t.id,drawCalls:t.totals.drawCalls,unattributed:t.totals.unattributed,truncated:t.totals.truncated,targets:s.size}}function Q(t,s){let e=Math.max(0,t.cpuMs);for(const a of t.phases)e=Math.max(e,(a.startMs??0)+a.ms);for(const a of t.systems)e=Math.max(e,a.startMs+a.ms);for(const a of t.components)e=Math.max(e,a.startMs+a.ms);const o=e>0?e:1,r=s/o,n=(a,l,u,p)=>({x:Math.max(0,a*r),w:Math.max(0,l*r),depth:u,label:p,ms:l}),c=[n(0,t.cpuMs,0,`frame ${t.id}`)];for(const a of t.phases)c.push(n(a.startMs??0,a.ms,1,a.name));for(const a of t.systems)c.push(n(a.startMs,a.ms,2,a.name));for(const a of t.components)c.push(n(a.startMs,a.ms,3,a.name));return c}function Z(t,s,e){if(t.length===0)return[];const o=Math.max(1,...t.map(n=>n.cpuMs)),r=s/t.length;return t.map((n,c)=>({index:c,frameId:n.id,x:c*r,w:r,h:Math.max(0,n.cpuMs/o*e),cpuMs:n.cpuMs}))}function tt(t){if(!Number.isFinite(t)||t<0)return"—";if(t<1024)return`${t} B`;const s=["KB","MB","GB","TB"];let e=t/1024,o=0;for(;e>=1024&&o<s.length-1;)e/=1024,o++;return`${e<10?e.toFixed(2):e.toFixed(1)} ${s[o]}`}function et(t,s){const e=Math.max(0,t),o=Math.max(0,e-Math.max(0,s));return{frameMs:e,gapMs:o,dominated:e>20&&o>e/2}}function T(t){const s=new Map;let e=0,o=0;for(const r of t){e+=r.duration;for(const n of r.scripts??[]){o+=n.duration;const c=n.sourceURL?n.sourceURL.split("/").slice(-2).join("/"):"",a=n.sourceFunctionName||n.invoker||"(anonymous)",l=c?`${a} @ ${c}`:a,u=s.get(l)??{totalMs:0,count:0};u.totalMs+=n.duration,u.count+=1,s.set(l,u)}}return{longFrameCount:t.length,totalLongMs:Math.round(e),unattributedMs:Math.round(Math.max(0,e-o)),scripts:[...s.entries()].map(([r,n])=>({key:r,totalMs:Math.round(n.totalMs),count:n.count})).sort((r,n)=>n.totalMs-r.totalMs).slice(0,8)}}const L=5,U=20;function G(t,s,e){const o=t.filter(i=>i.timestamp>=s&&i.intervalMs>0);if(o.length<L)return null;let r=0,n=0,c=0,a=0;for(const i of o)r+=i.intervalMs,n+=i.cpuMs,i.render.gpuMs!==null&&(c+=i.render.gpuMs,a++);const l=o.length,u=r/l,p=n/l,m=e!==null&&e.sampleCount>=U?Math.max(0,e.busyMs-n)/l:null;return{frames:l,fps:u>0?1e3/u:0,frameMs:u,loopMs:p,otherMainMs:m,pipelineMs:Math.max(0,u-p-(m??0)),gpuDrawMs:a>0?c/a:null}}const w=.05,v=3,H=4;function W(t,s){return t.filter(e=>e.timestamp>=s&&e.intervalMs>0)}function E(t,s){const e=new Map;for(const[r,n]of t)e.set(r,(e.get(r)??0)+n);const o=new Map;for(const[r,n]of e)o.set(r,n/s);return o}function O(t,s){const e=t.length,o=E(t.flatMap(l=>l.phases.map(u=>[u.name,u.ms])),e),r=E(t.flatMap(l=>l.systems.map(u=>[`${u.phase} ${u.name}`,u.ms])),e),n=[];let c=0;for(const[l,u]of[...o.entries()].sort((p,m)=>m[1]-p[1])){c+=u,n.push({label:l,depth:2,ms:u});const p=[...r.entries()].filter(([i])=>i.startsWith(`${l} `)).map(([i,f])=>{const S=i.slice(l.length+1);return[S.split(" / ").at(-1)??S,f]}).sort((i,f)=>f[1]-i[1]);for(const[i,f]of p.slice(0,v))n.push({label:i,depth:3,ms:f});const m=p.slice(v);m.length>0&&n.push({label:`${m.length} more system${m.length===1?"":"s"}`,depth:3,ms:m.reduce((i,[,f])=>i+f,0)})}const a=s-c;return a>w&&n.push({label:"outside the phases",depth:2,ms:a}),n}function V(t,s,e,o){if(t===null)return[];const r=T(s.filter(l=>(l.startTime??0)>=e)),n=[];let c=0;for(const l of r.scripts.slice(0,H)){const u=Math.min(l.totalMs/o,t-c);u<=w||(c+=u,n.push({label:l.key,depth:2,ms:u,note:"named by the browser (long frames)"}))}const a=t-c;return(a>w||n.length===0)&&n.push({label:"unattributed",depth:2,ms:Math.max(0,a),note:"below the browser's 50ms attribution threshold"}),n}function st(t,s,e,o){const r=G(t,s,e);if(r===null)return null;const n=W(t,s),c=[{label:"Frame interval",depth:0,ms:r.frameMs,note:`${r.frames} frames at ${r.fps.toFixed(0)} fps`},{label:"Scene loop (CPU)",depth:1,ms:r.loopMs},...O(n,r.loopMs),{label:"Other main thread",depth:1,ms:r.otherMainMs,note:r.otherMainMs===null?"not sampled yet":"React, timers, observers"},...V(r.otherMainMs,o,s,r.frames),{label:"Display pipeline",depth:1,ms:r.pipelineMs,note:"everything after the main thread — the remainder"}];return r.gpuDrawMs!==null&&(c.push({label:"viewport GPU draw",depth:2,ms:r.gpuDrawMs,note:"measured; runs in parallel with the CPU rows",parallel:!0}),c.push({label:"compositor + vsync wait",depth:2,ms:Math.max(0,r.pipelineMs-r.gpuDrawMs),note:"post-effects, glass chrome, waiting for the next frame slot"})),{rows:c,budget:r}}let M=new D,F=null,g=!1,h=null,k=0;const y=new Set;function d(){k++;for(const t of y)t()}function nt(t){return y.add(t),()=>y.delete(t)}function rt(){return k}function j(t){t!==F&&(F=t,M=new D,h=null,d())}function at(){return M}function ot(){return g}function ct(){return h}function ut(t){M.select(t),d()}function lt(){M.clear(),h=null,d()}async function it(t){if(!(!t||g)){j(t),g=!0,h=null,d();try{const s=await t.captureFrame();M.add(s)}catch(s){h=s instanceof Error?s.message:String(s)}finally{g=!1,d()}}}export{j as a,lt as b,it as c,Y as d,J as e,rt as f,at as g,ut as h,ot as i,q as j,Z as k,ct as l,Q as m,tt as n,et as o,T as p,nt as s,st as t,X as u};
1
+ import{r as b}from"./index-nmcBqr7Y.js";import{gJ as R,gK as S,gL as B,gM as I,gN as P,gO as C,gP as _,gQ as $,gR as A,x as N}from"./index-C5ZAyrKq.js";function X(){b.useSyncExternalStore(R,S,S),b.useSyncExternalStore(B,I,I),b.useSyncExternalStore(P,C,C);const t=N();return(t==="workspace:game"?_($()):null)??A(t)}function Y(t){return t?{capture:typeof t.captureFrame=="function",memory:typeof t.memorySnapshot=="function"}:null}class D{constructor(s=10){this.capacity=s}captures=[];selectedId=null;add(s){this.captures.push(s),this.captures.length>this.capacity&&this.captures.splice(0,this.captures.length-this.capacity),this.selectedId=s.id}get all(){return this.captures}select(s){this.captures.some(e=>e.id===s)&&(this.selectedId=s)}get selectedIdOrNull(){return this.selectedId}get selected(){return this.selectedId===null?null:this.captures.find(s=>s.id===this.selectedId)??null}clear(){this.captures=[],this.selectedId=null}}function J(t){const s=new Map,e=[];for(const o of t.drawCalls){const r=o.target.kind==="canvas"?"canvas":o.target.label??"framebuffer";let n=s.get(r);n||(n=[],s.set(r,n),e.push(r)),n.push(o)}return e.map(o=>({target:o,draws:s.get(o)??[]}))}function Q(t){const s=new Set;for(const e of t.drawCalls)s.add(e.target.kind==="canvas"?"canvas":e.target.label??"framebuffer");return{id:t.id,drawCalls:t.totals.drawCalls,unattributed:t.totals.unattributed,truncated:t.totals.truncated,targets:s.size}}function q(t,s){let e=Math.max(0,t.cpuMs);for(const a of t.phases)e=Math.max(e,(a.startMs??0)+a.ms);for(const a of t.systems)e=Math.max(e,a.startMs+a.ms);for(const a of t.components)e=Math.max(e,a.startMs+a.ms);const o=e>0?e:1,r=s/o,n=(a,l,u,p)=>({x:Math.max(0,a*r),w:Math.max(0,l*r),depth:u,label:p,ms:l}),c=[n(0,t.cpuMs,0,`frame ${t.id}`)];for(const a of t.phases)c.push(n(a.startMs??0,a.ms,1,a.name));for(const a of t.systems)c.push(n(a.startMs,a.ms,2,a.name));for(const a of t.components)c.push(n(a.startMs,a.ms,3,a.name));return c}function Z(t,s,e){if(t.length===0)return[];const o=Math.max(1,...t.map(n=>n.cpuMs)),r=s/t.length;return t.map((n,c)=>({index:c,frameId:n.id,x:c*r,w:r,h:Math.max(0,n.cpuMs/o*e),cpuMs:n.cpuMs}))}function tt(t){if(!Number.isFinite(t)||t<0)return"—";if(t<1024)return`${t} B`;const s=["KB","MB","GB","TB"];let e=t/1024,o=0;for(;e>=1024&&o<s.length-1;)e/=1024,o++;return`${e<10?e.toFixed(2):e.toFixed(1)} ${s[o]}`}function et(t,s){const e=Math.max(0,t),o=Math.max(0,e-Math.max(0,s));return{frameMs:e,gapMs:o,dominated:e>20&&o>e/2}}function L(t){const s=new Map;let e=0,o=0;for(const r of t){e+=r.duration;for(const n of r.scripts??[]){o+=n.duration;const c=n.sourceURL?n.sourceURL.split("/").slice(-2).join("/"):"",a=n.sourceFunctionName||n.invoker||"(anonymous)",l=c?`${a} @ ${c}`:a,u=s.get(l)??{totalMs:0,count:0};u.totalMs+=n.duration,u.count+=1,s.set(l,u)}}return{longFrameCount:t.length,totalLongMs:Math.round(e),unattributedMs:Math.round(Math.max(0,e-o)),scripts:[...s.entries()].map(([r,n])=>({key:r,totalMs:Math.round(n.totalMs),count:n.count})).sort((r,n)=>n.totalMs-r.totalMs).slice(0,8)}}const T=5,U=20;function G(t,s,e){const o=t.filter(i=>i.timestamp>=s&&i.intervalMs>0);if(o.length<T)return null;let r=0,n=0,c=0,a=0;for(const i of o)r+=i.intervalMs,n+=i.cpuMs,i.render.gpuMs!==null&&(c+=i.render.gpuMs,a++);const l=o.length,u=r/l,p=n/l,m=e!==null&&e.sampleCount>=U?Math.max(0,e.busyMs-n)/l:null;return{frames:l,fps:u>0?1e3/u:0,frameMs:u,loopMs:p,otherMainMs:m,pipelineMs:Math.max(0,u-p-(m??0)),gpuDrawMs:a>0?c/a:null}}const w=.05,v=3,O=4;function W(t,s){return t.filter(e=>e.timestamp>=s&&e.intervalMs>0)}function E(t,s){const e=new Map;for(const[r,n]of t)e.set(r,(e.get(r)??0)+n);const o=new Map;for(const[r,n]of e)o.set(r,n/s);return o}function H(t,s){const e=t.length,o=E(t.flatMap(l=>l.phases.map(u=>[u.name,u.ms])),e),r=E(t.flatMap(l=>l.systems.map(u=>[`${u.phase} ${u.name}`,u.ms])),e),n=[];let c=0;for(const[l,u]of[...o.entries()].sort((p,m)=>m[1]-p[1])){c+=u,n.push({label:l,depth:2,ms:u});const p=[...r.entries()].filter(([i])=>i.startsWith(`${l} `)).map(([i,f])=>{const x=i.slice(l.length+1);return[x.split(" / ").at(-1)??x,f]}).sort((i,f)=>f[1]-i[1]);for(const[i,f]of p.slice(0,v))n.push({label:i,depth:3,ms:f});const m=p.slice(v);m.length>0&&n.push({label:`${m.length} more system${m.length===1?"":"s"}`,depth:3,ms:m.reduce((i,[,f])=>i+f,0)})}const a=s-c;return a>w&&n.push({label:"outside the phases",depth:2,ms:a}),n}function V(t,s,e,o){if(t===null)return[];const r=L(s.filter(l=>(l.startTime??0)>=e)),n=[];let c=0;for(const l of r.scripts.slice(0,O)){const u=Math.min(l.totalMs/o,t-c);u<=w||(c+=u,n.push({label:l.key,depth:2,ms:u,note:"named by the browser (long frames)"}))}const a=t-c;return(a>w||n.length===0)&&n.push({label:"unattributed",depth:2,ms:Math.max(0,a),note:"below the browser's 50ms attribution threshold"}),n}function st(t,s,e,o){const r=G(t,s,e);if(r===null)return null;const n=W(t,s),c=[{label:"Frame interval",depth:0,ms:r.frameMs,note:`${r.frames} frames at ${r.fps.toFixed(0)} fps`},{label:"Scene loop (CPU)",depth:1,ms:r.loopMs},...H(n,r.loopMs),{label:"Other main thread",depth:1,ms:r.otherMainMs,note:r.otherMainMs===null?"not sampled yet":"React, timers, observers"},...V(r.otherMainMs,o,s,r.frames),{label:"Display pipeline",depth:1,ms:r.pipelineMs,note:"everything after the main thread — the remainder"}];return r.gpuDrawMs!==null&&(c.push({label:"viewport GPU draw",depth:2,ms:r.gpuDrawMs,note:"measured; runs in parallel with the CPU rows",parallel:!0}),c.push({label:"compositor + vsync wait",depth:2,ms:Math.max(0,r.pipelineMs-r.gpuDrawMs),note:"post-effects, glass chrome, waiting for the next frame slot"})),{rows:c,budget:r}}let M=new D,F=null,g=!1,h=null,k=0;const y=new Set;function d(){k++;for(const t of y)t()}function nt(t){return y.add(t),()=>y.delete(t)}function rt(){return k}function K(t){t!==F&&(F=t,M=new D,h=null,d())}function at(){return M}function ot(){return g}function ct(){return h}function ut(t){M.select(t),d()}function lt(){M.clear(),h=null,d()}async function it(t){if(!(!t||g)){K(t),g=!0,h=null,d();try{const s=await t.captureFrame();M.add(s)}catch(s){h=s instanceof Error?s.message:String(s)}finally{g=!1,d()}}}export{K as a,lt as b,it as c,Y as d,Q as e,rt as f,at as g,ut as h,ot as i,J as j,Z as k,ct as l,q as m,tt as n,et as o,L as p,nt as s,st as t,X as u};
@@ -0,0 +1 @@
1
+ const c=new Set;function f(){for(const t of c){const n=t.deref();if(!n||n.state==="closed"){c.delete(t);continue}n.state==="suspended"&&n.resume()}}function y(){const t=window;if(t.__volterAudioUnlock)return;t.__volterAudioUnlock=!0;const n=window.AudioContext;typeof n=="function"&&(window.AudioContext=class extends n{constructor(...i){super(...i),c.add(new WeakRef(this)),h.add(this)}},k(),window.addEventListener("pointerdown",f,{capture:!0}),window.addEventListener("keydown",f,{capture:!0}))}const u=new WeakMap,h=new WeakSet;let p=!1;const d=new WeakMap,l=new Set,w=new WeakMap;let g=0;function a(t){if(t instanceof AudioDestinationNode)return"destination";let n=w.get(t);return n||(n=`n${++g}`,w.set(t,n),l.add(new WeakRef(t))),n}function k(){const t=AudioNode.prototype.connect,n=AudioNode.prototype.disconnect,i=o=>{let e=u.get(o);return e||(e=o.createGain(),e.gain.value=p?0:1,t.call(e,o.destination),u.set(o,e)),e},s=o=>o instanceof AudioDestinationNode&&h.has(o.context)?i(o.context):o;AudioNode.prototype.connect=function(...o){const[e,...A]=o;if(e instanceof AudioNode&&u.get(this.context)!==this){a(this),a(e);let r=d.get(this);r||d.set(this,r=new Set),r.add(e)}const m=t.call(this,s(e),...A);return e instanceof AudioDestinationNode?e:m},AudioNode.prototype.disconnect=function(...o){const[e]=o;return e===void 0||typeof e=="number"?d.delete(this):e instanceof AudioNode&&d.get(this)?.delete(e),n.call(this,...o.length?[s(e),...o.slice(1)]:[])}}function N(t){p=t;for(const n of c){const i=n.deref()&&u.get(n.deref());i&&(i.gain.value=t?0:1)}}function v(){const t=[];let n=!1;for(const i of l){const s=i.deref();if(!s){l.delete(i);continue}const o=[...d.get(s)??[]];o.some(e=>e instanceof AudioDestinationNode)&&(n=!0),t.push({id:a(s),type:s.constructor.name,outputs:o.map(a),state:s.context.state})}return n&&t.push({id:"destination",type:"AudioDestinationNode",label:"Output",outputs:[]}),t}const b={resume:f,setMuted:N,isMuted:()=>p,graphSnapshot:v};export{y as i,b as o};
@@ -1 +1 @@
1
- import{i as e}from"./index-BRJMIUK0.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 p=e()({contractVersion:{optional:!1,kind:"value",required:"shape"},root:{optional:!0,kind:"value",required:"effect"},presentation:{optional:!0,kind:"value",required:"effect"},world:{optional:!0,kind:"value",required:"effect"},ready:{optional:!0,kind:"value",required:"effect"},lifecycle:{optional:!0,kind:"value",required:"effect"},scenes:{optional:!0,kind:"value",required:"effect"},systems:{optional:!0,kind:"value",required:"operation"}}),s=e()({start:{optional:!0,kind:"function",required:"effect"},pause:{optional:!0,kind:"function",required:"effect"},resume:{optional:!0,kind:"function",required:"effect"},dispose:{optional:!0,kind:"function",required:"effect"}}),f=e()({list:{optional:!1,kind:"function",required:"operation"},current:{optional:!1,kind:"function",required:"operation"},goTo:{optional:!1,kind:"function",required:"effect"}}),c=e()({id:{optional:!1,kind:"value",required:"shape"},label:{optional:!1,kind:"value",required:"shape"}}),k=e()({name:{optional:!1,kind:"value",required:"shape"},description:{optional:!0,kind:"value",required:"shape"},argsJsonSchema:{optional:!0,kind:"value",required:"shape"},run:{optional:!1,kind:"function",required:"effect"}}),q=e()({name:{optional:!1,kind:"value",required:"shape"},tier:{optional:!0,kind:"value",required:"shape"},read:{optional:!1,kind:"function",required:"operation"}}),E=e()({id:{optional:!1,kind:"value",required:"shape"},label:{optional:!1,kind:"value",required:"shape"},count:{optional:!1,kind:"value",required:"operation"}}),v=e()({commands:{optional:!0,kind:"value",required:"operation"},state:{optional:!0,kind:"value",required:"operation"},hierarchy:{optional:!0,kind:"function",required:"operation"},systemAdapters:{optional:!0,kind:"value",required:"operation"}}),A=e()({physics:{optional:!0,kind:"value",required:"effect"},networking:{optional:!0,kind:"value",required:"operation"},navigation:{optional:!0,kind:"value",required:"operation"},audio:{optional:!0,kind:"value",required:"effect"},camera:{optional:!0,kind:"value",required:"effect"},renderDebug:{optional:!0,kind:"value",required:"effect"}}),S=e()({present:{optional:!1,kind:"value",required:"shape"},evidence:{optional:!1,kind:"value",required:"claim"}});export{k as GAME_COMMAND_SHAPE,p as GAME_CONTRACT_SHAPE,E as GAME_HIERARCHY_GROUP_SHAPE,s as GAME_LIFECYCLE_SHAPE,f as GAME_SCENES_SHAPE,c as GAME_SCENE_SHAPE,q as GAME_STATE_PROVIDER_SHAPE,v as GAME_SYSTEMS_SHAPE,A as GAME_SYSTEM_ADAPTERS_SHAPE,S as GAME_SYSTEM_EMPTY_SHAPE};
1
+ import{i as e}from"./index-C5ZAyrKq.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 p=e()({contractVersion:{optional:!1,kind:"value",required:"shape"},root:{optional:!0,kind:"value",required:"effect"},presentation:{optional:!0,kind:"value",required:"effect"},world:{optional:!0,kind:"value",required:"effect"},ready:{optional:!0,kind:"value",required:"effect"},lifecycle:{optional:!0,kind:"value",required:"effect"},scenes:{optional:!0,kind:"value",required:"effect"},systems:{optional:!0,kind:"value",required:"operation"}}),s=e()({start:{optional:!0,kind:"function",required:"effect"},pause:{optional:!0,kind:"function",required:"effect"},resume:{optional:!0,kind:"function",required:"effect"},dispose:{optional:!0,kind:"function",required:"effect"}}),f=e()({list:{optional:!1,kind:"function",required:"operation"},current:{optional:!1,kind:"function",required:"operation"},goTo:{optional:!1,kind:"function",required:"effect"}}),c=e()({id:{optional:!1,kind:"value",required:"shape"},label:{optional:!1,kind:"value",required:"shape"}}),k=e()({name:{optional:!1,kind:"value",required:"shape"},description:{optional:!0,kind:"value",required:"shape"},argsJsonSchema:{optional:!0,kind:"value",required:"shape"},run:{optional:!1,kind:"function",required:"effect"}}),q=e()({name:{optional:!1,kind:"value",required:"shape"},tier:{optional:!0,kind:"value",required:"shape"},read:{optional:!1,kind:"function",required:"operation"}}),E=e()({id:{optional:!1,kind:"value",required:"shape"},label:{optional:!1,kind:"value",required:"shape"},count:{optional:!1,kind:"value",required:"operation"}}),v=e()({commands:{optional:!0,kind:"value",required:"operation"},state:{optional:!0,kind:"value",required:"operation"},hierarchy:{optional:!0,kind:"function",required:"operation"},systemAdapters:{optional:!0,kind:"value",required:"operation"}}),A=e()({physics:{optional:!0,kind:"value",required:"effect"},networking:{optional:!0,kind:"value",required:"operation"},navigation:{optional:!0,kind:"value",required:"operation"},audio:{optional:!0,kind:"value",required:"effect"},camera:{optional:!0,kind:"value",required:"effect"},renderDebug:{optional:!0,kind:"value",required:"effect"}}),S=e()({present:{optional:!1,kind:"value",required:"shape"},evidence:{optional:!1,kind:"value",required:"claim"}});export{k as GAME_COMMAND_SHAPE,p as GAME_CONTRACT_SHAPE,E as GAME_HIERARCHY_GROUP_SHAPE,s as GAME_LIFECYCLE_SHAPE,f as GAME_SCENES_SHAPE,c as GAME_SCENE_SHAPE,q as GAME_STATE_PROVIDER_SHAPE,v as GAME_SYSTEMS_SHAPE,A as GAME_SYSTEM_ADAPTERS_SHAPE,S as GAME_SYSTEM_EMPTY_SHAPE};
@@ -1,4 +1,4 @@
1
- import{g as Rt}from"./_commonjsHelpers-D6-XlEtG.js";import{kk as N}from"./index-BRJMIUK0.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";var j={exports:{}},qe;function Ot(){if(qe)return j.exports;qe=1;var d=String,x=function(){return{isColorSupported:!1,reset:d,bold:d,dim:d,italic:d,underline:d,inverse:d,hidden:d,strikethrough:d,black:d,red:d,green:d,yellow:d,blue:d,magenta:d,cyan:d,white:d,gray:d,bgBlack:d,bgRed:d,bgGreen:d,bgYellow:d,bgBlue:d,bgMagenta:d,bgCyan:d,bgWhite:d,blackBright:d,redBright:d,greenBright:d,yellowBright:d,blueBright:d,magentaBright:d,cyanBright:d,whiteBright:d,bgBlackBright:d,bgRedBright:d,bgGreenBright:d,bgYellowBright:d,bgBlueBright:d,bgMagentaBright:d,bgCyanBright:d,bgWhiteBright:d}};return j.exports=x(),j.exports.createColors=x,j.exports}var te,ze;function Ee(){if(ze)return te;ze=1;let d=Ot(),x=N;class v extends Error{constructor(y,b,g,w,S,o){super(y),this.name="CssSyntaxError",this.reason=y,S&&(this.file=S),w&&(this.source=w),o&&(this.plugin=o),typeof b<"u"&&typeof g<"u"&&(typeof b=="number"?(this.line=b,this.column=g):(this.line=b.line,this.column=b.column,this.endLine=g.line,this.endColumn=g.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,v)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(y){if(!this.source)return"";let b=this.source;y==null&&(y=d.isColorSupported);let g=e=>e,w=e=>e,S=e=>e;if(y){let{bold:e,gray:t,red:i}=d.createColors(!0);w=n=>e(i(n)),g=n=>t(n),x&&(S=n=>x(n))}let o=b.split(/\r?\n/),f=Math.max(this.line-3,0),s=Math.min(this.line+2,o.length),r=String(s).length;return o.slice(f,s).map((e,t)=>{let i=f+1+t,n=" "+(" "+i).slice(-r)+" | ";if(i===this.line){if(e.length>160){let c=20,u=Math.max(0,this.column-c),l=Math.max(this.column+c,this.endColumn+c),a=e.slice(u,l),h=g(n.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,c-1)).replace(/[^\t]/g," ");return w(">")+g(n)+S(a)+`
1
+ import{g as Rt}from"./_commonjsHelpers-D6-XlEtG.js";import{jK as N}from"./index-C5ZAyrKq.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";var j={exports:{}},qe;function Ot(){if(qe)return j.exports;qe=1;var d=String,x=function(){return{isColorSupported:!1,reset:d,bold:d,dim:d,italic:d,underline:d,inverse:d,hidden:d,strikethrough:d,black:d,red:d,green:d,yellow:d,blue:d,magenta:d,cyan:d,white:d,gray:d,bgBlack:d,bgRed:d,bgGreen:d,bgYellow:d,bgBlue:d,bgMagenta:d,bgCyan:d,bgWhite:d,blackBright:d,redBright:d,greenBright:d,yellowBright:d,blueBright:d,magentaBright:d,cyanBright:d,whiteBright:d,bgBlackBright:d,bgRedBright:d,bgGreenBright:d,bgYellowBright:d,bgBlueBright:d,bgMagentaBright:d,bgCyanBright:d,bgWhiteBright:d}};return j.exports=x(),j.exports.createColors=x,j.exports}var te,ze;function Ee(){if(ze)return te;ze=1;let d=Ot(),x=N;class v extends Error{constructor(y,b,g,w,S,o){super(y),this.name="CssSyntaxError",this.reason=y,S&&(this.file=S),w&&(this.source=w),o&&(this.plugin=o),typeof b<"u"&&typeof g<"u"&&(typeof b=="number"?(this.line=b,this.column=g):(this.line=b.line,this.column=b.column,this.endLine=g.line,this.endColumn=g.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,v)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(y){if(!this.source)return"";let b=this.source;y==null&&(y=d.isColorSupported);let g=e=>e,w=e=>e,S=e=>e;if(y){let{bold:e,gray:t,red:i}=d.createColors(!0);w=n=>e(i(n)),g=n=>t(n),x&&(S=n=>x(n))}let o=b.split(/\r?\n/),f=Math.max(this.line-3,0),s=Math.min(this.line+2,o.length),r=String(s).length;return o.slice(f,s).map((e,t)=>{let i=f+1+t,n=" "+(" "+i).slice(-r)+" | ";if(i===this.line){if(e.length>160){let c=20,u=Math.max(0,this.column-c),l=Math.max(this.column+c,this.endColumn+c),a=e.slice(u,l),h=g(n.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,c-1)).replace(/[^\t]/g," ");return w(">")+g(n)+S(a)+`
2
2
  `+h+w("^")}let p=g(n.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return w(">")+g(n)+S(e)+`
3
3
  `+p+w("^")}return" "+g(n)+S(e)}).join(`
4
4
  `)}toString(){let y=this.showSourceCode();return y&&(y=`
@@ -26,7 +26,7 @@ import{g as Rt}from"./_commonjsHelpers-D6-XlEtG.js";import{kk as N}from"./index-
26
26
  `;)e--;this.css=this.css.slice(0,e)+this.css.slice(t+2)}}}}generate(){if(this.clearAnnotation(),o&&S&&this.isMap())return this.generateMap();{let r="";return this.stringify(this.root,e=>{r+=e}),[r]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let r=this.previous()[0].consumer();r.file=this.outputFile(),this.map=b.fromSourceMap(r,{ignoreInvalidMapping:!0})}else this.map=new b({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new b({file:this.outputFile(),ignoreInvalidMapping:!0});let r=1,e=1,t="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},n,p;this.stringify(this.root,(c,u,l)=>{if(this.css+=c,u&&l!=="end"&&(i.generated.line=r,i.generated.column=e-1,u.source&&u.source.start?(i.source=this.sourcePath(u),i.original.line=u.source.start.line,i.original.column=u.source.start.column-1,this.map.addMapping(i)):(i.source=t,i.original.line=1,i.original.column=0,this.map.addMapping(i))),p=c.match(/\n/g),p?(r+=p.length,n=c.lastIndexOf(`
27
27
  `),e=c.length-n):e+=c.length,u&&l!=="start"){let a=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==a.last||a.raws.semicolon)&&(u.source&&u.source.end?(i.source=this.sourcePath(u),i.original.line=u.source.end.line,i.original.column=u.source.end.column-1,i.generated.line=r,i.generated.column=e-2,this.map.addMapping(i)):(i.source=t,i.original.line=1,i.original.column=0,i.generated.line=r,i.generated.column=e-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(r=>r.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let r=this.mapOpts.annotation;return typeof r<"u"&&r!==!0?!1:this.previous().length?this.previous().some(e=>e.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(r=>r.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(r){if(this.mapOpts.absolute||r.charCodeAt(0)===60||/^\w+:\/\//.test(r))return r;let e=this.memoizedPaths.get(r);if(e)return e;let t=this.opts.to?d(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(t=d(v(t,this.mapOpts.annotation)));let i=x(t,r);return this.memoizedPaths.set(r,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(r=>{if(r.source&&r.source.input.map){let e=r.source.input.map;this.previousMaps.includes(e)||this.previousMaps.push(e)}});else{let r=new w(this.originalCSS,this.opts);r.map&&this.previousMaps.push(r.map)}return this.previousMaps}setSourcesContent(){let r={};if(this.root)this.root.walk(e=>{if(e.source){let t=e.source.input.from;if(t&&!r[t]){r[t]=!0;let i=this.usesFileUrls?this.toFileUrl(t):this.toUrl(this.path(t));this.map.setSourceContent(i,e.source.input.css)}}});else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(e,this.css)}}sourcePath(r){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(r.source.input.from):this.toUrl(this.path(r.source.input.from))}toBase64(r){return Buffer?Buffer.from(r).toString("base64"):window.btoa(unescape(encodeURIComponent(r)))}toFileUrl(r){let e=this.memoizedFileURLs.get(r);if(e)return e;if(g){let t=g(r).toString();return this.memoizedFileURLs.set(r,t),t}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(r){let e=this.memoizedURLs.get(r);if(e)return e;m==="\\"&&(r=r.replace(/\\/g,"/"));let t=encodeURI(r).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(r,t),t}}return ye=f,ye}var we,rt;function Pt(){if(rt)return we;rt=1;const d=39,x=34,v=92,m=47,y=10,b=32,g=12,w=9,S=13,o=91,f=93,s=40,r=41,e=123,t=125,i=59,n=42,p=58,c=64,u=/[\t\n\f\r "#'()/;[\\\]{}]/g,l=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,a=/.[\r\n"'(/\\]/,h=/[\da-f]/i;return we=function(R,E={}){let A=R.css.valueOf(),M=E.ignoreErrors,I,Y,T,O,Ne,L,U,q,B,Ue,K=A.length,P=0,X=[],F=[],Be=-1;function bt(){return P}function Z(z){throw R.error("Unclosed "+z,P)}function vt(){return F.length===0&&P>=K}function St(z){if(F.length)return F.pop();if(P>=K)return;let ee=z?z.ignoreUnclosed:!1;switch(I=A.charCodeAt(P),I){case y:case b:case w:case S:case g:{O=P;do O+=1,I=A.charCodeAt(O);while(I===b||I===y||I===w||I===S||I===g);L=["space",A.slice(P,O)],P=O-1;break}case o:case f:case e:case t:case p:case i:case r:{let _e=String.fromCharCode(I);L=[_e,_e,P];break}case s:{if(Ue=X.length?X.pop()[1]:"",B=A.charCodeAt(P+1),Ue==="url"&&B!==d&&B!==x&&B!==b&&B!==y&&B!==w&&B!==g&&B!==S){O=P;do{if(U=!1,O=A.indexOf(")",O+1),O===-1)if(M||ee){O=P;break}else Z("bracket");for(q=O;A.charCodeAt(q-1)===v;)q-=1,U=!U}while(U);L=["brackets",A.slice(P,O+1),P,O],P=O}else P<=Be?L=["(","(",P]:(O=A.indexOf(")",P+1),Y=A.slice(P,O+1),O===-1||a.test(Y)?(Be=O===-1?K:O,L=["(","(",P]):(L=["brackets",Y,P,O],P=O));break}case d:case x:{Ne=I===d?"'":'"',O=P;do{if(U=!1,O=A.indexOf(Ne,O+1),O===-1)if(M||ee){O=P+1;break}else Z("string");for(q=O;A.charCodeAt(q-1)===v;)q-=1,U=!U}while(U);L=["string",A.slice(P,O+1),P,O],P=O;break}case c:{u.lastIndex=P+1,u.test(A),u.lastIndex===0?O=A.length-1:O=u.lastIndex-2,L=["at-word",A.slice(P,O+1),P,O],P=O;break}case v:{for(O=P,T=!0;A.charCodeAt(O+1)===v;)O+=1,T=!T;if(I=A.charCodeAt(O+1),T&&I!==m&&I!==b&&I!==y&&I!==w&&I!==S&&I!==g&&(O+=1,h.test(A.charAt(O)))){for(;h.test(A.charAt(O+1));)O+=1;A.charCodeAt(O+1)===b&&(O+=1)}L=["word",A.slice(P,O+1),P,O],P=O;break}default:{I===m&&A.charCodeAt(P+1)===n?(O=A.indexOf("*/",P+2)+1,O===0&&(M||ee?O=A.length:Z("comment")),L=["comment",A.slice(P,O+1),P,O],P=O):(l.lastIndex=P+1,l.test(A),l.lastIndex===0?O=A.length-1:O=l.lastIndex-2,L=["word",A.slice(P,O+1),P,O],X.push(L),P=O);break}}return P++,L}function Ct(z){F.push(z)}return{back:Ct,endOfFile:vt,nextToken:St,position:bt}},we}var xe,it;function kt(){if(it)return xe;it=1;let d=Pe(),x=H(),v=V(),m=D(),y=Ie(),b=Pt();const g={empty:!0,space:!0};function w(f){for(let s=f.length-1;s>=0;s--){let r=f[s],e=r[3]||r[2];if(e)return e}}function S(f,s,r){let e="";for(let t=s;t<r;t++)e+=f[t][1];return e}class o{constructor(s){this.input=s,this.root=new m,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:s,start:{column:1,line:1,offset:0}}}atrule(s){let r=new d;r.name=s[1].slice(1),r.name===""&&this.unnamedAtrule(r,s),this.init(r,s[2]);let e,t,i,n=!1,p=!1,c=[],u=[];for(;!this.tokenizer.endOfFile();){if(s=this.tokenizer.nextToken(),e=s[0],e==="("||e==="["?u.push(e==="("?")":"]"):e==="{"&&u.length>0?u.push("}"):e===u[u.length-1]&&u.pop(),u.length===0)if(e===";"){r.source.end=this.getPosition(s[2]),r.source.end.offset++,this.semicolon=!0;break}else if(e==="{"){p=!0;break}else if(e==="}"){if(c.length>0){for(i=c.length-1,t=c[i];t&&t[0]==="space";)t=c[--i];t&&(r.source.end=this.getPosition(t[3]||t[2]),r.source.end.offset++)}this.end(s);break}else c.push(s);else c.push(s);if(this.tokenizer.endOfFile()){n=!0;break}}r.raws.between=this.spacesAndCommentsFromEnd(c),c.length?(r.raws.afterName=this.spacesAndCommentsFromStart(c),this.raw(r,"params",c),n&&(s=c[c.length-1],r.source.end=this.getPosition(s[3]||s[2]),r.source.end.offset++,this.spaces=r.raws.between,r.raws.between="")):(r.raws.afterName="",r.params=""),p&&(r.nodes=[],this.current=r)}checkMissedSemicolon(s){let r=this.colon(s);if(r===!1)return;let e=0,t;for(let i=r-1;i>=0&&(t=s[i],!(t[0]!=="space"&&(e+=1,e===2)));i--);throw this.input.error("Missed semicolon",t[0]==="word"?t[3]+1:t[2])}colon(s){let r=0,e,t,i;for(let[n,p]of s.entries()){if(t=p,i=t[0],i==="("&&(r+=1),i===")"&&(r-=1),r===0&&i===":")if(!e)this.doubleColon(t);else{if(e[0]==="word"&&e[1]==="progid")continue;return n}e=t}return!1}comment(s){let r=new x;this.init(r,s[2]),r.source.end=this.getPosition(s[3]||s[2]),r.source.end.offset++;let e=s[1].slice(2,-2);if(!e.trim())r.text="",r.raws.left=e,r.raws.right="";else{let t=e.match(/^(\s*)([^]*\S)(\s*)$/);r.text=t[2],r.raws.left=t[1],r.raws.right=t[3]}}createTokenizer(){this.tokenizer=b(this.input)}decl(s,r){let e=new v;this.init(e,s[0][2]);let t=s[s.length-1];t[0]===";"&&(this.semicolon=!0,s.pop()),e.source.end=this.getPosition(t[3]||t[2]||w(s)),e.source.end.offset++;let i=0;for(;s[i][0]!=="word";)i===s.length-1&&this.unknownWord([s[i]]),i++;e.raws.before+=S(s,0,i),e.source.start=this.getPosition(s[i][2]);let n=i;for(;i<s.length;){let h=s[i][0];if(h===":"||h==="space"||h==="comment")break;i++}e.prop=S(s,n,i);let p=i,c;for(;i<s.length&&(c=s[i],i++,c[0]!==":");)c[0]==="word"&&/\w/.test(c[1])&&this.unknownWord([c]);e.raws.between=S(s,p,i),(e.prop[0]==="_"||e.prop[0]==="*")&&(e.raws.before+=e.prop[0],e.prop=e.prop.slice(1));let u=i;for(;i<s.length;){let h=s[i][0];if(h!=="space"&&h!=="comment")break;i++}let l=s.slice(u,i);s=s.slice(i),this.precheckMissedSemicolon(s);for(let h=s.length-1;h>=0;h--){if(c=s[h],c[1].toLowerCase()==="!important"){e.important=!0;let C=this.stringFrom(s,h);C=this.spacesFromEnd(s)+C,C!==" !important"&&(e.raws.important=C);break}else if(c[1].toLowerCase()==="important"){let C=s.slice(0),R="";for(let E=h;E>0;E--){let A=C[E][0];if(R.trim().startsWith("!")&&A!=="space")break;R=C.pop()[1]+R}R.trim().startsWith("!")&&(e.important=!0,e.raws.important=R,s=C)}if(c[0]!=="space"&&c[0]!=="comment")break}s.some(h=>h[0]!=="space"&&h[0]!=="comment")&&(e.raws.between+=l.map(h=>h[1]).join(""),l=[]),this.raw(e,"value",l.concat(s),r),e.value.includes(":")&&!r&&this.checkMissedSemicolon(s)}doubleColon(s){throw this.input.error("Double colon",{offset:s[2]},{offset:s[2]+s[1].length})}emptyRule(s){let r=new y;this.init(r,s[2]),r.selector="",r.raws.between="",this.current=r}end(s){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(s[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(s)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(s){if(this.spaces+=s[1],this.current.nodes){let r=this.current.nodes[this.current.nodes.length-1];r&&r.type==="rule"&&!r.raws.ownSemicolon&&(r.raws.ownSemicolon=this.spaces,this.spaces="",r.source.end=this.getPosition(s[2]),r.source.end.offset++)}}getPosition(s){let r=this.input.fromOffset(s);return{column:r.col,line:r.line,offset:s}}init(s,r){this.current.push(s),s.source={input:this.input,start:this.getPosition(r)},s.raws.before=this.spaces,this.spaces="",s.type!=="comment"&&(this.semicolon=!1)}other(s){let r=!1,e=null,t=!1,i=null,n=[],p=s[1].startsWith("--"),c=[],u=s;for(;u;){if(e=u[0],c.push(u),e==="("||e==="[")i||(i=u),n.push(e==="("?")":"]");else if(p&&t&&e==="{")i||(i=u),n.push("}");else if(n.length===0)if(e===";")if(t){this.decl(c,p);return}else break;else if(e==="{"){this.rule(c);return}else if(e==="}"){this.tokenizer.back(c.pop()),r=!0;break}else e===":"&&(t=!0);else e===n[n.length-1]&&(n.pop(),n.length===0&&(i=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(r=!0),n.length>0&&this.unclosedBracket(i),r&&t){if(!p)for(;c.length&&(u=c[c.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(c.pop());this.decl(c,p)}else this.unknownWord(c)}parse(){let s;for(;!this.tokenizer.endOfFile();)switch(s=this.tokenizer.nextToken(),s[0]){case"space":this.spaces+=s[1];break;case";":this.freeSemicolon(s);break;case"}":this.end(s);break;case"comment":this.comment(s);break;case"at-word":this.atrule(s);break;case"{":this.emptyRule(s);break;default:this.other(s);break}this.endFile()}precheckMissedSemicolon(){}raw(s,r,e,t){let i,n,p=e.length,c="",u=!0,l,a;for(let h=0;h<p;h+=1)i=e[h],n=i[0],n==="space"&&h===p-1&&!t?u=!1:n==="comment"?(a=e[h-1]?e[h-1][0]:"empty",l=e[h+1]?e[h+1][0]:"empty",!g[a]&&!g[l]?c.slice(-1)===","?u=!1:c+=i[1]:u=!1):c+=i[1];if(!u){let h=e.reduce((C,R)=>C+R[1],"");s.raws[r]={raw:h,value:c}}s[r]=c}rule(s){s.pop();let r=new y;this.init(r,s[0][2]),r.raws.between=this.spacesAndCommentsFromEnd(s),this.raw(r,"selector",s),this.current=r}spacesAndCommentsFromEnd(s){let r,e="";for(;s.length&&(r=s[s.length-1][0],!(r!=="space"&&r!=="comment"));)e=s.pop()[1]+e;return e}spacesAndCommentsFromStart(s){let r,e="";for(;s.length&&(r=s[0][0],!(r!=="space"&&r!=="comment"));)e+=s.shift()[1];return e}spacesFromEnd(s){let r,e="";for(;s.length&&(r=s[s.length-1][0],r==="space");)e=s.pop()[1]+e;return e}stringFrom(s,r){let e="";for(let t=r;t<s.length;t++)e+=s[t][1];return s.splice(r,s.length-r),e}unclosedBlock(){let s=this.current.source.start;throw this.input.error("Unclosed block",s.line,s.column)}unclosedBracket(s){throw this.input.error("Unclosed bracket",{offset:s[2]},{offset:s[2]+1})}unexpectedClose(s){throw this.input.error("Unexpected }",{offset:s[2]},{offset:s[2]+1})}unknownWord(s){throw this.input.error("Unknown word "+s[0][1],{offset:s[0][2]},{offset:s[0][2]+s[0][1].length})}unnamedAtrule(s,r){throw this.input.error("At-rule without name",{offset:r[2]},{offset:r[2]+r[1].length})}}return xe=o,xe}var be,st;function Me(){if(st)return be;st=1;let d=_(),x=Q(),v=kt();function m(y,b){let g=new x(y,b),w=new v(g);try{w.parse()}catch(S){throw S}return w.root}return be=m,m.default=m,d.registerParse(m),be}var ve,nt;function wt(){if(nt)return ve;nt=1;let d=_(),{my:x}=J();class v{constructor(y,b={}){if(this.type="warning",this.text=y,b.node&&b.node.source){b.node[x]||d.rebuild(b.node);let g=b.node.rangeBy(b);this.line=g.start.line,this.column=g.start.column,this.endLine=g.end.line,this.endColumn=g.end.column}for(let g in b)this[g]=b[g]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}return ve=v,v.default=v,ve}var Se,ot;function Le(){if(ot)return Se;ot=1;let d=wt();class x{get content(){return this.css}constructor(m,y,b){this.processor=m,this.messages=[],this.root=y,this.opts=b,this.css="",this.map=void 0}toString(){return this.css}warn(m,y={}){y.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(y.plugin=this.lastPlugin.postcssPlugin);let b=new d(m,y);return this.messages.push(b),b}warnings(){return this.messages.filter(m=>m.type==="warning")}}return Se=x,x.default=x,Se}var Ce,lt;function xt(){if(lt)return Ce;lt=1;let d=_(),x=ke(),v=yt(),m=Me(),y=Le(),b=D(),g=$(),{isClean:w,my:S}=J();const o={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},f={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},s={Once:!0,postcssPlugin:!0,prepare:!0},r=0;function e(u){return typeof u=="object"&&typeof u.then=="function"}function t(u){let l=!1,a=o[u.type];return u.type==="decl"?l=u.prop.toLowerCase():u.type==="atrule"&&(l=u.name.toLowerCase()),l&&u.append?[a,a+"-"+l,r,a+"Exit",a+"Exit-"+l]:l?[a,a+"-"+l,a+"Exit",a+"Exit-"+l]:u.append?[a,r,a+"Exit"]:[a,a+"Exit"]}function i(u){let l;return u.type==="document"?l=["Document",r,"DocumentExit"]:u.type==="root"?l=["Root",r,"RootExit"]:l=t(u),{eventIndex:0,events:l,iterator:0,node:u,visitorIndex:0,visitors:[]}}function n(u){let l=[u];for(;l.length>0;){let a=l.pop();if(a[w]=!1,a.nodes)for(let h of a.nodes)l.push(h)}return u}let p={};class c{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(l,a,h){this.stringified=!1,this.processed=!1;let C;if(typeof a=="object"&&a!==null&&(a.type==="root"||a.type==="document"))C=n(a);else if(a instanceof c||a instanceof y)C=n(a.root),a.map&&(typeof h.map>"u"&&(h.map={}),h.map.inline||(h.map.inline=!1),h.map.prev=a.map);else{let R=m;h.syntax&&(R=h.syntax.parse),h.parser&&(R=h.parser),R.parse&&(R=R.parse);try{C=R(a,h)}catch(E){this.processed=!0,this.error=E}C&&!C[S]&&d.rebuild(C)}this.result=new y(l,C,h),this.helpers={...p,postcss:p,result:this.result},this.plugins=this.processor.plugins.map(R=>typeof R=="object"&&R.prepare?{...R,...R.prepare(this.result)}:R)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(l){return this.async().catch(l)}finally(l){return this.async().then(l,l)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(l,a){let h=this.result.lastPlugin;try{a&&a.addToError(l),this.error=l,l.name==="CssSyntaxError"&&!l.plugin?(l.plugin=h.postcssPlugin,l.setMessage()):h.postcssVersion}catch(C){console&&console.error&&console.error(C)}return l}prepareVisitors(){this.listeners={};let l=(a,h,C)=>{this.listeners[h]||(this.listeners[h]=[]),this.listeners[h].push([a,C])};for(let a of this.plugins)if(typeof a=="object")for(let h in a){if(!f[h]&&/^[A-Z]/.test(h))throw new Error(`Unknown event ${h} in ${a.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!s[h])if(typeof a[h]=="object")for(let C in a[h])C==="*"?l(a,h,a[h][C]):l(a,h+"-"+C.toLowerCase(),a[h][C]);else typeof a[h]=="function"&&l(a,h,a[h])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let l=0;l<this.plugins.length;l++){let a=this.plugins[l],h=this.runOnRoot(a);if(e(h))try{await h}catch(C){throw this.handleError(C)}}if(this.prepareVisitors(),this.hasListener){let l=this.result.root;for(;!l[w];){l[w]=!0;let a=[i(l)];for(;a.length>0;){let h=this.visitTick(a);if(e(h))try{await h}catch(C){let R=a[a.length-1].node;throw this.handleError(C,R)}}}if(this.listeners.OnceExit)for(let[a,h]of this.listeners.OnceExit){this.result.lastPlugin=a;try{if(l.type==="document"){let C=l.nodes.map(R=>h(R,this.helpers));await Promise.all(C)}else await h(l,this.helpers)}catch(C){throw this.handleError(C)}}}return this.processed=!0,this.stringify()}runOnRoot(l){this.result.lastPlugin=l;try{if(typeof l=="object"&&l.Once){if(this.result.root.type==="document"){let a=this.result.root.nodes.map(h=>l.Once(h,this.helpers));return e(a[0])?Promise.all(a):a}return l.Once(this.result.root,this.helpers)}else if(typeof l=="function")return l(this.result.root,this.result)}catch(a){throw this.handleError(a)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let l=this.result.opts,a=g;l.syntax&&(a=l.syntax.stringify),l.stringifier&&(a=l.stringifier),a.stringify&&(a=a.stringify);let h=this.result.root.source;if(l.map===void 0&&!(h&&h.input&&h.input.map)){let E="";return a(this.result.root,A=>{E+=A}),this.result.css=E,this.result}let R=new v(a,this.result.root,this.result.opts).generate();return this.result.css=R[0],this.result.map=R[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let l of this.plugins){let a=this.runOnRoot(l);if(e(a))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let l=this.result.root;for(;!l[w];)l[w]=!0,this.walkSync(l);if(this.listeners.OnceExit)if(l.type==="document")for(let a of l.nodes)this.visitSync(this.listeners.OnceExit,a);else this.visitSync(this.listeners.OnceExit,l)}return this.result}then(l,a){return this.async().then(l,a)}toString(){return this.css}visitSync(l,a){for(let[h,C]of l){this.result.lastPlugin=h;let R;try{R=C(a,this.helpers)}catch(E){throw this.handleError(E,a.proxyOf)}if(a.type!=="root"&&a.type!=="document"&&!a.parent)return!0;if(e(R))throw this.getAsyncError()}}visitTick(l){let a=l[l.length-1],{node:h,visitors:C}=a;if(h.type!=="root"&&h.type!=="document"&&!h.parent){l.pop();return}if(C.length>0&&a.visitorIndex<C.length){let[E,A]=C[a.visitorIndex];a.visitorIndex+=1,a.visitorIndex===C.length&&(a.visitors=[],a.visitorIndex=0),this.result.lastPlugin=E;try{return A(h.toProxy(),this.helpers)}catch(M){throw this.handleError(M,h)}}if(a.iterator!==0){let E=a.iterator;a.descending&&(a.descending=!1,h.indexes[E]+=1);let A;for(;A=h.nodes[h.indexes[E]];){if(!A[w]){A[w]=!0,a.descending=!0,l.push(i(A));return}h.indexes[E]+=1}a.iterator=0,delete h.indexes[E]}let R=a.events;for(;a.eventIndex<R.length;){let E=R[a.eventIndex];if(a.eventIndex+=1,E===r){h.nodes&&h.nodes.length&&(h[w]=!0,a.iterator=h.getIterator());return}else if(this.listeners[E]){a.visitors=this.listeners[E];return}}l.pop()}walkSync(l){l[w]=!0;let a=[{eventIndex:0,events:t(l),iterator:0,node:l}];for(;a.length>0;){let h=a[a.length-1],C=h.node;if(h.iterator!==0){let R=h.iterator;h.descending&&(h.descending=!1,C.indexes[R]+=1);let E,A=!1;for(;E=C.nodes[C.indexes[R]];){if(!E[w]){E[w]=!0,h.descending=!0,a.push({eventIndex:0,events:t(E),iterator:0,node:E}),A=!0;break}C.indexes[R]+=1}if(A)continue;h.iterator=0,delete C.indexes[R]}if(h.eventIndex<h.events.length){let R=h.events[h.eventIndex];if(h.eventIndex+=1,R===r)C.nodes&&C.nodes.length&&(h.iterator=C.getIterator());else{let E=this.listeners[R];E&&this.visitSync(E,C.toProxy())&&a.pop()}continue}a.pop()}}warnings(){return this.sync().warnings()}}return c.registerPostcss=u=>{p=u},Ce=c,c.default=c,b.registerLazyResult(c),x.registerLazyResult(c),Ce}var Re,at;function It(){if(at)return Re;at=1;let d=yt(),x=Me(),v=Le(),m=$();class y{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let g,w=x;try{g=w(this._css,this._opts)}catch(S){this.error=S}if(this.error)throw this.error;return this._root=g,g}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(g,w,S){w=w.toString(),this.stringified=!1,this._processor=g,this._css=w,this._opts=S,this._map=void 0;let o=m;this.result=new v(this._processor,void 0,this._opts),this.result.css=w;let f=this;Object.defineProperty(this.result,"root",{get(){return f.root}});let s=new d(o,void 0,this._opts,w);if(s.isMap()){let[r,e]=s.generate();r&&(this.result.css=r),e&&(this.result.map=e)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(g){return this.async().catch(g)}finally(g){return this.async().then(g,g)}sync(){if(this.error)throw this.error;return this.result}then(g,w){return this.async().then(g,w)}toString(){return this._css}warnings(){return[]}}return Re=y,y.default=y,Re}var Oe,ut;function Mt(){if(ut)return Oe;ut=1;let d=ke(),x=xt(),v=It(),m=D();class y{constructor(g=[]){this.version="8.5.28",this.plugins=this.normalize(g)}normalize(g){let w=[];for(let S of g)if(S.postcss===!0?S=S():S.postcss&&(S=S.postcss),typeof S=="object"&&Array.isArray(S.plugins))w=w.concat(S.plugins);else if(typeof S=="object"&&S.postcssPlugin)w.push(S);else if(typeof S=="function")w.push(S);else if(!(typeof S=="object"&&(S.parse||S.stringify)))throw new Error(S+" is not a PostCSS plugin");return w}process(g,w={}){return!this.plugins.length&&!w.parser&&!w.stringifier&&!w.syntax?new v(this,g,w):new x(this,g,w)}use(g){return this.plugins=this.plugins.concat(this.normalize([g])),this}}return Oe=y,y.default=y,m.registerProcessor(y),d.registerProcessor(y),Oe}var Ae,ft;function Lt(){if(ft)return Ae;ft=1;var d={};let x=Pe(),v=H(),m=_(),y=Ee(),b=V(),g=ke(),w=Et(),S=Q(),o=xt(),f=gt(),s=G(),r=Me(),e=Mt(),t=Le(),i=D(),n=Ie(),p=$(),c=wt();function u(...l){return l.length===1&&Array.isArray(l[0])&&(l=l[0]),new e(l)}return u.plugin=function(a,h){let C=!1;function R(...A){console&&console.warn&&!C&&(C=!0,console.warn(a+`: postcss.plugin was deprecated. Migration guide:
28
28
  https://evilmartians.com/chronicles/postcss-8-plugin-migration`),d.LANG&&d.LANG.startsWith("zh")&&console.warn(a+`: 里面 postcss.plugin 被弃用. 迁移指南:
29
- https://www.w3ctech.com/topic/2226`));let M=h(...A);return M.postcssPlugin=a,M.postcssVersion=new e().version,M}let E;return Object.defineProperty(R,"postcss",{get(){return E||(E=R()),E}}),R.process=function(A,M,I){return u([R(I)]).process(A,M)},R},u.stringify=p,u.parse=r,u.fromJSON=w,u.list=f,u.comment=l=>new v(l),u.atRule=l=>new x(l),u.decl=l=>new b(l),u.rule=l=>new n(l),u.root=l=>new i(l),u.document=l=>new g(l),u.CssSyntaxError=y,u.Declaration=b,u.Container=m,u.Processor=e,u.Document=g,u.Comment=v,u.Warning=c,u.AtRule=x,u.Result=t,u.Input=S,u.Rule=n,u.Root=i,u.Node=s,o.registerPostcss(u),Ae=u,u.default=u,Ae}var Nt=Lt();const k=Rt(Nt);k.stringify;k.fromJSON;k.plugin;k.parse;k.list;k.document;k.comment;k.atRule;k.rule;k.decl;k.root;k.CssSyntaxError;k.Declaration;k.Container;k.Processor;k.Document;k.Comment;k.Warning;k.AtRule;k.Result;k.Input;k.Rule;k.Root;k.Node;const Ut=new Set(["media","supports","container","layer","scope"]),ht=new Set(["charset","import","namespace"]),ct=/^(html|body|:root)(?![\w-])/i,pt=/[\s>+~]/,Bt="http://vgai.invalid";function Kt({css:d,scopeSelector:x,styleSheetPath:v}){const m=k.parse(d,{from:void 0});v!==void 0&&m.walkDecls(o=>{const f=Tt(o.value,v);f!==o.value&&(o.value=f)});const y=[];m.each(o=>{o.type==="atrule"&&(Ut.has(o.name.replace(/^-\w+-/,"").toLowerCase())||y.push(o))});for(const o of y)o.remove();m.walkRules(o=>{const f=Dt(o.selectors.map(_t));f.length>0&&(o.selectors=f)}),m.walkAtRules("media",o=>{const f=Ft(o.params);f!==null&&(o.name="container",o.params=f)});const b=k.atRule({name:"scope",params:`(${x})`,nodes:[],raws:{before:`
29
+ https://www.w3ctech.com/topic/2226`));let M=h(...A);return M.postcssPlugin=a,M.postcssVersion=new e().version,M}let E;return Object.defineProperty(R,"postcss",{get(){return E||(E=R()),E}}),R.process=function(A,M,I){return u([R(I)]).process(A,M)},R},u.stringify=p,u.parse=r,u.fromJSON=w,u.list=f,u.comment=l=>new v(l),u.atRule=l=>new x(l),u.decl=l=>new b(l),u.rule=l=>new n(l),u.root=l=>new i(l),u.document=l=>new g(l),u.CssSyntaxError=y,u.Declaration=b,u.Container=m,u.Processor=e,u.Document=g,u.Comment=v,u.Warning=c,u.AtRule=x,u.Result=t,u.Input=S,u.Rule=n,u.Root=i,u.Node=s,o.registerPostcss(u),Ae=u,u.default=u,Ae}var Nt=Lt();const k=Rt(Nt);k.stringify;k.fromJSON;k.plugin;k.parse;k.list;k.document;k.comment;k.atRule;k.rule;k.decl;k.root;k.CssSyntaxError;k.Declaration;k.Container;k.Processor;k.Document;k.Comment;k.Warning;k.AtRule;k.Result;k.Input;k.Rule;k.Root;k.Node;const Ut=new Set(["media","supports","container","layer","scope"]),ht=new Set(["charset","import","namespace"]),ct=/^(html|body|:root)(?![\w-])/i,pt=/[\s>+~]/,Bt="http://volter.invalid";function Kt({css:d,scopeSelector:x,styleSheetPath:v}){const m=k.parse(d,{from:void 0});v!==void 0&&m.walkDecls(o=>{const f=Tt(o.value,v);f!==o.value&&(o.value=f)});const y=[];m.each(o=>{o.type==="atrule"&&(Ut.has(o.name.replace(/^-\w+-/,"").toLowerCase())||y.push(o))});for(const o of y)o.remove();m.walkRules(o=>{const f=Dt(o.selectors.map(_t));f.length>0&&(o.selectors=f)}),m.walkAtRules("media",o=>{const f=Ft(o.params);f!==null&&(o.name="container",o.params=f)});const b=k.atRule({name:"scope",params:`(${x})`,nodes:[],raws:{before:`
30
30
  `,afterName:" ",between:" ",after:`
31
31
  `}});b.append(m.nodes.map(o=>o.clone())),b.append(k.rule({selector:":scope",nodes:[k.decl({prop:"container-type",value:"inline-size"})],raws:{before:`
32
32
  `,between:" ",after:" "}})),m.removeAll(),b.first&&(b.first.raws.before=`
@@ -0,0 +1 @@
1
+ import{kW as ht,kX as be,kY as gt,cM as vt,K,kZ as xt,k_ as we,k$ as yt,l0 as Se,a0 as L,a1 as ue,l1 as bt,l2 as wt,cR as Z,cS as G,l3 as St,l4 as jt,a5 as de,l5 as Et,aK as $e,l6 as Mt,l7 as It,ev as Te,aw as ze,f_ as Rt,f$ as Ct,g0 as Dt,g1 as Pt,r as oe,af as h,O as At,gN as _t,gO as je,gQ as kt,gj as Ft,eF as Ne,l8 as $t,dj as Tt,l9 as zt,p as Oe}from"./index-C5ZAyrKq.js";import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{r as i}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{u as Nt,d as Ot,c as Gt}from"./frame-debugger-store-BXoLKTdZ.js";import{m as Vt}from"./audio-meter-Cddyq1vI.js";import{p as Ge}from"./utility-view-state-CDRxZSo-.js";import{P as Lt}from"./PlayBar-DsMitSgy.js";import{a as Ee,r as Ht,f as Bt,R as Wt}from"./presentation-COhHQdmR.js";import{setUserData as Ve}from"./user-data-CODoGZqA.js";import{I as pe,J as Ut,K as ne,L as qt,M as Le,O as He,P as Be,Q as We,w as Kt,x as Xt,R as me,v as Y,S as Yt,T as Qt,U as Zt,V as se,W as Ue,X as Me,Y as qe,Z as Jt,_ as Ke,a as en,$ as tn,a0 as Ie,a1 as nn,b as Xe,a2 as sn}from"./game-network-DW5ARz4R.js";import{aq as on,cp as Ye,aI as rn,bX as an,ey as ln,bh as fe,co as Re,s as cn,fo as W,bV as un,N as Qe,M as Ce,dg as dn,df as pn}from"./three.core-3arARmh6.js";import{e as mn,S as fn}from"./surface-state-D8Qnowo6.js";import{d as hn}from"./surface-content-Dg9Kkazf.js";import{a as gn,R as Ze}from"./active-ingest-0QjJWb7i.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./configurations-XP9YLkrt.js";import"./run-selection-B0jOdyYt.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./capability-coverage-ByWftxk4.js";import"./game-contract-seams-tyKDsfaP.js";import"./object-marks-BnvSuCTt.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.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"./pixi-story-model-DNkfnWUV.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.js";import"./body-marks-C1LxJtQb.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";const Je=8,re=1e3/60;function vn(e,t=Je){return!(e>0)||t<=0?0:Math.min(t,Math.max(1,Math.round(Vt(e)/100*t)))}function De(e,t){const n=e.filter(a=>a.id>t),r=n.at(-1)?.id??t,o=n.map(a=>a.intervalMs).filter(a=>Number.isFinite(a)&&a>0).sort((a,m)=>a-m);if(o.length===0)return{frameId:r,intervalMs:null};const l=Math.floor((o.length-1)*.95);return{frameId:r,intervalMs:o[l]??null}}function xn(e){const t=e.slice(-3);return t.slice(-2).length===2&&t.slice(-2).every(n=>n>=50)?"danger":t.length===3&&t.every(n=>n>re*1.05)?"warning":"normal"}function yn(e,t,n,r=50){if(e.length===0||t<=0||n<=0)return"";const o=Math.max(1,e.length-1);return e.map((l,a)=>{const m=a/o*t,d=Math.min(1,Math.max(0,l/r)),g=n-d*n;return`${m.toFixed(1)},${g.toFixed(1)}`}).join(" ")}const et="muted",Pe={enabled:!1,recording:!1,fps:0,cpuMs:0,p95Ms:0,p99Ms:0,frames:[],phases:[],systems:[],components:[],render:{gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:0}};function Ae(){return St(et)===!0}function bn(e){jt(et,e)}function wn(e,t){const n=t.find(o=>o.id==="master")?.level;if(!e.isMuted()&&n!==void 0)return n;const r=t.filter(o=>o.id!=="master").map(o=>o.level);return r.length>0?Math.max(...r):n??0}function Sn(){const e=K();i.useSyncExternalStore(e.subscribe,e.getShellSnapshot??e.getSnapshot);const t=e.playState==="playing",[n,r]=i.useState(!1),[o,l]=i.useState(0),[a,m]=i.useState(!1),[d,g]=i.useState(!1),[u,T]=i.useState(Ae),R=i.useRef(Ae()),E=i.useRef(new WeakMap),y=i.useRef(null),C=i.useSyncExternalStore(xt,we,we),v=yt();i.useEffect(()=>{const p=R.current||!t;for(const f of Se())E.current.get(f)!==p&&(f.setMuted(p),E.current.set(f,p))},[C,t]),i.useEffect(()=>{if(!v){l(0),m(!1),g(!1);return}const p=v.acquireMeters?.()??null;g(p!==null);const f=()=>{m(v.isMuted()),l(p?wn(v,p.read()):0)};f();const A=setInterval(f,100);return()=>{clearInterval(A),p?.dispose()}},[v]);const M=()=>{const p=!R.current,f=p||!t;for(const A of Se())A.resume?.(),A.setMuted(f),E.current.set(A,f);R.current=p,T(p),bn(p),m(f)},D=vn(o),z=v&&a&&!u&&!t?" (not playing)":"",P=v?a?"Audio muted":o>0?"Audio playing":"Audio quiet":"Audio unavailable";return s.jsxs("div",{className:"volter-header-audio","data-muted":a||void 0,"data-available":!!v,children:[s.jsxs(L,{ref:y,type:"button",variant:"ghost",size:"compact",className:"volter-header-telemetry-button","data-testid":"header-audio-telemetry","aria-label":`${P}; open audio controls`,"aria-haspopup":"menu","aria-expanded":n,title:`${P}${z}${d?"":" · level metering unavailable"}`,onClick:()=>r(p=>!p),children:[s.jsx(ue,{icon:a?bt:wt,size:"sm"}),s.jsx("span",{className:"volter-audio-vu","aria-hidden":"true",children:Array.from({length:Je},(p,f)=>s.jsx("i",{"data-filled":f<D||void 0},f))})]}),n&&s.jsx(Z,{anchorRef:y,onDismiss:()=>r(!1),gap:3,children:s.jsx(G,{onClick:()=>{M(),r(!1)},children:u?"Unmute audio":"Mute audio"})})]})}function jn(){const e=Nt(),t=e?.profiler??null,[n,r]=i.useState(Pe),[o,l]=i.useState([]);i.useEffect(()=>{if(!t){r(Pe),l([]);return}const R=t.telemetryEnabled;t.telemetryEnabled=!0;const E=t.getSnapshot(),y=De(E.frames,0);let C=y.frameId;r(E),l(y.intervalMs===null?[]:[y.intervalMs]);let v=null;const M=()=>{v=null;const z=t.getSnapshot(),P=De(z.frames,C);C=P.frameId,r(z);const p=P.intervalMs;p!==null&&l(f=>[...f,p].slice(-24))},D=t.subscribe(()=>{v===null&&(v=setTimeout(M,500))});return()=>{D(),v!==null&&clearTimeout(v),R||(t.telemetryEnabled=!1)}},[t]);const a=o.at(-1)??null,m=yn(o,72,18),d=a?Math.round(1e3/a):n.fps>0?Math.round(n.fps):null,g=a??(n.fps>0?1e3/n.fps:null),u=xn(o),T=e?`${e.label}: ${d??"—"} FPS · ${g?.toFixed(1)??"—"} ms frame time · open Profiler`:"The active document has no live render loop to profile";return s.jsxs(L,{type:"button",variant:"ghost",size:"compact",className:"volter-header-telemetry-button volter-header-performance","data-testid":"header-performance-telemetry","data-performance-tone":u,disabled:!e,"aria-label":T,title:T,onClick:()=>Ge.open("profiler"),children:[s.jsxs("svg",{className:"volter-performance-graph","aria-hidden":"true",viewBox:"0 0 72 18",width:"72",height:"18",children:[s.jsx("line",{className:"volter-performance-budget",x1:"0",x2:"72",y1:18-re/50*18,y2:18-re/50*18}),m&&s.jsx("polyline",{className:"volter-performance-sparkline",points:m})]}),s.jsxs("span",{className:"volter-performance-readout",children:[s.jsxs("strong",{className:"volter-header-fps",children:[d??"—"," FPS"]}),s.jsxs("span",{className:"volter-header-frame-ms",children:[g?.toFixed(1)??"—"," ms"]})]})]})}function En(){return i.useSyncExternalStore(ht,be,be),gt().telemetry==="hidden"?null:s.jsxs(vt,{className:"volter-header-telemetry volter-chrome-island volter-glass-island","data-island-scale":"compact",align:"center",gap:1,children:[s.jsx(Sn,{}),s.jsx(jn,{})]})}let Q=!1,ie=0,w=null,N=null;const Mn=new on(1,1,1,16,1,!0),In=new Ye({color:2280686,transparent:!0,opacity:.45,side:rn,depthWrite:!1}),Rn=new an({color:16755200,transparent:!0,opacity:.9}),Cn=new ln(.12,12,8),Dn=new Ye({color:16755200,depthWrite:!1}),Pn=16724804,An=2280686;let $=[];function _e(){return Q}function _n(e){e!==Q&&(Q=e,e?ie=requestAnimationFrame(tt):(cancelAnimationFrame(ie),$n()))}function tt(){if(!Q)return;ie=requestAnimationFrame(tt);const e=pe(),t=e?de().navigation?.crowdAgents?.()??[]:[];if(e!==N&&(N&&w&&N.remove(w),N=e,e&&(w||(w=new fe,w.name="crowd-debug-draw",Ve(w,"editorHelper",!0)),e.add(w))),!(!w||!e)){kn(w,t.length);for(let n=0;n<t.length;n++)Fn($[n],t[n])}}function kn(e,t){for(;$.length<t;){const n=new fe,r=In.clone(),o=new Re(Mn,r),l=new cn(new W(1,0,0),new W,1,16755200),a=new un(new Qe,Rn),m=new Re(Cn,Dn);n.add(o),n.add(l),e.add(n),e.add(a),e.add(m),$.push({root:n,cylinder:o,cylinderMaterial:r,arrow:l,path:a,target:m})}for(;$.length>t;){const n=$.pop();e.remove(n.root),e.remove(n.path),e.remove(n.target),n.arrow.dispose(),n.path.geometry.dispose(),n.cylinderMaterial.dispose()}}function Fn(e,t){e.root.position.set(t.position.x,t.position.y,t.position.z),e.cylinder.scale.set(t.radius,t.height,t.radius),e.cylinder.position.y=t.height/2,e.cylinderMaterial.color.setHex(t.state==="invalid"?Pn:An);const n=t.corners??[];n.length>0?(e.path.visible=!0,e.path.geometry.setFromPoints([new W(t.position.x,t.position.y+.05,t.position.z),...n.map(o=>new W(o.x,o.y+.05,o.z))])):e.path.visible=!1,t.target&&n.length>0?(e.target.visible=!0,e.target.position.set(t.target.x,t.target.y+.05,t.target.z)):e.target.visible=!1;const r=Math.hypot(t.velocity.x,t.velocity.y,t.velocity.z);r>.01?(e.arrow.visible=!0,e.arrow.position.y=t.height/2,e.arrow.setDirection(new W(t.velocity.x/r,t.velocity.y/r,t.velocity.z/r)),e.arrow.setLength(Math.max(r*.5,.2))):e.arrow.visible=!1}function $n(){if(w){N?.remove(w);for(const e of $)e.arrow.dispose();w.clear()}$=[],w=null,N=null}function Tn({onPresetChange:e}){const[t,n]=i.useState(!1),r=i.useRef(null),o=Le(),l=o.kind==="fit";return s.jsxs("div",{className:"volter-playbar-popover-anchor",children:[s.jsxs(L,{ref:r,variant:"ghost",size:"comfortable","aria-haspopup":"menu","aria-expanded":t,"aria-controls":t?"volter-device-preset-menu":void 0,"data-testid":"device-preset-picker",onClick:()=>n(a=>!a),title:"Device preview — constrain the game to a device resolution + DPR. Phone/tablet presets show the safe area, set --volter-safe-area-inset-top/right/bottom/left CSS vars on the game mount, and send mouse input as touch.",children:[s.jsx(ue,{icon:Et,size:"md"}),s.jsx($e,{variant:"code",children:l?"Device":`${o.width}×${o.height}`})]}),t&&s.jsxs(Z,{id:"volter-device-preset-menu",anchorRef:r,className:"volter-resolution-menu",gap:4,onDismiss:()=>n(!1),children:[Ut.map(a=>s.jsx(G,{role:"menuitemradio","aria-checked":a.id===o.id,"data-testid":`device-preset-${a.id}`,onSelect:()=>{e(a),n(!1)},children:a.label},a.id)),s.jsxs(G,{role:"menuitemcheckbox","aria-checked":ne(),"data-testid":"device-touch-toggle",onSelect:()=>qt(!ne()),children:[ne()?"✓ ":" ","Pointer as touch"]})]})]})}function zn(){const e=Mt(()=>It()??null),n=Ot(e)?.capture===!0;return s.jsx(L,{type:"button",size:"compact",variant:"ghost","data-testid":"game-capture-frame",className:"volter-frame-capture-game-button",disabled:!n,title:n?"Capture one rendered frame and open the Frame debugger":"No render-debug adapter registered for this world — frame capture is unavailable",onClick:()=>{Gt(e),Ge.open("frame")},children:"Capture frame"})}let nt={label:"Fill",width:null,height:null},ae=1,st=0;const le=new Set;function V(){st++;for(const e of le)e()}function ot(e){return le.add(e),()=>{le.delete(e)}}const rt=()=>st;function it(){return nt}function at(e){nt=e,V()}function lt(e,t){return e.width!==null||!t?e:{label:`Project — ${t.width}×${t.height}`,width:t.width,height:t.height}}function Nn(e){return e?[lt({label:"Fill",width:null,height:null},e),...Ee.filter(t=>t.width!==null)]:Ee}function ct(e){He(e.id),at(e.width===null||e.height===null?{label:"Fill",width:null,height:null}:{label:e.label,width:e.width,height:e.height})}function On(e){e!==ae&&(ae=e,V())}function Gn(){return ae}function ut(e){return Array.from(e.children).filter(t=>t.dataset?.volterRootSurface==="true")}function Vn(e,t,n){for(const r of t)r.contains(e)||e.appendChild(r);if(n)for(const r of ut(n))e.appendChild(r)}function Ln({name:e}){return s.jsx("div",{"data-testid":"game-instance-name",style:{flex:"0 0 auto",padding:"3px 10px",background:h.surface.chrome,color:h.content.primary,borderBottom:`1px solid ${h.boundary.default}`,fontSize:11,fontWeight:600,userSelect:"none"},children:e})}function dt({name:e,testId:t,borderLeft:n,focused:r,onFocus:o,children:l}){return s.jsxs("div",{"data-testid":t,"data-focused":r||void 0,onPointerDownCapture:o,style:{flex:1,minWidth:0,height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative",cursor:o&&!r?"pointer":void 0,...n?{borderLeft:`1px solid ${h.boundary.default}`}:{}},children:[s.jsx(Ln,{name:e}),s.jsx("div",{style:{flex:1,minHeight:0,position:"relative",display:"flex",alignItems:"center",justifyContent:"center"},children:l}),r&&s.jsx("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:40,border:`2px solid ${h.accent.default}`,boxShadow:`inset 0 0 0 1px ${h.accent.default}`}})]})}function Hn({index:e}){const t=i.useRef(null),n=qe(e+1),r=i.useSyncExternalStore(Ke,en),[o,l]=i.useState(null),a=i.useSyncExternalStore(me,Y);return i.useEffect(()=>{const m=t.current;if(!m||!r)return;let d=null,g=!1;return tn(m,n).then(u=>{g?Ie(u):(d=u,l(u))},u=>{At.error(`Failed to mount ${n}: ${u}`,"play-mode")}),()=>{g=!0,l(null),d&&Ie(d)}},[e,r]),s.jsx(dt,{name:n,testId:`game-instance-slot-${e+1}`,borderLeft:!0,focused:o!=null&&a===o,onFocus:o?()=>Ue(o):void 0,children:s.jsx("div",{ref:t,"data-volter-instance-viewport":"",style:{position:"absolute",inset:0}})})}function Bn({style:e}){const t=i.useSyncExternalStore(Te,ze),r=K().playState!=="stopped",o=i.useRef(null);i.useSyncExternalStore(ot,rt),i.useSyncExternalStore(Be,We);const l=i.useSyncExternalStore(Kt,Xt),a=l>0,m=i.useSyncExternalStore(me,Y),d=Le(),g=it(),[u,T]=i.useState({width:0,height:0}),[R,E]=i.useState(0),y=i.useRef(null),C=i.useSyncExternalStore(Rt,Ct),v=i.useSyncExternalStore(Dt,Pt),M=Jt(),D=gn(),z=M.length>0?M.map(c=>c.rootId):D?[D.worldId]:C.filter(c=>c.mechanism==="host-mount").map(c=>c.rootId),P=!!(y.current&&hn(y.current)),p=M.length>0?M.some(c=>c.hasRenderableContent):P,f=M.length>0||D!==null,A=r?mn({surface:"Game",rootIds:z,phase:f?"ready":"loading",content:f?p?"present":"empty":"unknown",readiness:C,failures:v}):null;i.useEffect(()=>{if(!r||!f||p)return;const c=window.setTimeout(()=>E(x=>x+1),250);return()=>window.clearTimeout(c)},[R,p,r,f]),i.useEffect(()=>{const c=o.current;if(!c||typeof MutationObserver>"u")return;const x=new MutationObserver(()=>E(I=>I+1));return x.observe(c,{childList:!0,subtree:!0,characterData:!0}),()=>x.disconnect()},[]),i.useEffect(()=>{const c=Yt();c.width!==null&&(ct(c),V())},[]);const J=i.useRef([]),he=i.useCallback(c=>{if(c===y.current)return;!c&&y.current&&(J.current=ut(y.current)),c&&(Vn(c,J.current,y.current),J.current=[]);const x=y.current;y.current=c,c?oe().workspace.liveDocument.setContainer(c):x&&oe().workspace.liveDocument.releaseContainer(x),c?Qt(c):x&&Zt(x)},[]);i.useEffect(()=>{const c=o.current;if(!c)return;const x=new ResizeObserver(([I])=>{if(!I)return;const{width:X,height:ye}=I.contentRect;T(te=>te.width===X&&te.height===ye?te:{width:X,height:ye})});return x.observe(c),()=>x.disconnect()},[]);const mt=t?.config.resolution,_=Ht(g,mt),ge=_.kind==="fill",ft=ge||a,H=_.kind==="logical"?_.width:null,B=_.kind==="logical"?_.height:null,ve=d.dpr;i.useEffect(()=>{const c=ve??nn();a?u.width>0&&u.height>0&&se(u.width/(l+1),u.height,c):H===null||B===null?u.width>0&&u.height>0&&se(u.width,u.height,c):se(H,B,c)},[H,B,u.width,u.height,ve,r,a,l]);const ee=Bt(u,{width:H??0,height:B??0},{allowUpscale:_.kind==="logical"&&_.allowUpscale}),k=ge?1:ee.scale;i.useEffect(()=>{On(k)},[k]);const b=d.safeArea,xe={"--volter-safe-area-inset-top":`${b?.top??0}px`,"--volter-safe-area-inset-right":`${b?.right??0}px`,"--volter-safe-area-inset-bottom":`${b?.bottom??0}px`,"--volter-safe-area-inset-left":`${b?.left??0}px`};return s.jsx("div",{style:{overflow:"hidden",position:"relative",flexDirection:"column",...e},children:s.jsxs("div",{ref:o,style:{flex:1,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[(()=>{const c=ft?s.jsx("div",{ref:he,"data-testid":"game-runtime-container","aria-hidden":"true",style:{position:"absolute",inset:0,...r?{}:{visibility:"hidden"},...xe}},"game-mount-fill"):s.jsxs("div",{style:{position:"relative",width:ee.width,height:ee.height,overflow:"hidden",...r?{}:{visibility:"hidden"}},children:[s.jsx("div",{ref:he,"data-testid":"game-runtime-container","aria-hidden":"true",style:{width:H??0,height:B??0,transformOrigin:"top left",transform:`scale(${k})`,...xe}}),b&&s.jsx("div",{"data-testid":"device-safe-area-overlay",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:2},children:[["top",b.top,{top:0,left:0,right:0,height:b.top*k}],["bottom",b.bottom,{bottom:0,left:0,right:0,height:b.bottom*k}],["left",b.left,{top:0,bottom:0,left:0,width:b.left*k}],["right",b.right,{top:0,bottom:0,right:0,width:b.right*k}]].map(([x,I,X])=>I>0?s.jsx("div",{"data-testid":`device-safe-area-${x}`,style:{position:"absolute",...X,background:h.semantic.dangerFaint,boxShadow:`inset 0 0 0 1px ${h.semantic.dangerMuted}`}},x):null)})]},"game-mount-device");return a?s.jsxs(s.Fragment,{children:[s.jsx(dt,{name:qe(0),testId:"game-instance-slot-0",focused:m===Me(),onFocus:()=>Ue(Me()),children:c}),Array.from({length:l},(x,I)=>s.jsx(Hn,{index:I},I))]}):c})(),!r&&s.jsxs("div",{"data-testid":"game-stopped-placeholder",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:6,background:h.surface.shell,color:h.content.dim,fontSize:11,pointerEvents:"none"},children:[s.jsx("span",{style:{color:h.content.primary,fontSize:13},children:"Game is stopped"}),s.jsx("span",{children:"Press Play to start the composed runtime."})]}),r&&s.jsx(fn,{explanation:A,testId:"game-surface-status",style:{zIndex:30,background:h.surface.shell}})]})})}function ke(){return Xe().map(({id:e,name:t})=>`${e}\0${t}`).join("")}function Wn({instanceId:e}){const t=K();i.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);const n=i.useSyncExternalStore(me,Y,Y),[,r]=i.useState(0);i.useEffect(()=>{const g=window.setInterval(()=>r(u=>u+1),250);return()=>window.clearInterval(g)},[]);const o=Ze(e),l=zt(),a=o?(o.loop.activeTimeouts??0)+(o.loop.activeIntervals??0)+(o.loop.activeAnimationFrames??0)+o.loop.pending:0,m=o?o.listeners.window+o.listeners.document:0,d=[["Mount",e],["Simulation",t.playState==="paused"?"Paused":"Running"],["Input",n===e?"Keyboard focus":"Inactive"],["Input events",o?`${o.loop.input??0} observed · ${o.loop.inputBlocked??0} blocked`:"Not measured"],["Network",l?l.getConnectionState?.()??"Not reported by this adapter":"Not registered"],["Owned callbacks",String(a)],["Owned listeners",String(m)],["Realm globals",String(o?.globals??0)],["Browser storage",o?`Shared origin · ${o.storage.local.reads+o.storage.session.reads} reads · ${o.storage.local.writes+o.storage.session.writes} writes`:"Shared origin"]];return s.jsx("div",{role:"none",style:{display:"grid",gridTemplateColumns:"112px minmax(120px, 1fr)",gap:"4px 12px",padding:"8px 10px",fontSize:10,lineHeight:"15px"},children:d.map(([g,u])=>s.jsxs("div",{style:{display:"contents"},children:[s.jsx("span",{style:{color:h.content.dim},children:g}),s.jsx("span",{style:{color:h.content.primary,fontFamily:g==="Mount"?h.typography.mono:void 0,overflow:"hidden",textOverflow:"ellipsis"},children:u})]},g))})}function Un(){i.useSyncExternalStore(Ke,ke,ke),i.useSyncExternalStore(_t,je,je);const e=Xe(),t=kt(),n=e.find(d=>d.id===t)??e[0],[r,o]=i.useState(!1),l=i.useRef(null);if(e.length<2||!n)return null;const m=(Ze(n.id)?.loop.firedWhileHeld??0)>0;return s.jsxs("div",{className:"volter-playbar-popover-anchor",children:[s.jsxs(L,{ref:l,variant:"ghost",size:"compact","aria-haspopup":"menu","aria-expanded":r,onClick:()=>o(d=>!d),title:`Runtime instruments inspect ${n.name}; agent-addressed commands are unchanged`,children:[s.jsx(ue,{icon:Ft,size:"sm",style:{color:m?h.semantic.warning:void 0}}),s.jsxs($e,{variant:"code",children:["Inspect ",n.name]}),s.jsx(Ne,{direction:"down"})]}),r&&s.jsxs(Z,{anchorRef:l,gap:3,onDismiss:()=>o(!1),style:{minWidth:270},children:[e.map(d=>s.jsxs(G,{role:"menuitemradio","aria-checked":d.id===n.id,onSelect:()=>$t(d.id),children:[d.id===n.id?"✓ ":" ",d.name]},d.id)),s.jsx(Tt,{}),s.jsx(Wn,{instanceId:n.id})]})]})}let q=!1,ce=0,S=null,O=null,U=null,j=null,F=0;function Fe(){return q}function qn(e){e!==q&&(q=e,e?ce=requestAnimationFrame(pt):(cancelAnimationFrame(ce),U?.setDebugDrawEnabled?.(!1),Qn()))}function pt(){if(!q)return;ce=requestAnimationFrame(pt);const e=pe(),t=e?Oe(de().physics):null;if(t!==U&&(U?.setDebugDrawEnabled?.(!1),U=t,t?.setDebugDrawEnabled?.(!0)),Kn(e),!S||!e)return;const n=t?.contactPoints?.()??null;Xn(S,n)}function Kn(e){e!==O&&(O&&S&&O.remove(S),O=e,e&&(S||(S=new fe,S.name="physics-debug-draw",Ve(S,"editorHelper",!0)),e.add(S)))}function Xn(e,t){const n=t?t.length/3:0;if(!j){F=64;const l=new Qe;l.setAttribute("position",new Ce(new Float32Array(F*3),3));const a=new dn({color:16724821,size:10,sizeAttenuation:!1,depthTest:!1,transparent:!0,opacity:.95});j=new pn(l,a),j.renderOrder=999,j.frustumCulled=!1,e.add(j)}const r=j.geometry;if(n>F){for(;F<n;)F*=2;r.setAttribute("position",new Ce(new Float32Array(F*3),3))}const o=r.getAttribute("position");t&&n>0&&o.array.set(t),o.needsUpdate=!0,r.setDrawRange(0,n),j.visible=n>0}function Yn(){const e=pe(),n=(e?Oe(de().physics):null)?.debugDraw?.()??null;let r=!1;n&&e&&e.traverse(a=>{a===n&&(r=!0)});const o=n?.geometry.getAttribute("position"),l=j?.geometry.drawRange.count??0;return{enabled:q,wireframeInScene:r,wireframeVisible:n?.visible??!1,wireframeVertexCount:o?.count??0,contactMarkerCount:j?.visible&&Number.isFinite(l)?l:0}}typeof window<"u"&&(window.__volterPhysicsDebug=Yn);function Qn(){S&&(O?.remove(S),j&&(j.geometry.dispose(),j.material.dispose()),S.clear()),j=null,F=0,S=null,O=null,U=null}function Zn(){const[e,t]=i.useState(!1),n=i.useRef(null);return s.jsxs("div",{style:{position:"relative"},children:[s.jsxs(L,{ref:n,type:"button",variant:"outline",size:"compact","data-testid":"game-debug-menu","aria-haspopup":"menu","aria-expanded":e,"aria-controls":e?"volter-game-debug-menu":void 0,onClick:()=>t(r=>!r),children:[s.jsx("span",{children:"Debug"}),s.jsx(Ne,{direction:"down"})]}),e&&s.jsxs(Z,{id:"volter-game-debug-menu",anchorRef:n,gap:3,onDismiss:()=>t(!1),style:{minWidth:190},children:[s.jsxs(G,{onClick:()=>{_n(!_e()),V()},children:[_e()?"✓ ":" ","Crowd debug draw"]}),s.jsxs(G,{onClick:()=>{qn(!Fe()),V()},children:[Fe()?"✓ ":" ","Physics debug draw"]})]})]})}function Jn(e){const t=i.useSyncExternalStore(Te,ze),n=K();return i.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),i.useSyncExternalStore(ot,rt),i.useSyncExternalStore(Be,We),s.jsxs("div",{"data-testid":"game-doc-toolbar",style:{display:"grid",alignItems:"center",gridTemplateColumns:"minmax(0, 1fr) auto minmax(0, 1fr)",width:"100%",gap:6,padding:"2px 8px"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",minWidth:0,overflow:"auto"},children:[s.jsx(Un,{}),s.jsx(Tn,{onPresetChange:r=>{ct(r),V()}}),s.jsx(Wt,{resolution:lt(it(),t?.config.resolution),options:Nn(t?.config.resolution),onResolutionChange:r=>{He(sn),at(r)},scale:Gn(),title:"Change game resolution"}),s.jsx(Zn,{}),n.playState!=="stopped"&&s.jsx(zn,{})]}),s.jsx(Lt,{placement:"runtime"}),s.jsx("div",{style:{display:"flex",justifyContent:"flex-end",minWidth:0},children:s.jsx(En,{})})]})}function es(e){const t=K();i.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=t.playState!=="stopped";return s.jsxs("div",{style:{flex:1,position:"relative",display:"flex",flexDirection:"column"},children:[s.jsx(Bn,{style:{flex:1,position:"relative",display:"flex",flexDirection:"column",pointerEvents:"auto",...t.playState==="playing"?{outline:`2px solid ${h.semantic.success}`,outlineOffset:-2}:n?{outline:`2px solid ${h.semantic.warning}`,outlineOffset:-2}:{}}}),t.playState==="paused"&&s.jsx("div",{"data-testid":"game-paused-notice",style:{position:"absolute",left:"50%",top:12,transform:"translateX(-50%)",padding:"6px 12px",borderRadius:6,background:"rgba(0,0,0,.72)",color:h.content.primary,fontSize:12,letterSpacing:".04em",pointerEvents:"none",zIndex:2},children:"Paused by the editor — press ▶ Play to resume (Escape pauses)"})]})}const $o="workspace.service";function To(){return oe().workspace.liveDocument.register({Content:es,Toolbar:Jn})}export{$o as point,To as start};
@@ -0,0 +1,2 @@
1
+ import{createGameModuleResolver as k,setFocusedInstanceProvider as M}from"./game-module-access-BTInp2NG.js";import{n as d}from"./command-results-CUQD49AB.js";import{i as g}from"./active-ingest-0QjJWb7i.js";import{a as y,u as h,v as w}from"./game-network-DW5ARz4R.js";import"./index-C5ZAyrKq.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"./game-contract-seams-tyKDsfaP.js";import"./capability-coverage-ByWftxk4.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.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"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.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-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";class E extends Error{member;supported;constructor(e,r,o){super(`playwright-shim: ${e}.${r} is not supported by the in-page shim. Supported ${e} members: ${o.join(", ")}. This shim is DOM-only — canvas gameplay input must use game.input.*, while React-only DOM games may use Page keyboard/locator input. See packages/editor/src/playwright-shim.ts for the full supported subset and the wire's closure-capture limitation.`),this.name="PageShimUnsupportedError",this.member=r,this.supported=o}}function v(t,e){const r=Object.keys(t);return new Proxy(t,{get(o,i,n){if(typeof i=="symbol"||i in o)return Reflect.get(o,i,n);throw new E(e,i,r)}})}function m(t){return t.replace(/\s+/g," ").trim()}function O(t){const e=t.tagName.toLowerCase();if(e==="button")return"button";if(e==="a"&&t.hasAttribute("href"))return"link";if(/^h[1-6]$/.test(e))return"heading";if(e==="textarea")return"textbox";if(e==="select")return"combobox";if(e==="img")return"img";if(e==="input"){const r=(t.getAttribute("type")??"text").toLowerCase();return r==="button"||r==="submit"||r==="reset"?"button":r==="checkbox"?"checkbox":r==="radio"?"radio":"textbox"}return null}function b(t){return t.getAttribute("role")??O(t)}function S(t){const e=t.getAttribute("aria-label");return e&&e.trim()?m(e):m(t.textContent??"")}function T(t,e){if(e===void 0)return!0;const r=S(t);return e instanceof RegExp?e.test(r):r===e}function x(t,e,r){return Array.from(t.querySelectorAll("*")).filter(i=>b(i)===e&&T(i,r?.name))}function I(t,e){const r=Array.from(t.querySelectorAll("*")).filter(n=>n.tagName!=="SCRIPT"&&n.tagName!=="STYLE"),o=n=>{const s=m(n.textContent??"");return s.length===0?!1:e instanceof RegExp?e.test(s):s.includes(e)},i=r.filter(o);return i.filter(n=>!i.some(s=>s!==n&&n.contains(s)))}function C(t,e){return Array.from(t.querySelectorAll("[data-testid]")).filter(r=>{const o=r.getAttribute("data-testid")??"";return e instanceof RegExp?e.test(o):o===e})}function L(t){if(!(t instanceof HTMLElement))return!0;if(t.hidden)return!1;const e=getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"}function _(t){const e=t.getBoundingClientRect?.()??{left:0,top:0,width:0,height:0},r=e.left+e.width/2,o=e.top+e.height/2,i={bubbles:!0,cancelable:!0,clientX:r,clientY:o,button:0};typeof PointerEvent<"u"&&t.dispatchEvent(new PointerEvent("pointerdown",{...i,pointerId:1,isPrimary:!0})),t.dispatchEvent(new MouseEvent("mousedown",i)),typeof PointerEvent<"u"&&t.dispatchEvent(new PointerEvent("pointerup",{...i,pointerId:1,isPrimary:!0})),t.dispatchEvent(new MouseEvent("mouseup",i)),t.dispatchEvent(new MouseEvent("click",i))}function N(t){const e=t instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(e,"value");return o=>{r?.set?r.set.call(t,o):t.value=o}}function G(t,e){if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement))throw new Error(`playwright-shim: fill() target is not an <input>/<textarea> (got <${t.tagName.toLowerCase()}>)`);t.focus(),N(t)(e),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0}))}const l=new Set(["Alt","Control","Meta","Shift"]);function p(t){return t!=="ControlOrMeta"?t:/Mac|iPhone|iPad/.test(navigator.platform)?"Meta":"Control"}function B(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:t===" "?"Space":t}function K(t){const e=document.activeElement;return e instanceof HTMLElement&&t.contains(e)?e:t}function f(t,e,r,o){K(t).dispatchEvent(new KeyboardEvent(e,{key:r,code:B(r),bubbles:!0,cancelable:!0,altKey:o.has("Alt"),ctrlKey:o.has("Control"),metaKey:o.has("Meta"),shiftKey:o.has("Shift")}))}function F(t){const e=new Set,r=async i=>{const n=p(i);e.add(n),f(t,"keydown",n,e)},o=async i=>{const n=p(i);f(t,"keyup",n,e),e.delete(n)};return{down:r,up:o,async press(i){const n=i.split("+").map(p),s=n.filter(c=>l.has(c)),a=n.find(c=>!l.has(c));for(const c of s)await r(c);a&&(await r(a),await o(a));for(const c of s.reverse())await o(c)}}}function R(t){const e=[];function r(o,i){const n=b(o);if(n){const a=S(o);e.push(`${" ".repeat(i)}- ${n}${a?` "${a}"`:""}`)}const s=n?i+1:i;for(const a of Array.from(o.children))r(a,s)}for(const o of Array.from(t.children))r(o,0);return e.join(`
2
+ `)}function u(t,e){const r=i=>{const n=t()[0];if(!n)throw new Error(`playwright-shim: ${i}() found no element for ${e}`);return n};return v({async click(){_(r("click"))},async fill(i){G(r("fill"),i)},async textContent(){const i=t()[0];return i?i.textContent??null:null},async evaluate(i,n){return i(r("evaluate"),n)},async count(){return t().length},async waitFor(i){const n=i?.timeout??5e3,s=i?.state??"visible",a=Date.now()+n;for(;;){const c=t()[0];if(c&&(s==="attached"||L(c)))return;if(Date.now()>=a)throw new Error(`playwright-shim: waitFor() timed out after ${n}ms waiting for ${e} to be ${s}`);await new Promise(P=>setTimeout(P,50))}},first(){return u(()=>t().slice(0,1),`${e}.first()`)},nth(i){return u(()=>{const n=t()[i];return n?[n]:[]},`${e}.nth(${i})`)},async ariaSnapshot(){return R(r("ariaSnapshot"))}},"Locator")}async function D(t,e){if(typeof t=="function")return t(e);if(typeof t=="string")return new Function("arg",`return (${t})(arg)`)(e);throw new Error("playwright-shim: evaluate() requires a function or a function-source string")}function A(t){const e={keyboard:F(t),evaluate:async(r,o)=>D(r,o),locator:r=>u(()=>Array.from(t.querySelectorAll(r)),`locator(${JSON.stringify(r)})`),getByRole:(r,o)=>u(()=>x(t,r,o),`getByRole(${JSON.stringify(r)}${o?.name!==void 0?`, {name: ${JSON.stringify(String(o.name))}}`:""})`),getByText:r=>u(()=>I(t,r),`getByText(${JSON.stringify(String(r))})`),getByTestId:r=>u(()=>C(t,r),`getByTestId(${JSON.stringify(String(r))})`),click:async r=>{await e.locator(r).click()},fill:async(r,o)=>{await e.locator(r).fill(o)},ariaSnapshot:async()=>R(t)};return v(e,"Page")}const ye="workspace.command";typeof window<"u"&&(M(w),window.__volterGameEval=async(t,e)=>{const r=await $({src:t,...e===void 0?{}:{instance:e}});if(!r.ok)throw new Error(r.error??"game-eval failed");return r.data?.result??null});async function $(t){if(!y()&&!g())return d();const e=t.src;if(typeof e!="string")return{ok:!1,error:`game-eval requires a string "src" (the step's toString())`};const r=h();if(!r)return{ok:!1,error:"game-eval: no play-mode game container is mounted yet",data:{code:"GAME_EVAL_ERROR"}};const o=t.instance,i=typeof o=="string"?o:void 0;let n;try{n=new Function("scope",`return (${e})(scope)`)}catch(a){return{ok:!1,error:`game-eval: failed to reconstruct the step function from source — ${a instanceof Error?a.message:String(a)}`,data:{code:"GAME_EVAL_ERROR"}}}const s={page:A(r),modules:k(i),instanceId:i??w()};try{const a=await n(s),c=a===void 0?null:a;try{JSON.stringify(c)}catch{return{ok:!1,error:`game-eval: the step returned an unserializable value (${Object.prototype.toString.call(c)}) — return plain data (numbers, strings, arrays, plain objects), not live module objects.`,data:{code:"GAME_EVAL_UNSERIALIZABLE"}}}return{ok:!0,data:{result:c}}}catch(a){return{ok:!1,error:`game-eval step failed: ${a instanceof Error?a.stack??a.message:String(a)}`,data:{code:"GAME_EVAL_ERROR"}}}}async function H(t){if(!y()&&!g())return d();const e=t.src;if(typeof e!="string")return{ok:!1,error:`page-script requires a string "src" (the step's toString())`};const r=h();if(!r)return{ok:!1,error:"page-script: no play-mode game container is mounted yet",data:{code:"PAGE_SCRIPT_ERROR"}};let o;try{o=new Function("page",`return (${e})(page)`)}catch(n){return{ok:!1,error:`page-script: failed to reconstruct the step function from source — ${n instanceof Error?n.message:String(n)}`,data:{code:"PAGE_SCRIPT_ERROR"}}}const i=A(r);try{const n=await o(i);return{ok:!0,data:{result:n===void 0?null:n}}}catch(n){return n instanceof E?{ok:!1,error:n.message,data:{code:"PAGE_SHIM_UNSUPPORTED",member:n.member,supported:[...n.supported]}}:{ok:!1,error:`page-script: step threw — ${n instanceof Error?n.message:String(n)}`,data:{code:"PAGE_SCRIPT_ERROR"}}}}const he={"game-eval":{timeoutMs:6e4,derivedRefresh:"always",handle:$},"page-script":{timeoutMs:6e4,derivedRefresh:"always",handle:H}};export{he as commands,ye as point};
@@ -0,0 +1 @@
1
+ import{B as d}from"./index-C5ZAyrKq.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 l="volter-mount";let i=null;function u(t){return globalThis.__volterGameModuleUrls?.(t)??[]}function S(t){i=t}function h(t){const o=t.replace(/^\/+/,"");if(!o.startsWith("src/")||/[?#]/.test(o))throw new Error(`modules("${t}"): pass the project-relative served path, starting "src/" with its real extension and no query — e.g. modules("src/sim/host.ts").`);return o}function m(t){const o=u(t).flatMap(r=>{const{pathname:e,searchParams:a}=new URL(r);if(a.get(l)!==t)return[];const s=e.lastIndexOf("/src/");return s===-1?[]:[e.slice(s+1)]});return[...new Set(o)].sort()}function b(t){const o=r=>p(r,w(r,t));return Object.defineProperty(o,"loaded",{enumerable:!0,get:()=>{const r=t??i?.();return r?m(r):[]}}),o}const f=new Set(["then","catch","finally","constructor","toJSON"]);function p(t,o){return new Proxy(o,{get(r,e){if(e==="then"||e==="catch"||e==="finally")return Reflect.get(r,e).bind(r);if(typeof e=="symbol"||f.has(e))return Reflect.get(r,e);throw new Error(`modules("${t}") returns a PROMISE — it dynamic-imports the running mount's own copy of that module — so \`.${String(e)}\` reads a promise, not your export. Await it: \`const m = await modules("${t}"); m.${String(e)}\` (and make the \`game.run\` callback \`async\`).`)}})}async function w(t,o){const r=h(t),e=o??i?.();if(!e)throw new Error(`modules(): no play instance is mounted — enter Play first (${d("play")}).`);const a=`/${r}`,s=u(e).find(n=>{const c=new URL(n);return c.pathname.endsWith(a)&&c.searchParams.get(l)===e});if(!s){const n=m(e);throw new Error(`modules("${t}"): the running mount has not loaded that module (nothing to reach — a module the game never imported has no live instance). Loaded project modules (also readable as modules.loaded): ${n.join(", ")||"(none yet — play first)"}`)}try{return await import(s)}catch(n){throw new Error(`modules("${t}") could not load ${s} — the path must be the exact served file (check the extension: .ts vs .tsx). ${n instanceof Error?n.message:String(n)}`)}}export{b as createGameModuleResolver,w as importGameModule,m as loadedGameModulePaths,h as normalizeGameModulePath,S as setFocusedInstanceProvider};