@rive-app/react-native 0.1.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +257 -0
  3. package/RNRive.podspec +53 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +155 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +13 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  9. package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelProperty.kt +20 -0
  10. package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelPropertyImpl.kt +50 -0
  11. package/android/src/main/java/com/margelo/nitro/rive/BytesDataLoader.kt +9 -0
  12. package/android/src/main/java/com/margelo/nitro/rive/DataLoader.kt +15 -0
  13. package/android/src/main/java/com/margelo/nitro/rive/DataSource.kt +38 -0
  14. package/android/src/main/java/com/margelo/nitro/rive/DataSourceResolver.kt +36 -0
  15. package/android/src/main/java/com/margelo/nitro/rive/EventPropertiesOutputExtensions.kt +12 -0
  16. package/android/src/main/java/com/margelo/nitro/rive/FileDataLoader.kt +21 -0
  17. package/android/src/main/java/com/margelo/nitro/rive/HTTPDataLoader.kt +37 -0
  18. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +98 -0
  19. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFileFactory.kt +123 -0
  20. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveImage.kt +15 -0
  21. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveImageFactory.kt +23 -0
  22. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveView.kt +279 -0
  23. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt +53 -0
  24. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt +22 -0
  25. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt +22 -0
  26. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt +22 -0
  27. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt +21 -0
  28. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt +76 -0
  29. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt +23 -0
  30. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt +22 -0
  31. package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelTriggerProperty.kt +21 -0
  32. package/android/src/main/java/com/margelo/nitro/rive/ReferencedAssetLoader.kt +108 -0
  33. package/android/src/main/java/com/margelo/nitro/rive/ResourceDataLoader.kt +44 -0
  34. package/android/src/main/java/com/margelo/nitro/rive/Rive.kt +12 -0
  35. package/android/src/main/java/com/rive/RivePackage.kt +29 -0
  36. package/android/src/main/java/com/rive/RiveReactNativeView.kt +433 -0
  37. package/android/src/main/java/com/rive/RiveViewManager.kt +11 -0
  38. package/ios/BaseHybridViewModelProperty.swift +118 -0
  39. package/ios/BundleDataLoader.swift +25 -0
  40. package/ios/BytesDataLoader.swift +10 -0
  41. package/ios/DataLoader.swift +28 -0
  42. package/ios/DataSource.swift +43 -0
  43. package/ios/DataSourceResolver.swift +55 -0
  44. package/ios/EventPropertiesOutputExtensions.swift +15 -0
  45. package/ios/FileDataLoader.swift +24 -0
  46. package/ios/HTTPDataLoader.swift +31 -0
  47. package/ios/HybridRiveFile.swift +113 -0
  48. package/ios/HybridRiveFileFactory.swift +163 -0
  49. package/ios/HybridRiveImage.swift +17 -0
  50. package/ios/HybridRiveImageFactory.swift +26 -0
  51. package/ios/HybridRiveView.swift +284 -0
  52. package/ios/HybridViewModel.swift +46 -0
  53. package/ios/HybridViewModelBooleanProperty.swift +29 -0
  54. package/ios/HybridViewModelColorProperty.swift +63 -0
  55. package/ios/HybridViewModelEnumProperty.swift +29 -0
  56. package/ios/HybridViewModelImageProperty.swift +31 -0
  57. package/ios/HybridViewModelInstance.swift +51 -0
  58. package/ios/HybridViewModelNumberProperty.swift +35 -0
  59. package/ios/HybridViewModelStringProperty.swift +29 -0
  60. package/ios/HybridViewModelTriggerProperty.swift +30 -0
  61. package/ios/RCTLog.swift +29 -0
  62. package/ios/RCTSwiftLog.h +11 -0
  63. package/ios/RCTSwiftLog.m +38 -0
  64. package/ios/ReferencedAssetLoader.swift +145 -0
  65. package/ios/Rive.swift +5 -0
  66. package/ios/RiveReactNativeView.swift +325 -0
  67. package/ios/Utils.swift +15 -0
  68. package/lib/module/core/Alignment.js +42 -0
  69. package/lib/module/core/Alignment.js.map +1 -0
  70. package/lib/module/core/Errors.js +13 -0
  71. package/lib/module/core/Errors.js.map +1 -0
  72. package/lib/module/core/Events.js +8 -0
  73. package/lib/module/core/Events.js.map +1 -0
  74. package/lib/module/core/Fit.js +51 -0
  75. package/lib/module/core/Fit.js.map +1 -0
  76. package/lib/module/core/NitroRiveViewComponent.js +6 -0
  77. package/lib/module/core/NitroRiveViewComponent.js.map +1 -0
  78. package/lib/module/core/ReferencedAssets.js +4 -0
  79. package/lib/module/core/ReferencedAssets.js.map +1 -0
  80. package/lib/module/core/RiveColor.js +90 -0
  81. package/lib/module/core/RiveColor.js.map +1 -0
  82. package/lib/module/core/RiveFile.js +64 -0
  83. package/lib/module/core/RiveFile.js.map +1 -0
  84. package/lib/module/core/RiveImages.js +5 -0
  85. package/lib/module/core/RiveImages.js.map +1 -0
  86. package/lib/module/core/RiveView.js +51 -0
  87. package/lib/module/core/RiveView.js.map +1 -0
  88. package/lib/module/core/callDispose.js +15 -0
  89. package/lib/module/core/callDispose.js.map +1 -0
  90. package/lib/module/hooks/useRive.js +51 -0
  91. package/lib/module/hooks/useRive.js.map +1 -0
  92. package/lib/module/hooks/useRiveBoolean.js +23 -0
  93. package/lib/module/hooks/useRiveBoolean.js.map +1 -0
  94. package/lib/module/hooks/useRiveColor.js +30 -0
  95. package/lib/module/hooks/useRiveColor.js.map +1 -0
  96. package/lib/module/hooks/useRiveEnum.js +23 -0
  97. package/lib/module/hooks/useRiveEnum.js.map +1 -0
  98. package/lib/module/hooks/useRiveFile.js +128 -0
  99. package/lib/module/hooks/useRiveFile.js.map +1 -0
  100. package/lib/module/hooks/useRiveNumber.js +23 -0
  101. package/lib/module/hooks/useRiveNumber.js.map +1 -0
  102. package/lib/module/hooks/useRiveProperty.js +79 -0
  103. package/lib/module/hooks/useRiveProperty.js.map +1 -0
  104. package/lib/module/hooks/useRiveString.js +23 -0
  105. package/lib/module/hooks/useRiveString.js.map +1 -0
  106. package/lib/module/hooks/useRiveTrigger.js +33 -0
  107. package/lib/module/hooks/useRiveTrigger.js.map +1 -0
  108. package/lib/module/index.js +28 -0
  109. package/lib/module/index.js.map +1 -0
  110. package/lib/module/package.json +1 -0
  111. package/lib/module/specs/ArtboardBy.js +27 -0
  112. package/lib/module/specs/ArtboardBy.js.map +1 -0
  113. package/lib/module/specs/Rive.nitro.js +4 -0
  114. package/lib/module/specs/Rive.nitro.js.map +1 -0
  115. package/lib/module/specs/RiveFile.nitro.js +4 -0
  116. package/lib/module/specs/RiveFile.nitro.js.map +1 -0
  117. package/lib/module/specs/RiveImage.nitro.js +4 -0
  118. package/lib/module/specs/RiveImage.nitro.js.map +1 -0
  119. package/lib/module/specs/RiveView.nitro.js +23 -0
  120. package/lib/module/specs/RiveView.nitro.js.map +1 -0
  121. package/lib/module/specs/ViewModel.nitro.js +4 -0
  122. package/lib/module/specs/ViewModel.nitro.js.map +1 -0
  123. package/lib/module/types.js +2 -0
  124. package/lib/module/types.js.map +1 -0
  125. package/lib/nitrogen/generated/shared/json/RiveViewConfig.json +18 -0
  126. package/lib/typescript/package.json +1 -0
  127. package/lib/typescript/src/core/Alignment.d.ts +39 -0
  128. package/lib/typescript/src/core/Alignment.d.ts.map +1 -0
  129. package/lib/typescript/src/core/Errors.d.ts +14 -0
  130. package/lib/typescript/src/core/Errors.d.ts.map +1 -0
  131. package/lib/typescript/src/core/Events.d.ts +26 -0
  132. package/lib/typescript/src/core/Events.d.ts.map +1 -0
  133. package/lib/typescript/src/core/Fit.d.ts +48 -0
  134. package/lib/typescript/src/core/Fit.d.ts.map +1 -0
  135. package/lib/typescript/src/core/NitroRiveViewComponent.d.ts +4 -0
  136. package/lib/typescript/src/core/NitroRiveViewComponent.d.ts.map +1 -0
  137. package/lib/typescript/src/core/ReferencedAssets.d.ts +15 -0
  138. package/lib/typescript/src/core/ReferencedAssets.d.ts.map +1 -0
  139. package/lib/typescript/src/core/RiveColor.d.ts +53 -0
  140. package/lib/typescript/src/core/RiveColor.d.ts.map +1 -0
  141. package/lib/typescript/src/core/RiveFile.d.ts +62 -0
  142. package/lib/typescript/src/core/RiveFile.d.ts.map +1 -0
  143. package/lib/typescript/src/core/RiveImages.d.ts +3 -0
  144. package/lib/typescript/src/core/RiveImages.d.ts.map +1 -0
  145. package/lib/typescript/src/core/RiveView.d.ts +38 -0
  146. package/lib/typescript/src/core/RiveView.d.ts.map +1 -0
  147. package/lib/typescript/src/core/callDispose.d.ts +7 -0
  148. package/lib/typescript/src/core/callDispose.d.ts.map +1 -0
  149. package/lib/typescript/src/hooks/useRive.d.ts +9 -0
  150. package/lib/typescript/src/hooks/useRive.d.ts.map +1 -0
  151. package/lib/typescript/src/hooks/useRiveBoolean.d.ts +11 -0
  152. package/lib/typescript/src/hooks/useRiveBoolean.d.ts.map +1 -0
  153. package/lib/typescript/src/hooks/useRiveColor.d.ts +14 -0
  154. package/lib/typescript/src/hooks/useRiveColor.d.ts.map +1 -0
  155. package/lib/typescript/src/hooks/useRiveEnum.d.ts +11 -0
  156. package/lib/typescript/src/hooks/useRiveEnum.d.ts.map +1 -0
  157. package/lib/typescript/src/hooks/useRiveFile.d.ts +24 -0
  158. package/lib/typescript/src/hooks/useRiveFile.d.ts.map +1 -0
  159. package/lib/typescript/src/hooks/useRiveNumber.d.ts +11 -0
  160. package/lib/typescript/src/hooks/useRiveNumber.d.ts.map +1 -0
  161. package/lib/typescript/src/hooks/useRiveProperty.d.ts +22 -0
  162. package/lib/typescript/src/hooks/useRiveProperty.d.ts.map +1 -0
  163. package/lib/typescript/src/hooks/useRiveString.d.ts +11 -0
  164. package/lib/typescript/src/hooks/useRiveString.d.ts.map +1 -0
  165. package/lib/typescript/src/hooks/useRiveTrigger.d.ts +11 -0
  166. package/lib/typescript/src/hooks/useRiveTrigger.d.ts.map +1 -0
  167. package/lib/typescript/src/index.d.ts +32 -0
  168. package/lib/typescript/src/index.d.ts.map +1 -0
  169. package/lib/typescript/src/specs/ArtboardBy.d.ts +20 -0
  170. package/lib/typescript/src/specs/ArtboardBy.d.ts.map +1 -0
  171. package/lib/typescript/src/specs/Rive.nitro.d.ts +8 -0
  172. package/lib/typescript/src/specs/Rive.nitro.d.ts.map +1 -0
  173. package/lib/typescript/src/specs/RiveFile.nitro.d.ts +42 -0
  174. package/lib/typescript/src/specs/RiveFile.nitro.d.ts.map +1 -0
  175. package/lib/typescript/src/specs/RiveImage.nitro.d.ts +43 -0
  176. package/lib/typescript/src/specs/RiveImage.nitro.d.ts.map +1 -0
  177. package/lib/typescript/src/specs/RiveView.nitro.d.ts +139 -0
  178. package/lib/typescript/src/specs/RiveView.nitro.d.ts.map +1 -0
  179. package/lib/typescript/src/specs/ViewModel.nitro.d.ts +103 -0
  180. package/lib/typescript/src/specs/ViewModel.nitro.d.ts.map +1 -0
  181. package/lib/typescript/src/types.d.ts +33 -0
  182. package/lib/typescript/src/types.d.ts.map +1 -0
  183. package/nitrogen/generated/android/c++/JAlignment.hpp +80 -0
  184. package/nitrogen/generated/android/c++/JArtboardBy.hpp +68 -0
  185. package/nitrogen/generated/android/c++/JArtboardByTypes.hpp +59 -0
  186. package/nitrogen/generated/android/c++/JDataBindByName.hpp +57 -0
  187. package/nitrogen/generated/android/c++/JDataBindMode.hpp +59 -0
  188. package/nitrogen/generated/android/c++/JEventPropertiesOutput.cpp +30 -0
  189. package/nitrogen/generated/android/c++/JEventPropertiesOutput.hpp +83 -0
  190. package/nitrogen/generated/android/c++/JFit.hpp +77 -0
  191. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  192. package/nitrogen/generated/android/c++/JFunc_void_RiveError.hpp +80 -0
  193. package/nitrogen/generated/android/c++/JFunc_void_UnifiedRiveEvent.hpp +84 -0
  194. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
  195. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
  196. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
  197. package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.cpp +134 -0
  198. package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.hpp +68 -0
  199. package/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp +96 -0
  200. package/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp +68 -0
  201. package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.cpp +104 -0
  202. package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.hpp +67 -0
  203. package/nitrogen/generated/android/c++/JHybridRiveImageSpec.cpp +52 -0
  204. package/nitrogen/generated/android/c++/JHybridRiveImageSpec.hpp +65 -0
  205. package/nitrogen/generated/android/c++/JHybridRiveSpec.cpp +52 -0
  206. package/nitrogen/generated/android/c++/JHybridRiveSpec.hpp +65 -0
  207. package/nitrogen/generated/android/c++/JHybridRiveViewSpec.cpp +299 -0
  208. package/nitrogen/generated/android/c++/JHybridRiveViewSpec.hpp +97 -0
  209. package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +65 -0
  210. package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +68 -0
  211. package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +65 -0
  212. package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +68 -0
  213. package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +66 -0
  214. package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +68 -0
  215. package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +66 -0
  216. package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.hpp +68 -0
  217. package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +115 -0
  218. package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +71 -0
  219. package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +65 -0
  220. package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +68 -0
  221. package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.cpp +48 -0
  222. package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.hpp +65 -0
  223. package/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp +86 -0
  224. package/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp +70 -0
  225. package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +66 -0
  226. package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +68 -0
  227. package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.cpp +61 -0
  228. package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.hpp +68 -0
  229. package/nitrogen/generated/android/c++/JReferencedAssetsType.hpp +77 -0
  230. package/nitrogen/generated/android/c++/JResolvedReferencedAsset.hpp +77 -0
  231. package/nitrogen/generated/android/c++/JRiveError.hpp +63 -0
  232. package/nitrogen/generated/android/c++/JRiveErrorType.hpp +74 -0
  233. package/nitrogen/generated/android/c++/JRiveEventType.hpp +59 -0
  234. package/nitrogen/generated/android/c++/JUnifiedRiveEvent.hpp +96 -0
  235. package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.cpp +30 -0
  236. package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.hpp +90 -0
  237. package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.cpp +88 -0
  238. package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.hpp +49 -0
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Alignment.kt +28 -0
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardBy.kt +44 -0
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardByTypes.kt +21 -0
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindByName.kt +38 -0
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindMode.kt +21 -0
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/EventPropertiesOutput.kt +72 -0
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Fit.kt +27 -0
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void.kt +80 -0
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_RiveError.kt +80 -0
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_UnifiedRiveEvent.kt +80 -0
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_bool.kt +80 -0
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_double.kt +80 -0
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_std__string.kt +80 -0
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileFactorySpec.kt +71 -0
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt +71 -0
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageFactorySpec.kt +67 -0
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageSpec.kt +57 -0
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveSpec.kt +57 -0
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveViewSpec.kt +183 -0
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +70 -0
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +70 -0
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +70 -0
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelImagePropertySpec.kt +70 -0
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +83 -0
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +70 -0
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelPropertySpec.kt +55 -0
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt +79 -0
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +70 -0
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelTriggerPropertySpec.kt +70 -0
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ReferencedAssetsType.kt +38 -0
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ResolvedReferencedAsset.kt +50 -0
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveError.kt +41 -0
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveErrorType.kt +26 -0
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveEventType.kt +21 -0
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/UnifiedRiveEvent.kt +53 -0
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Variant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.kt +72 -0
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/riveOnLoad.kt +35 -0
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewManager.kt +50 -0
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewStateUpdater.kt +23 -0
  278. package/nitrogen/generated/android/rive+autolinking.cmake +115 -0
  279. package/nitrogen/generated/android/rive+autolinking.gradle +27 -0
  280. package/nitrogen/generated/android/riveOnLoad.cpp +192 -0
  281. package/nitrogen/generated/android/riveOnLoad.hpp +25 -0
  282. package/nitrogen/generated/ios/RNRive+autolinking.rb +60 -0
  283. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +360 -0
  284. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +1180 -0
  285. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +161 -0
  286. package/nitrogen/generated/ios/RNRiveAutolinking.mm +137 -0
  287. package/nitrogen/generated/ios/RNRiveAutolinking.swift +220 -0
  288. package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.cpp +11 -0
  289. package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.hpp +119 -0
  290. package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.cpp +11 -0
  291. package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp +121 -0
  292. package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.cpp +11 -0
  293. package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.hpp +100 -0
  294. package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.cpp +11 -0
  295. package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.hpp +71 -0
  296. package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.cpp +11 -0
  297. package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.hpp +76 -0
  298. package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.cpp +11 -0
  299. package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.hpp +277 -0
  300. package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.cpp +11 -0
  301. package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +88 -0
  302. package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.cpp +11 -0
  303. package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +88 -0
  304. package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.cpp +11 -0
  305. package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +90 -0
  306. package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.cpp +11 -0
  307. package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.hpp +94 -0
  308. package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.cpp +11 -0
  309. package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +149 -0
  310. package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.cpp +11 -0
  311. package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +88 -0
  312. package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.cpp +11 -0
  313. package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.hpp +69 -0
  314. package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.cpp +11 -0
  315. package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp +113 -0
  316. package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.cpp +11 -0
  317. package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +90 -0
  318. package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.cpp +11 -0
  319. package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.hpp +89 -0
  320. package/nitrogen/generated/ios/c++/views/HybridRiveViewComponent.mm +136 -0
  321. package/nitrogen/generated/ios/swift/Alignment.swift +68 -0
  322. package/nitrogen/generated/ios/swift/ArtboardBy.swift +89 -0
  323. package/nitrogen/generated/ios/swift/ArtboardByTypes.swift +40 -0
  324. package/nitrogen/generated/ios/swift/DataBindByName.swift +36 -0
  325. package/nitrogen/generated/ios/swift/DataBindMode.swift +40 -0
  326. package/nitrogen/generated/ios/swift/EventPropertiesOutput.swift +19 -0
  327. package/nitrogen/generated/ios/swift/Fit.swift +64 -0
  328. package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
  329. package/nitrogen/generated/ios/swift/Func_void_RiveError.swift +47 -0
  330. package/nitrogen/generated/ios/swift/Func_void_UnifiedRiveEvent.swift +47 -0
  331. package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
  332. package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
  333. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
  334. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveFileSpec_.swift +51 -0
  335. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveImageSpec_.swift +51 -0
  336. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
  337. package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec.swift +59 -0
  338. package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec_cxx.swift +207 -0
  339. package/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift +59 -0
  340. package/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift +204 -0
  341. package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec.swift +58 -0
  342. package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec_cxx.swift +185 -0
  343. package/nitrogen/generated/ios/swift/HybridRiveImageSpec.swift +56 -0
  344. package/nitrogen/generated/ios/swift/HybridRiveImageSpec_cxx.swift +126 -0
  345. package/nitrogen/generated/ios/swift/HybridRiveSpec.swift +56 -0
  346. package/nitrogen/generated/ios/swift/HybridRiveSpec_cxx.swift +131 -0
  347. package/nitrogen/generated/ios/swift/HybridRiveViewSpec.swift +79 -0
  348. package/nitrogen/generated/ios/swift/HybridRiveViewSpec_cxx.swift +623 -0
  349. package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +57 -0
  350. package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +158 -0
  351. package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +57 -0
  352. package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +158 -0
  353. package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +57 -0
  354. package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +158 -0
  355. package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec.swift +58 -0
  356. package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec_cxx.swift +171 -0
  357. package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +62 -0
  358. package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +271 -0
  359. package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +57 -0
  360. package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +158 -0
  361. package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec.swift +56 -0
  362. package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec_cxx.swift +121 -0
  363. package/nitrogen/generated/ios/swift/HybridViewModelSpec.swift +61 -0
  364. package/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift +222 -0
  365. package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +57 -0
  366. package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +158 -0
  367. package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec.swift +58 -0
  368. package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec_cxx.swift +160 -0
  369. package/nitrogen/generated/ios/swift/ReferencedAssetsType.swift +75 -0
  370. package/nitrogen/generated/ios/swift/ResolvedReferencedAsset.swift +185 -0
  371. package/nitrogen/generated/ios/swift/RiveError.swift +47 -0
  372. package/nitrogen/generated/ios/swift/RiveErrorType.swift +60 -0
  373. package/nitrogen/generated/ios/swift/RiveEventType.swift +40 -0
  374. package/nitrogen/generated/ios/swift/UnifiedRiveEvent.swift +213 -0
  375. package/nitrogen/generated/ios/swift/Variant__any_HybridViewModelInstanceSpec__DataBindMode_DataBindByName.swift +19 -0
  376. package/nitrogen/generated/shared/c++/Alignment.hpp +104 -0
  377. package/nitrogen/generated/shared/c++/ArtboardBy.hpp +86 -0
  378. package/nitrogen/generated/shared/c++/ArtboardByTypes.hpp +76 -0
  379. package/nitrogen/generated/shared/c++/DataBindByName.hpp +75 -0
  380. package/nitrogen/generated/shared/c++/DataBindMode.hpp +62 -0
  381. package/nitrogen/generated/shared/c++/Fit.hpp +68 -0
  382. package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.cpp +24 -0
  383. package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.hpp +74 -0
  384. package/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp +25 -0
  385. package/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp +75 -0
  386. package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.cpp +23 -0
  387. package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.hpp +69 -0
  388. package/nitrogen/generated/shared/c++/HybridRiveImageSpec.cpp +21 -0
  389. package/nitrogen/generated/shared/c++/HybridRiveImageSpec.hpp +62 -0
  390. package/nitrogen/generated/shared/c++/HybridRiveSpec.cpp +21 -0
  391. package/nitrogen/generated/shared/c++/HybridRiveSpec.hpp +62 -0
  392. package/nitrogen/generated/shared/c++/HybridRiveViewSpec.cpp +54 -0
  393. package/nitrogen/generated/shared/c++/HybridRiveViewSpec.hpp +122 -0
  394. package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp +25 -0
  395. package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +67 -0
  396. package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp +25 -0
  397. package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +67 -0
  398. package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp +25 -0
  399. package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +68 -0
  400. package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.cpp +24 -0
  401. package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.hpp +71 -0
  402. package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +28 -0
  403. package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +90 -0
  404. package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp +25 -0
  405. package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +67 -0
  406. package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.cpp +21 -0
  407. package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.hpp +62 -0
  408. package/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp +27 -0
  409. package/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp +71 -0
  410. package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp +25 -0
  411. package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +68 -0
  412. package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.cpp +24 -0
  413. package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.hpp +67 -0
  414. package/nitrogen/generated/shared/c++/ReferencedAssetsType.hpp +79 -0
  415. package/nitrogen/generated/shared/c++/ResolvedReferencedAsset.hpp +95 -0
  416. package/nitrogen/generated/shared/c++/RiveError.hpp +81 -0
  417. package/nitrogen/generated/shared/c++/RiveErrorType.hpp +75 -0
  418. package/nitrogen/generated/shared/c++/RiveEventType.hpp +62 -0
  419. package/nitrogen/generated/shared/c++/UnifiedRiveEvent.hpp +100 -0
  420. package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.cpp +183 -0
  421. package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.hpp +124 -0
  422. package/nitrogen/generated/shared/json/RiveViewConfig.json +18 -0
  423. package/package.json +193 -0
  424. package/src/core/Alignment.ts +46 -0
  425. package/src/core/Errors.ts +14 -0
  426. package/src/core/Events.ts +31 -0
  427. package/src/core/Fit.ts +54 -0
  428. package/src/core/NitroRiveViewComponent.ts +18 -0
  429. package/src/core/ReferencedAssets.ts +14 -0
  430. package/src/core/RiveColor.ts +100 -0
  431. package/src/core/RiveFile.ts +149 -0
  432. package/src/core/RiveImages.ts +5 -0
  433. package/src/core/RiveView.tsx +48 -0
  434. package/src/core/callDispose.ts +18 -0
  435. package/src/hooks/useRive.ts +56 -0
  436. package/src/hooks/useRiveBoolean.ts +28 -0
  437. package/src/hooks/useRiveColor.ts +47 -0
  438. package/src/hooks/useRiveEnum.ts +27 -0
  439. package/src/hooks/useRiveFile.ts +184 -0
  440. package/src/hooks/useRiveNumber.ts +28 -0
  441. package/src/hooks/useRiveProperty.ts +110 -0
  442. package/src/hooks/useRiveString.ts +28 -0
  443. package/src/hooks/useRiveTrigger.ts +49 -0
  444. package/src/index.tsx +52 -0
  445. package/src/specs/ArtboardBy.ts +31 -0
  446. package/src/specs/Rive.nitro.ts +6 -0
  447. package/src/specs/RiveFile.nitro.ts +57 -0
  448. package/src/specs/RiveImage.nitro.ts +42 -0
  449. package/src/specs/RiveView.nitro.ts +149 -0
  450. package/src/specs/ViewModel.nitro.ts +126 -0
  451. package/src/types.tsx +34 -0
