@rive-app/react-native 0.1.5 → 0.2.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 (276) hide show
  1. package/README.md +1 -1
  2. package/lib/module/core/RiveFile.js +1 -1
  3. package/lib/module/core/RiveFile.js.map +1 -1
  4. package/lib/module/hooks/useViewModelInstance.js +97 -12
  5. package/lib/module/hooks/useViewModelInstance.js.map +1 -1
  6. package/lib/typescript/src/hooks/useViewModelInstance.d.ts +82 -13
  7. package/lib/typescript/src/hooks/useViewModelInstance.d.ts.map +1 -1
  8. package/nitrogen/generated/android/c++/JAlignment.hpp +10 -11
  9. package/nitrogen/generated/android/c++/JArtboardBy.hpp +1 -1
  10. package/nitrogen/generated/android/c++/JArtboardByTypes.hpp +3 -4
  11. package/nitrogen/generated/android/c++/JDataBindByName.hpp +1 -1
  12. package/nitrogen/generated/android/c++/JDataBindMode.hpp +3 -4
  13. package/nitrogen/generated/android/c++/JEventPropertiesOutput.cpp +1 -1
  14. package/nitrogen/generated/android/c++/JEventPropertiesOutput.hpp +4 -4
  15. package/nitrogen/generated/android/c++/JFit.hpp +9 -10
  16. package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
  17. package/nitrogen/generated/android/c++/JFunc_void_RiveError.hpp +1 -1
  18. package/nitrogen/generated/android/c++/JFunc_void_UnifiedRiveEvent.hpp +1 -1
  19. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
  20. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +1 -1
  21. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +1 -1
  22. package/nitrogen/generated/android/c++/JHybridBindableArtboardSpec.cpp +8 -1
  23. package/nitrogen/generated/android/c++/JHybridBindableArtboardSpec.hpp +2 -1
  24. package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.cpp +8 -2
  25. package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.hpp +2 -1
  26. package/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp +8 -1
  27. package/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp +2 -1
  28. package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.cpp +8 -2
  29. package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.hpp +2 -1
  30. package/nitrogen/generated/android/c++/JHybridRiveImageSpec.cpp +8 -1
  31. package/nitrogen/generated/android/c++/JHybridRiveImageSpec.hpp +2 -1
  32. package/nitrogen/generated/android/c++/JHybridRiveSpec.cpp +8 -1
  33. package/nitrogen/generated/android/c++/JHybridRiveSpec.hpp +2 -1
  34. package/nitrogen/generated/android/c++/JHybridRiveViewSpec.cpp +9 -1
  35. package/nitrogen/generated/android/c++/JHybridRiveViewSpec.hpp +2 -1
  36. package/nitrogen/generated/android/c++/JHybridViewModelArtboardPropertySpec.cpp +8 -1
  37. package/nitrogen/generated/android/c++/JHybridViewModelArtboardPropertySpec.hpp +2 -1
  38. package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +8 -1
  39. package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +2 -1
  40. package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +8 -1
  41. package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +2 -1
  42. package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +8 -1
  43. package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +2 -1
  44. package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +8 -1
  45. package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.hpp +2 -1
  46. package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +8 -1
  47. package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +2 -1
  48. package/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.cpp +8 -1
  49. package/nitrogen/generated/android/c++/JHybridViewModelListPropertySpec.hpp +2 -1
  50. package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +8 -1
  51. package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +2 -1
  52. package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.cpp +8 -1
  53. package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.hpp +2 -1
  54. package/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp +8 -1
  55. package/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp +2 -1
  56. package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +8 -1
  57. package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +2 -1
  58. package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.cpp +8 -1
  59. package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.hpp +2 -1
  60. package/nitrogen/generated/android/c++/JReferencedAssetsType.hpp +1 -1
  61. package/nitrogen/generated/android/c++/JResolvedReferencedAsset.hpp +1 -1
  62. package/nitrogen/generated/android/c++/JRiveError.hpp +1 -1
  63. package/nitrogen/generated/android/c++/JRiveErrorType.hpp +8 -9
  64. package/nitrogen/generated/android/c++/JRiveEventType.hpp +3 -4
  65. package/nitrogen/generated/android/c++/JUnifiedRiveEvent.hpp +1 -1
  66. package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.cpp +1 -1
  67. package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.hpp +4 -4
  68. package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.cpp +1 -1
  69. package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.hpp +1 -1
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Alignment.kt +3 -1
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardBy.kt +2 -2
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardByTypes.kt +3 -1
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindByName.kt +2 -2
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindMode.kt +3 -1
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/EventPropertiesOutput.kt +1 -1
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Fit.kt +3 -1
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void.kt +1 -1
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_RiveError.kt +1 -1
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_UnifiedRiveEvent.kt +1 -1
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_bool.kt +1 -1
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_double.kt +1 -1
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_std__string.kt +1 -1
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridBindableArtboardSpec.kt +1 -1
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileFactorySpec.kt +1 -1
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt +1 -1
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageFactorySpec.kt +1 -1
  87. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageSpec.kt +1 -1
  88. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveSpec.kt +1 -1
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveViewSpec.kt +1 -1
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelArtboardPropertySpec.kt +1 -1
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +1 -1
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +1 -1
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +1 -1
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelImagePropertySpec.kt +1 -1
  95. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +1 -1
  96. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelListPropertySpec.kt +1 -1
  97. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +1 -1
  98. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelPropertySpec.kt +1 -1
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt +1 -1
  100. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +1 -1
  101. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelTriggerPropertySpec.kt +1 -1
  102. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ReferencedAssetsType.kt +2 -2
  103. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ResolvedReferencedAsset.kt +2 -2
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveError.kt +2 -2
  105. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveErrorType.kt +3 -1
  106. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveEventType.kt +3 -1
  107. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/UnifiedRiveEvent.kt +2 -2
  108. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Variant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.kt +1 -1
  109. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/riveOnLoad.kt +1 -1
  110. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewManager.kt +29 -9
  111. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewStateUpdater.kt +1 -1
  112. package/nitrogen/generated/android/rive+autolinking.cmake +1 -1
  113. package/nitrogen/generated/android/rive+autolinking.gradle +1 -1
  114. package/nitrogen/generated/android/riveOnLoad.cpp +1 -1
  115. package/nitrogen/generated/android/riveOnLoad.hpp +1 -1
  116. package/nitrogen/generated/ios/RNRive+autolinking.rb +2 -2
  117. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +1 -1
  118. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +3 -3
  119. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +1 -1
  120. package/nitrogen/generated/ios/RNRiveAutolinking.mm +1 -1
  121. package/nitrogen/generated/ios/RNRiveAutolinking.swift +25 -36
  122. package/nitrogen/generated/ios/c++/HybridBindableArtboardSpecSwift.cpp +1 -1
  123. package/nitrogen/generated/ios/c++/HybridBindableArtboardSpecSwift.hpp +7 -1
  124. package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.cpp +1 -1
  125. package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.hpp +7 -1
  126. package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.cpp +1 -1
  127. package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp +7 -1
  128. package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.cpp +1 -1
  129. package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.hpp +7 -1
  130. package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.cpp +1 -1
  131. package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.hpp +7 -1
  132. package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.cpp +1 -1
  133. package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.hpp +7 -1
  134. package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.cpp +1 -1
  135. package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.hpp +7 -1
  136. package/nitrogen/generated/ios/c++/HybridViewModelArtboardPropertySpecSwift.cpp +1 -1
  137. package/nitrogen/generated/ios/c++/HybridViewModelArtboardPropertySpecSwift.hpp +7 -1
  138. package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.cpp +1 -1
  139. package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +7 -1
  140. package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.cpp +1 -1
  141. package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +7 -1
  142. package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.cpp +1 -1
  143. package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +7 -1
  144. package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.cpp +1 -1
  145. package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.hpp +7 -1
  146. package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.cpp +1 -1
  147. package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +7 -1
  148. package/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.cpp +1 -1
  149. package/nitrogen/generated/ios/c++/HybridViewModelListPropertySpecSwift.hpp +7 -1
  150. package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.cpp +1 -1
  151. package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +7 -1
  152. package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.cpp +1 -1
  153. package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.hpp +7 -1
  154. package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.cpp +1 -1
  155. package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp +7 -1
  156. package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.cpp +1 -1
  157. package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +7 -1
  158. package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.cpp +1 -1
  159. package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.hpp +7 -1
  160. package/nitrogen/generated/ios/c++/views/HybridRiveViewComponent.mm +12 -1
  161. package/nitrogen/generated/ios/swift/Alignment.swift +1 -1
  162. package/nitrogen/generated/ios/swift/ArtboardBy.swift +14 -44
  163. package/nitrogen/generated/ios/swift/ArtboardByTypes.swift +1 -1
  164. package/nitrogen/generated/ios/swift/DataBindByName.swift +3 -9
  165. package/nitrogen/generated/ios/swift/DataBindMode.swift +1 -1
  166. package/nitrogen/generated/ios/swift/EventPropertiesOutput.swift +1 -1
  167. package/nitrogen/generated/ios/swift/Fit.swift +1 -1
  168. package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
  169. package/nitrogen/generated/ios/swift/Func_void_RiveError.swift +1 -1
  170. package/nitrogen/generated/ios/swift/Func_void_UnifiedRiveEvent.swift +1 -1
  171. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
  172. package/nitrogen/generated/ios/swift/Func_void_double.swift +1 -1
  173. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
  174. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveFileSpec_.swift +2 -2
  175. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveImageSpec_.swift +2 -2
  176. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
  177. package/nitrogen/generated/ios/swift/HybridBindableArtboardSpec.swift +3 -3
  178. package/nitrogen/generated/ios/swift/HybridBindableArtboardSpec_cxx.swift +9 -1
  179. package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec.swift +3 -3
  180. package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec_cxx.swift +9 -1
  181. package/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift +3 -3
  182. package/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift +9 -1
  183. package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec.swift +3 -3
  184. package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec_cxx.swift +9 -1
  185. package/nitrogen/generated/ios/swift/HybridRiveImageSpec.swift +3 -3
  186. package/nitrogen/generated/ios/swift/HybridRiveImageSpec_cxx.swift +9 -1
  187. package/nitrogen/generated/ios/swift/HybridRiveSpec.swift +3 -3
  188. package/nitrogen/generated/ios/swift/HybridRiveSpec_cxx.swift +9 -1
  189. package/nitrogen/generated/ios/swift/HybridRiveViewSpec.swift +3 -3
  190. package/nitrogen/generated/ios/swift/HybridRiveViewSpec_cxx.swift +17 -4
  191. package/nitrogen/generated/ios/swift/HybridViewModelArtboardPropertySpec.swift +3 -3
  192. package/nitrogen/generated/ios/swift/HybridViewModelArtboardPropertySpec_cxx.swift +10 -2
  193. package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +3 -3
  194. package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +9 -1
  195. package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +3 -3
  196. package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +9 -1
  197. package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +3 -3
  198. package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +9 -1
  199. package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec.swift +3 -3
  200. package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec_cxx.swift +10 -2
  201. package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +3 -3
  202. package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +10 -2
  203. package/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec.swift +3 -3
  204. package/nitrogen/generated/ios/swift/HybridViewModelListPropertySpec_cxx.swift +12 -4
  205. package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +3 -3
  206. package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +9 -1
  207. package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec.swift +3 -3
  208. package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec_cxx.swift +9 -1
  209. package/nitrogen/generated/ios/swift/HybridViewModelSpec.swift +3 -3
  210. package/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift +9 -1
  211. package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +3 -3
  212. package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +9 -1
  213. package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec.swift +3 -3
  214. package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec_cxx.swift +9 -1
  215. package/nitrogen/generated/ios/swift/ReferencedAssetsType.swift +18 -36
  216. package/nitrogen/generated/ios/swift/ResolvedReferencedAsset.swift +50 -113
  217. package/nitrogen/generated/ios/swift/RiveError.swift +5 -17
  218. package/nitrogen/generated/ios/swift/RiveErrorType.swift +1 -1
  219. package/nitrogen/generated/ios/swift/RiveEventType.swift +1 -1
  220. package/nitrogen/generated/ios/swift/UnifiedRiveEvent.swift +57 -132
  221. package/nitrogen/generated/ios/swift/Variant__any_HybridViewModelInstanceSpec__DataBindMode_DataBindByName.swift +1 -1
  222. package/nitrogen/generated/shared/c++/Alignment.hpp +1 -1
  223. package/nitrogen/generated/shared/c++/ArtboardBy.hpp +19 -11
  224. package/nitrogen/generated/shared/c++/ArtboardByTypes.hpp +1 -1
  225. package/nitrogen/generated/shared/c++/DataBindByName.hpp +13 -5
  226. package/nitrogen/generated/shared/c++/DataBindMode.hpp +1 -1
  227. package/nitrogen/generated/shared/c++/Fit.hpp +1 -1
  228. package/nitrogen/generated/shared/c++/HybridBindableArtboardSpec.cpp +1 -1
  229. package/nitrogen/generated/shared/c++/HybridBindableArtboardSpec.hpp +1 -1
  230. package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.cpp +1 -1
  231. package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.hpp +1 -1
  232. package/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp +1 -1
  233. package/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp +1 -1
  234. package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.cpp +1 -1
  235. package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.hpp +1 -1
  236. package/nitrogen/generated/shared/c++/HybridRiveImageSpec.cpp +1 -1
  237. package/nitrogen/generated/shared/c++/HybridRiveImageSpec.hpp +1 -1
  238. package/nitrogen/generated/shared/c++/HybridRiveSpec.cpp +1 -1
  239. package/nitrogen/generated/shared/c++/HybridRiveSpec.hpp +1 -1
  240. package/nitrogen/generated/shared/c++/HybridRiveViewSpec.cpp +1 -1
  241. package/nitrogen/generated/shared/c++/HybridRiveViewSpec.hpp +1 -1
  242. package/nitrogen/generated/shared/c++/HybridViewModelArtboardPropertySpec.cpp +1 -1
  243. package/nitrogen/generated/shared/c++/HybridViewModelArtboardPropertySpec.hpp +1 -1
  244. package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp +1 -1
  245. package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +1 -1
  246. package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp +1 -1
  247. package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +1 -1
  248. package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp +1 -1
  249. package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +1 -1
  250. package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.cpp +1 -1
  251. package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.hpp +1 -1
  252. package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +1 -1
  253. package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +1 -1
  254. package/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.cpp +1 -1
  255. package/nitrogen/generated/shared/c++/HybridViewModelListPropertySpec.hpp +1 -1
  256. package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp +1 -1
  257. package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +1 -1
  258. package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.cpp +1 -1
  259. package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.hpp +1 -1
  260. package/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp +1 -1
  261. package/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp +1 -1
  262. package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp +1 -1
  263. package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +1 -1
  264. package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.cpp +1 -1
  265. package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.hpp +1 -1
  266. package/nitrogen/generated/shared/c++/ReferencedAssetsType.hpp +13 -5
  267. package/nitrogen/generated/shared/c++/ResolvedReferencedAsset.hpp +25 -17
  268. package/nitrogen/generated/shared/c++/RiveError.hpp +16 -8
  269. package/nitrogen/generated/shared/c++/RiveErrorType.hpp +1 -1
  270. package/nitrogen/generated/shared/c++/RiveEventType.hpp +1 -1
  271. package/nitrogen/generated/shared/c++/UnifiedRiveEvent.hpp +28 -20
  272. package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.cpp +4 -3
  273. package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.hpp +1 -1
  274. package/package.json +4 -4
  275. package/src/core/RiveFile.ts +1 -1
  276. package/src/hooks/useViewModelInstance.ts +198 -35
