@needle-tools/engine 4.12.5 → 4.13.0-next.1eca7a7

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 (322) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +38 -1
  3. package/components.needle.json +1 -1
  4. package/custom-elements.json +156 -5
  5. package/dist/{gltf-progressive-BqUnxvCx.umd.cjs → gltf-progressive-BURrJW0U.umd.cjs} +1 -1
  6. package/dist/{gltf-progressive-CSaX5HQb.min.js → gltf-progressive-DHLDFNvQ.min.js} +1 -1
  7. package/dist/{gltf-progressive-ChnIhDXx.js → gltf-progressive-eiJCrjLb.js} +3 -3
  8. package/dist/materialx-B9ddsHcF.min.js +90 -0
  9. package/dist/materialx-BF23AVE8.umd.cjs +90 -0
  10. package/dist/materialx-fkoFuRh3.js +4636 -0
  11. package/dist/{needle-engine.bundle-Cnemui9H.umd.cjs → needle-engine.bundle-BfrDWglE.umd.cjs} +124 -124
  12. package/dist/{needle-engine.bundle-B_IGIr6Z.min.js → needle-engine.bundle-Bx_Lq_3v.min.js} +131 -131
  13. package/dist/{needle-engine.bundle-Cj66livk.js → needle-engine.bundle-MQyZGnMF.js} +3754 -3374
  14. package/dist/needle-engine.d.ts +2791 -309
  15. package/dist/needle-engine.js +415 -414
  16. package/dist/needle-engine.min.js +1 -1
  17. package/dist/needle-engine.umd.cjs +1 -1
  18. package/dist/{postprocessing-12-UW7je.min.js → postprocessing-BVNrgYZK.min.js} +1 -1
  19. package/dist/{postprocessing-B3Hu0Ryi.umd.cjs → postprocessing-CI2TjWpu.umd.cjs} +1 -1
  20. package/dist/{postprocessing-R535krvT.js → postprocessing-DdM-tz1j.js} +2 -2
  21. package/dist/{three-BzxwLtUE.umd.cjs → three-BW2s1Yl-.umd.cjs} +25 -25
  22. package/dist/{three-DMvLgxja.min.js → three-I__hSXzr.min.js} +26 -26
  23. package/dist/{three-D9pcFbxc.js → three-VvRoMeIN.js} +22 -0
  24. package/dist/{three-examples-F0MJj0vr.js → three-examples-BhfOE7NG.js} +1 -1
  25. package/dist/{three-examples-CjSwCv_b.umd.cjs → three-examples-Bpfu6ke_.umd.cjs} +1 -1
  26. package/dist/{three-examples-CIv2roOA.min.js → three-examples-D8zAE_7t.min.js} +1 -1
  27. package/dist/{three-mesh-ui-BLnJQzMl.umd.cjs → three-mesh-ui-BU55xDxJ.umd.cjs} +1 -1
  28. package/dist/{three-mesh-ui-BllgajJz.min.js → three-mesh-ui-C3QbemOV.min.js} +1 -1
  29. package/dist/{three-mesh-ui-DYyiRn5Y.js → three-mesh-ui-CcMp-FQm.js} +1 -1
  30. package/dist/{vendor-BIFy-gRe.js → vendor-BiyIZ61v.js} +1 -1
  31. package/dist/{vendor-BFgQSG2m.umd.cjs → vendor-COVQl0b8.umd.cjs} +1 -1
  32. package/dist/{vendor-ChgmXMYr.min.js → vendor-DW7zqjuT.min.js} +1 -1
  33. package/lib/engine/engine_context.d.ts +16 -0
  34. package/lib/engine/engine_context.js +16 -0
  35. package/lib/engine/engine_context.js.map +1 -1
  36. package/lib/engine/engine_gameobject.d.ts +72 -0
  37. package/lib/engine/engine_gameobject.js +38 -0
  38. package/lib/engine/engine_gameobject.js.map +1 -1
  39. package/lib/engine/engine_input.d.ts +80 -4
  40. package/lib/engine/engine_input.js +78 -2
  41. package/lib/engine/engine_input.js.map +1 -1
  42. package/lib/engine/engine_loaders.js +7 -1
  43. package/lib/engine/engine_loaders.js.map +1 -1
  44. package/lib/engine/engine_math.d.ts +81 -2
  45. package/lib/engine/engine_math.js +68 -2
  46. package/lib/engine/engine_math.js.map +1 -1
  47. package/lib/engine/engine_modules.d.ts +9 -0
  48. package/lib/engine/engine_modules.js +25 -0
  49. package/lib/engine/engine_modules.js.map +1 -1
  50. package/lib/engine/engine_networking.d.ts +181 -14
  51. package/lib/engine/engine_networking.js +181 -14
  52. package/lib/engine/engine_networking.js.map +1 -1
  53. package/lib/engine/engine_networking_auto.d.ts +35 -8
  54. package/lib/engine/engine_networking_auto.js +35 -8
  55. package/lib/engine/engine_networking_auto.js.map +1 -1
  56. package/lib/engine/engine_physics.d.ts +35 -1
  57. package/lib/engine/engine_physics.js +35 -1
  58. package/lib/engine/engine_physics.js.map +1 -1
  59. package/lib/engine/engine_physics_rapier.d.ts +76 -0
  60. package/lib/engine/engine_physics_rapier.js +76 -0
  61. package/lib/engine/engine_physics_rapier.js.map +1 -1
  62. package/lib/engine/engine_serialization_decorator.d.ts +28 -2
  63. package/lib/engine/engine_serialization_decorator.js +28 -2
  64. package/lib/engine/engine_serialization_decorator.js.map +1 -1
  65. package/lib/engine/engine_time.d.ts +23 -3
  66. package/lib/engine/engine_time.js +23 -3
  67. package/lib/engine/engine_time.js.map +1 -1
  68. package/lib/engine/engine_util_decorator.d.ts +31 -1
  69. package/lib/engine/engine_util_decorator.js +31 -1
  70. package/lib/engine/engine_util_decorator.js.map +1 -1
  71. package/lib/engine/engine_utils.d.ts +21 -5
  72. package/lib/engine/engine_utils.js +21 -5
  73. package/lib/engine/engine_utils.js.map +1 -1
  74. package/lib/engine/engine_utils_format.d.ts +1 -1
  75. package/lib/engine/engine_utils_format.js +4 -1
  76. package/lib/engine/engine_utils_format.js.map +1 -1
  77. package/lib/engine/extensions/NEEDLE_materialx.d.ts +29 -0
  78. package/lib/engine/extensions/NEEDLE_materialx.js +115 -0
  79. package/lib/engine/extensions/NEEDLE_materialx.js.map +1 -0
  80. package/lib/engine/extensions/extensions.js +2 -0
  81. package/lib/engine/extensions/extensions.js.map +1 -1
  82. package/lib/engine/extensions/index.d.ts +1 -0
  83. package/lib/engine/extensions/index.js +1 -0
  84. package/lib/engine/extensions/index.js.map +1 -1
  85. package/lib/engine-components/AlignmentConstraint.d.ts +23 -3
  86. package/lib/engine-components/AlignmentConstraint.js +23 -3
  87. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  88. package/lib/engine-components/Animation.d.ts +42 -0
  89. package/lib/engine-components/Animation.js +36 -0
  90. package/lib/engine-components/Animation.js.map +1 -1
  91. package/lib/engine-components/Animator.d.ts +37 -4
  92. package/lib/engine-components/Animator.js +37 -4
  93. package/lib/engine-components/Animator.js.map +1 -1
  94. package/lib/engine-components/AudioSource.d.ts +32 -10
  95. package/lib/engine-components/AudioSource.js +32 -10
  96. package/lib/engine-components/AudioSource.js.map +1 -1
  97. package/lib/engine-components/AxesHelper.d.ts +22 -3
  98. package/lib/engine-components/AxesHelper.js +22 -3
  99. package/lib/engine-components/AxesHelper.js.map +1 -1
  100. package/lib/engine-components/BasicIKConstraint.d.ts +27 -4
  101. package/lib/engine-components/BasicIKConstraint.js +27 -4
  102. package/lib/engine-components/BasicIKConstraint.js.map +1 -1
  103. package/lib/engine-components/Camera.d.ts +31 -1
  104. package/lib/engine-components/Camera.js +31 -1
  105. package/lib/engine-components/Camera.js.map +1 -1
  106. package/lib/engine-components/CharacterController.d.ts +67 -3
  107. package/lib/engine-components/CharacterController.js +67 -3
  108. package/lib/engine-components/CharacterController.js.map +1 -1
  109. package/lib/engine-components/Collider.d.ts +69 -12
  110. package/lib/engine-components/Collider.js +69 -12
  111. package/lib/engine-components/Collider.js.map +1 -1
  112. package/lib/engine-components/ContactShadows.d.ts +26 -6
  113. package/lib/engine-components/ContactShadows.js +46 -8
  114. package/lib/engine-components/ContactShadows.js.map +1 -1
  115. package/lib/engine-components/DeleteBox.d.ts +43 -2
  116. package/lib/engine-components/DeleteBox.js +43 -2
  117. package/lib/engine-components/DeleteBox.js.map +1 -1
  118. package/lib/engine-components/DeviceFlag.d.ts +21 -2
  119. package/lib/engine-components/DeviceFlag.js +21 -2
  120. package/lib/engine-components/DeviceFlag.js.map +1 -1
  121. package/lib/engine-components/DragControls.d.ts +32 -2
  122. package/lib/engine-components/DragControls.js +32 -2
  123. package/lib/engine-components/DragControls.js.map +1 -1
  124. package/lib/engine-components/DropListener.d.ts +33 -21
  125. package/lib/engine-components/DropListener.js +33 -21
  126. package/lib/engine-components/DropListener.js.map +1 -1
  127. package/lib/engine-components/Duplicatable.d.ts +36 -5
  128. package/lib/engine-components/Duplicatable.js +36 -5
  129. package/lib/engine-components/Duplicatable.js.map +1 -1
  130. package/lib/engine-components/EventList.d.ts +38 -10
  131. package/lib/engine-components/EventList.js +38 -10
  132. package/lib/engine-components/EventList.js.map +1 -1
  133. package/lib/engine-components/Fog.d.ts +23 -1
  134. package/lib/engine-components/Fog.js +23 -1
  135. package/lib/engine-components/Fog.js.map +1 -1
  136. package/lib/engine-components/GridHelper.d.ts +18 -2
  137. package/lib/engine-components/GridHelper.js +18 -2
  138. package/lib/engine-components/GridHelper.js.map +1 -1
  139. package/lib/engine-components/GroundProjection.d.ts +24 -2
  140. package/lib/engine-components/GroundProjection.js +24 -2
  141. package/lib/engine-components/GroundProjection.js.map +1 -1
  142. package/lib/engine-components/Interactable.d.ts +17 -2
  143. package/lib/engine-components/Interactable.js +17 -2
  144. package/lib/engine-components/Interactable.js.map +1 -1
  145. package/lib/engine-components/Joints.d.ts +50 -7
  146. package/lib/engine-components/Joints.js +50 -7
  147. package/lib/engine-components/Joints.js.map +1 -1
  148. package/lib/engine-components/LODGroup.d.ts +36 -14
  149. package/lib/engine-components/LODGroup.js +43 -11
  150. package/lib/engine-components/LODGroup.js.map +1 -1
  151. package/lib/engine-components/Light.d.ts +27 -5
  152. package/lib/engine-components/Light.js +27 -5
  153. package/lib/engine-components/Light.js.map +1 -1
  154. package/lib/engine-components/LookAtConstraint.d.ts +22 -7
  155. package/lib/engine-components/LookAtConstraint.js +22 -7
  156. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  157. package/lib/engine-components/NeedleMenu.d.ts +27 -5
  158. package/lib/engine-components/NeedleMenu.js +27 -5
  159. package/lib/engine-components/NeedleMenu.js.map +1 -1
  160. package/lib/engine-components/NestedGltf.d.ts +39 -4
  161. package/lib/engine-components/NestedGltf.js +42 -4
  162. package/lib/engine-components/NestedGltf.js.map +1 -1
  163. package/lib/engine-components/OffsetConstraint.d.ts +27 -3
  164. package/lib/engine-components/OffsetConstraint.js +27 -3
  165. package/lib/engine-components/OffsetConstraint.js.map +1 -1
  166. package/lib/engine-components/OrbitControls.d.ts +41 -3
  167. package/lib/engine-components/OrbitControls.js +41 -3
  168. package/lib/engine-components/OrbitControls.js.map +1 -1
  169. package/lib/engine-components/ReflectionProbe.d.ts +17 -2
  170. package/lib/engine-components/ReflectionProbe.js +28 -10
  171. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  172. package/lib/engine-components/Renderer.d.ts +34 -0
  173. package/lib/engine-components/Renderer.js +35 -2
  174. package/lib/engine-components/Renderer.js.map +1 -1
  175. package/lib/engine-components/SceneSwitcher.d.ts +11 -0
  176. package/lib/engine-components/SceneSwitcher.js +11 -0
  177. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  178. package/lib/engine-components/ScreenCapture.d.ts +38 -6
  179. package/lib/engine-components/ScreenCapture.js +38 -6
  180. package/lib/engine-components/ScreenCapture.js.map +1 -1
  181. package/lib/engine-components/Skybox.js +1 -1
  182. package/lib/engine-components/Skybox.js.map +1 -1
  183. package/lib/engine-components/SmoothFollow.d.ts +66 -7
  184. package/lib/engine-components/SmoothFollow.js +66 -7
  185. package/lib/engine-components/SmoothFollow.js.map +1 -1
  186. package/lib/engine-components/SpatialTrigger.d.ts +48 -1
  187. package/lib/engine-components/SpatialTrigger.js +48 -1
  188. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  189. package/lib/engine-components/SpectatorCamera.d.ts +21 -3
  190. package/lib/engine-components/SpectatorCamera.js +21 -3
  191. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  192. package/lib/engine-components/SyncedRoom.d.ts +6 -0
  193. package/lib/engine-components/SyncedRoom.js +6 -0
  194. package/lib/engine-components/SyncedRoom.js.map +1 -1
  195. package/lib/engine-components/SyncedTransform.d.ts +55 -6
  196. package/lib/engine-components/SyncedTransform.js +55 -6
  197. package/lib/engine-components/SyncedTransform.js.map +1 -1
  198. package/lib/engine-components/TransformGizmo.d.ts +30 -3
  199. package/lib/engine-components/TransformGizmo.js +30 -3
  200. package/lib/engine-components/TransformGizmo.js.map +1 -1
  201. package/lib/engine-components/VideoPlayer.d.ts +33 -6
  202. package/lib/engine-components/VideoPlayer.js +45 -6
  203. package/lib/engine-components/VideoPlayer.js.map +1 -1
  204. package/lib/engine-components/Voip.d.ts +33 -2
  205. package/lib/engine-components/Voip.js +33 -2
  206. package/lib/engine-components/Voip.js.map +1 -1
  207. package/lib/engine-components/export/usdz/USDZExporter.d.ts +47 -13
  208. package/lib/engine-components/export/usdz/USDZExporter.js +47 -13
  209. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  210. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +82 -3
  211. package/lib/engine-components/particlesystem/ParticleSystem.js +82 -3
  212. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  213. package/lib/engine-components/timeline/PlayableDirector.d.ts +99 -14
  214. package/lib/engine-components/timeline/PlayableDirector.js +91 -25
  215. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  216. package/lib/engine-components/ui/Button.d.ts +29 -3
  217. package/lib/engine-components/ui/Button.js +29 -3
  218. package/lib/engine-components/ui/Button.js.map +1 -1
  219. package/lib/engine-components/ui/Canvas.d.ts +28 -3
  220. package/lib/engine-components/ui/Canvas.js +28 -3
  221. package/lib/engine-components/ui/Canvas.js.map +1 -1
  222. package/lib/engine-components/ui/Image.d.ts +22 -3
  223. package/lib/engine-components/ui/Image.js +22 -3
  224. package/lib/engine-components/ui/Image.js.map +1 -1
  225. package/lib/engine-components/ui/Raycaster.d.ts +55 -6
  226. package/lib/engine-components/ui/Raycaster.js +55 -6
  227. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  228. package/lib/engine-components/ui/Text.d.ts +23 -1
  229. package/lib/engine-components/ui/Text.js +23 -1
  230. package/lib/engine-components/ui/Text.js.map +1 -1
  231. package/lib/engine-components/webxr/TeleportTarget.d.ts +21 -2
  232. package/lib/engine-components/webxr/TeleportTarget.js +21 -2
  233. package/lib/engine-components/webxr/TeleportTarget.js.map +1 -1
  234. package/lib/engine-components/webxr/WebXR.d.ts +10 -2
  235. package/lib/engine-components/webxr/WebXR.js +10 -2
  236. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  237. package/lib/engine-components/webxr/WebXRAvatar.d.ts +39 -2
  238. package/lib/engine-components/webxr/WebXRAvatar.js +35 -3
  239. package/lib/engine-components/webxr/WebXRAvatar.js.map +1 -1
  240. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +266 -30
  241. package/lib/engine-components/webxr/WebXRImageTracking.js +266 -30
  242. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  243. package/lib/engine-components/webxr/XRFlag.d.ts +29 -2
  244. package/lib/engine-components/webxr/XRFlag.js +29 -2
  245. package/lib/engine-components/webxr/XRFlag.js.map +1 -1
  246. package/package.json +3 -2
  247. package/plugins/vite/custom-element-data.js +128 -19
  248. package/plugins/vite/dependencies.js +9 -4
  249. package/plugins/vite/index.js +0 -2
  250. package/src/engine/engine_context.ts +16 -0
  251. package/src/engine/engine_gameobject.ts +73 -0
  252. package/src/engine/engine_input.ts +83 -7
  253. package/src/engine/engine_loaders.ts +9 -2
  254. package/src/engine/engine_math.ts +81 -2
  255. package/src/engine/engine_modules.ts +24 -0
  256. package/src/engine/engine_networking.ts +187 -17
  257. package/src/engine/engine_networking_auto.ts +36 -9
  258. package/src/engine/engine_physics.ts +37 -1
  259. package/src/engine/engine_physics_rapier.ts +77 -0
  260. package/src/engine/engine_serialization_decorator.ts +28 -2
  261. package/src/engine/engine_time.ts +23 -3
  262. package/src/engine/engine_util_decorator.ts +31 -1
  263. package/src/engine/engine_utils.ts +21 -5
  264. package/src/engine/engine_utils_format.ts +6 -2
  265. package/src/engine/extensions/NEEDLE_materialx.ts +143 -0
  266. package/src/engine/extensions/extensions.ts +2 -0
  267. package/src/engine/extensions/index.ts +1 -0
  268. package/src/engine-components/AlignmentConstraint.ts +24 -4
  269. package/src/engine-components/Animation.ts +44 -2
  270. package/src/engine-components/Animator.ts +40 -7
  271. package/src/engine-components/AudioSource.ts +37 -15
  272. package/src/engine-components/AxesHelper.ts +23 -4
  273. package/src/engine-components/BasicIKConstraint.ts +28 -5
  274. package/src/engine-components/Camera.ts +33 -3
  275. package/src/engine-components/CharacterController.ts +73 -6
  276. package/src/engine-components/Collider.ts +78 -21
  277. package/src/engine-components/ContactShadows.ts +51 -11
  278. package/src/engine-components/DeleteBox.ts +43 -2
  279. package/src/engine-components/DeviceFlag.ts +22 -3
  280. package/src/engine-components/DragControls.ts +32 -2
  281. package/src/engine-components/DropListener.ts +42 -29
  282. package/src/engine-components/Duplicatable.ts +37 -6
  283. package/src/engine-components/EventList.ts +41 -13
  284. package/src/engine-components/Fog.ts +23 -1
  285. package/src/engine-components/GridHelper.ts +18 -2
  286. package/src/engine-components/GroundProjection.ts +25 -3
  287. package/src/engine-components/Interactable.ts +17 -2
  288. package/src/engine-components/Joints.ts +51 -8
  289. package/src/engine-components/LODGroup.ts +45 -11
  290. package/src/engine-components/Light.ts +30 -8
  291. package/src/engine-components/LookAtConstraint.ts +26 -8
  292. package/src/engine-components/NeedleMenu.ts +29 -7
  293. package/src/engine-components/NestedGltf.ts +40 -4
  294. package/src/engine-components/OffsetConstraint.ts +27 -3
  295. package/src/engine-components/OrbitControls.ts +41 -3
  296. package/src/engine-components/ReflectionProbe.ts +31 -13
  297. package/src/engine-components/Renderer.ts +34 -1
  298. package/src/engine-components/SceneSwitcher.ts +11 -0
  299. package/src/engine-components/ScreenCapture.ts +41 -9
  300. package/src/engine-components/Skybox.ts +1 -1
  301. package/src/engine-components/SmoothFollow.ts +69 -7
  302. package/src/engine-components/SpatialTrigger.ts +51 -4
  303. package/src/engine-components/SpectatorCamera.ts +23 -5
  304. package/src/engine-components/SyncedRoom.ts +6 -0
  305. package/src/engine-components/SyncedTransform.ts +59 -10
  306. package/src/engine-components/TransformGizmo.ts +31 -4
  307. package/src/engine-components/VideoPlayer.ts +48 -6
  308. package/src/engine-components/Voip.ts +33 -2
  309. package/src/engine-components/export/usdz/USDZExporter.ts +47 -13
  310. package/src/engine-components/particlesystem/ParticleSystem.ts +84 -5
  311. package/src/engine-components/timeline/PlayableDirector.ts +104 -27
  312. package/src/engine-components/ui/Button.ts +29 -3
  313. package/src/engine-components/ui/Canvas.ts +28 -3
  314. package/src/engine-components/ui/Image.ts +22 -3
  315. package/src/engine-components/ui/Raycaster.ts +57 -8
  316. package/src/engine-components/ui/Text.ts +24 -2
  317. package/src/engine-components/webxr/TeleportTarget.ts +23 -4
  318. package/src/engine-components/webxr/WebXR.ts +11 -3
  319. package/src/engine-components/webxr/WebXRAvatar.ts +41 -4
  320. package/src/engine-components/webxr/WebXRImageTracking.ts +282 -38
  321. package/src/engine-components/webxr/XRFlag.ts +30 -3
  322. package/plugins/vite/materialx.js +0 -32