package/package.json ADDED
@@ -0,0 +1,193 @@
1
+ {
2
+ "name": "@rive-app/react-native",
3
+ "version": "0.1.1-beta.0",
4
+ "description": "Rive React Native",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "source": "./src/index.tsx",
10
+ "types": "./lib/typescript/src/index.d.ts",
11
+ "default": "./lib/module/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "files": [
16
+ "src",
17
+ "lib",
18
+ "android",
19
+ "ios",
20
+ "cpp",
21
+ "nitrogen",
22
+ "*.podspec",
23
+ "react-native.config.js",
24
+ "!ios/build",
25
+ "!android/build",
26
+ "!android/gradle",
27
+ "!android/gradlew",
28
+ "!android/gradlew.bat",
29
+ "!android/local.properties",
30
+ "!**/__tests__",
31
+ "!**/__fixtures__",
32
+ "!**/__mocks__",
33
+ "!**/.*"
34
+ ],
35
+ "scripts": {
36
+ "example": "yarn workspace react-native-rive-example",
37
+ "test": "jest",
38
+ "typecheck": "tsc",
39
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
40
+ "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
41
+ "prepare": "npx react-native-builder-bob@^0.40.0 build",
42
+ "nitrogen": "nitrogen",
43
+ "release": "release-it",
44
+ "dev:ios": "cd example && xed ios",
45
+ "dev:android": "cd example && open -a \"/Applications/Android Studio.app\" ./android",
46
+ "copy:nitrogen-config": "mkdir -p lib/nitrogen/generated/shared/json && cp nitrogen/generated/shared/json/RiveViewConfig.json lib/nitrogen/generated/shared/json/",
47
+ "lint:swift": "./scripts/lint-swift.sh",
48
+ "lint:kotlin": "./scripts/lint-kotlin.sh",
49
+ "lint:native": "yarn lint:swift && yarn lint:kotlin"
50
+ },
51
+ "keywords": [
52
+ "react-native",
53
+ "ios",
54
+ "android"
55
+ ],
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "git+https://github.com/rive-app/rive-nitro-react-native.git"
59
+ },
60
+ "author": "Rive <support@rive.app> (https://rive.app)",
61
+ "license": "MIT",
62
+ "bugs": {
63
+ "url": "https://github.com/rive-app/rive-nitro-react-native/issues"
64
+ },
65
+ "homepage": "https://github.com/rive-app/rive-nitro-react-native#readme",
66
+ "runtimeVersions": {
67
+ "ios": "6.12.0",
68
+ "android": "10.5.0"
69
+ },
70
+ "publishConfig": {
71
+ "registry": "https://registry.npmjs.org/"
72
+ },
73
+ "devDependencies": {
74
+ "@commitlint/config-conventional": "^19.6.0",
75
+ "@eslint/compat": "^1.2.7",
76
+ "@eslint/eslintrc": "^3.3.0",
77
+ "@eslint/js": "^9.22.0",
78
+ "@react-native/babel-preset": "0.79.2",
79
+ "@react-native/eslint-config": "^0.78.0",
80
+ "@release-it/conventional-changelog": "^9.0.2",
81
+ "@testing-library/react-hooks": "^8.0.1",
82
+ "@testing-library/react-native": "^13.3.3",
83
+ "@types/jest": "^29.5.5",
84
+ "@types/react": "^19.0.0",
85
+ "@typescript-eslint/eslint-plugin": "^8.46.4",
86
+ "@typescript-eslint/parser": "^8.46.4",
87
+ "commitlint": "^19.6.1",
88
+ "del-cli": "^5.1.0",
89
+ "eslint": "^9.22.0",
90
+ "eslint-config-prettier": "^10.1.1",
91
+ "eslint-plugin-jest": "^29.1.0",
92
+ "eslint-plugin-prettier": "^5.2.3",
93
+ "jest": "^29.7.0",
94
+ "nitrogen": "0.31.10",
95
+ "prettier": "^3.0.3",
96
+ "react": "19.0.0",
97
+ "react-native": "0.79.2",
98
+ "react-native-builder-bob": "^0.40.10",
99
+ "react-native-nitro-modules": "0.31.10",
100
+ "react-test-renderer": "19.0.0",
101
+ "release-it": "^17.10.0",
102
+ "turbo": "^1.10.7",
103
+ "typescript": "^5.2.2"
104
+ },
105
+ "peerDependencies": {
106
+ "react": "*",
107
+ "react-native": "*",
108
+ "react-native-nitro-modules": ">=0.31.8"
109
+ },
110
+ "workspaces": [
111
+ "example",
112
+ "expo-example"
113
+ ],
114
+ "packageManager": "yarn@3.6.1",
115
+ "jest": {
116
+ "preset": "react-native",
117
+ "setupFilesAfterEnv": [
118
+ "<rootDir>/jest-setup.js"
119
+ ],
120
+ "testMatch": [
121
+ "<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}",
122
+ "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}"
123
+ ],
124
+ "modulePathIgnorePatterns": [
125
+ "<rootDir>/example/node_modules",
126
+ "<rootDir>/lib/"
127
+ ],
128
+ "moduleNameMapper": {
129
+ "^../nitrogen/generated/shared/json/RiveViewConfig\\.json$": "<rootDir>/jest-setup.js"
130
+ }
131
+ },
132
+ "commitlint": {
133
+ "extends": [
134
+ "@commitlint/config-conventional"
135
+ ]
136
+ },
137
+ "release-it": {
138
+ "git": {
139
+ "commitMessage": "chore: release ${version}",
140
+ "tagName": "v${version}"
141
+ },
142
+ "npm": {
143
+ "publish": true
144
+ },
145
+ "github": {
146
+ "release": true
147
+ },
148
+ "plugins": {
149
+ "@release-it/conventional-changelog": {
150
+ "preset": {
151
+ "name": "angular"
152
+ }
153
+ }
154
+ }
155
+ },
156
+ "prettier": {
157
+ "quoteProps": "consistent",
158
+ "singleQuote": true,
159
+ "tabWidth": 2,
160
+ "trailingComma": "es5",
161
+ "useTabs": false
162
+ },
163
+ "react-native-builder-bob": {
164
+ "source": "src",
165
+ "output": "lib",
166
+ "targets": [
167
+ [
168
+ "module",
169
+ {
170
+ "esm": true
171
+ }
172
+ ],
173
+ [
174
+ "typescript",
175
+ {
176
+ "project": "tsconfig.build.json"
177
+ }
178
+ ],
179
+ [
180
+ "custom",
181
+ {
182
+ "script": "copy:nitrogen-config",
183
+ "clean": "lib/nitrogen"
184
+ }
185
+ ]
186
+ ]
187
+ },
188
+ "create-react-native-library": {
189
+ "languages": "kotlin-swift",
190
+ "type": "nitro-module",
191
+ "version": "0.50.2"
192
+ }
193
+ }
@@ -0,0 +1,46 @@
1
+ export enum Alignment {
2
+ /**
3
+ * Aligns content to the top-left corner of the container
4
+ */
5
+ TopLeft = 'topLeft',
6
+
7
+ /**
8
+ * Centers content horizontally at the top of the container
9
+ */
10
+ TopCenter = 'topCenter',
11
+
12
+ /**
13
+ * Aligns content to the top-right corner of the container
14
+ */
15
+ TopRight = 'topRight',
16
+
17
+ /**
18
+ * Centers content vertically on the left side of the container
19
+ */
20
+ CenterLeft = 'centerLeft',
21
+
22
+ /**
23
+ * Centers content both horizontally and vertically in the container
24
+ */
25
+ Center = 'center',
26
+
27
+ /**
28
+ * Centers content vertically on the right side of the container
29
+ */
30
+ CenterRight = 'centerRight',
31
+
32
+ /**
33
+ * Aligns content to the bottom-left corner of the container
34
+ */
35
+ BottomLeft = 'bottomLeft',
36
+
37
+ /**
38
+ * Centers content horizontally at the bottom of the container
39
+ */
40
+ BottomCenter = 'bottomCenter',
41
+
42
+ /**
43
+ * Aligns content to the bottom-right corner of the container
44
+ */
45
+ BottomRight = 'bottomRight',
46
+ }
@@ -0,0 +1,14 @@
1
+ export enum RiveErrorType {
2
+ Unknown = 0,
3
+ FileNotFound = 1,
4
+ MalformedFile = 2,
5
+ IncorrectArtboardName = 3,
6
+ IncorrectStateMachineName = 4,
7
+ ViewModelInstanceNotFound = 6,
8
+ IncorrectStateMachineInputName = 8,
9
+ }
10
+
11
+ export interface RiveError {
12
+ message: string;
13
+ type: RiveErrorType;
14
+ }
@@ -0,0 +1,31 @@
1
+ export enum RiveEventType {
2
+ General,
3
+ OpenUrl,
4
+ }
5
+
6
+ export type EventPropertiesOutput = number | boolean | string;
7
+
8
+ export interface UnifiedRiveEvent {
9
+ name: string;
10
+ type: RiveEventType;
11
+ delay?: number;
12
+ properties?: Record<string, EventPropertiesOutput>;
13
+ url?: string;
14
+ target?: string;
15
+ }
16
+
17
+ export type RiveEvent = {
18
+ name: string;
19
+ delay?: number;
20
+ properties?: Record<string, EventPropertiesOutput>;
21
+ type: RiveEventType;
22
+ } & (
23
+ | {
24
+ type: RiveEventType.General;
25
+ }
26
+ | {
27
+ type: RiveEventType.OpenUrl;
28
+ url?: string;
29
+ target?: string;
30
+ }
31
+ );
@@ -0,0 +1,54 @@
1
+ export enum Fit {
2
+ /**
3
+ * Rive content will fill the available view. If the aspect ratios differ,
4
+ * then the Rive content will be stretched.
5
+ */
6
+ Fill,
7
+
8
+ /**
9
+ * Rive content will be contained within the view, preserving the aspect
10
+ * ratio. If the ratios differ, then a portion of the view will be unused
11
+ */
12
+ Contain,
13
+
14
+ /**
15
+ * Rive will cover the view, preserving the aspect ratio. If the Rive
16
+ * content has a different ratio to the view, then the Rive content will be
17
+ * clipped.
18
+ */
19
+ Cover,
20
+
21
+ /**
22
+ * Rive content will fill to the width of the view. This may result in
23
+ * clipping or unfilled view space.
24
+ */
25
+ FitWidth,
26
+
27
+ /**
28
+ * Rive content will fill to the height of the view. This may result in
29
+ * clipping or unfilled view space.
30
+ */
31
+ FitHeight,
32
+
33
+ /**
34
+ * Rive content will render to the size of its artboard, which may result
35
+ * in clipping or unfilled view space.
36
+ */
37
+ None,
38
+
39
+ /**
40
+ * Rive content is scaled down to the size of the view, preserving the
41
+ * aspect ratio. This is equivalent to Contain when the content is larger
42
+ * than the canvas. If the canvas is larger, then ScaleDown will not scale
43
+ * up.
44
+ */
45
+ ScaleDown,
46
+
47
+ /**
48
+ * Rive content will be resized automatically based on layout constraints of
49
+ * the artboard to match the underlying widget size.
50
+ *
51
+ * @see [Responsive Layout](https://rive.app/community/doc/layout/docBl81zd1GB#responsive-layout)
52
+ */
53
+ Layout,
54
+ }
@@ -0,0 +1,18 @@
1
+ import {
2
+ getHostComponent,
3
+ type ReactNativeView,
4
+ } from 'react-native-nitro-modules';
5
+ import type {
6
+ RiveViewMethods,
7
+ RiveViewTSMethods,
8
+ RiveViewProps as NativeRiveViewProps,
9
+ } from '../specs/RiveView.nitro';
10
+ import RiveViewConfig from '../../nitrogen/generated/shared/json/RiveViewConfig.json';
11
+
12
+ export const NitroRiveView = getHostComponent<
13
+ NativeRiveViewProps,
14
+ RiveViewMethods
15
+ >('RiveView', () => RiveViewConfig) as ReactNativeView<
16
+ NativeRiveViewProps,
17
+ RiveViewTSMethods
18
+ >;
@@ -0,0 +1,14 @@
1
+ import type { ResolvedReferencedAsset } from '../specs/RiveFile.nitro';
2
+ import type { RiveImage } from '../specs/RiveImage.nitro';
3
+
4
+ export type ReferencedAssetSource = { source: number | { uri: string } };
5
+
6
+ export type ReferencedAsset = ReferencedAssetSource | RiveImage;
7
+
8
+ export interface ReferencedAssets {
9
+ [assetName: string]: ReferencedAsset;
10
+ }
11
+
12
+ export type ResolvedReferencedAssets = {
13
+ [assetName: string]: ResolvedReferencedAsset;
14
+ };
@@ -0,0 +1,100 @@
1
+ /* eslint-disable no-bitwise */
2
+
3
+ /**
4
+ * Represents a color in RGBA format for use with Rive color data binding.
5
+ * Each channel (r, g, b, a) is represented as a number between 0-255.
6
+ */
7
+ export class RiveColor {
8
+ /**
9
+ * Creates a new RiveColor instance.
10
+ * @param r - Red channel (0-255)
11
+ * @param g - Green channel (0-255)
12
+ * @param b - Blue channel (0-255)
13
+ * @param a - Alpha channel (0-255, where 255 is fully opaque)
14
+ */
15
+ constructor(
16
+ public readonly r: number,
17
+ public readonly g: number,
18
+ public readonly b: number,
19
+ public readonly a: number
20
+ ) {}
21
+
22
+ /**
23
+ * Compares this color with another RiveColor instance.
24
+ * @param other - The RiveColor to compare with
25
+ * @returns true if the colors are equal, false otherwise
26
+ */
27
+ equals(other: RiveColor | undefined): boolean {
28
+ if (!other) return false;
29
+ return (
30
+ this.r === other.r &&
31
+ this.g === other.g &&
32
+ this.b === other.b &&
33
+ this.a === other.a
34
+ );
35
+ }
36
+
37
+ /**
38
+ * Creates a RiveColor instance from a hex color string.
39
+ * Supports both 6-digit (#RRGGBB) and 8-digit (#RRGGBBAA) formats.
40
+ * @param color - Hex color string (e.g., '#FF0000' or '#FF000080')
41
+ * @returns A new RiveColor instance
42
+ * @throws Will return black (0,0,0,255) with a warning if the hex string is invalid
43
+ */
44
+ static fromHexString(color: string): RiveColor {
45
+ const hex = color.replace(/^#/, '');
46
+
47
+ const isValidHex = /^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/.test(hex);
48
+ if (!isValidHex) {
49
+ console.warn(`Rive invalid hex color: ${color}`);
50
+ return new RiveColor(0, 0, 0, 255);
51
+ }
52
+
53
+ let r = parseInt(hex.slice(0, 2), 16),
54
+ g = parseInt(hex.slice(2, 4), 16),
55
+ b = parseInt(hex.slice(4, 6), 16),
56
+ a = 255;
57
+
58
+ // Optionally parse alpha channel if present
59
+ if (hex.length === 8) {
60
+ a = parseInt(hex.slice(6, 8), 16);
61
+ }
62
+
63
+ return new RiveColor(r, g, b, a);
64
+ }
65
+
66
+ /**
67
+ * Creates a RiveColor instance from a 32-bit integer.
68
+ * The integer should be in ARGB format where:
69
+ * - Bits 24-31: Alpha channel
70
+ * - Bits 16-23: Red channel
71
+ * - Bits 8-15: Green channel
72
+ * - Bits 0-7: Blue channel
73
+ * @param colorValue - 32-bit integer representing the color
74
+ * @returns A new RiveColor instance
75
+ */
76
+ static fromInt(colorValue: number): RiveColor {
77
+ const a = (colorValue >> 24) & 0xff;
78
+ const r = (colorValue >> 16) & 0xff;
79
+ const g = (colorValue >> 8) & 0xff;
80
+ const b = colorValue & 0xff;
81
+ return new RiveColor(r, g, b, a);
82
+ }
83
+
84
+ /**
85
+ * Converts this color to a 32-bit integer in ARGB format.
86
+ * @returns A 32-bit integer where:
87
+ * - Bits 24-31: Alpha channel
88
+ * - Bits 16-23: Red channel
89
+ * - Bits 8-15: Green channel
90
+ * - Bits 0-7: Blue channel
91
+ */
92
+ toInt(): number {
93
+ return (
94
+ ((this.a & 0xff) << 24) |
95
+ ((this.r & 0xff) << 16) |
96
+ ((this.g & 0xff) << 8) |
97
+ (this.b & 0xff)
98
+ );
99
+ }
100
+ }
@@ -0,0 +1,149 @@
1
+ import { NitroModules } from 'react-native-nitro-modules';
2
+ import type {
3
+ RiveFile,
4
+ RiveFileFactory as RiveFileFactoryInternal,
5
+ } from '../specs/RiveFile.nitro';
6
+
7
+ import { Image } from 'react-native';
8
+ import type { ResolvedReferencedAssets } from './ReferencedAssets';
9
+
10
+ const RiveFileInternal =
11
+ NitroModules.createHybridObject<RiveFileFactoryInternal>('RiveFileFactory');
12
+
13
+ /**
14
+ * Factory namespace for creating RiveFile instances from different sources.
15
+ * Provides static methods to load Rive files from URLs, resources, or raw bytes.
16
+ */
17
+ export namespace RiveFileFactory {
18
+ /**
19
+ * Creates a RiveFile instance from a URL.
20
+ * @param url - The URL of the Rive (.riv) file
21
+ * @param loadCdn - Whether to load from CDN (default: true)
22
+ * @returns Promise that resolves to a RiveFile instance
23
+ */
24
+ export async function fromURL(
25
+ url: string,
26
+ referencedAssets: ResolvedReferencedAssets | undefined,
27
+ loadCdn: boolean = true
28
+ ): Promise<RiveFile> {
29
+ return RiveFileInternal.fromURL(
30
+ url,
31
+ loadCdn,
32
+ referencedAssets ? { data: referencedAssets } : undefined
33
+ );
34
+ }
35
+
36
+ /**
37
+ * Creates a RiveFile instance from a local file path URL.
38
+ * @param pathURL - The local file path of the Rive (.riv) file
39
+ * @param loadCdn - Whether to load from CDN (default: true)
40
+ * @returns Promise that resolves to a RiveFile instance
41
+ */
42
+ export async function fromFileURL(
43
+ fileURL: string,
44
+ referencedAssets: ResolvedReferencedAssets | undefined = undefined,
45
+ loadCdn: boolean = true
46
+ ): Promise<RiveFile> {
47
+ return RiveFileInternal.fromFileURL(
48
+ fileURL,
49
+ loadCdn,
50
+ referencedAssets ? { data: referencedAssets } : undefined
51
+ );
52
+ }
53
+
54
+ /**
55
+ * Creates a RiveFile instance from a local resource.
56
+ * @param resource - The name of the local resource
57
+ * @param loadCdn - Whether to load from CDN (default: true)
58
+ * @returns Promise that resolves to a RiveFile instance
59
+ */
60
+ export async function fromResource(
61
+ resource: string,
62
+ referencedAssets: ResolvedReferencedAssets | undefined,
63
+ loadCdn: boolean = true
64
+ ): Promise<RiveFile> {
65
+ return RiveFileInternal.fromResource(
66
+ resource,
67
+ loadCdn,
68
+ referencedAssets ? { data: referencedAssets } : undefined
69
+ );
70
+ }
71
+
72
+ /**
73
+ * Creates a RiveFile instance from raw bytes.
74
+ * @param bytes - The raw bytes of the Rive (.riv) file
75
+ * @param loadCdn - Whether to load from CDN (default: true)
76
+ * @returns Promise that resolves to a RiveFile instance
77
+ */
78
+ export async function fromBytes(
79
+ bytes: ArrayBuffer,
80
+ referencedAssets: ResolvedReferencedAssets | undefined,
81
+ loadCdn: boolean = true
82
+ ): Promise<RiveFile> {
83
+ return RiveFileInternal.fromBytes(
84
+ bytes,
85
+ loadCdn,
86
+ referencedAssets ? { data: referencedAssets } : undefined
87
+ );
88
+ }
89
+
90
+ /**
91
+ * Creates a RiveFile instance from a source that can be either a resource ID or a URI object.
92
+ * @param source - Either a number representing a resource ID or an object with a uri property
93
+ * @param loadCdn - Whether to load from CDN (default: true)
94
+ * @returns Promise that resolves to a RiveFile instance
95
+ * @throws Error if the source is invalid or cannot be resolved
96
+ * @example
97
+ * // Using a resource ID
98
+ * const riveFile1 = await RiveFileFactory.fromSource(require('./your_file.riv'));
99
+ *
100
+ * // Using a URI object
101
+ * const riveFile2 = await RiveFileFactory.fromSource({ uri: 'https://example.com/your_file.riv' });
102
+ *
103
+ * // Using a local file URI
104
+ * const riveFile3 = await RiveFileFactory.fromSource({ uri: 'file:///path/to/your_file.riv' });
105
+ *
106
+ * @note To use .riv files with require(), you need to add 'riv' to the asset extensions in your metro.config.js:
107
+ * ```js
108
+ * const config = getDefaultConfig(__dirname);
109
+ * config.resolver.assetExts = [...config.resolver.assetExts, 'riv'];
110
+ * ```
111
+ */
112
+ export async function fromSource(
113
+ source: number | { uri: string },
114
+ referencedAssets: ResolvedReferencedAssets | undefined,
115
+ loadCdn: boolean = true
116
+ ): Promise<RiveFile> {
117
+ const assetID = typeof source === 'number' ? source : null;
118
+ const sourceURI = typeof source === 'object' ? source.uri : null;
119
+
120
+ const assetURI = assetID
121
+ ? Image.resolveAssetSource(assetID)?.uri
122
+ : sourceURI;
123
+
124
+ if (!assetURI) {
125
+ throw new Error(
126
+ `Invalid source provided, ${source} is not a valid asset ID or URI`
127
+ );
128
+ }
129
+
130
+ try {
131
+ // handle http address and dev server
132
+ if (assetURI.match(/https?:\/\//)) {
133
+ return RiveFileFactory.fromURL(assetURI, referencedAssets, loadCdn);
134
+ }
135
+
136
+ // handle iOS bundled asset
137
+ if (assetURI.match(/file:\/\//)) {
138
+ return RiveFileFactory.fromFileURL(assetURI, referencedAssets, loadCdn);
139
+ }
140
+
141
+ // handle Android bundled asset or resource name uri
142
+ return RiveFileFactory.fromResource(assetURI, referencedAssets, loadCdn);
143
+ } catch (error: unknown) {
144
+ const errorMessage =
145
+ error instanceof Error ? error.message : String(error);
146
+ throw new Error(`Failed to load Rive file from source: ${errorMessage}`);
147
+ }
148
+ }
149
+ }
@@ -0,0 +1,5 @@
1
+ import { NitroModules } from 'react-native-nitro-modules';
2
+ import type { RiveImageFactory } from '../specs/RiveImage.nitro';
3
+
4
+ export const RiveImages =
5
+ NitroModules.createHybridObject<RiveImageFactory>('RiveImageFactory');
@@ -0,0 +1,48 @@
1
+ import type { ComponentProps } from 'react';
2
+ import { NitroRiveView } from './NitroRiveViewComponent';
3
+ import { RiveErrorType, type RiveError } from './Errors';
4
+
5
+ export interface RiveViewProps
6
+ extends Omit<ComponentProps<typeof NitroRiveView>, 'onError'> {
7
+ onError?: (error: RiveError) => void;
8
+ }
9
+
10
+ const defaultOnError = (error: RiveError) =>
11
+ console.error(`[${RiveErrorType[error.type]}] ${error.message}`);
12
+
13
+ /**
14
+ * RiveView is a React Native component that renders Rive graphics.
15
+ * It provides a seamless way to display and control Rive graphics in your app.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <RiveView
20
+ * file={riveFile}
21
+ * artboardName="New Artboard"
22
+ * stateMachineName="State Machine 1"
23
+ * autoPlay={true}
24
+ * fit={Fit.Contain}
25
+ * style={styles.riveContainer}
26
+ * />
27
+ * ```
28
+ *
29
+ * @property {RiveFile} file - The Rive file to be displayed
30
+ * @property {string} [artboardName] - Name of the artboard to display from the Rive file
31
+ * @property {string} [stateMachineName] - Name of the state machine to play
32
+ * @property {ViewModelInstance | DataBindMode | DataBindByName} [dataBind] - Data binding configuration for the state machine, defaults to DataBindMode.Auto
33
+ * @property {boolean} [autoPlay=true] - Whether to automatically start playing the state machine
34
+ * @property {Alignment} [alignment] - How the Rive graphic should be aligned within its container
35
+ * @property {Fit} [fit] - How the Rive graphic should fit within its container
36
+ * @property {Object} [style] - React Native style object for container customization
37
+ * @property {(error: RiveError) => void} [onError] - Callback function that is called when an error occurs
38
+ *
39
+ * The component also exposes methods for controlling playback:
40
+ * - play(): Starts playing the Rive graphic
41
+ * - pause(): Pauses the Rive graphic
42
+ */
43
+ export function RiveView(props: RiveViewProps) {
44
+ const { onError, ...rest } = props;
45
+ const wrappedOnError = onError ?? defaultOnError;
46
+
47
+ return <NitroRiveView {...rest} onError={{ f: wrappedOnError }} />;
48
+ }