@fps-games/editor 0.2.0-beta.3 → 0.2.1-beta.1

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 (1400) hide show
  1. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.js +32 -17
  3. package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
  4. package/dist/agent-bridge/capabilities/hierarchy.d.ts +4 -0
  5. package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +1 -0
  6. package/dist/agent-bridge/capabilities/hierarchy.js +209 -0
  7. package/dist/agent-bridge/capabilities/hierarchy.js.map +1 -0
  8. package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
  9. package/dist/agent-bridge/capabilities/prefabs.js +243 -60
  10. package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
  11. package/dist/agent-bridge/capabilities/scene-objects.d.ts +3 -4
  12. package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
  13. package/dist/agent-bridge/capabilities/scene-objects.js +111 -25
  14. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  15. package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
  16. package/dist/agent-bridge/capabilities/selection.js +8 -5
  17. package/dist/agent-bridge/capabilities/selection.js.map +1 -1
  18. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  19. package/dist/agent-bridge/capabilities/shadows.js +839 -67
  20. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  21. package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
  22. package/dist/agent-bridge/capabilities/transform.js +6 -4
  23. package/dist/agent-bridge/capabilities/transform.js.map +1 -1
  24. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
  25. package/dist/agent-bridge/capabilities/ui-regions.js +3 -1
  26. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  27. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  28. package/dist/agent-bridge/capabilities/viewport.js +92 -47
  29. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  30. package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
  31. package/dist/agent-bridge/capability-sources.js +2 -0
  32. package/dist/agent-bridge/capability-sources.js.map +1 -1
  33. package/dist/agent-bridge/register.d.ts.map +1 -1
  34. package/dist/agent-bridge/register.js +194 -0
  35. package/dist/agent-bridge/register.js.map +1 -1
  36. package/dist/agent-bridge/shared.d.ts +232 -7
  37. package/dist/agent-bridge/shared.d.ts.map +1 -1
  38. package/dist/agent-bridge/shared.js +174 -0
  39. package/dist/agent-bridge/shared.js.map +1 -1
  40. package/dist/agent-bridge/source-types.d.ts +17 -1
  41. package/dist/agent-bridge/source-types.d.ts.map +1 -1
  42. package/dist/agent-bridge/source-types.js.map +1 -1
  43. package/dist/build-info.json +57 -42
  44. package/dist/index.d.ts +7 -6
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +4 -3
  47. package/dist/index.js.map +1 -1
  48. package/dist/internal/babylon-preview-engine.d.ts +3 -0
  49. package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
  50. package/dist/internal/babylon-preview-engine.js +11 -0
  51. package/dist/internal/babylon-preview-engine.js.map +1 -0
  52. package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
  53. package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
  54. package/dist/internal/product-local-editor-cleanup.js +20 -0
  55. package/dist/internal/product-local-editor-cleanup.js.map +1 -0
  56. package/dist/local-editor-agent-actions.d.ts +2 -4
  57. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  58. package/dist/local-editor-agent-actions.js +61 -33
  59. package/dist/local-editor-agent-actions.js.map +1 -1
  60. package/dist/local-editor-agent-context.d.ts +5 -5
  61. package/dist/local-editor-agent-context.d.ts.map +1 -1
  62. package/dist/local-editor-agent-context.js.map +1 -1
  63. package/dist/local-editor-harness.d.ts +340 -35
  64. package/dist/local-editor-harness.d.ts.map +1 -1
  65. package/dist/local-editor-harness.js +3854 -1118
  66. package/dist/local-editor-harness.js.map +1 -1
  67. package/dist/local-editor-marker-graph.d.ts +15 -15
  68. package/dist/local-editor-marker-graph.d.ts.map +1 -1
  69. package/dist/local-editor-marker-graph.js +3 -0
  70. package/dist/local-editor-marker-graph.js.map +1 -1
  71. package/dist/local-editor-performance-stats.d.ts +3 -2
  72. package/dist/local-editor-performance-stats.d.ts.map +1 -1
  73. package/dist/local-editor-performance-stats.js.map +1 -1
  74. package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
  75. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
  76. package/dist/local-editor-prefab-stage-transaction.js +45 -0
  77. package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
  78. package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
  79. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  80. package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
  81. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  82. package/dist/local-editor-tools.d.ts +18 -0
  83. package/dist/local-editor-tools.d.ts.map +1 -0
  84. package/dist/local-editor-tools.js +53 -0
  85. package/dist/local-editor-tools.js.map +1 -0
  86. package/dist/playable-babylon-rendering.d.ts +9 -0
  87. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  88. package/dist/playable-babylon-rendering.js +162 -6
  89. package/dist/playable-babylon-rendering.js.map +1 -1
  90. package/dist/playable-local-editor-entry.d.ts +68 -0
  91. package/dist/playable-local-editor-entry.d.ts.map +1 -0
  92. package/dist/playable-local-editor-entry.js +424 -0
  93. package/dist/playable-local-editor-entry.js.map +1 -0
  94. package/dist/playable-local-editor-host.d.ts +51 -29
  95. package/dist/playable-local-editor-host.d.ts.map +1 -1
  96. package/dist/playable-local-editor-host.js +23 -11
  97. package/dist/playable-local-editor-host.js.map +1 -1
  98. package/dist/playable-product-local-editor.d.ts +10 -12
  99. package/dist/playable-product-local-editor.d.ts.map +1 -1
  100. package/dist/playable-product-local-editor.js +178 -85
  101. package/dist/playable-product-local-editor.js.map +1 -1
  102. package/dist/playable-product-projection-preview.d.ts +4 -1
  103. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  104. package/dist/playable-product-projection-preview.js +122 -5
  105. package/dist/playable-product-projection-preview.js.map +1 -1
  106. package/dist/playable-product-rendering.d.ts +12 -0
  107. package/dist/playable-product-rendering.d.ts.map +1 -1
  108. package/dist/playable-product-rendering.js +128 -6
  109. package/dist/playable-product-rendering.js.map +1 -1
  110. package/dist/playable-product-scene-capabilities.d.ts +24 -7
  111. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  112. package/dist/playable-product-scene-capabilities.js +172 -15
  113. package/dist/playable-product-scene-capabilities.js.map +1 -1
  114. package/dist/playable-project-mode.d.ts +17 -0
  115. package/dist/playable-project-mode.d.ts.map +1 -0
  116. package/dist/playable-project-mode.js +2 -0
  117. package/dist/playable-project-mode.js.map +1 -0
  118. package/dist/playable-runtime-babylon.d.ts +3 -6
  119. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  120. package/dist/playable-runtime-babylon.js +1 -5
  121. package/dist/playable-runtime-babylon.js.map +1 -1
  122. package/dist/playable-sdk.d.ts +16 -9
  123. package/dist/playable-sdk.d.ts.map +1 -1
  124. package/dist/playable-sdk.js +6 -4
  125. package/dist/playable-sdk.js.map +1 -1
  126. package/dist/playable-standard-project.d.ts +23 -14
  127. package/dist/playable-standard-project.d.ts.map +1 -1
  128. package/dist/playable-standard-project.js +53 -19
  129. package/dist/playable-standard-project.js.map +1 -1
  130. package/dist/vite-client.d.ts +4 -0
  131. package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
  132. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
  133. package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
  134. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
  135. package/node_modules/@babel/parser/lib/index.js +0 -1
  136. package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
  137. package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
  138. package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
  139. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
  140. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
  141. package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
  142. package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
  143. package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
  144. package/node_modules/@babel/types/lib/builders/productions.js +0 -1
  145. package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
  146. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
  147. package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
  148. package/node_modules/@babel/types/lib/clone/clone.js +0 -1
  149. package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
  150. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
  151. package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
  152. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
  153. package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
  154. package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
  155. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
  156. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
  157. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
  158. package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
  159. package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
  160. package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
  161. package/node_modules/@babel/types/lib/constants/index.js +0 -1
  162. package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
  163. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
  164. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
  165. package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
  166. package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
  167. package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
  168. package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
  169. package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
  170. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
  171. package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
  172. package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
  173. package/node_modules/@babel/types/lib/definitions/core.js +0 -1
  174. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
  175. package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
  176. package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
  177. package/node_modules/@babel/types/lib/definitions/index.js +0 -1
  178. package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
  179. package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
  180. package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
  181. package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
  182. package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
  183. package/node_modules/@babel/types/lib/index.js +0 -1
  184. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
  185. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
  186. package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
  187. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
  188. package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
  189. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
  190. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
  191. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
  192. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
  193. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
  194. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
  195. package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
  196. package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
  197. package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
  198. package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
  199. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
  200. package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
  201. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
  202. package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
  203. package/node_modules/@babel/types/lib/validators/is.js +0 -1
  204. package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
  205. package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
  206. package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
  207. package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
  208. package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
  209. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
  210. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
  211. package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
  212. package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
  213. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
  214. package/node_modules/@babel/types/lib/validators/isType.js +0 -1
  215. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
  216. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
  217. package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
  218. package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
  219. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
  220. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
  221. package/node_modules/@babel/types/lib/validators/validate.js +0 -1
  222. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
  223. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
  224. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
  225. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
  226. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
  227. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
  228. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
  229. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
  230. package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
  231. package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
  232. package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
  233. package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
  234. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
  235. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
  236. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
  237. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
  238. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
  239. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
  240. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
  241. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
  242. package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
  243. package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
  244. package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
  245. package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
  246. package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
  247. package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
  248. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
  249. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
  250. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
  251. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
  252. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
  253. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
  254. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
  255. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
  256. package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
  257. package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
  258. package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
  259. package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
  260. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
  261. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
  262. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
  263. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
  264. package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
  265. package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
  266. package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
  267. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
  268. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
  269. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
  270. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
  271. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
  272. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
  273. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
  274. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
  275. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
  276. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
  277. package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
  278. package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
  279. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
  280. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
  281. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
  282. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
  283. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
  284. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
  285. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
  286. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
  287. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
  288. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
  289. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
  290. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
  291. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
  292. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
  293. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
  294. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
  295. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
  296. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
  297. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
  298. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
  299. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
  300. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
  301. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
  302. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
  303. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
  304. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
  305. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
  306. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
  307. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
  308. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
  309. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
  310. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
  311. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
  312. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
  313. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
  314. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
  315. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
  316. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
  317. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
  318. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
  319. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
  320. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
  321. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
  322. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
  323. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
  324. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
  325. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
  326. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
  327. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
  328. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
  329. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
  330. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
  331. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
  332. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
  333. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
  334. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
  335. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
  336. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
  337. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
  338. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
  339. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
  340. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
  341. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
  342. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
  343. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
  344. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
  345. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
  346. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
  347. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
  348. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
  349. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
  350. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
  351. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
  352. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
  353. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
  354. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
  355. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
  356. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
  357. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
  358. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
  359. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
  360. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
  361. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
  362. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
  363. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
  364. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
  365. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
  366. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
  367. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
  368. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
  369. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
  370. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
  371. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
  372. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
  373. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
  374. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
  375. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
  376. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
  377. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
  378. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
  379. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
  380. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
  381. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
  382. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
  383. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
  384. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
  385. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
  386. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
  387. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
  388. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
  389. package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
  390. package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
  391. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
  392. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
  393. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
  394. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
  395. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
  396. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
  397. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
  398. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
  399. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
  400. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
  401. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
  402. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
  403. package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
  404. package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
  405. package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
  406. package/node_modules/@babylonjs/loaders/index.js +7 -0
  407. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
  408. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
  409. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
  410. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
  411. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
  412. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
  413. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
  414. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
  415. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
  416. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
  417. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
  418. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
  419. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
  420. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
  421. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
  422. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
  423. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
  424. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
  425. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
  426. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
  427. package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
  428. package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
  429. package/node_modules/@babylonjs/loaders/license.md +71 -0
  430. package/node_modules/@babylonjs/loaders/package.json +49 -0
  431. package/node_modules/@babylonjs/loaders/readme.md +23 -0
  432. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
  433. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
  434. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
  435. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
  436. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
  437. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
  438. package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
  439. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  440. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
  441. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
  442. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
  443. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
  444. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
  445. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
  446. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
  447. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  448. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +2 -0
  449. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  450. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
  451. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  452. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts +4 -0
  453. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.map +1 -1
  454. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  455. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts +1 -0
  456. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
  457. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
  458. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  459. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts +14 -0
  460. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
  461. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
  462. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
  463. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
  464. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
  465. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
  466. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
  467. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
  468. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
  469. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
  470. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
  471. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  472. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
  473. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  474. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
  475. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  476. package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
  477. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  478. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
  479. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
  480. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
  481. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  482. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
  483. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
  484. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  485. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
  486. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  487. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +17 -5
  488. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  489. package/node_modules/@fps-games/editor-babylon/dist/projection.js +300 -362
  490. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  491. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
  492. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
  493. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
  494. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  495. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts +46 -0
  496. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
  497. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
  498. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
  499. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +85 -0
  500. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
  501. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1600 -0
  502. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
  503. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
  504. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
  505. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
  506. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  507. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
  508. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
  509. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
  510. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
  511. package/node_modules/@fps-games/editor-babylon/package.json +6 -5
  512. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +8 -9
  513. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  514. package/node_modules/@fps-games/editor-browser/dist/index.js +6 -7
  515. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  516. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
  517. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
  518. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
  519. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
  520. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
  521. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
  522. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
  523. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  524. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +1 -1
  525. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
  526. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +6 -0
  527. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  528. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
  529. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
  530. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  531. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.d.ts.map +1 -1
  532. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
  533. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  534. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +19 -0
  535. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
  536. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
  537. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
  538. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -5
  539. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  540. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +831 -702
  541. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  542. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts +8 -7
  543. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
  544. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
  545. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  546. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts +7 -0
  547. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
  548. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
  549. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
  550. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
  551. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  552. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
  553. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  554. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  555. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  556. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +11 -0
  557. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  558. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
  559. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  560. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +58 -25
  561. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  562. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +14 -0
  563. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
  564. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
  565. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  566. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +10 -7
  567. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  568. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +591 -639
  569. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  570. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +8 -36
  571. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
  572. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +25 -103
  573. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  574. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
  575. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
  576. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  577. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +1 -3
  578. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
  579. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
  580. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  581. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  582. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
  583. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  584. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +39 -0
  585. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
  586. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +74 -0
  587. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
  588. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
  589. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
  590. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
  591. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
  592. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
  593. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
  594. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  595. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -1
  596. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
  597. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  598. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts.map +1 -1
  599. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
  600. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  601. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +56 -301
  602. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  603. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  604. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +4 -14
  605. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  606. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +33 -119
  607. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  608. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +5 -10
  609. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  610. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +760 -524
  611. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  612. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts +2 -3
  613. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
  614. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
  615. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  616. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
  617. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
  618. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
  619. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
  620. package/node_modules/@fps-games/editor-browser/package.json +15 -4
  621. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
  622. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
  623. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
  624. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
  625. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -1
  626. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  627. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +94 -2
  628. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  629. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +26 -1
  630. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  631. package/node_modules/@fps-games/editor-core/dist/editor-session.js +77 -8
  632. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  633. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +112 -0
  634. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
  635. package/node_modules/@fps-games/editor-core/dist/editor-tools.js +613 -0
  636. package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
  637. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
  638. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
  639. package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
  640. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  641. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
  642. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  643. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  644. package/node_modules/@fps-games/editor-core/package.json +14 -6
  645. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  646. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
  647. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  648. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts +1 -1
  649. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
  650. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +1 -1
  651. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  652. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +14 -0
  653. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  654. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +49 -1
  655. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  656. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +58 -2
  657. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  658. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
  659. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
  660. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  661. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +28 -3
  662. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  663. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
  664. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  665. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts +2 -0
  666. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
  667. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
  668. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  669. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts +11 -0
  670. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
  671. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
  672. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
  673. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
  674. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
  675. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
  676. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
  677. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
  678. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
  679. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  680. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +3 -0
  681. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
  682. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +6 -0
  683. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  684. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
  685. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
  686. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  687. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts +41 -0
  688. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
  689. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
  690. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
  691. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
  692. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
  693. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
  694. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
  695. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
  696. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
  697. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
  698. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
  699. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
  700. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
  701. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
  702. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
  703. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
  704. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  705. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  706. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +1 -0
  707. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  708. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +53 -17
  709. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  710. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +16 -8
  711. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  712. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
  713. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  714. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +5 -3
  715. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  716. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +2 -1
  717. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  718. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  719. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +134 -66
  720. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  721. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +11 -0
  722. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  723. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +21 -14
  724. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  725. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +17 -9
  726. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  727. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  728. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
  729. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
  730. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  731. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
  732. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
  733. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  734. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
  735. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  736. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -0
  737. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  738. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts +7 -0
  739. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
  740. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
  741. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  742. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts +1 -1
  743. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
  744. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
  745. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  746. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts +11 -0
  747. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
  748. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
  749. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
  750. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
  751. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
  752. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
  753. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  754. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts +36 -51
  755. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
  756. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
  757. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  758. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +5 -2
  759. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  760. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -1
  761. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  762. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  763. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  764. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
  765. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  766. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +18 -7
  767. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  768. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +110 -18
  769. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  770. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +5 -0
  771. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
  772. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +6 -0
  773. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  774. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts +5 -2
  775. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  776. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
  777. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  778. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
  779. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
  780. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  781. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +16 -0
  782. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  783. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  784. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  785. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
  786. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  787. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +2 -1
  788. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
  789. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  790. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts +2 -0
  791. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
  792. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
  793. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  794. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts +1 -0
  795. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
  796. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
  797. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  798. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts +31 -0
  799. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
  800. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
  801. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
  802. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
  803. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -1
  804. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  805. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts +17 -0
  806. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
  807. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +1295 -3
  808. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  809. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  810. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +14 -0
  811. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  812. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
  813. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
  814. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  815. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.d.ts.map +1 -1
  816. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -1
  817. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  818. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +4 -0
  819. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  820. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  821. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
  822. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
  823. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  824. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.d.ts.map +1 -1
  825. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -1
  826. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  827. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +5 -0
  828. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
  829. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
  830. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  831. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts +1 -1
  832. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
  833. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -1
  834. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  835. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts +6 -0
  836. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.map +1 -1
  837. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  838. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +31 -3
  839. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  840. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +5 -2
  841. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  842. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +40 -4
  843. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  844. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  845. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
  846. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  847. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +2 -1
  848. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  849. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -0
  850. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  851. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +17 -1
  852. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  853. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +50 -2
  854. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  855. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  856. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +7 -5
  857. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  858. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +5 -6
  859. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  860. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +31 -17
  861. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  862. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +6 -0
  863. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  864. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  865. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  866. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
  867. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
  868. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
  869. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  870. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
  871. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
  872. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
  873. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
  874. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
  875. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  876. package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
  877. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  878. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  879. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
  880. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
  881. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  882. package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
  883. package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
  884. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  885. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  886. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts +107 -0
  887. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
  888. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
  889. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
  890. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
  891. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
  892. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
  893. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
  894. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
  895. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
  896. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
  897. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
  898. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
  899. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
  900. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +653 -0
  901. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
  902. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
  903. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
  904. package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
  905. package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
  906. package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
  907. package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
  908. package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
  909. package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
  910. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
  911. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
  912. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
  913. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
  914. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
  915. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
  916. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
  917. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
  918. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
  919. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
  920. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
  921. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
  922. package/node_modules/@fps-games/editor-ui/package.json +23 -0
  923. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  924. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
  925. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
  926. package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
  927. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  928. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
  929. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
  930. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
  931. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
  932. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  933. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
  934. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
  935. package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
  936. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  937. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
  938. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  939. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
  940. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
  941. package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
  942. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  943. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
  944. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
  945. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
  946. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
  947. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
  948. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
  949. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
  950. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
  951. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
  952. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
  953. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
  954. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
  955. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  956. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
  957. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
  958. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
  959. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  960. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  961. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  962. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  963. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  964. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  965. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  966. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  967. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  968. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts +6 -0
  969. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
  970. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
  971. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
  972. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
  973. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
  974. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
  975. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
  976. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
  977. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
  978. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
  979. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
  980. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
  981. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
  982. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
  983. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
  984. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
  985. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
  986. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
  987. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
  988. package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
  989. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  990. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  991. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  992. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  993. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  994. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  995. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  996. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  997. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  998. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  999. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  1000. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  1001. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  1002. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  1003. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  1004. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  1005. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  1006. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts +8 -0
  1007. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
  1008. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
  1009. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
  1010. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
  1011. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
  1012. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
  1013. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
  1014. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
  1015. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
  1016. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
  1017. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
  1018. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
  1019. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  1020. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  1021. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  1022. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  1023. package/node_modules/@playcanvas/observer/LICENSE +19 -0
  1024. package/node_modules/@playcanvas/observer/README.md +72 -0
  1025. package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
  1026. package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
  1027. package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
  1028. package/node_modules/@playcanvas/observer/package.json +78 -0
  1029. package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
  1030. package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
  1031. package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
  1032. package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
  1033. package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
  1034. package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
  1035. package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
  1036. package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
  1037. package/node_modules/@playcanvas/pcui/LICENSE +19 -0
  1038. package/node_modules/@playcanvas/pcui/README.md +164 -0
  1039. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1040. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1041. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1042. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1043. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1044. package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
  1045. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1046. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1047. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1048. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1049. package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
  1050. package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1051. package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1052. package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
  1053. package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
  1054. package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
  1055. package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1056. package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
  1057. package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
  1058. package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
  1059. package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1060. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
  1061. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1062. package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
  1063. package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
  1064. package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
  1065. package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1066. package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
  1067. package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
  1068. package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
  1069. package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
  1070. package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
  1071. package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
  1072. package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
  1073. package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1074. package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
  1075. package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
  1076. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1077. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
  1078. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
  1079. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1080. package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
  1081. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
  1082. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
  1083. package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
  1084. package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
  1085. package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
  1086. package/node_modules/@playcanvas/pcui/package.json +150 -0
  1087. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1088. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1089. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1090. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1091. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1092. package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
  1093. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1094. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1095. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1096. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1097. package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
  1098. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
  1099. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1100. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
  1101. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1102. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
  1103. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
  1104. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
  1105. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
  1106. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
  1107. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
  1108. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
  1109. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1110. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
  1111. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
  1112. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
  1113. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
  1114. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
  1115. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
  1116. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
  1117. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1118. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
  1119. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
  1120. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
  1121. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1122. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
  1123. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
  1124. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
  1125. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
  1126. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
  1127. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
  1128. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1129. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
  1130. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
  1131. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
  1132. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
  1133. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
  1134. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
  1135. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
  1136. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
  1137. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
  1138. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
  1139. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
  1140. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
  1141. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
  1142. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
  1143. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1144. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
  1145. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
  1146. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
  1147. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
  1148. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
  1149. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1150. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
  1151. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
  1152. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
  1153. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
  1154. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
  1155. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1156. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
  1157. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
  1158. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
  1159. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
  1160. package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
  1161. package/node_modules/@playcanvas/pcui/react/package.json +18 -0
  1162. package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
  1163. package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
  1164. package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1165. package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1166. package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
  1167. package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
  1168. package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
  1169. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
  1170. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
  1171. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
  1172. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
  1173. package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
  1174. package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
  1175. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
  1176. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
  1177. package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
  1178. package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
  1179. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
  1180. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
  1181. package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
  1182. package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
  1183. package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
  1184. package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
  1185. package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
  1186. package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
  1187. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
  1188. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
  1189. package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
  1190. package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
  1191. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
  1192. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
  1193. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
  1194. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
  1195. package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
  1196. package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
  1197. package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
  1198. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
  1199. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
  1200. package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
  1201. package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
  1202. package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
  1203. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
  1204. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
  1205. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
  1206. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
  1207. package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
  1208. package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
  1209. package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
  1210. package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
  1211. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
  1212. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
  1213. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
  1214. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
  1215. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
  1216. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
  1217. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
  1218. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
  1219. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
  1220. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
  1221. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
  1222. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
  1223. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
  1224. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
  1225. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
  1226. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
  1227. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
  1228. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
  1229. package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
  1230. package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
  1231. package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
  1232. package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
  1233. package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
  1234. package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
  1235. package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
  1236. package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
  1237. package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
  1238. package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1239. package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1240. package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
  1241. package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
  1242. package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
  1243. package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
  1244. package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
  1245. package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
  1246. package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
  1247. package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
  1248. package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
  1249. package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
  1250. package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
  1251. package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
  1252. package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
  1253. package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
  1254. package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
  1255. package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
  1256. package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
  1257. package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
  1258. package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
  1259. package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
  1260. package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
  1261. package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
  1262. package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
  1263. package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
  1264. package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
  1265. package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
  1266. package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
  1267. package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
  1268. package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
  1269. package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
  1270. package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
  1271. package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
  1272. package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
  1273. package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
  1274. package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
  1275. package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
  1276. package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
  1277. package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
  1278. package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
  1279. package/node_modules/babylonjs-gltf2interface/license.md +71 -0
  1280. package/node_modules/babylonjs-gltf2interface/package.json +26 -0
  1281. package/package.json +31 -19
  1282. package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
  1283. package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
  1284. package/dist/editor-plugin-hierarchy-command.js +0 -119
  1285. package/dist/editor-plugin-hierarchy-command.js.map +0 -1
  1286. package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
  1287. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
  1288. package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
  1289. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
  1290. package/node_modules/@babel/parser/lib/index.js.map +0 -1
  1291. package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
  1292. package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
  1293. package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
  1294. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
  1295. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
  1296. package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
  1297. package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
  1298. package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
  1299. package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
  1300. package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
  1301. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
  1302. package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
  1303. package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
  1304. package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
  1305. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
  1306. package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
  1307. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
  1308. package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
  1309. package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
  1310. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
  1311. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
  1312. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
  1313. package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
  1314. package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
  1315. package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
  1316. package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
  1317. package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
  1318. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
  1319. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
  1320. package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
  1321. package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
  1322. package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
  1323. package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
  1324. package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
  1325. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
  1326. package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
  1327. package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
  1328. package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
  1329. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
  1330. package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
  1331. package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
  1332. package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
  1333. package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
  1334. package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
  1335. package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
  1336. package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
  1337. package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
  1338. package/node_modules/@babel/types/lib/index.js.map +0 -1
  1339. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
  1340. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
  1341. package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
  1342. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
  1343. package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
  1344. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
  1345. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
  1346. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
  1347. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
  1348. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
  1349. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
  1350. package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
  1351. package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
  1352. package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
  1353. package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
  1354. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
  1355. package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
  1356. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
  1357. package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
  1358. package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
  1359. package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
  1360. package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
  1361. package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
  1362. package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
  1363. package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
  1364. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
  1365. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
  1366. package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
  1367. package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
  1368. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
  1369. package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
  1370. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
  1371. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
  1372. package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
  1373. package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
  1374. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
  1375. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
  1376. package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
  1377. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
  1378. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
  1379. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
  1380. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
  1381. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
  1382. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
  1383. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
  1384. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
  1385. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
  1386. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
  1387. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
  1388. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
  1389. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
  1390. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
  1391. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
  1392. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
  1393. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
  1394. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
  1395. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -92
  1396. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
  1397. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
  1398. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
  1399. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -285
  1400. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-ui-hierarchy-controller.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SelectionCommand } from '@fps-games/editor-core';\nimport {\n createLocalEditorHierarchyBlankMenu,\n createLocalEditorHierarchyCopyShortcutAction,\n createLocalEditorHierarchyDeleteShortcutAction,\n createLocalEditorHierarchyDuplicateShortcutAction,\n createLocalEditorHierarchyNodeMenu,\n createLocalEditorHierarchyPasteShortcutAction,\n createLocalEditorHierarchySelectAllShortcutAction,\n type LocalEditorHierarchyAction,\n} from './local-editor-ui-hierarchy-actions';\nimport {\n canLocalEditorHierarchyNodeHaveChildren,\n canLocalEditorHierarchyNodeRename,\n canLocalEditorHierarchyNodeToggleEnabled,\n createLocalEditorHierarchyTreeModel,\n type LocalEditorHierarchyDropResolution,\n isLocalEditorHierarchyNodeSelectable,\n isLocalEditorHierarchyNodeMovable,\n type LocalEditorHierarchyTreeModel,\n type LocalEditorHierarchyTreeNode,\n} from './local-editor-ui-hierarchy-tree';\nimport {\n resolveLocalEditorHierarchyDragOperation,\n type LocalEditorHierarchyDragLayout,\n type LocalEditorHierarchyDragLayoutRow,\n type LocalEditorHierarchyDragOperation,\n type LocalEditorHierarchyDropPreview,\n} from './local-editor-ui-hierarchy-drag-policy';\nimport {\n resolveLocalEditorHierarchyAutoScroll,\n} from './local-editor-ui-hierarchy-auto-scroll';\nimport {\n clearLocalEditorStructuredDragSession,\n createLocalEditorStructuredDragSession,\n hasLocalEditorStructuredDragSessionFeedback,\n} from './local-editor-ui-structured-drag-session';\nimport {\n renderLocalEditorHierarchyPanel,\n syncLocalEditorHierarchyDropPreview,\n} from './local-editor-ui-hierarchy-view';\nimport {\n createLocalEditorActiveHierarchyScope,\n} from './local-editor-ui-hierarchy-scope';\nimport {\n resolveLocalEditorHierarchyCommandAdapter,\n} from './local-editor-ui-hierarchy-command-adapter';\nimport {\n createLocalEditorViewportRevealController,\n} from './local-editor-ui-dock-panel';\nimport {\n createLocalEditorHierarchyAttachDialog,\n type LocalEditorHierarchyAttachConfirmResult,\n type LocalEditorHierarchyAttachTargetSelection,\n} from './local-editor-ui-hierarchy-attach-dialog';\nimport type { LocalEditorContextMenuController } from './local-editor-ui-context-menu';\nimport type { LocalEditorWorkbenchInputRouter } from './local-editor-ui-input-router';\nimport type {\n LocalEditorBrowserAssetActionInput,\n LocalEditorBrowserSceneGraphDropIntent,\n LocalEditorBrowserSceneGraphDropPlacement,\n LocalEditorBrowserSceneGraphActionResponse,\n LocalEditorBrowserHierarchyContextActionRegistration,\n LocalEditorBrowserHierarchyScope,\n LocalEditorBrowserUiCallbacks,\n LocalEditorBrowserUiState,\n LocalEditorContextAction,\n} from './local-editor-ui-types';\n\nconst HIERARCHY_DRAG_INDENT_WIDTH = 16;\n\nexport interface LocalEditorHierarchyController<TDocument = unknown> {\n render(state: LocalEditorBrowserUiState<TDocument>): void;\n handleEditShortcut(event: KeyboardEvent): boolean;\n handleDeleteShortcut(event: KeyboardEvent): boolean;\n dispose(): void;\n}\n\nexport interface LocalEditorHierarchyControllerOptions<TDocument = unknown> {\n doc: Document;\n panel: HTMLElement;\n callbacks: LocalEditorBrowserUiCallbacks;\n inputRouter: LocalEditorWorkbenchInputRouter;\n contextMenu: LocalEditorContextMenuController;\n getState: () => LocalEditorBrowserUiState<TDocument> | null;\n requestRender: () => void;\n onBeforeOpenContextMenu?: () => void;\n contextActions?: readonly LocalEditorBrowserHierarchyContextActionRegistration<TDocument>[];\n}\n\nexport function resolveLocalEditorHierarchyCreateMarkerParentId(\n activeNode: LocalEditorHierarchyTreeNode | null,\n): string | null {\n return activeNode && activeNode.item.canHaveChildren === true && activeNode.item.role !== 'marker'\n ? activeNode.id\n : null;\n}\n\nexport function createLocalEditorHierarchyController<TDocument = unknown>(\n options: LocalEditorHierarchyControllerOptions<TDocument>,\n): LocalEditorHierarchyController<TDocument> {\n const { doc, panel, callbacks, inputRouter, contextMenu, getState, requestRender } = options;\n const collapsedIdsByScope = new Map<string, Set<string>>();\n const hierarchySearchByScope = new Map<string, string>();\n let hierarchyRename: { id: string; value: string } | null = null;\n let hierarchyDrag: { id: string } | null = null;\n let hierarchyDrop: LocalEditorBrowserSceneGraphDropIntent | null = null;\n let hierarchyRootDrop = false;\n const hierarchyDragSession = createLocalEditorStructuredDragSession<\n LocalEditorHierarchyDragOperation,\n LocalEditorHierarchyDropPreview\n >();\n let hierarchyShortcutScopeActive = false;\n let hierarchyClipboard: { ids: string[]; activeId: string | null } | null = null;\n let hierarchySearchComposing = false;\n let currentModel: LocalEditorHierarchyTreeModel | null = null;\n let lastRenderedActiveId: string | null | undefined;\n let lastRenderedScopeId: string | null | undefined;\n let pendingHierarchyScrollId: string | null = null;\n let hierarchySelectionAnchorId: string | null = null;\n const attachDialog = createLocalEditorHierarchyAttachDialog({\n doc,\n getTheme: resolveActiveTheme,\n onOpenChange: open => inputRouter.setModalOpen(open, 'hierarchy-attach'),\n onConfirm: selection => submitAttachSelection(selection),\n });\n const treeViewportReveal = createLocalEditorViewportRevealController<string>({\n getViewport: findHierarchyTreeViewport,\n margin: 4,\n });\n\n const getModel = (state: LocalEditorBrowserUiState<TDocument>): LocalEditorHierarchyTreeModel => {\n if (currentModel) return currentModel;\n currentModel = createModel(state);\n return currentModel;\n };\n\n const render = (state: LocalEditorBrowserUiState<TDocument>): void => {\n const scope = resolveScope(state);\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n if (hierarchyRename && !scope.nodes.some(item => item.id === hierarchyRename?.id)) hierarchyRename = null;\n const scopeChanged = scope.scopeId !== lastRenderedScopeId;\n const activeIdChanged = scope.activeId !== lastRenderedActiveId || scopeChanged;\n const treeScrollSnapshot = treeViewportReveal.captureScrollSnapshot();\n if (activeIdChanged) {\n pendingHierarchyScrollId = null;\n expandActiveHierarchyPath(state, scope);\n }\n currentModel = createModel(state, scope);\n if (hierarchySelectionAnchorId && !currentModel.getNode(hierarchySelectionAnchorId)) {\n hierarchySelectionAnchorId = null;\n }\n renderLocalEditorHierarchyPanel(doc, panel, {\n model: currentModel,\n rename: hierarchyRename,\n drop: hierarchyDrop,\n dropPreview: hierarchyDragSession.preview,\n rootDrop: hierarchyRootDrop,\n searchQuery: getScopeSearch(scope.scopeId),\n title: scope.title,\n searchPlaceholder: scope.searchPlaceholder,\n showCreateGroup: commandAdapter.showCreateGroupToolbar,\n showCreateMarker: commandAdapter.kind === 'scene',\n });\n treeViewportReveal.restoreScrollSnapshot(treeScrollSnapshot);\n const suppressActiveScroll = scope.activeId\n ? treeViewportReveal.consumeRevealSuppression(scope.activeId, { clearWhenDifferent: activeIdChanged })\n : false;\n if (activeIdChanged && scope.activeId && !suppressActiveScroll && shouldAutoScrollActiveHierarchyNode()) {\n scheduleActiveHierarchyScroll(scope.activeId);\n }\n lastRenderedActiveId = scope.activeId;\n lastRenderedScopeId = scope.scopeId;\n };\n\n const onClick = (event: MouseEvent): void => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-hierarchy-rename-input]')) return;\n if (target?.closest('input[data-editor-hierarchy-search]')) {\n clearSelectionFromSearchClick(event);\n return;\n }\n const enabledToggle = target?.closest<HTMLElement>('[data-editor-hierarchy-enabled-toggle]');\n const enabledToggleId = enabledToggle?.dataset.editorHierarchyEnabledToggle;\n if (enabledToggleId) {\n event.preventDefault();\n event.stopPropagation();\n toggleHierarchyItemEnabled(enabledToggleId, enabledToggle);\n return;\n }\n const toggle = target?.closest<HTMLElement>('[data-editor-hierarchy-toggle]')?.dataset.editorHierarchyToggle;\n if (toggle) {\n event.preventDefault();\n event.stopPropagation();\n toggleExpanded(toggle);\n return;\n }\n const createGroupButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-create-group]');\n if (createGroupButton) {\n const state = getState();\n if (!state || resolveScope(state).commandSurface !== 'scene-graph') return;\n const parentId = state.activeId ?? null;\n if (parentId) expandNode(parentId);\n callbacks.onSceneGraphCreateGroup?.({\n parentId,\n activeId: parentId,\n name: 'Empty',\n });\n return;\n }\n const createMarkerButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-create-marker]');\n if (createMarkerButton) {\n event.preventDefault();\n event.stopPropagation();\n createHierarchyMarkerFromButton();\n return;\n }\n const hierarchyButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const hierarchyId = hierarchyButton?.dataset.editorHierarchyId;\n if (hierarchyId) {\n if (treeViewportReveal.isElementVisible(hierarchyButton)) {\n treeViewportReveal.suppressNextReveal(hierarchyId);\n }\n event.preventDefault();\n event.stopPropagation();\n selectHierarchyItemFromClick(hierarchyId, event);\n return;\n }\n if (shouldClearSelectionFromBlankClick(event, target)) {\n event.preventDefault();\n hierarchySelectionAnchorId = null;\n submitSelectionCommand({ type: 'selection.clear', label: 'Clear Selection' }, getState() ?? undefined);\n }\n };\n\n const onContextMenu = (event: MouseEvent): void => {\n openHierarchyContextMenu(event);\n };\n\n const onDocumentPointerDown = (event: PointerEvent): void => {\n hierarchyShortcutScopeActive = isEventInsideHierarchyPanel(event);\n };\n\n const onDocumentFocusIn = (event: FocusEvent): void => {\n hierarchyShortcutScopeActive = isEventInsideHierarchyPanel(event);\n };\n\n const onDoubleClick = (event: MouseEvent): void => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-hierarchy-toggle]')) return;\n const hierarchyButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const id = hierarchyButton?.dataset.editorHierarchyId;\n if (!id) return;\n event.preventDefault();\n event.stopPropagation();\n hierarchySelectionAnchorId = id;\n selectSingleHierarchyItem(id);\n if (resolveScopeForCurrentState()?.kind === 'scene') callbacks.onFocusSelection?.();\n };\n\n const onInput = (event: Event): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n hierarchySearchByScope.set(scopeId, input.value);\n if (!hierarchySearchComposing && !isComposingInputEvent(event)) requestRender();\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput || !hierarchyRename) return;\n hierarchyRename = {\n id: input.dataset.editorHierarchyRenameInput,\n value: input.value,\n };\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n if (event.isComposing || hierarchySearchComposing) return;\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n if (event.key !== 'Escape' || getScopeSearch(scopeId).length === 0) return;\n event.preventDefault();\n hierarchySearchByScope.set(scopeId, '');\n requestRender();\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput) return;\n if (event.key === 'Enter') {\n event.preventDefault();\n commitHierarchyRename(input.dataset.editorHierarchyRenameInput, input.value);\n return;\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n hierarchyRename = null;\n requestRender();\n }\n };\n\n const onCompositionStart = (event: CompositionEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch == null) return;\n hierarchySearchComposing = true;\n };\n\n const onCompositionEnd = (event: CompositionEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch == null) return;\n hierarchySearchComposing = false;\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n hierarchySearchByScope.set(scopeId, input.value);\n requestRender();\n };\n\n const onFocusOut = (event: FocusEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (!input?.dataset.editorHierarchyRenameInput) return;\n commitHierarchyRename(input.dataset.editorHierarchyRenameInput, input.value);\n };\n\n const onDragStart = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const button = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const id = button?.dataset.editorHierarchyId;\n if (!id || !state) return;\n if (!resolveHierarchyCommandAdapter(resolveScope(state)).menuCapabilities.hasMoveHandler) {\n event.preventDefault();\n return;\n }\n const model = getModel(state);\n const node = model.getNode(id);\n if (!isLocalEditorHierarchyNodeMovable(node)) {\n event.preventDefault();\n return;\n }\n hierarchyDrag = { id };\n const draggedIds = resolveDraggedIds(state, model, id);\n event.dataTransfer?.setData('text/plain', draggedIds.join(','));\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n };\n\n const onDragOver = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const draggedIds = readDraggedIds(event);\n if (!state || draggedIds.length === 0) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!resolveHierarchyCommandAdapter(resolveScope(state)).menuCapabilities.hasMoveHandler) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const model = getModel(state);\n if (!isInsideHierarchyTreeViewport(target)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n hierarchyDragSession.pointer = { x: event.clientX, y: event.clientY };\n updateHierarchyAutoScroll();\n const operation = resolveHierarchyDragOperation(event, model, draggedIds);\n if (!operation || operation.status === 'idle') {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n event.preventDefault();\n hierarchyDragSession.operation = operation;\n const canSubmitDrop = operation.status === 'valid'\n && (!!callbacks.onSceneGraphMove || operation.slot?.placement === 'inside');\n if (event.dataTransfer) event.dataTransfer.dropEffect = canSubmitDrop ? 'move' : 'none';\n if (operation.status !== 'valid' || !operation.slot || !operation.resolution?.ok) {\n hierarchyDragSession.preview = operation.preview;\n hierarchyDrop = null;\n hierarchyRootDrop = false;\n syncHierarchyDropPreview();\n return;\n }\n if (operation.slot.placement === 'root') {\n hierarchyDragSession.preview = operation.preview;\n hierarchyDrop = null;\n hierarchyRootDrop = true;\n syncHierarchyDropPreview();\n return;\n }\n const targetId = operation.slot.targetId;\n if (!targetId) return;\n const nextDrop = {\n draggedId: operation.resolution.draggedIds[0] ?? draggedIds[0]!,\n targetId,\n placement: operation.slot.placement,\n preserveWorldTransform: true,\n };\n hierarchyDragSession.preview = operation.preview;\n hierarchyDrop = nextDrop;\n hierarchyRootDrop = false;\n syncHierarchyDropPreview();\n };\n\n const onDragLeave = (event: DragEvent): void => {\n if (!panel.contains(event.relatedTarget as Node | null)) {\n clearHierarchyDragFeedback();\n requestRender();\n }\n };\n\n const onDragEnd = (): void => {\n hierarchyDrag = null;\n clearHierarchyDragFeedback();\n requestRender();\n };\n\n const onDrop = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const draggedIds = readDraggedIds(event);\n if (!state || draggedIds.length === 0) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const scope = resolveScope(state);\n if (!resolveHierarchyCommandAdapter(scope).menuCapabilities.hasMoveHandler) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const model = getModel(state);\n if (!isInsideHierarchyTreeViewport(target)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const operation = hierarchyDragSession.operation ?? resolveHierarchyDragOperation(event, model, draggedIds);\n if (!operation || operation.status !== 'valid' || !operation.slot || !operation.resolution?.ok) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n event.preventDefault();\n hierarchyDrag = null;\n clearHierarchyDragFeedback();\n if (operation.slot.placement === 'root') {\n if (scope.commandSurface === 'prefab-composition') {\n requestRender();\n return;\n }\n submitResolvedRootDrop(operation.resolution);\n return;\n }\n const targetId = operation.slot.targetId;\n if (!targetId) {\n requestRender();\n return;\n }\n expandDropParent(operation.resolution);\n if (scope.commandSurface === 'prefab-composition') {\n if (operation.slot.placement !== 'inside') {\n requestRender();\n return;\n }\n submitPrefabNodeReparent(scope, operation.resolution.draggedIds[0] ?? draggedIds[0]!, targetId);\n requestRender();\n return;\n }\n submitResolvedDrop(operation.resolution, targetId, operation.slot.placement, draggedIds);\n };\n\n panel.addEventListener('click', onClick);\n panel.addEventListener('contextmenu', onContextMenu);\n panel.addEventListener('dblclick', onDoubleClick);\n panel.addEventListener('input', onInput);\n panel.addEventListener('keydown', onKeyDown);\n panel.addEventListener('compositionstart', onCompositionStart);\n panel.addEventListener('compositionend', onCompositionEnd);\n panel.addEventListener('focusout', onFocusOut);\n panel.addEventListener('dragstart', onDragStart);\n panel.addEventListener('dragover', onDragOver);\n panel.addEventListener('dragleave', onDragLeave);\n panel.addEventListener('dragend', onDragEnd);\n panel.addEventListener('drop', onDrop);\n doc.addEventListener('pointerdown', onDocumentPointerDown, { capture: true });\n doc.addEventListener('focusin', onDocumentFocusIn, { capture: true });\n\n return {\n render,\n handleDeleteShortcut(event) {\n return handleDeleteShortcut(event);\n },\n handleEditShortcut(event) {\n return handleEditShortcut(event);\n },\n dispose() {\n clearHierarchyDragFeedback();\n panel.removeEventListener('click', onClick);\n panel.removeEventListener('contextmenu', onContextMenu);\n panel.removeEventListener('dblclick', onDoubleClick);\n panel.removeEventListener('input', onInput);\n panel.removeEventListener('keydown', onKeyDown);\n panel.removeEventListener('compositionstart', onCompositionStart);\n panel.removeEventListener('compositionend', onCompositionEnd);\n panel.removeEventListener('focusout', onFocusOut);\n panel.removeEventListener('dragstart', onDragStart);\n panel.removeEventListener('dragover', onDragOver);\n panel.removeEventListener('dragleave', onDragLeave);\n panel.removeEventListener('dragend', onDragEnd);\n panel.removeEventListener('drop', onDrop);\n doc.removeEventListener('pointerdown', onDocumentPointerDown, { capture: true });\n doc.removeEventListener('focusin', onDocumentFocusIn, { capture: true });\n attachDialog.dispose();\n },\n };\n\n function handleDeleteShortcut(event: KeyboardEvent): boolean {\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n if (scope.kind !== 'scene') return false;\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n const action = createLocalEditorHierarchyDeleteShortcutAction({\n state,\n model: getModel(state),\n ...commandAdapter.menuCapabilities,\n });\n if (!action) return false;\n event.preventDefault();\n submitHierarchyAction(action);\n return true;\n }\n\n function handleEditShortcut(event: KeyboardEvent): boolean {\n const key = event.key.toLowerCase();\n if (key === 'delete' || key === 'backspace') return handleDeleteShortcut(event);\n if (event.altKey || (!event.metaKey && !event.ctrlKey)) return false;\n if (key === 'a' && (event.shiftKey || !isHierarchyShortcutScope(event))) return false;\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n if (scope.kind !== 'scene') return false;\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n const input = {\n state,\n model: getModel(state),\n clipboardIds: hierarchyClipboard?.ids ?? null,\n clipboardActiveId: hierarchyClipboard?.activeId ?? null,\n ...commandAdapter.menuCapabilities,\n };\n const action = key === 'd'\n ? createLocalEditorHierarchyDuplicateShortcutAction(input)\n : key === 'c'\n ? createLocalEditorHierarchyCopyShortcutAction(input)\n : key === 'v'\n ? createLocalEditorHierarchyPasteShortcutAction(input)\n : key === 'a'\n ? createLocalEditorHierarchySelectAllShortcutAction(input)\n : null;\n if (!action) return false;\n event.preventDefault();\n submitHierarchyAction(action);\n return true;\n }\n\n function isComposingInputEvent(event: Event): boolean {\n return (event as Event & { isComposing?: boolean }).isComposing === true;\n }\n\n function resolveScope(state: LocalEditorBrowserUiState<TDocument>): LocalEditorBrowserHierarchyScope {\n return createLocalEditorActiveHierarchyScope(state);\n }\n\n function resolveScopeForCurrentState(): LocalEditorBrowserHierarchyScope | null {\n const state = getState();\n return state ? resolveScope(state) : null;\n }\n\n function getScopeCollapsedIds(scopeId: string): Set<string> {\n const existing = collapsedIdsByScope.get(scopeId);\n if (existing) return existing;\n const created = new Set<string>();\n collapsedIdsByScope.set(scopeId, created);\n return created;\n }\n\n function getScopeSearch(scopeId: string): string {\n return hierarchySearchByScope.get(scopeId) ?? '';\n }\n\n function createModel(\n state: LocalEditorBrowserUiState<TDocument>,\n scope = resolveScope(state),\n ): LocalEditorHierarchyTreeModel {\n return createLocalEditorHierarchyTreeModel(scope.nodes, scope.selectedIds, scope.activeId, {\n collapsedIds: getScopeCollapsedIds(scope.scopeId),\n defaultExpanded: true,\n });\n }\n\n function selectHierarchyItemFromClick(id: string, event: MouseEvent): void {\n const scope = resolveScopeForCurrentState();\n if (!scope) return;\n const toggle = event.metaKey || event.ctrlKey;\n const range = event.shiftKey && !toggle;\n if (range) {\n selectHierarchyVisibleRange(id);\n return;\n }\n hierarchySelectionAnchorId = id;\n if (scope.kind === 'prefab-stage') callbacks.onSelectPrefabStageItem?.(id);\n else callbacks.onSelectHierarchyItem?.({ id, additive: false, toggle });\n }\n\n function toggleHierarchyItemEnabled(id: string, toggle: HTMLElement): void {\n if (toggle.dataset.editorHierarchyEnabledToggleDisabled === 'true') return;\n const state = getState();\n if (!state) return;\n if (resolveScope(state).commandSurface !== 'scene-graph') return;\n const node = getModel(state).getNode(id);\n if (!node || !canLocalEditorHierarchyNodeToggleEnabled(node)) return;\n const directEnabled = typeof node.item.directEnabled === 'boolean'\n ? node.item.directEnabled\n : node.item.enabled;\n callbacks.onHierarchyItemEnabledChange?.({\n id,\n enabled: directEnabled === false,\n });\n }\n\n function selectHierarchyVisibleRange(targetId: string): void {\n const state = getState();\n if (!state) {\n selectSingleHierarchyItem(targetId);\n hierarchySelectionAnchorId = targetId;\n return;\n }\n const scope = resolveScope(state);\n if (scope.kind !== 'scene') {\n hierarchySelectionAnchorId = targetId;\n callbacks.onSelectPrefabStageItem?.(targetId);\n return;\n }\n const model = getModel(state);\n const anchorId = hierarchySelectionAnchorId ?? scope.activeId ?? targetId;\n const selectedIds = model.getVisibleRangeSelection(anchorId, targetId);\n if (selectedIds.length === 0) {\n hierarchySelectionAnchorId = targetId;\n selectSingleHierarchyItem(targetId);\n return;\n }\n const activeId = selectedIds.includes(targetId)\n ? targetId\n : selectedIds[selectedIds.length - 1] ?? null;\n submitSelectionCommand({\n type: 'selection.replace',\n label: 'Select Hierarchy Range',\n selectedIds,\n activeId,\n }, state);\n }\n\n function resolveDraggedIds(\n state: LocalEditorBrowserUiState<TDocument>,\n model: LocalEditorHierarchyTreeModel,\n draggedId: string,\n ): string[] {\n const scope = resolveScope(state);\n const selectedIds = scope.selectedIds.includes(draggedId) ? scope.selectedIds : [draggedId];\n return model.getTopLevelSelection(selectedIds);\n }\n\n function readDraggedIds(event: DragEvent): string[] {\n const dataTransferIds = event.dataTransfer?.getData('text/plain')\n .split(',')\n .map(id => id.trim())\n .filter(Boolean) ?? [];\n return dataTransferIds.length > 0 ? dataTransferIds : hierarchyDrag?.id ? [hierarchyDrag.id] : [];\n }\n\n function submitResolvedRootDrop(resolved: LocalEditorHierarchyDropResolution): void {\n callbacks.onSceneGraphMove?.({\n ids: resolved.draggedIds,\n targetId: null,\n placement: 'root',\n preserveWorldTransform: true,\n });\n requestRender();\n }\n\n function toggleExpanded(id: string): void {\n const scope = resolveScopeForCurrentState();\n const collapsedIds = getScopeCollapsedIds(scope?.scopeId ?? 'scene');\n if (collapsedIds.has(id)) collapsedIds.delete(id);\n else collapsedIds.add(id);\n requestRender();\n }\n\n function expandNode(id: string | null | undefined): void {\n if (!id) return;\n const scope = resolveScopeForCurrentState();\n getScopeCollapsedIds(scope?.scopeId ?? 'scene').delete(id);\n }\n\n function expandActiveHierarchyPath(\n state: LocalEditorBrowserUiState<TDocument>,\n scope = resolveScope(state),\n ): void {\n if (!scope.activeId) return;\n const model = createModel(state, scope);\n if (!model.getNode(scope.activeId)) return;\n const collapsedIds = getScopeCollapsedIds(scope.scopeId);\n for (const ancestor of model.getAncestors(scope.activeId)) {\n collapsedIds.delete(ancestor.id);\n }\n }\n\n function shouldAutoScrollActiveHierarchyNode(): boolean {\n return !hierarchyRename && !hierarchyDrag && !hasHierarchyDragFeedback();\n }\n\n function scheduleActiveHierarchyScroll(activeId: string): void {\n pendingHierarchyScrollId = activeId;\n setTimeout(() => {\n if (pendingHierarchyScrollId !== activeId) return;\n pendingHierarchyScrollId = null;\n const row = findHierarchyRow(activeId);\n if (!row) return;\n const viewport = findHierarchyTreeViewport();\n if (viewport) {\n treeViewportReveal.revealElement(row, { behavior: 'smooth' });\n return;\n }\n try {\n row.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } catch {\n row.scrollIntoView();\n }\n }, 0);\n }\n\n function findHierarchyRow(id: string): HTMLElement | null {\n for (const row of panel.querySelectorAll<HTMLElement>('[data-editor-hierarchy-id]')) {\n if (row.dataset.editorHierarchyId === id) return row;\n }\n return null;\n }\n\n function findHierarchyTreeViewport(): HTMLElement | null {\n return panel.querySelector<HTMLElement>('[data-editor-hierarchy-tree-viewport]');\n }\n\n function isInsideHierarchyTreeViewport(target: HTMLElement | null): boolean {\n return !!target?.closest('[data-editor-hierarchy-tree-viewport]');\n }\n\n function armHierarchyAutoScroll(): void {\n if (hierarchyDragSession.autoScrollFrame !== null) return;\n hierarchyDragSession.autoScrollFrame = doc.defaultView?.requestAnimationFrame(tickHierarchyAutoScroll) ?? null;\n }\n\n function stopHierarchyAutoScroll(): void {\n if (hierarchyDragSession.autoScrollFrame !== null) {\n doc.defaultView?.cancelAnimationFrame(hierarchyDragSession.autoScrollFrame);\n }\n hierarchyDragSession.autoScrollFrame = null;\n }\n\n function clearHierarchyDragFeedback(): void {\n hierarchyDrop = null;\n hierarchyRootDrop = false;\n stopHierarchyAutoScroll();\n clearLocalEditorStructuredDragSession(hierarchyDragSession);\n }\n\n function hasHierarchyDragFeedback(): boolean {\n return hierarchyDrop !== null\n || hierarchyRootDrop\n || hasLocalEditorStructuredDragSessionFeedback(hierarchyDragSession);\n }\n\n function clearHierarchyDragFeedbackAndRender(): void {\n const hadFeedback = hasHierarchyDragFeedback();\n clearHierarchyDragFeedback();\n if (hadFeedback) syncHierarchyDropPreview();\n }\n\n function syncHierarchyDropPreview(): void {\n syncLocalEditorHierarchyDropPreview(doc, panel, {\n dropPreview: hierarchyDragSession.preview,\n rootDrop: hierarchyRootDrop,\n });\n }\n\n function tickHierarchyAutoScroll(): void {\n hierarchyDragSession.autoScrollFrame = null;\n if (!hierarchyDragSession.pointer) return;\n const viewport = findHierarchyTreeViewport();\n if (!viewport) return;\n const rect = viewport.getBoundingClientRect();\n const scroll = resolveLocalEditorHierarchyAutoScroll({\n pointerY: hierarchyDragSession.pointer.y,\n viewportTop: rect.top,\n viewportBottom: rect.bottom,\n viewportHeight: rect.height,\n scrollTop: viewport.scrollTop,\n scrollHeight: viewport.scrollHeight,\n clientHeight: viewport.clientHeight,\n });\n if (scroll.speed !== 0) {\n viewport.scrollTop += scroll.speed;\n requestRender();\n armHierarchyAutoScroll();\n }\n }\n\n function updateHierarchyAutoScroll(): void {\n const viewport = findHierarchyTreeViewport();\n if (!viewport || !hierarchyDragSession.pointer) {\n stopHierarchyAutoScroll();\n return;\n }\n const rect = viewport.getBoundingClientRect();\n const scroll = resolveLocalEditorHierarchyAutoScroll({\n pointerY: hierarchyDragSession.pointer.y,\n viewportTop: rect.top,\n viewportBottom: rect.bottom,\n viewportHeight: rect.height,\n scrollTop: viewport.scrollTop,\n scrollHeight: viewport.scrollHeight,\n clientHeight: viewport.clientHeight,\n });\n if (scroll.speed === 0) {\n stopHierarchyAutoScroll();\n return;\n }\n armHierarchyAutoScroll();\n }\n\n function resolveHierarchyDragOperation(\n event: DragEvent,\n model: LocalEditorHierarchyTreeModel,\n draggedIds: readonly string[],\n ): LocalEditorHierarchyDragOperation | null {\n const layout = createHierarchyDragLayout(model);\n if (!layout) return null;\n return resolveLocalEditorHierarchyDragOperation({\n layout,\n pointer: { x: event.clientX, y: event.clientY },\n draggedIds,\n resolveDrop: model.resolveDrop.bind(model),\n });\n }\n\n function createHierarchyDragLayout(model: LocalEditorHierarchyTreeModel): LocalEditorHierarchyDragLayout | null {\n const viewport = findHierarchyTreeViewport();\n if (!viewport) return null;\n const viewportRect = viewport.getBoundingClientRect();\n const rows: LocalEditorHierarchyDragLayoutRow[] = [];\n for (const element of panel.querySelectorAll<HTMLElement>('[data-editor-hierarchy-id]')) {\n const id = element.dataset.editorHierarchyId;\n const node = model.getNode(id);\n if (!id || !node) continue;\n const rect = element.getBoundingClientRect();\n rows.push({\n id,\n depth: node.depth,\n parentId: node.parentId,\n canHaveChildren: canLocalEditorHierarchyNodeHaveChildren(node),\n rect: {\n left: rect.left,\n top: rect.top,\n width: rect.width,\n height: rect.height,\n },\n });\n }\n rows.sort((left, right) => left.rect.top - right.rect.top);\n return {\n rows,\n viewport: {\n left: viewportRect.left,\n top: viewportRect.top,\n width: viewportRect.width,\n height: viewportRect.height,\n },\n indentWidth: HIERARCHY_DRAG_INDENT_WIDTH,\n };\n }\n\n function expandDropParent(resolved: LocalEditorHierarchyDropResolution): void {\n if (resolved.placement === 'inside') expandNode(resolved.parentId);\n }\n\n function commitHierarchyRename(id: string, value: string): void {\n if (!hierarchyRename || hierarchyRename.id !== id) return;\n const trimmed = value.trim();\n const state = getState();\n const scope = state ? resolveScope(state) : null;\n const item = scope?.nodes.find(candidate => candidate.id === id) ?? null;\n hierarchyRename = null;\n if (trimmed && item && trimmed !== item.label) {\n if (scope?.commandSurface === 'scene-graph') {\n callbacks.onSceneGraphRename?.({ id, name: trimmed });\n } else if (scope?.commandSurface === 'prefab-composition') {\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.rename', resolvePrefabCommandTargetId(scope, id), {\n value: trimmed,\n }));\n }\n }\n requestRender();\n }\n\n function openHierarchyContextMenu(event: MouseEvent): void {\n const hadHierarchyFeedback = hasHierarchyDragFeedback();\n hierarchyDrag = null;\n clearHierarchyDragFeedback();\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (!target || inputRouter.isEditableTarget(target)) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n const scope = resolveScope(state);\n const commandAdapter = resolveHierarchyCommandAdapter(scope);\n const model = getModel(state);\n const hierarchyButton = target.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const node = model.getNode(hierarchyButton?.dataset.editorHierarchyId);\n if (node && !scope.selectedIds.includes(node.id) && isLocalEditorHierarchyNodeSelectable(node)) {\n hierarchySelectionAnchorId = node.id;\n if (scope.kind === 'prefab-stage') callbacks.onSelectPrefabStageItem?.(node.id);\n else callbacks.onSelectHierarchyItem?.({ id: node.id, additive: false, toggle: false });\n }\n if (!commandAdapter.canOpenContextMenu) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n options.onBeforeOpenContextMenu?.();\n const menuState = createScopedHierarchyMenuState(state, scope);\n const menu = node\n ? createLocalEditorHierarchyNodeMenu({\n state: menuState,\n model,\n node,\n clipboardIds: hierarchyClipboard?.ids ?? null,\n clipboardActiveId: hierarchyClipboard?.activeId ?? null,\n ...commandAdapter.menuCapabilities,\n contextActions: options.contextActions,\n })\n : createLocalEditorHierarchyBlankMenu({\n state: menuState,\n model,\n clipboardIds: hierarchyClipboard?.ids ?? null,\n clipboardActiveId: hierarchyClipboard?.activeId ?? null,\n ...commandAdapter.menuCapabilities,\n contextActions: options.contextActions,\n });\n const menuItems = commandAdapter.filterMenuItems(menu.items);\n if (menuItems.length === 0) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n\n contextMenu.open({\n x: event.clientX,\n y: event.clientY,\n items: menuItems,\n onAction(item) {\n const action = menu.actions.get(item.id);\n if (action) submitHierarchyAction(action);\n },\n });\n if (hadHierarchyFeedback) requestRender();\n }\n\n function createHierarchyMarkerFromButton(): void {\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) return;\n const model = getModel(state);\n const activeNode = model.getNode(state.activeId);\n const parentId = resolveLocalEditorHierarchyCreateMarkerParentId(activeNode);\n if (parentId) expandNode(parentId);\n callbacks.onSceneGraphCreateMarker?.({\n parentId,\n activeId: parentId ?? state.activeId ?? null,\n name: 'Marker',\n });\n requestRender();\n }\n\n function submitHierarchyAction(action: LocalEditorHierarchyAction): void {\n if (action.kind === 'begin-rename') {\n beginHierarchyRename(action.targetId);\n return;\n }\n if (action.kind === 'copy-selection') {\n hierarchyClipboard = {\n ids: action.targetIds,\n activeId: action.activeId && action.targetIds.includes(action.activeId)\n ? action.activeId\n : action.targetIds[action.targetIds.length - 1] ?? null,\n };\n return;\n }\n if (action.kind === 'group-selection') {\n callbacks.onSceneGraphGroupSelection?.(action.intent);\n return;\n }\n if (action.kind === 'open-attach-picker') {\n openAttachPicker(action.targetIds, action.activeId);\n return;\n }\n if (action.kind === 'selection-command') {\n submitSelectionCommand(action.command);\n return;\n }\n submitHierarchyContextAction(action.action);\n }\n\n function createScopedHierarchyMenuState(\n state: LocalEditorBrowserUiState<TDocument>,\n scope: LocalEditorBrowserHierarchyScope,\n ): LocalEditorBrowserUiState<TDocument> {\n return {\n ...state,\n hierarchy: scope.nodes,\n selectedIds: scope.selectedIds,\n activeId: scope.activeId,\n };\n }\n\n function submitSelectionCommand(command: SelectionCommand, state = getState() ?? undefined): void {\n if (state && resolveScope(state).kind !== 'scene') return;\n callbacks.onSelectionCommand?.(command);\n }\n\n function openAttachPicker(targetIds: readonly string[], activeId: string | null): void {\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy || targetIds.length === 0) return;\n if (!resolveHierarchyCommandAdapter(resolveScope(state)).menuCapabilities.hasMoveHandler) return;\n attachDialog.open({\n model: getModel(state),\n targetIds,\n activeId,\n });\n }\n\n function submitAttachSelection(selection: LocalEditorHierarchyAttachTargetSelection): LocalEditorHierarchyAttachConfirmResult {\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) return { ok: false, reason: 'Editor is not ready.' };\n const scope = resolveScope(state);\n if (scope.commandSurface === 'prefab-composition') return submitPrefabAttachSelection(scope, selection);\n if (scope.commandSurface !== 'scene-graph') return { ok: false, reason: 'Hierarchy move pipeline is not connected yet.' };\n const ids = selection.resolution.draggedIds;\n if (ids.length === 0) return { ok: false, reason: 'Select one or more movable nodes first.' };\n if (!callbacks.onSceneGraphMove) return { ok: false, reason: 'Hierarchy move pipeline is not connected yet.' };\n if (selection.placement === 'root') {\n const result = normalizeAttachSceneGraphMoveResult(callbacks.onSceneGraphMove({\n ids,\n placement: 'root',\n preserveWorldTransform: true,\n }));\n requestRender();\n return result;\n }\n if (!selection.targetId) return { ok: false, reason: 'Select a valid target first.' };\n expandNode(selection.targetId);\n const result = normalizeAttachSceneGraphMoveResult(callbacks.onSceneGraphMove({\n ids,\n targetId: selection.targetId,\n placement: 'inside',\n parentId: selection.resolution.parentId,\n beforeId: selection.resolution.beforeId,\n afterId: selection.resolution.afterId,\n preserveWorldTransform: true,\n }));\n requestRender();\n return result;\n }\n\n function submitPrefabAttachSelection(\n scope: LocalEditorBrowserHierarchyScope,\n selection: LocalEditorHierarchyAttachTargetSelection,\n ): LocalEditorHierarchyAttachConfirmResult {\n const ids = selection.resolution.draggedIds;\n if (ids.length !== 1) return { ok: false, reason: 'Move one prefab node at a time.' };\n if (selection.placement !== 'inside') return { ok: false, reason: 'Prefab node reparent supports inside placement only.' };\n if (!selection.targetId) return { ok: false, reason: 'Select a valid prefab parent first.' };\n if (!submitPrefabNodeReparent(scope, ids[0], selection.targetId)) {\n return { ok: false, reason: 'Select valid prefab nodes first.' };\n }\n expandNode(selection.targetId);\n requestRender();\n return { ok: true };\n }\n\n function submitPrefabNodeReparent(\n scope: LocalEditorBrowserHierarchyScope,\n hierarchyId: string,\n parentHierarchyId: string,\n ): boolean {\n const nodeId = resolvePrefabCommandTargetId(scope, hierarchyId);\n const parentNodeId = resolvePrefabCommandTargetId(scope, parentHierarchyId);\n if (!nodeId || !parentNodeId) return false;\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.reparent', nodeId, {\n parentNodeId,\n }));\n return true;\n }\n\n function normalizeAttachSceneGraphMoveResult(result: LocalEditorBrowserSceneGraphActionResponse): LocalEditorHierarchyAttachConfirmResult {\n if (typeof result === 'boolean') return { ok: result };\n if (typeof result === 'string') return { ok: false, reason: result };\n if (result && typeof result === 'object') return result;\n return { ok: true };\n }\n\n function shouldClearSelectionFromBlankClick(event: MouseEvent, target: HTMLElement | null): boolean {\n if (event.button !== 0 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) return false;\n if (!target?.closest('[data-editor-hierarchy-root-drop]')) return false;\n if (hierarchyRename || hierarchyDrag || hasHierarchyDragFeedback()) return false;\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n return scope.kind === 'scene' && scope.selectedIds.length > 0;\n }\n\n function clearSelectionFromSearchClick(event: MouseEvent): void {\n if (event.button !== 0 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) return;\n const state = getState();\n if (!state || resolveScope(state).kind !== 'scene' || state.selectedIds.length === 0) return;\n hierarchySelectionAnchorId = null;\n submitSelectionCommand({ type: 'selection.clear', label: 'Clear Selection' }, state);\n }\n\n function isHierarchyShortcutScope(event: KeyboardEvent): boolean {\n const target = event.target instanceof Node ? event.target : null;\n const activeElement = doc.activeElement;\n return hierarchyShortcutScopeActive\n || (target !== null && panel.contains(target))\n || (activeElement !== null && panel.contains(activeElement));\n }\n\n function isEventInsideHierarchyPanel(event: Event): boolean {\n const target = event.target instanceof Node ? event.target : null;\n return target !== null && panel.contains(target);\n }\n\n function submitHierarchyContextAction(action: LocalEditorContextAction): void {\n if (action.action === 'rename') return;\n const scope = resolveScopeForCurrentState();\n if (scope?.commandSurface === 'prefab-composition') {\n submitPrefabHierarchyContextAction(scope, action);\n return;\n }\n if (scope?.commandSurface !== 'scene-graph') return;\n if (action.action === 'create-group' || action.action === 'create-primitive' || action.action === 'create-marker') {\n expandNode(action.parentId);\n }\n if (callbacks.onContextAction) {\n callbacks.onContextAction(action);\n return;\n }\n if (action.action === 'focus') callbacks.onFocusSelection?.();\n else if (action.action === 'duplicate') {\n callbacks.onSceneGraphDuplicate?.({\n targetIds: action.targetIds,\n activeId: action.activeId ?? null,\n });\n } else if (action.action === 'paste') {\n callbacks.onSceneGraphDuplicate?.({\n targetIds: action.sourceIds,\n activeId: action.activeId ?? null,\n });\n }\n else if (action.action === 'create-group') {\n callbacks.onSceneGraphCreateGroup?.({\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n name: 'Empty',\n });\n } else if (action.action === 'create-marker') {\n callbacks.onSceneGraphCreateMarker?.({\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n markerType: action.markerType,\n name: action.name,\n });\n } else if (action.action === 'create-primitive') {\n callbacks.onSceneGraphCreatePrimitive?.({\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n shape: action.shape,\n name: action.name,\n });\n } else if (action.action === 'delete') {\n callbacks.onSceneGraphDelete?.({\n ids: action.targetIds,\n activeId: action.activeId ?? null,\n });\n }\n }\n\n function submitPrefabHierarchyContextAction(scope: LocalEditorBrowserHierarchyScope, action: LocalEditorContextAction): void {\n if (action.action === 'focus') {\n const targetId = action.activeId ?? action.targetIds[0] ?? null;\n if (targetId) callbacks.onSelectPrefabStageItem?.(targetId);\n return;\n }\n if (action.action === 'create-primitive') {\n if (action.parentId) expandNode(action.parentId);\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.createPrimitive', resolvePrefabCommandTargetId(scope, action.parentId ?? scope.activeId), {\n primitiveShape: action.shape,\n }));\n return;\n }\n if (action.action === 'create-group') {\n if (action.parentId) expandNode(action.parentId);\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.createGroup', resolvePrefabCommandTargetId(scope, action.parentId ?? scope.activeId), {\n value: { name: 'Empty' },\n }));\n return;\n }\n if (action.action === 'delete') {\n const nodeId = action.activeId && action.targetIds.includes(action.activeId)\n ? action.activeId\n : action.targetIds[0] ?? null;\n if (!nodeId) return;\n callbacks.onAssetAction?.(createPrefabNodeAssetAction(scope, 'prefab.node.delete', resolvePrefabCommandTargetId(scope, nodeId)));\n }\n }\n\n function resolvePrefabCommandTargetId(\n scope: LocalEditorBrowserHierarchyScope,\n hierarchyId: string | null | undefined,\n ): string | null {\n if (!hierarchyId) return null;\n const node = scope.nodes.find(candidate => candidate.id === hierarchyId);\n return node?.commandTargetId ?? hierarchyId;\n }\n\n function createPrefabNodeAssetAction(\n scope: LocalEditorBrowserHierarchyScope,\n actionId: string,\n nodeId: string | null | undefined,\n extra: Partial<LocalEditorBrowserAssetActionInput> = {},\n ): LocalEditorBrowserAssetActionInput {\n const stageAssetId = scope.scopeId.startsWith('prefab-stage:')\n ? scope.scopeId.slice('prefab-stage:'.length)\n : undefined;\n return {\n actionId,\n assetId: stageAssetId,\n browserAssetId: stageAssetId ? `prefab:${stageAssetId}` : undefined,\n assetKind: 'prefab',\n targetPrefabAssetId: stageAssetId,\n ...(nodeId ? { nodeId, parentNodeId: nodeId } : {}),\n ...extra,\n };\n }\n\n function resolveHierarchyCommandAdapter(scope: LocalEditorBrowserHierarchyScope) {\n return resolveLocalEditorHierarchyCommandAdapter(scope, {\n hasDuplicateHandler: typeof callbacks.onSceneGraphDuplicate === 'function',\n hasMoveHandler: typeof callbacks.onSceneGraphMove === 'function',\n hasGroupSelectionHandler: typeof callbacks.onSceneGraphGroupSelection === 'function',\n });\n }\n\n function resolveActiveTheme(): 'dark' | 'light' | undefined {\n const themed = panel.closest<HTMLElement>('.fps-editor-workbench[data-fps-editor-theme]');\n const theme = themed?.dataset.fpsEditorTheme;\n return theme === 'light' || theme === 'dark' ? theme : undefined;\n }\n\n function beginHierarchyRename(id: string): void {\n const state = getState();\n const model = state ? getModel(state) : null;\n const node = model?.getNode(id) ?? null;\n if (!node || !canLocalEditorHierarchyNodeRename(node)) return;\n hierarchyRename = { id, value: node.label };\n requestRender();\n }\n\n function selectSingleHierarchyItem(id: string): void {\n const scope = resolveScopeForCurrentState();\n if (scope?.kind === 'prefab-stage') callbacks.onSelectPrefabStageItem?.(id);\n else callbacks.onSelectHierarchyItem?.({ id, additive: false, toggle: false });\n }\n\n function submitResolvedDrop(\n resolved: LocalEditorHierarchyDropResolution,\n targetId: string,\n placement: LocalEditorBrowserSceneGraphDropPlacement,\n draggedIds: readonly string[],\n ): void {\n if (callbacks.onSceneGraphMove) {\n callbacks.onSceneGraphMove({\n ids: resolved.draggedIds,\n targetId,\n placement,\n parentId: resolved.parentId,\n beforeId: resolved.beforeId,\n afterId: resolved.afterId,\n preserveWorldTransform: true,\n });\n } else if (placement === 'inside') {\n callbacks.onSceneGraphDrop?.({\n draggedId: resolved.draggedIds[0] ?? draggedIds[0]!,\n targetId,\n placement,\n preserveWorldTransform: true,\n });\n } else {\n requestRender();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"local-editor-ui-hierarchy-controller.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type HierarchyIntent,\n type HierarchyDropResolution,\n type HierarchyJsonValue,\n type HierarchyKernel,\n type HierarchyNodeSnapshot,\n type HierarchyOperationResult,\n type HierarchyOperationDescriptor,\n type HierarchyOperationContext,\n type HierarchyViewModel,\n} from '@fps-games/plugin-hierarchy';\nimport {\n resolveLocalEditorHierarchyDragOperation,\n type LocalEditorHierarchyDragLayout,\n type LocalEditorHierarchyDragLayoutRow,\n type LocalEditorHierarchyDragOperation,\n type LocalEditorHierarchyDropPreview,\n} from './local-editor-ui-hierarchy-drag-policy';\nimport {\n resolveLocalEditorHierarchyAutoScroll,\n} from './local-editor-ui-hierarchy-auto-scroll';\nimport {\n clearLocalEditorStructuredDragSession,\n createLocalEditorStructuredDragSession,\n hasLocalEditorStructuredDragSessionFeedback,\n} from './local-editor-ui-structured-drag-session';\nimport {\n LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT,\n renderLocalEditorHierarchyPanel,\n syncLocalEditorHierarchyDropPreview,\n} from './local-editor-ui-hierarchy-view';\nimport {\n createLocalEditorViewportRevealController,\n} from './local-editor-ui-dock-panel';\nimport { createLocalEditorHierarchyViewAdapter } from './local-editor-ui-hierarchy-view-adapter';\nimport type { LocalEditorContextMenuController } from './local-editor-ui-context-menu';\nimport type { LocalEditorWorkbenchInputRouter } from './local-editor-ui-input-router';\nimport type {\n LocalEditorBrowserUiState,\n LocalEditorContextMenuItem,\n} from './local-editor-ui-types';\n\nconst HIERARCHY_DRAG_INDENT_WIDTH = 16;\n\nexport function createHierarchyEnabledOperationRequest(\n node: Pick<HierarchyNodeSnapshot, 'authoredEnabled'> | null | undefined,\n directEnabled: boolean | undefined,\n): Readonly<{ operationId: 'hierarchy.node.set-enabled' | 'hierarchy.node.set-visible'; input: Readonly<Record<string, boolean>> }> {\n const nextValue = directEnabled === false;\n return node?.authoredEnabled === undefined\n ? Object.freeze({ operationId: 'hierarchy.node.set-visible', input: Object.freeze({ visible: nextValue }) })\n : Object.freeze({ operationId: 'hierarchy.node.set-enabled', input: Object.freeze({ enabled: nextValue }) });\n}\n\nexport function createHierarchyOperationMenuItems(\n operations: readonly HierarchyOperationDescriptor[],\n): LocalEditorContextMenuItem[] {\n type MenuPresentation = Readonly<{\n path: readonly Readonly<{ id: string; label: string; order?: number }>[];\n group: string;\n order: number;\n }>;\n interface MenuNode {\n id: string;\n label: string;\n order: number;\n children: Map<string, MenuNode>;\n operations: Array<{ operation: HierarchyOperationDescriptor; presentation: MenuPresentation; sourceIndex: number }>;\n }\n const root: MenuNode = { id: '', label: '', order: 0, children: new Map(), operations: [] };\n const operationIds = new Set<string>();\n for (const operation of operations) {\n if (operationIds.has(operation.id)) throw new Error(`Duplicate Hierarchy operation id: ${operation.id}.`);\n operationIds.add(operation.id);\n }\n operations.forEach((operation, sourceIndex) => {\n if (operation.menu === false) return;\n const presentation = resolveHierarchyOperationMenuPresentation(operation);\n let parent = root;\n for (const segment of presentation.path) {\n const existing = parent.children.get(segment.id);\n if (existing && (existing.label !== segment.label || existing.order !== (segment.order ?? 0))) {\n throw new Error(`Hierarchy menu path conflict for segment ${segment.id}.`);\n }\n const node = existing ?? {\n id: segment.id, label: segment.label, order: segment.order ?? 0, children: new Map(), operations: [],\n };\n parent.children.set(segment.id, node);\n parent = node;\n }\n parent.operations.push({ operation, presentation, sourceIndex });\n });\n const materialize = (node: MenuNode, parentPath: readonly string[] = []): LocalEditorContextMenuItem[] => {\n const entries = [\n ...[...node.children.values()].map(child => ({ kind: 'path' as const, order: child.order, group: `path:${child.id}`, sourceIndex: -1, child })),\n ...node.operations.map(entry => ({\n kind: 'operation' as const,\n order: entry.presentation.order,\n group: entry.presentation.group,\n sourceIndex: entry.sourceIndex,\n operation: entry.operation,\n })),\n ].sort((left, right) => left.order - right.order || left.sourceIndex - right.sourceIndex);\n return entries.map((entry, index) => {\n const previous = entries[index - 1];\n const separatorBefore = index > 0 && previous?.group !== entry.group;\n if (entry.kind === 'path') {\n const path = [...parentPath, entry.child.id];\n const presentationId = `hierarchy.menu.path:${path.map(segment => encodeURIComponent(segment)).join('/')}`;\n if (operationIds.has(presentationId)) {\n throw new Error(`Hierarchy operation id conflicts with menu presentation id: ${presentationId}.`);\n }\n return {\n id: presentationId,\n label: entry.child.label,\n separatorBefore,\n children: materialize(entry.child, path),\n };\n }\n const operation = entry.operation;\n return {\n id: operation.id, label: operation.label, shortcut: operation.shortcut, danger: operation.danger,\n disabled: !!operation.disabledReason, disabledReason: operation.disabledReason, separatorBefore,\n };\n });\n };\n return materialize(root);\n\n function resolveHierarchyOperationMenuPresentation(operation: HierarchyOperationDescriptor): MenuPresentation {\n if (operation.menu !== undefined && operation.menu !== false) {\n return {\n path: operation.menu.path ?? [],\n group: operation.menu.group ?? '',\n order: operation.menu.order ?? 0,\n };\n }\n const placement = operation.placement ?? 'bottom';\n const placementOrder: Record<NonNullable<HierarchyOperationDescriptor['placement']>, number> = {\n top: -100,\n 'after-primary': 5,\n 'after-edit': 15,\n 'after-create': 25,\n 'after-clipboard': 45,\n bottom: 100,\n };\n return { path: [], group: `legacy:${placement}`, order: placementOrder[placement] };\n }\n}\n\nexport function createHierarchyToolbarCreateMenuItems(\n operations: readonly HierarchyOperationDescriptor[],\n): LocalEditorContextMenuItem[] {\n const createOperations = operations.flatMap(operation => {\n if (operation.menu === false || !operation.menu?.path?.length || operation.menu.path[0]?.id !== 'create') return [];\n return [{\n ...operation,\n menu: {\n ...operation.menu,\n path: operation.menu.path.slice(1),\n },\n } satisfies HierarchyOperationDescriptor];\n });\n return createHierarchyOperationMenuItems(createOperations);\n}\n\nexport function canUseHierarchyProviderReparent(\n model: HierarchyViewModel | null,\n operationAvailable = model?.operations.some(operation => operation.id === 'hierarchy.node.reparent') === true,\n): boolean {\n return !!model\n && !model.snapshot.readonly\n && model.snapshot.capabilities.reparent === true\n && operationAvailable;\n}\n\nexport function matchesHierarchyOperationShortcut(\n event: Pick<KeyboardEvent, 'key' | 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'>,\n shortcut: string,\n): boolean {\n const tokens = shortcut.toLowerCase().split('+').map(token => token.trim()).filter(Boolean);\n const keyToken = tokens[tokens.length - 1];\n if (!keyToken) return false;\n const primary = event.metaKey || event.ctrlKey;\n if (tokens.includes('ctrl/cmd') !== primary) return false;\n if (tokens.includes('alt') !== event.altKey) return false;\n if (tokens.includes('shift') !== event.shiftKey) return false;\n const key = event.key.toLowerCase();\n return keyToken === 'delete'\n ? key === 'delete' || key === 'backspace'\n : keyToken === key;\n}\n\nexport interface LocalEditorHierarchyController<TDocument = unknown> {\n render(state: LocalEditorBrowserUiState<TDocument>): void;\n handleEditShortcut(event: KeyboardEvent): boolean;\n handleDeleteShortcut(event: KeyboardEvent): boolean;\n dispose(): void;\n}\n\nexport interface LocalEditorHierarchyControllerOptions<TDocument = unknown> {\n doc: Document;\n panel: HTMLElement;\n inputRouter: LocalEditorWorkbenchInputRouter;\n contextMenu: LocalEditorContextMenuController;\n kernel: HierarchyKernel;\n onOperationResult?: (result: HierarchyOperationResult) => void;\n getState: () => LocalEditorBrowserUiState<TDocument> | null;\n requestRender: () => void;\n onBeforeOpenContextMenu?: () => void;\n requestOperationInput?: (\n operation: HierarchyOperationDescriptor,\n context: HierarchyOperationContext,\n ) => Promise<Readonly<Record<string, HierarchyJsonValue>> | null>;\n}\n\ninterface BrowserHierarchyScopeMetadata {\n scopeId: string;\n revision: number;\n kind: string;\n title: string;\n searchPlaceholder: string;\n selectedIds: readonly string[];\n activeId: string | null;\n readonly: boolean;\n}\n\nexport function createLocalEditorHierarchyController<TDocument = unknown>(\n options: LocalEditorHierarchyControllerOptions<TDocument>,\n): LocalEditorHierarchyController<TDocument> {\n const { doc, panel, inputRouter, contextMenu, getState, requestRender, kernel } = options;\n let hierarchyRootDrop = false;\n const hierarchyDragSession = createLocalEditorStructuredDragSession<\n LocalEditorHierarchyDragOperation,\n LocalEditorHierarchyDropPreview\n >();\n let hierarchyShortcutScopeActive = false;\n let hierarchySearchComposition: HierarchyCompositionSession<HTMLInputElement> | null = null;\n let hierarchyRenameComposition: HierarchyCompositionSession<HTMLInputElement> | null = null;\n let nativeHierarchyDragActive = false;\n let lastRenderedActiveId: string | null | undefined;\n let lastRenderedScopeId: string | null | undefined;\n let pendingHierarchyScrollId: string | null = null;\n let currentBridgeState: LocalEditorBrowserUiState<TDocument> | null = null;\n let currentKernelViewModel: HierarchyViewModel | null = null;\n let cachedVisibleIds: {\n projection: HierarchyViewModel['projection'];\n ids: readonly string[];\n } | null = null;\n let renderedHierarchyAuthority: Readonly<{ token: number; scopeKey: string; revision: number }> | null = null;\n let renderedHierarchyProjection: HierarchyViewModel['projection'] | null = null;\n let renderedHierarchyDragId: string | null = null;\n let hierarchyRenderReplacingRenameInput = false;\n let pendingHierarchyDragOver: DragEvent | null = null;\n let hierarchyDragOverFrame: number | null = null;\n let hierarchyViewportRectFrame = -1;\n let hierarchyViewportRect: DOMRect | null = null;\n let hierarchyHoverExpandTimer: number | null = null;\n let hierarchyHoverExpandId: string | null = null;\n let lastHierarchyDropPreviewKey = '';\n\n function cancelPendingHierarchyDragOver(): void {\n if (hierarchyDragOverFrame !== null) doc.defaultView?.cancelAnimationFrame(hierarchyDragOverFrame);\n hierarchyDragOverFrame = null;\n pendingHierarchyDragOver = null;\n }\n const treeViewportReveal = createLocalEditorViewportRevealController<string>({\n getViewport: findHierarchyTreeViewport,\n margin: 4,\n });\n\n const renderPanel = (state: LocalEditorBrowserUiState<TDocument>): void => {\n const scope = resolveScope(state);\n const toolbarOperations = currentKernelViewModel\n ? kernel.listOperations({\n scopeKey: currentKernelViewModel.snapshot.scopeKey,\n expectedRevision: currentKernelViewModel.snapshot.revision,\n contextNodeId: null,\n targetIds: [],\n activeId: currentKernelViewModel.snapshot.activeId,\n }, currentKernelViewModel.authorityToken)\n : [];\n const scopeChanged = scope.scopeId !== lastRenderedScopeId;\n if (scopeChanged) {\n hierarchySearchComposition = null;\n hierarchyRenameComposition = null;\n clearHierarchyDragFeedback();\n }\n const activeIdChanged = scope.activeId !== lastRenderedActiveId || scopeChanged;\n const treeScrollSnapshot = treeViewportReveal.captureScrollSnapshot();\n const activeRenameInput = doc.activeElement instanceof HTMLInputElement\n && doc.activeElement.dataset.editorHierarchyRenameInput\n ? doc.activeElement\n : null;\n const renameFocus = activeRenameInput\n ? {\n id: activeRenameInput.dataset.editorHierarchyRenameInput!,\n start: activeRenameInput.selectionStart,\n end: activeRenameInput.selectionEnd,\n direction: activeRenameInput.selectionDirection,\n }\n : null;\n const activeSearchInput = doc.activeElement instanceof HTMLInputElement\n && doc.activeElement.dataset.editorHierarchySearch != null\n ? doc.activeElement\n : null;\n const searchFocus = activeSearchInput\n ? {\n start: activeSearchInput.selectionStart,\n end: activeSearchInput.selectionEnd,\n direction: activeSearchInput.selectionDirection,\n }\n : null;\n if (activeIdChanged) {\n pendingHierarchyScrollId = null;\n lastRenderedActiveId = scope.activeId;\n lastRenderedScopeId = scope.scopeId;\n }\n hierarchyRenderReplacingRenameInput = renameFocus !== null;\n try {\n renderLocalEditorHierarchyPanel(doc, panel, {\n viewModel: currentKernelViewModel!,\n presentationRevision: `${currentKernelViewModel!.snapshot.structureRevision}:${JSON.stringify(currentKernelViewModel!.snapshot.capabilities)}`,\n rename: currentKernelViewModel?.snapshot.scopeKey === scope.scopeId\n ? currentKernelViewModel.state.rename\n : null,\n dragId: currentKernelViewModel?.snapshot.scopeKey === scope.scopeId\n ? currentKernelViewModel.state.dragId\n : null,\n dropPreview: hierarchyDragSession.preview,\n rootDrop: hierarchyRootDrop,\n searchQuery: currentKernelViewModel?.snapshot.scopeKey === scope.scopeId\n ? currentKernelViewModel.state.searchQuery\n : getScopeSearch(scope.scopeId),\n title: scope.title,\n searchPlaceholder: scope.searchPlaceholder,\n showCreateMenu: createHierarchyToolbarCreateMenuItems(toolbarOperations).length > 0,\n });\n if (renameFocus) {\n const replacement = [...panel.querySelectorAll<HTMLInputElement>('[data-editor-hierarchy-rename-input]')]\n .find(input => input.dataset.editorHierarchyRenameInput === renameFocus.id);\n replacement?.focus({ preventScroll: true });\n if (replacement && renameFocus.start !== null && renameFocus.end !== null) {\n replacement.setSelectionRange(renameFocus.start, renameFocus.end, renameFocus.direction ?? undefined);\n }\n }\n if (searchFocus) {\n const replacement = panel.querySelector<HTMLInputElement>('input[data-editor-hierarchy-search]');\n replacement?.focus({ preventScroll: true });\n if (replacement && searchFocus.start !== null && searchFocus.end !== null) {\n replacement.setSelectionRange(searchFocus.start, searchFocus.end, searchFocus.direction ?? undefined);\n }\n }\n } finally {\n hierarchyRenderReplacingRenameInput = false;\n }\n treeViewportReveal.restoreScrollSnapshot(treeScrollSnapshot);\n const suppressActiveScroll = scope.activeId\n ? treeViewportReveal.consumeRevealSuppression(scope.activeId, { clearWhenDifferent: activeIdChanged })\n : false;\n if (activeIdChanged && scope.activeId && !suppressActiveScroll && shouldAutoScrollActiveHierarchyNode()) {\n scheduleActiveHierarchyScroll(scope.activeId);\n }\n lastRenderedActiveId = scope.activeId;\n lastRenderedScopeId = scope.scopeId;\n };\n\n const hierarchyViewAdapter = createLocalEditorHierarchyViewAdapter(model => {\n currentKernelViewModel = model;\n if (currentBridgeState && model) {\n const compositionActive = (\n hierarchySearchComposition?.scopeKey === model.snapshot.scopeKey\n && panel.contains(hierarchySearchComposition.input)\n ) || (\n hierarchyRenameComposition?.scopeKey === model.snapshot.scopeKey\n && panel.contains(hierarchyRenameComposition.input)\n );\n if (shouldDeferHierarchyDomRender({\n renderedAuthority: renderedHierarchyAuthority,\n renderedProjection: renderedHierarchyProjection,\n renderedDragId: renderedHierarchyDragId,\n model,\n nativeDragActive: nativeHierarchyDragActive,\n compositionActive,\n })) {\n return;\n }\n if (renderedHierarchyAuthority\n && !isHierarchyRenderedAuthorityCurrent(renderedHierarchyAuthority, model)) {\n nativeHierarchyDragActive = false;\n hierarchySearchComposition = null;\n hierarchyRenameComposition = null;\n clearHierarchyDragFeedback();\n }\n // Invalidate the old DOM before attempting replacement. If rendering\n // throws, events from that old DOM cannot retain write authority.\n renderedHierarchyAuthority = null;\n renderedHierarchyProjection = null;\n renderPanel(currentBridgeState);\n renderedHierarchyAuthority = Object.freeze({\n token: model.authorityToken,\n scopeKey: model.snapshot.scopeKey,\n revision: model.snapshot.revision,\n });\n renderedHierarchyProjection = model.projection;\n renderedHierarchyDragId = model.state.dragId;\n } else if (!model) {\n panel.textContent = '';\n const unavailable = doc.createElement('div');\n unavailable.textContent = 'Hierarchy scope unavailable.';\n unavailable.style.cssText = 'padding:12px;color:var(--fps-editor-muted);font-size:11px';\n panel.appendChild(unavailable);\n renderedHierarchyAuthority = null;\n renderedHierarchyProjection = null;\n renderedHierarchyDragId = null;\n }\n });\n const detachKernelView = kernel.attachView(hierarchyViewAdapter.adapter);\n const dispatchHierarchyIntent = async (intent: HierarchyIntent): Promise<HierarchyOperationResult> => {\n const authority = renderedHierarchyAuthority;\n const result = await hierarchyViewAdapter.dispatch({\n ...intent,\n expectedAuthorityToken: authority?.token ?? -1,\n expectedScopeKey: authority?.scopeKey ?? '',\n expectedRevision: authority?.revision ?? -1,\n });\n if (!result.ok || result.diagnostics.length > 0) options.onOperationResult?.(result);\n return result;\n };\n const executeCurrentHierarchyOperation = (\n operationId: string,\n input?: Readonly<Record<string, HierarchyJsonValue>>,\n context?: Partial<Pick<HierarchyOperationContext, 'contextNodeId' | 'targetIds' | 'activeId'>>,\n ): Promise<HierarchyOperationResult> => {\n const model = currentKernelViewModel;\n const authority = renderedHierarchyAuthority;\n if (!model || !authority\n || model.authorityToken !== authority.token\n || model.snapshot.scopeKey !== authority.scopeKey\n || model.snapshot.revision !== authority.revision) {\n return Promise.resolve({\n ok: false,\n changed: false,\n revision: model?.snapshot.revision ?? 0,\n diagnostics: [{ code: 'hierarchy.operation.view-authority-changed', message: 'Hierarchy view authority changed.', severity: 'error' }],\n });\n }\n return dispatchHierarchyIntent({\n type: 'operation.execute',\n operationId,\n expectedAuthorityToken: authority.token,\n context: {\n scopeKey: authority.scopeKey,\n expectedRevision: authority.revision,\n contextNodeId: context?.contextNodeId === undefined ? model.snapshot.activeId : context.contextNodeId,\n targetIds: context?.targetIds ?? model.snapshot.selectedIds,\n activeId: context?.activeId === undefined ? model.snapshot.activeId : context.activeId,\n },\n ...(input ? { input } : {}),\n });\n };\n const executePresentedHierarchyOperation = async (\n operation: HierarchyOperationDescriptor,\n context: HierarchyOperationContext,\n expectedAuthorityToken: number,\n ): Promise<void> => {\n let input = operation.payload;\n if (operation.inputPresentation) {\n const requested = await options.requestOperationInput?.(operation, context) ?? null;\n if (!requested) return;\n if (!isHierarchyMenuAuthorityCurrent(kernel.getViewModel(), expectedAuthorityToken, context)) return;\n input = Object.freeze({ ...(operation.payload ?? {}), ...requested });\n }\n await dispatchHierarchyIntent({\n type: 'operation.execute',\n operationId: operation.id,\n expectedAuthorityToken,\n context,\n ...(input ? { input } : {}),\n });\n };\n const render = (state: LocalEditorBrowserUiState<TDocument>): void => {\n currentBridgeState = state;\n kernel.refresh();\n };\n\n const onClick = (event: MouseEvent): void => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-hierarchy-rename-input]')) return;\n if (target?.closest('input[data-editor-hierarchy-search]')) {\n return;\n }\n const enabledToggle = target?.closest<HTMLElement>('[data-editor-hierarchy-enabled-toggle]');\n const enabledToggleId = enabledToggle?.dataset.editorHierarchyEnabledToggle;\n if (enabledToggleId) {\n event.preventDefault();\n event.stopPropagation();\n toggleHierarchyItemEnabled(enabledToggleId, enabledToggle);\n return;\n }\n const toggle = target?.closest<HTMLElement>('[data-editor-hierarchy-toggle]')?.dataset.editorHierarchyToggle;\n if (toggle) {\n event.preventDefault();\n event.stopPropagation();\n toggleExpanded(toggle);\n return;\n }\n const createMenuButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-create-menu]');\n if (createMenuButton) {\n event.preventDefault();\n event.stopPropagation();\n openHierarchyCreateMenu(createMenuButton);\n return;\n }\n const hierarchyButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const hierarchyId = hierarchyButton?.dataset.editorHierarchyId;\n if (hierarchyId) {\n if (treeViewportReveal.isElementVisible(hierarchyButton)) {\n treeViewportReveal.suppressNextReveal(hierarchyId);\n }\n event.preventDefault();\n event.stopPropagation();\n selectHierarchyItemFromClick(hierarchyId, event);\n return;\n }\n if (shouldClearSelectionFromBlankClick(event, target)) {\n event.preventDefault();\n void dispatchHierarchyIntent({ type: 'selection', targetId: null, modifier: 'replace' });\n }\n };\n\n const onContextMenu = (event: MouseEvent): void => {\n void openHierarchyContextMenu(event);\n };\n\n const onDocumentPointerDown = (event: PointerEvent): void => {\n hierarchyShortcutScopeActive = isEventInsideHierarchyPanel(event);\n };\n\n const onDocumentFocusIn = (event: FocusEvent): void => {\n hierarchyShortcutScopeActive = isEventInsideHierarchyPanel(event);\n };\n\n const onDoubleClick = (event: MouseEvent): void => {\n const target = event.target instanceof HTMLElement ? event.target : null;\n if (target?.closest('[data-editor-hierarchy-toggle]')) return;\n const hierarchyButton = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const id = hierarchyButton?.dataset.editorHierarchyId;\n if (!id) return;\n event.preventDefault();\n event.stopPropagation();\n void (async () => {\n const selection = await dispatchHierarchyIntent({ type: 'selection', targetId: id, modifier: 'replace' });\n if (!selection.ok) return;\n kernel.refresh();\n const refreshed = kernel.getViewModel()?.snapshot;\n if (!refreshed || !refreshed.selectedIds.includes(id) || refreshed.activeId !== id) return;\n if (!refreshed.primaryOperationId) return;\n await dispatchHierarchyIntent({ type: 'primary', targetId: id });\n })();\n };\n\n const onInput = (event: Event): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n if (!isHierarchyCompositionSessionCurrent(hierarchySearchComposition, input, resolveCurrentScopeKey())\n && !isComposingInputEvent(event)) {\n void dispatchHierarchyIntent({ type: 'search.change', value: input.value });\n }\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput || !currentKernelViewModel?.state.rename) return;\n if (isHierarchyCompositionSessionCurrent(hierarchyRenameComposition, input, resolveCurrentScopeKey())\n || isComposingInputEvent(event)) return;\n void dispatchHierarchyIntent({ type: 'rename.change', value: input.value });\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n if (event.isComposing\n || isHierarchyCompositionSessionCurrent(hierarchySearchComposition, input, resolveCurrentScopeKey())) return;\n const scopeId = resolveScopeForCurrentState()?.scopeId ?? 'scene';\n if (event.key !== 'Escape' || getScopeSearch(scopeId).length === 0) return;\n event.preventDefault();\n void dispatchHierarchyIntent({ type: 'search.change', value: '' });\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput) return;\n if (event.isComposing\n || isHierarchyCompositionSessionCurrent(hierarchyRenameComposition, input, resolveCurrentScopeKey())) return;\n if (event.key === 'Enter') {\n event.preventDefault();\n commitHierarchyRename(input.dataset.editorHierarchyRenameInput, input.value);\n return;\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n void dispatchHierarchyIntent({ type: 'rename.cancel' });\n }\n };\n\n const onCompositionStart = (event: CompositionEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n const scopeKey = resolveCurrentScopeKey();\n if (input?.dataset.editorHierarchySearch != null) hierarchySearchComposition = { input, scopeKey };\n if (input?.dataset.editorHierarchyRenameInput) hierarchyRenameComposition = { input, scopeKey };\n };\n\n const onCompositionEnd = (event: CompositionEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (input?.dataset.editorHierarchySearch != null) {\n const isCurrent = isHierarchyCompositionSessionCurrent(\n hierarchySearchComposition,\n input,\n resolveCurrentScopeKey(),\n );\n hierarchySearchComposition = null;\n if (!isCurrent) return;\n void dispatchHierarchyIntent({ type: 'search.change', value: input.value });\n return;\n }\n if (!input?.dataset.editorHierarchyRenameInput) return;\n const isCurrent = isHierarchyCompositionSessionCurrent(\n hierarchyRenameComposition,\n input,\n resolveCurrentScopeKey(),\n );\n hierarchyRenameComposition = null;\n if (!isCurrent) return;\n const renameId = input.dataset.editorHierarchyRenameInput;\n void (async () => {\n await dispatchHierarchyIntent({ type: 'rename.change', value: input.value });\n const renameInputs = [...panel.querySelectorAll<HTMLInputElement>('[data-editor-hierarchy-rename-input]')];\n const currentInput = renameInputs.find(candidate => candidate.dataset.editorHierarchyRenameInput === renameId);\n if (shouldCommitHierarchyRenameAfterCompositionEnd(doc.activeElement, renameInputs, renameId)) {\n commitHierarchyRename(renameId, currentInput?.value ?? input.value);\n }\n })();\n };\n\n const onFocusOut = (event: FocusEvent): void => {\n const input = event.target instanceof HTMLInputElement ? event.target : null;\n if (!input?.dataset.editorHierarchyRenameInput) return;\n if (hierarchyRenderReplacingRenameInput) return;\n if (isHierarchyCompositionSessionCurrent(hierarchyRenameComposition, input, resolveCurrentScopeKey())) return;\n commitHierarchyRename(input.dataset.editorHierarchyRenameInput, input.value);\n };\n\n const onDragStart = (event: DragEvent): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const button = target?.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n const id = button?.dataset.editorHierarchyId;\n if (!id || !state) return;\n const viewModel = currentKernelViewModel;\n const node = viewModel?.snapshot.nodeById.get(id);\n if (!viewModel || !node?.draggable || node.editorLocked === true) {\n event.preventDefault();\n return;\n }\n const draggedIds = resolveDraggedIds(viewModel, id);\n if (draggedIds.length === 0) {\n event.preventDefault();\n return;\n }\n const authority = renderedHierarchyAuthority;\n const reparentAvailable = !!authority\n && viewModel.authorityToken === authority.token\n && kernel.listOperations({\n scopeKey: authority.scopeKey,\n expectedRevision: authority.revision,\n contextNodeId: id,\n targetIds: draggedIds,\n activeId: id,\n }, authority.token).some(operation => operation.id === 'hierarchy.node.reparent');\n if (!canUseHierarchyProviderReparent(viewModel, reparentAvailable)) {\n event.preventDefault();\n return;\n }\n event.dataTransfer?.setData('text/plain', draggedIds.join(','));\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n nativeHierarchyDragActive = true;\n void dispatchHierarchyIntent({ type: 'drag.begin', targetId: id });\n if (currentKernelViewModel?.state.dragId !== id\n || !sameHierarchyIdSet(draggedIds, currentKernelViewModel.state.dragIds)) {\n nativeHierarchyDragActive = false;\n event.preventDefault();\n return;\n }\n };\n\n const processHierarchyDragOver = (event: DragEvent, frameTime?: number): void => {\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const draggedIds = readDraggedIds(event);\n if (!state || draggedIds.length === 0) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!sameHierarchyIdSet(draggedIds, currentKernelViewModel?.state.dragIds ?? [])) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!nativeHierarchyDragActive || !canUseHierarchyProviderReparent(currentKernelViewModel, true)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const viewModel = currentKernelViewModel;\n if (!viewModel) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!isInsideHierarchyTreeViewport(target)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n hierarchyDragSession.pointer = { x: event.clientX, y: event.clientY };\n const viewportRect = measureHierarchyViewportRect(frameTime);\n updateHierarchyAutoScroll(viewportRect);\n const operation = resolveHierarchyDragOperation(event, viewModel, draggedIds, viewportRect);\n if (!operation || operation.status === 'idle') {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n event.preventDefault();\n hierarchyDragSession.operation = operation;\n updateHierarchyHoverExpand(operation, viewModel);\n const canSubmitDrop = operation.status === 'valid'\n && nativeHierarchyDragActive\n && canUseHierarchyProviderReparent(currentKernelViewModel, true);\n if (event.dataTransfer) event.dataTransfer.dropEffect = canSubmitDrop ? 'move' : 'none';\n if (operation.status !== 'valid' || !operation.slot || !operation.resolution?.ok) {\n hierarchyDragSession.preview = operation.preview;\n hierarchyRootDrop = false;\n syncHierarchyDropPreview();\n return;\n }\n if (operation.slot.placement === 'root') {\n hierarchyDragSession.preview = operation.preview;\n hierarchyRootDrop = true;\n syncHierarchyDropPreview();\n return;\n }\n hierarchyDragSession.preview = operation.preview;\n hierarchyRootDrop = false;\n syncHierarchyDropPreview();\n };\n\n const onDragOver = (event: DragEvent): void => {\n if (readDraggedIds(event).length > 0 && isInsideHierarchyTreeViewport(event.target instanceof HTMLElement ? event.target : null)) {\n event.preventDefault();\n }\n pendingHierarchyDragOver = event;\n if (hierarchyDragOverFrame !== null) return;\n hierarchyDragOverFrame = doc.defaultView?.requestAnimationFrame(frameTime => {\n hierarchyDragOverFrame = null;\n const latest = pendingHierarchyDragOver;\n pendingHierarchyDragOver = null;\n if (latest) processHierarchyDragOver(latest, frameTime);\n }) ?? null;\n if (hierarchyDragOverFrame === null) {\n const latest = pendingHierarchyDragOver;\n pendingHierarchyDragOver = null;\n if (latest) processHierarchyDragOver(latest);\n }\n };\n\n const onDragLeave = (event: DragEvent): void => {\n if (!panel.contains(event.relatedTarget as Node | null)) {\n cancelPendingHierarchyDragOver();\n clearHierarchyDragFeedback();\n requestRender();\n }\n };\n\n const onDragEnd = (): void => {\n cancelPendingHierarchyDragOver();\n nativeHierarchyDragActive = false;\n void dispatchHierarchyIntent({ type: 'drag.cancel' });\n clearHierarchyDragFeedback();\n requestRender();\n };\n\n const onDrop = (event: DragEvent): void => {\n cancelPendingHierarchyDragOver();\n const state = getState();\n const target = event.target instanceof HTMLElement ? event.target : null;\n const draggedIds = readDraggedIds(event);\n if (!state || draggedIds.length === 0) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!sameHierarchyIdSet(draggedIds, currentKernelViewModel?.state.dragIds ?? [])) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!nativeHierarchyDragActive || !canUseHierarchyProviderReparent(currentKernelViewModel, true)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const viewModel = currentKernelViewModel;\n if (!viewModel) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n if (!isInsideHierarchyTreeViewport(target)) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n const operation = resolveHierarchyDragOperation(event, viewModel, draggedIds);\n if (!operation || operation.status !== 'valid' || !operation.slot || !operation.resolution?.ok) {\n clearHierarchyDragFeedbackAndRender();\n return;\n }\n event.preventDefault();\n nativeHierarchyDragActive = false;\n const committedDraggedIds = operation.resolution.draggedIds;\n const dragContextNodeId = currentKernelViewModel?.state.dragId && committedDraggedIds.includes(currentKernelViewModel.state.dragId)\n ? currentKernelViewModel.state.dragId\n : committedDraggedIds[0] ?? null;\n clearHierarchyDragFeedback();\n expandDropParent(operation.resolution);\n void executeCurrentHierarchyOperation(\n 'hierarchy.node.reparent',\n {\n draggedIds: committedDraggedIds,\n targetId: operation.slot.targetId,\n placement: operation.slot.placement,\n parentId: operation.resolution.parentId,\n beforeId: operation.resolution.beforeId,\n afterId: operation.resolution.afterId,\n preserveWorldTransform: true,\n },\n { contextNodeId: dragContextNodeId, targetIds: committedDraggedIds, activeId: dragContextNodeId },\n );\n };\n\n panel.addEventListener('click', onClick);\n panel.addEventListener('contextmenu', onContextMenu);\n panel.addEventListener('dblclick', onDoubleClick);\n panel.addEventListener('input', onInput);\n panel.addEventListener('keydown', onKeyDown);\n panel.addEventListener('compositionstart', onCompositionStart);\n panel.addEventListener('compositionend', onCompositionEnd);\n panel.addEventListener('focusout', onFocusOut);\n panel.addEventListener('dragstart', onDragStart);\n panel.addEventListener('dragover', onDragOver);\n panel.addEventListener('dragleave', onDragLeave);\n panel.addEventListener('dragend', onDragEnd);\n panel.addEventListener('drop', onDrop);\n doc.addEventListener('pointerdown', onDocumentPointerDown, { capture: true });\n doc.addEventListener('focusin', onDocumentFocusIn, { capture: true });\n\n return {\n render,\n handleDeleteShortcut(event) {\n return handleDeleteShortcut(event);\n },\n handleEditShortcut(event) {\n return handleEditShortcut(event);\n },\n dispose() {\n nativeHierarchyDragActive = false;\n hierarchySearchComposition = null;\n hierarchyRenameComposition = null;\n detachKernelView();\n clearHierarchyDragFeedback();\n panel.removeEventListener('click', onClick);\n panel.removeEventListener('contextmenu', onContextMenu);\n panel.removeEventListener('dblclick', onDoubleClick);\n panel.removeEventListener('input', onInput);\n panel.removeEventListener('keydown', onKeyDown);\n panel.removeEventListener('compositionstart', onCompositionStart);\n panel.removeEventListener('compositionend', onCompositionEnd);\n panel.removeEventListener('focusout', onFocusOut);\n panel.removeEventListener('dragstart', onDragStart);\n panel.removeEventListener('dragover', onDragOver);\n panel.removeEventListener('dragleave', onDragLeave);\n panel.removeEventListener('dragend', onDragEnd);\n panel.removeEventListener('drop', onDrop);\n cancelPendingHierarchyDragOver();\n doc.removeEventListener('pointerdown', onDocumentPointerDown, { capture: true });\n doc.removeEventListener('focusin', onDocumentFocusIn, { capture: true });\n },\n };\n\n function handleDeleteShortcut(event: KeyboardEvent): boolean {\n return handleOperationShortcut(event);\n }\n\n function handleEditShortcut(event: KeyboardEvent): boolean {\n return handleOperationShortcut(event);\n }\n\n function handleOperationShortcut(event: KeyboardEvent): boolean {\n const operation = currentKernelViewModel?.operations.find(candidate => (\n !!candidate.shortcut\n && matchesHierarchyOperationShortcut(event, candidate.shortcut)\n && (candidate.shortcutScope !== 'hierarchy' || isHierarchyShortcutScope(event))\n ));\n if (!operation) return false;\n event.preventDefault();\n if (operation.disabledReason) return true;\n if (operation.id === 'hierarchy.node.rename') {\n const targetId = currentKernelViewModel?.snapshot.activeId;\n if (targetId) beginHierarchyRename(targetId);\n return true;\n }\n const input = operation.id === 'hierarchy.selection.all'\n ? { visibleIds: currentKernelViewModel\n ? currentKernelViewModel.projection.getRange(0, currentKernelViewModel.projection.totalCount - 1)\n : [] }\n : operation.payload;\n void executeCurrentHierarchyOperation(operation.id, input);\n return true;\n }\n\n function isComposingInputEvent(event: Event): boolean {\n return (event as Event & { isComposing?: boolean }).isComposing === true;\n }\n\n function resolveCurrentScopeKey(): string {\n return currentKernelViewModel?.snapshot.scopeKey ?? renderedHierarchyAuthority?.scopeKey ?? '';\n }\n\n function resolveScope(state: LocalEditorBrowserUiState<TDocument>): BrowserHierarchyScopeMetadata {\n const snapshot = currentKernelViewModel?.snapshot;\n return snapshot\n ? {\n scopeId: snapshot.scopeKey,\n revision: snapshot.revision,\n kind: snapshot.scopeType,\n title: snapshot.title,\n searchPlaceholder: snapshot.searchPlaceholder,\n selectedIds: snapshot.selectedIds,\n activeId: snapshot.activeId,\n readonly: snapshot.readonly,\n }\n : {\n scopeId: 'hierarchy:unavailable',\n revision: 0,\n kind: 'unavailable',\n title: 'Hierarchy',\n searchPlaceholder: 'Hierarchy unavailable',\n selectedIds: [],\n activeId: null,\n readonly: true,\n };\n }\n\n function resolveScopeForCurrentState(): BrowserHierarchyScopeMetadata | null {\n const state = getState();\n return state ? resolveScope(state) : null;\n }\n\n function getScopeSearch(scopeId: string): string {\n if (currentKernelViewModel?.snapshot.scopeKey === scopeId) return currentKernelViewModel.state.searchQuery;\n return '';\n }\n\n function resolveVisibleIds(): readonly string[] {\n const projection = currentKernelViewModel?.projection;\n if (!projection) return [];\n if (cachedVisibleIds?.projection === projection) return cachedVisibleIds.ids;\n const ids = projection.getRange(0, projection.totalCount - 1);\n cachedVisibleIds = { projection, ids };\n return ids;\n }\n\n function selectHierarchyItemFromClick(id: string, event: MouseEvent): void {\n const toggle = event.metaKey || event.ctrlKey;\n const range = event.shiftKey && !toggle;\n void dispatchHierarchyIntent({\n type: 'selection',\n targetId: id,\n modifier: range ? 'range' : toggle ? 'toggle' : 'replace',\n });\n }\n\n function toggleHierarchyItemEnabled(id: string, toggle: HTMLElement): void {\n if (toggle.dataset.editorHierarchyEnabledToggleDisabled === 'true') return;\n const state = getState();\n if (!state) return;\n const snapshot = currentKernelViewModel?.snapshot;\n const node = snapshot?.nodeById.get(id);\n if (!snapshot || !node || node.editorLocked === true) return;\n const directEnabled = node.authoredEnabled ?? node.editorVisible;\n const request = createHierarchyEnabledOperationRequest(node, directEnabled);\n void executeCurrentHierarchyOperation(\n request.operationId,\n request.input,\n { contextNodeId: id, targetIds: [id], activeId: id },\n );\n }\n\n function resolveDraggedIds(\n viewModel: HierarchyViewModel,\n draggedId: string,\n ): string[] {\n const selectedIds = viewModel.snapshot.selectedIds.includes(draggedId)\n ? viewModel.snapshot.selectedIds\n : [draggedId];\n return [...viewModel.projection.getTopLevelSelection(selectedIds)];\n }\n\n function readDraggedIds(event: DragEvent): string[] {\n return resolveHierarchyTransportDragIds(\n event.dataTransfer?.getData('text/plain'),\n currentKernelViewModel?.state.dragIds ?? [],\n );\n }\n\n function toggleExpanded(id: string): void {\n void dispatchHierarchyIntent({ type: 'disclosure.toggle', targetId: id });\n }\n\n function expandNode(id: string | null | undefined): void {\n if (!id) return;\n void dispatchHierarchyIntent({ type: 'disclosure.expand', targetId: id });\n }\n\n function shouldAutoScrollActiveHierarchyNode(): boolean {\n return !currentKernelViewModel?.state.rename\n && !currentKernelViewModel?.state.dragId\n && !hasHierarchyDragFeedback();\n }\n\n function scheduleActiveHierarchyScroll(activeId: string): void {\n pendingHierarchyScrollId = activeId;\n setTimeout(() => {\n if (pendingHierarchyScrollId !== activeId) return;\n pendingHierarchyScrollId = null;\n const viewport = findHierarchyTreeViewport();\n let row = findHierarchyRow(activeId);\n if (!row && viewport && currentKernelViewModel) {\n const index = currentKernelViewModel.projection.indexOf(activeId);\n if (index >= 0) {\n const rowTop = index * LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT;\n const rowBottom = rowTop + LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT;\n if (rowTop < viewport.scrollTop) viewport.scrollTop = rowTop;\n else if (rowBottom > viewport.scrollTop + viewport.clientHeight) {\n viewport.scrollTop = Math.max(0, rowBottom - viewport.clientHeight);\n }\n row = findHierarchyRow(activeId);\n }\n }\n if (!row) return;\n if (viewport) {\n treeViewportReveal.revealElement(row, { behavior: 'smooth' });\n return;\n }\n try {\n row.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n } catch {\n row.scrollIntoView();\n }\n }, 0);\n }\n\n function findHierarchyRow(id: string): HTMLElement | null {\n for (const row of panel.querySelectorAll<HTMLElement>('[data-editor-hierarchy-id]')) {\n if (row.dataset.editorHierarchyId === id) return row;\n }\n return null;\n }\n\n function findHierarchyTreeViewport(): HTMLElement | null {\n return panel.querySelector<HTMLElement>('[data-editor-hierarchy-tree-viewport]');\n }\n\n function isInsideHierarchyTreeViewport(target: HTMLElement | null): boolean {\n return !!target?.closest('[data-editor-hierarchy-tree-viewport]');\n }\n\n function armHierarchyAutoScroll(): void {\n if (hierarchyDragSession.autoScrollFrame !== null) return;\n hierarchyDragSession.autoScrollFrame = doc.defaultView?.requestAnimationFrame(tickHierarchyAutoScroll) ?? null;\n }\n\n function stopHierarchyAutoScroll(): void {\n if (hierarchyDragSession.autoScrollFrame !== null) {\n doc.defaultView?.cancelAnimationFrame(hierarchyDragSession.autoScrollFrame);\n }\n hierarchyDragSession.autoScrollFrame = null;\n }\n\n function clearHierarchyDragFeedback(): void {\n cancelPendingHierarchyDragOver();\n hierarchyRootDrop = false;\n lastHierarchyDropPreviewKey = '';\n stopHierarchyAutoScroll();\n clearHierarchyHoverExpand();\n clearLocalEditorStructuredDragSession(hierarchyDragSession);\n }\n\n function clearHierarchyHoverExpand(): void {\n if (hierarchyHoverExpandTimer !== null) doc.defaultView?.clearTimeout(hierarchyHoverExpandTimer);\n hierarchyHoverExpandTimer = null;\n hierarchyHoverExpandId = null;\n }\n\n function updateHierarchyHoverExpand(\n operation: LocalEditorHierarchyDragOperation,\n viewModel: HierarchyViewModel,\n ): void {\n const targetId = operation.status === 'valid' && operation.slot?.placement === 'inside'\n ? operation.slot.targetId\n : null;\n const node = targetId ? viewModel.snapshot.nodeById.get(targetId) : null;\n const expanded = targetId ? !viewModel.state.collapsedIds.has(targetId) : false;\n const childCount = targetId ? viewModel.snapshot.childrenByParentId.get(targetId)?.length ?? 0 : 0;\n if (!targetId || !node || expanded || childCount === 0) {\n clearHierarchyHoverExpand();\n return;\n }\n if (hierarchyHoverExpandId === targetId && hierarchyHoverExpandTimer !== null) return;\n clearHierarchyHoverExpand();\n hierarchyHoverExpandId = targetId;\n hierarchyHoverExpandTimer = doc.defaultView?.setTimeout(() => {\n const id = hierarchyHoverExpandId;\n hierarchyHoverExpandTimer = null;\n hierarchyHoverExpandId = null;\n if (id) expandNode(id);\n }, 600) ?? null;\n }\n\n function hasHierarchyDragFeedback(): boolean {\n return hierarchyRootDrop\n || hasLocalEditorStructuredDragSessionFeedback(hierarchyDragSession);\n }\n\n function clearHierarchyDragFeedbackAndRender(): void {\n const hadFeedback = hasHierarchyDragFeedback();\n clearHierarchyDragFeedback();\n if (hadFeedback) syncHierarchyDropPreview();\n }\n\n function syncHierarchyDropPreview(): void {\n const preview = hierarchyDragSession.preview;\n const key = [\n hierarchyRootDrop, preview?.kind ?? '', preview?.targetId ?? '', preview?.placement ?? '', preview?.valid ?? '',\n ].join(':');\n if (key === lastHierarchyDropPreviewKey) return;\n lastHierarchyDropPreviewKey = key;\n syncLocalEditorHierarchyDropPreview(doc, panel, {\n dropPreview: hierarchyDragSession.preview,\n rootDrop: hierarchyRootDrop,\n });\n }\n\n function tickHierarchyAutoScroll(frameTime: number): void {\n hierarchyDragSession.autoScrollFrame = null;\n if (!hierarchyDragSession.pointer) return;\n const viewport = findHierarchyTreeViewport();\n if (!viewport) return;\n const rect = measureHierarchyViewportRect(frameTime);\n if (!rect) return;\n const scroll = resolveLocalEditorHierarchyAutoScroll({\n pointerY: hierarchyDragSession.pointer.y,\n viewportTop: rect.top,\n viewportBottom: rect.bottom,\n viewportHeight: rect.height,\n scrollTop: viewport.scrollTop,\n scrollHeight: viewport.scrollHeight,\n clientHeight: viewport.clientHeight,\n });\n if (scroll.speed !== 0) {\n viewport.scrollTop += scroll.speed;\n requestRender();\n armHierarchyAutoScroll();\n }\n }\n\n function updateHierarchyAutoScroll(measuredRect?: DOMRect): void {\n const viewport = findHierarchyTreeViewport();\n if (!viewport || !hierarchyDragSession.pointer) {\n stopHierarchyAutoScroll();\n return;\n }\n const rect = measuredRect ?? viewport.getBoundingClientRect();\n const scroll = resolveLocalEditorHierarchyAutoScroll({\n pointerY: hierarchyDragSession.pointer.y,\n viewportTop: rect.top,\n viewportBottom: rect.bottom,\n viewportHeight: rect.height,\n scrollTop: viewport.scrollTop,\n scrollHeight: viewport.scrollHeight,\n clientHeight: viewport.clientHeight,\n });\n if (scroll.speed === 0) {\n stopHierarchyAutoScroll();\n return;\n }\n armHierarchyAutoScroll();\n }\n\n function measureHierarchyViewportRect(frameTime?: number): DOMRect | undefined {\n if (frameTime !== undefined && hierarchyViewportRectFrame === frameTime && hierarchyViewportRect) {\n return hierarchyViewportRect;\n }\n const rect = findHierarchyTreeViewport()?.getBoundingClientRect();\n if (frameTime !== undefined && rect) {\n hierarchyViewportRectFrame = frameTime;\n hierarchyViewportRect = rect;\n }\n return rect;\n }\n\n function resolveHierarchyDragOperation(\n event: DragEvent,\n viewModel: HierarchyViewModel,\n draggedIds: readonly string[],\n measuredRect?: DOMRect,\n ): LocalEditorHierarchyDragOperation | null {\n const layout = createHierarchyDragLayout(viewModel, measuredRect);\n if (!layout) return null;\n return resolveLocalEditorHierarchyDragOperation({\n layout,\n pointer: { x: event.clientX, y: event.clientY },\n draggedIds,\n resolveDrop: input => viewModel.projection.resolveDrop(input),\n });\n }\n\n function createHierarchyDragLayout(viewModel: HierarchyViewModel, measuredRect?: DOMRect): LocalEditorHierarchyDragLayout | null {\n const viewport = findHierarchyTreeViewport();\n const projection = viewModel.projection;\n if (!viewport || !projection) return null;\n const viewportRect = measuredRect ?? viewport.getBoundingClientRect();\n const rows: LocalEditorHierarchyDragLayoutRow[] = [];\n const start = Math.max(0, Math.floor(viewport.scrollTop / LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT));\n const count = Math.min(\n projection.totalCount - start,\n Math.ceil(viewportRect.height / LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT) + 1,\n );\n for (let offset = 0; offset < Math.max(0, count); offset += 1) {\n const index = start + offset;\n const projected = projection.getRow(index);\n if (!projected) continue;\n const node = viewModel.snapshot.nodeById.get(projected.id);\n if (!node) continue;\n const canAcceptInside = node.canHaveChildren && node.editorLocked !== true;\n rows.push({\n id: projected.id,\n depth: projected.depth,\n parentId: node.parentId,\n canHaveChildren: canAcceptInside,\n canAcceptInside,\n rect: {\n left: viewportRect.left,\n top: viewportRect.top + index * LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT - viewport.scrollTop,\n width: viewportRect.width,\n height: LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT,\n },\n });\n }\n return {\n rows,\n viewport: {\n left: viewportRect.left,\n top: viewportRect.top,\n width: viewportRect.width,\n height: viewportRect.height,\n },\n indentWidth: HIERARCHY_DRAG_INDENT_WIDTH,\n };\n }\n\n function expandDropParent(resolved: HierarchyDropResolution): void {\n if (resolved.placement === 'inside') expandNode(resolved.parentId);\n }\n\n function commitHierarchyRename(id: string, value: string): void {\n const rename = currentKernelViewModel?.state.rename;\n if (!rename || rename.id !== id) return;\n void (async () => {\n await dispatchHierarchyIntent({ type: 'rename.change', value });\n await dispatchHierarchyIntent({ type: 'rename.commit' });\n })();\n }\n\n async function openHierarchyContextMenu(event: MouseEvent): Promise<void> {\n const target = inputRouter.claimContextMenu(event);\n const hadHierarchyFeedback = hasHierarchyDragFeedback();\n clearHierarchyDragFeedback();\n if (!target) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n let scope = resolveScope(state);\n const hierarchyButton = target.closest<HTMLButtonElement>('[data-editor-hierarchy-id]');\n let node = hierarchyButton?.dataset.editorHierarchyId\n ? currentKernelViewModel?.snapshot.nodeById.get(hierarchyButton.dataset.editorHierarchyId)\n : undefined;\n if (node && !scope.selectedIds.includes(node.id) && node.selectable && node.editorLocked !== true) {\n const selection = await dispatchHierarchyIntent({ type: 'selection', targetId: node.id, modifier: 'replace' });\n if (!selection.ok) return;\n kernel.refresh();\n const refreshedState = getState() ?? state;\n scope = resolveScope(refreshedState);\n if (!scope.selectedIds.includes(node.id) || scope.activeId !== node.id) return;\n node = hierarchyButton?.dataset.editorHierarchyId\n ? currentKernelViewModel?.snapshot.nodeById.get(hierarchyButton.dataset.editorHierarchyId)\n : undefined;\n }\n const operationContext = Object.freeze({\n scopeKey: scope.scopeId,\n expectedRevision: scope.revision,\n contextNodeId: node?.id ?? null,\n targetIds: Object.freeze([...scope.selectedIds]),\n activeId: scope.activeId,\n });\n const expectedAuthorityToken = renderedHierarchyAuthority?.token;\n const providerOperations = kernel.listOperations(operationContext, expectedAuthorityToken);\n if (expectedAuthorityToken === undefined\n || currentKernelViewModel?.authorityToken !== expectedAuthorityToken\n || currentKernelViewModel.snapshot.scopeKey !== operationContext.scopeKey\n || currentKernelViewModel.snapshot.revision !== operationContext.expectedRevision) return;\n if (providerOperations.length === 0) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n options.onBeforeOpenContextMenu?.();\n const menuItems = createHierarchyOperationMenuItems(providerOperations);\n if (menuItems.length === 0) {\n if (hadHierarchyFeedback) requestRender();\n return;\n }\n\n contextMenu.open({\n x: event.clientX,\n y: event.clientY,\n items: menuItems,\n onAction(item) {\n if (!isHierarchyMenuAuthorityCurrent(\n kernel.getViewModel(),\n expectedAuthorityToken,\n operationContext,\n )) return;\n const operation = providerOperations.find(candidate => candidate.id === item.id);\n if (operation) {\n if (operation.id === 'hierarchy.node.rename' && operationContext.contextNodeId) {\n const latest = kernel.getViewModel();\n if (latest?.authorityToken === expectedAuthorityToken\n && latest.snapshot.scopeKey === operationContext.scopeKey\n && latest.snapshot.revision === operationContext.expectedRevision) {\n beginHierarchyRename(operationContext.contextNodeId);\n }\n return;\n }\n void executePresentedHierarchyOperation(operation, operationContext, expectedAuthorityToken);\n }\n },\n });\n if (hadHierarchyFeedback) requestRender();\n }\n\n function openHierarchyCreateMenu(button: HTMLButtonElement): void {\n const state = getState();\n if (!state || state.mode !== 'editor' || state.busy) return;\n const model = currentKernelViewModel;\n if (!model) return;\n const scope = resolveScope(state);\n const activeNode = model.snapshot.activeId\n ? model.snapshot.nodeById.get(model.snapshot.activeId)\n : undefined;\n const parentNode = activeNode?.canHaveChildren === true && activeNode.editorLocked !== true\n ? activeNode\n : undefined;\n const operationContext = Object.freeze({\n scopeKey: scope.scopeId,\n expectedRevision: scope.revision,\n contextNodeId: parentNode?.id ?? null,\n targetIds: Object.freeze(parentNode ? [parentNode.id] : []),\n activeId: parentNode?.id ?? scope.activeId,\n });\n const expectedAuthorityToken = renderedHierarchyAuthority?.token;\n const operations = kernel.listOperations(operationContext, expectedAuthorityToken);\n if (expectedAuthorityToken === undefined\n || !isHierarchyMenuAuthorityCurrent(model, expectedAuthorityToken, operationContext)) return;\n const items = createHierarchyToolbarCreateMenuItems(operations);\n if (items.length === 0) return;\n options.onBeforeOpenContextMenu?.();\n const rect = button.getBoundingClientRect();\n contextMenu.open({\n x: rect.left,\n y: rect.bottom,\n items,\n onAction(item) {\n if (!isHierarchyMenuAuthorityCurrent(kernel.getViewModel(), expectedAuthorityToken, operationContext)) return;\n hierarchyShortcutScopeActive = true;\n const operation = operations.find(candidate => candidate.id === item.id);\n if (!operation) return;\n if (parentNode) expandNode(parentNode.id);\n void executePresentedHierarchyOperation(operation, operationContext, expectedAuthorityToken);\n },\n });\n }\n\n function shouldClearSelectionFromBlankClick(event: MouseEvent, target: HTMLElement | null): boolean {\n if (event.button !== 0 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) return false;\n if (!target?.closest('[data-editor-hierarchy-root-drop]')) return false;\n if (currentKernelViewModel?.state.rename || currentKernelViewModel?.state.dragId || hasHierarchyDragFeedback()) return false;\n const state = getState();\n if (!state) return false;\n const scope = resolveScope(state);\n return currentKernelViewModel?.snapshot.scopeKey === scope.scopeId\n && currentKernelViewModel.snapshot.capabilities.clearSelection === true\n && scope.selectedIds.length > 0;\n }\n\n function isHierarchyShortcutScope(event: KeyboardEvent): boolean {\n const target = event.target instanceof Node ? event.target : null;\n const activeElement = doc.activeElement;\n return hierarchyShortcutScopeActive\n || (target !== null && panel.contains(target))\n || (activeElement !== null && panel.contains(activeElement));\n }\n\n function isEventInsideHierarchyPanel(event: Event): boolean {\n const target = event.target instanceof Node ? event.target : null;\n return target !== null && panel.contains(target);\n }\n\n function beginHierarchyRename(id: string): void {\n const node = currentKernelViewModel?.snapshot.nodeById.get(id);\n if (!node?.renamable || node.editorLocked === true) return;\n const projectionIndex = currentKernelViewModel?.projection.indexOf(id) ?? -1;\n const viewport = findHierarchyTreeViewport();\n if (viewport && projectionIndex >= 0) {\n const rowTop = projectionIndex * LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT;\n const rowBottom = rowTop + LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT;\n if (rowTop < viewport.scrollTop || rowBottom > viewport.scrollTop + viewport.clientHeight) {\n viewport.scrollTop = Math.max(\n 0,\n rowTop - Math.max(0, viewport.clientHeight - LOCAL_EDITOR_HIERARCHY_ROW_HEIGHT) / 2,\n );\n }\n }\n void dispatchHierarchyIntent({ type: 'rename.begin', targetId: id });\n }\n\n}\n\nexport function shouldCommitHierarchyRenameAfterCompositionEnd(\n activeElement: Element | null,\n renameInputs: readonly HTMLInputElement[],\n renameId: string,\n): boolean {\n const currentInput = renameInputs.find(input => input.dataset.editorHierarchyRenameInput === renameId) ?? null;\n return currentInput === null || activeElement !== currentInput;\n}\n\nexport function isHierarchyMenuAuthorityCurrent(\n model: HierarchyViewModel | null,\n expectedAuthorityToken: number,\n context: HierarchyOperationContext,\n): boolean {\n return model?.authorityToken === expectedAuthorityToken\n && model.snapshot.scopeKey === context.scopeKey\n && model.snapshot.revision === context.expectedRevision;\n}\n\nexport function sameHierarchyIdSet(left: readonly string[], right: readonly string[]): boolean {\n if (left.length !== right.length) return false;\n if (new Set(left).size !== left.length || new Set(right).size !== right.length) return false;\n const expected = new Set(right);\n return left.every(id => expected.has(id));\n}\n\nexport function resolveHierarchyTransportDragIds(\n dataTransferValue: string | null | undefined,\n frozenDragIds: readonly string[],\n): string[] {\n const dataTransferIds = dataTransferValue?.split(',')\n .map(id => id.trim())\n .filter(Boolean) ?? [];\n return dataTransferIds.length > 0 ? dataTransferIds : [...frozenDragIds];\n}\n\nexport interface HierarchyCompositionSession<TInput extends object = object> {\n readonly input: TInput;\n readonly scopeKey: string;\n}\n\nexport function isHierarchyCompositionSessionCurrent<TInput extends object>(\n session: HierarchyCompositionSession<TInput> | null,\n input: TInput,\n scopeKey: string,\n): boolean {\n return session?.input === input && session.scopeKey === scopeKey;\n}\n\nexport interface HierarchyRenderedAuthority {\n readonly token: number;\n readonly scopeKey: string;\n readonly revision: number;\n}\n\nexport function isHierarchyRenderedAuthorityCurrent(\n authority: HierarchyRenderedAuthority,\n model: HierarchyViewModel,\n): boolean {\n return authority.token === model.authorityToken\n && authority.scopeKey === model.snapshot.scopeKey\n && authority.revision === model.snapshot.revision;\n}\n\nexport function shouldDeferHierarchyDomRender(input: {\n readonly renderedAuthority: HierarchyRenderedAuthority | null;\n readonly renderedProjection: HierarchyViewModel['projection'] | null;\n readonly renderedDragId: string | null;\n readonly model: HierarchyViewModel;\n readonly nativeDragActive: boolean;\n readonly compositionActive: boolean;\n}): boolean {\n return input.renderedAuthority !== null\n && isHierarchyRenderedAuthorityCurrent(input.renderedAuthority, input.model)\n && (\n input.compositionActive\n || (input.nativeDragActive\n && input.renderedProjection === input.model.projection\n && input.renderedDragId === input.model.state.dragId)\n );\n}\n"]}
