@reactvision/react-viro 2.42.0 → 2.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/README.md +12 -6
  2. package/android/react_viro/react_viro-release.aar +0 -0
  3. package/components/AR/ViroARPlaneSelector.tsx +76 -37
  4. package/components/Utilities/ViroVersion.ts +1 -1
  5. package/dist/components/AR/ViroARPlaneSelector.d.ts +1 -1
  6. package/dist/components/AR/ViroARPlaneSelector.js +46 -18
  7. package/dist/components/Utilities/ViroVersion.d.ts +1 -1
  8. package/dist/components/Utilities/ViroVersion.js +1 -1
  9. package/dist/dynamic-index.d.ts +11 -0
  10. package/dist/dynamic-index.js +28 -0
  11. package/dist/examples/AutoDetectionExample.d.ts +10 -0
  12. package/dist/examples/AutoDetectionExample.js +91 -0
  13. package/dist/fabric-interop/NativeViro.d.ts +42 -0
  14. package/dist/fabric-interop/NativeViro.js +262 -0
  15. package/dist/fabric-interop/ViroEventsManager.d.ts +83 -0
  16. package/dist/fabric-interop/ViroEventsManager.js +222 -0
  17. package/dist/fabric-interop/ViroFabricContainer.d.ts +34 -0
  18. package/dist/fabric-interop/ViroFabricContainer.js +200 -0
  19. package/dist/fabric-interop/android/src/main/js/specs/ViroFabricContainerViewNativeComponent.d.ts +35 -0
  20. package/dist/fabric-interop/android/src/main/js/specs/ViroFabricContainerViewNativeComponent.js +20 -0
  21. package/dist/fabric-interop/components/AR/ViroARPlane.d.ts +22 -0
  22. package/dist/fabric-interop/components/AR/ViroARPlane.js +95 -0
  23. package/dist/fabric-interop/components/AR/ViroARPlaneSelector.d.ts +43 -0
  24. package/dist/fabric-interop/components/AR/ViroARPlaneSelector.js +152 -0
  25. package/dist/fabric-interop/components/AR/ViroARTrackingTargets.d.ts +55 -0
  26. package/dist/fabric-interop/components/AR/ViroARTrackingTargets.js +85 -0
  27. package/dist/fabric-interop/components/AR/ViroCommonProps.d.ts +91 -0
  28. package/dist/fabric-interop/components/AR/ViroCommonProps.js +7 -0
  29. package/dist/fabric-interop/components/Animation/ViroAnimations.d.ts +48 -0
  30. package/dist/fabric-interop/components/Animation/ViroAnimations.js +64 -0
  31. package/dist/fabric-interop/components/Material/ViroMaterials.d.ts +66 -0
  32. package/dist/fabric-interop/components/Material/ViroMaterials.js +85 -0
  33. package/dist/fabric-interop/components/Types/ViroEvents.d.ts +202 -0
  34. package/dist/fabric-interop/components/Types/ViroEvents.js +53 -0
  35. package/dist/fabric-interop/components/Types/ViroUtils.d.ts +137 -0
  36. package/dist/fabric-interop/components/Types/ViroUtils.js +7 -0
  37. package/dist/fabric-interop/components/Viro360Image.d.ts +23 -0
  38. package/dist/fabric-interop/components/Viro360Image.js +45 -0
  39. package/dist/fabric-interop/components/Viro360Video.d.ts +29 -0
  40. package/dist/fabric-interop/components/Viro360Video.js +47 -0
  41. package/dist/fabric-interop/components/Viro3DObject.d.ts +60 -0
  42. package/dist/fabric-interop/components/Viro3DObject.js +49 -0
  43. package/dist/fabric-interop/components/Viro3DSceneNavigator.d.ts +49 -0
  44. package/dist/fabric-interop/components/Viro3DSceneNavigator.js +388 -0
  45. package/dist/fabric-interop/components/ViroARCamera.d.ts +29 -0
  46. package/dist/fabric-interop/components/ViroARCamera.js +64 -0
  47. package/dist/fabric-interop/components/ViroARImageMarker.d.ts +21 -0
  48. package/dist/fabric-interop/components/ViroARImageMarker.js +71 -0
  49. package/dist/fabric-interop/components/ViroARObjectMarker.d.ts +21 -0
  50. package/dist/fabric-interop/components/ViroARObjectMarker.js +71 -0
  51. package/dist/fabric-interop/components/ViroARPlane.d.ts +24 -0
  52. package/dist/fabric-interop/components/ViroARPlane.js +88 -0
  53. package/dist/fabric-interop/components/ViroARScene.d.ts +29 -0
  54. package/dist/fabric-interop/components/ViroARScene.js +89 -0
  55. package/dist/fabric-interop/components/ViroARSceneNavigator.d.ts +29 -0
  56. package/dist/fabric-interop/components/ViroARSceneNavigator.js +76 -0
  57. package/dist/fabric-interop/components/ViroAmbientLight.d.ts +19 -0
  58. package/dist/fabric-interop/components/ViroAmbientLight.js +46 -0
  59. package/dist/fabric-interop/components/ViroAnimatedComponent.d.ts +24 -0
  60. package/dist/fabric-interop/components/ViroAnimatedComponent.js +63 -0
  61. package/dist/fabric-interop/components/ViroAnimatedImage.d.ts +28 -0
  62. package/dist/fabric-interop/components/ViroAnimatedImage.js +49 -0
  63. package/dist/fabric-interop/components/ViroBox.d.ts +20 -0
  64. package/dist/fabric-interop/components/ViroBox.js +47 -0
  65. package/dist/fabric-interop/components/ViroButton.d.ts +32 -0
  66. package/dist/fabric-interop/components/ViroButton.js +92 -0
  67. package/dist/fabric-interop/components/ViroCamera.d.ts +17 -0
  68. package/dist/fabric-interop/components/ViroCamera.js +30 -0
  69. package/dist/fabric-interop/components/ViroController.d.ts +19 -0
  70. package/dist/fabric-interop/components/ViroController.js +64 -0
  71. package/dist/fabric-interop/components/ViroDirectionalLight.d.ts +28 -0
  72. package/dist/fabric-interop/components/ViroDirectionalLight.js +55 -0
  73. package/dist/fabric-interop/components/ViroFlexView.d.ts +36 -0
  74. package/dist/fabric-interop/components/ViroFlexView.js +97 -0
  75. package/dist/fabric-interop/components/ViroGeometry.d.ts +23 -0
  76. package/dist/fabric-interop/components/ViroGeometry.js +50 -0
  77. package/dist/fabric-interop/components/ViroGlobal.d.ts +45 -0
  78. package/dist/fabric-interop/components/ViroGlobal.js +20 -0
  79. package/dist/fabric-interop/components/ViroImage.d.ts +29 -0
  80. package/dist/fabric-interop/components/ViroImage.js +52 -0
  81. package/dist/fabric-interop/components/ViroLightingEnvironment.d.ts +19 -0
  82. package/dist/fabric-interop/components/ViroLightingEnvironment.js +44 -0
  83. package/dist/fabric-interop/components/ViroMaterialVideo.d.ts +30 -0
  84. package/dist/fabric-interop/components/ViroMaterialVideo.js +48 -0
  85. package/dist/fabric-interop/components/ViroNode.d.ts +36 -0
  86. package/dist/fabric-interop/components/ViroNode.js +28 -0
  87. package/dist/fabric-interop/components/ViroOmniLight.d.ts +21 -0
  88. package/dist/fabric-interop/components/ViroOmniLight.js +48 -0
  89. package/dist/fabric-interop/components/ViroOrbitCamera.d.ts +17 -0
  90. package/dist/fabric-interop/components/ViroOrbitCamera.js +30 -0
  91. package/dist/fabric-interop/components/ViroParticleEmitter.d.ts +51 -0
  92. package/dist/fabric-interop/components/ViroParticleEmitter.js +50 -0
  93. package/dist/fabric-interop/components/ViroPolygon.d.ts +20 -0
  94. package/dist/fabric-interop/components/ViroPolygon.js +47 -0
  95. package/dist/fabric-interop/components/ViroPolyline.d.ts +19 -0
  96. package/dist/fabric-interop/components/ViroPolyline.js +46 -0
  97. package/dist/fabric-interop/components/ViroPortal.d.ts +16 -0
  98. package/dist/fabric-interop/components/ViroPortal.js +73 -0
  99. package/dist/fabric-interop/components/ViroPortalScene.d.ts +16 -0
  100. package/dist/fabric-interop/components/ViroPortalScene.js +29 -0
  101. package/dist/fabric-interop/components/ViroQuad.d.ts +39 -0
  102. package/dist/fabric-interop/components/ViroQuad.js +49 -0
  103. package/dist/fabric-interop/components/ViroScene.d.ts +29 -0
  104. package/dist/fabric-interop/components/ViroScene.js +103 -0
  105. package/dist/fabric-interop/components/ViroSceneNavigator.d.ts +23 -0
  106. package/dist/fabric-interop/components/ViroSceneNavigator.js +73 -0
  107. package/dist/fabric-interop/components/ViroSkyBox.d.ts +39 -0
  108. package/dist/fabric-interop/components/ViroSkyBox.js +44 -0
  109. package/dist/fabric-interop/components/ViroSound.d.ts +23 -0
  110. package/dist/fabric-interop/components/ViroSound.js +46 -0
  111. package/dist/fabric-interop/components/ViroSoundField.d.ts +24 -0
  112. package/dist/fabric-interop/components/ViroSoundField.js +47 -0
  113. package/dist/fabric-interop/components/ViroSpatialSound.d.ts +27 -0
  114. package/dist/fabric-interop/components/ViroSpatialSound.js +50 -0
  115. package/dist/fabric-interop/components/ViroSphere.d.ts +22 -0
  116. package/dist/fabric-interop/components/ViroSphere.js +49 -0
  117. package/dist/fabric-interop/components/ViroSpinner.d.ts +18 -0
  118. package/dist/fabric-interop/components/ViroSpinner.js +45 -0
  119. package/dist/fabric-interop/components/ViroSpotLight.d.ts +30 -0
  120. package/dist/fabric-interop/components/ViroSpotLight.js +57 -0
  121. package/dist/fabric-interop/components/ViroSurface.d.ts +38 -0
  122. package/dist/fabric-interop/components/ViroSurface.js +48 -0
  123. package/dist/fabric-interop/components/ViroText.d.ts +36 -0
  124. package/dist/fabric-interop/components/ViroText.js +59 -0
  125. package/dist/fabric-interop/components/ViroUtils.d.ts +63 -0
  126. package/dist/fabric-interop/components/ViroUtils.js +140 -0
  127. package/dist/fabric-interop/components/ViroVRSceneNavigator.d.ts +25 -0
  128. package/dist/fabric-interop/components/ViroVRSceneNavigator.js +73 -0
  129. package/dist/fabric-interop/components/ViroVideo.d.ts +32 -0
  130. package/dist/fabric-interop/components/ViroVideo.js +52 -0
  131. package/dist/fabric-interop/components/index.d.ts +62 -0
  132. package/dist/fabric-interop/components/index.js +144 -0
  133. package/dist/fabric-interop/examples/BasicSceneExample.d.ts +11 -0
  134. package/dist/fabric-interop/examples/BasicSceneExample.js +244 -0
  135. package/dist/fabric-interop/examples/ComprehensiveExample.d.ts +13 -0
  136. package/dist/fabric-interop/examples/ComprehensiveExample.js +327 -0
  137. package/dist/fabric-interop/examples/SimpleARExample.d.ts +8 -0
  138. package/dist/fabric-interop/examples/SimpleARExample.js +62 -0
  139. package/dist/fabric-interop/index.d.ts +14 -0
  140. package/dist/fabric-interop/index.js +117 -0
  141. package/dist/fabric-interop/specs/ViroEventsTurboModule.d.ts +19 -0
  142. package/dist/fabric-interop/specs/ViroEventsTurboModule.js +11 -0
  143. package/dist/fabric-interop/test/BasicFunctionalityTest.d.ts +9 -0
  144. package/dist/fabric-interop/test/BasicFunctionalityTest.js +222 -0
  145. package/dist/fabric.d.ts +13 -0
  146. package/dist/fabric.js +29 -0
  147. package/dist/plugins/withViro.d.ts +3 -0
  148. package/dist/plugins/withViro.js +19 -0
  149. package/dist/plugins/withViroAndroid.js +24 -20
  150. package/dist/plugins/withViroIos.js +20 -2
  151. package/dynamic-index-source.d.ts +77 -0
  152. package/dynamic-index.ts +41 -0
  153. package/fabric-interop/NativeViro.ts +335 -0
  154. package/fabric-interop/README.md +282 -0
  155. package/fabric-interop/ViroEventsManager.js +257 -0
  156. package/fabric-interop/ViroFabricContainer.tsx +273 -0
  157. package/fabric-interop/components/AR/ViroARPlane.tsx +108 -0
  158. package/fabric-interop/components/AR/ViroARPlaneSelector.tsx +185 -0
  159. package/fabric-interop/components/AR/ViroARTrackingTargets.ts +108 -0
  160. package/fabric-interop/components/AR/ViroCommonProps.ts +140 -0
  161. package/fabric-interop/components/Animation/ViroAnimations.ts +96 -0
  162. package/fabric-interop/components/Material/ViroMaterials.ts +127 -0
  163. package/fabric-interop/components/Resources/viro_spinner_1.png +0 -0
  164. package/fabric-interop/components/Resources/viro_spinner_1_w.png +0 -0
  165. package/fabric-interop/components/Resources/viro_spinner_1a.png +0 -0
  166. package/fabric-interop/components/Resources/viro_spinner_1a_w.png +0 -0
  167. package/fabric-interop/components/Types/ViroEvents.ts +285 -0
  168. package/fabric-interop/components/Types/ViroUtils.ts +160 -0
  169. package/fabric-interop/components/Viro360Image.tsx +70 -0
  170. package/fabric-interop/components/Viro360Video.tsx +78 -0
  171. package/fabric-interop/components/Viro3DObject.tsx +122 -0
  172. package/fabric-interop/components/Viro3DSceneNavigator.tsx +503 -0
  173. package/fabric-interop/components/ViroARCamera.tsx +105 -0
  174. package/fabric-interop/components/ViroARImageMarker.tsx +98 -0
  175. package/fabric-interop/components/ViroARObjectMarker.tsx +100 -0
  176. package/fabric-interop/components/ViroARPlane.tsx +120 -0
  177. package/fabric-interop/components/ViroARScene.tsx +127 -0
  178. package/fabric-interop/components/ViroARSceneNavigator.tsx +82 -0
  179. package/fabric-interop/components/ViroAmbientLight.tsx +62 -0
  180. package/fabric-interop/components/ViroAnimatedComponent.tsx +91 -0
  181. package/fabric-interop/components/ViroAnimatedImage.tsx +81 -0
  182. package/fabric-interop/components/ViroBox.tsx +72 -0
  183. package/fabric-interop/components/ViroButton.tsx +125 -0
  184. package/fabric-interop/components/ViroCamera.tsx +45 -0
  185. package/fabric-interop/components/ViroController.tsx +87 -0
  186. package/fabric-interop/components/ViroDirectionalLight.tsx +84 -0
  187. package/fabric-interop/components/ViroFlexView.tsx +146 -0
  188. package/fabric-interop/components/ViroGeometry.tsx +78 -0
  189. package/fabric-interop/components/ViroGlobal.ts +114 -0
  190. package/fabric-interop/components/ViroImage.tsx +85 -0
  191. package/fabric-interop/components/ViroLightingEnvironment.tsx +63 -0
  192. package/fabric-interop/components/ViroMaterialVideo.tsx +82 -0
  193. package/fabric-interop/components/ViroNode.tsx +62 -0
  194. package/fabric-interop/components/ViroOmniLight.tsx +66 -0
  195. package/fabric-interop/components/ViroOrbitCamera.tsx +45 -0
  196. package/fabric-interop/components/ViroParticleEmitter.tsx +111 -0
  197. package/fabric-interop/components/ViroPolygon.tsx +72 -0
  198. package/fabric-interop/components/ViroPolyline.tsx +71 -0
  199. package/fabric-interop/components/ViroPortal.tsx +91 -0
  200. package/fabric-interop/components/ViroPortalScene.tsx +43 -0
  201. package/fabric-interop/components/ViroQuad.tsx +82 -0
  202. package/fabric-interop/components/ViroScene.tsx +117 -0
  203. package/fabric-interop/components/ViroSceneNavigator.tsx +71 -0
  204. package/fabric-interop/components/ViroSkyBox.tsx +75 -0
  205. package/fabric-interop/components/ViroSound.tsx +71 -0
  206. package/fabric-interop/components/ViroSoundField.tsx +75 -0
  207. package/fabric-interop/components/ViroSpatialSound.tsx +81 -0
  208. package/fabric-interop/components/ViroSphere.tsx +75 -0
  209. package/fabric-interop/components/ViroSpinner.tsx +63 -0
  210. package/fabric-interop/components/ViroSpotLight.tsx +86 -0
  211. package/fabric-interop/components/ViroSurface.tsx +80 -0
  212. package/fabric-interop/components/ViroText.tsx +114 -0
  213. package/fabric-interop/components/ViroUtils.ts +208 -0
  214. package/fabric-interop/components/ViroVRSceneNavigator.tsx +75 -0
  215. package/fabric-interop/components/ViroVideo.tsx +91 -0
  216. package/fabric-interop/components/index.ts +94 -0
  217. package/fabric-interop/dist/NativeViro.d.ts +43 -0
  218. package/fabric-interop/dist/NativeViro.d.ts.map +1 -0
  219. package/fabric-interop/dist/NativeViro.js +263 -0
  220. package/fabric-interop/dist/NativeViro.js.map +1 -0
  221. package/fabric-interop/dist/ViroFabricContainer.d.ts +35 -0
  222. package/fabric-interop/dist/ViroFabricContainer.d.ts.map +1 -0
  223. package/fabric-interop/dist/ViroFabricContainer.js +201 -0
  224. package/fabric-interop/dist/ViroFabricContainer.js.map +1 -0
  225. package/fabric-interop/dist/components/AR/ViroARPlane.d.ts +23 -0
  226. package/fabric-interop/dist/components/AR/ViroARPlane.d.ts.map +1 -0
  227. package/fabric-interop/dist/components/AR/ViroARPlane.js +96 -0
  228. package/fabric-interop/dist/components/AR/ViroARPlane.js.map +1 -0
  229. package/fabric-interop/dist/components/AR/ViroARPlaneSelector.d.ts +44 -0
  230. package/fabric-interop/dist/components/AR/ViroARPlaneSelector.d.ts.map +1 -0
  231. package/fabric-interop/dist/components/AR/ViroARPlaneSelector.js +156 -0
  232. package/fabric-interop/dist/components/AR/ViroARPlaneSelector.js.map +1 -0
  233. package/fabric-interop/dist/components/AR/ViroARTrackingTargets.d.ts +56 -0
  234. package/fabric-interop/dist/components/AR/ViroARTrackingTargets.d.ts.map +1 -0
  235. package/fabric-interop/dist/components/AR/ViroARTrackingTargets.js +86 -0
  236. package/fabric-interop/dist/components/AR/ViroARTrackingTargets.js.map +1 -0
  237. package/fabric-interop/dist/components/AR/ViroCommonProps.d.ts +92 -0
  238. package/fabric-interop/dist/components/AR/ViroCommonProps.d.ts.map +1 -0
  239. package/fabric-interop/dist/components/AR/ViroCommonProps.js +8 -0
  240. package/fabric-interop/dist/components/AR/ViroCommonProps.js.map +1 -0
  241. package/fabric-interop/dist/components/Animation/ViroAnimations.d.ts +49 -0
  242. package/fabric-interop/dist/components/Animation/ViroAnimations.d.ts.map +1 -0
  243. package/fabric-interop/dist/components/Animation/ViroAnimations.js +65 -0
  244. package/fabric-interop/dist/components/Animation/ViroAnimations.js.map +1 -0
  245. package/fabric-interop/dist/components/Material/ViroMaterials.d.ts +67 -0
  246. package/fabric-interop/dist/components/Material/ViroMaterials.d.ts.map +1 -0
  247. package/fabric-interop/dist/components/Material/ViroMaterials.js +86 -0
  248. package/fabric-interop/dist/components/Material/ViroMaterials.js.map +1 -0
  249. package/fabric-interop/dist/components/Types/ViroEvents.d.ts +203 -0
  250. package/fabric-interop/dist/components/Types/ViroEvents.d.ts.map +1 -0
  251. package/fabric-interop/dist/components/Types/ViroEvents.js +54 -0
  252. package/fabric-interop/dist/components/Types/ViroEvents.js.map +1 -0
  253. package/fabric-interop/dist/components/Types/ViroUtils.d.ts +138 -0
  254. package/fabric-interop/dist/components/Types/ViroUtils.d.ts.map +1 -0
  255. package/fabric-interop/dist/components/Types/ViroUtils.js +8 -0
  256. package/fabric-interop/dist/components/Types/ViroUtils.js.map +1 -0
  257. package/fabric-interop/dist/components/Viro360Image.d.ts +24 -0
  258. package/fabric-interop/dist/components/Viro360Image.d.ts.map +1 -0
  259. package/fabric-interop/dist/components/Viro360Image.js +47 -0
  260. package/fabric-interop/dist/components/Viro360Image.js.map +1 -0
  261. package/fabric-interop/dist/components/Viro360Video.d.ts +30 -0
  262. package/fabric-interop/dist/components/Viro360Video.d.ts.map +1 -0
  263. package/fabric-interop/dist/components/Viro360Video.js +49 -0
  264. package/fabric-interop/dist/components/Viro360Video.js.map +1 -0
  265. package/fabric-interop/dist/components/Viro3DObject.d.ts +61 -0
  266. package/fabric-interop/dist/components/Viro3DObject.d.ts.map +1 -0
  267. package/fabric-interop/dist/components/Viro3DObject.js +51 -0
  268. package/fabric-interop/dist/components/Viro3DObject.js.map +1 -0
  269. package/fabric-interop/dist/components/Viro3DSceneNavigator.d.ts +50 -0
  270. package/fabric-interop/dist/components/Viro3DSceneNavigator.d.ts.map +1 -0
  271. package/fabric-interop/dist/components/Viro3DSceneNavigator.js +389 -0
  272. package/fabric-interop/dist/components/Viro3DSceneNavigator.js.map +1 -0
  273. package/fabric-interop/dist/components/ViroARCamera.d.ts +30 -0
  274. package/fabric-interop/dist/components/ViroARCamera.d.ts.map +1 -0
  275. package/fabric-interop/dist/components/ViroARCamera.js +65 -0
  276. package/fabric-interop/dist/components/ViroARCamera.js.map +1 -0
  277. package/fabric-interop/dist/components/ViroARImageMarker.d.ts +22 -0
  278. package/fabric-interop/dist/components/ViroARImageMarker.d.ts.map +1 -0
  279. package/fabric-interop/dist/components/ViroARImageMarker.js +72 -0
  280. package/fabric-interop/dist/components/ViroARImageMarker.js.map +1 -0
  281. package/fabric-interop/dist/components/ViroARObjectMarker.d.ts +22 -0
  282. package/fabric-interop/dist/components/ViroARObjectMarker.d.ts.map +1 -0
  283. package/fabric-interop/dist/components/ViroARObjectMarker.js +72 -0
  284. package/fabric-interop/dist/components/ViroARObjectMarker.js.map +1 -0
  285. package/fabric-interop/dist/components/ViroARPlane.d.ts +25 -0
  286. package/fabric-interop/dist/components/ViroARPlane.d.ts.map +1 -0
  287. package/fabric-interop/dist/components/ViroARPlane.js +89 -0
  288. package/fabric-interop/dist/components/ViroARPlane.js.map +1 -0
  289. package/fabric-interop/dist/components/ViroARScene.d.ts +30 -0
  290. package/fabric-interop/dist/components/ViroARScene.d.ts.map +1 -0
  291. package/fabric-interop/dist/components/ViroARScene.js +90 -0
  292. package/fabric-interop/dist/components/ViroARScene.js.map +1 -0
  293. package/fabric-interop/dist/components/ViroARSceneNavigator.d.ts +30 -0
  294. package/fabric-interop/dist/components/ViroARSceneNavigator.d.ts.map +1 -0
  295. package/fabric-interop/dist/components/ViroARSceneNavigator.js +78 -0
  296. package/fabric-interop/dist/components/ViroARSceneNavigator.js.map +1 -0
  297. package/fabric-interop/dist/components/ViroAmbientLight.d.ts +20 -0
  298. package/fabric-interop/dist/components/ViroAmbientLight.d.ts.map +1 -0
  299. package/fabric-interop/dist/components/ViroAmbientLight.js +48 -0
  300. package/fabric-interop/dist/components/ViroAmbientLight.js.map +1 -0
  301. package/fabric-interop/dist/components/ViroAnimatedComponent.d.ts +25 -0
  302. package/fabric-interop/dist/components/ViroAnimatedComponent.d.ts.map +1 -0
  303. package/fabric-interop/dist/components/ViroAnimatedComponent.js +65 -0
  304. package/fabric-interop/dist/components/ViroAnimatedComponent.js.map +1 -0
  305. package/fabric-interop/dist/components/ViroAnimatedImage.d.ts +29 -0
  306. package/fabric-interop/dist/components/ViroAnimatedImage.d.ts.map +1 -0
  307. package/fabric-interop/dist/components/ViroAnimatedImage.js +51 -0
  308. package/fabric-interop/dist/components/ViroAnimatedImage.js.map +1 -0
  309. package/fabric-interop/dist/components/ViroBox.d.ts +21 -0
  310. package/fabric-interop/dist/components/ViroBox.d.ts.map +1 -0
  311. package/fabric-interop/dist/components/ViroBox.js +49 -0
  312. package/fabric-interop/dist/components/ViroBox.js.map +1 -0
  313. package/fabric-interop/dist/components/ViroButton.d.ts +33 -0
  314. package/fabric-interop/dist/components/ViroButton.d.ts.map +1 -0
  315. package/fabric-interop/dist/components/ViroButton.js +94 -0
  316. package/fabric-interop/dist/components/ViroButton.js.map +1 -0
  317. package/fabric-interop/dist/components/ViroCamera.d.ts +18 -0
  318. package/fabric-interop/dist/components/ViroCamera.d.ts.map +1 -0
  319. package/fabric-interop/dist/components/ViroCamera.js +31 -0
  320. package/fabric-interop/dist/components/ViroCamera.js.map +1 -0
  321. package/fabric-interop/dist/components/ViroController.d.ts +20 -0
  322. package/fabric-interop/dist/components/ViroController.d.ts.map +1 -0
  323. package/fabric-interop/dist/components/ViroController.js +65 -0
  324. package/fabric-interop/dist/components/ViroController.js.map +1 -0
  325. package/fabric-interop/dist/components/ViroDirectionalLight.d.ts +29 -0
  326. package/fabric-interop/dist/components/ViroDirectionalLight.d.ts.map +1 -0
  327. package/fabric-interop/dist/components/ViroDirectionalLight.js +57 -0
  328. package/fabric-interop/dist/components/ViroDirectionalLight.js.map +1 -0
  329. package/fabric-interop/dist/components/ViroFlexView.d.ts +37 -0
  330. package/fabric-interop/dist/components/ViroFlexView.d.ts.map +1 -0
  331. package/fabric-interop/dist/components/ViroFlexView.js +98 -0
  332. package/fabric-interop/dist/components/ViroFlexView.js.map +1 -0
  333. package/fabric-interop/dist/components/ViroGeometry.d.ts +24 -0
  334. package/fabric-interop/dist/components/ViroGeometry.d.ts.map +1 -0
  335. package/fabric-interop/dist/components/ViroGeometry.js +52 -0
  336. package/fabric-interop/dist/components/ViroGeometry.js.map +1 -0
  337. package/fabric-interop/dist/components/ViroGlobal.d.ts +46 -0
  338. package/fabric-interop/dist/components/ViroGlobal.d.ts.map +1 -0
  339. package/fabric-interop/dist/components/ViroGlobal.js +21 -0
  340. package/fabric-interop/dist/components/ViroGlobal.js.map +1 -0
  341. package/fabric-interop/dist/components/ViroImage.d.ts +30 -0
  342. package/fabric-interop/dist/components/ViroImage.d.ts.map +1 -0
  343. package/fabric-interop/dist/components/ViroImage.js +54 -0
  344. package/fabric-interop/dist/components/ViroImage.js.map +1 -0
  345. package/fabric-interop/dist/components/ViroLightingEnvironment.d.ts +20 -0
  346. package/fabric-interop/dist/components/ViroLightingEnvironment.d.ts.map +1 -0
  347. package/fabric-interop/dist/components/ViroLightingEnvironment.js +46 -0
  348. package/fabric-interop/dist/components/ViroLightingEnvironment.js.map +1 -0
  349. package/fabric-interop/dist/components/ViroMaterialVideo.d.ts +31 -0
  350. package/fabric-interop/dist/components/ViroMaterialVideo.d.ts.map +1 -0
  351. package/fabric-interop/dist/components/ViroMaterialVideo.js +50 -0
  352. package/fabric-interop/dist/components/ViroMaterialVideo.js.map +1 -0
  353. package/fabric-interop/dist/components/ViroNode.d.ts +37 -0
  354. package/fabric-interop/dist/components/ViroNode.d.ts.map +1 -0
  355. package/fabric-interop/dist/components/ViroNode.js +29 -0
  356. package/fabric-interop/dist/components/ViroNode.js.map +1 -0
  357. package/fabric-interop/dist/components/ViroOmniLight.d.ts +22 -0
  358. package/fabric-interop/dist/components/ViroOmniLight.d.ts.map +1 -0
  359. package/fabric-interop/dist/components/ViroOmniLight.js +50 -0
  360. package/fabric-interop/dist/components/ViroOmniLight.js.map +1 -0
  361. package/fabric-interop/dist/components/ViroOrbitCamera.d.ts +18 -0
  362. package/fabric-interop/dist/components/ViroOrbitCamera.d.ts.map +1 -0
  363. package/fabric-interop/dist/components/ViroOrbitCamera.js +31 -0
  364. package/fabric-interop/dist/components/ViroOrbitCamera.js.map +1 -0
  365. package/fabric-interop/dist/components/ViroParticleEmitter.d.ts +52 -0
  366. package/fabric-interop/dist/components/ViroParticleEmitter.d.ts.map +1 -0
  367. package/fabric-interop/dist/components/ViroParticleEmitter.js +52 -0
  368. package/fabric-interop/dist/components/ViroParticleEmitter.js.map +1 -0
  369. package/fabric-interop/dist/components/ViroPolygon.d.ts +21 -0
  370. package/fabric-interop/dist/components/ViroPolygon.d.ts.map +1 -0
  371. package/fabric-interop/dist/components/ViroPolygon.js +49 -0
  372. package/fabric-interop/dist/components/ViroPolygon.js.map +1 -0
  373. package/fabric-interop/dist/components/ViroPolyline.d.ts +20 -0
  374. package/fabric-interop/dist/components/ViroPolyline.d.ts.map +1 -0
  375. package/fabric-interop/dist/components/ViroPolyline.js +48 -0
  376. package/fabric-interop/dist/components/ViroPolyline.js.map +1 -0
  377. package/fabric-interop/dist/components/ViroPortal.d.ts +17 -0
  378. package/fabric-interop/dist/components/ViroPortal.d.ts.map +1 -0
  379. package/fabric-interop/dist/components/ViroPortal.js +74 -0
  380. package/fabric-interop/dist/components/ViroPortal.js.map +1 -0
  381. package/fabric-interop/dist/components/ViroPortalScene.d.ts +17 -0
  382. package/fabric-interop/dist/components/ViroPortalScene.d.ts.map +1 -0
  383. package/fabric-interop/dist/components/ViroPortalScene.js +30 -0
  384. package/fabric-interop/dist/components/ViroPortalScene.js.map +1 -0
  385. package/fabric-interop/dist/components/ViroQuad.d.ts +40 -0
  386. package/fabric-interop/dist/components/ViroQuad.d.ts.map +1 -0
  387. package/fabric-interop/dist/components/ViroQuad.js +51 -0
  388. package/fabric-interop/dist/components/ViroQuad.js.map +1 -0
  389. package/fabric-interop/dist/components/ViroScene.d.ts +30 -0
  390. package/fabric-interop/dist/components/ViroScene.d.ts.map +1 -0
  391. package/fabric-interop/dist/components/ViroScene.js +105 -0
  392. package/fabric-interop/dist/components/ViroScene.js.map +1 -0
  393. package/fabric-interop/dist/components/ViroSceneNavigator.d.ts +24 -0
  394. package/fabric-interop/dist/components/ViroSceneNavigator.d.ts.map +1 -0
  395. package/fabric-interop/dist/components/ViroSceneNavigator.js +74 -0
  396. package/fabric-interop/dist/components/ViroSceneNavigator.js.map +1 -0
  397. package/fabric-interop/dist/components/ViroSkyBox.d.ts +40 -0
  398. package/fabric-interop/dist/components/ViroSkyBox.d.ts.map +1 -0
  399. package/fabric-interop/dist/components/ViroSkyBox.js +46 -0
  400. package/fabric-interop/dist/components/ViroSkyBox.js.map +1 -0
  401. package/fabric-interop/dist/components/ViroSound.d.ts +24 -0
  402. package/fabric-interop/dist/components/ViroSound.d.ts.map +1 -0
  403. package/fabric-interop/dist/components/ViroSound.js +48 -0
  404. package/fabric-interop/dist/components/ViroSound.js.map +1 -0
  405. package/fabric-interop/dist/components/ViroSoundField.d.ts +25 -0
  406. package/fabric-interop/dist/components/ViroSoundField.d.ts.map +1 -0
  407. package/fabric-interop/dist/components/ViroSoundField.js +49 -0
  408. package/fabric-interop/dist/components/ViroSoundField.js.map +1 -0
  409. package/fabric-interop/dist/components/ViroSpatialSound.d.ts +28 -0
  410. package/fabric-interop/dist/components/ViroSpatialSound.d.ts.map +1 -0
  411. package/fabric-interop/dist/components/ViroSpatialSound.js +52 -0
  412. package/fabric-interop/dist/components/ViroSpatialSound.js.map +1 -0
  413. package/fabric-interop/dist/components/ViroSphere.d.ts +23 -0
  414. package/fabric-interop/dist/components/ViroSphere.d.ts.map +1 -0
  415. package/fabric-interop/dist/components/ViroSphere.js +51 -0
  416. package/fabric-interop/dist/components/ViroSphere.js.map +1 -0
  417. package/fabric-interop/dist/components/ViroSpinner.d.ts +19 -0
  418. package/fabric-interop/dist/components/ViroSpinner.d.ts.map +1 -0
  419. package/fabric-interop/dist/components/ViroSpinner.js +47 -0
  420. package/fabric-interop/dist/components/ViroSpinner.js.map +1 -0
  421. package/fabric-interop/dist/components/ViroSpotLight.d.ts +31 -0
  422. package/fabric-interop/dist/components/ViroSpotLight.d.ts.map +1 -0
  423. package/fabric-interop/dist/components/ViroSpotLight.js +59 -0
  424. package/fabric-interop/dist/components/ViroSpotLight.js.map +1 -0
  425. package/fabric-interop/dist/components/ViroSurface.d.ts +39 -0
  426. package/fabric-interop/dist/components/ViroSurface.d.ts.map +1 -0
  427. package/fabric-interop/dist/components/ViroSurface.js +50 -0
  428. package/fabric-interop/dist/components/ViroSurface.js.map +1 -0
  429. package/fabric-interop/dist/components/ViroText.d.ts +37 -0
  430. package/fabric-interop/dist/components/ViroText.d.ts.map +1 -0
  431. package/fabric-interop/dist/components/ViroText.js +61 -0
  432. package/fabric-interop/dist/components/ViroText.js.map +1 -0
  433. package/fabric-interop/dist/components/ViroUtils.d.ts +64 -0
  434. package/fabric-interop/dist/components/ViroUtils.d.ts.map +1 -0
  435. package/fabric-interop/dist/components/ViroUtils.js +141 -0
  436. package/fabric-interop/dist/components/ViroUtils.js.map +1 -0
  437. package/fabric-interop/dist/components/ViroVRSceneNavigator.d.ts +26 -0
  438. package/fabric-interop/dist/components/ViroVRSceneNavigator.d.ts.map +1 -0
  439. package/fabric-interop/dist/components/ViroVRSceneNavigator.js +74 -0
  440. package/fabric-interop/dist/components/ViroVRSceneNavigator.js.map +1 -0
  441. package/fabric-interop/dist/components/ViroVideo.d.ts +33 -0
  442. package/fabric-interop/dist/components/ViroVideo.d.ts.map +1 -0
  443. package/fabric-interop/dist/components/ViroVideo.js +54 -0
  444. package/fabric-interop/dist/components/ViroVideo.js.map +1 -0
  445. package/fabric-interop/dist/components/index.d.ts +63 -0
  446. package/fabric-interop/dist/components/index.d.ts.map +1 -0
  447. package/fabric-interop/dist/components/index.js +145 -0
  448. package/fabric-interop/dist/components/index.js.map +1 -0
  449. package/fabric-interop/dist/index.d.ts +15 -0
  450. package/fabric-interop/dist/index.d.ts.map +1 -0
  451. package/fabric-interop/dist/index.js +118 -0
  452. package/fabric-interop/dist/index.js.map +1 -0
  453. package/fabric-interop/dist/specs/ViroEventsTurboModule.d.ts +20 -0
  454. package/fabric-interop/dist/specs/ViroEventsTurboModule.d.ts.map +1 -0
  455. package/fabric-interop/dist/specs/ViroEventsTurboModule.js +12 -0
  456. package/fabric-interop/dist/specs/ViroEventsTurboModule.js.map +1 -0
  457. package/fabric-interop/examples/BasicSceneExample.tsx +287 -0
  458. package/fabric-interop/examples/ComprehensiveExample.tsx +441 -0
  459. package/fabric-interop/examples/SimpleARExample.tsx +95 -0
  460. package/fabric-interop/global.d.ts +14 -0
  461. package/fabric-interop/index.ts +107 -0
  462. package/fabric-interop/metro.config.js +12 -0
  463. package/fabric-interop/package.json +40 -0
  464. package/fabric-interop/react-native.config.js +22 -0
  465. package/fabric-interop/scripts/validate-build.js +393 -0
  466. package/fabric-interop/scripts/validate-implementation.js +272 -0
  467. package/fabric-interop/specs/README.md +22 -0
  468. package/fabric-interop/specs/ViroEventsTurboModule.ts +27 -0
  469. package/fabric-interop/test/BasicFunctionalityTest.tsx +243 -0
  470. package/fabric-interop/tsconfig.json +38 -0
  471. package/fabric.d.ts +5 -0
  472. package/fabric.ts +14 -0
  473. package/ios/ViroReact.podspec +51 -11
  474. package/package.json +33 -20
  475. package/scripts/copy-types.js +46 -0
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ViroGlobal
3
+ *
4
+ * A utility to provide type-safe access to the global NativeViro object.
5
+ */
6
+
7
+ // Add global declaration for TypeScript
8
+ declare global {
9
+ var NativeViro: any;
10
+ }
11
+
12
+ // Define the shape of the NativeViro object
13
+ export interface NativeViroType {
14
+ // Node management
15
+ createViroNode: (
16
+ nodeId: string,
17
+ nodeType: string,
18
+ props: Record<string, any>
19
+ ) => void;
20
+ updateViroNode: (nodeId: string, props: Record<string, any>) => void;
21
+ deleteViroNode: (nodeId: string) => void;
22
+
23
+ // Scene hierarchy
24
+ addViroNodeChild: (parentId: string, childId: string) => void;
25
+ removeViroNodeChild: (parentId: string, childId: string) => void;
26
+
27
+ // Event handling
28
+ registerEventCallback: (
29
+ nodeId: string,
30
+ eventName: string,
31
+ callbackId: string
32
+ ) => void;
33
+ unregisterEventCallback: (
34
+ nodeId: string,
35
+ eventName: string,
36
+ callbackId: string
37
+ ) => void;
38
+
39
+ // Materials
40
+ createViroMaterial: (
41
+ materialName: string,
42
+ properties: Record<string, any>
43
+ ) => void;
44
+ updateViroMaterial: (
45
+ materialName: string,
46
+ properties: Record<string, any>
47
+ ) => void;
48
+
49
+ // Animations
50
+ createViroAnimation: (
51
+ animationName: string,
52
+ properties: Record<string, any>
53
+ ) => void;
54
+ executeViroAnimation: (
55
+ nodeId: string,
56
+ animationName: string,
57
+ options: Record<string, any>
58
+ ) => void;
59
+
60
+ // Scene Management
61
+ createViroScene: (
62
+ sceneId: string,
63
+ sceneType: string,
64
+ props: Record<string, any>
65
+ ) => void;
66
+ activateViroScene: (sceneId: string) => void;
67
+ deactivateViroScene: (sceneId: string) => void;
68
+ destroyViroScene: (sceneId: string) => void;
69
+ getViroSceneState: (sceneId: string) => string | null;
70
+
71
+ // Memory Management
72
+ getViroMemoryStats: () => Record<string, any> | null;
73
+ performViroMemoryCleanup: () => void;
74
+
75
+ // AR specific
76
+ setViroARPlaneDetection: (config: {
77
+ enabled?: boolean;
78
+ alignment?: string;
79
+ horizontal?: boolean;
80
+ vertical?: boolean;
81
+ }) => void;
82
+ setViroARImageTargets: (targets: Record<string, any>) => void;
83
+
84
+ // Scene navigator methods
85
+ recenterTracking: (nodeId: string) => void;
86
+ project: (
87
+ nodeId: string,
88
+ point: [number, number, number]
89
+ ) => Promise<[number, number, number]>;
90
+ unproject: (
91
+ nodeId: string,
92
+ point: [number, number, number]
93
+ ) => Promise<[number, number, number]>;
94
+
95
+ // Initialization
96
+ initialize: (config?: {
97
+ debug?: boolean;
98
+ arEnabled?: boolean;
99
+ worldAlignment?: string;
100
+ }) => Promise<boolean>;
101
+ }
102
+
103
+ // Get the NativeViro object with type safety
104
+ export function getNativeViro(): NativeViroType | null {
105
+ if (typeof global !== "undefined" && global.NativeViro) {
106
+ return global.NativeViro as NativeViroType;
107
+ }
108
+ return null;
109
+ }
110
+
111
+ // Check if NativeViro is available
112
+ export function isNativeViroAvailable(): boolean {
113
+ return getNativeViro() !== null;
114
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * ViroImage
3
+ *
4
+ * A component for displaying 2D images in 3D space.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ useViroEventListeners,
12
+ convertCommonProps,
13
+ } from "./ViroUtils";
14
+ import { getNativeViro } from "./ViroGlobal";
15
+
16
+ export interface ViroImageProps extends ViroCommonProps {
17
+ // Image source
18
+ source: { uri: string } | number;
19
+
20
+ // Image properties
21
+ width?: number;
22
+ height?: number;
23
+ resizeMode?: "ScaleToFill" | "ScaleToFit" | "StretchToFill";
24
+ imageClipMode?: "None" | "ClipToBounds";
25
+ stereoMode?: "LeftRight" | "RightLeft" | "TopBottom" | "BottomTop" | "None";
26
+ format?: "RGBA8" | "RGB565";
27
+ mipmap?: boolean;
28
+
29
+ // Placeholder
30
+ placeholderSource?: { uri: string } | number;
31
+
32
+ // Materials
33
+ materials?: string | string[];
34
+
35
+ // Lighting props
36
+ lightReceivingBitMask?: number;
37
+ shadowCastingBitMask?: number;
38
+ }
39
+
40
+ /**
41
+ * ViroImage is a component for displaying 2D images in 3D space.
42
+ */
43
+ export const ViroImage: React.FC<ViroImageProps> = (props) => {
44
+ // Convert common props to the format expected by the native code
45
+ const nativeProps = {
46
+ ...convertCommonProps(props),
47
+ source: props.source,
48
+ width: props.width,
49
+ height: props.height,
50
+ resizeMode: props.resizeMode,
51
+ imageClipMode: props.imageClipMode,
52
+ stereoMode: props.stereoMode,
53
+ format: props.format,
54
+ mipmap: props.mipmap,
55
+ placeholderSource: props.placeholderSource,
56
+ materials: props.materials,
57
+ lightReceivingBitMask: props.lightReceivingBitMask,
58
+ shadowCastingBitMask: props.shadowCastingBitMask,
59
+ };
60
+
61
+ // Create the node (parent will be determined by context)
62
+ const nodeId = useViroNode("image", nativeProps);
63
+
64
+ // Register event handlers using our new event system
65
+ useViroEventListeners(nodeId, {
66
+ onHover: props.onHover,
67
+ onClick: props.onClick,
68
+ onClickState: props.onClickState,
69
+ onTouch: props.onTouch,
70
+ onScroll: props.onScroll,
71
+ onSwipe: props.onSwipe,
72
+ onDrag: props.onDrag,
73
+ onPinch: props.onPinch,
74
+ onRotate: props.onRotate,
75
+ onFuse:
76
+ typeof props.onFuse === "function"
77
+ ? props.onFuse
78
+ : props.onFuse?.callback,
79
+ onCollision: props.onCollision,
80
+ onTransformUpdate: props.onTransformUpdate,
81
+ });
82
+
83
+ // Image doesn't have children, so just return null
84
+ return null;
85
+ };
@@ -0,0 +1,63 @@
1
+ /**
2
+ * ViroLightingEnvironment
3
+ *
4
+ * A component for setting up environment-based lighting using HDR images.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ convertCommonProps,
12
+ useViroEventListeners,
13
+ } from "./ViroUtils";
14
+ import { getNativeViro } from "./ViroGlobal";
15
+
16
+ export interface ViroLightingEnvironmentProps extends ViroCommonProps {
17
+ // Environment source
18
+ source: { uri: string } | number;
19
+
20
+ // Lighting properties
21
+ intensity?: number;
22
+ rotation?: [number, number, number];
23
+ }
24
+
25
+ /**
26
+ * ViroLightingEnvironment is a component for setting up environment-based lighting using HDR images.
27
+ * It provides realistic lighting and reflections based on a 360-degree HDR environment map.
28
+ */
29
+ export const ViroLightingEnvironment: React.FC<ViroLightingEnvironmentProps> = (
30
+ props
31
+ ) => {
32
+ // Convert common props to the format expected by the native code
33
+ const nativeProps = {
34
+ ...convertCommonProps(props),
35
+ source: props.source,
36
+ intensity: props.intensity,
37
+ rotation: props.rotation,
38
+ };
39
+
40
+ // Create the node (parent will be determined by context)
41
+ const nodeId = useViroNode("lightingEnvironment", nativeProps);
42
+ // Register event handlers using our new event system
43
+ useViroEventListeners(nodeId, {
44
+ onHover: props.onHover,
45
+ onClick: props.onClick,
46
+ onClickState: props.onClickState,
47
+ onTouch: props.onTouch,
48
+ onScroll: props.onScroll,
49
+ onSwipe: props.onSwipe,
50
+ onDrag: props.onDrag,
51
+ onPinch: props.onPinch,
52
+ onRotate: props.onRotate,
53
+ onFuse:
54
+ typeof props.onFuse === "function"
55
+ ? props.onFuse
56
+ : props.onFuse?.callback,
57
+ onCollision: props.onCollision,
58
+ onTransformUpdate: props.onTransformUpdate,
59
+ });
60
+
61
+ // Component doesn't have children, so just return null
62
+ return null;
63
+ };
@@ -0,0 +1,82 @@
1
+ /**
2
+ * ViroMaterialVideo
3
+ *
4
+ * A component for using video as a material texture.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ convertCommonProps,
12
+ useViroEventListeners,
13
+ } from "./ViroUtils";
14
+ import { getNativeViro } from "./ViroGlobal";
15
+
16
+ export interface ViroMaterialVideoProps extends ViroCommonProps {
17
+ // Material name
18
+ material: string;
19
+
20
+ // Video source
21
+ source: { uri: string } | number;
22
+
23
+ // Video properties
24
+ paused?: boolean;
25
+ loop?: boolean;
26
+ muted?: boolean;
27
+ volume?: number;
28
+ stereoMode?: "LeftRight" | "RightLeft" | "TopBottom" | "BottomTop" | "None";
29
+
30
+ // Events
31
+ onLoadStart?: () => void;
32
+ onLoadEnd?: () => void;
33
+ onBufferStart?: () => void;
34
+ onBufferEnd?: () => void;
35
+ onFinish?: () => void;
36
+ onUpdateTime?: (currentTime: number, totalTime: number) => void;
37
+ onError?: (error: string) => void;
38
+ }
39
+
40
+ /**
41
+ * ViroMaterialVideo is a component for using video as a material texture.
42
+ * It allows video content to be applied as a texture to 3D objects.
43
+ */
44
+ export const ViroMaterialVideo: React.FC<ViroMaterialVideoProps> = (props) => {
45
+ // Convert common props to the format expected by the native code
46
+ const nativeProps = {
47
+ ...convertCommonProps(props),
48
+ material: props.material,
49
+ source: props.source,
50
+ paused: props.paused,
51
+ loop: props.loop,
52
+ muted: props.muted,
53
+ volume: props.volume,
54
+ stereoMode: props.stereoMode,
55
+ };
56
+
57
+ // Create the node (parent will be determined by context)
58
+ const nodeId = useViroNode("materialVideo", nativeProps);
59
+
60
+
61
+ // Register event handlers using our new event system
62
+ useViroEventListeners(nodeId, {
63
+ onHover: props.onHover,
64
+ onClick: props.onClick,
65
+ onClickState: props.onClickState,
66
+ onTouch: props.onTouch,
67
+ onScroll: props.onScroll,
68
+ onSwipe: props.onSwipe,
69
+ onDrag: props.onDrag,
70
+ onPinch: props.onPinch,
71
+ onRotate: props.onRotate,
72
+ onFuse:
73
+ typeof props.onFuse === "function"
74
+ ? props.onFuse
75
+ : props.onFuse?.callback,
76
+ onCollision: props.onCollision,
77
+ onTransformUpdate: props.onTransformUpdate,
78
+ });
79
+
80
+ // Component doesn't have children, so just return null
81
+ return null;
82
+ };
@@ -0,0 +1,62 @@
1
+ /**
2
+ * ViroNode
3
+ *
4
+ * A component that serves as a container for other Viro components.
5
+ * It doesn't render anything itself but provides a coordinate system for its children.
6
+ */
7
+
8
+ import React, { useContext } from "react";
9
+ import {
10
+ ViroContextProvider,
11
+ ViroCommonProps,
12
+ useViroNode,
13
+ convertCommonProps,
14
+ useViroEventListeners,
15
+ } from "./ViroUtils";
16
+ import { getNativeViro } from "./ViroGlobal";
17
+
18
+ export interface ViroNodeProps extends ViroCommonProps {
19
+ // Node-specific props
20
+ renderingOrder?: number;
21
+ viroTag?: string;
22
+ physicsBody?: {
23
+ type: "Dynamic" | "Kinematic" | "Static";
24
+ mass?: number;
25
+ restitution?: number;
26
+ shape?: {
27
+ type: "Box" | "Sphere" | "Compound";
28
+ params?: number[];
29
+ };
30
+ friction?: number;
31
+ useGravity?: boolean;
32
+ enabled?: boolean;
33
+ velocity?: [number, number, number];
34
+ force?: {
35
+ value: [number, number, number];
36
+ position: [number, number, number];
37
+ };
38
+ torque?: [number, number, number];
39
+ };
40
+
41
+ // Children components
42
+ children?: React.ReactNode;
43
+ }
44
+
45
+ /**
46
+ * ViroNode is a component that serves as a container for other Viro components.
47
+ * It doesn't render anything itself but provides a coordinate system for its children.
48
+ */
49
+ export const ViroNode: React.FC<ViroNodeProps> = (props) => {
50
+ // Parent will be determined by context automatically
51
+
52
+ // Convert common props to the format expected by the native code
53
+ const nativeProps = convertCommonProps(props);
54
+
55
+ // Create the node (parent will be determined by context)
56
+ const nodeId = useViroNode("node", nativeProps);
57
+
58
+ // Render children with this node as their parent
59
+ return (
60
+ <ViroContextProvider value={nodeId}>{props.children}</ViroContextProvider>
61
+ );
62
+ };
@@ -0,0 +1,66 @@
1
+ /**
2
+ * ViroOmniLight
3
+ *
4
+ * A component for adding omnidirectional lighting to a scene.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ convertCommonProps,
12
+ useViroEventListeners,
13
+ } from "./ViroUtils";
14
+ import { getNativeViro } from "./ViroGlobal";
15
+
16
+ export interface ViroOmniLightProps extends ViroCommonProps {
17
+ // Light properties
18
+ color?: string;
19
+ intensity?: number;
20
+ temperature?: number;
21
+ attenuationStartDistance?: number;
22
+ attenuationEndDistance?: number;
23
+ influenceBitMask?: number;
24
+ }
25
+
26
+ /**
27
+ * ViroOmniLight is a component for adding omnidirectional lighting to a scene.
28
+ * Omni light is a type of light that illuminates objects in all directions
29
+ * from a single point, similar to a light bulb.
30
+ */
31
+ export const ViroOmniLight: React.FC<ViroOmniLightProps> = (props) => {
32
+ // Convert common props to the format expected by the native code
33
+ const nativeProps = {
34
+ ...convertCommonProps(props),
35
+ color: props.color,
36
+ intensity: props.intensity,
37
+ temperature: props.temperature,
38
+ attenuationStartDistance: props.attenuationStartDistance,
39
+ attenuationEndDistance: props.attenuationEndDistance,
40
+ influenceBitMask: props.influenceBitMask,
41
+ };
42
+
43
+ // Create the node (parent will be determined by context)
44
+ const nodeId = useViroNode("omniLight", nativeProps);
45
+ // Register event handlers using our new event system
46
+ useViroEventListeners(nodeId, {
47
+ onHover: props.onHover,
48
+ onClick: props.onClick,
49
+ onClickState: props.onClickState,
50
+ onTouch: props.onTouch,
51
+ onScroll: props.onScroll,
52
+ onSwipe: props.onSwipe,
53
+ onDrag: props.onDrag,
54
+ onPinch: props.onPinch,
55
+ onRotate: props.onRotate,
56
+ onFuse:
57
+ typeof props.onFuse === "function"
58
+ ? props.onFuse
59
+ : props.onFuse?.callback,
60
+ onCollision: props.onCollision,
61
+ onTransformUpdate: props.onTransformUpdate,
62
+ });
63
+
64
+ // Component doesn't have children, so just return null
65
+ return null;
66
+ };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * ViroOrbitCamera
3
+ *
4
+ * A component for orbital camera controls.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ convertCommonProps,
12
+ ViroContextProvider,
13
+ useViroEventListeners,
14
+ } from "./ViroUtils";
15
+ import { getNativeViro } from "./ViroGlobal";
16
+
17
+ export interface ViroOrbitCameraProps extends ViroCommonProps {
18
+ // Orbit properties
19
+ focalPoint?: [number, number, number];
20
+ distance?: number;
21
+
22
+ // Children components
23
+ children?: React.ReactNode;
24
+ }
25
+
26
+ /**
27
+ * ViroOrbitCamera is a component for orbital camera controls.
28
+ * It allows the camera to orbit around a focal point.
29
+ */
30
+ export const ViroOrbitCamera: React.FC<ViroOrbitCameraProps> = (props) => {
31
+ // Convert common props to the format expected by the native code
32
+ const nativeProps = {
33
+ ...convertCommonProps(props),
34
+ focalPoint: props.focalPoint,
35
+ distance: props.distance,
36
+ };
37
+
38
+ // Create the node (parent will be determined by context)
39
+ const nodeId = useViroNode("orbitCamera", nativeProps);
40
+
41
+ // Render children with this orbit camera as their parent
42
+ return (
43
+ <ViroContextProvider value={nodeId}>{props.children}</ViroContextProvider>
44
+ );
45
+ };
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ViroParticleEmitter
3
+ *
4
+ * A component for creating particle effects.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ convertCommonProps,
12
+ useViroEventListeners,
13
+ } from "./ViroUtils";
14
+ import { getNativeViro } from "./ViroGlobal";
15
+
16
+ export interface ViroParticleEmitterProps extends ViroCommonProps {
17
+ // Particle properties
18
+ duration?: number;
19
+ delay?: number;
20
+ loop?: boolean;
21
+ run?: boolean;
22
+ fixedToEmitter?: boolean;
23
+
24
+ // Particle image
25
+ image?: {
26
+ source: { uri: string } | number;
27
+ height?: number;
28
+ width?: number;
29
+ bloomThreshold?: number;
30
+ };
31
+
32
+ // Spawn properties
33
+ spawnBehavior?: {
34
+ particleLifetime?: [number, number];
35
+ emissionRatePerSecond?: [number, number];
36
+ emissionRatePerMeter?: [number, number];
37
+ spawnVolume?: {
38
+ shape: "box" | "sphere";
39
+ params?: [number, number, number];
40
+ spawnOnSurface?: boolean;
41
+ };
42
+ maxParticles?: number;
43
+ };
44
+
45
+ // Particle behavior
46
+ particleAppearance?: {
47
+ opacity?: [number, number];
48
+ rotation?: [number, number];
49
+ rotationSpeed?: [number, number];
50
+ scale?: [number, number, number, number];
51
+ color?: [number, number, number, number];
52
+ };
53
+
54
+ // Physics
55
+ particlePhysics?: {
56
+ velocity?: [number, number, number, number, number, number];
57
+ acceleration?: [number, number, number, number, number, number];
58
+ explosiveImpulse?: [number, number];
59
+ };
60
+
61
+ // Events
62
+ onFinish?: () => void;
63
+ }
64
+
65
+ /**
66
+ * ViroParticleEmitter is a component for creating particle effects.
67
+ * It provides a flexible system for creating various particle-based visual effects.
68
+ */
69
+ export const ViroParticleEmitter: React.FC<ViroParticleEmitterProps> = (
70
+ props
71
+ ) => {
72
+ // Convert common props to the format expected by the native code
73
+ const nativeProps = {
74
+ ...convertCommonProps(props),
75
+ duration: props.duration,
76
+ delay: props.delay,
77
+ loop: props.loop,
78
+ run: props.run,
79
+ fixedToEmitter: props.fixedToEmitter,
80
+ image: props.image,
81
+ spawnBehavior: props.spawnBehavior,
82
+ particleAppearance: props.particleAppearance,
83
+ particlePhysics: props.particlePhysics,
84
+ };
85
+
86
+ // Create the node (parent will be determined by context)
87
+ const nodeId = useViroNode("particle", nativeProps);
88
+
89
+
90
+ // Register event handlers using our new event system
91
+ useViroEventListeners(nodeId, {
92
+ onHover: props.onHover,
93
+ onClick: props.onClick,
94
+ onClickState: props.onClickState,
95
+ onTouch: props.onTouch,
96
+ onScroll: props.onScroll,
97
+ onSwipe: props.onSwipe,
98
+ onDrag: props.onDrag,
99
+ onPinch: props.onPinch,
100
+ onRotate: props.onRotate,
101
+ onFuse:
102
+ typeof props.onFuse === "function"
103
+ ? props.onFuse
104
+ : props.onFuse?.callback,
105
+ onCollision: props.onCollision,
106
+ onTransformUpdate: props.onTransformUpdate,
107
+ });
108
+
109
+ // Component doesn't have children, so just return null
110
+ return null;
111
+ };
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ViroPolygon
3
+ *
4
+ * A component for rendering a 2D polygon in 3D space.
5
+ */
6
+
7
+ import React from "react";
8
+ import {
9
+ ViroCommonProps,
10
+ useViroNode,
11
+ convertCommonProps,
12
+ useViroEventListeners,
13
+ } from "./ViroUtils";
14
+ import { getNativeViro } from "./ViroGlobal";
15
+
16
+ export interface ViroPolygonProps extends ViroCommonProps {
17
+ // Polygon vertices
18
+ vertices: [number, number][];
19
+
20
+ // Holes in the polygon
21
+ holes?: [number, number][][];
22
+
23
+ // Materials
24
+ materials?: string | string[];
25
+
26
+ // Lighting props
27
+ lightReceivingBitMask?: number;
28
+ shadowCastingBitMask?: number;
29
+ }
30
+
31
+ /**
32
+ * ViroPolygon is a component for rendering a 2D polygon in 3D space.
33
+ * It allows you to create complex 2D shapes by specifying a list of vertices.
34
+ * You can also create holes in the polygon by specifying a list of hole vertices.
35
+ */
36
+ export const ViroPolygon: React.FC<ViroPolygonProps> = (props) => {
37
+ // Convert common props to the format expected by the native code
38
+ const nativeProps = {
39
+ ...convertCommonProps(props),
40
+ vertices: props.vertices,
41
+ holes: props.holes,
42
+ materials: props.materials,
43
+ lightReceivingBitMask: props.lightReceivingBitMask,
44
+ shadowCastingBitMask: props.shadowCastingBitMask,
45
+ };
46
+
47
+ // Create the node (parent will be determined by context)
48
+ const nodeId = useViroNode("polygon", nativeProps);
49
+
50
+
51
+ // Register event handlers using our new event system
52
+ useViroEventListeners(nodeId, {
53
+ onHover: props.onHover,
54
+ onClick: props.onClick,
55
+ onClickState: props.onClickState,
56
+ onTouch: props.onTouch,
57
+ onScroll: props.onScroll,
58
+ onSwipe: props.onSwipe,
59
+ onDrag: props.onDrag,
60
+ onPinch: props.onPinch,
61
+ onRotate: props.onRotate,
62
+ onFuse:
63
+ typeof props.onFuse === "function"
64
+ ? props.onFuse
65
+ : props.onFuse?.callback,
66
+ onCollision: props.onCollision,
67
+ onTransformUpdate: props.onTransformUpdate,
68
+ });
69
+
70
+ // Component doesn't have children, so just return null
71
+ return null;
72
+ };