@@ -2,7 +2,7 @@
2
2
  /// UnifiedRiveEvent.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -22,6 +22,11 @@
22
22
  #else
23
23
  #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
24
  #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
25
30
 
26
31
  // Forward declaration of `RiveEventType` to properly resolve imports.
27
32
  namespace margelo::nitro::rive { enum class RiveEventType; }
@@ -37,7 +42,7 @@ namespace margelo::nitro::rive {
37
42
  /**
38
43
  * A struct which can be represented as a JavaScript object (UnifiedRiveEvent).
39
44
  */
40
- struct UnifiedRiveEvent {
45
+ struct UnifiedRiveEvent final {
41
46
  public:
42
47
  std::string name SWIFT_PRIVATE;
43
48
  RiveEventType type SWIFT_PRIVATE;
@@ -49,6 +54,9 @@ namespace margelo::nitro::rive {
49
54
  public:
50
55
  UnifiedRiveEvent() = default;
51
56
  explicit UnifiedRiveEvent(std::string name, RiveEventType type, std::optional<double> delay, std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>> properties, std::optional<std::string> url, std::optional<std::string> target): name(name), type(type), delay(delay), properties(properties), url(url), target(target) {}
57
+
58
+ public:
59
+ friend bool operator==(const UnifiedRiveEvent& lhs, const UnifiedRiveEvent& rhs) = default;
52
60
  };
53
61
 
54
62
  } // namespace margelo::nitro::rive
@@ -61,22 +69,22 @@ namespace margelo::nitro {
61
69
  static inline margelo::nitro::rive::UnifiedRiveEvent fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
62
70
  jsi::Object obj = arg.asObject(runtime);
63
71
  return margelo::nitro::rive::UnifiedRiveEvent(
64
- JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "name")),
65
- JSIConverter<margelo::nitro::rive::RiveEventType>::fromJSI(runtime, obj.getProperty(runtime, "type")),
66
- JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, "delay")),
67
- JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::fromJSI(runtime, obj.getProperty(runtime, "properties")),
68
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "url")),
69
- JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "target"))
72
+ JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "name"))),
73
+ JSIConverter<margelo::nitro::rive::RiveEventType>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "type"))),
74
+ JSIConverter<std::optional<double>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "delay"))),
75
+ JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "properties"))),
76
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url"))),
77
+ JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "target")))
70
78
  );
