@fps-games/editor 0.2.0-beta.2 → 0.2.0-beta.4

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 (652) hide show
  1. package/dist/agent-bridge/capabilities/assets.js.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  3. package/dist/agent-bridge/capabilities/editor-state.js +26 -17
  4. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  5. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
  6. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  7. package/dist/agent-bridge/capabilities/prefabs.js +61 -13
  8. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  9. package/dist/agent-bridge/capabilities/scene-objects.d.ts +1 -1
  10. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.js +110 -25
  12. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  13. package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
  14. package/dist/agent-bridge/capabilities/selection.js +8 -5
  15. package/dist/agent-bridge/capabilities/selection.js.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  17. package/dist/agent-bridge/capabilities/shadows.js +11 -2
  18. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  19. package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
  20. package/dist/agent-bridge/capabilities/transform.js +6 -4
  21. package/dist/agent-bridge/capabilities/transform.js.map +1 -1
  22. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  23. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  24. package/dist/agent-bridge/capabilities/viewport.js +79 -47
  25. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/diagnostics.js.map +1 -1
  28. package/dist/agent-bridge/index.js.map +1 -1
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +8 -3
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +32 -0
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.js.map +1 -1
  35. package/dist/authoring-apply.js.map +1 -1
  36. package/dist/build-info.json +48 -48
  37. package/dist/editor-plugin-agent-capabilities.js.map +1 -1
  38. package/dist/editor-plugin-hierarchy-command.js.map +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
  41. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  42. package/dist/local-editor-agent-actions.js +9 -5
  43. package/dist/local-editor-agent-actions.js.map +1 -1
  44. package/dist/local-editor-agent-bridge-transport.js.map +1 -1
  45. package/dist/local-editor-agent-bridge.js.map +1 -1
  46. package/dist/local-editor-agent-context.js.map +1 -1
  47. package/dist/local-editor-harness.d.ts +57 -1
  48. package/dist/local-editor-harness.d.ts.map +1 -1
  49. package/dist/local-editor-harness.js +393 -41
  50. package/dist/local-editor-harness.js.map +1 -1
  51. package/dist/local-editor-marker-graph.js.map +1 -1
  52. package/dist/local-editor-performance-stats.js.map +1 -1
  53. package/dist/local-editor-plugin-inspector.js.map +1 -1
  54. package/dist/local-editor-plugin-panel.js.map +1 -1
  55. package/dist/local-editor-scene-render-scheduler.js.map +1 -1
  56. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  57. package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
  58. package/dist/playable-babylon-facade.js.map +1 -1
  59. package/dist/playable-babylon-outline-inspector.js.map +1 -1
  60. package/dist/playable-babylon-outline-runtime.js.map +1 -1
  61. package/dist/playable-babylon-rendering.js.map +1 -1
  62. package/dist/playable-local-editor-host.d.ts +36 -0
  63. package/dist/playable-local-editor-host.d.ts.map +1 -1
  64. package/dist/playable-local-editor-host.js.map +1 -1
  65. package/dist/playable-product-local-editor.js.map +1 -1
  66. package/dist/playable-product-projection-preview.js.map +1 -1
  67. package/dist/playable-product-rendering.js.map +1 -1
  68. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  69. package/dist/playable-product-scene-capabilities.js +49 -2
  70. package/dist/playable-product-scene-capabilities.js.map +1 -1
  71. package/dist/playable-runtime-babylon.js.map +1 -1
  72. package/dist/playable-runtime.js.map +1 -1
  73. package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
  74. package/dist/playable-sdk-vite.js.map +1 -1
  75. package/dist/playable-sdk.js.map +1 -1
  76. package/dist/playable-standard-project.js.map +1 -1
  77. package/dist/static-shadow-cpu-worker.js.map +1 -1
  78. package/dist/vite.js.map +1 -1
  79. package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
  80. package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
  81. package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
  82. package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
  83. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  84. package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
  85. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
  86. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
  87. package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
  88. package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
  89. package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
  90. package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
  91. package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
  92. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  93. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  94. package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
  95. package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
  96. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  97. package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
  98. package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
  99. package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
  100. package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
  101. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
  102. package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
  103. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  104. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
  105. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
  106. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
  107. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
  108. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
  109. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
  110. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
  111. package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
  112. package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
  113. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  114. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  115. package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
  116. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  117. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  118. package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
  119. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  120. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
  121. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
  122. package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
  123. package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
  124. package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
  125. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  126. package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
  127. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  128. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  129. package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
  130. package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
  131. package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
  132. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
  137. package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  142. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
  143. package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
  144. package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
  145. package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
  146. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  147. package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
  148. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  149. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
  150. package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
  151. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  152. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  153. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  154. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  155. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +260 -94
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +7 -0
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +1 -0
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +186 -0
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +1 -0
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +2 -2
  177. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -1
  178. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +14 -8
  179. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
  180. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
  181. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +23 -7
  182. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  183. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  184. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  185. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  186. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +6 -0
  187. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  188. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
  189. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  190. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +60 -13
  191. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  192. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  193. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  194. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  195. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
  196. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  197. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  198. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  199. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  200. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +24 -0
  201. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
  202. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +69 -0
  203. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
  204. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
  205. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  206. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
  207. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
  208. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  209. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  210. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +58 -14
  211. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  213. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  214. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
  215. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +196 -11
  217. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  218. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  219. package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
  220. package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
  221. package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
  222. package/node_modules/@fps-games/editor-browser/package.json +4 -4
  223. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
  224. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
  225. package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
  226. package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
  227. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  228. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +9 -1
  229. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  230. package/node_modules/@fps-games/editor-core/dist/editor-session.js +18 -0
  231. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  232. package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
  233. package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
  235. package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
  236. package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
  237. package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
  238. package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
  239. package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
  240. package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
  241. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  242. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  243. package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
  244. package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
  245. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  246. package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
  247. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
  248. package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
  249. package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
  250. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
  251. package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
  252. package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
  253. package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
  254. package/node_modules/@fps-games/editor-core/package.json +6 -6
  255. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
  256. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  257. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
  341. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  342. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  343. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  344. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
  345. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
  346. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
  347. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
  348. package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
  349. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  350. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
  351. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
  352. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  353. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
  354. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
  355. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
  356. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
  357. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
  358. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
  359. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
  360. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
  361. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
  362. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
  363. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
  364. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
  365. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
  366. package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
  367. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
  368. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
  369. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
  370. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
  371. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
  372. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
  373. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
  374. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
  375. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
  376. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
  377. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
  378. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
  379. package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
  380. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
  381. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  382. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  383. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  384. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
  385. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  386. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  387. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
  388. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  389. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  390. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  391. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
  392. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
  393. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  394. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
  395. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  396. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
  397. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  398. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
  399. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
  400. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
  401. package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
  402. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  403. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  404. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
  405. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
  406. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
  407. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
  408. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
  409. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
  410. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  411. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
  412. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
  413. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
  414. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
  415. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
  416. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
  417. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
  418. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  419. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  420. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
  421. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  422. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
  423. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
  424. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
  425. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
  426. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  427. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
  428. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
  429. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  430. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
  431. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
  432. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
  433. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
  434. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  435. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
  436. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  437. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
  438. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
  439. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
  440. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
  441. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  442. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  443. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  444. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  445. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  446. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
  447. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
  448. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  449. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
  450. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
  451. package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
  452. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
  453. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  454. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  455. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
  456. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  457. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
  458. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  459. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  460. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  461. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
  462. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  463. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
  464. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
  465. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  466. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
  467. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  468. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
  469. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
  470. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
  471. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  472. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  473. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
  474. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  475. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  476. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  477. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  478. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
  479. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  480. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
  481. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  482. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
  483. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  484. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  485. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
  486. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
  487. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
  488. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  489. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
  490. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
  491. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
  492. package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
  493. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  494. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
  503. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  504. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
  505. package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
  506. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
  507. package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
  508. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
  509. package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
  510. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
  511. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
  512. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  513. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
  514. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
  515. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
  516. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
  517. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
  518. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
  519. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
  520. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
  521. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
  522. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
  523. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  524. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  525. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  526. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
  527. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
  528. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
  529. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
  530. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
  531. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
  532. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  533. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
  534. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  535. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
  536. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  537. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  538. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
  539. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  540. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
  541. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  542. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
  543. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  544. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
  545. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  546. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
  547. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
  548. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
  549. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
  550. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  551. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
  552. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  553. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
  554. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
  555. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  556. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  557. package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
  558. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  559. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
  560. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
  561. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  562. package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
  563. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  564. package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
  565. package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
  566. package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
  567. package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
  568. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  569. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  570. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  571. package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
  572. package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
  573. package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
  574. package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
  575. package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
  576. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
  577. package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
  578. package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
  579. package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
  580. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  581. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  582. package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
  583. package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
  584. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  585. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  586. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
  587. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
  588. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  589. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
  590. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
  591. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  592. package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
  593. package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
  594. package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
  595. package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
  596. package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
  597. package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
  598. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  599. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  600. package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
  601. package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
  602. package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
  603. package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
  604. package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
  605. package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
  606. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  607. package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
  608. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  609. package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
  610. package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
  611. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  612. package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
  613. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  614. package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
  615. package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
  616. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  617. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  618. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  619. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  620. package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
  621. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  622. package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
  623. package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
  624. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  625. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  626. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  627. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  628. package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
  629. package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
  630. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  631. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  632. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  633. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  634. package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
  635. package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
  636. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  637. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  638. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  639. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  640. package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
  641. package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
  642. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  643. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  644. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  645. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  646. package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
  647. package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
  648. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  649. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  650. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  651. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  652. package/package.json +27 -19
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-ui-hierarchy-controller.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-editor-ui-hierarchy-controller.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SelectionCommand } from '@fps-games/editor-core';\nimport {\n createLocalEditorHierarchyBlankMenu,\n createLocalEditorHierarchyCopyShortcutAction,\n createLocalEditorHierarchyDeleteShortcutAction,\n createLocalEditorHierarchyDuplicateShortcutAction,\n createLocalEditorHierarchyNodeMenu,\n createLocalEditorHierarchyPasteShortcutAction,\n createLocalEditorHierarchySelectAllShortcutAction,\n type LocalEditorHierarchyAction,\n} from './local-editor-ui-hierarchy-actions';\nimport {\n canLocalEditorHierarchyNodeHaveChildren,\n canLocalEditorHierarchyNodeRename,\n canLocalEditorHierarchyNodeToggleEnabled,\n createLocalEditorHierarchyTreeModel,\n type LocalEditorHierarchyDropResolution,\n isLocalEditorHierarchyNodeSelectable,\n isLocalEditorHierarchyNodeMovable,\n type LocalEditorHierarchyTreeModel,\n type LocalEditorHierarchyTreeNode,\n} from './local-editor-ui-hierarchy-tree';\nimport {\n resolveLocalEditorHierarchyDragOperation,\n type LocalEditorHierarchyDragLayout,\n type LocalEditorHierarchyDragLayoutRow,\n type LocalEditorHierarchyDragOperation,\n type LocalEditorHierarchyDropPreview,\n} from './local-editor-ui-hierarchy-drag-policy';\nimport {\n resolveLocalEditorHierarchyAutoScroll,\n} from './local-editor-ui-hierarchy-auto-scroll';\nimport {\n clearLocalEditorStructuredDragSession,\n createLocalEditorStructuredDragSession,\n hasLocalEditorStructuredDragSessionFeedback,\n} from './local-editor-ui-structured-drag-session';\nimport {\n renderLocalEditorHierarchyPanel,\n syncLocalEditorHierarchyDropPreview,\n} from './local-editor-ui-hierarchy-view';\nimport {\n createLocalEditorActiveHierarchyScope,\n} from './local-editor-ui-hierarchy-scope';\nimport {\n createLocalEditorHierarchyProjection,\n isLocalEditorHierarchyProjectionCurrent,\n} from './local-editor-ui-hierarchy-projection';\nimport {\n resolveLocalEditorHierarchyCommandAdapter,\n} from './local-editor-ui-hierarchy-command-adapter';\nimport {\n createLocalEditorViewportRevealController,\n} from './local-editor-ui-dock-panel';\nimport {\n createLocalEditorHierarchyAttachDialog,\n type LocalEditorHierarchyAttachConfirmResult,\n type LocalEditorHierarchyAttachTargetSelection,\n} from './local-editor-ui-hierarchy-attach-dialog';\nimport type { LocalEditorContextMenuController } from './local-editor-ui-context-menu';\nimport type { LocalEditorWorkbenchInputRouter } from './local-editor-ui-input-router';\nimport type {\n LocalEditorBrowserAssetActionInput,\n LocalEditorBrowserSceneGraphDropIntent,\n LocalEditorBrowserSceneGraphDropPlacement,\n LocalEditorBrowserSceneGraphActionResponse,\n LocalEditorBrowserHierarchyContextActionRegistration,\n LocalEditorBrowserHierarchyCommandPrecondition,\n LocalEditorBrowserHierarchyScope,\n LocalEditorBrowserUiCallbacks,\n LocalEditorBrowserUiState,\n LocalEditorContextAction,\n} from './local-editor-ui-types';\n\nconst HIERARCHY_DRAG_INDENT_WIDTH = 16;\n\nexport interface LocalEditorHierarchyController<TDocument = unknown> {\n render(state: LocalEditorBrowserUiState<TDocument>): void;\n handleEditShortcut(event: KeyboardEvent): boolean;\n handleDeleteShortcut(event: KeyboardEvent): boolean;\n dispose(): void;\n}\n\nexport interface LocalEditorHierarchyControllerOptions<TDocument = unknown> {\n doc: Document;\n panel: HTMLElement;\n callbacks: LocalEditorBrowserUiCallbacks;\n inputRouter: LocalEditorWorkbenchInputRouter;\n contextMenu: LocalEditorContextMenuController;\n getState: () => LocalEditorBrowserUiState<TDocument> | null;\n requestRender: () => void;\n onBeforeOpenContextMenu?: () => void;\n contextActions?: readonly LocalEditorBrowserHierarchyContextActionRegistration<TDocument>[];\n}\n\nexport function resolveLocalEditorHierarchyCreateMarkerParentId(\n activeNode: LocalEditorHierarchyTreeNode | null,\n): string | null {\n return activeNode && activeNode.item.canHaveChildren === true && activeNode.item.role !== 'marker'\n ? activeNode.id\n : null;\n}\n\nexport function resolveLocalEditorHierarchyToolbarActiveId(\n scope: Pick<LocalEditorBrowserHierarchyScope, 'nodes' | 'activeId'>,\n): string | null {\n return scope.activeId && scope.nodes.some(node => node.id === scope.activeId)\n ? scope.activeId\n : null;\n}\n\nexport function createLocalEditorHierarchyController<TDocument = unknown>(\n options: LocalEditorHierarchyControllerOptions<TDocument>,\n): LocalEditorHierarchyController<TDocument> {\n const { doc, panel, callbacks, inputRouter, contextMenu, getState, requestRender } = options;\n const collapsedIdsByScope = new Map<string, Set<string>>();\n const hierarchySearchByScope = new Map<string, string>();\n let hierarchyRename: {\n id: string;\n value: string;\n initialValue: string;\n commandTargetId: string;\n precondition: LocalEditorBrowserHierarchyCommandPrecondition;\n } | null = null;\n let hierarchyDrag: { id: string; precondition: LocalEditorBrowserHierarchyCommandPrecondition } | null = null;\n let hierarchyDrop: LocalEditorBrowserSceneGraphDropIntent | null = null;\n let hierarchyRootDrop = false;\n const hierarchyDragSession = createLocalEditorStructuredDragSession<\n LocalEditorHierarchyDragOperation,\n LocalEditorHierarchyDropPreview\n >();\n let hierarchyShortcutScopeActive = false;\n let hierarchyClipboard: { ids: string[]; activeId: string | null } | null = null;\n let hierarchySearchComposing = false;\n let currentModel: LocalEditorHierarchyTreeModel | null = null;\n let lastRenderedActiveId: string | null | undefined;\n let lastRenderedScopeId: string | null | undefined;\n let lastRenderedDocumentRevision: number | null = null;\n let lastRenderedProjectionRevision: number | null = null;\n let lastRenderedCommandPrecondition: LocalEditorBrowserHierarchyCommandPrecondition | null = null;\n let attachDialogPrecondition: LocalEditorBrowserHierarchyCommandPrecondition | null = null;\n let pendingHierarchyScrollId: string | null = null;\n let hierarchySelectionAnchorId: string | null = null;\n const attachDialog = createLocalEditorHierarchyAttachDialog({\n doc,\n getTheme: resolveActiveTheme,\n onOpenChange: open => inputRouter.setModalOpen(open, 'hierarchy-attach'),\n onConfirm: selection => submitAttachSelection(selection),\n });\n const treeViewportReveal = createLocalEditorViewportRevealController<string>({\n getViewport: findHierarchyTreeViewport,\n margin: 4,\n });\n\n const getModel = (state: LocalEditorBrowserUiState<TDocument>): LocalEditorHierarchyTreeModel => {\n if (currentModel) return currentModel;\n currentModel = createModel(state);\n return currentModel;\n };\n\n const render = (state: LocalEditorBrowserUiState<TDocument>): void => {\n const rawScope = resolveScope(state);\n const projection = isLocalEditorHierarchyProjectionCurrent(state.hierarchyProjection, rawScope)\n ? state.hierarchyProjection\n : createLocalEditorHierarchyProjection(rawScope);\n const scope: LocalEditorBrowserHierarchyScope = {\n ...rawScope,\n nodes: projection.nodes,\n selectedIds: projection.selectedIds,\n activeId: projection.activeId,\n readonly: rawScope.readonly || !projection.interactive,\n commandSurface: projection.interactive ? rawScope.commandSurface : 'readonly',\n };\n const projectionChanged = lastRenderedScopeId != null && (\n scope.scopeId !== lastRenderedScopeId\n || scope.documentRevision !== lastRenderedDocumentRevision\n || scope.projectionRevision !== lastRenderedProjectionRevision\n );\n if (projectionChanged) resetHierarchyTransientState();\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n if (hierarchyRename && !scope.nodes.some(item => item.id === hierarchyRename?.id)) hierarchyRename = null;\n const scopeChanged = scope.scopeId !== lastRenderedScopeId;\n const activeIdChanged = scope.activeId !== lastRenderedActiveId || scopeChanged;\n const treeScrollSnapshot = treeViewportReveal.captureScrollSnapshot();\n if (activeIdChanged) {\n pendingHierarchyScrollId = null;\n expandActiveHierarchyPath(state, scope);\n }\n currentModel = createModel(state, scope);\n if (hierarchySelectionAnchorId && !currentModel.getNode(hierarchySelectionAnchorId)) {\n hierarchySelectionAnchorId = null;\n }\n renderLocalEditorHierarchyPanel(doc, panel, {\n model: currentModel,\n rename: hierarchyRename,\n drop: hierarchyDrop,\n dropPreview: hierarchyDragSession.preview,\n rootDrop: hierarchyRootDrop,\n searchQuery: getScopeSearch(scope.scopeId),\n title: scope.title,\n searchPlaceholder: scope.searchPlaceholder,\n showCreateGroup: commandAdapter.showCreateGroupToolbar,\n showCreateMarker: commandAdapter.kind === 'scene',\n });\n treeViewportReveal.restoreScrollSnapshot(treeScrollSnapshot);\n const suppressActiveScroll = scope.activeId\n ? treeViewportReveal.consumeRevealSuppression(scope.activeId, { clearWhenDifferent: activeIdChanged })\n : false;\n if (activeIdChanged && scope.activeId && !suppressActiveScroll && shouldAutoScrollActiveHierarchyNode()) {\n scheduleActiveHierarchyScroll(scope.activeId);\n }\n lastRenderedActiveId = scope.activeId;\n lastRenderedScopeId = scope.scopeId;\n lastRenderedDocumentRevision = scope.documentRevision;\n lastRenderedProjectionRevision = scope.projectionRevision;\n lastRenderedCommandPrecondition = createHierarchyCommandPrecondition(scope);\n };\n\n const onClick = (event: MouseEvent): void => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-hierarchy-rename-input]')) return;\n if (target?.closest('input[data-editor-hierarchy-search]')) {\n clearSelectionFromSearchClick(event);\n return;\n }\n const enabledToggle = target?.closest<HTMLElement>('[data-editor-hierarchy-enabled-toggle]');\n const enabledToggleId = enabledToggle?.dataset.editorHierarchyEnabledToggle;\n if (enabledToggleId) {\n event.preventDefault();\n event.stopPropagation();\n toggleHierarchyItemEnabled(enabledToggleId, enabledToggle);\n return;\n }\n const toggle = target?.closest<HTMLElement>('[data-editor-hierarchy-toggle]')?.dataset.editorHierarchyToggle;\n if (toggle) {\n event.preventDefault();\n event.stopPropagation();\n toggleExpanded(toggle);\n return;\n }\n const createGroupButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-create-group]');\n if (createGroupButton) {\n const state = getState();\n if (!state) return;\n const scope = resolveScope(state);\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface !== 'scene-graph') return;\n const parentId = resolveLocalEditorHierarchyToolbarActiveId(scope);\n if (parentId) expandNode(parentId);\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return;\n callbacks.onSceneGraphCreateGroup?.({\n parentId,\n activeId: parentId,\n name: 'Empty',\n }, precondition);\n return;\n }\n const createMarkerButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-create-marker]');\n if (createMarkerButton) {\n event.preventDefault();\n event.stopPropagation();\n createHierarchyMarkerFromButton();\n return;\n }\n const hierarchyButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const hierarchyId = hierarchyButton?.dataset.editorHierarchyId;\n if (hierarchyId) {\n if (treeViewportReveal.isElementVisible(hierarchyButton)) {\n treeViewportReveal.suppressNextReveal(hierarchyId);\n }\n event.preventDefault();\n event.stopPropagation();\n selectHierarchyItemFromClick(hierarchyId, event);\n return;\n }\n if (shouldClearSelectionFromBlankClick(event, target)) {\n event.preventDefault();\n hierarchySelectionAnchorId = null;\n submitSelectionCommand({ type: 'selection.clear', label: 'Clear Selection' }, getState() ?? undefined);\n }\n };\n\n const onContextMenu = (event: MouseEvent): void => {\n openHierarchyContextMenu(event);\n };\n\n const onDocumentPointerDown = (event: PointerEvent): void => {\n hierarchyShortcutScopeActive = isEventInsideHierarchyPanel(event);\n };\n\n const onDocumentFocusIn = (event: FocusEvent): void => {\n hierarchyShortcutScopeActive = isEventInsideHierarchyPanel(event);\n };\n\n const onDoubleClick = (event: MouseEvent): void => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-hierarchy-toggle]')) return;\n const hierarchyButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const id = hierarchyButton?.dataset.editorHierarchyId;\n if (!id) return;\n event.preventDefault();\n event.stopPropagation();\n hierarchySelectionAnchorId = id;\n selectSingleHierarchyItem(id);\n if (resolveScopeForCurrentState()?.kind === 'scene') callbacks.onFocusSelection?.();\n };\n\n const onInput = (event: Event): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n hierarchySearchByScope.set(scopeId, input.value);\n if (!hierarchySearchComposing && !isComposingInputEvent(event)) requestRender();\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput || !hierarchyRename) return;\n hierarchyRename = {\n id: input.dataset.editorHierarchyRenameInput,\n value: input.value,\n initialValue: hierarchyRename.initialValue,\n commandTargetId: hierarchyRename.commandTargetId,\n precondition: hierarchyRename.precondition,\n };\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n if (event.isComposing || hierarchySearchComposing) return;\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n if (event.key !== 'Escape' || getScopeSearch(scopeId).length === 0) return;\n event.preventDefault();\n hierarchySearchByScope.set(scopeId, '');\n requestRender();\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput) return;\n if (event.key === 'Enter') {\n event.preventDefault();\n commitHierarchyRename(input.dataset.editorHierarchyRenameInput, input.value);\n return;\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n hierarchyRename = null;\n requestRender();\n }\n };\n\n const onCompositionStart = (event: CompositionEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch == null) return;\n hierarchySearchComposing = true;\n };\n\n const onCompositionEnd = (event: CompositionEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch == null) return;\n hierarchySearchComposing = false;\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n hierarchySearchByScope.set(scopeId, input.value);\n requestRender();\n };\n\n const onFocusOut = (event: FocusEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (!input?.dataset.editorHierarchyRenameInput) return;\n commitHierarchyRename(input.dataset.editorHierarchyRenameInput, input.value);\n };\n\n const onDragStart = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const button = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const id = button?.dataset.editorHierarchyId;\n if (!id || !state) return;\n if (!resolveHierarchyCommandAdapter(resolveScope(state)).menuCapabilities.hasMoveHandler) {\n event.preventDefault();\n return;\n }\n const model = getModel(state);\n const node = model.getNode(id);\n if (!isLocalEditorHierarchyNodeMovable(node)) {\n event.preventDefault();\n return;\n }\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) {\n event.preventDefault();\n return;\n }\n hierarchyDrag = { id, precondition };\n const draggedIds = resolveDraggedIds(state, model, id);\n event.dataTransfer?.setData('text/plain', draggedIds.join(','));\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n };\n\n const onDragOver = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const draggedIds = readDraggedIds(event);\n if (!state || draggedIds.length === 0) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!resolveHierarchyCommandAdapter(resolveScope(state)).menuCapabilities.hasMoveHandler) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const model = getModel(state);\n if (!isInsideHierarchyTreeViewport(target)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n hierarchyDragSession.pointer = { x: event.clientX, y: event.clientY };\n updateHierarchyAutoScroll();\n const operation = resolveHierarchyDragOperation(event, model, draggedIds);\n if (!operation || operation.status === 'idle') {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n event.preventDefault();\n hierarchyDragSession.operation = operation;\n const canSubmitDrop = operation.status === 'valid'\n && (!!callbacks.onSceneGraphMove || operation.slot?.placement === 'inside');\n if (event.dataTransfer) event.dataTransfer.dropEffect = canSubmitDrop ? 'move' : 'none';\n if (operation.status !== 'valid' || !operation.slot || !operation.resolution?.ok) {\n hierarchyDragSession.preview = operation.preview;\n hierarchyDrop = null;\n hierarchyRootDrop = false;\n syncHierarchyDropPreview();\n return;\n }\n if (operation.slot.placement === 'root') {\n hierarchyDragSession.preview = operation.preview;\n hierarchyDrop = null;\n hierarchyRootDrop = true;\n syncHierarchyDropPreview();\n return;\n }\n const targetId = operation.slot.targetId;\n if (!targetId) return;\n const nextDrop = {\n draggedId: operation.resolution.draggedIds[0] ?? draggedIds[0]!,\n targetId,\n placement: operation.slot.placement,\n preserveWorldTransform: true,\n };\n hierarchyDragSession.preview = operation.preview;\n hierarchyDrop = nextDrop;\n hierarchyRootDrop = false;\n syncHierarchyDropPreview();\n };\n\n const onDragLeave = (event: DragEvent): void => {\n if (!panel.contains(event.relatedTarget as Node | null)) {\n clearHierarchyDragFeedback();\n requestRender();\n }\n };\n\n const onDragEnd = (): void => {\n hierarchyDrag = null;\n clearHierarchyDragFeedback();\n requestRender();\n };\n\n const onDrop = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const activeDrag = hierarchyDrag;\n const draggedIds = readDraggedIds(event);\n if (!state || !activeDrag || draggedIds.length === 0) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const scope = resolveScope(state);\n if (!resolveHierarchyCommandAdapter(scope).menuCapabilities.hasMoveHandler) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const model = getModel(state);\n if (!isInsideHierarchyTreeViewport(target)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const operation = hierarchyDragSession.operation ?? resolveHierarchyDragOperation(event, model, draggedIds);\n if (!operation || operation.status !== 'valid' || !operation.slot || !operation.resolution?.ok) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n event.preventDefault();\n const dropPrecondition = activeDrag.precondition;\n hierarchyDrag = null;\n clearHierarchyDragFeedback();\n if (operation.slot.placement === 'root') {\n if (scope.commandSurface === 'prefab-composition') {\n requestRender();\n return;\n }\n submitResolvedRootDrop(operation.resolution, dropPrecondition);\n return;\n }\n const targetId = operation.slot.targetId;\n if (!targetId) {\n requestRender();\n return;\n }\n expandDropParent(operation.resolution);\n if (scope.commandSurface === 'prefab-composition') {\n if (operation.slot.placement !== 'inside') {\n requestRender();\n return;\n }\n if (dropPrecondition) {\n submitPrefabNodeReparent(\n scope,\n operation.resolution.draggedIds[0] ?? draggedIds[0]!,\n targetId,\n dropPrecondition,\n );\n }\n requestRender();\n return;\n }\n submitResolvedDrop(operation.resolution, targetId, operation.slot.placement, draggedIds, dropPrecondition);\n };\n\n panel.addEventListener('click', onClick);\n panel.addEventListener('contextmenu', onContextMenu);\n panel.addEventListener('dblclick', onDoubleClick);\n panel.addEventListener('input', onInput);\n panel.addEventListener('keydown', onKeyDown);\n panel.addEventListener('compositionstart', onCompositionStart);\n panel.addEventListener('compositionend', onCompositionEnd);\n panel.addEventListener('focusout', onFocusOut);\n panel.addEventListener('dragstart', onDragStart);\n panel.addEventListener('dragover', onDragOver);\n panel.addEventListener('dragleave', onDragLeave);\n panel.addEventListener('dragend', onDragEnd);\n panel.addEventListener('drop', onDrop);\n doc.addEventListener('pointerdown', onDocumentPointerDown, { capture: true });\n doc.addEventListener('focusin', onDocumentFocusIn, { capture: true });\n\n return {\n render,\n handleDeleteShortcut(event) {\n return handleDeleteShortcut(event);\n },\n handleEditShortcut(event) {\n return handleEditShortcut(event);\n },\n dispose() {\n clearHierarchyDragFeedback();\n panel.removeEventListener('click', onClick);\n panel.removeEventListener('contextmenu', onContextMenu);\n panel.removeEventListener('dblclick', onDoubleClick);\n panel.removeEventListener('input', onInput);\n panel.removeEventListener('keydown', onKeyDown);\n panel.removeEventListener('compositionstart', onCompositionStart);\n panel.removeEventListener('compositionend', onCompositionEnd);\n panel.removeEventListener('focusout', onFocusOut);\n panel.removeEventListener('dragstart', onDragStart);\n panel.removeEventListener('dragover', onDragOver);\n panel.removeEventListener('dragleave', onDragLeave);\n panel.removeEventListener('dragend', onDragEnd);\n panel.removeEventListener('drop', onDrop);\n doc.removeEventListener('pointerdown', onDocumentPointerDown, { capture: true });\n doc.removeEventListener('focusin', onDocumentFocusIn, { capture: true });\n attachDialog.dispose();\n },\n };\n\n function handleDeleteShortcut(event: KeyboardEvent): boolean {\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n if (scope.kind !== 'scene') return false;\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n const action = createLocalEditorHierarchyDeleteShortcutAction({\n state,\n model: getModel(state),\n ...commandAdapter.menuCapabilities,\n });\n if (!action) return false;\n event.preventDefault();\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return false;\n submitHierarchyAction(action, precondition);\n return true;\n }\n\n function handleEditShortcut(event: KeyboardEvent): boolean {\n const key = event.key.toLowerCase();\n if (key === 'delete' || key === 'backspace') return handleDeleteShortcut(event);\n if (event.altKey || (!event.metaKey && !event.ctrlKey)) return false;\n if (key === 'a' && (event.shiftKey || !isHierarchyShortcutScope(event))) return false;\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n if (scope.kind !== 'scene') return false;\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n const input = {\n state,\n model: getModel(state),\n clipboardIds: hierarchyClipboard?.ids ?? null,\n clipboardActiveId: hierarchyClipboard?.activeId ?? null,\n ...commandAdapter.menuCapabilities,\n };\n const action = key === 'd'\n ? createLocalEditorHierarchyDuplicateShortcutAction(input)\n : key === 'c'\n ? createLocalEditorHierarchyCopyShortcutAction(input)\n : key === 'v'\n ? createLocalEditorHierarchyPasteShortcutAction(input)\n : key === 'a'\n ? createLocalEditorHierarchySelectAllShortcutAction(input)\n : null;\n if (!action) return false;\n event.preventDefault();\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return false;\n submitHierarchyAction(action, precondition);\n return true;\n }\n\n function isComposingInputEvent(event: Event): boolean {\n return (event as Event & { isComposing?: boolean }).isComposing === true;\n }\n\n function resolveScope(state: LocalEditorBrowserUiState<TDocument>): LocalEditorBrowserHierarchyScope {\n const scope = createLocalEditorActiveHierarchyScope(state);\n const projection = isLocalEditorHierarchyProjectionCurrent(state.hierarchyProjection, scope)\n ? state.hierarchyProjection\n : createLocalEditorHierarchyProjection(scope);\n return {\n ...scope,\n nodes: projection.nodes,\n selectedIds: projection.selectedIds,\n activeId: projection.activeId,\n readonly: scope.readonly || !projection.interactive,\n commandSurface: projection.interactive ? scope.commandSurface : 'readonly',\n };\n }\n\n function hasCurrentHierarchyProjection(scope: LocalEditorBrowserHierarchyScope): boolean {\n return scope.scopeId === lastRenderedScopeId\n && scope.documentRevision === lastRenderedDocumentRevision\n && scope.projectionRevision === lastRenderedProjectionRevision;\n }\n\n function resolveScopeForCurrentState(): LocalEditorBrowserHierarchyScope | null {\n const state = getState();\n return state ? resolveScope(state) : null;\n }\n\n function getScopeCollapsedIds(scopeId: string): Set<string> {\n const existing = collapsedIdsByScope.get(scopeId);\n if (existing) return existing;\n const created = new Set<string>();\n collapsedIdsByScope.set(scopeId, created);\n return created;\n }\n\n function getScopeSearch(scopeId: string): string {\n return hierarchySearchByScope.get(scopeId) ?? '';\n }\n\n function createModel(\n state: LocalEditorBrowserUiState<TDocument>,\n scope = resolveScope(state),\n ): LocalEditorHierarchyTreeModel {\n return createLocalEditorHierarchyTreeModel(scope.nodes, scope.selectedIds, scope.activeId, {\n collapsedIds: getScopeCollapsedIds(scope.scopeId),\n defaultExpanded: true,\n });\n }\n\n function selectHierarchyItemFromClick(id: string, event: MouseEvent): void {\n const scope = resolveScopeForCurrentState();\n const precondition = lastRenderedCommandPrecondition;\n if (!scope || !precondition) return;\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface === 'readonly') return;\n const toggle = event.metaKey || event.ctrlKey;\n const range = event.shiftKey && !toggle;\n if (range) {\n selectHierarchyVisibleRange(id);\n return;\n }\n hierarchySelectionAnchorId = id;\n if (precondition.scopeId.startsWith('prefab-stage:')) callbacks.onSelectPrefabStageItem?.(id, precondition);\n else callbacks.onSelectHierarchyItem?.({ id, additive: false, toggle }, precondition);\n }\n\n function toggleHierarchyItemEnabled(id: string, toggle: HTMLElement): void {\n if (toggle.dataset.editorHierarchyEnabledToggleDisabled === 'true') return;\n const state = getState();\n if (!state) return;\n const scope = resolveScope(state);\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface !== 'scene-graph') return;\n const node = getModel(state).getNode(id);\n if (!node || !canLocalEditorHierarchyNodeToggleEnabled(node)) return;\n const directEnabled = typeof node.item.directEnabled === 'boolean'\n ? node.item.directEnabled\n : node.item.enabled;\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return;\n callbacks.onHierarchyItemEnabledChange?.({\n id,\n enabled: directEnabled === false,\n }, precondition);\n }\n\n function selectHierarchyVisibleRange(targetId: string): void {\n const state = getState();\n if (!state) {\n selectSingleHierarchyItem(targetId);\n hierarchySelectionAnchorId = targetId;\n return;\n }\n const scope = resolveScope(state);\n if (scope.kind !== 'scene') {\n hierarchySelectionAnchorId = targetId;\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return;\n callbacks.onSelectPrefabStageItem?.(targetId, precondition);\n return;\n }\n const model = getModel(state);\n const anchorId = hierarchySelectionAnchorId ?? scope.activeId ?? targetId;\n const selectedIds = model.getVisibleRangeSelection(anchorId, targetId);\n if (selectedIds.length === 0) {\n hierarchySelectionAnchorId = targetId;\n selectSingleHierarchyItem(targetId);\n return;\n }\n const activeId = selectedIds.includes(targetId)\n ? targetId\n : selectedIds[selectedIds.length - 1] ?? null;\n submitSelectionCommand({\n type: 'selection.replace',\n label: 'Select Hierarchy Range',\n selectedIds,\n activeId,\n }, state);\n }\n\n function resolveDraggedIds(\n state: LocalEditorBrowserUiState<TDocument>,\n model: LocalEditorHierarchyTreeModel,\n draggedId: string,\n ): string[] {\n const scope = resolveScope(state);\n const selectedIds = scope.selectedIds.includes(draggedId) ? scope.selectedIds : [draggedId];\n return model.getTopLevelSelection(selectedIds);\n }\n\n function readDraggedIds(event: DragEvent): string[] {\n const dataTransferIds = event.dataTransfer?.getData('text/plain')\n .split(',')\n .map(id => id.trim())\n .filter(Boolean) ?? [];\n return dataTransferIds.length > 0 ? dataTransferIds : hierarchyDrag?.id ? [hierarchyDrag.id] : [];\n }\n\n function submitResolvedRootDrop(\n resolved: LocalEditorHierarchyDropResolution,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition | null,\n ): void {\n const state = getState();\n if (!state) return;\n const scope = resolveScope(state);\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface !== 'scene-graph') return;\n if (!precondition) return;\n callbacks.onSceneGraphMove?.({\n ids: resolved.draggedIds,\n targetId: null,\n placement: 'root',\n preserveWorldTransform: true,\n }, precondition);\n requestRender();\n }\n\n function toggleExpanded(id: string): void {\n const scope = resolveScopeForCurrentState();\n const collapsedIds = getScopeCollapsedIds(scope?.scopeId ?? 'scene');\n if (collapsedIds.has(id)) collapsedIds.delete(id);\n else collapsedIds.add(id);\n requestRender();\n }\n\n function expandNode(id: string | null | undefined): void {\n if (!id) return;\n const scope = resolveScopeForCurrentState();\n getScopeCollapsedIds(scope?.scopeId ?? 'scene').delete(id);\n }\n\n function expandActiveHierarchyPath(\n state: LocalEditorBrowserUiState<TDocument>,\n scope = resolveScope(state),\n ): void {\n if (!scope.activeId) return;\n const model = createModel(state, scope);\n if (!model.getNode(scope.activeId)) return;\n const collapsedIds = getScopeCollapsedIds(scope.scopeId);\n for (const ancestor of model.getAncestors(scope.activeId)) {\n collapsedIds.delete(ancestor.id);\n }\n }\n\n function shouldAutoScrollActiveHierarchyNode(): boolean {\n return !hierarchyRename && !hierarchyDrag && !hasHierarchyDragFeedback();\n }\n\n function scheduleActiveHierarchyScroll(activeId: string): void {\n pendingHierarchyScrollId = activeId;\n setTimeout(() => {\n if (pendingHierarchyScrollId !== activeId) return;\n pendingHierarchyScrollId = null;\n const row = findHierarchyRow(activeId);\n if (!row) return;\n const viewport = findHierarchyTreeViewport();\n if (viewport) {\n treeViewportReveal.revealElement(row, { behavior: 'smooth' });\n return;\n }\n try {\n row.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } catch {\n row.scrollIntoView();\n }\n }, 0);\n }\n\n function findHierarchyRow(id: string): HTMLElement | null {\n for (const row of panel.querySelectorAll<HTMLElement>('[data-editor-hierarchy-id]')) {\n if (row.dataset.editorHierarchyId === id) return row;\n }\n return null;\n }\n\n function findHierarchyTreeViewport(): HTMLElement | null {\n return panel.querySelector<HTMLElement>('[data-editor-hierarchy-tree-viewport]');\n }\n\n function isInsideHierarchyTreeViewport(target: HTMLElement | null): boolean {\n return !!target?.closest('[data-editor-hierarchy-tree-viewport]');\n }\n\n function armHierarchyAutoScroll(): void {\n if (hierarchyDragSession.autoScrollFrame !== null) return;\n hierarchyDragSession.autoScrollFrame = doc.defaultView?.requestAnimationFrame(tickHierarchyAutoScroll) ?? null;\n }\n\n function stopHierarchyAutoScroll(): void {\n if (hierarchyDragSession.autoScrollFrame !== null) {\n doc.defaultView?.cancelAnimationFrame(hierarchyDragSession.autoScrollFrame);\n }\n hierarchyDragSession.autoScrollFrame = null;\n }\n\n function clearHierarchyDragFeedback(): void {\n hierarchyDrop = null;\n hierarchyRootDrop = false;\n stopHierarchyAutoScroll();\n clearLocalEditorStructuredDragSession(hierarchyDragSession);\n }\n\n function resetHierarchyTransientState(): void {\n hierarchyRename = null;\n hierarchyDrag = null;\n hierarchySelectionAnchorId = null;\n hierarchyClipboard = null;\n hierarchySearchComposing = false;\n pendingHierarchyScrollId = null;\n attachDialogPrecondition = null;\n clearHierarchyDragFeedback();\n attachDialog.close();\n contextMenu.close();\n }\n\n function hasHierarchyDragFeedback(): boolean {\n return hierarchyDrop !== null\n || hierarchyRootDrop\n || hasLocalEditorStructuredDragSessionFeedback(hierarchyDragSession);\n }\n\n function clearHierarchyDragFeedbackAndRender(): void {\n const hadFeedback = hasHierarchyDragFeedback();\n clearHierarchyDragFeedback();\n if (hadFeedback) syncHierarchyDropPreview();\n }\n\n function syncHierarchyDropPreview(): void {\n syncLocalEditorHierarchyDropPreview(doc, panel, {\n dropPreview: hierarchyDragSession.preview,\n rootDrop: hierarchyRootDrop,\n });\n }\n\n function tickHierarchyAutoScroll(): void {\n hierarchyDragSession.autoScrollFrame = null;\n if (!hierarchyDragSession.pointer) return;\n const viewport = findHierarchyTreeViewport();\n if (!viewport) return;\n const rect = viewport.getBoundingClientRect();\n const scroll = resolveLocalEditorHierarchyAutoScroll({\n pointerY: hierarchyDragSession.pointer.y,\n viewportTop: rect.top,\n viewportBottom: rect.bottom,\n viewportHeight: rect.height,\n scrollTop: viewport.scrollTop,\n scrollHeight: viewport.scrollHeight,\n clientHeight: viewport.clientHeight,\n });\n if (scroll.speed !== 0) {\n viewport.scrollTop += scroll.speed;\n requestRender();\n armHierarchyAutoScroll();\n }\n }\n\n function updateHierarchyAutoScroll(): void {\n const viewport = findHierarchyTreeViewport();\n if (!viewport || !hierarchyDragSession.pointer) {\n stopHierarchyAutoScroll();\n return;\n }\n const rect = viewport.getBoundingClientRect();\n const scroll = resolveLocalEditorHierarchyAutoScroll({\n pointerY: hierarchyDragSession.pointer.y,\n viewportTop: rect.top,\n viewportBottom: rect.bottom,\n viewportHeight: rect.height,\n scrollTop: viewport.scrollTop,\n scrollHeight: viewport.scrollHeight,\n clientHeight: viewport.clientHeight,\n });\n if (scroll.speed === 0) {\n stopHierarchyAutoScroll();\n return;\n }\n armHierarchyAutoScroll();\n }\n\n function resolveHierarchyDragOperation(\n event: DragEvent,\n model: LocalEditorHierarchyTreeModel,\n draggedIds: readonly string[],\n ): LocalEditorHierarchyDragOperation | null {\n const layout = createHierarchyDragLayout(model);\n if (!layout) return null;\n return resolveLocalEditorHierarchyDragOperation({\n layout,\n pointer: { x: event.clientX, y: event.clientY },\n draggedIds,\n resolveDrop: model.resolveDrop.bind(model),\n });\n }\n\n function createHierarchyDragLayout(model: LocalEditorHierarchyTreeModel): LocalEditorHierarchyDragLayout | null {\n const viewport = findHierarchyTreeViewport();\n if (!viewport) return null;\n const viewportRect = viewport.getBoundingClientRect();\n const rows: LocalEditorHierarchyDragLayoutRow[] = [];\n for (const element of panel.querySelectorAll<HTMLElement>('[data-editor-hierarchy-id]')) {\n const id = element.dataset.editorHierarchyId;\n const node = model.getNode(id);\n if (!id || !node) continue;\n const rect = element.getBoundingClientRect();\n rows.push({\n id,\n depth: node.depth,\n parentId: node.parentId,\n canHaveChildren: canLocalEditorHierarchyNodeHaveChildren(node),\n rect: {\n left: rect.left,\n top: rect.top,\n width: rect.width,\n height: rect.height,\n },\n });\n }\n rows.sort((left, right) => left.rect.top - right.rect.top);\n return {\n rows,\n viewport: {\n left: viewportRect.left,\n top: viewportRect.top,\n width: viewportRect.width,\n height: viewportRect.height,\n },\n indentWidth: HIERARCHY_DRAG_INDENT_WIDTH,\n };\n }\n\n function expandDropParent(resolved: LocalEditorHierarchyDropResolution): void {\n if (resolved.placement === 'inside') expandNode(resolved.parentId);\n }\n\n function commitHierarchyRename(id: string, value: string): void {\n if (!hierarchyRename || hierarchyRename.id !== id) return;\n const precondition = hierarchyRename.precondition;\n const initialValue = hierarchyRename.initialValue;\n const commandTargetId = hierarchyRename.commandTargetId;\n const trimmed = value.trim();\n const state = getState();\n const scope = state ? resolveScope(state) : null;\n hierarchyRename = null;\n if (trimmed && trimmed !== initialValue) {\n if (!precondition.scopeId.startsWith('prefab-stage:')) {\n callbacks.onSceneGraphRename?.({ id, name: trimmed }, precondition);\n } else if (scope) {\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.rename', commandTargetId, {\n value: trimmed,\n }, precondition));\n }\n }\n requestRender();\n }\n\n function openHierarchyContextMenu(event: MouseEvent): void {\n const target = inputRouter.claimContextMenu(event);\n const hadHierarchyFeedback = hasHierarchyDragFeedback();\n hierarchyDrag = null;\n clearHierarchyDragFeedback();\n if (!target) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n const initialState = getState();\n if (!initialState || initialState.mode !== 'editor' || initialState.busy) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n const initialScope = resolveScope(initialState);\n const initialPrecondition = lastRenderedCommandPrecondition;\n if (!initialPrecondition) return;\n const initialModel = getModel(initialState);\n const hierarchyButton = target.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const requestedNodeId = hierarchyButton?.dataset.editorHierarchyId;\n const initialNode = initialModel.getNode(requestedNodeId);\n if (initialNode && !initialScope.selectedIds.includes(initialNode.id) && isLocalEditorHierarchyNodeSelectable(initialNode)) {\n hierarchySelectionAnchorId = initialNode.id;\n if (initialScope.kind === 'prefab-stage') callbacks.onSelectPrefabStageItem?.(initialNode.id, initialPrecondition);\n else callbacks.onSelectHierarchyItem?.({ id: initialNode.id, additive: false, toggle: false }, initialPrecondition);\n }\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) return;\n const scope = resolveScope(state);\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return;\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n const model = getModel(state);\n const node = model.getNode(requestedNodeId);\n if (!commandAdapter.canOpenContextMenu) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n options.onBeforeOpenContextMenu?.();\n const menuState = createScopedHierarchyMenuState(state, scope);\n const menu = node\n ? createLocalEditorHierarchyNodeMenu({\n state: menuState,\n model,\n node,\n clipboardIds: hierarchyClipboard?.ids ?? null,\n clipboardActiveId: hierarchyClipboard?.activeId ?? null,\n ...commandAdapter.menuCapabilities,\n contextActions: options.contextActions,\n })\n : createLocalEditorHierarchyBlankMenu({\n state: menuState,\n model,\n clipboardIds: hierarchyClipboard?.ids ?? null,\n clipboardActiveId: hierarchyClipboard?.activeId ?? null,\n ...commandAdapter.menuCapabilities,\n contextActions: options.contextActions,\n });\n const menuItems = commandAdapter.filterMenuItems(menu.items);\n if (menuItems.length === 0) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n\n contextMenu.open({\n x: event.clientX,\n y: event.clientY,\n items: menuItems,\n onAction(item) {\n const action = menu.actions.get(item.id);\n if (action) submitHierarchyAction(action, precondition);\n },\n });\n if (hadHierarchyFeedback) requestRender();\n }\n\n function createHierarchyMarkerFromButton(): void {\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) return;\n const scope = resolveScope(state);\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface !== 'scene-graph') return;\n const precondition = lastRenderedCommandPrecondition;\n if (!precondition) return;\n const model = getModel(state);\n const toolbarActiveId = resolveLocalEditorHierarchyToolbarActiveId(scope);\n const activeNode = model.getNode(toolbarActiveId);\n const parentId = resolveLocalEditorHierarchyCreateMarkerParentId(activeNode);\n if (parentId) expandNode(parentId);\n callbacks.onSceneGraphCreateMarker?.({\n parentId,\n activeId: parentId ?? toolbarActiveId,\n name: 'Marker',\n }, precondition);\n requestRender();\n }\n\n function submitHierarchyAction(\n action: LocalEditorHierarchyAction,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): void {\n const state = getState();\n if (!state || !precondition) return;\n const scope = resolveScope(state);\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface === 'readonly') return;\n if (action.kind === 'begin-rename') {\n beginHierarchyRename(action.targetId, precondition);\n return;\n }\n if (action.kind === 'copy-selection') {\n hierarchyClipboard = {\n ids: action.targetIds,\n activeId: action.activeId && action.targetIds.includes(action.activeId)\n ? action.activeId\n : action.targetIds[action.targetIds.length - 1] ?? null,\n };\n return;\n }\n if (action.kind === 'group-selection') {\n callbacks.onSceneGraphGroupSelection?.(action.intent, precondition);\n return;\n }\n if (action.kind === 'open-attach-picker') {\n openAttachPicker(action.targetIds, action.activeId, precondition);\n return;\n }\n if (action.kind === 'selection-command') {\n submitSelectionCommand(action.command, state, precondition);\n return;\n }\n submitHierarchyContextAction(action.action, precondition);\n }\n\n function createScopedHierarchyMenuState(\n state: LocalEditorBrowserUiState<TDocument>,\n scope: LocalEditorBrowserHierarchyScope,\n ): LocalEditorBrowserUiState<TDocument> {\n return {\n ...state,\n hierarchy: scope.nodes,\n selectedIds: scope.selectedIds,\n activeId: scope.activeId,\n };\n }\n\n function submitSelectionCommand(\n command: SelectionCommand,\n state = getState() ?? undefined,\n precondition = lastRenderedCommandPrecondition,\n ): void {\n if (!state) return;\n const scope = resolveScope(state);\n if (!precondition) return;\n if (hasCurrentHierarchyProjection(scope) && scope.kind !== 'scene') return;\n callbacks.onSelectionCommand?.(command, precondition);\n }\n\n function openAttachPicker(\n targetIds: readonly string[],\n activeId: string | null,\n precondition = lastRenderedCommandPrecondition,\n ): void {\n const state = getState();\n if (!state || !precondition || state.mode !== 'editor' || state.busy || targetIds.length === 0) return;\n if (!resolveHierarchyCommandAdapter(resolveScope(state)).menuCapabilities.hasMoveHandler) return;\n attachDialogPrecondition = precondition;\n attachDialog.open({\n model: getModel(state),\n targetIds,\n activeId,\n });\n }\n\n function submitAttachSelection(selection: LocalEditorHierarchyAttachTargetSelection): LocalEditorHierarchyAttachConfirmResult {\n const state = getState();\n const precondition = attachDialogPrecondition;\n attachDialogPrecondition = null;\n if (!state || !precondition || state.mode !== 'editor' || state.busy) return { ok: false, reason: 'Editor is not ready.' };\n const scope = resolveScope(state);\n if (scope.commandSurface === 'prefab-composition') {\n return submitPrefabAttachSelection(scope, selection, precondition);\n }\n if (scope.commandSurface !== 'scene-graph') return { ok: false, reason: 'Hierarchy move pipeline is not connected yet.' };\n const ids = selection.resolution.draggedIds;\n if (ids.length === 0) return { ok: false, reason: 'Select one or more movable nodes first.' };\n if (!callbacks.onSceneGraphMove) return { ok: false, reason: 'Hierarchy move pipeline is not connected yet.' };\n if (selection.placement === 'root') {\n const result = normalizeAttachSceneGraphMoveResult(callbacks.onSceneGraphMove({\n ids,\n placement: 'root',\n preserveWorldTransform: true,\n }, precondition));\n requestRender();\n return result;\n }\n if (!selection.targetId) return { ok: false, reason: 'Select a valid target first.' };\n expandNode(selection.targetId);\n const result = normalizeAttachSceneGraphMoveResult(callbacks.onSceneGraphMove({\n ids,\n targetId: selection.targetId,\n placement: 'inside',\n parentId: selection.resolution.parentId,\n beforeId: selection.resolution.beforeId,\n afterId: selection.resolution.afterId,\n preserveWorldTransform: true,\n }, precondition));\n requestRender();\n return result;\n }\n\n function submitPrefabAttachSelection(\n scope: LocalEditorBrowserHierarchyScope,\n selection: LocalEditorHierarchyAttachTargetSelection,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): LocalEditorHierarchyAttachConfirmResult {\n const ids = selection.resolution.draggedIds;\n if (ids.length !== 1) return { ok: false, reason: 'Move one prefab node at a time.' };\n if (selection.placement !== 'inside') return { ok: false, reason: 'Prefab node reparent supports inside placement only.' };\n if (!selection.targetId) return { ok: false, reason: 'Select a valid prefab parent first.' };\n if (!submitPrefabNodeReparent(scope, ids[0], selection.targetId, precondition)) {\n return { ok: false, reason: 'Select valid prefab nodes first.' };\n }\n expandNode(selection.targetId);\n requestRender();\n return { ok: true };\n }\n\n function submitPrefabNodeReparent(\n scope: LocalEditorBrowserHierarchyScope,\n hierarchyId: string,\n parentHierarchyId: string,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): boolean {\n const nodeId = resolvePrefabCommandTargetId(scope, hierarchyId);\n const parentNodeId = resolvePrefabCommandTargetId(scope, parentHierarchyId);\n if (!nodeId || !parentNodeId) return false;\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.reparent', nodeId, {\n parentNodeId,\n }, precondition));\n return true;\n }\n\n function normalizeAttachSceneGraphMoveResult(result: LocalEditorBrowserSceneGraphActionResponse): LocalEditorHierarchyAttachConfirmResult {\n if (typeof result === 'boolean') return { ok: result };\n if (typeof result === 'string') return { ok: false, reason: result };\n if (result && typeof result === 'object') return result;\n return { ok: true };\n }\n\n function shouldClearSelectionFromBlankClick(event: MouseEvent, target: HTMLElement | null): boolean {\n if (event.button !== 0 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) return false;\n if (!target?.closest('[data-editor-hierarchy-root-drop]')) return false;\n if (hierarchyRename || hierarchyDrag || hasHierarchyDragFeedback()) return false;\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n return scope.kind === 'scene' && scope.selectedIds.length > 0;\n }\n\n function clearSelectionFromSearchClick(event: MouseEvent): void {\n if (event.button !== 0 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) return;\n const state = getState();\n if (!state || resolveScope(state).kind !== 'scene' || state.selectedIds.length === 0) return;\n hierarchySelectionAnchorId = null;\n submitSelectionCommand({ type: 'selection.clear', label: 'Clear Selection' }, state);\n }\n\n function isHierarchyShortcutScope(event: KeyboardEvent): boolean {\n const target = event.target instanceof Node ? event.target : null;\n const activeElement = doc.activeElement;\n return hierarchyShortcutScopeActive\n || (target !== null && panel.contains(target))\n || (activeElement !== null && panel.contains(activeElement));\n }\n\n function isEventInsideHierarchyPanel(event: Event): boolean {\n const target = event.target instanceof Node ? event.target : null;\n return target !== null && panel.contains(target);\n }\n\n function submitHierarchyContextAction(\n action: LocalEditorContextAction,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): void {\n if (action.action === 'rename') return;\n const scope = resolveScopeForCurrentState();\n if (!scope) return;\n const current = hasCurrentHierarchyProjection(scope);\n if (precondition.scopeId.startsWith('prefab-stage:')) {\n if (current && scope.commandSurface !== 'prefab-composition') return;\n submitPrefabHierarchyContextAction(scope, action, precondition);\n return;\n }\n if (current && scope.commandSurface !== 'scene-graph') return;\n if (action.action === 'create-group' || action.action === 'create-primitive' || action.action === 'create-marker') {\n expandNode(action.parentId);\n }\n if (callbacks.onContextAction) {\n callbacks.onContextAction(action, precondition);\n return;\n }\n if (action.action === 'focus') callbacks.onFocusSelection?.();\n else if (action.action === 'duplicate') {\n callbacks.onSceneGraphDuplicate?.({\n targetIds: action.targetIds,\n activeId: action.activeId ?? null,\n }, precondition);\n } else if (action.action === 'paste') {\n callbacks.onSceneGraphDuplicate?.({\n targetIds: action.sourceIds,\n activeId: action.activeId ?? null,\n }, precondition);\n }\n else if (action.action === 'create-group') {\n callbacks.onSceneGraphCreateGroup?.({\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n name: 'Empty',\n }, precondition);\n } else if (action.action === 'create-marker') {\n callbacks.onSceneGraphCreateMarker?.({\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n markerType: action.markerType,\n name: action.name,\n }, precondition);\n } else if (action.action === 'create-primitive') {\n callbacks.onSceneGraphCreatePrimitive?.({\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n shape: action.shape,\n name: action.name,\n }, precondition);\n } else if (action.action === 'delete') {\n callbacks.onSceneGraphDelete?.({\n ids: action.targetIds,\n activeId: action.activeId ?? null,\n }, precondition);\n }\n }\n\n function submitPrefabHierarchyContextAction(\n scope: LocalEditorBrowserHierarchyScope,\n action: LocalEditorContextAction,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): void {\n if (action.action === 'focus') {\n const targetId = action.activeId ?? action.targetIds[0] ?? null;\n if (targetId) callbacks.onSelectPrefabStageItem?.(targetId, precondition);\n return;\n }\n if (action.action === 'create-primitive') {\n if (action.parentId) expandNode(action.parentId);\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.createPrimitive', resolvePrefabCommandTargetId(scope, action.parentId ?? scope.activeId), {\n primitiveShape: action.shape,\n }, precondition));\n return;\n }\n if (action.action === 'create-group') {\n if (action.parentId) expandNode(action.parentId);\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.createGroup', resolvePrefabCommandTargetId(scope, action.parentId ?? scope.activeId), {\n value: { name: 'Empty' },\n }, precondition));\n return;\n }\n if (action.action === 'delete') {\n const nodeId = action.activeId && action.targetIds.includes(action.activeId)\n ? action.activeId\n : action.targetIds[0] ?? null;\n if (!nodeId) return;\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(\n scope,\n 'prefab.node.delete',\n resolvePrefabCommandTargetId(scope, nodeId),\n {},\n precondition,\n ));\n }\n }\n\n function resolvePrefabCommandTargetId(\n scope: LocalEditorBrowserHierarchyScope,\n hierarchyId: string | null | undefined,\n ): string | null {\n if (!hierarchyId) return null;\n const node = scope.nodes.find(candidate => candidate.id === hierarchyId);\n return node?.commandTargetId ?? hierarchyId;\n }\n\n function createPrefabNodeAssetAction(\n scope: LocalEditorBrowserHierarchyScope,\n actionId: string,\n nodeId: string | null | undefined,\n extra: Partial<LocalEditorBrowserAssetActionInput> = {},\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): LocalEditorBrowserAssetActionInput {\n const stageAssetId = precondition.scopeId.startsWith('prefab-stage:')\n ? precondition.scopeId.slice('prefab-stage:'.length)\n : undefined;\n return {\n actionId,\n assetId: stageAssetId,\n browserAssetId: stageAssetId ? `prefab:${stageAssetId}` : undefined,\n assetKind: 'prefab',\n targetPrefabAssetId: stageAssetId,\n hierarchyPrecondition: precondition,\n ...(nodeId ? { nodeId, parentNodeId: nodeId } : {}),\n ...extra,\n };\n }\n\n function resolveHierarchyCommandAdapter(scope: LocalEditorBrowserHierarchyScope) {\n return resolveLocalEditorHierarchyCommandAdapter(scope, {\n hasDuplicateHandler: typeof callbacks.onSceneGraphDuplicate === 'function',\n hasMoveHandler: typeof callbacks.onSceneGraphMove === 'function',\n hasGroupSelectionHandler: typeof callbacks.onSceneGraphGroupSelection === 'function',\n });\n }\n\n function resolveActiveTheme(): 'dark' | 'light' | undefined {\n const themed = panel.closest<HTMLElement>('.fps-editor-workbench[data-fps-editor-theme]');\n const theme = themed?.dataset.fpsEditorTheme;\n return theme === 'light' || theme === 'dark' ? theme : undefined;\n }\n\n function beginHierarchyRename(\n id: string,\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n ): void {\n const state = getState();\n const scope = state ? resolveScope(state) : null;\n const model = state ? getModel(state) : null;\n const node = model?.getNode(id) ?? null;\n if (!node || !canLocalEditorHierarchyNodeRename(node)) return;\n hierarchyRename = {\n id,\n value: node.label,\n initialValue: node.label,\n commandTargetId: scope?.nodes.find(candidate => candidate.id === id)?.commandTargetId ?? id,\n precondition,\n };\n requestRender();\n }\n\n function selectSingleHierarchyItem(id: string): void {\n const scope = resolveScopeForCurrentState();\n const precondition = lastRenderedCommandPrecondition;\n if (!scope || !precondition) return;\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface === 'readonly') return;\n if (precondition.scopeId.startsWith('prefab-stage:')) callbacks.onSelectPrefabStageItem?.(id, precondition);\n else callbacks.onSelectHierarchyItem?.({ id, additive: false, toggle: false }, precondition);\n }\n\n function submitResolvedDrop(\n resolved: LocalEditorHierarchyDropResolution,\n targetId: string,\n placement: LocalEditorBrowserSceneGraphDropPlacement,\n draggedIds: readonly string[],\n precondition: LocalEditorBrowserHierarchyCommandPrecondition | null,\n ): void {\n const scope = resolveScopeForCurrentState();\n if (!scope) return;\n if (hasCurrentHierarchyProjection(scope) && scope.commandSurface !== 'scene-graph') return;\n if (!precondition) return;\n if (callbacks.onSceneGraphMove) {\n callbacks.onSceneGraphMove({\n ids: resolved.draggedIds,\n targetId,\n placement,\n parentId: resolved.parentId,\n beforeId: resolved.beforeId,\n afterId: resolved.afterId,\n preserveWorldTransform: true,\n }, precondition);\n } else if (placement === 'inside') {\n callbacks.onSceneGraphDrop?.({\n draggedId: resolved.draggedIds[0] ?? draggedIds[0]!,\n targetId,\n placement,\n preserveWorldTransform: true,\n }, precondition);\n } else {\n requestRender();\n }\n }\n\n function createHierarchyCommandPrecondition(\n scope: LocalEditorBrowserHierarchyScope,\n ): LocalEditorBrowserHierarchyCommandPrecondition {\n return {\n scopeId: scope.scopeId,\n documentRevision: scope.documentRevision,\n projectionRevision: scope.projectionRevision,\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-ui-hierarchy-drag-policy.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-drag-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,oCAAoC,GAMrC,MAAM,0CAA0C,CAAC;AAmDlD,MAAM,UAAU,wCAAwC,CACtD,KAAoD;IAEpD,MAAM,SAAS,GAAG,yCAAyC,CAAC;QAC1D,MAAM,EAAE,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC;QAChE,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;KAC/C,CAAC,CAAC;IACH,OAAO,SAA8C,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAAsC,EACtC,OAAwC;IAExC,OAAO,oCAAoC,CACzC,+BAA+B,CAAC,MAAM,CAAC,EACvC,OAAO,CAC+B,CAAC;AAC3C,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAsC;IAC7E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"local-editor-ui-hierarchy-drag-policy.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-drag-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,oCAAoC,GAMrC,MAAM,0CAA0C,CAAC;AAmDlD,MAAM,UAAU,wCAAwC,CACtD,KAAoD;IAEpD,MAAM,SAAS,GAAG,yCAAyC,CAAC;QAC1D,MAAM,EAAE,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC;QAChE,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;KAC/C,CAAC,CAAC;IACH,OAAO,SAA8C,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAAsC,EACtC,OAAwC;IAExC,OAAO,oCAAoC,CACzC,+BAA+B,CAAC,MAAM,CAAC,EACvC,OAAO,CAC+B,CAAC;AAC3C,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAsC;IAC7E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC","sourcesContent":["import {\n resolveLocalEditorStructuredDragOperation,\n resolveLocalEditorStructuredDropSlot,\n type LocalEditorStructuredDragLayout,\n type LocalEditorStructuredDragPointer,\n type LocalEditorStructuredDropPreview,\n type LocalEditorStructuredDropSlot,\n type LocalEditorStructuredDropSlotKind,\n} from './local-editor-ui-structured-drag-policy';\nimport type {\n LocalEditorHierarchyDropInput,\n LocalEditorHierarchyDropPlacement,\n LocalEditorHierarchyDropResolution,\n} from './local-editor-ui-hierarchy-tree';\n\nexport interface LocalEditorHierarchyDragRect {\n left: number;\n top: number;\n width: number;\n height: number;\n}\n\nexport interface LocalEditorHierarchyDragLayoutRow {\n id: string;\n depth: number;\n parentId: string | null;\n canHaveChildren: boolean;\n rect: LocalEditorHierarchyDragRect;\n}\n\nexport interface LocalEditorHierarchyDragLayout {\n rows: readonly LocalEditorHierarchyDragLayoutRow[];\n viewport: LocalEditorHierarchyDragRect;\n indentWidth: number;\n}\n\nexport type LocalEditorHierarchyDragPointer = LocalEditorStructuredDragPointer;\nexport type LocalEditorHierarchyDropSlotKind = LocalEditorStructuredDropSlotKind;\nexport type LocalEditorHierarchyDropSlot = LocalEditorStructuredDropSlot & {\n placement: LocalEditorHierarchyDropPlacement;\n};\nexport type LocalEditorHierarchyDropPreview = LocalEditorStructuredDropPreview & {\n placement: LocalEditorHierarchyDropPlacement;\n};\n\nexport interface LocalEditorHierarchyDragOperation {\n status: 'valid' | 'invalid' | 'idle';\n slot: LocalEditorHierarchyDropSlot | null;\n preview: LocalEditorHierarchyDropPreview | null;\n resolution: LocalEditorHierarchyDropResolution | null;\n}\n\nexport interface ResolveLocalEditorHierarchyDragOperationInput {\n layout: LocalEditorHierarchyDragLayout;\n pointer: LocalEditorHierarchyDragPointer;\n draggedIds: readonly string[];\n resolveDrop(input: LocalEditorHierarchyDropInput): LocalEditorHierarchyDropResolution;\n}\n\nexport function resolveLocalEditorHierarchyDragOperation(\n input: ResolveLocalEditorHierarchyDragOperationInput,\n): LocalEditorHierarchyDragOperation {\n const operation = resolveLocalEditorStructuredDragOperation({\n layout: toStructuredHierarchyDragLayout(input.layout),\n pointer: input.pointer,\n draggedIds: input.draggedIds,\n resolveDrop: structuredDrop => input.resolveDrop(structuredDrop),\n isResolutionValid: resolution => resolution.ok,\n });\n return operation as LocalEditorHierarchyDragOperation;\n}\n\nexport function resolveLocalEditorHierarchyDropSlot(\n layout: LocalEditorHierarchyDragLayout,\n pointer: LocalEditorHierarchyDragPointer,\n): LocalEditorHierarchyDropSlot | null {\n return resolveLocalEditorStructuredDropSlot(\n toStructuredHierarchyDragLayout(layout),\n pointer,\n ) as LocalEditorHierarchyDropSlot | null;\n}\n\nfunction toStructuredHierarchyDragLayout(layout: LocalEditorHierarchyDragLayout): LocalEditorStructuredDragLayout {\n return {\n viewport: layout.viewport,\n indentWidth: layout.indentWidth,\n items: layout.rows.map(row => ({\n id: row.id,\n depth: row.depth,\n parentId: row.parentId,\n canAcceptInside: row.canHaveChildren,\n rect: row.rect,\n })),\n };\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { LocalEditorBrowserHierarchyCommandPrecondition, LocalEditorBrowserHierarchyProjectionState, LocalEditorBrowserHierarchyScope, LocalEditorBrowserStatusDiagnostic } from './local-editor-ui-types';
2
+ export declare function isLocalEditorHierarchyCommandPreconditionCurrent(precondition: LocalEditorBrowserHierarchyCommandPrecondition, expected: LocalEditorBrowserHierarchyCommandPrecondition): boolean;
3
+ export declare function isLocalEditorHierarchyProjectionCurrent(projection: LocalEditorBrowserHierarchyProjectionState | null | undefined, scope: LocalEditorBrowserHierarchyScope): projection is LocalEditorBrowserHierarchyProjectionState;
4
+ export declare function createLocalEditorHierarchyProjection(scope: LocalEditorBrowserHierarchyScope): LocalEditorBrowserHierarchyProjectionState;
5
+ export declare function formatLocalEditorStatusDiagnostic(diagnostic: LocalEditorBrowserStatusDiagnostic): string;
6
+ export declare function formatLocalEditorStatusDiagnosticDetails(details: Record<string, unknown>): string;
7
+ //# sourceMappingURL=local-editor-ui-hierarchy-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-editor-ui-hierarchy-projection.d.ts","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8CAA8C,EAC9C,0CAA0C,EAE1C,gCAAgC,EAEhC,kCAAkC,EACnC,MAAM,yBAAyB,CAAC;AAEjC,wBAAgB,gDAAgD,CAC9D,YAAY,EAAE,8CAA8C,EAC5D,QAAQ,EAAE,8CAA8C,GACvD,OAAO,CAIT;AAED,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,0CAA0C,GAAG,IAAI,GAAG,SAAS,EACzE,KAAK,EAAE,gCAAgC,GACtC,UAAU,IAAI,0CAA0C,CAI1D;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,gCAAgC,GACtC,0CAA0C,CAwH5C;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,kCAAkC,GAC7C,MAAM,CAaR;AAED,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAMjG"}
@@ -0,0 +1,186 @@
1
+ export function isLocalEditorHierarchyCommandPreconditionCurrent(precondition, expected) {
2
+ return precondition.scopeId === expected.scopeId
3
+ && precondition.documentRevision === expected.documentRevision
4
+ && precondition.projectionRevision === expected.projectionRevision;
5
+ }
6
+ export function isLocalEditorHierarchyProjectionCurrent(projection, scope) {
7
+ return projection?.scopeId === scope.scopeId
8
+ && projection.documentRevision === scope.documentRevision
9
+ && projection.projectionRevision === scope.projectionRevision;
10
+ }
11
+ export function createLocalEditorHierarchyProjection(scope) {
12
+ const diagnostics = [];
13
+ const rowsById = new Map();
14
+ const duplicateRowIds = new Set();
15
+ for (const node of scope.nodes) {
16
+ if (rowsById.has(node.id)) {
17
+ duplicateRowIds.add(node.id);
18
+ diagnostics.push(createDiagnostic(scope, {
19
+ code: 'hierarchy-row-id-duplicate',
20
+ severity: 'error',
21
+ message: `Hierarchy row ID is duplicated: ${node.id}`,
22
+ rowId: node.id,
23
+ }));
24
+ continue;
25
+ }
26
+ rowsById.set(node.id, node);
27
+ }
28
+ const invalidIds = new Set(duplicateRowIds);
29
+ for (const duplicateRowId of duplicateRowIds)
30
+ rowsById.delete(duplicateRowId);
31
+ for (const node of scope.nodes) {
32
+ if (invalidIds.has(node.id))
33
+ continue;
34
+ if (node.parentId != null && !rowsById.has(node.parentId)) {
35
+ invalidIds.add(node.id);
36
+ diagnostics.push(createDiagnostic(scope, {
37
+ code: 'hierarchy-parent-missing',
38
+ severity: 'error',
39
+ message: `Hierarchy row ${node.id} references missing parent ${node.parentId}.`,
40
+ rowId: node.id,
41
+ targetId: node.parentId,
42
+ }));
43
+ }
44
+ }
45
+ for (const node of scope.nodes) {
46
+ const path = new Set();
47
+ let cursor = node;
48
+ while (cursor?.parentId != null) {
49
+ if (path.has(cursor.id)) {
50
+ for (const id of path)
51
+ invalidIds.add(id);
52
+ diagnostics.push(createDiagnostic(scope, {
53
+ code: 'hierarchy-parent-cycle',
54
+ severity: 'error',
55
+ message: `Hierarchy parent cycle includes row ${cursor.id}.`,
56
+ rowId: cursor.id,
57
+ }));
58
+ break;
59
+ }
60
+ path.add(cursor.id);
61
+ cursor = rowsById.get(cursor.parentId);
62
+ }
63
+ }
64
+ propagateInvalidDescendants(scope.nodes, invalidIds);
65
+ const targets = [];
66
+ const targetRows = new Map();
67
+ for (const node of scope.nodes) {
68
+ if (invalidIds.has(node.id))
69
+ continue;
70
+ const targetId = node.commandTargetId?.trim();
71
+ if (!targetId) {
72
+ if (node.commandable === false)
73
+ continue;
74
+ invalidIds.add(node.id);
75
+ diagnostics.push(createDiagnostic(scope, {
76
+ code: 'hierarchy-command-target-missing',
77
+ severity: 'error',
78
+ message: `Hierarchy row ${node.id} has no command target.`,
79
+ rowId: node.id,
80
+ }));
81
+ continue;
82
+ }
83
+ const rows = targetRows.get(targetId) ?? [];
84
+ rows.push(node.id);
85
+ targetRows.set(targetId, rows);
86
+ targets.push({
87
+ rowId: node.id,
88
+ targetId,
89
+ targetKind: node.sourceKind ?? node.role ?? 'object',
90
+ });
91
+ }
92
+ for (const [targetId, rowIds] of targetRows) {
93
+ if (rowIds.length < 2)
94
+ continue;
95
+ for (const rowId of rowIds)
96
+ invalidIds.add(rowId);
97
+ diagnostics.push(createDiagnostic(scope, {
98
+ code: 'hierarchy-command-target-duplicate',
99
+ severity: 'error',
100
+ message: `Hierarchy command target ${targetId} is shared by rows: ${rowIds.join(', ')}.`,
101
+ targetId,
102
+ details: { rowIds },
103
+ }));
104
+ }
105
+ propagateInvalidDescendants(scope.nodes, invalidIds);
106
+ const nodes = scope.nodes.filter(node => !invalidIds.has(node.id));
107
+ const nodeIds = new Set(nodes.map(node => node.id));
108
+ const selectedIds = scope.selectedIds.filter(id => nodeIds.has(id));
109
+ const activeId = scope.activeId && selectedIds.includes(scope.activeId)
110
+ ? scope.activeId
111
+ : selectedIds[selectedIds.length - 1] ?? null;
112
+ const staleSelectionIds = scope.selectedIds.filter(id => !nodeIds.has(id));
113
+ if (staleSelectionIds.length > 0 || scope.activeId !== activeId) {
114
+ diagnostics.push(createDiagnostic(scope, {
115
+ code: 'hierarchy-selection-stale',
116
+ severity: 'warning',
117
+ message: `Hierarchy selection referenced unavailable rows: ${staleSelectionIds.join(', ') || scope.activeId}.`,
118
+ details: { selectedIds: scope.selectedIds, activeId: scope.activeId },
119
+ }));
120
+ }
121
+ return createProjectionResult(scope, nodes, targets.filter(target => nodeIds.has(target.rowId)), diagnostics, true, selectedIds, activeId);
122
+ }
123
+ export function formatLocalEditorStatusDiagnostic(diagnostic) {
124
+ const location = [diagnostic.scopeId, diagnostic.rowId, diagnostic.targetId]
125
+ .filter(Boolean)
126
+ .join(' / ');
127
+ return [
128
+ `[${diagnostic.severity.toUpperCase()}] ${diagnostic.code}`,
129
+ diagnostic.message,
130
+ `Source: ${diagnostic.source}`,
131
+ location ? `Location: ${location}` : '',
132
+ diagnostic.documentRevision != null ? `Document revision: ${diagnostic.documentRevision}` : '',
133
+ diagnostic.projectionRevision != null ? `Projection revision: ${diagnostic.projectionRevision}` : '',
134
+ diagnostic.details ? `Details: ${formatLocalEditorStatusDiagnosticDetails(diagnostic.details)}` : '',
135
+ ].filter(Boolean).join('\n');
136
+ }
137
+ export function formatLocalEditorStatusDiagnosticDetails(details) {
138
+ try {
139
+ return JSON.stringify(details);
140
+ }
141
+ catch {
142
+ return '[unserializable details]';
143
+ }
144
+ }
145
+ function createProjectionResult(scope, nodes, targets, diagnostics, interactive, selectedIds = [], activeId = null) {
146
+ const health = diagnostics.some(item => item.severity === 'error')
147
+ ? 'error'
148
+ : diagnostics.length > 0
149
+ ? 'warning'
150
+ : 'healthy';
151
+ return {
152
+ scopeId: scope.scopeId,
153
+ scopeKind: scope.kind,
154
+ documentRevision: scope.documentRevision,
155
+ projectionRevision: scope.projectionRevision,
156
+ health,
157
+ interactive: interactive && (health !== 'error' || nodes.length > 0),
158
+ nodes,
159
+ selectedIds,
160
+ activeId,
161
+ targets,
162
+ diagnostics,
163
+ };
164
+ }
165
+ function createDiagnostic(scope, input) {
166
+ return {
167
+ ...input,
168
+ source: 'hierarchy-projection',
169
+ scopeId: scope.scopeId,
170
+ documentRevision: scope.documentRevision,
171
+ projectionRevision: scope.projectionRevision,
172
+ };
173
+ }
174
+ function propagateInvalidDescendants(nodes, invalidIds) {
175
+ let changed = true;
176
+ while (changed) {
177
+ changed = false;
178
+ for (const node of nodes) {
179
+ if (invalidIds.has(node.id) || !node.parentId || !invalidIds.has(node.parentId))
180
+ continue;
181
+ invalidIds.add(node.id);
182
+ changed = true;
183
+ }
184
+ }
185
+ }
186
+ //# sourceMappingURL=local-editor-ui-hierarchy-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-editor-ui-hierarchy-projection.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-projection.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n LocalEditorBrowserHierarchyCommandPrecondition,\n LocalEditorBrowserHierarchyProjectionState,\n LocalEditorBrowserHierarchyProjectionTarget,\n LocalEditorBrowserHierarchyScope,\n LocalEditorBrowserHierarchyScopeNode,\n LocalEditorBrowserStatusDiagnostic,\n} from './local-editor-ui-types';\n\nexport function isLocalEditorHierarchyCommandPreconditionCurrent(\n precondition: LocalEditorBrowserHierarchyCommandPrecondition,\n expected: LocalEditorBrowserHierarchyCommandPrecondition,\n): boolean {\n return precondition.scopeId === expected.scopeId\n && precondition.documentRevision === expected.documentRevision\n && precondition.projectionRevision === expected.projectionRevision;\n}\n\nexport function isLocalEditorHierarchyProjectionCurrent(\n projection: LocalEditorBrowserHierarchyProjectionState | null | undefined,\n scope: LocalEditorBrowserHierarchyScope,\n): projection is LocalEditorBrowserHierarchyProjectionState {\n return projection?.scopeId === scope.scopeId\n && projection.documentRevision === scope.documentRevision\n && projection.projectionRevision === scope.projectionRevision;\n}\n\nexport function createLocalEditorHierarchyProjection(\n scope: LocalEditorBrowserHierarchyScope,\n): LocalEditorBrowserHierarchyProjectionState {\n const diagnostics: LocalEditorBrowserStatusDiagnostic[] = [];\n const rowsById = new Map<string, LocalEditorBrowserHierarchyScopeNode>();\n const duplicateRowIds = new Set<string>();\n\n for (const node of scope.nodes) {\n if (rowsById.has(node.id)) {\n duplicateRowIds.add(node.id);\n diagnostics.push(createDiagnostic(scope, {\n code: 'hierarchy-row-id-duplicate',\n severity: 'error',\n message: `Hierarchy row ID is duplicated: ${node.id}`,\n rowId: node.id,\n }));\n continue;\n }\n rowsById.set(node.id, node);\n }\n\n const invalidIds = new Set<string>(duplicateRowIds);\n for (const duplicateRowId of duplicateRowIds) rowsById.delete(duplicateRowId);\n for (const node of scope.nodes) {\n if (invalidIds.has(node.id)) continue;\n if (node.parentId != null && !rowsById.has(node.parentId)) {\n invalidIds.add(node.id);\n diagnostics.push(createDiagnostic(scope, {\n code: 'hierarchy-parent-missing',\n severity: 'error',\n message: `Hierarchy row ${node.id} references missing parent ${node.parentId}.`,\n rowId: node.id,\n targetId: node.parentId,\n }));\n }\n }\n\n for (const node of scope.nodes) {\n const path = new Set<string>();\n let cursor: LocalEditorBrowserHierarchyScopeNode | undefined = node;\n while (cursor?.parentId != null) {\n if (path.has(cursor.id)) {\n for (const id of path) invalidIds.add(id);\n diagnostics.push(createDiagnostic(scope, {\n code: 'hierarchy-parent-cycle',\n severity: 'error',\n message: `Hierarchy parent cycle includes row ${cursor.id}.`,\n rowId: cursor.id,\n }));\n break;\n }\n path.add(cursor.id);\n cursor = rowsById.get(cursor.parentId);\n }\n }\n\n propagateInvalidDescendants(scope.nodes, invalidIds);\n\n const targets: LocalEditorBrowserHierarchyProjectionTarget[] = [];\n const targetRows = new Map<string, string[]>();\n for (const node of scope.nodes) {\n if (invalidIds.has(node.id)) continue;\n const targetId = node.commandTargetId?.trim();\n if (!targetId) {\n if (node.commandable === false) continue;\n invalidIds.add(node.id);\n diagnostics.push(createDiagnostic(scope, {\n code: 'hierarchy-command-target-missing',\n severity: 'error',\n message: `Hierarchy row ${node.id} has no command target.`,\n rowId: node.id,\n }));\n continue;\n }\n const rows = targetRows.get(targetId) ?? [];\n rows.push(node.id);\n targetRows.set(targetId, rows);\n targets.push({\n rowId: node.id,\n targetId,\n targetKind: node.sourceKind ?? node.role ?? 'object',\n });\n }\n\n for (const [targetId, rowIds] of targetRows) {\n if (rowIds.length < 2) continue;\n for (const rowId of rowIds) invalidIds.add(rowId);\n diagnostics.push(createDiagnostic(scope, {\n code: 'hierarchy-command-target-duplicate',\n severity: 'error',\n message: `Hierarchy command target ${targetId} is shared by rows: ${rowIds.join(', ')}.`,\n targetId,\n details: { rowIds },\n }));\n }\n\n propagateInvalidDescendants(scope.nodes, invalidIds);\n const nodes = scope.nodes.filter(node => !invalidIds.has(node.id));\n const nodeIds = new Set(nodes.map(node => node.id));\n const selectedIds = scope.selectedIds.filter(id => nodeIds.has(id));\n const activeId = scope.activeId && selectedIds.includes(scope.activeId)\n ? scope.activeId\n : selectedIds[selectedIds.length - 1] ?? null;\n const staleSelectionIds = scope.selectedIds.filter(id => !nodeIds.has(id));\n if (staleSelectionIds.length > 0 || scope.activeId !== activeId) {\n diagnostics.push(createDiagnostic(scope, {\n code: 'hierarchy-selection-stale',\n severity: 'warning',\n message: `Hierarchy selection referenced unavailable rows: ${staleSelectionIds.join(', ') || scope.activeId}.`,\n details: { selectedIds: scope.selectedIds, activeId: scope.activeId },\n }));\n }\n\n return createProjectionResult(\n scope,\n nodes,\n targets.filter(target => nodeIds.has(target.rowId)),\n diagnostics,\n true,\n selectedIds,\n activeId,\n );\n}\n\nexport function formatLocalEditorStatusDiagnostic(\n diagnostic: LocalEditorBrowserStatusDiagnostic,\n): string {\n const location = [diagnostic.scopeId, diagnostic.rowId, diagnostic.targetId]\n .filter(Boolean)\n .join(' / ');\n return [\n `[${diagnostic.severity.toUpperCase()}] ${diagnostic.code}`,\n diagnostic.message,\n `Source: ${diagnostic.source}`,\n location ? `Location: ${location}` : '',\n diagnostic.documentRevision != null ? `Document revision: ${diagnostic.documentRevision}` : '',\n diagnostic.projectionRevision != null ? `Projection revision: ${diagnostic.projectionRevision}` : '',\n diagnostic.details ? `Details: ${formatLocalEditorStatusDiagnosticDetails(diagnostic.details)}` : '',\n ].filter(Boolean).join('\\n');\n}\n\nexport function formatLocalEditorStatusDiagnosticDetails(details: Record<string, unknown>): string {\n try {\n return JSON.stringify(details);\n } catch {\n return '[unserializable details]';\n }\n}\n\nfunction createProjectionResult(\n scope: LocalEditorBrowserHierarchyScope,\n nodes: LocalEditorBrowserHierarchyScopeNode[],\n targets: LocalEditorBrowserHierarchyProjectionTarget[],\n diagnostics: LocalEditorBrowserStatusDiagnostic[],\n interactive: boolean,\n selectedIds: string[] = [],\n activeId: string | null = null,\n): LocalEditorBrowserHierarchyProjectionState {\n const health = diagnostics.some(item => item.severity === 'error')\n ? 'error'\n : diagnostics.length > 0\n ? 'warning'\n : 'healthy';\n return {\n scopeId: scope.scopeId,\n scopeKind: scope.kind,\n documentRevision: scope.documentRevision,\n projectionRevision: scope.projectionRevision,\n health,\n interactive: interactive && (health !== 'error' || nodes.length > 0),\n nodes,\n selectedIds,\n activeId,\n targets,\n diagnostics,\n };\n}\n\nfunction createDiagnostic(\n scope: LocalEditorBrowserHierarchyScope,\n input: Omit<LocalEditorBrowserStatusDiagnostic, 'source' | 'scopeId' | 'documentRevision' | 'projectionRevision'>,\n): LocalEditorBrowserStatusDiagnostic {\n return {\n ...input,\n source: 'hierarchy-projection',\n scopeId: scope.scopeId,\n documentRevision: scope.documentRevision,\n projectionRevision: scope.projectionRevision,\n };\n}\n\nfunction propagateInvalidDescendants(\n nodes: readonly LocalEditorBrowserHierarchyScopeNode[],\n invalidIds: Set<string>,\n): void {\n let changed = true;\n while (changed) {\n changed = false;\n for (const node of nodes) {\n if (invalidIds.has(node.id) || !node.parentId || !invalidIds.has(node.parentId)) continue;\n invalidIds.add(node.id);\n changed = true;\n }\n }\n}\n"]}