@rive-app/react-native 0.2.6 → 0.2.8

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 (56) hide show
  1. package/RNRive.podspec +22 -0
  2. package/android/src/main/java/com/margelo/nitro/rive/{Rive.kt → HybridDefaultFallbackFont.kt} +1 -5
  3. package/android/src/main/java/com/margelo/nitro/rive/HybridFallbackFont.kt +10 -0
  4. package/android/src/main/java/com/margelo/nitro/rive/HybridRiveFontConfig.kt +136 -0
  5. package/ios/HybridDefaultFallbackFont.swift +3 -0
  6. package/ios/HybridFallbackFont.swift +10 -0
  7. package/ios/HybridRiveFontConfig.swift +109 -0
  8. package/lib/module/core/RiveFonts.js +72 -0
  9. package/lib/module/core/RiveFonts.js.map +1 -0
  10. package/lib/module/index.js +1 -0
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/specs/RiveFontConfig.nitro.js +4 -0
  13. package/lib/module/specs/{Rive.nitro.js.map → RiveFontConfig.nitro.js.map} +1 -1
  14. package/lib/typescript/src/core/RiveFonts.d.ts +23 -0
  15. package/lib/typescript/src/core/RiveFonts.d.ts.map +1 -0
  16. package/lib/typescript/src/index.d.ts +2 -0
  17. package/lib/typescript/src/index.d.ts.map +1 -1
  18. package/lib/typescript/src/specs/RiveFontConfig.nitro.d.ts +20 -0
  19. package/lib/typescript/src/specs/RiveFontConfig.nitro.d.ts.map +1 -0
  20. package/nitrogen/generated/android/c++/JHybridFallbackFontSpec.cpp +55 -0
  21. package/nitrogen/generated/android/c++/{JHybridRiveSpec.hpp → JHybridFallbackFontSpec.hpp} +11 -11
  22. package/nitrogen/generated/android/c++/JHybridRiveFontConfigSpec.cpp +143 -0
  23. package/nitrogen/generated/android/c++/JHybridRiveFontConfigSpec.hpp +73 -0
  24. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/{HybridRiveSpec.kt → HybridFallbackFontSpec.kt} +7 -9
  25. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rive/HybridRiveFontConfigSpec.kt +87 -0
  26. package/nitrogen/generated/android/rive+autolinking.cmake +4 -2
  27. package/nitrogen/generated/android/riveOnLoad.cpp +6 -4
  28. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.cpp +50 -25
  29. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Bridge.hpp +149 -69
  30. package/nitrogen/generated/ios/RNRive-Swift-Cxx-Umbrella.hpp +10 -5
  31. package/nitrogen/generated/ios/RNRiveAutolinking.mm +3 -3
  32. package/nitrogen/generated/ios/RNRiveAutolinking.swift +5 -5
  33. package/nitrogen/generated/ios/c++/{HybridRiveSpecSwift.cpp → HybridFallbackFontSpecSwift.cpp} +2 -2
  34. package/nitrogen/generated/ios/c++/{HybridRiveSpecSwift.hpp → HybridFallbackFontSpecSwift.hpp} +14 -21
  35. package/nitrogen/generated/ios/c++/HybridRiveFontConfigSpecSwift.cpp +11 -0
  36. package/nitrogen/generated/ios/c++/HybridRiveFontConfigSpecSwift.hpp +145 -0
  37. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridFallbackFontSpec_.swift +51 -0
  38. package/nitrogen/generated/ios/swift/HybridFallbackFontSpec.swift +56 -0
  39. package/nitrogen/generated/ios/swift/{HybridRiveSpec_cxx.swift → HybridFallbackFontSpec_cxx.swift} +20 -30
  40. package/nitrogen/generated/ios/swift/HybridRiveFontConfigSpec.swift +63 -0
  41. package/nitrogen/generated/ios/swift/HybridRiveFontConfigSpec_cxx.swift +262 -0
  42. package/nitrogen/generated/shared/c++/{HybridRiveSpec.cpp → HybridFallbackFontSpec.cpp} +4 -4
  43. package/nitrogen/generated/shared/c++/{HybridRiveSpec.hpp → HybridFallbackFontSpec.hpp} +10 -10
  44. package/nitrogen/generated/shared/c++/HybridRiveFontConfigSpec.cpp +28 -0
  45. package/nitrogen/generated/shared/c++/HybridRiveFontConfigSpec.hpp +75 -0
  46. package/package.json +1 -1
  47. package/src/core/RiveFonts.ts +95 -0
  48. package/src/index.tsx +7 -0
  49. package/src/specs/RiveFontConfig.nitro.ts +16 -0
  50. package/ios/Rive.swift +0 -5
  51. package/lib/module/specs/Rive.nitro.js +0 -4
  52. package/lib/typescript/src/specs/Rive.nitro.d.ts +0 -8
  53. package/lib/typescript/src/specs/Rive.nitro.d.ts.map +0 -1
  54. package/nitrogen/generated/android/c++/JHybridRiveSpec.cpp +0 -59
  55. package/nitrogen/generated/ios/swift/HybridRiveSpec.swift +0 -56
  56. package/src/specs/Rive.nitro.ts +0 -6