71
79
  }
72
80
  static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::rive::UnifiedRiveEvent& arg) {
73
81
  jsi::Object obj(runtime);
74
- obj.setProperty(runtime, "name", JSIConverter<std::string>::toJSI(runtime, arg.name));
75
- obj.setProperty(runtime, "type", JSIConverter<margelo::nitro::rive::RiveEventType>::toJSI(runtime, arg.type));
76
- obj.setProperty(runtime, "delay", JSIConverter<std::optional<double>>::toJSI(runtime, arg.delay));
77
- obj.setProperty(runtime, "properties", JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::toJSI(runtime, arg.properties));
78
- obj.setProperty(runtime, "url", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
79
- obj.setProperty(runtime, "target", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.target));
82
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "name"), JSIConverter<std::string>::toJSI(runtime, arg.name));
83
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "type"), JSIConverter<margelo::nitro::rive::RiveEventType>::toJSI(runtime, arg.type));
84
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "delay"), JSIConverter<std::optional<double>>::toJSI(runtime, arg.delay));
85
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "properties"), JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::toJSI(runtime, arg.properties));
86
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "url"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.url));
87
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "target"), JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.target));
80
88
  return obj;
81
89
  }
82
90
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -87,12 +95,12 @@ namespace margelo::nitro {
87
95
  if (!nitro::isPlainObject(runtime, obj)) {
88
96
  return false;
89
97
  }
90
- if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "name"))) return false;
91
- if (!JSIConverter<margelo::nitro::rive::RiveEventType>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
92
- if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, "delay"))) return false;
93
- if (!JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::canConvert(runtime, obj.getProperty(runtime, "properties"))) return false;
94
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "url"))) return false;
95
- if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "target"))) return false;
98
+ if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "name")))) return false;
99
+ if (!JSIConverter<margelo::nitro::rive::RiveEventType>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "type")))) return false;
100
+ if (!JSIConverter<std::optional<double>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "delay")))) return false;
101
+ if (!JSIConverter<std::optional<std::unordered_map<std::string, std::variant<bool, std::string, double>>>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "properties")))) return false;
102
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "url")))) return false;
103
+ if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "target")))) return false;
96
104
  return true;
