@relu-interactives/spatial-ecs 0.5.3 → 0.9.0

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 (512) hide show
  1. package/dist/{System-V_mv07le.d.cts → System-8D-XBDKZ.d.cts} +734 -8
  2. package/dist/{System-V_mv07le.d.ts → System-DPMAW30g.d.ts} +734 -8
  3. package/dist/{XRHandPose-CU3vNFuS.d.ts → XRHandPose-CWSrsnYN.d.ts} +236 -3
  4. package/dist/{XRHandPose-CQTLGxFC.d.cts → XRHandPose-Dn2yiALk.d.cts} +236 -3
  5. package/dist/animation/index.cjs +252 -0
  6. package/dist/animation/index.cjs.map +1 -0
  7. package/dist/animation/index.d.cts +100 -0
  8. package/dist/animation/index.d.ts +100 -0
  9. package/dist/animation/index.js +4 -0
  10. package/dist/animation/index.js.map +1 -0
  11. package/dist/chunk-CKTHDXPS.js +11 -0
  12. package/dist/chunk-CKTHDXPS.js.map +1 -0
  13. package/dist/chunk-GSWC6LLD.js +241 -0
  14. package/dist/chunk-GSWC6LLD.js.map +1 -0
  15. package/dist/chunk-JEPUCLZX.js +1237 -0
  16. package/dist/chunk-JEPUCLZX.js.map +1 -0
  17. package/dist/{chunk-BUEKOSR5.js → chunk-JNYPJB55.js} +435 -14
  18. package/dist/chunk-JNYPJB55.js.map +1 -0
  19. package/dist/{chunk-RXBLOO5B.js → chunk-NXASMBDS.js} +105 -715
  20. package/dist/chunk-NXASMBDS.js.map +1 -0
  21. package/dist/chunk-OHCNPPMX.js +334 -0
  22. package/dist/chunk-OHCNPPMX.js.map +1 -0
  23. package/dist/{chunk-DF5SSRN6.js → chunk-VYIWOXAY.js} +2574 -3381
  24. package/dist/chunk-VYIWOXAY.js.map +1 -0
  25. package/dist/chunk-WWP46AEF.js +2878 -0
  26. package/dist/chunk-WWP46AEF.js.map +1 -0
  27. package/dist/{chunk-OY7ZODZP.js → chunk-XE4OXN2W.js} +3 -9
  28. package/dist/chunk-XE4OXN2W.js.map +1 -0
  29. package/dist/{chunk-OWQSESTO.js → chunk-XU2DVWCP.js} +4 -3
  30. package/dist/chunk-XU2DVWCP.js.map +1 -0
  31. package/dist/components/index.cjs +334 -10
  32. package/dist/components/index.cjs.map +1 -1
  33. package/dist/components/index.d.cts +5 -3
  34. package/dist/components/index.d.ts +5 -3
  35. package/dist/components/index.js +3 -2
  36. package/dist/docs/api/Behaviour/classes/Behaviour.md +366 -79
  37. package/dist/docs/api/Behaviour/index.md +7 -3
  38. package/dist/docs/api/Behaviour/type-aliases/UiInteractionEvent.md +35 -0
  39. package/dist/docs/api/Component/classes/Component.md +14 -1
  40. package/dist/docs/api/components/classes/AnimationComponent.md +26 -26
  41. package/dist/docs/api/components/classes/AudioComponent.md +19 -19
  42. package/dist/docs/api/components/classes/CameraComponent.md +14 -14
  43. package/dist/docs/api/components/classes/EntityType.md +4 -4
  44. package/dist/docs/api/components/classes/Environment.md +5 -4
  45. package/dist/docs/api/components/classes/ImageComponent.md +7 -7
  46. package/dist/docs/api/components/classes/ImageTarget.md +8 -8
  47. package/dist/docs/api/components/classes/ImageTargetAnchor.md +4 -4
  48. package/dist/docs/api/components/classes/InstanceSlotComponent.md +4 -4
  49. package/dist/docs/api/components/classes/InstancedMeshComponent.md +10 -10
  50. package/dist/docs/api/components/classes/LightComponent.md +6 -6
  51. package/dist/docs/api/components/classes/MaterialComponent.md +16 -16
  52. package/dist/docs/api/components/classes/MeshComponent.md +3 -3
  53. package/dist/docs/api/components/classes/MeshGeometryComponent.md +9 -9
  54. package/dist/docs/api/components/classes/ModelComponent.md +8 -5
  55. package/dist/docs/api/components/classes/Name.md +3 -3
  56. package/dist/docs/api/components/classes/Object3DRef.md +4 -4
  57. package/dist/docs/api/components/classes/ParentId.md +3 -3
  58. package/dist/docs/api/components/classes/PhysicsComponent.md +7 -6
  59. package/dist/docs/api/components/classes/Postprocessing.md +3 -3
  60. package/dist/docs/api/components/classes/PrefabInstance.md +5 -5
  61. package/dist/docs/api/components/classes/PrefabNode.md +3 -3
  62. package/dist/docs/api/components/classes/ScriptComponent.md +5 -5
  63. package/dist/docs/api/components/classes/ScriptObjectComponent.md +9 -9
  64. package/dist/docs/api/components/classes/Selectable.md +3 -3
  65. package/dist/docs/api/components/classes/SelectionTransformState.md +5 -5
  66. package/dist/docs/api/components/classes/SpriteComponent.md +7 -7
  67. package/dist/docs/api/components/classes/TransformComponent.md +12 -12
  68. package/dist/docs/api/components/classes/UIButtonComponent.md +63 -0
  69. package/dist/docs/api/components/classes/UIPanelComponent.md +62 -0
  70. package/dist/docs/api/components/classes/UISliderComponent.md +59 -0
  71. package/dist/docs/api/components/classes/UITextComponent.md +59 -0
  72. package/dist/docs/api/components/classes/UIToggleComponent.md +56 -0
  73. package/dist/docs/api/components/classes/VRTeleportAreaComponent.md +53 -0
  74. package/dist/docs/api/components/classes/VideoComponent.md +28 -28
  75. package/dist/docs/api/components/classes/XRAnchorComponent.md +64 -0
  76. package/dist/docs/api/components/classes/XREnvironmentComponent.md +64 -0
  77. package/dist/docs/api/components/classes/XRHandPoseComponent.md +50 -0
  78. package/dist/docs/api/components/classes/XRInteractableComponent.md +74 -0
  79. package/dist/docs/api/components/classes/XRInteractorComponent.md +57 -0
  80. package/dist/docs/api/components/classes/XRInteractorSideComponent.md +50 -0
  81. package/dist/docs/api/components/classes/XRRigComponent.md +68 -0
  82. package/dist/docs/api/components/functions/createAttachPoint.md +25 -0
  83. package/dist/docs/api/components/functions/createHandPoseEntry.md +25 -0
  84. package/dist/docs/api/components/functions/defaultMaterialValue.md +1 -1
  85. package/dist/docs/api/components/functions/handPoseDefinitionFor.md +33 -0
  86. package/dist/docs/api/components/functions/normalizeEnvironmentLighting.md +30 -0
  87. package/dist/docs/api/components/functions/normalizePhysicsState.md +1 -1
  88. package/dist/docs/api/components/functions/setModelLoadState.md +33 -0
  89. package/dist/docs/api/components/functions/setPhysicsLiveRef.md +3 -9
  90. package/dist/docs/api/components/index.md +61 -4
  91. package/dist/docs/api/components/type-aliases/AnimationComponentOptions.md +9 -9
  92. package/dist/docs/api/components/type-aliases/CameraComponentOptions.md +13 -13
  93. package/dist/docs/api/components/type-aliases/CameraProjection.md +1 -1
  94. package/dist/docs/api/components/type-aliases/CameraRuntimeType.md +5 -3
  95. package/dist/docs/api/components/type-aliases/ColliderShape.md +1 -1
  96. package/dist/docs/api/components/type-aliases/ColliderState.md +20 -20
  97. package/dist/docs/api/components/type-aliases/CubeMeshParameters.md +4 -4
  98. package/dist/docs/api/components/type-aliases/EditableMeshObjectKind.md +1 -1
  99. package/dist/docs/api/components/type-aliases/EnvironmentFogState.md +8 -8
  100. package/dist/docs/api/components/type-aliases/EnvironmentFogType.md +1 -1
  101. package/dist/docs/api/components/type-aliases/EnvironmentGradientEffect.md +1 -1
  102. package/dist/docs/api/components/type-aliases/EnvironmentLightingState.md +40 -0
  103. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxImageProjection.md +22 -0
  104. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxState.md +9 -7
  105. package/dist/docs/api/components/type-aliases/EnvironmentSkyboxType.md +1 -1
  106. package/dist/docs/api/components/type-aliases/EnvironmentState.md +7 -5
  107. package/dist/docs/api/components/type-aliases/EnvironmentToneMapping.md +16 -0
  108. package/dist/docs/api/components/type-aliases/ImageTargetAnchorOptions.md +3 -3
  109. package/dist/docs/api/components/type-aliases/ImageTargetReference.md +7 -7
  110. package/dist/docs/api/components/type-aliases/InstanceTransform.md +13 -13
  111. package/dist/docs/api/components/type-aliases/InstancedMeshKind.md +1 -1
  112. package/dist/docs/api/components/type-aliases/LightShadowState.md +37 -0
  113. package/dist/docs/api/components/type-aliases/LightValueState.md +13 -11
  114. package/dist/docs/api/components/type-aliases/MaterialTypeValue.md +1 -1
  115. package/dist/docs/api/components/type-aliases/MaterialValueState.md +28 -28
  116. package/dist/docs/api/components/type-aliases/MeshGeometryParameters.md +1 -1
  117. package/dist/docs/api/components/type-aliases/MeshGeometryParametersByKind.md +7 -7
  118. package/dist/docs/api/components/type-aliases/ModelLoadState.md +15 -0
  119. package/dist/docs/api/components/type-aliases/PhysicsState.md +3 -3
  120. package/dist/docs/api/components/type-aliases/PlaneMeshParameters.md +3 -3
  121. package/dist/docs/api/components/type-aliases/PostprocessingState.md +62 -62
  122. package/dist/docs/api/components/type-aliases/RadiusHeightMeshParameters.md +3 -3
  123. package/dist/docs/api/components/type-aliases/RadiusMeshParameters.md +2 -2
  124. package/dist/docs/api/components/type-aliases/RigidbodyState.md +17 -17
  125. package/dist/docs/api/components/type-aliases/RigidbodyType.md +1 -1
  126. package/dist/docs/api/components/type-aliases/ScriptEntry.md +8 -8
  127. package/dist/docs/api/components/type-aliases/ScriptObjectComponentInput.md +1 -1
  128. package/dist/docs/api/components/type-aliases/ScriptObjectRuntimeState.md +1 -1
  129. package/dist/docs/api/components/type-aliases/TextureFilteringValue.md +1 -1
  130. package/dist/docs/api/components/type-aliases/TransformData.md +4 -4
  131. package/dist/docs/api/components/type-aliases/TransformModeValue.md +1 -1
  132. package/dist/docs/api/components/type-aliases/TransformSpaceValue.md +1 -1
  133. package/dist/docs/api/components/type-aliases/UIButtonOptions.md +45 -0
  134. package/dist/docs/api/components/type-aliases/UIPanelOptions.md +39 -0
  135. package/dist/docs/api/components/type-aliases/UISliderOptions.md +39 -0
  136. package/dist/docs/api/components/type-aliases/UITextOptions.md +41 -0
  137. package/dist/docs/api/components/type-aliases/UIToggleOptions.md +35 -0
  138. package/dist/docs/api/components/type-aliases/UiFollowMode.md +15 -0
  139. package/dist/docs/api/components/type-aliases/UiTextAlign.md +13 -0
  140. package/dist/docs/api/components/type-aliases/UiTextVAlign.md +13 -0
  141. package/dist/docs/api/components/type-aliases/VRTeleportAreaOptions.md +29 -0
  142. package/dist/docs/api/components/type-aliases/Vec3.md +4 -4
  143. package/dist/docs/api/components/type-aliases/VrTeleportShape.md +15 -0
  144. package/dist/docs/api/components/type-aliases/XRAnchorOptions.md +23 -0
  145. package/dist/docs/api/components/type-aliases/XRHandPoseOptions.md +23 -0
  146. package/dist/docs/api/components/type-aliases/XRInteractableOptions.md +75 -0
  147. package/dist/docs/api/components/type-aliases/XRInteractorOptions.md +37 -0
  148. package/dist/docs/api/components/type-aliases/XRRigOptions.md +51 -0
  149. package/dist/docs/api/components/type-aliases/XrAttachPoint.md +53 -0
  150. package/dist/docs/api/components/type-aliases/XrDistanceGrabBehavior.md +19 -0
  151. package/dist/docs/api/components/type-aliases/XrEnvironmentKind.md +15 -0
  152. package/dist/docs/api/components/type-aliases/XrEnvironmentOrientation.md +15 -0
  153. package/dist/docs/api/components/type-aliases/XrEnvironmentPhysics.md +25 -0
  154. package/dist/docs/api/components/type-aliases/XrGrabGesture.md +19 -0
  155. package/dist/docs/api/components/type-aliases/XrGrabHands.md +20 -0
  156. package/dist/docs/api/components/type-aliases/XrGrabReach.md +20 -0
  157. package/dist/docs/api/components/type-aliases/XrHandPoseEntry.md +49 -0
  158. package/dist/docs/api/components/type-aliases/XrHandPreset.md +19 -0
  159. package/dist/docs/api/components/type-aliases/XrInteractorSide.md +15 -0
  160. package/dist/docs/api/components/type-aliases/XrInteractorType.md +13 -0
  161. package/dist/docs/api/components/type-aliases/XrLocomotionMode.md +15 -0
  162. package/dist/docs/api/components/type-aliases/XrTrackingOrigin.md +24 -0
  163. package/dist/docs/api/components/type-aliases/XrTwoHandRotation.md +15 -0
  164. package/dist/docs/api/components/variables/DEFAULT_COLLIDER_STATE.md +1 -1
  165. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_LIGHTING.md +15 -0
  166. package/dist/docs/api/components/variables/DEFAULT_ENVIRONMENT_STATE.md +1 -1
  167. package/dist/docs/api/components/variables/DEFAULT_INSTANCED_MESH_PARAMETERS.md +1 -1
  168. package/dist/docs/api/components/variables/DEFAULT_INSTANCE_TRANSFORM.md +1 -1
  169. package/dist/docs/api/components/variables/DEFAULT_MESH_GEOMETRY_PARAMETERS.md +1 -1
  170. package/dist/docs/api/components/variables/DEFAULT_PHYSICS_STATE.md +1 -1
  171. package/dist/docs/api/components/variables/DEFAULT_POSE_CURLS.md +13 -0
  172. package/dist/docs/api/components/variables/DEFAULT_POSE_DIRECTIONS.md +13 -0
  173. package/dist/docs/api/components/variables/DEFAULT_POSTPROCESSING_STATE.md +1 -1
  174. package/dist/docs/api/components/variables/DEFAULT_RIGIDBODY_STATE.md +1 -1
  175. package/dist/docs/api/components/variables/MODEL_NO_PATH_MESSAGE.md +15 -0
  176. package/dist/docs/api/index/classes/AnimationStateMachine.md +16 -16
  177. package/dist/docs/api/index/classes/AnimationStateManager.md +13 -13
  178. package/dist/docs/api/index/classes/AnimationSystem.md +3 -3
  179. package/dist/docs/api/index/classes/AudioSystem.md +4 -4
  180. package/dist/docs/api/index/classes/CameraSyncSystem.md +2 -2
  181. package/dist/docs/api/index/classes/EnvironmentSyncSystem.md +19 -4
  182. package/dist/docs/api/index/classes/HandPoseTracker.md +114 -0
  183. package/dist/docs/api/index/classes/InputSystem.md +33 -33
  184. package/dist/docs/api/index/classes/InstancedMeshSystem.md +2 -2
  185. package/dist/docs/api/index/classes/LightSyncSystem.md +2 -2
  186. package/dist/docs/api/index/classes/MaterialSyncSystem.md +3 -3
  187. package/dist/docs/api/index/classes/MeshGeometrySystem.md +2 -2
  188. package/dist/docs/api/index/classes/ObjectManagementSystem.md +14 -14
  189. package/dist/docs/api/index/classes/ObjectVisibilitySystem.md +2 -2
  190. package/dist/docs/api/index/classes/PhysicsSyncSystem.md +4 -4
  191. package/dist/docs/api/index/classes/PostprocessingSyncSystem.md +34 -10
  192. package/dist/docs/api/index/classes/RenderSystem.md +13 -4
  193. package/dist/docs/api/index/classes/ScriptBehaviourSystem.md +9 -5
  194. package/dist/docs/api/index/classes/ScriptObject.md +10 -10
  195. package/dist/docs/api/index/classes/ScriptObjectSystem.md +6 -6
  196. package/dist/docs/api/index/classes/TeleportAimGate.md +114 -0
  197. package/dist/docs/api/index/classes/ThrowVelocityTracker.md +89 -0
  198. package/dist/docs/api/index/classes/TransformSyncSystem.md +2 -2
  199. package/dist/docs/api/index/classes/UIInteractionSystem.md +60 -0
  200. package/dist/docs/api/index/classes/UIPanelSystem.md +79 -0
  201. package/dist/docs/api/index/classes/VRTeleportAreaSystem.md +49 -0
  202. package/dist/docs/api/index/classes/VideoSystem.md +8 -6
  203. package/dist/docs/api/index/classes/World.md +282 -100
  204. package/dist/docs/api/index/classes/XRAnchorSystem.md +90 -0
  205. package/dist/docs/api/index/classes/XRControllerVisualSystem.md +77 -0
  206. package/dist/docs/api/index/classes/XREnvironmentSystem.md +137 -0
  207. package/dist/docs/api/index/classes/XRHandPoseSystem.md +107 -0
  208. package/dist/docs/api/index/classes/XRHitTestSystem.md +93 -0
  209. package/dist/docs/api/index/classes/XRHoverVisualSystem.md +76 -0
  210. package/dist/docs/api/index/classes/XRInputSystem.md +189 -0
  211. package/dist/docs/api/index/classes/XRInteractionSystem.md +323 -0
  212. package/dist/docs/api/index/classes/XRLocomotionSystem.md +128 -0
  213. package/dist/docs/api/index/classes/XRSessionSystem.md +116 -0
  214. package/dist/docs/api/index/classes/XRTeleportVisualSystem.md +75 -0
  215. package/dist/docs/api/index/functions/angularVelocityFrom.md +33 -0
  216. package/dist/docs/api/index/functions/applyHandMaterial.md +26 -0
  217. package/dist/docs/api/index/functions/applyPrefabToSnapshotInstances.md +1 -1
  218. package/dist/docs/api/index/functions/arcGroundCrossing.md +30 -0
  219. package/dist/docs/api/index/functions/buildComponentValueMaps.md +1 -1
  220. package/dist/docs/api/index/functions/buildNodeKeyMapsFromSnapshot.md +1 -1
  221. package/dist/docs/api/index/functions/buildNodeMapsFromSnapshot.md +1 -1
  222. package/dist/docs/api/index/functions/canonicalizeComponentValue.md +1 -1
  223. package/dist/docs/api/index/functions/clearModelCache.md +1 -1
  224. package/dist/docs/api/index/functions/clearPrefabCache.md +1 -1
  225. package/dist/docs/api/index/functions/cloneHandPose.md +23 -0
  226. package/dist/docs/api/index/functions/collectDiffPaths.md +1 -1
  227. package/dist/docs/api/index/functions/collectDirectPrefabDependencies.md +1 -1
  228. package/dist/docs/api/index/functions/collectEntitySubtree.md +1 -1
  229. package/dist/docs/api/index/functions/collectSnapshotSubtreeIds.md +1 -1
  230. package/dist/docs/api/index/functions/computeFingerCurl.md +29 -0
  231. package/dist/docs/api/index/functions/computeHandShape.md +29 -0
  232. package/dist/docs/api/index/functions/computeInstanceOverrides.md +1 -1
  233. package/dist/docs/api/index/functions/computePalmPose.md +30 -0
  234. package/dist/docs/api/index/functions/computePalmWidth.md +25 -0
  235. package/dist/docs/api/index/functions/computePinch.md +29 -0
  236. package/dist/docs/api/index/functions/computeSpread.md +33 -0
  237. package/dist/docs/api/index/functions/createAnimationComponent.md +1 -1
  238. package/dist/docs/api/index/functions/createAudioComponent.md +1 -1
  239. package/dist/docs/api/index/functions/createCameraComponent.md +1 -1
  240. package/dist/docs/api/index/functions/createEntityTypeComponent.md +2 -2
  241. package/dist/docs/api/index/functions/createEnvironmentComponent.md +1 -1
  242. package/dist/docs/api/index/functions/createHandMaterial.md +30 -0
  243. package/dist/docs/api/index/functions/createImageComponent.md +1 -1
  244. package/dist/docs/api/index/functions/createImageTargetAnchorComponent.md +1 -1
  245. package/dist/docs/api/index/functions/createImageTargetComponent.md +2 -2
  246. package/dist/docs/api/index/functions/createInstanceSlotComponent.md +1 -1
  247. package/dist/docs/api/index/functions/createInstancedMeshComponent.md +1 -1
  248. package/dist/docs/api/index/functions/createLightComponent.md +2 -2
  249. package/dist/docs/api/index/functions/createMaterialComponent.md +2 -2
  250. package/dist/docs/api/index/functions/createMeshComponent.md +1 -1
  251. package/dist/docs/api/index/functions/createMeshGeometryComponent.md +1 -1
  252. package/dist/docs/api/index/functions/createModelComponent.md +1 -1
  253. package/dist/docs/api/index/functions/createNameComponent.md +1 -1
  254. package/dist/docs/api/index/functions/createObject3DRefComponent.md +1 -1
  255. package/dist/docs/api/index/functions/createParentIdComponent.md +1 -1
  256. package/dist/docs/api/index/functions/createPhysicsComponent.md +1 -1
  257. package/dist/docs/api/index/functions/createPostprocessingComponent.md +1 -1
  258. package/dist/docs/api/index/functions/createScriptComponent.md +1 -1
  259. package/dist/docs/api/index/functions/createScriptObjectComponent.md +1 -1
  260. package/dist/docs/api/index/functions/createSelectableComponent.md +1 -1
  261. package/dist/docs/api/index/functions/createSelectionTransformStateComponent.md +1 -1
  262. package/dist/docs/api/index/functions/createSpriteComponent.md +1 -1
  263. package/dist/docs/api/index/functions/createTransformComponent.md +1 -1
  264. package/dist/docs/api/index/functions/createUIButtonComponent.md +28 -0
  265. package/dist/docs/api/index/functions/createUIPanelComponent.md +28 -0
  266. package/dist/docs/api/index/functions/createUISliderComponent.md +28 -0
  267. package/dist/docs/api/index/functions/createUITextComponent.md +28 -0
  268. package/dist/docs/api/index/functions/createUIToggleComponent.md +28 -0
  269. package/dist/docs/api/index/functions/createVRTeleportAreaComponent.md +28 -0
  270. package/dist/docs/api/index/functions/createVideoComponent.md +1 -1
  271. package/dist/docs/api/index/functions/createXRAnchorComponent.md +28 -0
  272. package/dist/docs/api/index/functions/createXRHandPoseComponent.md +28 -0
  273. package/dist/docs/api/index/functions/createXRInteractableComponent.md +28 -0
  274. package/dist/docs/api/index/functions/createXRInteractorComponent.md +28 -0
  275. package/dist/docs/api/index/functions/createXRInteractorSideComponent.md +28 -0
  276. package/dist/docs/api/index/functions/createXRRigComponent.md +28 -0
  277. package/dist/docs/api/index/functions/decanonicalizeComponentValue.md +1 -1
  278. package/dist/docs/api/index/functions/despawnPrefab.md +1 -1
  279. package/dist/docs/api/index/functions/encodeOverride.md +1 -1
  280. package/dist/docs/api/index/functions/estimateHandScale.md +28 -0
  281. package/dist/docs/api/index/functions/findSnapshotRootEntityIds.md +1 -1
  282. package/dist/docs/api/index/functions/findTopLevelNestedRegions.md +1 -1
  283. package/dist/docs/api/index/functions/getHandPosePreset.md +31 -0
  284. package/dist/docs/api/index/functions/groupOverridePaths.md +1 -1
  285. package/dist/docs/api/index/functions/handPoseFromCurls.md +42 -0
  286. package/dist/docs/api/index/functions/hydrateWorldFromSnapshot.md +1 -1
  287. package/dist/docs/api/index/functions/hydrateWorldFromSnapshotDetailed.md +1 -1
  288. package/dist/docs/api/index/functions/indexSnapshotByEntity.md +1 -1
  289. package/dist/docs/api/index/functions/instantiateSubtree.md +1 -1
  290. package/dist/docs/api/index/functions/loadPrefab.md +1 -1
  291. package/dist/docs/api/index/functions/loadSharedGltf.md +1 -1
  292. package/dist/docs/api/index/functions/matchHandPose.md +34 -0
  293. package/dist/docs/api/index/functions/mergeComponentValue.md +1 -1
  294. package/dist/docs/api/index/functions/parseOverride.md +1 -1
  295. package/dist/docs/api/index/functions/parsePrefabAsset.md +1 -1
  296. package/dist/docs/api/index/functions/prefabFileVersionFor.md +1 -1
  297. package/dist/docs/api/index/functions/readXrCapabilities.md +30 -0
  298. package/dist/docs/api/index/functions/registerDefaultComponentFactories.md +1 -1
  299. package/dist/docs/api/index/functions/registerDefaultFactories.md +1 -1
  300. package/dist/docs/api/index/functions/remapSnapshotEntityIds.md +3 -3
  301. package/dist/docs/api/index/functions/resolveDracoDecoderPath.md +1 -1
  302. package/dist/docs/api/index/functions/restoreComponentState.md +1 -1
  303. package/dist/docs/api/index/functions/restorePostCreateComponents.md +1 -1
  304. package/dist/docs/api/index/functions/sampleTeleportArc.md +40 -0
  305. package/dist/docs/api/index/functions/serializeEntitySubtree.md +1 -1
  306. package/dist/docs/api/index/functions/setDracoDecoderPath.md +1 -1
  307. package/dist/docs/api/index/functions/setPrefabAssetUrlResolver.md +1 -1
  308. package/dist/docs/api/index/functions/spawnPrefab.md +1 -1
  309. package/dist/docs/api/index/index.md +116 -4
  310. package/dist/docs/api/index/interfaces/ChromaKeyOptions.md +20 -0
  311. package/dist/docs/api/index/interfaces/EcsSystem.md +3 -3
  312. package/dist/docs/api/index/interfaces/PostprocessingBuildContext.md +21 -0
  313. package/dist/docs/api/index/interfaces/PostprocessingPipeline.md +84 -0
  314. package/dist/docs/api/index/interfaces/RenderBackend.md +168 -0
  315. package/dist/docs/api/index/interfaces/StateMachine.md +13 -13
  316. package/dist/docs/api/index/type-aliases/AnimationStateCallbacks.md +4 -4
  317. package/dist/docs/api/index/type-aliases/ApplyPrefabToSnapshotResult.md +3 -3
  318. package/dist/docs/api/index/type-aliases/ComponentFactory.md +1 -1
  319. package/dist/docs/api/index/type-aliases/ComponentValueMaps.md +50 -26
  320. package/dist/docs/api/index/type-aliases/EcsComponentFactoryKind.md +14 -2
  321. package/dist/docs/api/index/type-aliases/EcsRenderer.md +17 -0
  322. package/dist/docs/api/index/type-aliases/EcsWorldComponentSnapshot.md +3 -3
  323. package/dist/docs/api/index/type-aliases/EcsWorldStateSnapshotLike.md +4 -4
  324. package/dist/docs/api/index/type-aliases/ExternalRefWarning.md +5 -5
  325. package/dist/docs/api/index/type-aliases/HandMaterialOptions.md +32 -0
  326. package/dist/docs/api/index/type-aliases/HandPoseTrackerOptions.md +27 -0
  327. package/dist/docs/api/index/type-aliases/HydrateOptions.md +3 -3
  328. package/dist/docs/api/index/type-aliases/HydrateWorldFromSnapshotResult.md +4 -4
  329. package/dist/docs/api/index/type-aliases/InstantiateSubtreeResult.md +3 -3
  330. package/dist/docs/api/index/type-aliases/KeyboardKey.md +1 -1
  331. package/dist/docs/api/index/type-aliases/ModuleLoader.md +1 -1
  332. package/dist/docs/api/index/type-aliases/MouseButton.md +1 -1
  333. package/dist/docs/api/index/type-aliases/NestedRegion.md +5 -5
  334. package/dist/docs/api/index/type-aliases/NodeKeyMaps.md +5 -5
  335. package/dist/docs/api/index/type-aliases/NodeMaps.md +4 -4
  336. package/dist/docs/api/index/type-aliases/PrefabAsset.md +5 -5
  337. package/dist/docs/api/index/type-aliases/RemapSnapshotOptions.md +2 -2
  338. package/dist/docs/api/index/type-aliases/RendererKind.md +15 -0
  339. package/dist/docs/api/index/type-aliases/ScriptBehaviourSystemOptions.md +23 -0
  340. package/dist/docs/api/index/type-aliases/ScriptErrorEvent.md +39 -0
  341. package/dist/docs/api/index/type-aliases/ScriptErrorListener.md +25 -0
  342. package/dist/docs/api/index/type-aliases/ScriptErrorPhase.md +28 -0
  343. package/dist/docs/api/index/type-aliases/ScriptErrorReport.md +31 -0
  344. package/dist/docs/api/index/type-aliases/ScriptErrorSource.md +15 -0
  345. package/dist/docs/api/index/type-aliases/SelectionContext.md +4 -4
  346. package/dist/docs/api/index/type-aliases/SerializeEntitySubtreeResult.md +4 -4
  347. package/dist/docs/api/index/type-aliases/SpawnPrefabOptions.md +5 -5
  348. package/dist/docs/api/index/type-aliases/SpawnPrefabSource.md +1 -1
  349. package/dist/docs/api/index/type-aliases/SubtreeSnapshot.md +3 -3
  350. package/dist/docs/api/index/type-aliases/UiCanvasLike.md +46 -0
  351. package/dist/docs/api/index/type-aliases/VelocitySample.md +23 -0
  352. package/dist/docs/api/index/type-aliases/XrCapabilities.md +41 -0
  353. package/dist/docs/api/index/type-aliases/XrFinger.md +13 -0
  354. package/dist/docs/api/index/type-aliases/XrFingerCurl.md +27 -0
  355. package/dist/docs/api/index/type-aliases/XrFingerTarget.md +31 -0
  356. package/dist/docs/api/index/type-aliases/XrHandJointName.md +40 -0
  357. package/dist/docs/api/index/type-aliases/XrHandJoints.md +18 -0
  358. package/dist/docs/api/index/type-aliases/XrHandPoseAxis.md +15 -0
  359. package/dist/docs/api/index/type-aliases/XrHandPoseContext.md +23 -0
  360. package/dist/docs/api/index/type-aliases/XrHandPoseDefinition.md +47 -0
  361. package/dist/docs/api/index/type-aliases/XrHandPoseDirection.md +21 -0
  362. package/dist/docs/api/index/type-aliases/XrHandPoseEvent.md +13 -0
  363. package/dist/docs/api/index/type-aliases/XrHandPoseEventDetail.md +27 -0
  364. package/dist/docs/api/index/type-aliases/XrHandPoseMatch.md +25 -0
  365. package/dist/docs/api/index/type-aliases/XrHandPoseOrientation.md +25 -0
  366. package/dist/docs/api/index/type-aliases/XrHandShape.md +46 -0
  367. package/dist/docs/api/index/type-aliases/XrHandedness.md +15 -0
  368. package/dist/docs/api/index/type-aliases/XrHitResult.md +25 -0
  369. package/dist/docs/api/index/type-aliases/XrInputKind.md +19 -0
  370. package/dist/docs/api/index/type-aliases/XrInputState.md +60 -0
  371. package/dist/docs/api/index/type-aliases/XrPalmPose.md +31 -0
  372. package/dist/docs/api/index/variables/ADDED_NODE_MARKER_COMPONENT.md +2 -2
  373. package/dist/docs/api/index/variables/ARC_GRAVITY.md +15 -0
  374. package/dist/docs/api/index/variables/ARC_MAX_TIME.md +15 -0
  375. package/dist/docs/api/index/variables/ARC_SPEED.md +15 -0
  376. package/dist/docs/api/index/variables/ARC_STEPS.md +15 -0
  377. package/dist/docs/api/index/variables/CURLED_COS.md +13 -0
  378. package/dist/docs/api/index/variables/DEFAULT_DIRECTION_TOLERANCE.md +15 -0
  379. package/dist/docs/api/index/variables/DEFAULT_ENTER_CONFIDENCE.md +13 -0
  380. package/dist/docs/api/index/variables/DEFAULT_EXIT_CONFIDENCE.md +13 -0
  381. package/dist/docs/api/index/variables/DEFAULT_LOST_GRACE_SECONDS.md +13 -0
  382. package/dist/docs/api/index/variables/DEFAULT_MIN_HOLD_SECONDS.md +13 -0
  383. package/dist/docs/api/index/variables/DEFAULT_SCRIPT_ERROR_RETRY_DELAY.md +17 -0
  384. package/dist/docs/api/index/variables/FALLBACK_HAND_SCALE.md +15 -0
  385. package/dist/docs/api/index/variables/HAND_POSE_PRESETS.md +19 -0
  386. package/dist/docs/api/index/variables/HAND_POSE_PRESET_IDS.md +15 -0
  387. package/dist/docs/api/index/variables/HYDRATABLE_ENTITY_KINDS.md +1 -1
  388. package/dist/docs/api/index/variables/KeyboardKeys.md +89 -89
  389. package/dist/docs/api/index/variables/MATCH_FALLOFF.md +15 -0
  390. package/dist/docs/api/index/variables/MAX_PLAUSIBLE_SPEED.md +25 -0
  391. package/dist/docs/api/index/variables/MAX_SAMPLE_AGE_SECONDS.md +18 -0
  392. package/dist/docs/api/index/variables/NODE_KEY_SEPARATOR.md +1 -1
  393. package/dist/docs/api/index/variables/NO_XR_CAPABILITIES.md +15 -0
  394. package/dist/docs/api/index/variables/OVERRIDE_DIFF_EXCLUDED_COMPONENTS.md +1 -1
  395. package/dist/docs/api/index/variables/OVERRIDE_ROOT_EXCLUDED_COMPONENTS.md +1 -1
  396. package/dist/docs/api/index/variables/PINCH_FINGERS.md +15 -0
  397. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION.md +1 -1
  398. package/dist/docs/api/index/variables/PREFAB_FILE_VERSION_NESTED.md +1 -1
  399. package/dist/docs/api/index/variables/SCRIPT_OBJECT_ROOT_FLAG.md +1 -1
  400. package/dist/docs/api/index/variables/SHARED_MODEL_RESOURCE_FLAG.md +1 -1
  401. package/dist/docs/api/index/variables/STRAIGHT_COS.md +19 -0
  402. package/dist/docs/api/index/variables/VELOCITY_SAMPLES.md +15 -0
  403. package/dist/docs/api/index/variables/XR_FINGERS.md +13 -0
  404. package/dist/docs/api/index/variables/XR_HOVER_SHELL_FLAG.md +15 -0
  405. package/dist/docs/api/index/variables/webglBackend.md +16 -0
  406. package/dist/docs/api/typedoc-sidebar.json +1 -1
  407. package/dist/docs/api/types/type-aliases/AssetInput.md +3 -3
  408. package/dist/docs/api/types/type-aliases/CheckboxInput.md +3 -3
  409. package/dist/docs/api/types/type-aliases/ColorInput.md +1 -1
  410. package/dist/docs/api/types/type-aliases/ComponentInput.md +4 -4
  411. package/dist/docs/api/types/type-aliases/ComponentKind.md +1 -1
  412. package/dist/docs/api/types/type-aliases/DropdownInput.md +3 -3
  413. package/dist/docs/api/types/type-aliases/DropdownOption.md +3 -3
  414. package/dist/docs/api/types/type-aliases/EcsEntityEditorKind.md +1 -1
  415. package/dist/docs/api/types/type-aliases/EcsEntityKind.md +10 -2
  416. package/dist/docs/api/types/type-aliases/EntityId.md +1 -1
  417. package/dist/docs/api/types/type-aliases/EntityInput.md +3 -3
  418. package/dist/docs/api/types/type-aliases/FloatInput.md +1 -1
  419. package/dist/docs/api/types/type-aliases/IntersectionResult.md +3 -3
  420. package/dist/docs/api/types/type-aliases/ParentLookup.md +3 -3
  421. package/dist/docs/api/types/type-aliases/SelectionListener.md +1 -1
  422. package/dist/docs/api/types/type-aliases/SliderInput.md +5 -5
  423. package/dist/docs/api/types/type-aliases/TextInput.md +1 -1
  424. package/dist/docs/api/types/type-aliases/ToggleInput.md +1 -1
  425. package/dist/docs/api/types/type-aliases/Vec3.md +1 -1
  426. package/dist/docs/api/types/type-aliases/Vector2Input.md +3 -3
  427. package/dist/docs/api/types/type-aliases/Vector3Input.md +4 -4
  428. package/dist/docs/api/types/type-aliases/WorldEntityView.md +1 -1
  429. package/dist/docs/guide/audio-mixing-and-sound-banks.md +71 -0
  430. package/dist/docs/guide/authoring-a-behaviour.md +3 -3
  431. package/dist/docs/guide/authoring-a-script-object.md +12 -9
  432. package/dist/docs/guide/behaviour-data-binding/index.md +11 -11
  433. package/dist/docs/guide/behaviour-lifecycle.md +9 -0
  434. package/dist/docs/guide/bone-attachments-and-ik.md +128 -0
  435. package/dist/docs/guide/component-catalog.md +10 -2
  436. package/dist/docs/guide/components/light.md +42 -0
  437. package/dist/docs/guide/components/model.md +32 -3
  438. package/dist/docs/guide/concepts.md +2 -2
  439. package/dist/docs/guide/getting-started/creating-objects.md +2 -2
  440. package/dist/docs/guide/getting-started/editing-objects.md +2 -2
  441. package/dist/docs/guide/getting-started/editor/ai-agent.md +227 -0
  442. package/dist/docs/guide/getting-started/editor/hierarchy.md +2 -2
  443. package/dist/docs/guide/getting-started/editor/index.md +3 -2
  444. package/dist/docs/guide/getting-started/editor/inspector.md +2 -2
  445. package/dist/docs/guide/getting-started/editor/scene-inspector.md +3 -3
  446. package/dist/docs/guide/getting-started/editor/toolbar.md +11 -11
  447. package/dist/docs/guide/getting-started/editor/viewport.md +17 -9
  448. package/dist/docs/guide/getting-started/index.md +1 -1
  449. package/dist/docs/guide/getting-started/installation.md +1 -1
  450. package/dist/docs/guide/getting-started/preview-and-test.md +7 -7
  451. package/dist/docs/guide/getting-started/project-types/image-tracking.md +23 -11
  452. package/dist/docs/guide/getting-started/project-types/index.md +4 -4
  453. package/dist/docs/guide/getting-started/project-types/vr.md +270 -2
  454. package/dist/docs/guide/getting-started/projects.md +4 -5
  455. package/dist/docs/guide/getting-started/shortcuts.md +5 -4
  456. package/dist/docs/guide/multiplayer.md +92 -0
  457. package/dist/docs/guide/scene/environment.md +101 -4
  458. package/dist/docs/guide/scene/index.md +4 -4
  459. package/dist/docs/guide/scene/postprocessing.md +67 -5
  460. package/dist/docs/guide/spatial-ui.md +83 -7
  461. package/dist/docs/guide/spawning/area-light.md +2 -0
  462. package/dist/docs/guide/systems/environment-sync-system.md +11 -6
  463. package/dist/docs/guide/systems/light-sync-system.md +5 -3
  464. package/dist/docs/guide/systems/postprocessing-sync-system.md +16 -6
  465. package/dist/docs/guide/systems/render-system.md +7 -6
  466. package/dist/docs/guide/systems/script-behaviour-system.md +7 -5
  467. package/dist/docs/guide/systems/script-object-system.md +3 -1
  468. package/dist/docs/guide/systems/video-system.md +1 -1
  469. package/dist/docs/guide/webgpu-and-tsl.md +415 -0
  470. package/dist/docs/guide/world-api.md +52 -2
  471. package/dist/factories/index.cjs +921 -283
  472. package/dist/factories/index.cjs.map +1 -1
  473. package/dist/factories/index.d.cts +14 -3
  474. package/dist/factories/index.d.ts +14 -3
  475. package/dist/factories/index.js +7 -4
  476. package/dist/{index-C3ik3sA1.d.ts → index-CAZHrh0q.d.cts} +28 -3
  477. package/dist/{index-Dlr-7-4m.d.cts → index-CLtSMf2M.d.ts} +28 -3
  478. package/dist/{index-D2Jt_JzH.d.ts → index-D5MmJNyj.d.ts} +161 -43
  479. package/dist/{index-DaG03vyN.d.cts → index-DiIjV2lm.d.cts} +161 -43
  480. package/dist/index.cjs +4959 -1414
  481. package/dist/index.cjs.map +1 -1
  482. package/dist/index.d.cts +113 -11
  483. package/dist/index.d.ts +113 -11
  484. package/dist/index.js +187 -12
  485. package/dist/index.js.map +1 -1
  486. package/dist/network/index.cjs +5069 -0
  487. package/dist/network/index.cjs.map +1 -0
  488. package/dist/network/index.d.cts +98 -0
  489. package/dist/network/index.d.ts +98 -0
  490. package/dist/network/index.js +493 -0
  491. package/dist/network/index.js.map +1 -0
  492. package/dist/systems/index.cjs +5319 -1957
  493. package/dist/systems/index.cjs.map +1 -1
  494. package/dist/systems/index.d.cts +4 -2
  495. package/dist/systems/index.d.ts +4 -2
  496. package/dist/systems/index.js +8 -4
  497. package/dist/types.d.cts +3 -1
  498. package/dist/types.d.ts +3 -1
  499. package/dist/webgpu/index.d.ts +113 -0
  500. package/dist/webgpu/index.js +302 -0
  501. package/dist/webgpu/index.js.map +1 -0
  502. package/dist/worldSnapshotUtils.d.cts +3 -1
  503. package/dist/worldSnapshotUtils.d.ts +3 -1
  504. package/dist/worldSnapshotUtils.js +3 -2
  505. package/package.json +19 -3
  506. package/dist/chunk-BUEKOSR5.js.map +0 -1
  507. package/dist/chunk-DF5SSRN6.js.map +0 -1
  508. package/dist/chunk-OWQSESTO.js.map +0 -1
  509. package/dist/chunk-OY7ZODZP.js.map +0 -1
  510. package/dist/chunk-RXBLOO5B.js.map +0 -1
  511. package/dist/chunk-WJD2VKEH.js +0 -315
  512. package/dist/chunk-WJD2VKEH.js.map +0 -1