@@ -26,12 +26,38 @@ declare class AnimationTriggers {
26
26
  selectedTrigger: string;
27
27
  }
28
28
  /**
29
- * Button is a UI component that can be clicked by the user to perform an action.
30
- * It supports different visual states such as normal, highlighted, pressed, and disabled.
31
- * You can customize the button's appearance using colors or animations for each state.
29
+ * Button is a UI component that can be clicked to trigger actions.
30
+ * Supports visual states (normal, highlighted, pressed, disabled) with
31
+ * color tints or animation transitions.
32
+ *
33
+ * **Visual transitions:**
34
+ * - `ColorTint` - Tint the button image with state colors
35
+ * - `Animation` - Trigger animator states for each button state
36
+ * - `SpriteSwap` - Swap sprites for each state (not fully supported)
37
+ *
38
+ * **Requirements:**
39
+ * - Typically paired with an {@link Image} component for visuals or any 3D object
40
+ *
41
+ * @example Listen to button clicks
42
+ * ```ts
43
+ * const button = myButton.getComponent(Button);
44
+ * button.onClick.addEventListener(() => {
45
+ * console.log("Button clicked!");
46
+ * });
47
+ * ```
48
+ *
49
+ * @example Programmatically click a button
50
+ * ```ts
51
+ * button.click(); // Triggers onClick event
52
+ * ```
53
+ *
32
54
  * @summary UI Button that can be clicked to perform actions
33
55
  * @category User Interface
34
56
  * @group Components
57
+ * @see {@link EventList} for onClick callback handling
58
+ * @see {@link Image} for button visuals
59
+ * @see {@link GraphicRaycaster} for UI interaction
60
+ * @see {@link Transition} for visual state options
35
61
  */
