@needle-tools/engine 4.11.5-next.ca8b86d → 4.11.5-next.d5cd569

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 (438) hide show
  1. package/CHANGELOG.md +7 -5
  2. package/components.needle.json +1 -1
  3. package/dist/generateMeshBVH.worker-mO20N_b8.js +21 -0
  4. package/dist/{gltf-progressive-GwdQV1Qx.umd.cjs → gltf-progressive-DWcmTMCh.umd.cjs} +1 -1
  5. package/dist/{gltf-progressive-CftVUJy3.min.js → gltf-progressive-DZrY8VT6.min.js} +2 -2
  6. package/dist/{gltf-progressive-BvlZQAkt.js → gltf-progressive-DgYz5BYa.js} +19 -19
  7. package/dist/loader.worker-Dip-PthR.js +23 -0
  8. package/dist/{needle-engine.bundle-DAt-oKnG.min.js → needle-engine.bundle-B24XE7ZO.min.js} +147 -152
  9. package/dist/{needle-engine.bundle-DsQVlU6y.umd.cjs → needle-engine.bundle-BJKcKPcu.umd.cjs} +141 -146
  10. package/dist/{needle-engine.bundle-9X7aq_Lu.js → needle-engine.bundle-CQetzopB.js} +4844 -4710
  11. package/dist/needle-engine.d.ts +18189 -1
  12. package/dist/needle-engine.js +336 -335
  13. package/dist/needle-engine.min.js +1 -1
  14. package/dist/needle-engine.umd.cjs +1 -1
  15. package/dist/{postprocessing-CJC0Npcd.js → postprocessing-BTW9pD_s.js} +1822 -1723
  16. package/dist/{postprocessing-DrM4PWU3.umd.cjs → postprocessing-CMgoN5t5.umd.cjs} +229 -158
  17. package/dist/{postprocessing-l7zsdO_Q.min.js → postprocessing-DYDtB188.min.js} +227 -156
  18. package/dist/rapier-B3oL1ap-.js +5217 -0
  19. package/dist/rapier-DJ-luMxr.min.js +1 -0
  20. package/dist/rapier-DQltNJbN.umd.cjs +1 -0
  21. package/dist/{three-BDW9I486.min.js → three-B7CT31Bt.min.js} +1 -5
  22. package/dist/{three-MHVqtJYj.js → three-DfMvBzXi.js} +0 -5
  23. package/dist/{three-examples-CgwGHSgz.umd.cjs → three-examples-CsW4_6LI.umd.cjs} +2 -7
  24. package/dist/{three-examples-fvEPSC8L.min.js → three-examples-D1P7eEhn.min.js} +2 -7
  25. package/dist/{three-examples-C5Ht-QFN.js → three-examples-D1SK93ek.js} +1 -7
  26. package/dist/{three-mesh-ui-BjWTTk1R.js → three-mesh-ui-C_uSB5dD.js} +1 -1
  27. package/dist/{three-mesh-ui-Bm32sS2a.umd.cjs → three-mesh-ui-DpATDXwU.umd.cjs} +1 -1
  28. package/dist/{three-mesh-ui-CLdkp21K.min.js → three-mesh-ui-LQ44s0AL.min.js} +1 -1
  29. package/dist/{three-iFaDq9U3.umd.cjs → three-qj71I7J3.umd.cjs} +2 -6
  30. package/dist/{vendor-CsyK1CFs.min.js → vendor-BKGa4GE0.min.js} +34 -39
  31. package/dist/{vendor-petGQl0N.js → vendor-D0zoswDa.js} +1626 -1605
  32. package/dist/{vendor-6kAXU6fm.umd.cjs → vendor-UCpFAwt1.umd.cjs} +30 -35
  33. package/lib/engine/debug/debug_spector.d.ts +16 -0
  34. package/lib/engine/debug/debug_spector.js +28 -0
  35. package/lib/engine/debug/debug_spector.js.map +1 -0
  36. package/lib/engine/engine_application.d.ts +7 -0
  37. package/lib/engine/engine_application.js +8 -1
  38. package/lib/engine/engine_application.js.map +1 -1
  39. package/lib/engine/engine_context.d.ts +15 -5
  40. package/lib/engine/engine_context.js +29 -5
  41. package/lib/engine/engine_context.js.map +1 -1
  42. package/lib/engine/engine_physics.js +6 -2
  43. package/lib/engine/engine_physics.js.map +1 -1
  44. package/lib/engine/engine_physics_rapier.d.ts +11 -2
  45. package/lib/engine/engine_physics_rapier.js +9 -0
  46. package/lib/engine/engine_physics_rapier.js.map +1 -1
  47. package/lib/engine/engine_scenelighting.d.ts +12 -1
  48. package/lib/engine/engine_scenelighting.js +21 -1
  49. package/lib/engine/engine_scenelighting.js.map +1 -1
  50. package/lib/engine/engine_texture.d.ts +1 -1
  51. package/lib/engine/engine_tonemapping.d.ts +1 -1
  52. package/lib/engine/engine_types.d.ts +16 -0
  53. package/lib/engine/engine_typestore.d.ts +1 -0
  54. package/lib/engine/engine_typestore.js +5 -6
  55. package/lib/engine/engine_typestore.js.map +1 -1
  56. package/lib/engine/webcomponents/logo-element.d.ts +11 -0
  57. package/lib/engine/webcomponents/logo-element.js +6 -0
  58. package/lib/engine/webcomponents/logo-element.js.map +1 -1
  59. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +24 -3
  60. package/lib/engine/webcomponents/needle menu/needle-menu.js +18 -3
  61. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  62. package/lib/engine/webcomponents/needle-button.d.ts +5 -0
  63. package/lib/engine/webcomponents/needle-button.js.map +1 -1
  64. package/lib/engine/webcomponents/needle-engine.attributes.d.ts +11 -2
  65. package/lib/engine/webcomponents/needle-engine.d.ts +162 -8
  66. package/lib/engine/webcomponents/needle-engine.js +45 -7
  67. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  68. package/lib/engine/xr/NeedleXRSession.js +2 -1
  69. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  70. package/lib/engine-components/AlignmentConstraint.d.ts +9 -0
  71. package/lib/engine-components/AlignmentConstraint.js +9 -0
  72. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  73. package/lib/engine-components/Animator.d.ts +1 -0
  74. package/lib/engine-components/Animator.js.map +1 -1
  75. package/lib/engine-components/AudioListener.d.ts +2 -0
  76. package/lib/engine-components/AudioListener.js +2 -0
  77. package/lib/engine-components/AudioListener.js.map +1 -1
  78. package/lib/engine-components/AudioSource.d.ts +1 -0
  79. package/lib/engine-components/AudioSource.js +1 -0
  80. package/lib/engine-components/AudioSource.js.map +1 -1
  81. package/lib/engine-components/AxesHelper.d.ts +2 -0
  82. package/lib/engine-components/AxesHelper.js +2 -0
  83. package/lib/engine-components/AxesHelper.js.map +1 -1
  84. package/lib/engine-components/Camera.d.ts +1 -0
  85. package/lib/engine-components/Camera.js +1 -0
  86. package/lib/engine-components/Camera.js.map +1 -1
  87. package/lib/engine-components/CharacterController.d.ts +4 -1
  88. package/lib/engine-components/CharacterController.js +4 -1
  89. package/lib/engine-components/CharacterController.js.map +1 -1
  90. package/lib/engine-components/Component.d.ts +5 -0
  91. package/lib/engine-components/Component.js +7 -0
  92. package/lib/engine-components/Component.js.map +1 -1
  93. package/lib/engine-components/DeleteBox.d.ts +2 -0
  94. package/lib/engine-components/DeleteBox.js +2 -0
  95. package/lib/engine-components/DeleteBox.js.map +1 -1
  96. package/lib/engine-components/DeviceFlag.d.ts +4 -0
  97. package/lib/engine-components/DeviceFlag.js +4 -0
  98. package/lib/engine-components/DeviceFlag.js.map +1 -1
  99. package/lib/engine-components/DragControls.d.ts +1 -0
  100. package/lib/engine-components/DragControls.js +1 -0
  101. package/lib/engine-components/DragControls.js.map +1 -1
  102. package/lib/engine-components/DropListener.d.ts +1 -0
  103. package/lib/engine-components/DropListener.js +1 -0
  104. package/lib/engine-components/DropListener.js.map +1 -1
  105. package/lib/engine-components/Duplicatable.d.ts +1 -0
  106. package/lib/engine-components/Duplicatable.js +1 -0
  107. package/lib/engine-components/Duplicatable.js.map +1 -1
  108. package/lib/engine-components/EventTrigger.d.ts +2 -0
  109. package/lib/engine-components/EventTrigger.js +2 -0
  110. package/lib/engine-components/EventTrigger.js.map +1 -1
  111. package/lib/engine-components/GridHelper.d.ts +2 -0
  112. package/lib/engine-components/GridHelper.js +2 -0
  113. package/lib/engine-components/GridHelper.js.map +1 -1
  114. package/lib/engine-components/GroundProjection.d.ts +1 -0
  115. package/lib/engine-components/GroundProjection.js +1 -0
  116. package/lib/engine-components/GroundProjection.js.map +1 -1
  117. package/lib/engine-components/LODGroup.d.ts +2 -0
  118. package/lib/engine-components/LODGroup.js +2 -0
  119. package/lib/engine-components/LODGroup.js.map +1 -1
  120. package/lib/engine-components/Light.d.ts +1 -0
  121. package/lib/engine-components/Light.js +1 -0
  122. package/lib/engine-components/Light.js.map +1 -1
  123. package/lib/engine-components/LookAtConstraint.d.ts +1 -0
  124. package/lib/engine-components/LookAtConstraint.js +1 -0
  125. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  126. package/lib/engine-components/NeedleMenu.d.ts +1 -0
  127. package/lib/engine-components/NeedleMenu.js +1 -0
  128. package/lib/engine-components/NeedleMenu.js.map +1 -1
  129. package/lib/engine-components/NestedGltf.d.ts +1 -0
  130. package/lib/engine-components/NestedGltf.js +1 -0
  131. package/lib/engine-components/NestedGltf.js.map +1 -1
  132. package/lib/engine-components/Networking.d.ts +1 -0
  133. package/lib/engine-components/Networking.js +1 -0
  134. package/lib/engine-components/Networking.js.map +1 -1
  135. package/lib/engine-components/OffsetConstraint.d.ts +7 -0
  136. package/lib/engine-components/OffsetConstraint.js +7 -0
  137. package/lib/engine-components/OffsetConstraint.js.map +1 -1
  138. package/lib/engine-components/OrbitControls.d.ts +1 -0
  139. package/lib/engine-components/OrbitControls.js +1 -0
  140. package/lib/engine-components/OrbitControls.js.map +1 -1
  141. package/lib/engine-components/PlayerColor.d.ts +2 -0
  142. package/lib/engine-components/PlayerColor.js +2 -0
  143. package/lib/engine-components/PlayerColor.js.map +1 -1
  144. package/lib/engine-components/ReflectionProbe.d.ts +1 -0
  145. package/lib/engine-components/ReflectionProbe.js +17 -10
  146. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  147. package/lib/engine-components/Renderer.js +2 -2
  148. package/lib/engine-components/Renderer.js.map +1 -1
  149. package/lib/engine-components/RendererInstancing.d.ts +5 -3
  150. package/lib/engine-components/RendererInstancing.js +64 -31
  151. package/lib/engine-components/RendererInstancing.js.map +1 -1
  152. package/lib/engine-components/RigidBody.d.ts +1 -0
  153. package/lib/engine-components/RigidBody.js +1 -0
  154. package/lib/engine-components/RigidBody.js.map +1 -1
  155. package/lib/engine-components/SceneSwitcher.d.ts +1 -0
  156. package/lib/engine-components/SceneSwitcher.js +1 -0
  157. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  158. package/lib/engine-components/ScreenCapture.d.ts +1 -0
  159. package/lib/engine-components/ScreenCapture.js +1 -0
  160. package/lib/engine-components/ScreenCapture.js.map +1 -1
  161. package/lib/engine-components/SeeThrough.d.ts +1 -0
  162. package/lib/engine-components/SeeThrough.js +1 -0
  163. package/lib/engine-components/SeeThrough.js.map +1 -1
  164. package/lib/engine-components/ShadowCatcher.d.ts +2 -0
  165. package/lib/engine-components/ShadowCatcher.js +2 -0
  166. package/lib/engine-components/ShadowCatcher.js.map +1 -1
  167. package/lib/engine-components/Skybox.d.ts +16 -5
  168. package/lib/engine-components/Skybox.js +38 -25
  169. package/lib/engine-components/Skybox.js.map +1 -1
  170. package/lib/engine-components/SmoothFollow.d.ts +1 -0
  171. package/lib/engine-components/SmoothFollow.js +1 -0
  172. package/lib/engine-components/SmoothFollow.js.map +1 -1
  173. package/lib/engine-components/SpatialTrigger.d.ts +1 -0
  174. package/lib/engine-components/SpatialTrigger.js +1 -0
  175. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  176. package/lib/engine-components/SpectatorCamera.d.ts +1 -0
  177. package/lib/engine-components/SpectatorCamera.js +1 -0
  178. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  179. package/lib/engine-components/SpriteRenderer.d.ts +1 -0
  180. package/lib/engine-components/SpriteRenderer.js +1 -0
  181. package/lib/engine-components/SpriteRenderer.js.map +1 -1
  182. package/lib/engine-components/SyncedCamera.d.ts +2 -0
  183. package/lib/engine-components/SyncedCamera.js +2 -0
  184. package/lib/engine-components/SyncedCamera.js.map +1 -1
  185. package/lib/engine-components/SyncedRoom.d.ts +1 -0
  186. package/lib/engine-components/SyncedRoom.js +1 -0
  187. package/lib/engine-components/SyncedRoom.js.map +1 -1
  188. package/lib/engine-components/SyncedTransform.d.ts +2 -0
  189. package/lib/engine-components/SyncedTransform.js +2 -0
  190. package/lib/engine-components/SyncedTransform.js.map +1 -1
  191. package/lib/engine-components/TransformGizmo.d.ts +2 -0
  192. package/lib/engine-components/TransformGizmo.js +2 -0
  193. package/lib/engine-components/TransformGizmo.js.map +1 -1
  194. package/lib/engine-components/VideoPlayer.d.ts +1 -0
  195. package/lib/engine-components/VideoPlayer.js +1 -0
  196. package/lib/engine-components/VideoPlayer.js.map +1 -1
  197. package/lib/engine-components/Voip.d.ts +1 -0
  198. package/lib/engine-components/Voip.js +1 -0
  199. package/lib/engine-components/Voip.js.map +1 -1
  200. package/lib/engine-components/export/usdz/USDZExporter.d.ts +24 -3
  201. package/lib/engine-components/export/usdz/USDZExporter.js +36 -2
  202. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  203. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +18 -0
  204. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +18 -0
  205. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  206. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -0
  207. package/lib/engine-components/particlesystem/ParticleSystem.js +1 -0
  208. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  209. package/lib/engine-components/physics/Attractor.d.ts +3 -0
  210. package/lib/engine-components/physics/Attractor.js +3 -0
  211. package/lib/engine-components/physics/Attractor.js.map +1 -1
  212. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -0
  213. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +1 -0
  214. package/lib/engine-components/postprocessing/Effects/BloomEffect.js.map +1 -1
  215. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +4 -0
  216. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +4 -0
  217. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js.map +1 -1
  218. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +3 -0
  219. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +3 -0
  220. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js.map +1 -1
  221. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +4 -0
  222. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +4 -0
  223. package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -1
  224. package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +1 -0
  225. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +1 -0
  226. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js.map +1 -1
  227. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +3 -0
  228. package/lib/engine-components/postprocessing/Effects/Pixelation.js +3 -0
  229. package/lib/engine-components/postprocessing/Effects/Pixelation.js.map +1 -1
  230. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +4 -0
  231. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +4 -0
  232. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js.map +1 -1
  233. package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +4 -0
  234. package/lib/engine-components/postprocessing/Effects/Sharpening.js +4 -0
  235. package/lib/engine-components/postprocessing/Effects/Sharpening.js.map +1 -1
  236. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +4 -0
  237. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +4 -0
  238. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js.map +1 -1
  239. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +4 -0
  240. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +4 -0
  241. package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -1
  242. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +4 -0
  243. package/lib/engine-components/postprocessing/Effects/Vignette.js +4 -0
  244. package/lib/engine-components/postprocessing/Effects/Vignette.js.map +1 -1
  245. package/lib/engine-components/postprocessing/Volume.d.ts +1 -0
  246. package/lib/engine-components/postprocessing/Volume.js +1 -0
  247. package/lib/engine-components/postprocessing/Volume.js.map +1 -1
  248. package/lib/engine-components/splines/Spline.d.ts +1 -0
  249. package/lib/engine-components/splines/Spline.js +1 -0
  250. package/lib/engine-components/splines/Spline.js.map +1 -1
  251. package/lib/engine-components/splines/SplineWalker.d.ts +1 -0
  252. package/lib/engine-components/splines/SplineWalker.js +1 -0
  253. package/lib/engine-components/splines/SplineWalker.js.map +1 -1
  254. package/lib/engine-components/timeline/PlayableDirector.d.ts +1 -0
  255. package/lib/engine-components/timeline/PlayableDirector.js +1 -0
  256. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  257. package/lib/engine-components/timeline/SignalAsset.d.ts +1 -0
  258. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  259. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  260. package/lib/engine-components/ui/Button.d.ts +4 -0
  261. package/lib/engine-components/ui/Button.js +4 -0
  262. package/lib/engine-components/ui/Button.js.map +1 -1
  263. package/lib/engine-components/ui/Canvas.d.ts +5 -0
  264. package/lib/engine-components/ui/Canvas.js +5 -0
  265. package/lib/engine-components/ui/Canvas.js.map +1 -1
  266. package/lib/engine-components/ui/CanvasGroup.d.ts +4 -0
  267. package/lib/engine-components/ui/CanvasGroup.js +4 -0
  268. package/lib/engine-components/ui/CanvasGroup.js.map +1 -1
  269. package/lib/engine-components/ui/EventSystem.d.ts +2 -0
  270. package/lib/engine-components/ui/EventSystem.js +2 -0
  271. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  272. package/lib/engine-components/ui/Image.d.ts +4 -0
  273. package/lib/engine-components/ui/Image.js +4 -0
  274. package/lib/engine-components/ui/Image.js.map +1 -1
  275. package/lib/engine-components/ui/InputField.d.ts +4 -0
  276. package/lib/engine-components/ui/InputField.js +4 -0
  277. package/lib/engine-components/ui/InputField.js.map +1 -1
  278. package/lib/engine-components/ui/Outline.d.ts +7 -0
  279. package/lib/engine-components/ui/Outline.js +7 -0
  280. package/lib/engine-components/ui/Outline.js.map +1 -1
  281. package/lib/engine-components/ui/Text.d.ts +1 -0
  282. package/lib/engine-components/ui/Text.js +1 -0
  283. package/lib/engine-components/ui/Text.js.map +1 -1
  284. package/lib/engine-components/utils/LookAt.d.ts +1 -0
  285. package/lib/engine-components/utils/LookAt.js +1 -0
  286. package/lib/engine-components/utils/LookAt.js.map +1 -1
  287. package/lib/engine-components/web/Clickthrough.d.ts +1 -1
  288. package/lib/engine-components/web/Clickthrough.js +1 -1
  289. package/lib/engine-components/web/CursorFollow.d.ts +2 -0
  290. package/lib/engine-components/web/CursorFollow.js +3 -0
  291. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  292. package/lib/engine-components/web/HoverAnimation.d.ts +1 -0
  293. package/lib/engine-components/web/HoverAnimation.js +1 -0
  294. package/lib/engine-components/web/HoverAnimation.js.map +1 -1
  295. package/lib/engine-components/web/ScrollFollow.d.ts +2 -0
  296. package/lib/engine-components/web/ScrollFollow.js +2 -0
  297. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  298. package/lib/engine-components/web/ViewBox.d.ts +1 -0
  299. package/lib/engine-components/web/ViewBox.js +1 -0
  300. package/lib/engine-components/web/ViewBox.js.map +1 -1
  301. package/lib/engine-components/webxr/Avatar.d.ts +5 -0
  302. package/lib/engine-components/webxr/Avatar.js +5 -0
  303. package/lib/engine-components/webxr/Avatar.js.map +1 -1
  304. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +1 -0
  305. package/lib/engine-components/webxr/WebARCameraBackground.js +1 -0
  306. package/lib/engine-components/webxr/WebARCameraBackground.js.map +1 -1
  307. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +1 -0
  308. package/lib/engine-components/webxr/WebARSessionRoot.js +1 -0
  309. package/lib/engine-components/webxr/WebARSessionRoot.js.map +1 -1
  310. package/lib/engine-components/webxr/WebXR.d.ts +1 -1
  311. package/lib/engine-components/webxr/WebXR.js +5 -1
  312. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  313. package/lib/engine-components/webxr/controllers/XRControllerFollow.d.ts +1 -0
  314. package/lib/engine-components/webxr/controllers/XRControllerFollow.js +1 -0
  315. package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
  316. package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +4 -0
  317. package/lib/engine-components/webxr/controllers/XRControllerModel.js +4 -0
  318. package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
  319. package/lib/engine-components/webxr/controllers/XRControllerMovement.d.ts +1 -0
  320. package/lib/engine-components/webxr/controllers/XRControllerMovement.js +1 -0
  321. package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
  322. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +2 -0
  323. package/lib/engine-components-experimental/networking/PlayerSync.js +2 -0
  324. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  325. package/lib/needle-engine.js +2 -1
  326. package/lib/needle-engine.js.map +1 -1
  327. package/package.json +17 -11
  328. package/plugins/types/needleConfig.d.ts +1 -1
  329. package/plugins/types/next.d.ts +1 -1
  330. package/plugins/types/userconfig.d.ts +1 -1
  331. package/src/engine/debug/debug_spector.ts +43 -0
  332. package/src/engine/engine_application.ts +16 -1
  333. package/src/engine/engine_context.ts +41 -7
  334. package/src/engine/engine_physics.ts +6 -2
  335. package/src/engine/engine_physics_rapier.ts +11 -2
  336. package/src/engine/engine_scenelighting.ts +30 -8
  337. package/src/engine/engine_texture.ts +1 -1
  338. package/src/engine/engine_tonemapping.ts +1 -1
  339. package/src/engine/engine_types.ts +17 -0
  340. package/src/engine/engine_typestore.ts +5 -6
  341. package/src/engine/webcomponents/logo-element.ts +12 -0
  342. package/src/engine/webcomponents/needle menu/needle-menu.ts +24 -3
  343. package/src/engine/webcomponents/needle-button.ts +6 -0
  344. package/src/engine/webcomponents/needle-engine.attributes.ts +12 -3
  345. package/src/engine/webcomponents/needle-engine.ts +172 -11
  346. package/src/engine/xr/NeedleXRSession.ts +3 -1
  347. package/src/engine-components/AlignmentConstraint.ts +9 -0
  348. package/src/engine-components/Animator.ts +1 -0
  349. package/src/engine-components/AudioListener.ts +2 -0
  350. package/src/engine-components/AudioSource.ts +1 -0
  351. package/src/engine-components/AxesHelper.ts +2 -0
  352. package/src/engine-components/Camera.ts +1 -0
  353. package/src/engine-components/CharacterController.ts +4 -1
  354. package/src/engine-components/Component.ts +9 -1
  355. package/src/engine-components/DeleteBox.ts +2 -0
  356. package/src/engine-components/DeviceFlag.ts +4 -0
  357. package/src/engine-components/DragControls.ts +1 -0
  358. package/src/engine-components/DropListener.ts +1 -0
  359. package/src/engine-components/Duplicatable.ts +1 -0
  360. package/src/engine-components/EventTrigger.ts +2 -0
  361. package/src/engine-components/GridHelper.ts +2 -0
  362. package/src/engine-components/GroundProjection.ts +1 -0
  363. package/src/engine-components/LODGroup.ts +2 -0
  364. package/src/engine-components/Light.ts +1 -0
  365. package/src/engine-components/LookAtConstraint.ts +1 -0
  366. package/src/engine-components/NeedleMenu.ts +1 -0
  367. package/src/engine-components/NestedGltf.ts +1 -0
  368. package/src/engine-components/Networking.ts +1 -0
  369. package/src/engine-components/OffsetConstraint.ts +7 -0
  370. package/src/engine-components/OrbitControls.ts +1 -0
  371. package/src/engine-components/PlayerColor.ts +2 -0
  372. package/src/engine-components/ReflectionProbe.ts +19 -10
  373. package/src/engine-components/Renderer.ts +2 -2
  374. package/src/engine-components/RendererInstancing.ts +69 -33
  375. package/src/engine-components/RigidBody.ts +1 -0
  376. package/src/engine-components/SceneSwitcher.ts +1 -0
  377. package/src/engine-components/ScreenCapture.ts +1 -0
  378. package/src/engine-components/SeeThrough.ts +1 -0
  379. package/src/engine-components/ShadowCatcher.ts +2 -0
  380. package/src/engine-components/Skybox.ts +48 -36
  381. package/src/engine-components/SmoothFollow.ts +1 -0
  382. package/src/engine-components/SpatialTrigger.ts +1 -0
  383. package/src/engine-components/SpectatorCamera.ts +1 -0
  384. package/src/engine-components/SpriteRenderer.ts +1 -0
  385. package/src/engine-components/SyncedCamera.ts +2 -0
  386. package/src/engine-components/SyncedRoom.ts +1 -0
  387. package/src/engine-components/SyncedTransform.ts +2 -0
  388. package/src/engine-components/TransformGizmo.ts +2 -0
  389. package/src/engine-components/VideoPlayer.ts +1 -0
  390. package/src/engine-components/Voip.ts +1 -0
  391. package/src/engine-components/export/usdz/USDZExporter.ts +52 -5
  392. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +18 -0
  393. package/src/engine-components/particlesystem/ParticleSystem.ts +1 -0
  394. package/src/engine-components/physics/Attractor.ts +3 -0
  395. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +1 -0
  396. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +4 -0
  397. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +3 -0
  398. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +4 -0
  399. package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +1 -0
  400. package/src/engine-components/postprocessing/Effects/Pixelation.ts +3 -0
  401. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +4 -0
  402. package/src/engine-components/postprocessing/Effects/Sharpening.ts +4 -0
  403. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +4 -0
  404. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +4 -0
  405. package/src/engine-components/postprocessing/Effects/Vignette.ts +4 -0
  406. package/src/engine-components/postprocessing/Volume.ts +1 -0
  407. package/src/engine-components/splines/Spline.ts +1 -0
  408. package/src/engine-components/splines/SplineWalker.ts +1 -0
  409. package/src/engine-components/timeline/PlayableDirector.ts +1 -0
  410. package/src/engine-components/timeline/SignalAsset.ts +1 -0
  411. package/src/engine-components/ui/Button.ts +4 -0
  412. package/src/engine-components/ui/Canvas.ts +5 -0
  413. package/src/engine-components/ui/CanvasGroup.ts +4 -0
  414. package/src/engine-components/ui/EventSystem.ts +2 -0
  415. package/src/engine-components/ui/Image.ts +4 -0
  416. package/src/engine-components/ui/InputField.ts +4 -0
  417. package/src/engine-components/ui/Outline.ts +7 -0
  418. package/src/engine-components/ui/Text.ts +1 -0
  419. package/src/engine-components/utils/LookAt.ts +1 -0
  420. package/src/engine-components/web/Clickthrough.ts +1 -1
  421. package/src/engine-components/web/CursorFollow.ts +4 -0
  422. package/src/engine-components/web/HoverAnimation.ts +1 -0
  423. package/src/engine-components/web/ScrollFollow.ts +2 -0
  424. package/src/engine-components/web/ViewBox.ts +1 -0
  425. package/src/engine-components/webxr/Avatar.ts +5 -0
  426. package/src/engine-components/webxr/WebARCameraBackground.ts +1 -0
  427. package/src/engine-components/webxr/WebARSessionRoot.ts +1 -0
  428. package/src/engine-components/webxr/WebXR.ts +5 -1
  429. package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -0
  430. package/src/engine-components/webxr/controllers/XRControllerModel.ts +4 -0
  431. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +1 -0
  432. package/src/engine-components-experimental/networking/PlayerSync.ts +2 -0
  433. package/src/needle-engine.ts +4 -2
  434. package/dist/generateMeshBVH.worker-B9bjdr6J.js +0 -25
  435. package/dist/loader.worker-CiTwpNPW.js +0 -27
  436. package/dist/rapier-BqdcSmKY.umd.cjs +0 -1
  437. package/dist/rapier-Cg3w3nFI.min.js +0 -1
  438. package/dist/rapier-sU12SWAs.js +0 -5217
