@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
@@ -1,4 +1,4 @@
1
- import { k as EcsSystem, l as World, I as InputSystem, r as EntityId } from './System-V_mv07le.js';
1
+ import { K as EcsSystem, W as World, E as EcsRenderer, R as RenderBackend, ai as InputSystem, M as EntityId } from './System-DPMAW30g.js';
2
2
  import * as THREE from 'three';
3
3
  import { m as XrHandJoints, r as XrHandShape } from './handPose-DlcTtqgx.js';
4
4
 
@@ -22,33 +22,135 @@ declare class ObjectVisibilitySystem implements EcsSystem {
22
22
  update(world: World): void;
23
23
  }
24
24
 
25
+ /**
26
+ * Applies the scene's {@link Environment} component to the three.js scene:
27
+ * skybox, fog, and (when `values.lighting` is present) image-based lighting,
28
+ * tone mapping and exposure.
29
+ *
30
+ * Each part is dirty-checked on its own, so animating `lighting.envIntensity`
31
+ * every frame does not rebuild the skybox texture.
32
+ *
33
+ * Runs in the editor and at runtime. While an XR session composites over the
34
+ * real world (`World.isXrPassthrough()`) the background is withheld; lighting
35
+ * and fog still apply.
36
+ *
37
+ * On WebGL the environment map is PMREM-prefiltered here. On WebGPU
38
+ * (`World.getRendererKind() === "webgpu"`) the equirect texture is assigned
39
+ * to `scene.environment` as is and the renderer prefilters it.
40
+ *
41
+ * @category Systems
42
+ */
25
43
  declare class EnvironmentSyncSystem implements EcsSystem {
26
44
  private readonly scene;
27
45
  private readonly textureLoader;
28
- private signature;
46
+ /** `true` once an Environment entity has been seen (drives the reset path). */
47
+ private hasEnvironment;
48
+ private skyboxSignature;
49
+ private fogSignature;
50
+ private lightingSignature;
29
51
  private activeTexture;
52
+ /** Load key (`url`, or `equirect|url`) of the current/pending image skybox. */
30
53
  private pendingImageUrl;
54
+ /** What the skybox wants as the background, before passthrough/env overrides. */
55
+ private skyboxBackground;
31
56
  /** Whether the skybox is currently withheld because passthrough is on. */
32
57
  private passthroughSuppressed;
58
+ private renderer;
59
+ private lighting;
60
+ /** URL of the environment map currently loaded or loading. */
61
+ private envUrl;
62
+ /** Incremented per env-map load; a load whose token is stale is discarded. */
63
+ private envLoadToken;
64
+ /** Equirect source texture of the current environment map. */
65
+ private envSource;
66
+ /**
67
+ * PMREM render target built from {@link envSource} (WebGL only; on WebGPU
68
+ * the renderer prefilters `scene.environment` itself and this stays null).
69
+ */
70
+ private envTarget;
71
+ private sceneLightingBaseline;
72
+ private sceneBackgroundBaseline;
73
+ private disposed;
33
74
  constructor(scene: THREE.Scene);
34
75
  private disposeActiveTexture;
76
+ /** Write the background the current state calls for. */
77
+ private commitBackground;
78
+ private restoreBackgroundBaseline;
79
+ private setSkyboxBackground;
35
80
  private applySkybox;
36
81
  private applyFog;
82
+ private disposeEnvResources;
83
+ /** Drop the environment map (any in-flight load is abandoned). */
84
+ private clearEnvMap;
85
+ /**
86
+ * Undo everything the lighting block wrote to the scene and renderer.
87
+ * `commit` re-applies the background afterwards (off during teardown, which
88
+ * must not touch the background).
89
+ */
90
+ private clearLighting;
91
+ /**
92
+ * PMREM-filter an equirect texture. `null` when no usable renderer exists,
93
+ * or on WebGPU: there the WebGL `PMREMGenerator` would silently produce a
94
+ * black map, while `WebGPURenderer` prefilters an equirect
95
+ * `scene.environment` (and a blurred background) by itself.
96
+ */
97
+ private buildPmrem;
98
+ private loadEnvMap;
99
+ private applyEnvironmentParams;
100
+ private applyLighting;
101
+ private resetAll;
37
102
  update(world: World): void;
38
103
  dispose(): void;
39
104
  }
40
105
 