97
105
  }
98
106
  };
@@ -2,7 +2,7 @@
2
2
  /// HybridRiveViewComponent.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridRiveViewComponent.hpp"
@@ -12,6 +12,7 @@
12
12
  #include <utility>
13
13
  #include <NitroModules/NitroDefines.hpp>
14
14
  #include <NitroModules/JSIConverter.hpp>
15
+ #include <NitroModules/PropNameIDCache.hpp>
15
16
  #include <react/renderer/core/RawValue.h>
16
17
  #include <react/renderer/core/ShadowNode.h>
17
18
  #include <react/renderer/core/ComponentDescriptor.h>
@@ -110,7 +111,7 @@ namespace margelo::nitro::rive::views {
110
111
  const react::RawValue* rawValue = rawProps.at("onError", nullptr, nullptr);
111
112
  if (rawValue == nullptr) return sourceProps.onError;
112
113
  const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
113
- return CachedProp<std::function<void(const RiveError& /* error */)>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, "f"), sourceProps.onError);
114
+ return CachedProp<std::function<void(const RiveError& /* error */)>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, PropNameIDCache::get(*runtime, "f")), sourceProps.onError);
114
115
  } catch (const std::exception& exc) {
115
116
  throw std::runtime_error(std::string("RiveView.onError: ") + exc.what());
116
117
  }
