@react-navigation/native 7.1.28 → 8.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/ReactNavigation.podspec +20 -0
  2. package/android/build/.transforms/586a73aab4c351d3f13dc604ca6964e8/results.bin +1 -0
  3. package/android/build/.transforms/586a73aab4c351d3f13dc604ca6964e8/transformed/classes/classes_dex/classes.dex +0 -0
  4. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/results.bin +1 -0
  5. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.dex +0 -0
  6. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.dex +0 -0
  7. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.dex +0 -0
  8. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.dex +0 -0
  9. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.dex +0 -0
  10. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/BuildConfig.dex +0 -0
  11. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule$Companion.dex +0 -0
  12. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule$WhenMappings.dex +0 -0
  13. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule$getImageSource$future$1$1$1.dex +0 -0
  14. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule.dex +0 -0
  15. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolTypeface.dex +0 -0
  16. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolView.dex +0 -0
  17. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolViewManager$Companion.dex +0 -0
  18. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolViewManager.dex +0 -0
  19. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/ReactNavigationPackage.dex +0 -0
  20. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  21. package/android/build/generated/source/buildConfig/debug/org/reactnavigation/BuildConfig.java +10 -0
  22. package/android/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.java +38 -0
  23. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.java +42 -0
  24. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.java +21 -0
  25. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.java +39 -0
  26. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.java +20 -0
  27. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  28. package/android/build/generated/source/codegen/jni/ReactNavigationSpec-generated.cpp +32 -0
  29. package/android/build/generated/source/codegen/jni/ReactNavigationSpec.h +31 -0
  30. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ComponentDescriptors.cpp +23 -0
  31. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ComponentDescriptors.h +25 -0
  32. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/EventEmitters.cpp +17 -0
  33. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/EventEmitters.h +30 -0
  34. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/Props.cpp +101 -0
  35. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/Props.h +55 -0
  36. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ReactNavigationSpecJSI-generated.cpp +31 -0
  37. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ReactNavigationSpecJSI.h +71 -0
  38. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ShadowNodes.cpp +18 -0
  39. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ShadowNodes.h +43 -0
  40. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/States.cpp +16 -0
  41. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/States.h +22 -0
  42. package/android/build/generated/source/codegen/schema.json +1 -0
  43. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  44. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  45. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  46. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  47. package/android/build/intermediates/assets/debug/mergeDebugAssets/fonts/MaterialSymbolsOutlined.ttf +0 -0
  48. package/android/build/intermediates/assets/debug/mergeDebugAssets/fonts/MaterialSymbolsRounded.ttf +0 -0
  49. package/android/build/intermediates/assets/debug/mergeDebugAssets/fonts/MaterialSymbolsSharp.ttf +0 -0
  50. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  51. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  52. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  53. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  54. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  55. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
  56. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  57. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  58. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-navigation_native_debug.kotlin_module +0 -0
  59. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.class +0 -0
  60. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.class +0 -0
  61. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.class +0 -0
  62. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.class +0 -0
  63. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.class +0 -0
  64. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/reactnavigation/BuildConfig.class +0 -0
  65. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  66. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  67. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  68. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  69. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  70. package/android/build/intermediates/react-navigation/fonts/MaterialSymbolsOutlined.ttf +0 -0
  71. package/android/build/intermediates/react-navigation/fonts/MaterialSymbolsRounded.ttf +0 -0
  72. package/android/build/intermediates/react-navigation/fonts/MaterialSymbolsSharp.ttf +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-navigation_native_debug.kotlin_module +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/BuildConfig.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule$Companion.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule$WhenMappings.class +0 -0
  82. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule$getImageSource$future$1$1$1.class +0 -0
  83. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule.class +0 -0
  84. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolTypeface.class +0 -0
  85. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolView.class +0 -0
  86. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolViewManager$Companion.class +0 -0
  87. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolViewManager.class +0 -0
  88. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/ReactNavigationPackage.class +0 -0
  89. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  90. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  171. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  172. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  173. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  174. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  175. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  176. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  177. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  178. package/android/build/outputs/logs/manifest-merger-debug-report.txt +16 -0
  179. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  180. package/android/build/tmp/kotlin-classes/debug/META-INF/react-navigation_native_debug.kotlin_module +0 -0
  181. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule$Companion.class +0 -0
  182. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule$WhenMappings.class +0 -0
  183. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule$getImageSource$future$1$1$1.class +0 -0
  184. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule.class +0 -0
  185. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolTypeface.class +0 -0
  186. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolView.class +0 -0
  187. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolViewManager$Companion.class +0 -0
  188. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolViewManager.class +0 -0
  189. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/ReactNavigationPackage.class +0 -0
  190. package/android/build.gradle +66 -0
  191. package/android/gradle.properties +5 -0
  192. package/android/src/main/AndroidManifest.xml +2 -0
  193. package/android/src/main/java/org/reactnavigation/MaterialSymbolModule.kt +111 -0
  194. package/android/src/main/java/org/reactnavigation/MaterialSymbolTypeface.kt +26 -0
  195. package/android/src/main/java/org/reactnavigation/MaterialSymbolView.kt +50 -0
  196. package/android/src/main/java/org/reactnavigation/MaterialSymbolViewManager.kt +42 -0
  197. package/android/src/main/java/org/reactnavigation/ReactNavigationPackage.kt +37 -0
  198. package/assets/fonts/MaterialSymbolsOutlined.codepoints +4102 -0
  199. package/assets/fonts/MaterialSymbolsOutlined.ttf +0 -0
  200. package/assets/fonts/MaterialSymbolsRounded.codepoints +4102 -0
  201. package/assets/fonts/MaterialSymbolsRounded.ttf +0 -0
  202. package/assets/fonts/MaterialSymbolsSharp.codepoints +4102 -0
  203. package/assets/fonts/MaterialSymbolsSharp.ttf +0 -0
  204. package/ios/ReactNavigationSFSymbolView.h +14 -0
  205. package/ios/ReactNavigationSFSymbolView.mm +58 -0
  206. package/ios/ReactNavigationSFSymbolView.swift +50 -0
  207. package/lib/module/Link.js.map +1 -1
  208. package/lib/module/NavigationContainer.js +73 -63
  209. package/lib/module/NavigationContainer.js.map +1 -1
  210. package/lib/module/__stubs__/createStackNavigator.js.map +1 -1
  211. package/lib/module/createStaticNavigation.js +3 -6
  212. package/lib/module/createStaticNavigation.js.map +1 -1
  213. package/lib/module/extractPathFromURL.js +12 -7
  214. package/lib/module/extractPathFromURL.js.map +1 -1
  215. package/lib/module/getStateFromHref.js +30 -0
  216. package/lib/module/getStateFromHref.js.map +1 -0
  217. package/lib/module/index.js +2 -1
  218. package/lib/module/index.js.map +1 -1
  219. package/lib/module/native/MaterialSymbol.android.js +57 -0
  220. package/lib/module/native/MaterialSymbol.android.js.map +1 -0
  221. package/lib/module/native/MaterialSymbol.js +9 -0
  222. package/lib/module/native/MaterialSymbol.js.map +1 -0
  223. package/lib/module/native/MaterialSymbolData.js +11 -0
  224. package/lib/module/native/MaterialSymbolData.js.map +1 -0
  225. package/lib/module/native/MaterialSymbolViewNativeComponent.ts +19 -0
  226. package/lib/module/native/NativeMaterialSymbolModule.js +7 -0
  227. package/lib/module/native/NativeMaterialSymbolModule.js.map +1 -0
  228. package/lib/module/native/SFSymbol.ios.js +23 -0
  229. package/lib/module/native/SFSymbol.ios.js.map +1 -0
  230. package/lib/module/native/SFSymbol.js +6 -0
  231. package/lib/module/native/SFSymbol.js.map +1 -0
  232. package/lib/module/native/SFSymbolViewNativeComponent.ts +18 -0
  233. package/lib/module/native/types.js +4 -0
  234. package/lib/module/native/types.js.map +1 -0
  235. package/lib/module/theming/DarkTheme.js.map +1 -1
  236. package/lib/module/theming/DefaultTheme.js +1 -1
  237. package/lib/module/theming/DefaultTheme.js.map +1 -1
  238. package/lib/module/theming/fonts.js.map +1 -1
  239. package/lib/module/useLinkBuilder.js +7 -10
  240. package/lib/module/useLinkBuilder.js.map +1 -1
  241. package/lib/module/useLinkProps.js +20 -0
  242. package/lib/module/useLinkProps.js.map +1 -1
  243. package/lib/module/useLinking.js +23 -24
  244. package/lib/module/useLinking.js.map +1 -1
  245. package/lib/module/useLinking.native.js +21 -36
  246. package/lib/module/useLinking.native.js.map +1 -1
  247. package/lib/module/useScrollToTop.js +1 -0
  248. package/lib/module/useScrollToTop.js.map +1 -1
  249. package/lib/module/useThenable.js +9 -6
  250. package/lib/module/useThenable.js.map +1 -1
  251. package/lib/typescript/src/Link.d.ts +3 -2
  252. package/lib/typescript/src/Link.d.ts.map +1 -1
  253. package/lib/typescript/src/NavigationContainer.d.ts +35 -7
  254. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
  255. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +1 -2
  256. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -1
  257. package/lib/typescript/src/createStaticNavigation.d.ts +3 -3
  258. package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -1
  259. package/lib/typescript/src/extractPathFromURL.d.ts +2 -1
  260. package/lib/typescript/src/extractPathFromURL.d.ts.map +1 -1
  261. package/lib/typescript/src/getStateFromHref.d.ts +4 -0
  262. package/lib/typescript/src/getStateFromHref.d.ts.map +1 -0
  263. package/lib/typescript/src/index.d.ts +2 -1
  264. package/lib/typescript/src/index.d.ts.map +1 -1
  265. package/lib/typescript/src/native/MaterialSymbol.android.d.ts +8 -0
  266. package/lib/typescript/src/native/MaterialSymbol.android.d.ts.map +1 -0
  267. package/lib/typescript/src/native/MaterialSymbol.d.ts +8 -0
  268. package/lib/typescript/src/native/MaterialSymbol.d.ts.map +1 -0
  269. package/lib/typescript/src/native/MaterialSymbolData.d.ts +7 -0
  270. package/lib/typescript/src/native/MaterialSymbolData.d.ts.map +1 -0
  271. package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts +10 -0
  272. package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts.map +1 -0
  273. package/lib/typescript/src/native/NativeMaterialSymbolModule.d.ts +7 -0
  274. package/lib/typescript/src/native/NativeMaterialSymbolModule.d.ts.map +1 -0
  275. package/lib/typescript/src/native/SFSymbol.d.ts +5 -0
  276. package/lib/typescript/src/native/SFSymbol.d.ts.map +1 -0
  277. package/lib/typescript/src/native/SFSymbol.ios.d.ts +5 -0
  278. package/lib/typescript/src/native/SFSymbol.ios.d.ts.map +1 -0
  279. package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts +9 -0
  280. package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts.map +1 -0
  281. package/lib/typescript/src/native/types.d.ts +45 -0
  282. package/lib/typescript/src/native/types.d.ts.map +1 -0
  283. package/lib/typescript/src/theming/DarkTheme.d.ts +63 -2
  284. package/lib/typescript/src/theming/DarkTheme.d.ts.map +1 -1
  285. package/lib/typescript/src/theming/DefaultTheme.d.ts +63 -2
  286. package/lib/typescript/src/theming/DefaultTheme.d.ts.map +1 -1
  287. package/lib/typescript/src/theming/fonts.d.ts.map +1 -1
  288. package/lib/typescript/src/types.d.ts +49 -23
  289. package/lib/typescript/src/types.d.ts.map +1 -1
  290. package/lib/typescript/src/useLinkBuilder.d.ts +21 -13
  291. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -1
  292. package/lib/typescript/src/useLinkProps.d.ts +3 -3
  293. package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
  294. package/lib/typescript/src/useLinking.d.ts +48 -4
  295. package/lib/typescript/src/useLinking.d.ts.map +1 -1
  296. package/lib/typescript/src/useLinking.native.d.ts +69 -4
  297. package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
  298. package/lib/typescript/src/useScrollToTop.d.ts.map +1 -1
  299. package/lib/typescript/src/useThenable.d.ts +4 -1
  300. package/lib/typescript/src/useThenable.d.ts.map +1 -1
  301. package/package.json +28 -8
  302. package/src/Link.tsx +18 -15
  303. package/src/NavigationContainer.tsx +141 -84
  304. package/src/__stubs__/createStackNavigator.tsx +0 -2
  305. package/src/createStaticNavigation.tsx +8 -12
  306. package/src/extractPathFromURL.tsx +28 -18
  307. package/src/getStateFromHref.tsx +46 -0
  308. package/src/index.tsx +5 -1
  309. package/src/native/MaterialSymbol.android.tsx +81 -0
  310. package/src/native/MaterialSymbol.tsx +17 -0
  311. package/src/native/MaterialSymbolData.tsx +4112 -0
  312. package/src/native/MaterialSymbolViewNativeComponent.ts +19 -0
  313. package/src/native/NativeMaterialSymbolModule.ts +19 -0
  314. package/src/native/SFSymbol.ios.tsx +30 -0
  315. package/src/native/SFSymbol.tsx +9 -0
  316. package/src/native/SFSymbolViewNativeComponent.ts +18 -0
  317. package/src/native/types.tsx +47 -0
  318. package/src/theming/DarkTheme.tsx +4 -3
  319. package/src/theming/DefaultTheme.tsx +5 -4
  320. package/src/theming/fonts.tsx +1 -2
  321. package/src/types.tsx +60 -22
  322. package/src/useLinkBuilder.tsx +8 -11
  323. package/src/useLinkProps.tsx +36 -7
  324. package/src/useLinking.native.tsx +25 -48
  325. package/src/useLinking.tsx +32 -38
  326. package/src/useScrollToTop.tsx +3 -1
  327. package/src/useThenable.tsx +14 -6
  328. package/lib/module/UnhandledLinkingContext.js +0 -14
  329. package/lib/module/UnhandledLinkingContext.js.map +0 -1
  330. package/lib/typescript/src/UnhandledLinkingContext.d.ts +0 -6
  331. package/lib/typescript/src/UnhandledLinkingContext.d.ts.map +0 -1
  332. package/src/UnhandledLinkingContext.tsx +0 -18
