react-native-unistyles 3.5.3 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/README.md +6 -8
  2. package/android/build.gradle +42 -0
  3. package/android/src/legacy/java/com/unistyles/NativePlatform+extraWindows.kt +16 -0
  4. package/android/src/main/cxx/NativeUnistylesModule.cpp +5 -11
  5. package/android/src/main/cxx/NativeUnistylesModule.h +0 -4
  6. package/android/src/main/java/com/unistyles/NativePlatform+android.kt +82 -39
  7. package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +73 -0
  8. package/android/src/main/java/com/unistyles/UnistylesModule.kt +2 -13
  9. package/android/src/rn86/java/com/unistyles/NativePlatform+extraWindows.kt +28 -0
  10. package/cxx/common/PerformanceTracing.h +85 -0
  11. package/cxx/converters/BackgroundImageConverter.cpp +198 -11
  12. package/cxx/converters/BackgroundImageConverter.h +1 -0
  13. package/cxx/converters/BackgroundLayerConverter.cpp +523 -0
  14. package/cxx/converters/BackgroundLayerConverter.h +14 -0
  15. package/cxx/converters/FontVariationSettingsConverter.cpp +104 -0
  16. package/cxx/converters/FontVariationSettingsConverter.h +17 -0
  17. package/cxx/core/HostUnistyle.cpp +6 -0
  18. package/cxx/core/UnistyleWrapper.h +16 -1
  19. package/cxx/hybridObjects/HybridShadowRegistry.cpp +13 -0
  20. package/cxx/hybridObjects/HybridStyleSheet.cpp +11 -0
  21. package/cxx/hybridObjects/HybridStyleSheet.h +1 -0
  22. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +10 -30
  23. package/cxx/hybridObjects/HybridUnistylesRuntime.h +2 -2
  24. package/cxx/parser/Parser.cpp +92 -5
  25. package/cxx/shadowTree/ShadowTreeDiagnostics.cpp +74 -0
  26. package/cxx/shadowTree/ShadowTreeManager.cpp +3 -0
  27. package/ios/NativePlatform+ios.swift +22 -11
  28. package/ios/NativePlatformListener+ios.swift +9 -0
  29. package/lib/commonjs/components/NamedTheme.js +4 -4
  30. package/lib/commonjs/components/NamedTheme.js.map +1 -1
  31. package/lib/commonjs/components/ScopedThemeContext.js +3 -1
  32. package/lib/commonjs/components/ScopedThemeContext.js.map +1 -1
  33. package/lib/commonjs/components/native/deep/ActivityIndicator.js +19 -0
  34. package/lib/commonjs/components/native/deep/ActivityIndicator.js.map +1 -0
  35. package/lib/commonjs/components/native/deep/Animated.js +19 -0
  36. package/lib/commonjs/components/native/deep/Animated.js.map +1 -0
  37. package/lib/commonjs/components/native/deep/FlatList.js +19 -0
  38. package/lib/commonjs/components/native/deep/FlatList.js.map +1 -0
  39. package/lib/commonjs/components/native/deep/Image.js +19 -0
  40. package/lib/commonjs/components/native/deep/Image.js.map +1 -0
  41. package/lib/commonjs/components/native/deep/ImageBackground.js +19 -0
  42. package/lib/commonjs/components/native/deep/ImageBackground.js.map +1 -0
  43. package/lib/commonjs/components/native/deep/KeyboardAvoidingView.js +19 -0
  44. package/lib/commonjs/components/native/deep/KeyboardAvoidingView.js.map +1 -0
  45. package/lib/commonjs/components/native/deep/Pressable.js +19 -0
  46. package/lib/commonjs/components/native/deep/Pressable.js.map +1 -0
  47. package/lib/commonjs/components/native/deep/RefreshControl.js +19 -0
  48. package/lib/commonjs/components/native/deep/RefreshControl.js.map +1 -0
  49. package/lib/commonjs/components/native/deep/SafeAreaView.js +19 -0
  50. package/lib/commonjs/components/native/deep/SafeAreaView.js.map +1 -0
  51. package/lib/commonjs/components/native/deep/ScrollView.js +19 -0
  52. package/lib/commonjs/components/native/deep/ScrollView.js.map +1 -0
  53. package/lib/commonjs/components/native/deep/SectionList.js +19 -0
  54. package/lib/commonjs/components/native/deep/SectionList.js.map +1 -0
  55. package/lib/commonjs/components/native/deep/Switch.js +19 -0
  56. package/lib/commonjs/components/native/deep/Switch.js.map +1 -0
  57. package/lib/commonjs/components/native/deep/Text.js +19 -0
  58. package/lib/commonjs/components/native/deep/Text.js.map +1 -0
  59. package/lib/commonjs/components/native/deep/TextInput.js +19 -0
  60. package/lib/commonjs/components/native/deep/TextInput.js.map +1 -0
  61. package/lib/commonjs/components/native/deep/TextNativeComponent.js +28 -0
  62. package/lib/commonjs/components/native/deep/TextNativeComponent.js.map +1 -0
  63. package/lib/commonjs/components/native/deep/TouchableHighlight.js +19 -0
  64. package/lib/commonjs/components/native/deep/TouchableHighlight.js.map +1 -0
  65. package/lib/commonjs/components/native/deep/TouchableOpacity.js +19 -0
  66. package/lib/commonjs/components/native/deep/TouchableOpacity.js.map +1 -0
  67. package/lib/commonjs/components/native/deep/View.js +19 -0
  68. package/lib/commonjs/components/native/deep/View.js.map +1 -0
  69. package/lib/commonjs/components/native/deep/ViewNativeComponent.js +26 -0
  70. package/lib/commonjs/components/native/deep/ViewNativeComponent.js.map +1 -0
  71. package/lib/commonjs/components/native/deep/VirtualizedList.js +19 -0
  72. package/lib/commonjs/components/native/deep/VirtualizedList.js.map +1 -0
  73. package/lib/commonjs/components/native/index.js +43 -0
  74. package/lib/commonjs/components/native/index.js.map +1 -0
  75. package/lib/commonjs/core/createUnistylesActivityIndicator.js +13 -3
  76. package/lib/commonjs/core/createUnistylesActivityIndicator.js.map +1 -1
  77. package/lib/commonjs/core/createUnistylesElement.native.js +6 -0
  78. package/lib/commonjs/core/createUnistylesElement.native.js.map +1 -1
  79. package/lib/commonjs/core/createUnistylesImageBackground.js +26 -19
  80. package/lib/commonjs/core/createUnistylesImageBackground.js.map +1 -1
  81. package/lib/commonjs/core/createUnistylesTouchableHighlight.js +6 -0
  82. package/lib/commonjs/core/createUnistylesTouchableHighlight.js.map +1 -1
  83. package/lib/commonjs/core/getClassname.js +15 -0
  84. package/lib/commonjs/core/getClassname.js.map +1 -1
  85. package/lib/commonjs/core/hasUnistyles.js +26 -0
  86. package/lib/commonjs/core/hasUnistyles.js.map +1 -0
  87. package/lib/commonjs/core/withUnistyles/withUnistyles.js +10 -7
  88. package/lib/commonjs/core/withUnistyles/withUnistyles.js.map +1 -1
  89. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js +22 -3
  90. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js.map +1 -1
  91. package/lib/commonjs/mocks.js +27 -3
  92. package/lib/commonjs/mocks.js.map +1 -1
  93. package/lib/commonjs/specs/ShadowRegistry/index.js +69 -76
  94. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  95. package/lib/commonjs/specs/ShadowRegistry/styleSource.js +65 -0
  96. package/lib/commonjs/specs/ShadowRegistry/styleSource.js.map +1 -0
  97. package/lib/commonjs/specs/ShadowRegistry/tracing.js +26 -0
  98. package/lib/commonjs/specs/ShadowRegistry/tracing.js.map +1 -0
  99. package/lib/commonjs/unifiber/src/adapters/reanimated.js +157 -0
  100. package/lib/commonjs/unifiber/src/adapters/reanimated.js.map +1 -0
  101. package/lib/commonjs/unifiber/src/adapters/registry.js +67 -0
  102. package/lib/commonjs/unifiber/src/adapters/registry.js.map +1 -0
  103. package/lib/commonjs/unifiber/src/diagnostics.js +59 -0
  104. package/lib/commonjs/unifiber/src/diagnostics.js.map +1 -0
  105. package/lib/commonjs/unifiber/src/fiber.js +199 -0
  106. package/lib/commonjs/unifiber/src/fiber.js.map +1 -0
  107. package/lib/commonjs/unifiber/src/host.js +214 -0
  108. package/lib/commonjs/unifiber/src/host.js.map +1 -0
  109. package/lib/commonjs/unifiber/src/index.js +38 -0
  110. package/lib/commonjs/unifiber/src/index.js.map +1 -0
  111. package/lib/commonjs/utils.js +52 -1
  112. package/lib/commonjs/utils.js.map +1 -1
  113. package/lib/commonjs/web/convert/index.js +19 -1
  114. package/lib/commonjs/web/convert/index.js.map +1 -1
  115. package/lib/commonjs/web/convert/module.d.ts +3 -0
  116. package/lib/commonjs/web/convert/object/backgroundLayers.js +30 -0
  117. package/lib/commonjs/web/convert/object/backgroundLayers.js.map +1 -0
  118. package/lib/commonjs/web/convert/object/fontVariationSettings.js +12 -0
  119. package/lib/commonjs/web/convert/object/fontVariationSettings.js.map +1 -0
  120. package/lib/commonjs/web/convert/object/index.js +22 -0
  121. package/lib/commonjs/web/convert/object/index.js.map +1 -1
  122. package/lib/commonjs/web/convert/utils.js +7 -1
  123. package/lib/commonjs/web/convert/utils.js.map +1 -1
  124. package/lib/commonjs/web/registry.js +6 -4
  125. package/lib/commonjs/web/registry.js.map +1 -1
  126. package/lib/commonjs/web/runtime.js +9 -6
  127. package/lib/commonjs/web/runtime.js.map +1 -1
  128. package/lib/commonjs/web/utils/unistyle.js +9 -3
  129. package/lib/commonjs/web/utils/unistyle.js.map +1 -1
  130. package/lib/module/components/NamedTheme.js +4 -4
  131. package/lib/module/components/NamedTheme.js.map +1 -1
  132. package/lib/module/components/ScopedThemeContext.js +3 -1
  133. package/lib/module/components/ScopedThemeContext.js.map +1 -1
  134. package/lib/module/components/native/deep/ActivityIndicator.js +5 -0
  135. package/lib/module/components/native/deep/ActivityIndicator.js.map +1 -0
  136. package/lib/module/components/native/deep/Animated.js +5 -0
  137. package/lib/module/components/native/deep/Animated.js.map +1 -0
  138. package/lib/module/components/native/deep/FlatList.js +5 -0
  139. package/lib/module/components/native/deep/FlatList.js.map +1 -0
  140. package/lib/module/components/native/deep/Image.js +5 -0
  141. package/lib/module/components/native/deep/Image.js.map +1 -0
  142. package/lib/module/components/native/deep/ImageBackground.js +5 -0
  143. package/lib/module/components/native/deep/ImageBackground.js.map +1 -0
  144. package/lib/module/components/native/deep/KeyboardAvoidingView.js +5 -0
  145. package/lib/module/components/native/deep/KeyboardAvoidingView.js.map +1 -0
  146. package/lib/module/components/native/deep/Pressable.js +5 -0
  147. package/lib/module/components/native/deep/Pressable.js.map +1 -0
  148. package/lib/module/components/native/deep/RefreshControl.js +5 -0
  149. package/lib/module/components/native/deep/RefreshControl.js.map +1 -0
  150. package/lib/module/components/native/deep/SafeAreaView.js +5 -0
  151. package/lib/module/components/native/deep/SafeAreaView.js.map +1 -0
  152. package/lib/module/components/native/deep/ScrollView.js +5 -0
  153. package/lib/module/components/native/deep/ScrollView.js.map +1 -0
  154. package/lib/module/components/native/deep/SectionList.js +5 -0
  155. package/lib/module/components/native/deep/SectionList.js.map +1 -0
  156. package/lib/module/components/native/deep/Switch.js +5 -0
  157. package/lib/module/components/native/deep/Switch.js.map +1 -0
  158. package/lib/module/components/native/deep/Text.js +5 -0
  159. package/lib/module/components/native/deep/Text.js.map +1 -0
  160. package/lib/module/components/native/deep/TextInput.js +5 -0
  161. package/lib/module/components/native/deep/TextInput.js.map +1 -0
  162. package/lib/module/components/native/deep/TextNativeComponent.js +8 -0
  163. package/lib/module/components/native/deep/TextNativeComponent.js.map +1 -0
  164. package/lib/module/components/native/deep/TouchableHighlight.js +5 -0
  165. package/lib/module/components/native/deep/TouchableHighlight.js.map +1 -0
  166. package/lib/module/components/native/deep/TouchableOpacity.js +5 -0
  167. package/lib/module/components/native/deep/TouchableOpacity.js.map +1 -0
  168. package/lib/module/components/native/deep/View.js +5 -0
  169. package/lib/module/components/native/deep/View.js.map +1 -0
  170. package/lib/module/components/native/deep/ViewNativeComponent.js +8 -0
  171. package/lib/module/components/native/deep/ViewNativeComponent.js.map +1 -0
  172. package/lib/module/components/native/deep/VirtualizedList.js +5 -0
  173. package/lib/module/components/native/deep/VirtualizedList.js.map +1 -0
  174. package/lib/module/components/native/index.js +43 -0
  175. package/lib/module/components/native/index.js.map +1 -0
  176. package/lib/module/core/createUnistylesActivityIndicator.js +13 -3
  177. package/lib/module/core/createUnistylesActivityIndicator.js.map +1 -1
  178. package/lib/module/core/createUnistylesElement.native.js +6 -0
  179. package/lib/module/core/createUnistylesElement.native.js.map +1 -1
  180. package/lib/module/core/createUnistylesImageBackground.js +26 -19
  181. package/lib/module/core/createUnistylesImageBackground.js.map +1 -1
  182. package/lib/module/core/createUnistylesTouchableHighlight.js +6 -0
  183. package/lib/module/core/createUnistylesTouchableHighlight.js.map +1 -1
  184. package/lib/module/core/getClassname.js +16 -1
  185. package/lib/module/core/getClassname.js.map +1 -1
  186. package/lib/module/core/hasUnistyles.js +21 -0
  187. package/lib/module/core/hasUnistyles.js.map +1 -0
  188. package/lib/module/core/withUnistyles/withUnistyles.js +9 -6
  189. package/lib/module/core/withUnistyles/withUnistyles.js.map +1 -1
  190. package/lib/module/core/withUnistyles/withUnistyles.native.js +24 -5
  191. package/lib/module/core/withUnistyles/withUnistyles.native.js.map +1 -1
  192. package/lib/module/mocks.js +27 -3
  193. package/lib/module/mocks.js.map +1 -1
  194. package/lib/module/specs/ShadowRegistry/index.js +69 -76
  195. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  196. package/lib/module/specs/ShadowRegistry/styleSource.js +60 -0
  197. package/lib/module/specs/ShadowRegistry/styleSource.js.map +1 -0
  198. package/lib/module/specs/ShadowRegistry/tracing.js +21 -0
  199. package/lib/module/specs/ShadowRegistry/tracing.js.map +1 -0
  200. package/lib/module/unifiber/src/adapters/reanimated.js +152 -0
  201. package/lib/module/unifiber/src/adapters/reanimated.js.map +1 -0
  202. package/lib/module/unifiber/src/adapters/registry.js +62 -0
  203. package/lib/module/unifiber/src/adapters/registry.js.map +1 -0
  204. package/lib/module/unifiber/src/diagnostics.js +52 -0
  205. package/lib/module/unifiber/src/diagnostics.js.map +1 -0
  206. package/lib/module/unifiber/src/fiber.js +183 -0
  207. package/lib/module/unifiber/src/fiber.js.map +1 -0
  208. package/lib/module/unifiber/src/host.js +191 -0
  209. package/lib/module/unifiber/src/host.js.map +1 -0
  210. package/lib/module/unifiber/src/index.js +33 -0
  211. package/lib/module/unifiber/src/index.js.map +1 -0
  212. package/lib/module/utils.js +50 -0
  213. package/lib/module/utils.js.map +1 -1
  214. package/lib/module/web/convert/index.js +22 -3
  215. package/lib/module/web/convert/index.js.map +1 -1
  216. package/lib/module/web/convert/module.d.ts +3 -0
  217. package/lib/module/web/convert/object/backgroundLayers.js +25 -0
  218. package/lib/module/web/convert/object/backgroundLayers.js.map +1 -0
  219. package/lib/module/web/convert/object/fontVariationSettings.js +7 -0
  220. package/lib/module/web/convert/object/fontVariationSettings.js.map +1 -0
  221. package/lib/module/web/convert/object/index.js +2 -0
  222. package/lib/module/web/convert/object/index.js.map +1 -1
  223. package/lib/module/web/convert/utils.js +4 -0
  224. package/lib/module/web/convert/utils.js.map +1 -1
  225. package/lib/module/web/registry.js +6 -4
  226. package/lib/module/web/registry.js.map +1 -1
  227. package/lib/module/web/runtime.js +9 -6
  228. package/lib/module/web/runtime.js.map +1 -1
  229. package/lib/module/web/utils/unistyle.js +10 -4
  230. package/lib/module/web/utils/unistyle.js.map +1 -1
  231. package/lib/typescript/src/components/ScopedThemeContext.d.ts +2 -1
  232. package/lib/typescript/src/components/ScopedThemeContext.d.ts.map +1 -1
  233. package/lib/typescript/src/components/native/deep/ActivityIndicator.d.ts +2 -0
  234. package/lib/typescript/src/components/native/deep/ActivityIndicator.d.ts.map +1 -0
  235. package/lib/typescript/src/components/native/deep/Animated.d.ts +2 -0
  236. package/lib/typescript/src/components/native/deep/Animated.d.ts.map +1 -0
  237. package/lib/typescript/src/components/native/deep/FlatList.d.ts +2 -0
  238. package/lib/typescript/src/components/native/deep/FlatList.d.ts.map +1 -0
  239. package/lib/typescript/src/components/native/deep/Image.d.ts +2 -0
  240. package/lib/typescript/src/components/native/deep/Image.d.ts.map +1 -0
  241. package/lib/typescript/src/components/native/deep/ImageBackground.d.ts +2 -0
  242. package/lib/typescript/src/components/native/deep/ImageBackground.d.ts.map +1 -0
  243. package/lib/typescript/src/components/native/deep/KeyboardAvoidingView.d.ts +2 -0
  244. package/lib/typescript/src/components/native/deep/KeyboardAvoidingView.d.ts.map +1 -0
  245. package/lib/typescript/src/components/native/deep/Pressable.d.ts +2 -0
  246. package/lib/typescript/src/components/native/deep/Pressable.d.ts.map +1 -0
  247. package/lib/typescript/src/components/native/deep/RefreshControl.d.ts +2 -0
  248. package/lib/typescript/src/components/native/deep/RefreshControl.d.ts.map +1 -0
  249. package/lib/typescript/src/components/native/deep/SafeAreaView.d.ts +2 -0
  250. package/lib/typescript/src/components/native/deep/SafeAreaView.d.ts.map +1 -0
  251. package/lib/typescript/src/components/native/deep/ScrollView.d.ts +2 -0
  252. package/lib/typescript/src/components/native/deep/ScrollView.d.ts.map +1 -0
  253. package/lib/typescript/src/components/native/deep/SectionList.d.ts +2 -0
  254. package/lib/typescript/src/components/native/deep/SectionList.d.ts.map +1 -0
  255. package/lib/typescript/src/components/native/deep/Switch.d.ts +2 -0
  256. package/lib/typescript/src/components/native/deep/Switch.d.ts.map +1 -0
  257. package/lib/typescript/src/components/native/deep/Text.d.ts +2 -0
  258. package/lib/typescript/src/components/native/deep/Text.d.ts.map +1 -0
  259. package/lib/typescript/src/components/native/deep/TextInput.d.ts +2 -0
  260. package/lib/typescript/src/components/native/deep/TextInput.d.ts.map +1 -0
  261. package/lib/typescript/src/components/native/deep/TextNativeComponent.d.ts +3 -0
  262. package/lib/typescript/src/components/native/deep/TextNativeComponent.d.ts.map +1 -0
  263. package/lib/typescript/src/components/native/deep/TouchableHighlight.d.ts +2 -0
  264. package/lib/typescript/src/components/native/deep/TouchableHighlight.d.ts.map +1 -0
  265. package/lib/typescript/src/components/native/deep/TouchableOpacity.d.ts +2 -0
  266. package/lib/typescript/src/components/native/deep/TouchableOpacity.d.ts.map +1 -0
  267. package/lib/typescript/src/components/native/deep/View.d.ts +2 -0
  268. package/lib/typescript/src/components/native/deep/View.d.ts.map +1 -0
  269. package/lib/typescript/src/components/native/deep/ViewNativeComponent.d.ts +3 -0
  270. package/lib/typescript/src/components/native/deep/ViewNativeComponent.d.ts.map +1 -0
  271. package/lib/typescript/src/components/native/deep/VirtualizedList.d.ts +2 -0
  272. package/lib/typescript/src/components/native/deep/VirtualizedList.d.ts.map +1 -0
  273. package/lib/typescript/src/components/native/index.d.ts +4 -0
  274. package/lib/typescript/src/components/native/index.d.ts.map +1 -0
  275. package/lib/typescript/src/components/scopeChildren.d.ts +1 -1
  276. package/lib/typescript/src/core/createUnistylesActivityIndicator.d.ts.map +1 -1
  277. package/lib/typescript/src/core/createUnistylesElement.native.d.ts.map +1 -1
  278. package/lib/typescript/src/core/createUnistylesImageBackground.d.ts.map +1 -1
  279. package/lib/typescript/src/core/createUnistylesTouchableHighlight.d.ts.map +1 -1
  280. package/lib/typescript/src/core/getClassname.d.ts.map +1 -1
  281. package/lib/typescript/src/core/hasUnistyles.d.ts +2 -0
  282. package/lib/typescript/src/core/hasUnistyles.d.ts.map +1 -0
  283. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts +6 -3
  284. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts.map +1 -1
  285. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts +7 -4
  286. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts.map +1 -1
  287. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  288. package/lib/typescript/src/specs/ShadowRegistry/styleSource.d.ts +11 -0
  289. package/lib/typescript/src/specs/ShadowRegistry/styleSource.d.ts.map +1 -0
  290. package/lib/typescript/src/specs/ShadowRegistry/tracing.d.ts +2 -0
  291. package/lib/typescript/src/specs/ShadowRegistry/tracing.d.ts.map +1 -0
  292. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +4 -41
  293. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  294. package/lib/typescript/src/unifiber/src/adapters/reanimated.d.ts +17 -0
  295. package/lib/typescript/src/unifiber/src/adapters/reanimated.d.ts.map +1 -0
  296. package/lib/typescript/src/unifiber/src/adapters/registry.d.ts +23 -0
  297. package/lib/typescript/src/unifiber/src/adapters/registry.d.ts.map +1 -0
  298. package/lib/typescript/src/unifiber/src/diagnostics.d.ts +10 -0
  299. package/lib/typescript/src/unifiber/src/diagnostics.d.ts.map +1 -0
  300. package/lib/typescript/src/unifiber/src/fiber.d.ts +48 -0
  301. package/lib/typescript/src/unifiber/src/fiber.d.ts.map +1 -0
  302. package/lib/typescript/src/unifiber/src/host.d.ts +32 -0
  303. package/lib/typescript/src/unifiber/src/host.d.ts.map +1 -0
  304. package/lib/typescript/src/unifiber/src/index.d.ts +49 -0
  305. package/lib/typescript/src/unifiber/src/index.d.ts.map +1 -0
  306. package/lib/typescript/src/utils.d.ts +1 -0
  307. package/lib/typescript/src/utils.d.ts.map +1 -1
  308. package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
  309. package/lib/typescript/src/web/convert/object/backgroundLayers.d.ts +4 -0
  310. package/lib/typescript/src/web/convert/object/backgroundLayers.d.ts.map +1 -0
  311. package/lib/typescript/src/web/convert/object/fontVariationSettings.d.ts +4 -0
  312. package/lib/typescript/src/web/convert/object/fontVariationSettings.d.ts.map +1 -0
  313. package/lib/typescript/src/web/convert/object/index.d.ts +2 -0
  314. package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -1
  315. package/lib/typescript/src/web/convert/utils.d.ts +2 -0
  316. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
  317. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  318. package/lib/typescript/src/web/runtime.d.ts +1 -0
  319. package/lib/typescript/src/web/runtime.d.ts.map +1 -1
  320. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -1
  321. package/metro/babel-transformer.js +1102 -0
  322. package/metro/index.d.ts +31 -0
  323. package/metro/index.js +170 -0
  324. package/package.json +50 -32
  325. package/plugin/index.d.ts +7 -0
  326. package/plugin/index.js +115 -33
  327. package/src/components/NamedTheme.tsx +5 -5
  328. package/src/components/ScopedThemeContext.ts +6 -2
  329. package/src/components/native/deep/ActivityIndicator.ts +2 -0
  330. package/src/components/native/deep/Animated.ts +2 -0
  331. package/src/components/native/deep/FlatList.ts +2 -0
  332. package/src/components/native/deep/Image.ts +2 -0
  333. package/src/components/native/deep/ImageBackground.ts +2 -0
  334. package/src/components/native/deep/KeyboardAvoidingView.ts +2 -0
  335. package/src/components/native/deep/Pressable.ts +2 -0
  336. package/src/components/native/deep/RefreshControl.ts +2 -0
  337. package/src/components/native/deep/SafeAreaView.ts +2 -0
  338. package/src/components/native/deep/ScrollView.ts +2 -0
  339. package/src/components/native/deep/SectionList.ts +2 -0
  340. package/src/components/native/deep/Switch.ts +2 -0
  341. package/src/components/native/deep/Text.ts +2 -0
  342. package/src/components/native/deep/TextInput.ts +2 -0
  343. package/src/components/native/deep/TextNativeComponent.ts +5 -0
  344. package/src/components/native/deep/TouchableHighlight.ts +2 -0
  345. package/src/components/native/deep/TouchableOpacity.ts +2 -0
  346. package/src/components/native/deep/View.ts +2 -0
  347. package/src/components/native/deep/ViewNativeComponent.ts +5 -0
  348. package/src/components/native/deep/VirtualizedList.ts +2 -0
  349. package/src/components/native/index.ts +41 -0
  350. package/src/core/createUnistylesActivityIndicator.tsx +11 -4
  351. package/src/core/createUnistylesElement.native.tsx +5 -0
  352. package/src/core/createUnistylesImageBackground.tsx +33 -25
  353. package/src/core/createUnistylesTouchableHighlight.tsx +5 -0
  354. package/src/core/getClassname.ts +10 -1
  355. package/src/core/hasUnistyles.ts +20 -0
  356. package/src/core/withUnistyles/withUnistyles.native.tsx +28 -6
  357. package/src/core/withUnistyles/withUnistyles.tsx +6 -6
  358. package/src/mocks.ts +14 -5
  359. package/src/specs/ShadowRegistry/index.ts +62 -103
  360. package/src/specs/ShadowRegistry/styleSource.ts +78 -0
  361. package/src/specs/ShadowRegistry/tracing.ts +23 -0
  362. package/src/specs/ShadowRegistry/types.ts +3 -43
  363. package/src/unifiber/LICENSE +21 -0
  364. package/src/unifiber/README.md +92 -0
  365. package/src/unifiber/src/adapters/reanimated.ts +204 -0
  366. package/src/unifiber/src/adapters/registry.ts +102 -0
  367. package/src/unifiber/src/diagnostics.ts +55 -0
  368. package/src/unifiber/src/fiber.ts +262 -0
  369. package/src/unifiber/src/host.ts +236 -0
  370. package/src/unifiber/src/index.ts +43 -0
  371. package/src/utils.ts +51 -0
  372. package/src/web/convert/index.ts +39 -3
  373. package/src/web/convert/object/backgroundLayers.ts +33 -0
  374. package/src/web/convert/object/fontVariationSettings.ts +7 -0
  375. package/src/web/convert/object/index.ts +2 -0
  376. package/src/web/convert/utils.ts +11 -0
  377. package/src/web/registry.ts +7 -8
  378. package/src/web/runtime.ts +7 -7
  379. package/src/web/utils/unistyle.ts +11 -4
  380. package/lib/commonjs/web/convert/module.d.js +0 -2
  381. package/lib/commonjs/web/convert/module.d.js.map +0 -1
  382. package/lib/module/web/convert/module.d.js +0 -2
  383. package/lib/module/web/convert/module.d.js.map +0 -1
  384. package/lib/typescript/src/__tests__/mocks.spec.d.ts +0 -2
  385. package/lib/typescript/src/__tests__/mocks.spec.d.ts.map +0 -1
  386. package/lib/typescript/src/__tests__/passForwardRef.spec.d.ts +0 -2
  387. package/lib/typescript/src/__tests__/passForwardRef.spec.d.ts.map +0 -1
  388. package/lib/typescript/src/__tests__/scoped-theme.spec.d.ts +0 -2
  389. package/lib/typescript/src/__tests__/scoped-theme.spec.d.ts.map +0 -1
  390. package/lib/typescript/src/__tests__/shadow-registry.spec.d.ts +0 -2
  391. package/lib/typescript/src/__tests__/shadow-registry.spec.d.ts.map +0 -1
  392. package/lib/typescript/src/__tests__/web-child-selector.spec.d.ts +0 -2
  393. package/lib/typescript/src/__tests__/web-child-selector.spec.d.ts.map +0 -1
  394. package/lib/typescript/src/__tests__/web-listener.spec.d.ts +0 -2
  395. package/lib/typescript/src/__tests__/web-listener.spec.d.ts.map +0 -1
  396. package/lib/typescript/src/__tests__/web-pointer-events.spec.d.ts +0 -2
  397. package/lib/typescript/src/__tests__/web-pointer-events.spec.d.ts.map +0 -1
  398. package/lib/typescript/src/__tests__/web-runtime.spec.d.ts +0 -2
  399. package/lib/typescript/src/__tests__/web-runtime.spec.d.ts.map +0 -1
  400. package/lib/typescript/src/__tests__/withUnistyles.spec.d.ts +0 -2
  401. package/lib/typescript/src/__tests__/withUnistyles.spec.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fiber","contextReaderFor","CLASS_COMPONENT","Tag","ClassComponent","STATE","Symbol","for","hasCSSConfig","cssStyle","key","startsWith","registersOnUpdate","value","Array","isArray","selector","MAX_OWNER_DEPTH","animatedComponentOf","host","memoizedProps","collapsable","publicInstance","stateNode","canonical","current","return","depth","tag","_componentRef","isAnimatedComponent","owner","_updateStyles","shouldComponentUpdate","_cssStyle","updateStylesThroughSource","props","state","original","call","epoch","source","read","rendering","contexts","contextChanged","i","length","context","contextKey","contextKeys","styleProp","style","fresh","resolve","shouldUpdateMarkingRender","args","originalShouldUpdate","apply","reanimatedCSSAdapter","name","gate","claim","attach","undefined","refresh","_CSSManager","update","_willUnmount"],"sourceRoot":"../../../../../src","sources":["unifiber/src/adapters/reanimated.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ // An adapter that throws is disabled for the session and reported once
