@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-workbench.js","sourceRoot":"","sources":["../src/local-editor-ui-workbench.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-editor-ui-workbench.js","sourceRoot":"","sources":["../src/local-editor-ui-workbench.ts"],"names":[],"mappings":"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","sourcesContent":["import { LOCAL_EDITOR_THEME_CLASS } from './local-editor-ui-theme';\nimport { createLocalEditorIcon, type LocalEditorIconName } from './local-editor-ui-icons';\nimport type {\n LocalEditorWorkbenchLayout,\n LocalEditorWorkbenchPanelDescriptor,\n LocalEditorWorkbenchRegionDescriptor,\n} from './local-editor-ui-types';\n\nexport interface LocalEditorWorkbenchLayoutState {\n leftWidth: number;\n rightWidth: number;\n bottomHeight: number;\n leftCollapsed: boolean;\n rightCollapsed: boolean;\n bottomCollapsed: boolean;\n}\n\nexport interface LocalEditorWorkbenchLayoutController {\n getLayout(): LocalEditorWorkbenchLayoutState;\n refresh(): void;\n setLayout(layout: LocalEditorWorkbenchLayoutState, save?: boolean): void;\n setBottomCollapsed(collapsed: boolean, save?: boolean): void;\n reset(): void;\n dispose(): void;\n}\n\nexport interface LocalEditorWorkbenchLayoutControllerOptions {\n onAfterApply?: (layout: LocalEditorWorkbenchLayoutState) => void;\n}\n\nexport interface LocalEditorWorkbenchViewport {\n width: number;\n height: number;\n}\n\nexport interface LocalEditorWorkbenchVisibility {\n leftVisible: boolean;\n rightVisible: boolean;\n bottomVisible: boolean;\n leftAutoHidden: boolean;\n rightAutoHidden: boolean;\n bottomAutoHidden: boolean;\n}\n\nexport interface LocalEditorWorkbenchOverlayState {\n leftOpen: boolean;\n rightOpen: boolean;\n bottomOpen: boolean;\n}\n\nexport interface LocalEditorWorkbenchDockDisplay extends LocalEditorWorkbenchVisibility {\n leftDockVisible: boolean;\n rightDockVisible: boolean;\n bottomDockVisible: boolean;\n leftDockOverlay: boolean;\n rightDockOverlay: boolean;\n bottomDockOverlay: boolean;\n}\n\nconst LOCAL_EDITOR_WORKBENCH_LAYOUT_STORAGE_KEY = 'fps-game-editor:workbench-layout:v1';\n\nconst DEFAULT_WORKBENCH_LAYOUT: LocalEditorWorkbenchLayoutState = {\n leftWidth: 300,\n rightWidth: 340,\n bottomHeight: 260,\n leftCollapsed: false,\n rightCollapsed: false,\n bottomCollapsed: true,\n};\n\nconst WORKBENCH_LAYOUT_LIMITS = {\n leftMin: 220,\n leftMax: 420,\n rightMin: 300,\n rightMax: 520,\n bottomMin: 160,\n bottomMax: 420,\n sceneMinWidth: 420,\n sceneMinHeight: 220,\n};\n\nconst RESIZER_THICKNESS = 7;\nconst WORKBENCH_COMPACT_WIDTH = 760;\nconst WORKBENCH_RIGHT_AUTO_COLLAPSE_WIDTH = 1120;\nconst WORKBENCH_BOTTOM_AUTO_COLLAPSE_HEIGHT = 520;\n\nexport const LOCAL_EDITOR_WORKBENCH_REGIONS = [\n { id: 'top-app-bar', label: 'Top App Bar' },\n { id: 'left-dock', label: 'Left Dock' },\n { id: 'scene-view', label: 'Scene View' },\n { id: 'scene-header', label: 'Scene View Header' },\n { id: 'right-dock', label: 'Right Dock' },\n { id: 'bottom-dock', label: 'Bottom Dock' },\n] satisfies LocalEditorWorkbenchRegionDescriptor[];\n\nexport const LOCAL_EDITOR_WORKBENCH_PANELS = [\n { id: 'hierarchy', title: '层级', area: 'left', toolbar: 'scene-graph' },\n { id: 'inspector', title: '检查器', area: 'right' },\n { id: 'rendering', title: '渲染', area: 'right' },\n { id: 'markers', title: '标记', area: 'right' },\n { id: 'plugins', title: '插件', area: 'right' },\n { id: 'assets', title: '资产', area: 'bottom', contextMenu: 'asset-browser' },\n { id: 'history', title: '历史', area: 'bottom' },\n] satisfies LocalEditorWorkbenchPanelDescriptor[];\n\nexport function createDefaultLocalEditorWorkbenchLayout(): LocalEditorWorkbenchLayout {\n return {\n regions: [...LOCAL_EDITOR_WORKBENCH_REGIONS],\n panels: [...LOCAL_EDITOR_WORKBENCH_PANELS],\n activeTabs: {\n left: 'hierarchy',\n right: 'inspector',\n bottom: 'assets',\n },\n };\n}\n\nexport interface LocalEditorWorkbenchElements {\n root: HTMLDivElement;\n leftDock: HTMLDivElement;\n sceneFrame: HTMLDivElement;\n sceneHeader: HTMLDivElement;\n rightDock: HTMLDivElement;\n bottomDock: HTMLDivElement;\n leftResizer: HTMLDivElement;\n rightResizer: HTMLDivElement;\n bottomResizer: HTMLDivElement;\n leftToggle: HTMLButtonElement;\n rightToggle: HTMLButtonElement;\n bottomToggle: HTMLButtonElement;\n}\n\nexport function createLocalEditorWorkbench(doc: Document): LocalEditorWorkbenchElements {\n const root = doc.createElement('div');\n root.dataset.editorWorkbench = 'true';\n root.className = LOCAL_EDITOR_THEME_CLASS;\n root.style.cssText = [\n 'position:fixed',\n 'top:0',\n 'left:0',\n 'right:0',\n 'bottom:0',\n 'z-index:2147483639',\n 'display:none',\n 'pointer-events:none',\n 'font-family:var(--fps-editor-font)',\n 'color:var(--fps-editor-text)',\n 'font-size:12px',\n ].join(';');\n\n const leftDock = createDock(doc, 'left');\n const rightDock = createDock(doc, 'right');\n const bottomDock = createDock(doc, 'bottom');\n const leftResizer = createResizer(doc, 'left');\n const rightResizer = createResizer(doc, 'right');\n const bottomResizer = createResizer(doc, 'bottom');\n const leftToggle = createDockToggle(doc, 'left', 'hierarchy');\n const rightToggle = createDockToggle(doc, 'right', 'inspector');\n const bottomToggle = createDockToggle(doc, 'bottom', 'asset');\n const sceneFrame = doc.createElement('div');\n sceneFrame.dataset.editorWorkbenchRegion = 'scene-view';\n sceneFrame.style.cssText = [\n 'position:absolute',\n 'top:0',\n 'left:300px',\n 'right:340px',\n 'bottom:260px',\n 'display:flex',\n 'flex-direction:column',\n 'min-width:0',\n 'min-height:0',\n 'border-left:1px solid var(--fps-editor-divider)',\n 'border-right:1px solid var(--fps-editor-divider)',\n 'border-bottom:1px solid var(--fps-editor-divider)',\n 'background:transparent',\n 'pointer-events:none',\n 'overflow:hidden',\n ].join(';');\n const sceneHeader = doc.createElement('div');\n sceneHeader.dataset.editorWorkbenchRegion = 'scene-header';\n sceneHeader.style.cssText = [\n 'height:38px',\n 'flex:0 0 38px',\n 'display:flex',\n 'align-items:center',\n 'justify-content:flex-start',\n 'border-bottom:1px solid var(--fps-editor-divider)',\n 'background:var(--fps-editor-chrome)',\n 'box-shadow:var(--fps-editor-shadow-inset-highlight)',\n 'pointer-events:none',\n ].join(';');\n sceneFrame.appendChild(sceneHeader);\n\n root.appendChild(sceneFrame);\n root.appendChild(leftDock);\n root.appendChild(rightDock);\n root.appendChild(bottomDock);\n root.appendChild(leftResizer);\n root.appendChild(rightResizer);\n root.appendChild(bottomResizer);\n root.appendChild(leftToggle);\n root.appendChild(rightToggle);\n root.appendChild(bottomToggle);\n return {\n root,\n leftDock,\n sceneFrame,\n sceneHeader,\n rightDock,\n bottomDock,\n leftResizer,\n rightResizer,\n bottomResizer,\n leftToggle,\n rightToggle,\n bottomToggle,\n };\n}\n\nfunction createDock(doc: Document, area: 'left' | 'right' | 'bottom'): HTMLDivElement {\n const dock = doc.createElement('div');\n dock.dataset.editorWorkbenchRegion = area === 'left' ? 'left-dock' : area === 'right' ? 'right-dock' : 'bottom-dock';\n const placement = area === 'left'\n ? 'top:0;left:0;bottom:260px;width:300px'\n : area === 'right'\n ? 'top:0;right:0;bottom:0;width:340px'\n : 'left:0;right:340px;bottom:0;height:260px';\n dock.style.cssText = [\n 'position:absolute',\n placement,\n 'display:flex',\n 'flex-direction:column',\n 'min-width:0',\n 'min-height:0',\n 'border:1px solid var(--fps-editor-divider)',\n 'background:var(--fps-editor-panel)',\n 'pointer-events:auto',\n 'overflow:hidden',\n ].join(';');\n return dock;\n}\n\nfunction createResizer(doc: Document, area: 'left' | 'right' | 'bottom'): HTMLDivElement {\n const resizer = doc.createElement('div');\n resizer.dataset.editorWorkbenchResizer = area;\n resizer.title = area === 'bottom'\n ? '拖拽调整底部面板高度,双击恢复默认'\n : '拖拽调整面板宽度,双击恢复默认';\n resizer.style.cssText = [\n 'position:absolute',\n 'z-index:4',\n area === 'bottom' ? `height:${RESIZER_THICKNESS}px` : `width:${RESIZER_THICKNESS}px`,\n area === 'bottom' ? 'cursor:row-resize' : 'cursor:col-resize',\n 'background:transparent',\n 'pointer-events:auto',\n 'touch-action:none',\n ].join(';');\n resizer.addEventListener('mouseenter', () => {\n resizer.style.background = 'var(--fps-editor-accent-soft)';\n });\n resizer.addEventListener('mouseleave', () => {\n resizer.style.background = 'transparent';\n });\n return resizer;\n}\n\nfunction createDockToggle(doc: Document, area: 'left' | 'right' | 'bottom', icon: LocalEditorIconName): HTMLButtonElement {\n const button = doc.createElement('button');\n button.type = 'button';\n button.dataset.editorWorkbenchToggle = area;\n button.style.cssText = [\n 'position:absolute',\n 'z-index:5',\n 'width:26px',\n 'height:26px',\n 'display:inline-flex',\n 'align-items:center',\n 'justify-content:center',\n 'padding:0',\n 'border:1px solid var(--fps-editor-border)',\n 'border-radius:3px',\n 'background:var(--fps-editor-button)',\n 'color:var(--fps-editor-text)',\n 'box-shadow:var(--fps-editor-shadow-panel)',\n 'cursor:pointer',\n 'pointer-events:auto',\n ].join(';');\n button.appendChild(createLocalEditorIcon(doc, icon, { size: 14 }));\n button.addEventListener('mouseenter', () => {\n button.style.background = 'var(--fps-editor-button-hover)';\n });\n button.addEventListener('mouseleave', () => {\n button.style.background = 'var(--fps-editor-button)';\n });\n return button;\n}\n\nexport function createWorkbenchPanelContent(doc: Document): HTMLDivElement {\n const content = doc.createElement('div');\n content.dataset.editorPanelContent = 'true';\n content.style.cssText = [\n 'flex:1',\n 'min-height:0',\n 'overflow:auto',\n 'padding:8px',\n ].join(';');\n return content;\n}\n\nexport function createSceneHeaderToolbar(doc: Document): HTMLDivElement {\n const toolbar = doc.createElement('div');\n toolbar.dataset.editorWorkbenchRegion = 'scene-toolbar';\n toolbar.style.cssText = [\n 'display:flex',\n 'align-items:center',\n 'gap:7px',\n 'width:100%',\n 'height:100%',\n 'max-width:100%',\n 'padding:5px 8px',\n 'background:transparent',\n 'pointer-events:auto',\n 'overflow:hidden',\n ].join(';');\n return toolbar;\n}\n\nexport function normalizeLocalEditorWorkbenchLayout(\n input: Partial<LocalEditorWorkbenchLayoutState> | null | undefined,\n viewport: LocalEditorWorkbenchViewport,\n): LocalEditorWorkbenchLayoutState {\n const userLayout = normalizeLocalEditorWorkbenchUserLayout(input);\n const compactWidth = viewport.width < WORKBENCH_COMPACT_WIDTH;\n const rightAutoCollapsed = viewport.width < WORKBENCH_RIGHT_AUTO_COLLAPSE_WIDTH;\n const leftVisible = !userLayout.leftCollapsed && !compactWidth;\n const rightVisible = !userLayout.rightCollapsed && !rightAutoCollapsed;\n\n const rightEdge = rightVisible\n ? clampNumber(userLayout.rightWidth, WORKBENCH_LAYOUT_LIMITS.rightMin, resolveRightMax(viewport, leftVisible))\n : 0;\n const leftEdge = leftVisible\n ? clampNumber(userLayout.leftWidth, WORKBENCH_LAYOUT_LIMITS.leftMin, resolveLeftMax(viewport, rightEdge))\n : 0;\n const bottomMax = Math.max(\n WORKBENCH_LAYOUT_LIMITS.bottomMin,\n Math.min(\n WORKBENCH_LAYOUT_LIMITS.bottomMax,\n Math.floor(viewport.height * 0.45),\n viewport.height - WORKBENCH_LAYOUT_LIMITS.sceneMinHeight,\n ),\n );\n\n return {\n leftWidth: leftVisible ? leftEdge : userLayout.leftWidth,\n rightWidth: rightVisible ? rightEdge : userLayout.rightWidth,\n bottomHeight: clampNumber(userLayout.bottomHeight, WORKBENCH_LAYOUT_LIMITS.bottomMin, bottomMax),\n leftCollapsed: userLayout.leftCollapsed,\n rightCollapsed: userLayout.rightCollapsed,\n bottomCollapsed: userLayout.bottomCollapsed,\n };\n}\n\nexport function normalizeLocalEditorWorkbenchUserLayout(\n input: Partial<LocalEditorWorkbenchLayoutState> | null | undefined,\n): LocalEditorWorkbenchLayoutState {\n const next = {\n ...DEFAULT_WORKBENCH_LAYOUT,\n ...(input ?? {}),\n };\n return {\n leftWidth: clampNumber(next.leftWidth, WORKBENCH_LAYOUT_LIMITS.leftMin, WORKBENCH_LAYOUT_LIMITS.leftMax),\n rightWidth: clampNumber(next.rightWidth, WORKBENCH_LAYOUT_LIMITS.rightMin, WORKBENCH_LAYOUT_LIMITS.rightMax),\n bottomHeight: clampNumber(next.bottomHeight, WORKBENCH_LAYOUT_LIMITS.bottomMin, WORKBENCH_LAYOUT_LIMITS.bottomMax),\n leftCollapsed: next.leftCollapsed === true,\n rightCollapsed: next.rightCollapsed === true,\n bottomCollapsed: next.bottomCollapsed === true,\n };\n}\n\nexport function resolveLocalEditorWorkbenchVisibility(\n layout: LocalEditorWorkbenchLayoutState,\n viewport: LocalEditorWorkbenchViewport,\n): LocalEditorWorkbenchVisibility {\n const leftAutoHidden = viewport.width < WORKBENCH_COMPACT_WIDTH;\n const rightAutoHidden = viewport.width < WORKBENCH_RIGHT_AUTO_COLLAPSE_WIDTH;\n const bottomAutoHidden = viewport.height < WORKBENCH_BOTTOM_AUTO_COLLAPSE_HEIGHT;\n return {\n leftVisible: !layout.leftCollapsed && !leftAutoHidden,\n rightVisible: !layout.rightCollapsed && !rightAutoHidden,\n bottomVisible: !layout.bottomCollapsed && !bottomAutoHidden,\n leftAutoHidden,\n rightAutoHidden,\n bottomAutoHidden,\n };\n}\n\nexport function resolveLocalEditorWorkbenchDockDisplay(\n layout: LocalEditorWorkbenchLayoutState,\n viewport: LocalEditorWorkbenchViewport,\n overlay: Partial<LocalEditorWorkbenchOverlayState> | null | undefined,\n): LocalEditorWorkbenchDockDisplay {\n const visibility = resolveLocalEditorWorkbenchVisibility(layout, viewport);\n const leftDockOverlay = visibility.leftAutoHidden && overlay?.leftOpen === true;\n const rightDockOverlay = visibility.rightAutoHidden && overlay?.rightOpen === true;\n const bottomDockOverlay = visibility.bottomAutoHidden && overlay?.bottomOpen === true;\n return {\n ...visibility,\n leftDockVisible: visibility.leftVisible || leftDockOverlay,\n rightDockVisible: visibility.rightVisible || rightDockOverlay,\n bottomDockVisible: visibility.bottomVisible || bottomDockOverlay,\n leftDockOverlay,\n rightDockOverlay,\n bottomDockOverlay,\n };\n}\n\nexport function createLocalEditorWorkbenchLayoutController(\n doc: Document,\n elements: LocalEditorWorkbenchElements,\n options: LocalEditorWorkbenchLayoutControllerOptions = {},\n): LocalEditorWorkbenchLayoutController {\n const win = doc.defaultView;\n let layout = normalizeLocalEditorWorkbenchUserLayout(readStoredWorkbenchLayout(doc));\n let projectedVisibility = resolveLocalEditorWorkbenchVisibility(layout, readViewport(doc));\n let overlay: LocalEditorWorkbenchOverlayState = { leftOpen: false, rightOpen: false, bottomOpen: false };\n let drag:\n | { area: 'left' | 'right' | 'bottom' }\n | null = null;\n\n const persist = (): void => writeStoredWorkbenchLayout(doc, layout);\n\n const apply = (save = false): void => {\n const viewport = readViewport(doc);\n const projectedLayout = normalizeLocalEditorWorkbenchLayout(layout, viewport);\n projectedVisibility = resolveLocalEditorWorkbenchVisibility(projectedLayout, viewport);\n if (!projectedVisibility.leftAutoHidden && overlay.leftOpen) overlay = { ...overlay, leftOpen: false };\n if (!projectedVisibility.rightAutoHidden && overlay.rightOpen) overlay = { ...overlay, rightOpen: false };\n if (!projectedVisibility.bottomAutoHidden && overlay.bottomOpen) overlay = { ...overlay, bottomOpen: false };\n const dockDisplay = resolveLocalEditorWorkbenchDockDisplay(projectedLayout, viewport, overlay);\n const leftEdge = projectedVisibility.leftVisible ? projectedLayout.leftWidth : 0;\n const rightEdge = projectedVisibility.rightVisible ? projectedLayout.rightWidth : 0;\n const bottomEdge = projectedVisibility.bottomVisible ? projectedLayout.bottomHeight : 0;\n const leftDockWidth = dockDisplay.leftDockOverlay\n ? resolveOverlayPanelWidth(viewport, projectedLayout.leftWidth)\n : projectedLayout.leftWidth;\n const rightDockWidth = dockDisplay.rightDockOverlay\n ? resolveOverlayPanelWidth(viewport, projectedLayout.rightWidth)\n : projectedLayout.rightWidth;\n const bottomDockHeight = dockDisplay.bottomDockOverlay\n ? resolveOverlayPanelHeight(viewport, projectedLayout.bottomHeight)\n : projectedLayout.bottomHeight;\n\n elements.root.dataset.editorLayoutLeftCollapsed = String(!dockDisplay.leftDockVisible);\n elements.root.dataset.editorLayoutRightCollapsed = String(!dockDisplay.rightDockVisible);\n elements.root.dataset.editorLayoutBottomCollapsed = String(!dockDisplay.bottomDockVisible);\n elements.root.dataset.editorLayoutLeftOverlay = String(dockDisplay.leftDockOverlay);\n elements.root.dataset.editorLayoutRightOverlay = String(dockDisplay.rightDockOverlay);\n elements.root.dataset.editorLayoutBottomOverlay = String(dockDisplay.bottomDockOverlay);\n\n elements.sceneFrame.style.left = `${leftEdge}px`;\n elements.sceneFrame.style.right = `${rightEdge}px`;\n elements.sceneFrame.style.bottom = `${bottomEdge}px`;\n\n elements.leftDock.style.display = dockDisplay.leftDockVisible ? 'flex' : 'none';\n elements.leftDock.style.width = `${leftDockWidth}px`;\n elements.leftDock.style.bottom = dockDisplay.leftDockOverlay ? '0' : `${bottomEdge}px`;\n elements.leftDock.style.zIndex = dockDisplay.leftDockOverlay ? '6' : '';\n elements.leftDock.style.boxShadow = dockDisplay.leftDockOverlay ? 'var(--fps-editor-shadow-panel)' : '';\n\n elements.rightDock.style.display = dockDisplay.rightDockVisible ? 'flex' : 'none';\n elements.rightDock.style.width = `${rightDockWidth}px`;\n elements.rightDock.style.zIndex = dockDisplay.rightDockOverlay ? '6' : '';\n elements.rightDock.style.boxShadow = dockDisplay.rightDockOverlay ? 'var(--fps-editor-shadow-panel)' : '';\n\n elements.bottomDock.style.display = dockDisplay.bottomDockVisible ? 'flex' : 'none';\n elements.bottomDock.style.left = '0';\n elements.bottomDock.style.right = dockDisplay.bottomDockOverlay ? '0' : `${rightEdge}px`;\n elements.bottomDock.style.height = `${bottomDockHeight}px`;\n elements.bottomDock.style.zIndex = dockDisplay.bottomDockOverlay ? '6' : '';\n elements.bottomDock.style.boxShadow = dockDisplay.bottomDockOverlay ? 'var(--fps-editor-shadow-panel)' : '';\n\n elements.leftResizer.style.display = projectedVisibility.leftVisible ? '' : 'none';\n elements.leftResizer.style.left = `${projectedLayout.leftWidth - Math.ceil(RESIZER_THICKNESS / 2)}px`;\n elements.leftResizer.style.top = '0';\n elements.leftResizer.style.bottom = `${bottomEdge}px`;\n\n elements.rightResizer.style.display = projectedVisibility.rightVisible ? '' : 'none';\n elements.rightResizer.style.right = `${projectedLayout.rightWidth - Math.ceil(RESIZER_THICKNESS / 2)}px`;\n elements.rightResizer.style.top = '0';\n elements.rightResizer.style.bottom = '0';\n\n elements.bottomResizer.style.display = projectedVisibility.bottomVisible ? '' : 'none';\n elements.bottomResizer.style.left = '0';\n elements.bottomResizer.style.right = `${rightEdge}px`;\n elements.bottomResizer.style.bottom = `${projectedLayout.bottomHeight - Math.ceil(RESIZER_THICKNESS / 2)}px`;\n\n elements.leftToggle.style.left = dockDisplay.leftDockVisible ? `${Math.max(6, leftDockWidth - 13)}px` : '6px';\n elements.leftToggle.style.top = '43px';\n elements.leftToggle.disabled = false;\n elements.leftToggle.style.opacity = '';\n elements.leftToggle.style.cursor = 'pointer';\n elements.leftToggle.title = dockDisplay.leftDockVisible ? '隐藏层级面板' : '显示层级面板';\n elements.leftToggle.setAttribute('aria-label', elements.leftToggle.title);\n\n elements.rightToggle.style.right = dockDisplay.rightDockVisible ? `${Math.max(6, rightDockWidth - 13)}px` : '6px';\n elements.rightToggle.style.top = '43px';\n elements.rightToggle.disabled = false;\n elements.rightToggle.style.opacity = '';\n elements.rightToggle.style.cursor = 'pointer';\n elements.rightToggle.title = dockDisplay.rightDockVisible ? '隐藏检查器面板' : '显示检查器面板';\n elements.rightToggle.setAttribute('aria-label', elements.rightToggle.title);\n\n elements.bottomToggle.style.left = '50%';\n elements.bottomToggle.style.transform = 'translateX(-50%)';\n elements.bottomToggle.style.bottom = dockDisplay.bottomDockVisible ? `${Math.max(6, bottomDockHeight - 13)}px` : '6px';\n elements.bottomToggle.disabled = false;\n elements.bottomToggle.style.opacity = '';\n elements.bottomToggle.style.cursor = 'pointer';\n elements.bottomToggle.title = dockDisplay.bottomDockVisible ? '隐藏资产/历史面板' : '显示资产/历史面板';\n elements.bottomToggle.setAttribute('aria-label', elements.bottomToggle.title);\n\n if (save) persist();\n options.onAfterApply?.(projectedLayout);\n };\n\n const onPointerMove = (event: PointerEvent): void => {\n if (!drag) return;\n const viewport = readViewport(doc);\n if (drag.area === 'left') {\n layout = {\n ...layout,\n leftWidth: clampNumber(\n event.clientX,\n WORKBENCH_LAYOUT_LIMITS.leftMin,\n resolveLeftMax(viewport, projectedVisibility.rightVisible ? layout.rightWidth : 0),\n ),\n };\n } else if (drag.area === 'right') {\n layout = {\n ...layout,\n rightWidth: clampNumber(\n viewport.width - event.clientX,\n WORKBENCH_LAYOUT_LIMITS.rightMin,\n resolveRightMax(viewport, projectedVisibility.leftVisible),\n ),\n };\n } else {\n const bottomMax = Math.max(\n WORKBENCH_LAYOUT_LIMITS.bottomMin,\n Math.min(\n WORKBENCH_LAYOUT_LIMITS.bottomMax,\n Math.floor(viewport.height * 0.45),\n viewport.height - WORKBENCH_LAYOUT_LIMITS.sceneMinHeight,\n ),\n );\n layout = {\n ...layout,\n bottomHeight: clampNumber(viewport.height - event.clientY, WORKBENCH_LAYOUT_LIMITS.bottomMin, bottomMax),\n };\n }\n apply();\n };\n\n const onPointerUp = (): void => {\n if (!drag) return;\n drag = null;\n doc.body.style.cursor = '';\n doc.body.style.userSelect = '';\n win?.removeEventListener('pointermove', onPointerMove);\n win?.removeEventListener('pointerup', onPointerUp);\n persist();\n };\n\n const beginDrag = (area: 'left' | 'right' | 'bottom', event: PointerEvent): void => {\n if (event.button !== 0) return;\n event.preventDefault();\n drag = { area };\n doc.body.style.cursor = area === 'bottom' ? 'row-resize' : 'col-resize';\n doc.body.style.userSelect = 'none';\n win?.addEventListener('pointermove', onPointerMove);\n win?.addEventListener('pointerup', onPointerUp);\n };\n\n const onLeftPointerDown = (event: PointerEvent): void => beginDrag('left', event);\n const onRightPointerDown = (event: PointerEvent): void => beginDrag('right', event);\n const onBottomPointerDown = (event: PointerEvent): void => beginDrag('bottom', event);\n const onLeftDoubleClick = (): void => {\n layout = { ...layout, leftWidth: DEFAULT_WORKBENCH_LAYOUT.leftWidth };\n apply(true);\n };\n const onRightDoubleClick = (): void => {\n layout = { ...layout, rightWidth: DEFAULT_WORKBENCH_LAYOUT.rightWidth };\n apply(true);\n };\n const onBottomDoubleClick = (): void => {\n layout = { ...layout, bottomHeight: DEFAULT_WORKBENCH_LAYOUT.bottomHeight };\n apply(true);\n };\n const onLeftToggle = (): void => {\n if (projectedVisibility.leftAutoHidden) {\n overlay = { ...overlay, leftOpen: !overlay.leftOpen };\n apply();\n return;\n }\n layout = { ...layout, leftCollapsed: !layout.leftCollapsed };\n apply(true);\n };\n const onRightToggle = (): void => {\n if (projectedVisibility.rightAutoHidden) {\n overlay = { ...overlay, rightOpen: !overlay.rightOpen };\n apply();\n return;\n }\n layout = { ...layout, rightCollapsed: !layout.rightCollapsed };\n apply(true);\n };\n const onBottomToggle = (): void => {\n if (projectedVisibility.bottomAutoHidden) {\n overlay = { ...overlay, bottomOpen: !overlay.bottomOpen };\n apply();\n return;\n }\n layout = { ...layout, bottomCollapsed: !layout.bottomCollapsed };\n apply(true);\n };\n const onResize = (): void => apply();\n\n elements.leftResizer.addEventListener('pointerdown', onLeftPointerDown);\n elements.rightResizer.addEventListener('pointerdown', onRightPointerDown);\n elements.bottomResizer.addEventListener('pointerdown', onBottomPointerDown);\n elements.leftResizer.addEventListener('dblclick', onLeftDoubleClick);\n elements.rightResizer.addEventListener('dblclick', onRightDoubleClick);\n elements.bottomResizer.addEventListener('dblclick', onBottomDoubleClick);\n elements.leftToggle.addEventListener('click', onLeftToggle);\n elements.rightToggle.addEventListener('click', onRightToggle);\n elements.bottomToggle.addEventListener('click', onBottomToggle);\n win?.addEventListener('resize', onResize);\n apply();\n\n return {\n getLayout() {\n return { ...layout };\n },\n refresh() {\n apply();\n },\n setLayout(nextLayout: LocalEditorWorkbenchLayoutState, save = false) {\n layout = normalizeLocalEditorWorkbenchUserLayout(nextLayout);\n apply(save);\n },\n setBottomCollapsed(collapsed: boolean, save = false) {\n if (layout.bottomCollapsed === collapsed) return;\n layout = { ...layout, bottomCollapsed: collapsed };\n apply(save);\n },\n reset() {\n layout = { ...DEFAULT_WORKBENCH_LAYOUT };\n apply(true);\n },\n dispose() {\n onPointerUp();\n elements.leftResizer.removeEventListener('pointerdown', onLeftPointerDown);\n elements.rightResizer.removeEventListener('pointerdown', onRightPointerDown);\n elements.bottomResizer.removeEventListener('pointerdown', onBottomPointerDown);\n elements.leftResizer.removeEventListener('dblclick', onLeftDoubleClick);\n elements.rightResizer.removeEventListener('dblclick', onRightDoubleClick);\n elements.bottomResizer.removeEventListener('dblclick', onBottomDoubleClick);\n elements.leftToggle.removeEventListener('click', onLeftToggle);\n elements.rightToggle.removeEventListener('click', onRightToggle);\n elements.bottomToggle.removeEventListener('click', onBottomToggle);\n win?.removeEventListener('resize', onResize);\n },\n };\n}\n\nfunction readViewport(doc: Document): LocalEditorWorkbenchViewport {\n const win = doc.defaultView;\n return {\n width: Math.max(320, win?.innerWidth ?? doc.documentElement.clientWidth ?? 1280),\n height: Math.max(320, win?.innerHeight ?? doc.documentElement.clientHeight ?? 720),\n };\n}\n\nfunction resolveOverlayPanelWidth(viewport: LocalEditorWorkbenchViewport, preferredWidth: number): number {\n return Math.min(preferredWidth, Math.max(260, viewport.width - 24));\n}\n\nfunction resolveOverlayPanelHeight(viewport: LocalEditorWorkbenchViewport, preferredHeight: number): number {\n return Math.min(preferredHeight, Math.max(WORKBENCH_LAYOUT_LIMITS.bottomMin, viewport.height - 64));\n}\n\nfunction resolveLeftMax(viewport: LocalEditorWorkbenchViewport, rightWidth: number): number {\n return Math.max(\n WORKBENCH_LAYOUT_LIMITS.leftMin,\n Math.min(\n WORKBENCH_LAYOUT_LIMITS.leftMax,\n viewport.width - rightWidth - WORKBENCH_LAYOUT_LIMITS.sceneMinWidth,\n ),\n );\n}\n\nfunction resolveRightMax(viewport: LocalEditorWorkbenchViewport, leftVisible: boolean): number {\n const leftWidth = leftVisible ? WORKBENCH_LAYOUT_LIMITS.leftMin : 0;\n return Math.max(\n WORKBENCH_LAYOUT_LIMITS.rightMin,\n Math.min(\n WORKBENCH_LAYOUT_LIMITS.rightMax,\n viewport.width - leftWidth - WORKBENCH_LAYOUT_LIMITS.sceneMinWidth,\n ),\n );\n}\n\nfunction clampNumber(value: unknown, min: number, max: number): number {\n const numeric = typeof value === 'number' && Number.isFinite(value) ? value : min;\n return Math.min(Math.max(numeric, min), max);\n}\n\nfunction readStoredWorkbenchLayout(doc: Document): Partial<LocalEditorWorkbenchLayoutState> | null {\n try {\n const raw = doc.defaultView?.localStorage?.getItem(LOCAL_EDITOR_WORKBENCH_LAYOUT_STORAGE_KEY);\n if (!raw) return null;\n const parsed = JSON.parse(raw) as Partial<LocalEditorWorkbenchLayoutState>;\n if (!parsed || typeof parsed !== 'object') return null;\n return parsed;\n } catch {\n return null;\n }\n}\n\nfunction writeStoredWorkbenchLayout(doc: Document, layout: LocalEditorWorkbenchLayoutState): void {\n try {\n doc.defaultView?.localStorage?.setItem(LOCAL_EDITOR_WORKBENCH_LAYOUT_STORAGE_KEY, JSON.stringify(layout));\n } catch {\n // Browsers can disable localStorage; the editor should still stay usable.\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  export { createLocalEditorViewportRevealController, isLocalEditorElementVisibleInViewport, resolveLocalEditorViewportRevealScrollTop, revealLocalEditorElementInViewport, } from './local-editor-ui-dock-panel';
2
2
  export type { LocalEditorElementRevealOptions, LocalEditorViewportRevealController, LocalEditorViewportRevealControllerOptions, LocalEditorViewportRevealInput, LocalEditorViewportScrollSnapshot, } from './local-editor-ui-dock-panel';
3
3
  export { createLocalEditorHierarchyBlankMenu, createLocalEditorHierarchyCopyShortcutAction, createLocalEditorHierarchyDeleteShortcutAction, createLocalEditorHierarchyDuplicateShortcutAction, createLocalEditorHierarchyNodeMenu, createLocalEditorHierarchyPasteShortcutAction, createLocalEditorHierarchySelectAllShortcutAction, } from './local-editor-ui-hierarchy-actions';
4
- export { createLocalEditorHierarchyController, resolveLocalEditorHierarchyCreateMarkerParentId, } from './local-editor-ui-hierarchy-controller';
4
+ export { createLocalEditorHierarchyController, resolveLocalEditorHierarchyCreateMarkerParentId, resolveLocalEditorHierarchyToolbarActiveId, } from './local-editor-ui-hierarchy-controller';
5
5
  export { resolveLocalEditorHierarchySearchRows, } from './local-editor-ui-hierarchy-view';
6
6
  export { createLocalEditorHierarchyAttachDialog, resolveLocalEditorHierarchyAttachTargets, } from './local-editor-ui-hierarchy-attach-dialog';
7
7
  export { canLocalEditorHierarchyNodeHaveChildren, canLocalEditorHierarchyNodeDelete, canLocalEditorHierarchyNodeRename, canLocalEditorHierarchyNodeToggleEnabled, createLocalEditorHierarchyTreeModel, isLocalEditorHierarchyNodeSelectable, isLocalEditorHierarchyNodeMovable, } from './local-editor-ui-hierarchy-tree';
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-ui.d.ts","sourceRoot":"","sources":["../src/local-editor-ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-editor-ui.d.ts","sourceRoot":"","sources":["../src/local-editor-ui.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { LOCAL_EDITOR_BROWSER_INSPECTOR_VEC3_AXES, resolveLocalEditorBrowserInsp
11
11
  import { DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS, DEFAULT_EDITOR_TRANSFORM_TOOL_DESCRIPTORS, } from '@fps-games/editor-core';
12
12
  export { createLocalEditorViewportRevealController, isLocalEditorElementVisibleInViewport, resolveLocalEditorViewportRevealScrollTop, revealLocalEditorElementInViewport, } from './local-editor-ui-dock-panel.js';
13
13
  export { createLocalEditorHierarchyBlankMenu, createLocalEditorHierarchyCopyShortcutAction, createLocalEditorHierarchyDeleteShortcutAction, createLocalEditorHierarchyDuplicateShortcutAction, createLocalEditorHierarchyNodeMenu, createLocalEditorHierarchyPasteShortcutAction, createLocalEditorHierarchySelectAllShortcutAction, } from './local-editor-ui-hierarchy-actions.js';
14
- export { createLocalEditorHierarchyController, resolveLocalEditorHierarchyCreateMarkerParentId, } from './local-editor-ui-hierarchy-controller.js';
14
+ export { createLocalEditorHierarchyController, resolveLocalEditorHierarchyCreateMarkerParentId, resolveLocalEditorHierarchyToolbarActiveId, } from './local-editor-ui-hierarchy-controller.js';
15
15
  export { resolveLocalEditorHierarchySearchRows, } from './local-editor-ui-hierarchy-view.js';
16
16
  export { createLocalEditorHierarchyAttachDialog, resolveLocalEditorHierarchyAttachTargets, } from './local-editor-ui-hierarchy-attach-dialog.js';
17
17
  export { canLocalEditorHierarchyNodeHaveChildren, canLocalEditorHierarchyNodeDelete, canLocalEditorHierarchyNodeRename, canLocalEditorHierarchyNodeToggleEnabled, createLocalEditorHierarchyTreeModel, isLocalEditorHierarchyNodeSelectable, isLocalEditorHierarchyNodeMovable, } from './local-editor-ui-hierarchy-tree.js';
@@ -25,6 +25,8 @@ import { createShortcutHelpPanel as createLocalEditorShortcutHelpPanel } from '.
25
25
  import { applyLocalEditorTheme, ensureLocalEditorTheme, LOCAL_EDITOR_THEME_CLASS, normalizeLocalEditorThemeName, } from './local-editor-ui-theme.js';
26
26
  import { createDefaultLocalEditorWorkbenchLayout, createLocalEditorWorkbenchLayoutController, createLocalEditorWorkbench, createSceneHeaderToolbar, createWorkbenchPanelContent, } from './local-editor-ui-workbench.js';
27
27
  import { createLocalEditorIcon, isLocalEditorIconName } from './local-editor-ui-icons.js';
28
+ import { createLocalEditorStatusCenterViewModel, resolveLocalEditorStatusDiagnostics, shouldCloseLocalEditorStatusCenter, } from './local-editor-ui-status-diagnostics.js';
29
+ import { formatLocalEditorStatusDiagnosticDetails } from './local-editor-ui-hierarchy-projection.js';
28
30
  import { resolveLocalEditorBrowserAssetKind, } from './local-editor-ui-asset-kind.js';
29
31
  import { createLocalEditorPrefabStageTitle, findLocalEditorPrefabStageStructureItem, formatLocalEditorPrefabStageComparisonPreviewStatus, LOCAL_EDITOR_PREFAB_COMPARISON_COLUMN_WIDTH_PX, resolveLocalEditorRightDockVisibility, resolveLocalEditorPrefabStageComparisonPreviewTone, resolveLocalEditorPrefabStageWorkbenchLayout, resolveLocalEditorPreviewToolSupport, shouldLocalEditorClosePerformanceMonitor, shouldLocalEditorPrefabStageBlockHierarchyShortcut, shouldShowLocalEditorPrefabComparisonColumn, shouldToggleLocalEditorPrefabComparisonShortcut, } from './local-editor-ui-prefab-stage.js';
30
32
  export { applyLocalEditorBrowserInspectorControlBinding, createLocalEditorBrowserInspectorControlRegistry, formatLocalEditorBrowserInspectorNumberValue, formatLocalEditorBrowserInspectorValue, parseLocalEditorBrowserInspectorNumberValue, resolveLocalEditorBrowserInspectorSectionStatus, resolveLocalEditorBrowserInspectorControlRegistration, } from './local-editor-ui-panels.js';
@@ -2653,6 +2655,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
2653
2655
  const undoButton = createToolbarIconButton(doc, '撤销', 'undo', '撤销');
2654
2656
  const redoButton = createToolbarIconButton(doc, '重做', 'redo', '重做');
2655
2657
  let helpOpen = false;
2658
+ let editorStatusCenterOpen = false;
2656
2659
  let performanceMonitorOpen = false;
2657
2660
  let prefabComparisonPreviewOpen = true;
2658
2661
  let assetPreviewOpen = false;
@@ -2666,7 +2669,46 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
2666
2669
  let prefabStageMainWorkbenchLayoutSnapshot = null;
2667
2670
  const editorStatusButton = createToolbarIconButton(doc, '编辑器状态', 'status', '编辑器状态');
2668
2671
  editorStatusButton.dataset.editorStatusButton = 'true';
2669
- editorStatusButton.style.cursor = 'help';
2672
+ editorStatusButton.dataset.editorStatusToggle = 'true';
2673
+ editorStatusButton.setAttribute('aria-expanded', 'false');
2674
+ const editorStatusCenter = doc.createElement('div');
2675
+ editorStatusCenter.classList.add(LOCAL_EDITOR_THEME_CLASS);
2676
+ editorStatusCenter.dataset.editorStatusCenter = 'true';
2677
+ editorStatusCenter.style.cssText = [
2678
+ 'position:fixed',
2679
+ 'z-index:2147483642',
2680
+ 'display:none',
2681
+ 'flex-direction:column',
2682
+ 'gap:8px',
2683
+ 'width:min(440px,calc(100vw - 16px))',
2684
+ 'max-height:min(520px,calc(100vh - 56px))',
2685
+ 'padding:10px',
2686
+ 'border:1px solid var(--fps-editor-border)',
2687
+ 'border-radius:4px',
2688
+ 'background:var(--fps-editor-panel)',
2689
+ 'box-shadow:var(--fps-editor-shadow-popover)',
2690
+ 'overflow:hidden',
2691
+ 'pointer-events:auto',
2692
+ ].join(';');
2693
+ const editorStatusCenterHeader = doc.createElement('div');
2694
+ editorStatusCenterHeader.style.cssText = 'display:flex;align-items:center;justify-content:space-between;gap:12px';
2695
+ const editorStatusCenterTitle = doc.createElement('div');
2696
+ editorStatusCenterTitle.textContent = '编辑器状态';
2697
+ editorStatusCenterTitle.style.cssText = 'font-size:13px;font-weight:900;color:var(--fps-editor-text-strong)';
2698
+ const editorStatusCopyAllButton = LocalEditorShared.createButton(doc, '复制全部', { icon: 'copy' });
2699
+ editorStatusCopyAllButton.dataset.editorStatusCopyAll = 'true';
2700
+ editorStatusCopyAllButton.style.cssText += ';min-height:26px;padding:3px 8px;font-size:11px';
2701
+ editorStatusCenterHeader.appendChild(editorStatusCenterTitle);
2702
+ editorStatusCenterHeader.appendChild(editorStatusCopyAllButton);
2703
+ const editorStatusCenterSummary = doc.createElement('div');
2704
+ editorStatusCenterSummary.dataset.editorStatusSummary = 'true';
2705
+ editorStatusCenterSummary.style.cssText = 'font-size:11px;line-height:1.45;color:var(--fps-editor-muted-strong)';
2706
+ const editorStatusCenterList = doc.createElement('div');
2707
+ editorStatusCenterList.dataset.editorStatusList = 'true';
2708
+ editorStatusCenterList.style.cssText = 'display:flex;flex-direction:column;gap:7px;overflow:auto;min-height:0';
2709
+ editorStatusCenter.appendChild(editorStatusCenterHeader);
2710
+ editorStatusCenter.appendChild(editorStatusCenterSummary);
2711
+ editorStatusCenter.appendChild(editorStatusCenterList);
2670
2712
  const agentBridgeStatusButton = createToolbarIconButton(doc, 'Agent Bridge 状态', 'status', 'Agent Bridge 状态');
2671
2713
  agentBridgeStatusButton.dataset.editorAgentBridgeStatusButton = 'true';
2672
2714
  agentBridgeStatusButton.style.cursor = 'help';
@@ -3322,6 +3364,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3322
3364
  workbench.sceneFrame.appendChild(prefabStagePreviewLayout.root);
3323
3365
  workbench.sceneFrame.appendChild(coordinateAxesOverlay.root);
3324
3366
  construction.appendRootChild(localTestMenu);
3367
+ construction.appendRootChild(editorStatusCenter);
3325
3368
  construction.appendRootChild(toolbarOverflowMenu);
3326
3369
  construction.appendRootChild(staticShadowBakePopover);
3327
3370
  construction.appendRootChild(snapSettingsPopover);
@@ -3329,6 +3372,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3329
3372
  construction.appendRootChild(transformActionPopover);
3330
3373
  construction.appendRootChild(overlaySettingsPopover);
3331
3374
  tooltipSurfaces.add(localTestMenu);
3375
+ tooltipSurfaces.add(editorStatusCenter);
3332
3376
  tooltipSurfaces.add(toolbarOverflowMenu);
3333
3377
  tooltipSurfaces.add(staticShadowBakePopover);
3334
3378
  tooltipSurfaces.add(snapSettingsPopover);
@@ -3525,6 +3569,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3525
3569
  applyLocalEditorTheme(assetPickerModal, activeTheme);
3526
3570
  applyLocalEditorTheme(boxSelectionOverlay, activeTheme);
3527
3571
  applyLocalEditorTheme(localTestMenu, activeTheme);
3572
+ applyLocalEditorTheme(editorStatusCenter, activeTheme);
3528
3573
  applyLocalEditorTheme(toolbarOverflowMenu, activeTheme);
3529
3574
  applyLocalEditorTheme(staticShadowBakePopover, activeTheme);
3530
3575
  applyLocalEditorTheme(snapSettingsPopover, activeTheme);
@@ -3556,6 +3601,101 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3556
3601
  localTestMenu.style.display = 'none';
3557
3602
  LocalEditorShared.applyButtonActiveState(localTestButton, false);
3558
3603
  }
3604
+ function readEditorStatusDiagnostics(state) {
3605
+ return resolveLocalEditorStatusDiagnostics(state);
3606
+ }
3607
+ function renderEditorStatusCenter(state) {
3608
+ const viewModel = createLocalEditorStatusCenterViewModel(state);
3609
+ editorStatusCenterSummary.textContent = viewModel.summary;
3610
+ editorStatusCopyAllButton.style.display = viewModel.diagnostics.length > 0 ? 'inline-flex' : 'none';
3611
+ LocalEditorShared.clearElement(editorStatusCenterList);
3612
+ if (viewModel.diagnostics.length === 0) {
3613
+ const empty = doc.createElement('div');
3614
+ empty.dataset.editorStatusEmpty = 'true';
3615
+ empty.textContent = '没有需要处理的错误或警告。';
3616
+ empty.style.cssText = 'padding:14px 8px;text-align:center;color:var(--fps-editor-muted);font-size:12px';
3617
+ editorStatusCenterList.appendChild(empty);
3618
+ return;
3619
+ }
3620
+ viewModel.entries.forEach(({ diagnostic, copyText }, index) => {
3621
+ const item = doc.createElement('div');
3622
+ item.dataset.editorStatusDiagnostic = diagnostic.code;
3623
+ item.style.cssText = [
3624
+ 'display:grid',
3625
+ 'grid-template-columns:minmax(0,1fr) auto',
3626
+ 'gap:8px',
3627
+ 'padding:8px',
3628
+ `border:1px solid ${diagnostic.severity === 'error' ? 'var(--fps-editor-danger-border)' : 'var(--fps-editor-warn-border)'}`,
3629
+ 'border-radius:3px',
3630
+ `background:${diagnostic.severity === 'error' ? 'var(--fps-editor-danger-soft)' : 'var(--fps-editor-warn-soft)'}`,
3631
+ ].join(';');
3632
+ const content = doc.createElement('div');
3633
+ content.style.cssText = 'min-width:0;display:flex;flex-direction:column;gap:4px';
3634
+ const code = doc.createElement('div');
3635
+ code.textContent = `${diagnostic.severity === 'error' ? '错误' : '警告'} · ${diagnostic.code}`;
3636
+ code.style.cssText = `font-size:11px;font-weight:900;color:${diagnostic.severity === 'error' ? 'var(--fps-editor-danger-strong)' : 'var(--fps-editor-warn)'}`;
3637
+ const message = doc.createElement('div');
3638
+ message.textContent = diagnostic.message;
3639
+ message.style.cssText = 'font-size:12px;line-height:1.45;color:var(--fps-editor-text-strong);overflow-wrap:anywhere';
3640
+ const meta = doc.createElement('div');
3641
+ const diagnosticLocation = [diagnostic.scopeId, diagnostic.rowId, diagnostic.targetId]
3642
+ .filter(value => value !== undefined && value !== null && value !== '')
3643
+ .join(' / ');
3644
+ meta.textContent = [
3645
+ `来源: ${diagnostic.source}`,
3646
+ diagnosticLocation ? `位置: ${diagnosticLocation}` : '',
3647
+ diagnostic.documentRevision != null ? `document revision: ${diagnostic.documentRevision}` : '',
3648
+ diagnostic.projectionRevision != null ? `projection revision: ${diagnostic.projectionRevision}` : '',
3649
+ diagnostic.details ? `details: ${formatLocalEditorStatusDiagnosticDetails(diagnostic.details)}` : '',
3650
+ ].filter(Boolean).join(' · ');
3651
+ meta.style.cssText = 'font-size:10px;line-height:1.35;color:var(--fps-editor-muted);overflow-wrap:anywhere';
3652
+ meta.style.display = meta.textContent ? 'block' : 'none';
3653
+ content.appendChild(code);
3654
+ content.appendChild(message);
3655
+ content.appendChild(meta);
3656
+ const copy = createToolbarIconButton(doc, `复制诊断 ${index + 1}`, 'copy', '复制该诊断');
3657
+ copy.dataset.editorStatusCopy = String(index);
3658
+ copy.addEventListener('click', event => {
3659
+ event.stopPropagation();
3660
+ copyTextToClipboard(doc.defaultView, copyText);
3661
+ });
3662
+ item.appendChild(content);
3663
+ item.appendChild(copy);
3664
+ editorStatusCenterList.appendChild(item);
3665
+ });
3666
+ }
3667
+ function closeEditorStatusCenter() {
3668
+ editorStatusCenterOpen = false;
3669
+ editorStatusCenter.style.display = 'none';
3670
+ editorStatusButton.setAttribute('aria-expanded', 'false');
3671
+ LocalEditorShared.applyButtonActiveState(editorStatusButton, false);
3672
+ }
3673
+ function openEditorStatusCenter() {
3674
+ closeLocalTestMenu();
3675
+ closeToolbarOverflowMenu();
3676
+ closeSnapSettingsPopover();
3677
+ closePlacementSettingsPopover();
3678
+ closeTransformActionPopover();
3679
+ closeOverlaySettingsPopover();
3680
+ renderEditorStatusCenter(currentState);
3681
+ const rect = editorStatusButton.getBoundingClientRect();
3682
+ const win = doc.defaultView;
3683
+ const viewportWidth = win?.innerWidth ?? doc.documentElement.clientWidth;
3684
+ const width = Math.min(440, Math.max(280, viewportWidth - 16));
3685
+ editorStatusCenter.style.width = `${width}px`;
3686
+ editorStatusCenter.style.left = `${Math.max(8, Math.min(rect.right - width, viewportWidth - width - 8))}px`;
3687
+ editorStatusCenter.style.top = `${Math.max(8, rect.bottom + 5)}px`;
3688
+ editorStatusCenter.style.display = 'flex';
3689
+ editorStatusCenterOpen = true;
3690
+ editorStatusButton.setAttribute('aria-expanded', 'true');
3691
+ LocalEditorShared.applyButtonActiveState(editorStatusButton, true);
3692
+ }
3693
+ function toggleEditorStatusCenter() {
3694
+ if (editorStatusCenterOpen)
3695
+ closeEditorStatusCenter();
3696
+ else
3697
+ openEditorStatusCenter();
3698
+ }
3559
3699
  function closeSnapSettingsPopover() {
3560
3700
  snapSettingsOpen = false;
3561
3701
  snapSettingsPopover.style.display = 'none';
@@ -3991,12 +4131,22 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
3991
4131
  else
3992
4132
  openToolbarOverflowMenu();
3993
4133
  };
4134
+ const onEditorStatusButtonClick = (event) => {
4135
+ event.stopPropagation();
4136
+ toggleEditorStatusCenter();
4137
+ };
4138
+ const onEditorStatusCopyAllClick = (event) => {
4139
+ event.stopPropagation();
4140
+ copyTextToClipboard(doc.defaultView, createLocalEditorStatusCenterViewModel(currentState).copyAllText);
4141
+ };
3994
4142
  const onToolbarOverflowPointerDown = (event) => {
3995
4143
  const target = event.target instanceof HTMLElement ? event.target : null;
3996
4144
  if (!target)
3997
4145
  return;
3998
4146
  if (target.closest('[data-editor-local-test-menu]') || target.closest('[data-editor-local-test-toggle]'))
3999
4147
  return;
4148
+ if (target.closest('[data-editor-status-center]') || target.closest('[data-editor-status-toggle]'))
4149
+ return;
4000
4150
  if (target.closest('[data-editor-toolbar-overflow-menu]') || target.closest('[data-editor-toolbar-overflow-toggle]'))
4001
4151
  return;
4002
4152
  if (target.closest('[data-transform-snap-settings-popover]') || target.closest('[data-transform-snap-toggle]'))
@@ -4008,6 +4158,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
4008
4158
  if (target.closest('[data-viewport-overlay-settings-popover]') || target.closest('[data-viewport-overlay-settings-toggle]'))
4009
4159
  return;
4010
4160
  closeLocalTestMenu();
4161
+ closeEditorStatusCenter();
4011
4162
  closeToolbarOverflowMenu();
4012
4163
  if (!target.closest('[data-editor-toolbar-static-shadow-bake-popover]'))
4013
4164
  closeStaticShadowBakePopover();
@@ -4023,6 +4174,8 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
4023
4174
  construction.addCleanup('toolbar-resize-observer', () => toolbarResizeObserver?.disconnect());
4024
4175
  toolbarOverflowButton.addEventListener('click', onToolbarOverflowButtonClick);
4025
4176
  localTestButton.addEventListener('click', onLocalTestButtonClick);
4177
+ editorStatusButton.addEventListener('click', onEditorStatusButtonClick);
4178
+ editorStatusCopyAllButton.addEventListener('click', onEditorStatusCopyAllClick);
4026
4179
  doc.addEventListener('pointerdown', onToolbarOverflowPointerDown);
4027
4180
  construction.addCleanup('toolbar-overflow-pointerdown', () => {
4028
4181
  doc.removeEventListener('pointerdown', onToolbarOverflowPointerDown);
@@ -4926,7 +5079,11 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
4926
5079
  callbacks.onAssetAction?.(createAssetBrowserActionInput(actionId, asset, createCurrentAssetBrowserActionContext()));
4927
5080
  });
4928
5081
  assetPanel.addEventListener('contextmenu', (event) => {
4929
- const target = event.target instanceof HTMLElement ? event.target : null;
5082
+ if (!inputRouter.shouldPreventBrowserContextMenu(event))
5083
+ return;
5084
+ const target = inputRouter.getEventTarget(event);
5085
+ if (!target)
5086
+ return;
4930
5087
  const assetButton = target?.closest('[data-editor-asset-id]');
4931
5088
  const browserAssetId = assetButton?.dataset.editorAssetId;
4932
5089
  if (!browserAssetId || !currentState)
@@ -4934,8 +5091,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
4934
5091
  const asset = currentState.assets.find(candidate => candidate.id === browserAssetId);
4935
5092
  if (!asset)
4936
5093
  return;
4937
- event.preventDefault();
4938
- event.stopPropagation();
5094
+ inputRouter.claimContextMenu(event);
4939
5095
  suppressAssetBrowserRevealIfVisible(assetButton);
4940
5096
  callbacks.onSelectAsset?.(browserAssetId);
4941
5097
  contextMenu.open({
@@ -5138,11 +5294,14 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5138
5294
  const materialSlotSelectTarget = target?.closest('[data-editor-inspector-material-slot-select]');
5139
5295
  const materialSlotSelectionId = materialSlotSelectTarget?.dataset.editorInspectorMaterialSlotSelect;
5140
5296
  if (materialSlotSelectionId) {
5297
+ const precondition = createCurrentHierarchyCommandPrecondition();
5298
+ if (!precondition)
5299
+ return;
5141
5300
  callbacks.onSelectHierarchyItem?.({
5142
5301
  id: materialSlotSelectionId,
5143
5302
  additive: event.shiftKey && !event.metaKey && !event.ctrlKey,
5144
5303
  toggle: event.metaKey || event.ctrlKey,
5145
- });
5304
+ }, precondition);
5146
5305
  return;
5147
5306
  }
5148
5307
  const copyButton = target?.closest('[data-editor-inspector-asset-copy]');
@@ -5458,6 +5617,16 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5458
5617
  : snap.scaleStep;
5459
5618
  return Number.isFinite(value) ? String(value) : '';
5460
5619
  }
5620
+ function createCurrentHierarchyCommandPrecondition() {
5621
+ if (!currentState)
5622
+ return null;
5623
+ const documentRevision = currentState.documentRevision ?? 0;
5624
+ return {
5625
+ scopeId: currentState.prefabStage ? `prefab-stage:${currentState.prefabStage.assetId}` : 'scene',
5626
+ documentRevision,
5627
+ projectionRevision: currentState.hierarchyProjectionRevision ?? documentRevision,
5628
+ };
5629
+ }
5461
5630
  function isTransformActionEnabled(action, operationState) {
5462
5631
  return action.startsWith('align-')
5463
5632
  ? operationState.canAlign
@@ -5673,23 +5842,32 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5673
5842
  const transformStatusText = transformTool?.dragPhase === 'dragging'
5674
5843
  ? `正在拖拽 ${transformTool.draggingNodeId ?? '选择对象'}`
5675
5844
  : LocalEditorShared.toTransformToolStatusLabel(transformTool?.activeTool ?? 'select', transformTool?.activeSpace ?? 'world');
5676
- const statusToneColor = state.statusTone === 'error'
5845
+ const statusViewModel = createLocalEditorStatusCenterViewModel(state);
5846
+ const statusDiagnostics = statusViewModel.diagnostics;
5847
+ const resolvedDiagnosticTone = statusViewModel.severity;
5848
+ const diagnosticTone = resolvedDiagnosticTone === 'default' ? state.statusTone : resolvedDiagnosticTone;
5849
+ const statusToneColor = diagnosticTone === 'error'
5677
5850
  ? 'var(--fps-editor-danger-strong)'
5678
- : state.statusTone === 'warning'
5851
+ : diagnosticTone === 'warning'
5679
5852
  ? 'var(--fps-editor-warn)'
5680
- : state.statusTone === 'success'
5853
+ : diagnosticTone === 'success'
5681
5854
  ? 'var(--fps-editor-success)'
5682
5855
  : 'var(--fps-editor-muted)';
5856
+ setToolbarButtonIcon(doc, editorStatusButton, statusViewModel.icon);
5683
5857
  setToolbarButtonTooltip(editorStatusButton, [
5684
5858
  `编辑器状态:${editorStatusText}`,
5685
5859
  state.statusDetails && state.statusDetails !== state.status ? state.statusDetails : '',
5686
5860
  transformStatusText,
5687
5861
  LocalEditorShared.toTransformOperationStatusLabel(transformOperations.settings),
5862
+ statusDiagnostics.length > 0 ? `${statusDiagnostics.length} 条诊断,点击查看并复制` : '',
5688
5863
  ].filter(Boolean).join(' · '));
5689
5864
  editorStatusButton.style.color = statusToneColor;
5690
- editorStatusButton.style.borderColor = state.statusTone == null || state.statusTone === 'default'
5865
+ editorStatusButton.style.borderColor = diagnosticTone == null || diagnosticTone === 'default'
5691
5866
  ? 'var(--fps-editor-border)'
5692
5867
  : statusToneColor;
5868
+ editorStatusButton.dataset.editorStatusSeverity = diagnosticTone ?? 'default';
5869
+ if (editorStatusCenterOpen)
5870
+ renderEditorStatusCenter(state);
5693
5871
  const agentBridgeStatusColor = resolveAgentBridgeStatusToneColor(state.agentBridge);
5694
5872
  agentBridgeStatusButton.style.display = inEditor ? 'inline-flex' : 'none';
5695
5873
  agentBridgeStatusButton.style.color = agentBridgeStatusColor;
@@ -5771,8 +5949,12 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
5771
5949
  localTestButton.disabled = !isPreviewToolEnabled('local-test') || !localTestActionsEnabled;
5772
5950
  if (!inEditor || !localTestActionsEnabled || localTestGroup.style.display === 'none')
5773
5951
  closeLocalTestMenu();
5774
- if (!inEditor)
5952
+ if (!inEditor) {
5775
5953
  helpOpen = false;
5954
+ if (shouldCloseLocalEditorStatusCenter({ inEditor, open: editorStatusCenterOpen })) {
5955
+ closeEditorStatusCenter();
5956
+ }
5957
+ }
5776
5958
  if (shouldLocalEditorClosePerformanceMonitor({ inEditor, inPrefabStage, performanceMonitorOpen })) {
5777
5959
  setPerformanceMonitorOpen(false);
5778
5960
  }
@@ -6125,6 +6307,8 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6125
6307
  toolbarOverflowButton.removeEventListener('click', onToolbarOverflowButtonClick);
6126
6308
  });
6127
6309
  run('local-test-click', () => localTestButton.removeEventListener('click', onLocalTestButtonClick));
6310
+ run('editor-status-click', () => editorStatusButton.removeEventListener('click', onEditorStatusButtonClick));
6311
+ run('editor-status-copy-all-click', () => editorStatusCopyAllButton.removeEventListener('click', onEditorStatusCopyAllClick));
6128
6312
  run('toolbar-overflow-pointerdown', () => {
6129
6313
  doc.removeEventListener('pointerdown', onToolbarOverflowPointerDown);
6130
6314
  });
@@ -6134,6 +6318,7 @@ function createLocalEditorBrowserUiImplementation(options, construction) {
6134
6318
  run('host-chrome', () => hostChrome.remove());
6135
6319
  run('workbench-root', () => workbench.root.remove());
6136
6320
  run('local-test-menu', () => localTestMenu.remove());
6321
+ run('editor-status-center', () => editorStatusCenter.remove());
6137
6322
  run('toolbar-overflow-menu', () => toolbarOverflowMenu.remove());
6138
6323
  run('static-shadow-bake-popover', () => staticShadowBakePopover.remove());
6139
6324
  run('snap-settings-popover', () => snapSettingsPopover.remove());