@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.
- package/LICENSE +20 -0
- package/README.md +257 -0
- package/RNRive.podspec +53 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +155 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +13 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelProperty.kt +20 -0
- package/android/src/main/java/com/margelo/nitro/rive/BaseHybridViewModelPropertyImpl.kt +50 -0
- package/android/src/main/java/com/margelo/nitro/rive/BytesDataLoader.kt +9 -0
- package/android/src/main/java/com/margelo/nitro/rive/DataLoader.kt +15 -0
- package/android/src/main/java/com/margelo/nitro/rive/DataSource.kt +38 -0
- package/android/src/main/java/com/margelo/nitro/rive/DataSourceResolver.kt +36 -0
- package/android/src/main/java/com/margelo/nitro/rive/EventPropertiesOutputExtensions.kt +12 -0
- package/android/src/main/java/com/margelo/nitro/rive/FileDataLoader.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/rive/HTTPDataLoader.kt +37 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +98 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFileFactory.kt +123 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveImage.kt +15 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveImageFactory.kt +23 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridRiveView.kt +279 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModel.kt +53 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelBooleanProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelColorProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelEnumProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelInstance.kt +76 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelNumberProperty.kt +23 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelStringProperty.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/rive/HybridViewModelTriggerProperty.kt +21 -0
- package/android/src/main/java/com/margelo/nitro/rive/ReferencedAssetLoader.kt +108 -0
- package/android/src/main/java/com/margelo/nitro/rive/ResourceDataLoader.kt +44 -0
- package/android/src/main/java/com/margelo/nitro/rive/Rive.kt +12 -0
- package/android/src/main/java/com/rive/RivePackage.kt +29 -0
- package/android/src/main/java/com/rive/RiveReactNativeView.kt +433 -0
- package/android/src/main/java/com/rive/RiveViewManager.kt +11 -0
- package/ios/BaseHybridViewModelProperty.swift +118 -0
- package/ios/BundleDataLoader.swift +25 -0
- package/ios/BytesDataLoader.swift +10 -0
- package/ios/DataLoader.swift +28 -0
- package/ios/DataSource.swift +43 -0
- package/ios/DataSourceResolver.swift +55 -0
- package/ios/EventPropertiesOutputExtensions.swift +15 -0
- package/ios/FileDataLoader.swift +24 -0
- package/ios/HTTPDataLoader.swift +31 -0
- package/ios/HybridRiveFile.swift +113 -0
- package/ios/HybridRiveFileFactory.swift +163 -0
- package/ios/HybridRiveImage.swift +17 -0
- package/ios/HybridRiveImageFactory.swift +26 -0
- package/ios/HybridRiveView.swift +284 -0
- package/ios/HybridViewModel.swift +46 -0
- package/ios/HybridViewModelBooleanProperty.swift +29 -0
- package/ios/HybridViewModelColorProperty.swift +63 -0
- package/ios/HybridViewModelEnumProperty.swift +29 -0
- package/ios/HybridViewModelImageProperty.swift +31 -0
- package/ios/HybridViewModelInstance.swift +51 -0
- package/ios/HybridViewModelNumberProperty.swift +35 -0
- package/ios/HybridViewModelStringProperty.swift +29 -0
- package/ios/HybridViewModelTriggerProperty.swift +30 -0
- package/ios/RCTLog.swift +29 -0
- package/ios/RCTSwiftLog.h +11 -0
- package/ios/RCTSwiftLog.m +38 -0
- package/ios/ReferencedAssetLoader.swift +145 -0
- package/ios/Rive.swift +5 -0
- package/ios/RiveReactNativeView.swift +325 -0
- package/ios/Utils.swift +15 -0
- package/lib/module/core/Alignment.js +42 -0
- package/lib/module/core/Alignment.js.map +1 -0
- package/lib/module/core/Errors.js +13 -0
- package/lib/module/core/Errors.js.map +1 -0
- package/lib/module/core/Events.js +8 -0
- package/lib/module/core/Events.js.map +1 -0
- package/lib/module/core/Fit.js +51 -0
- package/lib/module/core/Fit.js.map +1 -0
- package/lib/module/core/NitroRiveViewComponent.js +6 -0
- package/lib/module/core/NitroRiveViewComponent.js.map +1 -0
- package/lib/module/core/ReferencedAssets.js +4 -0
- package/lib/module/core/ReferencedAssets.js.map +1 -0
- package/lib/module/core/RiveColor.js +90 -0
- package/lib/module/core/RiveColor.js.map +1 -0
- package/lib/module/core/RiveFile.js +64 -0
- package/lib/module/core/RiveFile.js.map +1 -0
- package/lib/module/core/RiveImages.js +5 -0
- package/lib/module/core/RiveImages.js.map +1 -0
- package/lib/module/core/RiveView.js +51 -0
- package/lib/module/core/RiveView.js.map +1 -0
- package/lib/module/core/callDispose.js +15 -0
- package/lib/module/core/callDispose.js.map +1 -0
- package/lib/module/hooks/useRive.js +51 -0
- package/lib/module/hooks/useRive.js.map +1 -0
- package/lib/module/hooks/useRiveBoolean.js +23 -0
- package/lib/module/hooks/useRiveBoolean.js.map +1 -0
- package/lib/module/hooks/useRiveColor.js +30 -0
- package/lib/module/hooks/useRiveColor.js.map +1 -0
- package/lib/module/hooks/useRiveEnum.js +23 -0
- package/lib/module/hooks/useRiveEnum.js.map +1 -0
- package/lib/module/hooks/useRiveFile.js +128 -0
- package/lib/module/hooks/useRiveFile.js.map +1 -0
- package/lib/module/hooks/useRiveNumber.js +23 -0
- package/lib/module/hooks/useRiveNumber.js.map +1 -0
- package/lib/module/hooks/useRiveProperty.js +79 -0
- package/lib/module/hooks/useRiveProperty.js.map +1 -0
- package/lib/module/hooks/useRiveString.js +23 -0
- package/lib/module/hooks/useRiveString.js.map +1 -0
- package/lib/module/hooks/useRiveTrigger.js +33 -0
- package/lib/module/hooks/useRiveTrigger.js.map +1 -0
- package/lib/module/index.js +28 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/ArtboardBy.js +27 -0
- package/lib/module/specs/ArtboardBy.js.map +1 -0
- package/lib/module/specs/Rive.nitro.js +4 -0
- package/lib/module/specs/Rive.nitro.js.map +1 -0
- package/lib/module/specs/RiveFile.nitro.js +4 -0
- package/lib/module/specs/RiveFile.nitro.js.map +1 -0
- package/lib/module/specs/RiveImage.nitro.js +4 -0
- package/lib/module/specs/RiveImage.nitro.js.map +1 -0
- package/lib/module/specs/RiveView.nitro.js +23 -0
- package/lib/module/specs/RiveView.nitro.js.map +1 -0
- package/lib/module/specs/ViewModel.nitro.js +4 -0
- package/lib/module/specs/ViewModel.nitro.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/nitrogen/generated/shared/json/RiveViewConfig.json +18 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/core/Alignment.d.ts +39 -0
- package/lib/typescript/src/core/Alignment.d.ts.map +1 -0
- package/lib/typescript/src/core/Errors.d.ts +14 -0
- package/lib/typescript/src/core/Errors.d.ts.map +1 -0
- package/lib/typescript/src/core/Events.d.ts +26 -0
- package/lib/typescript/src/core/Events.d.ts.map +1 -0
- package/lib/typescript/src/core/Fit.d.ts +48 -0
- package/lib/typescript/src/core/Fit.d.ts.map +1 -0
- package/lib/typescript/src/core/NitroRiveViewComponent.d.ts +4 -0
- package/lib/typescript/src/core/NitroRiveViewComponent.d.ts.map +1 -0
- package/lib/typescript/src/core/ReferencedAssets.d.ts +15 -0
- package/lib/typescript/src/core/ReferencedAssets.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveColor.d.ts +53 -0
- package/lib/typescript/src/core/RiveColor.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveFile.d.ts +62 -0
- package/lib/typescript/src/core/RiveFile.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveImages.d.ts +3 -0
- package/lib/typescript/src/core/RiveImages.d.ts.map +1 -0
- package/lib/typescript/src/core/RiveView.d.ts +38 -0
- package/lib/typescript/src/core/RiveView.d.ts.map +1 -0
- package/lib/typescript/src/core/callDispose.d.ts +7 -0
- package/lib/typescript/src/core/callDispose.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRive.d.ts +9 -0
- package/lib/typescript/src/hooks/useRive.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveBoolean.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveBoolean.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveColor.d.ts +14 -0
- package/lib/typescript/src/hooks/useRiveColor.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveEnum.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveEnum.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveFile.d.ts +24 -0
- package/lib/typescript/src/hooks/useRiveFile.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveNumber.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveNumber.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveProperty.d.ts +22 -0
- package/lib/typescript/src/hooks/useRiveProperty.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveString.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveString.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRiveTrigger.d.ts +11 -0
- package/lib/typescript/src/hooks/useRiveTrigger.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +32 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/specs/ArtboardBy.d.ts +20 -0
- package/lib/typescript/src/specs/ArtboardBy.d.ts.map +1 -0
- package/lib/typescript/src/specs/Rive.nitro.d.ts +8 -0
- package/lib/typescript/src/specs/Rive.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/RiveFile.nitro.d.ts +42 -0
- package/lib/typescript/src/specs/RiveFile.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/RiveImage.nitro.d.ts +43 -0
- package/lib/typescript/src/specs/RiveImage.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/RiveView.nitro.d.ts +139 -0
- package/lib/typescript/src/specs/RiveView.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/ViewModel.nitro.d.ts +103 -0
- package/lib/typescript/src/specs/ViewModel.nitro.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +33 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JAlignment.hpp +80 -0
- package/nitrogen/generated/android/c++/JArtboardBy.hpp +68 -0
- package/nitrogen/generated/android/c++/JArtboardByTypes.hpp +59 -0
- package/nitrogen/generated/android/c++/JDataBindByName.hpp +57 -0
- package/nitrogen/generated/android/c++/JDataBindMode.hpp +59 -0
- package/nitrogen/generated/android/c++/JEventPropertiesOutput.cpp +30 -0
- package/nitrogen/generated/android/c++/JEventPropertiesOutput.hpp +83 -0
- package/nitrogen/generated/android/c++/JFit.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_RiveError.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_UnifiedRiveEvent.hpp +84 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +76 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.cpp +134 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileFactorySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileSpec.cpp +96 -0
- package/nitrogen/generated/android/c++/JHybridRiveFileSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.cpp +104 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageFactorySpec.hpp +67 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridRiveImageSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridRiveSpec.cpp +52 -0
- package/nitrogen/generated/android/c++/JHybridRiveSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridRiveViewSpec.cpp +299 -0
- package/nitrogen/generated/android/c++/JHybridRiveViewSpec.hpp +97 -0
- package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelBooleanPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelColorPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.cpp +66 -0
- package/nitrogen/generated/android/c++/JHybridViewModelEnumPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +66 -0
- package/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.cpp +115 -0
- package/nitrogen/generated/android/c++/JHybridViewModelInstanceSpec.hpp +71 -0
- package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelNumberPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.cpp +48 -0
- package/nitrogen/generated/android/c++/JHybridViewModelPropertySpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridViewModelSpec.cpp +86 -0
- package/nitrogen/generated/android/c++/JHybridViewModelSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.cpp +66 -0
- package/nitrogen/generated/android/c++/JHybridViewModelStringPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.cpp +61 -0
- package/nitrogen/generated/android/c++/JHybridViewModelTriggerPropertySpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JReferencedAssetsType.hpp +77 -0
- package/nitrogen/generated/android/c++/JResolvedReferencedAsset.hpp +77 -0
- package/nitrogen/generated/android/c++/JRiveError.hpp +63 -0
- package/nitrogen/generated/android/c++/JRiveErrorType.hpp +74 -0
- package/nitrogen/generated/android/c++/JRiveEventType.hpp +59 -0
- package/nitrogen/generated/android/c++/JUnifiedRiveEvent.hpp +96 -0
- package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.cpp +30 -0
- package/nitrogen/generated/android/c++/JVariant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.hpp +90 -0
- package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.cpp +88 -0
- package/nitrogen/generated/android/c++/views/JHybridRiveViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Alignment.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardBy.kt +44 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ArtboardByTypes.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindByName.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/DataBindMode.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/EventPropertiesOutput.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Fit.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_RiveError.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_UnifiedRiveEvent.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_bool.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileFactorySpec.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFileSpec.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageFactorySpec.kt +67 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveImageSpec.kt +57 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveSpec.kt +57 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveViewSpec.kt +183 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelBooleanPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelColorPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelEnumPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelImagePropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelInstanceSpec.kt +83 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelNumberPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelPropertySpec.kt +55 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelSpec.kt +79 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelStringPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridViewModelTriggerPropertySpec.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ReferencedAssetsType.kt +38 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/ResolvedReferencedAsset.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveError.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveErrorType.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/RiveEventType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/UnifiedRiveEvent.kt +53 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/Variant_HybridViewModelInstanceSpec_DataBindMode_DataBindByName.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/riveOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/views/HybridRiveViewStateUpdater.kt +23 -0
- package/nitrogen/generated/android/rive+autolinking.cmake +115 -0
- package/nitrogen/generated/android/rive+autolinking.gradle +27 -0
- package/nitrogen/generated/android/riveOnLoad.cpp +192 -0
- package/nitrogen/generated/android/riveOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/RNRive+autolinking.rb +60 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +360 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +1180 -0
- package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +161 -0
- package/nitrogen/generated/ios/RNRiveAutolinking.mm +137 -0
- package/nitrogen/generated/ios/RNRiveAutolinking.swift +220 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileFactorySpecSwift.hpp +119 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveFileSpecSwift.hpp +121 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageFactorySpecSwift.hpp +100 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveImageSpecSwift.hpp +71 -0
- package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveSpecSwift.hpp +76 -0
- package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridRiveViewSpecSwift.hpp +277 -0
- package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelBooleanPropertySpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelColorPropertySpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelEnumPropertySpecSwift.hpp +90 -0
- package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelImagePropertySpecSwift.hpp +94 -0
- package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelInstanceSpecSwift.hpp +149 -0
- package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelNumberPropertySpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelPropertySpecSwift.hpp +69 -0
- package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelSpecSwift.hpp +113 -0
- package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelStringPropertySpecSwift.hpp +90 -0
- package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridViewModelTriggerPropertySpecSwift.hpp +89 -0
- package/nitrogen/generated/ios/c++/views/HybridRiveViewComponent.mm +136 -0
- package/nitrogen/generated/ios/swift/Alignment.swift +68 -0
- package/nitrogen/generated/ios/swift/ArtboardBy.swift +89 -0
- package/nitrogen/generated/ios/swift/ArtboardByTypes.swift +40 -0
- package/nitrogen/generated/ios/swift/DataBindByName.swift +36 -0
- package/nitrogen/generated/ios/swift/DataBindMode.swift +40 -0
- package/nitrogen/generated/ios/swift/EventPropertiesOutput.swift +19 -0
- package/nitrogen/generated/ios/swift/Fit.swift +64 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_RiveError.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_UnifiedRiveEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveFileSpec_.swift +51 -0
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridRiveImageSpec_.swift +51 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileFactorySpec_cxx.swift +207 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileSpec.swift +59 -0
- package/nitrogen/generated/ios/swift/HybridRiveFileSpec_cxx.swift +204 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageFactorySpec_cxx.swift +185 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridRiveImageSpec_cxx.swift +126 -0
- package/nitrogen/generated/ios/swift/HybridRiveSpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridRiveSpec_cxx.swift +131 -0
- package/nitrogen/generated/ios/swift/HybridRiveViewSpec.swift +79 -0
- package/nitrogen/generated/ios/swift/HybridRiveViewSpec_cxx.swift +623 -0
- package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelBooleanPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelColorPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelEnumPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridViewModelImagePropertySpec_cxx.swift +171 -0
- package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec.swift +62 -0
- package/nitrogen/generated/ios/swift/HybridViewModelInstanceSpec_cxx.swift +271 -0
- package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelNumberPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec.swift +56 -0
- package/nitrogen/generated/ios/swift/HybridViewModelPropertySpec_cxx.swift +121 -0
- package/nitrogen/generated/ios/swift/HybridViewModelSpec.swift +61 -0
- package/nitrogen/generated/ios/swift/HybridViewModelSpec_cxx.swift +222 -0
- package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridViewModelStringPropertySpec_cxx.swift +158 -0
- package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridViewModelTriggerPropertySpec_cxx.swift +160 -0
- package/nitrogen/generated/ios/swift/ReferencedAssetsType.swift +75 -0
- package/nitrogen/generated/ios/swift/ResolvedReferencedAsset.swift +185 -0
- package/nitrogen/generated/ios/swift/RiveError.swift +47 -0
- package/nitrogen/generated/ios/swift/RiveErrorType.swift +60 -0
- package/nitrogen/generated/ios/swift/RiveEventType.swift +40 -0
- package/nitrogen/generated/ios/swift/UnifiedRiveEvent.swift +213 -0
- package/nitrogen/generated/ios/swift/Variant__any_HybridViewModelInstanceSpec__DataBindMode_DataBindByName.swift +19 -0
- package/nitrogen/generated/shared/c++/Alignment.hpp +104 -0
- package/nitrogen/generated/shared/c++/ArtboardBy.hpp +86 -0
- package/nitrogen/generated/shared/c++/ArtboardByTypes.hpp +76 -0
- package/nitrogen/generated/shared/c++/DataBindByName.hpp +75 -0
- package/nitrogen/generated/shared/c++/DataBindMode.hpp +62 -0
- package/nitrogen/generated/shared/c++/Fit.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileFactorySpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridRiveFileSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageFactorySpec.hpp +69 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridRiveImageSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridRiveSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridRiveSpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridRiveViewSpec.cpp +54 -0
- package/nitrogen/generated/shared/c++/HybridRiveViewSpec.hpp +122 -0
- package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelBooleanPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelColorPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelEnumPropertySpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridViewModelImagePropertySpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridViewModelInstanceSpec.hpp +90 -0
- package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelNumberPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridViewModelPropertySpec.hpp +62 -0
- package/nitrogen/generated/shared/c++/HybridViewModelSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridViewModelSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridViewModelStringPropertySpec.hpp +68 -0
- package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.cpp +24 -0
- package/nitrogen/generated/shared/c++/HybridViewModelTriggerPropertySpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/ReferencedAssetsType.hpp +79 -0
- package/nitrogen/generated/shared/c++/ResolvedReferencedAsset.hpp +95 -0
- package/nitrogen/generated/shared/c++/RiveError.hpp +81 -0
- package/nitrogen/generated/shared/c++/RiveErrorType.hpp +75 -0
- package/nitrogen/generated/shared/c++/RiveEventType.hpp +62 -0
- package/nitrogen/generated/shared/c++/UnifiedRiveEvent.hpp +100 -0
- package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.cpp +183 -0
- package/nitrogen/generated/shared/c++/views/HybridRiveViewComponent.hpp +124 -0
- package/nitrogen/generated/shared/json/RiveViewConfig.json +18 -0
- package/package.json +193 -0
- package/src/core/Alignment.ts +46 -0
- package/src/core/Errors.ts +14 -0
- package/src/core/Events.ts +31 -0
- package/src/core/Fit.ts +54 -0
- package/src/core/NitroRiveViewComponent.ts +18 -0
- package/src/core/ReferencedAssets.ts +14 -0
- package/src/core/RiveColor.ts +100 -0
- package/src/core/RiveFile.ts +149 -0
- package/src/core/RiveImages.ts +5 -0
- package/src/core/RiveView.tsx +48 -0
- package/src/core/callDispose.ts +18 -0
- package/src/hooks/useRive.ts +56 -0
- package/src/hooks/useRiveBoolean.ts +28 -0
- package/src/hooks/useRiveColor.ts +47 -0
- package/src/hooks/useRiveEnum.ts +27 -0
- package/src/hooks/useRiveFile.ts +184 -0
- package/src/hooks/useRiveNumber.ts +28 -0
- package/src/hooks/useRiveProperty.ts +110 -0
- package/src/hooks/useRiveString.ts +28 -0
- package/src/hooks/useRiveTrigger.ts +49 -0
- package/src/index.tsx +52 -0
- package/src/specs/ArtboardBy.ts +31 -0
- package/src/specs/Rive.nitro.ts +6 -0
- package/src/specs/RiveFile.nitro.ts +57 -0
- package/src/specs/RiveImage.nitro.ts +42 -0
- package/src/specs/RiveView.nitro.ts +149 -0
- package/src/specs/ViewModel.nitro.ts +126 -0
- package/src/types.tsx +34 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable no-bitwise */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a color in RGBA format for use with Rive color data binding.
|
|
7
|
+
* Each channel (r, g, b, a) is represented as a number between 0-255.
|
|
8
|
+
*/
|
|
9
|
+
export class RiveColor {
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new RiveColor instance.
|
|
12
|
+
* @param r - Red channel (0-255)
|
|
13
|
+
* @param g - Green channel (0-255)
|
|
14
|
+
* @param b - Blue channel (0-255)
|
|
15
|
+
* @param a - Alpha channel (0-255, where 255 is fully opaque)
|
|
16
|
+
*/
|
|
17
|
+
constructor(r, g, b, a) {
|
|
18
|
+
this.r = r;
|
|
19
|
+
this.g = g;
|
|
20
|
+
this.b = b;
|
|
21
|
+
this.a = a;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Compares this color with another RiveColor instance.
|
|
26
|
+
* @param other - The RiveColor to compare with
|
|
27
|
+
* @returns true if the colors are equal, false otherwise
|
|
28
|
+
*/
|
|
29
|
+
equals(other) {
|
|
30
|
+
if (!other) return false;
|
|
31
|
+
return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Creates a RiveColor instance from a hex color string.
|
|
36
|
+
* Supports both 6-digit (#RRGGBB) and 8-digit (#RRGGBBAA) formats.
|
|
37
|
+
* @param color - Hex color string (e.g., '#FF0000' or '#FF000080')
|
|
38
|
+
* @returns A new RiveColor instance
|
|
39
|
+
* @throws Will return black (0,0,0,255) with a warning if the hex string is invalid
|
|
40
|
+
*/
|
|
41
|
+
static fromHexString(color) {
|
|
42
|
+
const hex = color.replace(/^#/, '');
|
|
43
|
+
const isValidHex = /^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/.test(hex);
|
|
44
|
+
if (!isValidHex) {
|
|
45
|
+
console.warn(`Rive invalid hex color: ${color}`);
|
|
46
|
+
return new RiveColor(0, 0, 0, 255);
|
|
47
|
+
}
|
|
48
|
+
let r = parseInt(hex.slice(0, 2), 16),
|
|
49
|
+
g = parseInt(hex.slice(2, 4), 16),
|
|
50
|
+
b = parseInt(hex.slice(4, 6), 16),
|
|
51
|
+
a = 255;
|
|
52
|
+
|
|
53
|
+
// Optionally parse alpha channel if present
|
|
54
|
+
if (hex.length === 8) {
|
|
55
|
+
a = parseInt(hex.slice(6, 8), 16);
|
|
56
|
+
}
|
|
57
|
+
return new RiveColor(r, g, b, a);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Creates a RiveColor instance from a 32-bit integer.
|
|
62
|
+
* The integer should be in ARGB format where:
|
|
63
|
+
* - Bits 24-31: Alpha channel
|
|
64
|
+
* - Bits 16-23: Red channel
|
|
65
|
+
* - Bits 8-15: Green channel
|
|
66
|
+
* - Bits 0-7: Blue channel
|
|
67
|
+
* @param colorValue - 32-bit integer representing the color
|
|
68
|
+
* @returns A new RiveColor instance
|
|
69
|
+
*/
|
|
70
|
+
static fromInt(colorValue) {
|
|
71
|
+
const a = colorValue >> 24 & 0xff;
|
|
72
|
+
const r = colorValue >> 16 & 0xff;
|
|
73
|
+
const g = colorValue >> 8 & 0xff;
|
|
74
|
+
const b = colorValue & 0xff;
|
|
75
|
+
return new RiveColor(r, g, b, a);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Converts this color to a 32-bit integer in ARGB format.
|
|
80
|
+
* @returns A 32-bit integer where:
|
|
81
|
+
* - Bits 24-31: Alpha channel
|
|
82
|
+
* - Bits 16-23: Red channel
|
|
83
|
+
* - Bits 8-15: Green channel
|
|
84
|
+
* - Bits 0-7: Blue channel
|
|
85
|
+
*/
|
|
86
|
+
toInt() {
|
|
87
|
+
return (this.a & 0xff) << 24 | (this.r & 0xff) << 16 | (this.g & 0xff) << 8 | this.b & 0xff;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=RiveColor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RiveColor","constructor","r","g","b","a","equals","other","fromHexString","color","hex","replace","isValidHex","test","console","warn","parseInt","slice","length","fromInt","colorValue","toInt"],"sourceRoot":"../../../src","sources":["core/RiveColor.ts"],"mappings":";;AAAA;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMA,SAAS,CAAC;EACrB;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,WAAWA,CACOC,CAAS,EACTC,CAAS,EACTC,CAAS,EACTC,CAAS,EACzB;IAAA,KAJgBH,CAAS,GAATA,CAAS;IAAA,KACTC,CAAS,GAATA,CAAS;IAAA,KACTC,CAAS,GAATA,CAAS;IAAA,KACTC,CAAS,GAATA,CAAS;EACxB;;EAEH;AACF;AACA;AACA;AACA;EACEC,MAAMA,CAACC,KAA4B,EAAW;IAC5C,IAAI,CAACA,KAAK,EAAE,OAAO,KAAK;IACxB,OACE,IAAI,CAACL,CAAC,KAAKK,KAAK,CAACL,CAAC,IAClB,IAAI,CAACC,CAAC,KAAKI,KAAK,CAACJ,CAAC,IAClB,IAAI,CAACC,CAAC,KAAKG,KAAK,CAACH,CAAC,IAClB,IAAI,CAACC,CAAC,KAAKE,KAAK,CAACF,CAAC;EAEtB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOG,aAAaA,CAACC,KAAa,EAAa;IAC7C,MAAMC,GAAG,GAAGD,KAAK,CAACE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAEnC,MAAMC,UAAU,GAAG,mCAAmC,CAACC,IAAI,CAACH,GAAG,CAAC;IAChE,IAAI,CAACE,UAAU,EAAE;MACfE,OAAO,CAACC,IAAI,CAAC,2BAA2BN,KAAK,EAAE,CAAC;MAChD,OAAO,IAAIT,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACpC;IAEA,IAAIE,CAAC,GAAGc,QAAQ,CAACN,GAAG,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;MACnCd,CAAC,GAAGa,QAAQ,CAACN,GAAG,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;MACjCb,CAAC,GAAGY,QAAQ,CAACN,GAAG,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;MACjCZ,CAAC,GAAG,GAAG;;IAET;IACA,IAAIK,GAAG,CAACQ,MAAM,KAAK,CAAC,EAAE;MACpBb,CAAC,GAAGW,QAAQ,CAACN,GAAG,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IACnC;IAEA,OAAO,IAAIjB,SAAS,CAACE,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;EAClC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOc,OAAOA,CAACC,UAAkB,EAAa;IAC5C,MAAMf,CAAC,GAAIe,UAAU,IAAI,EAAE,GAAI,IAAI;IACnC,MAAMlB,CAAC,GAAIkB,UAAU,IAAI,EAAE,GAAI,IAAI;IACnC,MAAMjB,CAAC,GAAIiB,UAAU,IAAI,CAAC,GAAI,IAAI;IAClC,MAAMhB,CAAC,GAAGgB,UAAU,GAAG,IAAI;IAC3B,OAAO,IAAIpB,SAAS,CAACE,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;EAClC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEgB,KAAKA,CAAA,EAAW;IACd,OACG,CAAC,IAAI,CAAChB,CAAC,GAAG,IAAI,KAAK,EAAE,GACrB,CAAC,IAAI,CAACH,CAAC,GAAG,IAAI,KAAK,EAAG,GACtB,CAAC,IAAI,CAACC,CAAC,GAAG,IAAI,KAAK,CAAE,GACrB,IAAI,CAACC,CAAC,GAAG,IAAK;EAEnB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
import { Image } from 'react-native';
|
|
5
|
+
const RiveFileInternal = NitroModules.createHybridObject('RiveFileFactory');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Factory namespace for creating RiveFile instances from different sources.
|
|
9
|
+
* Provides static methods to load Rive files from URLs, resources, or raw bytes.
|
|
10
|
+
*/
|
|
11
|
+
export let RiveFileFactory;
|
|
12
|
+
(function (_RiveFileFactory) {
|
|
13
|
+
async function fromURL(url, referencedAssets, loadCdn = true) {
|
|
14
|
+
return RiveFileInternal.fromURL(url, loadCdn, referencedAssets ? {
|
|
15
|
+
data: referencedAssets
|
|
16
|
+
} : undefined);
|
|
17
|
+
}
|
|
18
|
+
_RiveFileFactory.fromURL = fromURL;
|
|
19
|
+
async function fromFileURL(fileURL, referencedAssets = undefined, loadCdn = true) {
|
|
20
|
+
return RiveFileInternal.fromFileURL(fileURL, loadCdn, referencedAssets ? {
|
|
21
|
+
data: referencedAssets
|
|
22
|
+
} : undefined);
|
|
23
|
+
}
|
|
24
|
+
_RiveFileFactory.fromFileURL = fromFileURL;
|
|
25
|
+
async function fromResource(resource, referencedAssets, loadCdn = true) {
|
|
26
|
+
return RiveFileInternal.fromResource(resource, loadCdn, referencedAssets ? {
|
|
27
|
+
data: referencedAssets
|
|
28
|
+
} : undefined);
|
|
29
|
+
}
|
|
30
|
+
_RiveFileFactory.fromResource = fromResource;
|
|
31
|
+
async function fromBytes(bytes, referencedAssets, loadCdn = true) {
|
|
32
|
+
return RiveFileInternal.fromBytes(bytes, loadCdn, referencedAssets ? {
|
|
33
|
+
data: referencedAssets
|
|
34
|
+
} : undefined);
|
|
35
|
+
}
|
|
36
|
+
_RiveFileFactory.fromBytes = fromBytes;
|
|
37
|
+
async function fromSource(source, referencedAssets, loadCdn = true) {
|
|
38
|
+
const assetID = typeof source === 'number' ? source : null;
|
|
39
|
+
const sourceURI = typeof source === 'object' ? source.uri : null;
|
|
40
|
+
const assetURI = assetID ? Image.resolveAssetSource(assetID)?.uri : sourceURI;
|
|
41
|
+
if (!assetURI) {
|
|
42
|
+
throw new Error(`Invalid source provided, ${source} is not a valid asset ID or URI`);
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
// handle http address and dev server
|
|
46
|
+
if (assetURI.match(/https?:\/\//)) {
|
|
47
|
+
return RiveFileFactory.fromURL(assetURI, referencedAssets, loadCdn);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// handle iOS bundled asset
|
|
51
|
+
if (assetURI.match(/file:\/\//)) {
|
|
52
|
+
return RiveFileFactory.fromFileURL(assetURI, referencedAssets, loadCdn);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// handle Android bundled asset or resource name uri
|
|
56
|
+
return RiveFileFactory.fromResource(assetURI, referencedAssets, loadCdn);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
59
|
+
throw new Error(`Failed to load Rive file from source: ${errorMessage}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
_RiveFileFactory.fromSource = fromSource;
|
|
63
|
+
})(RiveFileFactory || (RiveFileFactory = {}));
|
|
64
|
+
//# sourceMappingURL=RiveFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","Image","RiveFileInternal","createHybridObject","RiveFileFactory","_RiveFileFactory","fromURL","url","referencedAssets","loadCdn","data","undefined","fromFileURL","fileURL","fromResource","resource","fromBytes","bytes","fromSource","source","assetID","sourceURI","uri","assetURI","resolveAssetSource","Error","match","error","errorMessage","message","String"],"sourceRoot":"../../../src","sources":["core/RiveFile.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","RiveImages","createHybridObject"],"sourceRoot":"../../../src","sources":["core/RiveImages.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,OAAO,MAAMC,UAAU,GACrBD,YAAY,CAACE,kBAAkB,CAAmB,kBAAkB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroRiveView } from "./NitroRiveViewComponent.js";
|
|
4
|
+
import { RiveErrorType } from "./Errors.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
const defaultOnError = error => console.error(`[${RiveErrorType[error.type]}] ${error.message}`);
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* RiveView is a React Native component that renders Rive graphics.
|
|
10
|
+
* It provides a seamless way to display and control Rive graphics in your app.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <RiveView
|
|
15
|
+
* file={riveFile}
|
|
16
|
+
* artboardName="New Artboard"
|
|
17
|
+
* stateMachineName="State Machine 1"
|
|
18
|
+
* autoPlay={true}
|
|
19
|
+
* fit={Fit.Contain}
|
|
20
|
+
* style={styles.riveContainer}
|
|
21
|
+
* />
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @property {RiveFile} file - The Rive file to be displayed
|
|
25
|
+
* @property {string} [artboardName] - Name of the artboard to display from the Rive file
|
|
26
|
+
* @property {string} [stateMachineName] - Name of the state machine to play
|
|
27
|
+
* @property {ViewModelInstance | DataBindMode | DataBindByName} [dataBind] - Data binding configuration for the state machine, defaults to DataBindMode.Auto
|
|
28
|
+
* @property {boolean} [autoPlay=true] - Whether to automatically start playing the state machine
|
|
29
|
+
* @property {Alignment} [alignment] - How the Rive graphic should be aligned within its container
|
|
30
|
+
* @property {Fit} [fit] - How the Rive graphic should fit within its container
|
|
31
|
+
* @property {Object} [style] - React Native style object for container customization
|
|
32
|
+
* @property {(error: RiveError) => void} [onError] - Callback function that is called when an error occurs
|
|
33
|
+
*
|
|
34
|
+
* The component also exposes methods for controlling playback:
|
|
35
|
+
* - play(): Starts playing the Rive graphic
|
|
36
|
+
* - pause(): Pauses the Rive graphic
|
|
37
|
+
*/
|
|
38
|
+
export function RiveView(props) {
|
|
39
|
+
const {
|
|
40
|
+
onError,
|
|
41
|
+
...rest
|
|
42
|
+
} = props;
|
|
43
|
+
const wrappedOnError = onError ?? defaultOnError;
|
|
44
|
+
return /*#__PURE__*/_jsx(NitroRiveView, {
|
|
45
|
+
...rest,
|
|
46
|
+
onError: {
|
|
47
|
+
f: wrappedOnError
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=RiveView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroRiveView","RiveErrorType","jsx","_jsx","defaultOnError","error","console","type","message","RiveView","props","onError","rest","wrappedOnError","f"],"sourceRoot":"../../../src","sources":["core/RiveView.tsx"],"mappings":";;AACA,SAASA,aAAa,QAAQ,6BAA0B;AACxD,SAASC,aAAa,QAAwB,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOzD,MAAMC,cAAc,GAAIC,KAAgB,IACtCC,OAAO,CAACD,KAAK,CAAC,IAAIJ,aAAa,CAACI,KAAK,CAACE,IAAI,CAAC,KAAKF,KAAK,CAACG,OAAO,EAAE,CAAC;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAM;IAAEC,OAAO;IAAE,GAAGC;EAAK,CAAC,GAAGF,KAAK;EAClC,MAAMG,cAAc,GAAGF,OAAO,IAAIP,cAAc;EAEhD,oBAAOD,IAAA,CAACH,aAAa;IAAA,GAAKY,IAAI;IAAED,OAAO,EAAE;MAAEG,CAAC,EAAED;IAAe;EAAE,CAAE,CAAC;AACpE","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const NITRO_DISPOSE_ERROR = 'failed to define internal native state property';
|
|
4
|
+
/** Safely calls dispose(), ignoring errors from https://github.com/mrousavy/nitro/issues/1083 */
|
|
5
|
+
export function callDispose(obj) {
|
|
6
|
+
try {
|
|
7
|
+
obj.dispose();
|
|
8
|
+
} catch (error) {
|
|
9
|
+
const message = error instanceof Error ? error.message : String(error ?? '');
|
|
10
|
+
if (!message.includes(NITRO_DISPOSE_ERROR)) {
|
|
11
|
+
throw error;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=callDispose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NITRO_DISPOSE_ERROR","callDispose","obj","dispose","error","message","Error","String","includes"],"sourceRoot":"../../../src","sources":["core/callDispose.ts"],"mappings":";;AAAA,MAAMA,mBAAmB,GAAG,iDAAiD;AAM7E;AACA,OAAO,SAASC,WAAWA,CAACC,GAAe,EAAQ;EACjD,IAAI;IACFA,GAAG,CAACC,OAAO,CAAC,CAAC;EACf,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,MAAMC,OAAO,GACXD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACC,OAAO,GAAGE,MAAM,CAACH,KAAK,IAAI,EAAE,CAAC;IAC9D,IAAI,CAACC,OAAO,CAACG,QAAQ,CAACR,mBAAmB,CAAC,EAAE;MAC1C,MAAMI,KAAK;IACb;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useCallback, useState } from 'react';
|
|
4
|
+
export function useRive() {
|
|
5
|
+
const riveRef = useRef(null);
|
|
6
|
+
const [riveViewRef, setRiveViewRef] = useState(null);
|
|
7
|
+
const timeoutRef = useRef(null);
|
|
8
|
+
const setRef = useCallback(node => {
|
|
9
|
+
if (riveRef.current !== node) {
|
|
10
|
+
riveRef.current = node;
|
|
11
|
+
|
|
12
|
+
// Clear any existing timeout
|
|
13
|
+
if (timeoutRef.current) {
|
|
14
|
+
clearTimeout(timeoutRef.current);
|
|
15
|
+
}
|
|
16
|
+
const timeout = new Promise((_, reject) => {
|
|
17
|
+
timeoutRef.current = setTimeout(() => {
|
|
18
|
+
reject(new Error('Rive view ready timeout'));
|
|
19
|
+
}, 5000);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// TODO: Need to clear out the awaitViewReady promise if it times out
|
|
23
|
+
// or add this timeout natively and return false
|
|
24
|
+
Promise.race([node?.awaitViewReady(), timeout]).then(result => {
|
|
25
|
+
if (result === true) {
|
|
26
|
+
setRiveViewRef(node);
|
|
27
|
+
} else {
|
|
28
|
+
console.warn('Rive view ready check returned false');
|
|
29
|
+
setRiveViewRef(null);
|
|
30
|
+
}
|
|
31
|
+
}).catch(error => {
|
|
32
|
+
console.warn('Failed to initialize Rive view:', error);
|
|
33
|
+
setRiveViewRef(null);
|
|
34
|
+
}).finally(() => {
|
|
35
|
+
// Clear the timeout in both success and error cases
|
|
36
|
+
if (timeoutRef.current) {
|
|
37
|
+
clearTimeout(timeoutRef.current);
|
|
38
|
+
timeoutRef.current = null;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}, []);
|
|
43
|
+
return {
|
|
44
|
+
riveRef,
|
|
45
|
+
riveViewRef,
|
|
46
|
+
setHybridRef: {
|
|
47
|
+
f: setRef
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=useRive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useCallback","useState","useRive","riveRef","riveViewRef","setRiveViewRef","timeoutRef","setRef","node","current","clearTimeout","timeout","Promise","_","reject","setTimeout","Error","race","awaitViewReady","then","result","console","warn","catch","error","finally","setHybridRef","f"],"sourceRoot":"../../../src","sources":["hooks/useRive.ts"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAGrD,OAAO,SAASC,OAAOA,CAAA,EAAG;EACxB,MAAMC,OAAO,GAAGJ,MAAM,CAAc,IAAI,CAAC;EACzC,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAGJ,QAAQ,CAAqB,IAAI,CAAC;EACxE,MAAMK,UAAU,GAAGP,MAAM,CAAuC,IAAI,CAAC;EAErE,MAAMQ,MAAM,GAAGP,WAAW,CAAEQ,IAAwB,IAAK;IACvD,IAAIL,OAAO,CAACM,OAAO,KAAKD,IAAI,EAAE;MAC5BL,OAAO,CAACM,OAAO,GAAGD,IAAI;;MAEtB;MACA,IAAIF,UAAU,CAACG,OAAO,EAAE;QACtBC,YAAY,CAACJ,UAAU,CAACG,OAAO,CAAC;MAClC;MAEA,MAAME,OAAO,GAAG,IAAIC,OAAO,CAAC,CAACC,CAAC,EAAEC,MAAM,KAAK;QACzCR,UAAU,CAACG,OAAO,GAAGM,UAAU,CAAC,MAAM;UACpCD,MAAM,CAAC,IAAIE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC9C,CAAC,EAAE,IAAI,CAAC;MACV,CAAC,CAAC;;MAEF;MACA;MACAJ,OAAO,CAACK,IAAI,CAAC,CAACT,IAAI,EAAEU,cAAc,CAAC,CAAC,EAAEP,OAAO,CAAC,CAAC,CAC5CQ,IAAI,CAAEC,MAAM,IAAK;QAChB,IAAIA,MAAM,KAAK,IAAI,EAAE;UACnBf,cAAc,CAACG,IAAI,CAAC;QACtB,CAAC,MAAM;UACLa,OAAO,CAACC,IAAI,CAAC,sCAAsC,CAAC;UACpDjB,cAAc,CAAC,IAAI,CAAC;QACtB;MACF,CAAC,CAAC,CACDkB,KAAK,CAAEC,KAAK,IAAK;QAChBH,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAEE,KAAK,CAAC;QACtDnB,cAAc,CAAC,IAAI,CAAC;MACtB,CAAC,CAAC,CACDoB,OAAO,CAAC,MAAM;QACb;QACA,IAAInB,UAAU,CAACG,OAAO,EAAE;UACtBC,YAAY,CAACJ,UAAU,CAACG,OAAO,CAAC;UAChCH,UAAU,CAACG,OAAO,GAAG,IAAI;QAC3B;MACF,CAAC,CAAC;IACN;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLN,OAAO;IACPC,WAAW;IACXsB,YAAY,EAAE;MACZC,CAAC,EAAEpB;IACL;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRiveProperty } from "./useRiveProperty.js";
|
|
4
|
+
const BOOLEAN_PROPERTY_OPTIONS = {
|
|
5
|
+
getProperty: (vmi, p) => vmi.booleanProperty(p)
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Hook for interacting with boolean ViewModel instance properties.
|
|
10
|
+
*
|
|
11
|
+
* @param path - The path to the boolean property
|
|
12
|
+
* @param viewModelInstance - The ViewModelInstance containing the boolean property to operate on
|
|
13
|
+
* @returns An object with the boolean value, a setter function, and an error if the property is not found
|
|
14
|
+
*/
|
|
15
|
+
export function useRiveBoolean(path, viewModelInstance) {
|
|
16
|
+
const [value, setValue, error] = useRiveProperty(viewModelInstance, path, BOOLEAN_PROPERTY_OPTIONS);
|
|
17
|
+
return {
|
|
18
|
+
value,
|
|
19
|
+
setValue,
|
|
20
|
+
error
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useRiveBoolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRiveProperty","BOOLEAN_PROPERTY_OPTIONS","getProperty","vmi","p","booleanProperty","useRiveBoolean","path","viewModelInstance","value","setValue","error"],"sourceRoot":"../../../src","sources":["hooks/useRiveBoolean.ts"],"mappings":";;AAKA,SAASA,eAAe,QAAQ,sBAAmB;AAEnD,MAAMC,wBAAwB,GAAG;EAC/BC,WAAW,EAAEA,CAACC,GAAsB,EAAEC,CAAS,KAAKD,GAAG,CAACE,eAAe,CAACD,CAAC;AAC3E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,cAAcA,CAC5BC,IAAY,EACZC,iBAA4C,EACZ;EAChC,MAAM,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC,GAAGX,eAAe,CAG9CQ,iBAAiB,EAAED,IAAI,EAAEN,wBAAwB,CAAC;EACpD,OAAO;IAAEQ,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { useRiveProperty } from "./useRiveProperty.js";
|
|
5
|
+
import { RiveColor } from "../core/RiveColor.js";
|
|
6
|
+
const COLOR_PROPERTY_OPTIONS = {
|
|
7
|
+
getProperty: (vmi, p) => vmi.colorProperty(p)
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Hook for interacting with color ViewModel instance properties.
|
|
12
|
+
*
|
|
13
|
+
* @param path - The path to the color property
|
|
14
|
+
* @param viewModelInstance - The ViewModelInstance containing the color property to operate on
|
|
15
|
+
* @returns An object with the color value as RGBA, a setter function that accepts either RGBA or hex string, and an error if the property is not found
|
|
16
|
+
*/
|
|
17
|
+
export function useRiveColor(path, viewModelInstance) {
|
|
18
|
+
const [rawValue, setRawValue, error] = useRiveProperty(viewModelInstance, path, COLOR_PROPERTY_OPTIONS);
|
|
19
|
+
const value = rawValue !== undefined ? RiveColor.fromInt(rawValue) : undefined;
|
|
20
|
+
const setValue = useCallback(newValue => {
|
|
21
|
+
const color = typeof newValue === 'string' ? RiveColor.fromHexString(newValue) : newValue;
|
|
22
|
+
setRawValue(color.toInt());
|
|
23
|
+
}, [setRawValue]);
|
|
24
|
+
return {
|
|
25
|
+
value,
|
|
26
|
+
setValue,
|
|
27
|
+
error
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=useRiveColor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useRiveProperty","RiveColor","COLOR_PROPERTY_OPTIONS","getProperty","vmi","p","colorProperty","useRiveColor","path","viewModelInstance","rawValue","setRawValue","error","value","undefined","fromInt","setValue","newValue","color","fromHexString","toInt"],"sourceRoot":"../../../src","sources":["hooks/useRiveColor.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAMnC,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,SAAS,QAAQ,sBAAmB;AAE7C,MAAMC,sBAAsB,GAAG;EAC7BC,WAAW,EAAEA,CAACC,GAAsB,EAAEC,CAAS,KAAKD,GAAG,CAACE,aAAa,CAACD,CAAC;AACzE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,YAAYA,CAC1BC,IAAY,EACZC,iBAA4C,EAG5C;EACA,MAAM,CAACC,QAAQ,EAAEC,WAAW,EAAEC,KAAK,CAAC,GAAGZ,eAAe,CAGpDS,iBAAiB,EAAED,IAAI,EAAEN,sBAAsB,CAAC;EAElD,MAAMW,KAAK,GACTH,QAAQ,KAAKI,SAAS,GAAGb,SAAS,CAACc,OAAO,CAACL,QAAQ,CAAC,GAAGI,SAAS;EAElE,MAAME,QAAQ,GAAGjB,WAAW,CACzBkB,QAA4B,IAAK;IAChC,MAAMC,KAAK,GACT,OAAOD,QAAQ,KAAK,QAAQ,GACxBhB,SAAS,CAACkB,aAAa,CAACF,QAAQ,CAAC,GACjCA,QAAQ;IACdN,WAAW,CAACO,KAAK,CAACE,KAAK,CAAC,CAAC,CAAC;EAC5B,CAAC,EACD,CAACT,WAAW,CACd,CAAC;EAED,OAAO;IAAEE,KAAK;IAAEG,QAAQ;IAAEJ;EAAM,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { useRiveProperty } from "./useRiveProperty.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Hook for interacting with enum ViewModel instance properties.
|
|
8
|
+
*
|
|
9
|
+
* @param path - The path to the enum property
|
|
10
|
+
* @param viewModelInstance - The ViewModelInstance containing the enum property to operate on
|
|
11
|
+
* @returns An object with the enum value, a setter function, and an error if the property is not found
|
|
12
|
+
*/
|
|
13
|
+
export function useRiveEnum(path, viewModelInstance) {
|
|
14
|
+
const [value, setValue, error] = useRiveProperty(viewModelInstance, path, {
|
|
15
|
+
getProperty: useCallback((vmi, p) => vmi.enumProperty(p), [])
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
value,
|
|
19
|
+
setValue,
|
|
20
|
+
error
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useRiveEnum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useRiveProperty","useRiveEnum","path","viewModelInstance","value","setValue","error","getProperty","vmi","p","enumProperty"],"sourceRoot":"../../../src","sources":["hooks/useRiveEnum.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAMnC,SAASC,eAAe,QAAQ,sBAAmB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CACzBC,IAAY,EACZC,iBAA4C,EACb;EAC/B,MAAM,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC,GAAGN,eAAe,CAG9CG,iBAAiB,EAAED,IAAI,EAAE;IACzBK,WAAW,EAAER,WAAW,CAAC,CAACS,GAAG,EAAEC,CAAC,KAAKD,GAAG,CAACE,YAAY,CAACD,CAAC,CAAC,EAAE,EAAE;EAC9D,CAAC,CAAC;EACF,OAAO;IAAEL,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState, useEffect, useMemo, useRef } from 'react';
|
|
4
|
+
import { Image } from 'react-native';
|
|
5
|
+
import { RiveFileFactory } from "../core/RiveFile.js";
|
|
6
|
+
import { callDispose } from "../core/callDispose.js";
|
|
7
|
+
function isRiveImage(value) {
|
|
8
|
+
return value !== null && typeof value === 'object' && '__type' in value && value.__type === 'HybridObject<RiveImage>';
|
|
9
|
+
}
|
|
10
|
+
function parsePossibleSources(asset) {
|
|
11
|
+
if (isRiveImage(asset)) {
|
|
12
|
+
return {
|
|
13
|
+
image: asset
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const source = asset.source;
|
|
17
|
+
if (typeof source === 'number') {
|
|
18
|
+
const resolvedAsset = Image.resolveAssetSource(source);
|
|
19
|
+
if (resolvedAsset && resolvedAsset.uri) {
|
|
20
|
+
return {
|
|
21
|
+
sourceAssetId: resolvedAsset.uri
|
|
22
|
+
};
|
|
23
|
+
} else {
|
|
24
|
+
throw new Error('Invalid asset source provided.');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const uri = source.uri;
|
|
28
|
+
if (typeof source === 'object' && uri) {
|
|
29
|
+
return {
|
|
30
|
+
sourceUrl: uri
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const fileName = source.fileName;
|
|
34
|
+
const path = source.path;
|
|
35
|
+
if (typeof source === 'object' && fileName) {
|
|
36
|
+
const result = {
|
|
37
|
+
sourceAsset: fileName
|
|
38
|
+
};
|
|
39
|
+
if (path) {
|
|
40
|
+
result.path = path;
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
throw new Error('Invalid source provided.');
|
|
45
|
+
}
|
|
46
|
+
function transformFilesHandledMapping(mapping) {
|
|
47
|
+
const transformedMapping = {};
|
|
48
|
+
if (mapping === undefined) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
Object.entries(mapping).forEach(([key, asset]) => {
|
|
52
|
+
transformedMapping[key] = parsePossibleSources(asset);
|
|
53
|
+
});
|
|
54
|
+
return transformedMapping;
|
|
55
|
+
}
|
|
56
|
+
export function useRiveFile(input, options = {}) {
|
|
57
|
+
const [result, setResult] = useState({
|
|
58
|
+
riveFile: null,
|
|
59
|
+
isLoading: true,
|
|
60
|
+
error: null
|
|
61
|
+
});
|
|
62
|
+
const referencedAssets = useMemo(() => transformFilesHandledMapping(options.referencedAssets), [options.referencedAssets]);
|
|
63
|
+
const initialReferencedAssets = useRef(referencedAssets);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
let currentFile = null;
|
|
66
|
+
const loadRiveFile = async () => {
|
|
67
|
+
try {
|
|
68
|
+
const currentInput = input;
|
|
69
|
+
if (currentInput == null) {
|
|
70
|
+
setResult({
|
|
71
|
+
riveFile: null,
|
|
72
|
+
isLoading: false,
|
|
73
|
+
error: 'No Rive file input provided.'
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (typeof currentInput === 'string') {
|
|
78
|
+
if (currentInput.startsWith('http://') || currentInput.startsWith('https://')) {
|
|
79
|
+
currentFile = await RiveFileFactory.fromURL(currentInput, initialReferencedAssets.current);
|
|
80
|
+
} else {
|
|
81
|
+
currentFile = await RiveFileFactory.fromResource(currentInput, initialReferencedAssets.current);
|
|
82
|
+
}
|
|
83
|
+
} else if (typeof currentInput === 'number' || 'uri' in currentInput) {
|
|
84
|
+
currentFile = await RiveFileFactory.fromSource(currentInput, initialReferencedAssets.current);
|
|
85
|
+
} else if (currentInput instanceof ArrayBuffer) {
|
|
86
|
+
currentFile = await RiveFileFactory.fromBytes(currentInput, initialReferencedAssets.current);
|
|
87
|
+
}
|
|
88
|
+
setResult({
|
|
89
|
+
riveFile: currentFile,
|
|
90
|
+
isLoading: false,
|
|
91
|
+
error: null
|
|
92
|
+
});
|
|
93
|
+
} catch (err) {
|
|
94
|
+
console.error(err);
|
|
95
|
+
setResult({
|
|
96
|
+
riveFile: null,
|
|
97
|
+
isLoading: false,
|
|
98
|
+
error: err instanceof Error ? err.message || 'Unknown error' : 'Failed to load Rive file'
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
loadRiveFile();
|
|
103
|
+
return () => {
|
|
104
|
+
if (currentFile) {
|
|
105
|
+
callDispose(currentFile);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}, [input]);
|
|
109
|
+
const {
|
|
110
|
+
riveFile
|
|
111
|
+
} = result;
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
if (initialReferencedAssets.current !== referencedAssets) {
|
|
114
|
+
if (riveFile && referencedAssets) {
|
|
115
|
+
riveFile.updateReferencedAssets({
|
|
116
|
+
data: referencedAssets
|
|
117
|
+
});
|
|
118
|
+
initialReferencedAssets.current = referencedAssets;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}, [referencedAssets, riveFile]);
|
|
122
|
+
return {
|
|
123
|
+
riveFile: result.riveFile,
|
|
124
|
+
isLoading: result.isLoading,
|
|
125
|
+
error: result.error
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=useRiveFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useMemo","useRef","Image","RiveFileFactory","callDispose","isRiveImage","value","__type","parsePossibleSources","asset","image","source","resolvedAsset","resolveAssetSource","uri","sourceAssetId","Error","sourceUrl","fileName","path","result","sourceAsset","transformFilesHandledMapping","mapping","transformedMapping","undefined","Object","entries","forEach","key","useRiveFile","input","options","setResult","riveFile","isLoading","error","referencedAssets","initialReferencedAssets","currentFile","loadRiveFile","currentInput","startsWith","fromURL","current","fromResource","fromSource","ArrayBuffer","fromBytes","err","console","message","updateReferencedAssets","data"],"sourceRoot":"../../../src","sources":["hooks/useRiveFile.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRiveProperty } from "./useRiveProperty.js";
|
|
4
|
+
const NUMBER_PROPERTY_OPTIONS = {
|
|
5
|
+
getProperty: (vmi, p) => vmi.numberProperty(p)
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Hook for interacting with number ViewModel instance properties.
|
|
10
|
+
*
|
|
11
|
+
* @param path - The path to the number property
|
|
12
|
+
* @param viewModelInstance - The ViewModelInstance containing the number property to operate on
|
|
13
|
+
* @returns An object with the number value, a setter function, and an error if the property is not found
|
|
14
|
+
*/
|
|
15
|
+
export function useRiveNumber(path, viewModelInstance) {
|
|
16
|
+
const [value, setValue, error] = useRiveProperty(viewModelInstance, path, NUMBER_PROPERTY_OPTIONS);
|
|
17
|
+
return {
|
|
18
|
+
value,
|
|
19
|
+
setValue,
|
|
20
|
+
error
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useRiveNumber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRiveProperty","NUMBER_PROPERTY_OPTIONS","getProperty","vmi","p","numberProperty","useRiveNumber","path","viewModelInstance","value","setValue","error"],"sourceRoot":"../../../src","sources":["hooks/useRiveNumber.ts"],"mappings":";;AAKA,SAASA,eAAe,QAAQ,sBAAmB;AAEnD,MAAMC,uBAAuB,GAAG;EAC9BC,WAAW,EAAEA,CAACC,GAAsB,EAAEC,CAAS,KAAKD,GAAG,CAACE,cAAc,CAACD,CAAC;AAC1E,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,aAAaA,CAC3BC,IAAY,EACZC,iBAA4C,EACb;EAC/B,MAAM,CAACC,KAAK,EAAEC,QAAQ,EAAEC,KAAK,CAAC,GAAGX,eAAe,CAG9CQ,iBAAiB,EAAED,IAAI,EAAEN,uBAAuB,CAAC;EACnD,OAAO;IAAEQ,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC;AACnC","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useState, useMemo } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Base hook for all ViewModelInstance property interactions.
|
|
6
|
+
* This hook provides a unified interface for working with different types of
|
|
7
|
+
* Rive properties (boolean, number, string, enum, trigger) while maintaining
|
|
8
|
+
* type safety and proper cleanup.
|
|
9
|
+
*
|
|
10
|
+
* @template P - The type of the property (e.g., ViewModelBooleanProperty, ViewModelNumberProperty)
|
|
11
|
+
* @template T - The primitive type of the property value (number, boolean, string)
|
|
12
|
+
*
|
|
13
|
+
* @param viewModelInstance - The source ViewModelInstance
|
|
14
|
+
* @param path - Property path in the ViewModelInstance
|
|
15
|
+
* @param options - Configuration for working with the property
|
|
16
|
+
* @returns A tuple containing [value, setter, error, property]
|
|
17
|
+
*/
|
|
18
|
+
export function useRiveProperty(viewModelInstance, path, options) {
|
|
19
|
+
const [value, setValue] = useState(undefined);
|
|
20
|
+
const [error, setError] = useState(null);
|
|
21
|
+
|
|
22
|
+
// Clear error when path or instance changes
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
setError(null);
|
|
25
|
+
}, [path, viewModelInstance]);
|
|
26
|
+
|
|
27
|
+
// Get the property
|
|
28
|
+
const property = useMemo(() => {
|
|
29
|
+
if (!viewModelInstance) return;
|
|
30
|
+
return options.getProperty(viewModelInstance, path);
|
|
31
|
+
}, [options, viewModelInstance, path]);
|
|
32
|
+
|
|
33
|
+
// Set error if property is not found
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (viewModelInstance && !property) {
|
|
36
|
+
setError(new Error(`Property "${path}" not found in the ViewModel instance`));
|
|
37
|
+
}
|
|
38
|
+
}, [viewModelInstance, property, path]);
|
|
39
|
+
|
|
40
|
+
// Add listener for changes to the property
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!property) return;
|
|
43
|
+
|
|
44
|
+
// If an override callback is provided, use it.
|
|
45
|
+
// Otherwise, use the default callback.
|
|
46
|
+
if (options.onPropertyEventOverride) {
|
|
47
|
+
property.addListener(options.onPropertyEventOverride);
|
|
48
|
+
} else {
|
|
49
|
+
property.addListener(newValue => {
|
|
50
|
+
setValue(newValue);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Cleanup: Remove listeners and dispose of the property
|
|
55
|
+
// This ensures proper cleanup of event listeners and resources
|
|
56
|
+
return () => {
|
|
57
|
+
property.removeListeners();
|
|
58
|
+
property.dispose();
|
|
59
|
+
};
|
|
60
|
+
}, [options, property]);
|
|
61
|
+
|
|
62
|
+
// Set the value of the property
|
|
63
|
+
const setPropertyValue = useCallback(newValue => {
|
|
64
|
+
if (!property) {
|
|
65
|
+
setError(new Error(`Cannot set value for property "${path}" because it was not found. Your view model instance may be undefined, or the path may be incorrect.`));
|
|
66
|
+
} else {
|
|
67
|
+
property.value = newValue;
|
|
68
|
+
}
|
|
69
|
+
}, [property, path]);
|
|
70
|
+
return [value, setPropertyValue, error, property];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* This interface extends the ViewModelProperty and ObservableProperty interfaces.
|
|
75
|
+
* It adds the addListener and value as known properties.
|
|
76
|
+
*
|
|
77
|
+
* @template T - The primitive type of the property value (number, boolean, string)
|
|
78
|
+
*/
|
|
79
|
+
//# sourceMappingURL=useRiveProperty.js.map
|