@@ -1,16 +1,17 @@
1
- import { type LocalEditorStructuredDragPointer, type LocalEditorStructuredDropPreview, type LocalEditorStructuredDropSlot, type LocalEditorStructuredDropSlotKind } from './local-editor-ui-structured-drag-policy';
2
- import type { LocalEditorHierarchyDropInput, LocalEditorHierarchyDropPlacement, LocalEditorHierarchyDropResolution } from './local-editor-ui-hierarchy-tree';
1
+ import { type LocalEditorStructuredDragLayoutItem, type LocalEditorStructuredDragPointer, type LocalEditorStructuredDropPreview, type LocalEditorStructuredDropSlot, type LocalEditorStructuredDropSlotKind } from './local-editor-ui-structured-drag-policy';
2
+ import type { HierarchyDropInput, HierarchyDropPlacement, HierarchyDropResolution } from '@fps-games/plugin-hierarchy';
3
3
  export interface LocalEditorHierarchyDragRect {
4
4
  left: number;
5
5
  top: number;
6
6
  width: number;
7
7
  height: number;
8
8
  }
9
- export interface LocalEditorHierarchyDragLayoutRow {
9
+ export interface LocalEditorHierarchyDragLayoutRow extends LocalEditorStructuredDragLayoutItem {
10
10
  id: string;
11
11
  depth: number;
12
12
  parentId: string | null;
13
13
  canHaveChildren: boolean;
14
+ canAcceptInside: boolean;
14
15
  rect: LocalEditorHierarchyDragRect;
15
16
  }
16
17
  export interface LocalEditorHierarchyDragLayout {
@@ -21,22 +22,22 @@ export interface LocalEditorHierarchyDragLayout {
21
22
  export type LocalEditorHierarchyDragPointer = LocalEditorStructuredDragPointer;
22
23
  export type LocalEditorHierarchyDropSlotKind = LocalEditorStructuredDropSlotKind;
23
24
  export type LocalEditorHierarchyDropSlot = LocalEditorStructuredDropSlot & {
24
- placement: LocalEditorHierarchyDropPlacement;
25
+ placement: HierarchyDropPlacement;
25
26
  };
26
27
  export type LocalEditorHierarchyDropPreview = LocalEditorStructuredDropPreview & {
27
- placement: LocalEditorHierarchyDropPlacement;
28
+ placement: HierarchyDropPlacement;
28
29
  };
29
30
  export interface LocalEditorHierarchyDragOperation {
30
31
  status: 'valid' | 'invalid' | 'idle';
31
32
  slot: LocalEditorHierarchyDropSlot | null;
32
33
  preview: LocalEditorHierarchyDropPreview | null;
33
- resolution: LocalEditorHierarchyDropResolution | null;
34
+ resolution: HierarchyDropResolution | null;
34
35
  }
35
36
  export interface ResolveLocalEditorHierarchyDragOperationInput {
36
37
  layout: LocalEditorHierarchyDragLayout;
37
38
  pointer: LocalEditorHierarchyDragPointer;
38
39
  draggedIds: readonly string[];
39
- resolveDrop(input: LocalEditorHierarchyDropInput): LocalEditorHierarchyDropResolution;
40
+ resolveDrop(input: HierarchyDropInput): HierarchyDropResolution;
40
41
  }
41
42
  export declare function resolveLocalEditorHierarchyDragOperation(input: ResolveLocalEditorHierarchyDragOperationInput): LocalEditorHierarchyDragOperation;
42
43
  export declare function resolveLocalEditorHierarchyDropSlot(layout: LocalEditorHierarchyDragLayout, pointer: LocalEditorHierarchyDragPointer): LocalEditorHierarchyDropSlot | null;
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-ui-hierarchy-drag-policy.d.ts","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-drag-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACvC,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,6BAA6B,EAC7B,iCAAiC,EACjC,kCAAkC,EACnC,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,4BAA4B,CAAC;CACpC;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,SAAS,iCAAiC,EAAE,CAAC;IACnD,QAAQ,EAAE,4BAA4B,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,+BAA+B,GAAG,gCAAgC,CAAC;AAC/E,MAAM,MAAM,gCAAgC,GAAG,iCAAiC,CAAC;AACjF,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GAAG;IACzE,SAAS,EAAE,iCAAiC,CAAC;CAC9C,CAAC;AACF,MAAM,MAAM,+BAA+B,GAAG,gCAAgC,GAAG;IAC/E,SAAS,EAAE,iCAAiC,CAAC;CAC9C,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAChD,UAAU,EAAE,kCAAkC,GAAG,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,6CAA6C;IAC5D,MAAM,EAAE,8BAA8B,CAAC;IACvC,OAAO,EAAE,+BAA+B,CAAC;IACzC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,KAAK,EAAE,6BAA6B,GAAG,kCAAkC,CAAC;CACvF;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,6CAA6C,GACnD,iCAAiC,CASnC;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,8BAA8B,EACtC,OAAO,EAAE,+BAA+B,GACvC,4BAA4B,GAAG,IAAI,CAKrC"}
1
+ {"version":3,"file":"local-editor-ui-hierarchy-drag-policy.d.ts","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-drag-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,mCAAmC,EACxC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACvC,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAkC,SAAQ,mCAAmC;IAC5F,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,4BAA4B,CAAC;CACpC;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,SAAS,iCAAiC,EAAE,CAAC;IACnD,QAAQ,EAAE,4BAA4B,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,+BAA+B,GAAG,gCAAgC,CAAC;AAC/E,MAAM,MAAM,gCAAgC,GAAG,iCAAiC,CAAC;AACjF,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GAAG;IACzE,SAAS,EAAE,sBAAsB,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,+BAA+B,GAAG,gCAAgC,GAAG;IAC/E,SAAS,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAChD,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,6CAA6C;IAC5D,MAAM,EAAE,8BAA8B,CAAC;IACvC,OAAO,EAAE,+BAA+B,CAAC;IACzC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,uBAAuB,CAAC;CACjE;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,6CAA6C,GACnD,iCAAiC,CASnC;AAED,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,8BAA8B,EACtC,OAAO,EAAE,+BAA+B,GACvC,4BAA4B,GAAG,IAAI,CAKrC"}
@@ -16,13 +16,7 @@ function toStructuredHierarchyDragLayout(layout) {
16
16
  return {
17
17
  viewport: layout.viewport,
18
18
  indentWidth: layout.indentWidth,
19
- items: layout.rows.map(row => ({
20
- id: row.id,
21
- depth: row.depth,
22
- parentId: row.parentId,
23
- canAcceptInside: row.canHaveChildren,
24
- rect: row.rect,
25
- })),
19
+ items: layout.rows,
26
20
  };
27
21
  }
28
22
  //# sourceMappingURL=local-editor-ui-hierarchy-drag-policy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-ui-hierarchy-drag-policy.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-drag-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,oCAAoC,GAMrC,MAAM,0CAA0C,CAAC;AAmDlD,MAAM,UAAU,wCAAwC,CACtD,KAAoD;IAEpD,MAAM,SAAS,GAAG,yCAAyC,CAAC;QAC1D,MAAM,EAAE,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC;QAChE,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;KAC/C,CAAC,CAAC;IACH,OAAO,SAA8C,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAAsC,EACtC,OAAwC;IAExC,OAAO,oCAAoC,CACzC,+BAA+B,CAAC,MAAM,CAAC,EACvC,OAAO,CAC+B,CAAC;AAC3C,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAsC;IAC7E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC","sourcesContent":["import {\n resolveLocalEditorStructuredDragOperation,\n resolveLocalEditorStructuredDropSlot,\n type LocalEditorStructuredDragLayout,\n type LocalEditorStructuredDragPointer,\n type LocalEditorStructuredDropPreview,\n type LocalEditorStructuredDropSlot,\n type LocalEditorStructuredDropSlotKind,\n} from './local-editor-ui-structured-drag-policy';\nimport type {\n LocalEditorHierarchyDropInput,\n LocalEditorHierarchyDropPlacement,\n LocalEditorHierarchyDropResolution,\n} from './local-editor-ui-hierarchy-tree';\n\nexport interface LocalEditorHierarchyDragRect {\n left: number;\n top: number;\n width: number;\n height: number;\n}\n\nexport interface LocalEditorHierarchyDragLayoutRow {\n id: string;\n depth: number;\n parentId: string | null;\n canHaveChildren: boolean;\n rect: LocalEditorHierarchyDragRect;\n}\n\nexport interface LocalEditorHierarchyDragLayout {\n rows: readonly LocalEditorHierarchyDragLayoutRow[];\n viewport: LocalEditorHierarchyDragRect;\n indentWidth: number;\n}\n\nexport type LocalEditorHierarchyDragPointer = LocalEditorStructuredDragPointer;\nexport type LocalEditorHierarchyDropSlotKind = LocalEditorStructuredDropSlotKind;\nexport type LocalEditorHierarchyDropSlot = LocalEditorStructuredDropSlot & {\n placement: LocalEditorHierarchyDropPlacement;\n};\nexport type LocalEditorHierarchyDropPreview = LocalEditorStructuredDropPreview & {\n placement: LocalEditorHierarchyDropPlacement;\n};\n\nexport interface LocalEditorHierarchyDragOperation {\n status: 'valid' | 'invalid' | 'idle';\n slot: LocalEditorHierarchyDropSlot | null;\n preview: LocalEditorHierarchyDropPreview | null;\n resolution: LocalEditorHierarchyDropResolution | null;\n}\n\nexport interface ResolveLocalEditorHierarchyDragOperationInput {\n layout: LocalEditorHierarchyDragLayout;\n pointer: LocalEditorHierarchyDragPointer;\n draggedIds: readonly string[];\n resolveDrop(input: LocalEditorHierarchyDropInput): LocalEditorHierarchyDropResolution;\n}\n\nexport function resolveLocalEditorHierarchyDragOperation(\n input: ResolveLocalEditorHierarchyDragOperationInput,\n): LocalEditorHierarchyDragOperation {\n const operation = resolveLocalEditorStructuredDragOperation({\n layout: toStructuredHierarchyDragLayout(input.layout),\n pointer: input.pointer,\n draggedIds: input.draggedIds,\n resolveDrop: structuredDrop => input.resolveDrop(structuredDrop),\n isResolutionValid: resolution => resolution.ok,\n });\n return operation as LocalEditorHierarchyDragOperation;\n}\n\nexport function resolveLocalEditorHierarchyDropSlot(\n layout: LocalEditorHierarchyDragLayout,\n pointer: LocalEditorHierarchyDragPointer,\n): LocalEditorHierarchyDropSlot | null {\n return resolveLocalEditorStructuredDropSlot(\n toStructuredHierarchyDragLayout(layout),\n pointer,\n ) as LocalEditorHierarchyDropSlot | null;\n}\n\nfunction toStructuredHierarchyDragLayout(layout: LocalEditorHierarchyDragLayout): LocalEditorStructuredDragLayout {\n return {\n viewport: layout.viewport,\n indentWidth: layout.indentWidth,\n items: layout.rows.map(row => ({\n id: row.id,\n depth: row.depth,\n parentId: row.parentId,\n canAcceptInside: row.canHaveChildren,\n rect: row.rect,\n })),\n };\n}\n"]}
1
+ {"version":3,"file":"local-editor-ui-hierarchy-drag-policy.js","sourceRoot":"","sources":["../src/local-editor-ui-hierarchy-drag-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,oCAAoC,GAOrC,MAAM,0CAA0C,CAAC;AAoDlD,MAAM,UAAU,wCAAwC,CACtD,KAAoD;IAEpD,MAAM,SAAS,GAAG,yCAAyC,CAAC;QAC1D,MAAM,EAAE,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,WAAW,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC;QAChE,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;KAC/C,CAAC,CAAC;IACH,OAAO,SAA8C,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,MAAsC,EACtC,OAAwC;IAExC,OAAO,oCAAoC,CACzC,+BAA+B,CAAC,MAAM,CAAC,EACvC,OAAO,CAC+B,CAAC;AAC3C,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAsC;IAC7E,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC","sourcesContent":["import {\n resolveLocalEditorStructuredDragOperation,\n resolveLocalEditorStructuredDropSlot,\n type LocalEditorStructuredDragLayout,\n type LocalEditorStructuredDragLayoutItem,\n type LocalEditorStructuredDragPointer,\n type LocalEditorStructuredDropPreview,\n type LocalEditorStructuredDropSlot,\n type LocalEditorStructuredDropSlotKind,\n} from './local-editor-ui-structured-drag-policy';\nimport type {\n HierarchyDropInput,\n HierarchyDropPlacement,\n HierarchyDropResolution,\n} from '@fps-games/plugin-hierarchy';\n\nexport interface LocalEditorHierarchyDragRect {\n left: number;\n top: number;\n width: number;\n height: number;\n}\n\nexport interface LocalEditorHierarchyDragLayoutRow extends LocalEditorStructuredDragLayoutItem {\n id: string;\n depth: number;\n parentId: string | null;\n canHaveChildren: boolean;\n canAcceptInside: boolean;\n rect: LocalEditorHierarchyDragRect;\n}\n\nexport interface LocalEditorHierarchyDragLayout {\n rows: readonly LocalEditorHierarchyDragLayoutRow[];\n viewport: LocalEditorHierarchyDragRect;\n indentWidth: number;\n}\n\nexport type LocalEditorHierarchyDragPointer = LocalEditorStructuredDragPointer;\nexport type LocalEditorHierarchyDropSlotKind = LocalEditorStructuredDropSlotKind;\nexport type LocalEditorHierarchyDropSlot = LocalEditorStructuredDropSlot & {\n placement: HierarchyDropPlacement;\n};\nexport type LocalEditorHierarchyDropPreview = LocalEditorStructuredDropPreview & {\n placement: HierarchyDropPlacement;\n};\n\nexport interface LocalEditorHierarchyDragOperation {\n status: 'valid' | 'invalid' | 'idle';\n slot: LocalEditorHierarchyDropSlot | null;\n preview: LocalEditorHierarchyDropPreview | null;\n resolution: HierarchyDropResolution | null;\n}\n\nexport interface ResolveLocalEditorHierarchyDragOperationInput {\n layout: LocalEditorHierarchyDragLayout;\n pointer: LocalEditorHierarchyDragPointer;\n draggedIds: readonly string[];\n resolveDrop(input: HierarchyDropInput): HierarchyDropResolution;\n}\n\nexport function resolveLocalEditorHierarchyDragOperation(\n input: ResolveLocalEditorHierarchyDragOperationInput,\n): LocalEditorHierarchyDragOperation {\n const operation = resolveLocalEditorStructuredDragOperation({\n layout: toStructuredHierarchyDragLayout(input.layout),\n pointer: input.pointer,\n draggedIds: input.draggedIds,\n resolveDrop: structuredDrop => input.resolveDrop(structuredDrop),\n isResolutionValid: resolution => resolution.ok,\n });\n return operation as LocalEditorHierarchyDragOperation;\n}\n\nexport function resolveLocalEditorHierarchyDropSlot(\n layout: LocalEditorHierarchyDragLayout,\n pointer: LocalEditorHierarchyDragPointer,\n): LocalEditorHierarchyDropSlot | null {\n return resolveLocalEditorStructuredDropSlot(\n toStructuredHierarchyDragLayout(layout),\n pointer,\n ) as LocalEditorHierarchyDropSlot | null;\n}\n\nfunction toStructuredHierarchyDragLayout(layout: LocalEditorHierarchyDragLayout): LocalEditorStructuredDragLayout {\n return {\n viewport: layout.viewport,\n indentWidth: layout.indentWidth,\n items: layout.rows,\n };\n}\n"]}