@fps-games/editor 0.2.1-beta.3 → 0.2.1-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 (514) hide show
  1. package/dist/build-info.json +44 -44
  2. package/dist/editor-commands/capabilities/assets.d.ts +8 -0
  3. package/dist/editor-commands/capabilities/assets.d.ts.map +1 -0
  4. package/dist/{agent-bridge → editor-commands}/capabilities/assets.js +41 -41
  5. package/dist/editor-commands/capabilities/assets.js.map +1 -0
  6. package/dist/editor-commands/capabilities/editor-state.d.ts +5 -0
  7. package/dist/editor-commands/capabilities/editor-state.d.ts.map +1 -0
  8. package/dist/{agent-bridge → editor-commands}/capabilities/editor-state.js +22 -22
  9. package/dist/editor-commands/capabilities/editor-state.js.map +1 -0
  10. package/dist/editor-commands/capabilities/hierarchy.d.ts +4 -0
  11. package/dist/editor-commands/capabilities/hierarchy.d.ts.map +1 -0
  12. package/dist/{agent-bridge → editor-commands}/capabilities/hierarchy.js +5 -5
  13. package/dist/editor-commands/capabilities/hierarchy.js.map +1 -0
  14. package/dist/editor-commands/capabilities/host-lifecycle.d.ts +11 -0
  15. package/dist/editor-commands/capabilities/host-lifecycle.d.ts.map +1 -0
  16. package/dist/editor-commands/capabilities/host-lifecycle.js +149 -0
  17. package/dist/editor-commands/capabilities/host-lifecycle.js.map +1 -0
  18. package/dist/editor-commands/capabilities/prefabs.d.ts +5 -0
  19. package/dist/editor-commands/capabilities/prefabs.d.ts.map +1 -0
  20. package/dist/{agent-bridge → editor-commands}/capabilities/prefabs.js +93 -93
  21. package/dist/editor-commands/capabilities/prefabs.js.map +1 -0
  22. package/dist/editor-commands/capabilities/scene-objects.d.ts +8 -0
  23. package/dist/editor-commands/capabilities/scene-objects.d.ts.map +1 -0
  24. package/dist/editor-commands/capabilities/scene-objects.js +480 -0
  25. package/dist/editor-commands/capabilities/scene-objects.js.map +1 -0
  26. package/dist/editor-commands/capabilities/selection.d.ts +5 -0
  27. package/dist/editor-commands/capabilities/selection.d.ts.map +1 -0
  28. package/dist/editor-commands/capabilities/selection.js +60 -0
  29. package/dist/editor-commands/capabilities/selection.js.map +1 -0
  30. package/dist/editor-commands/capabilities/shadows.d.ts +5 -0
  31. package/dist/editor-commands/capabilities/shadows.d.ts.map +1 -0
  32. package/dist/{agent-bridge → editor-commands}/capabilities/shadows.js +74 -74
  33. package/dist/editor-commands/capabilities/shadows.js.map +1 -0
  34. package/dist/editor-commands/capabilities/transform.d.ts +5 -0
  35. package/dist/editor-commands/capabilities/transform.d.ts.map +1 -0
  36. package/dist/editor-commands/capabilities/transform.js +164 -0
  37. package/dist/editor-commands/capabilities/transform.js.map +1 -0
  38. package/dist/editor-commands/capabilities/ui-regions.d.ts +4 -0
  39. package/dist/editor-commands/capabilities/ui-regions.d.ts.map +1 -0
  40. package/dist/{agent-bridge → editor-commands}/capabilities/ui-regions.js +55 -57
  41. package/dist/editor-commands/capabilities/ui-regions.js.map +1 -0
  42. package/dist/editor-commands/capabilities/viewport.d.ts +5 -0
  43. package/dist/editor-commands/capabilities/viewport.d.ts.map +1 -0
  44. package/dist/{agent-bridge → editor-commands}/capabilities/viewport.js +100 -100
  45. package/dist/editor-commands/capabilities/viewport.js.map +1 -0
  46. package/dist/editor-commands/command-sources.d.ts +7 -0
  47. package/dist/editor-commands/command-sources.d.ts.map +1 -0
  48. package/dist/editor-commands/command-sources.js +34 -0
  49. package/dist/editor-commands/command-sources.js.map +1 -0
  50. package/dist/editor-commands/diagnostics.d.ts +12 -0
  51. package/dist/editor-commands/diagnostics.d.ts.map +1 -0
  52. package/dist/{agent-bridge → editor-commands}/diagnostics.js +4 -4
  53. package/dist/editor-commands/diagnostics.js.map +1 -0
  54. package/dist/{agent-bridge → editor-commands}/index.d.ts +1 -1
  55. package/dist/editor-commands/index.d.ts.map +1 -0
  56. package/dist/{agent-bridge → editor-commands}/index.js +1 -1
  57. package/dist/editor-commands/index.js.map +1 -0
  58. package/dist/editor-commands/register.d.ts +4 -0
  59. package/dist/editor-commands/register.d.ts.map +1 -0
  60. package/dist/{agent-bridge → editor-commands}/register.js +323 -286
  61. package/dist/editor-commands/register.js.map +1 -0
  62. package/dist/{agent-bridge → editor-commands}/shared.d.ts +80 -80
  63. package/dist/editor-commands/shared.d.ts.map +1 -0
  64. package/dist/{agent-bridge → editor-commands}/shared.js +29 -29
  65. package/dist/editor-commands/shared.js.map +1 -0
  66. package/dist/editor-commands/source-types.d.ts +110 -0
  67. package/dist/editor-commands/source-types.d.ts.map +1 -0
  68. package/dist/editor-commands/source-types.js.map +1 -0
  69. package/dist/editor-plugin-commands.d.ts +4 -0
  70. package/dist/editor-plugin-commands.d.ts.map +1 -0
  71. package/dist/editor-plugin-commands.js +18 -0
  72. package/dist/editor-plugin-commands.js.map +1 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/local-editor-commands.d.ts +2 -0
  78. package/dist/local-editor-commands.d.ts.map +1 -0
  79. package/dist/local-editor-commands.js +2 -0
  80. package/dist/local-editor-commands.js.map +1 -0
  81. package/dist/local-editor-harness.d.ts +35 -21
  82. package/dist/local-editor-harness.d.ts.map +1 -1
  83. package/dist/local-editor-harness.js +1721 -367
  84. package/dist/local-editor-harness.js.map +1 -1
  85. package/dist/local-editor-prefab-stage-transaction.d.ts +2 -1
  86. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -1
  87. package/dist/local-editor-prefab-stage-transaction.js +6 -5
  88. package/dist/local-editor-prefab-stage-transaction.js.map +1 -1
  89. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  90. package/dist/local-editor-scene-view-interaction-runtime.js +2 -5
  91. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  92. package/dist/playable-local-editor-entry.d.ts +10 -0
  93. package/dist/playable-local-editor-entry.d.ts.map +1 -1
  94. package/dist/playable-local-editor-entry.js +10 -2
  95. package/dist/playable-local-editor-entry.js.map +1 -1
  96. package/dist/playable-local-editor-host.d.ts +3 -32
  97. package/dist/playable-local-editor-host.d.ts.map +1 -1
  98. package/dist/playable-local-editor-host.js +6 -70
  99. package/dist/playable-local-editor-host.js.map +1 -1
  100. package/dist/playable-product-local-editor.d.ts +1 -2
  101. package/dist/playable-product-local-editor.d.ts.map +1 -1
  102. package/dist/playable-product-local-editor.js +0 -1
  103. package/dist/playable-product-local-editor.js.map +1 -1
  104. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  105. package/dist/playable-product-projection-preview.js +1 -1
  106. package/dist/playable-product-projection-preview.js.map +1 -1
  107. package/dist/playable-product-scene-capabilities.d.ts +0 -2
  108. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  109. package/dist/playable-product-scene-capabilities.js +33 -6
  110. package/dist/playable-product-scene-capabilities.js.map +1 -1
  111. package/dist/playable-runtime-babylon.d.ts +4 -0
  112. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  113. package/dist/playable-runtime-babylon.js +4 -0
  114. package/dist/playable-runtime-babylon.js.map +1 -1
  115. package/dist/playable-sdk.d.ts +1 -1
  116. package/dist/playable-sdk.d.ts.map +1 -1
  117. package/dist/playable-sdk.js.map +1 -1
  118. package/dist/playable-standard-project.d.ts +0 -2
  119. package/dist/playable-standard-project.d.ts.map +1 -1
  120. package/dist/playable-standard-project.js +1 -2
  121. package/dist/playable-standard-project.js.map +1 -1
  122. package/dist/project-service-projection.d.ts +16 -0
  123. package/dist/project-service-projection.d.ts.map +1 -0
  124. package/dist/project-service-projection.js +67 -0
  125. package/dist/project-service-projection.js.map +1 -0
  126. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +18 -0
  127. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  128. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +54 -18
  129. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  130. package/node_modules/@fps-games/babylon-renderer/package.json +9 -9
  131. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +1 -0
  132. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  133. package/node_modules/@fps-games/editor-babylon/dist/projection.js +1 -1
  134. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  135. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
  136. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +127 -13
  137. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
  138. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  139. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +66 -1
  140. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  141. package/node_modules/@fps-games/editor-babylon/package.json +6 -6
  142. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts +32 -0
  143. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts.map +1 -0
  144. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js +254 -0
  145. package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js.map +1 -0
  146. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
  147. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  148. package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
  149. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  150. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts +68 -0
  151. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts.map +1 -0
  152. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js +650 -0
  153. package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js.map +1 -0
  154. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +1 -0
  155. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -1
  156. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +22 -0
  157. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -1
  158. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +8 -0
  159. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  160. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +117 -6
  161. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  162. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +14 -1
  163. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  164. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +100 -1
  165. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  166. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -1
  167. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  168. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +75 -2
  169. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  170. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +37 -12
  171. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  172. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  173. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +25 -2
  174. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  175. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +332 -107
  176. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  177. package/node_modules/@fps-games/editor-browser/package.json +7 -7
  178. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts +107 -0
  179. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts.map +1 -0
  180. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js +1211 -0
  181. package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js.map +1 -0
  182. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts +34 -0
  183. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts.map +1 -0
  184. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js +260 -0
  185. package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js.map +1 -0
  186. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts +9 -0
  187. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts.map +1 -0
  188. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js +14 -0
  189. package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js.map +1 -0
  190. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts +18 -0
  191. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts.map +1 -0
  192. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js +113 -0
  193. package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js.map +1 -0
  194. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts +82 -0
  195. package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts.map +1 -0
  196. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js +1098 -0
  197. package/node_modules/@fps-games/editor-core/dist/editor-command-system.js.map +1 -0
  198. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -7
  199. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  200. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +62 -103
  201. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  202. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts +30 -0
  203. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts.map +1 -0
  204. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js +540 -0
  205. package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js.map +1 -0
  206. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts +9 -0
  207. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts.map +1 -0
  208. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js +61 -0
  209. package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js.map +1 -0
  210. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +55 -0
  211. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  212. package/node_modules/@fps-games/editor-core/dist/editor-session.js +247 -6
  213. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  214. package/node_modules/@fps-games/editor-core/dist/index.d.ts +6 -2
  215. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
  216. package/node_modules/@fps-games/editor-core/dist/index.js +6 -2
  217. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  218. package/node_modules/@fps-games/editor-core/package.json +6 -6
  219. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts +0 -1
  220. package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts.map +1 -1
  221. package/node_modules/@fps-games/editor-forge-play/dist/index.js +0 -1
  222. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  223. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  224. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
  225. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
  226. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  227. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +41 -1
  228. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  229. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +27 -1
  230. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  231. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  232. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
  233. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  234. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +214 -7
  235. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  236. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +1 -0
  237. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  238. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +11 -3
  239. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  240. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -4
  241. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  242. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +0 -1
  243. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  244. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  245. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +77 -31
  246. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  247. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +8 -1
  248. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  249. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  250. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts +21 -1
  251. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts.map +1 -1
  252. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js +90 -4
  253. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
  254. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts +27 -1
  255. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
  256. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +161 -1
  257. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
  258. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts +2 -2
  259. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts.map +1 -1
  260. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js +5 -92
  261. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
  262. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts +7 -0
  263. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts.map +1 -1
  264. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js +26 -9
  265. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
  266. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts +9 -0
  267. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
  268. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +19 -8
  269. package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
  270. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts +5 -0
  271. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts.map +1 -1
  272. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js +16 -4
  273. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
  274. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +9 -0
  275. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  276. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +12 -2
  277. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  278. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts +2 -1
  279. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts.map +1 -1
  280. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js +10 -5
  281. package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
  282. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  283. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  284. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +1 -0
  285. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  286. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +17 -82
  287. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  288. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +53 -57
  289. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  290. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.d.ts.map +1 -1
  291. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js +3 -2
  292. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
  293. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts +10 -0
  294. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts.map +1 -0
  295. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js +256 -0
  296. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js.map +1 -0
  297. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  298. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +7 -5
  299. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  300. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  301. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +8 -0
  302. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  303. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +1 -0
  304. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  305. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  306. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +134 -12
  307. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  308. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  309. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +47 -0
  310. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  311. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts +27 -0
  312. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts.map +1 -0
  313. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js +592 -0
  314. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js.map +1 -0
  315. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +3 -1
  316. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
  317. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +2 -1
  318. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
  319. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  320. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +61 -6
  321. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  322. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +0 -2
  323. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  324. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -10
  325. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  326. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  327. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +21 -0
  328. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  329. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts +13 -0
  330. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts.map +1 -0
  331. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js +18 -0
  332. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js.map +1 -0
  333. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts +28 -0
  334. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts.map +1 -0
  335. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js +863 -0
  336. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js.map +1 -0
  337. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +2 -0
  338. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  339. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  340. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  341. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts +1626 -0
  342. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts.map +1 -0
  343. package/node_modules/@fps-games/editor-protocol/dist/{agent-bridge.js → editor-command-capabilities.js} +766 -620
  344. package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.js.map +1 -0
  345. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts +69 -0
  346. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts.map +1 -0
  347. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js +22 -0
  348. package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js.map +1 -0
  349. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts +136 -0
  350. package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts.map +1 -0
  351. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js +2 -0
  352. package/node_modules/@fps-games/editor-protocol/dist/editor-command.js.map +1 -0
  353. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts +225 -0
  354. package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts.map +1 -0
  355. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js +4 -0
  356. package/node_modules/@fps-games/editor-protocol/dist/editor-service.js.map +1 -0
  357. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -3
  358. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  359. package/node_modules/@fps-games/editor-protocol/dist/index.js +6 -3
  360. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  361. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  362. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  363. package/node_modules/@fps-games/editor-ui/package.json +1 -1
  364. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  365. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  366. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  367. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  368. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  369. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  370. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  371. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  372. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  373. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  374. package/node_modules/@fps-games/plugin-assets/package.json +6 -6
  375. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +1 -0
  376. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -1
  377. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +78 -4
  378. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -1
  379. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
  380. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
  381. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
  382. package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
  383. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  384. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  385. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  386. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  387. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  388. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  389. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  390. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  391. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  392. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  393. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  394. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  395. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  396. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  397. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  398. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  399. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  400. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +1 -1
  401. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
  402. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
  403. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
  404. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  405. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  406. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  407. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  408. package/package.json +23 -23
  409. package/dist/agent-bridge/capabilities/assets.d.ts +0 -8
  410. package/dist/agent-bridge/capabilities/assets.d.ts.map +0 -1
  411. package/dist/agent-bridge/capabilities/assets.js.map +0 -1
  412. package/dist/agent-bridge/capabilities/editor-state.d.ts +0 -5
  413. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +0 -1
  414. package/dist/agent-bridge/capabilities/editor-state.js.map +0 -1
  415. package/dist/agent-bridge/capabilities/hierarchy.d.ts +0 -4
  416. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +0 -1
  417. package/dist/agent-bridge/capabilities/hierarchy.js.map +0 -1
  418. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +0 -11
  419. package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +0 -1
  420. package/dist/agent-bridge/capabilities/host-lifecycle.js +0 -149
  421. package/dist/agent-bridge/capabilities/host-lifecycle.js.map +0 -1
  422. package/dist/agent-bridge/capabilities/prefabs.d.ts +0 -5
  423. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +0 -1
  424. package/dist/agent-bridge/capabilities/prefabs.js.map +0 -1
  425. package/dist/agent-bridge/capabilities/scene-objects.d.ts +0 -8
  426. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +0 -1
  427. package/dist/agent-bridge/capabilities/scene-objects.js +0 -480
  428. package/dist/agent-bridge/capabilities/scene-objects.js.map +0 -1
  429. package/dist/agent-bridge/capabilities/selection.d.ts +0 -5
  430. package/dist/agent-bridge/capabilities/selection.d.ts.map +0 -1
  431. package/dist/agent-bridge/capabilities/selection.js +0 -60
  432. package/dist/agent-bridge/capabilities/selection.js.map +0 -1
  433. package/dist/agent-bridge/capabilities/shadows.d.ts +0 -5
  434. package/dist/agent-bridge/capabilities/shadows.d.ts.map +0 -1
  435. package/dist/agent-bridge/capabilities/shadows.js.map +0 -1
  436. package/dist/agent-bridge/capabilities/transform.d.ts +0 -5
  437. package/dist/agent-bridge/capabilities/transform.d.ts.map +0 -1
  438. package/dist/agent-bridge/capabilities/transform.js +0 -164
  439. package/dist/agent-bridge/capabilities/transform.js.map +0 -1
  440. package/dist/agent-bridge/capabilities/ui-regions.d.ts +0 -4
  441. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +0 -1
  442. package/dist/agent-bridge/capabilities/ui-regions.js.map +0 -1
  443. package/dist/agent-bridge/capabilities/viewport.d.ts +0 -5
  444. package/dist/agent-bridge/capabilities/viewport.d.ts.map +0 -1
  445. package/dist/agent-bridge/capabilities/viewport.js.map +0 -1
  446. package/dist/agent-bridge/capability-sources.d.ts +0 -7
  447. package/dist/agent-bridge/capability-sources.d.ts.map +0 -1
  448. package/dist/agent-bridge/capability-sources.js +0 -34
  449. package/dist/agent-bridge/capability-sources.js.map +0 -1
  450. package/dist/agent-bridge/diagnostics.d.ts +0 -12
  451. package/dist/agent-bridge/diagnostics.d.ts.map +0 -1
  452. package/dist/agent-bridge/diagnostics.js.map +0 -1
  453. package/dist/agent-bridge/index.d.ts.map +0 -1
  454. package/dist/agent-bridge/index.js.map +0 -1
  455. package/dist/agent-bridge/register.d.ts +0 -4
  456. package/dist/agent-bridge/register.d.ts.map +0 -1
  457. package/dist/agent-bridge/register.js.map +0 -1
  458. package/dist/agent-bridge/shared.d.ts.map +0 -1
  459. package/dist/agent-bridge/shared.js.map +0 -1
  460. package/dist/agent-bridge/source-types.d.ts +0 -110
  461. package/dist/agent-bridge/source-types.d.ts.map +0 -1
  462. package/dist/agent-bridge/source-types.js.map +0 -1
  463. package/dist/editor-plugin-agent-capabilities.d.ts +0 -4
  464. package/dist/editor-plugin-agent-capabilities.d.ts.map +0 -1
  465. package/dist/editor-plugin-agent-capabilities.js +0 -64
  466. package/dist/editor-plugin-agent-capabilities.js.map +0 -1
  467. package/dist/local-editor-agent-actions.d.ts +0 -43
  468. package/dist/local-editor-agent-actions.d.ts.map +0 -1
  469. package/dist/local-editor-agent-actions.js +0 -321
  470. package/dist/local-editor-agent-actions.js.map +0 -1
  471. package/dist/local-editor-agent-bridge-transport.d.ts +0 -129
  472. package/dist/local-editor-agent-bridge-transport.d.ts.map +0 -1
  473. package/dist/local-editor-agent-bridge-transport.js +0 -403
  474. package/dist/local-editor-agent-bridge-transport.js.map +0 -1
  475. package/dist/local-editor-agent-bridge.d.ts +0 -2
  476. package/dist/local-editor-agent-bridge.d.ts.map +0 -1
  477. package/dist/local-editor-agent-bridge.js +0 -2
  478. package/dist/local-editor-agent-bridge.js.map +0 -1
  479. package/dist/local-editor-agent-context.d.ts +0 -68
  480. package/dist/local-editor-agent-context.d.ts.map +0 -1
  481. package/dist/local-editor-agent-context.js +0 -716
  482. package/dist/local-editor-agent-context.js.map +0 -1
  483. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts +0 -22
  484. package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts.map +0 -1
  485. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js +0 -106
  486. package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +0 -1
  487. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts +0 -17
  488. package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts.map +0 -1
  489. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js +0 -14
  490. package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +0 -1
  491. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +0 -23
  492. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +0 -1
  493. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +0 -47
  494. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +0 -1
  495. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts +0 -112
  496. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts.map +0 -1
  497. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js +0 -159
  498. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +0 -1
  499. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts +0 -15
  500. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts.map +0 -1
  501. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js +0 -76
  502. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +0 -1
  503. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +0 -1622
  504. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +0 -1
  505. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +0 -1
  506. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts +0 -68
  507. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts.map +0 -1
  508. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js +0 -23
  509. package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +0 -1
  510. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +0 -187
  511. package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +0 -1
  512. package/node_modules/@fps-games/editor-protocol/dist/agent.js +0 -5
  513. package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +0 -1
  514. /package/dist/{agent-bridge → editor-commands}/source-types.js +0 -0