@@ -12,7 +12,6 @@ import {
12
12
  const StackNavigator = (
13
13
  props: DefaultNavigatorOptions<
14
14
  ParamListBase,
15
- string | undefined,
16
15
  StackNavigationState<ParamListBase>,
17
16
  {},
18
17
  {},
@@ -35,7 +34,6 @@ export function createStackNavigator<
35
34
  ParamList extends ParamListBase,
36
35
  >(): TypedNavigator<{
37
36
  ParamList: ParamList;
38
- NavigatorID: string | undefined;
39
37
  State: StackNavigationState<ParamList>;
40
38
  ScreenOptions: {};
41
39
  EventMap: {};
@@ -20,10 +20,10 @@ type Props = Omit<
20
20
  linking?: Omit<LinkingOptions<ParamListBase>, 'config' | 'enabled'> & {
21
21
  /**
22
22
  * Whether deep link handling should be enabled.
23
- * Defaults to `true` if any `linking` options are specified, `false` otherwise.
23
+ * Defaults to `auto`.
24
24
  *
25
- * When 'auto' is specified, all leaf screens will get a autogenerated path.
26
- * The generated path will be a kebab-case version of the screen name.
25
+ * When set to 'auto', all leaf screens will get autogenerated paths.
26
+ * The generated paths will be kebab-case versions of the screen names.
27
27
  * This can be overridden for specific screens by specifying `linking` for the screen.
28
28
  */
29
29
  enabled?: 'auto' | true | false;
@@ -55,7 +55,7 @@ export function createStaticNavigation(tree: StaticNavigation<any, any, any>) {
55
55
  const screens = createPathConfigForStaticNavigation(
56
56
  tree,
57
57
  { initialRouteName: linking?.config?.initialRouteName },
58
- linking?.enabled === 'auto'
58
+ linking?.enabled == null || linking.enabled === 'auto'
59
59
  );
60
60
 
61
61
  if (!screens) return;
@@ -72,14 +72,10 @@ export function createStaticNavigation(tree: StaticNavigation<any, any, any>) {
72
72
  ]);
73
73
 
74
74
  const memoizedLinking = React.useMemo(() => {
75
- if (!linking) {
76
- return undefined;
77
- }
78
-
79
75
  const enabled =
80
- typeof linking.enabled === 'boolean'
81
- ? linking.enabled
82
- : linkingConfig?.screens != null;
76
+ linking?.enabled == null || linking.enabled === 'auto'
77
+ ? true
78
+ : linking.enabled;
83
79
 
84
80
  return {
85
81
  ...linking,
@@ -92,7 +88,7 @@ export function createStaticNavigation(tree: StaticNavigation<any, any, any>) {
92
88
  throw new Error(
93
89
  'Linking is enabled but no linking configuration was found for the screens.\n\n' +
94
90
  'To solve this:\n' +
95
- "- Specify a 'linking' property for the screens you want to link to.\n" +
91
+ "- Specify a 'linking' property in each of the screen configs that you want to link to.\n" +
96
92
  "- Or set 'linking.enabled' to 'auto' to generate paths automatically.\n\n" +
97
93
  'See usage guide: https://reactnavigation.org/docs/static-configuration#linking'
98
94
  );
@@ -1,27 +1,37 @@
1
1
  import escapeStringRegexp from 'escape-string-regexp';
2
2
 
3
- export function extractPathFromURL(prefixes: string[], url: string) {
3
+ import type { LinkingPrefix } from './types';
4
+
5
+ export function extractPathFromURL(prefixes: LinkingPrefix[], url: string) {
4
6
  for (const prefix of prefixes) {
5
- const protocol = prefix.match(/^[^:]+:/)?.[0] ?? '';
6
- const host = prefix
7
- .replace(new RegExp(`^${escapeStringRegexp(protocol)}`), '')
8
- .replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
9
- .replace(/^\//, ''); // Remove extra leading slash
10
-
11
- const prefixRegex = new RegExp(
12
- `^${escapeStringRegexp(protocol)}(/)*${host
13
- .split('.')
14
- .map((it) => (it === '*' ? '[^/]+' : escapeStringRegexp(it)))
15
- .join('\\.')}`
16
- );
7
+ let prefixRegex;
8
+
9
+ if (prefix === '*') {
10
+ prefixRegex = /^(((https?:\/\/)[^/]+)|([^/]+:(\/\/)?))/;
11
+ } else {
12
+ const protocol = prefix.match(/^[^:]+:/)?.[0] ?? '';
13
+ const host = prefix
14
+ .replace(new RegExp(`^${escapeStringRegexp(protocol)}`), '')
15
+ .replace(/\/+/g, '/') // Replace multiple slash (//) with single ones
16
+ .replace(/^\//, ''); // Remove extra leading slash
17
+
18
+ prefixRegex = new RegExp(
19
+ `^${escapeStringRegexp(protocol)}(/)*${host
20
+ .split('.')
21
+ .map((it) => (it === '*' ? '[^/]+' : escapeStringRegexp(it)))
22
+ .join('\\.')}`
23
+ );
24
+ }
17
25
 
18
26
  const [originAndPath, ...searchParams] = url.split('?');
19
- const normalizedURL = originAndPath
20
- .replace(/\/+/g, '/')
21
- .concat(searchParams.length ? `?${searchParams.join('?')}` : '');
22
27
 
23
- if (prefixRegex.test(normalizedURL)) {
24
- return normalizedURL.replace(prefixRegex, '');
28
+ if (prefixRegex.test(originAndPath)) {
29
+ const result = originAndPath
30
+ .replace(prefixRegex, '')
31
+ .replace(/\/+/g, '/')
32
+ .concat(searchParams.length ? `?${searchParams.join('?')}` : '');
33
+
34
+ return result.startsWith('/') ? result : `/${result}`;
25
35
  }
26
36
  }
27
37
 
@@ -0,0 +1,46 @@
1
+ import { getStateFromPath, type ParamListBase } from '@react-navigation/core';
2
+
3
+ import { extractPathFromURL } from './extractPathFromURL';
4
+ import type { LinkingOptions } from './types';
5
+
6
+ export function getStateFromHref(
7
+ href: string,
8
+ options: LinkingOptions<ParamListBase> | undefined
9
+ ): ReturnType<typeof getStateFromPath> {
10
+ const {
11
+ prefixes,
12
+ filter,
13
+ config,
14
+ getStateFromPath: getStateFromPathHelper = getStateFromPath,
15
+ } = options || {};
16
+
17
+ let path;
18
+
19
+ if (href.startsWith('/')) {
20
+ path = href;
21
+ } else if (href) {
22
+ if (filter && !filter(href)) {
23
+ throw new Error(
24
+ `Failed to parse href '${href}'. It doesn't match the filter specified in linking config.`
25
+ );
26
+ }
27
+
28
+ if (prefixes == null || prefixes.length === 0) {
29
+ throw new Error(
30
+ `Failed to parse href '${href}'. It doesn't start with '/' and no prefixes are defined in linking config.`
31
+ );
32
+ }
33
+
34
+ path = extractPathFromURL(prefixes, href);
35
+ }
36
+
37
+ if (path == null) {
38
+ throw new Error(
39
+ `Got invalid href '${href}'. It must start with '/' or match one of the prefixes: ${options?.prefixes?.map((prefix) => `'${prefix}'`).join(', ')}.`
40
+ );
41
+ }
42
+
43
+ const state = getStateFromPathHelper(path, config);
44
+
45
+ return state;
46
+ }
package/src/index.tsx CHANGED
@@ -2,12 +2,16 @@ export { createStaticNavigation } from './createStaticNavigation';
2
2
  export { Link } from './Link';
3
3
  export { LinkingContext } from './LinkingContext';
4
4
  export { LocaleDirContext } from './LocaleDirContext';
5
+ export {
6
+ MaterialSymbol,
7
+ type MaterialSymbolProps,
8
+ } from './native/MaterialSymbol';
9
+ export { SFSymbol, type SFSymbolProps } from './native/SFSymbol';
5
10
  export { NavigationContainer } from './NavigationContainer';
6
11
  export { ServerContainer } from './ServerContainer';
7
12
  export { DarkTheme } from './theming/DarkTheme';
8
13
  export { DefaultTheme } from './theming/DefaultTheme';
9
14
  export * from './types';
10
- export { UnhandledLinkingContext as UNSTABLE_UnhandledLinkingContext } from './UnhandledLinkingContext';
11
15
  export { useLinkBuilder } from './useLinkBuilder';
12
16
  export { type LinkProps, useLinkProps } from './useLinkProps';
13
17
  export { useLinkTo } from './useLinkTo';
@@ -0,0 +1,81 @@
1
+ import {
2
+ type ImageSourcePropType,
3
+ PixelRatio,
4
+ processColor,
5
+ type ViewProps,
6
+ } from 'react-native';
7
+
8
+ import { MATERIAL_SYMBOL_FONT_HASHES } from './MaterialSymbolData';
9
+ import MaterialSymbolViewNativeComponent from './MaterialSymbolViewNativeComponent';
10
+ import NativeMaterialSymbolModule from './NativeMaterialSymbolModule';
11
+ import type { MaterialSymbolOptions } from './types';
12
+
13
+ export type MaterialSymbolProps = MaterialSymbolOptions & ViewProps;
14
+
15
+ const imageSourceCache = new Map<string, ImageSourcePropType>();
16
+
17
+ export function MaterialSymbol({
18
+ name,
19
+ variant = 'outlined',
20
+ size = 24,
21
+ color = 'black',
22
+ style,
23
+ ...rest
24
+ }: MaterialSymbolProps): React.ReactElement {
25
+ return (
26
+ <MaterialSymbolViewNativeComponent
27
+ name={name}
28
+ variant={variant}
29
+ size={size}
30
+ color={color}
31
+ style={[
32
+ {
33
+ width: size,
34
+ height: size,
35
+ },
36
+ style,
37
+ ]}
38
+ {...rest}
39
+ />
40
+ );
41
+ }
42
+
43
+ MaterialSymbol.getImageSource = ({
44
+ name,
45
+ variant = 'outlined',
46
+ size = 24,
47
+ color = 'black',
48
+ }: MaterialSymbolOptions): ImageSourcePropType => {
49
+ const hash = MATERIAL_SYMBOL_FONT_HASHES[variant];
50
+ const processedColor = processColor(color);
51
+
52
+ if (processedColor == null) {
53
+ throw new Error(`Invalid color value: ${String(color)}`);
54
+ }
55
+
56
+ const cacheKey = `${name}:${variant}:${size}:${JSON.stringify(processedColor)}:${hash}`;
57
+ const cached = imageSourceCache.get(cacheKey);
58
+
59
+ if (cached !== undefined) {
60
+ return cached;
61
+ }
62
+
63
+ const uri = NativeMaterialSymbolModule.getImageSource(
64
+ name,
65
+ variant,
66
+ size,
67
+ { value: processedColor },
68
+ hash
69
+ );
70
+
71
+ const source: ImageSourcePropType = {
72
+ uri,
73
+ scale: PixelRatio.get(),
74
+ width: size,
75
+ height: size,
76
+ };
77
+
78
+ imageSourceCache.set(cacheKey, source);
79
+
80
+ return source;
81
+ };
@@ -0,0 +1,17 @@
1
+ import { type ImageSourcePropType, type ViewProps } from 'react-native';
2
+
3
+ import type { MaterialSymbolOptions } from './types';
4
+
5
+ export type MaterialSymbolProps = MaterialSymbolOptions & ViewProps;
6
+
7
+ export function MaterialSymbol(_: MaterialSymbolProps): React.ReactElement {
8
+ throw new Error('MaterialSymbol is only supported on Android.');
9
+ }
10
+
11
+ MaterialSymbol.getImageSource = (
12
+ _: MaterialSymbolOptions
13
+ ): ImageSourcePropType => {
14
+ throw new Error(
15
+ 'MaterialSymbol.getImageSource is only supported on Android.'
16
+ );
17
+ };