@fps-games/editor 0.2.0-beta.4 → 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 (1397) hide show
  1. package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
  2. package/dist/agent-bridge/capabilities/editor-state.js +12 -6
  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 +208 -73
  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 +24 -23
  14. package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
  15. package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
  16. package/dist/agent-bridge/capabilities/shadows.js +829 -66
  17. package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
  18. package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
  19. package/dist/agent-bridge/capabilities/ui-regions.js +3 -1
  20. package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
  21. package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
  22. package/dist/agent-bridge/capabilities/viewport.js +22 -9
  23. package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
  24. package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
  25. package/dist/agent-bridge/capability-sources.js +2 -0
  26. package/dist/agent-bridge/capability-sources.js.map +1 -1
  27. package/dist/agent-bridge/register.d.ts.map +1 -1
  28. package/dist/agent-bridge/register.js +194 -0
  29. package/dist/agent-bridge/register.js.map +1 -1
  30. package/dist/agent-bridge/shared.d.ts +231 -11
  31. package/dist/agent-bridge/shared.d.ts.map +1 -1
  32. package/dist/agent-bridge/shared.js +162 -20
  33. package/dist/agent-bridge/shared.js.map +1 -1
  34. package/dist/agent-bridge/source-types.d.ts +17 -1
  35. package/dist/agent-bridge/source-types.d.ts.map +1 -1
  36. package/dist/agent-bridge/source-types.js.map +1 -1
  37. package/dist/build-info.json +57 -42
  38. package/dist/index.d.ts +7 -6
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/internal/babylon-preview-engine.d.ts +3 -0
  43. package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
  44. package/dist/internal/babylon-preview-engine.js +11 -0
  45. package/dist/internal/babylon-preview-engine.js.map +1 -0
  46. package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
  47. package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
  48. package/dist/internal/product-local-editor-cleanup.js +20 -0
  49. package/dist/internal/product-local-editor-cleanup.js.map +1 -0
  50. package/dist/local-editor-agent-actions.d.ts +2 -4
  51. package/dist/local-editor-agent-actions.d.ts.map +1 -1
  52. package/dist/local-editor-agent-actions.js +56 -32
  53. package/dist/local-editor-agent-actions.js.map +1 -1
  54. package/dist/local-editor-agent-context.d.ts +5 -5
  55. package/dist/local-editor-agent-context.d.ts.map +1 -1
  56. package/dist/local-editor-agent-context.js.map +1 -1
  57. package/dist/local-editor-harness.d.ts +340 -35
  58. package/dist/local-editor-harness.d.ts.map +1 -1
  59. package/dist/local-editor-harness.js +3834 -1321
  60. package/dist/local-editor-harness.js.map +1 -1
  61. package/dist/local-editor-marker-graph.d.ts +15 -15
  62. package/dist/local-editor-marker-graph.d.ts.map +1 -1
  63. package/dist/local-editor-marker-graph.js +3 -0
  64. package/dist/local-editor-marker-graph.js.map +1 -1
  65. package/dist/local-editor-performance-stats.d.ts +3 -2
  66. package/dist/local-editor-performance-stats.d.ts.map +1 -1
  67. package/dist/local-editor-performance-stats.js.map +1 -1
  68. package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
  69. package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
  70. package/dist/local-editor-prefab-stage-transaction.js +45 -0
  71. package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
  72. package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
  73. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
  74. package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
  75. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
  76. package/dist/local-editor-tools.d.ts +18 -0
  77. package/dist/local-editor-tools.d.ts.map +1 -0
  78. package/dist/local-editor-tools.js +53 -0
  79. package/dist/local-editor-tools.js.map +1 -0
  80. package/dist/playable-babylon-rendering.d.ts +9 -0
  81. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  82. package/dist/playable-babylon-rendering.js +162 -6
  83. package/dist/playable-babylon-rendering.js.map +1 -1
  84. package/dist/playable-local-editor-entry.d.ts +68 -0
  85. package/dist/playable-local-editor-entry.d.ts.map +1 -0
  86. package/dist/playable-local-editor-entry.js +424 -0
  87. package/dist/playable-local-editor-entry.js.map +1 -0
  88. package/dist/playable-local-editor-host.d.ts +51 -29
  89. package/dist/playable-local-editor-host.d.ts.map +1 -1
  90. package/dist/playable-local-editor-host.js +23 -11
  91. package/dist/playable-local-editor-host.js.map +1 -1
  92. package/dist/playable-product-local-editor.d.ts +10 -12
  93. package/dist/playable-product-local-editor.d.ts.map +1 -1
  94. package/dist/playable-product-local-editor.js +178 -85
  95. package/dist/playable-product-local-editor.js.map +1 -1
  96. package/dist/playable-product-projection-preview.d.ts +4 -1
  97. package/dist/playable-product-projection-preview.d.ts.map +1 -1
  98. package/dist/playable-product-projection-preview.js +122 -5
  99. package/dist/playable-product-projection-preview.js.map +1 -1
  100. package/dist/playable-product-rendering.d.ts +12 -0
  101. package/dist/playable-product-rendering.d.ts.map +1 -1
  102. package/dist/playable-product-rendering.js +128 -6
  103. package/dist/playable-product-rendering.js.map +1 -1
  104. package/dist/playable-product-scene-capabilities.d.ts +24 -7
  105. package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
  106. package/dist/playable-product-scene-capabilities.js +172 -15
  107. package/dist/playable-product-scene-capabilities.js.map +1 -1
  108. package/dist/playable-project-mode.d.ts +17 -0
  109. package/dist/playable-project-mode.d.ts.map +1 -0
  110. package/dist/playable-project-mode.js +2 -0
  111. package/dist/playable-project-mode.js.map +1 -0
  112. package/dist/playable-runtime-babylon.d.ts +3 -6
  113. package/dist/playable-runtime-babylon.d.ts.map +1 -1
  114. package/dist/playable-runtime-babylon.js +1 -5
  115. package/dist/playable-runtime-babylon.js.map +1 -1
  116. package/dist/playable-sdk.d.ts +16 -9
  117. package/dist/playable-sdk.d.ts.map +1 -1
  118. package/dist/playable-sdk.js +6 -4
  119. package/dist/playable-sdk.js.map +1 -1
  120. package/dist/playable-standard-project.d.ts +23 -14
  121. package/dist/playable-standard-project.d.ts.map +1 -1
  122. package/dist/playable-standard-project.js +53 -19
  123. package/dist/playable-standard-project.js.map +1 -1
  124. package/dist/vite-client.d.ts +4 -0
  125. package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
  126. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
  127. package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
  128. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
  129. package/node_modules/@babel/parser/lib/index.js +0 -1
  130. package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
  131. package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
  132. package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
  133. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
  134. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
  135. package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
  136. package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
  137. package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
  138. package/node_modules/@babel/types/lib/builders/productions.js +0 -1
  139. package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
  140. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
  141. package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
  142. package/node_modules/@babel/types/lib/clone/clone.js +0 -1
  143. package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
  144. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
  145. package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
  146. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
  147. package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
  148. package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
  149. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
  150. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
  151. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
  152. package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
  153. package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
  154. package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
  155. package/node_modules/@babel/types/lib/constants/index.js +0 -1
  156. package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
  157. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
  158. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
  159. package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
  160. package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
  161. package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
  162. package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
  163. package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
  164. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
  165. package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
  166. package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
  167. package/node_modules/@babel/types/lib/definitions/core.js +0 -1
  168. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
  169. package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
  170. package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
  171. package/node_modules/@babel/types/lib/definitions/index.js +0 -1
  172. package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
  173. package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
  174. package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
  175. package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
  176. package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
  177. package/node_modules/@babel/types/lib/index.js +0 -1
  178. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
  179. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
  180. package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
  181. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
  182. package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
  183. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
  184. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
  185. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
  186. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
  187. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
  188. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
  189. package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
  190. package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
  191. package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
  192. package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
  193. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
  194. package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
  195. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
  196. package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
  197. package/node_modules/@babel/types/lib/validators/is.js +0 -1
  198. package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
  199. package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
  200. package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
  201. package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
  202. package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
  203. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
  204. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
  205. package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
  206. package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
  207. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
  208. package/node_modules/@babel/types/lib/validators/isType.js +0 -1
  209. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
  210. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
  211. package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
  212. package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
  213. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
  214. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
  215. package/node_modules/@babel/types/lib/validators/validate.js +0 -1
  216. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
  217. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
  218. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
  219. package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
  220. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
  221. package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
  222. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
  223. package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
  224. package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
  225. package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
  226. package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
  227. package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
  228. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
  229. package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
  230. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
  231. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
  232. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
  233. package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
  234. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
  235. package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
  236. package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
  237. package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
  238. package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
  239. package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
  240. package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
  241. package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
  242. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
  243. package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
  244. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
  245. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
  246. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
  247. package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
  248. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
  249. package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
  250. package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
  251. package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
  252. package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
  253. package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
  254. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
  255. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
  256. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
  257. package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
  258. package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
  259. package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
  260. package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
  261. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
  262. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
  263. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
  264. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
  265. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
  266. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
  267. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
  268. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
  269. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
  270. package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
  271. package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
  272. package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
  273. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
  274. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
  275. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
  276. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
  277. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
  278. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
  279. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
  280. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
  281. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
  282. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
  283. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
  284. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
  285. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
  286. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
  287. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
  288. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
  289. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
  290. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
  291. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
  292. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
  293. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
  294. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
  295. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
  296. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
  297. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
  298. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
  299. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
  300. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
  301. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
  302. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
  303. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
  304. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
  305. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
  306. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
  307. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
  308. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
  309. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
  310. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
  311. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
  312. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
  313. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
  314. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
  315. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
  316. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
  317. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
  318. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
  319. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
  320. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
  321. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
  322. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
  323. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
  324. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
  325. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
  326. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
  327. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
  328. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
  329. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
  330. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
  331. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
  332. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
  333. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
  334. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
  335. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
  336. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
  337. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
  338. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
  339. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
  340. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
  341. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
  342. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
  343. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
  344. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
  345. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
  346. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
  347. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
  348. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
  349. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
  350. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
  351. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
  352. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
  353. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
  354. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
  355. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
  356. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
  357. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
  358. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
  359. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
  360. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
  361. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
  362. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
  363. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
  364. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
  365. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
  366. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
  367. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
  368. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
  369. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
  370. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
  371. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
  372. package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
  373. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
  374. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
  375. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
  376. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
  377. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
  378. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
  379. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
  380. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
  381. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
  382. package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
  383. package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
  384. package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
  385. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
  386. package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
  387. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
  388. package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
  389. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
  390. package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
  391. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
  392. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
  393. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
  394. package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
  395. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
  396. package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
  397. package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
  398. package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
  399. package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
  400. package/node_modules/@babylonjs/loaders/index.js +7 -0
  401. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
  402. package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
  403. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
  404. package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
  405. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
  406. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
  407. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
  408. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
  409. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
  410. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
  411. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
  412. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
  413. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
  414. package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
  415. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
  416. package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
  417. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
  418. package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
  419. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
  420. package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
  421. package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
  422. package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
  423. package/node_modules/@babylonjs/loaders/license.md +71 -0
  424. package/node_modules/@babylonjs/loaders/package.json +49 -0
  425. package/node_modules/@babylonjs/loaders/readme.md +23 -0
  426. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
  427. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
  428. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
  429. package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
  430. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
  431. package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
  432. package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
  433. package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
  434. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
  435. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
  436. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
  437. package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
  438. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
  439. package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
  440. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
  441. package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
  442. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +2 -0
  443. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
  444. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
  445. package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
  446. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts +4 -0
  447. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.map +1 -1
  448. package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
  449. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts +1 -0
  450. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
  451. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
  452. package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
  453. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts +14 -0
  454. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
  455. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
  456. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
  457. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
  458. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
  459. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
  460. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
  461. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
  462. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
  463. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
  464. package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
  465. package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
  466. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
  467. package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
  468. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
  469. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  470. package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
  471. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  472. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
  473. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
  474. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
  475. package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
  476. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
  477. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
  478. package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
  479. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
  480. package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
  481. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +17 -5
  482. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  483. package/node_modules/@fps-games/editor-babylon/dist/projection.js +300 -362
  484. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  485. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
  486. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
  487. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
  488. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  489. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts +46 -0
  490. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
  491. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
  492. package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
  493. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +85 -0
  494. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
  495. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1600 -0
  496. package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
  497. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
  498. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
  499. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
  500. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
  501. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
  502. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
  503. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
  504. package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
  505. package/node_modules/@fps-games/editor-babylon/package.json +6 -5
  506. package/node_modules/@fps-games/editor-browser/dist/index.d.ts +8 -11
  507. package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
  508. package/node_modules/@fps-games/editor-browser/dist/index.js +6 -9
  509. package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
  510. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
  511. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
  512. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
  513. package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
  514. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
  515. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
  516. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
  517. package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
  518. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +1 -1
  519. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
  520. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +6 -0
  521. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
  522. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
  523. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
  524. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  525. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.d.ts.map +1 -1
  526. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
  527. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
  528. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +19 -0
  529. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
  530. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
  531. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
  532. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -6
  533. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  534. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +829 -866
  535. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  536. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts +8 -7
  537. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
  538. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
  539. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
  540. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts +7 -0
  541. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
  542. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
  543. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
  544. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
  545. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  546. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
  547. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  548. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  549. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  550. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +5 -0
  551. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  552. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  553. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +3 -17
  554. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  555. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts +14 -0
  556. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
  557. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
  558. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
  559. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +10 -7
  560. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  561. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +591 -639
  562. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  563. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +8 -36
  564. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
  565. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +25 -103
  566. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
  567. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
  568. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
  569. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  570. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +1 -3
  571. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
  572. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
  573. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  574. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  575. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
  576. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  577. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +16 -1
  578. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -1
  579. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +44 -39
  580. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -1
  581. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
  582. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
  583. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
  584. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
  585. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
  586. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
  587. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
  588. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -1
  589. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
  590. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  591. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts.map +1 -1
  592. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
  593. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
  594. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +52 -341
  595. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  596. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
  597. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +4 -14
  598. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  599. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +33 -119
  600. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  601. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +5 -10
  602. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  603. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +595 -544
  604. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  605. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts +2 -3
  606. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
  607. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
  608. package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
  609. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
  610. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
  611. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
  612. package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
  613. package/node_modules/@fps-games/editor-browser/package.json +15 -4
  614. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
  615. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
  616. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
  617. package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
  618. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -1
  619. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
  620. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +94 -2
  621. package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
  622. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +24 -2
  623. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  624. package/node_modules/@fps-games/editor-core/dist/editor-session.js +70 -10
  625. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  626. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +112 -0
  627. package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
  628. package/node_modules/@fps-games/editor-core/dist/editor-tools.js +613 -0
  629. package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
  630. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
  631. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
  632. package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
  633. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  634. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
  635. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  636. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  637. package/node_modules/@fps-games/editor-core/package.json +14 -6
  638. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  639. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
  640. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
  641. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts +1 -1
  642. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
  643. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +1 -1
  644. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
  645. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +14 -0
  646. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
  647. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +49 -1
  648. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
  649. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +58 -2
  650. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
  651. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
  652. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
  653. package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
  654. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +28 -3
  655. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
  656. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
  657. package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
  658. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts +2 -0
  659. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
  660. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
  661. package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
  662. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts +11 -0
  663. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
  664. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
  665. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
  666. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
  667. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
  668. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
  669. package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
  670. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
  671. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
  672. package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
  673. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +3 -0
  674. package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
  675. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +6 -0
  676. package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
  677. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
  678. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
  679. package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
  680. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts +41 -0
  681. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
  682. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
  683. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
  684. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
  685. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
  686. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
  687. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
  688. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
  689. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
  690. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
  691. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
  692. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
  693. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
  694. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
  695. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
  696. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
  697. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  698. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
  699. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +1 -0
  700. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  701. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +53 -17
  702. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  703. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts +16 -8
  704. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
  705. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
  706. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
  707. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +5 -3
  708. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  709. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +2 -1
  710. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  711. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
  712. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +134 -66
  713. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
  714. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +11 -0
  715. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
  716. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +21 -14
  717. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
  718. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +17 -9
  719. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
  720. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
  721. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
  722. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
  723. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
  724. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.d.ts.map +1 -1
  725. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
  726. package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
  727. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
  728. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
  729. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -0
  730. package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
  731. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts +7 -0
  732. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
  733. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
  734. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
  735. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts +1 -1
  736. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
  737. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
  738. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
  739. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts +11 -0
  740. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
  741. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
  742. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
  743. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
  744. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
  745. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
  746. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
  747. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts +36 -51
  748. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
  749. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
  750. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
  751. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +5 -2
  752. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
  753. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -1
  754. package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
  755. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts +1 -0
  756. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
  757. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
  758. package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
  759. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +18 -7
  760. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
  761. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +110 -18
  762. package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
  763. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +5 -0
  764. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
  765. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +6 -0
  766. package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
  767. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts +5 -2
  768. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
  769. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
  770. package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
  771. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
  772. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
  773. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
  774. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +16 -0
  775. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
  776. package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
  777. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
  778. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
  779. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
  780. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts +2 -1
  781. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.map +1 -1
  782. package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
  783. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts +2 -0
  784. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
  785. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
  786. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
  787. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts +1 -0
  788. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
  789. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
  790. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
  791. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts +31 -0
  792. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
  793. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
  794. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
  795. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
  796. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -1
  797. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
  798. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts +17 -0
  799. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
  800. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +1295 -3
  801. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
  802. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
  803. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +14 -0
  804. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
  805. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
  806. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
  807. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
  808. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.d.ts.map +1 -1
  809. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -1
  810. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
  811. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +4 -0
  812. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
  813. package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
  814. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
  815. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
  816. package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
  817. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.d.ts.map +1 -1
  818. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -1
  819. package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
  820. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts +5 -0
  821. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
  822. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
  823. package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
  824. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts +1 -1
  825. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
  826. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -1
  827. package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
  828. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts +6 -0
  829. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.map +1 -1
  830. package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
  831. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +31 -3
  832. package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
  833. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +5 -2
  834. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
  835. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +40 -4
  836. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
  837. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
  838. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
  839. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
  840. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +2 -1
  841. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
  842. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js +1 -0
  843. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
  844. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +17 -1
  845. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
  846. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +50 -2
  847. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
  848. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
  849. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +7 -5
  850. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
  851. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +5 -6
  852. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
  853. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +31 -17
  854. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
  855. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +6 -0
  856. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
  857. package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
  858. package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
  859. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
  860. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
  861. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
  862. package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
  863. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
  864. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
  865. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
  866. package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
  867. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
  868. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  869. package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
  870. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  871. package/node_modules/@fps-games/editor-protocol/package.json +2 -2
  872. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
  873. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
  874. package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
  875. package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
  876. package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
  877. package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
  878. package/node_modules/@fps-games/editor-tooling/package.json +3 -3
  879. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts +107 -0
  880. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
  881. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
  882. package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
  883. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
  884. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
  885. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
  886. package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
  887. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
  888. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
  889. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
  890. package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
  891. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
  892. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
  893. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +653 -0
  894. package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
  895. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
  896. package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
  897. package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
  898. package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
  899. package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
  900. package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
  901. package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
  902. package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
  903. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
  904. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
  905. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
  906. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
  907. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
  908. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
  909. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
  910. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
  911. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
  912. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
  913. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
  914. package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
  915. package/node_modules/@fps-games/editor-ui/package.json +23 -0
  916. package/node_modules/@fps-games/playable-assets/package.json +1 -1
  917. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
  918. package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
  919. package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
  920. package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
  921. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
  922. package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
  923. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
  924. package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
  925. package/node_modules/@fps-games/playable-contracts/package.json +1 -1
  926. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
  927. package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
  928. package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
  929. package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
  930. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
  931. package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
  932. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
  933. package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
  934. package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
  935. package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
  936. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
  937. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
  938. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
  939. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
  940. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
  941. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
  942. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
  943. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
  944. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
  945. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
  946. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
  947. package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
  948. package/node_modules/@fps-games/playable-rendering/package.json +2 -2
  949. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
  950. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
  951. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
  952. package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
  953. package/node_modules/@fps-games/playable-runtime/package.json +12 -12
  954. package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
  955. package/node_modules/@fps-games/playable-scene/package.json +2 -2
  956. package/node_modules/@fps-games/plugin-api/package.json +1 -1
  957. package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
  958. package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
  959. package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
  960. package/node_modules/@fps-games/plugin-assets/package.json +5 -5
  961. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts +6 -0
  962. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
  963. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
  964. package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
  965. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
  966. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
  967. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
  968. package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
  969. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
  970. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
  971. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
  972. package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
  973. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
  974. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
  975. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
  976. package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
  977. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
  978. package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
  979. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
  980. package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
  981. package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
  982. package/node_modules/@fps-games/plugin-host/package.json +2 -2
  983. package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
  984. package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
  985. package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
  986. package/node_modules/@fps-games/plugin-markers/package.json +5 -5
  987. package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
  988. package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
  989. package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
  990. package/node_modules/@fps-games/plugin-materials/package.json +5 -5
  991. package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
  992. package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
  993. package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
  994. package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
  995. package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
  996. package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
  997. package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
  998. package/node_modules/@fps-games/plugin-scene/package.json +5 -5
  999. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts +8 -0
  1000. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
  1001. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
  1002. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
  1003. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
  1004. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
  1005. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
  1006. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
  1007. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
  1008. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
  1009. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
  1010. package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
  1011. package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
  1012. package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
  1013. package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
  1014. package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
  1015. package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
  1016. package/node_modules/@playcanvas/observer/LICENSE +19 -0
  1017. package/node_modules/@playcanvas/observer/README.md +72 -0
  1018. package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
  1019. package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
  1020. package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
  1021. package/node_modules/@playcanvas/observer/package.json +78 -0
  1022. package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
  1023. package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
  1024. package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
  1025. package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
  1026. package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
  1027. package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
  1028. package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
  1029. package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
  1030. package/node_modules/@playcanvas/pcui/LICENSE +19 -0
  1031. package/node_modules/@playcanvas/pcui/README.md +164 -0
  1032. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1033. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1034. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1035. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1036. package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1037. package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
  1038. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1039. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1040. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1041. package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1042. package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
  1043. package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1044. package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1045. package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
  1046. package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
  1047. package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
  1048. package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1049. package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
  1050. package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
  1051. package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
  1052. package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1053. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
  1054. package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1055. package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
  1056. package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
  1057. package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
  1058. package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1059. package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
  1060. package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
  1061. package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
  1062. package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
  1063. package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
  1064. package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
  1065. package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
  1066. package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1067. package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
  1068. package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
  1069. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1070. package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
  1071. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
  1072. package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1073. package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
  1074. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
  1075. package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
  1076. package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
  1077. package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
  1078. package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
  1079. package/node_modules/@playcanvas/pcui/package.json +150 -0
  1080. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
  1081. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
  1082. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
  1083. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
  1084. package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
  1085. package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
  1086. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
  1087. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
  1088. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
  1089. package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
  1090. package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
  1091. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
  1092. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
  1093. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
  1094. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
  1095. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
  1096. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
  1097. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
  1098. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
  1099. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
  1100. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
  1101. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
  1102. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
  1103. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
  1104. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
  1105. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
  1106. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
  1107. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
  1108. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
  1109. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
  1110. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
  1111. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
  1112. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
  1113. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
  1114. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
  1115. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
  1116. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
  1117. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
  1118. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
  1119. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
  1120. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
  1121. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
  1122. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
  1123. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
  1124. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
  1125. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
  1126. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
  1127. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
  1128. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
  1129. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
  1130. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
  1131. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
  1132. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
  1133. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
  1134. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
  1135. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
  1136. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
  1137. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
  1138. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
  1139. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
  1140. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
  1141. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
  1142. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
  1143. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
  1144. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
  1145. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
  1146. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
  1147. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
  1148. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
  1149. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
  1150. package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
  1151. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
  1152. package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
  1153. package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
  1154. package/node_modules/@playcanvas/pcui/react/package.json +18 -0
  1155. package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
  1156. package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
  1157. package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1158. package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1159. package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
  1160. package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
  1161. package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
  1162. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
  1163. package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
  1164. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
  1165. package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
  1166. package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
  1167. package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
  1168. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
  1169. package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
  1170. package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
  1171. package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
  1172. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
  1173. package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
  1174. package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
  1175. package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
  1176. package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
  1177. package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
  1178. package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
  1179. package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
  1180. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
  1181. package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
  1182. package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
  1183. package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
  1184. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
  1185. package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
  1186. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
  1187. package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
  1188. package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
  1189. package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
  1190. package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
  1191. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
  1192. package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
  1193. package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
  1194. package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
  1195. package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
  1196. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
  1197. package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
  1198. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
  1199. package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
  1200. package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
  1201. package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
  1202. package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
  1203. package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
  1204. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
  1205. package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
  1206. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
  1207. package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
  1208. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
  1209. package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
  1210. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
  1211. package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
  1212. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
  1213. package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
  1214. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
  1215. package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
  1216. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
  1217. package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
  1218. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
  1219. package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
  1220. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
  1221. package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
  1222. package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
  1223. package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
  1224. package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
  1225. package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
  1226. package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
  1227. package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
  1228. package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
  1229. package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
  1230. package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
  1231. package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
  1232. package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
  1233. package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
  1234. package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
  1235. package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
  1236. package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
  1237. package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
  1238. package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
  1239. package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
  1240. package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
  1241. package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
  1242. package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
  1243. package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
  1244. package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
  1245. package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
  1246. package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
  1247. package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
  1248. package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
  1249. package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
  1250. package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
  1251. package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
  1252. package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
  1253. package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
  1254. package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
  1255. package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
  1256. package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
  1257. package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
  1258. package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
  1259. package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
  1260. package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
  1261. package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
  1262. package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
  1263. package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
  1264. package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
  1265. package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
  1266. package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
  1267. package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
  1268. package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
  1269. package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
  1270. package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
  1271. package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
  1272. package/node_modules/babylonjs-gltf2interface/license.md +71 -0
  1273. package/node_modules/babylonjs-gltf2interface/package.json +26 -0
  1274. package/package.json +31 -19
  1275. package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
  1276. package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
  1277. package/dist/editor-plugin-hierarchy-command.js +0 -119
  1278. package/dist/editor-plugin-hierarchy-command.js.map +0 -1
  1279. package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
  1280. package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
  1281. package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
  1282. package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
  1283. package/node_modules/@babel/parser/lib/index.js.map +0 -1
  1284. package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
  1285. package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
  1286. package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
  1287. package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
  1288. package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
  1289. package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
  1290. package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
  1291. package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
  1292. package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
  1293. package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
  1294. package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
  1295. package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
  1296. package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
  1297. package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
  1298. package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
  1299. package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
  1300. package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
  1301. package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
  1302. package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
  1303. package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
  1304. package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
  1305. package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
  1306. package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
  1307. package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
  1308. package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
  1309. package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
  1310. package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
  1311. package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
  1312. package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
  1313. package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
  1314. package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
  1315. package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
  1316. package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
  1317. package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
  1318. package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
  1319. package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
  1320. package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
  1321. package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
  1322. package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
  1323. package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
  1324. package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
  1325. package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
  1326. package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
  1327. package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
  1328. package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
  1329. package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
  1330. package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
  1331. package/node_modules/@babel/types/lib/index.js.map +0 -1
  1332. package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
  1333. package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
  1334. package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
  1335. package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
  1336. package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
  1337. package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
  1338. package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
  1339. package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
  1340. package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
  1341. package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
  1342. package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
  1343. package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
  1344. package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
  1345. package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
  1346. package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
  1347. package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
  1348. package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
  1349. package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
  1350. package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
  1351. package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
  1352. package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
  1353. package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
  1354. package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
  1355. package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
  1356. package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
  1357. package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
  1358. package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
  1359. package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
  1360. package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
  1361. package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
  1362. package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
  1363. package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
  1364. package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
  1365. package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
  1366. package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
  1367. package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
  1368. package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
  1369. package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
  1370. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
  1371. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
  1372. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
  1373. package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
  1374. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
  1375. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
  1376. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
  1377. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
  1378. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
  1379. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
  1380. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
  1381. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
  1382. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
  1383. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
  1384. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
  1385. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
  1386. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +0 -7
  1387. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +0 -1
  1388. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +0 -186
  1389. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +0 -1
  1390. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
  1391. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
  1392. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -98
  1393. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
  1394. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
  1395. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
  1396. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -301
  1397. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