36
62
  export declare class Button extends Behaviour implements IPointerEventHandler {
37
63
  /**
@@ -76,12 +76,38 @@ class AnimationTriggers {
76
76
  selectedTrigger;
77
77
  }
78
78
  /**
79
- * Button is a UI component that can be clicked by the user to perform an action.
80
- * It supports different visual states such as normal, highlighted, pressed, and disabled.
81
- * You can customize the button's appearance using colors or animations for each state.
79
+ * Button is a UI component that can be clicked to trigger actions.
80
+ * Supports visual states (normal, highlighted, pressed, disabled) with
81
+ * color tints or animation transitions.
82
+ *
83
+ * **Visual transitions:**
84
+ * - `ColorTint` - Tint the button image with state colors
85
+ * - `Animation` - Trigger animator states for each button state
86
+ * - `SpriteSwap` - Swap sprites for each state (not fully supported)
87
+ *
88
+ * **Requirements:**
89
+ * - Typically paired with an {@link Image} component for visuals or any 3D object
90
+ *
91
+ * @example Listen to button clicks
92
+ * ```ts
93
+ * const button = myButton.getComponent(Button);
94
+ * button.onClick.addEventListener(() => {
95
+ * console.log("Button clicked!");
96
+ * });
97
+ * ```
98
+ *
99
+ * @example Programmatically click a button
100
+ * ```ts
101
+ * button.click(); // Triggers onClick event
102
+ * ```
103
+ *
82
104
  * @summary UI Button that can be clicked to perform actions
83
105
  * @category User Interface
84
106
  * @group Components
107
+ * @see {@link EventList} for onClick callback handling
108
+ * @see {@link Image} for button visuals
109
+ * @see {@link GraphicRaycaster} for UI interaction
110
+ * @see {@link Transition} for visual state options
85
111
  */
86
112
  export class Button extends Behaviour {
87
113
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Button.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,37 @@ export declare enum RenderMode {
10
10
  }
11
11
  /**
12
12
  * Canvas is the root component for all UI elements in a scene.
13
- * It defines the area where UI elements are rendered and manages their layout and rendering settings.
14
- * Canvases can be set to render in world space or screen space (overlay or camera).
15
- * Multiple canvases can exist in a scene, each with its own settings and hierarchy of UI elements.
13
+ * Defines the rendering area and manages layout for child UI elements.
14
+ *
15
+ * **Render modes:**
16
+ * - `WorldSpace` - UI exists in 3D space, can be viewed from any angle
17
+ * - `ScreenSpaceOverlay` - UI rendered on top of everything (HUD)
18
+ * - `ScreenSpaceCamera` - UI rendered at a distance from a specific camera
19
+ *
20
+ * **Usage:**
21
+ * All UI components ({@link Button}, {@link Text}, {@link Image}) must be
22
+ * children of a Canvas to render correctly. Multiple canvases can exist
23
+ * in a scene with different settings.
24
+ *
25
+ * **Rendering options:**
26
+ * - `renderOnTop` - Always render above other objects
27
+ * - `depthWrite` - Write to depth buffer (affects occlusion)
28
+ * - `doubleSided` - Render both sides of UI elements
29
+ *
30
+ * @example Create a world-space UI panel
31
+ * ```ts
32
+ * const canvas = panel.getComponent(Canvas);
33
+ * canvas.renderMode = RenderMode.WorldSpace;
34
+ * canvas.doubleSided = true;
35
+ * ```
36
+ *
16
37
  * @summary Root component for UI elements, managing layout and rendering settings
17
38
  * @category User Interface
18
39
  * @group Components
40
+ * @see {@link RenderMode} for rendering options
41
+ * @see {@link RectTransform} for UI layout
42
+ * @see {@link Button} for clickable UI elements
43
+ * @see {@link Text} for UI text rendering
19
44
  */
20
45
  export declare class Canvas extends UIRootComponent implements ICanvas {
21
46
  get isCanvas(): boolean;
@@ -27,12 +27,37 @@ export var RenderMode;
27
27
  const debugLayout = getParam("debuguilayout");
28
28
  /**
29
29
  * Canvas is the root component for all UI elements in a scene.
30
- * It defines the area where UI elements are rendered and manages their layout and rendering settings.
31
- * Canvases can be set to render in world space or screen space (overlay or camera).
32
- * Multiple canvases can exist in a scene, each with its own settings and hierarchy of UI elements.
30
+ * Defines the rendering area and manages layout for child UI elements.
31
+ *
32
+ * **Render modes:**
33
+ * - `WorldSpace` - UI exists in 3D space, can be viewed from any angle
34
+ * - `ScreenSpaceOverlay` - UI rendered on top of everything (HUD)
35
+ * - `ScreenSpaceCamera` - UI rendered at a distance from a specific camera
36
+ *
37
+ * **Usage:**
38
+ * All UI components ({@link Button}, {@link Text}, {@link Image}) must be
39
+ * children of a Canvas to render correctly. Multiple canvases can exist
40
+ * in a scene with different settings.
41
+ *
42
+ * **Rendering options:**
43
+ * - `renderOnTop` - Always render above other objects
44
+ * - `depthWrite` - Write to depth buffer (affects occlusion)
45
+ * - `doubleSided` - Render both sides of UI elements
46
+ *
47
+ * @example Create a world-space UI panel
48
+ * ```ts
49
+ * const canvas = panel.getComponent(Canvas);
50
+ * canvas.renderMode = RenderMode.WorldSpace;
51
+ * canvas.doubleSided = true;
52
+ * ```
53
+ *
33
54
  * @summary Root component for UI elements, managing layout and rendering settings
34
55
  * @category User Interface
35
56
  * @group Components
57
+ * @see {@link RenderMode} for rendering options
58
+ * @see {@link RectTransform} for UI layout
59
+ * @see {@link Button} for clickable UI elements
60
+ * @see {@link Text} for UI text rendering
36
61
  */
37
62
  export class Canvas extends UIRootComponent {
38
63
  get isCanvas() {
@@ -1 +1 @@
1
- {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Canvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Canvas.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Canvas.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,31 @@ declare class Sprite {
8
8
  };
9
9
  }
10
10
  /**
11
- * Image is a UI component that displays a sprite (2D image) in the user interface.
12
- * You can set the image property to assign a texture to be displayed.
13
- * The sprite can be customized with various properties such as color tinting and pixel density.
11
+ * Image displays a sprite (2D texture) in the UI. Can be used for icons,
12
+ * backgrounds, or any visual element that needs a texture.
13
+ *
14
+ * **Properties:**
15
+ * - `image` - Direct texture assignment (convenience property)
16
+ * - `sprite` - Sprite object containing texture and rect info
17
+ * - `color` - Tint color applied to the image (inherited from Graphic)
18
+ *
19
+ * **Usage with Button:**
20
+ * Image is commonly paired with {@link Button} to create clickable
21
+ * UI elements with visual feedback via color tinting.
22
+ *
23
+ * @example Set an image texture
24
+ * ```ts
25
+ * const img = myIcon.getComponent(Image);
26
+ * img.image = myTexture;
27
+ * img.color = new RGBAColor(1, 0.5, 0.5, 1); // Red tint
28
+ * ```
29
+ *
14
30
  * @summary Display a 2D image in the UI
15
31
  * @category User Interface
16
32
  * @group Components
33
+ * @see {@link Canvas} for the UI root
34
+ * @see {@link Button} for clickable images
35
+ * @see {@link RawImage} for non-UI image display
17
36
  */
18
37
  export declare class Image extends MaskableGraphic {
19
38
  set image(img: Texture | null);
@@ -15,12 +15,31 @@ __decorate([
15
15
  serializable(Texture)
16
16
  ], Sprite.prototype, "texture", void 0);
17
17
  /**
18
- * Image is a UI component that displays a sprite (2D image) in the user interface.
19
- * You can set the image property to assign a texture to be displayed.
20
- * The sprite can be customized with various properties such as color tinting and pixel density.
18
+ * Image displays a sprite (2D texture) in the UI. Can be used for icons,
19
+ * backgrounds, or any visual element that needs a texture.
20
+ *
21
+ * **Properties:**
22
+ * - `image` - Direct texture assignment (convenience property)
23
+ * - `sprite` - Sprite object containing texture and rect info
24
+ * - `color` - Tint color applied to the image (inherited from Graphic)
25
+ *
26
+ * **Usage with Button:**
27
+ * Image is commonly paired with {@link Button} to create clickable
28
+ * UI elements with visual feedback via color tinting.
29
+ *
30
+ * @example Set an image texture
31
+ * ```ts
32
+ * const img = myIcon.getComponent(Image);
33
+ * img.image = myTexture;
34
+ * img.color = new RGBAColor(1, 0.5, 0.5, 1); // Red tint
35
+ * ```
36
+ *
21
37
  * @summary Display a 2D image in the UI
22
38
  * @category User Interface
23
39
  * @group Components
40
+ * @see {@link Canvas} for the UI root
41
+ * @see {@link Button} for clickable images
42
+ * @see {@link RawImage} for non-UI image display
24
43
  */
25
44
  export class Image extends MaskableGraphic {
26
45
  set image(img) {
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Image.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,MAAM;IAER,OAAO,GAAmB,IAAI,CAAC;IAE/B,IAAI,CAAqC;CAC5C;AAHG;IADC,YAAY,CAAC,OAAO,CAAC;uCACS;AAKnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,KAAM,SAAQ,eAAe;IAEtC,IAAI,KAAK,CAAC,GAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK;QACL,IAAI,IAAI,CAAC,MAAM;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,IAAI,MAAM,CAAC,MAA0B;QACjC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,OAAO,CAAU;IAGjB,uBAAuB,GAAW,CAAC,CAAC;IAEpC,eAAe;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,QAAQ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3B,KAAK,sBAAsB,CAAC;YAC5B,KAAK,UAAU,CAAC;YAChB,KAAK,YAAY,CAAC;YAClB,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC;SACnB;QACD,0FAA0F;QAC1F,0BAA0B;QAC1B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,EAAE;YAC/G,OAAO,IAAI,CAAC;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,cAAc,CAAC,IAAS;QAC9B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACrD,IAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE;gBACtC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;aAC3B;YACD,4CAA4C;YAC5C,yCAAyC;YACzC,yBAAyB;SAC5B;IAEL,CAAC;IAES,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,kFAAkF;QAClF,IAAI,IAAI,CAAC,eAAe,EAAE;YAAE,OAAO;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACJ;AAnDG;IADC,YAAY,CAAC,MAAM,CAAC;mCAGpB;AAUD;IADC,YAAY,EAAE;sDAC6B;AAyChD;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,eAAe;IAEzC,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,IAAI,WAAW,CAAC,OAA4B;QACxC,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO;YAAE,OAAO;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAW;IAErB,cAAc;QACpB,IAAG,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,qBAAqB;QACrB,0BAA0B;QAC1B,qCAAqC;QACrC,2CAA2C;QAC3C,IAAI;QACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;CACJ;AArBG;IADC,YAAY,CAAC,OAAO,CAAC;2CAGrB"}
@@ -1,9 +1,21 @@
1
1
  import { Intersection } from "three";
2
2
  import { type IRaycastOptions, RaycastOptions } from "../../engine/engine_physics.js";
3
3
  import { Behaviour } from "../Component.js";
4
- /** Derive from this class to create your own custom Raycaster
5
- * If you override awake, onEnable or onDisable, be sure to call the base class methods
6
- * Implement `performRaycast` to perform your custom raycasting logic
4
+ /**
5
+ * Base class for raycasters that detect pointer interactions.
6
+ * Derive from this class to create custom raycasting logic.
7
+ *
8
+ * **Built-in raycasters:**
9
+ * - {@link ObjectRaycaster} - Raycasts against 3D objects
10
+ * - {@link GraphicRaycaster} - Raycasts against UI elements
11
+ * - {@link SpatialGrabRaycaster} - Sphere overlap for XR grab
12
+ *
13
+ * **Important:** If you override `awake`, `onEnable`, or `onDisable`,
14
+ * call the base class methods to ensure proper registration with {@link EventSystem}.
15
+ *
16
+ * @category Interactivity
17
+ * @group Components
18
+ * @see {@link EventSystem} for the event dispatch system
7
19
  */
8
20
  export declare abstract class Raycaster extends Behaviour {
9
21
  awake(): void;
@@ -12,10 +24,22 @@ export declare abstract class Raycaster extends Behaviour {
12
24
  abstract performRaycast(_opts?: IRaycastOptions | RaycastOptions | null): Intersection[] | null;
13
25
  }
14
26
  /**
15
- * A Raycaster that performs raycasting against its own GameObject.
27
+ * ObjectRaycaster enables pointer interactions with 3D objects.
28
+ * Add this component to any object that needs click/hover detection.
29
+ *
30
+ * **Usage:**
31
+ * Objects with ObjectRaycaster will receive pointer events when
32
+ * they implement interfaces like {@link IPointerClickHandler}.
33
+ *
34
+ * **Note:**
35
+ * In older Needle Engine versions the ObjectRaycaster was required to be added to the Scene.
36
+ * This is no longer the case - the EventSystem will automatically handle raycasts.
37
+ *
16
38
  *
17
39
  * @category Interactivity
18
40
  * @group Components
41
+ * @see {@link IPointerClickHandler} for click events
42
+ * @see {@link DragControls} for drag interactions
19
43
  */
20
44
  export declare class ObjectRaycaster extends Raycaster {
21
45
  private targets;
@@ -25,20 +49,45 @@ export declare class ObjectRaycaster extends Raycaster {
25
49
  performRaycast(opts?: IRaycastOptions | RaycastOptions | null): Intersection[] | null;
26
50
  }
27
51
  /**
28
- * A Raycaster that performs raycasting against UI elements (objects with a CanvasRenderer component).
52
+ * GraphicRaycaster enables pointer interactions with UI elements.
53
+ * Add this to a {@link Canvas} or UI hierarchy to enable button clicks,
54
+ * hover effects, and other UI interactions.
55
+ *
56
+ * **Requirements:**
57
+ * - Must be on the same object as a Canvas or on a parent
58
+ * - UI elements need proper RectTransform setup
59
+ *
60
+ * @example Enable UI interaction
61
+ * ```ts
62
+ * // Add to Canvas object
63
+ * canvas.addComponent(GraphicRaycaster);
64
+ * // Now buttons and other UI elements will respond to clicks
65
+ * ```
29
66
  *
30
67
  * @summary Raycaster for UI elements
31
68
  * @category User Interface
32
69
  * @group Components
70
+ * @see {@link Canvas} for UI root
71
+ * @see {@link Button} for clickable UI
72
+ * @see {@link EventSystem} for event handling
33
73
  */
34
74
  export declare class GraphicRaycaster extends ObjectRaycaster {
35
75
  constructor();
36
76
  }
37
77
  /**
38
- * A Raycaster that performs sphere overlap raycasting for spatial grab interactions in XR.
78
+ * SpatialGrabRaycaster enables direct grab interactions in VR/AR.
79
+ * Uses sphere overlap detection around the controller/hand position
80
+ * to allow grabbing objects by reaching into them.
81
+ *
82
+ * **Features:**
83
+ * - Active only during XR sessions
84
+ * - Can be globally disabled via `SpatialGrabRaycaster.allow`
85
+ * - Works alongside ray-based interaction
39
86
  *
40
87
  * @category XR
41
88
  * @group Components
89
+ * @see {@link WebXR} for XR session management
90
+ * @see {@link DragControls} for object manipulation
42
91
  */
43
92
  export declare class SpatialGrabRaycaster extends Raycaster {
44
93
  /**
@@ -10,9 +10,21 @@ import { serializable } from "../../engine/engine_serialization.js";
10
10
  import { NeedleXRSession } from "../../engine/engine_xr.js";
11
11
  import { Behaviour } from "../Component.js";
12
12
  import { EventSystem } from "./EventSystem.js";
13
- /** Derive from this class to create your own custom Raycaster
14
- * If you override awake, onEnable or onDisable, be sure to call the base class methods
15
- * Implement `performRaycast` to perform your custom raycasting logic
13
+ /**
14
+ * Base class for raycasters that detect pointer interactions.
15
+ * Derive from this class to create custom raycasting logic.
16
+ *
17
+ * **Built-in raycasters:**
18
+ * - {@link ObjectRaycaster} - Raycasts against 3D objects
19
+ * - {@link GraphicRaycaster} - Raycasts against UI elements
20
+ * - {@link SpatialGrabRaycaster} - Sphere overlap for XR grab
21
+ *
22
+ * **Important:** If you override `awake`, `onEnable`, or `onDisable`,
23
+ * call the base class methods to ensure proper registration with {@link EventSystem}.
24
+ *
25
+ * @category Interactivity
26
+ * @group Components
27
+ * @see {@link EventSystem} for the event dispatch system
16
28
  */
17
29
  export class Raycaster extends Behaviour {
18
30
  awake() {
@@ -26,10 +38,22 @@ export class Raycaster extends Behaviour {
26
38
  }
27
39
  }
28
40
  /**
29
- * A Raycaster that performs raycasting against its own GameObject.
41
+ * ObjectRaycaster enables pointer interactions with 3D objects.
42
+ * Add this component to any object that needs click/hover detection.
43
+ *
44
+ * **Usage:**
45
+ * Objects with ObjectRaycaster will receive pointer events when
46
+ * they implement interfaces like {@link IPointerClickHandler}.
47
+ *
48
+ * **Note:**
49
+ * In older Needle Engine versions the ObjectRaycaster was required to be added to the Scene.
50
+ * This is no longer the case - the EventSystem will automatically handle raycasts.
51
+ *
30
52
  *
31
53
  * @category Interactivity
32
54
  * @group Components
55
+ * @see {@link IPointerClickHandler} for click events
56
+ * @see {@link DragControls} for drag interactions
33
57
  */
34
58
  export class ObjectRaycaster extends Raycaster {
35
59
  targets = null;
@@ -68,11 +92,27 @@ __decorate([
68
92
  serializable()
69
93
  ], ObjectRaycaster.prototype, "ignoreSkinnedMeshes", void 0);
70
94
  /**
71
- * A Raycaster that performs raycasting against UI elements (objects with a CanvasRenderer component).
95
+ * GraphicRaycaster enables pointer interactions with UI elements.
96
+ * Add this to a {@link Canvas} or UI hierarchy to enable button clicks,
97
+ * hover effects, and other UI interactions.
98
+ *
99
+ * **Requirements:**
100
+ * - Must be on the same object as a Canvas or on a parent
101
+ * - UI elements need proper RectTransform setup
102
+ *
103
+ * @example Enable UI interaction
104
+ * ```ts
105
+ * // Add to Canvas object
106
+ * canvas.addComponent(GraphicRaycaster);
107
+ * // Now buttons and other UI elements will respond to clicks
108
+ * ```
72
109
  *
73
110
  * @summary Raycaster for UI elements
74
111
  * @category User Interface
75
112
  * @group Components
113
+ * @see {@link Canvas} for UI root
114
+ * @see {@link Button} for clickable UI
115
+ * @see {@link EventSystem} for event handling
76
116
  */
77
117
  export class GraphicRaycaster extends ObjectRaycaster {
78
118
  // eventCamera: Camera | null = null;
@@ -84,10 +124,19 @@ export class GraphicRaycaster extends ObjectRaycaster {
84
124
  }
85
125
  }
86
126
  /**
87
- * A Raycaster that performs sphere overlap raycasting for spatial grab interactions in XR.
127
+ * SpatialGrabRaycaster enables direct grab interactions in VR/AR.
128
+ * Uses sphere overlap detection around the controller/hand position
129
+ * to allow grabbing objects by reaching into them.
130
+ *
131
+ * **Features:**
132
+ * - Active only during XR sessions
133
+ * - Can be globally disabled via `SpatialGrabRaycaster.allow`
134
+ * - Works alongside ray-based interaction
88
135
  *
89
136
  * @category XR
90
137
  * @group Components
138
+ * @see {@link WebXR} for XR session management
139
+ * @see {@link DragControls} for object manipulation
91
140
  */
92
141
  export class SpatialGrabRaycaster extends Raycaster {
93
142
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Raycaster.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Raycaster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Raycaster.js","sourceRoot":"","sources":["../../../src/engine-components/ui/Raycaster.ts"],"names":[],"mappings":"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"}
@@ -26,11 +26,33 @@ export declare enum FontStyle {
26
26
  BoldAndItalic = 3
27
27
  }
28
28
  /**
29
- * Text is a UI component that displays text in the user interface.
29
+ * Text displays text content in the UI. Supports custom fonts, colors,
30
+ * alignment, and basic rich text formatting.
31
+ *
32
+ * **Text properties:**
33
+ * - `text` - The string content to display
34
+ * - `fontSize` - Size of the text in pixels
35
+ * - `color` - Text color (inherited from Graphic)
36
+ * - `alignment` - Text anchor position (UpperLeft, MiddleCenter, etc.)
37
+ *
38
+ * **Fonts:**
39
+ * Set the `font` property to a URL pointing to a font file.
40
+ * Supports MSDF (Multi-channel Signed Distance Field) fonts for crisp rendering.
41
+ *
42
+ * @example Update text at runtime
43
+ * ```ts
44
+ * const text = myLabel.getComponent(Text);
45
+ * text.text = "Score: " + score;
46
+ * text.fontSize = 24;
47
+ * text.color = new RGBAColor(1, 1, 1, 1);
48
+ * ```
30
49
  *
31
50
  * @summary Display text in the UI
32
51
  * @category User Interface
33
52
  * @group Components
53
+ * @see {@link Canvas} for the UI root
54
+ * @see {@link TextAnchor} for alignment options
55
+ * @see {@link FontStyle} for bold/italic styles
34
56
  */
35
57
  export declare class Text extends Graphic implements IHasAlphaFactor, ICanvasEventReceiver {
36
58
  alignment: TextAnchor;
@@ -41,11 +41,33 @@ export var FontStyle;
41
41
  FontStyle[FontStyle["BoldAndItalic"] = 3] = "BoldAndItalic";
42
42
  })(FontStyle || (FontStyle = {}));
43
43
  /**
44
- * Text is a UI component that displays text in the user interface.
44
+ * Text displays text content in the UI. Supports custom fonts, colors,
45
+ * alignment, and basic rich text formatting.
46
+ *
47
+ * **Text properties:**
48
+ * - `text` - The string content to display
49
+ * - `fontSize` - Size of the text in pixels
50
+ * - `color` - Text color (inherited from Graphic)
51
+ * - `alignment` - Text anchor position (UpperLeft, MiddleCenter, etc.)
52
+ *
53
+ * **Fonts:**
54
+ * Set the `font` property to a URL pointing to a font file.
55
+ * Supports MSDF (Multi-channel Signed Distance Field) fonts for crisp rendering.
56
+ *
57
+ * @example Update text at runtime
58
+ * ```ts
59
+ * const text = myLabel.getComponent(Text);
60
+ * text.text = "Score: " + score;
61
+ * text.fontSize = 24;
62
+ * text.color = new RGBAColor(1, 1, 1, 1);
63
+ * ```
45
64
  *
46
65
  * @summary Display text in the UI
47
66
  * @category User Interface
48
67
  * @group Components
68
+ * @see {@link Canvas} for the UI root
69
+ * @see {@link TextAnchor} for alignment options
70
+ * @see {@link FontStyle} for bold/italic styles
49
71
  */
50
72
  export class Text extends Graphic {
51
73
  alignment = TextAnchor.UpperLeft;