4
+ export const createOwnerRegistry = (source, adapters, onAdapterError) => {
5
+ const disabledAdapters = new Set();
6
+ const disable = (adapter, error) => {
7
+ disabledAdapters.add(adapter);
8
+ onAdapterError?.(`adapter ${adapter.name} failed: ${String(error)}`);
9
+ };
10
+ // Not inline closures: a closure in link() makes Hermes allocate its environment on every call
11
+ const attachOwner = (adapter, host) => {
12
+ try {
13
+ const owner = adapter.claim(host);
14
+ if (owner) {
15
+ adapter.attach(owner, source);
16
+ }
17
+ } catch (error) {
18
+ disable(adapter, error);
19
+ }
20
+ };
21
+ const refreshOwner = (adapter, host, seen) => {
22
+ try {
23
+ const owner = adapter.claim(host);
24
+ if (owner && !seen.has(owner)) {
25
+ seen.add(owner);
26
+ adapter.attach(owner, source);
27
+ adapter.refresh(owner, source);
28
+ }
29
+ } catch (error) {
30
+ disable(adapter, error);
31
+ }
32
+ };
33
+ return {
34
+ link(host) {
35
+ if (!host) {
36
+ return;
37
+ }
38
+ for (let i = 0; i < adapters.length; i++) {
39
+ const adapter = adapters[i];
40
+ if (adapter.gate(host) && !disabledAdapters.has(adapter)) {
41
+ attachOwner(adapter, host);
42
+ }
43
+ }
44
+ },
45
+ refresh(hosts) {
46
+ const seen = new Set();
47
+ for (let h = 0; h < hosts.length; h++) {
48
+ const host = hosts[h];
49
+ if (!host) {
50
+ continue;
51
+ }
52
+ for (let i = 0; i < adapters.length; i++) {
53
+ const adapter = adapters[i];
54
+ if (adapter.gate(host) && !disabledAdapters.has(adapter)) {
55
+ refreshOwner(adapter, host, seen);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ };
61
+ };
62
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createOwnerRegistry","source","adapters","onAdapterError","disabledAdapters","Set","disable","adapter","error","add","name","String","attachOwner","host","owner","claim","attach","refreshOwner","seen","has","refresh","link","i","length","gate","hosts","h"],"sourceRoot":"../../../../../src","sources":["unifiber/src/adapters/registry.ts"],"mappings":";;AA8BA;AACA,OAAO,MAAMA,mBAAmB,GAAGA,CAC/BC,MAAmB,EACnBC,QAA0C,EAC1CC,cAAyC,KACzB;EAChB,MAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAe,CAAC;EAChD,MAAMC,OAAO,GAAGA,CAACC,OAAqB,EAAEC,KAAc,KAAK;IACvDJ,gBAAgB,CAACK,GAAG,CAACF,OAAO,CAAC;IAC7BJ,cAAc,GAAG,WAAWI,OAAO,CAACG,IAAI,YAAYC,MAAM,CAACH,KAAK,CAAC,EAAE,CAAC;EACxE,CAAC;EACD;EACA,MAAMI,WAAW,GAAGA,CAACL,OAAqB,EAAEM,IAAU,KAAK;IACvD,IAAI;MACA,MAAMC,KAAK,GAAGP,OAAO,CAACQ,KAAK,CAACF,IAAI,CAAC;MAEjC,IAAIC,KAAK,EAAE;QACPP,OAAO,CAACS,MAAM,CAACF,KAAK,EAAEb,MAAM,CAAC;MACjC;IACJ,CAAC,CAAC,OAAOO,KAAK,EAAE;MACZF,OAAO,CAACC,OAAO,EAAEC,KAAK,CAAC;IAC3B;EACJ,CAAC;EACD,MAAMS,YAAY,GAAGA,CAACV,OAAqB,EAAEM,IAAU,EAAEK,IAAiB,KAAK;IAC3E,IAAI;MACA,MAAMJ,KAAK,GAAGP,OAAO,CAACQ,KAAK,CAACF,IAAI,CAAC;MAEjC,IAAIC,KAAK,IAAI,CAACI,IAAI,CAACC,GAAG,CAACL,KAAK,CAAC,EAAE;QAC3BI,IAAI,CAACT,GAAG,CAACK,KAAK,CAAC;QACfP,OAAO,CAACS,MAAM,CAACF,KAAK,EAAEb,MAAM,CAAC;QAC7BM,OAAO,CAACa,OAAO,CAACN,KAAK,EAAEb,MAAM,CAAC;MAClC;IACJ,CAAC,CAAC,OAAOO,KAAK,EAAE;MACZF,OAAO,CAACC,OAAO,EAAEC,KAAK,CAAC;IAC3B;EACJ,CAAC;EAED,OAAO;IACHa,IAAIA,CAACR,IAAI,EAAE;MACP,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MAEA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpB,QAAQ,CAACqB,MAAM,EAAED,CAAC,EAAE,EAAE;QACtC,MAAMf,OAAO,GAAGL,QAAQ,CAACoB,CAAC,CAAE;QAE5B,IAAIf,OAAO,CAACiB,IAAI,CAACX,IAAI,CAAC,IAAI,CAACT,gBAAgB,CAACe,GAAG,CAACZ,OAAO,CAAC,EAAE;UACtDK,WAAW,CAACL,OAAO,EAAEM,IAAI,CAAC;QAC9B;MACJ;IACJ,CAAC;IACDO,OAAOA,CAACK,KAAK,EAAE;MACX,MAAMP,IAAI,GAAG,IAAIb,GAAG,CAAS,CAAC;MAE9B,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACF,MAAM,EAAEG,CAAC,EAAE,EAAE;QACnC,MAAMb,IAAI,GAAGY,KAAK,CAACC,CAAC,CAAC;QAErB,IAAI,CAACb,IAAI,EAAE;UACP;QACJ;QAEA,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpB,QAAQ,CAACqB,MAAM,EAAED,CAAC,EAAE,EAAE;UACtC,MAAMf,OAAO,GAAGL,QAAQ,CAACoB,CAAC,CAAE;UAE5B,IAAIf,OAAO,CAACiB,IAAI,CAACX,IAAI,CAAC,IAAI,CAACT,gBAAgB,CAACe,GAAG,CAACZ,OAAO,CAAC,EAAE;YACtDU,YAAY,CAACV,OAAO,EAAEM,IAAI,EAAEK,IAAI,CAAC;UACrC;QACJ;MACJ;IACJ;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import * as host from './host';
4
+
5
+ // Bound once: Metro's inline requires
6
+ const {
7
+ committedHalf,
8
+ fiberOf
9
+ } = host;
10
+ const styleDiffers = (a, b) => a.memoizedProps?.style !== b.memoizedProps?.style;
11
+ const flattenInto = (style, out) => {
12
+ if (Array.isArray(style)) {
13
+ for (let i = 0; i < style.length; i++) {
14
+ flattenInto(style[i], out);
15
+ }
16
+ } else if (style && typeof style === 'object') {
17
+ Object.assign(out, style);
18
+ }
19
+ return out;
20
+ };
21
+ // Keys that differ from React's committed props: React re-sends them on the view's next render
22
+ export const verify = (host, expected) => {
23
+ const baseline = committedHalf(fiberOf(host), styleDiffers) ?? fiberOf(host);
24
+ const react = flattenInto(baseline.memoizedProps?.style, {});
25
+ const drift = [];
26
+ for (const key in expected) {
27
+ if (react[key] !== expected[key]) {
28
+ drift.push({
29
+ key,
30
+ react: react[key],
31
+ expected: expected[key]
32
+ });
33
+ }
34
+ }
35
+ return drift;
36
+ };
37
+
38
+ // Development builds only
39
+ export const getOwners = (host, max = 8) => {
40
+ const owners = [];
41
+ for (let owner = fiberOf(host)._debugOwner; owner && owners.length < max; owner = owner._debugOwner ?? owner.owner) {
42
+ const name = owner.name ?? owner.type?.displayName ?? owner.type?.name ?? owner.type?.render?.name;
43
+ if (name) {
44
+ owners.push(name);
45
+ }
46
+ }
47
+ return owners;
48
+ };
49
+
50
+ // Development builds only
51
+ export const getCreationStack = host => fiberOf(host)._debugStack?.stack;
52
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["host","committedHalf","fiberOf","styleDiffers","a","b","memoizedProps","style","flattenInto","out","Array","isArray","i","length","Object","assign","verify","expected","baseline","react","drift","key","push","getOwners","max","owners","owner","_debugOwner","name","type","displayName","render","getCreationStack","_debugStack","stack"],"sourceRoot":"../../../../src","sources":["unifiber/src/diagnostics.ts"],"mappings":";;AAEA,OAAO,KAAKA,IAAI,MAAM,QAAQ;;AAE9B;AACA,MAAM;EAAEC,aAAa;EAAEC;AAAQ,CAAC,GAAGF,IAAI;AAEvC,MAAMG,YAAY,GAAGA,CAACC,CAAW,EAAEC,CAAW,KAAKD,CAAC,CAACE,aAAa,EAAEC,KAAK,KAAKF,CAAC,CAACC,aAAa,EAAEC,KAAK;AAEpG,MAAMC,WAAW,GAAGA,CAACD,KAAc,EAAEE,GAA4B,KAAK;EAClE,IAAIC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACtB,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,KAAK,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;MACnCJ,WAAW,CAACD,KAAK,CAACK,CAAC,CAAC,EAAEH,GAAG,CAAC;IAC9B;EACJ,CAAC,MAAM,IAAIF,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3CO,MAAM,CAACC,MAAM,CAACN,GAAG,EAAEF,KAAK,CAAC;EAC7B;EAEA,OAAOE,GAAG;AACd,CAAC;AAID;AACA,OAAO,MAAMO,MAAM,GAAGA,CAAChB,IAAU,EAAEiB,QAAiC,KAAmB;EACnF,MAAMC,QAAQ,GAAGjB,aAAa,CAACC,OAAO,CAACF,IAAI,CAAC,EAAEG,YAAY,CAAC,IAAID,OAAO,CAACF,IAAI,CAAC;EAC5E,MAAMmB,KAAK,GAAGX,WAAW,CAACU,QAAQ,CAACZ,aAAa,EAAEC,KAAK,EAAE,CAAC,CAAC,CAAC;EAC5D,MAAMa,KAAmB,GAAG,EAAE;EAE9B,KAAK,MAAMC,GAAG,IAAIJ,QAAQ,EAAE;IACxB,IAAIE,KAAK,CAACE,GAAG,CAAC,KAAKJ,QAAQ,CAACI,GAAG,CAAC,EAAE;MAC9BD,KAAK,CAACE,IAAI,CAAC;QAAED,GAAG;QAAEF,KAAK,EAAEA,KAAK,CAACE,GAAG,CAAC;QAAEJ,QAAQ,EAAEA,QAAQ,CAACI,GAAG;MAAE,CAAC,CAAC;IACnE;EACJ;EAEA,OAAOD,KAAK;AAChB,CAAC;;AAED;AACA,OAAO,MAAMG,SAAS,GAAGA,CAACvB,IAAU,EAAEwB,GAAG,GAAG,CAAC,KAAoB;EAC7D,MAAMC,MAAqB,GAAG,EAAE;EAEhC,KAAK,IAAIC,KAAK,GAAGxB,OAAO,CAACF,IAAI,CAAC,CAAC2B,WAAW,EAAED,KAAK,IAAID,MAAM,CAACZ,MAAM,GAAGW,GAAG,EAAEE,KAAK,GAAGA,KAAK,CAACC,WAAW,IAAID,KAAK,CAACA,KAAK,EAAE;IAChH,MAAME,IAAI,GAAGF,KAAK,CAACE,IAAI,IAAIF,KAAK,CAACG,IAAI,EAAEC,WAAW,IAAIJ,KAAK,CAACG,IAAI,EAAED,IAAI,IAAIF,KAAK,CAACG,IAAI,EAAEE,MAAM,EAAEH,IAAI;IAElG,IAAIA,IAAI,EAAE;MACNH,MAAM,CAACH,IAAI,CAACM,IAAI,CAAC;IACrB;EACJ;EAEA,OAAOH,MAAM;AACjB,CAAC;;AAED;AACA,OAAO,MAAMO,gBAAgB,GAAIhC,IAAU,IAAyBE,OAAO,CAACF,IAAI,CAAC,CAACiC,WAAW,EAAEC,KAAK","ignoreList":[]}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+
3
+ // The only module that reads React's fiber fields. A missing field gives undefined / null for that call, never a throw.
4
+
5
+ // ReactWorkTags, React 19
6
+ export const Tag = {
7
+ ClassComponent: 1,
8
+ HostRoot: 3,
9
+ HostComponent: 5,
10
+ ContextProvider: 10,
11
+ Suspense: 13,
12
+ Offscreen: 22,
13
+ Activity: 31
14
+ };
15
+ export const raw = fiber => fiber;
16
+ export const hostFiberOf = instance => instance?.__internalInstanceHandle ?? null;
17
+
18
+ // RN composites that keep their host behind a ref of their own, most common first
19
+ const compositeHostRefs = [handle => handle?.getScrollResponder?.()?.getNativeScrollRef?.(),
20
+ // FlatList, SectionList, VirtualizedList
21
+ handle => handle?.getNativeScrollRef?.(),
22
+ // ScrollView
23
+ handle => handle?._viewRef,
24
+ // ImageBackground
25
+ handle => handle?.viewRef?.current,
26
+ // KeyboardAvoidingView
27
+ handle => handle?._nativeRef // RefreshControl
28
+ ];
29
+ export const resolveHostFiber = handle => {
30
+ const direct = hostFiberOf(handle);
31
+ if (direct || !handle) {
32
+ return direct;
33
+ }
34
+ for (let i = 0; i < compositeHostRefs.length; i++) {
35
+ const fiber = hostFiberOf(compositeHostRefs[i](handle));
36
+ if (fiber) {
37
+ return fiber;
38
+ }
39
+ }
40
+ return null;
41
+ };
42
+ export const fiberOfInstance = instance => instance?._reactInternals ?? null;
43
+ export const firstHostBelow = fiber => {
44
+ let current = raw(fiber);
45
+ while (current && current.tag !== Tag.HostComponent) {
46
+ current = current.child;
47
+ }
48
+ return current ?? null;
49
+ };
50
+ export const hostAncestor = (fiber, levels = 1) => {
51
+ let current = raw(fiber)?.return;
52
+ while (current) {
53
+ if (current.tag === Tag.HostComponent && --levels === 0) {
54
+ return current;
55
+ }
56
+ current = current.return;
57
+ }
58
+ return null;
59
+ };
60
+ export const shadowNodesOf = (fiber, out) => {
61
+ const current = raw(fiber);
62
+ const node = current?.stateNode?.node;
63
+ const alternateNode = current?.alternate?.stateNode?.node;
64
+ if (node) {
65
+ out.push(node);
66
+ }
67
+ if (alternateNode && alternateNode !== node) {
68
+ out.push(alternateNode);
69
+ }
70
+ };
71
+ const childOfParent = (parent, a, b) => {
72
+ for (let child = parent.child; child; child = child.sibling) {
73
+ if (child === a || child === b) {
74
+ return child;
75
+ }
76
+ }
77
+ return null;
78
+ };
79
+
80
+ // React 19.2 findCurrentFiberUsingSlowPath, returning null where React throws
81
+ export const committedOf = fiber => {
82
+ const self = raw(fiber);
83
+ if (!self) {
84
+ return null;
85
+ }
86
+ const alternate = self.alternate;
87
+ if (!alternate) {
88
+ let root = self;
89
+ while (root.return) {
90
+ root = root.return;
91
+ }
92
+ return root.tag === Tag.HostRoot ? fiber : null;
93
+ }
94
+ let a = self;
95
+ let b = alternate;
96
+ while (true) {
97
+ const parentA = a.return;
98
+ if (!parentA) {
99
+ break;
100
+ }
101
+ const parentB = parentA.alternate;
102
+ if (!parentB) {
103
+ const next = parentA.return;
104
+ if (next) {
105
+ a = next;
106
+ continue;
107
+ }
108
+ break;
109
+ }
110
+ if (parentA.child === parentB.child) {
111
+ const found = childOfParent(parentA, a, b);
112
+ return found === a ? fiber : found === b ? alternate : null;
113
+ }
114
+ if (a.return !== b.return) {
115
+ a = parentA;
116
+ b = parentB;
117
+ } else {
118
+ const inA = childOfParent(parentA, a, b);
119
+ const inB = inA ? null : childOfParent(parentB, a, b);
120
+ if (!inA && !inB) {
121
+ return null;
122
+ }
123
+ const aUnderA = inA ? inA === a : inB !== a;
124
+ a = aUnderA ? parentA : parentB;
125
+ b = aUnderA ? parentB : parentA;
126
+ }
127
+ if (a.alternate !== b) {
128
+ return null;
129
+ }
130
+ }
131
+ if (a.tag !== Tag.HostRoot) {
132
+ return null;
133
+ }
134
+ return a.stateNode?.current === a ? fiber : alternate;
135
+ };
136
+
137
+ // a provider's other half can hold its previous value
138
+ const committedProviderValue = provider => {
139
+ const alternate = provider.alternate;
140
+ if (!alternate || alternate.memoizedProps?.value === provider.memoizedProps?.value) {
141
+ return provider.memoizedProps?.value;
142
+ }
143
+ return (raw(committedOf(provider)) ?? provider).memoizedProps?.value;
144
+ };
145
+ export const readContext = (fiber, context, fallback) => {
146
+ for (let current = raw(fiber)?.return; current; current = current.return) {
147
+ if (current.tag === Tag.ContextProvider && (current.type === context || current.type?._context === context)) {
148
+ return committedProviderValue(current);
149
+ }
150
+ }
151
+ return fallback;
152
+ };
153
+
154
+ // Fabric is a secondary renderer: its context stack is `_currentValue2`. Only valid during render.
155
+ export const readContextDuringRender = context => context?._currentValue2;
156
+ export const contextReaderFor = (instance, rendering) => rendering ? readContextDuringRender : context => readCommittedContext(instance, context);
157
+ const NO_PROVIDER = Symbol('no provider');
158
+ const readCommittedContext = (instance, context) => {
159
+ const value = readContext(committedOf(fiberOfInstance(instance)), context, NO_PROVIDER);
160
+ return value === NO_PROVIDER ? readContextDuringRender(context) : value;
161
+ };
162
+
163
+ // pendingProps too, so React still bails out. Replaced, not mutated: props are frozen in dev.
164
+ export const patchRenderedProps = (fiber, patch) => {
165
+ const self = raw(fiber);
166
+ if (!self) {
167
+ return false;
168
+ }
169
+ const patchedSelf = replaceProps(self, patch);
170
+ const patchedAlternate = self.alternate ? replaceProps(self.alternate, patch) : false;
171
+ return patchedSelf || patchedAlternate;
172
+ };
173
+ const replaceProps = (target, patch) => {
174
+ const props = target.memoizedProps;
175
+ const next = props ? patch(props) : undefined;
176
+ if (!next) {
177
+ return false;
178
+ }
179
+ target.memoizedProps = next;
180
+ target.pendingProps = next;
181
+ return true;
182
+ };
183
+ //# sourceMappingURL=fiber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Tag","ClassComponent","HostRoot","HostComponent","ContextProvider","Suspense","Offscreen","Activity","raw","fiber","hostFiberOf","instance","__internalInstanceHandle","compositeHostRefs","handle","getScrollResponder","getNativeScrollRef","_viewRef","viewRef","current","_nativeRef","resolveHostFiber","direct","i","length","fiberOfInstance","_reactInternals","firstHostBelow","tag","child","hostAncestor","levels","return","shadowNodesOf","out","node","stateNode","alternateNode","alternate","push","childOfParent","parent","a","b","sibling","committedOf","self","root","parentA","parentB","next","found","inA","inB","aUnderA","committedProviderValue","provider","memoizedProps","value","readContext","context","fallback","type","_context","readContextDuringRender","_currentValue2","contextReaderFor","rendering","readCommittedContext","NO_PROVIDER","Symbol","patchRenderedProps","patch","patchedSelf","replaceProps","patchedAlternate","target","props","undefined","pendingProps"],"sourceRoot":"../../../../src","sources":["unifiber/src/fiber.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+
3
+ // A Host is the view's creation fiber behind an opaque type: no allocation, and stable identity (=== / WeakMap keys).
4
+
5
+ import * as fiber from './fiber';
6
+
7
+ // Bound once: Metro's inline requires would turn each imported name used in a function into a require per call
8
+ const {
9
+ committedOf,
10
+ fiberOfInstance,
11
+ firstHostBelow,
12
+ hostAncestor,
13
+ patchRenderedProps: patchFiberProps,
14
+ raw,
15
+ resolveHostFiber,
16
+ shadowNodesOf
17
+ } = fiber;
18
+ const {
19
+ HostComponent: HOST_COMPONENT,
20
+ Offscreen: OFFSCREEN,
21
+ Suspense: SUSPENSE,
22
+ Activity: ACTIVITY
23
+ } = fiber.Tag;
24
+ export const fiberOf = host => host;
25
+ export const toHost = fiber => fiber?.stateNode?.canonical?.internalInstanceHandle ?? undefined;
26
+ const resolveRefSlowly = ref => raw(resolveHostFiber(ref)) ?? toHost(firstHostBelow(fiberOfInstance(ref)));
27
+
28
+ // The fast path is inlined: legacy Hermes doesn't inline calls
29
+ export const getHostFor = ref => {
30
+ const fiber = ref?.__internalInstanceHandle;
31
+ if (fiber !== undefined) {
32
+ return fiber;
33
+ }
34
+ return resolveRefSlowly(ref);
35
+ };
36
+ export const getShadowNodeFor = ref => {
37
+ const fiber = ref?.__internalInstanceHandle;
38
+ if (fiber !== undefined) {
39
+ return fiber.stateNode?.node;
40
+ }
41
+ return resolveRefSlowly(ref)?.stateNode?.node;
42
+ };
43
+ export const getHostForInstanceHandle = handle => toHost(handle);
44
+
45
+ // Not the first host below the scroll view: on iOS a refreshControl comes first
46
+ export const getContentContainerFor = ref => {
47
+ const scroll = ref?.getInnerViewRef ? ref : ref?.getNativeScrollRef?.() ?? ref?.getScrollResponder?.();
48
+ return getHostFor(scroll?.getInnerViewRef?.());
49
+ };
50
+ export const getShadowNode = host => fiberOf(host).stateNode?.node;
51
+
52
+ // Two nodes only while a render is in flight; after a commit both halves share one
53
+ export const getShadowNodes = (host, out = []) => {
54
+ shadowNodesOf(host, out);
55
+ return out;
56
+ };
57
+ export const getNativeTag = host => fiberOf(host).stateNode?.canonical?.nativeTag;
58
+ export const getParentHost = host => toHost(hostAncestor(host));
59
+ export const patchRenderedProps = (host, patch) => patchFiberProps(host, patch);
60
+ export const HiddenBy = {
61
+ None: 0,
62
+ Suspense: 1,
63
+ Freeze: 2,
64
+ Activity: 4
65
+ };
66
+
67
+ // `return` can point into either half of a pair; ask which half is committed only when they disagree
68
+ export const committedHalf = (fiber, differs) => {
69
+ const alternate = fiber.alternate;
70
+ if (!alternate || !differs(fiber, alternate)) {
71
+ return fiber;
72
+ }
73
+ return raw(committedOf(fiber)) ?? null;
74
+ };
75
+ const hiddenStateDiffers = (a, b) => a.memoizedState === null !== (b.memoizedState === null);
76
+
77
+ // React's own visibility bit on the Offscreen instance: shared by both halves and flipped in the commit before refs
78
+ // detach, so it also holds inside a ref cleanup, where the committed half is still the old tree
79
+ const OFFSCREEN_VISIBLE = 1;
80
+ const isOffscreenHidden = offscreen => {
81
+ const visibility = offscreen.stateNode?._visibility;
82
+ if (typeof visibility === 'number') {
83
+ return (visibility & OFFSCREEN_VISIBLE) === 0;
84
+ }
85
+ return committedHalf(offscreen, hiddenStateDiffers)?.memoizedState != null;
86
+ };
87
+ const freezeDiffers = (a, b) => a.memoizedProps?.freeze !== b.memoizedProps?.freeze;
88
+
89
+ // react-freeze: Freeze > Suspense > Suspender. The Suspender keeps stale props because it throws, so read Freeze's.
90
+ const isFrozenBoundary = suspense => committedHalf(suspense.return, freezeDiffers)?.memoizedProps?.freeze === true;
91
+
92
+ // Every hidden subtree sits under an Offscreen fiber with memoizedState set
93
+ export const getHiddenReasons = host => {
94
+ let reasons = 0;
95
+ for (let current = fiberOf(host).return; current; current = current.return) {
96
+ if (current.tag !== OFFSCREEN || !isOffscreenHidden(current)) {
97
+ continue;
98
+ }
99
+ const boundary = current.return;
100
+ if (boundary?.tag === ACTIVITY) {
101
+ reasons |= HiddenBy.Activity;
102
+ } else if (boundary?.tag === SUSPENSE) {
103
+ reasons |= isFrozenBoundary(boundary) ? HiddenBy.Freeze : HiddenBy.Suspense;
104
+ }
105
+ }
106
+ return reasons;
107
+ };
108
+
109
+ // Any hidden Offscreen, as in collectVisibleAncestors. Stops at the first: the reason isn't needed
110
+ export const isHidden = host => {
111
+ for (let current = fiberOf(host).return; current; current = current.return) {
112
+ if (current.tag === OFFSCREEN && isOffscreenHidden(current)) {
113
+ return true;
114
+ }
115
+ }
116
+ return false;
117
+ };
118
+ export const isSuspended = host => (getHiddenReasons(host) & HiddenBy.Suspense) !== 0;
119
+ export const isFrozen = host => (getHiddenReasons(host) & HiddenBy.Freeze) !== 0;
120
+ export const isInHiddenActivity = host => (getHiddenReasons(host) & HiddenBy.Activity) !== 0;
121
+ const isHiddenOffscreen = (offscreen, boundaries) => {
122
+ let hidden = boundaries.get(offscreen);
123
+ if (hidden === undefined) {
124
+ hidden = isOffscreenHidden(offscreen);
125
+ boundaries.set(offscreen, hidden);
126
+ if (offscreen.alternate) {
127
+ boundaries.set(offscreen.alternate, hidden);
128
+ }
129
+ }
130
+ return hidden;
131
+ };
132
+
133
+ // Hot loops below: indexed loops and writes, explicit null checks, no helper calls (legacy Hermes)
134
+ export const collectVisibleAncestors = (hosts, visit) => {
135
+ const visibleByTag = new Map();
136
+ const boundaries = new Map();
137
+ const pending = [];
138
+ for (let h = 0; h < hosts.length; h++) {
139
+ let visible = true;
140
+ let count = 0;
141
+ for (let current = hosts[h]; current != null; current = current.return) {
142
+ if (current.tag === HOST_COMPONENT) {
143
+ const stateNode = current.stateNode;
144
+ if (stateNode == null || stateNode.canonical == null) {
145
+ break;
146
+ }
147
+ const answer = visibleByTag.get(stateNode.canonical.nativeTag);
148
+ if (answer !== undefined) {
149
+ visible = answer;
150
+ break;
151
+ }
152
+ pending[count++] = current;
153
+ } else if (current.tag === OFFSCREEN && isHiddenOffscreen(current, boundaries)) {
154
+ visible = false;
155
+ break;
156
+ }
157
+ }
158
+ for (let i = 0; i < count; i++) {
159
+ const canonical = pending[i].stateNode.canonical;
160
+ visibleByTag.set(canonical.nativeTag, visible);
161
+ if (visible && canonical.internalInstanceHandle != null) {
162
+ visit(canonical.internalInstanceHandle);
163
+ }
164
+ }
165
+ }
166
+ };
167
+
168
+ // Hidden hosts included
169
+ export const collectAncestors = (hosts, visit) => {
170
+ const visitedByTag = new Set();
171
+ for (let h = 0; h < hosts.length; h++) {
172
+ for (let current = hosts[h]; current != null; current = current.return) {
173
+ if (current.tag !== HOST_COMPONENT) {
174
+ continue;
175
+ }
176
+ const stateNode = current.stateNode;
177
+ if (stateNode == null || stateNode.canonical == null) {
178
+ break;
179
+ }
180
+ const canonical = stateNode.canonical;
181
+ if (visitedByTag.has(canonical.nativeTag)) {
182
+ break;
183
+ }
184
+ visitedByTag.add(canonical.nativeTag);
185
+ if (canonical.internalInstanceHandle != null) {
186
+ visit(canonical.internalInstanceHandle);
187
+ }
188
+ }
189
+ }
190
+ };
191
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fiber","committedOf","fiberOfInstance","firstHostBelow","hostAncestor","patchRenderedProps","patchFiberProps","raw","resolveHostFiber","shadowNodesOf","HostComponent","HOST_COMPONENT","Offscreen","OFFSCREEN","Suspense","SUSPENSE","Activity","ACTIVITY","Tag","fiberOf","host","toHost","stateNode","canonical","internalInstanceHandle","undefined","resolveRefSlowly","ref","getHostFor","__internalInstanceHandle","getShadowNodeFor","node","getHostForInstanceHandle","handle","getContentContainerFor","scroll","getInnerViewRef","getNativeScrollRef","getScrollResponder","getShadowNode","getShadowNodes","out","getNativeTag","nativeTag","getParentHost","patch","HiddenBy","None","Freeze","committedHalf","differs","alternate","hiddenStateDiffers","a","b","memoizedState","OFFSCREEN_VISIBLE","isOffscreenHidden","offscreen","visibility","_visibility","freezeDiffers","memoizedProps","freeze","isFrozenBoundary","suspense","return","getHiddenReasons","reasons","current","tag","boundary","isHidden","isSuspended","isFrozen","isInHiddenActivity","isHiddenOffscreen","boundaries","hidden","get","set","collectVisibleAncestors","hosts","visit","visibleByTag","Map","pending","h","length","visible","count","answer","i","collectAncestors","visitedByTag","Set","has","add"],"sourceRoot":"../../../../src","sources":["unifiber/src/host.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { createOwnerRegistry } from './adapters/registry';
4
+ import { animatedComponentOf, reanimatedCSSAdapter } from './adapters/reanimated';
5
+ import { getCreationStack, getOwners, verify } from './diagnostics';
6
+ import * as HostApi from './host';
7
+ // Object literals, not classes: static methods on a Babel-transpiled class are slower on Hermes
8
+ export const Fiber = {
9
+ getHostFor: HostApi.getHostFor,
10
+ getShadowNodeFor: HostApi.getShadowNodeFor,
11
+ getHostForInstanceHandle: HostApi.getHostForInstanceHandle,
12
+ getContentContainerFor: HostApi.getContentContainerFor,
13
+ getShadowNode: HostApi.getShadowNode,
14
+ getShadowNodes: HostApi.getShadowNodes,
15
+ getNativeTag: HostApi.getNativeTag,
16
+ getParentHost: HostApi.getParentHost,
17
+ isHidden: HostApi.isHidden,
18
+ isSuspended: HostApi.isSuspended,
19
+ isFrozen: HostApi.isFrozen,
20
+ isInHiddenActivity: HostApi.isInHiddenActivity,
21
+ collectVisibleAncestors: HostApi.collectVisibleAncestors,
22
+ collectAncestors: HostApi.collectAncestors,
23
+ patchRenderedProps: HostApi.patchRenderedProps,
24
+ verify,
25
+ getOwners,
26
+ getCreationStack,
27
+ createOwnerRegistry
28
+ };
29
+ export const Reanimated = {
30
+ animatedComponentOf,
31
+ cssAdapter: reanimatedCSSAdapter
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createOwnerRegistry","animatedComponentOf","reanimatedCSSAdapter","getCreationStack","getOwners","verify","HostApi","Fiber","getHostFor","getShadowNodeFor","getHostForInstanceHandle","getContentContainerFor","getShadowNode","getShadowNodes","getNativeTag","getParentHost","isHidden","isSuspended","isFrozen","isInHiddenActivity","collectVisibleAncestors","collectAncestors","patchRenderedProps","Reanimated","cssAdapter"],"sourceRoot":"../../../../src","sources":["unifiber/src/index.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,qBAAqB;AACzD,SAASC,mBAAmB,EAAEC,oBAAoB,QAAQ,uBAAuB;AACjF,SAASC,gBAAgB,EAAEC,SAAS,EAAEC,MAAM,QAAQ,eAAe;AACnE,OAAO,KAAKC,OAAO,MAAM,QAAQ;AAOjC;AACA,OAAO,MAAMC,KAAK,GAAG;EACjBC,UAAU,EAAEF,OAAO,CAACE,UAAU;EAC9BC,gBAAgB,EAAEH,OAAO,CAACG,gBAAgB;EAC1CC,wBAAwB,EAAEJ,OAAO,CAACI,wBAAwB;EAC1DC,sBAAsB,EAAEL,OAAO,CAACK,sBAAsB;EAEtDC,aAAa,EAAEN,OAAO,CAACM,aAAa;EACpCC,cAAc,EAAEP,OAAO,CAACO,cAAc;EACtCC,YAAY,EAAER,OAAO,CAACQ,YAAY;EAClCC,aAAa,EAAET,OAAO,CAACS,aAAa;EAEpCC,QAAQ,EAAEV,OAAO,CAACU,QAAQ;EAC1BC,WAAW,EAAEX,OAAO,CAACW,WAAW;EAChCC,QAAQ,EAAEZ,OAAO,CAACY,QAAQ;EAC1BC,kBAAkB,EAAEb,OAAO,CAACa,kBAAkB;EAE9CC,uBAAuB,EAAEd,OAAO,CAACc,uBAAuB;EACxDC,gBAAgB,EAAEf,OAAO,CAACe,gBAAgB;EAE1CC,kBAAkB,EAAEhB,OAAO,CAACgB,kBAAkB;EAE9CjB,MAAM;EACND,SAAS;EACTD,gBAAgB;EAEhBH;AACJ,CAAC;AAED,OAAO,MAAMuB,UAAU,GAAG;EACtBtB,mBAAmB;EACnBuB,UAAU,EAAEtB;AAChB,CAAC","ignoreList":[]}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  export const isDefined = value => value !== undefined && value !== null;
4
+
5
+ // Reanimated useAnimatedStyle handle, it's a plain object, not an Animated.Node
6
+ // styleUpdaterContainer was added in Reanimated 4.1, so check only the keys every version has
7
+ export const isAnimatedStyleHandle = value => typeof value === 'object' && value !== null && 'viewDescriptors' in value && 'initial' in value;
4
8
  export const deepMergeObjects = (...sources) => {
5
9
  const target = {};
6
10
  sources.filter(isDefined).forEach(source => {
@@ -19,7 +23,53 @@ export const deepMergeObjects = (...sources) => {
19
23
  });
20
24
  return target;
21
25
  };
26
+
27
+ // React tells a class component from a function component by these keys
28
+ const CLASS_PROTOTYPE_KEYS = ['isReactComponent', 'render'];
29
+ const CLASS_STATIC_KEYS = ['contextType', 'contextTypes', 'childContextTypes', 'getDerivedStateFromProps'];
30
+
31
+ // owner doesn't have the key, objects that inherit from owner read it from source
32
+ const hideFromOwner = (owner, source, key) => {
33
+ Object.defineProperty(owner, key, {
34
+ configurable: true,
35
+ get() {
36
+ return this === owner ? undefined : Reflect.get(source, key, this);
37
+ },
38
+ set(value) {
39
+ Object.defineProperty(this, key, {
40
+ value,
41
+ writable: true,
42
+ enumerable: true,
43
+ configurable: true
44
+ });
45
+ }
46
+ });
47
+ };
48
+ const inheritNativeClass = (Component, UnistylesComponent) => {
49
+ function UnistylesClassComponent(...args) {
50
+ if (this instanceof UnistylesClassComponent) {
51
+ return Reflect.construct(Component, args, new.target ?? this.constructor);
52
+ }
53
+ return UnistylesComponent(args[0]);
54
+ }
55
+ Object.setPrototypeOf(UnistylesClassComponent, Component);
56
+ UnistylesClassComponent.prototype = Object.create(Component.prototype, {
57
+ constructor: {
58
+ value: UnistylesClassComponent,
59
+ writable: true,
60
+ configurable: true
61
+ }
62
+ });
63
+ // only the keys of the class, eg. React warns about a subclass with a `contextType` key that isn't a context
64
+ CLASS_PROTOTYPE_KEYS.filter(key => key in Component.prototype).forEach(key => hideFromOwner(UnistylesClassComponent.prototype, Component.prototype, key));
65
+ CLASS_STATIC_KEYS.filter(key => key in Component).forEach(key => hideFromOwner(UnistylesClassComponent, Component, key));
66
+ return UnistylesClassComponent;
67
+ };
22
68
  export const copyComponentProperties = (Component, UnistylesComponent) => {
69
+ // static properties (eg. displayName) are inherited from the class
70
+ if (Component?.prototype?.isReactComponent && typeof UnistylesComponent === 'function') {
71
+ return inheritNativeClass(Component, UnistylesComponent);
72
+ }
23
73
  Object.entries(Component).forEach(([key, value]) => {
24
74
  // Filter out the keys we don't want to copy
25
75
  if (['$$typeof', 'render', 'contextType'].includes(key)) {