package/RNRive.podspec CHANGED
@@ -30,6 +30,28 @@ end
30
30
 
31
31
  Pod::UI.puts "@rive-app/react-native: Rive iOS SDK #{rive_ios_version}"
32
32
 
33
+ # Xcode 26 workaround: strip .Swift Clang submodule from RiveRuntime's prebuilt
34
+ # modulemaps to prevent ODR conflicts with locally-compiled Swift C++ interop.
35
+ # See: https://github.com/rive-app/rive-nitro-react-native/issues/173
36
+ if defined?(Pod::Installer)
37
+ module RiveXcode26SwiftModuleFix
38
+ def run_podfile_pre_install_hooks
39
+ rive_dir = File.join(sandbox.root.to_s, 'RiveRuntime')
40
+ if Dir.exist?(rive_dir)
41
+ Dir.glob(File.join(rive_dir, '**', 'module.modulemap')).each do |path|
42
+ content = File.read(path)
43
+ next unless content.include?('RiveRuntime.Swift')
44
+ cleaned = content.gsub(/\nmodule RiveRuntime\.Swift \{[^}]*\}\n?/m, "\n")
45
+ File.write(path, cleaned)
46
+ end
47
+ end
48
+ super
49
+ end
50
+ end
51
+
52
+ Pod::Installer.prepend(RiveXcode26SwiftModuleFix)
53
+ end
54
+
33
55
  Pod::Spec.new do |s|
34
56
  s.name = "RNRive"
35
57
  s.version = package["version"]
@@ -5,8 +5,4 @@ import com.facebook.proguard.annotations.DoNotStrip
5
5
 
6
6
  @Keep
7
7
  @DoNotStrip