@@ -120,7 +121,7 @@ namespace margelo::nitro::rive::views {
120
121
  const react::RawValue* rawValue = rawProps.at("hybridRef", nullptr, nullptr);
121
122
  if (rawValue == nullptr) return sourceProps.hybridRef;
122
123
  const auto& [runtime, value] = (std::pair<jsi::Runtime*, jsi::Value>)*rawValue;
123
- return CachedProp<std::optional<std::function<void(const std::shared_ptr<HybridRiveViewSpec>& /* ref */)>>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, "f"), sourceProps.hybridRef);
124
+ return CachedProp<std::optional<std::function<void(const std::shared_ptr<HybridRiveViewSpec>& /* ref */)>>>::fromRawValue(*runtime, value.asObject(*runtime).getProperty(*runtime, PropNameIDCache::get(*runtime, "f")), sourceProps.hybridRef);
124
125
  } catch (const std::exception& exc) {
125
126
  throw std::runtime_error(std::string("RiveView.hybridRef: ") + exc.what());
126
127
  }
@@ -2,7 +2,7 @@
2
2
  /// HybridRiveViewComponent.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rive-app/react-native",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "Rive React Native",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -91,12 +91,12 @@
91
91
  "eslint-plugin-jest": "^29.1.0",
92
92
  "eslint-plugin-prettier": "^5.2.3",
93
93
  "jest": "^29.7.0",
94
- "nitrogen": "0.31.10",
94
+ "nitrogen": "0.33.2",
95
95
  "prettier": "^3.0.3",
96
96
  "react": "19.0.0",