@@ -1,6 +1,7 @@
1
1
  import * as LocalEditorPanels from './local-editor-ui-panels.js';
2
2
  import { renderLocalEditorPluginPanel } from './local-editor-ui-plugin-panel.js';
3
3
  import { createLocalEditorHierarchyController } from './local-editor-ui-hierarchy-controller.js';
4
+ import { syncLocalEditorHierarchyLabelPresentation } from './local-editor-ui-hierarchy-view.js';
4
5
  import { createLocalEditorRootOwnership } from './local-editor-root-ownership.js';
5
6
  import { createLocalEditorContextMenuController } from './local-editor-ui-context-menu.js';
6
7
  import { createLocalEditorTooltipController } from './local-editor-ui-tooltip.js';
@@ -13,6 +14,8 @@ import { canSkipLocalEditorPreviewCleanupPass, createLocalEditorPreviewCleanupRe
13
14
  import { LOCAL_EDITOR_BROWSER_INSPECTOR_VEC3_AXES, resolveLocalEditorBrowserInspectorProportionalScaleValues, resolveLocalEditorBrowserInspectorVectorGroupAxisFromPropertyPath, resolveLocalEditorBrowserInspectorVectorGroupPathFromPropertyPath, } from './local-editor-inspector-groups.js';
14
15
  import { DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS, } from '@fps-games/editor-core';
15
16
  import { createEditorUiLayerHost } from '@fps-games/editor-ui';
17
+ import { createLocalEditorCommandServiceClient } from './editor-command-service-client.js';
18
+ import { createLocalEditorCommandCenter, createLocalEditorCommandPresentationCatalog, matchesLocalEditorCommandShortcut, } from './local-editor-command-center.js';
16
19
  import { isEditorProjectFilePreviewable, isEditorProjectMediaPreviewable, } from '@fps-games/editor-playable-sdk';
17
20
  import { findLocalEditorProjectFileSearchMatches, toLocalEditorProjectRelativePath, } from './local-editor-project-file-preview.js';
18
21
  import { resolveLocalEditorProjectFileOpenAction } from './local-editor-project-file-open.js';
@@ -21,11 +24,15 @@ export { canUseHierarchyProviderReparent, createHierarchyEnabledOperationRequest
21
24
  export { createLocalEditorHierarchyViewAdapter, } from './local-editor-ui-hierarchy-view-adapter.js';
22
25
  export { createLocalEditorContextMenuController, } from './local-editor-ui-context-menu.js';
23
26
  export { createLocalEditorTooltipController, } from './local-editor-ui-tooltip.js';
27
+ export function matchesAvailableLocalEditorCommandShortcut(entry, event) {
28
+ return entry?.availability.available === true
29
+ && matchesLocalEditorCommandShortcut(entry.manifest.presentation?.shortcut, event);
30
+ }
24
31
  import { createLocalEditorWorkbenchInputRouter } from './local-editor-ui-input-router.js';
25
32
  import { createLocalEditorConsoleController } from './local-editor-ui-console.js';
26
33
  import { synchronizeLocalEditorToolButtons } from './local-editor-tool-presentation.js';
27
34
  import { createLocalEditorPanelRegistry } from './local-editor-ui-panel-registry.js';
28
- import { createLocalEditorFormalSurfaceVisibilityController, disposeLocalEditorFormalSurfaces, shouldRenderLocalEditorInspectorPreview, } from './local-editor-ui-formal-surface-visibility.js';
35
+ import { createLocalEditorFormalSurfaceVisibilityController, disposeLocalEditorFormalSurfaces, shouldRenderLocalEditorInspectorPreview, shouldRenderLocalEditorPreviewSurfaces, } from './local-editor-ui-formal-surface-visibility.js';
29
36
  import * as LocalEditorShared from './local-editor-ui-shared.js';
30
37
  import { findLocalEditorRenderingAction } from './local-editor-rendering-actions.js';
31
38
  import { createShortcutHelpPanel as createLocalEditorShortcutHelpPanel } from './local-editor-ui-shortcuts.js';
@@ -51,6 +58,15 @@ function syncLocalEditorInspectorPendingState(panel, pending) {
51
58
  panel.setAttribute('aria-busy', String(pending));
52
59
  panel.toggleAttribute('inert', pending);
53
60
  }
61
+ export function applyLocalEditorSelectionInspectorSummaryPresentation(panel, input) {
62
+ if (!input.inspectorPending
63
+ || input.selectedIds.length !== 1
64
+ || !input.activeId
65
+ || input.selectedIds[0] !== input.activeId
66
+ || input.activeLabel === null)
67
+ return false;
68
+ return LocalEditorPanels.applyInspectorSummaryLabel(panel, input.activeLabel);
69
+ }
54
70
  function readInspectorInputValue(input, source) {
55
71
  const control = input.dataset.serializedControl;
56
72
  const valueType = input.dataset.serializedValueType;
@@ -214,50 +230,6 @@ function renderContextActionButtons(group, actions, busy) {
214
230
  group.appendChild(button);
215
231
  }
216
232
  }
217
- function createAgentBridgeStatusTooltip(status) {
218
- const label = formatAgentBridgeStatusLabel(status?.status);
219
- const details = [
220
- `Agent Bridge:${label}`,
221
- status?.url ? `URL ${status.url}` : '',
222
- status?.sessionId ? `Session ${status.sessionId}` : '',
223
- status ? `Capabilities ${status.capabilityCount}` : '',
224
- status?.lastError ? `Error ${status.lastError}` : '',
225
- status?.connectedAt ? `Connected ${status.connectedAt}` : '',
226
- status?.lastChangedAt ? `Updated ${status.lastChangedAt}` : '',
227
- ].filter(Boolean);
228
- return details.join(' · ');
229
- }
230
- function formatAgentBridgeStatusLabel(status) {
231
- switch (status) {
232
- case 'disabled':
233
- return '未启用';
234
- case 'connecting':
235
- return '连接中';
236
- case 'connected':
237
- return '已连接';
238
- case 'disconnected':
239
- return '已断开';
240
- case 'error':
241
- return '错误';
242
- default:
243
- return '未知';
244
- }
245
- }
246
- function resolveAgentBridgeStatusToneColor(status) {
247
- switch (status?.status) {
248
- case 'connected':
249
- return 'var(--fps-editor-success)';
250
- case 'connecting':
251
- return 'var(--fps-editor-accent-strong)';
252
- case 'disconnected':
253
- return 'var(--fps-editor-warn)';
254
- case 'error':
255
- return 'var(--fps-editor-danger-strong)';
256
- case 'disabled':
257
- default:
258
- return 'var(--fps-editor-muted)';
259
- }
260
- }
261
233
  function setToolbarButtonIcon(doc, button, icon) {
262
234
  const currentIcon = button.querySelector('[data-editor-icon]');
263
235
  if (currentIcon?.dataset.editorIcon === icon)
@@ -305,6 +277,7 @@ function createInspectorPropertyInput(input, source) {
305
277
  commitMode: input.dataset.serializedCommitMode,
306
278
  persistence: input.dataset.serializedPersistence,
307
279
  source: input.dataset.serializedEditSource ?? source,
280
+ refreshInspector: input.dataset.serializedRefreshInspector === 'false' ? false : undefined,
308
281
  };
309
282
  }
310
283
  function createInspectorPropertyInputs(input, source, lockedVectorGroups) {
@@ -2403,6 +2376,44 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
2403
2376
  });
2404
2377
  construction.addCleanup('tooltip-controller', () => tooltipController.dispose());
2405
2378
  let currentState = null;
2379
+ const commandService = options.commandService === undefined
2380
+ ? createLocalEditorCommandServiceClient()
2381
+ : options.commandService;
2382
+ const commandPresentationCatalog = createLocalEditorCommandPresentationCatalog(async () => {
2383
+ if (!commandService)
2384
+ return [];
2385
+ const entries = [];
2386
+ let cursor;
2387
+ do {
2388
+ const response = await commandService.request({
2389
+ kind: 'commands.list',
2390
+ limit: 100,
2391
+ ...(cursor ? { cursor } : {}),
2392
+ });
2393
+ if (!response.ok || response.kind !== 'commands') {
2394
+ throw new Error('Editor Command catalog is unavailable.');
2395
+ }
2396
+ entries.push(...response.page.commands);
2397
+ cursor = response.page.nextCursor;
2398
+ } while (cursor);
2399
+ return entries;
2400
+ });
2401
+ void commandPresentationCatalog.refresh();
2402
+ construction.addCleanup('command-presentation-catalog', () => commandPresentationCatalog.dispose());
2403
+ const commandCenter = commandService
2404
+ ? createLocalEditorCommandCenter({
2405
+ document: doc,
2406
+ host: root,
2407
+ client: commandService,
2408
+ ...(options.commandClientId ? { clientId: options.commandClientId } : {}),
2409
+ getSelectionIds: () => ({
2410
+ selectedIds: [...(currentState?.selectedIds ?? [])],
2411
+ activeId: currentState?.activeId ?? null,
2412
+ }),
2413
+ onOpenChange: value => inputRouter.setModalOpen(value, 'command-center'),
2414
+ })
2415
+ : null;
2416
+ construction.addCleanup('command-center', () => commandCenter?.dispose());
2406
2417
  let pendingStatusDiagnosticRequest = null;
2407
2418
  let inspectorFilter = '';
2408
2419
  let lastRenderedInspectorContentKey = null;
@@ -2593,9 +2604,6 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
2593
2604
  editorStatusCenter.appendChild(editorStatusCenterHeader);
2594
2605
  editorStatusCenter.appendChild(editorStatusCenterSummary);
2595
2606
  editorStatusCenter.appendChild(editorStatusCenterList);
2596
- const agentBridgeStatusButton = createToolbarIconButton(doc, 'Agent Bridge 状态', 'status', 'Agent Bridge 状态');
2597
- agentBridgeStatusButton.dataset.editorAgentBridgeStatusButton = 'true';
2598
- agentBridgeStatusButton.style.cursor = 'help';
2599
2607
  const workbench = createLocalEditorWorkbench(doc);
2600
2608
  const editorUiLayerHost = createEditorUiLayerHost(doc, workbench.root);
2601
2609
  construction.addCleanup('editor-ui-layer-host', () => editorUiLayerHost.dispose());
@@ -3184,7 +3192,6 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3184
3192
  sceneToolOverlay.appendChild(viewportToolsGroup);
3185
3193
  sceneToolOverlay.appendChild(sceneUtilityActions);
3186
3194
  sceneToolOverlay.appendChild(cameraPreviewGroup);
3187
- sceneToolOverlay.appendChild(agentBridgeStatusButton);
3188
3195
  sceneToolOverlay.appendChild(editorStatusButton);
3189
3196
  sceneToolOverlay.appendChild(toolbarOverflowButton);
3190
3197
  workbench.sceneHeader.appendChild(sceneToolOverlay);
@@ -3501,6 +3508,8 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3501
3508
  function applyThemeToSurfaces() {
3502
3509
  applyLocalEditorTheme(hostChrome, activeTheme);
3503
3510
  applyLocalEditorTheme(workbench.root, activeTheme);
3511
+ if (commandCenter)
3512
+ applyLocalEditorTheme(commandCenter.root, activeTheme);
3504
3513
  applyLocalEditorTheme(spatialOverlay.root, activeTheme);
3505
3514
  applyLocalEditorTheme(measurementOverlay.root, activeTheme);
3506
3515
  applyLocalEditorTheme(performanceMonitorOverlay.root, activeTheme);
@@ -3952,7 +3961,6 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3952
3961
  viewportToolsGroup,
3953
3962
  sceneUtilityActions,
3954
3963
  cameraPreviewGroup,
3955
- agentBridgeStatusButton,
3956
3964
  editorStatusButton,
3957
3965
  toolbarOverflowButton,
3958
3966
  ];
@@ -3966,7 +3974,6 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3966
3974
  { id: 'snap', element: snapGroup, kind: 'group' },
3967
3975
  { id: 'space', element: spaceGroup, kind: 'group' },
3968
3976
  { id: 'static-shadow-bake', element: staticShadowBakeGroup, kind: 'group' },
3969
- { id: 'agent-bridge-status', element: agentBridgeStatusButton, kind: 'group' },
3970
3977
  ];