8
- class Rive : HybridRiveSpec() {
9
- override fun multiply(a: Double, b: Double): Double {
10
- return a * b
11
- }
12
- }
8
+ class HybridDefaultFallbackFont : HybridFallbackFontSpec()
@@ -0,0 +1,10 @@
1
+ package com.margelo.nitro.rive
2
+
3
+ import androidx.annotation.Keep
4
+ import com.facebook.proguard.annotations.DoNotStrip
5
+
6
+ @Keep
7
+ @DoNotStrip
8
+ class HybridFallbackFont(
9
+ val fontBytes: ByteArray
10
+ ) : HybridFallbackFontSpec()
@@ -0,0 +1,136 @@
1
+ package com.margelo.nitro.rive
2
+
3
+ import android.util.Log
4
+ import androidx.annotation.Keep
5
+ import app.rive.runtime.kotlin.fonts.FontFallbackStrategy
6
+ import app.rive.runtime.kotlin.fonts.FontHelper
7
+ import app.rive.runtime.kotlin.fonts.Fonts
8
+ import com.facebook.proguard.annotations.DoNotStrip
9
+ import com.margelo.nitro.NitroModules
10
+ import com.margelo.nitro.core.ArrayBuffer
11
+ import com.margelo.nitro.core.Promise
12
+ import java.net.URL
13
+ import kotlinx.coroutines.Dispatchers
14
+ import kotlinx.coroutines.withContext
15
+
16
+ @Keep
17
+ @DoNotStrip
18
+ class HybridRiveFontConfig : HybridRiveFontConfigSpec() {
19
+ companion object {
20
+ private const val TAG = "RiveFonts"
21
+ private const val DEFAULT_WEIGHT = 0
22
+ private val fontsByWeight: MutableMap<Int, List<HybridFallbackFontSpec>> =
23
+ java.util.Collections.synchronizedMap(mutableMapOf())
24
+
25
+ private fun resetFontCache() {
26
+ try {
27
+ FontFallbackStrategy.cppResetFontCache()
28
+ } catch (e: Exception) {
29
+ Log.e(TAG, "Failed to reset font cache: ${e.message}")
30
+ }
31
+ }
32
+ }
33
+
34
+ override fun loadFontFromURL(url: String): Promise<HybridFallbackFontSpec> {
35
+ return Promise.async {
36
+ val fontBytes = withContext(Dispatchers.IO) {
37
+ URL(url).readBytes()
38
+ }
39
+ HybridFallbackFont(fontBytes)
40
+ }
41
+ }
42
+
43
+ override fun loadFontFromResource(resource: String): HybridFallbackFontSpec {
44
+ val context = NitroModules.applicationContext
45
+ ?: throw Error("Application context not available")
46
+
47
+ val resName = resource.substringBeforeLast(".")
48
+
49
+ val rawId = context.resources.getIdentifier(resName, "raw", context.packageName)
50
+ if (rawId != 0) {
51
+ val fontBytes = context.resources.openRawResource(rawId).use { it.readBytes() }
52
+ return HybridFallbackFont(fontBytes)
53
+ }
54
+
55
+ val fontId = context.resources.getIdentifier(resName, "font", context.packageName)
56
+ if (fontId != 0) {
57
+ val fontBytes = context.resources.openRawResource(fontId).use { it.readBytes() }
58
+ return HybridFallbackFont(fontBytes)
59
+ }
60
+
61
+ val assetPaths = listOf("fonts/$resource", resource)
62
+ for (assetPath in assetPaths) {
63
+ try {
64
+ val fontBytes = context.assets.open(assetPath).use { it.readBytes() }
65
+ return HybridFallbackFont(fontBytes)
66
+ } catch (_: Exception) {
67
+ }
68
+ }
69
+
70
+ throw Error("Font resource not found: $resource (checked res/raw, res/font, assets/fonts)")
71
+ }
72
+
73
+ override fun loadFontFromBytes(bytes: ArrayBuffer): HybridFallbackFontSpec {
74
+ val buffer = bytes.getBuffer(false)
75
+ val byteArray = ByteArray(buffer.remaining())
76
+ buffer.get(byteArray)
77
+ return HybridFallbackFont(byteArray)
78
+ }
79
+
80
+ override fun loadFontByName(name: String): HybridFallbackFontSpec {
81
+ val fonts = FontHelper.getFallbackFonts(Fonts.FontOpts(familyName = name))
82
+ if (fonts.isEmpty()) {
83
+ throw Error("System font not found: $name")
84
+ }
85
+ val fontBytes = FontHelper.getFontBytes(fonts.first())
86
+ ?: throw Error("Could not read font bytes for: $name")
87
+ return HybridFallbackFont(fontBytes)
88
+ }
89
+
90
+ override fun getSystemDefaultFont(): HybridFallbackFontSpec {
91
+ return HybridDefaultFallbackFont()
92
+ }
93
+
94
+ override fun setFontsForWeight(weight: Double, fonts: Array<HybridFallbackFontSpec>) {
95
+ val key = weight.toInt()
96
+ synchronized(fontsByWeight) {
97
+ fontsByWeight[key] = fonts.toList()
98
+ }
99
+ }
100
+
101
+ override fun applyFallbackFonts(): Promise<Unit> {
102
+ return Promise.async {
103
+ FontFallbackStrategy.stylePicker = object : FontFallbackStrategy {
104
+ override fun getFont(weight: Fonts.Weight): List<ByteArray> {
105
+ val requestedWeight = weight.weight
106
+ val specs = synchronized(fontsByWeight) {
107
+ fontsByWeight[requestedWeight] ?: fontsByWeight[DEFAULT_WEIGHT] ?: emptyList()
108
+ }
109
+ return specs.mapNotNull { spec ->
110
+ when (spec) {
111
+ is HybridDefaultFallbackFont ->
112
+ FontHelper.getFallbackFontBytes(Fonts.FontOpts(weight = weight))
113
+ is HybridFallbackFont ->
114
+ spec.fontBytes
115
+ else -> {
116
+ Log.e(TAG, "Unknown fallback font spec type: ${spec::class.simpleName}")
117
+ null
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ resetFontCache()
124
+ }
125
+ }
126
+
127
+ override fun clearFallbackFonts(): Promise<Unit> {
128
+ return Promise.async {
129
+ synchronized(fontsByWeight) {
130
+ fontsByWeight.clear()
131
+ }
132
+ FontFallbackStrategy.stylePicker = null
133
+ resetFontCache()
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,3 @@
1
+ import NitroModules
2
+
3
+ class HybridDefaultFallbackFont: HybridFallbackFontSpec {}
@@ -0,0 +1,10 @@
1
+ import NitroModules
2
+
3
+ class HybridFallbackFont: HybridFallbackFontSpec {
4
+ let font: UIFont
5
+
6
+ init(font: UIFont) {
7
+ self.font = font
8
+ super.init()
9
+ }
10
+ }
@@ -0,0 +1,109 @@
1
+ import CoreText
2
+ import NitroModules
3
+ import RiveRuntime
4
+
5
+ class HybridRiveFontConfig: HybridRiveFontConfigSpec {
6
+ private static let defaultWeight = 0
7
+ private static var fontsByWeight: [Int: [any HybridFallbackFontSpec]] = [:]
8
+
9
+ func loadFontFromURL(url: String) throws -> Promise<(any HybridFallbackFontSpec)> {
10
+ return Promise.async {
11
+ guard let parsedURL = URL(string: url) else {
12
+ throw RuntimeError.error(withMessage: "Invalid font URL: \(url)")
13
+ }
14
+ let (data, _) = try await URLSession.shared.data(from: parsedURL)
15
+ let font = try Self.createUIFont(from: data)
16
+ return HybridFallbackFont(font: font)
17
+ }
18
+ }
19
+
20
+ func loadFontFromResource(resource: String) throws -> (any HybridFallbackFontSpec) {
21
+ let nsResource = resource as NSString
22
+ let name = nsResource.deletingPathExtension
23
+ let ext = nsResource.pathExtension.isEmpty ? nil : nsResource.pathExtension
24
+
25
+ guard let path = Bundle.main.path(forResource: name, ofType: ext) else {
26
+ throw RuntimeError.error(withMessage: "Font resource not found: \(resource)")
27
+ }
28
+ let data = try Data(contentsOf: URL(fileURLWithPath: path))
29
+ let font = try Self.createUIFont(from: data)
30
+ return HybridFallbackFont(font: font)
31
+ }
32
+
33
+ func loadFontFromBytes(bytes: ArrayBuffer) throws -> (any HybridFallbackFontSpec) {
34
+ let data = bytes.toData(copyIfNeeded: true)
35
+ let font = try Self.createUIFont(from: data)
36
+ return HybridFallbackFont(font: font)
37
+ }
38
+
39
+ func loadFontByName(name: String) throws -> (any HybridFallbackFontSpec) {
40
+ guard let font = UIFont(name: name, size: UIFont.systemFontSize) else {
41
+ throw RuntimeError.error(withMessage: "System font not found: \(name)")
42
+ }
43
+ return HybridFallbackFont(font: font)
44
+ }
45
+
46
+ func getSystemDefaultFont() throws -> (any HybridFallbackFontSpec) {
47
+ return HybridDefaultFallbackFont()
48
+ }
49
+
50
+ func setFontsForWeight(weight: Double, fonts: [(any HybridFallbackFontSpec)]) throws {
51
+ let key = Int(weight)
52
+ Self.fontsByWeight[key] = fonts
53
+ }
54
+
55
+ func applyFallbackFonts() throws -> Promise<Void> {
56
+ return Promise.async {
57
+ _ = RiveFont.self
58
+ RiveFont.fallbackFontsCallback = { weight in
59
+ let requestedWeight = Int(weight.rawWeight)
60
+ let specs = Self.fontsByWeight[requestedWeight] ?? Self.fontsByWeight[Self.defaultWeight] ?? []
61
+ return specs.compactMap { spec in
62
+ if spec is HybridDefaultFallbackFont {
63
+ return RiveFallbackFontDescriptor()
64
+ } else if let fallbackFont = spec as? HybridFallbackFont {
65
+ return fallbackFont.font
66
+ } else {
67
+ print("[RiveFonts] Unknown fallback font spec type: \(type(of: spec))")
68
+ return nil
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+ func clearFallbackFonts() throws -> Promise<Void> {
76
+ return Promise.async {
77
+ Self.fontsByWeight.removeAll()
78
+ RiveFont.fallbackFontsCallback = { _ in [RiveFallbackFontDescriptor()] }
79
+ RiveFont.fallbackFonts = [RiveFallbackFontDescriptor()]
80
+ }
81
+ }
82
+
83
+ private static func createUIFont(from data: Data) throws -> UIFont {
84
+ guard let provider = CGDataProvider(data: data as CFData),
85
+ let cgFont = CGFont(provider)
86
+ else {
87
+ throw RuntimeError.error(withMessage: "Failed to decode font data")
88
+ }
89
+
90
+ var error: Unmanaged<CFError>?
91
+ if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
92
+ let cfError = error?.takeRetainedValue()
93
+ let domain = cfError.map { CFErrorGetDomain($0) as String } ?? ""
94
+ if domain != kCTFontManagerErrorDomain as String {
95
+ throw RuntimeError.error(
96
+ withMessage: "Failed to register font: \(cfError?.localizedDescription ?? "unknown error")"
97
+ )
98
+ }
99
+ }
100
+
101
+ guard let fontName = cgFont.postScriptName as String? else {
102
+ throw RuntimeError.error(withMessage: "Failed to get font name from data")
103
+ }
104
+ guard let font = UIFont(name: fontName, size: UIFont.systemFontSize) else {
105
+ throw RuntimeError.error(withMessage: "Failed to create UIFont for: \(fontName)")
106
+ }
107
+ return font
108
+ }
109
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ import { NitroModules } from 'react-native-nitro-modules';
4
+ import { Image } from 'react-native';
5
+ const RiveFontConfigInternal = NitroModules.createHybridObject('RiveFontConfig');
6
+
7
+ /**
8
+ * A font source that can be:
9
+ * - `number` — a Metro `require('./Font.ttf')` asset ID
10
+ * - `{ uri: string }` — a URI object (http/https URL, file:// path, or resource name)
11
+ * - `string` — a native resource name (e.g. "kanit_regular.ttf") or URL
12
+ * - `{ name: string }` — a system font name (e.g. "Arial", "sans-serif")
13
+ * - `ArrayBuffer` — raw font bytes (TTF/OTF)
14
+ */
15
+
16
+ const DEFAULT_WEIGHT = 0;
17
+ function resolveWeight(key) {
18
+ return key === 'default' ? DEFAULT_WEIGHT : Number(key);
19
+ }
20
+ export let RiveFonts;
21
+ (function (_RiveFonts) {
22
+ async function loadFont(source) {
23
+ if (source instanceof ArrayBuffer) {
24
+ return RiveFontConfigInternal.loadFontFromBytes(source);
25
+ }
26
+ if (typeof source === 'number') {
27
+ const resolved = Image.resolveAssetSource(source);
28
+ if (!resolved?.uri) {
29
+ throw new Error(`Invalid font asset: could not resolve require() ID ${source}. Ensure 'ttf' is in metro.config.js assetExts.`);
30
+ }
31
+ return loadFontByURI(resolved.uri);
32
+ }
33
+ if (typeof source === 'object' && 'name' in source) {
34
+ return RiveFontConfigInternal.loadFontByName(source.name);
35
+ }
36
+ if (typeof source === 'object' && 'uri' in source) {
37
+ return loadFontByURI(source.uri);
38
+ }
39
+ if (typeof source === 'string') {
40
+ if (/^https?:\/\//.test(source) || /^file:\/\//.test(source)) {
41
+ return RiveFontConfigInternal.loadFontFromURL(source);
42
+ }
43
+ return RiveFontConfigInternal.loadFontFromResource(source);
44
+ }
45
+ throw new Error(`Invalid font source: ${String(source)}`);
46
+ }
47
+ _RiveFonts.loadFont = loadFont;
48
+ function systemFallback() {
49
+ return RiveFontConfigInternal.getSystemDefaultFont();
50
+ }
51
+ _RiveFonts.systemFallback = systemFallback;
52
+ async function setFallbackFonts(fontsByWeight) {
53
+ for (const [key, fonts] of Object.entries(fontsByWeight)) {
54
+ if (fonts) {
55
+ RiveFontConfigInternal.setFontsForWeight(resolveWeight(key), fonts);
56
+ }
57
+ }
58
+ await RiveFontConfigInternal.applyFallbackFonts();
59
+ }
60
+ _RiveFonts.setFallbackFonts = setFallbackFonts;
61
+ async function clearFallbackFonts() {
62
+ return RiveFontConfigInternal.clearFallbackFonts();
63
+ }
64
+ _RiveFonts.clearFallbackFonts = clearFallbackFonts;
65
+ })(RiveFonts || (RiveFonts = {}));
66
+ function loadFontByURI(uri) {
67
+ if (/^https?:\/\//.test(uri) || /^file:\/\//.test(uri)) {
68
+ return RiveFontConfigInternal.loadFontFromURL(uri);
69
+ }
70
+ return RiveFontConfigInternal.loadFontFromResource(uri);
71
+ }
72
+ //# sourceMappingURL=RiveFonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NitroModules","Image","RiveFontConfigInternal","createHybridObject","DEFAULT_WEIGHT","resolveWeight","key","Number","RiveFonts","_RiveFonts","loadFont","source","ArrayBuffer","loadFontFromBytes","resolved","resolveAssetSource","uri","Error","loadFontByURI","loadFontByName","name","test","loadFontFromURL","loadFontFromResource","String","systemFallback","getSystemDefaultFont","setFallbackFonts","fontsByWeight","fonts","Object","entries","setFontsForWeight","applyFallbackFonts","clearFallbackFonts"],"sourceRoot":"../../../src","sources":["core/RiveFonts.ts"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ export { Fit } from "./core/Fit.js";
12
12
  export { Alignment } from "./core/Alignment.js";
13
13
  export { RiveFileFactory } from "./core/RiveFile.js";
14
14
  export { RiveImages } from "./core/RiveImages.js";
15
+ export { RiveFonts } from "./core/RiveFonts.js";
15
16
  export { RiveColor } from "./core/RiveColor.js";
16
17
  export { RiveEventType } from "./core/Events.js";
17
18
  export { RiveErrorType } from "./core/Errors.js";
@@ -1 +1 @@
1
- {"version":3,"names":["DataBindMode","DataBindByName","constructor","name","byName","NitroRiveView","RiveView","Fit","Alignment","RiveFileFactory","RiveImages","RiveColor","RiveEventType","RiveErrorType","ArtboardByIndex","ArtboardByName","useRive","useRiveNumber","useRiveString","useRiveBoolean","useRiveEnum","useRiveColor","useRiveTrigger","useRiveList","useViewModelInstance","useRiveFile","RiveRuntime"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAIEA,YAAY,QAEP,2BAAwB;AAE/B,OAAO,MAAMC,cAAc,CAAoC;EAE7DC,WAAWA,CAACC,IAAY,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,IAAI;EACpB;AACF;AAEA,SAASE,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,QAAQ,QAA4B,oBAAiB;AAkB9D,SAASC,GAAG,QAAQ,eAAY;AAChC,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,eAAe,QAAQ,oBAAiB;AACjD,SAASC,UAAU,QAAQ,sBAAmB;AAE9C,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAASC,eAAe,EAAEC,cAAc,QAAQ,uBAAoB;AACpE,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,YAAY,QAAQ,yBAAsB;AACnD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,oBAAoB,QAAQ,iCAA8B;AACnE,SAASC,WAAW,QAAQ,wBAAqB;AAGjD,SAASC,WAAW,QAAQ,uBAAoB;AAChD,SAAS1B,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["DataBindMode","DataBindByName","constructor","name","byName","NitroRiveView","RiveView","Fit","Alignment","RiveFileFactory","RiveImages","RiveFonts","RiveColor","RiveEventType","RiveErrorType","ArtboardByIndex","ArtboardByName","useRive","useRiveNumber","useRiveString","useRiveBoolean","useRiveEnum","useRiveColor","useRiveTrigger","useRiveList","useViewModelInstance","useRiveFile","RiveRuntime"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AACA,SAIEA,YAAY,QAEP,2BAAwB;AAE/B,OAAO,MAAMC,cAAc,CAAoC;EAE7DC,WAAWA,CAACC,IAAY,EAAE;IACxB,IAAI,CAACC,MAAM,GAAGD,IAAI;EACpB;AACF;AAEA,SAASE,aAAa,QAAQ,kCAA+B;AAE7D,SAASC,QAAQ,QAA4B,oBAAiB;AAkB9D,SAASC,GAAG,QAAQ,eAAY;AAChC,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAASC,eAAe,QAAQ,oBAAiB;AACjD,SAASC,UAAU,QAAQ,sBAAmB;AAE9C,SACEC,SAAS,QAIJ,qBAAkB;AAEzB,SAASC,SAAS,QAAQ,qBAAkB;AAC5C,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAAyBC,aAAa,QAAQ,kBAAe;AAC7D,SAASC,eAAe,EAAEC,cAAc,QAAQ,uBAAoB;AACpE,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,aAAa,QAAQ,0BAAuB;AACrD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,YAAY,QAAQ,yBAAsB;AACnD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,oBAAoB,QAAQ,iCAA8B;AACnE,SAASC,WAAW,QAAQ,wBAAqB;AAGjD,SAASC,WAAW,QAAQ,uBAAoB;AAChD,SAAS3B,YAAY","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=RiveFontConfig.nitro.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/Rive.nitro.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["specs/RiveFontConfig.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import type { FallbackFont } from '../specs/RiveFontConfig.nitro';
2
+ /**
3
+ * A font source that can be:
4
+ * - `number` — a Metro `require('./Font.ttf')` asset ID
5
+ * - `{ uri: string }` — a URI object (http/https URL, file:// path, or resource name)
6
+ * - `string` — a native resource name (e.g. "kanit_regular.ttf") or URL
7
+ * - `{ name: string }` — a system font name (e.g. "Arial", "sans-serif")
8
+ * - `ArrayBuffer` — raw font bytes (TTF/OTF)
9
+ */
10
+ export type FontSource = number | {
11
+ uri: string;
12
+ } | {
13
+ name: string;
14
+ } | string | ArrayBuffer;
15
+ export type FontWeight = number | 'default';
16
+ export type FallbackFontMap = Partial<Record<FontWeight, FallbackFont[]>>;
17
+ export declare namespace RiveFonts {
18
+ function loadFont(source: FontSource): Promise<FallbackFont>;
19
+ function systemFallback(): FallbackFont;
20
+ function setFallbackFonts(fontsByWeight: FallbackFontMap): Promise<void>;
21
+ function clearFallbackFonts(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=RiveFonts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiveFonts.d.ts","sourceRoot":"","sources":["../../../../src/core/RiveFonts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,YAAY,EACb,MAAM,+BAA+B,CAAC;AAKvC;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAQ1E,yBAAiB,SAAS,CAAC;IACzB,SAAsB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CA+BxE;IAED,SAAgB,cAAc,IAAI,YAAY,CAE7C;IAED,SAAsB,gBAAgB,CACpC,aAAa,EAAE,eAAe,GAC7B,OAAO,CAAC,IAAI,CAAC,CAOf;IAED,SAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExD;CACF"}
@@ -16,6 +16,8 @@ export { Alignment } from './core/Alignment';
16
16
  export { RiveFileFactory } from './core/RiveFile';
17
17
  export { RiveImages } from './core/RiveImages';
18
18
  export type { RiveImage } from './specs/RiveImage.nitro';
19
+ export { RiveFonts, type FontSource, type FontWeight, type FallbackFontMap, } from './core/RiveFonts';
20
+ export type { FallbackFont } from './specs/RiveFontConfig.nitro';
19
21
  export { RiveColor } from './core/RiveColor';
20
22
  export { type RiveEvent, RiveEventType } from './core/Events';
21
23
  export { type RiveError, RiveErrorType } from './core/Errors';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,IAAI,mBAAmB,EACzC,YAAY,EACZ,KAAK,cAAc,IAAI,uBAAuB,EAC/C,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,MAAM,EAAE,MAAM,CAAC;gBACH,IAAI,EAAE,MAAM;CAGzB;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,IAAI,mBAAmB,EACzC,YAAY,EACZ,KAAK,cAAc,IAAI,uBAAuB,EAC/C,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,MAAM,EAAE,MAAM,CAAC;gBACH,IAAI,EAAE,MAAM;CAGzB;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules';
2
+ export interface FallbackFont extends HybridObject<{
3
+ ios: 'swift';
4
+ android: 'kotlin';
5
+ }> {
6
+ }
7
+ export interface RiveFontConfig extends HybridObject<{
8
+ ios: 'swift';
9
+ android: 'kotlin';
10
+ }> {
11
+ loadFontFromURL(url: string): Promise<FallbackFont>;
12
+ loadFontFromResource(resource: string): FallbackFont;
13
+ loadFontFromBytes(bytes: ArrayBuffer): FallbackFont;
14
+ loadFontByName(name: string): FallbackFont;
15
+ getSystemDefaultFont(): FallbackFont;
16
+ setFontsForWeight(weight: number, fonts: FallbackFont[]): void;
17
+ applyFallbackFonts(): Promise<void>;
18
+ clearFallbackFonts(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=RiveFontConfig.nitro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiveFontConfig.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/RiveFontConfig.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,YACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;CAAG;AAE9D,MAAM,WAAW,cACf,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACzD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC;IACrD,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAAC;IACpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3C,oBAAoB,IAAI,YAAY,CAAC;IACrC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/D,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
@@ -0,0 +1,55 @@
1
+ ///
2
+ /// JHybridFallbackFontSpec.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "JHybridFallbackFontSpec.hpp"
9
+
10
+
11
+
12
+
13
+
14
+ namespace margelo::nitro::rive {
15
+
16
+ jni::local_ref<JHybridFallbackFontSpec::jhybriddata> JHybridFallbackFontSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
17
+ return makeCxxInstance(jThis);
18
+ }
19
+
20
+ void JHybridFallbackFontSpec::registerNatives() {
21
+ registerHybrid({
22
+ makeNativeMethod("initHybrid", JHybridFallbackFontSpec::initHybrid),
23
+ });
24
+ }
25
+
26
+ size_t JHybridFallbackFontSpec::getExternalMemorySize() noexcept {
27
+ static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
28
+ return method(_javaPart);
29
+ }
30
+
31
+ bool JHybridFallbackFontSpec::equals(const std::shared_ptr<HybridObject>& other) {
32
+ if (auto otherCast = std::dynamic_pointer_cast<JHybridFallbackFontSpec>(other)) {
33
+ return _javaPart == otherCast->_javaPart;
34
+ }
35
+ return false;
36
+ }
37
+
38
+ void JHybridFallbackFontSpec::dispose() noexcept {
39
+ static const auto method = javaClassStatic()->getMethod<void()>("dispose");
40
+ method(_javaPart);
41
+ }
42
+
43
+ std::string JHybridFallbackFontSpec::toString() {
44
+ static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
45
+ auto javaString = method(_javaPart);
46
+ return javaString->toStdString();
47
+ }
48
+
49
+ // Properties
50
+
51
+
52
+ // Methods
53
+
54
+
55
+ } // namespace margelo::nitro::rive
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// HybridRiveSpec.hpp
2
+ /// HybridFallbackFontSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © Marc Rousavy @ Margelo
@@ -9,7 +9,7 @@
9
9
 
10
10
  #include <NitroModules/JHybridObject.hpp>
11
11
  #include <fbjni/fbjni.h>
12
- #include "HybridRiveSpec.hpp"
12
+ #include "HybridFallbackFontSpec.hpp"
13
13
 
14
14
 
15
15
 
@@ -18,22 +18,22 @@ namespace margelo::nitro::rive {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridRiveSpec: public jni::HybridClass<JHybridRiveSpec, JHybridObject>,
22
- public virtual HybridRiveSpec {
21
+ class JHybridFallbackFontSpec: public jni::HybridClass<JHybridFallbackFontSpec, JHybridObject>,
22
+ public virtual HybridFallbackFontSpec {
23
23
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/rive/HybridRiveSpec;";
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/rive/HybridFallbackFontSpec;";
25
25
  static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
26
  static void registerNatives();
27
27
 
28
28
  protected:
29
29
  // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridRiveSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridRiveSpec::TAG),
30
+ explicit JHybridFallbackFontSpec(jni::alias_ref<jhybridobject> jThis) :
31
+ HybridObject(HybridFallbackFontSpec::TAG),
32
32
  HybridBase(jThis),
33
33
  _javaPart(jni::make_global(jThis)) {}
34
34
 
35
35
  public:
36
- ~JHybridRiveSpec() override {
36
+ ~JHybridFallbackFontSpec() override {
37
37
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
38
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
39
  }
@@ -45,7 +45,7 @@ namespace margelo::nitro::rive {
45
45
  std::string toString() override;
46
46
 
47
47
  public:
48
- inline const jni::global_ref<JHybridRiveSpec::javaobject>& getJavaPart() const noexcept {
48
+ inline const jni::global_ref<JHybridFallbackFontSpec::javaobject>& getJavaPart() const noexcept {
49
49
  return _javaPart;
50
50
  }
51
51
 
@@ -55,12 +55,12 @@ namespace margelo::nitro::rive {
55
55
 
56
56
  public:
57
57
  // Methods
58
- double multiply(double a, double b) override;
58
+
59
59
 
60
60
  private:
61
61
  friend HybridBase;
62
62
  using HybridBase::HybridBase;
63
- jni::global_ref<JHybridRiveSpec::javaobject> _javaPart;
63
+ jni::global_ref<JHybridFallbackFontSpec::javaobject> _javaPart;
64
64
  };
65
65
 
66
66
  } // namespace margelo::nitro::rive