97
97
  "react-native": "0.79.2",
98
98
  "react-native-builder-bob": "^0.40.10",
99
- "react-native-nitro-modules": "0.31.10",
99
+ "react-native-nitro-modules": "0.33.2",
100
100
  "react-test-renderer": "19.0.0",
101
101
  "release-it": "^17.10.0",
102
102
  "turbo": "^1.10.7",
@@ -105,7 +105,7 @@
105
105
  "peerDependencies": {
106
106
  "react": "*",
107
107
  "react-native": "*",
108
- "react-native-nitro-modules": ">=0.31.8"
108
+ "react-native-nitro-modules": ">=0.33.2"
109
109
  },
110
110
  "workspaces": [
111
111
  "example",
@@ -123,7 +123,7 @@ export namespace RiveFileFactory {
123
123
 
124
124
  if (!assetURI) {
125
125
  throw new Error(
126
- `Invalid source provided, ${source} is not a valid asset ID or URI`
126
+ `Invalid source: could not resolve asset ${source}. Ensure 'riv' is in metro.config.js assetExts.`
127
127
  );
128
128
  }
129
129
 
@@ -3,16 +3,9 @@ import type { ViewModel, ViewModelInstance } from '../specs/ViewModel.nitro';
3
3
  import type { RiveFile } from '../specs/RiveFile.nitro';
4
4
  import type { RiveViewRef } from '../index';
5
5
  import { callDispose } from '../core/callDispose';
6
+ import { ArtboardByName } from '../specs/ArtboardBy';
6
7
 
7
- export interface UseViewModelInstanceParams {
8
- /**
9
- * Get a specifically named instance from the ViewModel.
10
- */
11
- name?: string;
12
- /**
13
- * Create a new (blank) instance from the ViewModel.
14
- */
15
- useNew?: boolean;
8
+ interface UseViewModelInstanceBaseParams {
16
9
  /**
17
10
  * If true, throws an error when the instance cannot be obtained.
18
11
  * This is useful with Error Boundaries and ensures TypeScript knows
@@ -27,27 +20,93 @@ export interface UseViewModelInstanceParams {
27
20
  onInit?: (instance: ViewModelInstance) => void;
28
21
  }
29
22
 
23
+ interface UseViewModelInstanceFileBaseParams
24
+ extends UseViewModelInstanceBaseParams {
25
+ /**
26
+ * The ViewModel instance name (uses `createInstanceByName()`).
27
+ * If not provided, creates the default instance.
28
+ */
29
+ instanceName?: string;
30
+ }
31
+
32
+ /**
33
+ * Use the ViewModel assigned to the default artboard.
34
+ */
35
+ interface UseViewModelInstanceFileDefault
36
+ extends UseViewModelInstanceFileBaseParams {
37
+ artboardName?: never;
38
+ viewModelName?: never;
39
+ }
40
+
41
+ /**
42
+ * Use the ViewModel assigned to a specific artboard.
43
+ */
44
+ interface UseViewModelInstanceFileByArtboard
45
+ extends UseViewModelInstanceFileBaseParams {
46
+ /**
47
+ * Get the ViewModel assigned to this artboard.
48
+ */
49
+ artboardName: string;
50
+ viewModelName?: never;
51
+ }
52
+
53
+ /**
54
+ * Use a ViewModel by name (file-wide lookup).
55
+ * ViewModels are defined at the file level, not per-artboard.
56
+ */
57
+ interface UseViewModelInstanceFileByViewModelName
58
+ extends UseViewModelInstanceFileBaseParams {
59
+ artboardName?: never;
60
+ /**
61
+ * The name of the ViewModel to use (uses `viewModelByName()`).
62
+ * ViewModels are defined at the file level and looked up by name across the entire file.
63
+ */
64
+ viewModelName: string;
65
+ }
66
+
67
+ export type UseViewModelInstanceFileParams =
68
+ | UseViewModelInstanceFileDefault
69
+ | UseViewModelInstanceFileByArtboard
70
+ | UseViewModelInstanceFileByViewModelName;
71
+
72
+ export interface UseViewModelInstanceViewModelParams
73
+ extends UseViewModelInstanceBaseParams {
74
+ /**
75
+ * The ViewModel instance name (uses `createInstanceByName()`).
76
+ * If not provided, creates the default instance.
77
+ */
78
+ name?: string;
79
+ /**
80
+ * Create a new (blank) instance from the ViewModel.
81
+ */
82
+ useNew?: boolean;
83
+ }
84
+
85
+ export type UseViewModelInstanceRefParams = UseViewModelInstanceBaseParams;
86
+
30
87
  type ViewModelSource = ViewModel | RiveFile | RiveViewRef;
31
88
 
32
89
  function isRiveViewRef(source: ViewModelSource | null): source is RiveViewRef {
33
- return (
34
- source !== null && source !== undefined && 'getViewModelInstance' in source
35
- );
90
+ return source !== null && 'getViewModelInstance' in source;
36
91
  }
37
92
 
38
93
  function isRiveFile(source: ViewModelSource | null): source is RiveFile {
39
- return (
40
- source !== null &&
41
- source !== undefined &&
42
- 'defaultArtboardViewModel' in source
43
- );
94
+ return source !== null && 'defaultArtboardViewModel' in source;
44
95
  }
45
96
 
97
+ type CreateInstanceResult = {
98
+ instance: ViewModelInstance | null;
99
+ needsDispose: boolean;
100
+ error?: string;
101
+ };
102
+
46
103
  function createInstance(
47
104
  source: ViewModelSource | null,
48
- name: string | undefined,
105
+ instanceName: string | undefined,
106
+ artboardName: string | undefined,
107
+ viewModelName: string | undefined,
49
108
  useNew: boolean
50
- ): { instance: ViewModelInstance | null; needsDispose: boolean } {
109
+ ): CreateInstanceResult {
51
110
  if (!source) {
52
111
  return { instance: null, needsDispose: false };
53
112
  }
@@ -58,15 +117,55 @@ function createInstance(
58
117
  }
59
118
 
60
119
  if (isRiveFile(source)) {
61
- const viewModel = source.defaultArtboardViewModel();
62
- const vmi = viewModel?.createDefaultInstance();
120
+ let viewModel: ViewModel | undefined;
121
+ if (viewModelName) {
122
+ viewModel = source.viewModelByName(viewModelName);
123
+ if (!viewModel) {
124
+ return {
125
+ instance: null,
126
+ needsDispose: false,
127
+ error: `ViewModel '${viewModelName}' not found`,
128
+ };
129
+ }
130
+ } else {
131
+ viewModel = source.defaultArtboardViewModel(
132
+ artboardName ? ArtboardByName(artboardName) : undefined
133
+ );
134
+ if (!viewModel) {
135
+ if (artboardName) {
136
+ return {
137
+ instance: null,
138
+ needsDispose: false,
139
+ error: `Artboard '${artboardName}' not found or has no ViewModel`,
140
+ };
141
+ }
142
+ return { instance: null, needsDispose: false };
143
+ }
144
+ }
145
+ const vmi = instanceName
146
+ ? viewModel.createInstanceByName(instanceName)
147
+ : viewModel.createDefaultInstance();
148
+ if (!vmi && instanceName) {
149
+ return {
150
+ instance: null,
151
+ needsDispose: false,
152
+ error: `ViewModel instance '${instanceName}' not found`,
153
+ };
154
+ }
63
155
  return { instance: vmi ?? null, needsDispose: true };
64
156
  }
65
157
 
66
158
  // ViewModel source
67
159
  let vmi: ViewModelInstance | undefined;
68
- if (name) {
69
- vmi = source.createInstanceByName(name);
160
+ if (instanceName) {
161
+ vmi = source.createInstanceByName(instanceName);
162
+ if (!vmi) {
163
+ return {
164
+ instance: null,
165
+ needsDispose: false,
166
+ error: `ViewModel instance '${instanceName}' not found`,
167
+ };
168
+ }
70
169
  } else if (useNew) {
71
170
  vmi = source.createInstance();
72
171
  } else {
@@ -79,7 +178,7 @@ function createInstance(
79
178
  * Hook for getting a ViewModelInstance from a RiveFile, ViewModel, or RiveViewRef.
80
179
  *
81
180
  * @param source - The RiveFile, ViewModel, or RiveViewRef to get an instance from
82
- * @param params - Configuration for which instance to retrieve (only used with ViewModel)
181
+ * @param params - Configuration for which instance to retrieve
83
182
  * @returns The ViewModelInstance or null if not found
84
183
  *
85
184
  * @example
@@ -91,6 +190,27 @@ function createInstance(
91
190
  *
92
191
  * @example
93
192
  * ```tsx
193
+ * // From RiveFile with specific instance name
194
+ * const { riveFile } = useRiveFile(require('./animation.riv'));
195
+ * const instance = useViewModelInstance(riveFile, { instanceName: 'PersonInstance' });
196
+ * ```
197
+ *
198
+ * @example
199
+ * ```tsx
200
+ * // From RiveFile with specific ViewModel name
201
+ * const { riveFile } = useRiveFile(require('./animation.riv'));
202
+ * const instance = useViewModelInstance(riveFile, { viewModelName: 'Settings' });
203
+ * ```
204
+ *
205
+ * @example
206
+ * ```tsx
207
+ * // From RiveFile with specific artboard
208
+ * const { riveFile } = useRiveFile(require('./animation.riv'));
209
+ * const instance = useViewModelInstance(riveFile, { artboardName: 'MainArtboard' });
210
+ * ```
211
+ *
212
+ * @example
213
+ * ```tsx
94
214
  * // From RiveViewRef (get auto-bound instance)
95
215
  * const { riveViewRef, setHybridRef } = useRive();
96
216
  * const instance = useViewModelInstance(riveViewRef);
@@ -129,20 +249,55 @@ function createInstance(
129
249
  * // Values are already set here
130
250
  * ```
131
251
  */
252
+ // RiveFile overloads
132
253
  export function useViewModelInstance(
133
- source: ViewModelSource,
134
- params: UseViewModelInstanceParams & { required: true }
254
+ source: RiveFile,
255
+ params: UseViewModelInstanceFileParams & { required: true }
135
256
  ): ViewModelInstance;
136
257
  export function useViewModelInstance(
137
- source: ViewModelSource | null,
138
- params?: UseViewModelInstanceParams
258
+ source: RiveFile | null,
259
+ params?: UseViewModelInstanceFileParams
260
+ ): ViewModelInstance | null;
261
+
262
+ // ViewModel overloads
263
+ export function useViewModelInstance(
264
+ source: ViewModel,
265
+ params: UseViewModelInstanceViewModelParams & { required: true }
266
+ ): ViewModelInstance;
267
+ export function useViewModelInstance(
268
+ source: ViewModel | null,
269
+ params?: UseViewModelInstanceViewModelParams
139
270
  ): ViewModelInstance | null;
271
+
272
+ // RiveViewRef overloads
273
+ export function useViewModelInstance(
274
+ source: RiveViewRef,
275
+ params: UseViewModelInstanceRefParams & { required: true }
276
+ ): ViewModelInstance;
277
+ export function useViewModelInstance(
278
+ source: RiveViewRef | null,
279
+ params?: UseViewModelInstanceRefParams
280
+ ): ViewModelInstance | null;
281
+
282
+ // Implementation
140
283
  export function useViewModelInstance(
141
284
  source: ViewModelSource | null,
142
- params?: UseViewModelInstanceParams
285
+ params?:
286
+ | UseViewModelInstanceFileParams
287
+ | UseViewModelInstanceViewModelParams
288
+ | UseViewModelInstanceRefParams
143
289
  ): ViewModelInstance | null {
144
- const name = params?.name;
145
- const useNew = params?.useNew ?? false;
290
+ const fileInstanceName = (params as { instanceName?: string } | undefined)
291
+ ?.instanceName;
292
+ const viewModelInstanceName = (params as { name?: string } | undefined)?.name;
293
+ const instanceName = fileInstanceName ?? viewModelInstanceName;
294
+ const artboardName = (params as UseViewModelInstanceFileParams | undefined)
295
+ ?.artboardName;
296
+ const viewModelName = (params as UseViewModelInstanceFileParams | undefined)
297
+ ?.viewModelName;
298
+ const useNew =
299
+ (params as UseViewModelInstanceViewModelParams | undefined)?.useNew ??
300
+ false;
146
301
  const required = params?.required ?? false;
147
302
  const onInit = params?.onInit;
148
303
 
@@ -152,13 +307,19 @@ export function useViewModelInstance(
152
307
  } | null>(null);
153
308
 
154
309
  const result = useMemo(() => {
155
- const created = createInstance(source, name, useNew);
310
+ const created = createInstance(
311
+ source,
312
+ instanceName,
313
+ artboardName,
314
+ viewModelName,
315
+ useNew
316
+ );
156
317
  if (created.instance && onInit) {
157
318
  onInit(created.instance);
158
319
  }
159
320
  return created;
160
321
  // eslint-disable-next-line react-hooks/exhaustive-deps -- onInit excluded intentionally
161
- }, [source, name, useNew]);
322
+ }, [source, instanceName, artboardName, viewModelName, useNew]);
162
323
 
163
324
  // Dispose previous instance if it changed and needed disposal
164
325
  if (
@@ -186,8 +347,10 @@ export function useViewModelInstance(
186
347
 
187
348
  if (required && result.instance === null) {
188
349
  throw new Error(
189
- 'useViewModelInstance: Failed to get ViewModelInstance. ' +
190
- 'Ensure the source has a valid ViewModel and instance available.'
350
+ result.error
351
+ ? `useViewModelInstance: ${result.error}`
352
+ : 'useViewModelInstance: Failed to get ViewModelInstance. ' +
353
+ 'Ensure the source has a valid ViewModel and instance available.'
191
354
  );
192
355
  }
193
356