@@ -5,12 +5,6 @@ var __export = (target, all) => {
5
5
  __defProp(target, name, { get: all[name], enumerable: true });
6
6
  };
7
7
 
8
- // core/Component.ts
9
- var _Component = class _Component {
10
- };
11
- __name(_Component, "Component");
12
- var Component = _Component;
13
-
14
- export { Component, __export, __name };
15
- //# sourceMappingURL=chunk-OY7ZODZP.js.map
16
- //# sourceMappingURL=chunk-OY7ZODZP.js.map
8
+ export { __export, __name };
9
+ //# sourceMappingURL=chunk-XE4OXN2W.js.map
10
+ //# sourceMappingURL=chunk-XE4OXN2W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-XE4OXN2W.js"}
@@ -1,4 +1,5 @@
1
- import { __name, Component } from './chunk-OY7ZODZP.js';
1
+ import { Component } from './chunk-CKTHDXPS.js';
2
+ import { __name } from './chunk-XE4OXN2W.js';
2
3
 
3
4
  // core/worldSnapshotUtils.ts
4
5
  var DEBUG_CHANGE_IGNORED_SYSTEMS = /* @__PURE__ */ new Set([
@@ -288,5 +289,5 @@ function cloneHistoryValue(value, seen = /* @__PURE__ */ new WeakMap()) {
288
289
  __name(cloneHistoryValue, "cloneHistoryValue");
289
290
 
290
291
  export { DEBUG_CHANGE_IGNORED_SYSTEMS, cloneHistoryValue, normalizeDebugValue };
291
- //# sourceMappingURL=chunk-OWQSESTO.js.map
292
- //# sourceMappingURL=chunk-OWQSESTO.js.map
292
+ //# sourceMappingURL=chunk-XU2DVWCP.js.map
293
+ //# sourceMappingURL=chunk-XU2DVWCP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../core/worldSnapshotUtils.ts"],"names":["cloneObject"],"mappings":";;;;AAmBO,IAAM,4BAAA,uBAAmC,GAAA,CAAY;AAAA,EAC1D,mBAAA;AAAA,EACA;AACF,CAAC;AAQM,SAAS,mBAAA,CACd,OACA,GAAA,EACS;AACT,EAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AACzC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAY,OAAO,KAAA;AACzB,EAAA,IACE,SAAA,KAAc,QAAA,IACd,SAAA,KAAc,QAAA,IACd,cAAc,SAAA,EACd;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,cAAc,UAAA,EAAY;AAC5B,IAAA,MAAM,EAAA,GAAK,KAAA;AACX,IAAA,OAAO,CAAA,UAAA,EAAa,EAAA,CAAG,IAAA,IAAQ,WAAW,CAAA,CAAA,CAAA;AAAA,EAC5C;AAEA,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAO,MAAM,WAAA,EAAY;AAAA,EAC3B;AAEA,EAAA,IAAI,cAAc,QAAA,EAAU;AAC1B,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB;AAEA,EAAA,MAAM,WAAA,GAAc,KAAA;AAKpB,EAAA,IAAI,WAAA,CAAY,MAAA,CAAO,KAAK,CAAA,EAAG;AAC7B,IAAA,MAAM,IAAA,GAAO,KAAA;AACb,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,IAAA,CAAK,WAAA,EAAa,IAAA,IAAQ,YAAA;AAAA,MAClC,QAAQ,OAAO,IAAA,CAAK,WAAW,QAAA,GAAW,IAAA,CAAK,SAAS,IAAA,CAAK;AAAA,KAC/D;AAAA,EACF;AACA,EAAA,IAAI,iBAAiB,WAAA,EAAa;AAChC,IAAA,OAAO,EAAE,MAAA,EAAQ,aAAA,EAAe,UAAA,EAAY,MAAM,UAAA,EAAW;AAAA,EAC/D;AAEA,EAAA,MAAM,eAAA,GACJ,WAAA,CAAY,WAAA,EAAa,IAAA,IAAQ,WAAA,CAAY,YAAY,IAAA,KAAS,QAAA,GAC9D,WAAA,CAAY,WAAA,CAAY,IAAA,GACxB,IAAA;AAEN,EAAA,IAAI,oBAAoB,eAAA,EAAiB;AACvC,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,eAAA;AAAA,MACR,MAAM,OAAO,WAAA,CAAY,IAAA,KAAS,QAAA,GAAW,YAAY,IAAA,GAAO;AAAA,KAClE;AAAA,EACF;AAEA,EAAA,IAAI,oBAAoB,uBAAA,EAAyB;AAC/C,IAAA,MAAM,SAAA,GACJ,YAAY,IAAA,IAAQ,OAAO,YAAY,IAAA,KAAS,QAAA,GAC3C,YAAY,IAAA,GACb,IAAA;AAEN,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,uBAAA;AAAA,MACR,MAAM,OAAO,WAAA,CAAY,IAAA,KAAS,QAAA,GAAW,YAAY,IAAA,GAAO,EAAA;AAAA,MAChE,IAAA,EAAM,OAAA,CAAQ,WAAA,CAAY,IAAI,CAAA;AAAA,MAC9B,SAAA,EAAW,OAAA,CAAQ,WAAA,CAAY,SAAS,CAAA;AAAA,MACxC,QAAA,EAAU,OAAA,CAAQ,WAAA,CAAY,QAAQ,CAAA;AAAA,MACtC,IAAA,EAAM;AAAA,QACJ,MAAA,EAAQ,eAAA;AAAA,QACR,MAAM,OAAO,SAAA,EAAW,IAAA,KAAS,QAAA,GAAW,UAAU,IAAA,GAAO;AAAA;AAC/D,KACF;AAAA,EACF;AAEA,EAAA,IAAI,oBAAoB,oBAAA,EAAsB;AAC5C,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,WAAA,CAAY,KAAK,IACzC,WAAA,CAAY,KAAA,CACT,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,MAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,SAAA,GAAY,IAAA;AAClB,MAAA,OAAO;AAAA,QACL,MAAA,EAAQ,eAAA;AAAA,QACR,MAAM,OAAO,SAAA,CAAU,IAAA,KAAS,QAAA,GAAW,UAAU,IAAA,GAAO;AAAA,OAC9D;AAAA,IACF,CAAC,EACA,MAAA,CAAO,CAAC,SAA4D,IAAA,KAAS,IAAI,IACpF,EAAC;AAEL,IAAA,MAAM,iBAAiB,KAAA,CAAM,OAAA,CAAQ,YAAY,cAAc,CAAA,GAC3D,YAAY,cAAA,CAAe,MAAA;AAAA,MACzB,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU,QAAA,IAAY,MAAM,MAAA,GAAS;AAAA,KAC1E,GACA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,CAAK,SAAS,CAAC,CAAA;AAEnE,IAAA,MAAM,sBAAsB,KAAA,CAAM,OAAA,CAAQ,YAAY,mBAAmB,CAAA,GACrE,YAAY,mBAAA,CAAoB,MAAA;AAAA,MAC9B,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU,QAAA,IAAY,MAAM,MAAA,GAAS;AAAA,QAE1E,EAAC;AAEL,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,WAAA,CAAY,MAAM,IAC3C,WAAA,CAAY,MAAA,CACT,GAAA,CAAI,CAAC,KAAA,KAAU;AACd,MAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,UAAA,GAAa,KAAA;AACnB,MAAA,MAAM,SAAA,GACJ,WAAW,IAAA,IAAQ,OAAO,WAAW,IAAA,KAAS,QAAA,GACzC,WAAW,IAAA,GACZ,IAAA;AAEN,MAAA,MAAM,OAAO,OAAO,UAAA,CAAW,IAAA,KAAS,QAAA,GAAW,WAAW,IAAA,GAAO,EAAA;AACrE,MAAA,MAAM,OAAO,OAAO,SAAA,EAAW,IAAA,KAAS,QAAA,GAAW,UAAU,IAAA,GAAO,EAAA;AACpE,MAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,IAAA,EAAM;AAClB,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAO;AAAA,QACL,IAAA;AAAA,QACA,IAAA;AAAA,QACA,MAAA,EACE,OAAO,UAAA,CAAW,MAAA,KAAW,QAAA,IAAY,WAAW,MAAA,CAAO,MAAA,GAAS,CAAA,GAChE,UAAA,CAAW,MAAA,GACX,IAAA;AAAA,QACN,IAAA,EAAM,OAAA,CAAQ,UAAA,CAAW,IAAI;AAAA,OAC/B;AAAA,IACF,CAAC,CAAA,CACA,MAAA;AAAA,MACC,CACE,UAMG,KAAA,KAAU;AAAA,QAEnB,EAAC;AAEL,IAAA,MAAM,WAAA,GACJ,YAAY,MAAA,IAAU,OAAO,YAAY,MAAA,KAAW,QAAA,GAC/C,YAAY,MAAA,GACb,IAAA;AAEN,IAAA,MAAM,eAAA,GACJ,OAAO,WAAA,CAAY,eAAA,KAAoB,QAAA,GACnC,WAAA,CAAY,eAAA,GACZ,OAAO,WAAA,EAAa,IAAA,KAAS,QAAA,GAC3B,WAAA,CAAY,IAAA,GACZ,IAAA;AAER,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,oBAAA;AAAA,MACR,KAAA;AAAA,MACA,cAAA;AAAA,MACA,mBAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAA,EAAQ,OAAA,CAAQ,WAAA,CAAY,MAAM,CAAA;AAAA,MAClC,OAAA,EAAS,OAAA,CAAQ,WAAA,CAAY,OAAO,CAAA;AAAA,MACpC,SAAA,EACE,OAAO,WAAA,CAAY,SAAA,KAAc,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,WAAA,CAAY,SAAS,CAAA,GAC9E,WAAA,CAAY,SAAA,GACZ,CAAA;AAAA,MACN,iBAAA,EACE,OAAO,WAAA,CAAY,iBAAA,KAAsB,YACzC,MAAA,CAAO,QAAA,CAAS,WAAA,CAAY,iBAAiB,IACzC,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,WAAA,CAAY,iBAAiB,CAAA,GACzC;AAAA,KACR;AAAA,EACF;AACE,EAAA,IAAI,oBAAoB,uBAAA,EAAyB;AAC/C,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,uBAAA;AAAA,MACR,eACE,OAAO,WAAA,CAAY,aAAA,KAAkB,QAAA,GACjC,YAAY,aAAA,GACZ,EAAA;AAAA,MACN,WACE,OAAO,WAAA,CAAY,SAAA,KAAc,QAAA,GAC7B,YAAY,SAAA,GACZ;AAAA,KACR;AAAA,EACF;AACF,EAAA,IAAI,oBAAoB,wBAAA,EAA0B;AAKhD,IAAA,MAAM,KAAA,GAA0B;AAAA,MAC9B,MAAM,GAAA,CAAI,IAAA;AAAA,MACV,KAAA,EAAO,IAAI,KAAA,GAAQ,CAAA;AAAA,MACnB,UAAU,GAAA,CAAI;AAAA,KAChB;AACA,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,wBAAA;AAAA,MACR,UAAU,OAAO,WAAA,CAAY,QAAA,KAAa,QAAA,GAAW,YAAY,QAAA,GAAW,MAAA;AAAA,MAC5E,WAAW,OAAO,WAAA,CAAY,SAAA,KAAc,QAAA,GAAW,YAAY,SAAA,GAAY,EAAA;AAAA,MAC/E,cAAA,EAAgB,mBAAA,CAAoB,WAAA,CAAY,cAAA,EAAgB,KAAK,CAAA;AAAA,MACrE,UAAA,EAAY,OAAA,CAAQ,WAAA,CAAY,UAAU,CAAA;AAAA,MAC1C,aAAA,EAAe,OAAA,CAAQ,WAAA,CAAY,aAAa,CAAA;AAAA,MAC9C,iBAAA,EAAmB,KAAA,CAAM,OAAA,CAAQ,WAAA,CAAY,iBAAiB,CAAA,GAC1D,CAAC,GAAI,WAAA,CAAY,iBAA8B,CAAA,GAC/C;AAAC,KACT;AAAA,EACF;AAEA,EAAA,IAAI,oBAAoB,kBAAA,EAAoB;AAI1C,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,kBAAA;AAAA,MACR,MAAA,EAAQ,mBAAA,CAAoB,WAAA,CAAY,MAAA,EAAQ;AAAA,QAC9C,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,KAAA,EAAO,IAAI,KAAA,GAAQ,CAAA;AAAA,QACnB,UAAU,GAAA,CAAI;AAAA,OACf;AAAA,KACH;AAAA,EACF;AAEA,EAAA,IAAI,oBAAoB,mBAAA,EAAqB;AAM3C,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,mBAAA;AAAA,MACR,MAAA,EAAQ,mBAAA,CAAoB,WAAA,CAAY,MAAA,EAAQ;AAAA,QAC9C,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,KAAA,EAAO,IAAI,KAAA,GAAQ,CAAA;AAAA,QACnB,UAAU,GAAA,CAAI;AAAA,OACf,CAAA;AAAA;AAAA,MAED,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,WAAA,CAAY,SAAS,CAAA,GAC1C,CAAC,GAAI,WAAA,CAAY,SAA+B,CAAA,GAChD;AAAC,KACP;AAAA,EACF;AAEA,EAAA,IAAI,oBAAoB,gBAAA,EAAkB;AAMxC,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,gBAAA;AAAA,MACR,MAAM,OAAO,WAAA,CAAY,IAAA,KAAS,QAAA,GAAW,YAAY,IAAA,GAAO,EAAA;AAAA,MAChE,OAAA,EAAS,mBAAA,CAAoB,WAAA,CAAY,OAAA,EAAS;AAAA,QAChD,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,KAAA,EAAO,IAAI,KAAA,GAAQ,CAAA;AAAA,QACnB,UAAU,GAAA,CAAI;AAAA,OACf;AAAA,KACH;AAAA,EACF;AAEA,EAAA,IAAI,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,WAAW,CAAA,EAAG;AAC7B,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,IAAI,GAAA,CAAI,KAAA,IAAS,GAAA,CAAI,QAAA,EAAU;AAC7B,IAAA,OAAO,eAAA,GACH,CAAA,UAAA,EAAa,eAAe,CAAA,CAAA,CAAA,GAC5B,mBAAA;AAAA,EACN;AAEA,EAAA,IAAI,YAAY,QAAA,KAAa,CAAA,IAAK,OAAO,WAAA,CAAY,YAAY,QAAA,EAAU;AACzE,IAAA,OAAO,CAAA,aAAA,EAAgB,MAAA,CAAO,WAAA,CAAY,OAAO,CAAC,CAAA,CAAA,CAAA;AAAA,EACpD;AAEA,EAAA,IAAI,WAAA,CAAY,eAAe,IAAA,EAAM;AACnC,IAAA,MAAM,WAAW,WAAA,CAAY,QAAA;AAI7B,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,UAAA;AAAA,MACR,YAAY,WAAA,CAAY,IAAA;AAAA,MACxB,MAAM,WAAA,CAAY,IAAA;AAAA,MAClB,MAAM,WAAA,CAAY,IAAA;AAAA,MAClB,QAAA,EACE,QAAA,IACA,OAAO,QAAA,CAAS,CAAA,KAAM,QAAA,IACtB,OAAO,QAAA,CAAS,CAAA,KAAM,QAAA,IACtB,OAAO,QAAA,CAAS,MAAM,QAAA,GAClB;AAAA,QACE,GAAG,QAAA,CAAS,CAAA;AAAA,QACZ,GAAG,QAAA,CAAS,CAAA;AAAA,QACZ,GAAG,QAAA,CAAS;AAAA,OACd,GACA;AAAA,KACR;AAAA,EACF;AAEA,EAAA,GAAA,CAAI,IAAA,CAAK,IAAI,WAAW,CAAA;AACxB,EAAA,MAAM,WAAA,GAAgC;AAAA,IACpC,MAAM,GAAA,CAAI,IAAA;AAAA,IACV,KAAA,EAAO,IAAI,KAAA,GAAQ,CAAA;AAAA,IACnB,UAAU,GAAA,CAAI;AAAA,GAChB;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC9B,IAAA,OAAO,YAAY,GAAA,CAAI,CAAC,SAAS,mBAAA,CAAoB,IAAA,EAAM,WAAW,CAAC,CAAA;AAAA,EACzE;AAEA,EAAA,IAAI,uBAAuB,GAAA,EAAK;AAC9B,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,KAAA;AAAA,MACR,OAAA,EAAS,CAAC,GAAG,WAAA,CAAY,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,QAAQ,CAAA,KAAM;AAAA,QAC3D,mBAAA,CAAoB,KAAK,WAAW,CAAA;AAAA,QACpC,mBAAA,CAAoB,UAAU,WAAW;AAAA,OAC1C;AAAA,KACH;AAAA,EACF;AAEA,EAAA,IAAI,uBAAuB,GAAA,EAAK;AAC9B,IAAA,OAAO;AAAA,MACL,MAAA,EAAQ,KAAA;AAAA,MACR,QAAQ,CAAC,GAAG,WAAA,CAAY,MAAA,EAAQ,CAAA,CAAE,GAAA;AAAA,QAAI,CAAC,QAAA,KACrC,mBAAA,CAAoB,QAAA,EAAU,WAAW;AAAA;AAC3C,KACF;AAAA,EACF;AAEA,EAAA,MAAM,aAAsC,EAAC;AAC7C,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,aAAA,CAAc,CAAC,CAAC,CAAA;AACvE,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,UAAA,CAAW,GAAG,CAAA,GAAI,mBAAA,CAAoB,WAAA,CAAY,GAAG,GAAG,WAAW,CAAA;AAAA,EACrE;AAEA,EAAA,OAAO,eAAA,GACH;AAAA,IACE,MAAA,EAAQ,eAAA;AAAA,IACR,GAAG;AAAA,GACL,GACA,UAAA;AACN;AA1VgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA;AA4VhB,SAAS,wBAAwB,KAAA,EAAwB;AACvD,EAAA,MAAM,WAAA,GAAc,KAAA;AAEpB,EAAA,IAAI,WAAA,CAAY,eAAe,IAAA,EAAM;AACnC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,YAAY,QAAA,KAAa,CAAA,IAAK,OAAO,WAAA,CAAY,YAAY,QAAA,EAAU;AACzE,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT;AAZS,MAAA,CAAA,uBAAA,EAAA,yBAAA,CAAA;AAcF,SAAS,iBAAA,CACd,KAAA,EACA,IAAA,mBAAiC,IAAI,SAAyB,EAC3D;AACH,EAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AACzC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAY,OAAO,KAAA;AACzB,EAAA,IACE,SAAA,KAAc,QAAA,IACd,SAAA,KAAc,QAAA,IACd,SAAA,KAAc,SAAA,IACd,SAAA,KAAc,QAAA,IACd,SAAA,KAAc,QAAA,IACd,SAAA,KAAc,UAAA,EACd;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAO,IAAI,IAAA,CAAK,KAAA,CAAM,OAAA,EAAS,CAAA;AAAA,EACjC;AAEA,EAAA,IAAI,cAAc,QAAA,EAAU;AAC1B,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,WAAA,GAAc,KAAA;AAEpB,EAAA,IAAI,uBAAA,CAAwB,WAAW,CAAA,EAAG;AACxC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,GAAA,CAAI,WAAW,CAAA;AACtC,EAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,IAAA,OAAO,SAAA;AAAA,EACT;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AAC9B,IAAA,MAAM,aAAwB,EAAC;AAC/B,IAAA,IAAA,CAAK,GAAA,CAAI,aAAa,UAAU,CAAA;AAEhC,IAAA,KAAA,MAAW,QAAQ,WAAA,EAAa;AAC9B,MAAA,UAAA,CAAW,IAAA,CAAK,iBAAA,CAAkB,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,IAC/C;AAEA,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,cAAA,CAAe,WAAW,CAAA;AACnD,EAAA,MAAM,eAAA,GAAkB,YAAY,WAAA,EAAa,IAAA;AACjD,EAAA,MAAM,2BACJ,WAAA,YAAuB,SAAA,IACvB,SAAA,KAAc,MAAA,CAAO,aACrB,SAAA,KAAc,IAAA;AAEhB,EAAA,IAAI,CAAC,wBAAA,EAA0B;AAC7B,IAAA,OAAO,KAAA;AAAA,EACT;AAKA,EAAA,IAAI,oBAAoB,wBAAA,EAA0B;AAChD,IAAA,MAAMA,YAAAA,GAAc,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA;AAC3C,IAAA,IAAA,CAAK,GAAA,CAAI,aAAaA,YAAW,CAAA;AACjC,IAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,EAAG;AAC1C,MAAAA,YAAAA,CAAY,GAAG,CAAA,GACb,GAAA,KAAQ,eAAA,GAAkB,OAAO,iBAAA,CAAkB,WAAA,CAAY,GAAG,CAAA,EAAG,IAAI,CAAA;AAAA,IAC7E;AACA,IAAA,OAAOA,YAAAA;AAAA,EACT;AAEA,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA;AAC3C,EAAA,IAAA,CAAK,GAAA,CAAI,aAAa,WAAW,CAAA;AAEjC,EAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,WAAW,CAAA,EAAG;AAC1C,IAAA,WAAA,CAAY,GAAG,CAAA,GAAI,iBAAA,CAAkB,WAAA,CAAY,GAAG,GAAG,IAAI,CAAA;AAAA,EAC7D;AAEA,EAAA,OAAO,WAAA;AACT;AAlFgB,MAAA,CAAA,iBAAA,EAAA,mBAAA,CAAA","file":"chunk-XU2DVWCP.js","sourcesContent":["import { Component } from \"./Component\";\nimport type { EntityId } from \"./types\";\n\nexport type ComponentClass<T extends Component> = new (...args: never[]) => T;\nexport type AnyComponent = Component;\n\nexport type WorldHistorySnapshot = {\n selectedEntityId: EntityId | null;\n entities: EntityId[];\n nextEntityId: number;\n components: Array<{\n componentType: ComponentClass<AnyComponent>;\n entries: Array<{\n entityId: EntityId;\n component: AnyComponent;\n }>;\n }>;\n};\n\nexport const DEBUG_CHANGE_IGNORED_SYSTEMS = new Set<string>([\n \"OrbitCameraSystem\",\n \"PhysicsSyncSystem\",\n]);\n\ntype NormalizeContext = {\n seen: WeakSet<object>;\n depth: number;\n maxDepth: number;\n};\n\nexport function normalizeDebugValue(\n value: unknown,\n ctx: NormalizeContext,\n): unknown {\n if (value === null || value === undefined) {\n return value;\n }\n\n const valueType = typeof value;\n if (\n valueType === \"string\" ||\n valueType === \"number\" ||\n valueType === \"boolean\"\n ) {\n return value;\n }\n\n if (valueType === \"function\") {\n const fn = value as (...args: unknown[]) => unknown;\n return `[Function:${fn.name || \"anonymous\"}]`;\n }\n\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n if (valueType !== \"object\") {\n return String(value);\n }\n\n const objectValue = value as Record<string, unknown>;\n\n // Typed arrays (e.g. a trimesh collider's vertex buffer) can hold millions of\n // indexed elements — enumerating them key-by-key throws V8's \"Too many\n // properties to enumerate\". Summarize them as leaves instead.\n if (ArrayBuffer.isView(value)) {\n const view = value as ArrayBufferView & { length?: number };\n return {\n __type: view.constructor?.name ?? \"TypedArray\",\n length: typeof view.length === \"number\" ? view.length : view.byteLength,\n };\n }\n if (value instanceof ArrayBuffer) {\n return { __type: \"ArrayBuffer\", byteLength: value.byteLength };\n }\n\n const constructorName =\n objectValue.constructor?.name && objectValue.constructor.name !== \"Object\"\n ? objectValue.constructor.name\n : null;\n\n if (constructorName === \"AnimationClip\") {\n return {\n __type: \"AnimationClip\",\n name: typeof objectValue.name === \"string\" ? objectValue.name : \"\",\n };\n }\n\n if (constructorName === \"AnimationStateMachine\") {\n const clipValue =\n objectValue.clip && typeof objectValue.clip === \"object\"\n ? (objectValue.clip as Record<string, unknown>)\n : null;\n\n return {\n __type: \"AnimationStateMachine\",\n name: typeof objectValue.name === \"string\" ? objectValue.name : \"\",\n loop: Boolean(objectValue.loop),\n isPlaying: Boolean(objectValue.isPlaying),\n isPaused: Boolean(objectValue.isPaused),\n clip: {\n __type: \"AnimationClip\",\n name: typeof clipValue?.name === \"string\" ? clipValue.name : \"\",\n },\n };\n }\n\n if (constructorName === \"AnimationComponent\") {\n const clips = Array.isArray(objectValue.clips)\n ? objectValue.clips\n .map((clip) => {\n if (!clip || typeof clip !== \"object\") {\n return null;\n }\n\n const clipValue = clip as Record<string, unknown>;\n return {\n __type: \"AnimationClip\",\n name: typeof clipValue.name === \"string\" ? clipValue.name : \"\",\n };\n })\n .filter((clip): clip is { __type: \"AnimationClip\"; name: string } => clip !== null)\n : [];\n\n const availableClips = Array.isArray(objectValue.availableClips)\n ? objectValue.availableClips.filter(\n (entry): entry is string => typeof entry === \"string\" && entry.length > 0,\n )\n : clips.map((clip) => clip.name).filter((name) => name.length > 0);\n\n const externalClipSources = Array.isArray(objectValue.externalClipSources)\n ? objectValue.externalClipSources.filter(\n (entry): entry is string => typeof entry === \"string\" && entry.length > 0,\n )\n : [];\n\n const states = Array.isArray(objectValue.states)\n ? objectValue.states\n .map((state) => {\n if (!state || typeof state !== \"object\") {\n return null;\n }\n\n const stateValue = state as Record<string, unknown>;\n const clipValue =\n stateValue.clip && typeof stateValue.clip === \"object\"\n ? (stateValue.clip as Record<string, unknown>)\n : null;\n\n const name = typeof stateValue.name === \"string\" ? stateValue.name : \"\";\n const clip = typeof clipValue?.name === \"string\" ? clipValue.name : \"\";\n if (!name || !clip) {\n return null;\n }\n\n return {\n name,\n clip,\n clipId:\n typeof stateValue.clipId === \"string\" && stateValue.clipId.length > 0\n ? stateValue.clipId\n : null,\n loop: Boolean(stateValue.loop),\n };\n })\n .filter(\n (\n state,\n ): state is {\n name: string;\n clip: string;\n clipId: string | null;\n loop: boolean;\n } => state !== null,\n )\n : [];\n\n const activeValue =\n objectValue.active && typeof objectValue.active === \"object\"\n ? (objectValue.active as Record<string, unknown>)\n : null;\n\n const activeStateName =\n typeof objectValue.activeStateName === \"string\"\n ? objectValue.activeStateName\n : typeof activeValue?.name === \"string\"\n ? activeValue.name\n : null;\n\n return {\n __type: \"AnimationComponent\",\n clips,\n availableClips,\n externalClipSources,\n states,\n activeStateName,\n paused: Boolean(objectValue.paused),\n reverse: Boolean(objectValue.reverse),\n timeScale:\n typeof objectValue.timeScale === \"number\" && Number.isFinite(objectValue.timeScale)\n ? objectValue.timeScale\n : 1,\n crossFadeDuration:\n typeof objectValue.crossFadeDuration === \"number\" &&\n Number.isFinite(objectValue.crossFadeDuration)\n ? Math.max(0, objectValue.crossFadeDuration)\n : 0,\n };\n }\n if (constructorName === \"InstanceSlotComponent\") {\n return {\n __type: \"InstanceSlotComponent\",\n groupEntityId:\n typeof objectValue.groupEntityId === \"number\"\n ? objectValue.groupEntityId\n : -1,\n slotIndex:\n typeof objectValue.slotIndex === \"number\"\n ? objectValue.slotIndex\n : 0,\n };\n }\n if (constructorName === \"InstancedMeshComponent\") {\n // Only serialize the authoring fields. The live `instancedMesh` Three.js\n // ref changes on every geometry rebuild and must not enter the debug\n // snapshot — doing so would cause WorldChangeDetectionSystem to flood\n // the undo history with spurious entries.\n const imCtx: NormalizeContext = {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n };\n return {\n __type: \"InstancedMeshComponent\",\n meshKind: typeof objectValue.meshKind === \"string\" ? objectValue.meshKind : \"cube\",\n modelPath: typeof objectValue.modelPath === \"string\" ? objectValue.modelPath : \"\",\n meshParameters: normalizeDebugValue(objectValue.meshParameters, imCtx),\n castShadow: Boolean(objectValue.castShadow),\n receiveShadow: Boolean(objectValue.receiveShadow),\n instanceEntityIds: Array.isArray(objectValue.instanceEntityIds)\n ? [...(objectValue.instanceEntityIds as number[])]\n : [],\n };\n }\n\n if (constructorName === \"PhysicsComponent\") {\n // `collider` Rapier references change every physics frame and must not\n // be included in the debug snapshot, otherwise the WorldChangeDetection-\n // System would detect a change every frame and flood the undo history.\n return {\n __type: \"PhysicsComponent\",\n values: normalizeDebugValue(objectValue.values, {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n }),\n };\n }\n\n if (constructorName === \"MaterialComponent\") {\n // Only serialize the authoring `values` state. The live Three.js\n // `material` / `materials` objects mutate after transparency is toggled\n // (shader recompilation flags, `needsUpdate`, etc.) and must not be\n // included in the debug snapshot — doing so causes the\n // WorldChangeDetectionSystem to detect a spurious change every frame.\n return {\n __type: \"MaterialComponent\",\n values: normalizeDebugValue(objectValue.values, {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n }),\n // Editor-managed material-asset linkage (plain strings/nulls).\n assetRefs: Array.isArray(objectValue.assetRefs)\n ? [...(objectValue.assetRefs as (string | null)[])]\n : [],\n };\n }\n\n if (constructorName === \"VideoComponent\") {\n // Only serialize `path` and `options`. The live runtime fields\n // (`object`, `videoElement`, `texture`, `material`, `audioNode`) change\n // during video load/playback and must not be included in the debug\n // snapshot — doing so causes WorldChangeDetectionSystem to detect a\n // spurious change on every frame while a video is loading or playing.\n return {\n __type: \"VideoComponent\",\n path: typeof objectValue.path === \"string\" ? objectValue.path : \"\",\n options: normalizeDebugValue(objectValue.options, {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n }),\n };\n }\n\n if (ctx.seen.has(objectValue)) {\n return \"[Circular]\";\n }\n\n if (ctx.depth >= ctx.maxDepth) {\n return constructorName\n ? `[MaxDepth:${constructorName}]`\n : \"[MaxDepth:Object]\";\n }\n\n if (objectValue.nodeType === 1 && typeof objectValue.tagName === \"string\") {\n return `[HTMLElement:${String(objectValue.tagName)}]`;\n }\n\n if (objectValue.isObject3D === true) {\n const position = objectValue.position as\n | { x?: number; y?: number; z?: number }\n | undefined;\n\n return {\n __type: \"Object3D\",\n objectType: objectValue.type,\n name: objectValue.name,\n uuid: objectValue.uuid,\n position:\n position &&\n typeof position.x === \"number\" &&\n typeof position.y === \"number\" &&\n typeof position.z === \"number\"\n ? {\n x: position.x,\n y: position.y,\n z: position.z,\n }\n : undefined,\n };\n }\n\n ctx.seen.add(objectValue);\n const nextContext: NormalizeContext = {\n seen: ctx.seen,\n depth: ctx.depth + 1,\n maxDepth: ctx.maxDepth,\n };\n\n if (Array.isArray(objectValue)) {\n return objectValue.map((item) => normalizeDebugValue(item, nextContext));\n }\n\n if (objectValue instanceof Map) {\n return {\n __type: \"Map\",\n entries: [...objectValue.entries()].map(([key, mapValue]) => [\n normalizeDebugValue(key, nextContext),\n normalizeDebugValue(mapValue, nextContext),\n ]),\n };\n }\n\n if (objectValue instanceof Set) {\n return {\n __type: \"Set\",\n values: [...objectValue.values()].map((setValue) =>\n normalizeDebugValue(setValue, nextContext),\n ),\n };\n }\n\n const normalized: Record<string, unknown> = {};\n const keys = Object.keys(objectValue).sort((a, b) => a.localeCompare(b));\n for (const key of keys) {\n normalized[key] = normalizeDebugValue(objectValue[key], nextContext);\n }\n\n return constructorName\n ? {\n __type: constructorName,\n ...normalized,\n }\n : normalized;\n}\n\nfunction shouldPreserveReference(value: object): boolean {\n const objectValue = value as Record<string, unknown>;\n\n if (objectValue.isObject3D === true) {\n return true;\n }\n\n if (objectValue.nodeType === 1 && typeof objectValue.tagName === \"string\") {\n return true;\n }\n\n return false;\n}\n\nexport function cloneHistoryValue<T>(\n value: T,\n seen: WeakMap<object, unknown> = new WeakMap<object, unknown>(),\n): T {\n if (value === null || value === undefined) {\n return value;\n }\n\n const valueType = typeof value;\n if (\n valueType === \"string\" ||\n valueType === \"number\" ||\n valueType === \"boolean\" ||\n valueType === \"bigint\" ||\n valueType === \"symbol\" ||\n valueType === \"function\"\n ) {\n return value;\n }\n\n if (value instanceof Date) {\n return new Date(value.getTime()) as T;\n }\n\n if (valueType !== \"object\") {\n return value;\n }\n\n const objectValue = value as Record<string, unknown>;\n\n if (shouldPreserveReference(objectValue)) {\n return value;\n }\n\n const seenValue = seen.get(objectValue);\n if (seenValue !== undefined) {\n return seenValue as T;\n }\n\n if (Array.isArray(objectValue)) {\n const cloneArray: unknown[] = [];\n seen.set(objectValue, cloneArray);\n\n for (const item of objectValue) {\n cloneArray.push(cloneHistoryValue(item, seen));\n }\n\n return cloneArray as T;\n }\n\n const prototype = Object.getPrototypeOf(objectValue);\n const constructorName = objectValue.constructor?.name;\n const shouldCloneWithPrototype =\n objectValue instanceof Component ||\n prototype === Object.prototype ||\n prototype === null;\n\n if (!shouldCloneWithPrototype) {\n return value;\n }\n\n // Null out live Three.js refs on known components so history snapshots never\n // carry a stale/disposed reference that would cause ghost meshes on undo/redo.\n // InstancedMeshSystem tracks its own mesh ref internally for cleanup.\n if (constructorName === \"InstancedMeshComponent\") {\n const cloneObject = Object.create(prototype) as Record<string, unknown>;\n seen.set(objectValue, cloneObject);\n for (const key of Object.keys(objectValue)) {\n cloneObject[key] =\n key === \"instancedMesh\" ? null : cloneHistoryValue(objectValue[key], seen);\n }\n return cloneObject as T;\n }\n\n const cloneObject = Object.create(prototype) as Record<string, unknown>;\n seen.set(objectValue, cloneObject);\n\n for (const key of Object.keys(objectValue)) {\n cloneObject[key] = cloneHistoryValue(objectValue[key], seen);\n }\n\n return cloneObject as T;\n}\n"]}
@@ -541,7 +541,8 @@ var DEFAULT_AUDIO_OPTIONS = {
541
541
  positional: false,
542
542
  refDistance: 1,
543
543
  distanceModel: "inverse",
544
- rolloffFactor: 1
544
+ rolloffFactor: 1,
545
+ bus: "sfx"
545
546
  };
546
547
  var _AudioComponent = class _AudioComponent extends Component {
547
548
  constructor(path, options = {}) {
@@ -597,6 +598,16 @@ __name(_AudioComponent, "AudioComponent");
597
598
  var AudioComponent = _AudioComponent;
598
599
 
599
600
  // core/components/Environment.ts
601
+ var DEFAULT_ENVIRONMENT_LIGHTING = {
602
+ envMapUrl: "",
603
+ envIntensity: 1,
604
+ envRotationY: 0,
605
+ useAsBackground: false,
606
+ backgroundBlurriness: 0,
607
+ backgroundIntensity: 1,
608
+ toneMapping: "none",
609
+ exposure: 1
610
+ };
600
611
  var DEFAULT_ENVIRONMENT_STATE = {
601
612
  skybox: {
602
613
  type: "none",
@@ -669,22 +680,62 @@ function toFiniteNumber(value, fallback) {
669
680
  return value;
670
681
  }
671
682
  __name(toFiniteNumber, "toFiniteNumber");
683
+ function normalizeImageProjection(value) {
684
+ return value === "screen" || value === "equirect" ? value : void 0;
685
+ }
686
+ __name(normalizeImageProjection, "normalizeImageProjection");
687
+ function normalizeToneMapping(value) {
688
+ if (value === "none" || value === "aces" || value === "agx" || value === "neutral") {
689
+ return value;
690
+ }
691
+ return DEFAULT_ENVIRONMENT_LIGHTING.toneMapping;
692
+ }
693
+ __name(normalizeToneMapping, "normalizeToneMapping");
694
+ function normalizeEnvironmentLighting(value) {
695
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
696
+ return void 0;
697
+ }
698
+ const lighting = value;
699
+ const defaults = DEFAULT_ENVIRONMENT_LIGHTING;
700
+ return {
701
+ envMapUrl: typeof lighting.envMapUrl === "string" ? lighting.envMapUrl : defaults.envMapUrl,
702
+ envIntensity: Math.max(0, toFiniteNumber(lighting.envIntensity, defaults.envIntensity)),
703
+ envRotationY: toFiniteNumber(lighting.envRotationY, defaults.envRotationY),
704
+ useAsBackground: typeof lighting.useAsBackground === "boolean" ? lighting.useAsBackground : defaults.useAsBackground,
705
+ backgroundBlurriness: Math.min(
706
+ 1,
707
+ Math.max(0, toFiniteNumber(lighting.backgroundBlurriness, defaults.backgroundBlurriness))
708
+ ),
709
+ backgroundIntensity: Math.max(
710
+ 0,
711
+ toFiniteNumber(lighting.backgroundIntensity, defaults.backgroundIntensity)
712
+ ),
713
+ toneMapping: normalizeToneMapping(lighting.toneMapping),
714
+ exposure: Math.max(0, toFiniteNumber(lighting.exposure, defaults.exposure))
715
+ };
716
+ }
717
+ __name(normalizeEnvironmentLighting, "normalizeEnvironmentLighting");
672
718
  var _Environment = class _Environment extends Component {
673
719
  constructor(values) {
674
720
  super();
675
721
  const skybox = values?.skybox;
676
722
  const fog = values?.fog;
677
723
  const gravity = values?.gravity;
724
+ const skyboxState = {
725
+ type: normalizeSkyboxType(skybox?.type),
726
+ color: typeof skybox?.color === "string" ? skybox.color : DEFAULT_ENVIRONMENT_STATE.skybox.color,
727
+ imageUrl: typeof skybox?.imageUrl === "string" ? skybox.imageUrl : DEFAULT_ENVIRONMENT_STATE.skybox.imageUrl,
728
+ gradient: {
729
+ colors: normalizeColors(skybox?.gradient?.colors),
730
+ effect: normalizeGradientEffect(skybox?.gradient?.effect)
731
+ }
732
+ };
733
+ const imageProjection = normalizeImageProjection(skybox?.imageProjection);
734
+ if (imageProjection) {
735
+ skyboxState.imageProjection = imageProjection;
736
+ }
678
737
  this.values = {
679
- skybox: {
680
- type: normalizeSkyboxType(skybox?.type),
681
- color: typeof skybox?.color === "string" ? skybox.color : DEFAULT_ENVIRONMENT_STATE.skybox.color,
682
- imageUrl: typeof skybox?.imageUrl === "string" ? skybox.imageUrl : DEFAULT_ENVIRONMENT_STATE.skybox.imageUrl,
683
- gradient: {
684
- colors: normalizeColors(skybox?.gradient?.colors),
685
- effect: normalizeGradientEffect(skybox?.gradient?.effect)
686
- }
687
- },
738
+ skybox: skyboxState,
688
739
  fog: {
689
740
  type: normalizeFogType(fog?.type),
690
741
  color: typeof fog?.color === "string" ? fog.color : DEFAULT_ENVIRONMENT_STATE.fog.color,
@@ -715,6 +766,10 @@ var _Environment = class _Environment extends Component {
715
766
  DEFAULT_ENVIRONMENT_STATE.fixedTimeStep
716
767
  )
717
768
  };
769
+ const lighting = normalizeEnvironmentLighting(values?.lighting);
770
+ if (lighting) {
771
+ this.values.lighting = lighting;
772
+ }
718
773
  }
719
774
  };
720
775
  __name(_Environment, "Environment");
@@ -1582,11 +1637,32 @@ __name(_MeshComponent, "MeshComponent");
1582
1637
  var MeshComponent = _MeshComponent;
1583
1638
 
1584
1639
  // core/components/Model.ts
1640
+ var MODEL_NO_PATH_MESSAGE = "No model path set.";
1641
+ function setModelLoadState(component, state, error) {
1642
+ Object.defineProperty(component, "loadState", {
1643
+ value: state,
1644
+ writable: true,
1645
+ configurable: true,
1646
+ enumerable: false
1647
+ });
1648
+ Object.defineProperty(component, "loadError", {
1649
+ value: state === "error" ? error ?? "Failed to load model." : void 0,
1650
+ writable: true,
1651
+ configurable: true,
1652
+ enumerable: false
1653
+ });
1654
+ }
1655
+ __name(setModelLoadState, "setModelLoadState");
1585
1656
  var _ModelComponent = class _ModelComponent extends Component {
1586
1657
  constructor(path) {
1587
1658
  super();
1588
1659
  this.path = path;
1589
1660
  this.object = null;
1661
+ if (path) {
1662
+ setModelLoadState(this, "loading");
1663
+ } else {
1664
+ setModelLoadState(this, "error", MODEL_NO_PATH_MESSAGE);
1665
+ }
1590
1666
  }
1591
1667
  };
1592
1668
  __name(_ModelComponent, "ModelComponent");
@@ -2005,6 +2081,213 @@ var _XRAnchorComponent = class _XRAnchorComponent extends Component {
2005
2081
  __name(_XRAnchorComponent, "XRAnchorComponent");
2006
2082
  var XRAnchorComponent = _XRAnchorComponent;
2007
2083
 
2084
+ // core/components/BoneAttachment.ts
2085
+ var _BoneAttachmentComponent = class _BoneAttachmentComponent extends Component {
2086
+ constructor(options) {
2087
+ super();
2088
+ this.bone = options?.bone ?? "";
2089
+ this.humanoid = options?.humanoid ?? null;
2090
+ this.compensateScale = options?.compensateScale ?? true;
2091
+ this.enabled = options?.enabled ?? true;
2092
+ }
2093
+ };
2094
+ __name(_BoneAttachmentComponent, "BoneAttachmentComponent");
2095
+ var BoneAttachmentComponent = _BoneAttachmentComponent;
2096
+
2097
+ // core/components/Network.ts
2098
+ var _NetworkIdentityComponent = class _NetworkIdentityComponent extends Component {
2099
+ constructor() {
2100
+ super();
2101
+ for (const key of ["networkId", "owner"]) {
2102
+ Object.defineProperty(this, key, {
2103
+ value: "",
2104
+ writable: true,
2105
+ configurable: true,
2106
+ enumerable: false
2107
+ });
2108
+ }
2109
+ }
2110
+ };
2111
+ __name(_NetworkIdentityComponent, "NetworkIdentityComponent");
2112
+ var NetworkIdentityComponent = _NetworkIdentityComponent;
2113
+ var _NetworkTransformComponent = class _NetworkTransformComponent extends Component {
2114
+ constructor(options = {}) {
2115
+ super();
2116
+ this.enabled = true;
2117
+ /** Updates per second the owner sends. */
2118
+ this.sendRate = 20;
2119
+ /** How far in the past others see it, in ms. More is smoother; less is more current. */
2120
+ this.interpolationMs = 100;
2121
+ this.syncRotation = true;
2122
+ /** A jump longer than this (m) snaps instead of sliding, for respawns and teleports. */
2123
+ this.teleportDistance = 5;
2124
+ Object.assign(this, options);
2125
+ }
2126
+ };
2127
+ __name(_NetworkTransformComponent, "NetworkTransformComponent");
2128
+ var NetworkTransformComponent = _NetworkTransformComponent;
2129
+ var _NetworkedPropsComponent = class _NetworkedPropsComponent extends Component {
2130
+ constructor(values = {}) {
2131
+ super();
2132
+ this.values = values;
2133
+ }
2134
+ };
2135
+ __name(_NetworkedPropsComponent, "NetworkedPropsComponent");
2136
+ var NetworkedPropsComponent = _NetworkedPropsComponent;
2137
+ var _NetworkSpawnerComponent = class _NetworkSpawnerComponent extends Component {
2138
+ constructor(playerPrefab = "", spawnRadius = 2) {
2139
+ super();
2140
+ this.playerPrefab = playerPrefab;
2141
+ this.spawnRadius = spawnRadius;
2142
+ }
2143
+ };
2144
+ __name(_NetworkSpawnerComponent, "NetworkSpawnerComponent");
2145
+ var NetworkSpawnerComponent = _NetworkSpawnerComponent;
2146
+
2147
+ // core/components/IK.ts
2148
+ function normalizeIKChain(chain) {
2149
+ const weight = typeof chain.weight === "number" && Number.isFinite(chain.weight) ? chain.weight : 1;
2150
+ return {
2151
+ limb: chain.limb,
2152
+ target: typeof chain.target === "number" ? chain.target : null,
2153
+ pole: typeof chain.pole === "number" ? chain.pole : null,
2154
+ weight: Math.min(1, Math.max(0, weight)),
2155
+ matchRotation: chain.matchRotation ?? false,
2156
+ enabled: chain.enabled ?? true
2157
+ };
2158
+ }
2159
+ __name(normalizeIKChain, "normalizeIKChain");
2160
+ var _IKComponent = class _IKComponent extends Component {
2161
+ constructor(options) {
2162
+ super();
2163
+ this.chains = (options?.chains ?? []).map(normalizeIKChain);
2164
+ this.enabled = options?.enabled ?? true;
2165
+ }
2166
+ };
2167
+ __name(_IKComponent, "IKComponent");
2168
+ var IKComponent = _IKComponent;
2169
+
2170
+ // core/ui/uiStyle.ts
2171
+ var isRecord = /* @__PURE__ */ __name((value) => typeof value === "object" && value !== null && !Array.isArray(value), "isRecord");
2172
+ var finite = /* @__PURE__ */ __name((value) => typeof value === "number" && Number.isFinite(value), "finite");
2173
+ var nonEmpty = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length > 0, "nonEmpty");
2174
+ function normalizeStops(value) {
2175
+ if (!Array.isArray(value)) return null;
2176
+ const stops = [];
2177
+ for (const stop of value) {
2178
+ if (isRecord(stop) && finite(stop.at) && nonEmpty(stop.color)) {
2179
+ stops.push({ at: Math.min(1, Math.max(0, stop.at)), color: stop.color });
2180
+ }
2181
+ }
2182
+ return stops.length >= 2 ? stops : null;
2183
+ }
2184
+ __name(normalizeStops, "normalizeStops");
2185
+ function normalizePaint(value) {
2186
+ if (!isRecord(value)) return void 0;
2187
+ if (value.kind === "solid" && nonEmpty(value.color)) {
2188
+ return { kind: "solid", color: value.color };
2189
+ }
2190
+ if (value.kind === "linear") {
2191
+ const stops = normalizeStops(value.stops);
2192
+ if (stops) {
2193
+ return {
2194
+ kind: "linear",
2195
+ angle: finite(value.angle) ? value.angle : 180,
2196
+ stops
2197
+ };
2198
+ }
2199
+ }
2200
+ if (value.kind === "radial") {
2201
+ const stops = normalizeStops(value.stops);
2202
+ if (stops) return { kind: "radial", stops };
2203
+ }
2204
+ if (value.kind === "image" && nonEmpty(value.src)) {
2205
+ const fit = value.fit === "contain" || value.fit === "fill" ? value.fit : "cover";
2206
+ return {
2207
+ kind: "image",
2208
+ src: value.src,
2209
+ fit,
2210
+ ...nonEmpty(value.tint) ? { tint: value.tint } : {}
2211
+ };
2212
+ }
2213
+ return void 0;
2214
+ }
2215
+ __name(normalizePaint, "normalizePaint");
2216
+ function normalizeShadow(value) {
2217
+ if (!isRecord(value) || !nonEmpty(value.color)) return void 0;
2218
+ return {
2219
+ x: finite(value.x) ? value.x : 0,
2220
+ y: finite(value.y) ? value.y : 0,
2221
+ blur: finite(value.blur) ? Math.max(0, value.blur) : 0,
2222
+ color: value.color
2223
+ };
2224
+ }
2225
+ __name(normalizeShadow, "normalizeShadow");
2226
+ function normalizeText(value) {
2227
+ if (!isRecord(value)) return void 0;
2228
+ const text = {};
2229
+ if (nonEmpty(value.font)) text.font = value.font;
2230
+ if (finite(value.weight)) text.weight = value.weight;
2231
+ if (finite(value.tracking)) text.tracking = value.tracking;
2232
+ if (value.transform === "upper" || value.transform === "lower") {
2233
+ text.transform = value.transform;
2234
+ }
2235
+ const paint = normalizePaint(value.paint);
2236
+ if (paint) text.paint = paint;
2237
+ if (finite(value.maxLines) && value.maxLines >= 1) {
2238
+ text.maxLines = Math.floor(value.maxLines);
2239
+ }
2240
+ const shadow = normalizeShadow(value.shadow);
2241
+ if (shadow) text.shadow = shadow;
2242
+ return Object.keys(text).length > 0 ? text : void 0;
2243
+ }
2244
+ __name(normalizeText, "normalizeText");
2245
+ function normalizeUiStyle(value) {
2246
+ if (!isRecord(value)) return void 0;
2247
+ const style = {};
2248
+ const fill = normalizePaint(value.fill);
2249
+ if (fill) style.fill = fill;
2250
+ if (isRecord(value.border) && finite(value.border.width)) {
2251
+ const paint = normalizePaint(value.border.paint);
2252
+ if (paint) {
2253
+ style.border = { width: Math.max(0, value.border.width), paint };
2254
+ }
2255
+ }
2256
+ if (finite(value.radius)) {
2257
+ style.radius = Math.max(0, value.radius);
2258
+ } else if (Array.isArray(value.radius) && value.radius.length === 4 && value.radius.every(finite)) {
2259
+ style.radius = value.radius.map((r) => Math.max(0, r));
2260
+ }
2261
+ if (Array.isArray(value.shadows)) {
2262
+ const shadows = value.shadows.map(normalizeShadow).filter((s) => !!s);
2263
+ if (shadows.length > 0) style.shadows = shadows;
2264
+ }
2265
+ if (isRecord(value.edge) && finite(value.edge.width) && nonEmpty(value.edge.color)) {
2266
+ style.edge = {
2267
+ width: Math.max(0, value.edge.width),
2268
+ color: value.edge.color
2269
+ };
2270
+ }
2271
+ if (finite(value.opacity)) {
2272
+ style.opacity = Math.min(1, Math.max(0, value.opacity));
2273
+ }
2274
+ const text = normalizeText(value.text);
2275
+ if (text) style.text = text;
2276
+ return Object.keys(style).length > 0 ? style : void 0;
2277
+ }
2278
+ __name(normalizeUiStyle, "normalizeUiStyle");
2279
+ function normalizeUiTokens(value) {
2280
+ if (!isRecord(value)) return void 0;
2281
+ const tokens = {};
2282
+ for (const [key, token] of Object.entries(value)) {
2283
+ if (nonEmpty(token) && key.length > 0 && !key.includes("/")) {
2284
+ tokens[key] = token;
2285
+ }
2286
+ }
2287
+ return Object.keys(tokens).length > 0 ? tokens : void 0;
2288
+ }
2289
+ __name(normalizeUiTokens, "normalizeUiTokens");
2290
+
2008
2291
  // core/components/UIPanel.ts
2009
2292
  var _UIPanelComponent = class _UIPanelComponent extends Component {
2010
2293
  constructor(options) {
@@ -2018,6 +2301,10 @@ var _UIPanelComponent = class _UIPanelComponent extends Component {
2018
2301
  this.borderColor = options?.borderColor ?? "#333333";
2019
2302
  this.pixelDensity = options?.pixelDensity ?? 1024;
2020
2303
  this.follow = options?.follow ?? "world";
2304
+ const style = normalizeUiStyle(options?.style);
2305
+ if (style) this.style = style;
2306
+ const tokens = normalizeUiTokens(options?.tokens);
2307
+ if (tokens) this.tokens = tokens;
2021
2308
  }
2022
2309
  };
2023
2310
  __name(_UIPanelComponent, "UIPanelComponent");
@@ -2037,6 +2324,11 @@ var _UITextComponent = class _UITextComponent extends Component {
2037
2324
  this.valign = options?.valign ?? "middle";
2038
2325
  this.lineHeight = options?.lineHeight ?? 1.25;
2039
2326
  this.padding = options?.padding ?? 0.01;
2327
+ if (options?.pixelDensity !== void 0) {
2328
+ this.pixelDensity = options.pixelDensity;
2329
+ }
2330
+ const style = normalizeUiStyle(options?.style);
2331
+ if (style) this.style = style;
2040
2332
  }
2041
2333
  };
2042
2334
  __name(_UITextComponent, "UITextComponent");
@@ -2058,6 +2350,13 @@ var _UIButtonComponent = class _UIButtonComponent extends Component {
2058
2350
  this.cornerRadius = options?.cornerRadius ?? 0.02;
2059
2351
  this.borderWidth = options?.borderWidth ?? 2e-3;
2060
2352
  this.borderColor = options?.borderColor ?? "#3a3a3a";
2353
+ if (options?.pixelDensity !== void 0) {
2354
+ this.pixelDensity = options.pixelDensity;
2355
+ }
2356
+ const style = normalizeUiStyle(options?.style);
2357
+ if (style) this.style = style;
2358
+ if (options?.icon) this.icon = options.icon;
2359
+ if (options?.iconPosition) this.iconPosition = options.iconPosition;
2061
2360
  }
2062
2361
  };
2063
2362
  __name(_UIButtonComponent, "UIButtonComponent");
@@ -2074,6 +2373,12 @@ var _UIToggleComponent = class _UIToggleComponent extends Component {
2074
2373
  this.trackColor = options?.trackColor ?? "#2a2a2a";
2075
2374
  this.accentColor = options?.accentColor ?? "#ff6b35";
2076
2375
  this.knobColor = options?.knobColor ?? "#ffffff";
2376
+ if (options?.pixelDensity !== void 0) {
2377
+ this.pixelDensity = options.pixelDensity;
2378
+ }
2379
+ const style = normalizeUiStyle(options?.style);
2380
+ if (style) this.style = style;
2381
+ if (options?.variant) this.variant = options.variant;
2077
2382
  }
2078
2383
  };
2079
2384
  __name(_UIToggleComponent, "UIToggleComponent");
@@ -2094,6 +2399,14 @@ var _UISliderComponent = class _UISliderComponent extends Component {
2094
2399
  this.trackColor = options?.trackColor ?? "#2a2a2a";
2095
2400
  this.accentColor = options?.accentColor ?? "#ff6b35";
2096
2401
  this.knobColor = options?.knobColor ?? "#ffffff";
2402
+ if (options?.pixelDensity !== void 0) {
2403
+ this.pixelDensity = options.pixelDensity;
2404
+ }
2405
+ const style = normalizeUiStyle(options?.style);
2406
+ if (style) this.style = style;
2407
+ if (options?.variant) this.variant = options.variant;
2408
+ if (options?.step !== void 0) this.step = options.step;
2409
+ if (options?.readOnly !== void 0) this.readOnly = options.readOnly;
2097
2410
  }
2098
2411
  };
2099
2412
  __name(_UISliderComponent, "UISliderComponent");
@@ -2226,8 +2539,10 @@ var XRHandPoseComponent = _XRHandPoseComponent;
2226
2539
 
2227
2540
  exports.AnimationComponent = AnimationComponent;
2228
2541
  exports.AudioComponent = AudioComponent;
2542
+ exports.BoneAttachmentComponent = BoneAttachmentComponent;
2229
2543
  exports.CameraComponent = CameraComponent;
2230
2544
  exports.DEFAULT_COLLIDER_STATE = DEFAULT_COLLIDER_STATE;
2545
+ exports.DEFAULT_ENVIRONMENT_LIGHTING = DEFAULT_ENVIRONMENT_LIGHTING;
2231
2546
  exports.DEFAULT_ENVIRONMENT_STATE = DEFAULT_ENVIRONMENT_STATE;
2232
2547
  exports.DEFAULT_INSTANCED_MESH_PARAMETERS = DEFAULT_INSTANCED_MESH_PARAMETERS;
2233
2548
  exports.DEFAULT_INSTANCE_TRANSFORM = DEFAULT_INSTANCE_TRANSFORM;
@@ -2239,17 +2554,23 @@ exports.DEFAULT_POSTPROCESSING_STATE = DEFAULT_POSTPROCESSING_STATE;
2239
2554
  exports.DEFAULT_RIGIDBODY_STATE = DEFAULT_RIGIDBODY_STATE;
2240
2555
  exports.EntityType = EntityType;
2241
2556
  exports.Environment = Environment;
2557
+ exports.IKComponent = IKComponent;
2242
2558
  exports.ImageComponent = ImageComponent;
2243
2559
  exports.ImageTarget = ImageTarget;
2244
2560
  exports.ImageTargetAnchor = ImageTargetAnchor;
2245
2561
  exports.InstanceSlotComponent = InstanceSlotComponent;
2246
2562
  exports.InstancedMeshComponent = InstancedMeshComponent;
2247
2563
  exports.LightComponent = LightComponent;
2564
+ exports.MODEL_NO_PATH_MESSAGE = MODEL_NO_PATH_MESSAGE;
2248
2565
  exports.MaterialComponent = MaterialComponent;
2249
2566
  exports.MeshComponent = MeshComponent;
2250
2567
  exports.MeshGeometryComponent = MeshGeometryComponent;
2251
2568
  exports.ModelComponent = ModelComponent;
2252
2569
  exports.Name = Name;
2570
+ exports.NetworkIdentityComponent = NetworkIdentityComponent;
2571
+ exports.NetworkSpawnerComponent = NetworkSpawnerComponent;
2572
+ exports.NetworkTransformComponent = NetworkTransformComponent;
2573
+ exports.NetworkedPropsComponent = NetworkedPropsComponent;
2253
2574
  exports.Object3DRef = Object3DRef;
2254
2575
  exports.ParentId = ParentId;
2255
2576
  exports.PhysicsComponent = PhysicsComponent;
@@ -2280,7 +2601,10 @@ exports.createAttachPoint = createAttachPoint;
2280
2601
  exports.createHandPoseEntry = createHandPoseEntry;
2281
2602
  exports.defaultMaterialValue = defaultMaterialValue;
2282
2603
  exports.handPoseDefinitionFor = handPoseDefinitionFor;
2604
+ exports.normalizeEnvironmentLighting = normalizeEnvironmentLighting;
2605
+ exports.normalizeIKChain = normalizeIKChain;
2283
2606
  exports.normalizePhysicsState = normalizePhysicsState;
2607
+ exports.setModelLoadState = setModelLoadState;
2284
2608
  exports.setPhysicsLiveRef = setPhysicsLiveRef;
2285
2609
  //# sourceMappingURL=index.cjs.map
2286
2610
  //# sourceMappingURL=index.cjs.map