106
+ /**
107
+ * Builds the post-processing chain from the scene's {@link Postprocessing}
108
+ * component and hands it to `RenderSystem` through `scene.userData`:
109
+ *
110
+ * - `ecsPostprocessingComposer` — the built chain (`render()`, `dispose()`,
111
+ * optional `setSize()` / `setPixelRatio()`). On WebGL it is the
112
+ * `EffectComposer` itself.
113
+ * - `ecsPostprocessingComposerActive` — `true` while `RenderSystem` should
114
+ * render through it.
115
+ * - `ecsPostprocessing` — the values the chain was built from.
116
+ *
117
+ * The chain itself comes from the world's render backend: an
118
+ * `EffectComposer` on WebGL (pass order: scene render → depth of field →
119
+ * bloom → vignette → hue/saturation → sepia → film noise → dot screen →
120
+ * SSAO → glitch → chromatic aberration → pixelation → SMAA → output), a
121
+ * `RenderPipeline` of TSL nodes with `webgpuBackend`. A backend that can
122
+ * update a chain in place (the WebGPU one) skips the rebuild when only
123
+ * parameters changed.
124
+ *
125
+ * The `toneMapping` effect has no pass of its own: when active it asks the
126
+ * renderer for tone mapping, which the chain's output step then applies. See
127
+ * `Environment.values.lighting.toneMapping` for how the two combine.
128
+ *
129
+ * @category Systems
130
+ */
41
131
  declare class PostprocessingSyncSystem implements EcsSystem {
42
132
  private readonly renderer;
43
133
  private readonly scene;
44
134
  private readonly camera;
135
+ private readonly backend;
45
136
  private signature;
137
+ /** Deep copy of the values the current chain reflects. */
138
+ private appliedValues;
46
139
  private composer;
47
140
  private composerEnabled;
48
- constructor(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera);
141
+ /**
142
+ * @param backend - Builds the chain. When omitted, the world's backend
143
+ * (`world.getRenderBackend()`) is used.
144
+ */
145
+ constructor(renderer: EcsRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera, backend?: RenderBackend);
49
146
  private setComposerEnabled;
50
147
  private disposeComposer;
148
+ /** Ask the renderer for tone mapping while the effect is active. */
149
+ private applyToneMapping;
150
+ private resolveBackend;
51
151
  private buildComposer;
152
+ /** Update the existing chain in place; `false` when it must be rebuilt. */
153
+ private tryUpdateInPlace;
52
154
  update(world: World): void;
53
155
  dispose(): void;
54
156
  }