@@ -1,10 +1,53 @@
1
+ import { createEditorUiBooleanControl, createEditorUiButton, createEditorUiColorControl, createEditorUiExpandableReadonlyControl, createEditorUiNumberControl, createEditorUiReadonlyControl, createEditorUiSection, createEditorUiSelectControl, createEditorUiTextControl, createEditorUiVectorControl, } from '@fps-games/editor-ui';
1
2
  import { createLocalEditorIcon, isLocalEditorIconName, } from './local-editor-ui-icons.js';
2
- import { createBadge, createAssetList, createDockTab, createEditorInputStyle, createEmptyState, createListItemBlock, createPanelHeader, createPropertyRow, createToolbarButton, createTreeView, createTreeViewItem, } from './local-editor-ui-primitives.js';
3
+ import { createBadge, createAssetList, createDockTab, createEditorInputStyle, createEmptyState, createListItemBlock, createPanelHeader, createPropertyRow, createToolbarButton, } from './local-editor-ui-primitives.js';
3
4
  import { configureLocalEditorDockPanelContent, createLocalEditorDockPanelViewport, renderLocalEditorDockTabStrip, } from './local-editor-ui-dock-panel.js';
4
5
  import { clearElement, createButton, toTitle } from './local-editor-ui-shared.js';
5
6
  import { resolveLocalEditorAssetBrowserTab, resolveLocalEditorBrowserAssetKind, } from './local-editor-ui-asset-kind.js';
6
7
  import { createLocalEditorBrowserInspectorVectorCopyPayload, } from './local-editor-inspector-clipboard.js';