@@ -1,3 +1,12 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "needle-logo-element": NeedleLogoElement;
4
+ }
5
+ }
6
+ /**
7
+ * Needle logo web component used in the hosting UI (small, compact logo or full)
8
+ * @element needle-logo-element
9
+ */
1
10
  export declare class NeedleLogoElement extends HTMLElement {
2
11
  static get elementName(): string;
3
12
  static create(): NeedleLogoElement;
@@ -5,6 +14,8 @@ export declare class NeedleLogoElement extends HTMLElement {
5
14
  private readonly _root;
6
15
  private readonly wrapper;
7
16
  private readonly logoElement;
17
+ /** Show or hide the logo element (used by the menu) */
8
18
  setLogoVisible(val: boolean): void;
19
+ /** Switch the logo between full and compact versions */
9
20
  setType(type: "full" | "compact"): void;
10
21
  }
@@ -1,5 +1,9 @@
1
1
  import { needleLogoOnlySVG, needleLogoSVG } from "../assets/index.js";
2
2
  const elementName = "needle-logo-element";
3
+ /**
4
+ * Needle logo web component used in the hosting UI (small, compact logo or full)
5
+ * @element needle-logo-element
6
+ */
3
7
  export class NeedleLogoElement extends HTMLElement {
4
8
  static get elementName() { return elementName; }
5
9
  static create() {
@@ -71,9 +75,11 @@ export class NeedleLogoElement extends HTMLElement {
71
75
  _root;
72
76
  wrapper;
73
77
  logoElement;
78
+ /** Show or hide the logo element (used by the menu) */
74
79
  setLogoVisible(val) {
75
80
  this.logoElement.style.display = val ? "block" : "none";
76
81
  }
82
+ /** Switch the logo between full and compact versions */
77
83
  setType(type) {
78
84
  if (type === "full") {
79
85
  this.logoElement.src = needleLogoSVG;
@@ -1 +1 @@
1
- {"version":3,"file":"logo-element.js","sourceRoot":"","sources":["../../../src/engine/webcomponents/logo-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEzF,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAE9C,MAAM,KAAK,WAAW,KAAK,OAAO,WAAW,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,MAAM;QACT,OAAO,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAsB,CAAC;IACpE,CAAC;IAED;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAyCiB,aAAa;;SAElD,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAqB,CAAC;QAE5E,yCAAyC;QAEzC,8CAA8C;QAC9C,kCAAkC;QAElC,kDAAkD;QAClD,8CAA8C;QAE9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,YAAY;QACZ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAClE,CAAC;IAEgB,KAAK,CAAa;IAClB,OAAO,CAAiB;IACxB,WAAW,CAAmB;IAE/C,cAAc,CAAC,GAAY;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,IAAwB;QAC5B,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChD;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,iBAAiB,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7C;IACL,CAAC;CAEJ;AACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;IAChC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"logo-element.js","sourceRoot":"","sources":["../../../src/engine/webcomponents/logo-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEzF,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAQ1C;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAE9C,MAAM,KAAK,WAAW,KAAK,OAAO,WAAW,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAC,MAAM;QACT,OAAO,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAsB,CAAC;IACpE,CAAC;IAED;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAyCiB,aAAa;;SAElD,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAmB,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAqB,CAAC;QAE5E,yCAAyC;QAEzC,8CAA8C;QAC9C,kCAAkC;QAElC,kDAAkD;QAClD,8CAA8C;QAE9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,YAAY;QACZ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAClE,CAAC;IAEgB,KAAK,CAAa;IAClB,OAAO,CAAiB;IACxB,WAAW,CAAmB;IAE/C,uDAAuD;IACvD,cAAc,CAAC,GAAY;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,IAAwB;QAC5B,IAAI,IAAI,KAAK,MAAM,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChD;aAAM;YACH,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,iBAAiB,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7C;IACL,CAAC;CAEJ;AACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;IAChC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC"}
@@ -1,4 +1,10 @@
1
1
  import type { Context } from "../../engine_context.js";
2
+ import { NeedleLogoElement } from "../logo-element.js";
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ "needle-logo-element": NeedleLogoElement;
6
+ }
7
+ }
2
8
  /** This is the model for the postMessage event that the needle engine will send to create menu items */
3
9
  export declare type NeedleMenuPostMessageModel = {
4
10
  type: "needle:menu";
@@ -118,6 +124,16 @@ export declare class NeedleMenu {
118
124
  private _fullscreenButton?;
119
125
  appendChild(child: HTMLElement | ButtonInfo): HTMLElement;
120
126
  }
127
+ /**
128
+ * `<needle-menu>` web component — lightweight menu used by Needle Engine.
129
+ *
130
+ * This element is intended as an internal UI primitive for hosting application
131
+ * menus and buttons. Use the higher-level `NeedleMenu` API from the engine
132
+ * code to manipulate it programmatically. Public DOM-facing methods are
133
+ * documented (appendChild / append / prepend / setPosition / setVisible).
134
+ *
135
+ * @element needle-menu
136
+ */
121
137
  export declare class NeedleMenuElement extends HTMLElement {
122
138
  #private;
123
139
  static create(): HTMLElement;
@@ -128,26 +144,31 @@ export declare class NeedleMenuElement extends HTMLElement {
128
144
  private _sizeChangeInterval;
129
145
  connectedCallback(): void;
130
146
  disconnectedCallback(): void;
147
+ /** @private user preference for logo visibility */
131
148
  private _userRequestedLogoVisible?;
132
149
  showNeedleLogo(visible: boolean): void;
133
150
  /** @returns true if the logo is visible */
134
151
  get logoIsVisible(): boolean;
135
152
  private ___onSetLogoVisible;
136
153
  setPosition(position: "top" | "bottom"): void;
154
+ /** @private user preference for menu visibility */
137
155
  private _userRequestedMenuVisible?;
138
156
  setVisible(visible: boolean): void;
139
157
  /**
140
158
  * If the menu is in compact mode and the foldout is currently open (to show all menu options) then this will close the foldout
141
159
  */
142
160
  closeFoldout(): void;
161
+ /** @private root container element inside shadow DOM */
143
162
  private readonly root;
144
- /** wraps the whole content */
163
+ /** @private wraps the whole content (internal layout) */
145
164
  private readonly wrapper;
146
- /** contains the buttons and dynamic elements */
165
+ /** @private contains the buttons and dynamic elements */
147
166
  private readonly options;
148
- /** contains the needle-logo html element */
167
+ /** @private contains the needle-logo html element */
149
168
  private readonly logoContainer;
169
+ /** @private compact menu button element */
150
170
  private readonly compactMenuButton;
171
+ /** @private foldout container used in compact mode */
151
172
  private readonly foldout;
152
173
  append(...nodes: (string | Node)[]): void;
153
174
  /**
@@ -214,6 +214,16 @@ export class NeedleMenu {
214
214
  return this._menu.appendChild(child);
215
215
  }
216
216
  }
217
+ /**
218
+ * `<needle-menu>` web component — lightweight menu used by Needle Engine.
219
+ *
220
+ * This element is intended as an internal UI primitive for hosting application
221
+ * menus and buttons. Use the higher-level `NeedleMenu` API from the engine
222
+ * code to manipulate it programmatically. Public DOM-facing methods are
223
+ * documented (appendChild / append / prepend / setPosition / setVisible).
224
+ *
225
+ * @element needle-menu
226
+ */
217
227
  export class NeedleMenuElement extends HTMLElement {
218
228
  static create() {
219
229
  // https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement#is
@@ -779,6 +789,7 @@ export class NeedleMenuElement extends HTMLElement {
779
789
  }
780
790
  }
781
791
  };
792
+ /** @private user preference for logo visibility */
782
793
  _userRequestedLogoVisible = undefined;
783
794
  showNeedleLogo(visible) {
784
795
  this._userRequestedLogoVisible = visible;
@@ -817,6 +828,7 @@ export class NeedleMenuElement extends HTMLElement {
817
828
  this.root.classList.remove("top", "bottom");
818
829
  this.root.classList.add(position);
819
830
  }
831
+ /** @private user preference for menu visibility */
820
832
  _userRequestedMenuVisible = undefined;
821
833
  setVisible(visible) {
822
834
  this._userRequestedMenuVisible = visible;
@@ -829,14 +841,17 @@ export class NeedleMenuElement extends HTMLElement {
829
841
  this.root.classList.remove("open");
830
842
  }
831
843
  // private _root: ShadowRoot | null = null;
844
+ /** @private root container element inside shadow DOM */
832
845
  root;
833
- /** wraps the whole content */
846
+ /** @private wraps the whole content (internal layout) */
834
847
  wrapper;
835
- /** contains the buttons and dynamic elements */
848
+ /** @private contains the buttons and dynamic elements */
836
849
  options;
837
- /** contains the needle-logo html element */
850
+ /** @private contains the needle-logo html element */
838
851
  logoContainer;
852
+ /** @private compact menu button element */
839
853
  compactMenuButton;
854
+ /** @private foldout container used in compact mode */
840
855
  foldout;
841
856
  append(...nodes) {
842
857
  for (const node of nodes) {
@@ -1 +1 @@
1
- {"version":3,"file":"needle-menu.js","sourceRoot":"","sources":["../../../../src/engine/webcomponents/needle menu/needle-menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"needle-menu.js","sourceRoot":"","sources":["../../../../src/engine/webcomponents/needle menu/needle-menu.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ declare global {
2
+ interface HTMLElementTagNameMap {
3
+ "needle-button": NeedleButtonElement;
4
+ }
5
+ }
1
6
  /**
2
7
  * A <needle-button> can be used to simply add VR, AR or Quicklook buttons to your website without having to write any code.
3
8
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"needle-button.js","sourceRoot":"","sources":["../../../src/engine/webcomponents/needle-button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"needle-button.js","sourceRoot":"","sources":["../../../src/engine/webcomponents/needle-button.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,14 @@ type MainAttributes = {
23
23
  "keep-alive"?: boolean;
24
24
  addEventListener?(event: "ready", callback: (event: CustomEvent) => void): void;
25
25
  addEventListener?(event: "error", callback: (event: CustomEvent) => void): void;
26
+ addEventListener?(event: "loadstart", callback: (event: CustomEvent) => void): void;
27
+ addEventListener?(event: "progress", callback: (event: CustomEvent) => void): void;
28
+ addEventListener?(event: "loadfinished", callback: (event: CustomEvent) => void): void;
29
+ addEventListener?(event: "xr-session-ended", callback: (event: CustomEvent) => void): void;
30
+ addEventListener?(event: "enter-ar", callback: (event: CustomEvent) => void): void;
31
+ addEventListener?(event: "exit-ar", callback: (event: CustomEvent) => void): void;
32
+ addEventListener?(event: "enter-vr", callback: (event: CustomEvent) => void): void;
33
+ addEventListener?(event: "exit-vr", callback: (event: CustomEvent) => void): void;
26
34
  };
27
35
  type LoadingAttributes = {
28
36
  /** Set a custom loading background color (e.g. "red" or "#dd00ff" or "rgba(18, 224, 224, 0.5)") */
@@ -60,11 +68,12 @@ type RenderingAttributes = {
60
68
  "transparent"?: boolean;
61
69
  "contactshadows"?: boolean;
62
70
  "tone-mapping"?: TonemappingAttributeOptions;
71
+ "tonemapping"?: TonemappingAttributeOptions;
63
72
  "tone-mapping-exposure"?: number;
64
73
  };
65
74
  /**
66
- * Available attributes for the `<needle-engine>` web component
75
+ * Available attributes for the `<needle-engine>` web component.
67
76
  * @inheritdoc
68
77
  */
69
- export type NeedleEngineAttributes = MainAttributes & Partial<Omit<HTMLElement, "style">> & LoadingAttributes & SkyboxAttributes & RenderingAttributes;
78
+ export type NeedleEngineAttributes = MainAttributes & LoadingAttributes & SkyboxAttributes & RenderingAttributes;
70
79
  export {};
@@ -1,19 +1,24 @@
1
1
  /// <reference types="webxr" />
2
2
  import { Context } from "../engine_setup.js";
3
- import { type INeedleEngineComponent } from "../engine_types.js";
4
- import { TonemappingAttributeOptions } from "./needle-engine.attributes.js";
3
+ import { type INeedleEngineComponent, type LoadedModel } from "../engine_types.js";
4
+ import { NeedleEngineAttributes, TonemappingAttributeOptions } from "./needle-engine.attributes.js";
5
+ declare global {
6
+ interface HTMLElementTagNameMap {
7
+ "needle-engine": NeedleEngineWebComponent;
8
+ }
9
+ }
5
10
  /**
6
- * <needle-engine> web component. See {@link NeedleEngineAttributes} attributes for supported attributes
7
- * The needle engine web component creates and manages a needle engine context which is responsible for rendering a 3D scene using threejs.
8
- * The needle engine context is created when the src attribute is set and disposed when the needle engine is removed from the document (you can prevent this by setting the keep-alive attribute to true).
9
- * The needle engine context is accessible via the context property on the needle engine element (e.g. document.querySelector("needle-engine").context).
11
+ * The `<needle-engine>` web component. See {@link NeedleEngineAttributes} attributes for supported attributes
12
+ * The web component creates and manages a Needle Engine context, which is responsible for rendering a 3D scene using threejs.
13
+ * The context is created when the `src` attribute is set, and disposed when the element is removed from the DOM. You can prevent cleanup by setting the `keep-alive` attribute to `true`.
14
+ * The context is accessible from the `<needle-engine>` element: `document.querySelector("needle-engine").context`.
10
15
  * See {@link https://engine.needle.tools/docs/reference/needle-engine-attributes}
11
16
  *
12
17
  * @example
13
18
  * <needle-engine src="https://example.com/scene.glb"></needle-engine>
14
19
  * @example
15
20
  * <needle-engine src="https://example.com/scene.glb" camera-controls="false"></needle-engine>
16
- */
21
+ */
17
22
  export declare class NeedleEngineWebComponent extends HTMLElement implements INeedleEngineComponent {
18
23
  static get observedAttributes(): string[];
19
24
  get loadingProgress01(): number;
@@ -49,7 +54,7 @@ export declare class NeedleEngineWebComponent extends HTMLElement implements INe
49
54
  private _loadingProgress01;
50
55
  private _loadingView?;
51
56
  private _previousSrc;
52
- /** set to true after <needle-engine> did load completely at least once. Set to false when <needle-engine> is removed from the document */
57
+ /** @private set to true after <needle-engine> did load completely at least once. Set to false when < to false when <needle-engine> is removed from the document removed from the document */
53
58
  private _didFullyLoad;
54
59
  constructor();
55
60
  /**
@@ -60,6 +65,7 @@ export declare class NeedleEngineWebComponent extends HTMLElement implements INe
60
65
  * @internal
61
66
  */
62
67
  disconnectedCallback(): void;
68
+ connectedMoveCallback(): void;
63
69
  /**
64
70
  * @internal
65
71
  */
@@ -113,4 +119,152 @@ export declare class NeedleEngineWebComponent extends HTMLElement implements INe
113
119
  private setupElementsForMode;
114
120
  private foreachHtmlElement;
115
121
  private onBeforeBeginLoading;
122
+ /** Change which model gets loaded. This will trigger a reload of the model. */
123
+ setAttribute(name: 'src', value: string | string[]): void;
124
+ /** Optional string that will be applied to the context as a hash and can influence caching/identification. */
125
+ setAttribute(name: 'hash', value: string): void;
126
+ /** Public key used for licensing and feature gating (read-only on runtime if compiled-in). */
127
+ setAttribute(name: 'public-key', value: string): void;
128
+ /** Engine version string — usually set by the build/runtime. */
129
+ setAttribute(name: 'version', value: string): void;
130
+ /** If set to false the camera controls are disabled. Accepted values: true/false/none. Default behaviour is enabled. */
131
+ setAttribute(name: 'camera-controls', value: string): void;
132
+ /** Override path for the Draco decoder files. */
133
+ setAttribute(name: 'dracoDecoderPath', value: string): void;
134
+ /** Choose Draco decoder type: 'wasm' or 'js'. */
135
+ setAttribute(name: 'dracoDecoderType', value: 'wasm' | 'js'): void;
136
+ /** Override path for the KTX2 transcoder/decoder files. */
137
+ setAttribute(name: 'ktx2DecoderPath', value: string): void;
138
+ /** Tonemapping mode. Accepted values: 'none' | 'linear' | 'agx' | 'neutral'. */
139
+ setAttribute(name: 'tone-mapping', value: 'none' | 'linear' | 'agx' | 'neutral'): void;
140
+ /** Numeric exposure multiplier for tonemapping; accepts number or stringified number. */
141
+ setAttribute(name: 'tone-mapping-exposure', value: string | number): void;
142
+ /** Background image blur strength (0..1). Accepts number or string value. */
143
+ setAttribute(name: 'background-blurriness', value: string | number): void;
144
+ /** CSS color for the background; string color value expected (e.g. '#fff', 'rgba()' etc). */
145
+ setAttribute(name: 'background-color', value: string): void;
146
+ /** Intensity multiplier for environment lighting; accepts numeric value or string. */
147
+ setAttribute(name: 'environment-intensity', value: string | number): void;
148
+ /** When true the engine context is kept alive after the element is removed from DOM. Use 'true' or 'false'. */
149
+ setAttribute(name: 'keep-alive', value: 'true' | 'false'): void;
150
+ /** Generic typed setter for known Needle Engine attributes (useful from TS):
151
+ * setAttribute<T extends keyof NeedleEngineAttributes>(name, value) will type-check against the declared attribute shape.
152
+ */
153
+ setAttribute<T extends keyof NeedleEngineAttributes>(qualifiedName: T, value: NeedleEngineAttributes[T]): void;
154
+ setAttribute(qualifiedName: ({} & string), value: string): void;
155
+ /** Read the `src` attribute. Returns string, string[] (if codegen provided an array) or null if unset. */
156
+ getAttribute(name: 'src'): string | string[] | null;
157
+ /** Read the `hash` attribute — an optional string attached to the context for caching/identification. */
158
+ getAttribute(name: 'hash'): string | null;
159
+ /** Read the `public-key` attribute used for licensing/feature gating. */
160
+ getAttribute(name: 'public-key'): string | null;
161
+ /** Read the `version` attribute — the engine build/version string. */
162
+ getAttribute(name: 'version'): string | null;
163
+ /** Read the `camera-controls` attribute; string values include 'true'|'false'|'none' or null if unset. */
164
+ getAttribute(name: 'camera-controls'): string | null;
165
+ /** Read custom Draco decoder path if configured. */
166
+ getAttribute(name: 'dracoDecoderPath'): string | null;
167
+ /** Read Draco decoder type ('wasm'|'js') if configured. */
168
+ getAttribute(name: 'dracoDecoderType'): string | null;
169
+ /** Read custom KTX2 decoder/transcoder path if configured. */
170
+ getAttribute(name: 'ktx2DecoderPath'): string | null;
171
+ /** Read configured tone-mapping value, as a string matching accepted modes (none, linear, neutral, agx). */
172
+ getAttribute(name: 'tone-mapping'): string | null;
173
+ /** Read tone-mapping exposure multiplier (string or numeric string). */
174
+ getAttribute(name: 'tone-mapping-exposure'): string | null;
175
+ /** Read background-blurriness value (0..1) as string or null. */
176
+ getAttribute(name: 'background-blurriness'): string | null;
177
+ /** Read CSS background-color string value (e.g. '#fff', 'rgba()'). */
178
+ getAttribute(name: 'background-color'): string | null;
179
+ /** Read environment-intensity (numeric) as string or null. */
180
+ getAttribute(name: 'environment-intensity'): string | null;
181
+ /** Read keep-alive attribute; presence ("true") prevents the context from being disposed on disconnect. */
182
+ getAttribute(name: 'keep-alive'): string | null;
183
+ /** Defines a CSS selector or HTMLElement used to define the camera focus rectangle. */
184
+ getAttribute(name: 'focus-rect'): string | null;
185
+ /** @private */
186
+ getAttribute(name: 'loading-blur'): string | null;
187
+ /** @private */
188
+ getAttribute(name: 'alias'): string | null;
189
+ /** Typed getter for known NeedleEngine attribute names; returns the typed shape declared in NeedleEngineAttributes or null. */
190
+ getAttribute<T extends keyof NeedleEngineAttributes>(qualifiedName: T): NeedleEngineAttributes[T] | null;
191
+ getAttribute(qualifiedName: ({} & string)): string | null;
192
+ /**
193
+ * Emitted when loading begins for the engine/scene. The event is cancelable — calling preventDefault()
194
+ * will stop the default loading UI behavior (apps can implement custom loading flows).
195
+ * Event contains a small detail object with context and optional alias.
196
+ */
197
+ addEventListener(type: 'loadstart', listener: (ev: CustomEvent<{
198
+ context: Context;
199
+ alias: string | null;
200
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
201
+ /**
202
+ * Emitted repeatedly while loading resources. Use the event detail to show progress:
203
+ * Event contains progress metadata to report loader state.
204
+ */
205
+ addEventListener(type: 'progress', listener: (ev: CustomEvent<{
206
+ context: Context;
207
+ name: string;
208
+ progress: ProgressEvent<EventTarget>;
209
+ index: number;
210
+ count: number;
211
+ totalProgress01: number;
212
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
213
+ /**
214
+ * Emitted when the initial loading has finished. detail contains the context, the source alias (if available) and a list of loaded models.
215
+ * Emitted when the initial load completes; contains helpful summary data.
216
+ */
217
+ addEventListener(type: 'loadfinished', listener: (ev: CustomEvent<{
218
+ context: Context;
219
+ src: string | null;
220
+ loadedFiles: LoadedModel[];
221
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
222
+ /**
223
+ * Emitted when an XR session ends.
224
+ */
225
+ addEventListener(type: 'xr-session-ended', listener: (ev: CustomEvent<{
226
+ session: XRSession | null;
227
+ context: Context;
228
+ sessionMode: XRSessionMode | undefined;
229
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
230
+ /**
231
+ * Emitted when entering AR.
232
+ */
233
+ addEventListener(type: 'enter-ar', listener: (ev: CustomEvent<{
234
+ session: XRSession;
235
+ context: Context;
236
+ htmlContainer: HTMLElement | null;
237
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
238
+ /**
239
+ * Emitted when exiting AR.
240
+ */
241
+ addEventListener(type: 'exit-ar', listener: (ev: CustomEvent<{
242
+ session: XRSession;
243
+ context: Context;
244
+ htmlContainer: HTMLElement | null;
245
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
246
+ /**
247
+ * Emitted when entering VR.
248
+ */
249
+ addEventListener(type: 'enter-vr', listener: (ev: CustomEvent<{
250
+ session: XRSession;
251
+ context: Context;
252
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
253
+ /**
254
+ * Emitted when exiting VR.
255
+ */
256
+ addEventListener(type: 'exit-vr', listener: (ev: CustomEvent<{
257
+ session: XRSession;
258
+ context: Context;
259
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
260
+ /** Emitted when the engine has rendered its first frame and is ready. */
261
+ addEventListener(type: 'ready', listener: (ev: Event) => void, options?: boolean | AddEventListenerOptions): void;
262
+ /** Emitted when an XR session is started — useful to prepare AR/VR UI. */
263
+ addEventListener(type: 'xr-session-started', listener: (ev: CustomEvent<{
264
+ session: XRSession;
265
+ context: Context;
266
+ }>) => void, options?: boolean | AddEventListenerOptions): void;
267
+ addEventListener<K extends keyof HTMLElementEventMap>(type: ({} & K), listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions): void;
268
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
269
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
116
270
  }
@@ -42,17 +42,17 @@ const observedAttributes = [
42
42
  ];
43
43
  // https://developers.google.com/web/fundamentals/web-components/customelements
44
44
  /**
45
- * <needle-engine> web component. See {@link NeedleEngineAttributes} attributes for supported attributes
46
- * The needle engine web component creates and manages a needle engine context which is responsible for rendering a 3D scene using threejs.
47
- * The needle engine context is created when the src attribute is set and disposed when the needle engine is removed from the document (you can prevent this by setting the keep-alive attribute to true).
48
- * The needle engine context is accessible via the context property on the needle engine element (e.g. document.querySelector("needle-engine").context).
45
+ * The `<needle-engine>` web component. See {@link NeedleEngineAttributes} attributes for supported attributes
46
+ * The web component creates and manages a Needle Engine context, which is responsible for rendering a 3D scene using threejs.
47
+ * The context is created when the `src` attribute is set, and disposed when the element is removed from the DOM. You can prevent cleanup by setting the `keep-alive` attribute to `true`.
48
+ * The context is accessible from the `<needle-engine>` element: `document.querySelector("needle-engine").context`.
49
49
  * See {@link https://engine.needle.tools/docs/reference/needle-engine-attributes}
50
50
  *
51
51
  * @example
52
52
  * <needle-engine src="https://example.com/scene.glb"></needle-engine>
53
53
  * @example
54
54
  * <needle-engine src="https://example.com/scene.glb" camera-controls="false"></needle-engine>
55
- */
55
+ */
56
56
  export class NeedleEngineWebComponent extends HTMLElement {
57
57
  static get observedAttributes() {
58
58
  return observedAttributes;
@@ -117,7 +117,7 @@ export class NeedleEngineWebComponent extends HTMLElement {
117
117
  _loadingProgress01 = 0;
118
118
  _loadingView;
119
119
  _previousSrc = null;
120
- /** set to true after <needle-engine> did load completely at least once. Set to false when <needle-engine> is removed from the document */
120
+ /** @private set to true after <needle-engine> did load completely at least once. Set to false when < to false when <needle-engine> is removed from the document removed from the document */
121
121
  _didFullyLoad = false;
122
122
  constructor() {
123
123
  super();
@@ -271,6 +271,9 @@ export class NeedleEngineWebComponent extends HTMLElement {
271
271
  console.warn("<needle-engine> is not disposed because keep-alive is set");
272
272
  }
273
273
  }
274
+ connectedMoveCallback() {
275
+ // we dont want needle-engine to cleanup JUST because the element is moved in the DOM. See https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#custom_element_lifecycle_callbacks
276
+ }
274
277
  /**
275
278
  * @internal
276
279
  */
@@ -295,7 +298,7 @@ export class NeedleEngineWebComponent extends HTMLElement {
295
298
  if (typeof newValue === "string" && newValue.length > 0) {
296
299
  if (debug)
297
300
  console.log(name + " attribute changed", newValue);
298
- this.registerEventFromAttribute(name, newValue);
301
+ this.registerEventFromAttribute("loadfinished", newValue);
299
302
  }
300
303
  break;
301
304
  case "dracoDecoderPath":
@@ -648,6 +651,7 @@ export class NeedleEngineWebComponent extends HTMLElement {
648
651
  // const fn = new Function(newValue);
649
652
  if (typeof fn === "function") {
650
653
  this._previouslyRegisteredMap.set(eventName, fn);
654
+ // @ts-ignore // not sure how to type this properly
651
655
  this.addEventListener(eventName, evt => fn?.call(globalThis, this._context, evt));
652
656
  }
653
657
  }
@@ -788,9 +792,43 @@ export class NeedleEngineWebComponent extends HTMLElement {
788
792
  setKtx2TranscoderPath(customKtx2DecoderPath);
789
793
  }
790
794
  }
795
+ setAttribute(qualifiedName, value) {
796
+ super.setAttribute(qualifiedName, value);
797
+ }
798
+ getAttribute(qualifiedName) {
799
+ return super.getAttribute(qualifiedName);
800
+ }
801
+ // This would be better but doesn't completely solve it
802
+ // addEventListener(type: ({} & string), listener: any, options?: boolean | AddEventListenerOptions): void;
803
+ addEventListener(type, listener, options) {
804
+ return super.addEventListener(type, listener, options);
805
+ }
791
806
  }
792
807
  if (typeof window !== "undefined" && !window.customElements.get(htmlTagName))
793
808
  window.customElements.define(htmlTagName, NeedleEngineWebComponent);
809
+ /** Quick testing for the types as declared above */
810
+ /*
811
+ const elem = document.querySelector("needle-engine")!;
812
+ elem.setAttribute("src", "model.glb");
813
+ elem.addEventListener("loadfinished", (ev) => {
814
+ const context = ev.detail.context;
815
+ });
816
+ elem.setAttribute("dracoDecoderType", "wasm");
817
+ elem.addEventListener("enter-ar", (ev) => {
818
+ const session = ev.detail.session;
819
+ });
820
+
821
+ elem.addEventListener("mousedown", (ev) => {
822
+ console.log("regular mousedown event", ev);
823
+ });
824
+
825
+ const onDragOverEvent = (e: DragEvent) => {
826
+
827
+ };
828
+
829
+ elem.addEventListener("dragover", onDragOverEvent);
830
+ */
831
+ /* END Type testing */
794
832
  function getDisplayName(str) {
795
833
  if (str.startsWith("blob:")) {
796
834
  return "blob";