3971
3978
  let toolbarOverflowOpen = false;
3972
3979
  let toolbarOverflowRaf = null;
@@ -5226,7 +5233,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5226
5233
  : '修改会影响所有使用该材质球的物体。';
5227
5234
  previewMeta.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;font-weight:800;line-height:1.45';
5228
5235
  previewColumn.appendChild(previewMeta);
5229
- appendMaterialEditorUsageSummary(previewColumn, material.usage ?? { count: 0, items: [] });
5236
+ appendMaterialEditorUsageSummary(previewColumn, material.id, material.usage ?? { count: 0, items: [] });
5230
5237
  const form = doc.createElement('div');
5231
5238
  form.style.cssText = 'display:grid;grid-template-columns:minmax(96px,140px) minmax(0,1fr);gap:7px 10px;align-items:center;min-width:0';
5232
5239
  appendMaterialEditorTextField(form, '名称', 'name', material.name || asset.label, readonly);
@@ -5281,7 +5288,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5281
5288
  input.style.cssText = createMaterialEditorFieldCss(readonly);
5282
5289
  container.appendChild(input);
5283
5290
  }
5284
- function appendMaterialEditorUsageSummary(container, usage) {
5291
+ function appendMaterialEditorUsageSummary(container, materialAssetId, usage) {
5285
5292
  const panel = doc.createElement('div');
5286
5293
  panel.style.cssText = [
5287
5294
  'border:1px solid var(--fps-editor-border)',
@@ -5308,6 +5315,9 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5308
5315
  list.style.cssText = 'display:flex;flex-direction:column;gap:4px;min-width:0';
5309
5316
  for (const item of usage.items) {
5310
5317
  const row = doc.createElement('div');
5318
+ row.dataset.editorMaterialUsageMaterial = item.materialAssetId ?? materialAssetId;
5319
+ row.dataset.editorMaterialUsageOwner = item.gameObjectId;
5320
+ row.dataset.editorMaterialUsageBindingPath = item.bindingPath ?? '';
5311
5321
  row.textContent = item.label;
5312
5322
  row.title = item.bindingPath || item.label;
5313
5323
  row.style.cssText = [
@@ -6630,24 +6640,16 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6630
6640
  if (handleDocumentShortcut
6631
6641
  && localTestActionsEnabled
6632
6642
  && isPreviewToolEnabled('local-test')
6633
- && primaryModifier
6634
- && key === 's') {
6635
- event.preventDefault();
6636
- editorConsole.append({ severity: 'info', source: 'save', message: '请求保存场景' });
6637
- callbacks.onSaveScene?.();
6643
+ && queueAvailableCommandShortcut('document.save', event, () => {
6644
+ editorConsole.append({ severity: 'info', source: 'save', message: '请求保存场景' });
6645
+ callbacks.onSaveScene?.();
6646
+ })) {
6638
6647
  return;
6639
6648
  }
6640
- if (handleGlobalShortcut && primaryModifier && key === 'z') {
6641
- event.preventDefault();
6642
- if (event.shiftKey)
6643
- callbacks.onRedo?.();
6644
- else
6645
- callbacks.onUndo?.();
6649
+ if (handleGlobalShortcut && queueAvailableCommandShortcut('history.redo', event, () => callbacks.onRedo?.())) {
6646
6650
  return;
6647
6651
  }
6648
- if (handleGlobalShortcut && event.ctrlKey && key === 'y') {
6649
- event.preventDefault();
6650
- callbacks.onRedo?.();
6652
+ if (handleGlobalShortcut && queueAvailableCommandShortcut('history.undo', event, () => callbacks.onUndo?.())) {
6651
6653
  return;
6652
6654
  }
6653
6655
  if (handleGlobalShortcut && hierarchyController.handleEditShortcut(event)) {
@@ -6674,10 +6676,10 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6674
6676
  callbacks.onToolActivate?.(tool.id);
6675
6677
  return;
6676
6678
  }
6677
- if (key === 'f') {
6678
- event.preventDefault();
6679
+ if (queueAvailableCommandShortcut('viewport.frameSelection', event, () => {
6679
6680
  if (isPreviewToolEnabled('focus-selection'))
6680
6681
  callbacks.onFocusSelection?.();
6682
+ })) {
6681
6683
  return;
6682
6684
  }
6683
6685
  if (key === 'escape') {
@@ -6692,6 +6694,9 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6692
6694
  };
6693
6695
  doc.addEventListener('keydown', onKeyDown);
6694
6696
  construction.addCleanup('document-keydown', () => doc.removeEventListener('keydown', onKeyDown));
6697
+ function queueAvailableCommandShortcut(commandId, event, invoke) {
6698
+ return commandPresentationCatalog.queueShortcut(commandId, event, () => !uiDisposed && currentState?.mode === 'editor' && !currentState.busy, invoke);
6699
+ }
6695
6700
  function formatSnapStepInputValue(snap, kind) {
6696
6701
  const value = kind === 'move'
6697
6702
  ? snap.moveStep
@@ -6904,6 +6909,28 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6904
6909
  const clearMeasurementDisplayChanged = clearMeasurementButton.style.display !== nextClearMeasurementDisplay;
6905
6910
  clearMeasurementButton.style.display = nextClearMeasurementDisplay;
6906
6911
  clearMeasurementButton.disabled = disabled || !hasMeasurement;
6912
+ syncEditorStatusPresentation(state, transformTool, transformOperations.settings);
6913
+ renderCoordinateAxesOverlay(coordinateAxesOverlay, inEditor ? state.coordinateAxes ?? null : null, state.viewportTools?.viewPreset ?? 'perspective', state.busy);
6914
+ renderPerformanceMonitorOverlay(performanceMonitorOverlay, inEditor && !inPrefabStage ? state.performanceStats ?? null : null, inEditor && !inPrefabStage && performanceMonitorOpen);
6915
+ prefabStagePreviewLayout.root.style.display = inEditor && inPrefabStage ? 'block' : 'none';
6916
+ renderPrefabImportStatsOverlay(prefabImportStatsOverlay, inEditor && inPrefabStage ? state.prefabStage ?? null : null);
6917
+ renderSpatialOverlay(spatialOverlay, inEditor ? state.viewportSpatialOverlay ?? null : null);
6918
+ renderMeasurementOverlay(measurementOverlay, inEditor ? state.viewportMeasurement ?? null : null);
6919
+ const boxSelection = state.boxSelection;
6920
+ if (inEditor && boxSelection?.active) {
6921
+ boxSelectionOverlay.style.display = '';
6922
+ boxSelectionOverlay.style.left = `${boxSelection.left}px`;
6923
+ boxSelectionOverlay.style.top = `${boxSelection.top}px`;
6924
+ boxSelectionOverlay.style.width = `${boxSelection.width}px`;
6925
+ boxSelectionOverlay.style.height = `${boxSelection.height}px`;
6926
+ }
6927
+ else {
6928
+ boxSelectionOverlay.style.display = 'none';
6929
+ }
6930
+ if (clearMeasurementDisplayChanged)
6931
+ scheduleToolbarOverflowLayout();
6932
+ };
6933
+ function syncEditorStatusPresentation(state, transformTool = state.transformTool ?? null, operationSettings = state.transformOperations?.settings ?? DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS) {
6907
6934
  const editorStatusText = [
6908
6935
  state.status,
6909
6936
  state.session?.dirty ? '有未保存更改' : '',
@@ -6929,7 +6956,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6929
6956
  `验证中心:${editorStatusText}`,
6930
6957
  state.statusDetails && state.statusDetails !== state.status ? state.statusDetails : '',
6931
6958
  transformStatusText,
6932
- LocalEditorShared.toTransformOperationStatusLabel(transformOperations.settings),
6959
+ LocalEditorShared.toTransformOperationStatusLabel(operationSettings),
6933
6960
  statusDiagnostics.length > 0 ? `${statusDiagnostics.length} 条诊断,点击查看并复制` : '',
6934
6961
  ].filter(Boolean).join(' · '));
6935
6962
  editorStatusButton.style.color = statusToneColor;
@@ -6939,46 +6966,23 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6939
6966
  editorStatusButton.dataset.editorStatusSeverity = diagnosticTone ?? 'default';
6940
6967
  if (editorStatusCenterOpen)
6941
6968
  renderEditorStatusCenter(state);
6942
- const agentBridgeStatusColor = resolveAgentBridgeStatusToneColor(state.agentBridge);
6943
- agentBridgeStatusButton.style.display = inEditor ? 'inline-flex' : 'none';
6944
- agentBridgeStatusButton.style.color = agentBridgeStatusColor;
6945
- agentBridgeStatusButton.style.borderColor = state.agentBridge?.status === 'disabled'
6946
- ? 'var(--fps-editor-border)'
6947
- : agentBridgeStatusColor;
6948
- setToolbarButtonTooltip(agentBridgeStatusButton, createAgentBridgeStatusTooltip(state.agentBridge));
6949
- renderCoordinateAxesOverlay(coordinateAxesOverlay, inEditor ? state.coordinateAxes ?? null : null, state.viewportTools?.viewPreset ?? 'perspective', state.busy);
6950
- renderPerformanceMonitorOverlay(performanceMonitorOverlay, inEditor && !inPrefabStage ? state.performanceStats ?? null : null, inEditor && !inPrefabStage && performanceMonitorOpen);
6951
- prefabStagePreviewLayout.root.style.display = inEditor && inPrefabStage ? 'block' : 'none';
6952
- renderPrefabImportStatsOverlay(prefabImportStatsOverlay, inEditor && inPrefabStage ? state.prefabStage ?? null : null);
6953
- renderSpatialOverlay(spatialOverlay, inEditor ? state.viewportSpatialOverlay ?? null : null);
6954
- renderMeasurementOverlay(measurementOverlay, inEditor ? state.viewportMeasurement ?? null : null);
6955
- const boxSelection = state.boxSelection;
6956
- if (inEditor && boxSelection?.active) {
6957
- boxSelectionOverlay.style.display = '';
6958
- boxSelectionOverlay.style.left = `${boxSelection.left}px`;
6959
- boxSelectionOverlay.style.top = `${boxSelection.top}px`;
6960
- boxSelectionOverlay.style.width = `${boxSelection.width}px`;
6961
- boxSelectionOverlay.style.height = `${boxSelection.height}px`;
6962
- }
6963
- else {
6964
- boxSelectionOverlay.style.display = 'none';
6965
- }
6966
- if (clearMeasurementDisplayChanged)
6967
- scheduleToolbarOverflowLayout();
6968
- };
6969
+ }
6969
6970
  const updatePreview = (preview) => {
6970
6971
  if (!currentState)
6971
6972
  return;
6973
+ const { inspectorPresentationPatches, ...statePreview } = preview;
6972
6974
  const toolPresentationStartedAt = typeof performance !== 'undefined' ? performance.now() : Date.now();
6973
- const shouldRenderToolPresentation = 'tools' in preview || 'activeToolId' in preview;
6975
+ const shouldRenderToolPresentation = 'tools' in statePreview || 'activeToolId' in statePreview;
6974
6976
  const previousActiveToolId = currentState.activeToolId ?? null;
6975
- const shouldRenderInspectorPreview = 'inspectorObject' in preview || 'inspectorMultiObject' in preview;
6976
- const shouldRenderSelectionPresentation = 'selectedIds' in preview
6977
- || 'activeId' in preview
6978
- || 'selectionSummary' in preview;
6977
+ const shouldRenderSessionPresentation = 'session' in statePreview;
6978
+ const shouldRenderInspectorPreview = 'inspectorObject' in statePreview || 'inspectorMultiObject' in statePreview;
6979
+ const shouldRenderSelectionPresentation = 'selectedIds' in statePreview
6980
+ || 'activeId' in statePreview
6981
+ || 'selectionSummary' in statePreview;
6982
+ const shouldRenderPreviewSurfaces = shouldRenderLocalEditorPreviewSurfaces(statePreview);
6979
6983
  const nextState = {
6980
6984
  ...currentState,
6981
- ...preview,
6985
+ ...statePreview,
6982
6986
  };
6983
6987
  const nextInspectorContentKey = resolveLocalEditorRightDockContentKey(nextState, 'inspector', inspectorFilter);
6984
6988
  const inspectorPreviewScrollSnapshot = shouldRenderInspectorPreview
@@ -6986,9 +6990,12 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6986
6990
  ? captureLocalEditorRightDockScrollSnapshot(currentState, 'inspector', inspectorFilter, inspectorPanel, renderingPanel, markersPanel, pluginsPanel)
6987
6991
  : null;
6988
6992
  currentState = nextState;
6989
- if ('inspectorPending' in preview) {
6993
+ if ('inspectorPending' in statePreview) {
6990
6994
  syncLocalEditorInspectorPendingState(inspectorPanel, currentState.inspectorPending === true);
6991
6995
  }
6996
+ if (inspectorPresentationPatches?.length) {
6997
+ LocalEditorPanels.applyInspectorPresentationPatches(inspectorPanel, inspectorPresentationPatches);
6998
+ }
6992
6999
  if (shouldRenderToolPresentation) {
6993
7000
  renderToolPresentationState(currentState);
6994
7001
  scheduleToolbarOverflowLayout();
@@ -7002,9 +7009,26 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
7002
7009
  });
7003
7010
  }
7004
7011
  }
7005
- if (shouldRenderSelectionPresentation)
7006
- hierarchyController.render(currentState);
7007
- renderPreviewState(currentState);
7012
+ if (shouldRenderSessionPresentation) {
7013
+ undoButton.disabled = currentState.busy || !currentState.session?.canUndo;
7014
+ redoButton.disabled = currentState.busy || !currentState.session?.canRedo;
7015
+ dirtyBadge.style.display = currentState.mode === 'editor' && currentState.session?.dirty
7016
+ ? 'inline-flex'
7017
+ : 'none';
7018
+ }
7019
+ const hierarchySelectionPresentation = shouldRenderSelectionPresentation
7020
+ ? hierarchyController.syncSelectionPresentation(currentState)
7021
+ : null;
7022
+ if (hierarchySelectionPresentation) {
7023
+ applyLocalEditorSelectionInspectorSummaryPresentation(inspectorPanel, {
7024
+ inspectorPending: currentState.inspectorPending === true,
7025
+ selectedIds: hierarchySelectionPresentation.selectedIds,
7026
+ activeId: hierarchySelectionPresentation.activeId,
7027
+ activeLabel: hierarchySelectionPresentation.activeLabel,
7028
+ });
7029
+ }
7030
+ if (shouldRenderPreviewSurfaces)
7031
+ renderPreviewState(currentState);
7008
7032
  if (shouldRenderInspectorPreview
7009
7033
  && currentState.mode === 'editor'
7010
7034
  && !!currentState.prefabStage
@@ -7037,6 +7061,104 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
7037
7061
  });
7038
7062
  }
7039
7063
  };
7064
+ const updatePresentationDelta = (delta) => {
7065
+ if (!currentState)
7066
+ return false;
7067
+ let presentationState = currentState;
7068
+ if (delta.session !== undefined
7069
+ || delta.status !== undefined
7070
+ || delta.statusTone !== undefined
7071
+ || delta.statusDetails !== undefined
7072
+ || delta.inspectorObject !== undefined
7073
+ || delta.inspectorMultiObject !== undefined
7074
+ || delta.inspectorPresentationGeneration !== undefined
7075
+ || delta.renderingPanel !== undefined
7076
+ || delta.pluginPanel !== undefined) {
7077
+ presentationState = {
7078
+ ...presentationState,
7079
+ ...(delta.session !== undefined ? { session: delta.session } : {}),
7080
+ ...(delta.status !== undefined ? { status: delta.status } : {}),
7081
+ ...(delta.statusTone !== undefined ? { statusTone: delta.statusTone } : {}),
7082
+ ...(delta.statusDetails !== undefined ? { statusDetails: delta.statusDetails } : {}),
7083
+ ...(delta.inspectorObject !== undefined ? { inspectorObject: delta.inspectorObject } : {}),
7084
+ ...(delta.inspectorMultiObject !== undefined ? { inspectorMultiObject: delta.inspectorMultiObject } : {}),
7085
+ ...(delta.inspectorPresentationGeneration !== undefined
7086
+ ? { inspectorPresentationGeneration: delta.inspectorPresentationGeneration }
7087
+ : {}),
7088
+ ...(delta.renderingPanel !== undefined ? { renderingPanel: delta.renderingPanel } : {}),
7089
+ ...(delta.pluginPanel !== undefined ? { pluginPanel: delta.pluginPanel } : {}),
7090
+ };
7091
+ currentState = presentationState;
7092
+ }
7093
+ if (delta.session !== undefined) {
7094
+ const inEditor = presentationState.mode === 'editor';
7095
+ undoButton.disabled = presentationState.busy || !presentationState.session?.canUndo;
7096
+ redoButton.disabled = presentationState.busy || !presentationState.session?.canRedo;
7097
+ dirtyBadge.style.display = inEditor && presentationState.session?.dirty ? 'inline-flex' : 'none';
7098
+ syncEditorStatusPresentation(presentationState);
7099
+ }
7100
+ if (delta.session !== undefined && panelRegistry.getBottomDockTab() === 'history') {
7101
+ LocalEditorPanels.renderWorkbenchBottomDockPanel(doc, assetPanel, presentationState, 'history', panelRegistry.getPanels('bottom'), assetBrowserTab);
7102
+ }
7103
+ if (delta.inspectorValuePatches?.length) {
7104
+ LocalEditorPanels.applyInspectorPresentationPatches(inspectorPanel, delta.inspectorValuePatches);
7105
+ }
7106
+ if (delta.hierarchyLabels) {
7107
+ if (!syncLocalEditorHierarchyLabelPresentation(hierarchyPanel, hierarchyKernel, delta.hierarchyLabels))
7108
+ return false;
7109
+ }
7110
+ if (delta.materialUsageOwnerNames) {
7111
+ const usageUpdate = updateLocalEditorMaterialUsageOwnerNames(presentationState.assets, delta.materialUsageOwnerNames);
7112
+ if (!usageUpdate.valid)
7113
+ return false;
7114
+ if (usageUpdate.changed) {
7115
+ presentationState = {
7116
+ ...presentationState,
7117
+ assets: usageUpdate.assets,
7118
+ };
7119
+ currentState = presentationState;
7120
+ for (const usageRoot of [assetPanel, assetPreviewModal]) {
7121
+ applyLocalEditorMaterialUsageOwnerNames(usageRoot, usageUpdate.assets, usageUpdate.identities);
7122
+ }
7123
+ }
7124
+ }
7125
+ if (Array.isArray(delta.inspector) && delta.inspector.includes('summary')) {
7126
+ const activeId = presentationState.activeId;
7127
+ const activeLabel = activeId
7128
+ ? delta.hierarchyLabels?.[activeId]
7129
+ ?? hierarchyKernel.getViewModel()?.snapshot.nodeById.get(activeId)?.label
7130
+ : null;
7131
+ if (activeLabel) {
7132
+ const inspectorObject = presentationState.inspectorObject;
7133
+ if (inspectorObject && inspectorObject.activeId === activeId) {
7134
+ presentationState = {
7135
+ ...presentationState,
7136
+ inspectorObject: {
7137
+ ...inspectorObject,
7138
+ label: activeLabel,
7139
+ },
7140
+ };
7141
+ currentState = presentationState;
7142
+ }
7143
+ LocalEditorPanels.applyInspectorSummaryLabel(inspectorPanel, activeLabel);
7144
+ }
7145
+ }
7146
+ if (delta.inspector === 'full'
7147
+ || (Array.isArray(delta.inspector)
7148
+ && (delta.inspector.includes('material')
7149
+ || (delta.inspector.includes('transform') && delta.inspectorObject !== undefined)))) {
7150
+ LocalEditorPanels.renderInspectorPanel(doc, inspectorPanel, presentationState, inspectorFilter, {
7151
+ ...options.inspector, layerHost: editorUiLayerHost, lockedVectorGroups: lockedInspectorVectorGroups,
7152
+ });
7153
+ }
7154
+ if (delta.rendering) {
7155
+ LocalEditorPanels.renderRenderingPanel(doc, renderingPanel, presentationState, { layerHost: editorUiLayerHost });
7156
+ }
7157
+ if (delta.pluginPanel !== undefined && panelRegistry.getRightDockTab() === 'plugins') {
7158
+ renderLocalEditorPluginPanel(doc, pluginsPanel, presentationState.pluginPanel ?? null);
7159
+ }
7160
+ return true;
7161
+ };
7040
7162
  const render = (state) => {
7041
7163
  const previousState = currentState;
7042
7164
  const assetBrowserContinuitySnapshot = assetBrowserContinuity.capture(lastRenderedAssetBrowserContentKey);
@@ -7386,6 +7508,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
7386
7508
  render(state);
7387
7509
  },
7388
7510
  updatePreview,
7511
+ updatePresentationDelta,
7389
7512
  updateSceneFrameStats(stats) {
7390
7513
  if (currentState)
7391
7514
  currentState = { ...currentState, sceneFrameStats: stats };
@@ -7428,6 +7551,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
7428
7551
  errors.push(error);
7429
7552
  }
7430
7553
  };
7554
+ run('command-presentation-catalog', () => commandPresentationCatalog.dispose());
7431
7555
  run('toolbar-overflow-frame', () => {
7432
7556
  if (toolbarOverflowRaf != null) {
7433
7557
  doc.defaultView?.cancelAnimationFrame(toolbarOverflowRaf);
@@ -7470,6 +7594,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
7470
7594
  run('prefab-stage-preview-layout', () => prefabStagePreviewLayout.root.remove());
7471
7595
  run('box-selection-overlay', () => boxSelectionOverlay.remove());
7472
7596
  run('shortcut-help-panel', () => shortcutHelpPanel.remove());
7597
+ run('command-center', () => commandCenter?.dispose());
7473
7598
  run('project-model-preview', () => disposeProjectModelPreview());
7474
7599
  run('project-media-thumbnails', () => resetProjectMediaThumbnailCache());
7475
7600
  run('project-model-thumbnail-cache', () => projectModelThumbnailCache.dispose());
@@ -7509,4 +7634,104 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
7509
7634
  },
7510
7635
  };
7511
7636
  }
7637
+ /** Updates the indexed asset snapshot without rescanning the authored document. */
7638
+ export function updateLocalEditorMaterialUsageOwnerNames(assets, ownerNames) {
7639
+ let changed = false;
7640
+ let valid = true;
7641
+ const identities = [];
7642
+ const nextAssets = assets.map(asset => {
7643
+ const usage = asset.material?.usage;
7644
+ if (!usage)
7645
+ return asset;
7646
+ let usageChanged = false;
7647
+ const items = usage.items.map(item => {
7648
+ const ownerId = item.gameObjectId;
7649
+ if (!ownerId || !Object.prototype.hasOwnProperty.call(ownerNames, ownerId))
7650
+ return item;
7651
+ const ownerName = ownerNames[ownerId];
7652
+ const previousOwnerPrefix = item.gameObjectName ? `${item.gameObjectName} / ` : '';
7653
+ if (item.slotId && (!previousOwnerPrefix || !item.label.startsWith(previousOwnerPrefix))) {
7654
+ valid = false;
7655
+ return item;
7656
+ }
7657
+ const displaySuffix = item.slotId ? item.label.slice(previousOwnerPrefix.length) : '';
7658
+ const label = displaySuffix ? `${ownerName} / ${displaySuffix}` : ownerName;
7659
+ identities.push({
7660
+ materialAssetId: item.materialAssetId ?? asset.material.id,
7661
+ ownerId,
7662
+ bindingPath: item.bindingPath ?? '',
7663
+ });
7664
+ usageChanged = true;
7665
+ changed = true;
7666
+ return {
7667
+ ...item,
7668
+ gameObjectName: ownerName,
7669
+ label,
7670
+ };
7671
+ });
7672
+ if (!usageChanged)
7673
+ return asset;
7674
+ return {
7675
+ ...asset,
7676
+ material: {
7677
+ ...asset.material,
7678
+ usage: {
7679
+ ...usage,
7680
+ items,
7681
+ },
7682
+ },
7683
+ };
7684
+ });
7685
+ if (!valid) {
7686
+ return {
7687
+ assets,
7688
+ identities: [],
7689
+ changed: false,
7690
+ valid: false,
7691
+ };
7692
+ }
7693
+ return {
7694
+ assets: changed ? nextAssets : assets,
7695
+ identities,
7696
+ changed,
7697
+ valid: true,
7698
+ };
7699
+ }
7700
+ /** Reconciles mounted material usage rows without rebuilding the Asset panel. */
7701
+ export function applyLocalEditorMaterialUsageOwnerNames(root, assets, identities) {
7702
+ const identityKeys = new Set(identities.map(identity => [
7703
+ identity.materialAssetId,
7704
+ identity.ownerId,
7705
+ identity.bindingPath,
7706
+ ].join('\u0000')));
7707
+ const itemsByIdentity = new Map();
7708
+ for (const asset of assets) {
7709
+ for (const item of asset.material?.usage?.items ?? []) {
7710
+ if (!item.gameObjectId)
7711
+ continue;
7712
+ const key = [
7713
+ item.materialAssetId ?? asset.material.id,
7714
+ item.gameObjectId,
7715
+ item.bindingPath ?? '',
7716
+ ].join('\u0000');
7717
+ if (identityKeys.has(key))
7718
+ itemsByIdentity.set(key, item);
7719
+ }
7720
+ }
7721
+ let applied = false;
7722
+ for (const row of root.querySelectorAll('[data-editor-material-usage-owner]')) {
7723
+ const key = [
7724
+ row.dataset.editorMaterialUsageMaterial ?? '',
7725
+ row.dataset.editorMaterialUsageOwner ?? '',
7726
+ row.dataset.editorMaterialUsageBindingPath ?? '',
7727
+ ].join('\u0000');
7728
+ const item = itemsByIdentity.get(key);
7729
+ if (!item)
7730
+ continue;
7731
+ row.textContent = item.label;
7732
+ row.title = item.bindingPath || item.label;
7733
+ applied = true;
7734
+ }
7735
+ return applied;
7736
+ }
7512
7737
  //# sourceMappingURL=local-editor-ui.js.map