7
- import { resolveLocalEditorBrowserInspectorVectorGroupPathFromProperties, } from './local-editor-inspector-groups.js';
8
+ import { resolveLocalEditorBrowserInspectorVectorGroupAxisFromPropertyPath, resolveLocalEditorBrowserInspectorVectorGroupPathFromProperties, } from './local-editor-inspector-groups.js';
9
+ const inspectorUiMounts = new WeakMap();
10
+ const inspectorPanelUiPendingDisposals = new WeakMap();
11
+ export function registerInspectorUiMount(mount) {
12
+ mount.element.dataset.editorUiMount = 'inspector';
13
+ inspectorUiMounts.set(mount.element, mount);
14
+ return mount;
15
+ }
16
+ export function disposeInspectorPanelUi(panel) {
17
+ if (typeof panel.querySelectorAll !== 'function')
18
+ return;
19
+ let pending = inspectorPanelUiPendingDisposals.get(panel);
20
+ if (!pending) {
21
+ pending = new Map();
22
+ inspectorPanelUiPendingDisposals.set(panel, pending);
23
+ }
24
+ for (const root of panel.querySelectorAll('[data-editor-ui-mount="inspector"]')) {
25
+ const mount = inspectorUiMounts.get(root);
26
+ if (mount)
27
+ pending.set(root, mount);
28
+ }
29
+ const failures = [];
30
+ // DOM order registers a section before its nested controls. Reverse order
31
+ // disposes children first; the panel-owned pending registry keeps a failed
32
+ // child reachable even if a later parent disposal removes its DOM subtree.
33
+ for (const [root, mount] of Array.from(pending.entries()).reverse()) {
34
+ try {
35
+ mount.dispose();
36
+ inspectorUiMounts.delete(root);
37
+ pending.delete(root);
38
+ }
39
+ catch (error) {
40
+ failures.push(error);
41
+ }
42
+ }
43
+ if (pending.size === 0)
44
+ inspectorPanelUiPendingDisposals.delete(panel);
45
+ if (failures.length > 0) {
46
+ const error = new Error('Failed to dispose one or more Inspector UI mounts.');
47
+ error.causes = failures;
48
+ throw error;
49
+ }
50
+ }
8
51
  const BOTTOM_DOCK_TAB_ICONS = {
9
52
  assets: 'asset',
10
53
  history: 'history',
@@ -25,64 +68,6 @@ const ASSET_BROWSER_TABS = [
25
68
  { id: 'materials', label: '材质', title: '显示项目材质资产' },
26
69
  { id: 'textures', label: '贴图', title: '显示贴图资产' },
27
70
  ];
28
- export function renderHierarchyPanel(doc, panel, state, rename, drop) {
29
- clearElement(panel);
30
- const createGroupButton = createToolbarButton(doc, '+ Empty', 'object');
31
- createGroupButton.dataset.editorHierarchyCreateGroup = 'true';
32
- createGroupButton.style.padding = '3px 7px';
33
- createGroupButton.style.fontSize = '11px';
34
- const createMarkerButton = createToolbarButton(doc, '+ Marker', 'view-overlay');
35
- createMarkerButton.dataset.editorHierarchyCreateMarker = 'true';
36
- createMarkerButton.style.padding = '3px 7px';
37
- createMarkerButton.style.fontSize = '11px';
38
- panel.appendChild(createPanelHeader(doc, 'Hierarchy', [createGroupButton, createMarkerButton], 'hierarchy'));
39
- const list = createTreeView(doc);
40
- for (const item of state.hierarchy) {
41
- const isRenaming = rename?.id === item.id;
42
- const selected = state.selectedIds.includes(item.id);
43
- const active = state.activeId === item.id;
44
- const dropPlacement = drop?.targetId === item.id ? drop.placement : null;
45
- const button = createTreeViewItem(doc, {
46
- id: item.id,
47
- label: item.label,
48
- depth: item.depth,
49
- selected,
50
- active,
51
- locked: item.locked,
52
- selectable: item.selectable,
53
- draggable: item.draggable,
54
- dropPlacement,
55
- });
56
- if (isRenaming) {
57
- const input = doc.createElement('input');
58
- input.dataset.editorHierarchyRenameInput = item.id;
59
- input.value = rename.value;
60
- input.style.cssText = [
61
- 'width:100%',
62
- 'height:22px',
63
- 'box-sizing:border-box',
64
- 'border:1px solid var(--fps-editor-accent-strong)',
65
- 'border-radius:2px',
66
- 'background:var(--fps-editor-field)',
67
- 'color:var(--fps-editor-text-strong)',
68
- 'font-size:12px',
69
- 'font-weight:700',
70
- 'padding:2px 5px',
71
- 'outline:none',
72
- ].join(';');
73
- button.appendChild(input);
74
- setTimeout(() => {
75
- input.focus();
76
- input.select();
77
- }, 0);
78
- }
79
- else {
80
- button.textContent = item.locked ? `${item.label} [locked]` : item.label;
81
- }
82
- list.appendChild(button);
83
- }
84
- panel.appendChild(list);
85
- }
86
71
  export function renderBottomDockPanel(doc, panel, state, activeTab, activeAssetBrowserTab = 'all') {
87
72
  clearElement(panel);
88
73
  appendDockTabs(doc, panel, activeTab);
@@ -184,6 +169,15 @@ export function renderMarkerPanel(doc, panel, state) {
184
169
  viewport.appendChild(list);
185
170
  panel.appendChild(viewport);
186
171
  }
172
+ export function shouldShowPrefabModelAddAction(state, asset) {
173
+ return state.mode === 'editor'
174
+ && state.busy !== true
175
+ && !!state.prefabStage
176
+ && state.prefabStage.readonly !== true
177
+ && resolveLocalEditorBrowserAssetKind(asset) === 'model'
178
+ && asset.placeable !== false
179
+ && asset.disabled !== true;
180
+ }
187
181
  export function renderWorkbenchLeftDockTabs(doc, panel, activeTab, panels = []) {
188
182
  renderLocalEditorDockTabStrip(doc, {
189
183
  activeId: activeTab,
@@ -673,7 +667,8 @@ function createMarkerTypeTextarea(doc, prefix, field, value) {
673
667
  ].join(';');
674
668
  return input;
675
669
  }
676
- export function renderRenderingPanel(doc, panel, state) {
670
+ export function renderRenderingPanel(doc, panel, state, options = {}) {
671
+ disposeInspectorPanelUi(panel);
677
672
  clearElement(panel);
678
673
  configureLocalEditorDockPanelContent(panel);
679
674
  const rendering = state.renderingPanel ?? null;
@@ -723,7 +718,7 @@ export function renderRenderingPanel(doc, panel, state) {
723
718
  panel.appendChild(summary);
724
719
  }
725
720
  for (const section of rendering.sections) {
726
- viewport.appendChild(createRenderingSectionBlock(doc, section));
721
+ viewport.appendChild(createRenderingSectionBlock(doc, section, options.layerHost));
727
722
  }
728
723
  panel.appendChild(viewport);
729
724
  }
@@ -779,7 +774,7 @@ function tabHeaderButtonStyle(button) {
779
774
  button.style.borderRadius = '0';
780
775
  button.style.minWidth = '0';
781
776
  }
782
- function createRenderingSectionBlock(doc, section) {
777
+ function createRenderingSectionBlock(doc, section, layerHost) {
783
778
  const isListLayout = section.layout === 'list';
784
779
  const systemGroups = groupRenderingSystems(section.systems);
785
780
  const hasSystemGroups = systemGroups.some(group => group.group);
@@ -840,11 +835,11 @@ function createRenderingSectionBlock(doc, section) {
840
835
  ].join(';');
841
836
  for (const group of systemGroups) {
842
837
  if (group.group) {
843
- list.appendChild(createRenderingSystemGroupBlock(doc, section.id, group.group, group.systems, section.layout, section.systemsCollapsible === true));
838
+ list.appendChild(createRenderingSystemGroupBlock(doc, section.id, group.group, group.systems, section.layout, section.systemsCollapsible === true, layerHost));
844
839
  continue;
845
840
  }
846
841
  for (const system of group.systems) {
847
- list.appendChild(createRenderingSystemBlock(doc, section.id, system, section.layout, section.systemsCollapsible === true));
842
+ list.appendChild(createRenderingSystemBlock(doc, section.id, system, section.layout, section.systemsCollapsible === true, layerHost));
848
843
  }
849
844
  }
850
845
  content.appendChild(list);
@@ -865,7 +860,7 @@ function groupRenderingSystems(systems) {
865
860
  }
866
861
  return groups;
867
862
  }
868
- function createRenderingSystemGroupBlock(doc, sectionId, group, systems, layout = 'cards', systemsCollapsible = false) {
863
+ function createRenderingSystemGroupBlock(doc, sectionId, group, systems, layout = 'cards', systemsCollapsible = false, layerHost) {
869
864
  const isListLayout = layout === 'list';
870
865
  const block = doc.createElement('section');
871
866
  block.dataset.editorRenderingSystemGroup = group.id;
@@ -925,7 +920,7 @@ function createRenderingSystemGroupBlock(doc, sectionId, group, systems, layout
925
920
  isListLayout ? '' : 'padding:8px',
926
921
  ].filter(Boolean).join(';');
927
922
  systems.forEach((system, index) => {
928
- const systemBlock = createRenderingSystemBlock(doc, sectionId, system, layout, systemsCollapsible);
923
+ const systemBlock = createRenderingSystemBlock(doc, sectionId, system, layout, systemsCollapsible, layerHost);
929
924
  if (isListLayout && index === systems.length - 1)
930
925
  systemBlock.style.borderBottom = '0';
931
926
  body.appendChild(systemBlock);
@@ -942,7 +937,7 @@ function getRenderingSystemGroupAccent(groupId) {
942
937
  return 'var(--fps-editor-warn)';
943
938
  return 'var(--fps-editor-muted)';
944
939
  }
945
- function createRenderingSystemBlock(doc, sectionId, system, layout = 'cards', collapsible = false) {
940
+ function createRenderingSystemBlock(doc, sectionId, system, layout = 'cards', collapsible = false, layerHost) {
946
941
  const isListLayout = layout === 'list';
947
942
  const block = collapsible ? doc.createElement('details') : createListItemBlock(doc);
948
943
  block.dataset.editorRenderingSystem = system.id;
@@ -1045,7 +1040,7 @@ function createRenderingSystemBlock(doc, sectionId, system, layout = 'cards', co
1045
1040
  ] : []),
1046
1041
  ].join(';');
1047
1042
  for (const property of system.properties) {
1048
- propertyGrid.appendChild(createRenderingPropertyRow(doc, sectionId, system.id, property, system.readOnly === true));
1043
+ propertyGrid.appendChild(createRenderingPropertyRow(doc, sectionId, system.id, property, system.readOnly === true, layerHost));
1049
1044
  }
1050
1045
  block.appendChild(propertyGrid);
1051
1046
  return block;
@@ -1168,9 +1163,9 @@ function createRenderingDisclosureIcon(doc, block, id, datasetKey) {
1168
1163
  syncDisclosureIcon();
1169
1164
  return disclosure;
1170
1165
  }
1171
- function createRenderingPropertyRow(doc, sectionId, systemId, property, systemReadOnly) {
1166
+ function createRenderingPropertyRow(doc, sectionId, systemId, property, systemReadOnly, layerHost) {
1172
1167
  const inspectorProperty = createInspectorPropertyFromRenderingProperty(property, systemReadOnly);
1173
- let control = createRenderingPropertyControl(doc, sectionId, systemId, property, inspectorProperty);
1168
+ let control = createRenderingPropertyControl(doc, sectionId, systemId, property, inspectorProperty, layerHost);
1174
1169
  if (property.actions?.length) {
1175
1170
  const controlWithActions = doc.createElement('div');
1176
1171
  controlWithActions.style.cssText = 'display:flex;align-items:center;gap:5px;min-width:0';
@@ -1199,7 +1194,7 @@ function createRenderingPropertyRow(doc, sectionId, systemId, property, systemRe
1199
1194
  label.style.cssText = createInspectorPropertyLabelStyle(access, effect);
1200
1195
  return row;
1201
1196
  }
1202
- function createRenderingPropertyControl(doc, sectionId, systemId, property, inspectorProperty) {
1197
+ function createRenderingPropertyControl(doc, sectionId, systemId, property, inspectorProperty, layerHost) {
1203
1198
  const target = createRenderingInspectorTarget(systemId);
1204
1199
  if (isInspectorPropertyEditable(inspectorProperty) && property.control === 'string-list') {
1205
1200
  return createRenderingStringListControl(doc, sectionId, systemId, property, inspectorProperty);
@@ -1210,7 +1205,7 @@ function createRenderingPropertyControl(doc, sectionId, systemId, property, insp
1210
1205
  input.dataset.renderingEditSource = 'asset';
1211
1206
  });
1212
1207
  }
1213
- let control = renderInspectorControl(doc, builtinInspectorControlRegistrations, target, inspectorProperty);
1208
+ let control = renderInspectorControl(doc, createLocalEditorBrowserInspectorControlRegistry([], 'error', layerHost), target, inspectorProperty);
1214
1209
  bindRenderedInspectorControlsToRendering(control, sectionId, systemId, property);
1215
1210
  if (property.unit && isInspectorPropertyEditable(inspectorProperty) && property.control === 'number') {
1216
1211
  const wrapper = doc.createElement('div');
@@ -1319,7 +1314,7 @@ function createHeadingLabel(doc, text) {
1319
1314
  function renderAssetBrowserContent(doc, panel, state, variant = 'list', activeTab = 'all') {
1320
1315
  configureLocalEditorDockPanelContent(panel);
1321
1316
  const title = doc.createElement('h2');
1322
- title.style.cssText = 'display:flex;align-items:center;gap:6px;font-size:13px;margin:0 0 8px;font-weight:800;color:var(--fps-editor-text-strong)';
1317
+ title.className = 'fps-editor-ui-panel-title';
1323
1318
  title.appendChild(createLocalEditorIcon(doc, 'asset'));
1324
1319
  title.appendChild(createHeadingLabel(doc, '资产浏览器'));
1325
1320
  panel.appendChild(title);
@@ -1339,21 +1334,11 @@ function renderAssetBrowserContent(doc, panel, state, variant = 'list', activeTa
1339
1334
  panel.appendChild(createMaterialButton);
1340
1335
  }
1341
1336
  const filter = doc.createElement('input');
1337
+ filter.className = 'fps-editor-ui-search';
1342
1338
  filter.type = 'search';
1343
1339
  filter.placeholder = '筛选资产';
1344
1340
  filter.value = state.assetFilter;
1345
1341
  filter.dataset.editorAssetFilter = 'true';
1346
- filter.style.cssText = [
1347
- 'width:100%',
1348
- 'height:28px',
1349
- 'border:1px solid var(--fps-editor-border)',
1350
- 'border-radius:3px',
1351
- 'background:var(--fps-editor-field)',
1352
- 'color:var(--fps-editor-text)',
1353
- 'font-size:12px',
1354
- 'padding:0 8px',
1355
- 'margin:0 0 8px',
1356
- ].join(';');
1357
1342
  panel.appendChild(filter);
1358
1343
  const tabAssets = filterAssetsByBrowserTab(state.assets, activeTab);
1359
1344
  const normalizedFilter = state.assetFilter.trim().toLowerCase();
@@ -1376,11 +1361,11 @@ function renderAssetBrowserContent(doc, panel, state, variant = 'list', activeTa
1376
1361
  })
1377
1362
  .slice(0, 80);
1378
1363
  const count = doc.createElement('div');
1364
+ count.className = 'fps-editor-ui-asset-count';
1379
1365
  const activeTabLabel = ASSET_BROWSER_TABS.find(tab => tab.id === activeTab)?.label ?? '资产';
1380
1366
  count.textContent = activeTab === 'all' && state.assetCountLabel
1381
1367
  ? `${filteredAssets.length} / ${state.assetCountLabel}`
1382
1368
  : `${filteredAssets.length} / ${tabAssets.length} 个${activeTabLabel}资产`;
1383
- count.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;margin-bottom:6px';
1384
1369
  panel.appendChild(count);
1385
1370
  const list = createAssetList(doc, variant === 'grid');
1386
1371
  list.dataset.editorAssetBrowserList = 'true';
@@ -1390,40 +1375,48 @@ function renderAssetBrowserContent(doc, panel, state, variant = 'list', activeTa
1390
1375
  const selected = state.selectedAssetId === asset.id;
1391
1376
  const hasPreview = !!asset.preview;
1392
1377
  const button = doc.createElement('button');
1378
+ button.className = 'fps-editor-ui-asset-card';
1393
1379
  button.type = 'button';
1394
1380
  button.dataset.editorAssetId = asset.id;
1395
1381
  button.disabled = asset.disabled ?? false;
1396
1382
  button.setAttribute('aria-selected', selected ? 'true' : 'false');
1397
- button.style.cssText = [
1398
- 'width:100%',
1399
- `min-height:${variant === 'grid' ? (hasPreview ? '66px' : '48px') : (hasPreview ? '38px' : '32px')}`,
1400
- 'text-align:left',
1401
- `padding:${hasPreview ? '7px 8px' : '6px 8px'}`,
1402
- `border:1px solid ${selected ? 'var(--fps-editor-accent-strong)' : 'var(--fps-editor-border)'}`,
1403
- 'border-radius:3px',
1404
- `background:${selected ? 'var(--fps-editor-accent-soft)' : 'var(--fps-editor-asset-card-bg)'}`,
1405
- 'color:var(--fps-editor-text)',
1406
- 'display:flex',
1407
- 'align-items:center',
1408
- 'gap:8px',
1409
- 'font-size:12px',
1410
- asset.disabled ? 'cursor:not-allowed' : 'cursor:pointer',
1411
- asset.disabled ? 'opacity:0.72' : '',
1412
- ].join(';');
1383
+ button.dataset.variant = variant;
1384
+ button.dataset.hasPreview = hasPreview ? 'true' : 'false';
1413
1385
  const preview = createAssetPreviewElement(doc, asset, variant);
1414
1386
  const body = doc.createElement('div');
1415
- body.style.cssText = 'min-width:0;flex:1';
1387
+ body.className = 'fps-editor-ui-asset-card-body';
1416
1388
  const label = doc.createElement('div');
1389
+ label.className = 'fps-editor-ui-asset-card-label fps-editor-ui-ellipsis';
1417
1390
  label.textContent = asset.label;
1418
- label.style.cssText = 'font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
1419
1391
  const meta = doc.createElement('div');
1392
+ meta.className = 'fps-editor-ui-asset-card-meta fps-editor-ui-ellipsis';
1420
1393
  meta.textContent = asset.meta ?? asset.id;
1421
- meta.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
1422
1394
  body.appendChild(label);
1423
1395
  body.appendChild(meta);
1424
1396
  button.appendChild(preview);
1425
1397
  button.appendChild(body);
1426
- list.appendChild(button);
1398
+ if (shouldShowPrefabModelAddAction(state, asset)) {
1399
+ const shell = doc.createElement('div');
1400
+ shell.dataset.editorAssetCardShell = asset.id;
1401
+ shell.style.cssText = 'min-width:0;display:flex;flex-direction:column;gap:4px';
1402
+ const addButton = createToolbarButton(doc, '添加到当前 Prefab', 'plus');
1403
+ addButton.dataset.editorAssetAddToPrefab = asset.id;
1404
+ addButton.title = `添加 ${asset.label} 到当前 Prefab`;
1405
+ addButton.setAttribute('aria-label', addButton.title);
1406
+ addButton.style.cssText = [
1407
+ 'width:100%',
1408
+ 'min-height:24px',
1409
+ 'justify-content:center',
1410
+ 'padding:2px 7px',
1411
+ 'font-size:11px',
1412
+ 'font-weight:800',
1413
+ ].join(';');
1414
+ shell.append(button, addButton);
1415
+ list.appendChild(shell);
1416
+ }
1417
+ else {
1418
+ list.appendChild(button);
1419
+ }
1427
1420
  }
1428
1421
  if (filteredAssets.length === 0) {
1429
1422
  list.appendChild(createEmptyState(doc, normalizedFilter ? '没有匹配的资产。' : '暂无该类型资产。'));
@@ -1557,32 +1550,17 @@ function clampNumber(value, min, max) {
1557
1550
  }
1558
1551
  function appendAssetBrowserTabs(doc, panel, state, activeTab) {
1559
1552
  const tabs = doc.createElement('div');
1560
- tabs.style.cssText = [
1561
- 'display:flex',
1562
- 'align-items:center',
1563
- 'gap:4px',
1564
- 'margin:0 0 8px',
1565
- 'min-height:26px',
1566
- ].join(';');
1553
+ tabs.className = 'fps-editor-ui-segmented-tabs';
1567
1554
  for (const tab of ASSET_BROWSER_TABS) {
1568
1555
  const button = doc.createElement('button');
1556
+ button.className = 'fps-editor-ui-button fps-editor-ui-segmented-tab';
1569
1557
  button.type = 'button';
1570
1558
  button.dataset.editorAssetBrowserTab = tab.id;
1571
1559
  button.title = tab.title;
1572
1560
  const active = activeTab === tab.id;
1561
+ button.dataset.active = active ? 'true' : 'false';
1573
1562
  const count = filterAssetsByBrowserTab(state.assets, tab.id).length;
1574
1563
  button.textContent = `${tab.label} ${count}`;
1575
- button.style.cssText = [
1576
- 'height:24px',
1577
- 'padding:0 8px',
1578
- 'border:1px solid var(--fps-editor-border)',
1579
- 'border-radius:3px',
1580
- `background:${active ? 'var(--fps-editor-accent)' : 'var(--fps-editor-button-bg)'}`,
1581
- `color:${active ? 'var(--fps-editor-text-strong)' : 'var(--fps-editor-muted)'}`,
1582
- 'font-size:11px',
1583
- 'font-weight:800',
1584
- 'cursor:pointer',
1585
- ].join(';');
1586
1564
  tabs.appendChild(button);
1587
1565
  }
1588
1566
  panel.appendChild(tabs);
@@ -1595,8 +1573,8 @@ function filterAssetsByBrowserTab(assets, tab) {
1595
1573
  function renderHistoryPanel(doc, panel, history) {
1596
1574
  configureLocalEditorDockPanelContent(panel);
1597
1575
  const title = doc.createElement('h2');
1576
+ title.className = 'fps-editor-ui-panel-title';
1598
1577
  const entries = history?.entries ?? [];
1599
- title.style.cssText = 'display:flex;align-items:center;gap:6px;font-size:13px;margin:0 0 8px;font-weight:800;color:var(--fps-editor-text-strong)';
1600
1578
  title.appendChild(createLocalEditorIcon(doc, 'history'));
1601
1579
  title.appendChild(createHeadingLabel(doc, `历史记录 (${entries.length})`));
1602
1580
  panel.appendChild(title);
@@ -1610,15 +1588,15 @@ function appendHistoryEntries(doc, panel, entries) {
1610
1588
  return;
1611
1589
  }
1612
1590
  const list = doc.createElement('div');
1613
- list.style.cssText = 'display:flex;flex-direction:column;gap:4px';
1591
+ list.className = 'fps-editor-ui-history-list';
1614
1592
  for (const entry of entries) {
1615
1593
  const item = createListItemBlock(doc);
1616
1594
  const label = doc.createElement('div');
1595
+ label.className = 'fps-editor-ui-history-label fps-editor-ui-ellipsis';
1617
1596
  label.textContent = entry.label;
1618
- label.style.cssText = 'font-size:12px;font-weight:900;color:var(--fps-editor-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
1619
1597
  const meta = doc.createElement('div');
1598
+ meta.className = 'fps-editor-ui-history-meta fps-editor-ui-ellipsis';
1620
1599
  meta.textContent = `${formatHistoryTimestamp(entry.createdAt)} · ${entry.commandType}`;
1621
- meta.style.cssText = 'font-size:11px;color:var(--fps-editor-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
1622
1600
  item.appendChild(label);
1623
1601
  item.appendChild(meta);
1624
1602
  list.appendChild(item);
@@ -1646,10 +1624,11 @@ function formatHistoryTimestamp(createdAt) {
1646
1624
  }
1647
1625
  export function renderInspectorPanel(doc, panel, state, filter = '', options = {}) {
1648
1626
  const renderSnapshot = captureInspectorPanelRenderSnapshot(doc, panel);
1627
+ disposeInspectorPanelUi(panel);
1649
1628
  clearElement(panel);
1650
1629
  configureLocalEditorDockPanelContent(panel);
1651
1630
  const title = doc.createElement('h2');
1652
- title.style.cssText = 'display:flex;align-items:center;gap:6px;font-size:13px;margin:-8px -8px 8px;padding:7px 8px;border-bottom:1px solid var(--fps-editor-divider);background:var(--fps-editor-chrome-dark);font-weight:800;color:var(--fps-editor-text-strong)';
1631
+ title.className = 'fps-editor-inspector-title';
1653
1632
  title.appendChild(createLocalEditorIcon(doc, 'inspector'));
1654
1633
  title.appendChild(createHeadingLabel(doc, options.title ?? 'Inspector'));
1655
1634
  panel.appendChild(title);
@@ -1669,7 +1648,7 @@ export function renderInspectorPanel(doc, panel, state, filter = '', options = {
1669
1648
  restoreInspectorPanelRenderSnapshot(panel, renderSnapshot);
1670
1649
  return;
1671
1650
  }
1672
- const controlRegistry = createLocalEditorBrowserInspectorControlRegistry(options.controls, options.controlConflict);
1651
+ const controlRegistry = createLocalEditorBrowserInspectorControlRegistry(options.controls, options.controlConflict, options.layerHost);
1673
1652
  appendInspectorSummary(doc, viewport, inspectorObject, selectionCount, options.summaryTitle);
1674
1653
  const visibleSections = filterInspectorSections(inspectorObject.sections.filter(section => section.placement !== 'summary'), filter);
1675
1654
  if (visibleSections.length === 0) {
@@ -1712,30 +1691,27 @@ function restoreInspectorPanelRenderSnapshot(panel, snapshot) {
1712
1691
  scrollContainer.scrollLeft = snapshot.scrollLeft;
1713
1692
  }
1714
1693
  function createInspectorSearchInput(doc, value) {
1715
- const input = doc.createElement('input');
1694
+ const control = registerInspectorUiMount(createEditorUiTextControl({
1695
+ document: doc,
1696
+ value,
1697
+ placeholder: 'Search…',
1698
+ }));
1699
+ const input = control.nativeInputs[0];
1716
1700
  input.dataset.editorInspectorSearch = 'true';
1717
- input.value = value;
1718
- input.placeholder = 'Search...';
1719
- input.style.cssText = [
1720
- createEditorInputStyle(),
1721
- 'width:100%',
1722
- 'height:30px',
1723
- 'margin:0 0 8px',
1724
- 'outline:none',
1725
- ].join(';');
1726
- return input;
1701
+ control.element.className = `${control.element.className || ''} fps-editor-inspector-search`.trim();
1702
+ return control.element;
1727
1703
  }
1728
1704
  function appendInspectorSummary(doc, panel, inspectorObject, selectionCount, summaryTitle) {
1729
1705
  const block = createInspectorComponentBlock(doc);
1730
1706
  const header = doc.createElement('div');
1731
- header.style.cssText = 'display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px';
1707
+ header.className = 'fps-editor-inspector-summary-header';
1732
1708
  const title = doc.createElement('h3');
1733
1709
  const targetKind = inspectorObject.selection.targetKind;
1734
1710
  const markerLike = targetKind === 'marker' || targetKind === 'marker-graph';
1735
1711
  title.textContent = summaryTitle ?? (selectionCount > 1
1736
1712
  ? markerLike ? 'Markers' : 'Selection'
1737
1713
  : targetKind === 'marker-graph' ? 'Marker Graph' : targetKind === 'marker' ? 'Marker' : 'GameObject');
1738
- title.style.cssText = 'font-size:12px;margin:0;font-weight:900;color:var(--fps-editor-text-strong)';
1714
+ title.className = 'fps-editor-inspector-summary-title';
1739
1715
  header.appendChild(title);
1740
1716
  header.appendChild(createInspectorAccessBadge(doc, 'readonly'));
1741
1717
  block.appendChild(header);
@@ -1766,36 +1742,24 @@ function inspectorPropertyMatches(section, property, needle) {
1766
1742
  .some(value => String(value).toLowerCase().includes(needle));
1767
1743
  }
1768
1744
  function createInspectorSectionBlock(doc, inspectorObject, section, controlRegistry, options) {
1769
- const block = doc.createElement('details');
1745
+ const sectionMount = registerInspectorUiMount(createEditorUiSection({
1746
+ document: doc,
1747
+ title: section.title,
1748
+ collapsed: section.collapsedByDefault === true,
1749
+ collapsible: true,
1750
+ }));
1751
+ const block = sectionMount.element;
1770
1752
  block.dataset.editorInspectorSection = section.id;
1771
- block.open = section.collapsedByDefault !== true;
1772
1753
  const status = resolveLocalEditorBrowserInspectorSectionStatus(section);
1773
1754
  const { access, effect } = status;
1774
1755
  block.dataset.editorInspectorAccess = access;
1775
1756
  block.dataset.editorInspectorEffect = effect;
1776
- block.style.cssText = createInspectorBlockStyle(access, effect);
1777
- const sectionTitle = doc.createElement('summary');
1778
- sectionTitle.style.cssText = [
1779
- 'font-size:12px',
1780
- 'margin:-2px 0 8px',
1781
- 'font-weight:900',
1782
- 'color:var(--fps-editor-text-strong)',
1783
- 'display:flex',
1784
- 'align-items:center',
1785
- 'justify-content:space-between',
1786
- 'gap:8px',
1787
- 'cursor:pointer',
1788
- 'list-style:none',
1789
- ].join(';');
1790
- const label = doc.createElement('span');
1791
- label.textContent = section.title;
1792
- sectionTitle.appendChild(label);
1793
1757
  const meta = doc.createElement('span');
1794
- meta.style.cssText = 'display:flex;align-items:center;gap:6px;min-width:0;color:var(--fps-editor-muted);font-size:10px;text-transform:uppercase;letter-spacing:0';
1758
+ meta.className = 'fps-editor-inspector-section-meta';
1795
1759
  if (section.summary) {
1796
1760
  const summary = doc.createElement('span');
1797
1761
  summary.textContent = section.summary;
1798
- summary.style.cssText = 'overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;font-size:11px';
1762
+ summary.className = 'fps-editor-inspector-section-summary';
1799
1763
  meta.appendChild(summary);
1800
1764
  }
1801
1765
  const badge = createInspectorAccessBadge(doc, access);
@@ -1806,9 +1770,8 @@ function createInspectorSectionBlock(doc, inspectorObject, section, controlRegis
1806
1770
  effectBadge.style.flex = '0 0 auto';
1807
1771
  meta.appendChild(effectBadge);
1808
1772
  }
1809
- sectionTitle.appendChild(meta);
1810
- block.appendChild(sectionTitle);
1811
- const content = doc.createElement('div');
1773
+ sectionMount.header.appendChild(meta);
1774
+ const content = sectionMount.content;
1812
1775
  content.dataset.editorInspectorSectionContent = section.id;
1813
1776
  for (const group of groupInspectorProperties(section.properties)) {
1814
1777
  if (group.kind === 'vector')
@@ -1816,14 +1779,13 @@ function createInspectorSectionBlock(doc, inspectorObject, section, controlRegis
1816
1779
  else
1817
1780
  appendInspectorPropertyRow(doc, content, inspectorObject, group.property, controlRegistry);
1818
1781
  }
1819
- block.appendChild(content);
1820
1782
  return block;
1821
1783
  }
1822
1784
  function createInspectorComponentBlock(doc) {
1823
1785
  const block = doc.createElement('div');
1786
+ block.className = 'fps-editor-inspector-component';
1824
1787
  block.dataset.editorInspectorAccess = 'readonly';
1825
1788
  block.dataset.editorInspectorEffect = 'active';
1826
- block.style.cssText = createInspectorBlockStyle('readonly', 'active');
1827
1789
  return block;
1828
1790
  }
1829
1791
  export function resolveLocalEditorBrowserInspectorSectionStatus(section) {
@@ -1837,15 +1799,6 @@ export function resolveLocalEditorBrowserInspectorSectionStatus(section) {
1837
1799
  && !(effect === 'default' && inspectorSummaryLooksDefault(section.summary)),
1838
1800
  };
1839
1801
  }
1840
- function createInspectorBlockStyle(_access, _effect = 'active') {
1841
- return [
1842
- 'margin:0 0 8px',
1843
- 'padding:9px',
1844
- 'border:1px solid var(--fps-editor-inspector-section-border, var(--fps-editor-border))',
1845
- 'border-radius:3px',
1846
- 'background:var(--fps-editor-panel-soft)',
1847
- ].join(';');
1848
- }
1849
1802
  function isInspectorPropertyEditable(property) {
1850
1803
  return property.readOnly !== true
1851
1804
  && property.persistence === 'document'
@@ -2045,123 +1998,125 @@ function resolveInspectorVectorGroupLabel(properties, fallback) {
2045
1998
  return first;
2046
1999
  return toTitle(fallback);
2047
2000
  }
2048
- const builtinInspectorControlRegistrations = [
2049
- {
2050
- id: 'builtin.readonly',
2051
- order: 100,
2052
- control: 'readonly',
2053
- render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),
2054
- },
2055
- {
2056
- id: 'builtin.string',
2057
- order: 100,
2058
- control: 'string',
2059
- render: ({ doc, target, property }) => createInspectorTextControl(doc, target, property),
2060
- },
2061
- {
2062
- id: 'builtin.number',
2063
- order: 100,
2064
- control: 'number',
2065
- render: ({ doc, target, property }) => createInspectorNumberControl(doc, target, property),
2066
- },
2067
- {
2068
- id: 'builtin.boolean',
2069
- order: 100,
2070
- control: 'boolean',
2071
- render: ({ doc, target, property }) => createInspectorBooleanControl(doc, target, property),
2072
- },
2073
- {
2074
- id: 'builtin.enum',
2075
- order: 100,
2076
- control: 'enum',
2077
- render: ({ doc, target, property }) => createInspectorEnumControl(doc, target, property),
2078
- },
2079
- {
2080
- id: 'builtin.vec2',
2081
- order: 100,
2082
- control: 'vec2',
2083
- render: ({ doc, target, property }) => createInspectorVectorControl(doc, target, property),
2084
- },
2085
- {
2086
- id: 'builtin.vec3',
2087
- order: 100,
2088
- control: 'vec3',
2089
- render: ({ doc, target, property }) => createInspectorVectorControl(doc, target, property),
2090
- },
2091
- {
2092
- id: 'builtin.color',
2093
- order: 100,
2094
- control: 'color',
2095
- render: ({ doc, target, property }) => createInspectorColorControl(doc, target, property),
2096
- },
2097
- {
2098
- id: 'builtin.open-right-dock-tab',
2099
- order: 90,
2100
- control: 'custom',
2101
- customControl: 'open-right-dock-tab',
2102
- render: ({ doc, property }) => createInspectorOpenRightDockTabControl(doc, property),
2103
- },
2104
- {
2105
- id: 'builtin.rendering-action-button',
2106
- order: 92,
2107
- control: 'custom',
2108
- customControl: 'rendering-action-button',
2109
- render: ({ doc, property }) => createInspectorRenderingActionButtonControl(doc, property),
2110
- },
2111
- {
2112
- id: 'builtin.inspector-action-button',
2113
- order: 93,
2114
- control: 'custom',
2115
- customControl: 'inspector-action-button',
2116
- render: ({ doc, target, property }) => createInspectorActionButtonControl(doc, target, property),
2117
- },
2118
- {
2119
- id: 'builtin.marker-relation-editor',
2120
- order: 91,
2121
- control: 'custom',
2122
- customControl: 'marker-relation-editor',
2123
- render: ({ doc, property }) => createInspectorMarkerRelationEditorControl(doc, property),
2124
- },
2125
- {
2126
- id: 'builtin.asset-picker-card',
2127
- order: 95,
2128
- control: 'custom',
2129
- customControl: 'asset-picker-card',
2130
- render: ({ doc, target, property, bindInput }) => createInspectorAssetPickerCardControl(doc, target, property, bindInput),
2131
- },
2132
- {
2133
- id: 'builtin.ground-decal-layout',
2134
- order: 96,
2135
- control: 'custom',
2136
- customControl: 'ground-decal-layout',
2137
- render: ({ doc, target, property, bindInput }) => createInspectorGroundDecalLayoutControl(doc, target, property, bindInput),
2138
- },
2139
- {
2140
- id: 'builtin.material-slot-list',
2141
- order: 97,
2142
- control: 'custom',
2143
- customControl: 'material-slot-list',
2144
- render: ({ doc, property }) => createInspectorMaterialSlotListControl(doc, property),
2145
- },
2146
- {
2147
- id: 'builtin.asset',
2148
- order: 100,
2149
- control: 'asset',
2150
- render: ({ doc, target, property }) => createInspectorTextControl(doc, target, property),
2151
- },
2152
- {
2153
- id: 'builtin.object',
2154
- order: 100,
2155
- control: 'object',
2156
- render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),
2157
- },
2158
- {
2159
- id: 'builtin.custom',
2160
- order: 1000,
2161
- control: 'custom',
2162
- render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),
2163
- },
2164
- ];
2001
+ function createBuiltinInspectorControlRegistrations(layerHost) {
2002
+ return [
2003
+ {
2004
+ id: 'builtin.readonly',
2005
+ order: 100,
2006
+ control: 'readonly',
2007
+ render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),
2008
+ },
2009
+ {
2010
+ id: 'builtin.string',
2011
+ order: 100,
2012
+ control: 'string',
2013
+ render: ({ doc, target, property }) => createInspectorTextControl(doc, target, property),
2014
+ },
2015
+ {
2016
+ id: 'builtin.number',
2017
+ order: 100,
2018
+ control: 'number',
2019
+ render: ({ doc, target, property }) => createInspectorNumberControl(doc, target, property),
2020
+ },
2021
+ {
2022
+ id: 'builtin.boolean',
2023
+ order: 100,
2024
+ control: 'boolean',
2025
+ render: ({ doc, target, property }) => createInspectorBooleanControl(doc, target, property),
2026
+ },
2027
+ {
2028
+ id: 'builtin.enum',
2029
+ order: 100,
2030
+ control: 'enum',
2031
+ render: ({ doc, target, property }) => createInspectorEnumControl(doc, target, property, layerHost),
2032
+ },
2033
+ {
2034
+ id: 'builtin.vec2',
2035
+ order: 100,
2036
+ control: 'vec2',
2037
+ render: ({ doc, target, property }) => createInspectorVectorControl(doc, target, property),
2038
+ },
2039
+ {
2040
+ id: 'builtin.vec3',
2041
+ order: 100,
2042
+ control: 'vec3',
2043
+ render: ({ doc, target, property }) => createInspectorVectorControl(doc, target, property),
2044
+ },
2045
+ {
2046
+ id: 'builtin.color',
2047
+ order: 100,
2048
+ control: 'color',
2049
+ render: ({ doc, target, property }) => createInspectorColorControl(doc, target, property, layerHost),
2050
+ },
2051
+ {
2052
+ id: 'builtin.open-right-dock-tab',
2053
+ order: 90,
2054
+ control: 'custom',
2055
+ customControl: 'open-right-dock-tab',
2056
+ render: ({ doc, property }) => createInspectorOpenRightDockTabControl(doc, property),
2057
+ },
2058
+ {
2059
+ id: 'builtin.rendering-action-button',
2060
+ order: 92,
2061
+ control: 'custom',
2062
+ customControl: 'rendering-action-button',
2063
+ render: ({ doc, property }) => createInspectorRenderingActionButtonControl(doc, property),
2064
+ },
2065
+ {
2066
+ id: 'builtin.inspector-action-button',
2067
+ order: 93,
2068
+ control: 'custom',
2069
+ customControl: 'inspector-action-button',
2070
+ render: ({ doc, target, property }) => createInspectorActionButtonControl(doc, target, property),
2071
+ },
2072
+ {
2073
+ id: 'builtin.marker-relation-editor',
2074
+ order: 91,
2075
+ control: 'custom',
2076
+ customControl: 'marker-relation-editor',
2077
+ render: ({ doc, property }) => createInspectorMarkerRelationEditorControl(doc, property),
2078
+ },
2079
+ {
2080
+ id: 'builtin.asset-picker-card',
2081
+ order: 95,
2082
+ control: 'custom',
2083
+ customControl: 'asset-picker-card',
2084
+ render: ({ doc, target, property, bindInput }) => createInspectorAssetPickerCardControl(doc, target, property, bindInput),
2085
+ },
2086
+ {
2087
+ id: 'builtin.ground-decal-layout',
2088
+ order: 96,
2089
+ control: 'custom',
2090
+ customControl: 'ground-decal-layout',
2091
+ render: ({ doc, target, property, bindInput }) => createInspectorGroundDecalLayoutControl(doc, target, property, bindInput),
2092
+ },
2093
+ {
2094
+ id: 'builtin.material-slot-list',
2095
+ order: 97,
2096
+ control: 'custom',
2097
+ customControl: 'material-slot-list',
2098
+ render: ({ doc, property }) => createInspectorMaterialSlotListControl(doc, property),
2099
+ },
2100
+ {
2101
+ id: 'builtin.asset',
2102
+ order: 100,
2103
+ control: 'asset',
2104
+ render: ({ doc, target, property }) => createInspectorTextControl(doc, target, property),
2105
+ },
2106
+ {
2107
+ id: 'builtin.object',
2108
+ order: 100,
2109
+ control: 'object',
2110
+ render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),
2111
+ },
2112
+ {
2113
+ id: 'builtin.custom',
2114
+ order: 1000,
2115
+ control: 'custom',
2116
+ render: ({ doc, target, property }) => createInspectorReadonlyControl(doc, target, property),
2117
+ },
2118
+ ];
2119
+ }
2165
2120
  function appendInspectorPropertyRow(doc, parent, inspectorObject, property, controlRegistry) {
2166
2121
  const control = renderInspectorControl(doc, controlRegistry, inspectorObject, property);
2167
2122
  const access = getInspectorPropertyAccess(property);
@@ -2174,17 +2129,24 @@ function appendInspectorPropertyRow(doc, parent, inspectorObject, property, cont
2174
2129
  parent.appendChild(control);
2175
2130
  return;
2176
2131
  }
2177
- const row = createPropertyRow(doc, property.label, control);
2132
+ const row = createInspectorPropertyRowShell(doc, property.label, control);
2178
2133
  row.dataset.editorInspectorAccess = access;
2179
2134
  row.dataset.editorInspectorEffect = effect;
2180
2135
  applyInspectorPropertyRowHierarchyStyle(row, property);
2181
2136
  row.title = createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason);
2182
2137
  row.dataset.editorTooltip = row.title;
2183
- const label = row.firstElementChild;
2184
- if (label)
2185
- label.style.cssText = createInspectorPropertyLabelStyle(access, effect);
2186
2138
  parent.appendChild(row);
2187
2139
  }
2140
+ function createInspectorPropertyRowShell(doc, labelText, control) {
2141
+ const row = doc.createElement('div');
2142
+ row.className = 'fps-editor-inspector-property-row';
2143
+ const label = doc.createElement('span');
2144
+ label.className = 'fps-editor-inspector-property-label';
2145
+ label.textContent = labelText;
2146
+ row.appendChild(label);
2147
+ row.appendChild(control);
2148
+ return row;
2149
+ }
2188
2150
  function applyInspectorPropertyRowHierarchyStyle(row, property) {
2189
2151
  const indentLevel = Math.max(0, Math.min(4, Math.floor(readInspectorControlOptionNumber(property, 'indentLevel'))));
2190
2152
  if (indentLevel <= 0)
@@ -2198,12 +2160,12 @@ function applyInspectorPropertyRowHierarchyStyle(row, property) {
2198
2160
  `margin-left:${indentLevel * 14}px`,
2199
2161
  'padding-left:8px',
2200
2162
  'border-left:2px solid var(--fps-editor-border)',
2201
- `grid-template-columns:${Math.max(68, 92 - indentLevel * 12)}px 1fr`,
2163
+ `grid-template-columns:${Math.max(68, 96 - indentLevel * 12)}px minmax(0,1fr)`,
2202
2164
  ].filter(Boolean).join(';');
2203
2165
  }
2204
- export function createLocalEditorBrowserInspectorControlRegistry(controls = [], conflict = 'error') {
2166
+ export function createLocalEditorBrowserInspectorControlRegistry(controls = [], conflict = 'error', layerHost) {
2205
2167
  const registrations = new Map();
2206
- for (const control of builtinInspectorControlRegistrations) {
2168
+ for (const control of createBuiltinInspectorControlRegistrations(layerHost)) {
2207
2169
  registerInspectorControl(registrations, control, 'error');
2208
2170
  }
2209
2171
  for (const control of controls) {
@@ -2241,12 +2203,24 @@ function renderInspectorControl(doc, registrations, target, property) {
2241
2203
  },
2242
2204
  };
2243
2205
  const registration = resolveLocalEditorBrowserInspectorControlRegistration(registrations, context);
2244
- if (registration)
2245
- return registration.render(context);
2206
+ if (registration) {
2207
+ const rendered = registration.render(context);
2208
+ if (isInspectorControlMount(doc, rendered))
2209
+ return registerInspectorUiMount(rendered).element;
2210
+ return rendered;
2211
+ }
2246
2212
  if (!isInspectorPropertyEditable(normalizedProperty))
2247
2213
  return createInspectorReadonlyControl(doc, target, normalizedProperty);
2248
2214
  return createInspectorReadonlyControl(doc, target, normalizedProperty);
2249
2215
  }
2216
+ function isInspectorControlMount(doc, value) {
2217
+ const HTMLElementConstructor = doc.defaultView?.HTMLElement;
2218
+ if (HTMLElementConstructor && value instanceof HTMLElementConstructor)
2219
+ return false;
2220
+ if ('nodeType' in value && value.nodeType === 1)
2221
+ return false;
2222
+ return 'element' in value && typeof value.dispose === 'function';
2223
+ }
2250
2224
  export function resolveLocalEditorBrowserInspectorControlRegistration(registrations, context) {
2251
2225
  for (const registration of registrations) {
2252
2226
  if (localEditorBrowserInspectorControlSupports(registration, context))
@@ -2303,7 +2277,7 @@ function isInspectorCustomControlFallback(customControl, property) {
2303
2277
  }
2304
2278
  function appendInspectorVectorInputs(doc, parent, inspectorObject, label, properties, layout = 'block', options = {}) {
2305
2279
  const wrapper = doc.createElement('div');
2306
- wrapper.style.cssText = 'margin:8px 0';
2280
+ wrapper.className = 'fps-editor-inspector-vector-group';
2307
2281
  const access = getInspectorPropertyGroupAccess(properties);
2308
2282
  const effect = getInspectorPropertyGroupEffect(properties);
2309
2283
  wrapper.dataset.editorInspectorAccess = access;
@@ -2311,30 +2285,35 @@ function appendInspectorVectorInputs(doc, parent, inspectorObject, label, proper
2311
2285
  wrapper.title = createInspectorStatusTitle(access, effect, getInspectorPropertyGroupTooltip(properties) ?? getInspectorPropertyGroupDisabledReason(properties));
2312
2286
  wrapper.dataset.editorTooltip = wrapper.title;
2313
2287
  const labelElement = doc.createElement('div');
2314
- labelElement.style.cssText = 'display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px';
2288
+ labelElement.className = 'fps-editor-inspector-vector-header';
2315
2289
  const labelText = doc.createElement('span');
2316
2290
  labelText.textContent = label;
2317
- labelText.style.cssText = createInspectorPropertyLabelStyle(access, effect);
2291
+ labelText.className = 'fps-editor-inspector-property-label';
2318
2292
  labelElement.appendChild(labelText);
2319
2293
  const actions = doc.createElement('span');
2320
- actions.style.cssText = 'display:inline-flex;align-items:center;gap:5px;flex:0 0 auto';
2294
+ actions.className = 'fps-editor-inspector-vector-actions';
2321
2295
  labelElement.appendChild(actions);
2322
2296
  const groupPath = resolveLocalEditorBrowserInspectorVectorGroupPathFromProperties(properties);
2297
+ const localizedLabel = resolveInspectorVectorGroupChineseLabel(groupPath, label);
2323
2298
  const forceLocked = properties.some(property => readInspectorControlOptionBoolean(property, 'forceVectorLock'));
2324
2299
  const locked = forceLocked || (!!groupPath && options.lockedVectorGroups?.has(groupPath) === true);
2325
- if (groupPath && access === 'editable') {
2326
- const lockButton = createInspectorVectorHeaderButton(doc, forceLocked ? `${label} axes are locked` : locked ? `Unlock ${label} axes` : `Lock ${label} axes`, locked);
2300
+ if (groupPath === 'transform.scale' && access === 'editable') {
2301
+ const lockButton = createInspectorVectorHeaderButton(doc, forceLocked
2302
+ ? '等比缩放已由当前属性强制开启'
2303
+ : locked
2304
+ ? '关闭等比缩放:恢复各轴独立调整'
2305
+ : '开启等比缩放:调整任意一轴时,其他轴按当前比例同步变化', locked);
2327
2306
  if (!forceLocked)
2328
2307
  lockButton.dataset.editorInspectorVectorLock = groupPath;
2329
2308
  lockButton.disabled = forceLocked;
2330
2309
  lockButton.dataset.editorInspectorVectorLockState = locked ? 'locked' : 'unlocked';
2331
2310
  lockButton.setAttribute('aria-pressed', locked ? 'true' : 'false');
2332
- lockButton.appendChild(createLocalEditorIcon(doc, 'lock', { size: 12, strokeWidth: 2.2 }));
2311
+ lockButton.appendChild(createLocalEditorIcon(doc, 'link', { size: 12, strokeWidth: 2.2 }));
2333
2312
  actions.appendChild(lockButton);
2334
2313
  }
2335
2314
  const copyPayload = createLocalEditorBrowserInspectorVectorCopyPayload(properties);
2336
2315
  if (copyPayload) {
2337
- const copyButton = createInspectorVectorHeaderButton(doc, `Copy ${label}`, false);
2316
+ const copyButton = createInspectorVectorHeaderButton(doc, `复制${localizedLabel}三轴数值`, false);
2338
2317
  copyButton.dataset.editorInspectorVectorCopy = 'true';
2339
2318
  copyButton.dataset.editorInspectorVectorCopyValue = copyPayload;
2340
2319
  copyButton.appendChild(createLocalEditorIcon(doc, 'copy', { size: 12, strokeWidth: 2.2 }));
@@ -2353,21 +2332,34 @@ function appendInspectorVectorInputs(doc, parent, inspectorObject, label, proper
2353
2332
  const fields = doc.createElement('div');
2354
2333
  if (groupPath)
2355
2334
  wrapper.dataset.editorInspectorVectorGroupPath = groupPath;
2356
- fields.style.cssText = `display:grid;grid-template-columns:repeat(${Math.max(1, properties.length)},minmax(0,1fr));gap:6px;width:100%`;
2335
+ fields.className = 'fps-editor-inspector-vector-fields';
2336
+ fields.style.setProperty('--fps-editor-vector-dimensions', String(Math.max(1, properties.length)));
2357
2337
  for (const property of properties) {
2358
- fields.appendChild(isInspectorPropertyEditable(property)
2338
+ const control = isInspectorPropertyEditable(property)
2359
2339
  ? createInspectorNumberControl(doc, inspectorObject, property)
2360
- : createInspectorReadonlyControl(doc, inspectorObject, property));
2340
+ : createInspectorReadonlyControl(doc, inspectorObject, property);
2341
+ const axis = resolveLocalEditorBrowserInspectorVectorGroupAxisFromPropertyPath(property.path)?.axis;
2342
+ if (!axis) {
2343
+ fields.appendChild(control);
2344
+ continue;
2345
+ }
2346
+ const axisField = doc.createElement('div');
2347
+ axisField.className = 'fps-editor-inspector-vector-axis-field';
2348
+ axisField.dataset.editorInspectorVectorAxisField = axis;
2349
+ const axisLabel = doc.createElement('span');
2350
+ axisLabel.className = 'fps-editor-inspector-vector-axis-label';
2351
+ axisLabel.textContent = axis.toUpperCase();
2352
+ axisLabel.setAttribute('aria-hidden', 'true');
2353
+ axisField.appendChild(axisLabel);
2354
+ axisField.appendChild(control);
2355
+ fields.appendChild(axisField);
2361
2356
  }
2362
2357
  if (layout === 'inline') {
2363
- const row = createPropertyRow(doc, label, fields);
2358
+ const row = createInspectorPropertyRowShell(doc, label, fields);
2364
2359
  row.dataset.editorInspectorAccess = access;
2365
2360
  row.dataset.editorInspectorEffect = effect;
2366
2361
  row.title = wrapper.title;
2367
2362
  row.dataset.editorTooltip = wrapper.dataset.editorTooltip ?? wrapper.title;
2368
- const rowLabel = row.firstElementChild;
2369
- if (rowLabel)
2370
- rowLabel.style.cssText = createInspectorPropertyLabelStyle(access, effect);
2371
2363
  parent.appendChild(row);
2372
2364
  return;
2373
2365
  }
@@ -2375,25 +2367,22 @@ function appendInspectorVectorInputs(doc, parent, inspectorObject, label, proper
2375
2367
  wrapper.appendChild(fields);
2376
2368
  parent.appendChild(wrapper);
2377
2369
  }
2370
+ function resolveInspectorVectorGroupChineseLabel(groupPath, fallback) {
2371
+ if (groupPath === 'transform.position')
2372
+ return '位置';
2373
+ if (groupPath === 'transform.rotation')
2374
+ return '旋转';
2375
+ if (groupPath === 'transform.scale')
2376
+ return '缩放';
2377
+ return fallback;
2378
+ }
2378
2379
  function createInspectorVectorHeaderButton(doc, title, active) {
2379
- const button = doc.createElement('button');
2380
- button.type = 'button';
2380
+ const mount = registerInspectorUiMount(createEditorUiButton({ document: doc, text: '', title }));
2381
+ const button = mount.element;
2381
2382
  button.title = title;
2382
2383
  button.dataset.editorTooltip = title;
2383
- button.style.cssText = [
2384
- 'width:22px',
2385
- 'height:22px',
2386
- 'padding:0',
2387
- `border:1px solid ${active ? 'var(--fps-editor-accent)' : 'var(--fps-editor-border)'}`,
2388
- 'border-radius:3px',
2389
- `background:${active ? 'var(--fps-editor-accent-soft)' : 'var(--fps-editor-button-bg)'}`,
2390
- `color:${active ? 'var(--fps-editor-accent)' : 'var(--fps-editor-text)'}`,
2391
- 'display:inline-flex',
2392
- 'align-items:center',
2393
- 'justify-content:center',
2394
- 'cursor:pointer',
2395
- 'flex:0 0 auto',
2396
- ].join(';');
2384
+ button.className = `${button.className || ''} fps-editor-inspector-icon-button`.trim();
2385
+ button.dataset.editorUiActive = String(active);
2397
2386
  return button;
2398
2387
  }
2399
2388
  function getInspectorPropertyGroupAccess(properties) {
@@ -2451,31 +2440,6 @@ function createInspectorStatusTitle(access, effect, detail) {
2451
2440
  parts.push(detail);
2452
2441
  return [...new Set(parts)].join(' ');
2453
2442
  }
2454
- function createInspectorReadonlyValueShell(doc, access, effect = 'active', title) {
2455
- const valueElement = doc.createElement('div');
2456
- valueElement.dataset.editorInspectorAccess = access;
2457
- valueElement.dataset.editorInspectorEffect = effect;
2458
- valueElement.title = title ?? createInspectorStatusTitle(access, effect);
2459
- const warningLike = effect === 'default' || effect === 'derived' || access === 'runtime' || effect === 'runtime';
2460
- const unsupported = effect === 'unsupported';
2461
- valueElement.style.cssText = [
2462
- 'min-width:0',
2463
- 'min-height:24px',
2464
- 'display:flex',
2465
- 'align-items:center',
2466
- 'gap:5px',
2467
- 'padding:3px 6px',
2468
- `border:1px solid ${unsupported ? 'var(--fps-editor-danger-border)' : warningLike ? 'var(--fps-editor-warn-border)' : 'var(--fps-editor-readonly-border)'}`,
2469
- 'border-radius:3px',
2470
- `background:${unsupported ? 'var(--fps-editor-danger-soft)' : warningLike ? 'var(--fps-editor-warn-soft)' : 'var(--fps-editor-readonly-bg)'}`,
2471
- `color:${unsupported ? 'var(--fps-editor-danger-text)' : warningLike ? 'var(--fps-editor-warn)' : 'var(--fps-editor-readonly-text)'}`,
2472
- warningLike ? 'font-style:italic' : '',
2473
- ].filter(Boolean).join(';');
2474
- const icon = createLocalEditorIcon(doc, 'lock', { size: 11, strokeWidth: 2.3 });
2475
- icon.style.opacity = '0.78';
2476
- valueElement.appendChild(icon);
2477
- return valueElement;
2478
- }
2479
2443
  function appendInspectorReadonlyTextValue(doc, parent, value, access, effect = 'active', title) {
2480
2444
  const valueText = doc.createElement('span');
2481
2445
  valueText.textContent = value;
@@ -2484,152 +2448,252 @@ function appendInspectorReadonlyTextValue(doc, parent, value, access, effect = '
2484
2448
  parent.title = title ?? createInspectorStatusTitle(access, effect);
2485
2449
  }
2486
2450
  function createInspectorReadonlyCopyButton(doc, value, label) {
2487
- const button = doc.createElement('button');
2488
- button.type = 'button';
2451
+ const mount = registerInspectorUiMount(createEditorUiButton({ document: doc, text: '', title: `Copy ${label}` }));
2452
+ const button = mount.element;
2489
2453
  button.dataset.editorInspectorReadonlyCopy = 'true';
2490
2454
  button.dataset.editorInspectorReadonlyCopyValue = value;
2491
2455
  button.dataset.editorTooltip = `Copy ${label}`;
2492
2456
  button.setAttribute('aria-label', `Copy ${label}`);
2493
2457
  button.title = `Copy ${label}`;
2494
- button.style.cssText = [
2495
- 'width:20px',
2496
- 'height:20px',
2497
- 'min-width:20px',
2498
- 'margin-left:auto',
2499
- 'padding:0',
2500
- 'border:1px solid transparent',
2501
- 'border-radius:3px',
2502
- 'background:transparent',
2503
- 'color:currentColor',
2504
- 'display:inline-flex',
2505
- 'align-items:center',
2506
- 'justify-content:center',
2507
- 'cursor:pointer',
2508
- 'opacity:0.72',
2509
- 'flex:0 0 20px',
2510
- ].join(';');
2458
+ button.className = `${button.className || ''} fps-editor-inspector-copy-button`.trim();
2511
2459
  button.appendChild(createLocalEditorIcon(doc, 'copy', { size: 12, strokeWidth: 2.2 }));
2512
2460
  return button;
2513
2461
  }
2514
2462
  function createInspectorReadonlyScalarControl(doc, value, access, effect = 'active', title, copyLabel = 'value') {
2515
- const valueElement = createInspectorReadonlyValueShell(doc, access, effect, title);
2463
+ const mount = registerInspectorUiMount(createEditorUiReadonlyControl({
2464
+ document: doc,
2465
+ value: '',
2466
+ error: effect === 'unsupported',
2467
+ }));
2468
+ const valueElement = mount.element;
2469
+ valueElement.dataset.editorInspectorAccess = access;
2470
+ valueElement.dataset.editorInspectorEffect = effect;
2471
+ valueElement.title = title ?? createInspectorStatusTitle(access, effect);
2472
+ valueElement.className = `${valueElement.className || ''} fps-editor-inspector-readonly-value`.trim();
2473
+ if (effect === 'default' || effect === 'derived' || effect === 'runtime' || access === 'runtime') {
2474
+ valueElement.className = `${valueElement.className} fps-editor-inspector-readonly-value--warning`.trim();
2475
+ }
2476
+ const icon = createLocalEditorIcon(doc, 'lock', { size: 11, strokeWidth: 2.3 });
2477
+ icon.style.opacity = '0.78';
2478
+ valueElement.appendChild(icon);
2516
2479
  appendInspectorReadonlyTextValue(doc, valueElement, value, access, effect, title);
2517
2480
  if (value)
2518
2481
  valueElement.appendChild(createInspectorReadonlyCopyButton(doc, value, copyLabel));
2519
2482
  return valueElement;
2520
2483
  }
2521
- function createInspectorReadonlyDetailsShell(doc, property, access) {
2522
- const effect = getInspectorPropertyEffect(property);
2523
- const warningLike = effect === 'default' || effect === 'derived' || access === 'runtime' || effect === 'runtime';
2524
- const unsupported = effect === 'unsupported';
2525
- const details = doc.createElement('details');
2526
- details.dataset.editorInspectorAccess = access;
2527
- details.dataset.editorInspectorEffect = effect;
2528
- details.title = createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason);
2529
- details.style.cssText = [
2530
- 'min-width:0',
2531
- 'max-width:100%',
2532
- 'padding:3px 6px',
2533
- `border:1px solid ${unsupported ? 'var(--fps-editor-danger-border)' : warningLike ? 'var(--fps-editor-warn-border)' : 'var(--fps-editor-readonly-border)'}`,
2534
- 'border-radius:3px',
2535
- `background:${unsupported ? 'var(--fps-editor-danger-soft)' : warningLike ? 'var(--fps-editor-warn-soft)' : 'var(--fps-editor-readonly-bg)'}`,
2536
- `color:${unsupported ? 'var(--fps-editor-danger-text)' : warningLike ? 'var(--fps-editor-warn)' : 'var(--fps-editor-readonly-text)'}`,
2537
- ].join(';');
2538
- return details;
2484
+ function bindEditorUiValueControl(control, target, property, options) {
2485
+ for (const input of control.nativeInputs) {
2486
+ applyLocalEditorBrowserInspectorControlBinding(input, target, property, options);
2487
+ }
2488
+ const bridgeInput = control.nativeInputs.find(input => input.classList?.contains?.('fps-editor-ui-proxy-input'))
2489
+ ?? control.nativeInputs[0];
2490
+ const nativeEventListeners = [];
2491
+ for (const input of control.nativeInputs) {
2492
+ for (const type of ['input', 'change', 'blur', 'keydown']) {
2493
+ const listener = (nativeEvent) => {
2494
+ if (input.dataset.editorUiBridgeDispatch === 'true')
2495
+ return;
2496
+ input.dataset.editorUiNativeEventActive = 'true';
2497
+ if (type === 'keydown'
2498
+ && nativeEvent.key === 'Enter'
2499
+ && !nativeEvent.isComposing) {
2500
+ input.dataset.editorUiKeyboardCommitPending = 'true';
2501
+ }
2502
+ queueMicrotask(() => {
2503
+ delete input.dataset.editorUiNativeEventActive;
2504
+ delete input.dataset.editorUiKeyboardCommitPending;
2505
+ });
2506
+ };
2507
+ input.addEventListener(type, listener, true);
2508
+ nativeEventListeners.push({ input, type, listener });
2509
+ }
2510
+ }
2511
+ const stopValueBridge = control.onValue(event => {
2512
+ if (!bridgeInput)
2513
+ return;
2514
+ if (bridgeInput.dataset.editorUiBridgeDispatch === 'true'
2515
+ || control.nativeInputs.some(input => (input.dataset.editorUiNativeEventActive === 'true'
2516
+ || input.dataset.editorUiKeyboardCommitPending === 'true')))
2517
+ return;
2518
+ // PCUI owns the in-control visual preview. Forwarding a synthetic preview
2519
+ // through the legacy property callback would synchronously rerender and
2520
+ // destroy an active slider/color gesture. Only bridge its final commit,
2521
+ // mapped back to the descriptor's existing native commit mode.
2522
+ if (event.phase === 'preview')
2523
+ return;
2524
+ bridgeInput.dataset.editorUiBridgeDispatch = 'true';
2525
+ const EventConstructor = bridgeInput.ownerDocument.defaultView?.Event ?? Event;
2526
+ const eventType = property.commitMode === 'live'
2527
+ ? 'input'
2528
+ : property.commitMode === 'blur'
2529
+ ? 'focusout'
2530
+ : 'change';
2531
+ bridgeInput.dispatchEvent(new EventConstructor(eventType, { bubbles: true }));
2532
+ delete bridgeInput.dataset.editorUiBridgeDispatch;
2533
+ });
2534
+ const disposeControl = control.dispose.bind(control);
2535
+ control.dispose = () => {
2536
+ stopValueBridge();
2537
+ for (const { input, type, listener } of nativeEventListeners) {
2538
+ input.removeEventListener(type, listener, true);
2539
+ }
2540
+ disposeControl();
2541
+ };
2542
+ registerInspectorUiMount(control);
2539
2543
  }
2540
2544
  function createInspectorInputBase(doc, target, property) {
2541
- const input = doc.createElement('input');
2542
- input.value = property.mixed ? '' : formatInspectorEditableValue(property.value, property);
2543
- input.placeholder = property.mixed ? '--' : '';
2544
- applyLocalEditorBrowserInspectorControlBinding(input, target, property);
2545
- input.style.cssText = createInspectorInputStyle();
2546
- return input;
2545
+ const control = createEditorUiTextControl({
2546
+ document: doc,
2547
+ value: property.mixed ? '' : formatInspectorEditableValue(property.value, property),
2548
+ mixed: property.mixed,
2549
+ placeholder: property.placeholder ?? '',
2550
+ disabled: !isInspectorPropertyEditable(property),
2551
+ readOnly: property.readOnly,
2552
+ });
2553
+ bindEditorUiValueControl(control, target, property);
2554
+ return control.element;
2547
2555
  }
2548
2556
  function createInspectorNumberControl(doc, target, property) {
2549
- const input = createInspectorInputBase(doc, target, property);
2550
- input.type = 'text';
2551
- input.inputMode = 'decimal';
2552
- input.dataset.serializedNumberStep = String(property.step ?? 0.1);
2553
- if (property.min != null)
2554
- input.dataset.serializedNumberMin = String(property.min);
2555
- if (property.max != null)
2556
- input.dataset.serializedNumberMax = String(property.max);
2557
- return input;
2557
+ const control = createEditorUiNumberControl({
2558
+ document: doc,
2559
+ value: typeof property.value === 'number' && Number.isFinite(property.value) ? property.value : 0,
2560
+ mixed: property.mixed,
2561
+ placeholder: property.placeholder ?? '',
2562
+ min: property.min,
2563
+ max: property.max,
2564
+ step: property.step ?? 0.1,
2565
+ precision: property.precision,
2566
+ stepPrecision: property.stepPrecision,
2567
+ disabled: !isInspectorPropertyEditable(property),
2568
+ readOnly: property.readOnly,
2569
+ });
2570
+ for (const input of control.nativeInputs) {
2571
+ input.inputMode = 'decimal';
2572
+ input.dataset.serializedNumberStep = String(property.step ?? 0.1);
2573
+ if (property.precision != null)
2574
+ input.dataset.serializedNumberPrecision = String(property.precision);
2575
+ if (property.stepPrecision != null)
2576
+ input.dataset.serializedNumberStepPrecision = String(property.stepPrecision);
2577
+ if (property.min != null)
2578
+ input.dataset.serializedNumberMin = String(property.min);
2579
+ if (property.max != null)
2580
+ input.dataset.serializedNumberMax = String(property.max);
2581
+ }
2582
+ bindEditorUiValueControl(control, target, property);
2583
+ if (property.path.startsWith('transform.scale.')
2584
+ && typeof property.value === 'number'
2585
+ && Number.isFinite(property.value)) {
2586
+ for (const input of control.nativeInputs) {
2587
+ input.dataset.serializedVectorBaseValue = String(property.value);
2588
+ }
2589
+ }
2590
+ return control.element;
2558
2591
  }
2559
2592
  function createInspectorTextControl(doc, target, property) {
2560
- const input = createInspectorInputBase(doc, target, property);
2561
- input.type = 'text';
2562
- return input;
2593
+ return createInspectorInputBase(doc, target, property);
2563
2594
  }
2564
2595
  function createInspectorBooleanControl(doc, target, property) {
2565
- const input = createInspectorInputBase(doc, target, property);
2566
- input.type = 'checkbox';
2567
- input.checked = property.value === true;
2568
- input.indeterminate = property.mixed === true;
2569
- input.style.cssText = [
2570
- 'width:16px',
2571
- 'height:16px',
2572
- 'accent-color:var(--fps-editor-accent)',
2573
- 'justify-self:start',
2574
- 'cursor:pointer',
2575
- 'box-shadow:0 0 0 1px var(--fps-editor-editable-border)',
2576
- ].join(';');
2577
- return input;
2578
- }
2579
- function createInspectorEnumControl(doc, target, property) {
2580
- const select = doc.createElement('select');
2581
- applyLocalEditorBrowserInspectorControlBinding(select, target, property);
2582
- select.style.cssText = createInspectorInputStyle();
2583
- for (const option of property.options ?? []) {
2584
- const item = doc.createElement('option');
2585
- item.value = String(option.value);
2586
- item.dataset.serializedOptionValue = JSON.stringify(option.value);
2587
- item.textContent = option.label;
2588
- item.disabled = option.disabled === true;
2589
- if (!property.mixed && option.value === property.value)
2590
- item.selected = true;
2591
- select.appendChild(item);
2592
- }
2593
- if (property.mixed) {
2594
- const mixed = doc.createElement('option');
2595
- mixed.value = '';
2596
- mixed.textContent = '--';
2597
- mixed.selected = true;
2598
- select.prepend(mixed);
2596
+ const control = createEditorUiBooleanControl({
2597
+ document: doc,
2598
+ value: property.value === true,
2599
+ mixed: property.mixed,
2600
+ disabled: !isInspectorPropertyEditable(property),
2601
+ readOnly: property.readOnly,
2602
+ ariaLabel: property.label,
2603
+ });
2604
+ const proxy = control.nativeInputs[0];
2605
+ if (proxy)
2606
+ proxy.indeterminate = property.mixed === true;
2607
+ bindEditorUiValueControl(control, target, property, { source: 'toggle' });
2608
+ return control.element;
2609
+ }
2610
+ function createInspectorEnumControl(doc, target, property, layerHost) {
2611
+ const options = property.options ?? [];
2612
+ const control = createEditorUiSelectControl({
2613
+ document: doc,
2614
+ value: property.value,
2615
+ options: options.map(option => ({
2616
+ label: option.label,
2617
+ value: option.value,
2618
+ disabled: option.disabled,
2619
+ })),
2620
+ mixed: property.mixed,
2621
+ disabled: !isInspectorPropertyEditable(property),
2622
+ readOnly: property.readOnly,
2623
+ ariaLabel: property.label,
2624
+ layerHost,
2625
+ });
2626
+ const select = control.nativeInputs[0];
2627
+ if (select) {
2628
+ for (const [index, option] of options.entries()) {
2629
+ const item = select.options[index];
2630
+ if (item)
2631
+ item.dataset.serializedOptionValue = JSON.stringify(option.value);
2632
+ }
2633
+ if (property.mixed) {
2634
+ const mixed = doc.createElement('option');
2635
+ mixed.value = '';
2636
+ mixed.textContent = '--';
2637
+ mixed.selected = true;
2638
+ select.prepend(mixed);
2639
+ }
2599
2640
  }
2600
- return select;
2641
+ bindEditorUiValueControl(control, target, property, { source: 'select' });
2642
+ return control.element;
2601
2643
  }
2602
2644
  function createInspectorVectorControl(doc, target, property) {
2603
- const wrapper = doc.createElement('div');
2604
- wrapper.dataset.inspectorVectorControl = 'true';
2605
- wrapper.style.cssText = 'display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%';
2606
2645
  const axes = property.control === 'vec2' ? ['x', 'y'] : ['x', 'y', 'z'];
2607
- if (property.control === 'vec2')
2608
- wrapper.style.gridTemplateColumns = 'repeat(2,minmax(0,1fr))';
2609
2646
  const value = isRecord(property.value) ? property.value : {};
2610
- for (const axis of axes) {
2611
- const input = createInspectorInputBase(doc, target, property);
2612
- input.type = 'text';
2647
+ const control = createEditorUiVectorControl({
2648
+ document: doc,
2649
+ dimensions: property.control === 'vec2' ? 2 : 3,
2650
+ value: axes.map(axis => typeof value[axis] === 'number' ? value[axis] : 0),
2651
+ mixed: property.mixed,
2652
+ min: property.min,
2653
+ max: property.max,
2654
+ step: property.step ?? 0.1,
2655
+ precision: property.precision,
2656
+ stepPrecision: property.stepPrecision,
2657
+ disabled: !isInspectorPropertyEditable(property),
2658
+ readOnly: property.readOnly,
2659
+ });
2660
+ control.element.dataset.inspectorVectorControl = 'true';
2661
+ control.nativeInputs.forEach((input, index) => {
2662
+ const axis = axes[index];
2663
+ if (!axis || !('inputMode' in input))
2664
+ return;
2613
2665
  input.inputMode = 'decimal';
2614
2666
  input.dataset.serializedNumberStep = String(property.step ?? 0.1);
2667
+ if (property.precision != null)
2668
+ input.dataset.serializedNumberPrecision = String(property.precision);
2669
+ if (property.stepPrecision != null)
2670
+ input.dataset.serializedNumberStepPrecision = String(property.stepPrecision);
2615
2671
  if (property.min != null)
2616
2672
  input.dataset.serializedNumberMin = String(property.min);
2617
2673
  if (property.max != null)
2618
2674
  input.dataset.serializedNumberMax = String(property.max);
2619
2675
  input.dataset.serializedVectorAxis = axis;
2620
- input.value = property.mixed ? '' : formatInspectorEditableValue(value[axis] ?? 0, property);
2621
2676
  input.title = property.tooltip ? `${axis.toUpperCase()}: ${property.tooltip}` : `${property.label}.${axis}`;
2622
2677
  input.dataset.editorTooltip = input.title;
2623
- wrapper.appendChild(input);
2624
- }
2625
- return wrapper;
2626
- }
2627
- function createInspectorColorControl(doc, target, property) {
2628
- const input = createInspectorInputBase(doc, target, property);
2629
- input.type = 'color';
2630
- input.value = colorValueToHex(property.value);
2631
- input.style.cssText = 'width:34px;height:26px;border:1px solid var(--fps-editor-editable-border);border-radius:3px;background:var(--fps-editor-editable-bg);padding:0;box-shadow:var(--fps-editor-editable-shadow)';
2632
- return input;
2678
+ });
2679
+ bindEditorUiValueControl(control, target, property);
2680
+ return control.element;
2681
+ }
2682
+ function createInspectorColorControl(doc, target, property, layerHost) {
2683
+ const hex = colorValueToHex(property.value);
2684
+ const value = [1, 3, 5].map(index => Number.parseInt(hex.slice(index, index + 2), 16) / 255).concat([1]);
2685
+ const control = createEditorUiColorControl({
2686
+ document: doc,
2687
+ value,
2688
+ channels: 4,
2689
+ mixed: property.mixed,
2690
+ disabled: !isInspectorPropertyEditable(property),
2691
+ readOnly: property.readOnly,
2692
+ ariaLabel: property.label,
2693
+ layerHost,
2694
+ });
2695
+ bindEditorUiValueControl(control, target, property, { source: 'color' });
2696
+ return control.element;
2633
2697
  }
2634
2698
  function createInspectorOpenRightDockTabControl(doc, property) {
2635
2699
  const targetTabOption = readInspectorControlOptionString(property, 'targetTab');
@@ -2642,17 +2706,10 @@ function createInspectorOpenRightDockTabControl(doc, property) {
2642
2706
  : 'rendering';
2643
2707
  const label = readInspectorControlOptionString(property, 'label')
2644
2708
  || (typeof property.value === 'string' ? property.value : property.label);
2645
- const button = createToolbarButton(doc, label, RIGHT_DOCK_TAB_ICONS[targetTab]);
2646
- button.type = 'button';
2709
+ const button = createInspectorActionButtonMount(doc, label, RIGHT_DOCK_TAB_ICONS[targetTab], property.tooltip ?? label);
2647
2710
  button.dataset.editorOpenRightDockTab = targetTab;
2648
2711
  button.title = property.tooltip ?? label;
2649
2712
  button.dataset.editorTooltip = button.title;
2650
- button.style.cssText = [
2651
- button.style.cssText,
2652
- 'width:100%',
2653
- 'justify-content:center',
2654
- 'height:28px',
2655
- ].filter(Boolean).join(';');
2656
2713
  return button;
2657
2714
  }
2658
2715
  function createInspectorRenderingActionButtonControl(doc, property) {
@@ -2662,8 +2719,7 @@ function createInspectorRenderingActionButtonControl(doc, property) {
2662
2719
  const icon = isLocalEditorIconName(iconName) ? iconName : 'save';
2663
2720
  const label = readInspectorControlOptionString(property, 'label')
2664
2721
  || (typeof property.value === 'string' ? property.value : property.label);
2665
- const button = createToolbarButton(doc, label, icon);
2666
- button.type = 'button';
2722
+ const button = createInspectorActionButtonMount(doc, label, icon, property.tooltip ?? label);
2667
2723
  if (actionId)
2668
2724
  button.dataset.editorRenderingAction = actionId;
2669
2725
  button.disabled = property.readOnly === true
@@ -2672,12 +2728,6 @@ function createInspectorRenderingActionButtonControl(doc, property) {
2672
2728
  || !actionId;
2673
2729
  button.title = property.tooltip ?? label;
2674
2730
  button.dataset.editorTooltip = button.title;
2675
- button.style.cssText = [
2676
- button.style.cssText,
2677
- 'width:100%',
2678
- 'justify-content:center',
2679
- 'height:28px',
2680
- ].filter(Boolean).join(';');
2681
2731
  return button;
2682
2732
  }
2683
2733
  function createInspectorActionButtonControl(doc, target, property) {
@@ -2687,8 +2737,7 @@ function createInspectorActionButtonControl(doc, target, property) {
2687
2737
  const icon = isLocalEditorIconName(iconName) ? iconName : 'asset';
2688
2738
  const label = readInspectorControlOptionString(property, 'label')
2689
2739
  || (typeof property.value === 'string' ? property.value : property.label);
2690
- const button = createToolbarButton(doc, label, icon);
2691
- button.type = 'button';
2740
+ const button = createInspectorActionButtonMount(doc, label, icon, property.tooltip ?? label);
2692
2741
  if (actionId)
2693
2742
  button.dataset.editorInspectorAction = actionId;
2694
2743
  button.dataset.editorInspectorActionTargetId = target.activeId ?? '';
@@ -2703,18 +2752,19 @@ function createInspectorActionButtonControl(doc, target, property) {
2703
2752
  || !actionId;
2704
2753
  button.title = property.tooltip ?? label;
2705
2754
  button.dataset.editorTooltip = button.title;
2706
- button.style.cssText = [
2707
- button.style.cssText,
2708
- 'width:100%',
2709
- 'justify-content:center',
2710
- 'height:28px',
2711
- ].filter(Boolean).join(';');
2755
+ return button;
2756
+ }
2757
+ function createInspectorActionButtonMount(doc, label, icon, title) {
2758
+ const mount = registerInspectorUiMount(createEditorUiButton({ document: doc, text: label, title }));
2759
+ const button = mount.element;
2760
+ button.className = `${button.className || ''} fps-editor-inspector-action-button`.trim();
2761
+ button.prepend(createLocalEditorIcon(doc, icon, { size: 13, strokeWidth: 2.1 }));
2712
2762
  return button;
2713
2763
  }
2714
2764
  function createInspectorMarkerRelationEditorControl(doc, property) {
2715
2765
  const panel = readInspectorMarkerRelationPanelState(property);
2716
2766
  const wrapper = doc.createElement('div');
2717
- wrapper.style.cssText = 'display:flex;flex-direction:column;gap:8px;width:100%;min-width:0';
2767
+ wrapper.className = 'fps-editor-inspector-special-control fps-editor-inspector-marker-relations';
2718
2768
  if (!panel) {
2719
2769
  wrapper.appendChild(createEmptyState(doc, '当前 marker 没有可编辑的关系数据。'));
2720
2770
  return wrapper;
@@ -2733,12 +2783,7 @@ function readInspectorMarkerRelationPanelState(property) {
2733
2783
  function createInspectorMaterialSlotListControl(doc, property) {
2734
2784
  const wrapper = doc.createElement('div');
2735
2785
  wrapper.dataset.editorInspectorMaterialSlotList = 'true';
2736
- wrapper.style.cssText = [
2737
- 'min-width:0',
2738
- 'display:flex',
2739
- 'flex-direction:column',
2740
- 'gap:6px',
2741
- ].join(';');
2786
+ wrapper.className = 'fps-editor-inspector-special-control fps-editor-inspector-material-slots';
2742
2787
  const items = readInspectorMaterialSlotListItems(property);
2743
2788
  if (items.length === 0) {
2744
2789
  wrapper.appendChild(createEmptyState(doc, 'No material slots.'));
@@ -2752,30 +2797,15 @@ function createInspectorMaterialSlotListControl(doc, property) {
2752
2797
  }
2753
2798
  function createInspectorMaterialSlotListItem(doc, item, labels) {
2754
2799
  const details = doc.createElement('details');
2800
+ details.className = 'fps-editor-inspector-material-slot';
2755
2801
  details.dataset.editorInspectorMaterialSlotItem = item.key;
2756
2802
  if (item.selectionTargetId) {
2757
2803
  details.dataset.editorInspectorMaterialSlotSelect = item.selectionTargetId;
2758
2804
  }
2759
2805
  details.dataset.editorInspectorAccess = 'readonly';
2760
2806
  details.dataset.editorInspectorEffect = 'active';
2761
- details.style.cssText = [
2762
- 'min-width:0',
2763
- 'border:1px solid var(--fps-editor-readonly-border)',
2764
- 'border-radius:3px',
2765
- 'background:var(--fps-editor-readonly-bg)',
2766
- 'color:var(--fps-editor-readonly-text)',
2767
- 'overflow:hidden',
2768
- ].join(';');
2769
2807
  const summary = doc.createElement('summary');
2770
- summary.style.cssText = [
2771
- 'min-width:0',
2772
- 'min-height:44px',
2773
- 'display:flex',
2774
- 'align-items:center',
2775
- 'gap:8px',
2776
- 'padding:6px 8px',
2777
- 'cursor:pointer',
2778
- ].join(';');
2808
+ summary.className = 'fps-editor-inspector-material-slot-summary';
2779
2809
  if (item.selectionTargetId) {
2780
2810
  summary.dataset.editorInspectorMaterialSlotSelect = item.selectionTargetId;
2781
2811
  summary.title = item.label;
@@ -2790,27 +2820,22 @@ function createInspectorMaterialSlotListItem(doc, item, labels) {
2790
2820
  preview: item.materialPreview,
2791
2821
  }, 'list'));
2792
2822
  const body = doc.createElement('div');
2793
- body.style.cssText = 'min-width:0;flex:1';
2823
+ body.className = 'fps-editor-inspector-card-body';
2794
2824
  const title = doc.createElement('div');
2795
2825
  title.textContent = item.label;
2796
- title.style.cssText = 'font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fps-editor-text-strong)';
2826
+ title.className = 'fps-editor-inspector-card-title';
2797
2827
  const subtitle = doc.createElement('div');
2798
2828
  subtitle.textContent = item.materialLabel
2799
2829
  ? `${labels.material}: ${item.materialLabel}`
2800
2830
  : labels.material;
2801
- subtitle.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
2831
+ subtitle.className = 'fps-editor-inspector-card-subtitle';
2802
2832
  body.appendChild(title);
2803
2833
  body.appendChild(subtitle);
2804
2834
  summary.appendChild(body);
2805
2835
  summary.appendChild(createBadge(doc, 'READONLY', { compact: true }));
2806
2836
  details.appendChild(summary);
2807
2837
  const content = doc.createElement('div');
2808
- content.style.cssText = [
2809
- 'display:flex',
2810
- 'flex-direction:column',
2811
- 'gap:4px',
2812
- 'padding:0 8px 8px',
2813
- ].join(';');
2838
+ content.className = 'fps-editor-inspector-material-slot-content';
2814
2839
  appendMaterialSlotListDetailRow(doc, content, labels.material, item.materialMeta || item.materialAssetId || item.materialLabel || '');
2815
2840
  appendMaterialSlotListDetailRow(doc, content, labels.slotId, item.slotId ?? '');
2816
2841
  appendMaterialSlotListDetailRow(doc, content, labels.ownerNodePath, item.ownerNodePath ?? '');
@@ -2832,27 +2857,13 @@ function appendMaterialSlotListDetailRow(doc, parent, label, value) {
2832
2857
  if (!value)
2833
2858
  return;
2834
2859
  const row = doc.createElement('div');
2835
- row.style.cssText = [
2836
- 'display:grid',
2837
- 'grid-template-columns:88px minmax(0,1fr)',
2838
- 'gap:8px',
2839
- 'align-items:start',
2840
- 'font-size:11px',
2841
- 'line-height:1.35',
2842
- ].join(';');
2860
+ row.className = 'fps-editor-inspector-material-slot-row';
2843
2861
  const labelElement = doc.createElement('div');
2844
2862
  labelElement.textContent = label;
2845
- labelElement.style.cssText = 'color:var(--fps-editor-muted);font-weight:800';
2863
+ labelElement.className = 'fps-editor-inspector-material-slot-label';
2846
2864
  const valueElement = doc.createElement('div');
2847
2865
  valueElement.textContent = value;
2848
- valueElement.style.cssText = [
2849
- 'min-width:0',
2850
- 'overflow:hidden',
2851
- 'text-overflow:ellipsis',
2852
- 'white-space:nowrap',
2853
- 'font-family:var(--fps-editor-mono-font)',
2854
- 'color:var(--fps-editor-readonly-text)',
2855
- ].join(';');
2866
+ valueElement.className = 'fps-editor-inspector-material-slot-value';
2856
2867
  valueElement.title = value;
2857
2868
  valueElement.dataset.editorTooltip = value;
2858
2869
  row.appendChild(labelElement);
@@ -2993,12 +3004,7 @@ function createInspectorGroundDecalLayoutControl(doc, _target, property, bindInp
2993
3004
  const surfaceMaxWidth = Math.max(96, Math.round(220 * aspectRatio));
2994
3005
  const wrapper = doc.createElement('div');
2995
3006
  wrapper.dataset.editorInspectorGroundDecalLayout = 'true';
2996
- wrapper.style.cssText = [
2997
- 'display:flex',
2998
- 'flex-direction:column',
2999
- 'gap:8px',
3000
- 'min-width:0',
3001
- ].join(';');
3007
+ wrapper.className = 'fps-editor-inspector-special-control fps-editor-inspector-ground-decal';
3002
3008
  const input = doc.createElement('input');
3003
3009
  input.type = 'hidden';
3004
3010
  input.value = serializeInspectorGroundDecalLayoutValue(layers, composite);
@@ -3846,6 +3852,7 @@ function commitInspectorGroundDecalLayoutValue(input, layers, fieldInputsByLayer
3846
3852
  function createInspectorAssetPickerCardControl(doc, _target, property, bindInput) {
3847
3853
  const wrapper = doc.createElement('div');
3848
3854
  wrapper.dataset.editorInspectorAssetPickerControl = 'true';
3855
+ wrapper.className = 'fps-editor-inspector-asset-picker';
3849
3856
  const hasCopyAction = !!readInspectorControlOptionString(property, 'copyActionValue');
3850
3857
  const isEditable = isInspectorPropertyEditable(property);
3851
3858
  const actionDisabledReason = readInspectorControlOptionString(property, 'actionDisabledReason')
@@ -3855,39 +3862,19 @@ function createInspectorAssetPickerCardControl(doc, _target, property, bindInput
3855
3862
  const coverageLabel = readInspectorControlOptionString(property, 'coverageLabel')
3856
3863
  || readInspectorControlOptionString(property, 'batchCoverageLabel')
3857
3864
  || '';
3858
- wrapper.style.cssText = [
3859
- 'min-width:0',
3860
- 'display:grid',
3861
- hasCopyAction ? 'grid-template-columns:1fr auto auto' : 'grid-template-columns:1fr auto',
3862
- 'align-items:stretch',
3863
- 'gap:6px',
3864
- ].join(';');
3865
+ wrapper.dataset.editorInspectorAssetPickerActions = hasCopyAction ? 'two' : 'one';
3865
3866
  const input = doc.createElement('input');
3866
3867
  input.type = 'hidden';
3867
3868
  input.value = property.mixed ? '' : String(property.value ?? '');
3868
3869
  bindInput(input, { source: 'asset' });
3869
3870
  wrapper.appendChild(input);
3870
- const card = doc.createElement('button');
3871
- card.type = 'button';
3871
+ const cardMount = registerInspectorUiMount(createEditorUiButton({ document: doc, text: '' }));
3872
+ const card = cardMount.element;
3873
+ card.className = `${card.className || ''} fps-editor-inspector-asset-card`.trim();
3872
3874
  card.dataset.editorInspectorAssetPicker = 'true';
3873
3875
  card.disabled = !isEditable;
3874
3876
  if (actionDisabledReason)
3875
3877
  card.title = actionDisabledReason;
3876
- card.style.cssText = [
3877
- 'min-width:0',
3878
- 'min-height:42px',
3879
- 'display:flex',
3880
- 'align-items:center',
3881
- 'gap:8px',
3882
- 'padding:6px 7px',
3883
- 'border:1px solid var(--fps-editor-editable-border)',
3884
- 'border-radius:3px',
3885
- 'background:var(--fps-editor-field)',
3886
- 'color:var(--fps-editor-text)',
3887
- 'text-align:left',
3888
- card.disabled ? 'cursor:not-allowed' : 'cursor:pointer',
3889
- card.disabled ? 'opacity:0.72' : '',
3890
- ].filter(Boolean).join(';');
3891
3878
  const label = readInspectorControlOptionString(property, 'currentLabel')
3892
3879
  || readInspectorControlOptionString(property, 'placeholder')
3893
3880
  || (property.mixed ? '--' : String(property.value || 'None'));
@@ -3901,60 +3888,40 @@ function createInspectorAssetPickerCardControl(doc, _target, property, bindInput
3901
3888
  preview,
3902
3889
  }, 'list'));
3903
3890
  const body = doc.createElement('div');
3904
- body.style.cssText = 'min-width:0;flex:1';
3891
+ body.className = 'fps-editor-inspector-card-body';
3905
3892
  const title = doc.createElement('div');
3906
3893
  title.textContent = label;
3907
- title.style.cssText = 'font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
3894
+ title.className = 'fps-editor-inspector-card-title';
3908
3895
  const subtitle = doc.createElement('div');
3909
3896
  subtitle.textContent = meta;
3910
- subtitle.style.cssText = 'color:var(--fps-editor-muted);font-size:11px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
3897
+ subtitle.className = 'fps-editor-inspector-card-subtitle';
3911
3898
  body.appendChild(title);
3912
3899
  body.appendChild(subtitle);
3913
3900
  card.appendChild(body);
3914
3901
  wrapper.appendChild(card);
3915
- const action = doc.createElement('button');
3916
- action.type = 'button';
3902
+ const actionMount = registerInspectorUiMount(createEditorUiButton({
3903
+ document: doc,
3904
+ text: readInspectorControlOptionString(property, 'actionLabel') || '替换',
3905
+ }));
3906
+ const action = actionMount.element;
3907
+ action.className = `${action.className || ''} fps-editor-inspector-asset-action`.trim();
3917
3908
  action.dataset.editorInspectorAssetPicker = 'true';
3918
3909
  action.disabled = card.disabled;
3919
- action.textContent = readInspectorControlOptionString(property, 'actionLabel') || '替换';
3920
3910
  if (actionDisabledReason)
3921
3911
  action.title = actionDisabledReason;
3922
- action.style.cssText = [
3923
- 'width:54px',
3924
- 'min-height:42px',
3925
- 'padding:0 8px',
3926
- 'border:1px solid var(--fps-editor-editable-border)',
3927
- 'border-radius:3px',
3928
- 'background:var(--fps-editor-button-bg)',
3929
- 'color:var(--fps-editor-text)',
3930
- 'font-size:11px',
3931
- 'font-weight:900',
3932
- action.disabled ? 'cursor:not-allowed' : 'cursor:pointer',
3933
- action.disabled ? 'opacity:0.72' : '',
3934
- ].filter(Boolean).join(';');
3935
3912
  wrapper.appendChild(action);
3936
3913
  const copyValue = readInspectorControlOptionString(property, 'copyActionValue');
3937
3914
  if (copyValue) {
3938
- const copyAction = doc.createElement('button');
3939
- copyAction.type = 'button';
3915
+ const copyMount = registerInspectorUiMount(createEditorUiButton({
3916
+ document: doc,
3917
+ text: readInspectorControlOptionString(property, 'copyActionLabel') || '复制',
3918
+ }));
3919
+ const copyAction = copyMount.element;
3920
+ copyAction.className = `${copyAction.className || ''} fps-editor-inspector-asset-action`.trim();
3940
3921
  copyAction.dataset.editorInspectorAssetCopy = 'true';
3941
3922
  copyAction.dataset.editorInspectorAssetCopyValue = copyValue;
3942
3923
  copyAction.disabled = card.disabled;
3943
- copyAction.textContent = readInspectorControlOptionString(property, 'copyActionLabel') || '复制';
3944
3924
  copyAction.title = readInspectorControlOptionString(property, 'copyActionTooltip');
3945
- copyAction.style.cssText = [
3946
- 'width:48px',
3947
- 'min-height:42px',
3948
- 'padding:0 8px',
3949
- 'border:1px solid var(--fps-editor-editable-border)',
3950
- 'border-radius:3px',
3951
- 'background:var(--fps-editor-button-bg)',
3952
- 'color:var(--fps-editor-text)',
3953
- 'font-size:11px',
3954
- 'font-weight:900',
3955
- copyAction.disabled ? 'cursor:not-allowed' : 'cursor:pointer',
3956
- copyAction.disabled ? 'opacity:0.72' : '',
3957
- ].filter(Boolean).join(';');
3958
3925
  wrapper.appendChild(copyAction);
3959
3926
  }
3960
3927
  if (card.disabled && (coverageLabel || actionDisabledReason)) {
@@ -3988,36 +3955,24 @@ function createInspectorReadonlyControl(doc, _target, property) {
3988
3955
  function createInspectorObjectReadonlyControl(doc, property) {
3989
3956
  const access = getInspectorPropertyAccess(property);
3990
3957
  const effect = getInspectorPropertyEffect(property);
3991
- const details = createInspectorReadonlyDetailsShell(doc, property, access);
3992
- const summary = doc.createElement('summary');
3993
- summary.style.cssText = 'cursor:pointer;display:flex;align-items:center;gap:5px;overflow:hidden;white-space:nowrap';
3958
+ const formattedValue = formatLocalEditorBrowserInspectorValue(property.value);
3959
+ const mount = registerInspectorUiMount(createEditorUiExpandableReadonlyControl({
3960
+ document: doc,
3961
+ summary: formatInspectorObjectSummary(property.value),
3962
+ value: formattedValue,
3963
+ error: effect === 'unsupported',
3964
+ warning: effect === 'default' || effect === 'derived' || effect === 'runtime' || access === 'runtime',
3965
+ }));
3966
+ const details = mount.element;
3967
+ details.dataset.editorInspectorAccess = access;
3968
+ details.dataset.editorInspectorEffect = effect;
3969
+ details.title = createInspectorStatusTitle(access, effect, property.tooltip ?? property.disabledReason);
3970
+ const summary = mount.summary;
3994
3971
  const icon = createLocalEditorIcon(doc, 'lock', { size: 11, strokeWidth: 2.3 });
3995
3972
  icon.style.opacity = '0.78';
3996
- summary.appendChild(icon);
3997
- const summaryText = doc.createElement('span');
3998
- summaryText.textContent = formatInspectorObjectSummary(property.value);
3999
- summaryText.style.cssText = 'min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap';
4000
- summary.appendChild(summaryText);
4001
- const formattedValue = formatLocalEditorBrowserInspectorValue(property.value);
3973
+ summary.prepend(icon);
4002
3974
  if (formattedValue)
4003
3975
  summary.appendChild(createInspectorReadonlyCopyButton(doc, formattedValue, property.label));
4004
- details.appendChild(summary);
4005
- const pre = doc.createElement('pre');
4006
- pre.textContent = formattedValue;
4007
- pre.style.cssText = [
4008
- 'max-height:220px',
4009
- 'overflow:auto',
4010
- 'white-space:pre-wrap',
4011
- 'word-break:break-word',
4012
- 'margin:6px 0 0',
4013
- 'padding:7px',
4014
- `border:1px solid ${effect === 'unsupported' ? 'var(--fps-editor-danger-border)' : effect === 'default' || effect === 'derived' || effect === 'runtime' || access === 'runtime' ? 'var(--fps-editor-warn-border)' : 'var(--fps-editor-readonly-border)'}`,
4015
- 'border-radius:3px',
4016
- 'background:var(--fps-editor-field)',
4017
- 'font-size:11px',
4018
- 'line-height:1.45',
4019
- ].join(';');
4020
- details.appendChild(pre);
4021
3976
  return details;
4022
3977
  }
4023
3978
  export function applyLocalEditorBrowserInspectorControlBinding(element, target, property, options) {
@@ -4058,11 +4013,8 @@ function createInspectorInputStyle() {
4058
4013
  }
4059
4014
  function appendReadOnlyRow(doc, parent, label, value) {
4060
4015
  const valueElement = createInspectorReadonlyScalarControl(doc, value, 'readonly', 'active', 'Read-only summary');
4061
- const row = createPropertyRow(doc, label, valueElement);
4016
+ const row = createInspectorPropertyRowShell(doc, label, valueElement);
4062
4017
  row.dataset.editorInspectorAccess = 'readonly';
4063
- const labelElement = row.firstElementChild;
4064
- if (labelElement)
4065
- labelElement.style.cssText = createInspectorPropertyLabelStyle('readonly', 'active');
4066
4018
  parent.appendChild(row);
4067
4019
  }
4068
4020
  function createSelectionSummaryInspectorObject(state) {