@@ -132,6 +234,20 @@ declare class InstancedMeshSystem implements EcsSystem {
132
234
  /** Resolves a script URL to its ES module namespace. */
133
235
  type ModuleLoader = (scriptUrl: string) => Promise<Record<string, unknown>>;
134
236
 
237
+ /**
238
+ * Seconds a Behaviour waits after an error (load, `init()` or `update()`)
239
+ * before it is re-initialised. Without the wait a script that throws every
240
+ * frame was torn down and rebuilt every frame.
241
+ */
242
+ declare const DEFAULT_SCRIPT_ERROR_RETRY_DELAY = 1;
243
+ /** Options for {@link ScriptBehaviourSystem}. */
244
+ type ScriptBehaviourSystemOptions = {
245
+ /**
246
+ * Seconds to wait after a script error before re-initialising the script.
247
+ * Default {@link DEFAULT_SCRIPT_ERROR_RETRY_DELAY}.
248
+ */
249
+ errorRetryDelay?: number;
250
+ };
135
251
  /**
136
252
  * Optional context that enables raycast-based onSelect / onDeselect dispatch.
137
253
  * When provided, pointer/touch taps on the canvas fire a raycast against the
@@ -148,6 +264,11 @@ declare class ScriptBehaviourSystem implements EcsSystem {
148
264
  private instances;
149
265
  private loading;
150
266
  private readonly moduleLoader;
267
+ private readonly errorRetryDelay;
268
+ /** Seconds of world time this system has seen (sum of `deltaTime`). */
269
+ private clock;
270
+ /** Instance key → clock time before which a failed script is not retried. */
271
+ private retryAt;
151
272
  private readonly selectionCtx;
152
273
  private readonly raycaster;
153
274
  private readonly ndcPointer;
@@ -155,7 +276,7 @@ declare class ScriptBehaviourSystem implements EcsSystem {
155
276
  private pendingEntityId;
156
277
  private pointerDownPos;
157
278
  private static readonly CLICK_THRESHOLD;
158
- constructor(moduleLoader?: ModuleLoader, selectionContext?: SelectionContext);
279
+ constructor(moduleLoader?: ModuleLoader, selectionContext?: SelectionContext, options?: ScriptBehaviourSystemOptions);
159
280
  /** Walk up the object hierarchy to find the nearest userData.entityId. */
160
281
  private resolveEntityId;
161
282
  /** Convert client (screen) coordinates to normalised device coordinates. */
@@ -170,6 +291,9 @@ declare class ScriptBehaviourSystem implements EcsSystem {
170
291
  * onSelect() on all behaviours of the newly selected entity.
171
292
  */
172
293
  private applySelection;
294
+ private reportRecordError;
295
+ /** Hold a failed script back for {@link errorRetryDelay} seconds. */
296
+ private scheduleRetry;
173
297
  update(world: World, deltaTime: number): void;
174
298
  dispose(world: World): void;
175
299
  private loadBehaviour;
@@ -195,6 +319,8 @@ declare class ScriptObjectSystem implements EcsSystem {
195
319
  private loading;
196
320
  /** Bumped by invalidate*() so in-flight loads that predate it are discarded. */
197
321
  private epoch;
322
+ /** World seen by the last update(), so invalidate*() can reset error dedupe. */
323
+ private lastWorld;
198
324
  constructor(moduleLoader?: ModuleLoader);
199
325
  update(world: World, deltaTime: number): void;
200
326
  private loadScriptObject;
@@ -208,41 +334,6 @@ declare class ScriptObjectSystem implements EcsSystem {
208
334
  dispose(world: World): void;
209
335
  }
210
336
 
211
- /**
212
- * Reconciles `AudioComponent` state with the underlying THREE.js audio objects
213
- * each frame.
214
- *
215
- * **Playback** — drives `play()`, `pause()`, and `stop()` on the THREE.js
216
- * audio node based on the `isPlaying` / `isPaused` flags set by
217
- * `AudioComponent.play()`, `.pause()`, and `.stop()`.
218
- *
219
- * **Option sync** — detects changes to `loop`, `pitch`, `volume`,
220
- * `refDistance`, `distanceModel`, and `rolloffFactor` and applies them live.
221
- * Changes take effect on the next frame, so scripts and inspector edits during
222
- * runtime are reflected without reloading the scene.
223
- *
224
- * Only active in **preview** mode (`isEditor: true` makes every update a
225
- * no-op so the editor is unaffected).
226
- *
227
- * @category Systems
228
- */
229
- declare class AudioSystem implements EcsSystem {
230
- private readonly isEditor;
231
- /** THREE.js `isPlaying` state captured at the end of the previous frame. */
232
- private readonly prevPlayingState;
233
- /** Snapshot of options applied in the previous frame, for change detection. */
234
- private readonly prevOptions;
235
- /** Tracks entities that were stopped due to invisibility. */
236
- private readonly stoppedDueToInvisibility;
237
- constructor({ isEditor }?: {
238
- isEditor?: boolean;
239
- });
240
- update(world: World, _deltaTime: number): void;
241
- /** Apply any changed options from the component to the THREE.js audio node. */
242
- private _syncOptions;
243
- dispose(_world: World): void;
244
- }
245
-
246
337
  /**
247
338
  * Reconciles `VideoComponent` state with the underlying HTML video element
248
339
  * and THREE.js mesh/material each frame.
@@ -252,8 +343,10 @@ declare class AudioSystem implements EcsSystem {
252
343
  * by `VideoComponent.play()`, `.pause()`, and `.stop()`.
253
344
  *
254
345
  * **Option sync** — detects changes to `loop`, `volume`, `width`, `height`,
255
- * and green-screen shader uniforms (`backgroundColor`, `similarity`,
256
- * `smoothness`, `spill`) and applies them live without a scene reload.
346
+ * and green-screen keying (`backgroundColor`, `similarity`, `smoothness`,
347
+ * `spill`) and applies them live without a scene reload. The keying material
348
+ * belongs to the world's render backend (GLSL on WebGL, TSL with
349
+ * `webgpuBackend`), which updates it.
257
350
  *
258
351
  * Only active in **preview** mode (`isEditor: true` makes every update a
259
352
  * no-op so the editor is unaffected).
@@ -830,7 +923,8 @@ declare class UIInteractionSystem implements EcsSystem {
830
923
  private readonly inputSystem;
831
924
  private readonly xrPresses;
832
925
  private mousePress;
833
- private mouseHover;
926
+ /** What each pointer is on. Two hands can rest on one widget. */
927
+ private readonly hovers;
834
928
  /** entityId → seconds of pressed-tint left to display. */
835
929
  private readonly tintFloors;
836
930
  private readonly tinted;
@@ -845,6 +939,8 @@ declare class UIInteractionSystem implements EcsSystem {
845
939
  });
846
940
  update(world: World, deltaTime?: number): void;
847
941
  private updateXr;
942
+ /** A transient source leaves with no select edge to clear its hover. */
943
+ private dropGoneXrHovers;
848
944
  private updateMouse;
849
945
  private raycastMouse;
850
946
  private widgetKind;
@@ -862,6 +958,9 @@ declare class UIInteractionSystem implements EcsSystem {
862
958
  */
863
959
  private dispatchBubbling;
864
960
  private actionIdOf;
961
+ private setHover;
962
+ private hoverCount;
963
+ private isHovered;
865
964
  private beginPressTint;
866
965
  private endPressTint;
867
966
  private updateTints;
@@ -895,6 +994,10 @@ type UiCanvasLike = {
895
994
  declare class UIPanelSystem implements EcsSystem {
896
995
  private readonly entries;
897
996
  private readonly createCanvas;
997
+ private framesUntilDescendantWalk;
998
+ /** Whether any panel defines tokens, so plain scenes skip the parent walk. */
999
+ private anyTokens;
1000
+ private readonly drawAssets;
898
1001
  constructor(options?: {
899
1002
  createCanvas?: () => UiCanvasLike;
900
1003
  });
@@ -905,7 +1008,16 @@ declare class UIPanelSystem implements EcsSystem {
905
1008
  private syncText;
906
1009
  private syncButton;
907
1010
  private syncToggle;
1011
+ /** Checkbox and radio: a box or ring at the left of the widget's area. */
1012
+ private syncMarkToggle;
908
1013
  private syncSlider;
1014
+ /**
1015
+ * Progress bars and rings. Unlike a slider these change rarely and have no
1016
+ * drag to keep smooth, so the value is drawn, in steps of half a percent.
1017
+ */
1018
+ private syncMeter;
1019
+ /** The tokens in scope for a widget, nearest panel first. */
1020
+ private tokensFor;
909
1021
  private rebuildIfChanged;
910
1022
  private configureTexture;
911
1023
  private makeQuad;
@@ -922,6 +1034,12 @@ declare class UIPanelSystem implements EcsSystem {
922
1034
  * authored rotation stay in charge while authoring.
923
1035
  */
924
1036
  private applyFollow;
1037
+ /**
1038
+ * Stamp every widget's meshes with this frame's paint order. Written each
1039
+ * frame because the eye moves: the order between trees can change at any
1040
+ * time, and a plain property write costs less than checking it.
1041
+ */
1042
+ private applyPaintOrder;
925
1043
  private destroyEntry;
926
1044
  }
927
1045
 
@@ -1174,4 +1292,4 @@ declare class XRHoverVisualSystem implements EcsSystem {
1174
1292
  dispose(): void;
1175
1293
  }
1176
1294
 
1177
- export { AnimationSystem as A, type XrInputKind as B, CameraSyncSystem as C, readXrCapabilities as D, EnvironmentSyncSystem as E, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, UIInteractionSystem as U, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, AudioSystem as c, MeshGeometrySystem as d, type ModuleLoader as e, PostprocessingSyncSystem as f, ScriptBehaviourSystem as g, ScriptObjectSystem as h, type SelectionContext as i, UIPanelSystem as j, type UiCanvasLike as k, VideoSystem as l, XRAnchorSystem as m, XRControllerVisualSystem as n, XREnvironmentSystem as o, XRHandPoseSystem as p, XRHitTestSystem as q, XRHoverVisualSystem as r, XRInputSystem as s, XRInteractionSystem as t, XRLocomotionSystem as u, XRSessionSystem as v, XRTeleportVisualSystem as w, XR_HOVER_SHELL_FLAG as x, type XrHandedness as y, type XrHitResult as z };
1295
+ export { AnimationSystem as A, type XrInputKind as B, CameraSyncSystem as C, DEFAULT_SCRIPT_ERROR_RETRY_DELAY as D, EnvironmentSyncSystem as E, readXrCapabilities as F, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, UIInteractionSystem as U, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, MeshGeometrySystem as c, type ModuleLoader as d, PostprocessingSyncSystem as e, ScriptBehaviourSystem as f, type ScriptBehaviourSystemOptions as g, ScriptObjectSystem as h, type SelectionContext as i, UIPanelSystem as j, type UiCanvasLike as k, VideoSystem as l, XRAnchorSystem as m, XRControllerVisualSystem as n, XREnvironmentSystem as o, XRHandPoseSystem as p, XRHitTestSystem as q, XRHoverVisualSystem as r, XRInputSystem as s, XRInteractionSystem as t, XRLocomotionSystem as u, XRSessionSystem as v, XRTeleportVisualSystem as w, XR_HOVER_SHELL_FLAG as x, type XrHandedness as y, type XrHitResult as z };
@@ -1,4 +1,4 @@
1
- import { k as EcsSystem, l as World, I as InputSystem, r as EntityId } from './System-V_mv07le.cjs';
1
+ import { B as EcsSystem, W as World, ab as EcsRenderer, R as RenderBackend, af as InputSystem, G as EntityId } from './System-8D-XBDKZ.cjs';
2
2
  import * as THREE from 'three';
3
3
  import { m as XrHandJoints, r as XrHandShape } from './handPose-DlcTtqgx.cjs';
4
4
 
@@ -22,33 +22,135 @@ declare class ObjectVisibilitySystem implements EcsSystem {
22
22
  update(world: World): void;
23
23
  }
24
24
 
25
+ /**
26
+ * Applies the scene's {@link Environment} component to the three.js scene:
27
+ * skybox, fog, and (when `values.lighting` is present) image-based lighting,
28
+ * tone mapping and exposure.
29
+ *
30
+ * Each part is dirty-checked on its own, so animating `lighting.envIntensity`
31
+ * every frame does not rebuild the skybox texture.
32
+ *
33
+ * Runs in the editor and at runtime. While an XR session composites over the
34
+ * real world (`World.isXrPassthrough()`) the background is withheld; lighting
35
+ * and fog still apply.
36
+ *
37
+ * On WebGL the environment map is PMREM-prefiltered here. On WebGPU
38
+ * (`World.getRendererKind() === "webgpu"`) the equirect texture is assigned
39
+ * to `scene.environment` as is and the renderer prefilters it.
40
+ *
41
+ * @category Systems
42
+ */
25
43
  declare class EnvironmentSyncSystem implements EcsSystem {
26
44
  private readonly scene;
27
45
  private readonly textureLoader;
28
- private signature;
46
+ /** `true` once an Environment entity has been seen (drives the reset path). */
47
+ private hasEnvironment;
48
+ private skyboxSignature;
49
+ private fogSignature;
50
+ private lightingSignature;
29
51
  private activeTexture;
52
+ /** Load key (`url`, or `equirect|url`) of the current/pending image skybox. */
30
53
  private pendingImageUrl;
54
+ /** What the skybox wants as the background, before passthrough/env overrides. */
55
+ private skyboxBackground;
31
56
  /** Whether the skybox is currently withheld because passthrough is on. */
32
57
  private passthroughSuppressed;
58
+ private renderer;
59
+ private lighting;
60
+ /** URL of the environment map currently loaded or loading. */
61
+ private envUrl;
62
+ /** Incremented per env-map load; a load whose token is stale is discarded. */
63
+ private envLoadToken;
64
+ /** Equirect source texture of the current environment map. */
65
+ private envSource;
66
+ /**
67
+ * PMREM render target built from {@link envSource} (WebGL only; on WebGPU
68
+ * the renderer prefilters `scene.environment` itself and this stays null).
69
+ */
70
+ private envTarget;
71
+ private sceneLightingBaseline;
72
+ private sceneBackgroundBaseline;
73
+ private disposed;
33
74
  constructor(scene: THREE.Scene);
34
75
  private disposeActiveTexture;
76
+ /** Write the background the current state calls for. */
77
+ private commitBackground;
78
+ private restoreBackgroundBaseline;
79
+ private setSkyboxBackground;
35
80
  private applySkybox;
36
81
  private applyFog;
82
+ private disposeEnvResources;
83
+ /** Drop the environment map (any in-flight load is abandoned). */
84
+ private clearEnvMap;
85
+ /**
86
+ * Undo everything the lighting block wrote to the scene and renderer.
87
+ * `commit` re-applies the background afterwards (off during teardown, which
88
+ * must not touch the background).
89
+ */
90
+ private clearLighting;
91
+ /**
92
+ * PMREM-filter an equirect texture. `null` when no usable renderer exists,
93
+ * or on WebGPU: there the WebGL `PMREMGenerator` would silently produce a
94
+ * black map, while `WebGPURenderer` prefilters an equirect
95
+ * `scene.environment` (and a blurred background) by itself.
96
+ */
97
+ private buildPmrem;
98
+ private loadEnvMap;
99
+ private applyEnvironmentParams;
100
+ private applyLighting;
101
+ private resetAll;
37
102
  update(world: World): void;
38
103
  dispose(): void;
39
104
  }
40
105
 
106
+ /**
107
+ * Builds the post-processing chain from the scene's {@link Postprocessing}
108
+ * component and hands it to `RenderSystem` through `scene.userData`:
109
+ *
110
+ * - `ecsPostprocessingComposer` — the built chain (`render()`, `dispose()`,
111
+ * optional `setSize()` / `setPixelRatio()`). On WebGL it is the
112
+ * `EffectComposer` itself.
113
+ * - `ecsPostprocessingComposerActive` — `true` while `RenderSystem` should
114
+ * render through it.
115
+ * - `ecsPostprocessing` — the values the chain was built from.
116
+ *
117
+ * The chain itself comes from the world's render backend: an
118
+ * `EffectComposer` on WebGL (pass order: scene render → depth of field →
119
+ * bloom → vignette → hue/saturation → sepia → film noise → dot screen →
120
+ * SSAO → glitch → chromatic aberration → pixelation → SMAA → output), a
121
+ * `RenderPipeline` of TSL nodes with `webgpuBackend`. A backend that can
122
+ * update a chain in place (the WebGPU one) skips the rebuild when only
123
+ * parameters changed.
124
+ *
125
+ * The `toneMapping` effect has no pass of its own: when active it asks the
126
+ * renderer for tone mapping, which the chain's output step then applies. See
127
+ * `Environment.values.lighting.toneMapping` for how the two combine.
128
+ *
129
+ * @category Systems
130
+ */
41
131
  declare class PostprocessingSyncSystem implements EcsSystem {
42
132
  private readonly renderer;
43
133
  private readonly scene;
44
134
  private readonly camera;
135
+ private readonly backend;
45
136
  private signature;
137
+ /** Deep copy of the values the current chain reflects. */
138
+ private appliedValues;
46
139
  private composer;
47
140
  private composerEnabled;
48
- constructor(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera);
141
+ /**
142
+ * @param backend - Builds the chain. When omitted, the world's backend
143
+ * (`world.getRenderBackend()`) is used.
144
+ */
145
+ constructor(renderer: EcsRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera, backend?: RenderBackend);
49
146
  private setComposerEnabled;
50
147
  private disposeComposer;
148
+ /** Ask the renderer for tone mapping while the effect is active. */
149
+ private applyToneMapping;
150
+ private resolveBackend;
51
151
  private buildComposer;
152
+ /** Update the existing chain in place; `false` when it must be rebuilt. */
153
+ private tryUpdateInPlace;
52
154
  update(world: World): void;
53
155
  dispose(): void;
54
156
  }
@@ -132,6 +234,20 @@ declare class InstancedMeshSystem implements EcsSystem {
132
234
  /** Resolves a script URL to its ES module namespace. */
133
235
  type ModuleLoader = (scriptUrl: string) => Promise<Record<string, unknown>>;
134
236
 
237
+ /**
238
+ * Seconds a Behaviour waits after an error (load, `init()` or `update()`)
239
+ * before it is re-initialised. Without the wait a script that throws every
240
+ * frame was torn down and rebuilt every frame.
241
+ */
242
+ declare const DEFAULT_SCRIPT_ERROR_RETRY_DELAY = 1;
243
+ /** Options for {@link ScriptBehaviourSystem}. */
244
+ type ScriptBehaviourSystemOptions = {
245
+ /**
246
+ * Seconds to wait after a script error before re-initialising the script.
247
+ * Default {@link DEFAULT_SCRIPT_ERROR_RETRY_DELAY}.
248
+ */
249
+ errorRetryDelay?: number;
250
+ };
135
251
  /**
136
252
  * Optional context that enables raycast-based onSelect / onDeselect dispatch.
137
253
  * When provided, pointer/touch taps on the canvas fire a raycast against the
@@ -148,6 +264,11 @@ declare class ScriptBehaviourSystem implements EcsSystem {
148
264
  private instances;
149
265
  private loading;
150
266
  private readonly moduleLoader;
267
+ private readonly errorRetryDelay;
268
+ /** Seconds of world time this system has seen (sum of `deltaTime`). */
269
+ private clock;
270
+ /** Instance key → clock time before which a failed script is not retried. */
271
+ private retryAt;
151
272
  private readonly selectionCtx;
152
273
  private readonly raycaster;
153
274
  private readonly ndcPointer;
@@ -155,7 +276,7 @@ declare class ScriptBehaviourSystem implements EcsSystem {
155
276
  private pendingEntityId;
156
277
  private pointerDownPos;
157
278
  private static readonly CLICK_THRESHOLD;
158
- constructor(moduleLoader?: ModuleLoader, selectionContext?: SelectionContext);
279
+ constructor(moduleLoader?: ModuleLoader, selectionContext?: SelectionContext, options?: ScriptBehaviourSystemOptions);
159
280
  /** Walk up the object hierarchy to find the nearest userData.entityId. */
160
281
  private resolveEntityId;
161
282
  /** Convert client (screen) coordinates to normalised device coordinates. */
@@ -170,6 +291,9 @@ declare class ScriptBehaviourSystem implements EcsSystem {
170
291
  * onSelect() on all behaviours of the newly selected entity.
171
292
  */
172
293
  private applySelection;
294
+ private reportRecordError;
295
+ /** Hold a failed script back for {@link errorRetryDelay} seconds. */
296
+ private scheduleRetry;
173
297
  update(world: World, deltaTime: number): void;
174
298
  dispose(world: World): void;
175
299
  private loadBehaviour;
@@ -195,6 +319,8 @@ declare class ScriptObjectSystem implements EcsSystem {
195
319
  private loading;
196
320
  /** Bumped by invalidate*() so in-flight loads that predate it are discarded. */
197
321
  private epoch;
322
+ /** World seen by the last update(), so invalidate*() can reset error dedupe. */
323
+ private lastWorld;
198
324
  constructor(moduleLoader?: ModuleLoader);
199
325
  update(world: World, deltaTime: number): void;
200
326
  private loadScriptObject;
@@ -208,41 +334,6 @@ declare class ScriptObjectSystem implements EcsSystem {
208
334
  dispose(world: World): void;
209
335
  }
210
336
 
211
- /**
212
- * Reconciles `AudioComponent` state with the underlying THREE.js audio objects
213
- * each frame.
214
- *
215
- * **Playback** — drives `play()`, `pause()`, and `stop()` on the THREE.js
216
- * audio node based on the `isPlaying` / `isPaused` flags set by
217
- * `AudioComponent.play()`, `.pause()`, and `.stop()`.
218
- *
219
- * **Option sync** — detects changes to `loop`, `pitch`, `volume`,
220
- * `refDistance`, `distanceModel`, and `rolloffFactor` and applies them live.
221
- * Changes take effect on the next frame, so scripts and inspector edits during
222
- * runtime are reflected without reloading the scene.
223
- *
224
- * Only active in **preview** mode (`isEditor: true` makes every update a
225
- * no-op so the editor is unaffected).
226
- *
227
- * @category Systems
228
- */
229
- declare class AudioSystem implements EcsSystem {
230
- private readonly isEditor;
231
- /** THREE.js `isPlaying` state captured at the end of the previous frame. */
232
- private readonly prevPlayingState;
233
- /** Snapshot of options applied in the previous frame, for change detection. */
234
- private readonly prevOptions;
235
- /** Tracks entities that were stopped due to invisibility. */
236
- private readonly stoppedDueToInvisibility;
237
- constructor({ isEditor }?: {
238
- isEditor?: boolean;
239
- });
240
- update(world: World, _deltaTime: number): void;
241
- /** Apply any changed options from the component to the THREE.js audio node. */
242
- private _syncOptions;
243
- dispose(_world: World): void;
244
- }
245
-
246
337
  /**
247
338
  * Reconciles `VideoComponent` state with the underlying HTML video element
248
339
  * and THREE.js mesh/material each frame.
@@ -252,8 +343,10 @@ declare class AudioSystem implements EcsSystem {
252
343
  * by `VideoComponent.play()`, `.pause()`, and `.stop()`.
253
344
  *
254
345
  * **Option sync** — detects changes to `loop`, `volume`, `width`, `height`,
255
- * and green-screen shader uniforms (`backgroundColor`, `similarity`,
256
- * `smoothness`, `spill`) and applies them live without a scene reload.
346
+ * and green-screen keying (`backgroundColor`, `similarity`, `smoothness`,
347
+ * `spill`) and applies them live without a scene reload. The keying material
348
+ * belongs to the world's render backend (GLSL on WebGL, TSL with
349
+ * `webgpuBackend`), which updates it.
257
350
  *
258
351
  * Only active in **preview** mode (`isEditor: true` makes every update a
259
352
  * no-op so the editor is unaffected).
@@ -830,7 +923,8 @@ declare class UIInteractionSystem implements EcsSystem {
830
923
  private readonly inputSystem;
831
924
  private readonly xrPresses;
832
925
  private mousePress;
833
- private mouseHover;
926
+ /** What each pointer is on. Two hands can rest on one widget. */
927
+ private readonly hovers;
834
928
  /** entityId → seconds of pressed-tint left to display. */
835
929
  private readonly tintFloors;
836
930
  private readonly tinted;
@@ -845,6 +939,8 @@ declare class UIInteractionSystem implements EcsSystem {
845
939
  });
846
940
  update(world: World, deltaTime?: number): void;
847
941
  private updateXr;
942
+ /** A transient source leaves with no select edge to clear its hover. */
943
+ private dropGoneXrHovers;
848
944
  private updateMouse;
849
945
  private raycastMouse;
850
946
  private widgetKind;
@@ -862,6 +958,9 @@ declare class UIInteractionSystem implements EcsSystem {
862
958
  */
863
959
  private dispatchBubbling;
864
960
  private actionIdOf;
961
+ private setHover;
962
+ private hoverCount;
963
+ private isHovered;
865
964
  private beginPressTint;
866
965
  private endPressTint;
867
966
  private updateTints;
@@ -895,6 +994,10 @@ type UiCanvasLike = {
895
994
  declare class UIPanelSystem implements EcsSystem {
896
995
  private readonly entries;
897
996
  private readonly createCanvas;
997
+ private framesUntilDescendantWalk;
998
+ /** Whether any panel defines tokens, so plain scenes skip the parent walk. */
999
+ private anyTokens;
1000
+ private readonly drawAssets;
898
1001
  constructor(options?: {
899
1002
  createCanvas?: () => UiCanvasLike;
900
1003
  });
@@ -905,7 +1008,16 @@ declare class UIPanelSystem implements EcsSystem {
905
1008
  private syncText;
906
1009
  private syncButton;
907
1010
  private syncToggle;
1011
+ /** Checkbox and radio: a box or ring at the left of the widget's area. */
1012
+ private syncMarkToggle;
908
1013
  private syncSlider;
1014
+ /**
1015
+ * Progress bars and rings. Unlike a slider these change rarely and have no
1016
+ * drag to keep smooth, so the value is drawn, in steps of half a percent.
1017
+ */
1018
+ private syncMeter;
1019
+ /** The tokens in scope for a widget, nearest panel first. */
1020
+ private tokensFor;
909
1021
  private rebuildIfChanged;
910
1022
  private configureTexture;
911
1023
  private makeQuad;
@@ -922,6 +1034,12 @@ declare class UIPanelSystem implements EcsSystem {
922
1034
  * authored rotation stay in charge while authoring.
923
1035
  */
924
1036
  private applyFollow;
1037
+ /**
1038
+ * Stamp every widget's meshes with this frame's paint order. Written each
1039
+ * frame because the eye moves: the order between trees can change at any
1040
+ * time, and a plain property write costs less than checking it.
1041
+ */
1042
+ private applyPaintOrder;
925
1043
  private destroyEntry;
926
1044
  }
927
1045
 
@@ -1174,4 +1292,4 @@ declare class XRHoverVisualSystem implements EcsSystem {
1174
1292
  dispose(): void;
1175
1293
  }
1176
1294
 
1177
- export { AnimationSystem as A, type XrInputKind as B, CameraSyncSystem as C, readXrCapabilities as D, EnvironmentSyncSystem as E, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, UIInteractionSystem as U, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, AudioSystem as c, MeshGeometrySystem as d, type ModuleLoader as e, PostprocessingSyncSystem as f, ScriptBehaviourSystem as g, ScriptObjectSystem as h, type SelectionContext as i, UIPanelSystem as j, type UiCanvasLike as k, VideoSystem as l, XRAnchorSystem as m, XRControllerVisualSystem as n, XREnvironmentSystem as o, XRHandPoseSystem as p, XRHitTestSystem as q, XRHoverVisualSystem as r, XRInputSystem as s, XRInteractionSystem as t, XRLocomotionSystem as u, XRSessionSystem as v, XRTeleportVisualSystem as w, XR_HOVER_SHELL_FLAG as x, type XrHandedness as y, type XrHitResult as z };
1295
+ export { AnimationSystem as A, type XrInputKind as B, CameraSyncSystem as C, DEFAULT_SCRIPT_ERROR_RETRY_DELAY as D, EnvironmentSyncSystem as E, readXrCapabilities as F, InstancedMeshSystem as I, LightSyncSystem as L, MaterialSyncSystem as M, NO_XR_CAPABILITIES as N, ObjectVisibilitySystem as O, PhysicsSyncSystem as P, SCRIPT_OBJECT_ROOT_FLAG as S, UIInteractionSystem as U, VRTeleportAreaSystem as V, type XrCapabilities as X, type XrInputState as a, type XrHandPoseEventDetail as b, MeshGeometrySystem as c, type ModuleLoader as d, PostprocessingSyncSystem as e, ScriptBehaviourSystem as f, type ScriptBehaviourSystemOptions as g, ScriptObjectSystem as h, type SelectionContext as i, UIPanelSystem as j, type UiCanvasLike as k, VideoSystem as l, XRAnchorSystem as m, XRControllerVisualSystem as n, XREnvironmentSystem as o, XRHandPoseSystem as p, XRHitTestSystem as q, XRHoverVisualSystem as r, XRInputSystem as s, XRInteractionSystem as t, XRLocomotionSystem as u, XRSessionSystem as v, XRTeleportVisualSystem as w, XR_HOVER_SHELL_FLAG as x, type XrHandedness as y, type XrHitResult as z };