@volter/cyclotron 0.5.198 → 0.5.199

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 (1058) hide show
  1. package/BUNDLED_NOTICES +12 -12
  2. package/dist/.vite/manifest.json +1187 -1187
  3. package/dist/assets/EntityModelDocument-C3aM7CEf.js +1 -0
  4. package/dist/assets/EnvironmentAssetDocument-DJMk7gyx.js +1 -0
  5. package/dist/assets/InspectorObjectPreview-VlzXR3a1.js +1 -0
  6. package/dist/assets/LiveModuleDocument-CBNYfB-X.js +2 -0
  7. package/dist/assets/LutAssetDocument-ARkJ9S9K.js +1 -0
  8. package/dist/assets/ModelAssetDocument-DmKJjOPa.js +1 -0
  9. package/dist/assets/NonThreeAuthoringBootstrap-4j6fBCFM.js +1 -0
  10. package/dist/assets/Object3DDocumentToolbar-BhqhvO5b.js +1 -0
  11. package/dist/assets/Object3DPreview-r3B7yyUR.js +2 -0
  12. package/dist/assets/QuarksAssetDocument-BOcZqU7Q.js +2 -0
  13. package/dist/assets/ShaderAssetDocument-hKh12pCb.js +1 -0
  14. package/dist/assets/StageHost-C855nnQK.js +1179 -0
  15. package/dist/assets/ToolObject3DPreview-D6K9_hgu.js +1 -0
  16. package/dist/assets/ViewportShadingMenu-BQG3thZf.js +1 -0
  17. package/dist/assets/animation-mixers.service-CHBvAdwr.js +1 -0
  18. package/dist/assets/animation-timeline.utility-CMQBCIuO.js +1 -0
  19. package/dist/assets/asset-preview-8t0C1aYx.js +4 -0
  20. package/dist/assets/blender-node-editor.document-BM7vfTL5.js +1 -0
  21. package/dist/assets/blender-properties-model-CG1a0urK.js +1 -0
  22. package/dist/assets/blender-properties-tab-BmaCGZ2W.js +3 -0
  23. package/dist/assets/blender-runtime-host-I70OcA4h.js +7284 -0
  24. package/dist/assets/blender-runtime.document-CngS2ulS.js +13 -0
  25. package/dist/assets/blender-screenshot.menu-BlKHXd6M.js +1 -0
  26. package/dist/assets/blender-timeline.document-qAIwPVti.js +1 -0
  27. package/dist/assets/blender-uv-editor.document-IgrkS734.js +1 -0
  28. package/dist/assets/blender-version.status-CmcL13KX.js +1 -0
  29. package/dist/assets/blender.command-DtZhBs-u.js +1 -0
  30. package/dist/assets/blender.status-CUeX19yt.js +1 -0
  31. package/dist/assets/blender.style--aBP5V1k.js +1 -0
  32. package/dist/assets/model-inspection-D8bNMdh7.js +1 -0
  33. package/dist/assets/models.finder-Bq9jD3Zz.js +1 -0
  34. package/dist/assets/object3d-document-session-registry-BDdnn26f.js +2 -0
  35. package/dist/assets/play-mode-5IAAD_7E.js +1 -0
  36. package/dist/assets/product-C3nzG-m2.js +14 -0
  37. package/dist/assets/properties-bone-constraints.inspector-CSGhfbAl.js +1 -0
  38. package/dist/assets/properties-bone.inspector-2xytW5GN.js +1 -0
  39. package/dist/assets/properties-collection.inspector-Cq2lJKxc.js +1 -0
  40. package/dist/assets/properties-constraints.inspector-Blyjqhdx.js +1 -0
  41. package/dist/assets/properties-data.inspector-B-UdAtaa.js +1 -0
  42. package/dist/assets/properties-material.inspector-DcmWWJe_.js +1 -0
  43. package/dist/assets/properties-modifiers.inspector-gfAYqhOQ.js +1 -0
  44. package/dist/assets/properties-object.inspector-DsXyXf9q.js +1 -0
  45. package/dist/assets/properties-output.inspector-Zy7MzHdy.js +1 -0
  46. package/dist/assets/properties-particles.inspector-i61X-I7E.js +1 -0
  47. package/dist/assets/properties-physics.inspector-3ZiIf3OT.js +1 -0
  48. package/dist/assets/properties-render.inspector-D_ub1JWi.js +1 -0
  49. package/dist/assets/properties-scene.inspector-PR-DpJb-.js +1 -0
  50. package/dist/assets/properties-texture.inspector-ChHrR9F5.js +1 -0
  51. package/dist/assets/properties-view-layer.inspector-SufJ0dAW.js +1 -0
  52. package/dist/assets/properties-world.inspector-CkOdhT8h.js +1 -0
  53. package/dist/assets/react-18-DGI3m4Rv.js +1 -0
  54. package/dist/assets/stage-keyboard-D2XH4c5a.js +1 -0
  55. package/dist/assets/stage-overlay-set-CPbFSgu5.js +1 -0
  56. package/dist/assets/stage-presence-markers-Bs0lTNKz.js +1 -0
  57. package/dist/assets/stage-transform-tools-D3eFqt-8.js +1 -0
  58. package/dist/assets/standard-viewport-dressing-CcJpN9qO.js +24 -0
  59. package/dist/assets/three-integration.service-B3Ypz8DF.js +2 -0
  60. package/dist/assets/volter-sdk-Cd88wUVM.js +2363 -0
  61. package/dist/assets/volter-sdk-account-BQNYfQdr.js +1 -0
  62. package/dist/assets/volter-sdk-client-DmOnQnhj.js +1 -0
  63. package/dist/assets/volter-sdk-contributions-BiksgdN8.js +1 -0
  64. package/dist/assets/volter-sdk-css-numeric-style-DFt91emM.js +1 -0
  65. package/dist/assets/volter-sdk-document-probe-BJD0SaG8.js +1 -0
  66. package/dist/assets/volter-sdk-editor-view-C0pE6Jst.js +1 -0
  67. package/dist/assets/volter-sdk-host-Dt0OFENH.js +1 -0
  68. package/dist/assets/volter-sdk-http-transport.browser-hJy9tlZG.js +1 -0
  69. package/dist/assets/volter-sdk-index-tQ3jMIJ3.js +1 -0
  70. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-Ew7ngL2n.js +1 -0
  71. package/dist/assets/volter-sdk-kit-account-client-D2T4MHYC.js +1 -0
  72. package/dist/assets/volter-sdk-kit-action-registry-Bh-ooACa.js +1 -0
  73. package/dist/assets/volter-sdk-kit-active-product-w5n3Az6B.js +1 -0
  74. package/dist/assets/volter-sdk-kit-active-project-Domfzyn9.js +1 -0
  75. package/dist/assets/volter-sdk-kit-adapter-editor-config-DWR9YC41.js +1 -0
  76. package/dist/assets/volter-sdk-kit-adapter-observation-CGlCp2ti.js +1 -0
  77. package/dist/assets/volter-sdk-kit-animation-animation-clock-DQFyFUtd.js +1 -0
  78. package/dist/assets/volter-sdk-kit-animation-stage-transport--01Hsn9d.js +1 -0
  79. package/dist/assets/volter-sdk-kit-api-assets-wtrv9iAQ.js +1 -0
  80. package/dist/assets/volter-sdk-kit-api-base-B4mvmsTp.js +1 -0
  81. package/dist/assets/volter-sdk-kit-api-build-CKyFFObY.js +1 -0
  82. package/dist/assets/volter-sdk-kit-api-logs-t6OhJOjM.js +1 -0
  83. package/dist/assets/volter-sdk-kit-api-project-identity-C8W4kJQb.js +1 -0
  84. package/dist/assets/volter-sdk-kit-api-project-open-C9SFdDvq.js +1 -0
  85. package/dist/assets/volter-sdk-kit-api-project-source-DLUoj-zP.js +1 -0
  86. package/dist/assets/volter-sdk-kit-api-project-state-CwqN4Qau.js +1 -0
  87. package/dist/assets/volter-sdk-kit-api-relay-dTLuKzqy.js +1 -0
  88. package/dist/assets/volter-sdk-kit-api-settings-CfCDk5pF.js +1 -0
  89. package/dist/assets/volter-sdk-kit-api-themes-BCgNqfMU.js +1 -0
  90. package/dist/assets/volter-sdk-kit-api-worktrees-B7yoW7U9.js +1 -0
  91. package/dist/assets/volter-sdk-kit-asset-capabilities-DXC-rBlN.js +1 -0
  92. package/dist/assets/volter-sdk-kit-asset-compare-core-Bxxa4XFh.js +1 -0
  93. package/dist/assets/volter-sdk-kit-asset-editor-context-CbIbXKGV.js +1 -0
  94. package/dist/assets/volter-sdk-kit-asset-events-DmCFlzl8.js +1 -0
  95. package/dist/assets/volter-sdk-kit-asset-inspector-actions-BgxnXNRO.js +1 -0
  96. package/dist/assets/volter-sdk-kit-asset-selection-hJ47qhRO.js +1 -0
  97. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-zxmFNF9T.js +1 -0
  98. package/dist/assets/volter-sdk-kit-asset-thumbnails-dil7yIAo.js +1 -0
  99. package/dist/assets/volter-sdk-kit-asset-viewers-BDqIYX9l.js +1 -0
  100. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-DkqHcgxM.js +1 -0
  101. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-BrTZVxjc.js +1 -0
  102. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-CKlUYkEm.js +1 -0
  103. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-CfNpfZ-Q.js +1 -0
  104. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-3bpFkV2d.js +1 -0
  105. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-DfynD8Av.js +1 -0
  106. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-B_sxJdcg.js +1 -0
  107. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-vrVNOMTA.js +1 -0
  108. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-CPsk1-NH.js +1 -0
  109. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-BYI-gSeg.js +1 -0
  110. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-Bntmobzd.js +1 -0
  111. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-CXhj9de9.js +1 -0
  112. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-CY9zp7jb.js +1 -0
  113. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-D4kupFuu.js +1 -0
  114. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-Cu55S5ff.js +1 -0
  115. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-CaNAdvD7.js +1 -0
  116. package/dist/assets/volter-sdk-kit-authoring-active-adapter-wkR7PWJR.js +1 -0
  117. package/dist/assets/volter-sdk-kit-authoring-active-systems-B0P_LUxb.js +1 -0
  118. package/dist/assets/volter-sdk-kit-authoring-adapter-key-cPMEqfHY.js +1 -0
  119. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-oVTz9hbR.js +1 -0
  120. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-Bh5HAy3j.js +1 -0
  121. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-CKuPxGkX.js +1 -0
  122. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-ZNmpY2dq.js +1 -0
  123. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-pGzlqXET.js +1 -0
  124. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-Bw8Pk3_f.js +1 -0
  125. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-DzEUJljL.js +1 -0
  126. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-B4hzjYNv.js +1 -0
  127. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-uQSXZrqy.js +1 -0
  128. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-DBtfVC3c.js +1 -0
  129. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-Df72J-Kv.js +1 -0
  130. package/dist/assets/volter-sdk-kit-authoring-layered-pick-DPZvKhGv.js +1 -0
  131. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-CwSbwIvH.js +1 -0
  132. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-Dv3bmUyS.js +1 -0
  133. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-ByhH-y6z.js +1 -0
  134. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CEUbD0cp.js +1 -0
  135. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-C09y4CTc.js +1 -0
  136. package/dist/assets/volter-sdk-kit-authoring-provenance-BDecHewQ.js +1 -0
  137. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-D3nEtS47.js +1 -0
  138. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-DD8vfkoy.js +1 -0
  139. package/dist/assets/volter-sdk-kit-authoring-react-story-board-D2Wtlaol.js +1 -0
  140. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-DFymgGNv.js +1 -0
  141. package/dist/assets/volter-sdk-kit-authoring-selection-scope-BaeJ4znv.js +1 -0
  142. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-woeLfUho.js +1 -0
  143. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-PNrTFqDf.js +1 -0
  144. package/dist/assets/volter-sdk-kit-authoring-three-root-Cuiyd_vH.js +1 -0
  145. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-CC7U7Gb_.js +1 -0
  146. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BEKDls7C.js +1 -0
  147. package/dist/assets/volter-sdk-kit-authoring-world-session-state-CmXYhCa6.js +1 -0
  148. package/dist/assets/volter-sdk-kit-availability-tick-Dln2GW0h.js +1 -0
  149. package/dist/assets/volter-sdk-kit-bitmap-label-Wc0rp-PZ.js +1 -0
  150. package/dist/assets/volter-sdk-kit-boot-routing-C6o_2i-f.js +1 -0
  151. package/dist/assets/volter-sdk-kit-breakpoint-state-D0AIbzJQ.js +1 -0
  152. package/dist/assets/volter-sdk-kit-build-identity-BNh5KkaN.js +1 -0
  153. package/dist/assets/volter-sdk-kit-bytes-codec-BHao1VxI.js +1 -0
  154. package/dist/assets/volter-sdk-kit-cancellation-reason-BJWSK681.js +1 -0
  155. package/dist/assets/volter-sdk-kit-canvas-frames-DIQ4reBM.js +1 -0
  156. package/dist/assets/volter-sdk-kit-capture-camera-pose-BItFJ-4O.js +1 -0
  157. package/dist/assets/volter-sdk-kit-capture-size-NYcx46bm.js +1 -0
  158. package/dist/assets/volter-sdk-kit-chrome-registry-PrLYbd7w.js +1 -0
  159. package/dist/assets/volter-sdk-kit-chrome-slot-registry-5Yunxvyu.js +1 -0
  160. package/dist/assets/volter-sdk-kit-collaboration-client-C0pOVusM.js +1 -0
  161. package/dist/assets/volter-sdk-kit-collaboration-presence-CSep3SRW.js +1 -0
  162. package/dist/assets/volter-sdk-kit-command-dispatch-DYOS0b6X.js +1 -0
  163. package/dist/assets/volter-sdk-kit-command-listener-B2aUIdO_.js +1 -0
  164. package/dist/assets/volter-sdk-kit-command-registry-C6s9ez0x.js +1 -0
  165. package/dist/assets/volter-sdk-kit-component-board-registry-CPSGLodi.js +1 -0
  166. package/dist/assets/volter-sdk-kit-component-states-registry-uwD_K5FZ.js +1 -0
  167. package/dist/assets/volter-sdk-kit-components-AlignToolbar-B1jfk2-h.js +1 -0
  168. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DFYPwM2_.js +1 -0
  169. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-DqdHw1ro.js +1 -0
  170. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-DuDJhGbW.js +1 -0
  171. package/dist/assets/volter-sdk-kit-components-BoardRulers-D-7zIjIp.js +1 -0
  172. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-aLLmMkl-.js +1 -0
  173. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-AIJAyzl6.js +1 -0
  174. package/dist/assets/volter-sdk-kit-components-ChromeSlot-Dmnr-R9N.js +1 -0
  175. package/dist/assets/volter-sdk-kit-components-CodeView-B8nWMIWk.js +1 -0
  176. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-CsLPZxoQ.js +1 -0
  177. package/dist/assets/volter-sdk-kit-components-ConsolePanel-CQ6-E7bC.js +1 -0
  178. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-PQzqsGI1.js +1 -0
  179. package/dist/assets/volter-sdk-kit-components-InspectionProjection-DLPoue9J.js +1 -0
  180. package/dist/assets/volter-sdk-kit-components-Inspector-D8gm4Ll-.js +1 -0
  181. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-RR7UxM9S.js +1 -0
  182. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-DeNCQ3oO.js +1 -0
  183. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-CBgv0_vE.js +1 -0
  184. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-NXGypuOJ.js +1 -0
  185. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-5CBNu-CH.js +1 -0
  186. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-DG72WUV6.js +1 -0
  187. package/dist/assets/volter-sdk-kit-components-MediaProperties-l8iSNmPM.js +1 -0
  188. package/dist/assets/volter-sdk-kit-components-ProjectHeader-BVJ8V2Cv.js +1 -0
  189. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-DfhMXFh5.js +1 -0
  190. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CK_v1Fhp.js +1 -0
  191. package/dist/assets/volter-sdk-kit-components-RootTextEditor-DaNzSWQ0.js +1 -0
  192. package/dist/assets/volter-sdk-kit-components-SaveStatus-CZBWbrsa.js +1 -0
  193. package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CXeQy8-r.js +1 -0
  194. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-8y94Xs5K.js +1 -0
  195. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-Baw1gij4.js +1 -0
  196. package/dist/assets/volter-sdk-kit-components-ToolHost-BjdxxOHg.js +1 -0
  197. package/dist/assets/volter-sdk-kit-components-Toolbar-CrQ41PYx.js +1 -0
  198. package/dist/assets/volter-sdk-kit-components-TransientHint-CgiA7GBB.js +1 -0
  199. package/dist/assets/volter-sdk-kit-components-VersionControlSection-zpJNw0UZ.js +1 -0
  200. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-P3Q6TA5X.js +1 -0
  201. package/dist/assets/volter-sdk-kit-components-VolterLogo-B0RQIcUq.js +1 -0
  202. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-1zBOekaf.js +1 -0
  203. package/dist/assets/volter-sdk-kit-components-account-documents--DKGiUkS.js +1 -0
  204. package/dist/assets/volter-sdk-kit-components-asset-documents-C7AXqnBO.js +1 -0
  205. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-vdhMIVqI.js +1 -0
  206. package/dist/assets/volter-sdk-kit-components-asset-selection-section-BDJgnv_n.js +1 -0
  207. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-BJbjZw0A.js +1 -0
  208. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-BFsj-6z5.js +1 -0
  209. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-DCAHQ_x1.js +1 -0
  210. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DQKsqgz4.js +1 -0
  211. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-BvhjpiQo.js +1 -0
  212. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-BKSuMksR.js +1 -0
  213. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BcxU1Q-2.js +1 -0
  214. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-DXF32tz4.js +1 -0
  215. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-CZooNpx0.js +1 -0
  216. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-Dgtj1qNV.js +1 -0
  217. package/dist/assets/volter-sdk-kit-components-board-guides-CVBJuLLC.js +1 -0
  218. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-ftkO5-96.js +1 -0
  219. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BV8BmrnH.js +1 -0
  220. package/dist/assets/volter-sdk-kit-components-core-utilities-BO8fe0yD.js +1 -0
  221. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-CePbgJt4.js +1 -0
  222. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-C9tQ3ACR.js +1 -0
  223. package/dist/assets/volter-sdk-kit-components-inspector-selection-Bgt9ftYB.js +1 -0
  224. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BSAf-SXZ.js +1 -0
  225. package/dist/assets/volter-sdk-kit-components-inspector-transform-3ipEStDV.js +1 -0
  226. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-BtCMJjy9.js +1 -0
  227. package/dist/assets/volter-sdk-kit-components-kind-documents-D4YDpNlL.js +1 -0
  228. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-D_oCggmn.js +1 -0
  229. package/dist/assets/volter-sdk-kit-components-project-tool-documents-D-d_wqWh.js +1 -0
  230. package/dist/assets/volter-sdk-kit-components-scene-documents-DctHrAtf.js +1 -0
  231. package/dist/assets/volter-sdk-kit-components-status-contributions--yiivsS_.js +1 -0
  232. package/dist/assets/volter-sdk-kit-components-tool-documents-Bu26NqzP.js +1 -0
  233. package/dist/assets/volter-sdk-kit-components-tool-schema-form-BIC2FP2E.js +1 -0
  234. package/dist/assets/volter-sdk-kit-components-use-after-paint-Cb8thzXA.js +1 -0
  235. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-5qQviJaa.js +1 -0
  236. package/dist/assets/volter-sdk-kit-components-workspace-history-Dft-dNOf.js +1 -0
  237. package/dist/assets/volter-sdk-kit-components-world-documents-Cs5KZABr.js +1 -0
  238. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-DXClSQbn.js +1 -0
  239. package/dist/assets/volter-sdk-kit-composite-screenshot-B5xl3YZL.js +1 -0
  240. package/dist/assets/volter-sdk-kit-content-entry-source-registry-CbNGVrnm.js +1 -0
  241. package/dist/assets/volter-sdk-kit-contribution-surfaces-DTp8kOmt.js +1 -0
  242. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-C7SCF7k1.js +1 -0
  243. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-BWFHsvcq.js +1 -0
  244. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-CbKoi7QY.js +1 -0
  245. package/dist/assets/volter-sdk-kit-coverage-session-vitals-DK1SPV7o.js +1 -0
  246. package/dist/assets/volter-sdk-kit-creation-site-registry-BLfylNxg.js +1 -0
  247. package/dist/assets/volter-sdk-kit-delegate-harness-registry-P-doCmch.js +1 -0
  248. package/dist/assets/volter-sdk-kit-document-areas-DT8xdQB5.js +1 -0
  249. package/dist/assets/volter-sdk-kit-document-context-registry-C6Xdsls2.js +1 -0
  250. package/dist/assets/volter-sdk-kit-document-open-registry-DKWXowxX.js +1 -0
  251. package/dist/assets/volter-sdk-kit-document-play-extension-Dhm1SJ2u.js +1 -0
  252. package/dist/assets/volter-sdk-kit-document-preview-source-Brl-4-4X.js +1 -0
  253. package/dist/assets/volter-sdk-kit-document-renderer-session-Bepr94q5.js +1 -0
  254. package/dist/assets/volter-sdk-kit-document-stage-sessions-M0aYxKOt.js +1 -0
  255. package/dist/assets/volter-sdk-kit-document-viewports-DoXuasR5.js +1 -0
  256. package/dist/assets/volter-sdk-kit-editor-api-B9qYU5P3.js +1 -0
  257. package/dist/assets/volter-sdk-kit-editor-chrome-capture-Ci7PvfjQ.js +1 -0
  258. package/dist/assets/volter-sdk-kit-editor-commands-Digy9yp8.js +1 -0
  259. package/dist/assets/volter-sdk-kit-editor-console-jPbI3RQW.js +1 -0
  260. package/dist/assets/volter-sdk-kit-editor-current-view-2jTaNCl-.js +1 -0
  261. package/dist/assets/volter-sdk-kit-editor-document-probe-DarUq-Lx.js +1 -0
  262. package/dist/assets/volter-sdk-kit-editor-git-client-BMMgQA5R.js +1 -0
  263. package/dist/assets/volter-sdk-kit-editor-hotkeys-DMErohcO.js +1 -0
  264. package/dist/assets/volter-sdk-kit-editor-lease-C2FbULHE.js +1 -0
  265. package/dist/assets/volter-sdk-kit-editor-lease-view-Cd5Fb03w.js +1 -0
  266. package/dist/assets/volter-sdk-kit-editor-mode-C4bXxTNT.js +1 -0
  267. package/dist/assets/volter-sdk-kit-editor-notifications-CY6vUwAD.js +1 -0
  268. package/dist/assets/volter-sdk-kit-editor-presence-CV5Xglgn.js +1 -0
  269. package/dist/assets/volter-sdk-kit-editor-presentation-activity-BFnqgRdm.js +1 -0
  270. package/dist/assets/volter-sdk-kit-editor-presentation-notice-7DpSat7f.js +1 -0
  271. package/dist/assets/volter-sdk-kit-editor-runtime-D-0lyVsY.js +1 -0
  272. package/dist/assets/volter-sdk-kit-editor-server-response-DxGElkuq.js +1 -0
  273. package/dist/assets/volter-sdk-kit-editor-session-attribution-Bc81S1An.js +1 -0
  274. package/dist/assets/volter-sdk-kit-editor-session-mode-BJ58UYPt.js +1 -0
  275. package/dist/assets/volter-sdk-kit-editor-state-facets-Bc8MR14h.js +1 -0
  276. package/dist/assets/volter-sdk-kit-editor-view-presentation-BZP1zJIF.js +1 -0
  277. package/dist/assets/volter-sdk-kit-environment-images-DjiVMF0d.js +1 -0
  278. package/dist/assets/volter-sdk-kit-eyedropper-session-VuC_9EWM.js +1 -0
  279. package/dist/assets/volter-sdk-kit-files-file-provider-BSMD8Z_3.js +1 -0
  280. package/dist/assets/volter-sdk-kit-files-project-files-bhi-0UC2.js +1 -0
  281. package/dist/assets/volter-sdk-kit-finders-index-B1Kxstzz.js +1 -0
  282. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-D_vVaYk0.js +1 -0
  283. package/dist/assets/volter-sdk-kit-frame-frame-parts-BVVes2Vm.js +1 -0
  284. package/dist/assets/volter-sdk-kit-framed-document-capture-DKgRhGaM.js +1 -0
  285. package/dist/assets/volter-sdk-kit-game-surface-defaults-QZ4QRBR_.js +1 -0
  286. package/dist/assets/volter-sdk-kit-gameplay-export-state-BBfE5I4W.js +1 -0
  287. package/dist/assets/volter-sdk-kit-gameplay-replay-BSjBncMo.js +1 -0
  288. package/dist/assets/volter-sdk-kit-gameplay-session-time-Bbs_Jfwe.js +1 -0
  289. package/dist/assets/volter-sdk-kit-gameplay-sessions-CBS0tj-P.js +1 -0
  290. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-CKy3BA79.js +1 -0
  291. package/dist/assets/volter-sdk-kit-hierarchy-internals-DmBD43q6.js +1 -0
  292. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-C8AYD79n.js +1 -0
  293. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-C3p11xIq.js +1 -0
  294. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BOc1EwTx.js +1 -0
  295. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-CwFSZeyE.js +1 -0
  296. package/dist/assets/volter-sdk-kit-hierarchy-projection-CVJik8z_.js +1 -0
  297. package/dist/assets/volter-sdk-kit-hierarchy-row-media-BtLb9wyg.js +1 -0
  298. package/dist/assets/volter-sdk-kit-hierarchy-row-model-CD-Vfjaj.js +1 -0
  299. package/dist/assets/volter-sdk-kit-hierarchy-rows-DSbI0DJU.js +1 -0
  300. package/dist/assets/volter-sdk-kit-hierarchy-walk-YDBghfV9.js +1 -0
  301. package/dist/assets/volter-sdk-kit-history-editor-session-CRB2NADs.js +1 -0
  302. package/dist/assets/volter-sdk-kit-history-history-commands-DViz-SJz.js +1 -0
  303. package/dist/assets/volter-sdk-kit-history-history-delegate-DGvBZMiM.js +1 -0
  304. package/dist/assets/volter-sdk-kit-history-history-limit-notices-DtKPJjjY.js +1 -0
  305. package/dist/assets/volter-sdk-kit-history-history-service-C24j9LhD.js +1 -0
  306. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-CoTkAMSy.js +1 -0
  307. package/dist/assets/volter-sdk-kit-history-project-file-history-DkPHwMwL.js +1 -0
  308. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-D_-eqs_4.js +1 -0
  309. package/dist/assets/volter-sdk-kit-history-resource-registry-TtzAWiNn.js +1 -0
  310. package/dist/assets/volter-sdk-kit-history-snapshot-store-BQqTPP9-.js +1 -0
  311. package/dist/assets/volter-sdk-kit-history-source-history-backend-Dhwp6VYz.js +1 -0
  312. package/dist/assets/volter-sdk-kit-hmr-registration-group-vM--Ad2n.js +1 -0
  313. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-fVdR-sQz.js +1 -0
  314. package/dist/assets/volter-sdk-kit-hotkeys-DiySpg-y.js +1 -0
  315. package/dist/assets/volter-sdk-kit-inference-diagnostics-BKvtVfGh.js +1 -0
  316. package/dist/assets/volter-sdk-kit-initial-project-kbHeA2rH.js +1 -0
  317. package/dist/assets/volter-sdk-kit-inspection-active-subject-CunuJDS_.js +1 -0
  318. package/dist/assets/volter-sdk-kit-inspection-active-surface-CxxrsrEb.js +1 -0
  319. package/dist/assets/volter-sdk-kit-inspection-compose-subject-nYh7rqGf.js +1 -0
  320. package/dist/assets/volter-sdk-kit-inspection-display-Cf76NM0p.js +1 -0
  321. package/dist/assets/volter-sdk-kit-inspection-document-subject-CqFtyg-1.js +1 -0
  322. package/dist/assets/volter-sdk-kit-inspection-game-subject-1dRpR_Ml.js +1 -0
  323. package/dist/assets/volter-sdk-kit-inspection-model-CjXNfoPH.js +1 -0
  324. package/dist/assets/volter-sdk-kit-inspection-node-media-DSNdiVkP.js +1 -0
  325. package/dist/assets/volter-sdk-kit-inspection-null-subject-DJYdYunH.js +1 -0
  326. package/dist/assets/volter-sdk-kit-inspection-serialize-BmEYF2C_.js +1 -0
  327. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-vI_riQCj.js +1 -0
  328. package/dist/assets/volter-sdk-kit-inspector-presentation-D2GX-e21.js +1 -0
  329. package/dist/assets/volter-sdk-kit-inspector-property-grouping-DEOgyj3A.js +1 -0
  330. package/dist/assets/volter-sdk-kit-inspector-section-registry-L4DvEIYA.js +1 -0
  331. package/dist/assets/volter-sdk-kit-instance-source-actions-CPd26Z3H.js +1 -0
  332. package/dist/assets/volter-sdk-kit-js-heap-BLVIf3Ed.js +1 -0
  333. package/dist/assets/volter-sdk-kit-key-actions-CcvhnYSR.js +1 -0
  334. package/dist/assets/volter-sdk-kit-keymap-presets-tMtl4ruF.js +1 -0
  335. package/dist/assets/volter-sdk-kit-layout-policy-Btz3BQi1.js +1 -0
  336. package/dist/assets/volter-sdk-kit-light-explorer-model-Deis67vL.js +1 -0
  337. package/dist/assets/volter-sdk-kit-live-canvas-frame-CXcsnKfI.js +1 -0
  338. package/dist/assets/volter-sdk-kit-live-document-CvxBMLKB.js +1 -0
  339. package/dist/assets/volter-sdk-kit-live-gesture-lock-BPA6q0VJ.js +1 -0
  340. package/dist/assets/volter-sdk-kit-live-seam-evidence-DrLFUzTl.js +1 -0
  341. package/dist/assets/volter-sdk-kit-live-session-registry-CDqtFqYd.js +1 -0
  342. package/dist/assets/volter-sdk-kit-live-transition-c22_FDCE.js +1 -0
  343. package/dist/assets/volter-sdk-kit-manifest-project-B79XRIw0.js +1 -0
  344. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-BJtLfy1U.js +1 -0
  345. package/dist/assets/volter-sdk-kit-mount-failure-report-Dc9vSnmX.js +1 -0
  346. package/dist/assets/volter-sdk-kit-native-selection-style-DjSkh3fV.js +1 -0
  347. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-xfZHqeAT.js +1 -0
  348. package/dist/assets/volter-sdk-kit-packaged-runtime-Bg2p9vFX.js +1 -0
  349. package/dist/assets/volter-sdk-kit-performance-profiler-BKCJP7Iy.js +1 -0
  350. package/dist/assets/volter-sdk-kit-performance-sources-DyK6JyPm.js +1 -0
  351. package/dist/assets/volter-sdk-kit-photograph-notice--73dfbBV.js +1 -0
  352. package/dist/assets/volter-sdk-kit-play-boot-phase-D7vQGvH2.js +1 -0
  353. package/dist/assets/volter-sdk-kit-play-camera-flight-DRnGWage.js +1 -0
  354. package/dist/assets/volter-sdk-kit-presentation-surface-DOrs05Ga.js +1 -0
  355. package/dist/assets/volter-sdk-kit-product-command-B6XZbk12.js +1 -0
  356. package/dist/assets/volter-sdk-kit-project-adapter-DWKrJw4g.js +1 -0
  357. package/dist/assets/volter-sdk-kit-project-asset-refresh-DDigzaOl.js +1 -0
  358. package/dist/assets/volter-sdk-kit-project-asset-roots-C-W6INCH.js +1 -0
  359. package/dist/assets/volter-sdk-kit-project-local-state-CfC65NXN.js +1 -0
  360. package/dist/assets/volter-sdk-kit-project-manager-D0JZDzSR.js +1 -0
  361. package/dist/assets/volter-sdk-kit-project-module-changes-D8es1v6Z.js +1 -0
  362. package/dist/assets/volter-sdk-kit-project-module-split-C7I6wr-l.js +1 -0
  363. package/dist/assets/volter-sdk-kit-project-provenance-Bqj7J1SM.js +1 -0
  364. package/dist/assets/volter-sdk-kit-project-ready-CBJ4HvJ6.js +1 -0
  365. package/dist/assets/volter-sdk-kit-project-shape-CsZiiDKV.js +1 -0
  366. package/dist/assets/volter-sdk-kit-project-tools-CSCc2vQE.js +1 -0
  367. package/dist/assets/volter-sdk-kit-readiness-CzYPSvRg.js +1 -0
  368. package/dist/assets/volter-sdk-kit-renderer-resource-counts-DLnoJYFz.js +1 -0
  369. package/dist/assets/volter-sdk-kit-reported-play-state-D_380loj.js +1 -0
  370. package/dist/assets/volter-sdk-kit-resolve-contributed-command-CH8iHmbq.js +1 -0
  371. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-CFas2z88.js +1 -0
  372. package/dist/assets/volter-sdk-kit-retained-document-states-lemj2v-W.js +1 -0
  373. package/dist/assets/volter-sdk-kit-scene-document-plan-vJmrjT6v.js +1 -0
  374. package/dist/assets/volter-sdk-kit-scene-live-open-BOrJaiSE.js +1 -0
  375. package/dist/assets/volter-sdk-kit-scoped-game-css-z2GWO1Hi.js +1 -0
  376. package/dist/assets/volter-sdk-kit-served-url-BlMlexVv.js +1 -0
  377. package/dist/assets/volter-sdk-kit-session-close-DYWC7xja.js +1 -0
  378. package/dist/assets/volter-sdk-kit-session-tombstone-WIZzFDz6.js +1 -0
  379. package/dist/assets/volter-sdk-kit-settings-settings-provider-BugjBn5T.js +1 -0
  380. package/dist/assets/volter-sdk-kit-settings-store-D5jxah4S.js +1 -0
  381. package/dist/assets/volter-sdk-kit-shell-store-D_H7F2MQ.js +1 -0
  382. package/dist/assets/volter-sdk-kit-shell-store-door-C3iFBlFI.js +1 -0
  383. package/dist/assets/volter-sdk-kit-source-conflict-Dc7qFgQv.js +1 -0
  384. package/dist/assets/volter-sdk-kit-stage-context-DOC1sCAw.js +1 -0
  385. package/dist/assets/volter-sdk-kit-stage-invalidation-RvOXliCg.js +1 -0
  386. package/dist/assets/volter-sdk-kit-stage-store-registry-DqITQOM9.js +1 -0
  387. package/dist/assets/volter-sdk-kit-startup-failure-L6sSF_Lq.js +1 -0
  388. package/dist/assets/volter-sdk-kit-state-report-deferral-DfBHO8A7.js +1 -0
  389. package/dist/assets/volter-sdk-kit-storage-host-files-storage-D2Ap233y.js +1 -0
  390. package/dist/assets/volter-sdk-kit-storage-http-storage--_-Vqc16.js +1 -0
  391. package/dist/assets/volter-sdk-kit-storage-index-bnCLoPaZ.js +1 -0
  392. package/dist/assets/volter-sdk-kit-storage-mem-storage-DX4mk-gU.js +1 -0
  393. package/dist/assets/volter-sdk-kit-storage-path-lock-S9KpkJ5Q.js +1 -0
  394. package/dist/assets/volter-sdk-kit-storage-paths-B07XmYnf.js +1 -0
  395. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-Dly_9F8x.js +1 -0
  396. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-R5ZZqFFi.js +1 -0
  397. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-DWR578Ma.js +1 -0
  398. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-Bd2FHwx3.js +1 -0
  399. package/dist/assets/volter-sdk-kit-stories-project-story-regions-C8xGet-U.js +1 -0
  400. package/dist/assets/volter-sdk-kit-stories-scope-BaqoyIcB.js +1 -0
  401. package/dist/assets/volter-sdk-kit-stories-story-capture-CbSD1tRT.js +1 -0
  402. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-CYka_Tdg.js +1 -0
  403. package/dist/assets/volter-sdk-kit-stories-story-discovery-CgbiX3Rk.js +1 -0
  404. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-B7Y-d4bH.js +1 -0
  405. package/dist/assets/volter-sdk-kit-stories-story-grouping-DP9hFz_k.js +1 -0
  406. package/dist/assets/volter-sdk-kit-stories-story-presentation-CPe68b1B.js +1 -0
  407. package/dist/assets/volter-sdk-kit-stories-story-registry-B6xVomH1.js +1 -0
  408. package/dist/assets/volter-sdk-kit-story-document-openers-CSlB073z.js +1 -0
  409. package/dist/assets/volter-sdk-kit-story-thumbnails-CLTQEt0m.js +1 -0
  410. package/dist/assets/volter-sdk-kit-surface-keyboard-a_dv0sZE.js +1 -0
  411. package/dist/assets/volter-sdk-kit-surface-state-BKmtfs-W.js +1 -0
  412. package/dist/assets/volter-sdk-kit-system-seam-evidence-Dxwz00MF.js +1 -0
  413. package/dist/assets/volter-sdk-kit-tab-census-BGYedIaJ.js +1 -0
  414. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-VxlG5a3E.js +1 -0
  415. package/dist/assets/volter-sdk-kit-theme-library-Bd79RUm6.js +1 -0
  416. package/dist/assets/volter-sdk-kit-theme-preference-XGxtKIw5.js +1 -0
  417. package/dist/assets/volter-sdk-kit-three-viewport-presentation-Bnv9w0so.js +1 -0
  418. package/dist/assets/volter-sdk-kit-tool-contribution-play-Bcf6W_bo.js +1 -0
  419. package/dist/assets/volter-sdk-kit-tool-loader-BS2aMFhl.js +1 -0
  420. package/dist/assets/volter-sdk-kit-transform-mode-request-CigkC5nm.js +1 -0
  421. package/dist/assets/volter-sdk-kit-transient-hint-BOzFXaIa.js +1 -0
  422. package/dist/assets/volter-sdk-kit-transport-strip-EVLKEVRI.js +1 -0
  423. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-DrHjQH1I.js +1 -0
  424. package/dist/assets/volter-sdk-kit-ui-source-inspect-B5rI5jyl.js +1 -0
  425. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-DWnQ_uWi.js +1 -0
  426. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-CWR43D6_.js +1 -0
  427. package/dist/assets/volter-sdk-kit-user-local-state-C-jpggUr.js +1 -0
  428. package/dist/assets/volter-sdk-kit-viewport-activation-timings-Gn_u8yxu.js +1 -0
  429. package/dist/assets/volter-sdk-kit-viewport-editor-controls-CFXhVR-S.js +1 -0
  430. package/dist/assets/volter-sdk-kit-viewport-presentation-h9DQ1oP8.js +1 -0
  431. package/dist/assets/volter-sdk-kit-viewport-surface-status-MXp5sxdl.js +1 -0
  432. package/dist/assets/volter-sdk-kit-wait-until-jsGTLTH1.js +1 -0
  433. package/dist/assets/volter-sdk-kit-worker-call-metrics-BjZ4EC8N.js +1 -0
  434. package/dist/assets/volter-sdk-kit-workspace-areas-Dip3_OpF.js +1 -0
  435. package/dist/assets/volter-sdk-kit-workspace-aux-commands-BUyoFMgq.js +1 -0
  436. package/dist/assets/volter-sdk-kit-workspace-available-documents-N73MvND7.js +1 -0
  437. package/dist/assets/volter-sdk-kit-workspace-core-utilities-C6pc7nSn.js +1 -0
  438. package/dist/assets/volter-sdk-kit-workspace-document-ids-C7DWtnqM.js +1 -0
  439. package/dist/assets/volter-sdk-kit-workspace-document-registry-Dr2eMIXd.js +1 -0
  440. package/dist/assets/volter-sdk-kit-workspace-document-restore-DZVIhXjI.js +1 -0
  441. package/dist/assets/volter-sdk-kit-workspace-host-commands-s1N1LQKm.js +1 -0
  442. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-Dv7LY_W1.js +1 -0
  443. package/dist/assets/volter-sdk-kit-workspace-play-utilities-mFcswEQ4.js +1 -0
  444. package/dist/assets/volter-sdk-kit-workspace-presets-BObbKRJp.js +1 -0
  445. package/dist/assets/volter-sdk-kit-workspace-regions-C_vSI6c7.js +1 -0
  446. package/dist/assets/volter-sdk-kit-workspace-static-panels-Dkpl8FGQ.js +1 -0
  447. package/dist/assets/volter-sdk-kit-workspace-status-registry-DA8RDz-z.js +1 -0
  448. package/dist/assets/volter-sdk-kit-workspace-storage-Uluh-oka.js +1 -0
  449. package/dist/assets/volter-sdk-kit-workspace-style-fU6Ycfob.js +1 -0
  450. package/dist/assets/volter-sdk-kit-workspace-utility-commands-CxM9-cYZ.js +1 -0
  451. package/dist/assets/volter-sdk-kit-workspace-utility-registry-C2BxiBai.js +1 -0
  452. package/dist/assets/volter-sdk-kit-world-adoption-DuOKG7qb.js +1 -0
  453. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-D3PksGnX.js +1 -0
  454. package/dist/assets/volter-sdk-kit-world-document-routing-Bwl1ChoC.js +1 -0
  455. package/dist/assets/volter-sdk-kit-world-pan-state-COt6nxGY.js +1 -0
  456. package/dist/assets/volter-sdk-kit-write-pipe-CRjih3Ly.js +1 -0
  457. package/dist/assets/volter-sdk-layout-arrangements-B8Inn2Or.js +1 -0
  458. package/dist/assets/volter-sdk-layouts-3RYrN5nx.js +1 -0
  459. package/dist/assets/volter-sdk-selection-Dh0GMcic.js +1 -0
  460. package/dist/assets/volter-sdk-session-command-table-C1ABaU0d.js +1 -0
  461. package/dist/assets/volter-sdk-session-editor-brand-BDPYGdwb.js +1 -0
  462. package/dist/assets/volter-sdk-session-editor-compatibility-OSj902Uh.js +1 -0
  463. package/dist/assets/volter-sdk-session-editor-control-protocol-__WsAHiK.js +1 -0
  464. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-DXghb1QM.js +1 -0
  465. package/dist/assets/volter-sdk-session-game-css-scope-B8RmBszs.js +1 -0
  466. package/dist/assets/volter-sdk-session-project-module-url-DyBQUJ4_.js +1 -0
  467. package/dist/assets/volter-sdk-session-relative-path-guard-CJxcoKzG.js +1 -0
  468. package/dist/assets/volter-sdk-session-tool-contribution-convention-D8BNy8e9.js +1 -0
  469. package/dist/assets/volter-sdk-types-CxJGCgD5.js +1 -0
  470. package/dist/assets/volter-sdk-views-BWAaZJoQ.js +1 -0
  471. package/dist/assets/volter-sdk-widgets-design-system-BokmCET2.js +1 -0
  472. package/dist/assets/volter-sdk-widgets-editor-appearance-D55ij51f.js +1 -0
  473. package/dist/assets/volter-sdk-widgets-editor-material-BdiZd4Ql.js +1 -0
  474. package/dist/assets/volter-sdk-widgets-icon-set-registry-DZfMnwh1.js +1 -0
  475. package/dist/assets/volter-sdk-widgets-index-DrR90IFs.js +1 -0
  476. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-ergUhr63.js +1 -0
  477. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-D9i4botc.js +1 -0
  478. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-DCzGzUPX.js +1 -0
  479. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-kmBCunes.js +1 -0
  480. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BjJjrp4K.js +1 -0
  481. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-qG9ZFr4g.js +1 -0
  482. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BVN3WOoi.js +1 -0
  483. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DSoZOSNS.js +1 -0
  484. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-BRiN7tw6.js +1 -0
  485. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-CJ9CRR1G.js +1 -0
  486. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BWvipay-.js +1 -0
  487. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-B3l_-nGK.js +1 -0
  488. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-3n5n4igC.js +1 -0
  489. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CD5Lhnni.js +1 -0
  490. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-BZofUlyW.js +1 -0
  491. package/dist/assets/volter-sdk-widgets-patterns-Dialog-yfA0BFtK.js +1 -0
  492. package/dist/assets/volter-sdk-widgets-patterns-Fields-CWaPPr3U.js +1 -0
  493. package/dist/assets/volter-sdk-widgets-patterns-List-BjCHBQiG.js +1 -0
  494. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BWon3TZr.js +1 -0
  495. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-D8-7bzow.js +1 -0
  496. package/dist/assets/volter-sdk-widgets-patterns-Tabs-BUI5hbOX.js +1 -0
  497. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-BQT1BWI_.js +1 -0
  498. package/dist/assets/volter-sdk-widgets-patterns-Tree-Di3cYG5C.js +1 -0
  499. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-B095DDUA.js +1 -0
  500. package/dist/assets/volter-sdk-widgets-primitives-Button-Bxbf5ZF5.js +1 -0
  501. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DSEfW6Xd.js +1 -0
  502. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-DeK9hiJc.js +1 -0
  503. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-BEm90bji.js +1 -0
  504. package/dist/assets/volter-sdk-widgets-primitives-FormControls-pjmC6_9q.js +1 -0
  505. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-CGkWP-oi.js +1 -0
  506. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-BlqOEB0e.js +1 -0
  507. package/dist/assets/volter-sdk-widgets-primitives-Layout-Dec-l3q0.js +1 -0
  508. package/dist/assets/volter-sdk-widgets-primitives-Menu-BV4swOn5.js +1 -0
  509. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-cIoGdNzs.js +1 -0
  510. package/dist/assets/volter-sdk-widgets-primitives-Panel-D6T13dKw.js +1 -0
  511. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-zEtWUgum.js +1 -0
  512. package/dist/assets/volter-sdk-widgets-primitives-Text-DQkWbVh3.js +1 -0
  513. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DUMjd9aT.js +1 -0
  514. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-DtwxJ8ov.js +1 -0
  515. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-BbvI7uBl.js +1 -0
  516. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-BhVAuaco.js +1 -0
  517. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-C_t0Lu9x.js +1 -0
  518. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Bl0gaV7l.js +1 -0
  519. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-UFGdOI5W.js +1 -0
  520. package/dist/assets/volter-sdk-widgets-theme-CCVF0mp4.js +1 -0
  521. package/dist/assets/volter-sdk-widgets-z-index-CnuXK0pJ.js +1 -0
  522. package/dist/assets/volter-shared-fontawesome-7QMkh8SD.js +1 -0
  523. package/dist/assets/volter-shared-jsx-dev-runtime-DoyjQqxF.js +1 -0
  524. package/dist/assets/volter-shared-jsx-runtime-C5zcQWtQ.js +1 -0
  525. package/dist/assets/volter-shared-react-BHW23f2A.js +1 -0
  526. package/dist/assets/volter-shared-react-dom-DMn4NVoI.js +1 -0
  527. package/dist/assets/volter-shared-react-dom-client-CYvEId_P.js +1 -0
  528. package/dist/volter-shared-react.json +6 -6
  529. package/dist/volter-shared-sdk.json +461 -461
  530. package/dist-node/cli.js +14 -14
  531. package/dist-node/create.js +14 -14
  532. package/package.json +14 -14
  533. package/starter/AGENTS.md +284 -325
  534. package/dist/assets/EntityModelDocument-COvgB31b.js +0 -1
  535. package/dist/assets/EnvironmentAssetDocument-Dw03w7Tn.js +0 -1
  536. package/dist/assets/InspectorObjectPreview-BvHqJr_k.js +0 -1
  537. package/dist/assets/LiveModuleDocument-BzByJOMb.js +0 -2
  538. package/dist/assets/LutAssetDocument-C_-kOPKt.js +0 -1
  539. package/dist/assets/ModelAssetDocument-DQIzPoBi.js +0 -1
  540. package/dist/assets/NonThreeAuthoringBootstrap-DPe6KQ53.js +0 -1
  541. package/dist/assets/Object3DDocumentToolbar-CIjcyXJU.js +0 -1
  542. package/dist/assets/Object3DPreview-Bd17CXNH.js +0 -2
  543. package/dist/assets/QuarksAssetDocument-DxnhHU9Q.js +0 -2
  544. package/dist/assets/ShaderAssetDocument-BKh9kPCl.js +0 -1
  545. package/dist/assets/StageHost-byzihJ82.js +0 -1179
  546. package/dist/assets/ToolObject3DPreview-BysWq_d7.js +0 -1
  547. package/dist/assets/ViewportShadingMenu-FkPS3xzH.js +0 -1
  548. package/dist/assets/animation-mixers.service-B1qiSglm.js +0 -1
  549. package/dist/assets/animation-timeline.utility-DU_Gp9vo.js +0 -1
  550. package/dist/assets/asset-preview-CZzQwgFD.js +0 -4
  551. package/dist/assets/blender-node-editor.document-jPjSwJSo.js +0 -1
  552. package/dist/assets/blender-properties-model-o0LlJxyO.js +0 -1
  553. package/dist/assets/blender-properties-tab-FmXad-sn.js +0 -3
  554. package/dist/assets/blender-runtime-host-BIbAyIGd.js +0 -7284
  555. package/dist/assets/blender-runtime.document-g-0d4ORE.js +0 -13
  556. package/dist/assets/blender-screenshot.menu-wI5B6NZv.js +0 -1
  557. package/dist/assets/blender-timeline.document-CqjNIT76.js +0 -1
  558. package/dist/assets/blender-uv-editor.document-Pzy6Gw29.js +0 -1
  559. package/dist/assets/blender-version.status-DI47Hn_8.js +0 -1
  560. package/dist/assets/blender.command-D6rOw2bd.js +0 -1
  561. package/dist/assets/blender.status-ByCFckM0.js +0 -1
  562. package/dist/assets/blender.style-DaIh9SiA.js +0 -1
  563. package/dist/assets/model-inspection-ljY6Me_l.js +0 -1
  564. package/dist/assets/models.finder-C6ZhWCef.js +0 -1
  565. package/dist/assets/object3d-document-session-registry-DEoHbI_d.js +0 -2
  566. package/dist/assets/play-mode-CByMmQwJ.js +0 -1
  567. package/dist/assets/product-DZzerh_v.js +0 -14
  568. package/dist/assets/properties-bone-constraints.inspector-rc5KTG2H.js +0 -1
  569. package/dist/assets/properties-bone.inspector-B_Dbs4ht.js +0 -1
  570. package/dist/assets/properties-collection.inspector-4vGIfMTh.js +0 -1
  571. package/dist/assets/properties-constraints.inspector-CFXHHs2J.js +0 -1
  572. package/dist/assets/properties-data.inspector-CIxLabqj.js +0 -1
  573. package/dist/assets/properties-material.inspector-CmaQv6dl.js +0 -1
  574. package/dist/assets/properties-modifiers.inspector-C26hId8E.js +0 -1
  575. package/dist/assets/properties-object.inspector-sqlGqfwS.js +0 -1
  576. package/dist/assets/properties-output.inspector-DvHS1aw6.js +0 -1
  577. package/dist/assets/properties-particles.inspector-BfaZUxbn.js +0 -1
  578. package/dist/assets/properties-physics.inspector-CRQCKLHH.js +0 -1
  579. package/dist/assets/properties-render.inspector-7w3U-iqM.js +0 -1
  580. package/dist/assets/properties-scene.inspector-CMG1Y7-m.js +0 -1
  581. package/dist/assets/properties-texture.inspector-jRCq--uW.js +0 -1
  582. package/dist/assets/properties-view-layer.inspector-NVnJdxAx.js +0 -1
  583. package/dist/assets/properties-world.inspector-CMxW1FY6.js +0 -1
  584. package/dist/assets/react-18-0Qmu5NE6.js +0 -1
  585. package/dist/assets/stage-keyboard-TDMkTsCX.js +0 -1
  586. package/dist/assets/stage-overlay-set-BLOUpfLH.js +0 -1
  587. package/dist/assets/stage-presence-markers-muXFZ50U.js +0 -1
  588. package/dist/assets/stage-transform-tools-Di7cHUP2.js +0 -1
  589. package/dist/assets/standard-viewport-dressing-DeErCVm3.js +0 -24
  590. package/dist/assets/three-integration.service-Bc-N4c0t.js +0 -2
  591. package/dist/assets/volter-sdk-DO4_-y9e.js +0 -2363
  592. package/dist/assets/volter-sdk-account-wPUt5o57.js +0 -1
  593. package/dist/assets/volter-sdk-client-B15gLyC1.js +0 -1
  594. package/dist/assets/volter-sdk-contributions-C0nSwako.js +0 -1
  595. package/dist/assets/volter-sdk-css-numeric-style-jZExItWf.js +0 -1
  596. package/dist/assets/volter-sdk-document-probe-DMy-JIXX.js +0 -1
  597. package/dist/assets/volter-sdk-editor-view-DaQgW67v.js +0 -1
  598. package/dist/assets/volter-sdk-host-CFArYkwy.js +0 -1
  599. package/dist/assets/volter-sdk-http-transport.browser-ByAjHftj.js +0 -1
  600. package/dist/assets/volter-sdk-index-7vWy2Ys0.js +0 -1
  601. package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-5eYbH4-I.js +0 -1
  602. package/dist/assets/volter-sdk-kit-account-client-CbvOVxqD.js +0 -1
  603. package/dist/assets/volter-sdk-kit-action-registry-DQf4fTV0.js +0 -1
  604. package/dist/assets/volter-sdk-kit-active-product-D5p1U6j5.js +0 -1
  605. package/dist/assets/volter-sdk-kit-active-project-DVV0pfa0.js +0 -1
  606. package/dist/assets/volter-sdk-kit-adapter-editor-config-kohd8Vud.js +0 -1
  607. package/dist/assets/volter-sdk-kit-adapter-observation-C_PKlyoy.js +0 -1
  608. package/dist/assets/volter-sdk-kit-animation-animation-clock-BhqqN-ie.js +0 -1
  609. package/dist/assets/volter-sdk-kit-animation-stage-transport-Bvs4k0JP.js +0 -1
  610. package/dist/assets/volter-sdk-kit-api-assets-DAm_ZKLv.js +0 -1
  611. package/dist/assets/volter-sdk-kit-api-base-CjZ363n1.js +0 -1
  612. package/dist/assets/volter-sdk-kit-api-build-C_G5gUAG.js +0 -1
  613. package/dist/assets/volter-sdk-kit-api-logs-DYQh75uZ.js +0 -1
  614. package/dist/assets/volter-sdk-kit-api-project-identity-L1x3AUKL.js +0 -1
  615. package/dist/assets/volter-sdk-kit-api-project-open-DFXIoZ-7.js +0 -1
  616. package/dist/assets/volter-sdk-kit-api-project-source-CO-4g2qg.js +0 -1
  617. package/dist/assets/volter-sdk-kit-api-project-state-CVVl_fgH.js +0 -1
  618. package/dist/assets/volter-sdk-kit-api-relay-Dvv-DLQi.js +0 -1
  619. package/dist/assets/volter-sdk-kit-api-settings-BXoKZmpo.js +0 -1
  620. package/dist/assets/volter-sdk-kit-api-themes-DcLsWht_.js +0 -1
  621. package/dist/assets/volter-sdk-kit-api-worktrees-BVE9KOZD.js +0 -1
  622. package/dist/assets/volter-sdk-kit-asset-capabilities-CIJmfSO3.js +0 -1
  623. package/dist/assets/volter-sdk-kit-asset-compare-core-UhCgBdRt.js +0 -1
  624. package/dist/assets/volter-sdk-kit-asset-editor-context-BsMxyPcj.js +0 -1
  625. package/dist/assets/volter-sdk-kit-asset-events-CRSmu6Bt.js +0 -1
  626. package/dist/assets/volter-sdk-kit-asset-inspector-actions-CgMkUTWY.js +0 -1
  627. package/dist/assets/volter-sdk-kit-asset-selection-FQNfuP4_.js +0 -1
  628. package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-Cfdxs18U.js +0 -1
  629. package/dist/assets/volter-sdk-kit-asset-thumbnails-CK5XlMmI.js +0 -1
  630. package/dist/assets/volter-sdk-kit-asset-viewers-B1HOOI8I.js +0 -1
  631. package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-Dlfsl2tO.js +0 -1
  632. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-DiZz_XYK.js +0 -1
  633. package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-CUYtrE34.js +0 -1
  634. package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Cn306Ec3.js +0 -1
  635. package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-D0oFUggY.js +0 -1
  636. package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-D_BqZCir.js +0 -1
  637. package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DypzS9aT.js +0 -1
  638. package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-BpiNI5yE.js +0 -1
  639. package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-CrcclK5A.js +0 -1
  640. package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-Cdr2HDGC.js +0 -1
  641. package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-Qcj5MZlg.js +0 -1
  642. package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-C0NRJq5L.js +0 -1
  643. package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-CE54pXA9.js +0 -1
  644. package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-BUy-n5M7.js +0 -1
  645. package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DL3yZOeN.js +0 -1
  646. package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-B6Irdlxp.js +0 -1
  647. package/dist/assets/volter-sdk-kit-authoring-active-adapter-D1PdDlbw.js +0 -1
  648. package/dist/assets/volter-sdk-kit-authoring-active-systems-B83a_Nvq.js +0 -1
  649. package/dist/assets/volter-sdk-kit-authoring-adapter-key-BZSdmDBV.js +0 -1
  650. package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-C8QAmsSy.js +0 -1
  651. package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-Da6WaABm.js +0 -1
  652. package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-C_8B2n05.js +0 -1
  653. package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-Dl7DMhFF.js +0 -1
  654. package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-C8gWKCM9.js +0 -1
  655. package/dist/assets/volter-sdk-kit-authoring-consumer-actions-D43faS7A.js +0 -1
  656. package/dist/assets/volter-sdk-kit-authoring-design-time-layers-oaS2870j.js +0 -1
  657. package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-xGRMo9jH.js +0 -1
  658. package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-DPUio_Qx.js +0 -1
  659. package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-Vos3HE2y.js +0 -1
  660. package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-CEKDZg3S.js +0 -1
  661. package/dist/assets/volter-sdk-kit-authoring-layered-pick-X0fWSt9l.js +0 -1
  662. package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-CJysqQyZ.js +0 -1
  663. package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-DqzKRD6C.js +0 -1
  664. package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-CS-DR4fs.js +0 -1
  665. package/dist/assets/volter-sdk-kit-authoring-panel-authoring-CBW9Mw6J.js +0 -1
  666. package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-DaKaenF6.js +0 -1
  667. package/dist/assets/volter-sdk-kit-authoring-provenance-c6-_1muM.js +0 -1
  668. package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-D4_OHY_D.js +0 -1
  669. package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-Dkj2PoL8.js +0 -1
  670. package/dist/assets/volter-sdk-kit-authoring-react-story-board-DiD8MdTN.js +0 -1
  671. package/dist/assets/volter-sdk-kit-authoring-seam-evidence-BSYuNpqd.js +0 -1
  672. package/dist/assets/volter-sdk-kit-authoring-selection-scope-DRxP-v2s.js +0 -1
  673. package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-B-Ds2N6e.js +0 -1
  674. package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-sRSrwNl8.js +0 -1
  675. package/dist/assets/volter-sdk-kit-authoring-three-root-DytOcM_O.js +0 -1
  676. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-Cxu1dKip.js +0 -1
  677. package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BUgezLvy.js +0 -1
  678. package/dist/assets/volter-sdk-kit-authoring-world-session-state-BHgAF6nV.js +0 -1
  679. package/dist/assets/volter-sdk-kit-availability-tick-CumB3lb-.js +0 -1
  680. package/dist/assets/volter-sdk-kit-bitmap-label-BIlNxE_Y.js +0 -1
  681. package/dist/assets/volter-sdk-kit-boot-routing-DchhAX6Y.js +0 -1
  682. package/dist/assets/volter-sdk-kit-breakpoint-state-Bzpz74Ms.js +0 -1
  683. package/dist/assets/volter-sdk-kit-build-identity-BkDfv8nQ.js +0 -1
  684. package/dist/assets/volter-sdk-kit-bytes-codec-BMQZwTE9.js +0 -1
  685. package/dist/assets/volter-sdk-kit-cancellation-reason-VPWeL8k3.js +0 -1
  686. package/dist/assets/volter-sdk-kit-canvas-frames-BYr72TE5.js +0 -1
  687. package/dist/assets/volter-sdk-kit-capture-camera-pose-41C48GCc.js +0 -1
  688. package/dist/assets/volter-sdk-kit-capture-size-BcWq5zAw.js +0 -1
  689. package/dist/assets/volter-sdk-kit-chrome-registry-BGq6j2Ae.js +0 -1
  690. package/dist/assets/volter-sdk-kit-chrome-slot-registry-DsmZxMb8.js +0 -1
  691. package/dist/assets/volter-sdk-kit-collaboration-client-DMiMAMOZ.js +0 -1
  692. package/dist/assets/volter-sdk-kit-collaboration-presence-BGrAJ28t.js +0 -1
  693. package/dist/assets/volter-sdk-kit-command-dispatch-C_R40QGO.js +0 -1
  694. package/dist/assets/volter-sdk-kit-command-listener-CA5VDufN.js +0 -1
  695. package/dist/assets/volter-sdk-kit-command-registry-0J8fLnL9.js +0 -1
  696. package/dist/assets/volter-sdk-kit-component-board-registry-CWK9irco.js +0 -1
  697. package/dist/assets/volter-sdk-kit-component-states-registry-DdNmwxT_.js +0 -1
  698. package/dist/assets/volter-sdk-kit-components-AlignToolbar-jIrFVYNk.js +0 -1
  699. package/dist/assets/volter-sdk-kit-components-ApplicationMenus-C1UCNNpK.js +0 -1
  700. package/dist/assets/volter-sdk-kit-components-AssetEditorShell-CHJXi1Hk.js +0 -1
  701. package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-CdQLATBz.js +0 -1
  702. package/dist/assets/volter-sdk-kit-components-BoardRulers-ZjTvtwOb.js +0 -1
  703. package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-CQlt7fCX.js +0 -1
  704. package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-qeNRb83m.js +0 -1
  705. package/dist/assets/volter-sdk-kit-components-ChromeSlot-BqS5Uzmv.js +0 -1
  706. package/dist/assets/volter-sdk-kit-components-CodeView-BeyLpXX0.js +0 -1
  707. package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-BOnxQUC4.js +0 -1
  708. package/dist/assets/volter-sdk-kit-components-ConsolePanel-DiS8DJ-m.js +0 -1
  709. package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-BexBiQ9y.js +0 -1
  710. package/dist/assets/volter-sdk-kit-components-InspectionProjection-YycAqD2h.js +0 -1
  711. package/dist/assets/volter-sdk-kit-components-Inspector-zp19zthC.js +0 -1
  712. package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-CcJjLsQo.js +0 -1
  713. package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-hA6glNT8.js +0 -1
  714. package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-8q-lLoP0.js +0 -1
  715. package/dist/assets/volter-sdk-kit-components-InspectorToolSection-D2hf35LR.js +0 -1
  716. package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-Du8nUpVz.js +0 -1
  717. package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-CsYSm0f2.js +0 -1
  718. package/dist/assets/volter-sdk-kit-components-MediaProperties-C8QhNVll.js +0 -1
  719. package/dist/assets/volter-sdk-kit-components-ProjectHeader-Ckbol7ie.js +0 -1
  720. package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-BiEww6yG.js +0 -1
  721. package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-DzR5NVPx.js +0 -1
  722. package/dist/assets/volter-sdk-kit-components-RootTextEditor-C_v3S2jT.js +0 -1
  723. package/dist/assets/volter-sdk-kit-components-SaveStatus-CS2gcmkz.js +0 -1
  724. package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-CeonwMQ1.js +0 -1
  725. package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-DY5MgmnF.js +0 -1
  726. package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-D9pTZZ2s.js +0 -1
  727. package/dist/assets/volter-sdk-kit-components-ToolHost-CY2NymBs.js +0 -1
  728. package/dist/assets/volter-sdk-kit-components-Toolbar-DZx7X2AC.js +0 -1
  729. package/dist/assets/volter-sdk-kit-components-TransientHint-8ZKe9r-n.js +0 -1
  730. package/dist/assets/volter-sdk-kit-components-VersionControlSection-DlvJfTex.js +0 -1
  731. package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-kgz8PKV-.js +0 -1
  732. package/dist/assets/volter-sdk-kit-components-VolterLogo-B__BHK9u.js +0 -1
  733. package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-Cr-ye_4u.js +0 -1
  734. package/dist/assets/volter-sdk-kit-components-account-documents-rnhK_6KL.js +0 -1
  735. package/dist/assets/volter-sdk-kit-components-asset-documents-Bf5qJSUn.js +0 -1
  736. package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-CeMVEEIM.js +0 -1
  737. package/dist/assets/volter-sdk-kit-components-asset-selection-section-VHgJFs0I.js +0 -1
  738. package/dist/assets/volter-sdk-kit-components-asset-thumbnails-3MoYp8v0.js +0 -1
  739. package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-RGnwKd4f.js +0 -1
  740. package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-B0zN2ky8.js +0 -1
  741. package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-S6XRdxwI.js +0 -1
  742. package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-mX3gcjyD.js +0 -1
  743. package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-BwvCzCAw.js +0 -1
  744. package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BVF6YgSC.js +0 -1
  745. package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-D8YYzoJI.js +0 -1
  746. package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-JkwUl8zI.js +0 -1
  747. package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-Dy4SuzAd.js +0 -1
  748. package/dist/assets/volter-sdk-kit-components-board-guides-CtYgR3vt.js +0 -1
  749. package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-CyleppM9.js +0 -1
  750. package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-DIgmoWZb.js +0 -1
  751. package/dist/assets/volter-sdk-kit-components-core-utilities-DiUpX6_J.js +0 -1
  752. package/dist/assets/volter-sdk-kit-components-inspector-preview-section-DozO0dGc.js +0 -1
  753. package/dist/assets/volter-sdk-kit-components-inspector-revert-label-DphwTmZ7.js +0 -1
  754. package/dist/assets/volter-sdk-kit-components-inspector-selection-CylkZ1xp.js +0 -1
  755. package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-DWrDvKfW.js +0 -1
  756. package/dist/assets/volter-sdk-kit-components-inspector-transform-Bn2W8JK2.js +0 -1
  757. package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-CcJXxbUj.js +0 -1
  758. package/dist/assets/volter-sdk-kit-components-kind-documents-CifWEUqd.js +0 -1
  759. package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-V8W2YB8X.js +0 -1
  760. package/dist/assets/volter-sdk-kit-components-project-tool-documents-BT85al6e.js +0 -1
  761. package/dist/assets/volter-sdk-kit-components-scene-documents-CMl_tHf2.js +0 -1
  762. package/dist/assets/volter-sdk-kit-components-status-contributions-C1KC6Io3.js +0 -1
  763. package/dist/assets/volter-sdk-kit-components-tool-documents-D2pXqS_X.js +0 -1
  764. package/dist/assets/volter-sdk-kit-components-tool-schema-form-BESrWRSG.js +0 -1
  765. package/dist/assets/volter-sdk-kit-components-use-after-paint-Cqjy2aQN.js +0 -1
  766. package/dist/assets/volter-sdk-kit-components-use-project-image-assets-4Ifh1dMg.js +0 -1
  767. package/dist/assets/volter-sdk-kit-components-workspace-history-DHn5J9TV.js +0 -1
  768. package/dist/assets/volter-sdk-kit-components-world-documents-BeBYn8do.js +0 -1
  769. package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-C88ain83.js +0 -1
  770. package/dist/assets/volter-sdk-kit-composite-screenshot-Cxy_sUEY.js +0 -1
  771. package/dist/assets/volter-sdk-kit-content-entry-source-registry-pbUbpoa7.js +0 -1
  772. package/dist/assets/volter-sdk-kit-contribution-surfaces-BEyZClqW.js +0 -1
  773. package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-K8clYL3O.js +0 -1
  774. package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-W5nPqp6R.js +0 -1
  775. package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Bz-w8IbS.js +0 -1
  776. package/dist/assets/volter-sdk-kit-coverage-session-vitals-tE3VjZpQ.js +0 -1
  777. package/dist/assets/volter-sdk-kit-creation-site-registry-Bvc5a6Hc.js +0 -1
  778. package/dist/assets/volter-sdk-kit-delegate-harness-registry-DPZ6PJhY.js +0 -1
  779. package/dist/assets/volter-sdk-kit-document-areas-Cls1cKy7.js +0 -1
  780. package/dist/assets/volter-sdk-kit-document-context-registry-COJ9wuwW.js +0 -1
  781. package/dist/assets/volter-sdk-kit-document-open-registry-CioaiUxS.js +0 -1
  782. package/dist/assets/volter-sdk-kit-document-play-extension-B_A4KvEe.js +0 -1
  783. package/dist/assets/volter-sdk-kit-document-preview-source-BYlnMJh4.js +0 -1
  784. package/dist/assets/volter-sdk-kit-document-renderer-session-BseH4HPy.js +0 -1
  785. package/dist/assets/volter-sdk-kit-document-stage-sessions-2H7saKcL.js +0 -1
  786. package/dist/assets/volter-sdk-kit-document-viewports-BftbQWJw.js +0 -1
  787. package/dist/assets/volter-sdk-kit-editor-api-BYTYNSUJ.js +0 -1
  788. package/dist/assets/volter-sdk-kit-editor-chrome-capture-DClKvIxe.js +0 -1
  789. package/dist/assets/volter-sdk-kit-editor-commands-DWTG0GRw.js +0 -1
  790. package/dist/assets/volter-sdk-kit-editor-console-DTxbANkB.js +0 -1
  791. package/dist/assets/volter-sdk-kit-editor-current-view-qwDflyN0.js +0 -1
  792. package/dist/assets/volter-sdk-kit-editor-document-probe-g7zFmNA3.js +0 -1
  793. package/dist/assets/volter-sdk-kit-editor-git-client-Bz9Vwugp.js +0 -1
  794. package/dist/assets/volter-sdk-kit-editor-hotkeys-0CT6NvI2.js +0 -1
  795. package/dist/assets/volter-sdk-kit-editor-lease-C8nOQYdf.js +0 -1
  796. package/dist/assets/volter-sdk-kit-editor-lease-view-C06fIqki.js +0 -1
  797. package/dist/assets/volter-sdk-kit-editor-mode-DEbLIlsu.js +0 -1
  798. package/dist/assets/volter-sdk-kit-editor-notifications-BUFrOcXY.js +0 -1
  799. package/dist/assets/volter-sdk-kit-editor-presence-CKHP-9Ur.js +0 -1
  800. package/dist/assets/volter-sdk-kit-editor-presentation-activity-eikQFo_d.js +0 -1
  801. package/dist/assets/volter-sdk-kit-editor-presentation-notice-DtnrJGvn.js +0 -1
  802. package/dist/assets/volter-sdk-kit-editor-runtime-BVFCMuQV.js +0 -1
  803. package/dist/assets/volter-sdk-kit-editor-server-response-Ce6Yb7pj.js +0 -1
  804. package/dist/assets/volter-sdk-kit-editor-session-attribution-go91xXai.js +0 -1
  805. package/dist/assets/volter-sdk-kit-editor-session-mode-DCnQNAc9.js +0 -1
  806. package/dist/assets/volter-sdk-kit-editor-state-facets-D2hGXjy-.js +0 -1
  807. package/dist/assets/volter-sdk-kit-editor-view-presentation-CF_b9Ter.js +0 -1
  808. package/dist/assets/volter-sdk-kit-environment-images-Cs993C1t.js +0 -1
  809. package/dist/assets/volter-sdk-kit-eyedropper-session-1SlXKa-5.js +0 -1
  810. package/dist/assets/volter-sdk-kit-files-file-provider-2w-uwCOQ.js +0 -1
  811. package/dist/assets/volter-sdk-kit-files-project-files-Ro9o5A8R.js +0 -1
  812. package/dist/assets/volter-sdk-kit-finders-index-CPnaOwA0.js +0 -1
  813. package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-DB7rYujP.js +0 -1
  814. package/dist/assets/volter-sdk-kit-frame-frame-parts-BJZcQJn_.js +0 -1
  815. package/dist/assets/volter-sdk-kit-framed-document-capture-C-ZGphem.js +0 -1
  816. package/dist/assets/volter-sdk-kit-game-surface-defaults-D20PoeRb.js +0 -1
  817. package/dist/assets/volter-sdk-kit-gameplay-export-state-BO1_5-0T.js +0 -1
  818. package/dist/assets/volter-sdk-kit-gameplay-replay-DOJrj73b.js +0 -1
  819. package/dist/assets/volter-sdk-kit-gameplay-session-time-BOozCmsy.js +0 -1
  820. package/dist/assets/volter-sdk-kit-gameplay-sessions-B6xQ1Ygu.js +0 -1
  821. package/dist/assets/volter-sdk-kit-hierarchy-component-marks-BSTm7yb5.js +0 -1
  822. package/dist/assets/volter-sdk-kit-hierarchy-internals-BcbwlMYS.js +0 -1
  823. package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-TTmklIoA.js +0 -1
  824. package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-BwIDl4KI.js +0 -1
  825. package/dist/assets/volter-sdk-kit-hierarchy-node-rows-CcbzWWkn.js +0 -1
  826. package/dist/assets/volter-sdk-kit-hierarchy-panel-view-BU7AsNu9.js +0 -1
  827. package/dist/assets/volter-sdk-kit-hierarchy-projection-BF4-WE9Z.js +0 -1
  828. package/dist/assets/volter-sdk-kit-hierarchy-row-media-B_-60YBV.js +0 -1
  829. package/dist/assets/volter-sdk-kit-hierarchy-row-model-Dd96u803.js +0 -1
  830. package/dist/assets/volter-sdk-kit-hierarchy-rows-DFZ0CGnb.js +0 -1
  831. package/dist/assets/volter-sdk-kit-hierarchy-walk-CLuD_lks.js +0 -1
  832. package/dist/assets/volter-sdk-kit-history-editor-session-B6l0yIvD.js +0 -1
  833. package/dist/assets/volter-sdk-kit-history-history-commands-DE8kSeTL.js +0 -1
  834. package/dist/assets/volter-sdk-kit-history-history-delegate-mPmj9QuA.js +0 -1
  835. package/dist/assets/volter-sdk-kit-history-history-limit-notices-UlKwNIyi.js +0 -1
  836. package/dist/assets/volter-sdk-kit-history-history-service-kxmGauC4.js +0 -1
  837. package/dist/assets/volter-sdk-kit-history-persistence-coordinator-B3EjWM_6.js +0 -1
  838. package/dist/assets/volter-sdk-kit-history-project-file-history-P-7nGKz2.js +0 -1
  839. package/dist/assets/volter-sdk-kit-history-project-root-history-backends-D9T7hptd.js +0 -1
  840. package/dist/assets/volter-sdk-kit-history-resource-registry-GqJXS0u1.js +0 -1
  841. package/dist/assets/volter-sdk-kit-history-snapshot-store-r-JpuS1b.js +0 -1
  842. package/dist/assets/volter-sdk-kit-history-source-history-backend-DgmBite1.js +0 -1
  843. package/dist/assets/volter-sdk-kit-hmr-registration-group-BjTc-gWi.js +0 -1
  844. package/dist/assets/volter-sdk-kit-hmr-stable-react-context-BKXJp1Wa.js +0 -1
  845. package/dist/assets/volter-sdk-kit-hotkeys-lUURj98f.js +0 -1
  846. package/dist/assets/volter-sdk-kit-inference-diagnostics-iL-icED2.js +0 -1
  847. package/dist/assets/volter-sdk-kit-initial-project-r9AGaCEV.js +0 -1
  848. package/dist/assets/volter-sdk-kit-inspection-active-subject-5S_pYQZ-.js +0 -1
  849. package/dist/assets/volter-sdk-kit-inspection-active-surface-CaQG6UKY.js +0 -1
  850. package/dist/assets/volter-sdk-kit-inspection-compose-subject-EpNpkIVA.js +0 -1
  851. package/dist/assets/volter-sdk-kit-inspection-display-CV24iFy0.js +0 -1
  852. package/dist/assets/volter-sdk-kit-inspection-document-subject-D0G1NpV-.js +0 -1
  853. package/dist/assets/volter-sdk-kit-inspection-game-subject-CZHG-nYf.js +0 -1
  854. package/dist/assets/volter-sdk-kit-inspection-model-CvdrSqjB.js +0 -1
  855. package/dist/assets/volter-sdk-kit-inspection-node-media-BXqWmQUg.js +0 -1
  856. package/dist/assets/volter-sdk-kit-inspection-null-subject-Bcb-GiSb.js +0 -1
  857. package/dist/assets/volter-sdk-kit-inspection-serialize-DjqqAPYx.js +0 -1
  858. package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-BPYhHmE5.js +0 -1
  859. package/dist/assets/volter-sdk-kit-inspector-presentation-Bk_hAuqa.js +0 -1
  860. package/dist/assets/volter-sdk-kit-inspector-property-grouping-1sIFfh6k.js +0 -1
  861. package/dist/assets/volter-sdk-kit-inspector-section-registry-mOP76jDC.js +0 -1
  862. package/dist/assets/volter-sdk-kit-instance-source-actions-DgYyTJ1L.js +0 -1
  863. package/dist/assets/volter-sdk-kit-js-heap-BgdMvJQf.js +0 -1
  864. package/dist/assets/volter-sdk-kit-key-actions-CcJ_hsat.js +0 -1
  865. package/dist/assets/volter-sdk-kit-keymap-presets-DIOyAaoY.js +0 -1
  866. package/dist/assets/volter-sdk-kit-layout-policy-B0wcwgJi.js +0 -1
  867. package/dist/assets/volter-sdk-kit-light-explorer-model-B0xwMdjo.js +0 -1
  868. package/dist/assets/volter-sdk-kit-live-canvas-frame-BzFqKVf1.js +0 -1
  869. package/dist/assets/volter-sdk-kit-live-document-CEUkBHPh.js +0 -1
  870. package/dist/assets/volter-sdk-kit-live-gesture-lock-B8xj4neH.js +0 -1
  871. package/dist/assets/volter-sdk-kit-live-seam-evidence-BKHpRDSA.js +0 -1
  872. package/dist/assets/volter-sdk-kit-live-session-registry-NoSz-y_2.js +0 -1
  873. package/dist/assets/volter-sdk-kit-live-transition-DORDLjxn.js +0 -1
  874. package/dist/assets/volter-sdk-kit-manifest-project-B7EIv9aw.js +0 -1
  875. package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-XQTJvGYG.js +0 -1
  876. package/dist/assets/volter-sdk-kit-mount-failure-report-uctUjbrg.js +0 -1
  877. package/dist/assets/volter-sdk-kit-native-selection-style-BX3u3QqS.js +0 -1
  878. package/dist/assets/volter-sdk-kit-object3d-document-write-policy-DxQlPGXa.js +0 -1
  879. package/dist/assets/volter-sdk-kit-packaged-runtime-BnE8X5j8.js +0 -1
  880. package/dist/assets/volter-sdk-kit-performance-profiler-Do-2g-Zi.js +0 -1
  881. package/dist/assets/volter-sdk-kit-performance-sources-DmNgsVvP.js +0 -1
  882. package/dist/assets/volter-sdk-kit-photograph-notice-CWe_5xpG.js +0 -1
  883. package/dist/assets/volter-sdk-kit-play-boot-phase-BpO-PhEE.js +0 -1
  884. package/dist/assets/volter-sdk-kit-play-camera-flight-BMzFf_5y.js +0 -1
  885. package/dist/assets/volter-sdk-kit-presentation-surface-CK_5E_Hw.js +0 -1
  886. package/dist/assets/volter-sdk-kit-product-command-Pwr29f2N.js +0 -1
  887. package/dist/assets/volter-sdk-kit-project-adapter-B0VtilAI.js +0 -1
  888. package/dist/assets/volter-sdk-kit-project-asset-refresh-D-TDQkZq.js +0 -1
  889. package/dist/assets/volter-sdk-kit-project-asset-roots-aKcCnW2w.js +0 -1
  890. package/dist/assets/volter-sdk-kit-project-local-state-D8ozPRJT.js +0 -1
  891. package/dist/assets/volter-sdk-kit-project-manager-BZgbSdT2.js +0 -1
  892. package/dist/assets/volter-sdk-kit-project-module-changes-llcbbEPS.js +0 -1
  893. package/dist/assets/volter-sdk-kit-project-module-split-D2QHRYrE.js +0 -1
  894. package/dist/assets/volter-sdk-kit-project-provenance-BGtQk67h.js +0 -1
  895. package/dist/assets/volter-sdk-kit-project-ready-r_DrbnUW.js +0 -1
  896. package/dist/assets/volter-sdk-kit-project-shape-CYljtx_s.js +0 -1
  897. package/dist/assets/volter-sdk-kit-project-tools-Bn80-DJf.js +0 -1
  898. package/dist/assets/volter-sdk-kit-readiness-DAUC33Ma.js +0 -1
  899. package/dist/assets/volter-sdk-kit-renderer-resource-counts-BPXCfmQD.js +0 -1
  900. package/dist/assets/volter-sdk-kit-reported-play-state-Dk7rCCTv.js +0 -1
  901. package/dist/assets/volter-sdk-kit-resolve-contributed-command-DyjnoSX-.js +0 -1
  902. package/dist/assets/volter-sdk-kit-resolve-relative-specifier-Db0j-cu5.js +0 -1
  903. package/dist/assets/volter-sdk-kit-retained-document-states-D_6yvSKL.js +0 -1
  904. package/dist/assets/volter-sdk-kit-scene-document-plan-C41RAWLI.js +0 -1
  905. package/dist/assets/volter-sdk-kit-scene-live-open-2Itf_5rk.js +0 -1
  906. package/dist/assets/volter-sdk-kit-scoped-game-css-Bc0lvAtN.js +0 -1
  907. package/dist/assets/volter-sdk-kit-served-url-DUGfcPPj.js +0 -1
  908. package/dist/assets/volter-sdk-kit-session-close-BN2fd4lm.js +0 -1
  909. package/dist/assets/volter-sdk-kit-session-tombstone-CBG2IMlr.js +0 -1
  910. package/dist/assets/volter-sdk-kit-settings-settings-provider-Daly1PI0.js +0 -1
  911. package/dist/assets/volter-sdk-kit-settings-store-C6x0_aNn.js +0 -1
  912. package/dist/assets/volter-sdk-kit-shell-store-BB3eIVlD.js +0 -1
  913. package/dist/assets/volter-sdk-kit-shell-store-door-D7n_t68k.js +0 -1
  914. package/dist/assets/volter-sdk-kit-source-conflict-CDVydpX_.js +0 -1
  915. package/dist/assets/volter-sdk-kit-stage-context-DMJMMnOi.js +0 -1
  916. package/dist/assets/volter-sdk-kit-stage-invalidation-CsH4o-eV.js +0 -1
  917. package/dist/assets/volter-sdk-kit-stage-store-registry-2dCwP_-U.js +0 -1
  918. package/dist/assets/volter-sdk-kit-startup-failure-C4pTlDXZ.js +0 -1
  919. package/dist/assets/volter-sdk-kit-state-report-deferral-BNWZ0Pmq.js +0 -1
  920. package/dist/assets/volter-sdk-kit-storage-host-files-storage-DDZlTTcQ.js +0 -1
  921. package/dist/assets/volter-sdk-kit-storage-http-storage-BaIU5Wwf.js +0 -1
  922. package/dist/assets/volter-sdk-kit-storage-index-CxXgwnLJ.js +0 -1
  923. package/dist/assets/volter-sdk-kit-storage-mem-storage-R2K8J1hc.js +0 -1
  924. package/dist/assets/volter-sdk-kit-storage-path-lock-Bl3dm8op.js +0 -1
  925. package/dist/assets/volter-sdk-kit-storage-paths-CfKmJRS2.js +0 -1
  926. package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-BIw090Cm.js +0 -1
  927. package/dist/assets/volter-sdk-kit-stories-compose-project-stories-C04g6Myy.js +0 -1
  928. package/dist/assets/volter-sdk-kit-stories-prefabs-finder-BynTuzNO.js +0 -1
  929. package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-6zMkHvRp.js +0 -1
  930. package/dist/assets/volter-sdk-kit-stories-project-story-regions-NVsOoh-t.js +0 -1
  931. package/dist/assets/volter-sdk-kit-stories-scope-BlbVm0HZ.js +0 -1
  932. package/dist/assets/volter-sdk-kit-stories-story-capture-Dbafez9N.js +0 -1
  933. package/dist/assets/volter-sdk-kit-stories-story-declared-medium-CVvgZtQQ.js +0 -1
  934. package/dist/assets/volter-sdk-kit-stories-story-discovery-CHhjjlFM.js +0 -1
  935. package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-BLnbn3f9.js +0 -1
  936. package/dist/assets/volter-sdk-kit-stories-story-grouping-Bc1-xcW8.js +0 -1
  937. package/dist/assets/volter-sdk-kit-stories-story-presentation-km4alPJC.js +0 -1
  938. package/dist/assets/volter-sdk-kit-stories-story-registry-CEckhU-h.js +0 -1
  939. package/dist/assets/volter-sdk-kit-story-document-openers-BRhuDI1q.js +0 -1
  940. package/dist/assets/volter-sdk-kit-story-thumbnails-CPRX-vXy.js +0 -1
  941. package/dist/assets/volter-sdk-kit-surface-keyboard-DwYTYPkC.js +0 -1
  942. package/dist/assets/volter-sdk-kit-surface-state-6chriu48.js +0 -1
  943. package/dist/assets/volter-sdk-kit-system-seam-evidence-D3wlNSjh.js +0 -1
  944. package/dist/assets/volter-sdk-kit-tab-census-DA8unEL0.js +0 -1
  945. package/dist/assets/volter-sdk-kit-tab-lifecycle-client-CCXy_Nr0.js +0 -1
  946. package/dist/assets/volter-sdk-kit-theme-library-BsTa9EnD.js +0 -1
  947. package/dist/assets/volter-sdk-kit-theme-preference-7cbKlQYG.js +0 -1
  948. package/dist/assets/volter-sdk-kit-three-viewport-presentation-eJqDHxB_.js +0 -1
  949. package/dist/assets/volter-sdk-kit-tool-contribution-play-Br1O7Bpo.js +0 -1
  950. package/dist/assets/volter-sdk-kit-tool-loader-BFc9_5mU.js +0 -1
  951. package/dist/assets/volter-sdk-kit-transform-mode-request-WBbQlsUY.js +0 -1
  952. package/dist/assets/volter-sdk-kit-transient-hint-BvBMQl53.js +0 -1
  953. package/dist/assets/volter-sdk-kit-transport-strip-MsX6taxp.js +0 -1
  954. package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-DUhbS4hJ.js +0 -1
  955. package/dist/assets/volter-sdk-kit-ui-source-inspect-CFVyyVWi.js +0 -1
  956. package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-C1mzO8hd.js +0 -1
  957. package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-7BJyCfox.js +0 -1
  958. package/dist/assets/volter-sdk-kit-user-local-state-CnFd43eI.js +0 -1
  959. package/dist/assets/volter-sdk-kit-viewport-activation-timings-DK-_Hk8i.js +0 -1
  960. package/dist/assets/volter-sdk-kit-viewport-editor-controls-wtNwbgh-.js +0 -1
  961. package/dist/assets/volter-sdk-kit-viewport-presentation-BBCU3cnw.js +0 -1
  962. package/dist/assets/volter-sdk-kit-viewport-surface-status-DKKTFoQc.js +0 -1
  963. package/dist/assets/volter-sdk-kit-wait-until-Dk1CioLm.js +0 -1
  964. package/dist/assets/volter-sdk-kit-worker-call-metrics-DP1ibCSj.js +0 -1
  965. package/dist/assets/volter-sdk-kit-workspace-areas-BNydeZ9f.js +0 -1
  966. package/dist/assets/volter-sdk-kit-workspace-aux-commands-BejGZPiM.js +0 -1
  967. package/dist/assets/volter-sdk-kit-workspace-available-documents-DkW7huc_.js +0 -1
  968. package/dist/assets/volter-sdk-kit-workspace-core-utilities-CU7834s5.js +0 -1
  969. package/dist/assets/volter-sdk-kit-workspace-document-ids-VjnkEcai.js +0 -1
  970. package/dist/assets/volter-sdk-kit-workspace-document-registry-g632jxTj.js +0 -1
  971. package/dist/assets/volter-sdk-kit-workspace-document-restore-BS7_MBm7.js +0 -1
  972. package/dist/assets/volter-sdk-kit-workspace-host-commands-C8h5gS9V.js +0 -1
  973. package/dist/assets/volter-sdk-kit-workspace-persistence-gate-CaSZzmYC.js +0 -1
  974. package/dist/assets/volter-sdk-kit-workspace-play-utilities-BevJyDD-.js +0 -1
  975. package/dist/assets/volter-sdk-kit-workspace-presets-D5QIi2SQ.js +0 -1
  976. package/dist/assets/volter-sdk-kit-workspace-regions-8zc3C4VB.js +0 -1
  977. package/dist/assets/volter-sdk-kit-workspace-static-panels-CCrvf5oL.js +0 -1
  978. package/dist/assets/volter-sdk-kit-workspace-status-registry-BKJYFIoe.js +0 -1
  979. package/dist/assets/volter-sdk-kit-workspace-storage-C_ddKQlQ.js +0 -1
  980. package/dist/assets/volter-sdk-kit-workspace-style-BfTAZFay.js +0 -1
  981. package/dist/assets/volter-sdk-kit-workspace-utility-commands-lP2OWA0z.js +0 -1
  982. package/dist/assets/volter-sdk-kit-workspace-utility-registry-B-foxQ-C.js +0 -1
  983. package/dist/assets/volter-sdk-kit-world-adoption-Csithpmb.js +0 -1
  984. package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-D7yJH_ZL.js +0 -1
  985. package/dist/assets/volter-sdk-kit-world-document-routing-DpnhSNiV.js +0 -1
  986. package/dist/assets/volter-sdk-kit-world-pan-state-ZrDZ10sh.js +0 -1
  987. package/dist/assets/volter-sdk-kit-write-pipe-CAF68fO7.js +0 -1
  988. package/dist/assets/volter-sdk-layout-arrangements-DBgQwSnU.js +0 -1
  989. package/dist/assets/volter-sdk-layouts-WIClMrdG.js +0 -1
  990. package/dist/assets/volter-sdk-selection-CvCcx3-f.js +0 -1
  991. package/dist/assets/volter-sdk-session-command-table-CO3oYhLs.js +0 -1
  992. package/dist/assets/volter-sdk-session-editor-brand-CIl_rs65.js +0 -1
  993. package/dist/assets/volter-sdk-session-editor-compatibility-DU9vOUMV.js +0 -1
  994. package/dist/assets/volter-sdk-session-editor-control-protocol-AsmaOXjB.js +0 -1
  995. package/dist/assets/volter-sdk-session-entrypoint-selection-readers-Tr6zvtSp.js +0 -1
  996. package/dist/assets/volter-sdk-session-game-css-scope-vrf_s9tA.js +0 -1
  997. package/dist/assets/volter-sdk-session-project-module-url-CFRXNIyA.js +0 -1
  998. package/dist/assets/volter-sdk-session-relative-path-guard-CA9bTEx5.js +0 -1
  999. package/dist/assets/volter-sdk-session-tool-contribution-convention-ByTOSeIB.js +0 -1
  1000. package/dist/assets/volter-sdk-types-HWTl3YLJ.js +0 -1
  1001. package/dist/assets/volter-sdk-views-BnPfnhu0.js +0 -1
  1002. package/dist/assets/volter-sdk-widgets-design-system-CjqTxQxp.js +0 -1
  1003. package/dist/assets/volter-sdk-widgets-editor-appearance-DsAR4pMM.js +0 -1
  1004. package/dist/assets/volter-sdk-widgets-editor-material-CF6kV85g.js +0 -1
  1005. package/dist/assets/volter-sdk-widgets-icon-set-registry-Cwiz4YLK.js +0 -1
  1006. package/dist/assets/volter-sdk-widgets-index-DXWGtPCq.js +0 -1
  1007. package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-CK2hpw1J.js +0 -1
  1008. package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-D55CifKu.js +0 -1
  1009. package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-Bep1Qi32.js +0 -1
  1010. package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-E0rlIeU5.js +0 -1
  1011. package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-xr3aritk.js +0 -1
  1012. package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-BO9mC3YX.js +0 -1
  1013. package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-DXutHK-6.js +0 -1
  1014. package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DOow8es6.js +0 -1
  1015. package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-iGWJcj7K.js +0 -1
  1016. package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-BU-6SYTg.js +0 -1
  1017. package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BuGQPEOI.js +0 -1
  1018. package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-CKDt8AOw.js +0 -1
  1019. package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D9kfGpjR.js +0 -1
  1020. package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-D0rxJy8e.js +0 -1
  1021. package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CQ67d7kv.js +0 -1
  1022. package/dist/assets/volter-sdk-widgets-patterns-Dialog-BFjn8Sd_.js +0 -1
  1023. package/dist/assets/volter-sdk-widgets-patterns-Fields-DcnXQUm5.js +0 -1
  1024. package/dist/assets/volter-sdk-widgets-patterns-List-BkuXz3ke.js +0 -1
  1025. package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C0YGa2YR.js +0 -1
  1026. package/dist/assets/volter-sdk-widgets-patterns-Surfaces-DbOwR7Xt.js +0 -1
  1027. package/dist/assets/volter-sdk-widgets-patterns-Tabs-BG0st8-5.js +0 -1
  1028. package/dist/assets/volter-sdk-widgets-patterns-Toolbar-DaI3sd6m.js +0 -1
  1029. package/dist/assets/volter-sdk-widgets-patterns-Tree-9hQAF2Gw.js +0 -1
  1030. package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DH4BQmYZ.js +0 -1
  1031. package/dist/assets/volter-sdk-widgets-primitives-Button-C2V4YIy3.js +0 -1
  1032. package/dist/assets/volter-sdk-widgets-primitives-ColorInput-BlE_40cL.js +0 -1
  1033. package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-BUqVQsGN.js +0 -1
  1034. package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-CbNMak8C.js +0 -1
  1035. package/dist/assets/volter-sdk-widgets-primitives-FormControls-BbuM1BPm.js +0 -1
  1036. package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Cviyz-RH.js +0 -1
  1037. package/dist/assets/volter-sdk-widgets-primitives-JsonInput-CSDkOkYn.js +0 -1
  1038. package/dist/assets/volter-sdk-widgets-primitives-Layout-CReCx9Kx.js +0 -1
  1039. package/dist/assets/volter-sdk-widgets-primitives-Menu-CLZTgJJp.js +0 -1
  1040. package/dist/assets/volter-sdk-widgets-primitives-NumberInput-BQFPIdyk.js +0 -1
  1041. package/dist/assets/volter-sdk-widgets-primitives-Panel-BgeZLCeT.js +0 -1
  1042. package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DrZru2j6.js +0 -1
  1043. package/dist/assets/volter-sdk-widgets-primitives-Text-D2f86cQh.js +0 -1
  1044. package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DHky3uSl.js +0 -1
  1045. package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D0yyWWZq.js +0 -1
  1046. package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DmltDGvr.js +0 -1
  1047. package/dist/assets/volter-sdk-widgets-primitives-banner-tones-3NYMSJru.js +0 -1
  1048. package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DVXTyulW.js +0 -1
  1049. package/dist/assets/volter-sdk-widgets-primitives-editor-icons-DExJjfM-.js +0 -1
  1050. package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DOFkrQEQ.js +0 -1
  1051. package/dist/assets/volter-sdk-widgets-theme-ZB2jqYVl.js +0 -1
  1052. package/dist/assets/volter-sdk-widgets-z-index-7RKo2Q-p.js +0 -1
  1053. package/dist/assets/volter-shared-fontawesome-Cwu8OL1t.js +0 -1
  1054. package/dist/assets/volter-shared-jsx-dev-runtime-CMricuZe.js +0 -1
  1055. package/dist/assets/volter-shared-jsx-runtime-Dadt96Ff.js +0 -1
  1056. package/dist/assets/volter-shared-react-D5h5BJ05.js +0 -1
  1057. package/dist/assets/volter-shared-react-dom-BoLnHH2D.js +0 -1
  1058. package/dist/assets/volter-shared-react-dom-client-2nOBDQTA.js +0 -1
@@ -0,0 +1 @@
1
+ import{g as X}from"./asset-preview-8t0C1aYx.js";import{V,bf as L,X as q,g as F}from"./three.module-CtVjCPcj.js";function ae(t,e){return e.skinnedMeshes>0?"skinned":e.uniqueBones>0?"rigged":t.clips>0?"animated":"static"}const Y=["map","alphaMap","aoMap","bumpMap","displacementMap","emissiveMap","envMap","lightMap","metalnessMap","normalMap","roughnessMap","specularMap"];function Z(t){if(!("color"in t))return null;const e=t.color;return e?.isColor===!0?`#${e.getHexString()}`:null}function E(t){let e=0;for(const n of Object.values(t.attributes)){const s=n.array;for(let i=0;i<s.length;i++)Number.isFinite(Number(s[i]))||e++}return e}function O(t){if(!t)return null;const e=new q,n=new V;for(let s=0;s<t.count;s++)n.set(t.getX(s),t.getY(s),t.getZ(s)),Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z)&&e.expandByPoint(n);return e.isEmpty()?null:e}function R(t){const e=O(t.getAttribute("position"));if(!e)return null;for(const n of t.morphAttributes.position??[]){const s=O(n);s&&(t.morphTargetsRelative?(e.expandByPoint(new V().addVectors(e.min,s.min)),e.expandByPoint(new V().addVectors(e.max,s.max))):e.union(s))}return e}function J(t){return t.matrixAutoUpdate?new F().compose(t.position,t.quaternion,t.scale):t.matrix.clone()}function G(t,e,n){if(X(e,"editorHelper")||e.isSkeletonHelper)return;const s=e;if(!s.isMesh&&!s.isLine&&!s.isPoints||!s.geometry)return;const i=R(s.geometry);if(!i)return;const r=e;if(!r.isInstancedMesh){t.union(i.clone().applyMatrix4(n));return}const l=new F;for(let a=0;a<r.count;a++)r.getMatrixAt(a,l),t.union(i.clone().applyMatrix4(new F().multiplyMatrices(n,l)))}function K(t){const e=new q,n=[];for(let r=t.parent;r;r=r.parent)n.push(r);const s=new F;for(let r=n.length-1;r>=0;r--)s.multiply(J(n[r]));const i=(r,l)=>{const a=new F().multiplyMatrices(l,J(r));G(e,r,a);for(const p of r.children)i(p,a)};return i(t,s),e.isEmpty()?null:e}function le(t){const e=new Set,n=new Set,s=new Map,i=new Map,r=new Map,l=new Set,a=[],p=[];let M=0,v=0,x=0,g=0,T=0,A=0,C=0,N=0,f=0,d=0,b=0,z=0,P=0,D=0,U=0;t.traverse(o=>{if(X(o,"editorHelper")||o.isSkeletonHelper)return;M++;let c=0;for(let u=o.parent;u&&u!==t.parent;u=u.parent)c++;p.push({id:o.uuid,name:o.name||o.type,type:o.type,depth:c}),o.isBone&&A++,o.isLOD&&(D++,U+=o.levels.length);const h=o,S=o;if(!S.isMesh&&!S.isLine&&!S.isPoints)return;v++,h.isInstancedMesh&&b++,h.isSkinnedMesh&&z++;const m=h.geometry;if(m){P+=E(m);const u=m.getAttribute("position");g+=u?.count??0,T+=m.index?Math.floor(m.index.count/3):Math.floor((u?.count??0)/3),x+=Math.max(m.groups.length,1),C+=m.morphAttributes.position?.length??0,m.index?(f++,N+=m.index.array.byteLength):d++;for(const[w,B]of Object.entries(m.attributes)){N+=B.array.byteLength;const y=r.get(w)??{itemSize:B.itemSize,meshes:0};y.meshes++,r.set(w,y),/^uv\d*$/.test(w)&&l.add(w)}}const W=Array.isArray(h.material)?h.material:h.material?[h.material]:[];for(const u of W){e.add(u);const w=i.get(u)??new Set;w.add(o),i.set(u,w);const B=s.get(u)??[];for(const y of Y){const k=u[y];if(k?.isTexture!==!0)continue;n.add(k),B.includes(y)||B.push(y);const $=k.image;a.some(H=>H.materialId===u.uuid&&H.slot===y)||a.push({materialId:u.uuid,materialName:u.name||u.type,slot:y,textureName:k.name||k.source.data?.src||"Texture",width:$?.width??null,height:$?.height??null,format:k.format,colorSpace:k.colorSpace||"none"})}s.set(u,B)}});for(const o of n){const c=o.image;N+=(c?.width??0)*(c?.height??0)*4}const I=K(t)?.getSize(new V)??null;return{nodes:M,meshes:v,primitives:x,vertices:g,triangles:T,materials:e.size,textures:n.size,bones:A,clips:t.animations.length,morphTargets:C,memoryBytes:N,bounds:I?{x:I.x,y:I.y,z:I.z}:null,geometry:{attributes:[...r.entries()].map(([o,c])=>({name:o,itemSize:c.itemSize,meshCount:c.meshes})).sort((o,c)=>o.name.localeCompare(c.name)),uvChannels:[...l].sort(),indexedMeshes:f,nonIndexedMeshes:d,instancedMeshes:b,skinnedMeshes:z,nonFiniteAttributeValues:P,lodGroups:D,lodLevels:U},animationClips:t.animations.map((o,c)=>{const h=new Set;let S=0;for(const m of o.tracks){S+=m.times.length;const W=L.parseTrackName(m.name);W.nodeName&&h.add(W.nodeName)}return{id:`${c}:${o.uuid}`,name:o.name||`Clip ${c+1}`,duration:o.duration,tracks:o.tracks.length,keyframes:S,targets:[...h].sort(),rootMotion:se(o).length>1}}),hierarchy:p,materialNames:[...e].map(o=>o.name||o.type),textureNames:[...n].map(o=>o.name||o.source.data?.src||"Texture"),materialSlots:[...e].map(o=>({id:o.uuid,name:o.name||o.type,type:o.type,textureSlots:s.get(o)??[],usageCount:i.get(o)?.size??0,meshNames:[...i.get(o)??[]].map(c=>c.name||c.type).sort(),color:Z(o),transparent:o.transparent})),textureBindings:a}}function Q(t){const e=t.geometry.getAttribute("skinIndex"),n=t.geometry.getAttribute("skinWeight");if(!e||!n)return{weightedVertices:0,nonNormalizedVertices:0,zeroWeightVertices:0,invalidJointIndices:0};const s=Math.min(e.count,n.count);let i=0,r=0,l=0;for(let a=0;a<s;a++){const p=[n.getX(a),n.getY(a),n.getZ(a),n.getW(a)],M=[e.getX(a),e.getY(a),e.getZ(a),e.getW(a)],v=p.reduce((x,g)=>x+g,0);v<=1e-6?r++:Math.abs(v-1)>.001&&i++,l+=p.filter((x,g)=>x>1e-6&&(M[g]<0||M[g]>=t.skeleton.bones.length)).length}return{weightedVertices:s,nonNormalizedVertices:i,zeroWeightVertices:r,invalidJointIndices:l}}function _(t){let e=0;for(const n of t.times)Number.isFinite(n)||e++;for(const n of t.values)Number.isFinite(n)||e++;return e}function j(t,e){const n=L.parseTrackName(e.name).nodeName;return n&&!L.findNode(t,n)?n:null}function ee(t){let e=0;const n=new Set;for(const s of t.animations)for(const i of s.tracks){e+=_(i);const r=j(t,i);r&&n.add(r)}return{nonFiniteValues:e,unresolvedTargets:n}}function ue(t){const e=new Set,n=new Set,s=new Set;let i=0,r=0,l=0,a=0,p=0,M=0;const v=new Set,x=new Set,g=new Set;t.traverse(f=>{e.add(f);const d=f;d.isBone&&s.add(d)}),t.traverse(f=>{const d=f;if(!d.isSkinnedMesh)return;i++,g.add(d.bindMode),n.add(d.skeleton),d.skeleton.bones.length!==d.skeleton.boneInverses.length&&M++;for(const z of d.skeleton.bones)s.add(z),e.has(z)||v.add(z);const b=Q(d);r+=b.weightedVertices,l+=b.nonNormalizedVertices,a+=b.zeroWeightVertices,p+=b.invalidJointIndices});const T=ee(t);for(const f of s)(!f.parent?.isBone||!s.has(f.parent))&&x.add(f.name||f.uuid);const A=T.nonFiniteValues,C=T.unresolvedTargets,N=l===0&&a===0&&p===0&&M===0&&v.size===0&&A===0&&C.size===0;return{kind:i>0?"skinned":s.size>0?"rigid":"none",skinnedMeshes:i,skeletons:n.size,uniqueBones:s.size,weightedVertices:r,nonNormalizedVertices:l,zeroWeightVertices:a,invalidJointIndices:p,inverseBindMismatches:M,externalBones:v.size,nonFiniteAnimationValues:A,unresolvedTrackTargets:[...C].sort(),rootBones:[...x].sort(),bindModes:[...g].sort(),valid:N}}function ce(t,e){if(e&&!te(e))return null;const n=t.clone().normalize();for(const s of["front","back","left","right","top","bottom"])if(ne(s).angleTo(n)<.0087)return`${s[0]?.toUpperCase()}${s.slice(1)}`;return null}function te(t){const e=t.clone().normalize();return Math.max(Math.abs(e.x),Math.abs(e.y),Math.abs(e.z))>Math.cos(.0087)}function ne(t){const e={front:[0,0,1],back:[0,0,-1],left:[-1,0,0],right:[1,0,0],top:[0,1,0],bottom:[0,-1,0],isometric:[1,.72,1]};return new V(...e[t]).normalize()}function de(t){let e=!1,n=!1,s=!1,i=!1;return t.traverse(r=>{const l=r;e||=!!l.geometry?.getAttribute("uv"),n||=!!l.geometry?.getAttribute("color"),s||=!!(r.isBone||l.isSkinnedMesh),i||=r.isLOD===!0}),[{mode:"lit",available:!0},{mode:"unlit",available:!0},{mode:"wireframe",available:!0},{mode:"normals",available:!0},{mode:"uv",available:e,...e?{}:{reason:"No UV channel"}},{mode:"vertex-colors",available:n,...n?{}:{reason:"No vertex colors"}},{mode:"bounds",available:!0},{mode:"skeleton",available:s,...s?{}:{reason:"No skeleton"}},{mode:"collision",available:!1,reason:"No collision metadata"},{mode:"lod",available:i,...i?{}:{reason:"No LOD groups"}}]}function se(t){const e=t.tracks.filter(i=>i.ValueTypeName==="vector"&&i.name.toLowerCase().endsWith(".position")),n=e.find(i=>/(^|[./])(root|hips|armature)[./]/i.test(i.name))??e[0];if(!n||n.values.length<6)return[];const s=[];for(let i=0;i+2<n.values.length;i+=3)s.push(new V(n.values[i],n.values[i+1],n.values[i+2]));return s}export{ce as a,le as b,ne as c,ue as d,ae as e,te as i,de as s};
@@ -0,0 +1 @@
1
+ import{h$ as i,i1 as t,i0 as s,i8 as d}from"./volter-sdk-Cd88wUVM.js";const m={name:"modelsFromBlendFiles",reads:"files",schema:i({finder:d("modelsFromBlendFiles"),include:t(s().min(1)).min(1).describe("Project-relative globs of the Blender files to list (`src/models/**/*.blend`)")}).strict(),run(a,l){const n=[],o=[];for(const e of l.files??[]){if(!e.endsWith(".blend"))continue;const r=(e.split("/").pop()??e).replace(/\.blend$/,"");n.push({id:`model:${e}`,label:r,kind:"model",region:null,authorable:!0,reach:{kind:"root-mount"},source:{path:e}})}return n.length===0&&n.push({id:"blender:runtime",label:"Model",kind:"model",region:null,authorable:!0,reach:{kind:"root-mount"}}),{entries:n,notes:o}}};export{m as finder};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Object3DDocumentToolbar-BhqhvO5b.js","assets/volter-sdk-Cd88wUVM.js","assets/asset-preview-8t0C1aYx.js","assets/output-pass-j4dAGrPY.js","assets/three.module-CtVjCPcj.js","assets/model-inspection-D8bNMdh7.js","assets/ViewportShadingMenu-BQG3thZf.js"])))=>i.map(i=>d[i]);
2
+ import{A as j,iy as V,iz as I,iA as L,iB as O,iC as P,n as M,g as k}from"./volter-sdk-Cd88wUVM.js";function R(e,t){return e.object3D?.(t)??null}const o=new Map,l=new Map;function v(e){let t=l.get(e);return t||(t={frameListeners:new Set,helpers:new Map},l.set(e,t)),t}const d=new Set,p=new Set;function b(){for(const t of o.values())if(t.presenting)return t;const e=j();if(e!==null){const t=o.get(e);if(t)return t}return o.values().next().value??null}let s=null;function g(){s=null;const e=F();for(const t of p)t(e)}function _(e,t){const r=v(e);return{documentId:e,rig:()=>o.get(e)?.rig??t,setHelper:(n,a)=>{r.helpers.set(n,a),o.get(e)?.setHelper(n,a)},onFrame:n=>(r.frameListeners.add(n),()=>{r.frameListeners.delete(n)})}}function z(e,t,r,n){const a=v(n.documentId),c={documentId:n.documentId,rig:e,present:t,setHelper:r,frameListeners:a.frameListeners,helpers:a.helpers,presenting:!1};o.set(n.documentId,c);for(const[h,y]of c.helpers)r(h,y);return g(),()=>{o.get(n.documentId)===c&&(o.delete(n.documentId),g())}}function A(){return b()?.rig??null}function E(e){return d.add(e),()=>{d.delete(e)}}function F(){return s||(s=[...o.values()].map(e=>_(e.documentId,e.rig))),s}function H(e){const t=l.get(e);return t?[...t.helpers].filter(([,r])=>r!==null).map(([r])=>r):[]}function K(e){return p.add(e),()=>{p.delete(e)}}function q(e,t){const r=o.get(e);if(r){for(const n of r.frameListeners)n(t);if(b()===r)for(const n of d)n(t)}}const x=M.lazy(()=>k(()=>import("./Object3DDocumentToolbar-BhqhvO5b.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.Object3DDocumentToolbar}))),i=new Map,u=new Map;let S=0;const m=new Set;let f=!1;function D(){f||(f=!0,queueMicrotask(()=>{f=!1,S++;for(const e of[...m])e()}))}function G(e,t={}){i.set(e.documentId,e);const r=V(e),n=I(e.documentId,{...C(e),...t});return D(),()=>{n(),r(),i.get(e.documentId)===e&&(i.delete(e.documentId),D())}}const w=([e,t,r])=>({x:e,y:t,z:r});function C(e){return{read:()=>{const t=e.cameraPose(),r=e.presentation();return{camera:{position:w(t.position),target:w(t.target),...t.fov?{fov:t.fov}:{}},diagnostic:r.skeleton?"skeleton":r.mode,grid:P(e.documentId)}},setDiagnostic:t=>{if(t==="preview"||t==="rendered"){const r=L(e.documentId)?.stageKind;if(!r||O(r)?.modes?.[t]?.lighting===void 0)return!1}return e.setSkeleton(t==="skeleton"),e.setBounds(t==="bounds"),e.setMode(t==="skeleton"||t==="bounds"?"solid":t),!0},setCamera:t=>(typeof t!="string"?e.setCameraPose(t.position,t.target,t.fov):t==="perspective"?(e.setProjection("perspective"),e.frame()):e.setViewPreset(t),!0),frame:t=>t==="selection"?e.frameSelection():(e.frame(),!0),selection:{read:()=>e.selection(),apply:t=>e.select(t)},idsNamed:t=>{const r=[];return e.root.traverse(n=>{if(n.name!==t)return;const a=e.idForObject(n);a&&r.push(a)}),r},setTransformMode:t=>e.viewport.setTransformMode(t),capture:t=>e.captureImage(t??512),prepare:()=>T(e.documentId),HeaderControls:x}}function N(e){return i.get(e)??null}function W(e,t){return u.set(e,t),()=>{u.get(e)===t&&u.delete(e)}}async function T(e){await u.get(e)?.()}function J(){return[...i.values()]}function Q(e){return m.add(e),()=>m.delete(e)}function U(){return S}export{K as a,J as b,A as c,E as d,U as e,H as f,z as g,G as h,W as i,N as o,q as r,Q as s,R as t,F as v};
@@ -0,0 +1 @@
1
+ import{h2 as W,aJ as z,ie as V}from"./volter-sdk-Cd88wUVM.js";import{g as U}from"./blender-runtime-host-I70OcA4h.js";import{g as A,V as m,Q as S,u as q,E as H,M as X}from"./three.module-CtVjCPcj.js";const G=["location","rotation_quaternion","rotation_euler","rotation_axis_angle","scale"],C={location:[0,0,0],rotation_quaternion:[1,0,0,0],rotation_euler:[0,0,0],rotation_axis_angle:[0,0,0,0],scale:[1,1,1]};function Y(e){const t=atob(e),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return new Float32Array(n.buffer,n.byteOffset,n.byteLength>>2)}function v(e){if(!e.action||e.clipStart===void 0||e.clipEnd===void 0||!e.tracks.length)return null;const t=new Map,n=new Set;for(const s of e.tracks){const r=`${s.bone}\0${s.property}`,o=C[s.property].length;let u=t.get(r);if(u||t.set(r,u={bone:s.bone,channel:s.property,mask:0,stride:o,curves:Array.from({length:o},()=>null)}),!(s.index<0||s.index>=o)){u.mask|=1<<s.index,u.curves[s.index]=R(s);for(const c of s.unsupported??[])n.add(`${e.action}'s ${c}`)}}for(const s of e.unsupported??[])n.add(`${e.action}'s ${s}`);return{action:e.action,start:e.clipStart,end:e.clipEnd,keysStart:e.keysStart===null?-1/0:e.keysStart??e.clipStart,keysEnd:e.keysEnd===null?1/0:e.keysEnd??e.clipEnd,cyclic:e.cyclic??!1,channels:[...t.values()],unsupported:[...n]}}function R(e){return{extrapolation:e.extrapolation,interpolation:e.interpolation,keys:Y(e.keysBase64),cycles:e.cycles??null}}function Q(e,t,n,s){const r=[e[0]-t[0],e[1]-t[1]],o=[s[0]-n[0],s[1]-n[1]],u=s[0]-e[0],c=Math.abs(r[0]),a=Math.abs(o[0]);if(c+a!==0&&c+a>u){const i=u/(c+a);t[0]=e[0]-i*r[0],t[1]=e[1]-i*r[1],n[0]=s[0]-i*o[0],n[1]=s[1]-i*o[1]}}function J(e,t,n,s,r){const o=(i,l,f,d,h)=>{const g=1-h;return g*g*g*i+3*g*g*h*l+3*g*h*h*f+h*h*h*d};let u=0,c=1,a=(e-t[0])/(r[0]-t[0]||1);for(let i=0;i<60;i++){const l=o(t[0],n[0],s[0],r[0],a)-e;if(Math.abs(l)<1e-9)break;l<0?u=a:c=a;const f=1-a,d=3*f*f*(n[0]-t[0])+6*f*a*(s[0]-n[0])+3*a*a*(r[0]-s[0]),h=d!==0?a-l/d:(u+c)/2;a=h>u&&h<c?h:(u+c)/2}return o(t[1],n[1],s[1],r[1],a)}function M(e,t){const n=e.keys,s=n.length/6;if(s===0)return 0;const r=p=>n[p*6],o=p=>n[p*6+1];if(s===1)return o(0);const u=s-1;if(t<=r(0)){if(e.extrapolation!=="LINEAR"||t===r(0)||e.interpolation[0]===0)return o(0);const p=r(0)-t;if(e.interpolation[0]===2){const b=r(0)-n[2];return b!==0?o(0)-(o(0)-n[3])/b*p:o(0)}const y=r(1)-r(0);return y!==0?o(0)-(o(1)-o(0))/y*p:o(0)}if(t>=r(u)){if(e.extrapolation!=="LINEAR"||t===r(u)||e.interpolation[u]===0)return o(u);const p=t-r(u);if(e.interpolation[u]===2){const b=n[u*6+4]-r(u);return b!==0?o(u)+(n[u*6+5]-o(u))/b*p:o(u)}const y=r(u)-r(u-1);return y!==0?o(u)+(o(u)-o(u-1))/y*p:o(u)}let c=0,a=u;for(;a-c>1;){const p=c+a>>1;r(p)<=t?c=p:a=p}if(t===r(c))return o(c);const i=e.interpolation[c]??1;if(i===0)return o(c);if(i===1)return o(c)+(o(a)-o(c))*(t-r(c))/(r(a)-r(c));const l=[r(c),o(c)],f=[n[c*6+4],n[c*6+5]],d=[n[a*6+2],n[a*6+3]],h=[r(a),o(a)],g=11920929e-14;return Math.abs(l[1]-h[1])<g&&Math.abs(f[1]-d[1])<g&&Math.abs(d[1]-h[1])<g?l[1]:(Q(l,f,d,h),J(t,l,f,d,h))}function L(e,t){const n=e.cycles,s=e.keys,r=s.length/6;if(!n||r<2)return M(e,t);const o=s[0],u=s[1],c=s[(r-1)*6],a=s[(r-1)*6+1];let i=0,l=0,f=0,d=0;if(t<o&&n[0]?(i=-1,l=n[0],f=n[1],d=o):t>c&&n[2]&&(i=1,l=n[2],f=n[3],d=c),i===0||l===0)return M(e,t);const h=c-o,g=a-u;if(h===0)return M(e,t);const p=i*(t-d)/h;if(f&&p>=f){const O=l===3&&f%2===1;return M(e,i===1?O?o:c:O?c:o)+(l===2?g*f*i:0)}const y=(t-d)%h,b=l===2?(i<0?Math.floor((t-d)/h):Math.ceil((t-d)/h))*g:0;let k;return y===0?(k=i===1?c:o,l===3&&Math.trunc(p)%2&&(k=i===1?o:c)):l===3&&Math.trunc(p+1)%2?k=i<0?o-y:c-y:k=(i<0?c:o)+y,k<o&&(k+=h),M(e,k)+b}function Z(e,t,n,s){const r=e?.useNla??!0;if(r&&e.tracks.some(c=>c.solo))return null;if(!r||!s)return{clip:t,frame:n,influence:1,blend:"REPLACE"};const o=e.extrapolation;let u=n;if(n<t.keysStart){if(o!=="HOLD")return null;u=t.keysStart}else if(n>t.keysEnd){if(o==="NOTHING")return null;u=t.keysEnd}return{clip:t,frame:u,influence:e.influence,blend:e.blendType}}function tt(e,t){const n=e.filter(o=>!o.mute).sort((o,u)=>o.start-u.start);for(const o of n)if(t>=o.start&&t<=o.end)return{strip:o,time:t};const s=n[0];if(!s)return null;if(t<s.start)return s.extrapolation==="HOLD"?{strip:s,time:s.start}:null;let r=null;for(const o of n)o.end<t&&(r=o);return r&&(r.extrapolation==="HOLD"||r.extrapolation==="HOLD_FORWARD")?{strip:r,time:r.end}:null}function et(e,t){const n=e.actionEnd-e.actionStart||1,s=Math.abs(e.scale)||1,r=Math.abs(e.repeat%1)<1e-6&&Math.abs(t-e.end)<1e-6,o=(t-e.start)%(n*s)/s;return e.reversed?r?e.actionStart:e.actionEnd-o:r?e.actionEnd:e.actionStart+o}const N=new WeakMap;function nt(e,t){if(e.animatedInfluence){const n=e.influenceCurve;if(!n)return e.influence;let s=N.get(n);return s||N.set(n,s=R(n)),Math.max(0,Math.min(1,L(s,t)))}return e.blendIn>0&&t>=e.start&&t<=e.start+e.blendIn?(t-e.start)/e.blendIn:e.blendOut>0&&t>=e.end-e.blendOut&&t<=e.end?(e.end-t)/e.blendOut:1}function st(e,t,n,s){const r=[],o=[];let u=!1,c=!1;if(!e||!e.useNla)return{layers:r,waiting:u,skipped:o,evaluated:c};const a=e.tracks.some(i=>i.solo);for(const i of e.tracks){if((a?!i.solo:i.mute)||s)continue;i.strips.length&&(c=!0);const l=tt(i.strips,t);if(!l)continue;const f=nt(l.strip,l.time);if(l.strip.type!=="CLIP"||!l.strip.action){o.push(`the ${l.strip.type.toLowerCase()} strip "${l.strip.name}" on track "${i.name}"`);continue}const d=n(l.strip.action);d===void 0&&(u=!0),d&&r.push({clip:d,frame:et(l.strip,l.time),influence:f,blend:l.strip.blendType})}return{layers:r,waiting:u,skipped:o,evaluated:c}}const ot=(e,t)=>[e[0]*t[0]-e[1]*t[1]-e[2]*t[2]-e[3]*t[3],e[0]*t[1]+e[1]*t[0]+e[2]*t[3]-e[3]*t[2],e[0]*t[2]+e[2]*t[0]+e[3]*t[1]-e[1]*t[3],e[0]*t[3]+e[3]*t[0]+e[1]*t[2]-e[2]*t[1]],_=e=>{const t=Math.hypot(e[0],e[1],e[2],e[3]);return t>0?e.map(n=>n/t):[1,0,0,0]},it=(e,t)=>{const n=t*Math.acos(Math.max(-1,Math.min(1,e[0]))),s=Math.hypot(e[1],e[2],e[3]),r=Math.sin(n);return s>0?[Math.cos(n),e[1]/s*r,e[2]/s*r,e[3]/s*r]:[Math.cos(n),0,0,0]};function rt(e,t,n){const s=Math.max(0,Math.min(1,n.influence));if(s===0)return;const r=n.frame;for(const o of n.clip.channels){const u=e.get(o.bone);if(!u)continue;const c=t.get(o.bone),a=u[o.channel];for(let l=0;l<o.stride;l++)o.mask&1<<l&&!(c[o.channel]&1<<l)&&(a[l]=C[o.channel][l]);c[o.channel]|=o.mask;const i=o.curves.map(l=>l?L(l,r):0);if(n.blend==="COMBINE"&&o.channel==="rotation_quaternion"){const l=ot(_(a),it(_(i),s));for(let f=0;f<o.stride;f++)o.mask&1<<f&&(a[f]=l[f]);continue}for(let l=0;l<o.stride;l++){if(!(o.mask&1<<l))continue;const f=a[l],d=i[l];switch(n.blend){case"ADD":a[l]=f+d*s;break;case"SUBTRACT":a[l]=f-d*s;break;case"MULTIPLY":a[l]=s*(f*d)+(1-s)*f;break;case"COMBINE":a[l]=o.channel==="scale"?f*Math.pow(d,s):f+(d-C[o.channel][l])*s;break;default:a[l]=f*(1-s)+d*s}}}}function at(e,t){const n=new S;if(e==="QUATERNION"){const i=_(t.rotation_quaternion);n.set(i[1],i[2],i[3],i[0])}else if(e==="AXIS_ANGLE"){const i=t.rotation_axis_angle;n.setFromAxisAngle(new m(i[1],i[2],i[3]).normalize(),i[0])}else{const i=t.rotation_euler;n.setFromEuler(new H(i[0],i[1],i[2],e.split("").reverse().join("")))}const[s,r,o]=t.location,[u,c,a]=t.scale;return new A().compose(new m(s,r,o),n,new m(u,c,a))}const lt=["TRACK_X","TRACK_Y","TRACK_Z","TRACK_NEGATIVE_X","TRACK_NEGATIVE_Y","TRACK_NEGATIVE_Z"],P=[[1,0,0],[0,1,0],[0,0,1],[-1,0,0],[0,-1,0],[0,0,-1]];function ct(e,t,n){const s=Math.max(0,lt.indexOf(n)),r=new X().setFromMatrix4(e),o=new m(...P[s]).applyMatrix3(r);if(o.lengthSq()===0)return e.clone();o.normalize();const u=new m().setFromMatrixPosition(e),c=t.clone().sub(u);c.lengthSq()===0?c.copy(o):c.normalize();const a=new m().crossVectors(o,c);let i=Math.acos(Math.max(-1,Math.min(1,o.dot(c))));const l=a.length();if(l<11920929e-14){if(Math.abs(i)<Math.PI-.01)return e.clone();i=Math.PI;const d=new m(...P[(s+1)%6]).applyMatrix3(r);if(a.crossVectors(o,d),a.lengthSq()===0)return e.clone()}else l<.1&&(i=i>Math.PI/2?Math.PI-Math.asin(l):Math.asin(l));return new A().makeRotationAxis(a.normalize(),i).multiply(e).setPosition(u)}function ut(e,t,n){if(n>=1)return t;const[s,r,o]=[new m,new S,new m],[u,c,a]=[new m,new S,new m];return e.decompose(s,r,o),t.decompose(u,c,a),new A().compose(s.lerp(u,n),r.slerp(c,n),o.lerp(a,n))}class ft{constructor(t){this.rig=t}#e=[];#r=new Map;#n=null;facts(t){if(t===this.#n)return;this.#n=t,this.#e=t.bones;const n=new Map(t.bones.map(s=>[s.name,B(s.rest??s.matrix)]));this.#r=new Map(t.bones.map(s=>{const r=n.get(s.name),o=s.parent===null?void 0:n.get(s.parent);return[s.name,o?o.clone().invert().multiply(r):r.clone()]}))}get armature(){return this.#n}unsupported(){const t=[];for(const n of this.#e){for(const s of n.constraints??[])s.enabled&&s.type!=="DAMPED_TRACK"&&t.push(`the ${ht(s.type)} constraint "${s.name}" on bone "${n.name}"`);n.inherit?.length&&t.push(`bone "${n.name}"'s parenting (${n.inherit.join(", ")})`)}for(const n of this.#n?.animation?.drivers??[])t.push(`the drivers on bone "${n}"`);this.#n?.animation?.tweak&&t.push("the NLA in tweak mode (leave it with Tab in the NLA editor)");for(const n of this.#n?.animation?.tracks??[])for(const s of n.strips)!s.mute&&s.animatedTime&&t.push(`the animated strip time of "${s.name}"`);return t}apply(t,n,s=!0){const r=new Map,o=new Map;for(const i of this.#e){const l=i.channels;r.set(i.name,Object.fromEntries(G.map(f=>[f,[...l?.[f]??C[f]]]))),o.set(i.name,{location:0,rotation_quaternion:0,rotation_euler:0,rotation_axis_angle:0,scale:0})}for(const i of t)rt(r,o,i);this.rig.object.updateWorldMatrix(!0,!1);const u=this.rig.object.matrixWorld,c=u.clone().invert(),a=new Map;for(const i of this.#e){const l=i.parent===null?null:a.get(i.parent)??null,f=at(i.channels?.mode??"QUATERNION",r.get(i.name));let d=(l?l.clone():new A).multiply(this.#r.get(i.name)).multiply(f);for(const h of i.constraints??[]){if(!h.enabled||h.type!=="DAMPED_TRACK")continue;const g=n.override?.(i.name,h.name),p=g?.influence??h.influence;if(p<=0)continue;const y=this.#a(h,g,a,n);if(!y)continue;const b=u.clone().multiply(d),k=ct(b,y,h.trackAxis??"TRACK_Y");d=c.clone().multiply(ut(b,k,p))}a.set(i.name,d)}if(!s)return a;for(const i of this.#e){const l=a.get(i.name),f=i.parent===null?void 0:a.get(i.parent),d=f?f.clone().invert().multiply(l):l,h=this.rig.bones.get(i.name);h&&d.decompose(h.position,h.quaternion,h.scale)}return this.rig.object.updateMatrixWorld(!0),a}#a(t,n,s,r){if(n?.target)return n.target.updateWorldMatrix(!0,!1),new m().setFromMatrixPosition(n.target.matrixWorld);if(n?.target===null||!t.target)return null;const o=r.object(t.target);if(!o)return null;if(o.updateWorldMatrix(!0,!1),!t.subtarget)return new m().setFromMatrixPosition(o.matrixWorld);const u=t.target===this.rig.armature,c=u?s.get(t.subtarget):void 0,a=this.#e.find(l=>l.name===t.subtarget);if(u&&c&&a)return new m(0,a.length*(t.headTail??0),0).applyMatrix4(c).applyMatrix4(this.rig.object.matrixWorld);const i=o.getObjectByName(t.subtarget);return i?new m().setFromMatrixPosition(i.matrixWorld):null}}const B=e=>new A().set(...e.flat()),ht=e=>e.toLowerCase().split("_").map(t=>t==="ik"?"IK":t[0].toUpperCase()+t.slice(1)).join(" ");function dt(e,t){let n=null;const[s,r,o,u,c,a]=[new m,new S,new m,new m,new S,new m];for(const i of t.bones){const l=e.get(i.name);if(!l)continue;l.decompose(s,r,o),B(i.matrix).decompose(u,c,a);const f=q.radToDeg(r.angleTo(c)),d=s.distanceTo(u)/Math.max(i.length,.1),h=Math.max(f/.1,d/.001);h>1&&(!n||h>n.score)&&(n={bone:i.name,degrees:f,offset:d,score:h})}return n&&{bone:n.bone,degrees:n.degrees,offset:n.offset}}function pt(e,t,n){const s=st(e.animation,t,n),r=e.action??null;if(r){const o=n(r);o===void 0&&(s.waiting=!0);const u=o?Z(e.animation,o,t,s.evaluated):null;u&&s.layers.push(u)}return s}function mt(e){const t=[];return e.some(n=>n.includes(" constraint ")||n.includes("drivers"))&&t.push("Bake a constraint or driver into the action (Pose ▸ Animation ▸ Bake Action, Visual Keying), or aim with a Damped Track."),e.some(n=>n.includes("curves on "))&&t.push("Key the motion on a bone (the root bone) instead of the armature object, or move the object from the game."),e.some(n=>n.includes("interpolation")||n.includes(" modifier"))&&t.push("Use Bezier, Linear or Constant keys and the Cycles modifier only, or bake the curves (Key ▸ Bake Keyframes)."),t.length?` ${t.join(" ")}`:""}function gt(e){return!!e.action||!!e.animation?.tracks.some(t=>t.strips.length)}class yt{#e=null;#r=null;#n=null;#a=null;#t=null;#o=new Map;#i=new Map;#l=null;#s=null;#c=null;#d=new Set;#m=0;#g=[];#y=new Set;#u=0;get version(){return this.#m}get engineCalls(){return this.#u}subscribe(t){return this.#d.add(t),()=>this.#d.delete(t)}#f(){this.#m++;for(const t of[...this.#d])t()}state(){const t=this.#t;return{frame:this.frame(),start:t?.frameStart??1,end:t?.frameEnd??250,fps:t?.fps??24,action:t?.action??null,object:t?.object??null,armature:t?.armature??null,bones:this.#n?this.#e?.skeletons.rig(this.#n)?.bones.size??0:0,keyframes:t?.keyframes??[],summary:t?.summary??[],clipStart:t?.clipStart??null,clipEnd:t?.clipEnd??null,tracks:t?.tracks.length??0,bound:[...this.#o.keys()],warnings:this.#g,engineCalls:this.#u,blenderFrame:t?.frameCurrent??null}}playhead(){return this.#t?this.frame():null}frame(){return this.#l??this.#t?.frameCurrent??1}get playable(){return this.#t!==null&&this.#s!==null}async sync(t,n){this.#e=t,this.#r=n;const s=t.animationFacts(),r=Object.keys(s.armatures),o=s.active,u=o&&s.armatures[o]?o:(o?s.skinArmature(o):null)??(r.filter(i=>s.armatures[i].action).length===1?r.find(i=>s.armatures[i].action):null);for(const[i,l]of[...this.#o])(!s.armatures[i]||t.skeletons.rig(i)!==l.rig)&&this.#o.delete(i);for(const[i,l]of Object.entries(s.armatures)){const f=t.skeletons.rig(i);if(!f||!gt(l)){this.#o.delete(i);continue}let d=this.#o.get(i);d||this.#o.set(i,d=new ft(f)),d.facts(l)}for(const[i,l]of[...this.#i]){const f=i.slice(i.indexOf("\0")+1);(s.actions[f]??null)!==l.revision&&this.#i.delete(i)}const c=u?s.armatures[u]?.action??null:null,a=JSON.stringify([u,c,c?s.actions[c]??null:null,s.clock,s.frame]);if(a!==this.#a){this.#a=a,this.#n=u;let i=null;u&&(this.#u++,i=await n.clip(u),i?.action&&i.armature&&this.#i.set(`${i.armature}\0${i.action}`,{revision:s.actions[i.action]??null,clip:v(i)}));const l=this.#t,f=i?.frameStart!==l?.frameStart||i?.frameEnd!==l?.frameEnd||i?.fps!==l?.fps;this.#t=i??null,(!i||i.scene!==l?.scene)&&(this.#l=null);const d=this.#s?.snapshot().activeSubject;f&&d&&this.#s?.setActiveSubject(d);const h=this.#s?.snapshot().playbackState==="playing";i&&!h&&(this.#l=null,this.#s&&i.fps>0&&this.#s.seek(i.frameCurrent/i.fps))}this.#p(),this.#f()}#b(t,n){const s=`${t}\0${n}`,r=this.#i.get(s);if(r)return r.clip;const o=this.#r,u=this.#e?.animationFacts().actions[n]??null;if(!o)return null;const c={revision:u,clip:void 0};this.#i.set(s,c),this.#u++,o.bake(t,n).then(a=>{c.clip=a?v(a):null,this.#i.get(s)===c&&(this.#p(),this.#f())},a=>{c.clip=null,this.#h(`bake:${s}`,`${t} / ${n} could not be read: ${a instanceof Error?a.message:String(a)}`)})}#p(){const t=this.#e;if(!t)return;const n=t.animationFacts(),s=this.frame(),r=s===n.frame,o=this.#s?.snapshot().playbackState==="playing",u=this.#t?.reason?[this.#t.reason]:[],c={object:a=>t.objectForBlenderName(a)};for(const[a,i]of this.#o){const l=n.armatures[a];if(!l)continue;const f=[...i.unsupported(),...this.#k(a).flatMap(h=>h.unsupported)];if(f.length){const h=`${a} plays ${f.join(", ")} only in Blender, not in the Timeline or a game.${mt(f)}`;u.push(h),this.#h(`unsupported:${a}:${f.join("|")}`,h)}const d=pt(l,s,h=>this.#b(a,h));for(const h of d.skipped)this.#h(`skipped:${a}:${h}`,`${a}: ${h} plays only in Blender, not in the Timeline or a game.`);d.waiting||(r&&!o?(t.skeletons.restorePose(a),i.rig.object.updateMatrixWorld(!0),this.#M(a,i,l,d.layers,c,f)):i.apply(d.layers,c))}this.#g=u}#k(t){const n=[];for(const[s,r]of this.#i)s.startsWith(`${t}\0`)&&r.clip&&n.push(r.clip);return n}#M(t,n,s,r,o,u){const c=dt(n.apply(r,o,!1),s);if(!c)return;const a=this.#t?.frameCurrent??this.frame(),i=u.length?`What Blender plays here and the evaluator does not: ${u.join(", ")}.`:"Nothing the evaluator knows of explains it; this is a defect in the presenter, report it with the file.";this.#h(`divergence:${t}:${a}:${c.bone}:${Math.round(c.degrees)}`,`${t} at frame ${a}: bone "${c.bone}" is ${c.degrees.toFixed(1)}° and ${(c.offset*100).toFixed(1)}% of its length off Blender's own pose, so the Timeline and a game show it differently from Blender. ${i}`)}#h(t,n){this.#y.has(t)||(this.#y.add(t),W().console.warn(n,"blender-animation"))}#w(t){const n=this.#t;n&&(this.#l=Math.min(n.frameEnd,Math.max(n.frameStart,t)),this.#p())}get scene(){return this.#t?.scene??null}async writeBookmark(){const t=Math.round(this.frame()),n=this.#t;if(!n)return t;const s=n.scene;return!s||n.frameCurrent===t||(this.#u++,await U(`bpy.data.scenes[${JSON.stringify(s)}]`,"frame_current",t,void 0,!1),this.#t={...n,frameCurrent:t},this.#f()),t}get transport(){return this.#s}attachTo(t){this.#c?.(),this.#s=t;const n=t.attach({id:this.#t?.action??"blender-action",label:this.#t?.action??"Action",range:()=>{const c=this.#t,a=c?.fps||24;return{start:(c?.frameStart??1)/a,end:(c?.frameEnd??250)/a,fps:a}},seek:c=>this.seekSeconds(c)}),s=t.onSettled(()=>{this.writeBookmark()});let r=!1;const o=()=>{r||(r=!0,s(),n(),this.#c===o&&(this.#s===t&&(this.#s=null),this.#c=null))};this.#c=o;const u=this.#t;return u&&u.fps>0&&t.seek(u.frameCurrent/u.fps),o}seekSeconds(t){const n=this.#t?.fps||24;this.#w(Math.round(t*n)),this.#f()}keyframes(){return(this.#t?.keyframes??[]).map(t=>t.frame)}dispose(){this.#c?.(),this.#t=null,this.#l=null;for(const t of this.#o.keys())this.#e?.skeletons.restorePose(t);this.#o.clear(),this.#i.clear(),this.#n=null,this.#a=null}}const D=new yt;function St(e){return D.subscribe(e)}function At(){return D.version}const F="volter.blender.play-mode:",$=new Set,j=new Map,x=new Map;let w=null,I=0;function T(){I+=1;for(const e of[...$])e()}function bt(e){try{const t=globalThis.sessionStorage?.getItem(F+e);return t==="game"||t==="movie"?t:null}catch{return null}}function K(e){let t=j.get(e);return t===void 0&&(t=bt(e),j.set(e,t)),t}function Et(e,t){if(K(e)!==t){j.set(e,t);try{globalThis.sessionStorage?.setItem(F+e,t)}catch{}T()}}function $t(e,t){return(w!==e||x.get(e)!==t)&&(w=e,t===void 0?x.delete(e):x.set(e,t),T()),()=>{w===e&&(w=null,T())}}function Ct(){return w}function Tt(e){return x.get(e)}function _t(e){const t=V("model");if(t===null)return"movie";const n=K(e);if(n!==null)return n;const s=x.get(e);return s!==void 0&&t.hasScript?.(s)===!0?"game":"movie"}function jt(){return I}let E=null;function Ot(e){return $.add(e),E??=z(T),()=>{$.delete(e),$.size===0&&E&&(E(),E=null)}}export{ft as A,Ct as a,D as b,Et as c,Tt as d,St as e,At as f,v as g,$t as h,_t as m,st as n,jt as p,mt as r,Ot as s};
@@ -0,0 +1,14 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/blender-node-editor.document-BM7vfTL5.js","assets/volter-sdk-Cd88wUVM.js","assets/blender-runtime-host-I70OcA4h.js","assets/output-pass-j4dAGrPY.js","assets/three.module-CtVjCPcj.js","assets/linear-resolve-Cuka7Ypb.js","assets/blender-timeline.document-qAIwPVti.js","assets/play-mode-5IAAD_7E.js","assets/blender-uv-editor.document-IgrkS734.js","assets/blender-runtime.document-CngS2ulS.js","assets/object3d-document-session-registry-BDdnn26f.js","assets/blender-properties-model-CG1a0urK.js","assets/blender-screenshot.menu-BlKHXd6M.js","assets/blender-version.status-CmcL13KX.js","assets/blender.command-DtZhBs-u.js","assets/blender.status-CUeX19yt.js","assets/model.layout-BpZE1W9V.js","assets/regions-DWeEBnE2.js","assets/models.finder-Bq9jD3Zz.js","assets/properties-bone-constraints.inspector-CSGhfbAl.js","assets/blender-properties-tab-BmaCGZ2W.js","assets/properties-constraints.inspector-Blyjqhdx.js","assets/properties-bone.inspector-2xytW5GN.js","assets/properties-collection.inspector-Cq2lJKxc.js","assets/properties-data.inspector-B-UdAtaa.js","assets/properties-material.inspector-DcmWWJe_.js","assets/properties-modifiers.inspector-gfAYqhOQ.js","assets/properties-object.inspector-DsXyXf9q.js","assets/properties-output.inspector-Zy7MzHdy.js","assets/properties-particles.inspector-i61X-I7E.js","assets/properties-physics.inspector-3ZiIf3OT.js","assets/properties-render.inspector-D_ub1JWi.js","assets/properties-scene.inspector-PR-DpJb-.js","assets/properties-texture.inspector-ChHrR9F5.js","assets/properties-view-layer.inspector-SufJ0dAW.js","assets/properties-world.inspector-CkOdhT8h.js","assets/sculpt.layout-D-K5cLw6.js","assets/shading.layout-CZZHKBer.js","assets/uv-editing.layout-A8RA-cbM.js","assets/three-integration.service-B3Ypz8DF.js","assets/asset-preview-8t0C1aYx.js","assets/animation-mixers.service-CHBvAdwr.js","assets/live-mixers-B-bwLZ7c.js","assets/animation-timeline.utility-CMQBCIuO.js","assets/NonThreeAuthoringBootstrap-4j6fBCFM.js","assets/volter-sdk-kit-live-session-registry-CDqtFqYd.js","assets/volter-sdk-kit-stories-story-capture-CbSD1tRT.js"])))=>i.map(i=>d[i]);
2
+ import{g as M,h as Ua,r as Ka,k as Ga,l as Ya,m as qa,j as o,G as Ja,n as a,F as Yn,T as ot,B as te,o as Xa,t as Q,C as Za,D as Qa,p as ei,q as ti,s as ni,u as ri,v as at,w as oi,x as bs,y as hr,z as si,A as $t,E as ai,H as ii,I as ci,J as ws,K as yn,L as qn,M as xs,N as li,O as $e,P as Ss,Q as di,S as ui,U as pi,V as Ce,W as fi,X as hi,Y as mi,Z as vi,$ as yi,a0 as gi,a1 as bi,a2 as Es,a3 as wi,a4 as St,a5 as $r,a6 as kn,a7 as xi,a8 as Mr,a9 as Si,aa as Ei,ab as ji,ac as ki,ad as Ri,ae as Ci,af as Pi,ag as Ii,ah as Ti,ai as _i,aj as Ai,ak as Di,al as qe,am as Ni,an as ao,ao as js,ap as Li,aq as Rn,ar as Oi,as as ue,at as ks,au as $i,av as Mi,aw as Fr,ax as Mt,ay as $n,az as ft,aA as Rs,aB as Cn,aC as Cs,aD as Fi,aE as an,aF as Vr,aG as en,aH as Vi,aI as io,aJ as Wi,aK as Hi,aL as zi,aM as Bi,aN as Ui,aO as Ye,aP as Ps,aQ as co,aR as Is,aS as lo,aT as Wr,aU as Ki,aV as Gi,aW as Yi,aX as qi,aY as De,aZ as Me,a_ as Ft,a$ as ht,b0 as gn,b1 as Ts,b2 as Hr,b3 as _s,b4 as As,b5 as zr,b6 as Ds,b7 as Ji,b8 as Xi,b9 as uo,ba as Zi,bb as po,bc as Ns,bd as fo,be as ho,bf as Qi,bg as ec,bh as tc,bi as nc,bj as rc,bk as Ls,bl as Os,bm as $s,bn as oc,bo as sc,bp as ac,bq as ic,br as cc,bs as lc,bt as dc,bu as uc,bv as pc,bw as fc,bx as hc,by as mc,bz as vc,bA as yc,bB as gc,bC as Br,bD as bc,bE as wc,bF as xc,bG as mo,bH as Sc,bI as Ec,bJ as jc,bK as kc,bL as Rc,bM as Cc,bN as Ms,bO as G,bP as Ur,bQ as Pc,bR as Ic,bS as Fs,bT as Vs,bU as Tc,bV as _c,bW as Ac,bX as Dc,bY as Nc,bZ as Lc,b_ as vo,b$ as mr,c0 as tn,c1 as Oc,c2 as $c,c3 as Kr,c4 as Mc,c5 as Fc,c6 as Vc,c7 as Jn,c8 as Wc,c9 as yo,ca as Ws,cb as Pn,cc as Lt,cd as Hs,ce as Hc,cf as zc,cg as Gr,ch as cn,ci as Mn,cj as Yr,ck as Fn,cl as zs,cm as Bc,cn as Uc,co as Kc,cp as Gc,cq as Bs,cr as Ge,cs as go,ct as be,cu as Yc,cv as Us,cw as qc,cx as nn,cy as bn,cz as it,cA as bo,cB as Jc,cC as Xc,cD as Zc,cE as Qc,cF as el,cG as tl,cH as nl,cI as rl,cJ as ol,cK as sl,cL as al,cM as il,cN as Ct,cO as wo,cP as qr,cQ as cl,cR as ll,cS as dl,cT as ul,cU as Jr,cV as pl,cW as In,cX as fl,cY as hl,cZ as ml,c_ as Xn,c$ as vl,d0 as yl,d1 as gl,d2 as bl,d3 as wl,d4 as xl,d5 as Ks,d6 as xo,d7 as Sl,d8 as El,d9 as jl,da as kl,db as So,dc as Rl,dd as Cl,de as Pl,df as Il,dg as Tl,dh as _l,di as Eo,dj as Al,dk as Zn,dl as Dl,dm as jo,dn as Nl,dp as Ll,dq as ko,dr as Ro,ds as Gs,dt as Ol,du as $l,dv as Tn,dw as Ml,dx as Fl,dy as Vl,dz as Wl,dA as Hl,dB as zl,dC as Bl,dD as Ul,dE as Kl,dF as Gl,dG as Yl,dH as ql,dI as Jl,dJ as Xl,dK as Zl,dL as vr,dM as Vt,dN as Z,dO as Ql,dP as Ys,dQ as Co,dR as ed,dS as td,dT as nd,dU as rd,dV as qs,dW as je,dX as Rt,dY as od,dZ as Js,d_ as sd,d$ as ad,e0 as id,e1 as cd,e2 as yr,e3 as ld,e4 as dd,e5 as pt,e6 as ud,e7 as rn,e8 as pd,e9 as fd,ea as Vn,eb as Xs,ec as Po,ed as hd,ee as Io,ef as md,eg as gr,eh as vd,ei as yd,ej as gd,ek as bd,el as wd,em as Wt,en as wn,eo as Gt,ep as xd,eq as Sd,er as Ed,es as jd,et as kd,eu as br,ev as Rd,ew as Zt,ex as de,ey as To,ez as Cd,eA as Pd,eB as Id,eC as Td,eD as _o,eE as xt,eF as _d,eG as Ad,eH as Dd,eI as Nd,eJ as Ld,eK as Od,eL as _n,eM as $d,eN as Md,eO as Fd,eP as Vd,eQ as Wd,eR as Hd,eS as zd,eT as Bd,eU as Ud,eV as Kd,eW as Gd,eX as Zs,eY as Qn,eZ as Yd,e_ as Ao,e$ as Do,f0 as qd,f1 as Jd,f2 as Xd,f3 as Zd,f4 as Qd,f5 as eu,f6 as tu,f7 as nu,f8 as ru,f9 as ou,fa as su,fb as au,fc as iu,fd as cu,fe as lu,ff as du,fg as uu,fh as pu,fi as fu,fj as hu,fk as Qs,fl as mu,fm as vu,fn as yu,fo as gu,fp as bu,fq as wu,fr as xu,fs as Su,ft as Eu,fu as ju,fv as ea,fw as ku,fx as Ru,fy as Cu,fz as Pu,fA as Iu,fB as Tu,fC as _u,fD as Au,fE as Du,fF as Nu,fG as Lu,fH as Ou,fI as $u,fJ as Mu,fK as Fu,fL as Vu,fM as Wu,fN as Hu,fO as zu,fP as Bu,fQ as Uu,fR as Ku,fS as Gu,fT as Yu,fU as qu,fV as Ju,fW as Xu,fX as Zu,fY as Qu,fZ as ep,f_ as tp,f$ as np,g0 as rp,g1 as op,g2 as sp,g3 as ap,g4 as ip,g5 as cp,g6 as lp,g7 as un,g8 as le,g9 as dp,ga as up,gb as pp,gc as fp,gd as hp,ge as ta,gf as mp,gg as An,gh as vp,gi as yp,gj as gp,gk as bp,gl as wp,gm as xp,gn as Sp,go as Ep,gp as jp,gq as kp,gr as wr,gs as Rp,gt as Cp,gu as na,gv as Pp,gw as Ip,gx as ra,gy as Xr,gz as Tp,gA as oa,gB as _p,gC as sa,gD as Ap,gE as Dp,gF as Np,gG as Lp,gH as Zr,gI as Wn,gJ as Hn,gK as Op,gL as Qr,gM as $p,gN as Mp,gO as Fp,gP as Vp,gQ as Wp,gR as Hp,gS as aa,gT as zp,gU as Bp,gV as Up,gW as Kp,gX as Gp,gY as Yp,gZ as qp,g_ as Jp,g$ as ia,h0 as Xp,h1 as No,h2 as he,h3 as Zp,h4 as Qp,h5 as ef,h6 as tf,h7 as nf,h8 as rf,h9 as of,ha as sf,hb as af,hc as cf,hd as lf,he as df,hf as uf,hg as pf,hh as ff,hi as hf,hj as mf,hk as vf,hl as yf,hm as gf,hn as bf,ho as Lo,hp as ca,hq as xr,hr as wf,hs as xf,ht as Dn,hu as la,hv as da,hw as Sf,hx as Ef,hy as jf,hz as kf,hA as Rf,hB as Cf,hC as Pf,hD as If,hE as Tf,hF as _f,hG as Af,hH as Df,hI as Nf,hJ as Lf,hK as Of,hL as $f,hM as Mf,hN as Ff,hO as Vf,hP as Wf,hQ as Hf,hR as zf,hS as Bf,hT as Uf,hU as Kf,hV as Gf,hW as Yf,hX as Oo,hY as qf,hZ as Jf}from"./volter-sdk-Cd88wUVM.js";const Xf=[{entryPath:"@volter/editor-blender/contributions/blender-node-editor.document.tsx",load:()=>M(()=>import("./blender-node-editor.document-BM7vfTL5.js"),__vite__mapDeps([0,1,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/blender-timeline.document.tsx",load:()=>M(()=>import("./blender-timeline.document-qAIwPVti.js"),__vite__mapDeps([6,1,2,3,4,5,7]))},{entryPath:"@volter/editor-blender/contributions/blender-uv-editor.document.tsx",load:()=>M(()=>import("./blender-uv-editor.document-IgrkS734.js"),__vite__mapDeps([8,1,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/blender-runtime.document.tsx",load:()=>M(()=>import("./blender-runtime.document-CngS2ulS.js"),__vite__mapDeps([9,1,2,3,4,5,10,11,7]))},{entryPath:"@volter/editor-blender/contributions/blender-screenshot.menu.ts",load:()=>M(()=>import("./blender-screenshot.menu-BlKHXd6M.js"),__vite__mapDeps([12,1]))},{entryPath:"@volter/editor-blender/contributions/blender-version.status.tsx",load:()=>M(()=>import("./blender-version.status-CmcL13KX.js"),__vite__mapDeps([13,1]))},{entryPath:"@volter/editor-blender/contributions/blender.command.ts",load:()=>M(()=>import("./blender.command-DtZhBs-u.js"),__vite__mapDeps([14,2,3,4,5,1]))},{entryPath:"@volter/editor-blender/contributions/blender.environment.ts",load:()=>M(()=>import("./blender.environment-CG-pC7sk.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.keymap.ts",load:()=>M(()=>import("./blender.keymap-BmOBRY7p.js"),[])},{entryPath:"@volter/editor-blender/contributions/blender.status.tsx",load:()=>M(()=>import("./blender.status-CUeX19yt.js"),__vite__mapDeps([15,1]))},{entryPath:"@volter/editor-blender/contributions/blender.style.ts",load:()=>M(()=>import("./blender.style--aBP5V1k.js"),[])},{entryPath:"@volter/editor-blender/contributions/model.layout.ts",load:()=>M(()=>import("./model.layout-BpZE1W9V.js"),__vite__mapDeps([16,17]))},{entryPath:"@volter/editor-blender/contributions/models.finder.ts",load:()=>M(()=>import("./models.finder-Bq9jD3Zz.js"),__vite__mapDeps([18,1]))},{entryPath:"@volter/editor-blender/contributions/properties-bone-constraints.inspector.tsx",load:()=>M(()=>import("./properties-bone-constraints.inspector-CSGhfbAl.js"),__vite__mapDeps([19,20,1,11,2,3,4,5,21]))},{entryPath:"@volter/editor-blender/contributions/properties-bone.inspector.tsx",load:()=>M(()=>import("./properties-bone.inspector-2xytW5GN.js"),__vite__mapDeps([22,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-collection.inspector.tsx",load:()=>M(()=>import("./properties-collection.inspector-Cq2lJKxc.js"),__vite__mapDeps([23,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-constraints.inspector.tsx",load:()=>M(()=>import("./properties-constraints.inspector-Blyjqhdx.js"),__vite__mapDeps([21,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-data.inspector.tsx",load:()=>M(()=>import("./properties-data.inspector-B-UdAtaa.js"),__vite__mapDeps([24,11,1,2,3,4,5,20]))},{entryPath:"@volter/editor-blender/contributions/properties-material.inspector.tsx",load:()=>M(()=>import("./properties-material.inspector-DcmWWJe_.js"),__vite__mapDeps([25,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-modifiers.inspector.tsx",load:()=>M(()=>import("./properties-modifiers.inspector-gfAYqhOQ.js"),__vite__mapDeps([26,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-object.inspector.tsx",load:()=>M(()=>import("./properties-object.inspector-DsXyXf9q.js"),__vite__mapDeps([27,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-output.inspector.tsx",load:()=>M(()=>import("./properties-output.inspector-Zy7MzHdy.js"),__vite__mapDeps([28,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-particles.inspector.tsx",load:()=>M(()=>import("./properties-particles.inspector-i61X-I7E.js"),__vite__mapDeps([29,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-physics.inspector.tsx",load:()=>M(()=>import("./properties-physics.inspector-3ZiIf3OT.js"),__vite__mapDeps([30,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-render.inspector.tsx",load:()=>M(()=>import("./properties-render.inspector-D_ub1JWi.js"),__vite__mapDeps([31,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-scene.inspector.tsx",load:()=>M(()=>import("./properties-scene.inspector-PR-DpJb-.js"),__vite__mapDeps([32,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-texture.inspector.tsx",load:()=>M(()=>import("./properties-texture.inspector-ChHrR9F5.js"),__vite__mapDeps([33,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-view-layer.inspector.tsx",load:()=>M(()=>import("./properties-view-layer.inspector-SufJ0dAW.js"),__vite__mapDeps([34,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/properties-world.inspector.tsx",load:()=>M(()=>import("./properties-world.inspector-CkOdhT8h.js"),__vite__mapDeps([35,20,1,11,2,3,4,5]))},{entryPath:"@volter/editor-blender/contributions/sculpt.layout.ts",load:()=>M(()=>import("./sculpt.layout-D-K5cLw6.js"),__vite__mapDeps([36,17]))},{entryPath:"@volter/editor-blender/contributions/shading.layout.ts",load:()=>M(()=>import("./shading.layout-CZZHKBer.js"),__vite__mapDeps([37,17]))},{entryPath:"@volter/editor-blender/contributions/uv-editing.layout.ts",load:()=>M(()=>import("./uv-editing.layout-A8RA-cbM.js"),__vite__mapDeps([38,17]))},{entryPath:"@volter/editor-blender/contributions/texture.layout.ts",load:()=>M(()=>import("./texture.layout-DASpHVht.js"),[])}],Zf=[{entryPath:"@volter/editor-threejs/contributions/three-integration.service.ts",load:()=>M(()=>import("./three-integration.service-B3Ypz8DF.js").then(e=>e.A),__vite__mapDeps([39,1,3,4,40,10]))},{entryPath:"@volter/editor-threejs/contributions/animation-mixers.service.ts",load:()=>M(()=>import("./animation-mixers.service-CHBvAdwr.js"),__vite__mapDeps([41,1,42]))},{entryPath:"@volter/editor-threejs/contributions/animation-timeline.utility.tsx",load:()=>M(()=>import("./animation-timeline.utility-CMQBCIuO.js"),__vite__mapDeps([43,1]))}];Ua();function ua(e,t){const n=t.instances;return!e||!n?!1:n.describe(e.id)!==null}function Qf(e,t){const n=Ka(e,t),r=n?.storiesFor(t)[0];return!n||!r?null:{story:r,open:()=>n.apply(t,r.id)}}function er(e){return typeof e=="string"?e:JSON.stringify(e)}function eh({adapter:e,nodeId:t}){const n=e.instances?.describe(t)??null,[r,s]=a.useState(new Set),[i,c]=a.useState(null),[u,f]=a.useState(!1);if(a.useEffect(()=>{s(new Set),c(null)},[t]),!n)return null;const p=Qf(e,t),v=(R,w)=>{s(P=>{const g=new Set(P);return w?g.add(R):g.delete(R),g})},k=async()=>{if(!(r.size===0||!e.instances)){f(!0);try{await ri(e,t,[...r]),s(new Set),at(`Reverted ${r.size} prefab override${r.size===1?"":"s"}.`)}finally{f(!1)}}},T=async()=>{if(!(!i||!e.instances)){f(!0);try{const R=await oi(e,t,i.path);at(R.message),R.changed&&c(null)}finally{f(!1)}}};return o.jsxs("div",{style:{display:"grid",gap:10},"data-testid":"prefab-instance-overrides",children:[o.jsx(Yn,{label:"Prefab",children:o.jsx(ot,{children:n.componentName})}),o.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[o.jsx(te,{size:"compact",disabled:!e.instances?.openComponent,onClick:()=>Xa(e,t),children:"Open Component"}),o.jsx(te,{size:"compact",disabled:!p,title:p?`Open ${p.story.label}`:"This prefab has no composed story.",onClick:()=>p?.open(),children:"Open Story"})]}),o.jsxs("div",{children:[o.jsxs(ot,{tone:"muted",children:["Overrides (",n.overrides.length,")"]}),n.overrides.length===0?o.jsx("div",{style:{paddingTop:6},children:o.jsx(ot,{tone:"muted",children:"Using component defaults. Change a property above and it will be listed here as an override you can apply or revert."})}):o.jsx("div",{style:{display:"grid",gap:4,paddingTop:6},children:n.overrides.map(R=>o.jsxs("div",{style:{border:`1px solid ${Q.boundary.default}`,borderRadius:5,display:"grid",gap:4,padding:6},children:[o.jsxs("label",{style:{display:"flex",alignItems:"center",gap:6},children:[o.jsx(Za,{checked:r.has(R.path),onChange:w=>v(R.path,w.target.checked)}),o.jsx(ot,{children:R.label}),o.jsx(ot,{tone:"muted",children:er(R.value)})]}),o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,paddingLeft:22},children:[o.jsxs(ot,{tone:"muted",children:["default: ",R.defaultText??"component fallback"]}),o.jsx(te,{size:"compact",disabled:!R.canApplyToComponent||u,title:R.applyUnavailableReason,onClick:()=>c(R),children:"Apply…"})]})]},R.path))})]}),n.overrides.length>0?o.jsx(te,{size:"compact",disabled:r.size===0||u,title:r.size===0?"Tick an override above to select it first.":void 0,onClick:()=>void k(),children:"Revert Selected"}):null,i?o.jsxs(Qa,{labelledBy:"apply-prefab-default-title",onDismiss:()=>!u&&c(null),children:[o.jsx(ei,{titleId:"apply-prefab-default-title",title:`Apply “${i.label} = ${er(i.value)}” to ${n.componentName}?`}),o.jsx(ti,{children:o.jsxs("div",{style:{display:"grid",gap:8},children:[o.jsxs(ot,{children:["This changes the default used by ",i.affectedInstanceCount," placed instance",i.affectedInstanceCount===1?"":"s","."]}),o.jsx(Yn,{label:"Current default",children:o.jsx(ot,{tone:"muted",children:i.defaultText??"component fallback"})}),o.jsx(Yn,{label:"New default",children:o.jsx(ot,{children:er(i.value)})})]})}),o.jsxs(ni,{children:[o.jsx(te,{disabled:u,onClick:()=>c(null),children:"Cancel"}),o.jsx(te,{disabled:u,onClick:()=>void T(),children:"Apply"})]})]}):null]})}function th(e,t){if(!e||!ua(e,t))return[];const n=t.instances?.describe(e.id);return n?[{id:"prefab-instance",title:"Prefab Instance",icon:qa,order:Ja+125,body:{kind:"custom",render:()=>o.jsx(eh,{adapter:t,nodeId:e.id}),data:{component:n.componentName,sourcePath:n.sourcePath??null,overrideCount:n.overrides.length,overrides:n.overrides.map(r=>({path:r.path,value:r.value,default:r.defaultText??null,canApplyToComponent:r.canApplyToComponent}))}}}]:[]}const nh=Ya(void 0,"prefab-instance-inspector");nh.ensure(e=>{e(Ga({match:ua,sections:th}))});bs({match:e=>e.surface==="asset-lab",describe:()=>{const e=si();if(!e)return null;const t=hr();return t?.documentId===e.documentId?t.subject:{id:e.documentId,title:e.title,kindLabel:e.type,sections:[]}}});bs({match:()=>{const e=hr();return e!==null&&e.documentId===$t()},describe:()=>hr()?.subject??null});async function rh(e,t){const n=await ws();if(n.status==="unreadable")throw new Error(`${yn} is present but could not be read (${n.reason}). Refusing to overwrite it — fix or delete the file, then try again.`);const r=n.status==="ok"?n.manifest:{version:1,profile:qn.version,generatedAt:new Date().toISOString(),entries:{}},s=e.replace(/^\/+/,""),i=r.entries[s]??{state:"fallback",profileVersion:qn.version,issueCode:"thumbnail.pending-regeneration"},c={...r,profile:qn.version,generatedAt:new Date().toISOString(),entries:{...r.entries,[s]:{...i,framing:t}}},u=`${JSON.stringify(c,null,2)}
3
+ `,f=di();(f?await xs(f,li(),"project-resources").write(yn,u,{label:`${t?"Save":"Reset"} thumbnail framing ${e}`,kind:"project-file",contentType:"application/json"}):await $e.write(yn,u).then(()=>!0))&&Ss()}const oh={openPersistence:e=>ci(e),replaceSource:async(e,t)=>{const n=ai("The Asset Editor");if(!n)throw new Error("This editor tier cannot write project source.");return ii(n,e,t)},saveThumbnailFraming:rh};function sh(){let e=0;const t=async()=>{const r=++e,s=Ce();if(s)try{const i=await pi();if(i.status!=="project"||i.project.path!==s.rootPath)return;const c=i.project.config;if(r!==e||Ce()!==s)return;fi({...s,config:c})}catch(i){r===e&&Ce()===s&&console.error("[project] Could not refresh project declarations:",i)}},n=ui(()=>void t());return()=>{e++,n()}}function ah(){return hi(()=>{mi(),vi(null),yi(),gi(),bi(),Es(),wi(),St()})}async function ih(){typeof performance<"u"&&performance.getEntriesByType("navigation").length>0&&await Promise.race([Mr(),new Promise(t=>setTimeout(t,5e3))]),await kn()}function ch(){ih();const e=$r(()=>void kn()),t=xi(()=>void kn());return()=>{e(),t()}}function lh({children:e}){const t=a.useRef(null);t.current||(t.current=new Si({followsWorkspaceFocus:!0}),Ei(t.current));const n=a.useRef(null);if(!n.current){const c=Ce();n.current=new ji(c?.rootPath??"unknown-project")}t.current.attachHistory(n.current.history),ki(oh);const r=a.useRef(null);r.current||(r.current={fps:0,frameTime:0,drawCalls:0,triangles:0,cameraPosition:{x:0,y:0,z:0},cameraTarget:{x:0,y:0,z:0}});const s=a.useRef(null);s.current||(s.current=Ri()),a.useEffect(()=>Ci(t.current,n.current.historyCommands),[]),a.useEffect(()=>ch(),[]),a.useEffect(()=>Pi(),[]),a.useEffect(()=>Ii(),[]),a.useEffect(()=>sh(),[]),a.useEffect(()=>ah(),[]),a.useEffect(()=>Ti(),[]),a.useEffect(()=>_i({report:Di}),[]);const i=a.useRef(!1);return a.useEffect(()=>{i.current=!0;const c=n.current;return()=>{i.current=!1,queueMicrotask(()=>{i.current||c.dispose()})}},[]),o.jsx(Ai,{runtime:{store:t.current,stats:r.current,initPromise:s.current,session:n.current},children:e})}const $o="agent-presented-view";function dh(){const e=qe();a.useSyncExternalStore(Ni,ao,ao);const t=Li();return a.useEffect(()=>{if(!t){js($o);return}Rn({id:$o,tone:"info",title:"Agent presented this view.",...t.presented.warnings.length>0?{detail:t.presented.warnings.join(" ")}:{},onDismiss:Oi,actions:[{label:"Copy Link",keeps:!0,run:()=>{Promise.resolve().then(()=>navigator.clipboard.writeText(t.presented.url)).catch(()=>{ue.warn("Could not copy the view link to the clipboard.","editor")})}},{label:"Return",primary:!0,run:()=>{ks(e,t.previousView,{origin:"return"}).catch(n=>{ue.error(`Could not return to the previous editor view: ${n instanceof Error?n.message:String(n)}`,"editor")})}}]})},[t,e]),null}function uh(e){a.useEffect(()=>{const t=Mi(),n=()=>$i(e.playState!=="stopped");n();const r=e.subscribe(n);return()=>{r(),t(),Es()}},[e])}function ph({documentId:e,runtime:t=!1,island:n=!1,assetPath:r,transformControls:s,children:i}){a.useSyncExternalStore(Fr,Mt,Mt);const c=a.useSyncExternalStore($n,ft,ft);a.useSyncExternalStore(Rs,Cn,Cn);const u=Cs(e)?.headerWidth??null,f=a.useCallback(v=>Fi(e,v),[e]),p=an(e)?.HeaderControls;return!i&&!p&&!s||!t&&c.includes("header:hidden")?null:o.jsxs("div",{className:n?"volter-dock-document-toolbar volter-chrome-island volter-glass-island":"volter-dock-document-toolbar","data-runtime-toolbar":t||void 0,"data-island-scale":"compact","data-testid":`document-header:${e}`,children:[i?o.jsx("div",{className:"volter-dock-document-toolbar-own",children:i}):null,s,p?o.jsx(a.Suspense,{fallback:null,children:o.jsx(p,{documentId:e,...r&&!r.startsWith("online:")?{assetPath:r}:{}})}):null,u===null?null:o.jsx("div",{ref:f,className:"volter-dock-document-toolbar-area","data-testid":`document-header-area:${e}`,style:{flex:"0 0 auto",width:u,alignSelf:"stretch",display:"flex",alignItems:"center",position:"relative",zIndex:1,background:"var(--volter-surface-chrome)"}})]})}function fh({documentId:e,children:t}){const n=a.useSyncExternalStore($n,ft,ft);return!t||n.includes("shelf:hidden")?null:o.jsx("div",{className:"volter-dock-document-shelf","data-testid":`document-shelf:${e}`,role:"toolbar","aria-orientation":"vertical","aria-label":"Document tools",children:t})}function hh(e){return e==="game"||e==="scene"||e==="world"?"world":"resource"}function pa({viewId:e,descriptor:t,active:n,backdrop:r=!1,chrome:s=!0}){const i=t.Content,c=t.Toolbar,u=t.Shelf,f=hh(t.kind),p=qe();a.useSyncExternalStore(p.subscribe,p.getShellSnapshot??p.getSnapshot),a.useSyncExternalStore(Vr,en,en),a.useSyncExternalStore(Fr,Mt,Mt),a.useSyncExternalStore(Vi,io,io);const v=a.useSyncExternalStore(Wi,()=>Hi(t.id),()=>!1),k=an(t.id),T=n&&!v&&t.kind!=="game"?k?.transformTools?.()??"none":"none",R=k?.TransformTools,w=k?.TransformControls,P=zi(),g=s&&!v&&k!==null&&k!==void 0&&!r,A=g&&P.bar!=="none"&&P.tools!=="shelf",N=a.useSyncExternalStore($n,ft,ft).includes("shelf:hidden"),d=T==="none"||!R?null:o.jsx(a.Suspense,{fallback:null,children:o.jsx(R,{documentId:t.id})});a.useSyncExternalStore(Rs,Cn,Cn);const h=Cs(t.id)?.shelf??null,D=g&&P.bar!=="none",W=!D||P.display==="corner"?null:P.display==="bar-start"?"start":"end",ne=A?P.tools==="bar-start"?"start":"end":null,Y=D&&P.transformControls==="bar"&&T==="gizmo"&&w!==void 0,ke=Y?ne??W??"start":null,re=H=>o.jsxs("div",{className:"volter-stage-bar-group","data-edge":H,children:[W===H?o.jsx("div",{className:"volter-stage-bar-slot","data-stage-bar-slot":"display"}):null,ne===H?d:null,ke===H&&w?o.jsx(a.Suspense,{fallback:null,children:o.jsx(w,{documentId:t.id})}):null]});return o.jsxs("div",{className:"volter-dock-document","data-testid":`workspace-doc:${t.id}`,"data-editor-hotkey-scope":f==="world"?"viewport":"workspace","data-volter-document-family":f,children:[s&&o.jsx(ph,{documentId:t.id,runtime:t.kind==="game",island:r&&f==="world",assetPath:Bi(t.id)?.assetPath,transformControls:T==="gizmo"&&w&&!Y?o.jsx(a.Suspense,{fallback:null,children:o.jsx(w,{documentId:t.id})}):null,children:c?o.jsx(c,{documentId:t.id,active:n}):null}),o.jsxs("div",{className:"volter-dock-document-content","data-workspace-document-id":t.id,"data-workspace-view-id":e,"data-volter-stage-bar":g&&P.bar!=="none"?P.bar:void 0,"data-volter-stage-rail":s&&!v&&!N&&(d&&!A||u)?void 0:"empty",children:[o.jsx(Ui,{surface:`document:${t.id}`,label:`The ${t.title} document`,children:o.jsx(i,{documentId:t.id,...e?{viewId:e}:{},active:n})},t.id),D?o.jsxs("div",{className:"volter-stage-bar","data-form":P.bar,role:"toolbar","aria-label":"Viewport",children:[re("start"),re("end")]}):null,s&&!N&&h&&d&&!A?Ye.createPortal(d,h):null,s&&!v&&o.jsx(fh,{documentId:t.id,children:d&&!A||u?o.jsxs(o.Fragment,{children:[A?null:d,u?o.jsx(u,{documentId:t.id,active:n}):null]}):null})]})]})}const pn=new Map;function mh(e,t){const n=Ft();let r=pn.get(e);(!r||r.project!==n)&&(r={project:n,count:0,created:t},pn.set(e,r)),r.count++;const s=r;return()=>{pn.get(e)!==s||--s.count>0||(pn.delete(e),s.created&&Ft()===s.project&&_s(e))}}function vh({document:e,chrome:t=!0,active:n=!0,onReady:r}){const s=qe(),[i,c]=a.useState(null),[u,f]=a.useState(null),p=JSON.stringify(e),v=a.useRef(r);v.current=r;const k=a.useRef(null);a.useSyncExternalStore(De,Me,Me);const T=a.useSyncExternalStore(Fr,Mt,Mt);a.useEffect(()=>{let w=!1,P;const g=Ft(),A=()=>!w&&Ft()===g,N=JSON.parse(p);return c(null),f(null),(async()=>{if(await Wr(),!A())return;const d=new Set(ht().map(D=>D.descriptor.id)),h=N.kind==="asset"?gn(N.path,N.assetKind??"source",{activate:n}):N.kind==="workspace"?d.has(N.id)?N.id:null:await Ts(N.kind,s,{...N,activate:n});if(A()){if(!h)throw new Error("The requested layout document is unavailable.");P=mh(h,!d.has(h)),c(h)}})().catch(d=>{A()&&f(d instanceof Error?d.message:String(d))}),()=>{w=!0,P?.()}},[s,p]),a.useEffect(()=>{!i||!n||Hr(i)},[i,n]),a.useEffect(()=>{if(!i)return;const w=an(i);if(!(!w||k.current===w)){k.current=w;try{v.current?.({select(P){const g=w.idsNamed?.(P)??[];if(g.length!==1)throw new Error(`Expected one object named "${P}"; found ${g.length}.`);w.selection?.apply(g)},transform(P){w.setTransformMode?.(P)},frame(){w.frame("document")}})}catch(P){f(P instanceof Error?P.message:String(P))}}},[i,T]);const R=i?ht().find(w=>w.descriptor.id===i):void 0;return o.jsx("div",{style:{position:"relative",flex:1,minWidth:0,minHeight:0,height:"100%",overflow:"hidden"},children:u?o.jsx("div",{role:"alert",children:u}):R?o.jsx(pa,{descriptor:R.descriptor,active:n,chrome:t}):o.jsx("div",{role:"status",children:"Opening document…"})})}function yh(){return o.jsxs(Ki,{children:[o.jsx(Gi,{}),o.jsx(Yi,{}),o.jsx(qi,{})]})}function gh(){const e=qe();a.useSyncExternalStore(e.subscribe,e.getShellSnapshot??e.getSnapshot);const t=a.useSyncExternalStore(Ps,co,co),[n,r]=a.useState(!1),s=a.useSyncExternalStore(Is,lo,lo);if(a.useEffect(()=>{let c=!1;return Wr().then(()=>{c||r(!0)}),()=>{c=!0}},[]),!n)return o.jsx("div",{role:"status",children:s??"Loading project layout…"});const i=t.Layout??yh;return o.jsx(i,{playing:e.playState!=="stopped",paused:e.playState==="paused"})}function bh(){return As().filter(e=>e.category==="canvas").map(({descriptor:e})=>({id:`board:${e.id}`,label:`Open ${e.title}`,category:"action",execute:()=>void zr(e.id)}))}function wh(e,t,n){const r=Qi(e,t,n),s=[...ec(),...bh(),...tc()],i=nc(e),c=rc().map(u=>({id:u.id,label:u.label,category:"action",shortcut:u.shortcut?Ls(u.shortcut):void 0,execute:u.execute}));return[...r,...s,...c,...Eh(),...i]}const xh=["view","window","debug","tools","help"],Sh={view:"View",window:"Window",debug:"Debug",tools:"Tools",help:"Help"};function Eh(){return xh.flatMap(e=>Os(e).map(t=>{const n=typeof t.label=="function"?t.label():t.label,r=`${Sh[e]}: ${n}`;return{id:t.id,label:r,category:"action",menu:{id:e,label:n},execute:()=>{if(t.disabled?.({})){at(`${r} is not available right now.`);return}return t.execute({})}}}))}function jh(e){return e.map(t=>`${t.id}\0${t.label}\0${t.menu?.id??""}`).join("")}function kh(){const e=qe(),t=Ds(),n=Ji(),r=a.useSyncExternalStore(Xi,uo,uo),s=a.useSyncExternalStore(e.subscribe,e.getShellSnapshot??e.getSnapshot),i=a.useSyncExternalStore(Zi,po,po),c=a.useSyncExternalStore(Ns,fo,fo),u=a.useMemo(()=>wh(e,t,n),[e,t,n,r,s,i,c]),f=a.useRef(null);return a.useEffect(()=>{const p=jh(u);p!==f.current&&(f.current=p,ho(u.map(v=>({id:v.id,label:v.label,category:v.category,run:v.execute,...v.menu?{menu:v.menu}:{}}))))},[u]),a.useEffect(()=>()=>{f.current=null,ho([])},[]),null}const Rh=a.lazy(async()=>({default:(await M(()=>import("./NonThreeAuthoringBootstrap-4j6fBCFM.js"),__vite__mapDeps([44,1]))).ProjectAuthoringBootstrap}));function Ch(){const e=qe(),t=$s(),n=Ds();return a.use(oc()),a.useSyncExternalStore(e.subscribe,e.getShellSnapshot??e.getSnapshot),uh(e),a.useEffect(()=>sc(),[]),a.useEffect(()=>ac(),[]),a.useEffect(()=>ic(t),[t]),a.useEffect(()=>cc(),[]),a.useEffect(()=>lc(),[e]),a.useEffect(()=>dc(),[e]),a.useEffect(()=>uc(t),[t]),a.useEffect(()=>pc(e,n),[e,n]),a.useEffect(()=>fc(e),[e]),a.useEffect(()=>hc(()=>window.dispatchEvent(new CustomEvent("editor:assets-changed")),r=>window.dispatchEvent(new CustomEvent("editor:assets-changed",{detail:r}))),[]),o.jsxs(o.Fragment,{children:[o.jsx(a.Suspense,{fallback:null,children:o.jsx(Rh,{store:e})}),o.jsx(gh,{}),o.jsx(dh,{}),o.jsx(kh,{})]})}const Nn="volter.editor.orphaned-tab.v1";function Ph(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!="object"||t===null)return null;const n=t;if(typeof n.at!="number"||!Number.isFinite(n.at)||n.reason!=="server-gone")return null;const r=typeof n.project=="string"?n.project:null;return{at:n.at,reason:n.reason,project:r}}function Ih(e){return JSON.stringify(e)}function Th(e,t){const n=Math.max(0,Math.round((t-e.at)/1e3)),r=n<90?`${n}s ago`:n<5400?`${Math.round(n/60)}m ago`:`${Math.round(n/3600)}h ago`,s=e.project?` on ${e.project}`:"";return`A previous editor window at this address lost its server ${r}${s} and was left orphaned. If that window is still open it is a stale snapshot — nothing in it is saved and every click in it hangs on retries. Close it; this window is the live one.`}const _h=720*60*1e3;function Ah(e,t){const n=t-e.at;return n>=0&&n<=_h}function eo(){try{return typeof localStorage>"u"?null:localStorage}catch{return null}}function Dh(e,t=eo()){try{t?.setItem(Nn,Ih(e))}catch{}}function Nh(e=eo()){if(!e)return null;try{const t=Ph(e.getItem(Nn));return e.removeItem(Nn),t}catch{return null}}function Lh(e=eo()){try{e?.removeItem(Nn)}catch{}}function Oh(e){return e?e.split(/[\\/]/).filter(Boolean).at(-1)??null:null}async function $h(){try{const{stopAllLiveSessions:e}=await M(async()=>{const{stopAllLiveSessions:t}=await import("./volter-sdk-kit-live-session-registry-CDqtFqYd.js");return{stopAllLiveSessions:t}},__vite__mapDeps([45,1]));e()}catch{}}function Mh(){const[e,t]=a.useState({kind:"quiet"}),n=a.useRef(mc(Date.now())),r=a.useRef(null),s=a.useRef(!1);return a.useEffect(()=>{let i=!1,c=null;const u=()=>{c!==null&&(clearInterval(c),c=null)},f=async g=>{r.current=g,kc(g),g==="taken-over"&&u(),g==="server-gone"&&Dh({at:Date.now(),reason:"server-gone",project:n.current.bootIdentity?.project??null}),t(s.current?{kind:"degraded",subject:"stale"}:{kind:"void",reason:g,reloadOffered:!1}),await $h()},p=(g,A,N)=>{switch(Ec(n.current.bootIdentity,g)){case"resume":{r.current=null,jc(),Lh(),n.current=mo(n.current,g,A,N),t({kind:"quiet"});return}case"reload":if(s.current)return;window.location.reload();return;case"offer-reload":t(d=>d.kind==="void"&&!d.reloadOffered?{...d,reloadOffered:!0}:d);return;default:return}},v=async()=>{const g=await wc();if(i)return;if(g.ok&&g.lease==="page"){i=!0,u();return}const A=xc(),N=Date.now();if(r.current!==null){p(g,A,N);return}n.current=mo(n.current,g,A,N);const d=Sc({consecutiveFailures:n.current.consecutiveFailures,unbackedFailures:n.current.unbackedFailures,failureThreshold:Rc,darkForMs:N-n.current.darkSince,minDarkWindowMs:Cc,bootIdentity:n.current.bootIdentity,lastIdentity:n.current.lastIdentity});if(d.status==="void"&&d.reason!==null){await f(d.reason);return}t(d.status==="degraded"?{kind:"degraded",subject:"busy"}:{kind:"quiet"})};let k=!1;const T=()=>{k||i||(k=!0,v().finally(()=>{k=!1}))},R=()=>{i||(r.current===null&&(n.current=bc(n.current,Date.now())),T())},w=()=>{document.visibilityState==="visible"&&R()};document.addEventListener("visibilitychange",w),window.addEventListener("pageshow",R);let P=null;try{const g=vc();g.addEventListener("error",T),g.addEventListener("open",T),P=g}catch{}return c=setInterval(T,yc),()=>{i=!0,u(),document.removeEventListener("visibilitychange",w),window.removeEventListener("pageshow",R),P?.close()}},[]),a.useEffect(()=>{gc(e);const i=Oh(n.current.bootIdentity?.project??null),c=()=>{s.current=!0,t({kind:"degraded",subject:"stale"})};if(e.kind==="quiet"){js(tr);return}if(e.kind==="degraded"){Rn({id:tr,tone:"warning",sticky:!0,...e.subject==="busy"?{title:"Editor server is slow to answer.",detail:"Still connected — this window keeps working, and this clears itself when the server catches up."}:{title:"This window's editor server has stopped.",detail:"You chose to keep reading it — nothing here saves, and it will not reconnect on its own. Reload once the editor is served here again.",actions:[{label:"Reload",primary:!0,run:()=>window.location.reload()}]}});return}Rn({id:tr,tone:"error",sticky:!0,title:"Editor disconnected.",detail:e.reason==="taken-over"?`${i?`${i}'s`:"This project's"} editor is now running in another window. This one has yielded.`:`This window's editor server has stopped — nothing here is saved, and a running game has left its room. Reopen with ${Br(`edit ${i??"<project>"}`)}${i?`, or leave this window open: it reloads by itself when ${i}'s editor is served here again.`:"."}`,onDismiss:()=>{s.current||c()},actions:[...e.reloadOffered?[{label:"Reload",primary:!0,run:()=>window.location.reload()}]:[],{label:"Close window",run:()=>window.close()},{label:"Continue anyway",run:c}]})},[e]),null}const tr="editor-lease";function Fh({error:e,onDismiss:t,onRetry:n,startup:r=!1}){const s=e.recovery&&"verbs"in e.recovery?Ms(e.recovery.verbs):null,[i,c]=a.useState(!1);return a.useEffect(()=>{if(!i)return;const u=window.setTimeout(()=>c(!1),1600);return()=>window.clearTimeout(u)},[i]),o.jsxs("div",{role:"alert",className:"volter-error-card volter-shell-rise",children:[o.jsx("div",{className:"volter-error-card-icon","aria-hidden":"true",children:o.jsx(G,{icon:Ur})}),o.jsxs("div",{className:"volter-error-card-body",children:[r?o.jsx("h1",{className:"volter-error-card-title",children:e.recovery?.title??"Couldn’t open this project"}):e.recovery&&o.jsx("div",{className:"volter-error-card-title",children:e.recovery.title}),e.recovery&&o.jsx("p",{className:"volter-error-card-guidance",children:e.recovery.guidance}),o.jsx("div",{className:"volter-error-card-message","data-testid":r?"project-startup-error-details":void 0,children:e.message}),s&&o.jsxs("div",{children:[r&&o.jsx("div",{className:"volter-error-card-recovery-label",children:"RUN FROM THE PROJECT FOLDER"}),o.jsxs("div",{className:"volter-error-card-command",children:[o.jsx("code",{"data-testid":r?"project-startup-recovery-command":"project-screen-recovery-command",children:s}),o.jsxs(te,{type:"button",variant:"secondary",size:"compact",onClick:()=>{navigator.clipboard?.writeText(s),c(!0)},children:[o.jsx(G,{icon:i?Pc:Ic,"aria-hidden":"true"}),i?"Copied":"Copy"]})]})]}),o.jsxs("div",{className:"volter-error-card-actions",children:[n&&o.jsx(te,{type:"button",variant:"primary",className:"volter-shell-cta","data-testid":"retry-project-detection",onClick:n,children:"Retry"}),t&&o.jsx(te,{type:"button",variant:"ghost",className:"volter-shell-cta","aria-label":"Dismiss error",onClick:t,children:"Dismiss"})]})]})]})}function Sr({error:e,report:t,onRetry:n}){return o.jsx("div",{className:"volter-shell","data-testid":"project-detection-error",children:o.jsxs("div",{className:"volter-shell-container","data-view":"startup-error",children:[o.jsx("header",{className:"volter-shell-header",children:o.jsxs("span",{className:"volter-shell-brand-static",children:[o.jsx("span",{className:"volter-shell-brand-mark","aria-hidden":"true",children:o.jsx(Fs,{size:30})}),o.jsx("span",{className:"volter-shell-wordmark",children:Vs.name})]})}),o.jsx(Fh,{error:e,onRetry:n,startup:!0}),t?.projectPath&&o.jsx("div",{className:"volter-shell-notice","data-testid":"project-startup-serving",children:o.jsxs("span",{children:["This editor server is serving"," ",o.jsx("code",{"data-testid":"project-startup-serving-path",children:t.projectPath})," — the project exists; the editor could not read it. Fix the file it names above and press Retry."]})}),o.jsx("footer",{className:"volter-shell-footer",children:o.jsxs("span",{className:"volter-chip","data-variant":"tag",children:["Editor v",Tc," · Engine v",_c]})})]})})}function Vh({wait:e}={}){return o.jsx("main",{role:"status","aria-live":"polite","aria-label":"Opening project","data-testid":"startup-loading-screen",className:"volter-splash",children:o.jsxs("div",{className:"volter-splash-stack",children:[o.jsx("div",{"aria-hidden":"true",className:"volter-splash-logo",children:o.jsx(Fs,{size:72})}),o.jsx("div",{className:"volter-splash-title",children:Vs.name}),o.jsx("div",{"aria-hidden":"true",className:"volter-splash-progress"}),e?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"volter-splash-status","data-testid":"startup-wait-status",children:`Asking the server which project it serves — ${e.seconds}s`}),o.jsx("div",{className:"volter-splash-note",children:"Still trying. The first boot of a fresh checkout can take a while, so this keeps asking until the server answers."}),e.detail?o.jsxs("div",{className:"volter-splash-note",children:["Last attempt: ",e.detail]}):null]}):o.jsx("div",{className:"volter-splash-status",children:"Opening project…"})]})})}class Wh extends a.Component{state={error:null};static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){ue.error(`Editor chrome crashed while the command listener stayed attached: ${t.message}
4
+ ${n.componentStack??""}`,"editor"),Kr("editor-surface",{message:`The editor surface crashed: ${t.message}`,guidance:"Dismiss this, then press Retry on the error screen to draw the editor again.",command:null})}componentWillUnmount(){tn("editor-surface")}render(){return this.state.error?o.jsx(Sr,{error:{message:`The editor surface crashed: ${this.state.error.message}`},onRetry:()=>{tn("editor-surface"),this.setState({error:null})}}):this.props.children}}function fn({children:e}){return o.jsxs(o.Fragment,{children:[e,o.jsx(Mh,{})]})}function Hh(e){const t=e instanceof Error?e.message:String(e);return e instanceof Fc?{status:"error",message:t,recovery:e.recovery}:e instanceof Vc?{status:"error",message:t,report:e.report}:{status:"error",message:t}}const zh=8e3;function Bh(e=Oc,t=zh){return new Promise((n,r)=>{const s=window.setTimeout(()=>{r(new Mc(t))},t);e().then(i=>{window.clearTimeout(s),n(i)},i=>{window.clearTimeout(s),r(i)})})}const Mo=3;function Fo(){return`This window has no project open. A session serves one project: open a folder that carries a volter.project.json, or start one from a terminal — ${Br("edit <folder>")}.`}const Vo="editor";function Yt(e){e?Kr(Vo,e):tn(Vo)}function Uh(){const[e,t]=a.useState({status:"detecting",waitingSince:null}),[n,r]=a.useState(0);a.useEffect(()=>Ac(),[]),a.useEffect(()=>Dc(),[]),a.useEffect(()=>Nc(()=>r(p=>p+1)),[]),a.useEffect(()=>{let p=!1,v,k=0;const T=Date.now();t({status:"detecting",waitingSince:null}),Yt(null);const R=()=>{Bh().then(w=>{if(!p)if(w)Yt(null),t({status:"ready",project:w});else{const P=Fo();ue.error(`Startup failed: ${P}`,"editor"),Yt({message:P,guidance:null,command:null}),t({status:"no-project"})}},w=>{if(p)return;k+=1;const P=$c(w,k);if(P.kind==="terminal"){const A=Hh(w),N=A.recovery&&"verbs"in A.recovery?Ms(A.recovery.verbs):null;ue.error(`Startup failed: ${A.message}${N&&!A.message.includes(N)?` Run: ${N}`:""}`,"editor"),Yt({message:A.message,guidance:A.recovery?.guidance??null,command:N}),t(A);return}const g=w instanceof Error?w.message:String(w);k===Mo&&ue.error(`Project detection has failed ${k} times and is still retrying: ${g}`,"editor"),k>=Mo&&Yt({message:`Still reading the project (${Math.round((Date.now()-T)/1e3)}s, ${k} attempts): ${g}`,guidance:null,command:null,transient:!0}),t({status:"detecting",waitingSince:T,lastError:g}),v=window.setTimeout(R,P.delayMs)})};return R(),()=>{p=!0,v!==void 0&&window.clearTimeout(v)}},[n]);const s=e.status==="detecting"?e.waitingSince:null,[i,c]=a.useState(0);a.useEffect(()=>{if(s===null){c(0);return}const p=()=>c(Math.max(0,Math.round((Date.now()-s)/1e3)));p();const v=window.setInterval(p,1e3);return()=>window.clearInterval(v)},[s]),a.useEffect(()=>{e.status!=="detecting"&&Lc(e.status==="ready"?"project":"no-project")},[e.status]);const u=e.status==="error"&&e.recovery?("summary"in e.recovery?e.recovery.summary:void 0)??e.recovery.title:null,f=e.status==="ready"?e.project.config.name:e.status==="error"?`Couldn't open project${u?` — ${u}`:""}`:null;return a.useEffect(()=>{if(document.title=vo(f,Jn()?.displayName),Jn())return;let p=!0;return mr().then(()=>{p&&(document.title=vo(f,Jn()?.displayName))}),()=>{p=!1}},[f]),e.status==="detecting"?o.jsx(fn,{children:o.jsx(Vh,{wait:e.waitingSince===null?void 0:{seconds:i,detail:e.lastError}})}):e.status==="no-project"?o.jsx(fn,{children:o.jsx(Sr,{error:{message:Fo()},onRetry:()=>r(p=>p+1)})}):e.status==="error"?o.jsx(fn,{children:o.jsx(Sr,{error:{message:e.message,...e.recovery?{recovery:e.recovery}:{}},report:e.report,onRetry:()=>r(p=>p+1)})}):o.jsx(fn,{children:o.jsx(lh,{children:o.jsx(Wh,{children:o.jsx(Ch,{})})})})}let dt=null,fa=0;const Er=new Set;function Kh(){return dt}function Wo(){return fa}function Gh(e){return Er.add(e),()=>Er.delete(e)}function Ho(e){if(!(dt===e||dt!==null&&e!==null&&dt.x===e.x&&dt.y===e.y&&dt.width===e.width&&dt.height===e.height)){dt=e,fa+=1;for(const n of Er)n()}}function Yh(e,t,n){const r=Math.min(t.maxWidth,Math.max(t.minSize,e.width-t.margin*2)),s=Math.min(t.maxHeight,Math.max(t.minSize,e.height-t.margin*2)),i=e.x+t.margin,c=e.x+e.width-r-t.margin,u=e.y+t.margin,f=e.y+e.height-s-t.margin,p=e.x+e.width-n.right-r,v=e.y+e.height-n.bottom-s;return{width:r,height:s,left:Math.min(Math.max(p,i),Math.max(c,i)),top:Math.min(Math.max(v,u),Math.max(f,u))}}const ha=260,ma=360,on=16,qh=200,va=220,jr=54,Jh=52,Xh={maxWidth:ha,maxHeight:ma,minSize:qh,margin:on},Zh={right:on,bottom:on},Qh={maxWidth:va,maxHeight:jr,minSize:jr,margin:on};function em(e,t,n){return Yh(e,n?Qh:Xh,t)}function tm(){const e=qe();a.useSyncExternalStore(e.subscribe,e.getShellSnapshot),a.useSyncExternalStore(De,Me,Me),a.useSyncExternalStore(Wc,yo,yo),a.useSyncExternalStore(Gh,Wo,Wo);const t=Kh(),[n,r]=a.useState(!1),{subject:s}=Ws(e),i=a.useCallback(()=>{St();const{adapter:u}=Pn(e);Lt(u,[])||e.select(null)},[e]),c=t?em(t,Zh,n):null;return o.jsx("div",{style:{position:"absolute",...c?{left:c.left,top:c.top,width:c.width,height:c.height}:{right:on,bottom:Jh,width:n?va:ha,height:n?jr:ma},display:"flex",alignItems:"flex-end",zIndex:Hs.sticky,pointerEvents:"none"},children:o.jsx("div",{"data-testid":"compact-inspector-card",style:{display:"flex",width:"100%",...n?{height:"100%"}:{maxHeight:"100%"},borderRadius:n?999:"var(--dv-group-border-radius, 8px)",overflow:n?"hidden":"clip",border:"var(--dv-floating-border, 1px solid var(--volter-boundary-default))",boxShadow:"var(--dv-floating-box-shadow, var(--volter-shadow-lg))",background:"var(--dv-group-view-background-color, var(--volter-bg-1))",pointerEvents:"auto"},children:n?o.jsx(Hc,{subject:s,onExpand:()=>r(!1),onClear:i}):o.jsx(zc,{actions:{minimize:()=>r(!0)},children:o.jsx(Gr,{})})})})}function nm(e,t){for(const n of e.childAdapters())if(e.groupNodeId(n.worldId)===t)return n.worldId;return e.ownerOf(t)}function rm(e,t,n){if(!(e instanceof cn))return!0;const r=nm(e,n);return r===null?!1:t.every(s=>e.ownerOf(s)===r)}const om="This world's structure comes from its own source, which the editor can't rewrite here — reparenting is not wired for it.",sm="That row is part of a component instance's own output, not authored content. Drop onto the instance itself to place relative to it.";function zo(e){return e.hasStructureWritePath?e.targetIsInternal?sm:null:om}const ya="hierarchyExpansion",Ht=new Map;let Bo=!1;function to(){if(Bo||!Yr())return;Bo=!0;const e=Fn(ya)??{};for(const[t,n]of Object.entries(e))Ht.set(t,new Map(Object.entries(n)))}function ga(){const e={};for(const[t,n]of Ht)e[t]=Object.fromEntries(n);Mn(ya,e)}function am(e,t){return to(),Ht.get(e)?.get(t)}function Uo(e,t){to();let n=Ht.get(e);n||(n=new Map,Ht.set(e,n));for(const[r,s]of t)n.set(r,s);ga()}function im(e){to(),Ht.delete(e),ga()}let Ln=null;const kr=new Set;function cm(){return Ln}function lm(e){return kr.add(e),()=>{kr.delete(e)}}function ba(e){if(Ln!==e){Ln=e;for(const t of kr)t()}}function dm(e){Ln===e&&ba(null)}function um(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(!Object.is(e[n],t[n]))return!1;return!0}class nr{#e=null;#t;computeCount=0;get current(){return this.#t}read(t,n){if(this.#e!==null&&um(this.#e,t))return this.#t;const r=n(this.#t);return this.#e=t,this.#t=r,this.computeCount+=1,r}}class pm{#e=new nr;#t=new nr;#o=new nr;#r;#n=Number.NEGATIVE_INFINITY;structural(t,n){const[r,s]=t;if(r===this.#r&&typeof s=="number"&&s<this.#n&&this.#e.current!==void 0)return this.#e.current;const i=this.#e.read(t,n);return r!==this.#r&&(this.#r=r,this.#n=Number.NEGATIVE_INFINITY),typeof s=="number"&&(this.#n=Math.max(this.#n,s)),i}collapsed(t,n){return this.#t.read(t,n)}browse(t,n){return this.#o.read(t,n)}get counts(){return{structural:this.#e.computeCount,collapsed:this.#t.computeCount,browse:this.#o.computeCount}}}function fm(e){const t=new Map,n=new Map;for(const r of e){if(r.more)continue;t.set(r.pathKey,r.node.id);const s=n.get(r.node.id);s?s.push(r.pathKey):n.set(r.node.id,[r.pathKey])}return{nodeIdByPathKey:t,pathKeysByNodeId:n}}function no(e){const t=e.split("."),n=[];for(let r=1;r<t.length;r++)n.push(t.slice(0,r).join("."));return n}function Ko(e,t){const n=new Set;for(const r of t)for(const s of e.pathKeysByNodeId.get(r)??[])for(const i of no(s)){const c=e.nodeIdByPathKey.get(i);c&&n.add(c)}return n}function hm(e,t){const n=new Map;for(const r of t)for(const s of e.pathKeysByNodeId.get(r)??[]){const i=s.split(".");let c=i[0];for(let u=1;u<i.length;u++){const f=Number(i[u]);Number.isFinite(f)&&n.set(c,Math.max(n.get(c)??0,f+1)),c=`${c}.${i[u]}`}}return n}function mm(e){return e.size===0?"":[...e].sort((t,n)=>t[0]<n[0]?-1:t[0]>n[0]?1:0).map(([t,n])=>`${t}=${String(n)}`).join(",")}const rr="application/x-editor-asset",or="application/x-hierarchy-reorder";function sr(e){const n=e?.querySelector(".volter-tree-row")?.getBoundingClientRect().height??0;if(n>0)return Math.round(n);const r=e?Number.parseFloat(getComputedStyle(e).getPropertyValue("--volter-tree-row-height")):Number.NaN;return Number.isFinite(r)&&r>0?r:$l.treeRow}const Jt="var(--volter-tree-indent)";function xn(e){return`calc(${Jt} * ${e})`}const Go=5;function vm(e,t,n){const r=[];for(let s=0;s<e;s++)r.push({column:s,starts:t===s,ends:n<=s});return r}const ym=[],gm=6,bm=8,wm=2400;function xm(e){const t=new Map,n=s=>{const i=s.childIds.flatMap(c=>{const u=e.node(c);return u?.role==="document"&&u.secondaryLabel?u.childIds:[c]});return i.length===s.childIds.length&&i.every((c,u)=>c===s.childIds[u])?null:i},r=s=>{let i=t.get(s.id);return i===void 0&&(i=n(s),t.set(s.id,i)),i===null?s:{...s,childIds:i}};return{...e,roots:()=>{const s=e.roots();return s.length===1&&s[0]?.role==="document"?s[0].childIds.map(i=>e.node(i)).filter(i=>i!==null).map(r):s.map(r)},node:s=>{const i=e.node(s);return i?r(i):null}}}const Sm=300,Em=new Map,jm={folder:Jr,document:ul,story:dl,component:ll,instance:cl,boundary:Ur};function km(e){return e.role==="root"?bn(e.kind,rd):e.role==="entity"||e.role==="element"?bn(e.kind):(e.role?jm[e.role]:void 0)??bn(e.kind)}const wa=new Set(["folder","root","document","story","boundary"]);function Rm(e,t,n){let r=e,s=0;for(;r&&s++<1e3;){if(t.includes(r))return!0;r=n.hierarchy.node(r)?.parentId??null}return!1}function Cm(e,t){return t===null?e.hierarchy.roots().map(n=>n.id):e.hierarchy.node(t)?.childIds??[]}function ro(e,t){if(!(e instanceof cn))return null;for(const n of e.childAdapters())if(e.groupNodeId(n.worldId)===t){const r=e.inspector?.get(t,"zOrder");return{zOrder:typeof r=="number"?r:n.zOrder,worldId:n.worldId,role:n.role,kind:n.kind,provenance:n.adapter.provenance??null}}return null}function Sn(e,t){return ro(e,t)!==null}function oo(e,t){return e instanceof cn&&e.isOrganizationNode(t)}function xa(e,t){if(!(e instanceof cn))return e;const n=e.ownerOf(t);return e.childAdapters().find(r=>r.worldId===n)?.adapter??e}function Yo(e,t){return t===void 0?e.structure!==void 0:xa(e,t).structure!==void 0}function Pm(e,t,n){return Sn(e,t)||oo(e,t)||n!==void 0&&wa.has(n)}function Im(e,t){const n=new Map,r=[],s=[],i=new Map;for(const c of e)c.more||i.set(c.node.id,c.node.kind);for(const c of e){if(c.more)continue;const u=c.depth===0?0:r[c.depth-1]??0,f=c.depth===0?null:s[c.depth-1],p=Pm(t,c.node.id,c.node.role),v=u+(p?0:1);r[c.depth]=v,r.length=c.depth+1,s[c.depth]=c.node,s.length=c.depth+1;const k=c.node.childIds.length>0&&c.node.childIds.every(T=>Bs(i.get(T)));n.set(c.node.id,c.node.defaultExpanded??(!k&&(p||v<=1||f?.childIds.length===1)))}return n}function Tm(e,t,n){const r=new Set;for(const s of e)if(!(s.more||!qr({structural:!1,internal:n(s.node.id)}).searchable)&&s.node.label.toLowerCase().includes(t)){r.add(s.pathKey);for(const i of no(s.pathKey))r.add(i)}return r}function _m(e,t){const n=new Map(e);for(const[r,s]of t)n.set(r,Math.max(n.get(r)??0,s));return n}function Am({value:e,onChange:t}){const n=a.useRef(null);return o.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center",flex:`0 1 var(${Nm}, ${Dm}px)`,minWidth:Lm},children:[o.jsx(G,{icon:ed,"aria-hidden":"true",style:{position:"absolute",left:Om,pointerEvents:"none",color:"var(--volter-text-1)",fontSize:"var(--volter-icon-lg)"}}),o.jsx(nn,{ref:n,type:"text","data-testid":"ingest-search",placeholder:"Search",className:"volter-input",value:e,onChange:r=>t(r.target.value),onKeyDown:r=>{r.key==="Escape"&&(r.stopPropagation(),e!==""?t(""):n.current?.blur())},style:{flex:1,minWidth:0,paddingLeft:`var(${Mm}, ${$m}px)`,paddingRight:Fm}})]})}const Dm=64,Nm="--volter-hierarchy-search-basis",Lm=56,Om=2,$m=21,Mm="--volter-hierarchy-search-text-inset",Fm=2;function Vm({onCollapseAll:e,onResetExpansion:t,onExpandAll:n}){const[r,s]=a.useState(!1),i=a.useRef(null);return o.jsxs("div",{ref:i,style:{position:"relative",flexShrink:0},children:[o.jsx(be,{title:"View","aria-label":"View","aria-haspopup":"menu","aria-expanded":r,"data-testid":"hierarchy-view-menu",onClick:()=>s(c=>!c),variant:"secondary",size:"compact",children:o.jsx(G,{icon:td,"aria-hidden":"true",style:{fontSize:"var(--volter-icon-xs)"}})}),r&&o.jsxs(Vt,{autoFocusFirst:!0,dismissBoundaryRef:i,onDismiss:()=>s(!1),style:{position:"absolute",top:"100%",right:0,marginTop:it[2],minWidth:170},children:[o.jsx(Z,{"data-testid":"hierarchy-collapse-all",onSelect:()=>{e(),s(!1)},children:"Collapse All"}),o.jsx(Z,{"data-testid":"hierarchy-reset-expansion",onSelect:()=>{t(),s(!1)},children:"Reset Openness"}),o.jsx(Z,{"data-testid":"hierarchy-expand-all",onSelect:()=>{n(),s(!1)},children:"Expand All"})]})]})}function Wm({slot:e,search:t,setSearch:n,adapter:r,createTargetId:s,onCollapseAll:i,onResetExpansion:c,onExpandAll:u}){const f=o.jsxs(o.Fragment,{children:[o.jsx(Am,{value:t,onChange:n}),o.jsx(Vm,{onCollapseAll:i,onResetExpansion:c,onExpandAll:u}),o.jsx(zm,{adapter:r,parentId:s})]});return e?Ye.createPortal(o.jsx("div",{"data-testid":"hierarchy-header-controls",style:{display:"flex",alignItems:"center",gap:Ge[1],height:"100%",minWidth:0},children:f}),e):o.jsx(Tn,{label:"Hierarchy controls",compact:!0,style:{gap:Ge[2]},children:f})}function Hm({state:e,adapter:t,store:n,isGroupNode:r,isInternal:s,onRename:i,onClose:c}){const u=a.useRef(null),[f,p]=a.useState({left:e.x,top:e.y});a.useLayoutEffect(()=>{const I=u.current;if(!I)return;const _=I.getBoundingClientRect();p(Ml({top:e.y,left:e.x,width:_.width,height:_.height}))},[e.x,e.y]);const[v,k]=a.useState(!1),T=a.useRef(!1);a.useEffect(()=>{v&&(T.current=!1)},[v]),a.useEffect(()=>{const I=J=>{u.current&&!u.current.contains(J.target)&&c()},_=J=>{J.key==="Escape"&&c()};return document.addEventListener("mousedown",I),document.addEventListener("keydown",_),()=>{document.removeEventListener("mousedown",I),document.removeEventListener("keydown",_)}},[c]);const R=t.hierarchy.node(e.nodeId);if(!R)return null;const w=t.structure?.creatableKinds?.(e.nodeId)??[],g=xa(t,e.nodeId).structure,A=!!g,N=t.inspector?.get(e.nodeId,"name")!==void 0,d=t.inspector?.get(e.nodeId,"locked")!==void 0,h=t.inspector?.get(e.nodeId,"locked")===!0,D=t.inspector?.get(e.nodeId,"visible")!==void 0,W=t.inspector?.get(e.nodeId,"visible")!==!1,ne=t.inspector?.editability?.(e.nodeId,"locked"),Y=t.inspector?.editability?.(e.nodeId,"visible"),ke=d&&(ne?.writable??!0),re=D&&(Y?.writable??!0),H=[...Fl(n).selectedEntityIds],pe=H.includes(e.nodeId)?H:[e.nodeId],oe=Vl(Wl(t,e.nodeId)),fe=g?.copy?"Copy needs source-addressable entities from one world.":oe,E=g?.paste?"Copy or cut a source-addressable entity in this world first.":oe,O=[],Pe=qr({structural:r,internal:s});if(s&&R.parentId!==null&&O.push({label:"Select Parent",testId:"hierarchy-context-menu-select-parent",action:()=>{Lt(t,[R.parentId]),c()}}),!r&&Pe.writable){O.push({label:"Rename",testId:"hierarchy-context-menu-rename",...N?{}:{disabledReason:oe},action:()=>{i(e.nodeId),c()}}),O.push({label:"Cut",testId:"hierarchy-context-menu-cut",...g?.cut&&(t.structure?.canCopy?.(pe)??!0)?{}:{disabledReason:fe},action:()=>{Hl(t,pe),c()}}),O.push({label:"Copy",testId:"hierarchy-context-menu-copy",...g?.copy&&(t.structure?.canCopy?.(pe)??!0)?{}:{disabledReason:fe},action:()=>{zl(t,pe),c()}}),O.push({label:"Paste",testId:"hierarchy-context-menu-paste",...g?.paste&&(t.structure?.canPaste?.(R.parentId)??!0)?{}:{disabledReason:E},action:()=>{Bl(t,R.parentId),c()}}),O.push({label:"Duplicate",testId:"hierarchy-context-menu-duplicate",...A?{}:{disabledReason:oe},action:()=>{H.length>1&&H.includes(e.nodeId)?Ul(n):Kl(t,e.nodeId).ack,c()}}),g?.group&&H.length>1&&H.includes(e.nodeId)&&O.push({label:"Group Selection",testId:"hierarchy-context-menu-group",action:()=>{Gl(t,H).ack,c()}}),g?.ungroup&&g.canUngroup?.(e.nodeId)&&O.push({label:"Ungroup",testId:"hierarchy-context-menu-ungroup",action:()=>{Yl(t,e.nodeId).ack,c()}}),g?.wrap&&O.push({label:"Wrap",testId:"hierarchy-context-menu-wrap",action:()=>{ql(t,e.nodeId),c()}}),g?.unwrap&&O.push({label:"Unwrap",testId:"hierarchy-context-menu-unwrap",action:()=>{Jl(t,e.nodeId),c()}}),R.parentId!==null&&O.push({label:"Select Parent",testId:"hierarchy-context-menu-select-parent",action:()=>{Lt(t,[R.parentId]),c()}}),O.push({label:D&&!W?"Show":"Hide",...re?{}:{disabledReason:Y?.reason??oe},action:()=>{t.inspector.set(e.nodeId,"visible",!W),n.notifyIngestEdit(),c()}}),O.push({label:h?"Unlock":"Lock",...ke?{}:{disabledReason:ne?.reason??oe},action:()=>{t.inspector.set(e.nodeId,"locked",!h),n.notifyIngestEdit(),c()}});for(const I of Xl({nodeId:e.nodeId,store:n}))O.push({label:I.label,...I.color!==void 0?{color:I.color}:{},action:()=>{I.action(),c()}});O.push({label:"Delete",testId:"hierarchy-context-menu-delete",color:Q.semantic.danger,...A?{}:{disabledReason:oe},action:()=>{H.length>1&&H.includes(e.nodeId)?Zl(n):t.structure.remove(e.nodeId),c()}})}return o.jsx(vr,{children:o.jsxs(Vt,{ref:u,"data-testid":"ingest-context-menu",style:{position:"fixed",left:f.left,top:f.top,minWidth:150,maxWidth:260,fontSize:"var(--volter-font-base)"},children:[!r&&Pe.writable&&w.length>0&&o.jsxs("div",{children:[o.jsxs(Z,{"data-testid":"hierarchy-context-menu-create",onSelect:()=>k(I=>!I),style:{justifyContent:"space-between",gap:it[4]},children:[o.jsx("span",{children:"Create"}),o.jsx(Ql,{direction:"right",tone:"dim"})]}),v&&w.map(I=>o.jsx(Z,{"data-testid":`hierarchy-context-menu-create-${I.kind}`,onSelect:()=>{T.current||(T.current=!0,Ys(t,I.kind,e.nodeId).ack,c())},style:{paddingLeft:Ge[12]},children:I.label},I.kind))]}),O.map(I=>I.disabledReason!==void 0?o.jsx(Z,{"data-testid":I.testId,"aria-disabled":"true",title:I.disabledReason,style:{cursor:"not-allowed",color:Q.content.dim,opacity:.7},children:I.label},I.label):o.jsx(Z,{"data-testid":I.testId,onSelect:I.action,style:I.color!==void 0?{color:I.color}:void 0,children:I.label},I.label)),s&&o.jsx("div",{"data-testid":"hierarchy-context-menu-internal-note",style:{padding:`${it[4]}px ${it[6]}px`,color:Q.content.dim,maxWidth:240,lineHeight:Co.normal},children:t.transforms?.editability?.(e.nodeId,"position")?.reason??"This rendered part has no authored source identity."}),!A&&!s&&o.jsxs("div",{style:{padding:`${it[4]}px ${it[6]}px`,color:Q.semantic.warning,maxWidth:240,lineHeight:Co.normal},children:[o.jsx("strong",{children:"Create / Delete / Reparent — not available."})," This game owns its own scene graph, so structural authoring isn't reapplicable. You can edit transform / material / visibility, or capture a subtree into the first-party editable format."]})]})})}function zm({adapter:e,parentId:t}){const[n,r]=a.useState(!1),s=a.useRef(null),i=a.useRef(!1),c=e.structure?.creatableKinds?.(t)??[],u=t?e.hierarchy.node(t)?.label:null;return a.useEffect(()=>{if(!n)return;i.current=!1;const f=v=>{s.current&&!s.current.contains(v.target)&&r(!1)},p=v=>{v.key==="Escape"&&r(!1)};return document.addEventListener("mousedown",f),document.addEventListener("keydown",p),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",p)}},[n]),c.length===0?null:o.jsxs("div",{ref:s,style:{position:"relative",flexShrink:0},children:[o.jsxs(te,{title:u?`Add to ${u}`:"Add","aria-label":u?`Add to ${u}`:"Add","aria-expanded":n,"data-testid":"hierarchy-add-menu",onClick:()=>r(!n),variant:n?"primary":"secondary",size:"compact",children:[o.jsx(G,{icon:nd,style:{fontSize:"var(--volter-font-sm)"}})," ",o.jsx(G,{icon:Us,style:{fontSize:"var(--volter-font-xs)"}})]}),n&&o.jsx(Vt,{style:{position:"absolute",top:"100%",right:0,marginTop:it[2],minWidth:130,maxHeight:"min(480px, 70vh)",overflowY:"auto"},children:c.map(f=>o.jsx(Z,{"data-testid":`hierarchy-add-${f.kind}`,onSelect:()=>{i.current||(i.current=!0,Ys(e,f.kind,t??void 0).ack,r(!1))},children:f.label},f.kind))})]})}function Bm({row:e,onReveal:t}){const n=e.more.hidden;return o.jsxs(te,{type:"button",variant:"ghost",className:"volter-hierarchy-more","data-testid":"ingest-row-more",onClick:()=>t(e.more.parentPathKey),style:{paddingLeft:xn(e.depth+1)},children:["… ",n," more"]})}function qo(e,t){if(!t)return e;const n=e.toLowerCase(),r=t.toLowerCase(),s=[];let i=0,c=n.indexOf(r,i);if(c<0)return e;let u=0;for(;c>=0;)c>i&&s.push(e.slice(i,c)),s.push(o.jsx("mark",{"data-testid":"ingest-row-search-highlight",style:{background:Q.semantic.warning,color:Q.surface.shell,borderRadius:Q.shape.small},children:e.slice(c,c+r.length)},u++)),i=c+r.length,c=n.indexOf(r,i);return i<e.length&&s.push(e.slice(i)),s}function Sa(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Um(e,t){const n=e.node,r=t.node;return e.depth===t.depth&&e.pathKey===t.pathKey&&e.hasChildren===t.hasChildren&&e.hiddenByCollapse===t.hiddenByCollapse&&e.more?.parentPathKey===t.more?.parentPathKey&&e.more?.hidden===t.more?.hidden&&n.id===r.id&&n.label===r.label&&n.role===r.role&&n.secondaryLabel===r.secondaryLabel&&n.kind===r.kind&&n.typeLabel===r.typeLabel&&n.parentId===r.parentId&&Sa(n.childIds,r.childIds)&&n.crossSurfaceId===r.crossSurfaceId&&n.crossSurfaceParentId===r.crossSurfaceParentId&&n.crossSurfaceOrder===r.crossSurfaceOrder&&n.crossSurfaceGroupLabel===r.crossSurfaceGroupLabel}function Km(e,t){return Um(e.row,t.row)&&e.adapter===t.adapter&&e.store===t.store&&e.isSelected===t.isSelected&&e.isSelectionActive===t.isSelectionActive&&e.isEditing===t.isEditing&&e.isCollapsed===t.isCollapsed&&e.dropZone===t.dropZone&&e.isDragged===t.isDragged&&e.rowIndex===t.rowIndex&&e.prevDepth===t.prevDepth&&e.nextDepth===t.nextDepth&&e.isInternal===t.isInternal&&e.searchTerm===t.searchTerm&&e.lockCache===t.lockCache&&e.warningCache===t.warningCache&&e.editabilityVersion===t.editabilityVersion&&e.adapterVersion===t.adapterVersion&&e.threeRootId===t.threeRootId&&e.onToggleOpen===t.onToggleOpen&&e.onStartEditing===t.onStartEditing&&e.onContextMenu===t.onContextMenu&&e.onDragStart===t.onDragStart&&e.onClick===t.onClick&&e.onEnterScope===t.onEnterScope&&e.typeSuffixShown===t.typeSuffixShown&&e.instanceRuleShown===t.instanceRuleShown&&e.restrictionColumns===t.restrictionColumns&&e.excludeColumnShown===t.excludeColumnShown&&Sa(e.remoteSelectionColors,t.remoteSelectionColors)}const Gm=a.memo(function({row:t,adapter:n,store:r,isSelected:s,isSelectionActive:i,isEditing:c,isCollapsed:u,dropZone:f,isDragged:p,rowIndex:v,prevDepth:k,nextDepth:T,isInternal:R,searchTerm:w,lockCache:P,warningCache:g,editabilityVersion:A,adapterVersion:N,onToggleOpen:d,onStartEditing:h,threeRootId:D,onContextMenu:W,onDragStart:ne,onClick:Y,onEnterScope:ke,remoteSelectionColors:re,typeSuffixShown:H,instanceRuleShown:pe,restrictionColumns:oe,excludeColumnShown:fe}){const{node:E,depth:O,hasChildren:Pe}=t,I=ro(n,E.id),_=I!==null,J=oo(n,E.id),U=_||J||E.role!==void 0&&wa.has(E.role),me=qr({structural:U,internal:R}),Je=U?void 0:n.inspector?.get(E.id,"locked"),Xe=U?void 0:n.inspector?.get(E.id,"name"),Ze=!U&&n.inspector?.get(E.id,"visible")!==void 0,Ne=U?void 0:n.inspector?.editability?.(E.id,"locked"),ve=U?void 0:n.inspector?.editability?.(E.id,"visible"),ye=U?void 0:n.inspector?.get(E.id,"renderVisible"),Fe=ye!==void 0,Qe=ye!==!1,ie=U?void 0:n.inspector?.editability?.(E.id,"renderVisible"),ge=Fe&&(ie?.writable??!0),Pt=U?void 0:n.inspector?.get(E.id,"exclude"),ct=Pt!==void 0,we=Pt===!0,mt=U?void 0:n.inspector?.editability?.(E.id,"exclude"),et=ct&&(mt?.writable??!0),Ve=I?zs(I.worldId):!1,xe=I?Bc(I.worldId):!1,Ie=I?Uc(I.worldId):!1,ce=_?!Ve:n.inspector?.get(E.id,"visible")!==!1,tt=Je!==void 0,se=Je===!0,We=tt&&(Ne?.writable??!0),He=Ze&&(ve?.writable??!0),vt=Xe!==void 0,Se=Kc(E),Ee=U?0:n.instances?.describe(E.id)?.overrides.length??0,ze=U?Gc:P.summaryFor(n,A,E.id),Te=U?null:g.badgeFor(n,A,E.id),Be=U?null:In()?.detail(n,E.id,r)??null,Le=u&&Pe?E.childIds.slice(0,gm).map(C=>n.hierarchy.node(C)).filter(C=>C!==null&&Bs(C.kind)):[];return o.jsxs("div",{className:"volter-tree-row","data-entity-name":U?void 0:E.label,"data-testid":"ingest-row","data-ingest-name":E.label,"data-node-role":E.role,"data-depth":O,"data-selected":s?"true":void 0,"data-selection-active":i?"true":void 0,"data-remotely-selected":re.length>0?"true":void 0,"data-dragging":p?"true":void 0,"data-row-alt":v%2===1?"true":void 0,"data-internal":R?"true":void 0,"data-muted":R||we||!U&&!ce?"true":void 0,draggable:me.draggable,onDragStart:C=>ne(C,E.id),onClick:C=>{if(I?.role==="world"&&wo(I.worldId),E.role==="story"){const $=n instanceof cn?n.ownerOf(E.id):null;$&&wo($),n.stories?.apply(E.id,E.id)}Y(C,E.id)},onDoubleClick:()=>{E.role==="story"?Ct("story",r,{storyId:E.id}):E.role==="component"||E.role==="instance"||E.role==="boundary"?ke(E.id):me.renamable&&vt&&h(E.id)},onContextMenu:C=>{C.preventDefault(),W(C,E.id)},style:{position:"relative",paddingLeft:xn(O),paddingRight:Ge[2],gap:Ge[2],cursor:"pointer",outline:f==="child"?`1px dashed ${Q.accent.default}`:"none",whiteSpace:"nowrap",overflow:"hidden",fontSize:"var(--volter-font-base)"},children:[f==="before"&&o.jsx(go,{position:"before",style:{left:xn(O)}}),f==="after"&&o.jsx(go,{position:"after",style:{left:xn(O)}}),vm(O,k,T).map(C=>o.jsx("span",{className:"volter-tree-indent-guide","aria-hidden":"true",style:{left:`calc(${Jt} * ${C.column+.5} - 0.5px)`,top:C.starts?Go:0,bottom:C.ends?Go:0}},C.column)),Pe?o.jsx(be,{type:"button",variant:"ghost",size:"compact","aria-label":u?`Expand ${E.label}`:`Collapse ${E.label}`,"aria-expanded":!u,"data-testid":"ingest-row-caret",onClick:C=>{C.stopPropagation(),d(t,C.altKey)},title:"Expand/collapse (Option/Alt-click applies to the branch)",className:"volter-tree-caret",children:o.jsx(G,{icon:u?Yc:Us,"aria-hidden":"true"})}):o.jsx("span",{"data-testid":"ingest-row-caret","aria-hidden":"true",style:{width:Jt,flexShrink:0}}),re.length>0&&o.jsx("span",{className:"volter-tree-remote-selection",role:"img",title:`Selected by ${re.length} collaborator${re.length===1?"":"s"}`,"aria-label":"Selected by a collaborator",children:re.slice(0,3).map(C=>o.jsx("span",{style:{background:C},"aria-hidden":"true"},C))}),I?.role==="world"&&I.worldId===D&&o.jsx("span",{"data-testid":"world-focus-radio","data-world-focused":"true",title:"Live Three world — shown in the viewport",style:{fontSize:"var(--volter-font-xs)",opacity:.8,flexShrink:0},children:o.jsx(G,{icon:qc,"aria-hidden":"true"})}),o.jsx("span",{className:"volter-tree-type-glyph",title:E.role?`${E.role}: ${E.kind}`:E.kind,style:{width:"var(--volter-icon-md)",fontSize:"var(--volter-icon-sm)",flexShrink:0,textAlign:"center"},children:o.jsx(G,{icon:km(E),"aria-hidden":"true"})}),c?o.jsx(nn,{autoFocus:!0,defaultValue:E.label,onBlur:C=>{n.inspector.set(E.id,"name",C.currentTarget.value),r.notifyIngestEdit(),h("")},onKeyDown:C=>{C.key==="Enter"&&(n.inspector.set(E.id,"name",C.currentTarget.value),r.notifyIngestEdit(),h("")),C.key==="Escape"&&h("")},onClick:C=>C.stopPropagation(),"data-variant":"tree-edit",style:{flex:1,minWidth:0}}):o.jsxs("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:[Se.typeSuffix?o.jsxs("span",{"data-testid":"hierarchy-instance-label",...H?{}:{title:`Component instance of <${Se.typeSuffix}>`},style:{textDecorationLine:pe?s?"var(--volter-tree-active-name-underline)":"underline":"none",textDecorationStyle:"dotted",textDecorationColor:Q.semantic.instance,textUnderlineOffset:"3px",...s?{color:i?Q.content.active:Q.content.selected}:{}},children:[qo(E.label,w),!H&&Ee>0?"*":""]}):o.jsx("span",{"data-testid":"hierarchy-plain-label",style:s?{color:i?Q.content.active:Q.content.selected}:void 0,children:qo(E.label,w)}),Le.map(C=>o.jsx("span",{className:"volter-tree-datablock","data-active":i?"true":void 0,title:`${C.kind}: ${C.label}`,children:o.jsx(G,{icon:bn(C.kind),"aria-hidden":"true"})},C.id)),Se.typeSuffix&&H&&o.jsxs("span",{"data-testid":"hierarchy-instance-type","data-type-label":Se.typeSuffix,title:`Component instance of <${Se.typeSuffix}>`,style:{marginLeft:Ge[2],fontSize:"var(--volter-font-sm)",color:Q.content.dim},children:["·",Se.typeSuffix,Ee>0?"*":""]}),E.secondaryLabel&&o.jsx("span",{style:{marginLeft:Ge[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:E.secondaryLabel}),Be&&o.jsx("span",{"data-testid":"hierarchy-instanced-units",style:{marginLeft:Ge[3],fontSize:"var(--volter-font-sm)",opacity:.5},children:Be}),I?.role==="world"&&I.zOrder!==0&&o.jsxs("span",{title:`Z order: ${I.zOrder}`,style:{marginLeft:Ge[3],fontSize:"var(--volter-font-sm)",opacity:.6},children:["Z ",I.zOrder]}),I?.provenance&&o.jsx("span",{"data-testid":"world-provenance","data-provenance":I.provenance.source,title:I.provenance.detail,style:{marginLeft:Ge[3],fontSize:"var(--volter-font-xs)",padding:`0 ${it[2]}px`,borderRadius:Q.shape.small,border:`1px solid ${Q.boundary.strong}`,color:Q.content.muted,verticalAlign:"middle"},children:I.provenance.label})]}),Te&&o.jsx("span",{"data-testid":"hierarchy-row-warning","data-warning-codes":Te.codes.join(","),"data-warning-count":Te.count,role:"img",title:Te.tooltip,"aria-label":`${E.label}: ${Te.tooltip}`,style:{fontSize:"var(--volter-font-sm)",color:Q.semantic.warning,flexShrink:0},children:o.jsx(G,{icon:Ur,"aria-hidden":"true"})}),ze.locked&&ze.reason&&o.jsx("span",{"data-testid":"hierarchy-transform-lock",role:"img",title:ze.reason,"aria-label":`${E.label}: ${ze.reason}`,style:{fontSize:"var(--volter-font-sm)",color:Q.content.dim,flexShrink:0},children:o.jsx(G,{icon:bo,"aria-hidden":"true"})}),oe==="select+viewport"&&tt&&me.writable&&o.jsx(be,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-lock",disabled:!We,title:We?se?"Unlock":"Lock":Ne?.reason||"Locked","aria-label":se?`Unlock ${E.label}`:`Lock ${E.label}`,"aria-pressed":se,onClick:C=>{C.stopPropagation(),n.inspector.set(E.id,"locked",!se),r.notifyIngestEdit()},children:o.jsx(G,{icon:se?bo:Jc,"aria-hidden":"true"})}),fe&&(ct&&me.writable?o.jsx(be,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-exclude",disabled:!et,title:et?we?"Include in view layer":"Exclude from view layer":mt?.reason||"Exclusion is read-only","aria-label":we?`Include ${E.label} in the view layer`:`Exclude ${E.label} from the view layer`,"aria-checked":!we,role:"checkbox",onClick:C=>{C.stopPropagation(),n.inspector.set(E.id,"exclude",!we),r.notifyIngestEdit()},children:o.jsx(G,{icon:we?Xc:Zc,"aria-hidden":"true"})}):o.jsx("span",{"aria-hidden":"true",style:{width:Jt,flexShrink:0}})),(Ze||_)&&me.writable&&o.jsx(be,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-visibility",disabled:!_&&!He,title:_||He?ce?"Hide":"Show":ve?.reason||"Visibility is read-only","aria-label":ce?`Hide ${E.label}`:`Show ${E.label}`,"aria-pressed":!ce,onClick:C=>{C.stopPropagation(),I?(tl(I.worldId),r.notifyIngestEdit()):(n.inspector.set(E.id,"visible",!ce),r.notifyIngestEdit())},children:o.jsx(G,{icon:ce?Qc:el,"aria-hidden":"true"})}),oe==="viewport+render"&&(Fe&&me.writable?o.jsx(be,{type:"button",variant:"ghost",size:"compact","data-testid":"ingest-row-render-visibility",disabled:!ge,title:ge?Qe?"Disable in renders":"Enable in renders":ie?.reason||"Render visibility is read-only","aria-label":Qe?`Disable ${E.label} in renders`:`Enable ${E.label} in renders`,"aria-pressed":!Qe,onClick:C=>{C.stopPropagation(),n.inspector.set(E.id,"renderVisible",!Qe),r.notifyIngestEdit()},children:o.jsx(G,{icon:Qe?nl:rl,"aria-hidden":"true"})}):o.jsx("span",{"aria-hidden":"true",style:{width:Jt,flexShrink:0}})),I&&o.jsx(be,{type:"button",variant:"ghost",size:"compact","data-testid":"world-interactive-toggle",title:xe?"Interactive (layer forwards pointer events)":"Not interactive (layer is pointer-events:none)","aria-label":`Forward pointer events to ${E.label}`,"aria-pressed":xe,onClick:C=>{C.stopPropagation(),sl(I.worldId),r.notifyIngestEdit()},children:o.jsx(G,{icon:ol,"aria-hidden":"true"})}),I&&o.jsx(be,{type:"button",variant:"ghost",size:"compact","data-testid":"world-picklock-toggle",title:Ie?"Pick-locked (skipped by topmost-layer picking)":"Not pick-locked","aria-label":`Exclude ${E.label} from viewport picking`,"aria-pressed":Ie,onClick:C=>{C.stopPropagation(),il(I.worldId),r.notifyIngestEdit()},children:o.jsx(G,{icon:al,"aria-hidden":"true"})})]})},Km);function Ym({store:e,adapter:t}){a.useSyncExternalStore(e.subscribe,e.getSnapshot);const n=a.useDeferredValue(e.contentVersion);a.useSyncExternalStore(hl,ml),a.useSyncExternalStore($n,ft,ft);const r=Xn().hierarchyTypeSuffix!=="hidden",s=Xn().hierarchyInstanceRule!=="hidden",i=Xn().hierarchyRestrictions??"select+viewport",[c,u]=a.useReducer(m=>m+1,0),f=a.useRef(e.getSnapshot());f.current=e.getSnapshot();const[p,v]=a.useState(vl());a.useEffect(()=>t.subscribe?.(()=>{f.current=e.getSnapshot(),u()}),[t,e]),a.useEffect(()=>yl(v),[]);const k=a.useMemo(()=>{const m=new Map;for(const S of p?.participants??[])if(S.participantId!==gl)for(const j of S.presence.selection){const L=m.get(j)??[];L.includes(S.color)||L.push(S.color),m.set(j,L)}return m},[p]),T=a.useRef(new bl),R=a.useRef(new wl),w=e.hierarchyRowFacetVersion,P=xl(e),[g,A]=a.useState(""),N=a.useSyncExternalStore(lm,cm,()=>null),[d,h]=a.useState(null),[D,W]=a.useState(null),[ne,Y]=a.useState(null),[ke,re]=a.useState(!1),[H,pe]=a.useState(null),oe=a.useRef(null),[fe,E]=a.useState(0),O=a.useRef(null),Pe=a.useSyncExternalStore(Ks,xo,xo).includes("outliner")?"outliner":void 0,I=a.useRef(new Map),_=a.useRef(new Map),J=a.useRef(new pm),U=a.useRef(0),me=a.useRef(null),Je=a.useRef(null),Xe=a.useRef(null),Ze=a.useRef(null),[,Ne]=a.useReducer(m=>m+1,0),ve=g.trim().toLowerCase(),ye=Ce()?.rootPath??"__unscoped__",Fe=t.selection?.get()??[],Qe=Fe.length===1?Fe[0]:null,ie=[...Fe].sort().join("\0"),ge=a.useMemo(()=>new Set(ie===""?[]:ie.split("\0")),[ie]),Pt=Fe.at(-1)??null,ct=Sl(t),we=ct.at(-1)??null,mt=a.useRef("");a.useEffect(()=>{if(ie===""||mt.current===ie)return;const m=O.current,S=m?.querySelector('[data-selected="true"]');if(!m||!S)return;const j=m.getBoundingClientRect(),L=S.getBoundingClientRect();(L.top<j.top||L.bottom>j.bottom)&&S.scrollIntoView({block:"nearest"}),mt.current=ie}),me.current!==ye&&(_.current.clear(),me.current=ye,Je.current=null);const et=J.current,Ve=[t,n,c],xe=et.structural(Ve,m=>{const S=El(t,In()?.marks(t.hierarchy)??Ol),j=jl(S),L=xm(j.hierarchy),X=In()?.structureLog(e)??null,V=X?.epoch()??0,q=m?n-m.contentVersion:0,K=m?V-m.objectMapEpoch:0,z=m?.adapter===t&&n===e.contentVersion&&q>0&&q===K?X?.parentChangesSince(m.objectMapEpoch)??null:null,ae=(m&&z?kl(L,m.structuralRows,z.changedParentIds):null)??So(L,new Set),l=Rl(Cl(Im(ae,t),ae,y=>S.isComponentRoot(y)),j);return{adapter:t,contentVersion:n,objectMapEpoch:V,marked:S,internals:j,hierarchyView:L,structuralRows:ae,defaultExpansion:l,index:fm(ae)}}),{marked:Ie,internals:ce,hierarchyView:tt,structuralRows:se,defaultExpansion:We}=xe,He=m=>_.current.get(m)??am(ye,m)??We.get(m)??!0,vt=Je.current;if(vt?.adapter!==t||vt.selection!==ie){for(const S of Ko(xe.index,ge))He(S)||(_.current.set(S,!0),U.current+=1);[...ge].every(S=>xe.index.pathKeysByNodeId.has(S))&&(Je.current={adapter:t,selection:ie})}const Se=m=>He(m.node.id),Ee=ve.length===0&&(Pl()||e.playState!=="stopped"),ze=_m(I.current,Ee?hm(xe.index,ge):Em),Te=J.current.collapsed([xe,U.current,ye,we],()=>{const m=we?se.find(j=>!j.more&&j.node.id===we)??null:null,S=new Set(se.filter(j=>!j.more&&j.hasChildren&&!Se(j)).map(j=>j.pathKey));if(m){S.delete(m.pathKey);for(const j of no(m.pathKey))S.delete(j)}return{scopeRow:m,effectiveCollapsedPaths:S}}),{scopeRow:Be,effectiveCollapsedPaths:Le}=Te,C=J.current.browse([xe,Te,ve,Ee,Ee?mm(ze):""],()=>{const m=So(tt,Le,ze,Ee),S=ve?Tm(se,ve,ce.isInternal):null,j=S?se.filter(V=>S.has(V.pathKey)):m,X=(Be?j.filter(V=>V.pathKey.startsWith(`${Be.pathKey}.`)).map(V=>({...V,depth:Math.max(0,V.depth-Be.depth-1)})):j).filter(V=>{if(Sn(t,V.node.id))return!0;let q=V.node.parentId;for(;q;){const K=ro(t,q);if(K&&zs(K.worldId))return!1;q=tt.node(q)?.parentId??null}return!0});return{rows:ve?X:X.filter(V=>!V.hiddenByCollapse)}}),{rows:$}=C,zt=a.useMemo(()=>$.some(m=>!m.more&&t.inspector?.get(m.node.id,"exclude")!==void 0),[$,t,c,n]);a.useEffect(()=>{E(0),O.current&&(O.current.scrollTop=0)},[ve]);const It=O.current?.clientHeight||wm,yt=sr(O.current),{start:Re,end:Ue}=$.length>Sm?Il($.length,fe,It,yt,bm):{start:0,end:$.length},lt=$.slice(Re,Ue),Bt=Re*yt,Bn=($.length-Ue)*yt,Tt=a.useCallback(m=>{const S=se.filter(j=>j.hasChildren).map(j=>[j.node.id,m]);for(const[j,L]of S)_.current.set(j,L);Uo(ye,S),U.current+=1,Ne()},[ye,se]),_t={rows:$,window:{start:Re,end:Ue},searchTerm:ve||null,scopeId:we,isExpanded:Se,isInternal:m=>ce.isInternal(m),isComponentRoot:m=>Ie.isComponentRoot(m),foldedInternalCount:m=>Ie.internalChildren?.(m)?.length??0,expandAll:()=>Tt(!0),collapseAll:()=>Tt(!1)};a.useEffect(()=>(Tl(_t),()=>_l(_t)),[_t]);const gt=a.useRef({adapter:t,rows:$,selectedIds:ge,structuralRows:se,isExpanded:Se,projectIdentity:ye});gt.current={adapter:t,rows:$,selectedIds:ge,structuralRows:se,isExpanded:Se,projectIdentity:ye};const ln=a.useCallback((m,S)=>{const j=gt.current,L=!j.isExpanded(m),X=[[m.node.id,L]];if(S){const V=`${m.pathKey}.`;for(const q of j.structuralRows)q.hasChildren&&q.pathKey.startsWith(V)&&X.push([q.node.id,L])}for(const[V,q]of X)_.current.set(V,q);Uo(j.projectIdentity,X),U.current+=1,Ne()},[]),Ke=a.useCallback(()=>{_.current.clear();for(const m of Ko(xe.index,ge))_.current.set(m,!0);im(ye),U.current+=1,Ne()},[ye,ie,xe]),At=a.useCallback(m=>{const S=I.current;S.set(m,(S.get(m)??Eo)+Eo),U.current+=1,Ne()},[]),nt=a.useCallback(m=>{Al(t,m)},[t,e]);a.useEffect(()=>{if(!ie){Ze.current=null;return}const m=Ze.current;if(m?.adapter===t&&m.selection===ie)return;Ze.current={adapter:t,selection:ie};const S=$.findIndex(q=>ge.has(q.node.id)),j=O.current;if(S<0||!j)return;const L=sr(j),X=S*L,V=X+L;X<j.scrollTop?j.scrollTop=X:V>j.scrollTop+j.clientHeight&&(j.scrollTop=Math.max(0,V-j.clientHeight)),E(j.scrollTop)},[t,$,ge,ie]);const Un=a.useCallback((m,S)=>{const j=gt.current;if(j.adapter.selection){if(m.metaKey||m.ctrlKey){const L=new Set(j.selectedIds);L.has(S)?L.delete(S):L.add(S),Lt(j.adapter,[...L])}else if(m.shiftKey&&Xe.current){const L=j.rows.findIndex(V=>V.node.id===Xe.current),X=j.rows.findIndex(V=>V.node.id===S);if(L>=0&&X>=0){const V=Math.min(L,X),q=Math.max(L,X),K=j.rows.slice(V,q+1).filter(z=>!z.more).map(z=>z.node.id);Lt(j.adapter,K)}}else Lt(j.adapter,[S]);Xe.current=S}},[]),Kn=a.useCallback((m,S)=>{const j=gt.current.selectedIds,L=j.has(S)?[...j]:[S];pe(L),m.dataTransfer.effectAllowed="move",m.dataTransfer.setData(or,JSON.stringify(L)),m.dataTransfer.setData("text/plain",S)},[]),Gn=a.useCallback((m,S)=>{h({x:m.clientX,y:m.clientY,nodeId:S})},[]),dn=a.useCallback(m=>{const S=m.dataTransfer.types.includes(or),j=m.dataTransfer.types.includes(rr);if(!S&&!j)return;m.preventDefault(),m.dataTransfer.dropEffect=S?"move":"copy",oe.current=null;const L=O.current.getBoundingClientRect(),X=O.current.scrollTop,V=m.clientY-L.top+X,q=sr(O.current),K=Math.floor(V/q);if(K>=$.length){Y(null),re(!0),S&&H&&(oe.current=zo({hasStructureWritePath:Yo(t,H[0]),targetIsInternal:!1}));return}re(!1);const z=K>=0?$[K]:void 0;if(!z||z.more){Y(null);return}const _e=zo({hasStructureWritePath:S?Yo(t,z.node.id):!0,targetIsInternal:ce.isInternal(z.node.id)});if(_e!==null){oe.current=_e,Y(null);return}const ae=V-K*q;let l;if(ae<q*.25?l="before":ae>q*.75?l="after":l="child",S&&H){const y=z.node.id;if(H.includes(y)||Rm(y,H,t))return;if(!rm(t,H,y)){Y(null);return}}if(Sn(t,z.node.id)&&l!=="child"&&(l="child"),(z.node.role==="document"||z.node.role==="story")&&(l="child"),z.node.role==="folder"||z.node.role==="boundary"){Y(null);return}Y({nodeId:z.node.id,zone:l})},[$,H,t,ce]),Ut=a.useCallback(()=>{Y(null),re(!1),pe(null),oe.current=null},[]),bt=a.useCallback(m=>{m.preventDefault(),m.stopPropagation();const S=ne,j=ke,L=oe.current;if(Y(null),re(!1),pe(null),oe.current=null,L!==null){at(L);return}const X=t.structure,V=m.dataTransfer.getData(or);if(V&&X){const K=JSON.parse(V);if(j){for(const b of K)Zn(t,b,null);return}if(!S)return;const z=$.find(b=>b.node.id===S.nodeId);if(!z)return;const _e=z.node.id;if(S.zone==="child"){for(const b of K)Zn(t,b,_e);return}const ae=z.node.parentId,l=Cm(t,ae).filter(b=>!K.includes(b)),y=l.indexOf(_e),x=S.zone==="before"?_e:y>=0?l[y+1]??null:null;for(const b of K)(t.hierarchy.node(b)?.parentId??null)!==ae&&Zn(t,b,ae??null),Dl(t,b,x);return}const q=m.dataTransfer.getData(rr);if(q&&t.assetDrop)try{const K=JSON.parse(q);if(K.kind==="scene")return;const z={item:K.component??{kind:"file",name:K.name??K.path.split("/").pop()??K.path}};if(j){t.assetDrop.accepts("",K.path,z)&&jo(t,"",K.path,z);return}if(!S)return;const _e=$.find(l=>l.node.id===S.nodeId);if(!_e)return;const ae=_e.node.id;t.assetDrop.accepts(ae,K.path,z)&&jo(t,ae,K.path,z)}catch{}},[ne,ke,$,t]),Oe=Nl(t)??"Untitled";return o.jsxs(Ll,{name:null,hideHeader:!0,onPointerDown:()=>Gs("hierarchy"),onDragOver:m=>{m.dataTransfer.types.includes(rr)&&(m.preventDefault(),m.dataTransfer.dropEffect="copy")},style:{flex:1,minWidth:0,minHeight:0,borderRight:`1px solid ${Q.boundary.default}`},children:[o.jsx("span",{"data-testid":"scene-name","data-scene":Oe,style:{display:"none"},children:Oe}),o.jsx(Wm,{slot:N,search:g,setSearch:A,adapter:t,createTargetId:Qe,onCollapseAll:()=>Tt(!1),onResetExpansion:Ke,onExpandAll:()=>Tt(!0)}),we&&o.jsxs("nav",{"data-testid":"selection-scope-breadcrumb","aria-label":"Selection scope",style:{display:"flex",alignItems:"center",gap:3,minHeight:26,padding:`0 ${it[2]}px`,borderBottom:`1px solid ${Q.boundary.default}`,overflow:"hidden",flexShrink:0},children:[o.jsx(te,{variant:"ghost",size:"compact","data-testid":"selection-scope-root",onClick:()=>ko(t,null),children:"Game"}),ct.map((m,S)=>{const j=t.hierarchy.node(m);if(!j)return null;const L=S===ct.length-1;return o.jsxs("span",{style:{display:"flex",alignItems:"center",minWidth:0},children:[o.jsx("span",{"aria-hidden":"true",style:{color:Q.content.muted},children:"/"}),o.jsx(te,{variant:"ghost",size:"compact","data-testid":"selection-scope-crumb","data-scope-current":L?"true":void 0,"aria-current":L?"location":void 0,onClick:()=>ko(t,m),style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:j.label})]},m)})]}),o.jsxs("div",{ref:O,"data-testid":"ingest-hierarchy",className:"volter-content-frost volter-tree-body","data-volter-region":Pe,style:{flex:1,minHeight:0,overflow:"auto",position:"relative",pointerEvents:"auto"},onDragOver:dn,onDrop:bt,onDragEnd:Ut,onScroll:m=>E(m.currentTarget.scrollTop),onDragLeave:m=>{O.current?.contains(m.relatedTarget)||(Y(null),re(!1))},children:[o.jsx("div",{"data-testid":"game-hierarchy-spacer-top",style:{height:Bt}}),lt.map((m,S)=>m.more?o.jsx(Bm,{row:m,onReveal:At},Ro(m)):o.jsx(Gm,{row:m,rowIndex:Re+S,prevDepth:$[Re+S-1]?.depth??-1,nextDepth:$[Re+S+1]?.depth??-1,adapter:t,store:e,isSelected:ge.has(m.node.id),isSelectionActive:Pt===m.node.id,isEditing:D===m.node.id,isCollapsed:ve?!1:Le.has(m.pathKey),dropZone:ne&&ne.nodeId===m.node.id?ne.zone:null,isDragged:H?.includes(m.node.id)??!1,isInternal:ce.isInternal(m.node.id),threeRootId:P,searchTerm:ve,lockCache:T.current,warningCache:R.current,editabilityVersion:w,adapterVersion:c,onToggleOpen:ln,onStartEditing:W,onContextMenu:Gn,onDragStart:Kn,onClick:Un,onEnterScope:nt,typeSuffixShown:r,instanceRuleShown:s,restrictionColumns:i,excludeColumnShown:zt,remoteSelectionColors:k.get(m.node.id)??ym},Ro(m))),o.jsx("div",{"data-testid":"game-hierarchy-spacer-bottom",style:{height:Bn}}),o.jsx("div",{style:{minHeight:40}}),ke&&o.jsx("div",{style:{position:"absolute",left:0,right:0,top:$.length*yt,height:2,background:Q.accent.default,pointerEvents:"none",zIndex:Hs.overlayLow}})]}),d&&(()=>{const m=tt.node(d.nodeId),S=m?Sn(t,m.id)||oo(t,m.id):!1;return o.jsx(Hm,{state:d,adapter:t,store:e,isGroupNode:S,isInternal:ce.isInternal(d.nodeId),onRename:W,onClose:()=>h(null)})})()]})}function Ea(){const e=qe(),[,t]=a.useReducer(r=>r+1,0);a.useSyncExternalStore(De,Me),a.useSyncExternalStore(Vr,en),a.useSyncExternalStore(pl,In);const{adapter:n}=Pn(e);return a.useEffect(()=>n.subscribe?.(t),[n]),o.jsx(Ym,{store:e,adapter:n},fl(n))}function qm({utility:e,testId:t}){const n=e.Content;return o.jsx("div",{className:"volter-dock-panel volter-regular-panel-portal","data-testid":t??`bottom-panel-utility-${e.id}`,"data-editor-hotkey-scope":"workspace","data-volter-noselect":"true",children:o.jsx(n,{})})}function Jm(e,t){return window.confirm(t)}const Xm=4,Zm=4,Qm=24,ev=4,tv=3,nv=new Set(["model","image"]),rv=new Set(["glb","gltf","fbx","obj","dae","stl","ply","spz","bvh","3ds"]);function ov(e){const t=e.lastIndexOf(".");return t>0&&rv.has(e.slice(t+1).toLowerCase())}const sv=new Set(["audio","video","prefab","json"]);function ja(e){let t=0;const n=[];return async r=>{t>=e&&await new Promise(s=>n.push(s)),t++;try{return await r()}finally{t--,n.shift()?.()}}}function so(e){return e.replace(/^(?:\.\/|\/)+/,"").replace(/\/+$/,"")}function av(e,t){const n=e?t.slice(e.length+1):t;return n.split("/",1)[0]??n}function Jo(e,t){return e.tier-t.tier||e.depth-t.depth||e.seq-t.seq}function iv(e,t,n,r){for(const s of e){if(t.length>=r)break;n.has(s.subtree)||(n.add(s.subtree),t.push(s))}for(const s of e){if(t.length>=r)break;t.includes(s)||t.push(s)}}function cv(e,t){const n=[...e].sort(Jo),r=[],s=new Set;for(const i of[1,2]){const c=n.filter(u=>u.tier===i);iv(c,r,s,t)}return r.sort(Jo),r.map(({path:i,name:c,kind:u})=>({path:i,name:c,kind:u}))}function lv(e){return nv.has(e)?1:sv.has(e)?2:0}function dv(e,t,n,r){for(const s of n){if(s.name.startsWith("."))continue;const i=t.dir?`${t.dir}/${s.name}`:s.name;if(s.type==="directory"){t.depth+1>e.maxDepth?e.truncated=!0:r.push({dir:i,depth:t.depth+1});continue}e.totalAssets++;const c=ov(s.name)?"model":je(s.name).kind,u=lv(c);u!==0&&e.candidates.push({path:i,name:s.name,kind:c,tier:u,depth:t.depth,seq:e.seq++,subtree:av(e.base,i)})}}async function uv(e,t,n={}){const r=n.listAssets??qs,s=n.maxItems??Xm,i=n.maxListings??Qm,c=ja(n.listConcurrency??ev),u=so(t),f={base:u,maxDepth:n.maxDepth??Zm,candidates:[],totalAssets:0,truncated:!1,failedListings:0,seq:0};let p=0,v=[{dir:u,depth:0}];for(;v.length>0;){const k=Math.max(0,i-p),T=v.slice(0,k);T.length<v.length&&(f.truncated=!0),p+=T.length;const R=await Promise.all(T.map(P=>c(()=>r(e,P.dir)))),w=[];for(const[P,g]of T.entries()){const A=R[P];if(!A||!A.ok){f.failedListings+=1;continue}dv(f,g,A.entries,w)}v=w}return{items:cv(f.candidates,s),totalAssets:f.totalAssets,scannedAll:!f.truncated&&f.failedListings===0,failedListings:f.failedListings}}const ka="\0",Et=new Map,pv=ja(tv);function fv(e,t,n){const r=`${e}${ka}${so(t)}`,s=Et.get(r);if(s)return s;const i=pv(()=>uv(e,t,n));Et.set(r,i);const c=()=>{Et.get(r)===i&&Et.delete(r)};return i.then(u=>{(u.failedListings>0||u.items.length===0&&u.totalAssets===0)&&c()},c),i}function hv(e,t){return e===t||e===""||t===""||e.startsWith(`${t}/`)||t.startsWith(`${e}/`)}function Xo(e){if(e===void 0){Et.clear();return}const t=so(e);for(const n of[...Et.keys()]){const r=n.slice(n.indexOf(ka)+1);hv(r,t)&&Et.delete(n)}}function Rr(e,t="$"){return typeof e=="string"?[{path:t,value:e}]:Array.isArray(e)?e.flatMap((n,r)=>Rr(n,`${t}[${r}]`)):!e||typeof e!="object"?[]:Object.entries(e).flatMap(([n,r])=>Rr(r,`${t}.${n}`))}function mv(e,t){if(!t||!e.toLowerCase().endsWith(".gltf"))return[];try{const n=JSON.parse(t),r=e.includes("/")?e.slice(0,e.lastIndexOf("/")+1):"";return[...n.buffers??[],...n.images??[]].flatMap(s=>s.uri&&!s.uri.startsWith("data:")?[`${r}${s.uri}`]:[])}catch{return[]}}function vv(e){const t=new Map(e.files.map(p=>[p.path.replace(/^\//,""),p])),n=e.assetPath.replace(/^\//,""),r=t.get(n),s=new Set,i=je(n);if(r||s.add("missing-file"),i.importable?i.runtimeReady||s.add("source-only"):s.add("unsupported-format"),r?.text&&i.kind==="json")try{JSON.parse(r.text)}catch{s.add("invalid-metadata")}const c=mv(n,r?.text);c.some(p=>!t.has(p))&&s.add("missing-dependency");const u=[];for(const p of e.files)if(!(!p.text||!/\.json$/i.test(p.path)))try{for(const v of Rr(JSON.parse(p.text))){const k=v.value.replace(/^\//,"");k===n?u.push({ownerPath:p.path,jsonPath:v.path,assetPath:n}):k.startsWith("assets/")&&!t.has(k)&&s.add("broken-asset-reference")}}catch{}s.size===0&&s.add("healthy");const f=new Set(["missing-file","missing-dependency","invalid-metadata","broken-asset-reference"]);return{health:{status:[...s].some(p=>f.has(p))?"error":s.has("healthy")?"healthy":"warning",codes:[...s]},dependencies:c,references:u}}async function Ra(e,t=""){const n=await e.list(t),r=[];for(const s of n){const i=t?`${t}/${s.name}`:s.name;s.type==="dir"?r.push(...await Ra(e,i)):/\.json$|\.gltf$/i.test(i)?r.push({path:i,text:await e.read(i)}):r.push({path:i})}return r}async function yv(e,t){return vv({assetPath:t,files:await Ra(e)})}function hn(e){typeof window>"u"||(window.dispatchEvent(new CustomEvent("editor:asset-mutation",{detail:e})),window.dispatchEvent(new CustomEvent("editor:assets-changed")))}function st(e){const t=e.replace(/^\/+/,"").replace(/\\/g,"/").replace(/\/{2,}/g,"/");if(!t||t==="."||t.split("/").some(n=>!n||n===".."))throw new Error(`Invalid project asset path: ${e}`);return t}async function ar(e,t){for(const n of t)if(await e.exists(n))throw new Error(`An asset already exists at ${n}.`)}async function gv(e,t){const n=xs(t.history,t.backend);switch(e.type){case"create-folder":{const r=st(e.path),s=`${r}/.volter-folder`;if(await t.backend.exists(r))throw new Error(`Folder already exists: ${r}.`);return n.write(s,"",{label:`Create folder ${r}`})}case"duplicate":{const r=st(e.source),s=st(e.destination);await ar(t.backend,[s]);const i=await t.backend.readBytes(r);return n.write(s,i,{label:`Duplicate ${r}`})}case"move":{const r=st(e.source),s=st(e.destination);await ar(t.backend,[s]);const i=await t.backend.readBytes(r),c=new Map([[s,i],[r,null]]),u=await n.mutate([...c].map(([f,p])=>({path:f,data:p})),{label:`Move ${r}`});return u&&hn({type:"move",oldPath:r,newPath:s}),u}case"move-many":{const r=e.moves.map(p=>({source:st(p.source),destination:st(p.destination)}));if(r.length===0)return!1;const s=new Set(r.map(p=>p.source)),i=r.map(p=>p.destination);if(new Set(i).size!==i.length)throw new Error("Batch move destinations must be unique.");for(const p of i)if(!s.has(p)&&await t.backend.exists(p))throw new Error(`An asset already exists at ${p}.`);const c=await Promise.all(r.map(async p=>({...p,bytes:await t.backend.readBytes(p.source)}))),u=new Map;for(const{destination:p,bytes:v}of c)u.set(p,v);for(const{source:p}of c)i.includes(p)||u.set(p,null);const f=await n.mutate([...u].map(([p,v])=>({path:p,data:v})),{label:`Move ${r.length} assets`});if(f)for(const p of r)hn({type:"move",oldPath:p.source,newPath:p.destination});return f}case"delete":{const r=[...new Set(e.paths.map(st))],s=await n.mutate(r.map(i=>({path:i,data:null})),{label:`Delete ${r.length} asset${r.length===1?"":"s"}`});return s&&hn({type:"delete",paths:r}),s}case"import":{const r=e.files.map(i=>({path:st(i.path),data:i.bytes}));await ar(t.backend,r.map(i=>i.path));const s=await n.mutate(r,{label:`Import ${r.length} asset${r.length===1?"":"s"}`});return s&&hn({type:"change",paths:r.map(i=>i.path)}),s}}}const Xt=new Map,bv=new cd(async e=>{const t=Xt.get(e);if(await new Promise(n=>{typeof requestIdleCallback=="function"?requestIdleCallback(()=>n(),{timeout:1e3}):setTimeout(n,0)}),[...t.consumers].every(n=>n.aborted))throw new DOMException("Preview demand was cancelled.","AbortError");return t.run()},1);let Qt=null,Zo,ir=null;const qt=new Set;async function Ca(e){const t=yr();let n;try{n=await t.list(e)}catch{return[]}const r=[];for(const s of n)s.type==="dir"?r.push(...await Ca(s.path)):r.push(`${s.path}:${s.size??0}:${s.mtime??0}`);return r}async function wv(){const e=Ce()?.rootPath;return Zo!==e&&(Zo=e,Qt=null),Qt??=Promise.all([ad([Js,"volter.adapter.ts",".storybook/**/*","src/**/*.ts","src/**/*.tsx","src/**/*.js","src/**/*.jsx","src/**/*.mjs","src/**/*.cjs","src/**/*.json","src/**/*.css"]).then(async t=>Promise.all(t.map(async n=>`${n}:${await id(n)??""}`))),Ca("")]).then(([t,n])=>Pa([...t,...n].sort().join(`
5
+ `))),Qt}function xv(e){return qt.add(e),ir??=$e.watch(t=>{if(t.path===yn){Ss();for(const n of qt)n();return}if(!(!/^(src|public|\.storybook)\//.test(t.path)&&t.path!==Js&&t.path!=="volter.adapter.ts")){Qt=null;for(const n of qt)n()}}),()=>{qt.delete(e),qt.size===0&&(ir?.(),ir=null,Qt=null)}}async function Sv(e,t,n){t.throwIfAborted();let r=Xt.get(e);r||(r={run:n,consumers:new Set},Xt.set(e,r)),r.consumers.add(t);const s=bv.request(e,1);t.addEventListener("abort",s.cancel,{once:!0});try{return await s.promise}finally{t.removeEventListener("abort",s.cancel),r.consumers.delete(t),r.consumers.size===0&&Xt.get(e)===r&&Xt.delete(e)}}async function Pa(e){const t=new TextEncoder().encode(e),n=await crypto.subtle.digest("SHA-256",t);return[...new Uint8Array(n)].map(r=>r.toString(16).padStart(2,"0")).join("")}function Ev(e){const t=/^data:([^;,]+);base64,(.*)$/s.exec(e);if(!t)throw new Error("Document preview owner returned an invalid image data URL.");const n=atob(t[2]),r=new Uint8Array(n.length);for(let s=0;s<n.length;s++)r[s]=n.charCodeAt(s);return{mime:t[1],bytes:r}}function Qo(e,t="image/png"){const n=new Uint8Array(e.byteLength);return n.set(e),URL.createObjectURL(new Blob([n.buffer],{type:t}))}async function jv(e){const t=await ws();if(t.status!=="ok")return;const n=t.manifest.entries[`document:${e}`]?.framing;return n?{position:{x:n.position[0],y:n.position[1],z:n.position[2]},target:{x:n.target[0],y:n.target[1],z:n.target[2]},...n.fov===void 0?{}:{fov:n.fov}}:void 0}async function kv(e,t,n,r){const s=Ce()?.rootPath??"no-project",i=await jv(e),c=JSON.stringify({projectId:s,documentId:e,recipe:sd,revision:t.revision(),dependencies:await wv(),camera:i});r.throwIfAborted();const u=await Pa(c),f=`.volter/cache/document-previews/${u}.png`;if(n===0&&await $e.exists(f))return Qo(await $e.readBytes(f));const p=await Sv(u,r,()=>t.capture({width:dd,height:ld,...i?{camera:i}:{}}));r.throwIfAborted();const v=Ev(p);return await $e.write(f,v.bytes),Qo(v.bytes,v.mime)}function Rv({documentId:e,source:t,previewRevision:n}){const[r,s]=a.useState(null),[i,c]=a.useState(null),[u,f]=a.useState(0),[p,v]=a.useState(0),[k,T]=a.useState(!0),[R,w]=a.useState(!1),P=a.useRef(null),g=a.useRef(null),A=a.useRef(null),N=a.useRef({previewRevision:n,retry:p});return a.useEffect(()=>{let d=null;const h=()=>{g.current?.abort(),T(!0),d&&clearTimeout(d),d=setTimeout(()=>f(ne=>ne+1),750)},D=t.subscribe(h),W=xv(h);return()=>{d&&clearTimeout(d),D(),W()}},[t]),a.useEffect(()=>()=>{A.current?.startsWith("blob:")&&URL.revokeObjectURL(A.current)},[]),a.useEffect(()=>{const d=P.current;if(!d)return;const h=new IntersectionObserver(([D])=>w(D?.isIntersecting??!1));return h.observe(d),()=>h.disconnect()},[]),a.useEffect(()=>{if(!R)return;const d=new AbortController;g.current=d;const h=N.current.previewRevision!==n||N.current.retry!==p?1:0;return c(null),T(!0),kv(e,t,h,d.signal).then(D=>{if(d.signal.aborted){URL.revokeObjectURL(D);return}A.current&&URL.revokeObjectURL(A.current),N.current={previewRevision:n,retry:p},A.current=D,s(D),T(!1)}).catch(D=>{d.signal.aborted||(c(D instanceof Error?D.message:String(D)),T(!1))}),()=>d.abort()},[e,n,p,t,u,R]),o.jsxs("div",{ref:P,style:{width:"100%",height:"100%",position:"relative",display:"grid",placeItems:"center"},children:[r&&o.jsx("img",{src:r,alt:`${e} preview`,style:{width:"100%",height:"100%",objectFit:"contain"}}),i?o.jsx("button",{type:"button",title:i,onClick:d=>{d.stopPropagation(),v(h=>h+1)},style:{position:"absolute",bottom:0,border:0,background:"var(--vscode-editor-background)",color:Rt[3],pointerEvents:"auto"},children:"Preview unavailable · Retry"}):k?o.jsx("span",{role:"status",style:{position:"absolute",bottom:0,background:"var(--vscode-editor-background)",color:Rt[3],fontSize:od.xs},children:r?"Refreshing preview…":"Loading preview…"}):null]})}function Ia(e,t){return Vn(e,t.path)}function Cv({root:e,item:t}){const[n,r]=a.useState(!1);return n?o.jsx(pt,{kind:"image",size:14}):o.jsx("img",{src:Ia(e,t),alt:t.name,loading:"lazy",onError:()=>r(!0)})}function Pv({root:e,item:t}){const n=pd(Ia(e,t),fd);return n.failed?o.jsx(pt,{kind:"model",size:14}):n.src?o.jsx("img",{src:n.src,alt:t.name,"data-fit":"contain",onError:n.fromManifest?n.rejectManifest:void 0}):null}function Iv({root:e,item:t}){return je(t.name).editor==="environment"?o.jsx(rn,{kind:"image",name:t.name,variant:"cell"}):t.kind==="image"?o.jsx(Cv,{root:e,item:t}):t.kind==="model"?o.jsx(Pv,{root:e,item:t}):o.jsx(rn,{kind:t.kind,name:t.name,variant:"cell"})}function Tv({root:e,folderPath:t,revision:n}){const[r,s]=a.useState(null);if(a.useEffect(()=>{s(null)},[e,t]),a.useEffect(()=>{let c=!1;return fv(e,t).then(u=>{c||s(u)},()=>{c||s("failed")}),()=>{c=!0}},[e,t,n]),r===null||r==="failed")return o.jsx(pt,{kind:"folder"});if(r.totalAssets===0)return o.jsx("div",{className:"volter-folder-preview","data-testid":"folder-preview-empty","aria-hidden":"true",children:o.jsxs("div",{className:"volter-folder-preview__empty",children:[o.jsx(G,{icon:ud,className:"volter-folder-preview__empty-glyph"}),o.jsx("span",{className:"volter-folder-preview__empty-caption",children:"Empty"})]})});const i=r.scannedAll?`${r.totalAssets}`:`${r.totalAssets}+`;return r.items.length===0?o.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview-plain","aria-hidden":"true",children:[o.jsx("div",{className:"volter-folder-preview__fallback",children:o.jsx(pt,{kind:"folder"})}),o.jsx("span",{className:"volter-folder-preview__count",children:i})]}):o.jsxs("div",{className:"volter-folder-preview","data-testid":"folder-preview","aria-hidden":"true",children:[o.jsx("div",{className:"volter-folder-preview__grid","data-count":r.items.length,children:r.items.map(c=>o.jsx("div",{className:"volter-folder-preview__cell",children:o.jsx(Iv,{root:e,item:c})},c.path))}),o.jsx("span",{className:"volter-folder-preview__chip",children:o.jsx(G,{icon:Jr})}),o.jsx("span",{className:"volter-folder-preview__count",children:i})]})}const Ta="contentBrowser";function Cr(e){return e.type==="directory"?"folder":je(e.name).kind}function _v(e,t,n){return Vn(e,t?`${t}/${n}`:n)}function Av(e,t,n){return t?`/${t}/${n}`:`/${n}`}function Dv(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Pr(e){const t=je(e);return t.importable?t.runtimeReady?"healthy":"source-only":"unsupported"}const Nv=640,es={scope:"content",root:"public",currentPath:"",viewMode:"grid",sort:"relevance",filter:"all",density:96,expanded:["public"],treeVisibility:"auto",facets:["component"]};function Lv(){try{const e=Fn(Ta)??{},t=e.viewMode,n=e.treeVisibility,r=e.scope,s=e.root;return{...es,...e,root:s===Wt?Wt:"public",currentPath:e.currentPath??"",scope:r==="files"?"files":"content",viewMode:r==="files"&&t==="list"?"list":"grid",treeVisibility:n==="shown"||n==="hidden"?n:"auto",facets:Array.isArray(e.facets)&&e.facets.length>0?[e.facets[0]]:["component"]}}catch{return es}}const Ov={listAssets:qs,listProjectComponents:vd},cr="Reference material is not part of the built game — it stays in the project's references/ folder and is never exported. Copy the file into public/ to use it in the game; edit or remove it where it lives.",$v=new Set(["component","scene","canvas","model","image","video","audio","other"]);function Mv(e){const t=e.charAt(0).toUpperCase()+e.slice(1);return t.endsWith("s")?t:`${t}s`}async function ts(e,t){if(!t&&$t()!==e)throw new Error("Open this scene as the active document before using its current view.");const n=an(e)?.read()?.camera,r=n&&typeof n!="string"?n:null;if(!t&&!r)throw new Error("The active scene has no ready 3D authoring view to save.");await Vd().saveThumbnailFraming(`document:${e}`,t?void 0:{position:[r.position.x,r.position.y,r.position.z],target:[r.target.x,r.target.y,r.target.z],fov:r.fov??50})}function Fv(e){return e.component.surface==="three"?"3d":e.component.surface==="canvas"?"2d":"ui"}function Vv(e){const t={"3d":"3D","2d":"2D",ui:"UI"};return["3d","2d","ui"].flatMap(n=>{const r=e.filter(s=>s.source==="component"&&Fv(s)===n);return r.length>0?[{id:`prefabs-${n}`,label:t[n],headingLevel:"category",entries:r}]:[]})}function Wv(e,t,n){return t==="files"?[{id:"files",label:null,headingLevel:null,entries:[...e]}]:n.length===1&&n[0]==="component"?Vv(e):e.length>0?[{id:"content",label:null,headingLevel:null,entries:[...e]}]:[]}function _a(e){return e.source==="available"?e.available.category:e.source==="component"?e.component.contentKind??"component":e.source==="document"?e.document.kind:Id(e.name)}function Hv(e){return e.source==="component"?e.component.contentKind??"component":e.source==="available"||e.source==="document"?"source":Cr(e.entry)}function jt(e){const t=e.lastIndexOf("/");return t<0?"":e.slice(0,t)}function zv(e,t){if(e.source==="component"||e.source==="document"||e.source==="available")return;const{entry:n}=e,{currentRoot:r,currentPath:s,navigate:i,openAsset:c}=t;if(n.type==="directory"){i(r,s?`${s}/${n.name}`:n.name);return}const u=je(n.name),f=wn(u);if(f){if(e.spritesheet){const p=e.path.includes("#")?e.path.slice(e.path.lastIndexOf("#")+1):n.name.replace(/\.png$/i,"");c(`/${e.spritesheet.sheetPath}#${p}`,f);return}c(_v(e.root,s,n.name),f)}}function Aa(e){return e.source==="component"?`Component · line ${e.component.line}`:e.source==="available"?e.path||e.available.descriptor.title:e.source==="document"?`${e.document.kind} · ${e.path}`:e.entry.type!=="file"?"Folder":e.entry.size===void 0?"Size unknown":Dv(e.entry.size)}function Bv(e){if(e.source==="component")return`${e.name}
6
+ ${e.path}:${e.component.line}`;if(e.source==="available")return`${e.name}
7
+ ${e.path}`;if(e.source==="document")return`${e.name}
8
+ ${e.path}`;const t=Aa(e);return t?`${e.name}
9
+ ${t}`:e.name}function Uv(e,t,n){if(e.source==="component"||e.source==="document"||e.source==="available"||t==="all"||e.entry.type==="directory")return!0;const r=je(e.name),s=n?`${n}/${e.name}`:e.name;return{"runtime-ready":r.runtimeReady,"source-only":r.importable&&!r.runtimeReady,unsupported:!r.importable,imported:s.startsWith("asset-library/local/"),generated:s.startsWith(".generated/")}[t]}function Ot(e,t){return e.name.localeCompare(t.name)||e.path.localeCompare(t.path)}function ns(e){return e.source==="asset"?Ud({path:e.path,root:e.root,entry:e.entry}):e.source==="available"||e.source==="document"?10:Kd(e.component)-100}function Kv(e,t){const n=ns(e),r=ns(t);return n!==r?n-r:e.source!==t.source?e.source==="component"?-1:1:(e.source==="component"&&t.source==="component"||e.source!=="asset"||t.source!=="asset",Ot(e,t))}function rs(e,t){return e===void 0?t===void 0?0:1:t===void 0?-1:t-e}function Gv(e,t,n){if(e.entry.type!==t.entry.type)return e.entry.type==="directory"?-1:1;if(n==="size"&&e.entry.size!==t.entry.size)return rs(e.entry.size,t.entry.size);if(n==="modified"&&e.entry.modifiedAt!==t.entry.modifiedAt)return rs(e.entry.modifiedAt,t.entry.modifiedAt);if(n==="type"){const r=Cr(e.entry).localeCompare(Cr(t.entry));if(r!==0)return r}if(n==="health"){const r=Pr(e.name).localeCompare(Pr(t.name));if(r!==0)return r}return Ot(e,t)}function Yv(e,t,n){return n==="relevance"?Kv(e,t):n==="name"?Ot(e,t):e.source!==t.source?e.source==="component"?-1:1:e.source!=="asset"||t.source!=="asset"?Ot(e,t):Gv(e,t,n)}function qv(e,t){if(t.query&&!`${e.name} ${e.path}`.toLowerCase().includes(t.query))return!1;if(t.scope==="content"&&t.facets.length>0){const n=_a(e);return t.facets.includes(n)}return t.scope==="content"||Uv(e,t.filter,t.shownPath)}const Jv={width:"100%",minWidth:0,padding:0,textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:3},Xv={width:"100%",minWidth:0,minHeight:28,padding:"3px 6px",textAlign:"left",display:"flex",flexDirection:"row",alignItems:"center",gap:7};function Zv(e){const t=new Map;if(!e.assetSubject)return t;const n=e.assetSubject.entries?.()??Pd(e.hierarchy).flatMap(r=>{const s=e.assetSubject?.get(r.id);return s?[{id:r.id,subject:s}]:[]});for(const{id:r,subject:s}of n){const i=s.sourcePath?.replaceAll("\\","/").replace(/^\.\//,"")??"",c=i.lastIndexOf("/src/"),u=c>=0?i.slice(c+1):i;t.set(`${u}:${s.name}`,{id:r,subject:s})}return t}const Qv=()=>()=>{},ey=()=>0;function ty({sheetUrl:e,frame:t}){return o.jsx(Gd,{sheetUrl:e,frame:{name:"",x:t.x,y:t.y,width:t.width,height:t.height,rotated:t.rotated,sourceWidth:t.sourceWidth,sourceHeight:t.sourceHeight,trimX:t.trimX,trimY:t.trimY},maxEdge:48})}function ny({item:e,kind:t,assetUrl:n,grid:r,folderPath:s,previewRevision:i}){const c=n;if(t==="folder")return r?o.jsx(Tv,{root:e.source==="asset"?e.root:"public",folderPath:s,revision:i}):o.jsx(pt,{kind:"folder",size:15});if(t==="audio"&&n)return o.jsx(Hd,{url:c,name:e.name});if(!r)return o.jsx(pt,{kind:t,size:15});if(e.source==="available"&&e.available.descriptor.preview)return o.jsx(Rv,{documentId:e.available.descriptor.id,source:e.available.descriptor.preview,previewRevision:i});if(e.source==="component"){const{Thumbnail:u}=e.contentSource;return o.jsx(u,{entry:e.contentEntry,previewRevision:i})}return je(e.name).editor==="environment"?o.jsx(rn,{kind:"image",name:e.name}):t==="image"?e.source==="asset"&&e.spritesheet?o.jsx(ty,{sheetUrl:`/${e.spritesheet.sheetPath}`,frame:e.spritesheet}):o.jsx("img",{src:c,alt:e.name,style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:_n.sm}}):t==="video"&&c?o.jsx("video",{src:`${c}#t=0.1`,muted:!0,playsInline:!0,preload:"metadata",style:{maxWidth:48,maxHeight:48,objectFit:"contain",borderRadius:_n.sm}}):t==="model"||zd(n)?o.jsx(Bd,{url:n}):["prefab","json"].includes(t)?o.jsx(rn,{kind:t,name:e.name}):o.jsx(pt,{kind:t})}function ry({item:e,selected:t,onDragStart:n,onSelect:r,onOpen:s,onContextMenu:i,viewMode:c,previewRevision:u,showPath:f}){const p=Hv(e),v=e.source==="asset"?e.entry:null,k=v?.type==="file"?je(v.name):null,T=e.source==="asset"?Vn(e.root,e.path):"",R=e.path,w=Bv(e),P=v?v.type==="directory"||k?.placeable?k?.placeable?"grab":"pointer":"default":"pointer",g=Aa(e),A=e.source==="component"?e.path:e.source==="asset"?br(e.root,jt(e.path)).replace(/\/$/,""):jt(e.path)||"public",N=f?`${A} · ${g}`:g,d=c!=="list";return o.jsxs("div",{className:"volter-selectable volter-project-asset-entry","data-selected":t||void 0,"data-view":c,role:"option","aria-selected":t,tabIndex:0,draggable:e.source==="component"||e.source==="asset"&&v?.type==="file"&&k?.placeable===!0||e.source==="asset"&&e.spritesheet!==void 0||e.source==="asset"&&e.root===Wt&&v?.type==="file",onPointerEnter:()=>{p==="audio"&&T&&Fd(T)},onPointerLeave:()=>{p==="audio"&&T&&Md(T)},onDragStart:h=>n(h,e),onDragEnd:$d,onClick:h=>r(e,h),onDoubleClick:()=>s(e),onContextMenu:h=>i(h,e),onKeyDown:h=>{if(h.key==="ContextMenu"||h.shiftKey&&h.key==="F10"){h.preventDefault();const D=h.currentTarget.getBoundingClientRect();h.currentTarget.dispatchEvent(new MouseEvent("contextmenu",{bubbles:!0,cancelable:!0,clientX:D.left,clientY:D.bottom}))}else h.key==="Enter"?s(e):h.key===" "&&(r(e,h),h.preventDefault())},title:w,style:{...d?Jv:Xv,borderRadius:_n.sm,cursor:P,userSelect:"none"},children:[o.jsxs("div",{className:"volter-project-asset-entry__preview","data-testid":"asset-entry-preview",style:{...d?{width:"100%",aspectRatio:e.source==="available"&&e.available.descriptor.preview?"16 / 9":"1 / 1",margin:"0 auto"}:{width:18,height:18,margin:0},display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",borderRadius:_n.sm,pointerEvents:"none",position:"relative"},children:[o.jsx(ny,{item:e,kind:p,assetUrl:T,grid:d,folderPath:R,previewRevision:u}),d&&o.jsx("span",{className:"volter-project-asset-entry__kind","data-testid":"asset-entry-kind",title:`${p} asset`,children:o.jsx(pt,{kind:p,size:11})})]}),o.jsx("div",{"data-testid":"asset-entry-name",style:{...d?{fontSize:10,lineHeight:"13px",minHeight:26,display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:2}:{fontSize:11,lineHeight:"18px",flex:1},overflow:"hidden",textOverflow:"ellipsis",whiteSpace:d?"normal":"nowrap",color:Rt[1],minWidth:0},children:e.name}),!d&&o.jsx("div",{role:"listbox","aria-label":"Project assets","aria-multiselectable":"true",style:{maxWidth:"45%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:Rt[3],fontSize:10},children:N})]})}function oy({scope:e,facets:t,availableFacets:n,currentPath:r,currentRoot:s,searchOpen:i,searchQuery:c,viewMode:u,density:f,treeVisible:p,onScopeChange:v,onFacetToggle:k,onFacetsClear:T,onNavigate:R,onSearchOpenChange:w,onSearchQueryChange:P,onViewModeChange:g,onDensityChange:A,onTreeVisibilityToggle:N,onCreateFolder:d,onImport:h,onDelete:D,deleteDisabled:W,onRefresh:ne,generationTools:Y,onGenerate:ke}){const re=a.useRef(null),H=a.useRef(!0),pe=a.useRef(null),[oe,fe]=a.useState(!1),E=r?r.split("/"):[],O=jt(r),Pe=s===Wt?"References":"Files",I=()=>{P(""),w(!1)};return a.useEffect(()=>{if(!oe)return;const _=J=>{re.current?.contains(J.target)||fe(!1)};return document.addEventListener("pointerdown",_),()=>document.removeEventListener("pointerdown",_)},[oe]),a.useLayoutEffect(()=>{const _=pe.current;if(!_)return;const J=()=>{_.scrollLeft=_.scrollWidth};H.current=!0,J();const U=()=>{H.current=_.scrollWidth-_.clientWidth-_.scrollLeft<=1};_.addEventListener("scroll",U,{passive:!0});const me=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>{H.current&&J()});return me?.observe(_),()=>{_.removeEventListener("scroll",U),me?.disconnect()}},[r,i]),o.jsxs("div",{className:"volter-project-assets-toolbar",children:[o.jsxs(Tn,{label:"Content display",compact:!0,className:"volter-project-assets-toolbar__row",children:[o.jsxs(_o,{children:[o.jsx(xt,{text:"Content grid",position:"top",children:o.jsx(be,{"aria-label":"Content grid","data-testid":"content-scope-content","aria-pressed":e==="content",onClick:()=>{e!=="content"&&v("content"),g("grid")},children:o.jsx(G,{icon:_d})})}),o.jsx(xt,{text:"Browse grid",position:"top",children:o.jsx(be,{"aria-label":"Browse grid","data-testid":"content-scope-files","aria-pressed":e==="files"&&u==="grid",onClick:()=>{e!=="files"&&v("files"),g("grid")},children:o.jsx(G,{icon:Ad})})}),o.jsx(xt,{text:"Browse list",position:"top",children:o.jsx(be,{"aria-label":"Browse list","data-testid":"asset-view-list","aria-pressed":e==="files"&&u==="list",onClick:()=>{e!=="files"&&v("files"),g("list")},children:o.jsx(G,{icon:Dd})})})]}),o.jsx("span",{style:{flex:1}}),i?o.jsx(nn,{type:"text","data-testid":"asset-search-input","aria-label":"Search content",placeholder:"Search content...",value:c,onChange:_=>P(_.target.value),onKeyDown:_=>{_.key==="Escape"&&I()},className:"volter-input",autoFocus:!0,style:{flex:"0 1 160px",minWidth:60}}):null,o.jsx(xt,{text:i?"Close search":"Search",position:"top",children:o.jsx(be,{"data-testid":i?"asset-search-close":"asset-search-toggle","aria-label":i?"Close search":"Search content",onClick:()=>{i?I():w(!0)},children:o.jsx(G,{icon:i?Zt.action.close:Zt.action.search})})})]}),o.jsxs(Tn,{label:e==="content"?"Content types":"Folder navigation",compact:!0,className:"volter-project-assets-toolbar__row",children:[e==="files"&&o.jsxs(o.Fragment,{children:[o.jsx(xt,{text:p?"Hide folders":"Show folders",position:"top",children:o.jsx(be,{"data-testid":"asset-tree-toggle","aria-label":p?"Hide folder tree":"Show folder tree","aria-controls":"project-asset-tree","aria-expanded":p,onClick:N,children:o.jsx(G,{icon:Nd})})}),o.jsx(xt,{text:"Back",position:"top",children:o.jsx(be,{"data-testid":"asset-back","aria-label":"Back",disabled:!r,onClick:()=>R(s,O),children:o.jsx(G,{icon:Ld})})}),o.jsxs("nav",{ref:pe,"data-testid":"asset-breadcrumb","aria-label":"Asset location",style:{flex:1,display:"flex",alignItems:"center",gap:2,fontSize:12,minWidth:0,overflowX:"auto",overflowY:"hidden",whiteSpace:"nowrap"},children:[r?o.jsx(te,{type:"button",variant:"ghost",size:"compact",onClick:()=>R(s,""),style:{flexShrink:0},children:Pe}):o.jsx("span",{"aria-current":"location",style:{color:Rt[1]},children:Pe}),E.map((_,J)=>{const U=E.slice(0,J+1).join("/"),me=J===E.length-1;return o.jsxs("span",{style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[o.jsx("span",{style:{color:Rt[3]},children:"/"}),me?o.jsx("span",{"aria-current":"location",title:_,style:{color:Rt[1]},children:_}):o.jsx(te,{type:"button",variant:"ghost",size:"compact",onClick:()=>R(s,U),children:_})]},U)})]})]}),e==="content"&&o.jsxs(_o,{className:"volter-content-filter-inline","aria-label":"Content types",children:[i&&o.jsx(te,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":"content-filter-all","aria-pressed":t.length===0,onClick:T,children:"All"}),[...[["component","Prefabs"],["scene","Scenes"],["canvas","Canvases"],["model","Models"],["image","Images"],["video","Videos"],["audio","Audio"],["other","Other"]].filter(([_])=>n.has(_)),...[...n].filter(_=>!$v.has(_)).sort().map(_=>[_,Mv(_)])].map(([_,J])=>o.jsx(te,{variant:"ghost",size:"compact",className:"volter-content-filter-chip","data-testid":`content-filter-${_}`,"aria-pressed":t.includes(_),onClick:()=>k(_),children:J},_))]}),o.jsxs("div",{ref:re,className:"volter-project-assets-toolbar__more",children:[o.jsx(xt,{text:"More asset actions",position:"top",children:o.jsx(be,{"aria-label":"More asset actions","aria-expanded":oe,"aria-haspopup":"menu",onClick:()=>fe(_=>!_),children:o.jsx(G,{icon:Od})})}),oe&&o.jsxs(Vt,{autoFocusFirst:!0,className:"volter-project-assets-toolbar__menu",onDismiss:()=>fe(!1),children:[o.jsx(Z,{"data-command-id":de.import.id,onSelect:()=>{fe(!1),h()},children:"Import files…"}),o.jsx(Z,{"data-command-id":de.createFolder.id,onSelect:()=>{fe(!1),d()},children:"New folder"}),Y.length>0&&o.jsxs(o.Fragment,{children:[o.jsx("hr",{className:"volter-menu-separator"}),o.jsx(Z,{onSelect:()=>{fe(!1),ke()},children:"Create asset…"})]}),o.jsx(Z,{onSelect:()=>{fe(!1),A(f<=96?132:88)},children:f<=96?"Larger thumbnails":"Smaller thumbnails"}),o.jsx(Z,{disabled:W,"data-command-id":de.delete.id,onSelect:()=>{fe(!1),D()},children:"Delete selected"}),o.jsx(Z,{onSelect:()=>{fe(!1),ne()},children:"Refresh"})]})]})]})]})}function sy(e){const[t,n]=a.useState(new Map);a.useEffect(()=>{n(new Map)},[e.revision]),a.useEffect(()=>{for(const s of e.expanded){if(t.has(s))continue;const i=Td.find(u=>s===u||s.startsWith(`${u}/`));if(!i)continue;const c=s===i?"":s.slice(`${i}/`.length);e.loadAssets(i,c).then(u=>{u.ok&&n(f=>{const p=new Map(f);return p.set(s,u.entries.filter(v=>v.type==="directory").map(v=>v.name)),p})})}},[t,e.expanded,e.loadAssets]);const r=(s,i,c)=>{const u=i?`${s}/${i}`:s,f=e.expanded.has(u),p=i.split("/").pop()||s;return o.jsxs("div",{children:[o.jsxs("div",{className:"volter-asset-tree-row",style:{paddingLeft:6+c*14},children:[o.jsx(be,{className:"volter-asset-tree-toggle","aria-label":`${f?"Collapse":"Expand"} ${p}`,"aria-expanded":f,onClick:()=>e.onExpanded(u),children:o.jsx(G,{icon:Wd,style:{transform:f?"rotate(90deg)":void 0}})}),o.jsxs(te,{variant:"ghost",size:"compact",className:"volter-asset-tree-target","aria-current":e.currentRoot===s&&e.currentPath===i?"page":void 0,onClick:()=>e.onNavigate(s,i),children:[o.jsx(G,{icon:Jr}),p]})]}),f&&t.get(u)?.map(v=>r(s,i?`${i}/${v}`:v,c+1))]},u)};return o.jsxs("aside",{id:"project-asset-tree",className:"volter-asset-tree","aria-label":"Project asset sources",hidden:e.hidden,children:[o.jsx("div",{className:"volter-asset-facet-title",children:"Project"}),r("public","",0),o.jsx(te,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>e.onNavigate("public","asset-library/local"),children:"Imported"}),o.jsx(te,{variant:"ghost",size:"compact",className:"volter-asset-tree-target",onClick:()=>e.onNavigate("public",".generated"),children:"Generated"}),o.jsx("div",{className:"volter-asset-facet-title",children:"References"}),r(Wt,"",0)]})}function ay(e){const t=a.useRef(null),[n,r]=a.useState(e),[s,i]=a.useState(!0);a.useLayoutEffect(()=>{const f=t.current;if(!f)return;const p=k=>{k>0&&i(k>=Nv)};if(p(f.getBoundingClientRect().width),typeof ResizeObserver>"u")return;const v=new ResizeObserver(([k])=>{k&&p(k.contentRect.width)});return v.observe(f),()=>v.disconnect()},[]);const c=n==="shown"||n==="auto"&&s,u=a.useCallback(()=>{r(c?"hidden":"shown")},[c]);return{browserRef:t,treeVisibility:n,treeVisible:c,toggleTreeVisibility:u}}function iy({services:e=Ov}){const t=qe(),n=typeof t.subscribe=="function"?t.subscribe:Qv,r=typeof t.getSnapshot=="function"?t.getSnapshot:ey,s=typeof t.getShellSnapshot=="function"?t.getShellSnapshot:r,i=a.useSyncExternalStore(n,s,s),c=a.useSyncExternalStore(Vr,en,en),u=a.useSyncExternalStore(De,Me,Me),f=a.useRef(t);f.current=t;const p=$s(),v=a.useSyncExternalStore(Xs,Po,Po),k=a.useSyncExternalStore(hd,Io,Io),T=v.filter(l=>l.point==="workspace.document"&&l.tool?.generation?.role==="submit"),R=a.useMemo(Lv,[]),[w,P]=a.useState(R.root),[g,A]=a.useState(R.scope),[N,d]=a.useState(R.facets),[h,D]=a.useState(R.currentPath),[W,ne]=a.useState(R.viewMode),[Y,ke]=a.useState(R.scope==="content"?"relevance":"name"),[re,H]=a.useState("all"),[pe,oe]=a.useState(R.density),{browserRef:fe,treeVisibility:E,treeVisible:O,toggleTreeVisibility:Pe}=ay(R.treeVisibility),[I,_]=a.useState(!1),[J,U]=a.useState({path:R.currentPath,entries:[]}),[me,Je]=a.useState([]),[Xe,Ze]=a.useState([]),Ne=a.useSyncExternalStore(md,As),ve=a.useSyncExternalStore(Is,gr,gr),[ye,Fe]=a.useState(!1),[Qe,ie]=a.useState([]),[ge,Pt]=a.useState(new Set(R.expanded)),[ct,we]=a.useState(0),[mt,et]=a.useState(0),[Ve,xe]=a.useState(""),[Ie,ce]=a.useState(new Set),[tt,se]=a.useState(null),[We,He]=a.useState(null),[vt,Se]=a.useState(""),Ee=a.useCallback(l=>{Se(l.initial),He(l)},[]),[ze,Te]=a.useState(!1),[Be,Le]=a.useState(null),[C,$]=a.useState(null),zt=a.useRef(null),It=a.useRef(new Map),yt=a.useRef("");a.useEffect(()=>{Mn(Ta,{scope:g,root:w,facets:N,currentPath:h,viewMode:W,sort:Y,filter:re,density:pe,expanded:[...ge],treeVisibility:E})},[h,w,pe,ge,N,re,g,Y,E,W]);const Re=a.useCallback(async(l,y)=>{const x=`${l}:${y}`;yt.current=x;const b=(B,Ae)=>{yt.current===x&&U({path:y,entries:B,...Ae===void 0?{}:{failure:Ae}})},F=It.current.get(x);if(F){b(F);return}try{const B=await e.listAssets(l,y);if(!B.ok){b([],B.reason);return}It.current.set(x,B.entries),b(B.entries)}catch(B){b([],B instanceof Error?B.message:String(B))}},[e]);a.useEffect(()=>{Re(w,h)},[w,h,Re]);const Ue=a.useCallback(async()=>{Fe(!0);try{const[l,y]=await Promise.all([yd(e.listAssets),e.listProjectComponents()]),x=await gd(l.assets,async b=>{try{const F=await fetch(`/${b}`);return F.ok?await F.text():null}catch{return null}});Je(x),Ze(y.ok?y.entries:[]),ie([...l.failedListings,...y.ok?[]:[`component index: ${y.reason}`]])}catch(l){Je([]),Ze([]),ie([l instanceof Error?l.message:String(l)])}finally{Fe(!1)}},[e]);a.useEffect(()=>{g==="content"&&Ue()},[Ue,g]);const lt=a.useCallback((l,y)=>{P(l),D(y),ce(new Set),Le(null),St(),xe(""),_(!1)},[]),Bt=a.useCallback(l=>{A(l),ke(l==="content"?"relevance":"name"),H("all"),ce(new Set),Le(null),St()},[]),Bn=a.useCallback(l=>{d([l])},[]),Tt=a.useCallback(l=>{_(l),l||d(y=>y.length>0?y:["component"])},[]),_t=J.path,gt=a.useMemo(()=>Zv(Pn(f.current).adapter),[c,i,u]),ln=a.useMemo(()=>Pn(f.current).surface,[c,i,u]),Ke=a.useMemo(()=>{if(g==="content"){const l=new Map(Xe.map(b=>[`${b.path}:${b.name}`,b])),y=bd().flatMap(b=>b.entries({components:Xe,surface:ln}).flatMap(F=>{const B=l.get(`${F.component.path}:${F.component.name}`);if(!B)return[];const Ae=`${B.path.replace(/^\.\//,"")}:${B.name}`,Dt=gt.get(Ae);return[{source:"component",key:`component:${b.id}:${F.id}`,name:B.name,path:B.path,component:B,contentSource:b,contentEntry:F,...Dt?{authoringAsset:Dt}:{}}]})),x=(ve?.scenes.entries??[]).flatMap(b=>{if(b.kind==="prefab")return[];const F=b.kind==="scene"?wd(b):null;return F&&Ne.some(B=>(B.category==="scene"||B.category==="canvas")&&(F.kind==="root-document"&&B.rootId===F.regionId||F.kind==="isolation-document"&&B.descriptor.id===F.documentId||!!b.source?.path&&B.descriptor.provenance?.sourcePath?.replace(/^\.\//,"")===b.source.path.replace(/^\.\//,"")))?[]:b.kind!=="scene"&&!b.source?[]:[{source:"document",key:`document:${b.id}`,name:b.label,path:b.source?.path??"",document:b}]});return[...y,...x,...Ne.map(b=>({source:"available",key:`available:${b.descriptor.id}`,name:b.descriptor.title,path:b.descriptor.provenance?.sourcePath??"",available:b})),...me.map(({path:b,root:F,entry:B,spritesheet:Ae})=>({source:"asset",key:`asset:${F}:${b}`,name:B.name,path:b,root:F,entry:B,...Ae?{spritesheet:Ae}:{}}))]}return J.entries.map(l=>{const y=J.path?`${J.path}/${l.name}`:l.name;return{source:"asset",key:`asset:${w}:${y}`,name:l.name,path:y,root:w,entry:l}})},[ln,ve,Ne,gt,Xe,me,k,w,J,g]),At=g==="content"?Qe[0]??null:J.failure??null,nt=a.useMemo(()=>{const l=Ve.toLowerCase(),y=Ke.filter(b=>qv(b,{query:l,scope:g,facets:N,filter:re,shownPath:_t})),x=g==="files"&&Y==="relevance"?"name":Y;return[...y].sort((b,F)=>Yv(b,F,x))},[Ke,N,_t,re,g,Ve,Y]),Un=a.useMemo(()=>{const l=new Set;for(const y of Ke)l.add(_a(y));return l},[Ke]),Kn=a.useMemo(()=>Wv(nt,g,N),[N,nt,g]),Gn=a.useCallback((l,y)=>{if(y.source==="component"){const Dt={path:y.path,kind:"component",name:y.name,component:{kind:"component",name:y.component.name,sourcePath:y.component.path,exportKind:y.component.defaultExport?"default":"named",surface:y.component.surface}};l.dataTransfer.setData("text/plain",y.name),l.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Dt));return}if(y.source==="document"||y.source==="available"){if("dataTransfer"in l){l.dataTransfer.setData("text/plain",y.path);return}return}const{entry:x}=y,b=je(x.name);if(y.root===Wt){l.preventDefault(),at(`${x.name} is reference material. ${cr}`);return}if(y.spritesheet){l.preventDefault(),at(`${x.name} is one frame of the ${y.spritesheet.sheetPath.split("/").pop()??"sprite sheet"} sprite sheet — it is placed through the Prefab that animates it, not on its own. Drop a Prefab, or a standalone image file.`);return}if(x.type!=="file"||!b.placeable){l.preventDefault();return}const F=wn(b);if(!F)return;const Ae={path:Av(w,jt(y.path),x.name),kind:F,name:x.name};l.dataTransfer.setData("text/plain",x.name),l.dataTransfer.setData("application/x-editor-asset",JSON.stringify(Ae))},[w]),dn=a.useCallback((l,y)=>{let x=new Set;if(y.shiftKey&&Be){const rt=nt.findIndex(Kt=>Kt.key===Be),wt=nt.findIndex(Kt=>Kt.key===l.key);if(rt>=0&&wt>=0){const[Kt,za]=rt<wt?[rt,wt]:[wt,rt];x=new Set(nt.slice(Kt,za+1).map(Ba=>Ba.key))}}else y.metaKey||y.ctrlKey?(x=new Set(Ie),x.has(l.key)?x.delete(l.key):x.add(l.key),Le(l.key)):(x.add(l.key),Le(l.key));if(ce(x),l.source==="component"){if(l.component.contentKind==="image"&&l.authoringAsset){Gt({path:l.authoringAsset.subject.sourcePath??l.path,name:l.name,kind:"image",capabilities:je("svg"),health:"healthy",selectionCount:x.size});return}Gt({path:l.path,name:l.name,kind:"component",health:"healthy",selectionCount:x.size,componentPreview:{surface:l.component.surface,sourcePath:l.component.path}});return}if(l.source==="document"||l.source==="available"){Gt({path:`/${l.path}`,name:l.name,kind:"source",capabilities:je(l.name),origin:"project",health:"healthy",selectionCount:x.size});return}const{entry:b}=l;if(b.type==="directory"){St();return}const F=je(b.name),B=wn(F)??"unknown",Ae=Vn(l.root,l.path);if(Gt({path:Ae,name:b.name,kind:B,...b.size===void 0?{}:{sizeBytes:b.size},capabilities:F,health:Pr(b.name),selectionCount:x.size,...l.path.startsWith("asset-library/local")?{sourcePath:"Asset Library provenance metadata"}:{}}),l.root!=="public")return;const Dt=l.path;yv(yr(),Dt).then(rt=>{const wt=Ae;xd()?.path===wt&&Gt({path:wt,name:b.name,kind:B,...b.size===void 0?{}:{sizeBytes:b.size},capabilities:F,health:rt.health.status==="healthy"?"healthy":F.runtimeReady?"unsupported":"source-only",healthCodes:rt.health.codes,dependencies:rt.dependencies,references:rt.references,selectionCount:x.size})}).catch(()=>{})},[nt,Ie,Be]),Ut=a.useCallback(l=>{if(l.source==="component"){if(l.authoringAsset){Sd(l.authoringAsset.id,l.authoringAsset.subject);return}l.contentSource.open(t,l.contentEntry,l.name);return}if(l.source==="available"){zr(l.available.descriptor.id);return}if(l.source==="document"){if(l.document.kind==="scene"){const y=Ed(l.document.id);y.ok||ue.error(y.error,"scene");return}jd(l.document)||gn(`/${l.path}`,kd(l.document));return}zv(l,{currentRoot:w,currentPath:l.source==="asset"?jt(l.path):"",navigate:lt,openAsset:(y,x)=>gn(y,x)})},[w,lt,t]),bt=a.useCallback(l=>{if(we(y=>y+1),It.current.clear(),l?.length)for(const y of l)Xo(y);else Xo();et(y=>y+1),Re(w,h),g==="content"&&Ue()},[w,h,Ue,Re,g]);a.useEffect(()=>{const l=y=>bt(y.detail?.paths);return window.addEventListener("editor:assets-changed",l),()=>window.removeEventListener("editor:assets-changed",l)},[bt]),a.useEffect(()=>{const l=y=>{const x=y.detail?.path;if(!x)return;const b=je(x),F=wn(b);F&&gn(x,F)};return window.addEventListener("editor:open-project-asset",l),()=>window.removeEventListener("editor:open-project-asset",l)},[t]);const Oe=a.useMemo(()=>Ke.filter(l=>Ie.has(l.key)),[Ke,Ie]),m=a.useMemo(()=>Oe.flatMap(l=>l.source==="asset"&&l.entry.type==="file"&&l.root==="public"?[l.path]:[]),[Oe]),S=a.useMemo(()=>Oe.flatMap(l=>l.source==="asset"&&l.entry.type==="file"?[br(l.root,l.path)]:[]),[Oe]);a.useEffect(()=>{const l=new Set(Ke.map(y=>y.key));ce(y=>{const x=new Set([...y].filter(b=>l.has(b)));return y.size>0&&x.size===0&&(Le(null),St()),x.size===y.size?y:x})},[Ke]);const j=a.useCallback(async l=>{await gv(l,{backend:yr(),history:p}),It.current.clear(),w==="public"&&await Re(w,h),g==="content"&&await Ue()},[h,w,Ue,Re,p,g]),L=a.useCallback(async()=>{m.length!==0&&Jm("delete",`Delete ${m.length} selected asset(s)? This is undoable.`)&&(await j({type:"delete",paths:m}),ce(new Set),Le(null),St())},[j,m]),X=a.useCallback(()=>{m.length!==0&&Ee({title:`Move ${m.length} selected to folder`,initial:h,confirmLabel:"Move",run:async l=>{const y=l.replace(/^\/+|\/+$/g,"");se(null);try{await j({type:"move-many",moves:m.map(x=>({source:x,destination:y?`${y}/${x.split("/").pop()}`:x.split("/").pop()}))})}catch(x){se(x instanceof Error?x.message:String(x))}}})},[Ee,h,j,m]),V=a.useCallback(()=>{w==="public"&&Ee({title:"New folder name",initial:"",confirmLabel:"Create",run:async l=>{l&&await j({type:"create-folder",path:h?`${h}/${l}`:l})}})},[Ee,h,w,j]),q=a.useCallback(async l=>{if(!l||l.length===0)return;const y=g==="content"||w!=="public"?"":h,x=await Promise.all([...l].map(async b=>({path:y?`${y}/${b.name}`:b.name,bytes:new Uint8Array(await b.arrayBuffer())})));se(null);try{await j({type:"import",files:x})}catch(b){se(`Could not import ${x.length===1?x[0]?.path:`${x.length} files`}: ${b instanceof Error?b.message:String(b)}`);return}g==="content"&&Bt("files"),lt("public",y),at(x.length===1?`Imported ${x[0]?.path}`:`Imported ${x.length} files`)},[Bt,h,w,j,lt,g]),K=a.useCallback(l=>{if(!(l.source!=="asset"||l.entry.type!=="file")){if(l.root!=="public"){at(`${l.name} is reference material. ${cr}`);return}Ee({title:`Rename ${l.name}`,initial:l.name,confirmLabel:"Rename",run:async y=>{if(!y||y===l.name)return;const x=l.path,b=jt(l.path),F=b?`${b}/${y}`:y;await j({type:"move",source:x,destination:F})}})}},[Ee,j]),z=a.useCallback(async l=>{if(l.source!=="asset"||l.entry.type!=="file")return;if(l.root!=="public"){at(`${l.name} is reference material. ${cr}`);return}const y=l.name.lastIndexOf("."),x=y>0?`${l.name.slice(0,y)} copy${l.name.slice(y)}`:`${l.name} copy`,b=l.path,F=jt(l.path),B=F?`${F}/${x}`:x;await j({type:"duplicate",source:b,destination:B})},[j]),_e=a.useCallback(l=>{Pt(y=>{const x=new Set(y);return x.has(l)?x.delete(l):x.add(l),x})},[]);a.useEffect(()=>{const l=y=>{const x=y.detail?.id,b=Oe[0];x===de.refresh.id?bt():x===de.import.id?zt.current?.click():x===de.createFolder.id?V():x===de.move.id?X():x===de.delete.id?L():x===de.rename.id&&b?K(b):x===de.duplicate.id&&b?z(b):x===de.copyPath.id&&S[0]?navigator.clipboard.writeText(S[0]):x===de.reveal.id&&S[0]&&To(S[0])};return window.addEventListener("editor:project-asset-command",l),()=>window.removeEventListener("editor:project-asset-command",l)},[V,h,L,z,X,bt,K,Oe,S]);const ae=C?.item.source==="available"&&C.item.available.descriptor.preview?C.item:null;return o.jsxs("div",{ref:fe,className:"volter-asset-browser","data-tree-visible":g==="files"&&O,onPointerDown:()=>Gs("asset-browser"),onKeyDown:l=>{if(!Cd(l.target)){if(l.key==="Delete"||l.key==="Backspace")L(),l.preventDefault();else if((l.metaKey||l.ctrlKey)&&l.key.toLowerCase()==="d"){const y=Oe[0];y&&z(y),l.preventDefault()}else if(l.key==="F2"){const y=Oe[0];y&&K(y),l.preventDefault()}}},onDragOver:l=>{w!=="public"||!l.dataTransfer.types.includes("Files")||(l.preventDefault(),l.dataTransfer.dropEffect="copy",ze||Te(!0))},onDragLeave:l=>{l.currentTarget.contains(l.relatedTarget)||Te(!1)},onDrop:l=>{w!=="public"||!l.dataTransfer.types.includes("Files")||(l.preventDefault(),Te(!1),q(l.dataTransfer.files))},style:{display:"flex",flex:1,minHeight:0,position:"relative",...ze?{outline:`2px dashed ${Q.accent.default}`,outlineOffset:-2}:{}},children:[o.jsx(sy,{currentRoot:w,currentPath:h,expanded:ge,hidden:g!=="files"||!O,revision:ct,loadAssets:e.listAssets,onExpanded:_e,onNavigate:lt}),o.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,minHeight:0},children:[o.jsx(nn,{ref:zt,type:"file",multiple:!0,"aria-label":"Import project assets",hidden:!0,onChange:l=>{q(l.target.files),l.currentTarget.value=""}}),o.jsx(oy,{availableFacets:Un,scope:g,facets:N,currentPath:h,currentRoot:w,searchOpen:I,searchQuery:Ve,viewMode:W,density:pe,treeVisible:O,onScopeChange:Bt,onFacetToggle:Bn,onFacetsClear:()=>d([]),onNavigate:lt,onSearchOpenChange:Tt,onSearchQueryChange:xe,onViewModeChange:ne,onDensityChange:oe,onTreeVisibilityToggle:Pe,onCreateFolder:()=>void V(),onImport:()=>zt.current?.click(),onDelete:()=>void L(),deleteDisabled:m.length===0,onRefresh:bt,generationTools:T,onGenerate:()=>{Ct("generation",t,{kind:"generation",id:"create"})}}),tt&&o.jsx("div",{role:"alert",className:"volter-asset-operation-error",children:tt}),We&&o.jsxs("form",{className:"volter-asset-inline-prompt",style:{display:"flex",alignItems:"center",gap:6,padding:"6px 8px"},onSubmit:l=>{l.preventDefault();const y=We;He(null),y.run(vt.trim())},children:[o.jsx("span",{style:{fontSize:12},children:We.title}),o.jsx(nn,{autoFocus:!0,"aria-label":We.title,value:vt,onChange:l=>Se(l.target.value),onKeyDown:l=>{l.key==="Escape"&&He(null)}}),o.jsx(te,{type:"submit",size:"compact",children:We.confirmLabel}),o.jsx(te,{type:"button",variant:"ghost",size:"compact",onClick:()=>He(null),children:"Cancel"})]}),m.length>0&&o.jsxs(Tn,{label:"Selected asset actions",compact:!0,children:[o.jsxs("span",{children:[m.length," selected"]}),o.jsx(te,{variant:"ghost",size:"compact",onClick:()=>void X(),children:"Move selected"}),o.jsx(te,{variant:"ghost",size:"compact","aria-label":"Delete selected assets",onClick:()=>void L(),children:"Delete"})]}),o.jsxs("div",{className:"volter-project-assets-results","data-view":W,"data-testid":"project-asset-results",role:"listbox","aria-label":g==="content"?"Project content":"Project files","aria-multiselectable":"true",style:{flex:1,overflowY:"auto",padding:8,display:W==="list"?"flex":"grid",gridTemplateColumns:W==="grid"?`repeat(auto-fill, minmax(${Math.round(pe*.75)}px, 1fr))`:void 0,gridAutoRows:W==="list"?void 0:"min-content",flexDirection:W==="list"?"column":void 0,gap:W==="list"?1:6,alignContent:"start"},children:[Kn.map(l=>o.jsxs("div",{role:"group","aria-label":l.label??void 0,className:"volter-content-result-section",children:[l.label&&o.jsx("div",{role:"presentation",className:"volter-content-section-heading","data-level":l.headingLevel??void 0,"data-testid":`content-section-${l.id}`,children:o.jsx("span",{children:l.label})}),l.entries.map(y=>o.jsx(ry,{item:y,selected:Ie.has(y.key),onDragStart:Gn,onSelect:dn,onOpen:Ut,onContextMenu:(x,b)=>{x.preventDefault(),b.source!=="component"&&(Ie.has(b.key)||dn(b,x),$({x:x.clientX,y:x.clientY,item:b}))},viewMode:W,previewRevision:mt,showPath:g==="content"},y.key))]},l.id)),nt.length===0&&o.jsx(Rd,{compact:!0,style:{gridColumn:"1 / -1"},icon:o.jsx(G,{icon:At?Zt.status.warning:Ve?Zt.action.search:Zt.content.folder}),title:ye?"Finding project content…":At?"Listing failed":Ve?"No matching content":g==="content"?"No content in this type":"Empty folder",description:ye?"Scanning components and assets across the project.":At?`Listing failed: ${At}`:Ve?"Try a broader search or another content type.":g==="content"?"Choose another type or import an asset.":"Add files to this folder to see them here."})]})]}),ae&&C&&o.jsx(vr,{children:o.jsxs(Vt,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:C.x,top:C.y},onDismiss:()=>$(null),children:[o.jsxs(Z,{type:"button",role:"menuitem",onClick:()=>{Ut(ae),$(null)},children:["Open ",o.jsx("kbd",{children:"Enter"})]}),ae.available.category==="scene"&&o.jsxs(o.Fragment,{children:[o.jsx(Z,{type:"button",role:"menuitem",onClick:()=>{const l=ae.available.descriptor.id;$(null),ts(l,!1).then(()=>et(y=>y+1)).catch(y=>se(y instanceof Error?y.message:String(y)))},children:"Use current view for preview"}),o.jsx(Z,{type:"button",role:"menuitem",onClick:()=>{const l=ae.available.descriptor.id;$(null),ts(l,!0).then(()=>et(y=>y+1)).catch(y=>se(y instanceof Error?y.message:String(y)))},children:"Reset preview view"})]}),o.jsx(Z,{type:"button",role:"menuitem",onClick:()=>{$(null),et(l=>l+1)},children:"Refresh preview"})]})}),C&&C.item.source==="asset"&&o.jsx(vr,{children:o.jsxs(Vt,{autoFocusFirst:!0,className:"volter-asset-context-menu",style:{left:C.x,top:C.y},onDismiss:()=>$(null),children:[o.jsxs(Z,{type:"button",role:"menuitem","data-command-id":de.open.id,onClick:()=>{Ut(C.item),$(null)},children:["Open ",o.jsx("kbd",{children:"Enter"})]}),o.jsxs(Z,{type:"button",role:"menuitem","data-command-id":de.rename.id,onClick:()=>{K(C.item),$(null)},children:["Rename ",o.jsx("kbd",{children:"F2"})]}),o.jsxs(Z,{type:"button",role:"menuitem","data-command-id":de.duplicate.id,onClick:()=>{z(C.item),$(null)},children:["Duplicate ",o.jsx("kbd",{children:"⌘D"})]}),o.jsx(Z,{type:"button",role:"menuitem","data-command-id":de.move.id,disabled:m.length===0,title:m.length?"Move selected assets":"Select a file to move",onClick:()=>{X(),$(null)},children:"Move selected…"}),o.jsx(Z,{type:"button",role:"menuitem","data-command-id":de.copyPath.id,disabled:!S[0],onClick:()=>{S[0]&&navigator.clipboard.writeText(S[0]),$(null)},children:"Copy path"}),Os("asset").map(l=>{const y=C.item.source==="asset"&&C.item.entry.type==="file",x=C.item.source==="asset"?{assetPath:br(C.item.root,C.item.path)}:{};return o.jsx(Z,{type:"button",role:"menuitem","data-testid":l.testId,disabled:!y||(l.disabled?.(x)??!1),onClick:()=>{l.execute(x),$(null)},children:typeof l.label=="function"?l.label():l.label},l.id)}),o.jsx(Z,{type:"button",role:"menuitem","data-command-id":de.reveal.id,disabled:!S[0],onClick:()=>{S[0]&&To(S[0]),$(null)},children:"Reveal in Finder"}),o.jsxs(Z,{type:"button",role:"menuitem","data-command-id":de.delete.id,disabled:m.length===0,onClick:()=>{L(),$(null)},children:["Delete ",o.jsx("kbd",{children:"⌫"})]})]})})]})}const cy={agent:()=>o.jsx(Qn,{slot:"panel:agent"}),"project-work":()=>o.jsx(Qn,{slot:"panel:project-work"}),hierarchy:Ea,assets:({dependencies:e})=>o.jsx(iy,{services:e?.assets}),"asset-library":()=>o.jsx(Qn,{slot:"panel:asset-library"}),inspector:Gr};class ly extends a.Component{state={error:null};static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,n){ue.error(`The ${this.props.title} panel crashed and was taken down alone (the rest of the editor stays up; Retry in the panel remounts it): ${t.message}
10
+ ${n.componentStack??""}`,"editor")}render(){return this.state.error?o.jsxs("div",{role:"alert","data-testid":"static-panel-crashed",style:{padding:12,display:"grid",gap:8,alignContent:"start"},children:[o.jsxs("strong",{children:[this.props.title," crashed."]}),o.jsx("span",{style:{opacity:.8,wordBreak:"break-word"},children:this.state.error.message}),o.jsx("div",{children:o.jsx(te,{type:"button",variant:"outline",size:"compact",onClick:()=>this.setState({error:null}),children:"Retry"})})]}):this.props.children}}const dy=Zs.map(e=>{const t=cy[e.kind],n=r=>o.jsx(ly,{title:e.title,children:o.jsx(t,{...r})});return n.displayName=`StaticPanel(${e.kind})`,{...e,Content:n}});function uy(e){return dy.find(t=>t.kind===e)}function py({kind:e,dependencies:t}){const{Content:n}=uy(e);return o.jsx(n,{dependencies:t})}const fy=250;function hy(){const e=Yd(),t=my();return()=>{t(),e()}}function my(){const e=new Map;let t=null,n=!1;function r(){const c=[],u=new Set;for(const f of ue.getEntries()){if(u.add(f.id),f.level!=="error"&&f.level!=="warn")continue;const p=e.get(f.id)??0;f.count<=p||(e.set(f.id,f.count),c.push({severity:f.level,message:f.message,source:f.source??null,occurrences:f.count-p}))}for(const f of[...e.keys()])u.has(f)||e.delete(f);return c}function s(){if(t=null,n)return;const c=r();c.length!==0&&Ao("console-entries",{entries:c,_clientId:Do})}const i=ue.subscribe(()=>{if(n)return;const c=ue.getEntries(),u=c[c.length-1];if(u&&u.level==="error"&&!e.has(u.id)){t!==null&&clearTimeout(t),t=null,queueMicrotask(s);return}t===null&&(t=setTimeout(s,fy))});return Ao("console-entries",{entries:[],_clientId:Do}),s(),()=>{n=!0,t!==null&&clearTimeout(t),i()}}function vy(){const e=$t();if(e===null)return null;const t=Qs(e);if(typeof t!="object"||t===null)return null;const n=t.stageMode;if(typeof n!="function")return null;const r=n.call(t);return typeof r=="string"?r:null}let Ir=null;function yy(e){Ir=e}function os(){if(!Ir)throw new Error("The workbench Output service is not connected.");return Ir}function gy(){Jd($t),qd({output:{write:(...e)=>os().write(...e),show:e=>os().show(e)},console:{log:(e,t)=>ue.log(e,t),warn:(e,t)=>ue.warn(e,t),error:(e,t)=>ue.error(e,t)},live:{register:ap,mounted:sp,playing:op,runWindow:rp,restartRequired:np,restart:tp,subscribe:ep,version:Qu,notifyChanged:Zu,snapshotFrame:Xu,frameCanvas:Ju,authoringRefusal:qu,dispatch:Yu,scenes:Gu,surface:Ku,coverage:Uu},viewport:{transition:{begin:Bu,ready:zu,end:Hu,onSettled:Wu,phase:Vu}},hierarchy:{subscribe:e=>{const t=un(e),n=le()?.subscribe(e);return()=>{t(),n?.()}},version:()=>{const e=le();return e?.getShellSnapshot?.()??e?.getSnapshot()??0}},session:{beginWork:Fu,reportFacet:Mu,onSample:$u,onCommandDispatched:Ou,playState:()=>le()?.playState??"stopped",playEditRegime:()=>le()?.playEditRegime??null,subscribe:e=>{const t=un(e),n=le()?.subscribe(e);return()=>{t(),n?.()}},version:()=>{const e=le();return e?.getShellSnapshot?.()??e?.getSnapshot()??0},open:()=>le()!==null,onEnded:e=>Sp(t=>{t!==null&&e()}),onBeforeClose:Lu,reportWorkerCallMeter:Nu},project:{documentTable:Du,mounts:Au,engineVersion:()=>Ce()?.config.engine.version??null,subscribe:$r,onReady:_u},notify:e=>Rn(e),systems:{inspected:Tu,subscribe:Iu,inspectedNetworking:Pu,subscribeNetworking:Cu,inspectedAudio:()=>xp()??null,subscribeAudio:Ru,audioVersion:ku},availability:{subscribe:ea,version:ju},workspace:{showUtility:Eu,openContributedDocument:e=>wp(e),open:async e=>await Ts(e.kind,le()??{},e)!==null,liveDocument:{id:Su,register:xu,acquire:wu,release:bu,open:gu,container:yu,setContainer:vu,releaseContainer:mu}},documents:{activeId:$t,active:()=>{const e=An();return e?{id:e.descriptor.id,kind:e.descriptor.kind,title:e.title}:null},subscribe:De,version:Me,context:Qs,waitForContext:hu,contextChanged:fu,captureActive:e=>{const t=le();return t?bp(t,e):Promise.reject(new Error("No editor session is open to capture a document from."))}},transport:{for:e=>gp(e),subscribe:pu},projectLocalState:{ready:Yr,read:Fn,write:Mn,projectRootPath:()=>Ce()?.rootPath??null},history:{record:uu,setDelegate:du,onElement:lu,invalidate:cu,onInvalidated:iu,changed:au,elements:su,focusedResource:()=>{const e=An();if(!e)return null;const t=e.descriptor.provenance?.sourcePath;if(t)return t;const n=le();return n?vp(n)??yp(n):null},undo:()=>le()?.projectHistory?.undo()??Promise.resolve(!1),redo:()=>le()?.projectHistory?.redo()??Promise.resolve(!1),canUndo:()=>le()?.projectHistory?.getSnapshot().canUndo??!1,canRedo:()=>le()?.projectHistory?.getSnapshot().canRedo??!1,undoLabel:()=>le()?.projectHistory?.getSnapshot().undoLabel??null,redoLabel:()=>le()?.projectHistory?.getSnapshot().redoLabel??null,subscribe:e=>{const t=mp(e),n=un(e),r=le()?.projectHistory?.subscribe(e),s=De(e);return()=>{t(),n(),r?.(),s()}}},files:{setProvider:ou,read:e=>$e.read(e),readBytes:e=>$e.readBytes(e),write:(e,t)=>$e.write(e,t),exists:e=>$e.exists(e),list:e=>$e.list(e),watch:e=>$e.watch(e)},settings:{setProvider:ru,get:nu,set:tu,inspect:eu,subscribe:e=>{const t=hp(e),n=ta(e);return()=>{t(),n()}}},keyboard:{actions:()=>fp().map(({id:e,scope:t})=>({id:e,scope:t})),keymaps:()=>up().map(({id:e,title:t})=>({id:e,title:t,chords:pp(e)})),activeKeymap:Qd,invoke:e=>dp(e),subscribe:e=>{const t=lp(e),n=Ns(e),r=un(e),s=le()?.subscribe(e),i=De(e);return()=>{t(),n(),r(),s?.(),i()}},version:()=>cp()+Me(),stage:()=>{const e=le();return e?{surface:ip(e).surface,mode:vy()}:{surface:null,mode:null}},bindActions:Zd,chordsFor:Xd,shortcutFor:e=>Ls(e)??null}})}let by=0,sn=null;const Tr=new Set;function ss(e){const t={generation:++by,promise:e,active:!0};sn=t;for(const n of Tr)n(t);return Tr.clear(),t}function wy(){const e=sn;return e?.active?Promise.resolve(e):new Promise(t=>Tr.add(t))}async function zn(){for(;;){const e=await wy();if(await e.promise,sn===e&&e.active)return}}const Da=16,xy=300,Sy=1e4,Na="workspace";function Ey(){const e=Fn(Na);return!e||e.version!==Da?null:e}function jy(e){Mn(Na,e)}function ky(e){const{descriptor:t}=e;if(!t.persist)return null;let n;try{n=t.persist({id:t.id,title:e.title})}catch{return null}if(n==null)return null;const r=Np(t.id);return{kind:t.kind,id:t.id,state:n,...Object.keys(r).length>0?{presentation:r}:{}}}function Ry(){const e={};let t=!1;for(const n of ra()){if(!n.persistKindState)continue;let r;try{r=n.persistKindState()}catch{continue}r!=null&&(e[n.kind]=r,t=!0)}return t?e:void 0}function Cy(){const e=[];for(const n of ht()){const r=ky(n);r&&e.push(r)}const t=Ry();return{version:Da,workspace:Dp(),documents:{open:e,activeId:$t(),...t?{kinds:t}:{}}}}async function Py(e,t,n){for(const r of sa(t.kind))try{if(await r.restore({id:t.id,state:t.state,active:t.id===n&&!Xr(),store:e}))return!0}catch{}return!1}function as(e){if(!e)return!1;const t=!Xr();return zr(e,t)?!0:Tp.has(e)?(oa(e),t&&_p(e),!0):t&&Hr(e)}function Iy(e,t){const n=t?.kinds??{},r=(t?.open.length??0)>0;for(const s of ra())if(s.beginRestore)try{s.beginRestore({state:n[s.kind],hasDocumentsToRestore:r,documentsToRestore:(t?.open??[]).map(i=>({kind:i.kind,state:i.state})),store:e})}catch{}}function Ty(e){const t=new Set;for(const n of e)for(const r of sa(n.kind))r.prepare&&t.add(r.prepare);return Promise.all([...t].map(n=>n().catch(()=>{})))}async function _y(e,t){const n=t?.documents;if(Iy(e,n),!n||n.open.length===0){as(n?.activeId??null);return}await Ty(n.open);for(const r of n.open){const s=r.presentation;s&&typeof s=="object"&&!Array.isArray(s)&&Ip(r.id,s),await Py(e,r,n.activeId)}as(n.activeId)}function La(e){if(!Yr()||Ce()&&!gr()){let P=!1,g=null,A=()=>{};const N=new Promise(h=>{A=h}),d=ss(N);return Promise.all([Ep(),Wr()]).then(()=>{if(P){A();return}g=La(e),d.active=!1,zn().finally(A)}),()=>{P=!0,g?.()}}const t=Ey();t?.workspace&&jp(t.workspace)&&kp(t.workspace)?wr(t.workspace):(t?.workspace&&Rp(t.workspace),wr(Cp(),{provisional:!0}));let n=!1,r=null;const s=[],i=()=>{r!==null&&(clearTimeout(r),r=null),!(Ap()||e.playState!==void 0&&e.playState!=="stopped")&&jy(Cy())},c=()=>{r!==null&&clearTimeout(r),r=setTimeout(i,xy)},u=()=>i();let f=null;const p=typeof window<"u"&&na(window.location.href)!==null,v=p||!(t?.documents?.open.length??0)?Promise.resolve():kn().catch(()=>{}),k=v.then(()=>p?void 0:_y(e,t)).catch(()=>{}),T=new Promise(P=>{v.then(()=>{n||(f=setTimeout(()=>{P()},Sy))})}),R=Promise.race([k,T]).then(()=>{f!==null&&clearTimeout(f),!n&&(s.push(De(c)),s.push(Pp(c)),window.addEventListener("pagehide",u))}),w=ss(R);return()=>{n=!0,w.active=!1,sn===w&&(sn=null),f!==null&&clearTimeout(f);for(const P of s)P();window.removeEventListener("pagehide",u),r!==null&&i()}}function Ay(e){a.useEffect(()=>{const t=na(window.location.href);if(!t)return;let n=!1;const r=Ft(),s=()=>!n&&Ft()===r;return zn().then(()=>{if(s())return ks(e,t,{updateUrl:!1,origin:"link"})}).catch(i=>{ue.error(`Could not restore shared editor view: ${i instanceof Error?i.message:String(i)}`,"editor")}),()=>{n=!0}},[e])}const is="volter:stale-chunk-reload";async function Dy(e,t,n=fetch){if(!e||typeof e!="object"||!("message"in e)||typeof e.message!="string")return!1;const r=/^(?:Failed to fetch dynamically imported module:|error loading dynamically imported module:|Unable to preload CSS for)\s*(\S+)\s*$/.exec(e.message);if(!r)return!1;try{const s=new URL(t),i=new URL(r[1],s),c=/-[\w-]{8,}\.(?:js|css)$/;if(!/^https?:$/.test(s.protocol)||!c.test(s.pathname)||i.origin!==s.origin||!c.test(i.pathname)||new URL(".",i).href!==new URL(".",s).href)return!1;const u=await n(i.href,{method:"HEAD",cache:"no-store"});return u.status===404||u.status===410}catch{return!1}}function Ny(){if(typeof window>"u")return;let e=!1,t=!1;window.addEventListener("vite:preloadError",async n=>{if(e||t)return;let r=0;try{r=Number(sessionStorage.getItem(is)??0)}catch{}if(Date.now()-r<6e4)return;e=!0;let s;try{s=await Dy(n.payload,import.meta.url)}finally{e=!1}if(s){t=!0;try{sessionStorage.setItem(is,String(Date.now()))}catch{}window.location.reload()}})}function Ly(e,t){const n=[];for(const r of Object.keys(t).sort())n.push(`${r}=${Oy(t[r])}`);return`${e}|${n.join("&")}`}function Oy(e){if(typeof e=="function")return"fn";if(typeof e=="symbol")return"symbol";if(e===void 0)return"undefined";try{return JSON.stringify(e)??"undefined"}catch{return`[${typeof e}]`}}const On=new Map,mn=new Map,cs=new WeakMap;let ls=Promise.resolve(),ds=null,$y=1;function My(){return typeof WebGLRenderingContext<"u"&&typeof navigator<"u"&&!navigator.userAgent.toLowerCase().includes("jsdom")}async function Fy(){await Promise.race([Mr(),new Promise(e=>setTimeout(e,5e3))]),await Promise.race([new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(()=>e()))),new Promise(e=>setTimeout(e,250))]),await new Promise(e=>setTimeout(e,750)),await new Promise(e=>{const t=globalThis.requestIdleCallback;if(typeof t=="function"){t(()=>e(),{timeout:2e3});return}setTimeout(e,0)})}function Vy(){return ds??=Fy(),ds}function Wy(e){const t=cs.get(e);if(t!==void 0)return t;const n=$y++;return cs.set(e,n),n}function Hy(e,t,n,r){const s=On.get(e);if(s)return Promise.resolve(s);const i=mn.get(e);if(i)return i;const c=ls.then(async()=>{await Vy();const u=n.parameters.layout,f=u==="fullscreen"||u==="padded"||u==="centered"?u:"padded",p={...r,props:n.args,layout:f},v=Lp(t==="canvas"?"canvas":"three");if(!v)throw new Error(`No ${t} story capture is registered.`);return v(n.Component,p)});return ls=c.then(()=>{},()=>{}),mn.set(e,c),c.then(u=>{On.set(e,u),mn.delete(e)},()=>mn.delete(e)),c}function zy({component:e,story:t,previewRevision:n,width:r=128,height:s=96}){const i=t.Component,c=`${e.surface}:${e.path}:${Ly(t.id,t.args)}:${Wy(i)}:${n}:${r}x${s}`,[u,f]=a.useState(()=>On.get(c)),[p,v]=a.useState(!1);return a.useEffect(()=>{let k=!1;if(v(!1),f(On.get(c)),!!My())return Hy(c,e.surface,t,{width:r,height:s}).then(T=>{k||f(T)},()=>{k||v(!0)}),()=>{k=!0}},[e.surface,s,c,t,r]),u?o.jsx("img",{src:u,alt:`${e.name} preview`,className:"volter-component-thumbnail"}):o.jsx("span",{className:"volter-component-thumbnail-fallback","data-component-preview":p?"failed":"capturing-story",children:o.jsx(rn,{kind:"component",name:e.name})})}function By(e,t){return e.surface==="dom"?!1:t===null||e.surface===t}function Uy({entry:e,previewRevision:t,width:n,height:r}){const s=e.detail;return o.jsx(zy,{component:e.component,story:s,previewRevision:t,...n===void 0?{}:{width:n},...r===void 0?{}:{height:r}})}const Ky="story",Gy={id:Ky,owner:"./component-content-source",entries(e){const t=Qr(),n=[];for(const r of e.components){if(!By(r,e.surface))continue;const s=Op(t,r.name,r.path);s&&n.push({id:`${r.path}:${r.name}`,component:r,detail:s})}return n},subscribe:Zr,Thumbnail:Uy,open(e,t,n){const r=t.detail,s=t.component.surface==="three";Ct(s?Wn:Hn,e,s?{modulePath:r.modulePath,storyName:r.name,title:n}:{modulePath:r.modulePath,storyName:r.name})}};function us(e){return $p(e.name,e.sourcePath)}const Yy={id:"portable-csf",owner:"./component-states",statesFor:(e,t)=>t.surface==="dom"?[]:us(e).map(n=>({id:n.id,label:n.label})),apply:(e,t,n)=>{const r=us(e).find(s=>s.id===t);if(r){if(n.surface==="three"){Ct(Wn,n.store,{modulePath:r.modulePath,storyName:r.name,title:r.label});return}if(n.surface==="canvas"){Ct(Hn,n.store,{modulePath:r.modulePath,storyName:r.name});return}ue.warn(`[portable-csf] no story document is registered for the "${n.surface}" surface, so state "${t}" of "${e.name}" could not be opened.`,"authoring")}}};function qy(){let e=0,t=!1;const n=p=>{const v=++e;Vp(),Mr().then(()=>{if(!(t||v!==e))return Wp(Ce(),void 0,{deferUndeclared:!0,...p?{changedPaths:p}:{}})})};n();let r=null,s=new Set;const c=Mp(p=>{const v=/(?:^|\/)(src\/.+\.(?:[cm]?tsx?|jsx?))$/.exec(p);v&&(s.add(v[1]??p),r!==null&&clearTimeout(r),r=setTimeout(()=>{r=null;const k=s;s=new Set,n(k)},1e3))}),u=$r(()=>n()),f=Fp(n);return()=>{t=!0,e+=1,r!==null&&clearTimeout(r),c(),u(),f()}}const Oa="story",lr=new Set,dr=new Set;function Jy(e){const t=Jp({modulePath:e.modulePath,title:e.title}).leaf;return t===e.label?t:`${t} · ${e.label}`}function ur(e){for(const t of Qr())if(t.ok){for(const n of t.stories)if(e.storyId===void 0?t.modulePath===e.modulePath&&n.name===e.storyName:n.id===e.storyId)return{modulePath:t.modulePath,storyName:n.name,title:e.title??Jy({modulePath:t.modulePath,title:n.title,label:n.label})}}return null}function Xy(e,t,n){const r={modulePath:n.modulePath,storyName:n.storyName,title:n.title,...t.activate===void 0?{}:{activate:t.activate}};if(t.mode==="docs")return Ct(Yp,e,r);const s=aa({modulePath:n.modulePath,regions:ia()});return s.medium===void 0?(qp(n.modulePath,s.reason),null):Ct(s.medium==="three"?Wn:Hn,e,r)}function ps(e){ue.warn(`No composed portable story carries the id ${JSON.stringify(e)}, so nothing opened it.`,"editor")}function Zy(){return Hp({id:Oa,owner:"./story-opener",open:(e,t)=>{const n=ur(t);return n?Xy(e,t,n):(t.modulePath?lr.add(t.modulePath):t.storyId!==void 0&&(dr.add(t.storyId),Xp()&&ps(t.storyId)),null)},settle:async()=>{await Up();const e=[...lr],t=[...dr];if(lr.clear(),dr.clear(),await Promise.all(e.map(n=>Kp(Ce(),n))),t.length!==0){await Gp();for(const n of t)ur({storyId:n})||ps(n)}},ready:async(e,t)=>{if(t.mode==="docs")return;const n=ur(t);if(!(!n||aa({modulePath:n.modulePath,regions:ia()}).medium!=="three")&&!await zp(()=>an(e)!==null,Bp))throw new Error(`The requested Object3D view did not mount for document: ${e}`)}})}const Qy={actions:()=>{if(!No(Hn)&&!No(Wn))return[];const e=[];for(const t of Qr()){if(!t.ok)continue;const n=t.modulePath.split("/").pop()??t.modulePath;for(const r of t.stories)e.push({id:`story:${r.id}`,label:`Open Story: ${r.name} — ${n}`,execute:()=>void he().workspace.open({kind:Oa,modulePath:t.modulePath,storyName:r.name,title:r.name})})}return e},subscribe:e=>Zr(e)},eg="packages/editor-core/src/stories/story-capture-command.ts",Nt="capture-story-variants";async function tg(e){if(document.visibilityState==="hidden")return{ok:!1,error:"story capture needs a PRESENTING tab — the editor tab is hidden, so the browser suspends the frames a story mount must paint. Bring the editor tab to the foreground (or unminimize its window) and re-run."};const t=e.modulePath;if(typeof t!="string"||t==="")return{ok:!1,error:`${Nt} requires a project-relative modulePath.`};const n=e.story;if(n!==void 0&&typeof n!="string")return{ok:!1,error:`${Nt} story must be a CSF export name.`};const r=(s,i,c)=>{if(s===void 0)return i;if(typeof s!="number"||!Number.isInteger(s)||s<64||s>1024)throw new Error(`${Nt} ${c} must be an integer from 64 to 1024.`);return s};try{const s=await(async()=>{try{const k=await Zp("volter.project.json");if(!k)return null;const T=JSON.parse(k),R=T.resolution?.width,w=T.resolution?.height;return typeof R!="number"||typeof w!="number"||R<64||w<64||R>4096||w>4096?null:{width:Math.min(1024,Math.round(R)),height:Math.min(1024,Math.round(w))}}catch{return null}})(),i=r(e.width,s?.width??960,"width"),c=r(e.height,s?.height??540,"height"),u=Qp(Nt,e.camera);if(typeof u=="string")return{ok:!1,error:u};const f=ef(Nt,e.pose);if(typeof f=="string")return{ok:!1,error:f};const{captureProjectStoryVariants:p}=await M(async()=>{const{captureProjectStoryVariants:k}=await import("./volter-sdk-kit-stories-story-capture-CbSD1tRT.js");return{captureProjectStoryVariants:k}},__vite__mapDeps([46,1]));return{ok:!0,data:{...await p(Ce(),{modulePath:t,...n===void 0?{}:{story:n},width:i,height:c,...u?{camera:u}:{},...f?{pose:f}:{}})}}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}}const ng={[Nt]:{timeoutMs:12e4,derivedRefresh:"if-content-changed",handle:tg}};function rg(){const e=tf(Gy),t=nf(Yy),n=Zy(),r=rf(Qy),s=of(eg,ng),i=qy(),c=Zr(()=>{sf()});return()=>{c(),i(),s(),r(),n(),t(),e()}}const og=[["descriptionForeground","--volter-content-dim"],["disabledForeground","--volter-content-placeholder"],["errorForeground","--volter-danger"],["focusBorder","--volter-accent"],["selection.background","--volter-accent","99"],["sash.hoverBorder","--volter-accent"],["menubar.selectionBackground","--volter-accent"],["menubar.selectionForeground","--volter-content-on-accent"],["menu.selectionBackground","--volter-accent"],["menu.selectionForeground","--volter-content-on-accent"],["editorGroupHeader.tabsBackground","--volter-surface-chrome"],["editorGroup.dropBackground","--volter-accent","66"],["tab.inactiveBackground","--volter-surface-chrome"],["tab.inactiveForeground","--volter-content-dim"],["editor.background","--volter-surface-chrome"],["editorLineNumber.foreground","--volter-content-placeholder"],["editor.selectionBackground","--volter-accent","99"],["editorGutter.background","--volter-surface-chrome"],["panelTitle.inactiveForeground","--volter-content-dim"],["list.activeSelectionBackground","--volter-accent"],["list.activeSelectionForeground","--volter-content-on-accent"],["list.focusOutline","--volter-accent"],["list.dropBackground","--volter-accent","66"],["button.background","--volter-accent"],["button.foreground","--volter-content-on-accent"],["checkbox.selectBackground","--volter-accent"],["input.background","--volter-surface-chrome"],["input.placeholderForeground","--volter-content-placeholder"],["inputOption.activeBackground","--volter-accent"],["inputOption.activeForeground","--volter-content-on-accent"],["inputValidation.errorBorder","--volter-danger"],["badge.background","--volter-accent"],["badge.foreground","--volter-content-on-accent"],["progressBar.background","--volter-accent"],["quickInputList.focusBackground","--volter-accent"],["quickInputList.focusForeground","--volter-content-on-accent"],["notificationsErrorIcon.foreground","--volter-danger"],["notificationsWarningIcon.foreground","--volter-warn"],["notificationsInfoIcon.foreground","--volter-accent"],["terminal.background","--volter-surface-chrome"],["commandCenter.background","--volter-surface-chrome"],["volter.view.background","--volter-surface-panel"],["foreground","--volter-content-primary"],["icon.foreground","--volter-content-muted"],["widget.border","--volter-boundary-default"],["titleBar.activeBackground","--volter-surface-shell"],["titleBar.inactiveBackground","--volter-surface-shell"],["titleBar.activeForeground","--volter-content-muted"],["titleBar.border","--volter-surface-shell"],["activityBar.background","--volter-surface-shell"],["activityBar.foreground","--volter-content-primary"],["activityBar.inactiveForeground","--volter-content-dim"],["activityBar.border","--volter-surface-shell"],["activityBar.activeBorder","--volter-accent"],["statusBar.background","--volter-surface-shell"],["statusBar.foreground","--volter-content-muted"],["statusBar.border","--volter-surface-shell"],["sideBar.background","--volter-surface-panel"],["sideBar.foreground","--volter-content-primary"],["sideBar.border","--volter-boundary-default"],["sideBarSectionHeader.background","--volter-surface-chrome"],["panel.background","--volter-surface-panel"],["panel.border","--volter-boundary-default"],["editorGroup.border","--volter-boundary-default"],["editorGroupHeader.tabsBorder","--volter-boundary-default"],["tab.activeBackground","--volter-surface-panel"],["tab.activeForeground","--volter-content-primary"],["tab.border","--volter-boundary-default"],["menu.background","--volter-widget-menu"],["menu.foreground","--volter-content-menu"],["menu.border","--volter-boundary-default"],["dropdown.background","--volter-widget-menu"],["dropdown.border","--volter-boundary-default"],["input.foreground","--volter-content-primary"],["input.border","--volter-boundary-default"]],sg=[["volter.viewport.background","--volter-viewport-background"],["volter.viewport.grid","--volter-viewport-grid"],["volter.viewport.axisX","--volter-viewport-axis-x"],["volter.viewport.axisY","--volter-viewport-axis-y"],["volter.viewport.axisZ","--volter-viewport-axis-z"],["volter.viewport.selection","--volter-viewport-selection"],["volter.viewport.active","--volter-viewport-active"],["volter.viewport.wire","--volter-viewport-wire"],["volter.gizmo.x","--volter-gizmo-x"],["volter.gizmo.y","--volter-gizmo-y"],["volter.gizmo.z","--volter-gizmo-z"],["volter.gizmo.navigationX","--volter-gizmo-navigation-x"],["volter.gizmo.navigationY","--volter-gizmo-navigation-y"],["volter.gizmo.navigationZ","--volter-gizmo-navigation-z"],["volter.gizmo.hover","--volter-gizmo-hover"],["volter.gizmo.drag","--volter-gizmo-drag"]];function fs(e){const t=e.trim().toLowerCase(),n=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/.exec(t)?.[1];if(n)return`#${n.length===3?[...n].map(u=>u+u).join(""):n}`;const r=/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.]+%?))?\s*\)$/.exec(t);if(!r)return null;const s=u=>Math.max(0,Math.min(255,Math.round(Number(u)))).toString(16).padStart(2,"0"),i=r[4],c=i===void 0?"":Math.round(Math.max(0,Math.min(1,i.endsWith("%")?Number.parseFloat(i)/100:Number(i)))*255).toString(16).padStart(2,"0");return`#${s(r[1])}${s(r[2])}${s(r[3])}${c==="ff"?"":c}`}function ag(e){const t=getComputedStyle(e),n={};for(const[r,s,i]of og){const c=fs(t.getPropertyValue(s));c!==null&&(c.length===9&&!i||(n[r]=i&&c.length===7?`${c}${i}`:c))}for(const[r,s]of sg){const i=fs(t.getPropertyValue(s));i!==null&&(n[r]=i)}return n}let ee=null,$a=0;const _r=new Set;function ig(e){return _r.add(e),()=>_r.delete(e)}function hs(){return $a}const pr=new Map;function Ma(e,t){pr.get(e)?.disconnect(),pr.delete(e);const n=()=>{const s=t?.isConnected?t.getBoundingClientRect():null;Nf(e,s!==null&&s.width>0&&s.height>0)};if(n(),t===null||typeof ResizeObserver>"u")return;const r=new ResizeObserver(n);r.observe(t),pr.set(e,r)}function cg(e,t){if(ee){if(t===null){if(ee[e]?.isConnected)return}else if(ee[e]===t)return;if(t===null&&(e==="outliner"||e==="properties"||e==="content")){const n={...ee};delete n[e],ee=n}else t!==null&&(ee={...ee,[e]:t});t!==null&&Fa(e,t),Ma(e,t),$a+=1;for(const n of _r)n()}}function Fa(e,t){t.dataset.volterPart=e}const ut=new Map;let ms=!1;function lg(){const e=t=>{if(!t)return null;const n=t.getBoundingClientRect();return{x:n.x,y:n.y,width:n.width,height:n.height,connected:t.isConnected}};return{editorRoots:[...document.querySelectorAll("#editor-root")].map(e),chrome:e(ee?.chromeRoot??null),slots:[...ut.values()].map(t=>({id:t.id,documentId:t.documentId,bounds:e(t.element)})),surfaces:[...document.querySelectorAll("[data-workspace-document-id]")].map(t=>({documentId:t.dataset.workspaceDocumentId,viewId:t.dataset.workspaceViewId,bounds:e(t)}))}}let Va=0;const Ar=new Set,Wa=new Set;let vs=!1;function ys(){for(const e of ht())Wa.add(e.descriptor.id)}function dg(e){vs||(vs=!0,De(ys)),ys(),!(!e||Wa.has(e))&&(Lf(e)||oa(e,!1))}function ug(e,t){if(t){if(!ut.delete(e.id))return}else{ut.has(e.id)||dg(e.documentId);const n=ut.get(e.id);if(n?.element===e.element&&n.documentId===e.documentId)return;ut.set(e.id,{...e})}Va+=1;for(const n of[...Ar])n()}function pg(e){return Ar.add(e),()=>{Ar.delete(e)}}function gs(){return Va}function kt({children:e,row:t=!1,center:n=!1}){return o.jsx("div",{className:"volter-editor-shell volter-part",onWheel:r=>r.stopPropagation(),"data-editor-hotkey-scope":"workspace","data-editor-hotkey-fallback":!0,style:{display:"flex",flexDirection:t?"row":"column",justifyContent:n?"center":void 0,width:"100%",height:"100%",minHeight:0,minWidth:0,position:"relative",fontFamily:"var(--volter-font-sans)",fontSize:"var(--volter-font-base)",color:"var(--volter-content-primary)"},children:e})}function fg({children:e}){return o.jsx(o.Fragment,{children:e})}function hg(){return ee?Ye.createPortal(o.jsx(kt,{center:!0,children:o.jsx(Yf,{})}),ee.header):null}function mg(){return null}function vg(){const e=a.useRef(null);return a.useEffect(()=>{const t=e.current;if(t)return ba(t),()=>dm(t)},[]),o.jsxs("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[o.jsx("div",{ref:e,className:"volter-vscode-outliner-header",style:{padding:"var(--volter-space-2) var(--volter-space-4)","--volter-hierarchy-search-basis":"100%"}}),o.jsx("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:o.jsx(Ea,{})})]})}const En=new Map,Dr=new Set;let Nr=0;function yg(e,t){if(t){if(En.get(e)===t)return;t.dataset.volterUtility=e,En.set(e,t)}else if(!En.delete(e))return;Nr++;for(const n of Dr)n()}const jn=new Map,Lr=new Set;let Or=0;function gg(e,t){if(t){if(jn.get(e)===t)return;jn.set(e,t)}else if(!jn.delete(e))return;Or++;for(const n of Lr)n()}function bg(){return a.useSyncExternalStore(ca,Oo,Oo),a.useSyncExternalStore(e=>(Lr.add(e),()=>Lr.delete(e)),()=>Or,()=>Or),o.jsx(o.Fragment,{children:[...xr("left"),...xr("right")].map(e=>{const t=jn.get(e.id);if(!t)return null;const n=e.Content;return o.jsx(a.Fragment,{children:Ye.createPortal(o.jsx(n,{}),t)},e.id)})})}function wg(){return a.useSyncExternalStore(la,Dn,Dn),a.useSyncExternalStore(e=>(Dr.add(e),()=>Dr.delete(e)),()=>Nr,()=>Nr),o.jsx(o.Fragment,{children:da().map(e=>{const t=En.get(e.id);return t?o.jsx(a.Fragment,{children:Ye.createPortal(o.jsx(kt,{children:o.jsx(qm,{utility:e})}),t)},e.id):null})})}function xg({descriptor:e,viewId:t,slot:n,parking:r,visible:s,inspector:i}){const[c]=a.useState(()=>document.createElement("div"));return a.useLayoutEffect(()=>{c.className="volter-vscode-document-slot",c.dataset.volterDocument=e.id,c.dataset.volterArea=e.area??"",c.style.cssText=`display:${s?"flex":"none"};flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;position:relative;`},[c,e.id,e.area,s]),a.useLayoutEffect(()=>((n??r).appendChild(c),()=>c.remove()),[c,n,r]),Ye.createPortal(o.jsxs(kt,{children:[o.jsx(pa,{descriptor:e,viewId:t,active:s,chrome:!e.area}),i&&o.jsx(tm,{})]}),c)}let Ha=!0;function Sg({arrangement:e,immersivePlay:t}){const n=qe();Ay(n);const r=Ws(n);a.useLayoutEffect(()=>{Ha=r.column},[r.column]);const s=ut.get(Wf()??"")?.element??ee?.center;a.useLayoutEffect(()=>{if(!s)return;const v=()=>Ho({x:0,y:0,width:s.clientWidth,height:s.clientHeight}),k=new ResizeObserver(v);return k.observe(s),v(),()=>{k.disconnect(),Ho(null)}},[s]),a.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),a.useSyncExternalStore(De,Me,Me),a.useSyncExternalStore(pg,gs,gs),a.useSyncExternalStore(ig,hs,hs),a.useLayoutEffect(()=>{const v=Hf({...e?{arrangement:e}:{},...t===void 0?{}:{immersivePlay:t},playUtilities:[]});return e&&wr(e.id),zf(),v},[e,t]);const i=n.playState!=="stopped",c=a.useSyncExternalStore(ta,Bf).play?.keepPanelsVisible;if(a.useEffect(()=>{Uf(i,Kf())},[i,t,c]),a.useEffect(()=>La(n),[n]),!ee)return null;const u=ee.center,f=ht(),p=An()??f[0]??null;return globalThis.__volterBridge={documents:f.map(v=>v.descriptor.id),active:p?.descriptor.id??null,workspace:e?.id??null,areas:f.flatMap(v=>v.descriptor.area?[{id:v.descriptor.id,area:v.descriptor.area}]:[]),slots:[...ut.values()].map(({id:v,documentId:k,element:T})=>({id:v,documentId:k,visible:!!T}))},o.jsxs(o.Fragment,{children:[[...ut.values()].map(v=>{const k=f.find(T=>T.descriptor.id===v.documentId)?.descriptor;return k?o.jsx(xg,{descriptor:k,viewId:v.id,slot:v.element??void 0,parking:u,visible:!!v.element,inspector:r.card&&k.id===p?.descriptor.id},v.id):null}),f.length===0&&Ye.createPortal(o.jsx(kt,{children:o.jsx("div",{className:"volter-vscode-empty",children:"No document open"})}),ee.center),ee.outliner&&Ye.createPortal(o.jsx(kt,{children:o.jsx(vg,{})}),ee.outliner),ee.properties&&Ye.createPortal(o.jsx(kt,{children:r.column?o.jsx(Gr,{}):o.jsx(Gf,{surface:r.surface})}),ee.properties),ee.content&&Ye.createPortal(o.jsx(kt,{children:o.jsx(py,{kind:"assets"})}),ee.content),o.jsx(wg,{}),o.jsx(bg,{})]})}const fr="no-document";let vn=null;function Eg(){vn?.();let e=!1;const t=[],n=()=>{e=!0;for(const r of t.splice(0))r();tn(fr),vn===n&&(vn=null)};vn=n,zn().then(()=>{if(e)return;let r=null;const s=()=>{if(e)return;if(ht().some(u=>!u.descriptor.area)){n();return}if(!Of())return;const i=Vf();if($f().length>0||i.length===0){r!==null&&(r=null,tn(fr));return}const c=i.map(u=>`${u.entryPath}: ${u.error.split(`
11
+ `)[0]}`).join(`
12
+ `);c!==r&&(r=c,ue.error(`Startup failed: no document can open, because these contributions did not load:
13
+ ${c}`,"editor"),Kr(fr,{message:`No document can open: the editor's contributions that provide them did not load.
14
+ ${c}`,guidance:`Reinstall the project's packages (npm install in the project folder), then reload this window; ${Br("console")} has the full errors.`,command:null}))};t.push(Xs(s),De(s)),s()})}async function jg(e,t={}){ee=e,t.workspaceStorage&&af(t.workspaceStorage),mr();for(const[d,h]of Object.entries(e))h&&Fa(d,h),Ma(d,h??null);e.chromeRoot.id="editor-chrome-root",cf({Frame:fg,Header:hg,Footer:mg,Workspace:Sg,Document:vh}),hy(),lf();const n=Nh();n&&Ah(n,Date.now())&&ue.warn(Th(n,Date.now()),"editor"),Ny(),df(),gy(),ms||(ms=!0,he().session.reportFacet(d=>({nativeLayout:d?.nativeLayout??lg()}),{reusableKeys:["nativeLayout"]})),rg(),await Promise.all([uf(),pf(),ff(),mr()]),hf(e.chromeRoot),e.chromeRoot.classList.toggle("volter-native-menus",mf()?.nativeMenus===!0);const r=document.createElement("div");r.id="editor-root",r.className="volter-part",r.style.cssText="position:absolute;inset:0;pointer-events:none;z-index:10;",e.chromeRoot.appendChild(r),vf.createRoot(r).render(o.jsx(Uh,{}));const s={activeKeymap:()=>he().keyboard.activeKeymap(),invoke:d=>he().keyboard.invoke(d),subscribe:d=>he().keyboard.subscribe(d),facts:()=>{const d=he(),h=d.keyboard.stage();return{surface:h.surface,mode:h.mode,documentKind:d.documents.active()?.kind??null,play:d.session.playState()}},report:(d,h,D)=>{const W=he();if(d==="error"?W.console.error(h,"editor"):W.console.warn(h,"editor"),d==="error"||D?.notify){const[ne,...Y]=h.split(/(?<=[.:])\s+/);W.notify({tone:d==="error"?"error":"warning",title:ne??h,...Y.length>0?{detail:Y.join(" ")}:{}})}}};let i=!1;const c={whenRestored:zn,activeSource:()=>{const d=he().documents.active();if(!d)return null;const h=d.kind==="model"&&d.id.startsWith("model:")?d.id.slice(6):"";return{kind:d.kind,path:h}},list:()=>ht().map(d=>{const h=d.descriptor.area?Df().find(D=>D.id===d.descriptor.area):void 0;return{id:d.descriptor.id,title:d.title,...h?{area:{id:h.id,place:h.place,ratio:h.ratio}}:{}}}),activeId:()=>An()?.descriptor.id??null,subscribe:d=>{i=!0;const h=De(d),D=Af(d);return()=>{h(),D()}},activate:(d,h)=>{!i&&Xr()||(h?_f(d,h):Hr(d))},close:d=>{if(_s(d))return;const h=ht().find(D=>D.descriptor.id===d);h&&s.report("warn",`“${h.title}” has unsaved changes, so it stayed open. Save it (⌘S) and close it again.`)},setView:(d,h)=>ug(d,h)},u={elements:()=>he().history.elements(),onElement:d=>he().history.onElement(d),onInvalidated:d=>he().history.onInvalidated(d),changed:()=>he().history.changed(),focusedResource:()=>he().history.focusedResource(),focusedDocument:()=>{const d=he().documents.active();return d?{id:d.id,label:d.title}:null},setDelegate:d=>he().history.setDelegate(d),report:s.report},f={setProvider:d=>he().files.setProvider(d),report:s.report},p={setProvider:d=>he().settings.setProvider(d),adapterValues:()=>[...xf()],workbenchValues:()=>{const d=ee?.chromeRoot;if(!d)return[];const h=getComputedStyle(d).getPropertyValue("--volter-command-bar-height").trim(),D=Number.parseFloat(h),W=["workbench.colorCustomizations",ag(d)];return!Number.isFinite(D)||D<=0?[W]:[["window.titleBarHeight",Math.round(D)],W]},lookId:()=>wf(),notify:d=>{he().notify(d)},subscribe:d=>{const h=Ps(d),D=Ks(d);return()=>{h(),D()}},report:s.report},v={list:()=>Tf().map(d=>({id:d.id,label:d.label,category:d.category,...d.menu?{menu:d.menu}:{}})),invoke:d=>If(d),subscribe:d=>Pf(d),setPaletteOpener:d=>Cf(d),setCommandExecutor:d=>Rf(d),report:s.report},k={setDelegate:d=>kf(d?{show:h=>d({...h,source:Mf()})}:null)},T={list:()=>jf().map(d=>({view:d.view,title:d.title,verbs:d.verbs.map(h=>({id:h.id,...h.title?{title:h.title}:{}}))})),invoke:(d,h,D)=>Ef(d,h,D),subscribe:d=>Sf(d)},R={list:()=>da().map((d,h)=>({id:d.id,title:d.title,order:d.order??h})),subscribe:d=>{let h=Dn();const D=la(d),W=ea(()=>{const ne=Dn();ne!==h&&(h=ne,d())});return()=>{D(),W()}},offerBody:(d,h)=>yg(d,h)};let w=!0,P=null,g=null;Ff(()=>w);const A={setActiveStaticPanel:d=>Lo(Zs.find(h=>h.kind===d)?.kind??null),focusCompactInspector:()=>{if(Ha)return!1;const d=ee?.center.querySelector('[data-testid="compact-inspector-card"]');return d?(d.tabIndex=-1,d.focus(),Lo("inspector"),!0):!1},setPaneActive:d=>{w!==d&&(w=d)},setImmersive:d=>{P?.(),P=null,!(!d||!ee)&&(P=bf({root:ee.chromeRoot,hideChrome:()=>d.enter(),showChrome:()=>d.exit()}))},setDockCommands:d=>{g?.(),g=null,d&&(g=gf({showUtility:h=>d.showUtility(h),toggleUtility:h=>d.toggleUtility(h),ensureUtility:h=>d.ensureUtility(h),closeUtility:h=>d.closeUtility(h),showStaticPanel:h=>d.showStaticPanel(h),setFocus:h=>d.setFocus(h),toggleFocus:()=>d.toggleFocus(),captureUtilities:h=>{for(const D of h)d.showUtility(D);return()=>{for(const D of h)d.closeUtility(D)}},showAuxiliary:()=>A.report("warn","Undo history has no panel under the VS Code frame: the stack is the workbench's own (U4), reached through Edit → Undo/Redo and the Timeline.")}))},report:(d,h)=>s.report(d,h)};return Eg(),{host:r,keyboard:s,documents:c,history:u,files:f,commands:v,notifications:k,views:T,utilities:R,output:{setProvider:yy},settings:p,status:{list:()=>["left","right"].flatMap(d=>xr(d).map((h,D)=>({id:h.id,title:h.name,align:d,order:h.order??D}))),subscribe:d=>ca(d),offerBody:(d,h)=>gg(d,h)},game:A,startup:{subscribe:yf},offerPart:cg}}function kg(e){const t=Object.keys(e.packages);return qf({id:e.id,packages:t,look:e.look,workspace:e.workspace,nativeMenus:e.nativeMenus,logo:e.logo}),Jf(t.flatMap(n=>e.packages[n]??[])),{mountVolter:jg}}const{mountVolter:Cg}=kg({id:"cyclotron",packages:{"@volter/editor-blender":Xf,"@volter/editor-threejs":Zf},look:"blender",workspace:"model"});export{Cg as mountVolter};
@@ -0,0 +1 @@
1
+ import{b as o,a as r}from"./blender-properties-tab-BmaCGZ2W.js";import{CONSTRAINT_HEADER as e}from"./properties-constraints.inspector-Blyjqhdx.js";import"./volter-sdk-Cd88wUVM.js";import"./blender-properties-model-CG1a0urK.js";import"./blender-runtime-host-I70OcA4h.js";import"./output-pass-j4dAGrPY.js";import"./three.module-CtVjCPcj.js";import"./linear-resolve-Cuka7Ypb.js";const n=[{title:"Bone Constraints",from:"Constraints",collection:!0,properties:e,andDeclared:!0}],t={id:"bone_constraint",curated:n},d="selection.inspector",C="Bone Constraints",T="properties-bone-constraints",u=140,f="object",A=r(t),B=o(t);export{B as default,T as icon,A as match,u as order,d as point,f as railGroup,C as title};
@@ -0,0 +1 @@
1
+ import{b as o,a as t}from"./blender-properties-tab-BmaCGZ2W.js";import"./volter-sdk-Cd88wUVM.js";import"./blender-properties-model-CG1a0urK.js";import"./blender-runtime-host-I70OcA4h.js";import"./output-pass-j4dAGrPY.js";import"./three.module-CtVjCPcj.js";import"./linear-resolve-Cuka7Ypb.js";const s=[{title:"Transform (Pose)",from:"Pose Bone",properties:["location","lock_location","rotation_quaternion","rotation_axis_angle","rotation_euler","lock_rotation_w","lock_rotation","rotation_mode","scale","lock_scale"]},{title:"Transform",from:"Bone",properties:["head","tail","roll","length","lock"]},{title:"Bendy Bones",closed:!0,from:"Bone",properties:["bbone_segments","bbone_x","bbone_z","bbone_mapping_mode","use_endroll_as_inroll","use_scale_easing","bbone_handle_type_start","bbone_handle_use_scale_start","bbone_handle_use_ease_start","bbone_handle_type_end","bbone_handle_use_scale_end","bbone_handle_use_ease_end"]},{title:"Relations",from:"Bone",properties:["parent","children","use_relative_parent","use_connect","use_local_location","use_inherit_rotation","inherit_scale"]},{title:"Bone Collections",closed:!0,from:"Bone",properties:["collections"]},{title:"Inverse Kinematics",closed:!0,from:"Pose Bone",properties:["ik_stretch","lock_ik_x","lock_ik_y","lock_ik_z","ik_stiffness_x","ik_stiffness_y","ik_stiffness_z","use_ik_limit_x","ik_min_x","ik_max_x","use_ik_limit_y","ik_min_y","ik_max_y","use_ik_limit_z","ik_min_z","ik_max_z","use_ik_rotation_control"]},{title:"Deform",closed:!0,from:"Bone",properties:["use_deform","envelope_distance","envelope_weight","use_envelope_multiply","head_radius","tail_radius"]},{title:"Viewport Display",closed:!0,from:"Bone",properties:["hide","hide_select","display_type","color","show_wire"],sub:[{title:"Custom Shape",closed:!0,from:"Pose Bone",properties:["custom_shape","custom_shape_translation","custom_shape_rotation_euler","custom_shape_scale_xyz","use_custom_shape_bone_size","custom_shape_transform"]}]}],e={id:"bone",curated:s},p="selection.inspector",m="Bone",u="properties-bone",d=130,b="object",h=t(e),k=o(e);export{k as default,u as icon,h as match,d as order,p as point,b as railGroup,m as title};
@@ -0,0 +1 @@
1
+ import{b as t,a as i}from"./blender-properties-tab-BmaCGZ2W.js";import"./volter-sdk-Cd88wUVM.js";import"./blender-properties-model-CG1a0urK.js";import"./blender-runtime-host-I70OcA4h.js";import"./output-pass-j4dAGrPY.js";import"./three.module-CtVjCPcj.js";import"./linear-resolve-Cuka7Ypb.js";const o=[{title:"Visibility",properties:["hide_select","hide_render"],sub:[{title:"View Layer",from:"View Layer Collection",properties:["exclude","holdout","indirect_only"]}]},{title:"Instancing",properties:["instance_offset"]},{title:"Line Art",properties:["lineart_usage","lineart_use_intersection_mask","lineart_intersection_mask","use_lineart_intersection_priority","lineart_intersection_priority"]},{title:"Exporters",properties:["exporters"]}],e={id:"collection",curated:o},_="selection.inspector",d="Collection",m="properties-collection",u=60,b="collection",y=i(e),f=t(e);export{f as default,m as icon,y as match,u as order,_ as point,b as railGroup,d as title};